Текст
                    Artificial
Intelligence
Structures and Strategies
for Complex Problem Solving
Fourth Edition
George F. Luger
ADDISON
WESLEY
AN IMPRINT ОТ PEARSON EDUCATION
Boston • Harlow, England • London • New Yorii • Reading, Massachusetts • San Francisco
Toronto • Don Mills, Ontario • Sydney • Tokyo • Singapore • Hong Kong • Seoul • Taipei
Cape Town • Madrid • Mexico City • Amsterdam • Munich • Paris • Milan

Искусственный интеллект Стратегии и методы решения сложных проблем Четвертое издание Джордж Ф. Люгер S8 Москва-Санкг-П«р6>Т>г-К"«
ББК 32.973.26-018.2-75 Л83 УДК 681.3.07 Издательский дом "Вильямс Зав. редакцией С.Н. Тригуб Перевод о английс.'Ого| И.И. Галагана |. КД. Протасовой, докт. техн, наук Н.Н. Куссуль Под редакцией докт. техн, наук Н.Н. Куссуль По общим вопросам обращайтесь в Издательский дом “Вильямс" по адресу: infoSwilliamspiiblishing.com, http://wrvw.williamspublishing.com Люгер, Джордж, Ф- Л83 Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание. : Пер. с англ. — М.: Издательский дом "Вильямс", 2003. — 864 с.: ил. — Парал. тит. англ. ISBN 5-8459-0437-4 (рус.) Данная книга посвяшена одной из наиболее перспективных и привлекательных облас- тей развития научного знания — методологии искусственного интеллекта. В ней детально описываются как теоретические основы искусственного интеллекта, так и примеры по- строения конкретных прикладных систем. Книга дает полное представление о современ- ном состоянии развития этой области науки. Книга будет полезна как опытным специалистам в области искусственного интеллек- та, так и студентам и начинающим ученым. ББК 32.973.26-018.2.75 Все названия программных продуктов являются зарегистрированными торговыми марками соответствующих фирм. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами. будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства Addison-Wesley UK. CopX'hi,©200?nS'aliOn fr°m En8,'Sh lan8Uage edilion Publishcd b* Addison-Wesley Publishing Company. Inc., reduced, stercd in retried system or transmitted in any form or by any Russian lan’iS^av ‘ rccOTd,nS'" «hew* without either the prior written permission о the Publisher. cTSfo XU“'She,! by Р'Л“"Е H“' —* “ Ag-S" ™ Enterprises ISBN 5-8459-0437-4 (pyC.) ISBN 0-201-64866.0 (англ.) © Издательский дом "Вильямс", 2003 © Pearson Education Limited, 2002
Оглавление Предисловие Часть I. Искусственный интеллект: его истоки и проблемы 27 Глава I • Искусственный интеллект: история развития и области приложения 29 Часть II. Искусственный интеллект как представление и поиск 57 Глава 2. Исчисление предикатов 73 Глава 3. Структуры и стратегии поиска в пространстве состояний 107 Глава 4. Эвристический поиск 149 Глава 5. Управление поиском и его реализация в пространстве состояний 185 Часть III. Представление и разум в ракурсе искусственного интеллекта 219 Глава 6. Представление знаний 225 Глава 7. Сильные методы решения задач 273 Глава 8. Рассуждения в условиях неопределенности 325 Часть IV. Машинное обучение 369 Глава 9. Машинное обучение, основанное на символьном представлении информации Ш Глава 10. Машинное обучение на основе связей 4^5 Глава 11. Машинное обучение на основе социальных и эмерджентных принципов 483 Часть V. Дополнительные вопросы решения задач искусственного интеллекта ‘ 521 Глава 12. Автоматические рассуждения Глава 13. Понимание естественного языка Часть VI. Языки н технологии программирования для искусственного интеллекта Глава 14. Введение в PROLOG £§5 Глава 15. Введение в LISP
1 ”" ~ " - 1 1 Часть VU. Эпилог 777 Глава 16. Искусственный интеллект как эмпирическая проблема 779 Библиография 309 Алфавитный указатель авторов Предметный указатель g^g 6 Оглавление
Содержание Предисловие Добро пожаловать в четвертое издание! Что нового в этом издании Содержание книги Использование книги Дополнительный материал, доступный через Internet Благодарности 19 19 21 22 24 25 25 Часть I. Искусственный интеллект: его истоки и проблемы 27 Попытка дать определение искусственному интеллекту 27 Глава 1. Искусственный интеллект; история развития и области приложения 29 1.1. Отношение к интеллекту, знанию и человеческому мастерству 29 1.1.1. Историческая подоплека 30 1.1.2. Развитие логики 32 1.1.3. Тест Тьюринга 35 1.1.4. Биологические и социальные модели интеллекта; агенты 38 1.2. Обзор прикладных областей искусственного интеллекта 42 1.2.1. Ведение игр 43 1.2.2. Автоматические рассуждения и доказательство теорем 43 1.2.3. Экспертные системы 44 1.2.4. Понимание естественных языков и семантическое моделирование 46 1.2.5. Моделирование работы человеческого интеллекта 47 1.2.6. Планирование и робототехника 4® 1.2.7. Языки н среды ИИ 49 1.2.8. Машинное обучение 50 1.2.9. Альтернативные представления: нейронные сети и генетические алгоритмы . 1.2.10. Искусственный интеллект и философия 1.3. Искусственный интеллект — заключительные замечания 1.4. Резюме и дополнительная литература 1.5. Упражнения Часть II. Искусственный интеллект как представление и поиск 57 Введение в представление знаний ~ Обработка знаний, выраженных в качественной форме Логическое получение новых знаний из набора фактов и прави.
„ „.„клетными ситуациями Огпбрпже^^ХХ"-»- Решение задачи методом п и Альтернативные схемы предал Глава 2. Исчисление предикатов О о Введение 3 1 Исчисление высказывании 2 | 1 Символы и предложения 2 12. Семантика „счисления высказывании 2 2. Основы исчисления предикатов 2 •> 1 Синтаксис предикатов и предложении 022 Семантика исчисления предикатов 23 3 Значение семантики на примере мира блоков 2,3, Правила вывода в исчислении предикатов 2.3.1. Правила вывода 2.3.2. Унификация 2.3.3. Пример унификации 2,4. Приложение: финансовый советник на основе логики 2.5. Резюме и дополнительная литература 2.6 Упражнения Глава 3. Структуры и стратегии поиска в пространстве состояний 3.0. Введение 3.1. Теория графов 3.1.1. Структуры данных для поиска в пространстве состояний 3.1.2. Представление задачи в пространстве состояний 3.2. Стратегии поиска в пространстве состояний 3.2.1. Поиск на основе данных н от цели 3.2.2. Реализация поиска на графах 3.2.3. Поиск в глубину и в ширину 3.2.4. Поиск в глубину с итерационным заглублением 3.3. Представление рассуждений в пространстве состояний на основе исчисления предикатов 3.3.1. Описание пространства состояний логической системы 3.3.2. Графы И/ПЛИ 3.3.3. Примеры и приложения 3.4. Резюме и дополнительная литература 3.5. Упражнения 63 63 65 66 70 73 73 73 73 75 77 78 83 87 89 89 92 96 100 103 104 107 107 110 НО 112 118 118 121 124 131 132 132 133 135 145 146 Глава 4. Эвристический поиск 4.0. Введение 4.1. Алгоритм эвристического поиска 4.1.1. “Жадный" алгоритм поиска 4.1.2. Функции эвристической оценки состояний 4Л.З. Эвристический поиск и экспертные системы 4... Допустимость, монотонность и информированность 149 149 153 153 156 163 164 4.2.1. Мера допустимости 4.2.2. Монотонность 4.2.3. Информированные эвристики 4.3. Использование эвристик в играх 4,3.1. Процедура минимакса на графах, допускающих полный перебор 4.3.2. Минимакс при фиксированной глубине поиска 4.3.3. Процедура альфа-бета-усечения 4.4. Проблемы сложности 4.5. Резюме и дополнительная литература 4,6. Упражнения 165 166 167 169 169 171 175 178 181 181 Глава 5. Управление поиском и его реализация в пространстве состояний 185 5.0. Введение 5.1. Рекурсивный поиск 5.1.1. Рекурсия |8б 5.1.2. Рекурсивный поиск jg-? 5.2. ПОИСК ПО Образцу 5 2.1. Пример рекурсивного поиска: вариант задачи хода конем 191 5.2.2. Усовершенствование алгоритма поиска по образцу 194 5.3. Продукционные системы 196 5.3.1. Определение и история развития 196 5.3.2. Примеры продукционных систем 200 5.3.3. Управление поиском в продукционных системах 205 5.3.4. Преимущества продукционных систем для ИИ 211 5.4. Архитектура “классной доски" 212 5.5. Резюме и дополнительная дитература 215 5.6. Упражнения 216 Часть III. Представление и разум в ракурсе искусственного интеллекта Представление и интеллект Глава 6. Представление знаний 6.0. Вопросы представления знаний 6.1. Краткая история схем представления ИИ 6.1.1. Ассоционистские теории смысла 6.1.2. Ранние работы в области семантических сетей 6.1.3. Стандартизация сетевых отношений 6.1.4. Сценарии 6.1.5. Фреймы 245 6.2. Концептуальные графы: сетевой язык 6.2.1. Введение в теорию концептуальных графов 6.2.2. Типы, экземпляры и имена 249 6.2.3. Иерархия типов 250 6.2.4. Обобщение и специализация 253 6.2.5. Пропозициональные узлы 253 6.2.6. Концептуальные графы и логика 255 6.3. Альтернативы явному представлению _______________________ •-------------------------------------------------- 9 Содержание 8 -------------------------------- Содержание
6 3.1. Гипотезы Брукса » категориальная архитектура 6 дТХХоржнтировавное решение задач, определение 6 А2. Примеры и проблемы агентяо-орнектированнои парадигмы 6.5. Резюме и дополнительная литература 6.6. Упражнения Глава 7. Сильные методы решения задач 7.0. Введение 7.1. Обзор технолопш экспертных систем 7.1.1. Разработка экспертных систем, основанных на правилах 7.1.2. Выбор задачи и процесс инженерии знаний 7.1.3. Концептуальные модели и их роль в приобретении знаний 7.2. Экспертные системы, основанные на правилах 7.2.1. Продукционная система и решение задач на основе цели 7.2.2. Объяснения и прозрачность при рассуждениях на основе цели 7-2.3. Использование продукционной системы для рассуждений на основе данных 7.2.4. Эвристики и управление в экспертных системах 7.3. Рассуждения на основе моделей, на базе опыта и гибридные системы 7.3.1. Введение в рассуждения на основе модели 7.3.2. Рассуждения на основе моделей: пример NASA 7.3.3. Введение в рассуждения на основе опыта 7.3.4. Гнбрндные системы: достоинства и недостатки систем с сильными методами 7.4. Планирование 7.4.1. Введение 7.4.2. Использование макросов планирования: STRIPS 7.4.3. Адаптивное планирование 7-4.4. Планирование: пример NASA 7.5. Резюме и дополнительная литература 7.6. Упражнения 256 259 261 262 264 266 269 273 273 275 275 276 279 282 282 286 287 290 292 292 296 299 303 307 307 311 316 318 32! 322 325 Глава 8. Рассуждения в условиях неопределенности 8.0. Введение “7 8.1. Абдуктивныйвывод, основанным на котике 8.1.1. Логика немонотонных рассуждений 8.1.2. Системы поддержки истинности 8.1.3. Логики, основанные на минимальных моделях 8.1.4. Множественное покрытие и логическая абдукция 338 8.2. Абдукция: альтернативы логическому подходу ^41 8.2.1. Неточный вывод на основе фактора уверенности 342 8.2.2. Рассуждения с нечеткими множествами 344 8.2.3. Теория доказательства Демпстера-Шафера 350 8.3. Стохастический подход к описанию неопределенности 354 8.3.1. Байесовские рассуждения 355 8.3.2. Байесовские сети доверия 359 8.4. Резюме и дополнительная литература 8.5- Упражнения 365 367 Часть IV. Машинное обучение Символьное, нейросетевое и эмерджентное обучение Глава 9. Машинное обучение, основанное на символьном представлении информации 9.0. Введение 9.1. Символьное обучение 9,2. Поиск в пространстве версий 9.2. 1. Операция обобщения и пространство понятий 9.2. 2. Алгоритм исключения кандидата 9.2- 3. Программа LEX: индуктивное изучение эвристик поиска 9.2- 4. Обсуждение алгоритма исключения кандидата 9.3. Индуктивный алгоритм построения дерева решений ЮЗ 9.3.1. Построение дерева решений сверху вниз 9.3.2. Выбор свойств на основе теории информации 9.3-3. Анализ алгоритма ID3 9.3.4. Вопросы обработки данных для построения дерева решений 9.4. Индуктивный порог и возможности обучения 9.4.1. Индуктивный порог 9.4.2. Теория изучаемое™ 9.5. Знания и обучение 9.5.1. Алгоритм Meta-DENDRAL 9.5.2. Обучение на основе объяснения 9.5.3. Алгоритм EBL и обучение на уровне знаний 9.5.4. Обоснование по аналогии 9.6. Обучение без учителя 9.6.1. Научная деятельность и обучение без учителя 9.6.2. Концептуальная кластеризация 9.6.3. Программа COB-WEB и структурные таксономические знания 9.7. Обучение с подкреплением 9.7.1. Компоненты обучения с подкреплением 9.7.2. Пример: снова “крестики-нолики" 9.7.3. Алгоритмы вывода и их применение к обучению с подкреплением 9.8. Резюме и ссылки 9.9. Упражнения Глава 10. Машинное обучение на основе связей 10.0. Введение 10.1. Основы теории сетей связей 10.1.1. Ранняя история 10.2. Обучение персептрона 10.2.1. Алгоритм обучения пеРсетГ®'а кмеенфшаиии образов 10.2.2. Пример: использование персептронном сета д * 10.2.3. Обобщенное дельта-правило Ю.З. Обучение по методу обратного распространения 369 369 371 371 374 380 380 381 388 391 392 394 396 398 399 400 400 403 405 406 407 411 412 415 415 417 419 424 425 427 429 431 432 435 435 437 437 439 439 442 445 448 11 Содержание Содержание
10.3.1. вывод алгорн™*°°pJX™SpmoroP»™POCTPal,CHU’' °ш"6к": 10.3.2. Пример применения м<лил г система NETialk распространения для решения задачи 10.3.3. Применение метода обратной? ра««р -исключающего ИЛИ ,0-4' К„°"7д«Х”к» ’»6"рает 3“аЧ" К-1“СИ*"“Ц“" 10.5. Синхронное обучение Хебба Jalz П^ер^оригмаобучения Хебба без учителя 10.5.3. Обучение Хебба с учителем 105 4. Ассоциативная память и линейный ассоциатор Ю.6 Аттракторные сета (сета “ассоциативной памяти ’) 10.6.1. Введение 10.6.2. Двунаправленная ассоциативная память 10.6.3. Примеры обработки данных в сета ДАЛ 10.64. Автоассоциативная память и сети Хопфилда 10.7. Резюме и дополнительная литература 10.8. Упражнения 448 4S2 454 455 455 457 459 462 462 463 466 467 471 471 472 475 477 481 482 Глава 11. Машинное обучение на основе социальных и эмерджеитнмх принципов 11.0. Социальные и эмерджентные модели обучения 11.1. Генетические алгоритмы 11.1.3. Два примера: описание задачи в конъюнктивной нормальной форме и задача коммивояжера 11.1.4. Обсуждение генетического алгоритма 11.2. Системы классификации и генетическое программирование ! 1-2.1. Системы классификации 11.22. Программирование с использованием генетических операторов 11.3. Искусственная жизнь и э.мерджентное обучение 11-3.1. Игра ‘’Жизнь” 11.3.2. Эволюционное программирование 11.3.3. Пример эмерджентностн 11.4. Резюме и дополнительная литература 11.5. Упражнения Часть V. Дополнительные вопросы решения задач искусственного интеллекта Автоматические рассуждения „ естественный язык Глава 12. Автоматнческве рассуждения С»™"1" 8 «“«^тмьства теорем 2.1. Система решен,,, о6щ|„ змм и Р 12.2. Доказательство теорем мсгодом рсюл i-i.2.1. Введение 483 483 485 488 491 495 495 500 505 506 509 511 515 516 519 519 521 521 522 528 528 12 *-----------------_------------------------------ Содержание
12.2. —. Построение дизъюнктивной формы для опровержения разрешения 530 12.2.3. Процедура доказательства на основе бинарной резолюции 533 12.2.4. Стратегии н методы упрощения резолюции 538 12.2.5. Извлечение ответов в процессе опровержения 543 12.3. Язык PROLOG и автоматические рассуждения 546 12.3.1. Введение 12.3.2. Логическое программирование и язык PROLOG 547 12.4. Дополнительные вопросы автоматических рассуждений 552 12.4. L Единое представление для реализации слабых методов решения 552 12.4.2. Альтернативные правила вывода 555 12.4.3. Стратегии поиска и их использование 557 12.5. Резюме и дополнительная литература 558 12.6. Упражнения 559 Глава 13. Понимание естественного языка 561 13.0. Проблема понимания естественного языка 561 13.1. Разбор языка: символьный анализ 564 13.1.1. Введение 564 13.1.2. Стадии анализа языка 565 13.2. Синтаксический анвлиз 567 13.2.1. Спецификация и синтаксический анализ с использованием контекстно-свободных грамматик 567 13.2.2. Анализаторы на основе сети переходов 569 13.2.3. Иерархия Хомского и контекстно-зависимые грамматики 573 13.3. Синтаксис и знания в ATN-анвлизаторах 576 13.3.1. Анализаторы на основе расширенных сетей переходов 576 13.3.2. Объединение знаний о синтаксисе и семантике 580 13.4. Стохастический подход к анализу языка 585 13.4.1. Введение 585 13.4.2. Подход на основе марковских моделей 586 13.4.3. Подход на основе дерева решений 588 13.4.4. Грамматический анализ и другие приложения стохастического подхода 590 13.5. Приложения задачи анализа естественного языка 592 13.5.1. Обучение и ответы на вопросы 592 13.5.2. Интерфейс для базы данных 592 13.5.3. Извлечение информации и системы автоматического резюмирования для Web 13.5.4. Использование алгоритмов обучения для обобщения извлеченном информации 508 13.6. Резюме и дополнительная литература 13.7. Упражнения Часть VI. Языки и технологии программирования для искусственного интеллекта _ _ 606 Обзор языков PROLOG и LISP 606 PROLOG 607 LISP 608 Выбор языка реализации ------------------------------------------ 13 Содержание
Глав» И-Ввв1е"||е ' I>R0L°G 14 0. Введши „„„^«„ровдви. Д»™к" предикатов 141 м”ТпРеас™»е»« “ "’“ориит ереди PROLOG 14.1.4. Рекурсивным ио№ ™к w управления поиском (4.1.5. Использование оператора в языке PROLOG 14.2. Абстрактные типы данных в PROLOG 14.2.1. Стек 14.2.2. Очередь 14.2.3. Приоритетная очередь <4.2.4. Множество погнил 14 у Пример продукционной сниемы на языке Р^ОС 14 4 Риработка вльтернатпвных стратегии поиска 4 14.41. Поиск в глубину с использованием списка closed 14.4.2 . Поиск в ширину а языке PROLOG 14.4.3 . Реализация "жадного” алгоритма поиска на языке PROLOG 14.5. Реализация планировщика на языке PROLOG DDn, 14.6. Метапредикаты, типы и подстановки унификации в языке PROLOG 14.6.1. Металогические предикаты 14.6.2. Т1шы данных в языке PROLOG 14.6.3. Унификация, механизм проверки соответствия предикатов и оценка 14.7. Метаинтерпретаторы в языке PROLOG [4.7.1. Введение в метаинтерпретаторы: PROLOG в языке PROLOG 14.7.2. Оболочка для экспертной системы на основе правил 14.7.3. Семантические сети в языке PROLOG 14.7.4. Фреймы и схемы в языке PROLOG 14.8. Алгоритмы обучения в PROLOG 14.8.1. Поиск в пространстве версий языка PROLOG 14.8.2. Алгоритм исключения кандидата 14.8.3. Реализация обучения на основе пояснения на языке PROLOG 14.9. Обработка естественного языка на PROLOG 14.9.1. Семантические представления для обработки естественного языка 14.9.2. Рекурсивный анализатор на языке PROLOG 14.9.3. Рекурсивный анализатор на основе семантических сетей 14.10. Резюме и дополнительная литература 14.11. Упражнения Глава 15. Введение в LISP 15.0. Введение 15.1. LISP: краткие обзор 15 11,' у"™мы““,ыра’““™ «“ксиИтаксИЧеЖгиогаом LISP 5 оцскташем „ LISp; фунющв н 5. .3. Пртраммчюва1,т ца LISp. 4„нкц„й 15-1.4. Управление „р0фаМм0й , L,sp. условня7:Д”« 609 609 610 610 614 615 618 620 622 622 624 624 625 626 631 631 633 634 636 639 639 640 643 646 646 649 657 659 661 661 666 668 671 671 672 675 678 680 685 685 686 686 689 690 692 14 Содержание
15.1-5 . Функции, списки и символьные вычисления 694 15.1.6 . Списки как рекурсивные структуры 696 15.J.7 . Вложенные списки, структуры и рекурсия car-cdr 698 15.1.8 . Связывание переменных с помощью функции sec 701 15.1.9 . Определение локальных переменных с помощью функции let 703 15.1.10 . Типы данных в Common LISP 705 15.2. Поиск в LISP: функциональный подход к решению задачи переправы человека, волка, козы и капусты 706 15.3. Функции и абстракции высшего порядка 71 [ 15.3.1. Отображения и фильтры 15.3.2. Функциональные аргументы и лямбда-выражения 713 15.4. Стратегии поиска в LISP 714 15.4.1. Поиск в ширину и в глубину 714 15.4.2. "Жадный" алгоритм поиска 717 15.5. Проверка соответствия шаблонам LISP 718 15.6. Рекурсивная функция унификации 720 15.7. Интерпретаторы и внедренные языки 724 15.8. Логическое программирование на языке LISP 727 15.8.1. Простой язык логического программирования 727 15.8.2. Потоки и их обработка 729 15.8.3. Интерпретатор для задач логического программирования на основе потоков 731 15.9. Потоки и оценивание с задержкой 736 15.10. Оболочка экспертной системы на LISP 739 15.10.1. Реализация факторов достоверности 740 15.10.2. Архитектура оболочки lisp-shell 741 15.10.3. Классификация с использованием оболочки lisp-shell 744 15.11. Семантические сети и наследование в LISP 746 15.12. Объектно-ориентированное программирование с использованием CLOS 749 15.12.1. Определение классов и экземпляров в CLOS 751 15.12.2. Определение родовых функций и методов 753 15.12.3. Наследование в CLOS 755 15.12.4. Пример: моделирование термостата 756 15.13. Обучение в LISP: алгоритм 1D3 761 15.13.1. Определение структуре помошью функции defstruct 761 I5.I3.2. Алгоритм ID3 15.14. Резюме и дополнительная литература 772 15.15. Упражнения ^73 Часть VII. Эпилог *777 Рассуждения о природе интеллекта Глава 16, Искусственный интеллект как эмпирическая проблема 779 16.0. Введение 16.1. Искусственный интеллект: пересмотренное определение 16.1.1. Интеллект и гипотеза о физической символьной системе 781 16.1.2. Коннекцнонистские, или нейросетевые, вычислительные системы 786 Содержание
16.1.3. Агенты, интеллект и эволюция 16 2. Теория интеллектуальных систем 16.2.1. Ограничения психологии 16.2:2. Вопросы эпистемологии 16.2.3. Внедренный исполнитель и экзистенциальный разум 16.3. Искусственный интеллект текущие задачи и будущие направления 16.4. Резюме к дополнительная литература Библиография Алфавитный указатель авторов Предметный указатель 739 792 793 795 801 803 80? 809 841 848 " Л'.теру Si <Md гп Пте^-,^сея '~;1ж“Р»Лиге„,„ Содержание

Предисловие Ч'пабы научиться что-то делить. надо деють это — Аристотель (Aristotle), Этика Добро пожаловать в четвертое издание! Предложение о выпуске четвертого издания книги по искусственному интеллекту я принял с удовольствием. Я расценил его как комплимент предыдущим изданиям, первое из которых вышло более десяти лет назад. Это предложение означает, что наш подход к искусственному интеллекту был широко поддержан. В новом издании представлены са- мые современные наработки в этой области. Спасибо читателям, коллегам и студентам за высокую оценку книги и неослабевающий интерес к ее теме. Многие разделы прежних изданий замечательно выдержали проверку временем. Это главы, посвященные логике, алгоритмам поиска, представлению знаний, продукционным системам, машинному обучению и технологиям программирования на языках LISP и PROLOG. Эти вопросы остаются центральными в области искусственного интеллекта, поэтому существенной доработки соответствующих глав не потребовалось. Однако не- которые главы, в том числе связанные с вопросами понимания естественного языка, обу- чения с подкреплением и неточными рассуждениями, были подвергнуты значительной переработке. Часть вопросов, которые в первых изданиях были лишь слегка затронуты, но впоследствии доказали свою актуальность, описаны более детально. К ним относятся эволюционирующие вычисления, рассуждения на основе логических доказательств и решение задач на базе моделей. Эти изменения отражают современные тенденции и со- стояние области искусственного интеллекта. В ходе проекта мы получили поддержку от наших издателей, редакторов, друзей, коллег, а главное — читателей, которым наша работе обязана своей долгой и продуктив- ной жизнью. Мы были очень рады представившейся возможности — ученым очень ред- ко удается вырваться за рамки своей узкой специализации. Благодаря издателям и чита- телям у нас это получилось. Несмотря на то что искусственный интеллект, как и большинство инженерных дис- циплин, должен подтвердить свою значимость в коммерческом мире путем решения важных практических задач, мы рассматриваем его с тех же позиции, что и многие наши коллеги и студенты. Мы хотим понять и исследовать механизмы работы мозга, обеспе- чивающие возможности интеллектуального мышления и осмысленной деятельности, т- вергая несколько наивное утверждение о том. что интеллект это исключительная пре
„ возможна эфф^тавпого ^слсдойа1)йя области . рИрЛТк „ ные“'Р« предлагаемого подхода к изучен,,» ® отме«ы три о«"ч|да,““ет смысл в предисловии к четвертому издании, X те ««ТСМС"3' П”Х Хольхо наши "Роверу временем’ »6™™йис«уотвиноге Осноааой цела» - , „„„сан.и его теоретических основ . В процессе ее с проблема - примирить исследователей. удеМЮщи реализации оказалось, что га раал„чных теории интеллекта (Ч11стых теоре основное внвмаие изучи» а|ошим|| интеллект как средство решения конкретных »»,«»«). с » коллегами, рас проим д„хотомия оказалась на деле далеко не га „рлклалвмх задач раав>ти искусственного интеллекта жаркие спорь, кой простои На севре! п0 множеству вопросов из самых разных об- „ежду ‘ Хмаольного подхода спорят с почитателями нейронных сетей, ластеи. Прввер» » _ £ „работникам,, форм искусстеекнон жизни, эволюта»,,,, ^елые-логио, л упр арХИгекторы экспертных систем протааостоят И- нак°»е«- “«“с непри- ГСЧИ' ™ 3аДаЧУ С°ЗЯаН,1Я "СКУСС™Н“°Г° тХкп ежеределяо». » пессимистами, вообще не верящими в возможность ее рейс- Н>1Я Наше «сходное видение искусственного интеллекта как пограничной области науки, призванной укротить бутовщиков. прорицателей, старателей и других безудержных мечтателей с помощью формализма и эмпиризма, трансформировалось в другую мета- фору. Искусственный интеллект— это большой, хаотичный, но в целом мирный город, который законопослушные горожане разделили на отдельные деловые и богемные рай- оны в соответствии со своими жизненными принципами. За годы работы над разными изданиями книга у авторов начинает появляться общее видение архитектуры искусст- венного интеллекта, отражающее структуру, культуру и жизненный уклад этого города. Интеллект — это очень сложная область знаний, которую невозможно описать с по- мощью какой-то одной теории. Ученые строят целую иерархию теорий, характеризую- щих его на разных уровнях абстракции. На самом нижнем уровне этой иерархии нахо- дятся нейронные сети, генетические алгоритмы и другие формы эволюционирующих вычислений, позволяющие понять процессы адаптации, восприятия, воплощения и взаи- модействия с физическим миром, лежащим в основе любой формы интеллектуальной деятельности. С помощью некоторого частично поиятиого процесса разрешения эта хао- тическая популяция ‘слепых" и примитивных действующих лиц превращается в более строгие шаблоны логического вывода. Работая на этом уровне, последователи Аристоте- ля изучают схемы дедукции, абдукции, индукции, поддержки истинности и другие бес- Dafinrv^ мадеаи и принципы рассуждений. На более высоком уровне абстракции Рм‘ ного a3bUrt>3nCnepTHbIX систем’ неактуальных агентов, систем понимания естествен- подкрепленнитаанугё ™релелить Роль социальных процессов в создании, передаче н «ш искусственного интел.^^7041 НМЙННН Kto'™ МЬ| рассмотрим все эти уровни иерар- "расщиренных ФопмачичИННЬ'" В предь1ДУщих изданиях, касался центральной Р°;1И венного интеллекта М0В пРедставления 11 стратегий поиска" в .методологии нскусст Ждений и раннего этапа* П0*алу“’ наиболее спорный аспект наших предыдущих р^У 31303 Рамн™’ искусствеННОго интеллекга вообше. Многие иссл^' тел». работающие а облаете эволюционирующих вычислений стали, под воинские роль символьных рассуждении и семантики ссылок с процессе мышления. Несмотря на то что идея представления как процедуры присвоения имен некоторым объектам во многом ут- ратила свою уникальность с появлением неявных представлений, обеспечиваемых ней- росетевыми моделями или системами искусственной жизни, по мнению автора, понима- ние вопросов представления и алгоритмов поиска остается очень важным моментом для специалистов-практиков в области искусственного интеллекта. Более того, автор счита- ет, что навыки и знания, приобретенные при изучении способов представления и меха- низмов поиска, являются неоценимым средством анализа таких аспектов неенмвольных областей искусственного интеллекта, как нейронные сети или генетические алгоритмы. Сравнение, противопоставление и критические замечания в адрес различных подходов современного искусственного интеллекта приводятся в главе 16. Третье утверждение, сформулированное в начале жизненного цикла этой книги, — "рассматривать искусственный интеллект в контексте эмпирической науки” осталось не- изменным. Здесь уместно привести цитату из предисловия к третьему изданию. Автор продолжает верить, что искусственный интеллект — это не "...некое странное ответвление от научной традиции, а., часть общего пути к знанию и по- ниманию самого интеллекта Более того, наши программные средства искусственного ин- теллекта наряду с исследованием методологии программирования... идеально подходят для изучения окружающего мира. Эта средства создают почву и для понимания и для появле- ния вопросов. Мы приходим к опенке и знанию феномена конструктивно, т.е. путем после- довательной аппроксимации. Каждую разработку и программу можно рассматривать как эксперимент с природой- мы прела- гаем представление, генерируем алгоритм поиска, а затем ставим вопрос об адекватности навей характеристики некоторой части феномена интеллекта- И реальный мир дает ответ на этот во- прос. Наш эксперимент можно проанализировать, модифицировать, расширить и возобновить Нашу модель .можно подкорректировать, а понимание — расширить • Что нового в этом издании Я, Джордж Люгер (George Luger). — единственный автор четвертого издания. Несмотря на то что интересы Билла Стабблефилда (Bill Stubblefield) сместились в сторону новых об- ластей компьютерных наук, его след останется н в настоящем, и в последующих изданиях книги. На самом деле эта книга является результатом моей работы в качестве профессора компьютерных наук в университете Нью-Мексико и труда моих коллег. аспирантов и зру- зен — членов сообщества специалистов в области искусственного интеллекта, а также мно- гих читателей, направивших по электронной почте свои комментарии, пожелания и уточ- нения. Данная книга продолжает традиции предыдущих изданий, поэтому, чтобы отразить коллективный вклад в ее написание, при изложении материала я буду по-прежнему упот- реблять местоимение "мы”. Отдельные слова благодарности за участие в подготовке чет- вертого издания приводятся в соответствующем разделе этого предисловия. Мы переделал» многое разделы этой книги, чтобы отразить возрастающую роль агентного подхода к решению задач как новой технологии искусственного интеллекта (ИИ). При обсуждении основ ИИ мы определяем интеллект как физически воллошенный и расположенный в природном н социальном мире контекст. В соотвектвии с этим оп- ределением в главе 6 описывается эволюция схем представления ИИ. начиная от ассо- 21 Предисловие 20 Предисло0и0
ставлений через слабые и сильные методы реще- циатнвного и раннего логического прел' ищкли, и заканчивая ситуативными и ния. включая кониекнионнстские и э. Р 16 содержагся критические заме- социальными подходами к решению задач ип. чания по каждой из парадигм. проанализировали все вопросы, представ- При работе над четверть!. да ' и|ГгерПретации. В частности, в главу 9 ленные ранее, и изложили т Р подкреплением. Описаны алгоритмы такого добавлен раздел, „освященный обучению- обучения (метод временных разностей и ^-обучения;, скдыГлоХуюише на их основе политику изменения состоянии. Помимо сод^жапюгоея в предыдущих изданиях анализа систем вывода от данных и от цГ “гл^7 представлены рассуждения на основе модели опыта, в том числе примеры из космической программы NASA. В згу главу добавлен раздел, „освященный осуждению преимуществ и недостатков каждого из этих подходов для решения задач. интенсивно нспользуюших знания. В главе 8 описан подход к реализации рассуждении при неточной или неполной ин- формации. Представлено множество важных подходов к решению этой задачи, включая байесовский подход к рассуждениям, сети доверия (belief network), модель Демпстера- Шафера и неточный вывод с использованием фактора уверенности. Описаны также приемы пол держания истинности в немонотонных ситуациях, а также рассуждения на основе минимальных моделей и логической абдукции. В заключении гдавы глубоко про- анализированы байесовские сети доверия и алгоритм дерева клик для распространения меры правдоподобия по сети доверия в контексте новой информации. В главе 13 обсуждаются вопросы понимания естественного языка, включая раздел по стохастическим моделям для постижения языка. Здесь описаны марковские модели, CART-деревья. метод взаимной кластеризации информации и статистического грамма- тического разбора. В заключении главы приводится несколько примеров, в том числе приложения по восполнению тексте и методы реферирования текстов для WWW. И, наконец, в обновленной главе 16 мы снова возвращаемся к вопросам природы ин- теллекта и возможности создания интеллектуальных машин. Последние достижения ИИ рассматриваются с точки зрения психологии, философии и нейрофизиологии. Содержание книги койВ„сттчг1йДае1СЯ введснис в те°Рию искусственного интеллекта, предваренное крат- фияософии „с™Т ™П01“ТЬ принципы ра6°™ мозга и сушчость интеллекта с позиций философии, психологии и других наук. Важно понимать, что ИИ — это стала» наука. ^ХХТпоюТаию^” " АрИСТ01еМ' ™го опыта приводится обзор некоторых в^ыГпргшоТе^ иГцГл™™^ В Т ву вмХГ з Г < дм“теор™11 “ ™ -о6еспечить осяо- теории предикатов^ДХачсшТ^ТпиТ ™аЧ К »>« (глава 2), методы поиска, применяемые для тсг "l °СНОВНЬК своис™ предметной области алгоритмы и структуры данных, исполыур Р ужД1'НИЯ об ,гих описаниях (глава 3), а также обсуждается aaZ^LРеаЛ"3аЦИИ ™го В главах 4 .. 5 ставлено множество архитектур предназначай'' " Ограи"че"н" пространства поиска Пред- чм методологию -классной доски'^™ ™ "“строения алгорптмо. поиска, вклю- п "редукционные системы. 22 Предисловие
Главы 6. 7 и 8 составляют третью часть книги в „аЧ искусственного интеллекта и методы решення х “ « ы представле,,,,, дд, м. В главе 6 рассматривается Эволюция схем представ,™ "" тиа- даются семантические сети и расширение этой модели на теотю ИИ С"ачма обсУ*- симости. фреймы и сценарии. Затем глубоко анализируется ко« аоииеитуальные графы. Основное внимание уделяетсявопросам X ""' Ф°рмшим- дроцессе представления знании „ решению этих вопросов в со °,! "овя™й ‘ Явления. В главе 13 показано, как концептуальные графы можно Х""™ ’П‘"“ "P'"’ ^пии интерфейса с базой даННЬ,х. работаюшего и™ е" “ ХХГ.Г точении главы 6 рассмотрены более современные подходы к ппеХ В ’а' ® итно-ориентироваиные архитектуры и систему Copycat аста™нию, включая В главе 7 рассмотрена основанная на правилах экспертная система а также системы рассуждении на основе моделей и опыта, включая примеры из космической программы NASA. Эти подходы к решению задачи представлены как естественное продолжение ма „риала, изложенного в первых пяти главах книга: продукционная система на основе вы- ражений из теории предикатов гармонично сочетается с алгоритмами поиска на графах в заключении главы анализируются преимущества и недостатки каждого из этих подхо- дов к решению задач, интенсивно использующих знания. В главе 8 приводятся модели рассуждений в условиях неопределенности и методы использования ненадежной информации. Здесь обсуждаются байесовские модели, сети доверия (belief network), модель Демпстера-Шафера и неточный вывод с учетом фактора уверенности, применяемые для рассуждения в условиях неопределенности. Описаны приемы поддержания истинности, рассуждения на основе минимальных моделей и логи- ческой абдукции, а также алгоритм дерева клик для байесовских сетей доверия. В части IV (главы 9-11) подробно изложены вопросы машинного обучения. В главе 9 детально изучаются алгоритмы символьного обучения— обширной области исследова- нии, связанной с решением множества различных задач. Зги алгоритмы различаются по своему назначению, используемым обучающим данным, стратегиям обучения и пред- ставлениям знаний. К символьным алгоритмам обучения относятся индукция, концепту- альное обучение, поиск в пространстве версий и ID3. Подчеркивается роль индуктивного порога, обобшения на основе реальных данных и эффективного использования знаний при обучении на единственном примере на основе объяснения. Изучение категорий и кластеризация понятий представлены в ракурсе обучения без учителя. Главу завершает раздел, посвященный обучению с подкреплением,— способности интегрировать рат ную связь от внешней среды и политику принятия новых решений. В главе 10 описаны нейронные cent, которые зачастую называют•сзо-симво.ь • ИЛИ коннекщюнистскими. моделями обучения. В нейронной сети информация_ - рирована неявно. Она распространяется между набором взаимосвязанных ии Учетом весовых коэффициентов, а обучение сводится к пересортиров*‘ обучение весов узлов сети. Рассмотрено множество нейроподобных спространеши1. персептрона, метод обратного распространения ошиоки и и ассо- Изучены модели Кохонена. Гроссберга и Хебба. Описана аттракторная «нативное обучение, в том числе сети Хопфилда. обучению представлены в Генетические алгоритмы и эмерджентныи , н ЭВ01юиии. После не- главе 11. с этой точки зрения обучение — это про с ltiropm(oB рассматривается скольких примеров решения задач на основе ген болсс обших проблем. К ним возможность применения этой методологии для ре 23 Предисловие
л „,,Ш1 и гедаточсское программирование. Затем описывает, „«оси» сипсмы „з области ,схусствеинои жизни", в ся "«пизланое'' »бУ“,|е 'Т ' вычислений, реализованных в институте Сант,. „,,е щмволига ПР“>"Р ” „ „„.„„„„оставляются три подхода к машинному о6у,с. Фе. в главе 16 „ змерджентный). кию (символьный. ‘°™-т .„одолжается представление важных областей применения Власте у(„»ы 2 ' Р£ЙШ„Х о6ла«™ является автоматическое доказательно технологии ИИ. Ода™ ка,жиетжте рассуждениями. В главе 12 теорем, которое еал,13ующие этот подход, включая Logic Theorist и Gen. сымотея первые op Р тташк уделяется разрешающим процеду. —слоттеорем, а особенно резолюции на основе опровержения. Рассмотре- S™Хее сложные методы вывода на основе шперрезолюцни и парамодуляцнн. В “ ™«вии интерпретатор PROLOG отжав как система вывода на основе хорновскнх выражений и резолюшш. а вычисления на PROLOG — как пример парадигмы логиче- скаго программирования. „. Глава 13 посвящена проблеме понимания естественного языка. 1радиционный под- ход к пониманию языка, проиллюстрированный с использованием многих описанных в главе 6 семантических структур, в этом издании дополнен описанием стохастического подхода. Здесь рассмотрены марковские модели, CART-деревья, метод взаимной класте- ризации информации и статистического грамматического разбора. В заключении глады приводится несколько примеров, включая приложения по восполнению текста и методы реферирования текстов для использования в WWW. В части VI описаны языки LISP и PROLOG. В главе 14 рассматривается PROLOG, а в главе 15— LISP. Эти языки представлены как средства решения задач искусственного интеллекта на основе изложенных в предыдущих главах методов поиска, включая алго- ритмы поиска в ширину, глубину и '‘жадный" алгоритм. Реализация этих методов поиска проблемно-независима, поэтому ее можно применять для создания оболочек поиска в экспертных системах на основе правил построения семантических сетей, систем пони- мания естественного языка и обучения. И, наконец, глава 16 служит эпилогом этой книги. В ней рассмотрены возможности науки о интеллектуальных системах, а также альтернативные современные подходы Об- суждаются современные рамки искусственного интеллекта и перспективы его развития. Использование книги Искусственный интеллект — это обширная область, поэтому объем этой книги доста- точно велик. Хотя для детального изучения всего материала потребуется не один се- местр, МЫ скомпоновали книг/ таким образом, чтобы ее можно было читать по частям. , отдельнь1е части материала, можно сформировать семестровый и годичный (двухсемсетровыи) курс изучения предмета. чая теооиьо^РпГ’ЧТ° СТуАенть1 у’жс прослушали курсы дискретной математики, вклю- разделов (2.1 и Ч <|\аУ>В«1 Теор1,1° граФ0В- Если это не так, то при изучении начальных же, что студенты изучи Х0ДИМ0 уделИ1Ъ этим теориям больше внимания. Надеемся так тодам рекурсивного ппиг^0 "° Структурам Данных, в том числе деревьям, графам, ме это НС гак, то Обратите пс<^ ПОМОШЬН) стеков, очередей и приоритетных очередей- Есл» е внимание на начальные разделы глав 3, 4 и 5- В семестровом курсе мы кратко останавливаемся на первых частях Посде такой подготовки студенты готовы к восприятию материала части III. Затем мы изучаем PROLOG и LISP (часть VI) и требуем от студентов построения различных представлений и реализации стратегии поиска, описанных в первых главах. Один из языков, к примеру PROLOG, можно ввести в первой части курса, а затем использовать его при изучении структур данных и алгоритмов поиска. По нашему мнению, полезным средством построе- ния систем решения задач на основе правил и знаний являются метаинтерпретаторы, пред- ставленные в гл'хве. посвяшенной обработке естественного языка. PROLOG, в свою оче- редь, — отличное средство для построения систем понимания естественного языка. В двухсеместровом курсе имеется возможность рассмотреть области применения ИИ, описанные в частях IV и V. Особенно это касается машинного обучения. Кроме того, студенты реализуют гораздо более серьезные программные проекты. На наш взгляд, во втором семестре очень важно, чтобы студенты познакомились с основными первоисточ- никами знаний по искусственному интеллекту. Студенты должны понимать, где мы на- ходимся в данный момент, как мы к этому пришли, и представлять себе перспективы развития ИИ. Для этой цели мы используем обзор [Luger, 1995). Упомянутые в книге алгоритмы написаны на паскалеподобном псевдокоде. При этом используются управляющие структуры языка Паскаль (Pascal) и описания проверок и операций на родном языке. К числу управляющих структур Паскаля мы добавили две новые полезные конструкции. Первая из них — модифицированный оператор case, ко- торый не просто сравнивает значение переменной с постоянной меткой, как в обычном Паскале, но и позволяет связывать с каждым элементом произвольною логическую про- верку. Оператор case по порядку выполняет эта проверки до тех пор, пока результат одной из них не примет значение "истина". Тогда выполняется соответствующее дейст- вие. Все остальные действия игнорируются. Читатели, знакомые с языком LISP, сразу же заметят, что этот оператор обладает той же семантикой, что и оператор cond из LISP. Вторым нововведением является оператор return, зависящий от одного аргумента. Он может встречаться в любом месте процедуры или функции. При достижении этого оператора программа немедленно завершает выполнение функции и возвращает резуль- тат. Остальной стиль псевдокода соответствует синтаксису языка Pascal Дополнительный материал, доступный через Internet Представленный в книге код на языках PROLOG и LISP читатели могут получить через Internet Там же можно найти подробные методические рекомендации по использованию этой книги для преподавателей Эти файлы находятся по адресу ww, booksites .net/luger или на личной странице автора www. cs .unm.edu/-luger/. Дополнительные материалы и программные средства, в том числе публикуемые изда- тельствами Addison-Wesley и Pearson Education, находятся по адресу ww. aw. сот/ cs / и www.pearsoneduc. сот/computing. .Автор с удовольствием ожидает электронных писем читателей по адресу luger@cs . unm. edu. благодарности Во-первых, мы хотим поблагодарить Билла Стабблефнлдз — соавтора первых трех из- даний за более чем десятилетний труд над этой книгой. Спасибо также многим рецензен- Предисловие Предисловие 24
„маниа В их числе Дэннис Бахлср (Dennis помогли подготовить эти чстерт с|шп) Питер Колингауд (Рек, ™ W 6Р,тк «Skona В"ю'л,-Х"\ро Дуглас (Sarah Вощ». Кристоф Жиред- 0аЬ. ' ^vi> Джон Дональд (John Do"> ?’ (Andrew Kosoresov). Крис Малкольм ? 8 ЭШРГВпюс Попп-р (Brwe Porter). Джуд Шавлик (Jude X M31co«. M My»“ <H»y Д (Marc0 Va11orla) „ Боб Верофф (Bob Ver- SlrarU).K»po C«P" (Carl s,rn,. „р(даж„,,я „ комментарии, направляемые об) Мы также благодарны и Тслямк по электронной почте. непосредственно авторам “|1Г" признателен своим аспирантам. Благодаря „м За помощь в реорганизации натерт • в ы(. описана эволюция схем представлений ди была переработана чзстъ1П' ‘ “T’L „дольный раздел по машинному обучению, а во- дам искусственного иктечех-га. перенесены в конец книги. Мы благодарны Даиу просы понимания естественных материала по абдуиивкому выводу для главы 8. 10. посвя—-, коннскцнонистско- Карлу Стерну (Carl Stem) . „писании стохастических моделей для гла- •'У обучению. Вреду Сапа (Jared пол дар “rt’> '„Мел "да'Ха.™. D«ani) из Нидерландов, а также Леонардо Боттами (Ireonardo В« ^арлсои <;“йа" ИЛ”’ВД ” Ве^бР™’™’- СР™' “«Риканских X шоГследует rjnrn, Марека Парков™ (Marek Perkowskr) из портлендского уии- и Джона Шеппарда (John Sheppard) из университета имени Джона Хопкинса. Барак Потмуттер (Barak ftamutter) рецензировал главы по машинному обучению. И. наконец, Джо- зеф Льюис (Joseph Lewis). Крис Малколм (Chris Malcolm). Брэйден Мак-Гоннигл (Brendan McGonnirie) п Агаша Танг (Akasha Tang) приняли участие в обсуждении главы 16. Автор благодарен издательству Academic Press за разрешение на перепечатку боль- шей части материала из главы 10. которая была ранее опубликована в [Luger, 1994). И, наконец, большое спасибо студентам университета Нью-Мексико, которые более десяти лет изучали эту книгу и описанные в ней программные средства. Они существенно рас- ширили наш горизонт, а также позволили избавиться от опечаток и неточностей. Спасибо моим друзьям из издательства Addison-Wesley за поддержку при написании книги, особенно Алану Алту (Alan Apt) за помощь в подготовке первого издания, Лизе Моллер (Lisa Moller) и Мэри Тюдор (Mary Tudor) за участие в подготовке второго, Вик- тории Хендерсон (Victoria Henderson), Луизе Вилсон (Louise Wilson) и Карен Мосман (Karen Mosman) за содействие в работе над третьим, а также Кэйт Мансфилд (Keith Mansfield), Карен Сюзерланд (Karen Sutherland) и Аните Аткинсон (Anite Atkinson) за поддержку этого четвертого издания. Особая благодарность Линде Цнцарелле (Linda Ci- carella) из университета Нью-Мексико за помощь в подготовке рисунков. Спасибо большое Томасу Бэрроу (Thomas Barrow) — всемирно признанному худож- нику и профессору искусств университета Нью-Мексико, который сделал семь фотогра- фии для этой книги. Во многих местах мы использовали рисунки и цитаты из работ других авторов. Мы и“Р"“ а°Т0Р-а“ " шяател™ 33 разрешение на использование этого материала. его спяv и глубину интеляект~ это Увлекательная и благодарнвл дисциплина. Осознав его сняу я глубину, вы получите удовольствие от изучения этой книги. Джордж Люгер 1 июля 2001 года Часть I Искусственный интеллект: его истоки и проблемы Вс&м)’ есть начало, как говорил Санчо Панса, и это начало должно опи- раться на нечто, ему предшествующее. Индусы придумали слона, кото- рый удерживал мир. но им пришлось поставить его на черепаху. Нужно отметить, что изобретение состоит в сотворении не из пустоты, но из хаоса: в первую очередь следует позаботиться о материале... — Мзрн Шелли (Магу Shelley), Франкенштейн Попытка дать определение искусственному интеллекту Искусственный интеллект (ИИ) .можно определить как область компьютерной науки, занимающуюся автоматизацией разумного поведения. Это определение наиболее точно соответствует содержанию дайной книги, поскольку в ней ИИ рассматривается как часть компьютерной науки, которая опирается на ее теоретические и прикладные прин- ципы. Эти принципы сводятся к структурам данных, используемым для представления знаний, алгоритмам применения этих знаний, а также языкам н методикам программиро- вания, используемым при их реализации. Тем не менее это определение имеет существенный недостаток, поскольку само по- нятие интеллекта не очень понятно и четко сформулировано. Большинство из нас увере- ны, что смогут отличить “разумное поведение", когда с ним столкнутся. Однако вряд ли кто-нибудь сможет дать интеллекту определение, достаточно конкретное для оценки предположительно разумной компьютерной программы и одновременно отражающее жизнеспособность и сложность человеческого разума. Итак, проблема определения искусственного интеллекта сводится к проблеме опре- Деления интеллекта вообще: является ли он чем-то единым, или же этот термин объеди- няет набор разрозненных способностей? В какой мере интеллект можно создать, а в ка- Предисловие 26
, Что именно происходит при таком создании? Что такое кой он существует априори, чш 0 наличи„ интеллекта только по на- творчество? Что такое интуиция. , cBi^eTCJ]bCTB0 наличня некоего скрытого ме- блюдаемому поведению, или же тр ных тканях живых существ, и как можно ханизма? Как представляются 3“н" меетуальных устройств? Что такое самоанализ и применить это в проекторов необходимо ли создавать интеллектуальную Lн—“Z « 6о“чувств н опыта, присущего лишь биологическим существам. На эти вопросы ответа пока не найдено, ио все они помогли сформировать задачи и методологию, составляющие основу современного ИИ. Отчасти привлекательность ис- кусственного интеллекта в том и состоит, что ои является оригинальным и мощным ору- дием для исследования именно этих проблем. ИИ предоставляет средство и испытатель- ную модель для теорий интеллекта: такие теории могут быть переформулированы на языке компьютерных программ, а затем испытаны при их выполнении. По этим причинам наше первоначальное определение, очевидно, не дает однозначной характеристики для этой области науки. Оно лишь ставит новые вопросы и открывает парадоксы в области, одной из главных задач которой является поиск самоопределения. Однако проблема поиска точного определения ИИ вполне объяснима. Изучение искусст- венного интеллекта— еще молодая дисциплина, и ее структура, круг вопросов и мето- дики не так четко определены, как в более зрелых науках, например, физике. Искусственный интеллект призван расширить возможности компьютерных наук, а не определить их границы. Одной из важных задач, стоящих перед исследователями, явля- ется поддержание этих усилий ясными теоретическими принципами. Из-за специфики проблем и целей искусственный интеллект не поддается простому определению. Поэтому на первых порах просто опишем его как спектр проблем и мето- домят, изучаемых разработчиками систем искусственного интеллекта. Это опреде- ление может показаться глупым и бессмысленным, но оно отражает важный факт: искус- ственный интеллект, как и любая наука, является сферой интересов человека и лучше всего рассматривать его в этом контексте. подХ“ ГТ ВКЛЮЧ ы ИИ' 1’ассма,’’нвает некоторый крут проблем и разрабатывает О ИЗЛ0жение ИСГ°РИИ искусственного интеллекта, рассказ рые проблемы c JaTZ "ОЛОЖе,,нькв ',снов>' науки, поясняет, почему некото- на вооружение методы, омываема зе "к™™. " "°ЧеМУ ИХ 6bI™ ВЗЯ™ 28 -----------------------’— -----------______ ЧаСТЬ ' ИСКУССТВеннЫЙ интеллект: его истоки и проблемы
Искусственный интеллект: история развития и области приложения Слушайте далее и вы еще более изумитесь ремеслам и богатствам природы, от- крытым мною. Величайшим было такое: в старину, если человек заболевал, у него не было защиты против болезни, ни исцеляющей еды, ни питья, ни мази; люди вы- мирали от отсутствия лекарств, но я показал им, как смешивать мягкие ингредиенты, чтобы изгонять всяческие хвори... Это я сделал видимыми для человеческих очей пылающие знаки в небесах, что до тех пор были в тумане. Недра земли, скрытое благословение человечества, медь, железо, серебро и золото — осмелится ли кто-нибудь заявить, что он открыл их ранее меня? Я уверен, никто, если он не .лжец- Говоря кратко: все ремесла, что есть v смертных, идут от Прометея. — Эсхил (Aeschylus), Прикованный Прометей Отношение к интеллекту, знанию и человеческому -___2££стерству' Не только'10'' ГОВОРНТ 0 результатах своего неповиновения богам Олимпа: его целью было "сообпа ^'кРаСть огонь для людей, но и просветить их посредством дара ума. nous, или же н льности . Интеллект является основой всех разработанных человеком техноло- глубок^8И;1ИЗаиНН Во°бще. Работа классического греческого драматурга иллюстрирует Прим И даВнюю уверенность в необычайной силе знания. Искусственный интеллект ТСЯ В° ВСеХ сФсРах наследия Прометея: медицине, психологии, биологии, астро- . геологи» н многих областях науки, которые Эсхил не в силах был себе представить. За ТЯ ПОС1УПОК Прометея освободил людей от невежества, он навлек на него гнев Зев- вать п^' знаний, прежде принадлежавших лишь богам Олимпа Зевс приказал прико- ТРМ P°ft,eTe* к голой скале, чтобы стихии причиняли ему вечные страдания. Мысль о ир’ ЧТ°„ человеческое стремление к знаниям является проступком перед богами или од°й, прочно укоренилась в западной философии. На ней основана история Эдема,
Лаятс и Мильтона. И Шекспир, и древнегреческие траг„к„ она пронизывает сочинения д 6сдствий. Упорная вера в то. что жажда знаний считали амбиции разума пр передала и эпоху Возрождения, и век Просае- в конечном счете привел открытия XIX и XX веков. Поэтому не стоит ““Хя там". ™ .ручных и общественных кругах не утихает бурная полемика „„ "Тв\Х^ нс ривема древн'"' Тх 7б"тельнь“ послсл’ J, „та«екгуального честолюбия, она. скорее сделала их более вероятными, а мо- жст , неотвратимыми. Легенды о Прометее. Еве. Фаусте пересказываются иа языке тех- нелопггеского общества. В своем предисловии к работе ' Франкенштейн (которая, кета- т„. носит подзаголовок "Современный Прометей”) Мэри Шелли пишет: -я была верным молчаливым слушателем долгих бесед между лордом Байроном и Шсъзи В одной из них обсуждались различные философские доктрины, в частности, сущ- ность первопричин жизни, возможность их постижения и изучения. Они говорили об экс- периментах доктора Дарвина (я имею в виду не то, что действительно делал доктор, а то, что ему приписывали), который хранил вермишель в стеклянной емкости, пока она не на- чала сама двигаться каким-то непостижимым образом. Эго не значит, что таким образом можно дать жизнь. Но, должно быть, возможно оживить труп. Об этом свидетельствует гальванизм- может быть, и можно изготовить составные части создания, соединить их вме- сте и наполнить живительным теплом". [Battler, 1998] Шелли демонстрирует нам, в какой мере научные достижения, такие как работы Дар- вина и открытие электричества, убедили даже далеких от науки людей в том, что творе- ния природы не являются божественной тайной — их можно “разбирать” и систематиче- ски изучать. Чудовище Франкенштейна— не продукт шаманских заклинаний пли сделок с преисподней; его собрали из отдельно “изготовленных” компонентов и наполнили жи- вительной силой электричества. Хотя наука девятнадцатого века не способна была по- нять цель изучения принципов и создания в полной мере разумного агента, она призна- вала мысль, что тайны жизни и разума можно приоткрыть с помощью научного анализа. 1.1.1. Историческая подоплека К тому времени как Мэри Шелли окончательно и, вероятно бесповоротно соединила современную науку с мифом о Прометее, философские корни современных работ в сфс- и ’ ?^™^НН0Г0’,ителяскта Развивались уже несколько тысячелетий. Хотя моральные данное введем ПР° ?еМЫ' лодиятые искусственным интеллектом, интересны и важны, S on:Хй течк^Г;^""11 КаСаеТСЯ —сального наследия ИИ. Логнче- зывал Данте “митми ТИСТОРИИ можно считать гений Аристотеля, или, как его на- тайны и предчувствия ™ ЗНаст" Аристотель объединил интуитивное понимание, мышлением, которому суаде™0‘вЬи“1<0Й ’PM‘'UI™ С анализом и строгим Для Аристотеля ZX"' стан®4™' Для современной науки. работе "Физика’' он определил 0»™“*"'’'” аспектом ПРИРОДЫ была се изменчивость. В ся вещей". Он делал различие „сжат *'1ЛОС°*“Ю "Рнроды” как "изучение изменяющих- из материи бронзы и имеет форм • атер,,еи ” формой: например, скульптура сделана бронзе придают другую форму Ра ЧС”°“С'<а 1ь«е"™ис происходит в тот момент, когда базис для современных научных аЛелен,,е_матеРи,1 11 формы представляет философским ракцня данных. В любом исчм<.п<..ЛЦе."ЦИИ' Таких как символьное исчисление или абст- 1 н лаже в работе с числами!) мы манипулируем об- 30 Искусственный интеллект: его истоки и проблемы разами, которые являются формой электромагнитной материи, а изменения формы этой материи передают аспекты процесса решения. Абстрагирование формы от сред^в™ подставления не только позволяет производить вычисления над этой формой ноТел^ ж„т основой теории структур данных _ ядра современных компьютерных наук В своей работе Метафизика" Аристотель разработал теории неизменных вещей- космологию и теологию. Но ближе всего к искусственному интеллекту подходит аристота- невская эпистемолог™, или наука познания, обсуждаемая в сто “Логике" Аристотель счи- тал згу книгу важным инструментом познания, поскольку чувствовал, что основой знания является изучение самой мысли. В “Логике" рассматриваются вопросы истаиноста сужле- ний на основе их взаимосвязи с другими истинными утверждениями. Например если из- вестно. что “все люди смертны’’ и “Сократ— человек”, то можно заключить, что “Сократ — смертен’’. В этом примере силлогизма используется дедуктивное правило modus ponens. Хотя формальная аксиоматизация логических рассуждений в полном объеме пред- стаалена лишь в работах Готлоба Фреге. Бертрана Рассела, Курта Геделя. Алана Тьюринга. Альфреда Тарского и других, корни этих работ можно проследить вплоть до Аристотеля. Идеи Ренессанса, основанные на греческой традиции, дали толчок развитию иного, мощного представления о человечестве и его роли в природе. На смену мистицизму' как средству объяснения вселенной пришел эмпиризм. Часы (а следовательно, и расписание работы фабрик) заменили собой ритм природы для тысяч городских жителей. Большинство современных социальных и физических теорий уходят корнями к идее о возможности ма- тематического анализа и постижимости природных или искусственных процессов. В част- ности, ученые и философы поняли, что мышление само по себе как образ представления знаний является трудным, но принципиальным предметом для научного изучения. Должно быть, главным событием в развитей современных представлении стала рево- люция, произведенная Коперником,— замена древней геоцентрической модели вселен- ной, где Земля и другие планеты на самом деле вращаются вокруг Солнца. После столе- тий господства “очевидности”, в которой научное объяснение природы и космоса согла- совывалось с религиозным учением и здравым смыслом, была предложена радикально иная (и вовсе нс очевидная) модель, объясняющая движение небесных тел. Возможно в первый раз наши представления о мире рассматривались как фундаментально отлич- ные от их видимости. Этот разрыв между человеческим разумом и окружающей его ре- альностью, между понятиями о вещах и самими вешами принципиален для современной теории интеллекта и его организации. Эта брешь была расширена работами Галилея, чьи научные наблюдения еще более расходились с “очевидными" истинами о мире, и чье развитие математики как инструмента для описания мира усилило разрыв между миром и нашими идеями о нем. Именно из этой “бреши” развивалось современное представле- ние о формировании разума: самоанализ стал важным мотивом в литературе, философы начали изучать эпистемологию и математику', и систематизированное применение науч- ного метола стало соперничать с чувствами как орудиями познания мира. Хотя в XVII и XVIII столетиях было получено немало результатов в и смежных областях, ограничимся рассмотрением работ Рене Декарта, -шаме- тральной фигурой в развитии современных концепций мышления и ,ючительн0 нитых “Размышлениях” Декарт сделал попытку найти основу рсальнс « методам., когнитивной интроспекции. Отвергая информацию, П<ХТ>^Ш>^ чувств, как неблагонадежную, Декарт был вынужден подвергнуть одащефизпч—фаи ™«>.H< ватъ существование самого себя, vogito ergo s v Глава 1. Искусственный интеллект истерив развития и области приложения 31
„ „„ лостовсрно установил свое собственное существование как мь1с. вую”). После ТОГО и: о д ’ ССП|0Ю„„е Бога как творца и. в конечном счете, пад. лящей сущности. Декар необходимого творения Господа. в°— — *— JХТето ттеллестуальнмм осмыслением стаи таким значительным, что появ„. лась" возможность рассматривать процесс мышления отдельно от чувственного военр,,. Z предмета осмысления. Во-вторых, связь между разумом и физическим м„р„м X столь тонкой, что понадобилось вмешательство всемилостивого Бога, чтобы дать достоверное знание о физическом мире! Это понимание дуализма разума и физического мира пронизывает всю картезианскую мысль, включая открытие аналитической геомет- рии, Как иначе Декарт мог объединить столь •'практичную' область математики, каК геометрия, с таким абстрактным математическим основанием, как алгебра? Почему эта философская дискуссия включена в книгу по искусственному интеллекту? Для ИИ особое значение имеют два важных следствия этих работ. 1. Разделив разум и физический мир, Декарт и его последователи установили, что строение идей о мире не обязательно соответствует изучаемому предмету. На этом основывается методология ИИ, а также эпистемологии, психологии, большей части высшей математики и современной литературы: ментальные процессы существуют сами по себе, подчиняются своим законам и могут изучаться посредством себя же. 2. Поскольку разум и тело оказались разделенными, философы сочли нужным найти способ воссоединить их, ведь взаимодействие между умственным, res cogitans, и физическим, res extensa, необходимо для человеческого существования. По поводу проблемы ‘Ума и тела” были написаны миллионы трудов и было предло- жено множество решений, однако ни одно из них не смогло успешно объяснить очевид- ные взаимодействия между умственными состояниями и физическими действиями. Наи- более приемлемый ответ на этот вопрос, дающий необходимое основание для изучения состоит в том, что ум и тело вовсе не принципиально разные сущности. Согласно этой точке зрения ментальные процессы происходят в таких физических системах, как мозг (или компьютер). Умственные процессы, как и физические, можно, в конечном сче- С П0МОшью формальной математики. Или, как сказал философ X VII века Гоббс (1651), “мышление есть лишь расчет”. 1.1.2. Развитие логики шагами в его iBvieu””0 СТадо рассМатРИ8атЬся как форма вычислений, последующими в ’ жДтек» мо11^хТвХ":гтого в ж ° абстрактно отражают струит™, .юи„„. У “““ У'1енис 0 пролставлениях. которые Формализация reoZ“аимосмз™ Реального мира [Euler. 1735]. поиск в пространстве со- ннтеллскта. Графы можно использовать nnK0UUCnTyaJlbHWr‘ ИнстРУМснт искусственного Узлы графа состояний (state soace и,пм Модел»Рования скрытой структуры задачи- ння задачи; ребра графа отражают «. ₽ ,,релставдя{от собой возможные стадии реше- озаключеиия, ходы в игре или другие шаги в реше- ь I. Искусственный интеллект: его истоки и проблемы нии. Решение задачи это процесс поиска пути к решению на графе состояний (см. раздел 1.3 и главу 3). Описывая все пространство решений задачи, графы состояний предоставляют мощный инструмент для измерения структурированности и сложности проблем, анализа эффективности, корректности и общности стратегий решения. Как один из основоположников науки исследования операций, а также разработчик первых программируемых механических вычислительных устройств, математик XIX в. Чарльз Бэббидж может также считаться одним из первых практиков искусственного ин- теллекта [Morrison и Morrison, 1961]. “Разностная машина" Бэббиджа являлась специали- зированным устройством для вычисления значений некоторых полиномиальных функ- ций и была предшественницей его "аналитической машины". Аналитическая машин*, спроектированная, но не построенная при жизни Бэббиджа, была универсальным про- граммируемым вычислительным устройством, которое предвосхитило многие архитек- турные положения современных компьютеров. Описывая аналитическую машину, Ада Лавлейс [Lovelace. 1961], друг Бэббиджа, его помощница и единомышленница, отмечала: “Можно сказать, что аналитическая машина плетет алгебраические узоры подобно тому, как станок Жаккарда ткет узоры из цветов и листьев. В этом, как нам кажется, заключается куда больше оригинальности, чем в том, на что могла бы претендовать разностная машина”. Бэббиджа вдохновляло желание применить технологию его времени для освобожде- ния людей от рутины арифметических вычислений. В этом отношении, как и в представ- лении о вычислительных машинах как механических устройствах, Бэббидж рассуждал всецело с позиций XIX века. Тем не менее его аналитическая машина также основыва- лась на многих идеях современности, таких как разделение памяти и процессора (“склад” и “мельница”, в терминах Бэббиджа), концепция цифровой, а не аналоговой машины и программируемость, основанная на выполнении серий операций, закодированных на картонных перфокартах. Отличительная черта описания Ады Лавлейс и работы Бэббид- жа в целом — это отношение к “узорам” алгебраических взаимосвязей как сущностям, которые могут быть изучены, охарактеризованы, наконец, реализованы и подвергнуты механическим манипуляциям без заботы о конкретных значениях, которые проходят че- рез "мельницу" вычислительной машины. Это и есть реализация принципа ‘ абстракции и манипуляции формой", впервые описанного Аристотелем. Целью создания формального языка для описания мышления задавался также Джордж Буль, математик XIX столетия, чью работу необходимо упомянуть при рассмот- рении истоков искусственного интеллекта [Boole, 1847, 1854]. Хотя Буль внес вклад во множество областей математики, его наиболее известным открытием стала математиче- ская формализация законов логики— свершение, сформировавшее самую сердцевину современных компьютерных наук. Роль булевой алгебры в проектировании логический цепей хорошо всем известна, однако цели самого Буля в разработке его системы по духу ближе к современному ИИ. В первой главе книги "Исследование законов мышления, на которых основываются математические теории логики и вероятностей Буль описывает свои цели следующим образом. Исследовать фундаментальные законы таких операций разума, какими совершается рассу- ждение: дать нм выражение в символическом языке исчисления и на этом основания воз- двигнуть науку логики и обучать логическому методу; - .наконец. из различных элементов истины, усмотренной в этих изысканиях, составить некоторые вероятные догадки кара- тельно природы и склада человеческого ума. Глава 1. Искусственный интеллект: история развития и области приложения 32
в необычайной силе и простоте предложенной им Значимость работы Буля состоит л) “ИЛИ" (обозначаемая + |1ЛИ v) н системы. Три операции: И tooo op0 С1-о логического исчисления. Эти ••НЕ" (обозначаемая символом ^w,raui формальной логики, включая разра- опершим стали базой для поел ду значения этих символов практически мден- ботку современных к0МПЬЮТ*^’мки^ операш«м. Буль отмечал, что -символы логики тачными соответствующим ло ^тооомусимволы количества как таковые нс имеют относятся к специальному зако кюкдого элемента X алгебры Х*Х=Х отношения". Этот ‘закон . р• повгорсние не может изменить это знание), (поскольку мы знаем истмнн <значеИ11й всего до двух чисел, которые удовдетво- это пршело к “П»»’™"1' стандартные определения операций булевого умноже- рякп этому уравнен"^„'х соображений. v ё»“““ма не только легла в основу двоичной арифметики, но и „оказала, что необыХо простая формаяьная снстема может передать полную мощь логики. Это «оженнГХтемо. разработанная Булем для демонстрации этого факта, стали Еаментон для асех попыток современности формализовать логику, от работы [Whitehead н Russell. 1950]. последующих работ Тьюринга и Геделя до современных сис- тем автоматических рассуждений. Готлоб Фреге (Frege) в своих “Основах арифметики’ [Frege. 18841 создал ясный и точ- ный язык спецификации для описания основ арифметики. С помощью этого языка Фреге формализовал многие вопросы, затронутые ранее в аристотелевской Логике . Язык Фреге, сейчас именуемый исчислением предикатов первого порядка, служит инструментом для записи теорем и задания значений истинности, которые образуют элементы математиче- ских умозаключений и описывают аксиоматический базис “смысла” этих выражений. Предполагалось, что формальная система исчисления предикатов, которая включает сим- вазы предикатов, теорию функций и кваятироавнных переменных, станет языком для опи- сания математики и ее философских основ. Она также сыграла принципиальную роль в создании теории представления для искусственного интеллекта (см. главу 2). Исчисление предикатов первого порядка обеспечивает средства автоматизации рассуждений: язык для построения выражений, теорию, позволяющую судить об их смысле, и логически безу- пречное исчисление для вывода новых истинных выражений. Работа Рассела и Уайтхеда особенно важна для фундаментальных принципов ИИ, по- скольку заявленной ими целью было вывести из набора аксиом путем формальных опе- раций всю математику. Хотя многие математические системы строились на основе акси- ом. интересно отношение Рассела и Уайтхеда к математике как к чисто формальной сис- теме. Это означает, что аксиомы и теоремы должны рассматриваться исключительно как наборы символов: доказательства должны выводиться лишь посредством применения строго определенных правил для манипулирования такими строками. При этом исключа- ется использование интуиции или "смысла” теорем в качестве основы доказательств. Каждый шаг доказательства следует из строгого применения формальных (синтаксических) правил к аксиомам или уже выведенным теоремам, даже если в тради- ционных доказательствах этот шаг назывался "очевидным". Смысл, содержащийся в теоремая и аксиомах системы, имеет отношение только к внешнему миру и совершенно ч«:шши,^^Г,ИТк0Г0 вывода' Такой полностью формальный (реализуемый техни- венн\ю основу ^я'р П0М0Я К ^тематическим умозаключениям предоставил сушест- ГХннХнсГЛ0 аетоматнзации в Р^ьных вычислительных машинах. Логиче- ф рмальные правила вывода, разработанные Расселом и Уайтхедом. лежат в основе систем автоматического доказательства теорем, рассматриваемых в гла- ве 12, а также составляют теоретические основы искусственного интеллекта. Альфред Тарский (Tarski) — еще один математик, чьи работы сыграли принципиаль- ную роль в процессе формирования искусственного интеллекта. Тарский (Tarski. 1944, 1956J создал теорию ссылок (theory of reference), согласно которой пра- вильно построенные формулы (well-formed formulae) Фреге или Рассела-Уайтхеда опре- деленным образом ссылаются на объекты реального мира (см. главу 2). Эта концепция лежит в основе большинства теорий формальной семантики. В работе “Семантическая концепция истинности и основание семантики" Тарский описывает свою теорию ссылок и взаимосвязей между значениями истинности. Современные исследователи компьютер- ных наук связали эту теорию с языками программирования и другими компьютерными реалиями [Burstall и Darlington, 1977). Хотя в XVIH-XIX вв. и начале XX в. формализация науки и математики создала ин- теллектуальные предпосылки для изучения искусственного интеллекта, он не стал жиз- неспособной научной дисциплиной до появления цифровых вычислительных машин. К концу 1940-х гг. электронные цифровые компьютеры продемонстрировали свои возмож- ности в предоставлении памяти в процессорной мощности, требуемой для интеллекту- альных программ. Стало возможным реализовать формальные системы рассуждений в машине и эмпирически испытать их достаточность для проявления разумности. Сущест- венной составляющей теории искусственного интеллекта является взгляд на цифровые компьютеры как на средство создания и проверки теорий интеллекта. Но цифровые компьютеры — не только рабочая лошадка для испытания теорий интел- лекта. Их архитектура наталкивает на специфичное представление таких теорий: интел- лект — это способ обработки информации. Например, концепция поиска как методики ре- шения задач обязана своим появлением в большей степени последовательному характеру компьютерных операции, нежели какой-либо биологической модели интеллекта. Большин- ство программ ИИ представляют знания на некотором формальном языке, а затем обраба- тывают их в соответствии с алгоритмами, следуя заложенному еще фон Нейманом принци- пу разделения данных и программы. Формальная логика возникла как важный инструмент представления для исследований ИИ. равно как теория графов играет неоценимую роль в анализе пространства, а также предоставляет основу для семантических сетей и схожих моделей. Эти методы и формализмы детально обсуждаются в последующих главах книги. Здесь они упоминаются для подчеркивания симбиотических отношений между цифровыми компьютерами и теоретическими основами искусственного интеллекта. Мы часто забываем, что инструменты, которые мы создаем для своих целей, влияют своим устройством и ограничениями на формирование наших представлений о мире. Та- кое казалось бы стесняющее наш кругозор взаимодействие является важным аспектом развития человеческого знания: инструмент (а научные теории, в конечном счете, тоже инструменты) создается для решения конкретной проблемы По мере применения и со- вершенствования инструмент подсказывает другие способы его использования, которые приводят к новым вопросам н. в конце концов, разработке новых инструментов. 1.1.3. Тест Тьюринга Одна из первых работ, посвященных вопросу о машинном разуме в отношении со- временных цифровых компьютеров. “Вычислительные машины и интеллект была напи- сана в 1950 г. британским математиком Аланом Тьюрингом н опубликована в журнале 34 Часть 1. Искусственный интеллект: его истоки и проблемы Глава 1. Искусственный интеллект: история развития и области приложения
В самом вопросе (что такое “думать"? что такое Л _ояет актуальности. как по части аргументов против воз. •Mind" (Turing. i950] OM;f ”РЧИСЛИТСльной машины, так и по части ответов на них. МОЖНОСП1 создания разумном ““ СВО||М трудам по теории вычислимости. рас- Тьюринг. известный в основа машину действительно думать. Отмечая, что смотрел вопрос о том. можно _ „Лпппс<» /что такое “думать"? что -такт.» фундаментальная паш10валь№ГО ответа, он предложил заменить вд. •мадижа"?) исключаетдоз^ опрм^вяым змп„р„,ескии тестом. прос об интеллекте Рис. 1.1. Тест Тьюринга Тест Тьюринга сравнивает способности предположительно разумной машины со спо- собностями человека— лучшим и единственным стандартом разумного поведения. В тесте, который Тьюринг назвал “имитационной игрой", машину и ее человеческого со- перника (следователя) помешают в разные комнаты, отделенные от комнаты, в которой находится "имитатор” (рис. 1.1). Следователь нс должен видеть их пли говорить с ними напрямую— он сообщается с ними исключительно с помощью текстового устройства, например, компьютерного терминала. Следователь должен отличить компьютер от чело- века исключительно на основе их ответов на вопросы, задаваемые через это устройство. Если же следователь не может отличить машину от человека, тогда, утверждает Тью- ринг, машину можно считать разумной. Изолируя следователя от машины и другого человека, тест исключает предвзятое от- ношение— на решение следователя не будет влиять вид машины или ее электронный голос. Следователь волен задавать любые вопросы, не важно, насколько окольные или косвенные, пытаясь раскрыть "личность" компьютера. Например, следователь может по- просить обоих подопытных осуществить довольно сложный арифметический подсчет, предполагая, что компьютер скорее даст верный ответ, чем человек. Чтобы обмануть эту стратегию, компьютер должен знать, когда ему следует выдать ошибочное число, чтобы показаться человеком. Чтобы обнаружить человеческое поведение на основе эмоцио- нальной природы, следователь может попросить обоих субъектов высказаться по поводу стихотворения или картины. Компьютер в таком случае должен знать об эмоциональном складе человеческих существ. Этот тест имеет следующие важные особенности. 1. Дает объективное понятие об интеллекте, т.е. реакции заведомо разумного сущест- ва на определенный набор вопросов. Таким образом, вводится стандарт для опре- деления интеллекта, который предотвращает неминуемые дебаты об “истинности" его природы. рспятствует заведению нас в тупик сбивающими с толку и пока безответными вопро- сами, такими как. должен ли компьютер использовать какие-то конкретные внутренние процессы, или же должна ли машина по-настоящему осознавать свои деистам, 3. Исключает предвзятость в пользу живых существ, заставляя опрашивающего сфо- кусироваться исключительно на содержании ответов на вопросы. Благодаря этим преимуществам, тест Тьюринга представляет собой хорошую основу для многих схем, которые используются на практике для испытания современных интел- лектуальных программ. Программа, потенциально достигшая разумности в какой-либо предметной области, может быть испытана сравнением ее способностей по решению данного множества проблем со способностями человеческого эксперта. Этот метод ис- пытания всего лишь вариация на тему теста Тьюринга, группу людей просят сравнить "вслепую ответы компьютера и человека. Как видим, эта методика стала неотъемлемым инструментом как при разработке, так и при проверке современных экспертных систем. Тест Тьюринга, несмотря на свою интуитивную притягательность, уязвим дня многих оп- равданных нападок. Одно из наиболее слабых мест— пристрастие в пользу чисто символь- ных задач. Тест не затрагивает способностей, требующих навыков перцепции или ловкости рук. хотя подобные аспекты являются важными составляющими человеческого интеллекта. Иногда же, напротив, тест Тьюринга обвиняют в попытках втиснуть машинный интеллект в форму интеллекта человеческого. Быть может, машинный интеллект просто настолько отли- чается от человеческого, что проверять его человеческими критериями — фундаментальная ошибка? Нужна ли нам, в самом деле, машина, которая бы решала математические задачи так же медленно и неточно, как человек? Не должна ли разумная машина извлекать выгоду из своих преимуществ, таких как большая, быстрая, надежная память, и не пытаться сымитиро- вать человеческое познание? На самом деле, многие современные практики ИИ (например [Ford и Hayes. 1995J) говорят, что разработка систем, которые бы выдерживали всесторонний тест Тьюринга, — это ошибка, отвлекающая нас от более важных, насущных задач- разработ- ки универсальных теорий, объясняющих механизмы интеллекта людей и машин и примене- ние этих теорий к проектированию инструментов для решения конкретных практических проблем. Все же тест Тьюринга представляется нам важной составляющей в тестировании и “аттестации” современных интеллектуальных программ. Тьюринг также затронул проблему осуществимости построения интеллектуальной программы на базе цифрового компьютера. Размышляя в терминах конкретной вычисли- тельной модели (электронной цифровой машины с дискретными состояниями), он сде- лал несколько хорошо обоснованных предположений касательно ее объема памяти, сложности программы и основных принципов проектирования такой системы. Наконец, он рассмотрел множество моральных, философских и научных возражений возможности создания такой программы средствами современной технологии. Отсылаем читателя к статье Тьюринга за познавательным и все еще актуальным изложением сути споров о возможностях интеллектуальных машин. Два возражения, приведенных Тьюрингом, стоит рассмотреть детально. Возражение леди Лавлейс", впервые сформулированное Адой Лавлейс, сводится к тому, что компью- теры могут делать лишь то. что им укажут, и, следовательно, не могут выполнять ориги- нальные (читай: разумные) действия. Однако экспертные системы (см. подраздел 12.3 и главу 7). особенно в области диагностики, могут формулировать выводы, которые не были заложены в них разработчиками. Многие исследователи считают, что творческие способности можно реализовать программно. Часть I Искусственный интеллект: его истоки и проблемы Глава 1. Искусственный интеллект: история развития и области приложения
^венкосга поведения", связано с невозможностью Другое возражение, "аргумензессс^ „нд„ВИдуу„у. что в точности нужно де- создания набора правил, „ Действительно, гибкость, иозво- дап. „ри каждом ВОЗ"°*"°МХровать практически на бесконечное количество ляющая биологическому „ „С оптимальным образом - отличитель- различных ситуаций приемлемым, ем 4 замечание, что управляющая логика, „с- пая черта разумного '“““'“ Ха «>»»’=Р||М программ, не проявляет вели, пользуемая в большинстве традицией программы должны писаться кой гибкости или силы юобрая» и п0(.ледн„с 25 лет была направле- „одобным образом. Большая часть Р а11йя и модслсй_ ир„1а!1„Ных устранить н, на разработку таких языков р ГР c„ncMIJ. объектные системы, сетевые упомянутый недостаток, как д этой кииге. представления и другие модели ужи модудьных компонентов, или Современные программы ИИ о заданном порядке, а активизируются правил поведения, которые не =“"м™Хы к^Хой задачи Системы обнаружения „о мере надобности в Диапазону задач. Эти системы совпадений позволяютотаосительно „аленьким про,рампам проявлять разно- необычайно гибки, что „лдгмпуя на оазличные задачи и ситуации, образное поведение в до уровня живых организмов, все еще предметпкарюзх сш^ов.'нобелсвский лауреат Герберт Саймон сказал, что большей частью ХХдаие Изменчивость поведения, присущие живым существам, возникли скорее бла- .„дара сложности их окружающей среды, чем благодаря сложности их “программ". В [Simon. 1981) Саймон описывает муравья, петляющего по неровной, перс ценной поверхности. Хотя путь муравья кажется довольно сложным. Саимоь' что цель муравья очень проста- вернуться как можно скорее в колонию. Изгибы и повороты его пути вызваны встречаемыми препятствиями. Саймон заключает, что. “Муравей, рассматриваемый в качестве проявляющей разумное поведение системы, на са- мом деле очень прост. Кажущаяся сложность его поведения в большей степени отражает сложность среды, в которой он существует . Эта идея, если удастся доказать применимость ее к организмам с более сложным ин- теллектом, составит сильный аргумент в пользу простоты, а следовательно, достижимо- сти интеллектуальных систем. Любопытно, что, применив эту идею к человеку, мы при- дем к выводу об огромной значимости культуры в формировании интеллекта. Интеллект, похоже, не взращивается во тьме, как грибы. Для его развития необходимо взаимодейст- вие с достаточно богатой окружающей средой. Культура так же необходима для созда- ния человеческих существ, как и человеческие существа для создания культуры. Эта мысль не умаляет могущества наших интеллектов, но подчеркивает удивительное богат- ство и связь различных культур, сформировавших жизни отдельных людей. Фактически на идее о том, что интеллект возникает из взаимодействий индивидуальных элементов общества, основывается подход к ИИ. представленный в следующем разделе. 1.1.4. Биологические и социальные модели интеллекта: агенты Итак, мы рассмотрели математический подход к задаче построения интеллеюуальных устройств, подразумевающий, что основой самого интеллекта являются логические умозак- лючения, а также основанный на “объективности’' самих логических рассуждений- Этот взгляд на знание, язык и мышление отражает традицию рационализма западной философии, Часть I. Искусственный интеллект: его истоки и проблемы развитую работах Платова, Галилея. Декарта, Лейбница и „ног™ друг™ философов vno- ™нутых ранее в этой главе. 1 акже он отражает неявные предположения теста «о беино его видал на символьные рассужлсния как критерий интеллекта, и веру, что “лобовое" сравнение с человеческим поведением пригодно для подтверждения интеллекта машины. Опора на логику как способ представления ятыка и логические выводы как основной механизм разумных рассуждений настолько доминирует в западной философии что их истинность часто кажется очевидной и неоспоримой. Поэтому не удивительно, что подходы, основанные на этих предположениях, главенствуют в науке искусственного интеллекта от ес зарождения до сегодняшнего дня. Во второй половине XX века устои рационализма пошатнулись. Философский реля- тивизм в разных своих формах задавался вопросом об объективном бвзисе языка, науки, общества и самой мысли. Философия поздних работ Виттгенштейна [Wittgenstein. 1953) вынудила пересмотреть понятие смысла в естественных и формальных языках. Труды Геделя и Тьюринга подвергли сомнению основания самой математики. Постмодернист- ские идеи изменили наши взгляды на значимость и ценность в художественном и соци- альном контекстах. Искусственный интеллект также стал жертвой подобной критики Действительно, трудности, которые встали на пути ИИ к его целям, часто рассматрива- ются как свидетельства ошибочности рационалистического взгляда (Wmograd и Flores, 1986], [Lakoff и Johnson, 1999]. Две философские традиции — Виттгенштейна с Хассерлом [Husserl, 1970,1972] и Хайдеггера [Heidegger, 1962] являются основополагающими в этом пересмотре западной философии. В своей работе Витттенштейн затронул многие допущения рационалистской традиции, включая основания языка, науки и знания. Естественный язык был главным предметом анализа Виттгенштейна. Этот философ опровергает мнение, что смысл чело- веческого языка можно вывести из каких-либо объективных основ. В трудах Виттгенштейна, как и в теории речи (speech act theory), развитой Остином [Austin, 1962] и его последователями [Grice, 1975], [Searle. 1969], значение любого вы- сказывания зависит от человеческого, культурного контекста. Значение слова “сиденье". к примеру, зависит от наличия физического объекта, который можно применить для си- дения на нем, а также культурных соглашений об использовании сидений Когда, напри- мер, большой плоский камень можно назвать сиденьем? Почему нелепо так называть ко- ролевский трон? Какая разница между человеческим пониманием “сиденья' и понима- нием кота или собаки, которые в человеческом смысле сидеть не могут? Атакуя основы смысла. Витттенштейн утверждал, что мы должны рассматривать использование языка посредством выбора и действий в изменчивом культурном контексте. Вигтгенштейн да- же распространил свою критику на науку н математику, утверждая, что они в такой же мере общественные конструкции, как и языки. Хассерл, отец феноменологии, рассматривал абстракции как объекты, укоренившиеся в конкретном “жизненном мире": рационалистская модель отодвигает конкретный под- держивающий ее мир на второй план. Для Хассерла. как и для его ученика Хайдеггера и их сторонника Мерло-Понта [Merleau-Ponty. 1962]. интеллект заключался не в знании истины, а в знании, как вести себя в постоянно меняющемся и развивающемся мире 1а- кнм образом, в экзистенциалистско-феноменологической традиции интеллект рассмат ривается скорее с точки зрения выживания в мире, чем как набор логических угвержде ний о мире (в сочетании со схемой вывода). _ Многие авторы, например Дрейфусы [Dreyfus и Dreyfus, 198 ]. а таюке ино Флорес [Winograd и Hores. 1986), опирались на работы Виттгенштейна, Хассерла и Аан- Глава 1 Искусственный интеллект история развития и области приложения
е практики ИИ продолжают разработку рацио- доггера в моей критике ИИ. Хот» > известной как GOFAI, или Good Old „ально-логкческой программной вюрастающее число исследователей этой об- Fashioned AI - старын-лоорыи пл я новые занимательные модели интеллекта, ласти, приняв во внимание эту кр Ь антропологических и культурных корнях знания. Придержись идей Вмтггеиш интеллектуального поведения, иногда называе- они обратились к социальным модели мым ситуативными. подходу — исследования в области коннекциони- Пример альтернативы логине главу 10^ в которЬ1Х логике н работе рацнональ- стского обучения (см. н0 сделана попытка достичь разумности посред- ного разума уделяется пеального мозга. В нейронных моделях интеллекта ста», -«-'Р“7“ХстькХС™роватьоя к миру в котором он оугцествуст. е Z=e„cH,l8 связей между отдельными нейронами. Знание в теки» системах не выр^астся явными логическими конструкциями, а прелсталляетея в неявной форме, как свойство конфигураций таких взаимосвязей. Иная модель интеллекта, заимствованная из биологии, навеяна процессами адаптации видов к окружающей среде. В разработках искусственной жизни и генетических алгорит- мов (см главу 11) принципы биологической эволюции применяются для решения сложных проблем. Такие программы не решают задачи посредством логических рассуждений. Оки порождают популяции соревнующихся между собой решений-кандидатов и заставляют их совершенствоваться с помощью процессов, имитирующих биологическую эволюцию: не- удачные кандидаты на решения отмирают, в го время как подающие надежды выживают и воспроизводятся путем создания новых решений из частей “успешных” родителей. Социальные системы дают еще одно модельное представление интеллекта с помощью глобального поведения, которое позволяет им решать проблемы, которые бы не удалось решить отдельным их членам. Например, хотя ни один индивидуум не в состоянии точно предсказать количество буханок хлеба, которое потребит в заданный день Нью-Йорк, сис- тема всех нью-йоркских пекарен отлично справляется со снабжением города хлебом и де- лает это с минимальными затратами. Рынок акций отлично устанавливает относительную ценность сотен компаний, хотя каждый отдельный инвестор имеет лишь ограниченное зна- ние о нескольких компаниях. Можно привести также пример из современной науки. От- дельные исследователи из университетской, производственной или правительственной сре- ды сосредоточиваются на решении общих проблем. С помощью конференций и журналов, служащих основным средством сообщения, важные для общества в целом проблемы рас- сматриваются и решаются отдельными агентами, работающими отчасти независимо, хотя прогресс во многих случаях также направляется субсидиями. Эти примеры имеют два общих аспекта. Во-первых, корни интеллекта связаны с культурой и обществом, а следовательно, разум является м,ердЖе«,тым (emergent). Во- вторых. разумное поведение формируется совместными действиями большого числа очень простых взаимодействующих иолуавтоиомных индивидуумов, или агентов. Явля- ются агенты нервными метками. индивидуальными особями биологического вида или =Г ™',101:ТЯ“" " “йшестае. их взаимодействие создает интеллект. Рассмотрим основные аспекты агентских и эмерджентиых взглядов на интеллект. ‘ Х"Хеан"ый°™ Ш1И Следовательно, у каждого агента есть неРоасполагает ^адаЧ' пр"чс"‘ он Располагает малым знанием (пли вовсе ют Каждый агент ° Т°М' ЧТ° дела10т ЛРУГие агенты пли как они это дела- _ ют. Каждый агент выполняет свою независимую часть решения проблемы в либо 40 Часть I. Искусственный интеллект; его истоки и проблемы выдаст собственно результат (что-то совершает) либо сообщает результат дру- гим агентам. 1 J 2. Агенты являются “внедренными". Каждый агент чувствителен к своей окружаю- щей среде и (обычно) не знает о состоянии полной области существования агентов. Таким образом, знание агента ограничено его текущими задачами: "файл, который я обрабатываю” или “стенка рядом со мной", агент не владеет информацией обо всех файлах одновременно или физических границах предметной области. 3. Агенты взаимодействуют. Они формируют коллектив индивидуумов, которые со- трудничают над решением задачи. В этом смысле их можно рассматривать как “сообщество”. Как и в человеческом обществе, знания, умения и обязанности рас- пределяются среди отдельных индивидуумов. 4. Сообщество агентов структурировано. В большинстве агентно-ориентированных методов решения проблем каждый индивидуум, работая со своим собственным ок- ружением и навыками, координирует общий ход решения с другими агентами. Та- ким образом, окончательное решение можно назвать не только коллективным, но и кооперативным. 5. Наконец, явление интеллекта в этой среде является “эмерджентным". Хотя инди- видуальные агенты обладают некоторыми совокупностями навыков и обязанно- стей, общий, совместный, результат сообщества агентов следует рассматривать как нечто большее, чем сумма отдельных вкладов. Интеллект рассматривается как яв- ление, возникающее в сообществе, а не как свойство отдельного агента. Основываясь на этих наблюдениях, определим агента как элемент сообщества, кото- рый может воспринимать (часто ограниченно) аспекты своего окружения и взаимодейст- вовать с этой окружающей средой либо непосредственно, либо путем сотрудничества с другими агентами. Большинство интеллектуальных методов решении требуют наличия разнообразных агентов. Это могут быть простые агенты-механизмы, задача которых — собирать и передавать информацию; агенты-координаторы, которые обеспечивают взаи- модействие между другими агентами; агенты поиска, которые перебирают пакеты ин- формации и возвращают какие-то избранные частицы: обучающие агенты, которые на основе полученной информации формируют обобщающие концепции; и агенты, прини- мающие решения, которые раздают задания и делают выводы на основе ограниченном информации и обработки. Возвращаясь к старому определению интеллекта, агенты мож- но рассматривать как механизмы, обеспечивающие выработку решения в условиях огра- ниченных ресурсов к процессорных мощностей. Для разработки и построения таких сообществ необходимы следующие компоненты. 1. Структуры для представления информации. 2. Стратегии поиска в пространстве альтернативных решений. 3. Архитектура, обеспечивающая взаимодействие агентов. В последующих главах, в частности в разделе 6.4, приводятся рекомендации для соз- дания средств поддержки таких агентских сообществ. Это предварительное рассмотрение возможностей теории автоматизированного ин теллскта ни в коей мерс нс ставит себе целью преувеличить достижения, полученные до настоящего времени или преуменьшить работу, которую еще предстоит проделать, этой книге постоянно подчеркивается, как важно четко представлять себе границы на Глава 1 Искусственный интеллект* история развития и области приложения
ПИ: I: ЩИХ текущих возможностей я сегодняшних свершении. Например, очень ограниченные успехи сделаны в построении программ, которые могут "учиться ’ в интересном для Ч€. ловека смысле. Также очень скромны достижения в моделировании семантической сложности естественных языков, к примеру, английского. Даже в фундаментальных во- просах, таких как организация знаний или управление сложностью и корректностью большой компьютерной программы (например, большом базы знаний), требуются значи- тельные дальнейшие исследования. Основанные на знаниях системы, хотя и достигли коммерческого успеха, имеют все еще много ограничений в качестве и общности своих выводов. В частности, они не способны рассуждать на основе “здравого смысла" (commonsense reasoning) или же проявлять знания о простейших свойствах реального мира, например, о том, как изменяются со временем разные вещи. Но следует сохранять трезвый взгляд на вещи. Обозреть достижения искусственного интеллекта легче, честно представляя предстоящую работу. В следующем разделе мы рассмотрим некоторые сферы исследований и разработок ИИ. 1.2. Обзор прикладных областей искусственного интеллекта Янсиитпическоя .машина не претендует на создание чего-либо навага. Ее способности не превосходят наших знаний о том, как приказать ей что-либо исполнить... — Ада Байрон (Ada Byron), графиил Лавлейс Прости. Дейв, я не могу позволить тебе это сделать... — HAL 9000, компьютер из фильма 2001: Космическая одиссея Вернемся к заявленной пели дать определение искусственному интеллекту путем обозрения стремлений и достижений исследователей этой области. Две наиболее фундаментальные проблемы, занимающие разработчиков ИИ, — это представление знаний (knowledge representation) и поиск (search). Первая относится к проблеме по- лучения новых знаний с помощью формального языка, подходящего для компью- терных манипуляций, всего спектра знаний, требуемых для формирования разумно- го поведения. В главе 2 рассматривается исчисление предикатов как язык описания свойств и отношений между объектами предметной области. Здесь для решения нужны скорее рассуждения качественного характера, чем арифметические расчеты^ В главах 6-8 обсуждаются языки, разработанные для отражения неопределенностей и структурной сложности таких областей, как рассуждения на основе "здравого смысла" и понимание естественных языков. В главах 14 и 15 демонстрируется ис- пользование языков LISP и PROLOG для реализаций этих представлений- Поиск— это метод решения проблемы, в котором систематически просматривается пространство состояний задачи (problem stales), т.с, альтернативных стадии се решення- Прммеры состояний задачи: различные размещения фигур на доске в игре или же про- межуточные шаги логического обоснования. Затем в этом пространстве альтернативных решений производится перебор в поисках окончательного ответа. Ньюэлл и Саймон [Newell и Simon, 1976) утверждают, что эта техника лежит в основе человеческого спо- соба решения различных задач. Действительно, когда игрок в шахматы анализирует по- следствия различных ходов или врач обдумывает различные альтернативные диагнозы. они производят перебор среди альтернатив. Результаты применения этой модели и сред, ства ее реализации обсуждаются в главах 3,4,5 и 16. Как и большая часть наук, ИИ разбивается на множество поддисциплин, которые разделяя основной подход к решению проблем, нашли себе различные применения' Очертим в этом разделе некоторые из основных сфер применения этих отраслей н их вклад в искусственный интеллект вообще. 1.2.1. Ведение игр Многие ранние исследования в области поиска в пространстве состояний соверша- лись на основе таких распространенных настольных игр, как шашки, шахматы и пятнаш- ки. Вдобавок к свойственному им “интеллектуальному” характеру такие игры имеют не- которые свойства, делаюшие их идеальным объектом для экспериментов. Большинство игр ведутся с использованием четко определенного набора правил: это позволяет легко строить пространство поиска и избавляет исследователя от неясности и путаницы, при- сущих менее структурированным проблемам. Позиции фигур легко представимы в ком- пьютерной программе, они не требуют создания сложных формализмов, необходимых для передачи семантических тонкостей более сложных предметных областей. Тестиро- вание игровых программ не порождает никаких финансовых или этических проблем. Поиск в пространстве состояний — принцип, лежащий в основе большинства исследова- ний в области ведения игр. — представлен в главах 3 и 4. Игры могут порождать необычайно большие пространства состояний. Для поиска в них требуются мощные методики, определяющие, какие альтернативы следует рассмат- ривать. Такие методики называются эвристиками и составляют значительную область исследований ИИ. Эвристика — стратегия полезная, но потенциально способная упус- тить правильное решение. Примером эвристики может быть рекомендация проверять, включен ли прибор в розетку, прежде чем делать предположения о его поломке, или вы- полнять рокировку в шахматной игре, чтобы попытаться уберечь короля от шаха. Боль- шая часть того, что мы называем разумностью, по-видимому, опирается на эвристики, которые люди используют в решении задач. Поскольку у большинства из нас есть опыт в этих простых играх, можно попробовать разработать свои эвристики и испытать их эффективность. Для этого нам не нужны кон- сультации экспертов в каких-то темных для непосвященных областях, вроде медицины или математики. Поэтому игры являются хорошей основой для изучения эвристического поиска. Глава 4 рассказывает об эвристиках на примере этих простых игр; в главе 7 их использование распространяется на построение экспертных систем. Программы ведения игр, несмотря на их простоту, ставят перед исследователями новые вопросы, включая вариант, при котором ходы противника невозможно детерминировано предугадать (см. главу 8). Наличие противника усложняет структуру программы, добавляя в нее эле- мент непредсказуемости и потребность уделять внимание психологическим и тактиче- ским факторам игровой стратегии. 1.2.2. Автоматические рассуждения и доказательство теорем Можно сказать, что автоматическое доказательство теорем — одна из старейших час- тей искусственного интеллекта, корни которой уходят к системам J.ogic Th^nst (логический теоретик) Ньюэлла и Саймона [Newell и Simon. 1963л] и General э ет Г лава 1. Искусственный интеллект: история развития и области приложения 42 Часть). Искусственный интеллект: его истоки и проблемы
fNewell и Simon, 19636] и далее, к попыткам Рас- S„lver(VHnBepcMb«b,B решатель задач) ! формальных выводов теорем села Хпхеда построй век> малом на„6олес богатЬ1е Плода начальных аксиом. В любоьг“^е а теорем были формализованы алгоритмы дара исследованиям в области доказ авлениП. такие как исчисление пред„ка. поиска и разработаны языки формад рования PROLOG (глава 14). тов (см. главу 2) и логический яз р ^№aTeJUiCTBa теорсм основана на строгости и общ- Привлекательносп, автомат, располагает к автоматизации. Разнообразные ноет лотки. В формально» си 0ПИСание задачи и существенную относя- про&емы можно попытатьсяаксИ(1М „рассматривая различные случаи задачи шуюся к ней информацию в вид ПВЯншш лежит в основе автоматического доказа- как теоремы, “Снований (см. главу 12). ”7^^® “ранних пробах нага,сать пР0ПвммУ ДЛЯ °™ Доказательства не уХХ^отать систему. единообразно решала сложные задачи. Эго было обусловлеио^особностью любой относительно сложной логической системы сгенерировать бесконечное кошнество доказуемых теорем: без мощных методик (эвристик), которые бы на- правляли поиск, программы доказывали большие количества не относящихся к делу теорем, пока не натыкались на нужную. Из-за этой неэффективности многие утверждают, что чисто формальные синтаксические методы управления поиском в принципе не способны справить- ся с такими большими пространствами, и единственная альтернатива этому — положиться на неформальные, специально подобранные к случаю (лат. “ad hoc ) стратегии, как это, похоже, делают люди. Это один из подходов, лежащих в основе экспертных систем (см. главу 7), и он оказался достаточно плодотворным. Все же привлекательность рассуждений, основанных на формальной лотке, слишком сильна, чтобы ее игнорировать. Многие важные проблемы, такие как проектирование н про- верка логических цепей, проверка корректности компьютерных программ и управление сложными системами, по-видимому, поддаются такому подходу. Вдобавок исследователям автоматического доказательства удалось разработать мощные эвристики, основанные на оценке синтаксической формы логического выражения, которые в результате понижают сложность пространства поиска, не прибегая к используемым людьми методам “ad hoc”. Еще одной причиной неувядающего интереса к автоматическому доказательству теорем является понимание, что системе нс обязательно решать особо сложные проблемы без чело- веческого вмешательства. Многие современные программы доказательств работают как ум- "" предоставляя людям разбивать задачи на подзадачи и продумывать эвристи- локачатр ит/1 В п^ос1^анстае в°эможных обоснований. Программа для автоматического =ьХ~(ГШаСТ П Ж —ь™ лемм, проверки менее су- 1.2.3. Экспертные системы Одним из главных достижений nnuu с.1сцифично,одипрсдмегао.о6яаР11 "«"° ИИ стадо осознание важности агноепфует болезни не потому что ли п Рес»Лс) знания. Врач, к примеру, хорошо ди- етами к решению задач, а потому что *)ас1юлагает некими врожденными общими способно- тивно находит залежей ископаемых пп-^™ ° медицнне- Точно так же геолог эффек- ские и практические знания о геологии^ °Н способен применить богатые теоретичс- к ТСкУШеи проблеме. Экспертное знание — это 44 ----------------------------------------------------------- Искусственный интеллект: его истоки и проблемы
сочетание теоретического понимания проблемы и набопа явпиг™.» НИЯ которые, как показывает опыт, эффективны в 7 - Р 1 правил для ее реше- ^гомы создаются с помощью займ“ ^°" ”7"™°“ “S”™ ЭкСп^н™ „„я т в форму, которую компьютер „ожег применитьканшю Стратегии экспертных систем основа»., „а знаниях человека-экспе^. Хотя многие про- граммы пишутся самими носителями знаний о предметной области, 6«™эк ™еХ систем являются плодом сотрудничества между таким экспертом, как врач, химик. reoaoTZ инженер, „ независимым специалистом по ИИ. Эксперт предоставляет необходимые тнаииМо предметной области, описывая свои методы принятия решений и демонстрируя эти навыки на тщательно отобранных примерах. Специалист по ИИ, или тиер по знатны (knowledge engineer), как часто называют разработчиков экспертных систем, отвечает за реализацию это- го знания в программе, которая должна работать эффективно и внешне разумно. Экспертные способности программы проверяют, давая ей решать пробные задачи. Эксперт подвергает критике поведение программы, и в ее базу знаний вносятся необходимые изменения. Процесс повторяется, пока программа не достигнет требуемого уровня работоспособности. Одной из первых систем, использовавших специфичные для предметной области знания, была система DENDRAL, разработанная в Стэнфорде в конце 1960-х [Lindsay и др., 1980]. DENDRAL была задумана для определения строения органических молекул из химических формул и спектрографических данных о химических связях в молекулах. Поскольку органи- ческие молекулы обычно очень велики, число возможных структур этих молекул также весь- ма внушительно. DENDRAL решает проблему большого пространства перебора, применяя эвристические знания экспертов-химиков к решению задачи определения структуры. Методы DENDRAL оказались весьма работоспособными. Она методично находит правильное строе- ние из миллионов возможных всего за несколько попыток. Данный подход оказался столь эффективным, что “потомки” этой системы до сих пор используются в химических и фарма- цевтических лабораториях по всему миру. Программа DENDRAL одной из первых использовала специфичное знание для дос- тижения уровня эксперта в решении задач, однако методика современных экспертных систем связана с другой программой— MYCIN [Buchanan и Shortliffe, 1984]. В ней ис- пользовались знания экспертов медицины для диагностики и лечения спинального ме- нингита и бактериальных инфекций крови. Программа MYCIN, разработанная в Стэнфорде в середине 1970-х, одной из первых обра- тилась к проблеме принятия решений на основе ненадежной или недостаточной информации. Она выводит ясные и логичные пояснения своих рассуждений, используя структуру управ лающей логики, соответствующую специфике предметной области, и критерии для надежной оценки своей работы. Многие методики разработки экспертных систем, использующиеся се- годня, были впервые разработаны в рамках проекта MYCIN (см. главу ). к числу друг® классических экспертных систем относите. W»» PROSPECTOR, определяющая предполагаемые рудные месторождения, и их . вываясь на геологических данных о местности (Duda и др.. о._ органов ге, INTERNIST, применяемая для диагностики в сфере медицины грамма Dipmeter Advisor, интерпретирующая протоколы 'реН VAX Про. [Smith и Baker, 1983); и XCON, используемая для “’ХТ^ины VrK XX грамма XCON была разработана в 1981 г., и одно вр программой. Многочисленные ияемые компанией Digital Equipment, настраивались Р ^тастях как .медицина, акспертные системы решают в настоящее время задач“ n 19S6j [Durkin. 1994). “бразование. бизнес, дизайн и научные исследования (Waterman. 198OJ. 1 Г"вва 1. Искусственный интеллект: история развития и области приложения
экспертных систем были написаны для спе. Интересно »™етить. что больш™_ давольно хорошо изучены и распо. циализированвых предметных об мн решений. Проблемы, определенные лагают четко определенными етра подо6ными средствами решить сложнее. Не- ла нечеткой основе "зяряяого с» да1Кртных с„сгем, было бы ошибкой пгре. смотр» на воодушевляющие ®рс Основные проблемы перечислены „иже. оценивать возможности от знаннГ| прсдметноВ области. Системе MYCIN, к 1. Трудности в передаче глу знанш ЧСЛовечсской физиологии. Она не примеру, не Достает д „вой системы или спинного мозга. Ходит предание, знает, какова функция -р леченпя менингита. MYCIN спросила, бере- что однажды, подбор 4 что пациент мужского пола. Было это на самом X™“Z««™o. во это хорошая иллюстрация потенциальной ограничен- носги знаний экспертной системы. 2 Недостаток здравомыслия и гибкости. Если люден поставить перед задачей, кото- „™ ом не в состоянии решить немедленно, то они обычно исследуют сперва ос- новные принципы и вырабатывают какую-то стратегию для подхода к проблеме. Экспертным системам этой способности не хватает. 3 Неспособность предоставлял. осмысленные объяснения. Поскольку экспертные систе- мы не владеют глубоким знанием своей предметной области, их пояснения обычно ог- раничиваются описанием шагов, которые система предприняла в поиске решения. Но они зачастую не могут пояснить, “почему” был выбран конкретный подход. 4. Трудности в тестировании. Хотя обоснование корректности любой большой ком- пьютерной системы достаточно трудоемко, экспертные системы проверять осо- бенно тяжело. Это серьезная проблема, поскольку технологии экспертных систем применяются для таких критичных задач, как управление воздушным движением, ядерными реакторами и системами оружия. 5. Ограниченные возможности обучения на опыте. Сегодняшние экспертные системы делаются “вручную”; производительность разработанной системы не будет возрастать до следующего вмешательства программистов. Это заставляет серьезно усомниться в разумности таких систем. Несмотря на эти ограничения, экспертные системы доказали свою ценность во мно- гих важных приложениях. Будем надеяться, что недоработки сподвигнут студентов за- няться этой важной отраслью компьютерных наук. Экспертные системы — одна из ос- новных тем этой книги Они подробно обсуждаются в главах 6 и 7. 1.2.4. Понимание естественных языков и семантическое моделирование грамм способнь1х°СР°ЧНЬ1Х ЦеЛеЙ "скУсственн»го интеллекта является создание про- применять и понимать'естественныТГзыкГ " Т™ ФРаЗЫ Cn0c0f3H0CTb веского интеллекта а его успешна» а» ФуНдаментальнь1м аспектом челове- ке™ самих компьютеров Многие «„„“/бы ПрИВСЛа бы к “««меримой эффектив- нимаюшнх естественный язык Хотя™ 6 Затра'гсны ,|а написание программ, по- контекстах, системы исппт.»^ ие ПР°1'РЛММЬ1 и достигли успеха в ограниченных рактерной для человеческой релизе* а'Гураль1,ые ЯЗЬ|КИ с гибкостью и общностью, ха- ат за пределами сегодняшних методологий. 46 ть I. Искусственный интеллект: его истоки и проблемы
Понимание естественного языка вклк> индивидуальные части речи и nnur-v ЧЭе1 Кула ®ольше’ чем разбор предложений на ном фоновом знании о предмете беидыТшХ'Л СЛ°''арс Он° 6а1,ФУстс» на обшир- же, как и на способности применять nfi ’ ИСП0ЛьзУемых в этой области, так донолвок и неясностей. „р„сущих еетестХХ«окой речи “ ™ П°“"МаНМ "" чего н“ХеК "pZS Р™Р' °‘ * "* смысл фразы: “а Де И„Х “ "" "°'™ соперника, там за него на “втором этаже” побооолиЛп мяч полегел к штрафной пан нас на Васина в штрафную который из " СвдОр°В' ПОСЛС чего был сде‘ ,,9 v г.з Р Ч* У . оторын из-под защитника подъемом пробил точно в дальний угол ? Хотя каждое отдельное слово в этом предложен™ момо ф , шеннои тарабаршиион для любого нефаната. будь он хоть семи пядей во лбу Задача сбора и организации этого фонового знания, чтобы его можно было приме- нить к осмыслению языка, составляет значительную проблему в автоматизации „он,ша- ли естественного языка. Для ее решения исследователи разработали множество методов структурирования семантических значений, используемых повсеместно в искусственном интеллекте (см. главы 6. 7 и 13). Из-за огромных объемов знаний, требуемых для понимания естественного языка, большая часть работы ведется в хорошо понимаемых, специализированных проблемных областях. Од- ной из первых программ, использовавших такую методику “микромира", была программа Винограда SHRDLU — система понимания естественного языка, которая могла “беседовать'' о простом взаимном расположении блоков разных форм и цветов (Winograd, 1973] Програм- ма SHRDLU могла отвечать на вопросы типа: "какого цвета блок на синем кубике?", а также планировать действия вроде “передвинь красную пирамидку на зеленый брусок". Задачи это- го рода, включая управление размещением блоков и их описание, на удивление часто всплы- вали в исследованиях ИИ и получили название проблем "мира блоков". Несмотря на успехи программы SHRDLU в разговорах о расположении блоков, она бы- ла не способна абстрагироваться от мира блоков. Методики представления, использован- ные в программе, были слишком просты, чтобы передать семантическую организацию бо- лее богатых и сложных предметных областей. Основная часть текущих работ в области по- нимания естественных языков направлена на поиск формализмов представления, которые должны быть достаточно общими, чтобы применяться в широком круге приложений и уметь адаптироваться к специфичной структуре заданной области. Множество разнообраз- ных методик (большинство из которых являются развитием или модификацией семантиче- ских сетей} исследуются с этой целью и используются при разработке программ, способ- ных понимать естественный язык в ограниченных, но достаточно интересных предметных областях. Наконец, в текущих исследованиях [Marcus. 1980], [Manning и Schutze, 1999]. [Jurafsky и Martin. 2000] стохастические модели, описывающие совместное использование слов в языке, применяются для характеристики как синтаксиса, так и семантики, олное понимание языка на вычислительной основе все же остается диско за пределами совре менных возможностей. 1.2.5. Моделирование работы человеческого интеллекта В большей части рассмотренного выше материала человеческий слу- жит отправной точкой в создании искусственного, однако зто не означает что „р ....../должны формироваться „о образу „ подобию человеческого разума Дей., Глава 1. Искусственный интеллект: история развития и области приложения 47
,лтся для решения каких-то насущных заЦач , „„„граммы ИИ гаи '1СКТуРы. Даже экспертные системы. за„м. в,цельно. мотп'' ментальной ртов.людей. не пытаются моделировать без учета чак”' моего знак"’ У Про„эвод11тельность системы — „0 ствуя большук> ы человеческого У" _со6ых оснований имитировать человече- внутренние п_Р . Се качества. не которые используют несвойственные единственны» Программы, ко * сопер„„ки. Тем окне методы пр "Х^6„лее=“6ыЧХ»о моделировали какой-либо ас- ^ГоевекаКОсХплоДотворной областью исследований как в “^«вГнном помимо обеспечения ИИ его основной ИС Моделирование работы чело м формулироВання и испытания теорий методологией оказалось мощным р д решений. разра6отанные теоретиками человеческого познания. Методе „„равную точку для исследования челове- компьютерных наук, дал» лс>«° щать Q теор1МХ ПОзнанил на неясном языке ранних ческого разума. Вместо тогоч опцсания внутренних механизмов человече- нсследований или вообще ост п0 изучеНию поведения), многие психо- ского интеллекта (как предл компьюгерной науки для разработки моделей челове- лоп, приспособили рн£ только даю1 новую терминологию для характеристики ческого разума. 1 акне м реализация этих теорий предоставляет психо- человеческого интеллекта.критиковать и уточнять нх идеи 19941° «суждение ношений между ИИ и попытками понять человеческий ра- зум приводится ниже и резюмируется в главе 16. 1.2.6. Планирование и робототехника Исследования в области планирования начались с попытки сконструировать роботов, которые бы выполняли свои задачи с некоторой степенью гибкости н способностью реа- гировать на окружающий мир. Планирование предполагает, что робот должен уметь вы поднять некоторые элементарные действия. Он пытается найтн последовательность та ких действий, с помощью которой можно выполнять более сложную задачу, например, двигаться по комнате, заполненной препятствиями. Планирование по ряду причин является сложной проблемой, не малую роль в этом играет размер пространства возможных последовательностей шагов. Даже очень простой робот способен породить огромное число различных комбинации элементарных движений. Представьте себе, к примеру, робота, который может пе- редвигаться вперед, назад, влево и вправо, и вообразите, сколькими различными пу- тями он может двигаться по комнате. Представьте также, что в комнате есть препят ствия, и что робот должен выбирать путь вокруг них некоторым оптимальным обра зом. Для написания программы, которая могла бы разумно определить лучший путь из всех вариантов, и не была бы при этом перегружена огромным их числом, потре- буются сложные методы для представления пространственного знания и управления перебором в пространстве альтернатив. Одним из методов, применяемых человеческими существами при планировании, яв- ™ декол,по311'^ 3^ачи (hierarchical problem decomposition). Плани- нии перелетаВ пор °НДОН' вы’ СК0Рее всего, займетесь отдельно проблемами орган*13® здки до аэропорта, самого полета и поиска подходящего вида тр:|И порта в Лондоне, хотя все они задач может сама быть разбита на так-ир430™0 Ольшого общего плана. Каждая из этих да, преодоление лабиринта линий метоп Пн°ДЗадачи’ как' напР_нмеР- покупка карты горо- только эффективно ограничивает пачм? °ИСК подходящей пивн°й. Такой подход не часто используемые вшршр “ьно и позволяет сохранять „ 7 ршругы для дальнейшего применения В то время как люди разоабатыяяшт по,.,,, „ой программы, которая бы занимав тем же ВСЯИ,Х К°МПЬ1ОТ<:Р- пппетая вешь как пяабиАы, СЬ ТСМ ~ сложная проблема. Казалось бы, такая простая вешь, разбиение задачи на независимые подзадачи, на самом деле требует изошренных эвристик и обширного знания об области планирования. Не менее = проблема определить, какие планы следует сохранить, и как их обобщить для исполь- зования в будущем. Робот, слепо выполняющий последовательности действий, не реагируя на изменения в своем окружении, или неспособный обнаруживать и исправлять ошибки в своем собст- венном плане, едва ли может считаться разумным. Зачастую от робота требуют сформи- ровать план, основанный на недостаточной информации, н откорректировать свое нове- дение по мере его выполнения. Робот может не располагать адекватными сенсорами для того, чтобы обнаружить все препятствия на проектируемом пути. Такой робот должен начать двигаться по комнате, основываясь на “воспринимаемых’’ им данных, и коррек- тировать СВОЙ путь ПО мере ТОГО, как ВЫЯВЛЯЮТСЯ другие препятствия. Организация пла- нов, позволяющая реагировать на изменение условий окружающей среды, — основная проблема планирования [Lewis и Luger, 2000]. Наконец, робототехника была одной из областей исследований ИИ. породившей мно- жество концепций, лежащих в основе агентно-ориентированного принятия решений (см. подраздел 1.1.4). Исследователи, потерпевшие неудачу при решении проблем, связан- ных с большими пространствами представлений и разработкой алгоритмов поиска для тра- диционного планирования, переформулировали задачу в терминах взаимодействия полуав- тономных агентов [Agre и Chapman, 1987], [Brooks, 1991а]. Каждый агент отвечает за свою часть задания, и общее решение возникает в результате их скоординированных действий. Элементы алгоритмов планирования будут представлены в главах 6.7 и 14. Исследования в области планирования сегодня вышли за пределы робототехники, те- перь онн включают также координацию любых сложных систем задач и целей. Совре- менные планировщики применяются в агентских средах [Nilsson, 1994], а также дм управления ускорителями частиц [Klein и др., 1999, 2000]. 1.2.7. Языки и среды ИИ Одним из наиболее важных побочных продуктов исследований ИИ стати достижения в сфере языков программирования и средах разработки программного обеспечения. По множеству причин, включая размеры многих прикладных программ . важность чей. дологии “создания прототипов", тенденцию алгоритмов поиска порождать Ч^Р большие пространства и трудности в предсказании поведения программистам искусственного интеллекта пришлось разработать мощную систему ме- ТТХГ„^;=ил включают такие методы объектно-ориентированное программирование и каркасы orolOG (см часть IV). ждаются в части III). Высокоуровневые языки, такие как LISP^и PROLOG (смчапъ которые обеспечивают модульную разработку, помогают управиться с размерами Глава 1. Искусственный интеллект: история развития и области приложения 49 48 Часть I. Искусственный интеллект: его истоки и проблемы
соедств трассировки позволяют программистам реКон„ ““"“тавью«« сложного алгола и разобраться я сложных структурах эври.' ^чсХХвбора. Без подобных л методик еряд ли удалось 6ы ямяютея стандартными методами разработки Про. пмммяого обеспечения и мало соотносят» с основами теории ИИ. Другие же, такие ка1( обьсхтао-ориентировавиое программирование, имеют значительный теоретический н практический интерес. Наконец. чнопк алгоритмы ИИ сейчас реализуются на та10ч традиционных для вычислительной техники языках, как С+-+ и Java. Языки, разработанные для программирования ИИ, тесно связаны с теоретической структурой этой области. В данной книге рассматривается и LISP, и PROLOG, и мы ста- рзлись удержаться от религиозных прений об их относительных достоинствах, склони ясь, скорее, к тон точке зрения, что “хороший работник должен знать все инструменты" Главы, посвященные языкам программирования (14 и 15), рассматривают преимущества применения различных языков для решения конкретных задач. 1.2.8. Машинное обучение Обучение остается “крепким орешком" искусственного интеллекта. Важность обуче- ния. тем не менее, несомненна, поскольку эта способность является одной из главных составляющих разумного поведения. Экспертная система может выполнять долгие и трудоемкие вычисления для решения проблем. Но, в отличие от человеческих существ, если дать ей такую же или подобную проблему второй раз, она не “вспомнит” решение. Она каждый раз вновь будет выполнять те же вычисления — едва лн это похоже на ра- зумное поведение. Большинство экспертных систем ограничены негибкостью их стратегий принятия решений и трудностью модификации больших объемов кода. Очевидное решение этих проблем — заставить программы учиться самим на опыте, аналогиях или примерах. Хотя обучение является трудной областью, существуют некоторые программы, кото- рые опровергают опасения о ее неприступности. Одной из таких программ является AM Автоматизированный Математик, разработанный для открытия математических законов [Lenat, 1977,1982]. Отталкиваясь от заложенных в него понятий и аксиом тео- рии множеств, Математику удалось вывести из них такие важные математические кон- пи^и^аКАь?ШН°СТЬ множсства’ Целочисленная арифметика и многие результаты тео- ческне метоп». СТр°НЯ теоРемы« модифицируя свою базу знаний, и использовал эвристи- Из недавних пезультаИСКа наилучших 113 множества возможных альтернативных теорем. дования УинотнТпо шводу такихЩеСТ°еНН0С В““НИе о6ласть' 0™°сятся КСС11С' боров "мира блоков" (Winston I97S стр''пурных понятий, как построение “арок" из на- пб-прнинипов из разпьш np„Z> & ™ проявил способности в выделении дат правила интерпретации спет?’0" 'Q“inlan’ 1986“) Система Meta-DENDRAL ВЫВО- мерах информация о веществах с 0ГРаФИчсских данных в органической химии на при- туадьный “интерфейс” для ЭКСпСп С^1С^РОЙ- Система Teiresias — интеллек- уровневом языке в новые правила™Ы\с”стем преобразует сообщения на высоко- Стронт планы для манипуляций в "МИДС« баЗЫ ЗНаний iDavis- 1982]. Программа Hacker Р локов” посредством итеративного процесса вы- 50 скусстеенный интеллект: его истоки и проблемы
работки плана, его испытания и коррекции выявленных недостатков 1Sussman, WS], Ра- бота в сфере обучения, основанного на “пояснениях", продемонстрировала эффсктин- ность для обучения априорному знанию {Mitchell и др., 1986], {DeJong и Mooney, 1986]. Сегодня известно также много важных биологических и социологических моделей обу- чения. Они будут рассмотрены в главах, посвященных коннскционистскому и эмерд- рентному обучению. Успешность программ машинного обучения наводит на мысль о существовании уни- версальных принципов, открытие которых позволило бы конструировать программы, способные обучаться в реальных проблемных областях. Некоторые подходы к обучению будут представлены в главах 9-J1. 1.2.9. Альтернативные представления: нейронные сети н генетические алгоритмы В большей части методик, представленных в этой книге, для реализации интеллекта используются явные представления знаний и тщательно спроектированные алгоритмы перебора. Совершенно отличный подход состоит в грамм с использованием моделей, имитирующих структуры нейронов в человеческом мозге иди эволюцию разных альтернативных конфигураций, как это делается в генетиче- ских алгоритмах и искусственной жизни. перебора. Совершенно отличныйподход состоит в построении интеллектуальных про- Рис. 1.2. Упрощенная схема нейрона Схематическое представление нейрона (рис. 1.2) состоит из клетки, которая имеет множество разветвленных отростков, называемых дендритами, н одну ветвь— аксон. Дендриты принимают сигналы от других нейронов. Когда сумма этих импульсов превы- шает некоторую границу, нейрон сам возбуждается, и импульс, или “сигнал", проходит ио аксону. Разветвления на конце аксона образуют синапсы с дендритами других нейро- нов, Синапс — это точка контакта между нейронами. Синапсы могут быть возбуждаю- Щими (excitatory) или тормозящими (inhibitory), в зависимости от того, увеличивают ли они результирующий сигнал. Такое описание нейрона необычайно просто, но оно передает основные черты, суще- ственные в нейронных вычислительных моделях. В частности, каждый вычислительный элемент подсчитывает значение некоторой функции своих входов и передает результат к присоединенным к нему элементам сети. Конечные результаты являются следствием па- раллельной и распределенной обработки в сети, образованной нейронными соединения- ми и пороговыми значениями. Нейронные архитектуры привлекательны как средства реализации интеллекта по многим причинам. Традиционные программы ИИ могут быть слишком неустойчивы и чувствительны к шуму. Человеческий интеллект куда более гибок при обработке такой г лава 1. Искусственный интеллект: история развития и области приложения
- как лицо в затемненной комнате или разговор на шумной ве. "мроннью архитектуры. похоже, более пр«™лны для сопоставлен™, заш^. ленных и недостаточных данных, поскодаьу они хранят знания в виде большого чиеда мелких элементов, распределскнь/х по сети. С помощью женчесых алгоритмов и методик искусственной жизни мы вырабатываем новые решения проблем га комподеятоя предыдущих решений. Генетические операторы, га. кие как «решимте ВДВ хгуташи. подобно своим эквивалентам в реальном мире, вырабаты- вают с каждым поколением все лучшие решения. В искусственной жизни новью поколения создаются на основе функции "качества" соседних элементов в прежних поколениях. И нейронные архитектуры, и генетические алгоритмы дают естественные модели па- раллельной обработки данных, поскольку каждый нейрон или сегмент решения пред, стааллет собой независимый элемент. Гиллис {Hillis, 1985] отметил, что люди быстрее справляются с задачами, когда получают больше информации, в то время как компьюте- ры, наоборот, замедляют работу. Это замедление происходит за счет увеличения време- ни последовательного поиска в базе знании. Архитектура с массовым параллелизмом например человеческий мозг, нс страдает таким недостатком. Наконец, есть нечто очень привлекательное в подходе к проблемам интеллекта с позиций нервной системы или ге- нетики. В конце концов, мозг есть результат эволюции, он проявляет разумное поведе- ние и делает это посредством нейронной архитектуры. Нейронные сети, генетические алгоритмы и искусственная жизнь рассматриваются в главах 10 и 11. 1.2.10. Искусственный интеллект и философия В разделе 1.1 мы представили философские, математические и социологические ис- токи искусственного интеллекта Важно осознавать, что современный ИИ не только на- следует эту богатую пителлектуальну»традицию, но и делает свой вклад в нее. Например, поставленный Тьюрингом вопрос о разумности программ отражает наше понимание самой концепции разумности. Что такое разумность, как ее описать? Какова природа знания? Можно ли его представить в устройствах? Что такое навыки? Может ли знание в прикладной области соотносится с навыком принятия решений в этой среде. Как знание о том, что есть истина (аристотелевская “теория”), соотносится со знанием, как это сделать ("практика”)? Ответы на эти вопросы составляют важную часть работы исследователей и разработ- чиков ИИ. В научном смысле программы ИИ можно рассматривать как эксперименты- Проект имеет конкретную реализацию в виде программы, и программа выполняется как эксперимент. Разработчики программы изучают результаты, а затем перестраивают про- граммы и вновь ставят эксперимент. Таким образом возможно определить, являются ли наши представления и алгоритмы достаточно хорошими моделями разумного поведения- Ньюэлл и Саймон [Newell и Simon, 1976] предложили этот подход к научному познанию в своей тьюринговской лекции 1976 г. Ньюэлл и Садмон также предложили более сильную модель интеллекта в своей гипотезе о символьной систе-мс- физотеская система проявляет разумное поведение тогда и сматпивается Ф"зи?еской символьной системой. В главе 16 подробно ряс- Миогме помменения^иСМЫСП 1ТОрии’а также критические замечания в ее адрес. философ™= в — м°“° нпеязьитребуст^панХ^ов н^08'™0™ ИЫКа? ПР°тирование поним»' о • Недостаточно правильно сформировать строку сиМ 52 Усственный интеллект; его истоки и проблемы
волов. Механизм понимания должен символы в зависимости от контекста Ч-m то Cb»aib им смысл или интерпретировать Подобные философские™, р-ь^т"Т * 1 2 3 Ч 5™ построение экспертных систем „Ли радабо™ “°™X ™ ИИ’ ™ вопросы будут рассмотрены в дайной кн,ие^Гме ™00 МЗШ"т,ОГО °6 7 8>,чсвия- ИИ обсуждаются также а главе 16 Р "мвл“м Философские аспекты 1.3. Искусственный интеллект — заключительные замечания Мы попытались дать определение искусственному интеллекту путем рассмотрения основ- ных областей его исследования и применения. Этот обзор обнаружил молодую и многообе- шаюшую область науки, основная цель которой — найти эффективный способ понимания и применения интеллектуального решения проблем, планирования и навыков общения к широ- кому кругу практических задач. Несмотря на разнообразие проблем, затрагиваемых исследо- ваниями ИИ, во всех отраслях этой сферы наблюдаются некоторые общие черты. 1. Использование компьютеров для доказательства теорем, распознавания образов, обучения и других форм рассуждений. 2. Внимание к проблемам, не поддающимся алгоритмическим решениям. Отсюда — эвристический поиск как основа методики решения задач в ИИ. 3. Принятие решений на основе неточной, недостаточной или плохо определенной информации и применение формализмов представлений, помогающих программи- сту справляться с этими недостатками. 4. Выделение значительных качественных характеристик ситуации. 5. Попытка решить вопросы семантического смысла, равно как и синтаксической формы. 6. Ответы, которые нельзя отнести к точным или оптимальным, но которые в каком- то смысле “достаточно хороши". Это результат применения эвристических мето- дов в ситуациях, когда получение оптимальных или точных ответов слишком тру- доемко или невозможно вовсе. 7. Использование большого количества специфичных знаний в принятии решений. Это основа экспертных систем. 8. Использование знаний метауровня для более совершенного управления стратегия- ми принятия решений. Хотя зто очень сложная проблема, затронутая лишь не- сколькими современными системами, она постепенно становится важной областью исследований. Надеемся, что это введение даст некоторое понятие об обшей структуре и значимости искусственного интеллекта. Предполагаем, что краткое обсуждение таких ' вопросов, как перебор и представления, не были излишне поверхностными • детальнее они будут рассмотрены впоследствии. Здесь они приведены для демонстрации их значимости в обшей организации этой области. ппнпбпе- Как мы отмечали при обсуждении агентского решения проблем обье кшприобр тают смысл при взаимоотношении с другими объектами. и м о. отношен,,,, фактов, теорий и методов, образуюшкх любую научную область. Глава 1. Искусственный интеллект: история развития и области приложения 53
.„связей. чт°’ когда будуГ "Редставле«ь- отдель. „„„ дать понятие таких „„теллекта. они займут свое место в поете- "t7Z>«““e ’“'""'S' и направлений этой сферы. Мь,руководству^, Хом понииавх» в6да"Х прологу и системному теоретику Грегори Бэйтсону даблюлслием. прива»® [Bateson. 19№ с;11„„юшую предметы взучеши. и вы неизбежно разрушите асе •разрушьте структуру, о ь его качество”. Ь4. литература ИИ отражает некоторые из древнейших вопросов, занимав- Перспективна» обдк у менного вычислительного моделирования. Понятия ШВХ западную,мда», мышлеЯия сейчас находятся, вероятно, под более при- |BU‘^Z'Z «Zem« чем во все былые времена, поскольку компьютерная наука ХуХ даорХческого понимания! В то же время политические, экономические и эда е рамки мира людей заставляют нас помнить об ответственности за последствия наших творений- Надеемся, последующие главы помогут вам лучше понять современные методики ИИ и извечность проблем этой области. Отличными источниками по вопросам, поднятым в этой главе, являются труды [Haugeland, 1997,19851, [Dennett, 1978,1984,1991,19951- Использованы такие первоис- точники, как "Физика". "Метафизика” и “Логика” Аристотеля; работы Фреге; труды Бэб- биджа, Буля, Рассела и Уайтхеда. Весьма интересны работы Тьюринга, особенно его представления о природе интеллекта и возможности разработки интеллектуальных про- грамм [Turing, 1950]. Биография Тьюринга [Hodges, 1983] представляет собой отличное чтение. Критика теста Тьюринга может быть найдена в [Ford и Hayes, 1995]. Работы (Weizenbaum, 1976] и [Winograd и Flores, 1986] дают трезвую оценку ограни- чениям и этическим аспектам ИИ. Саймон [Simon, 1981] положительно высказывается об осуществимости искусственного интеллекта и его роли в обществе. Упомянутые в разделе 1.2 применения ИИ призваны показать широту интересов ис- следователей ИИ и сформулировать многие изучаемые ныне вопросы. Учебник [Багг н Feigenbaum. 1989] содержит введение в эти области. Кроме того, рекомендуем книги [Nilsson, 1998] и [Pearl, 1984]. В них подробно рассмотрены вопросы ведения игр, кото- рые затронуть! в главах 2-5. В главах 2, 3 и 12 обсуждается проблема автоматических КмтаТ "збранпая литература по этой теме включает труды [Wos и др, 19841, [Bledsoe, 1977]. [Boyer n Moore, 1979), [Veroff, 1977). вых системахZ'Zj' ги ’ чдтатсдь иожет получить хорошее представление об эксперт- [Durkin, 1994). armOn ” Kine' 1985(> tHayes-Rolh и др., 1984], [Waterman, 1986) и рыв важные ВЗГ™™наИЫХ — обмт непрекращающегося изучения, некото- Colby, 1973), (Wilks 19721 о ZoTT?' ” {Alle"’ l995L (Winograd, 1983], [Schank я эту область представлено в главах ь 19991- Uumfsky и Martin, 2000]; введение в Использование компыот 6 13 ЭТ0" описанное в главе 16, бол^нолпош? м°де”нР°ми,и работы человеческого разума. Чи’ъ'“ (Antimon, 1978] „ 19941₽n„ ° в [Newell и Simon, 1972). [Pylyshyn. WS* Л“ы » т. 3 кпип, [Ban „Feigenbaumтоп ' ” Роб«™™ка (см. главы 7 и 14) предсгав- _ ' 981)' Win] и (Lews н Luger. 2000]. S4 --------------.______________________________________________, Искусственный интеллект: его истоки и лроблеМЬ1
ИИ-орпентироваиныс языки и среды раз Гт, книги, а также в [Forbus и ЬеЮиг, 1993) J!?”™ рассма1Риваются в главах 14 и 15 этой многотомном издании [Michalski идр 1983 ЮйТго □ е™е °®сУаниется ‘ главах9-11- Journal of Artificial Inlelligenee KJounmi of^achi'’ « Michalski, 1990); журналы никами информации no этой теме. teaming также являются важными источ- Главы 10 и 11 представляют взгляд на „„TCJUI,„ г ™ и адаптацию в социальном и природном утром на модульность структуры интеллекта. Эта энциклопедия та^е "Х^’дХьный^н^нГ^™ 1ГСЧ'“™!ИНОГО дов и противоречий, образующих текущее toctoZ₽M"“X Л0ДХ°' 1.5. Упражнения 1. Предложите и аргументируйте собственное определение искусственного интеллекта 2. Приведите несколько дополнительных примеров аристотелевского различия между материи и “формол". Можете ли вы показать, как ваши примеры вписываются в теорию абстракции? 3. Западная философская традиция во многом выросла из проблемы взаимоотношения разума и тела. По вашему мнению: а) разум и тело — сущности разной природы, каким-то образом взаимодействующие; б) разум — всего лишь результат “физических процессов”; в) тело — лишь иллюзия мысли? Обсудите ваши мысли по поводу проблемы разума и тела и ее важность для теории искусственного интеллекта. 4. Приведите критические замечания по поводу тьюринговского критерия “разумности" компьютерной программы. 5. Сформулируйте ваш собственный крюерий “разумности” компьютерной программы. 6. Хотя вычислительная техника — относительно молодая дисциплина, философы и математики размышляли о вопросах, существенных для автоматического решения задач, на протяжении тысяч лет. Каково ваше мнение о существенности этих фило- софских вопросов гго отношению к проектированию устройств интеллектуального решения проблем? Аргументируйте свой ответ. 7. Рассмотрев различия между архитектурами современных компьютеров и человече- ского мозга, поясните, какое значение имеет исследование физиологической струк- туры и функции биологических систем для разработки программ ИИ. Аргумента руйте свой ответ. 8- Выберите проблемную область, в которой, как вы считаете, затраты на разработку экспертной системы были бы оправданы. Разъясните в общих чертах суть проЬк«“ Па основании своей ингуггшнг скажите: каюте аспекты прими. решении будет на,,- более сложно автоматизировать? Глава 1. Искусственный интеллект: история развития и области приложения
Я. Кзйдкте еще ди преимущества экспертных систем, кроме уже перечисленных и тек- сте» Обсудите их с точки зрения ннтелдектуальных. социальных млн экономических результата J0 Поясните. почему вы сч,гтаете такой сложной проблему машинного обучения. I! Счтаэеге .ш вы возможным для компьютера понимать и использовать естественный (человеческий) язык? 12. BbwsJrre и поясните два потенциально негативных последствия развития искусствен нога интеллекта для обшествз- 56 Иск'/сстБенНЬ)й и ---------—------------------— нтеплект: его истоки и проблемы
Часть)) Искусственный интеллект как представление и поиск Вег науки описывают основные характеристики систем. кпчаеиых ими. Эти ха- рактеристики неизменно являются качественными по своей природе, поскольку они задают термины, оперируя которыми, можно развить данную область науки более допахьмо- Изучение логики и компьютеров показало, что интеллект присущ физический сим- вольным системам. В качественной структуре заключается основной принцип теории вычислительных систем Символьные системы — ото наборы камбгтл/ий символов (шаблонов) и способов их обработки (процессов). которые в то лее время описывают способы создания. разрушения и изменения символов. Наиболее важное свойство наборов символов заключается в том. что с их помощью можно опреде- лять объекты, процессы или другие наборы символов. Процессы при мной могут быть интерпретированы— Второй принцип качественной структуры жкрхтввваюо имлевьета заклявшаяся в там, что символьные актешв решают эадсеш путем галерсврш возможных релыааас а затем проверяют их в процессе поиска (или перебора вариспвпов). Для решетя задачи обычно создаются символьные выражения, а затем они поакдоеатегыю модифицируются до та пор, пока не буд\т дсктигнушы условия решения. — Ньюэлл (Newell) н Саймон (Simon), лекция по случаю вручения премии Тьюринга в Ассоциации специалистов по компьютерной технике. 1976
Введение^Н^^-----------------------------------------------------— ---------------- и Саймон доказывают, что шггедлек1уш1ьная дсятсль- в вышеупомянутой лекции Нью с .«-пользованием следующих средств, носп, как человеки так и машины. осуш НОС^ „ /^мбннацин символов), предназначенные для описания 2 Хини с то.....шаблоном,,, поавшшюшие генернрооагь потенциальные решс. ния проблем. , Поиск с целью выбора решен,» „з числа всех возможных. Описанные предположен,» формируют базис гнпошезы о физической сиззвоеъиой сис „„е,° """" (РШД“ 161)' ™П0Таа ™ “ °СН™е ШШ',Х «/создания умных машин и делает очев,иными основные предположен,о, в иссле- довании искусственного интеллекта. Гипотеза о физической символьной системе неявно различает понятая «««.они (pattern). сформированных путем упорядочения символо», и среды (medium), в которой они реализованы. Если уровень интеллекта определяйся нс- ключктельно структурой системы символов, то любая среда, которая успешно реализует нрвашьвые шаблоны и процессы, достигнет этого уровня интеллекта, независимо от того, составлена она из нейронов, логических цепей, или это просто механическая игрушка. Возможность построения машины, которая бы прошла тест Тьюринга, зависит от выше- упомянутого разграничения. Согласно тезису Черча о вычислимости по Тьюрингу [Machtey и Young, 1979) компьютеры способны осуществить любой эффективно описанный процесс обработки символьной информации. Разве из этого не следует, что должным образом за- программированный цифровой компьютер обладает интеллектом? Гипотеза о физической символьной системе также вкратце описывает главные вопросы исследования в области искусственного интеллекта и разработки его приложений. К ним относится определение структур символов и операций, необходимых для интеллектуально- го решения задачи, а также разработка стратегий для эффективного и правильного поиска потенциальных решений, сгенерированных этими структурами и операциями. Эти взаимо- связанные проблемы представления знания и поиска (knowledge representation and search) лежат в основе современных исследований в области искусственного интеллекта. ипотеза физической символьной системы оспаривается критиками, которые утвер- ждают что интеллект является наследственно биологическим и экзистенциальным и не зафикс,,рман с помощью символов [Searle, 1980], [Winograd и Flores, 1986]. кусстаеннпг^ии?10СЯТСЯ К_господствУюШсму направлению исследований в области нс- тие тсопии нсйпп^11ЛСКТа ”” Определяют такие направления исследований, как разви- толов (подход ‘‘areXeCZc»)HX4CCKHX аЛГ°РИ™0В ” агентно-ориентированных ме- ния гипотезы физической симйап, u - °ТрЯ На вышсУказанные возражения, предположе- и теоретических работ в экспептнмхУ’'^^1'1 ЛеЖаТ В 0СН0Ве П0ЧТИ ВССХ 11Рак™ЧССКИХ кого языка. Эти нпоблсмь fiv Р СИстсмах, в планировании и понимании естествсн- Залача любой схемы ппелТГ раССМОтрсны в главе 16. ку области определения задачи * ТОМ> Чтобы ^фиксировать специфи- чна проблемы. Очевидно что ят ЭТУ Н||Ф°РмаЧию доступной для механизма реше- жать знания, необходимые для оеш™РСДСТаВЛСНИЯ fl0JDKCH позволять программисту выра- нне только той информации задачи- Абсг»ракция (abstraction), т.с. представле- чсобходима для достижения заданной цели, является 58 *--------------------- -----------------------_______ Искусственный интеллект как представление и поиск
необходимым средством управления слоа,„,1.,и „ граммы должны быть рациональными в вычислить''.Т'™’’ Кр°м“ ™™' ‘ш“ет,|ыс "Р°* эффективность являются взаимосвязанными хапяютп” <гг"°ш™"и л“/«™»и»ышсть и ления знаний. Многие достаточно выразительные спс.™"'3"" ’П“'<0“ |фс"ст11“‘ совеем неэффективны в других классах задач Иногда выов-лпс'"""'"""" ” °“""Х вать в пользу эффективности. В то же время |<сл| „ о™™ м°*"° "°жс1’п,°- бражения, позводающето фиксировать сущееткннысшаншТ'’ "1"<”™ос™ ™ого от0‘ му решению конкретной задачи Рдауми^Х™ мида Zi жГ"””" “ ’ФФ"™'0’ 71 ' азумныи компромисс между зффекгивностью и вырази- тельностью — нетривиальная задача для разработчиков интеллектуальных систем Языки представления знаний являются средством, позволяющим решать задачи По существу, способ представления знания должен обеспечить естественную структуру вы- ражения знания, позволяющую решить проблему. Способ представления должен сделать это знание доступным компьютеру и помочь программисту описать его структуру. Эти взаимные компромиссы в выборе способа представления знания можно показать на примере представления чисел с плавающей точкой в компьютере (рис, II.1). Вообще, для полного описания вещественного числа требуется бесконечный ряд цифр, что не может быть выполнено на конечном устройстве, т.е. на машине с конечным числом состояний. Единственное решение этой дилеммы— представление числа в виде двух частей: его зна- чащих цифр и положения десятичной точки в пределах этих цифр. Несмотря на то что ве- щественное число без искажения нельзя хранить в компьютере, можно создать его пред- ставление, адекватно функционирующее в большинстве практических приложений. Вещественное число: п Десятичный эквивалент. 3,1415927 ... Представление с плавающей точкой: | 31416 | т | Т t-— Экспонента I--------Мантисса Представление в памяти компьютера: 11100010 Рис IL I- Различные представления вещественного числа п Представление числа с плавающей точкой уступает в выразительное™, по вынгрыяа- ет в эффективности. Такое представление позволяет выполнять многократные арифме- тические операции, обеспечивает эффективность их выполнена не «остью вы числений с предельной ошибкой округления пр» любо» данной погрешности. Представление числа с плавающей точкой анализировать ошибки округления. Подобно всем представлен . объект не- симводьиый шаблон, определяющий желаемый логический объект, но нс сам объект посредственно. я ^вдрилдавьи систем. Для Массив — еще одно представление, при архитектура памяти. рсализован- многцх задач оно более естественно и эффект • их оказывается естест- ная в аппаратных средствах. Это пРсдставлСНИ1'азитсльН0СТ1| что наглядно показано на венным и эффективным, уступая при это р дзн0 оцифрованное изображе- слсдуюшсм примере обработки изображении^ обработки изображения опреде- ние хромосом человека на стадии метафазы. •' разрывы, отсутствующие фраг- ляются номер и структура хромосомы. о>нар>ж менты и другие аномалии. 59 Введение е представление знаний
Рис II 2. Оцифрованное изображение хромосом в метафазе Визуальная сцена состоит из точек изображения. Каждая точка, или пиксель, ха- рактеризуется расположением и числовым значением, представляющим уровень се- рого цвета. Поэтому всю сцену вполне естественно представить в виде двухмерного массива, где номер строки и столбца элемента массива определяет место располо- жения пикселя (координаты X и У), а сам элемент массива — уровень серого цвета в этой точке. Для обработки подобного изображения необходимо реализовать такие операции, как поиск изолированных точек для удаления шума из образа, нахождение пороговых уровней для распознаваемых объектов и их границ, суммирование непре- рывных элементов для определения размеров и плотности образов. Затем получен- ные данные, описывающие изображения, могут быть преобразованы. Этот алгоритм уло но программировать на языке FORTRAN, в котором непосредственно реализо- аиы операции с массивами. Однако программа была бы слишком громоздкой, если сембп(*п,им<-П0,1Ь30ВадИСЬ такие сРедства- как исчисление предикатов, записи или ве- данного материала'1010”^ ЧТ° °КН НС °^еспечнвают естественного представления (ср»иэт7^отогаХ6^аЖСНИ1: “ В"ЯС "ассию ""«селей, мы жертвуем разрешением ла не мот до^Х'о™"' ' Исход,,ым изображением). Кроме того, массивы пиксе- мер, массив пикселей не™4”0 ото®ражать семантическую организацию образа. Напри- клетки, их генетическую хМ°ЖСт 11рсяставитъ организацию хромосом в отдельном ялре нс фиксировать, используя та”JW ₽0ЛЬ мстаФазЬ| в делении клетки. Эти знания лег- мантическис сети (глава 6) П0НЯТИя’ как “счисление предикатов (глава 2) или се- С«ма ЮМ|1а сладуюи|им услов„„м асть II. Искусственный интеллект как представление и поиск 60
1. Адекватно выражать всю необходимую информацию. 2, Поддерживать эффективное выполнение конечного кода. 3. Обеспечивать естественный способ выражения необходимых знаний. Мак-Дсрмотг (McDermott) и его последователи утверждают, что секрет написа- ния хорошей программы, основанной на знаниях, заключается в выборе подходящих средств представления. Программисты, специализирующиеся на языках низкого уровня (Basic, FORTRAN, С и т.д.), порой строят неудачные экспертные системы только потому, что эти языки не обладают достаточной выразительностью и не обеспечивают модульность, необходимую для программирования на основе знаний (McDermott, 1981]. Вообще говоря, задачи ИИ не решают путем их упрощения и “подгонки'' к уже имеющимся понятиям, предлагаемым традиционными формальными системами, на- пример массивам. Эти задачи связаны скорее с качественными, а не количествен- ными проблемами, с аргументацией, а не вычислениями, с организацией больших объемов знаний, а не реализацией отдельного четкого алгоритма. Чтобы удовлетво- рять этим требованиям, язык представлений искусственного интеллекта должен об- ладать следующими свойствами. 1. Обрабатывать знания, выраженные в качественной форме. 2. Получать новые знания из набора фактов и правил. 3. Отображать общие принципы и конкретные ситуации. 4. Передавать сложные семантические значения. 5. Обеспечивать рассуждения иа метауровне. Рассмотрим этот перечень более подробно. Обработка знаний, выраженных в качественной форме Программирование искусственного интеллекта требует средств фиксации (выражения) и рассуждений о качественных аспектах задачи. Рассмотрим простой при- мер — размещение блоков на столе (рис. 11.3). а ь Рис- H.J. Мир бюков Для представления расположения блоков можно использовать декартову систему Гордина г, где значения Хи У задают координаты каждой вершины блока. Хотя этот Подход описывает мир блоков и является, несомненно, правильным представлением Аля многих задач, в данном случае он неудачен, поскольку не позволяет непосрсдст- Венно зафиксировать свойства и отношения, необходимые для качественных выво- ДОв’ Это выводы о том, какие из блоков уложены друг на друга к какие имеют от- 61 Введение в представление знаний
было ran “ “*’"нять- "редикам,« крыты» вер». что6ы “ "°” ,0 фиксирует эту наглядную информацию, в „с. (predicate calculus) иепоерсдстаг, т л0Г„ЧССКнмн утверждециями: числении „реликатоаыир блоков мож dearie) cleer(a) onteble(B) ontable(b) оп{с, 6) cube(b) cube(a) pyramld(c) Первое слово каждого выражения (on. Л» „ т.д.) - предикат (predicate), обоэна. —,ц некоторое свойство или соотношение его параметров, приведенных в круглых скобках Параметры - это символы, обозначающие объекты (блоки) в предметной облас- то Совокупность логических предложений описывает важные свойства л соотношения ми- ра блоков. Исчисление предикатов предоставляет программистам задач искусственного ин- тсллскга четкий язык описания и способ рассуждений относительно качественных аспектов системы. Исчисление предикатов не единственный способ представления. но этот подход, вероятно, наиболее понятен для многих задач. Кроме того, он является достаточно общим, чтобы служить основой для других формальных моделей представления знания. Исчисле- ние предикатов подробно рассматривается в главе 2. Вышеупомянутый пример иллюстрирует точное представление блоков на рис. П.З. Это явное представление, поскольку очевидна связь между его элементами и нашим соб- ственным пониманием “мира” блоков. Знание можно также представлять неявно. На- пример, с помощью нейронной сети (глава 10) можно представить эту конфигурацию блоков в виде шаблонов взаимодействия между искусственными нейронами. Соотноше- ния между этими шаблонами и элементами мира блоков не очевидны. В большинстве случаев единственный способ понять, какие знания содержатся в сети, — это рассмот- реть ее работу на примерах. Тем нс менее возникает вопрос о соответствии неявных представлении их явным эквивалентам: способна ли данная модель нейронной сети пе- редать все знания, которые необходимы в задаче? Сможет ли компьютер получать дос- туп и эффективно управлять этими знаниями? Можно ли гарантировать правильность логических выводов, сделанных нейронной сетью? Логическое получение новых знаний из набора фактов и правил дополнитсльные,1чКтуальный °^ЪСКТ должен обладать способностью логически получать запоминают точное оиисание’^"00’1 °™СаНИЯ рсальнО1° миРа- Люд»- например, нс рее. мы способньГра “‘т! С^аЦ*’И (Да “ ”“ЖН0)' СК°/ И язык представления знаний стРает»ь« описаниях классов объектов и состоянии. В hP1^XrZa бло :°ГН ОбСС"еЧИТЬ Э1> «юность. блок открытым, т.е. не паспола °ЖЛ° °,,редслитъ тсст- Устанавливающий, является ли ный вопрос для робототехнической^* ”” На вГ° верХнсй гРани Другой объект. Это важ- блокн или укладывать их друг на ист2^ы> 6 которой рука робота должна поднимать каждому блоку. Можно оппеллпи^^ СВойста° ,,с обязательно явно приписывать Р делить общее правнло, КОТОрос Иозволяст снстиМС делать 62 62 ~______________________________________________ Искусственный интеллект как представление и поиск
логические ВЫВОДЫ из имеющихся гЬактпп п .. выглядеть так, ‘ счислении предикатов эзо привило моли VX-пЗГ ол(ГЛ)^с/еаг(Х). Оно означает следующее: дц Л1обого элемс(Па х существует такого Y, что Y находится на X. Это М * ЯВЛЯСТся открытым, если не ситуациях при замене значений X и У. ПозвлпЯО пправ11Л0 М0Ж<7 пР,,ме,,япся в различных правила вывода, исчисление предикатов прслоста?^^ормулиРовать обобщенные знания. Кроме того, исчисление предикатов лает втм a”WUw удобства в выражении таточно общие системы. уме.ощ.Тдей^о LTnaZ „ '",м™'’°“ать Нейронные ее™ тоже вывод и” .™,", и ,ГХ Р“““Т I MM I новые знания из имеющихся фактов хотя ппапила «г пользуемые ими. скрыты. Классификациято общеприня™ форма логического вы- вода, выполняемого такими системами. Например. „ейр„„„ую CCT*₽МОЯ1НО о6учить “ вать все конфигурации блоков, в которых пирамида располагается поверх блоха, имею- щего форму куба. 1 Отображение общих принципов наряду с конкретными ситуациями В предыдущем разделе было продемонстрировано применение логических правил для вывода дополнительных знаний из основных фактов. Кроме того, на примере с блоками было показано, как использовать переменные в исчислении предикатов. Поскольку интсл- лсктуальнал система должна быть максимально обшей, любой хороший язык представле- нии нуждается в переменных. Необходимость качественных рассуждений делает использо- вание и реализацию переменных чрезвычайно сложной и тонкой задачей по сравнению с их трактовкой в традиционных языках программирования. Значения, типы и правила обра- ботки данных в языках программирования, ориентированных на вычисления, чрезвычайно ограничены и нс годятся для реализации интеллектуальных систем. Для обработки связан- ных переменных и объектов существуют специальные языки представления знаний (главы 2, 14, и 15). Высокая способность обобщения— это ключевое свойство нейронных сетей, систем обучения и других адаптивных систем. Эффективное обучение системы- агента заключается в том, чтобы научиться обобщать данные, полученные в процессе тако- го обучения, а затем правильно применить полученные знания в новых ситуациях. Передача сложных семантических значений Во многих областях искусственного интоиена решение задачи требует использоииия высокоструктурированных взаимосвязанных знаний. Например, чтобы опиата аиомобиль. недостаточно „еречиаштъ его составные часта. Адекватное описание должно учитывать так- же способ соединения и взаимодсйспии этих частей. Структурное предстанлеине иеооходимо во многих задачах, начиная с таких таксономических систем, как система класси ..капли тений по видам н ролам, н заканчивая средствами описания такт» сложны,™ » зольный двигатель ...... человеческое тело в терминах составляющих _ блоков основой полного описания расположения были аоаимоасиствш' й мсжлу Семантические отношения также необходимы для описан., и событиями. Они позволяют понять простые рассказы, наир«“J-“ оредставнть план действий робота как послсдовательноста исмснтарнмх дейеты.н. ко- торыс должны быть выполнены в определенном порядке. 63 Введение в представление знаний
, _ представлены fl виде совокупности предикатов Ил}1 Хотя вес эти ситуации могут оы имеющего дело со сложными п0НЯтня. адекватных им формализмов.^^ процессов в программе, необходимо неко- ми И стремящегося дать структуры процесса. торое высокоуровневое предс опнсать ^к. Канарейка— это маленькая желтенькая Например- канарейку мо лета10Шее позвоночное животное. Эта формулировка ‘•=« дассквх предаов: hassizeicanary, small) hascovering(bird, feathers) hascolorlcanary. yellow) haspropertylbird. flies) isa(canary. bird) isa(bird, vertebrate) Предикатное описание можно представить графически. используя для отображения предикатов определяющих отношения, дуги (аге) или связи (link) графа (рис. П.4). Такое описание, называемое семантической сетью (semantic network), является фундаментальной методикой представления семантического значения. Поскольку отношения явно выражены связями графа, алгоритм рассуждений о предметной области может строить соответст- вующие ассоциации, просто следуя по связях». В примере с канарейкой системе нужно про- следовать только по двум дугам, чтобы решить, что канарейка — это позвоночное живот- ное. Это значительно эффективнее, чем утомительный исчерпывающий поиск в базе дан- ных, содержащей описания на языке исчисления предикатен вида lsa(X, V). | vertebrate"] IS8 _____ hasproperty __________________ I j--------—--------»( flies ] ______________ hascovering feathers |-«------------—-— bird isa hascolor ________________________ -----------*~1 b,ue ) I------------, hassize I small [м---------------- •[ bluebird (- Рис. It 4. Описание семантической сети для канарейки ЗМ""Я ”0ГУ1 6hm‘ <,Pra“lo<>“""'1 так, чтобы отражать естественную мер святи isa И1 даннои пРеДметной области. Некоторые связи, напрн- Х о„, , " XZT М к классу и задают свойства, за- хан,™ наследовав,»в , "^<1УЮ"’ ““ самом высоком Уровне^иракд,, и. П”“Н° “ пгаволяет сохранять знания но ном.,ческой (влага,фнинрХной.'стох™””"'"- "НС'1’умент представления таксо- Рует что все члены класса обладают .Сп“,И*Р“1Ц“' К0Т°РЫЙ гаРа“™’ Теория графов эффективно и Кроме того, она позволяет опись & енно ВЬ1ражает сложные семантические знания, чсскме сети — эго достойная ап 1 аТЪ струксУРнУ10 организацию базы знаний. Семаити- ' М адьтсРнат1.ва исчислению предикатов. 11. Искусственный интеллект как представление и поиск 64
Возможно, наиболее важное свойство сывать семантические значения для cuct^MM™'1CCKHX сетсй— эго способность опи- ссли необходимо понять детскую сказ™ ™”имания естественного языка. Например, страницы, то в соответствующей прикладной^ЫЬную сгатьК) и™ содержание Web- ческую информацию и отношения. отражающем™ “™"роють ееманти- ДЯШИЙ для этого механизм. Они обс™ютсТ. ” Семаит’™ск“ “™ ~ "™“>- задач понимания естественного языка — в главе 13. ' ' ’ "Х "р"мс"с"“'™ 0||исаи,|я рассуждения на метауровне Интеллектуальная система должна не только знать предмет, но также знать о том. что она знает этот предмет. Она должна быть способна решать задачи н объяснять этн реше- ния. Система должна описывать свои знания как в конкретных, так и в обобщенных тер- минах, узнавать их ограничения и учиться в процессе взаимодействия с миром. Эта осведомленность о своих знаниях ’ составляет более высокий уровень знаний, называе- мых метазнаниями, необходимых для проектирования н адекватного описания интел- лектуальных систем. Проблему формализации метазнаний впервые исследовал Бертран Рассел (Russell) в своей теории логических типов. Кратко ее можно описать так: если множества могут быть членами других множеств (ситуация, аналогичная обладанию знанием о знании), то могут существовать множества, которые являются членами самих себя. Согласно теории Рассела это ведет к неразрешимым парадоксам. Рассел отверг эти парадоксы, классифицируя мно- жества как относящиеся к различным типам, в зависимости от того, содержат они отдель- ные элементы млн множества элементов н т.д. Множества не могут быть членами мно- жеств, относящихся к типу меньшего или равного значения. Это соответствует различиям между знаниями и метазнаниями. Но при попытке формально описать зги рассуждения Рассел столкнулся с многочисленными трудностями [Whitehead и Russell. 1950}. Способность обучаться на примерах, опыте или понимать инструкции высокого уровня (в отличие от жесткого программирования) зависит от применения метазнаний. Методы представления знаний, разработанные для программирования задач искусст- венного интеллекта, обеспечивают возможность адаптации и модификации, так необ- ходимую для обучающихся систем, и формируют основу для дальнейших исследова- ний (главы 9-11). Чтобы удовлетворять требованиям символьных вычислений, искусственный интел- лект должен обладать такими средствами, как языки представления, например, исчисле ние предикатов, семантические сети, фреймы и объекты (главы- и ). и PROLOG — языки для реализации этих и других представлений. Все эта инструменталь- ные средства подробно рассматриваются в книге- „___ Как следует из приведенных выше рассуждений о необходимых своистт^ представления знаний, решение задачи искусственного интеллектаnOejcraMeHM РУ представления среди .»«»»„“ХТ'про^жм" Хпечивают^х решение весьма важен для разработчиков разнообразие язиков предсп.- задач искусственного интеллекта. Несмотря иа удовлегворя1ь общим лен.,я. используемых в,.схусетвенноминте „ ШИОСМ деднпшних ВЫВОДОВ требованиям выразительности. эффекту' ' м задача как для исследователей. Выбор и опенка языков представлении так и для программистов. Введение в представление знаний 65
,аяачи методоМ252Л£!??-----------------------------------—- Решение ------ „ системе Ньюэлла и Саймона является вторым аспектом гипотезы » ^"Хяых вариантов. С точки зрения простого нонск решения ’адач" СРС;'” Хо поскольку именно так задачи решает чело- ™p3Je смысла ’Т» •««^Х’вариантов. мы пытаемся решить проблему, “к Рассматривая ряд альтернат' в. и вы6ирает оптимальные согласно та- Шахматист обычно изучает возмо» ^мв ил[| некоторая глобальная страте- им критериям, как вероятные от» Церок также рассматривает преимуще- гия, поддерживаемая на каждо. _ взятие ферзя противника), возможио- ства в краткосрочных стратегея .и* прс1|Мушеств0 иля строит предположения ста пожертвовать фигуру за по противника, его опыта и умения. Мате- отноентельно психологическое _ ,ы6„рает свою линию среди большого матик при доказательстве тру „сматично рассматривать ряд возможных щ’ХоХТ^оедателлектудаьное поведение лежит в основе методики поиска РС1!'™еВствс°Сп1рГшогГпркмера'’рассмотрим игру -‘крестики-нолики”. Для любой заданной ситуации всегда существует только конечное число допустимых ходов иг- рока Первый игрок может разместить крестик в любой из девяти клеточек пустой игровой доски. Каждый из таких шагов порождает различные варианты заполнения игровой доски, которые позволяют противнику сделать восемь возможных ответных ходов и т.д. Эту совокупность (в зависимости от возможной конфигурации игровой доски) можно представить в виде вершин графа. Дуги графа представляют разре- шенные ходы, приводящие от одной конфигурации игровой доски к другой. Узлы этого графа соответствуют различным состояниям игрового поля. Результирующая структура называется графом пространства состояний. Можно построить граф пространства состояний для игры “крестики-нолики” (рис. II.5). Корневая вершина этого графа будет соответствовать пустой игровой доске, указывающей на начало игры. Каждый следующий узел графа будет пред- ставлять состояние игровой доски, возникающее в процессе игры в результате до- пустимых ходов, а дуги между ними— связи между вершинами. Значение этого графа состоит в том. что он дает возможность проследить последовательность шагов в любой игре. Проход начинается с вершины, представляющей пустую игровую дос- ку, а перемещения по дугам приводят к вершинам-состояниям, представляющим или Х°Д’ ИЛИ п°бедУ' Представление в пространстве состояний, таким обра- оаэличны^п рассмауивать всс возможные варианты игры “крестики-нолики" как различные пути на графе пространства состояний. ную игрову(7стпатсгиюбРИЗОМ' М°*Н0 С пом°Щ|>к’ поиска на графе найти эффектив- шему 7„е„Уу”обда 7ZZZ"~' ™ * "°"6°ЛЬ- всегда будет вынуждать противника .„m,"4’3'™””'' " выбРать так>"° ПГРУ’ котоРая Возможность выбора эффект,одному из оптимальных для нас путей, графа. Регулярность и точность стратегин ~ это не единственное преимущество непосредственно реализовать "рсдстав1,сния пространства состояний позволяют- И,РУ на компьютере. 66 V ственный интеллект как представление и поиск
Рис. If.5. Фрагмент пространства состояний для игры "крестики-нолики" В качестве примера использования поиска для решения более сложной проблемы рассмотрим задачу диагностирования механических неполадок в автомобиле. Хотя эта проблема на первый взгляд и не кажется такой же легкой задачей поиска в простран- стве состояний, как игра “крестики-нолики'’ или шахматы, на самом деле она очень хорошо подходит для этой стратегии. Вместо того, чтобы каждой вершине графа про- странства состояний ставить в соответствие "состояние игровой доски", будем припи- сывать вершинам графа состояния частичного знания о механических неполадках ав- томобиля. Процесс исследования признаков неполадок и устранения их причины мо- жет быть представлен как поиск по всем состояниям, расширяющий наши знания о них. Начальная вершина графа пуста, она указывает на то, что о прнчинхх неполадок ничего не известно. Первый вопрос, который механик мог бы задать клиенту, сводится к следующему: какие основные части системы (двигатель, коробка передач, рулевое управление, тормоза и т.д.), возможно, неисправны. Этот фрагмент диалога представ- лен в виде совокупности дуг, ведущих от начального состояния к состояниям, соответ- ствующим отдельным подсистемам автомобиля (рис. И.6). Решение задачи методом поиска 67
л ,, устройства состояний на первом этапе реше- «„„.иием графа связаны дугН (соответствующие основным диагностиче. Сгаящымга о ' к „стояниям, представляющим уточненные знания в Например, узел неисправности двигателя связан с узлам„ запускается" я “двигатель не запускается . От узла двигатель не »„уска„. А можно перемещаться к умам “заводится" и “не заводится . Узел не заводится" С8Я. ззн с умами “аккумулятор не работает” и “аккумулятор в порядке" (рис. П.7). Коробка передач Г Вопрос:... Первый вопрос: в чем неисправность? Тормоза Вопрос:.. Двигатель Вопрос: трогается ли машина? Двигатель запускается Вопрос:... Заводится ) Вопрос:.., Двигатель не запускается Вопрос: заводится ли машина? Аккумулятор в работает Не заводится Вопрос: фары зажигаются? в порядке ^°НС/Пво сис1по>1"1/‘1 в задаче диагностики неполадок автомобиля Можно построить гоаЛ ялошие заключительные ’ ВКЛ10ча10щич все возможные вопросы и вершины, предс?4® ностировать автомобнльым» Н0СТНЧесКие выводы. Решающее устройство смо*еТ диаГ еполадки, находя путь в этом графе. Заметим, что к°н 68 Искусственный интеллект как представление и поиск
крстные вопросы, задаваемые в данном примере, определяют путь на графе. При этом каждый следующим ответ удаляет из рассмотрения ненужные вопросы. Хотя эта задача очень отличается от алгоритма нахождения оптимального пути в игре “крестики- нолики , она тоже решается путем поиска в пространстве состояний. Нейронные сети и другие адаптивные системы также выполняют поиск, особенно во время обучения и адаптации. Всевозможные обобщения данных, которые самообучающая- ся программа может сформировать в процессе обучения, можно представить себе как зле- менты пространства. Задача алгоритма обучения состоит в использовании обучающих дан- ных для поиска в этом пространстве. В нейронной сети, например, пространством поиска является множество всех наборов возможных весов связей сети. В процессе поиска набора связей, которые максимально соответствуют обучающим данным, эти веса изменяются. Несмотря на эту очевидную универсальность, поиска в Пространстве состояний не достаточно для автоматизации интеллектуального поведения, обеспечивающего (автоматическое) решение проблем. Но это важный инструмент для проектирования ин- теллектуальных программ. Если бы поиска в пространстве состояний было достаточно, то было бы довольно просто написать программу, играющую в шахматы. Для определе- ния последовательности ходов, ведущих к победе, на каждом этапе игры нужно было бы осуществлять полный поиск по всему пространству состояний. Этот метод решения за- дач известен как исчерпывающий поиск (exhaustive search), или поиск методом полного перебора. Хотя полный перебор может применяться в любом пространстве состояний, огромный размер пространства для интересных задач делает этот подход практически неприемлемым. Игре в шахматы, например, соответствует приблизительно (О120 различ- ных состояний игровой доски. Это на порядок больше, чем число молекул во Вселенной или число наносекунд, которые минули с “большого взрыва" (момента создания Вселен- ной). Поиск в таком пространстве состояний выходит за рамки возможностей любого вычислительного устройства, размеры которого должны быть ограничены до известной области мироздания, а реализация должна быть закончена прежде, чем эта область под- вергнется разрушительному действию энтропии. В этой книге будет показано, как поиск в пространстве состояний можно использо- вать для практического подхода к любой проблеме. Поиск обеспечивает структуру для автоматизации решения задач, но эта структура лишена интеллекта. Такой подход не да- ет возможности формально описать задачу. Кроме того, простой полный перебор боль- шого пространства вообще практически неосуществим и непригоден для описания сущ- ности разумной деятельности. Однако в реальной жизни люди используют поиск: шахматист рассматривает ряд возможных ходов, доктор исследует несколько возможных диагнозов, ученый- программист принимает во внимание различные варианты проекта перед гем, как при- ступить к написанию кода. Однако люди не используют полный перебор: шахматист ис- следует только те ходы, которые, как свидетельствует опыт, должны быть эффективны ми. доктор не требует проведения всех возможных анализов, которые не связаны каким- либо образом с имеющимися симптомами болезни. Проектируя программные средства, математик руководствуется опытом и теоретическими знаниями. Итак, решение задачи человеком основано на субъективных правилах, направляющих поиск к тем частям про странства состояний, которые по каким-то причинам кажутся “обещающими . Эти правила известны под названием эвристик (heuristics). Они составляют одну из центральных тем исследований в области искусственного интеллекта, вристнка гер.ми возник от греческого слова "находить") — это стратегия для выборочного поиска в про 69 Решение задачи методом поиска
мет поиск вдоль ЛИНКИ, имеющих высокую 8Ср„ят. , состояний. Он. "•’"ра“' Хстстм « №Т’ачСИНЫХ впустую ИЛИ °ЧСВ,'®о глу. ^а"«п«а^одяпр.отомнсслело« кол„чеетво эвристик в решении задач. Если ”°mvcM й. Л»Л" перепевается, он может сказать что-то ти„а: почему осгат”. ЕСЛИ спросить доктора что Morjlo X» «“Т ТжХ о»сюжет-что эго 'вероятн0, кпшечнь'и ”™ вызвать тошноту И боль „„щевое отрашетда ншежва. Даже лучшая игровая стратегия может быть побе- Эвридака не абсолютно над ДС1М, разработанные опытными врачами, ино- ждена нрогавнпком. Ди^н°™ атики порой не в состоянии доказать трудную теоре. гда терпят неудачу, б"“™ эвр11СтичкЮ1« подход может и должен приблизить нас к му. Нет гарантии, что хор г На,16олее важно то. что эвристика исполь- верному °|ГП,“а“““1УЛч1) дм эффективного поиска решения. ,уст знание о природ обеспечивает средства формализации процесса решения ‘aZX позволяют привносить интеллект в этот формализм. Эти методы под. ХХХп-я в начальных главах этой книга и по-прежнему лежат н основе самых № ХХработок в области искусственного интеллекта. В заключение заметим, что поиск в состояний - это форматом, независимый от каких-либо особых стратегий по- иска. иистквыуемый как отправная точка во многих подходах к решению задач. В этой книге будут исследованы теоретические аспекты представления знаний и по- иска, а также рассмотрены вопросы применения этой теории для создания эффективных программ. Описание способов представления знаний начинается с исчисления предика- тов (глава 2). Хотя исчисление предикатов — только одна из схем, используемых в пред- ставлении знаний, оно обладает преимуществом четкой семантики и доказуемости пра- вильности высказываний, полученных с помощью правил вывода (inference rule). На примере логики предикатов читатель познакомится с проблемами представления знаний и их отношением к поиску. Затем будут продемонстрированы ограничения исчисления предикатов и введены альтернативные схемы представления (главы 6-8). Глава 3 знакомит с поиском в контексте простых игр. На примере нгр можно изучать вопросы, относящиеся к поиску в пространстве состояний, при этом не рассматривать пока проблемы, связанные с представлением знаний в более сложных системах. Эта ме- тодика затем применяется к пространствам состояний, определенным логическими ре- шающими устройствами и экспертными системами (главы 4,5, 7 и 12). ornftv °®с^ждаются вопросы применения алгоритмов поиска. При этом мы обратим ваюгся пполЛИе НЭ нсполиовзнле эвристик для управления поиском. В главе 5 расс.матри- ных правая) СИСтемы (окованные на представлении знаний в виде продукцион- нове поиска.’Глава 5 °бобщеннУю и мощную модель решения задач на ос- дологии ‘‘классной доски*’ ?вЛЯеТ дР^'Г||е способы решения задач, включая описание мето- Разиородных источников знСТР-ТеП,ЯреШ?,ИЯ сложных системных задач с привлечением ании, взаимодействующих через общее информационное поле). представления __ историческую пепспектм^^и введеНие в искусственный интеллект так, чтобы показа теллеета На начальных стадиях работа в области искусственного н ’ образом, мотивирована и обоснована философской перевей 70 -------------------------------------------------—'* Ь '1* ^скУсственный интеллект как представление и пои
ВОН гипотезы о физической символьной системе Ньюэлла и Саймона (Newell и Simon, ]. свете этой теории при разработке интеллектуальных искусственных объ- ектов преимущественное значение имели формальная логика и поиск. На протяжении всей книги, главным образом во второй ее части, будет представлено немало успешных результатов применения этих методик и инструментальных средств, основанных на сим- вольном представлении. Однако существует много других подходов к представлению. В части 3 (глава 6) рас- сказывается о том, как первые простые системы усложнялись по мере решения более трудных задач. Появились нейросетевой, эволюционный, агентно-ориентированный н другие подходы к задаче представления. Обучающиеся машины отражают требования, выдвигаемые к более сложным представ- лениям. В главе 9 будут рассмотрены традиционные подходы к обучению, основанные на символьном представлении информации. Глава 10 посвящена нейросетевому обучению, иногда называемому коннекционистским (connectionist). Глава 11 знакомит читателя с со- циальными и эмерджентными моделями обучения, которые нашли свое отражение в гене- тических алгоритмах, генетическом программировании и искусственной жизни. Наконец, в настоящее время активно развивается стохастическое направление ис- следований. Эти методы, основанные на теории Байеса, часто используются в таких об- ластях, как абдуктивные суждения (abductive inference), обучение с подкреплением (reinforcement learning) и понимание естественного языка. Абдуктивные суждения важны в “обосновании наилучшей трактовки”. В областях неточных знаний стохастические мо- дели и связанные с ними алгоритмы вывода обеспечивают механизм логических рассуж- дений и механизм, учитывающий новую информацию для достижения максимально ве- роятного заключения. Например, в главе 8 представлены сети доверия (belief networks) Байеса, используемые для диагностики. Понимание естественного языка — это еще один пример задачи, решаемой на основе шаблонов. Они могут быть представлены в виде множества фонем, последовательностей слов или образцов рассуждений. Таким образом, вероятностный анализ шаблонов важен как для понимания, так и для порождения естественного языка. В последнее время ис- следователи привнесли стохастические .методы и в эту научную область. Задача понима- ния естественного языка рассматривается в главе 13. В части II начинается рассмотрение схем представления. 71 Альтернативные схемы представления

Исчисление предикатов Наконец мы в полней мере освоили возможности графического изображения логического вывода — последней из наших способностей Это не столько естественный дар, сколько долгий и напряженный труд — Пирс (Pierce) Существенное качество доказательства состоит а том, чтобы заставить поверить — Ферма (Fermat) 2.0. Введение В этой главе мы рассматриваем исчисление предикатов как язык представления искусст- венного интеллекта. Достоинства исчисления предикатов описывались во введении в часть 11. Их преимущества заключаются в четко сформулированной формальной семантике, обосно- ванности и полноте правил вывода. Эта глава начинается с краткого обзора исчисления вы- сказываний (раздел 2,1). В разделе 2.2 определяется синтаксис и семантика исчисления пре- дикатов. В разделе 2.3 мы обсуждаем правила вывода исчисления предикатов и их примене- ние в решении задач. В заключении этой главы демонстрируется использование исчисления предикатов для реализячии базы знающ финансового инвестиционного совета. 2.1. Исчисление высказываний 2.1.1. Символы и предложения Исчисление высказываний и исчисление предикатов, рассматриваемое в следующем подразделе, являются, прежде всего, языками. Используя их слова, фразы и предложе- ния, мы можем представлять свойства и отношения в окружающем мире и рассуждать о них. Первый шаг в описании языка — это знакомство с его составляющими, т.е. набором символов языка.
ОПРЕДЕЛЕНИЕ СИМВОЛЫ ИСЧИСЛЕНИЯ ВЫСКАЗЫВАНИЙ Символы исчисления высказываний — это символы высказываний P.Q.R.S.. значения истинности true (истина), lalss (ложь) и логические связки Символы высказываний (пропозициональные символы) составляют высказывания (proposition) или утверждения относительно некоторого мира. Оии могут быть как ис- тннны, так и ложны, например, “автомобиль красный или вода мокрая”. Высказывания обозначаются прописными буквами и начинаются буквой, расположенной в конце анг- лийского алфавита. В исчислении высказываний предложения формируются из элемен- тарных символов согласно следующим правилам. ОПРЕДЕЛЕНИЕ ПРЕДЛОЖЕНИЯ ИСЧИСЛЕНИЯ ВЫСКАЗЫВАНИЙ Каждый логический символ и символ истинности являются предложением. Например: true, P,QnR — предложения. Отрицание предложения есть предложение. Например: Р и -i false есть предложения. Конъюнкция (логическое умножение), или операция И, двух предложений есть пред- ложение. Например: Pa-iP является предложением. Дизъюнкция (логическое сложение), или операция ИЛИ, двух предложении есть предложение. Например: Pv-,p является предложением. Импликация (включение) одного предложения в другое есть предложение. Например: Р-»О является предложением. Эквивалентность двух предложений есть предложение. Например: PvQ =R является предложением. Легитимные предложения также называются правильно построенными формула*111 (well-formed formulas — WFF), или ППФ. В выражениях вида РлО элементы Р и О называются конъюнктами (членами кон юнктивных выражении). В выражениях вида PvQ элементы Р и О называются дизъюн тми. В импликации Р->0, Р- предпосылка (premise), или антецедент (antecedent), О заключение, или логическое следствие. В предложениях исчисления высказываний знаки ( ) и [ ] используются для ФУ0"” ровки символов в подвыражения н, таким образом, дают возможность управлять рядком их оценки и присваивания значений. Например, (PvQ>P весьма отличаете 74 74 Часть II. Искусственный интеллект как представление и
pv(QeR). что можно продемонстрировать с помощью таблиц истинности (см. подраз- дел 2.1.2). ‘ Выражение является предложением или правильно построенной формулой (ППФ) исчисления высказываний тогда и только тогда, когда оно может быть сформулировано в виде некоторой последовательности допустимых символов согласно установленным правилам. Например, является правильно построенным предложением в исчислении высказываний, поскольку: Р, О, и R — высказывания и поэтому предложения; РлО — конъюнкция двух предложений, поэтому является предложением; (P^Q)—^R — импликация одного предложения в другое, т е. предложение; - 1Р и -1Q — отрицания предложений, являющиеся предложениями; - iPv-iO — дизъюнкция двух предложений, поэтому является предложением; - iPv-iOvP — дизъюнкция двух предложений, т.е. предложение; ((РлО)—>R)b-,Pv-,QvR — эквивалентность двух предложений, являющаяся предло- жением. Мы получили первоначальное предложение, которое было создано путем применения ряда законных правил и поэтому является “правильно построенной формулой”. 2.1.2. Семантика исчисления высказывании В подразделе 2.1.1 мы познакомились с синтаксисом исчисления высказываний и оп- ределили набор правил для создания допустимых предложений. В этом разделе мы фор- мально определим семантику (“значение”) этих предложений. Поскольку программы искусственного интеллекта должны быть согласованы с представляющими их структу- рами, весьма важно продемонстрировать, что правдивость их заключений зависит только от правдивости начального знания, т.е. что процедуры вывода нс содержат логических ошибок. Для этого весьма необходима точная интерпретация семантики. Символ предложения соответствует утверждению относительно мироздания. Напри- мер, Р может обозначать высказывание “идет дождь”, а О — высказывание “Я живу в коричневом доме”. Предложение, давая некоторое описание мира, может быть как ис- тинным, так и ложным. Присвоение значения истинности логическим предложениям на- зывается интерпретацией. Следовательно, интерпретация (interpretation)— это утвер- ждение относительно правдивости предложения в некотором возможном мире. Формально интерпретация — это отображение логических символов на множество {Т, F} (true — истина, false — ложь). Как упомянуто в предыдущем разделе, символы true и false являются также частями ряда ППФ исчисления высказываний; т.е. значения ППФ от- личны от значения истинности, присвоенного предложению. Чтобы подчеркнуть это раз- личие, для присвоения значения истинности используются символы Th F. Каждое возможное отображение значения истинности высказывания соответствует возможной интерпретации мира. Например, если Р обозначает высказывание *идет дождь”, а О — “я на работе”, то набор высказываний {P.O} имеет четыре различных функциональных отображения в таблице истинности {Т,F}. Эти отображения соответст- вуют четырем различным интерпретациям. Семантика исчисления высказываний, по- добно его синтаксису, определена индуктивно. Глава 2. Исчисление предикатов 75
X,-—X”—........................................ F, каждому пропозиш* |СЮ„„аст„ Г. а символу false (ложь) - значенис f п“МВ<Мретии шп значения истинности. предложений (ППФ) определены следую, шим образом. „„.„„„тшя ~Р, где Р — это любой препозиционный с„м. высказывание ™ F, если Р имеет значение 7; „ выска. Л 0С>'шествЛЯСТСЯ таК: имеет Хн“е“ только если оба конъюнкта имеют значение 7; иначе выражение имеет Опоимение истинности дизъюнкт/™ * осуществляется так: высказывание имеет значение F. только если оба дизъюнкта имеют значение F. иначе выражение имеет значение Г. Определение истинности штткацш -> осуществляется так: высказывание имеет значение F только тогда, когда предпосылка (символ перед импликациеи) есть 7, и значение истинности следствия (символа после импликации) есть F; иначе выражение имеет значение Т. Истинность эквивалентности * определяется так: высказывание эквивалентности имеет значение Т только тогда, когда оба выражения имеют одинаковое значение ис- тинности для всех возможных интерпретаций; иначе выражение эквивалентности имеет значение F. Значения истинности сложных выражений часто описываются таблицами истинно- сти. Таблица истинности содержит все возможные варианты значения истинности для элементарных суждения (атомарных формул), составляющих большие выражения, и за- дает значение истинности выражениям для каждой возможной интерпретации. Таким образом, в таблице истинности перечисляются все возможные варианты интерпретации данного выражения. Например, таблица истинности для PaQ (рис. 2.1) даст значения ис- тинности выражения для каждого возможного значения операнда. Выражение РлО ис- тинно только тогда, когда и Р, ц о имеют значение Т. Операции “или” (v), “не' (-,)> импликация (-») и “эквивалентность” (=) определены аналогичным образом. Построе- ние их таблиц истинности предлагается выполнить в качестве упражнений. Два выражения в исчислении высказываний эквивалентны, если они имеют одни и те же значения при всех возможных значениях элементов, составляющих выражение. Эта эквивалентность может быть продемонстрирована с помощью таблиц истинности. На- пример, доказательство эквивалентности P-.Q и -^pvQ определяется таблицей истинно- сти, доказанной на рис. 2.2. исчигпенТ^РУЯ ИДСН11Пность таблиц истинности для двух различных предложений в ний Для ллги 1СКа3ывании' мы можем доказывать эквивалентность следующих выраже- нии. Для логических выражений Р, О и R (PvO)2(-,P-iQ) Часть II. Искусственный интеллект кек представление и по**
Закон контрапозиции импликации: Р-»О а Закон Моргана: -<(PvQ)s{-,p^Q) и -,(PaO)e(-1Pv-1Q). Законы коммутативности: (РлО) = (ОЛр) и (PvQ)h(OvP). Ассоциативный закон: ((РлО)лR)s(рл(ОлR)). Ассоциативный закон: ((PvQ)vR)b(pv(QvR)). Дистрибутивный закон: Pv (Ол R) = ( Pv О) л (PvR). Дистрибутивный закон: Pa(OvR)s(PaQ)v(PaR). Эти тождества могут быть использованы для приведения выражения исчисления выска- зываний к синтаксически различным, но логически эквивалентным формам. Используя эти тождества вместо таблиц истинности данных выражений, докажите эквивалентность выра- жении, преобразуя одно выражение в другое через последовательность эквивалентных вы- ражений. Первая программа искусственного интеллекта Logic Theorist (Логический теоре- тик) [Newell и Simon, 1956], разработанная Ньюэллом. Саймоном и Шоу. использовала преобразования эквивалентных форм выражений для доказательства многих теорем из [Whitehead и Russell, 1950]. Правила вывода дают возможность заменять логическое выра- жение другими формами с эквивалентными значениями истинности, что очень важно. Для использования правил modus poneus (раздел 2.3) и резолюции (resolution) (глава 12) необ- ходимо, чтобы выражения были заданы в определенной форме. оператора л P—^Q и —.PvQ 2.2. Основы исчисления предикатов В исчислении высказываний каждый атомарный (элементарный) символ (Р. О и т.д.) обозначает высказывание некоторой сложности. При этом не существует способа полу- чить доступ к компонентам отдельного суждения. Исчисление предикатов предоставляет эту возможность. Например, вместо того, чтобы разрешить единственный символ выска- зывания Р. обозначив все предложение “во вторник шел дождь'. мы можем создать пре- дикат погода или weather, который описывает отношения между датой и погодой' погода( вторник, дождь) или weather(tuesday, rain). Посредством правил''вывода можно изменять выражения исчислений предикатов, непосредственно обращаясь к их компонентам н выводя новые предложения. Кроме того, исчисление предикатов позволяет включать в выражения переменные. Переменные помогают создавать обобщенные утверждения относительно классов логи- ческих объектов. Например, можно заявить, что для всех значений X. где X— день неде- ли. утверждение погода(Х, дождь) или weather(X, rain) есть истина; т.е. каждый день идет дождь. Как и при исчислении высказываний, сначала определим синтаксис языкв предикатов, а затем обсуднм его семантику. Глава 2. Исчисление предикатов 77
2.2.1. Синтаксис предикатов и предложении Перса тем как „прсжлитъ сиктакос правильных выражений в исчислении ,фСди гов определим алфавит н грамматику ДЯ» создан.» символов языка. Это соотгад лжпческому аспекту определения языка программирования. Символы исчисления Л днкактв. подобно лексемам в языке программировав. являются ке„ривода ' ' (минимальными) синтаксическими элементами, они не могут быть разбиты операщЯИ1) языка на составляющие- В этой книге мы представляем символы исчисления предикатов как строки и цифр, начинающиеся с буквы. Пробелы и неалфавитно-цифровые символы использовать нельзя, хотя символ подчеркивания (_) может использоваться для удобства чтения. ОПРЕДЕЛЕНИЕ СИМВОЛЫ ИСЧИСЛЕНИЕ ПРЕДИКАТОВ Алфавит исчисления предикатов состоит из следующих элементов. I. Набор букв английского алфавита как верхнего, так и нижнего регистра. 2. Набор цифр — 0,1...., 9. 3. Символ подчеркивания _. Символы в исчислении предикатов начинаются с буквы, за которой следует последо- вательность перечисленных выше знаков. Приведем пример допустимых знаков в алфавите исчисления предикатов. a R 6 9 р _ z Вот пример недопустимых знаков в алфавите исчисления предикатов. # % @/&“" К допустимым символам исчисления предикатов относятся следующие. George Л'геЗ tom_andJerry billХХХХ friends_of Приведем примеры строк, содержащих неразрешенные знаки. 3jack “по blanks allowed" ab%cd ***71 duck!!! Символы (или идентификаторы), как будет показано в подразделе 2.2.2, используют- ся для обозначения объектов, свойств или отношений в области рассуждения. Как и в большинстве языков программирования, использование “слов”, которые имеют зарезер вированное значение, помогает понимать программный код. Например, выражения л{д,к) и любит(Джордж,Кейт) формально эквивалентны (т.е. имеют одинаковую структуру). Однако второй вариант может быть удобнее для понимания (людьми читателями) смысла отношений, описанных этим выражением. Следует подчеркнуты чТ0 такие подробные имена предназначены исключительно для улучшения удобочитаемости выражении. Единственное значение, которое может иметь выражение исчисления пред”’ катов, — это значение, определяемое их формальной семантикой. Круглые скобки, запятые (,) и точки (.) используются исключительно для правильног построения выражений и не обозначают объекты или отношения из области рассужу НИЯ. Они называются иссобстненнылш символа (improper symbol). Часть ||. Искусственный интеллект как представление и поис
Символы исчисления предикатов могут представлять переменные, константы, функ- ции или предикаты. Константами называют определенные объекты или свойства из об- ласти рассуждения. Символьные константы должны начинаться со строчной буквы (буквы нижнего регистра). Таким образом, george, tree, tall и blue — примеры пра- вильных символьных констант. Константы true (истина) и false (ложь) зарезервированы как символы истинности. Идентификаторы переменных используются для обозначения общих классов объек- тов или свойств из области рассуждения. Переменные представляются идентификатора- ми, начинающимися с прописной буквы. Так, George, BILL и Kate — допустимые пере- менные, в то время как geORGE и ЫН — нет. Исчисление предикатов также допускает существование функций для объектов из некоторой области рассмотрения. Идентификаторы функций (подобно константам) начинаются с символа нижнего регистра (строчной буквы). Функции обозначают отображение одного или нескольких элементов множества (называемого областью определения функции) в однозначно определяемый элемент другого множества (множества значений функции). Элементы определения и множества значений — это объекты из области рассмотрения. Помимо обычных арифметических функций, таких как сложение и умножение, функции могут определять отображения между нечисловыми областями. Заметим, что наше определение символов исчисления предикатов не содержит чисел или арифметических операторов. Система счисления не включена в примитивы исчисле- ния предикатов. Мы лишь аксиоматически определили “базовое” исчисление предикатов [Manna и Waldinger, 1985]. Его производные представляют теоретический интерес, но они менее важны в применении исчисления предикатов в качестве модели представления искусственного интеллекта. Для удобства включим арифметику в язык описания. Каждый функциональный символ связан с арностью (агйу), указывающей на количест- во параметров этой функциональной зависимости. Так, например, символ father мог бы обозначать функцию арности I. которая позволяет определить отца, a plus мог бы быть функцией арности 2. которая отображает два числа в их арифметическую сумму. Функциональное выражение — это идентификатор функции, за которым следуют его аргументы (или параметры). Аргументы — это элементы области определения функции. Число аргументов равно арности функции. Аргументы заключаются в круглые скобки и разделяются запятыми. Например, father(david) price(bananas) Все эти выражения являются правильно определенными функциональными вы- ражениями. Каждое функциональное выражение обозначает отображение аргументов в единст- венный объект множества значений, называемый значением функции. Например, если father — это унарная функция, то father(david) является функциональным выражени- ем, значением которого (по желанию автора) есть george. Если plus — это функция ар- ности 2. определенная на множестве целых чисел, то plus(2,3) является функциональ- ным выражением, значением которого является целое число 5. Замена функции ее значе- нием называется се оцениванием (evaluation). Понятие символа исчисления предикатов, или терма, формализовано следующим определением. Глава 2. Исчисление предикатов 79
«! к I й,!.1 II 1 II ' ОПРЕДЕЛЕНИЕ СИМВОЛЫ И ТЕРМЫ & „„Ося-Гея следующие. К символам исчисления преди^ зарезервированные символы. l.CMimiMiicmmmcmutrue ные выражения, начинающиеся с символа 2 Символы констант ^(Вод) нижнего регистра (строчный выражения, начинающиеся с символа 3 Символы переменных это ~ верхнего регистра (прописной^ символьные выражения, начинающиеся с сим- 4. Фуш11шналь«ые сокол . cllMBOn). С функциями связывается арность, вола нижнего регистра (стр оказывающая на число их аргументов. указываю (f1]nclion expression) состоит из функциональной ^в?,..........в крутлые скобки и отделенных друг от друга запятым . _ Х„ исчисления предикатов может быть константой, переменной или функцно- нальным выражением. Таким образом, вгедзгаи исчисления предикатов обозначают объекты и свойства и, области определения данной задачи. Примеры термов; cat times(2.3) X blue mother(jane) kate Символы в исчислении предикатов могут также представлять предикаты. Предикат ные символы, подобно константам и именам функций, начинаются с буквы нижнего ре гнетра. Предикат указывает на отношения между несколькими объектами (в том числе нулевым числом объектов) в мире. Количество объектов, связанных таким образом, оп ределяет арность предиката. Примеры предикатов: like equals on near part_of Атомарное высказывание (атомарная формула) (atomic sentence), самая примитив ная единица языка исчислений предикатов, является предикатом арности п, за которым следует л термов, заключенных в круглые скобки и разделенных запятыми. Вот примеры атомарных высказываний. likes(george.kate) Hkes(X,george) likes(george,susie) likes(X.X) likes{ george, sarah, tuesday) friends( bill, richard) , । friends(bill,george) friends(fat'her_of(david) father_of(andrew)l helps(btll,george) helps(richard.bill) Символами предикатов в этих выражениях являются («res friends и helps. С»«"" предиката может быть использован с различным числом аргументов. В этот прим'Р включены два различных предиката likes, один из которых зависит от двух, а ДРУГО“ от трех аргументов. Если символ предиката используется в предложениях с различной арностью, то считается, что он представляет два различных отношения. Таким образом, отношение предиката определяется его именем и арностью. Два отличных предиката likes могли бы составлять часть одного и того же описания мира; однако этого избегают так как могут возникнуть недоразумения. В приведенных выше примерах предикатов bill, george и (rate являются постоянны- ми символами и представляют объекты из области определения задачи. Аргументы пре- диката являются термами и могут также содержать переменные или функциональные выражения. Например, friends(father_of(david),father_of(andrew)) является предикатом, описывающим отношения между двумя объектами из области рас- суждения. Аргументы здесь представлены как функциональные выражения, значения ко- торых (будем считать, что father_of(david) есть george и father_of(andrew) есть alien) являются параметрами предиката. После оценки функциональных выражений представленное выше выражение примет вид. friends(george, alien) Эти идеи формализованы в следующем определении. ОПРЕДЕЛЕНИЕ ПРЕДИКАТЫ И АТОМАРНЫЕ ПРЕДЛОЖЕНИЯ Символы предиката — это символы, начинающиеся с символа нижнего регистра. Предикаты связаны с положительным целым числом, определяющим арность, или “число аргументов", предиката. Предикаты с одинаковым именем, но различной ар- ностью считаются различными. Атомарное предложение— это предикатная константа арности л. за которой следу- ют л термов t], tz,.... заключенных в круглые скобки и отделенных запятыми. Значения истинности true и false тоже являются атомарными предложениями. Атомарные предложения также называются атомарными выражениями, атамами нлн предложениями. Мы можем комбинировать атомарные предложения и формировать предложения в исчислении предикатов, используя логические операторы. Это те же самые логические связки, которые используются в исчислении высказываний A, v, -1, —» И S. Переменная, встречающаяся в предложении в качестве параметра (аргумента), отно- сится к неопределенным объектам в области определения. Исчисление предикатов пер- вого порядка (подраздел 2.2.2) включает два символа: кванторы переменных (variable quantifier) V иЗ. Они ограничивают значение предложения, содержащего переменную. За квантором следует переменная и предложение, как показано ниже. ЭУ friends(Y,peter) VX Ukes(X,ice_cream) Квантор всеобщности V означает, что предложение истинно для всех значений пе- ременной. В примере VX likes(X.ice^cream) выражение истинно для всех значений X в области определения X. Квантор существования Э указывает, что предложение истинно Глава 2. Исчисление предикатов Часть II. Искусственный интеллект как представление и по
значения в области определения. Выражение Зу по крайней мере ДМ «««ля вмеется по крайней мере один объект Y. который яавд. friends) Y,peter) истинно. кванторы рассматриваются в подразделе 2.2.2. ”,РПреднка™вопределены индуктивно. ОПРЕДЕЛЕНИЕ „„„„тля ПРЕДЛОЖЕНИЯ ИСЧИСЛЕНИЯ ПРЕДИКАТОВ Каждое атомарное предложение есть предложение. , Если а - предложение, то его отрицание -о тоже является предложением. , Если л, и Вз - предложения, то их конъюнкция л, л л2 тоже является предложением. Г Если s, и S, - предложения, то их дизъюнкция s,vs2 тоже является предложением. 4^ Если в, и 5л - предложения, то их импликация з,-^ тоже является предложением. 5. Если Sl и s2 — предложения, то их эквивалентность sps2 тоже является предло- жением. 6. Если X — переменная и s предложение, то VX s есть предложение. 7 еслн х_переменная и s предложение, то ЗХ з есть предложение. Далее следуют примеры правильно построенных предложений. Пусть times (умножить) и plus (сложить) — символы функций арности 2 и пусть equal (равно) и foo являются предикатными символами арности 2 и 3 соответственно. plus(two,three} (сложить два и три) —это функция. т.е. не атомарное предложение. equal (plus(two,three), five) — это атомарное предложение. equal(plus(2,3), seven)— это атомарное предложение. Заметим, что это предло- жение при стандартной интерпретации операций сложения и уравнивания является лож- ным. Формальная правильность и истинность значения — независимые понятия. ЗХ foo(X,two.plus(two,three})Aequal(plus(two,three),five) — предложение, пото- му что оба конъюнкта являются предложениями. (foo(two,two,plus(two,three))}—>equal(,plus(two,three),five)=true) — это предло- жение, потому что все его компоненты — предложения, связанные логическими операторами. Определение предложений исчисления предикатов и приведенные примеры приводят к мысли о необходимости проверки: является ли выражение предложением. Метод такой проверки можно записать в виде рекурсивной функции verify_sentence, которая получает в качестве параметра рассматриваемое выражение и возвращает значение suc- cess (успех), если выражение является предложением. function verify_sentence(expression) • begin ' ' case ыражение является атомарным предложением: return SUCCESS; TcSTverTfJ’ Q X S‘ г*е Q - V либо 3,a X - переменная. SUCCESS else return FAI1; выражение имеет вид -,s. y_sentence(s) возвращает SUCCESS then return SUCCESS else return FAllj выражение имеет вид s, on <= оператор: P 2' P ~ Унарный логический if verify.sentence (sj возвращает SUCCESS и verify_sentence(s2) возвращает SUCCESS then return SUCCESS else return FAIL; в остальных случаях: return FAIL end end. В заключение этого раздела приведем пример использования исчисления предикатов Рассмотрим модель простого мира. Рассматриваемая область определения — набор се- мейных отношений в библейской генеалогии. mother(eve,abel) mother(eve,cain) father(adam,abel) father{adam,cain} УХУУ father{X, Y}vmother(X, Y)->parent(X, Y) VXVYVZ parent(X, Y}\parent(X,Z)^sibHng{Y,Z) В этом примере для определения набора отношений родителей и детей использованы предикаты mother (мать) и father (отец). В терминах этих предикатов импликация дает общее определение других отношений, в том числе родительских и братских. Интуиция подсказывает, что импликацию можно использовать для описания братских отношений, например sibling(cain, abet). Для реализации этого процесса на компьютере необходи- мо его формализовать, т.е. определить алгоритмы вывода. При задании этих алгоритмов нужно соблюдать осторожность, поскольку они действительно должны выводить пра- вильные заключения из данного набора утверждений исчисления предикатов. Для того чтобы это было именно так, вначаяе определим семантику исчисления предикатов (подраздел 2.2.2), а затем перейдем к правилам вывода (раздел 2.3). 2.2.2. Семантика исчисления предикатов Определив правильно построенные выражения в исчислении предикатов, важно за- дать их значения в терминах объектов, свойств и отношений в некотором .мире. Семан- тика исчисления предикатов обеспечивает формальную основу для определения значе- нии истинности корректно построенных выражений. Истинность выражений зависит от соответствия констант, переменных, предикатов и функций объектам и отношениям в области определения. Из истинности отношений в области определения следует истинность соответствующих выражений. Например, информация относительно некоторого человека Джорджа и его друзей Кейт и Сьюзи может быть выражена так. friends(george, susie} friends(george,kate) II сад, Джордж действительно друг Сьюзи и Кейт, то каждое из этих выражений б>- иметь значение истинности Т. Если же Джордж - друг Сьюзи, но не Кейт, то первое сражение будет иметь значение иетииноетп Т. а второе - значение истинности F асть II. Искусственный интеллект как представление и пои Глава 2. Исчисление предикатов S3
„ исчисление предикатов для решения задач, объекты и отношения Чтобы использовать и описыва,отся с помощью набора корректны, в интерпретируемой оо, выражений обозначают объекты и отношения в об- выражении. Термы и пр « 6„а да1ИЫХ выражений исчисления предикатов, ласти определен • Ф ^етк ист„„ности Т. описывает "состояние мира”. Описание Zp№ и сто друзей - -° 'Ф-™' 'W ТаК°Й 6аЗЫ ДаВНЫХ- Д₽УГОЙ "₽ИМСР ~ МНр 6"Zobm~"и"™ли« семантику исчисления предикатов формально. Сначала определим интерпретацию а области определения О. Затем, используя эту Хпр^аиию. определим присвоение значений истинности предложениям языка. ОПРЕДЕЛЕНИЕ , ИНТЕРПРЕТАЦИЯ I Пусть область определения D — некоторое непустое множество. Интерпретация на О — это связывание логических объектов из D с каждой констан- ! той. переменной, предикатом и функциональным символом в выражении исчисления предикатов на основе следующих правил. I. Каждой константе ставится в соответствие элемент из D. 2. Каждой переменной ставится в соответствие непустое подмножество из О; оно ( является областью допустимых значений для этой переменной. 3. Каждая функция f арности (числа операндов) m определяется для m параметров из D и задает отображение из Dm в D. 4. Каждый предикат р арности п определяется для п параметров из О и задает ото- бражение из Dn в {7, F}. При таком определении интерпретации, чтобы получить значеиие выражения, следу- ет присвоить выражению значение истинности на этой интерпретации. ОПРЕДЕЛЕНИЕ ЗНАЧЕНИЯ ИСТИННОСТИ ВЫРАЖЕНИЙ ИСЧИСЛЕНИЯ ПРЕДИКАТОВ Пусть существует выражение Е и интерпретация / для Е иа непустой области опреде- ления D. Значение истинности для Е определяется так. 1. Значение константы — это элемент из D, которому соответствует данная кон- станта в интерпретации /. 2. Значение переменной - это множество элементов из D. которые соответствуют данной переменной в интерпретации I. 3 чается"» *>'ИКШ,0,Ш1Ь""ГО выражения - „о такой элемент из О, который полу- вуюших ннтоп таТС °Цеииванм фухаппи доя значений параметров, соответст- вующих интерпретации. н 4. Значение символа истинности true - 5. Значение атомарного предложения претацией /. 6. Значение отрицания предложения значение отрицания предложения — ЭТО Т. a false — F. 1 равно либо Т, либо F, и определяется интер- 1 равно 7. если значение предложения равно 1 равно Г, если значение предложения равно 7. Значение конъюнкции двух поедложеиий т мают значение Т. иначе оно равно F. ₽ ’ СС'1" пРедложс“»« "Р™»' 8 -10. Значение истинности выражений, использующих операции v _ „ . опое- леляется значениями их операндов, как описано в подразделе 2.1.2 " Наконец, для переменной X и предложения S. содержащего X. выполняются еле- дующие соотношения. 11. Значение выражения ,-XS равно Т. если S равно Т для всех значений X из / иначе оно равно F. 12. Значение 3XS равно 7, если в интерпретации существует значение X. для которо- го S равно 7; иначе оно равно F. Квантификация переменных — это важная часть семантики исчисления предикатов. Если переменная используется в предложении, например. X в предложении likes! george,X). то она выполняет роль заполнителя и обозначает знакоместо. На это место в выражении может быть подставлена любая константа, допускаемая интерпретацией Заменяя пере- менную X в предложении likes(george.X) значением kata иля sus/е. подучим утвер- ждения likes(george,kate) и likes(george,susie}. Переменная X может быть замешена любыми допустимыми константами. Данное имя переменной можно заменить любым другим именем перемеиной, например Y юти PEOPLE, при этом значение выражения не изменится. Таким образом, переменная является шаблоном для подстановки. В исчисле- нии предикатов переменные должны быть связаны одним из двух кванторов: универ- сальности или существования. Переменная считается свободной, если она не саган» квантором универсальности или существования. Выражение считается замкнутым (closed), если все его переменные связаны кванторами. Основное выражение (.ground ex- pression) вообще не имеет никаких переменных. В исчислении предикатов все перемен- ные должны быть связаны кванторами. Для обозначения квантора всеобщности применяется символ V. Для указания об- ласти действия квантора, т.е. выделения имен переменных, на которые распространяет- ся действие квантора, часто используются круглые скобки. Так. например. VX(p(X)vq(H-»r(X)) указывает, что переменная X связана квантором всеобщности в р(Х} и в г(Х). Квантор всеобщности усложняет вычисление значения истинности предложения, по- тому что для определения истинности выражения необходимо проверить все возможные значения переменной. Например, чтобы определить значение истинности YX kkes(george.X), где переменная X задана на множестве всех людей, необходимо прове- рить вес возможные значениях. Если область определения интерпретации бесконечна, исчерпывающая проверка всех подстановок переменной, связанной квантором всеобщности, в вычислительном отно- шении совершенно невозможна, так как алгоритм никогда не остановится. Из-за этой проблемы исчисление предикатов считают неразрешимым. Поскольку исчисление высказываний не использует переменные, предложения имеют Только конечное число возможных значений истинности, и их можно проверить полным Перебором. Для этого используются таблицы истинности. Переменные также могут быть связаны квантором существования. В этом случае выражение с переменной сч|гтается истинным, если оно истинно по крайней мере для 84 Часть II. Искусственный интеллект как представление и поиск Глава 2. Исчисление предикатов
„„педеле»» переменной. Квантор существования пи, одаого зндчснк» ИЗ о/--кХрд существования также задастся круглыми ско^ чается 3 Область ле"™"’ К“ считаются связанными этим квантором. М|’' в которых все Хения. содержащего переменную, связанную к8анто диализ истинности выр чсм „„„„„ванне выражении. содержащих J* п Предположим, необходимо определить нп> „енныс под квантором вс „ нсг0 различные значения каждой ,1сре" выражения. Для зго« ‘ котор„е делает выражение истинным. Если облЛ „ой. пока не ^ДСТ 6сск0„еч„а. и выражение ложно при всех подстановках значе. определения перемни щцтся "яй;аЛðЙ “eXwo“ZepoB взаимосвязи между операцией отрицания и ква„,0 ^“ сушеХания. Эти соотношения используются в системах опронер. "ХХюиий, описанных в главе 12. В приведенных соотношениях имя переменной X” ЗУ™ я В качестве формально™ символа, который заменяет набор констант. Дд, предикатов р и q и переменных X в Г выполняются следующие соотношения. ~i3Xp(X)sVX~pW ^VXp(X>3X-p(X) ахр(Х>зУр(Г) VXq(X)sVYq(Y) УХ(р(Х)лд(Х)МХр(Х)л*Уд(Г) aX(p(X)vq{X))S3Xp(X)v3Xq(y) На определенном нами языке переменные, связанные квантором всеобщности н кван- тором существования, могут ссылаться только на объекты (или константы) из рассмат- риваемой области определения. Имена предикатов и имена функций не могут быть заме- нены именами переменных, стоящих под знаком квантора. Этот язык называется исчис- лением предикатов первого порядка (first-order predicate calculus). ОПРЕДЕЛЕНИЕ ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ПЕРВОГО ПОРЯДКА Исчисление предикатов первого порядка позволяет связывать знаком квантора перемен- ные, соответствующие объектам из предметной области, но не предикаты или функции- Например, V(Likes)L/kes(george,kate) не является правильно построенным выражением в исчислении предикатов первого поряд исчислення предикатов высших порядков, в которых такие пользовалиИНТерпрегацин- ^которые исследователи [McCarthy, 1968), [Appell. 1985] и' ес=^ото^Ь,СШИХ ПОРЯДК°0’ ЧТ0бь1 приставить знания в программах понимания ставлены в ^счислрн^™ 11рав1и|ЬН1*1С английские предложения могут быть flM символьных переменно хРеДИКаТ°В Первого порядка с помощью символов, с® су. шествует уникапш^ * ’ °11Релелен«ых в этом разделе. Важно заметить, чт тов. Английское пое? °Тображения предложений в выражения исчисления пр Д области исчисления °ЖСНИе может иметь любое число различных представл ис- кусственного интеллекта закл°а °СНОВ,1ая П’УДность для программистов ertf дикатов, оптимальную <- ючастся в том, чтобы найти схему нспользо ча. ________________ точки зрения выразительности и эффективности 86_________________________________ ______________________________________--—<7 ------ -------------и no”0* Часть II. Искусственный интеллект как представление тельного представления. Приведем примеры английских и представленных средствами исчисления предикатов. русских предложений, И it doesn't rain on Monday, Tom will eo tn ih<* /r да. Том пойдет в торы.) mount™. (Если понедельник нс будет дож- -iwaarher(rain,moncfay)->go(tom,mountains) Emma is a Dobennan pinscher and a good dog. (Эмма - добермап-пгичер „ хорошая gooddog(emma)Aisa{emma, doberman) Al) basketball players arc tall. (Все баскетболисты — высокие.) VX( basketball_p!ayer{X)—* tall(X)) Some people like anchovies. (Некоторые люди любят анчоусы.) 3X(person(X)Alikes(X, anchovies)) If wishes were horses, beggars would ride. (Если бы желания были лошадьми, то нишие бы ездили верхом.) equal(wishes,horses)->ride(beggars) Nobody likes taxes. (Никто не любит налога.) -,ЗХ likes(X, taxes) 2.2.3. Значение семантики на примере “мира блоков” В заключение этого раздела рассмотрим вопросы присвоения значений истинности некоторым выражениям исчисления предикатов на примере из “мира блоков”. Предпо- ложим, мы хотим промоделировать мир блоков, изображенный на рис. 2.3, и сконструи- ровать алгоритм управления для руки робота. Для представления качественных отноше- ний в этом мире можно использовать предложения исчисления предикатов. С помощью этих предложений нужно описать, свободна ли верхняя грань данного блока, можно ли взять блок а, н т.д. Предположим, что компьютер обладает знаниями о расположении каждого блока и руки, а также способен отслеживать перемещение блоков на столе (используя трехмерную систему координат). В этом примере из “мира блоков” нужно очень точно определить свои действия. Сна- чала необходимо создать набор выражений исчисления предикатов, который должен фиксировать текущее состояние мира блоков в рассматриваемой предметной области. В разделе 2.3 будет представлена интерпретация и возможная модель мира блоков, опи- санная набором выражений исчисления предикатов. Исчисление предикатов декларативно, т.е. не существует никакой принятой синхро- низации или порядка рассмотрения каждого выражения. Тем не менее в разделе 7.4 мы Дополнительно рассмотрим процедурную семантику (procedural semantics) или ясно оп- ределенную методологию для оценки этих выражений во времени. Конкретный пример процедурной семантики для выражений исчисления предикатов это язык PROLOG (глава 14). Создаваемое нами ситуационное исчисление связано с рядом вопросов, вклю- чающих проблему фреймов и немонотонности логических интерпретаций. Эти вопросы будут представлены на рассмотрение позже. Для этого примера достаточно сказать, что 0Ь1Ражеиия исчисления предикатов будут оцениваться слева направо. Глава 2. Исчисление предикатов
ЧИЖ®unroll' 1ГШИ;|: 3-,;il on(c,a) on(b,d} ontabla{a) ontabfe(d) cieartb) clear(c} hand_empty Рис. 2.3. Мир блоков и его описание в исчислении предикатов Здесь ол(с,а) означает, что блок с находится на блоке a; ontable(a) — блок а лежит на столе; с/еаг(с) — на блоке с нет других блоков; hand_empty — рука пуста. Чтобы можно было поднять один блок и поставить его на другой, оба блока должны быть свободными (открытыми для руки). На рис. 2.3 блок а нс свободен. Поскольку руИ может перемешать блоки, она может изменять состояние мира и освобождать их. Пред- положим, она снимает блок с с блока а и обновляет базу знаний, удалив из нее утвер- ждение ол(с,а). Программа при этом должна сделать логический вывод, что блок а те- перь свободен. Следующее правило описывает действие “блок стал свободным”. VX(-.3r on(Y,X)-*clear(X)) Следовательно, для любого X X свободен, если нс существует Y такого, что Y нахо- дится на X. Это правило определяет нс только значение “блок свободен”, но и действие “освободить блоки". Например, блок d нс свободен, потому что, если переменная X при- нимает значение d, а У — Ь, то предложение является ложным. Чтобы сделать это опре- деление истинным, блок b следует удалить с блока d. Это легко сделать, потому что в компьютере записано местоположение всех блоков. Помимо использования вышеописанного правила для определения условия освобож- дения блока, можно добавить друшс правила, описывающие операции укладки одного блока на другой. I Ьирпмср: чтобы положить X на Y. сначала нужно освободить руку. ®' тем освободить X. У и уж потом вить X (pickupjX)) и поставить (put_down) ого на V. VX',YJ'.{''and-empty^cleal'm'<clearm^plck_up(X)^put-down(X, Действие руки поботаШ^11°МЯП^ГОМ °),ис;1"11" необходимо связать с каждым преднхятом Необходимо дополнить cem|MC|' plck~uptx) («зять X). Как отмечалось ранее. л™310"’ ныполнялись в том илпвгг1/о 1Г,1Ку ИСЧисясния предикатов требованием, чтобы дей^т» блему лучию рассмотреть отд К°Л“Р°М ш1и ||РсДписываются правилами. Однако эту про На рис’ 2-3 представлена семантическая интерпретация этих выражений нечиспс- я предикатов. Она отображает константы и предикаты в набор выражений из об- Н ти опреДенения данном случае зто блоки и отношения между ними). Питер- 13 тадия сопоставляет значение истинности Т с каждым выражением в описании. . других наборов блоков, находящихся в другом расположении, или же. напри- для группы из четырех акробатов, могла бы быть предложена другая интерпре- МС ня Вопрос заключается нс в уникальности интерпретаций. Главное, интерпрста- 1 я олжна обеспечивать значение истинности для всех выражений в наборе, а сами цИЯ жен и я должны достаточно детально описывать мир. предоставляя все необхо- ВЬ1Р ic выводы. В следующем разделе эти идеи используются для формальной осно- цы^равил вывода исчисления предикатов. 2.3. Правила вывода в исчислении предикатов 2.3.1. Правила вывода Семантика исчисления предикатов обеспечивает основу для формализации теории ло- гического вывода (logical inference). Возможность логически выводить новые правиль- ные выражения из набора истинных утверждений — зто важное свойство исчисления предикатов. Логически выведенные выражения корректны, потому что они сояместдиы со всеми предыдущими интерпретациями первоначального набора выражений. Вначале обсудим вышесказанное неформально, а затем введем ряд определений для формализа- ции этих утверждений. Говорят, что интерпретация, которая делает предложение истинным, удовлетво- ряет этому предложению. Если интерпретация удовлетворяет каждому элементу на- бора выражений, то говорят, что она удовлетворяет набору. Выражение X логически следует из набора выражений S исчисления предикатов, если каждая интерпретация, которая удовлетворяет S, удовлетворяет и X. Это утверждение дает основание для проверки правильности правил вывода: функция логического вывода должна произ- водить новые предложения, которые логически следуют из данного набора предло- жений исчисления предикатов. Важно верно понимать значение слов логически следует: логическое следование вы- ражения X из S означает, что оно должно быть истинным для каждой интерпретации, ко- торая удовлетворяет первоначальному набору выражений S- Это означает, например, что любое новое выражение исчисления предикатов, добавленное к миру блоков на рис. 2.3, должно быть истинным в этом мире. Оно должно быть истинным и при любой другой интерпретации, которую мог бы иметь этот набор выражении. Термин логически следует вовсе не означает, что X выведено из S. или что его можно вывести из S. Это просто означает, что X истинно для каждой интерпретации (потенциально до бесконечности), которая удовлетворяет S. Однако системы предикатов могут иметь бесконечное число возможных интерпретаций, поэтому практическая необ- ходимость проверять все интерпретации возникает весьма редко. В вычистггельном от ношении правша вывода (inference rule) позволяют определять, когда выражение как компонент интерпретации логически следует из этой интерпретации. Понятие логически следует обеспечивает формальное основание для доказательства разумности и правильности правил вывода. 88 Глава 2. Исчисление предикатов Часть II. Искусственный интеллект как представление и п
„я обеспечивает создание новых предложений исчислен,,, „р Правило вывода обсспс, с,|СД0В0ТС„ьно. правила вывода производят новЬ1е „а основе данных "Рсдл0* с1)чюкой форме данных логических утверждений Р’ поженив. основанные на £ ,ГОМОШь,о некоторого правила вывода на " Гтакжс логически следует из S. то говорят, что это „р^ вывода способна произвести каждое выражение, которое мож„ Если система up. g т зта систсма правш1 ВЬ1Вода является лотичсски “е ова . и np,lllu„n /гаол,оц„„ (resolution). ,,рС;,стан' Приведенное ииж Р срамн обоснованных правил вывода, которые при вс. ин,и, соответствующих езтгате, ий полны. Логические системы вывода обыч„„ ,ь Z Обое,твит,ые „равняя вывода, однако далее (в главах 5, 9. 10 и 14) мы рас. смо^м эвристические рассуждения и рассуждения на основе здравого смысла. котарь,с опускают это требование. Формализуем эти мысли с помощью следующих определении. ОПРЕДЕЛЕНИЕ УДОВЛЕТВОРЯТЬ, МОДЕЛЬ, АДЕКВАТНОСТЬ Для выражения X „счисления предикатов и интерпретации I имеют место следующие определения. Если X имеет значение Т на / при конкретных значениях переменных, то говорят, что / удовлетворяет X. Если I удовлетворяет X при всех значениях переменных, то I является моделью X. X выполнимо (salisfiable) тогда и только тогда, когда существуют такая интерпретация и значение переменной, которые ему удовлетворяют; в противном случае X невыпол- нимо (unsatisfiable). Набор выражений выполним тогда н только тогда, когда существуют интерпретация и значения переменных, которые удовлетворяют каждому элементу. Если набор выражении невыполним, то говорят, что он противоречив (inconsistent). Если X имеет значение Г для всех возможных интерпретаций, то говорят, что X имеет силу, или адекватно (valid). В примере на рис. 2.3 мир блоков является моделью для логического описания. При этой интерпретации все предложения в примере были истинными. Если база знаний Рса лизована как набор истинных утверждений для предметной области задачи, то предмет пая область служит моделью для базы знаний. Выражение ЗХ (р(Х) л —<р(Х)) противоречиво, потому что оно нс может быть ул°в лстворено ни при какой интерпретации или значениях переменных. С другой стороны- выражение УХ (р(Х) v -.р(Х)) адекватно. Для проверки адекватности выражений, нс содержащих переменных, можно ,,сп0Л зовать метод таблиц истинности. Поскольку не всегда можно определить, адекватно выражение, содержащее переменные (как говорилось выше, процесс может не 3a* |ОВОРЯТ’что полное исчисление предикатов "неразрешимо". Однако существi спелч1пш^^а,Г1еЛЬСтва' К0Т0РЬ1С позволяют генерировать любое выражение.л0П1** затем а Т Яан“ого на^°Ра выражений. Они называются процедурами полной зательства (complete proof procedures). ОПРЕДЕЛЕНИЕ ПРОЦЕДУРА ДОКАЗАТЕЛЬСТВА Процедура доказательства (proof procedure) - это „„„к юритма применения этих правил к набору логически „“"au‘W пРав‘и| вь,вода « вых предложений. их ВЬ1Ра*сний для создания но- В главе 11 представлены процедуры inference rule). д‘вдельс™ ™ правил революции (rKolulion используя эта определения, можно формально определил, термин „огинескн следует- ОПРЕДЕЛЕНИЕ ЛОГИЧЕСКИ СЛЕДУЕТ, ОБОСНОВАННЫЙ И ПОЛНЫЙ Выражение исчисления предикатов X логически следует из набора S выражений ис- числения предикатов, если каждая интерпретация и значения переменных которые удовлетворяет S, удовлетворяют и X. Правило вывода обосновано (sound), если каждое выражение исчисления предикатов полученное в соответствии с правилом из множества S выражений исчисления пре- дикатов, также логически следует из S. Правило вывода полно (complete), если на данном множестве S выражений исчисления предикатов правило позволяет вывести любое выражение, которое логически следует из S. Правило modus ponens (правило отделения, или модус поненс) — это обоснованное правило вывода. Если дано выражение вида Р—>0 и другое выражение вида Р, и оба вы- ражения истинны на интерпретации I, то modus ponens позволяет нам сделать вывод, что Q тоже истинно на этой интерпретации. Действительно, поскольку modus ponens яв- ляется обоснованным правилом, О истинно для всех интерпретации, для которых Р и P-*Q являются истинными. Определения правила modus ponens и ряда других полезных правил вывода даны ниже. ОПРЕДЕЛЕНИЕ МОДУС ПОНЕНС, МОДУС ТОЛЛЕНС. ИСКЛЮЧЕНИЕ "И", ВВЕДЕНИЕ '1Г, УНИВЕРСАЛЬНОЕ ИНСТАНЦИРОВАНИЕ Если известно, что предложения Р и Р-*0 истинны, то модус поненс позволяет вы- вести О. Согласно правилу вывода модус толленс (modus tollens), если известно, что Р->О яв- ляется истинным и О ложно, можно вывести ->Р- Исключение "И" — правило, позволяющее вывести истинность обоих конъюнктов на основе истинности конъюнктивного предложения. Например, если а истинно. можно сделать вывод, что Р и О истинны. Введение “И" позволяет вывести истинность конъюнкции из истинности ее конъюнк- тов. Например, если Р и О истинны, то конъюнкция РлО истинна. V., -плгпгн-я к следующему: если любую переменную, Универсальное инстанцирование >жетт. заменить любым со- стоящую иод квантором всеобщности в истинн р ,1Р,- ныпажение — ответствующпм термом из области определения, то Р“> щретстения что и X и -етннио Таким образом, если а принадлежит той же области определения, что ^•^Р(Х), то можно вывести р(а)- 90 Часть II. Искусственный интеллект как представление и л Глава 2. Исчисление предикатов 91
„„мена „рименс-н"» „!’»">“» модус новене „ „еч„е:,с„„„ в качестаепросгопз'Ф'^ Сложения: -сели иле, дождь. то к-мля 6удаг зымнкй рассмотрим следу „„ -,и1Ст дождь и О есть земля, нлажиая",,,, ' .............................. Р-40 Пр!-»- правило модуле X плборУ ь,х нь,р„жен„й, мож„о ДоСа„„гь факт, что земля является мв^ои применено к выражении»., содержащий Правило «ебл и» ° „р|1МСра о6ычный силлогизм "псе ,„од„ СМС|)Т. “ерСМС"Хт “ «ловек. поэтому Сократ - смертен". Вь,ск„зь„,а„„с "Вес смеДы" может быть представлено в нечислен,,,, пред,,катон („о-русск„ „ английски)так. уХ(человек(Х)-*смертный(Х)). \fX(man(X)^morta/(X)}. “Сократ —человек” челоаек(сократ). man(socrates). Поскольку X в выражении cioiu под знаком квантора всеобщности, сю можно заме- нить любым значением из области определения X, и при этом утверждение будет сохра- нять истинное значение согласно правилу универсального инстанцирования. Заменив в выражении Xна Сократ, получим следующее утверждение. человек(сократ)->смертный (сократ). man(socrates)->mortal(socrates). Применив правило .модус нонене, приходим к выводу mortal(socrates). Он может быть добавлено к набору выражений, которые логически следуют из первоначаль- ных утверждений. Можно использовать так называемый алгоритм унификации дня определения автоматическим решающим устройством правомочности замены X на socrates и возможности применения правила модус нонене. Унификация обсуждает ся в подразделе 2.3.2. В главе 12 обсуждается более строгое правило вывода, называемое правилом ре золюцин (resolution), которое является основой многих интеллектуальных автомат» ческих систем. 2.3.2. Унификация "Р"МСНЯТЬ "р!шим вывода типа модус поиеис. система вывод» д“*". ы В и^иСЛЯТ1’' К°ГДа Л““ “ЫР“ЖСН1|Я являются эквивалентными, пли 0. гда и тол, кг^т1С1<НИ “bICK“b,“aHllii ото тривиально: два выражения равное,,,,» определение тя^' “Г” °НИ ™~еск„ идентичны. В „счислении пред Правило VHUBCnr.iTUbHUC"' ДВуХ "Рсдложений усложняется наличием „ер1- ком квантора всеобщ? м П||ста«ипрования позволяет заменять переменные 1 .. Р общности термами из области определения. Необходимо г .ии. процесс замены переменных, ипн knrnnou .. ,да1„и.|11ЫМ.. (Обычно для того, чтобы МОЖНО%ЫЯ“Х»"Z)°™rU уиифнка.и.я- это вл,„р„т„ определения необходимых нодспшХ Z нише « ^^',,стт1с двух выражен,...сч„щ,е„„„ „редпка.ов. Пример зякщ-о ,1™ „'„."еден В П|’\ДЬ,'1У™" '«» ™рм socrafos „ырвженпя отОп(socrates) Сыл использован в качестве полстяно,,,,,, для X „ в,„раже,,,,,, VX(mm(X)=,mDrta/(X)) Э,а иодсга,,опка позволило применить правило модус нонене „ получит,, „ыпид morto/(socrates). Еще один пример унификации был рассмотрен выше, котла обсужда- лась фиктивные переменные (dummy). Поскольку р(Х) Ир(У) эквивалент.для приве- дения предложений „ соответствие (match) друг другу V можно заменить нв X Унификация и такие нрав,,ла „„.вода, как модус поневе, позволяют делать выводы „а множестве ло, „веских утверждений. Для этого логическая база данных должна быть вы- ражена в соответствующей форме. Восьми важный аспект этой формы заключается в требовании, чтобы все переменные стояли под знаком квантора всеобщности. Это обеспечивает полную свободу в выполне- нии подстановок. Переменные, стоящие иод квантором существования, можно ус границ, из предложений в базе данных, заменив их константами, обеспечивающими истинное и. предложения. Например, ЗХ parent(X.tom) может быть заменено выражением parent(bob.tom) или parent(mary.tom). принимая во внимание, что Боб (bob) и М »рц (тагу) являются родителями Тома (tom) в этой интерпретации. Процесс удаления переменных, связанных квантором существования, усложнен тем фактом, что значение этих подстановок может зависеть от значения других переменных в выражении. Например, в высказывании VX ЗУ mother(X.Y) значение переменной У под квантором существования зависит от значения X. Сколемизацнн (skolemization) — это замена каждой переменной, связанной квантором существования, функцией несколь- ких или всех имеющихся в предложении переменных, которая возвращает соответст- вующую константу. В вышеупомянутом примере, поскольку значение У зависит от X, У можно заменить сколемонской функцией (skolem function) f от X. Это порождает предикат VX mother(X.f(X)). Сколемнзация — это процесс, который также позволяет связывать переменные, стоящие под квантором всеобщности, с константами. Этот аспект подробно обсуждается в главе 12. После удаления из логической базы данных переменных, связанных квантором суще- ствования, можно применить унификацию и привести предложения в форму, не ходи Мую для применения таких правил вывода, как модус нонене. Процесс унификации осложняется тем фактом, что переметал может быть заменена любым термом, включая другие переменные и функциональные выражения пронзить- ной сложности. Эп, выражения могут тоже содержат,, переменные. Н»«р»мср. father(Jack) можно использовать в качестас подстановки для X в выражении ™ (X) для получения вывода, что отец Джека смертен- Приведем несколько рсали чщий выражения foo(X,a,goo(Y)). ИХ МОЖНО ПОЛУЧИТЬ liyTCM следующих noA1‘l,n,,‘Uh 1. foo(fred,a,goo(Z)) 2. foo(W,6, goo(jack)) 3. foo(Z,a,goo(moo(Z))) 92 Глава 2. Исчисление предикатов 93 Часть II. Искусственный интеллект как представление и п
,исм„ляры '“лст!,"мк...... У""'^'"""- к“™Рис дела»,,, в ЭТОМ примере I „3 трех, можно заппса 1 ь в виде w "ача,,и „„евыражеипеййС'Ч'.чнымк 1Z/X m°° .част что X является подстановкой для переменной У „ Запись Х/У. °31' ' „к0 также называется связининимт. Говорят, что ",' чалыюм выражет.. "Хусмымл качестве подстановки. пая атака со знатен , икац,|1ь который вычисляет подстановки, исобха,,.. При создании ал F' УС||||Й воз„икают некоторые проблемы. "ХТкХХ'»’» систематически использовать в качестве подстановки^^ «ментей люба» константа рассматривается как базовый экземпляр, и нс м вменена Нельзя также два различных "базовых экземпляра использовать в ка,еПк подстановки для одной и той же переменной. Посменная не может быть унифицирована с термом, содержащим ее. Поэтому „сре. ' X «с может 6ь1ть ММСНС1М 1,а р(Х)' поскольку это порождает бесконечное .ыр1. жснис: р(р(р(₽( ..Х) ) Тест д,|я этой с,|гУащ,и называется проверкой нхожНеш (occurs check). Вообще, процесс решения задачи требует ряда выводов и, следовательно, ряда последова- тельных унификаций. Логические решающие устройства задач должны подцерживатъ согла- сованность подстановок для переменных. Важно, чтобы любая унифицирующая подстановка была сделана согласованно по всем вхождениям этой переменной во все выражения. А выра- жения должны быть приведены в соответствие друг другу. Эта ситуация уже встречалась, ко- гда терм сократ использовался не только в качестве подстановки для переменной Хе предложении челавек(Х). но и для переменной X в выражении смертен(Х). Если переменная связана, все последующие унификации и процедуры вывода должны учитывать это. Если переменная связана с константой, се уже нельзя связы- вать с другим термом при последующих унификациях. Если переменная X) использо- валась в качестве подстановки для другой переменной Хг, а затем была заменена константой, то вХ2тоже необходимо отразить это связывание. Множество замен, ис- пользуемых в последовательности выводов, играет важную роль, потому что оно может содержать ответ на первоначальный вопрос (подраздел 12.2.5). Например.w ли р(а,Х) унифицировать с предпосылкой правила p(Y,Z)=>q(Y.Z) при помощи под- становкн {a/Y.X/Z}, модус понсцс позволяет вывести q(a,X) при той же поде»», кс. Если мы сопоставим этот результат с предпосылкой правила q( И'.Ы=’''(И,'Й|' г‘ выведем т(а,Ь) с учетом множества подстановок (a/W.b/X). УГОе понятие — это композиция подстановок унификации. Если S и после МНОЖ“т“ам" подстановок,то композиция S и S' (пишется SS ) попу’ комнозишп™"1"" S К 3,|смснтам S “ добавления результата к S. Рассмотрим 1 комножшш последовательности подстановок wy.wm, (к/x), {a/v, f(b)/W) канвалептиы единственной подстановке MY. W/Z). чеипя mZZ'Z”"' 6ьиш "и»едена путем компоновки (Х/Г. W/Z) с ^1} мионовки результата с {a/V, f(b)/W) для получения (а/ 94 Часть II. Искусственный интеллект как првДставтИ'”’ Композиция подстановок — это метод с ппи ЛОВКИ унификации. Его можно реализовать ncno;XTn™P°™ о6“д|"”,юк" |,0‘,|ста- тора» представлена ниже. Можно покатать что комп Р урсивиую Фуйкцию unify, ко- Хммутативной. В упражнениях a™ L Т*™ “Т™™"* “° Последнее требование алгоритма уннфн^^Та максимально общим, т.е. дм любых двух выражений™*"*?1 ЛМЖ“ 6ыть ший унификатор. Это очень важно поскольку по» пот Ытъ наиден наиболее об- и,и Л г Г алии, поскольку при потере общности в процессе пешрниа =Z.XTH0CTb “ия —“°™ — -—в-— НаПеХ₽мЛ(Х«С7»2/п "п 'И М0Ж“° Афишировать любым константным вы- ражением вида (bed/X, fred/и. Однако .red яс является яа116,мсс общим унифнкатс- ром. Используя в качестве унификатора любую переменную, можно получить более об- шее выражение: |Z/X, Z/Y}. Решения, полученные прн использовании первой подста- новки, всегда будут ограничены содержащейся в них константой fred. лимитирующей логические выводы. Следовательно, (rod можно использовать в качестве унификатора, но это снижает универсальность результата. ОПРЕДЕЛЕНИЕ НАИБОЛЕЕ ОБЩИЙ УНИФИКАТОР Если s — произвольный унификатор выражения Е. а д - наиболее общий унифика- тор (most general unifier — mgu) этого набора выражений, то в случае применения s к Е будет существовать еще один унификатор s' такой, что Es=Egs\ где Es и Egs' — композиции унификаций, примененные к выражению Е. Наиболее общий унификатор для набора выражений определяется с точностью до обозначения. В конечном счете, не имеет никакого значения, как называется перемен- ная — X или У. поскольку это не снижает общности для результирующей унификации. Унификация важна для любой системы решения задач искусственного интеллекта, использующей в качестве средства представления исчисление предикатов. Унифика- ция определяет условия, при которых два (или больше) выражения исчисления преди- катов могут быть эквивалентными. Это позволяет использовать для логического пред- ставления такие правила вывода, как резолюция (resolution), хотя этот процесс часто требует поиска с возвратом (backtracking) для нахождения всех возможных интерпре- тации (см. главу 14). Ниже будет представлен псевдокод для функции unify (унифицировать), которая вы- числяет подстановки унификации (если эго возможно) для двух выражений исчисления предикатов. Функция unify получает в качестве параметров два выражения исчисления предикатов и возвращает либо наиболее общую подстановку унификации, либо констан- ту FAIL (отказ), если унификация невозможна. Эта функция определена рекурсивно, вна- чале она пытается рекурсивно унифицировать исходные компоненты выражений Если зто удается, все подстановки, возвращаемые в результате згой унификации, применяют- ся к остальным выражениям. Затем выполняется второй рекурсивный вызов функции unity, в котором завершается унификация Рекурсия прекращается, когда параметром становится символ (предикат, имя функции, константа inn переменная . или когда все элементы выражения приводятся в соответствие. Чтобы упростить работу с выражениями, в алгоритме применяется слегка нзме- "ениый синтаксис Поскольку функция unify просто проверяет синтаксическое соот- Главе ?, Исчисление предикатов 95
. (,1-нооирует различия между предикатами, функциями и ветствие шаблону, она прСД„катов. Представляя выражение в В1Л раметрами д „ой последовательности элементов, первым и, кот (list) — упОР«л м следуют его параметры, мы упрощаем работу с' является "Р^-’ / вторых сами параметры являются предикатами Ми ряжениями. Выра ’ м„ Представлеиы как списки в списках. Таким обва функш.ональкь^ Р вь1ражения Списки заключены в круглые скобки а э°еМмек™ списка оиелеиы друг от друга пробелами. Примеры выражений как в ир X™ предикатов, так и в синтаксисе списков представлены „иже. Синтаксис исчисления предикатов Р(а,Ь) pifiai.gtX.Y)) equalievejnothertcaiti)) Синтаксис списка (р а Ь> (р (f a) (g X Y) ) (equal eve (mother cain)) Представим функцию unify. function unify(El,E2); begin case El и E2 - константа или пустые списки: «рекурсия завершается if Е1=Е2 then return {) else return FAIL; El - переменная: if El входит в E2 then return FAIL else return (E2/E1); E2 — переменная: if e2 входит в El then return FAIL else return {E1/E2} El или E2 - пуст then return FAIL %списки различных размеров otherwise: %Е1 И Е2 списки begin НЕ1 _• =лервый элемент El; НЕ2:= первый элемент Е2; SUBSl:=unify(НЕ1,НЕ2); if SUES1:=FAIL then return FAIL; TEi:=apply(SUBSl,хвост El); TE2:=apply(SUBS1,хвост E2); SUBS2:=unify(TEl,TE2) ; if SUBS2=FAIL then return FAIL; else return compositionfSUBSl, SUBS2) eno end «конец case end 233. Пример унификации e вышеописанного алгоритма можно понять, проследив обработку запрос* «пЭДфагшия X (fatherX)lmolhe, ыи„ (parenls bill U3ther b,m y>l Часть II Искусственный интеллект как представление
Поскольку ий один параметр не является атомарным символом, при первом вызове функции unify она будет пытаться рекурсивно унифицировать первые элементы каждого выражения с помощью вызова unifylparents, parents}. Эта унификация успешно выполнится и возвратит пустую подстановку {) Примене- ние ее к остальным выражениям не вызовет никаких изменений; затем вызывается unlfydX(father X) (mother bill}}, (bill (father bill) Y)}. Древовидное описание выполнения алгоритма на этой стадии представлено на рис. 2.4. Во втором вызове unify ни одно выражение не является атомарным, поэтому алго- ритм разделяет каждое выражение на его первый компонент и остальную часть. Затем следует вызов unify(X, ЫН). Этот вызов завершается успешно, поскольку оба выражения атомарные, и одно из них — переменная. В результате вызова возвращается подстановка (bill/X). Она применяется к “хвосту" каждого выражения, а функция unify — к результатам подстановки (рис. 2 5). unify(((father bill) (mother bill)), ((father bill)Y)). В результате этого вызова должна быть получена унификация (father bill) с (father ЫН). Это порождает вызовы unify(father. father] unifyfbil), bill) unifyd ).(}] Все они успешно завершаются, возвращая пустое множество подстановок, как пока- зано иа рис. 2.6. Затем функция unify вызывается для оставшихся выражений unify(((mother bill)), (Y)}. Это, в свою очередь, приводит к вызовам unify((mother bill), Y) unifyd ),( )). В первом из них (mother bill) унифицируется с Y. Заметим, что в процессе унифика- ции вместо переменной Y подставляется целая структура (mother bill). Таким образом, унификация завершается успешно и возвращает подстановку ((mother bill)/Y). Вызов unifyd). ()) Возвращает (}. В результате комбинации с полученной ранее подстановкой {bill/X} при- ходим к ответу (bill/X (mother bill)/Y). Весь процесс подстановок иллюстрируется на рис. 2.6. Вызовы пронумерованы. чтобы указать порядок их выполнения. Пожтниоаки, возвращенные каждым запросом, помечены иа дугах дерева. Глава 2 Исчисление предикатов 97
мп). ^nnublliwimbiii) к» Унифицировать У гюрныо •томаты / * и примчишь / подстановки Xх / костальным ? ,/nifyipafonta, рамп!*) 3- и,,1М<*<1,,1,,,,г ® bnotfu., bllt)),(bill (fnihar bill) Y}} 1‘iir 2 4. Начальные мын уп"фиш(нн пырамечип ((pnrotttn X (lulhur X) {(nothnt bill)) 4 (porento bill (tnlbl)r bill) V) f (/filfyl(f>»ff>fif»XlMharX)bnothai bill)), (ptjtanl'i hill (fnlhitr bill) Y}) Унифицировать tiUflllMO wtoMtuiru и применить подстановки к остальным V. ualfyfparontu,pa/fntln) 3. anlty{(X{lutlior X) Imoihnr hlll)),lbllHlnthoi bill) Y)} Унифицирован, порныо элементы и применить ПОДО ПШОНКИ г остальным 1 imtW.blin 6. wtnWulhm ЫН) („„ни-ц ЫИ)),Шп11м, bill) И1 1 пт/шкацш! miiiuKmuh {{perontu X llulhni X) Imolhor hill)) I,(i>il,nnlil bill UnD,,,, I,HI) Y) 08 Чисть fl, Искусственный интеллект кик представление и поиС|<
I- unlMtoaroritt, x (fnftw X) (rmth'ir biifjj, (rwwiii» bill (fnihor Mt) yp Унифицировать DOP0U9 ТЛОМеНТЫ И применить НОДГЛИНОПИИ f остальным 4. unllylX.biH) 5, Udlfymiathar Ml) (rnt/tlwt bill)), (((athor bill) Y}) I'l,. > (. iilhlHI'itinWIbUMC Hill, 'll Vlltti/HIMIHXH ЧЫ/Ы Ш fliUll {{parents X {fothor X) linnfttfjr D/ll)) и (parents bUt (father bill) И Глвм2 Исчисление предикатов 29
2 4 Пр1,л02кением|и25У!£25У2-^—— ------- использования исчисления предикатов Ш|я пр В качестве "°“^с ’ «умения о ней разработаем простую систему, котоРУю ления ПР“МСТНОЙ ° кячеи№ ••финансового советника . Хотя пример и прост, ок и,,,,™ можно применять в к с реальнь1М„ приложениями. стрируст много upon • пользоватслю решить, положить деньги на сберег,. ™йсчег°илТвлож.т их в акции. Некоторые инвесторы, возможно, захотят рае,1ре. свой Хтал между двумя вариантами. Рекомендации отдельным инвее™^ Хны зависеть от "х дохода " ТСКУ№Й НаК°ПЛеНН°" СУММЫ' Т' С' УДОВДљЙ еяе- дующим требованиям. 1 Лица с недостаточными накоплениями должны в первую очередь увеличивать сумму на счету, независимо от их дохода. , Лица с достаточными накоплениями н стабильным доходом должны рассматри- ' вать более рискованные, но потенциально более выгодные инвестиции. 3 Лица с недостаточно высоким доходом, но уже имеющие значительные накошк- ния могут захотеть рассмотреть возможность распределения их дохода между на- коплениями и акциями, чтобы, с одной стороны, оградить себя от потерь при по- пытке увеличить доход за счет акций, а с другой, рискнуть и значительно увели- чить прибыль. Соответствие между накоплением и доходом определяется числом иждивенцев, кото- рых данное лицо должно содержать. На каждого иждивенца необходимо иметь в банке по крайней мере S5000. Достаточным считается стабильный доход, составляющий по крайней мере S15000 в год плюс $4000 на каждого иждивенца. Чтобы автоматизировать эти рекомендации, запишем их на языке исчисления преди- катов. Вначале необходимо выделить главное требование, которые следует принять ао внимание. Поэтому первое требование — это достаточность сбережений и дохода. Их можно представить с помощью предикатов savings_account (сберегательный счет) и income (доход) соответственно. Это унарные предикаты, параметром которых может быть значение adequate (достаточен) или inadequate (недостаточен). Таким образом, возможны следующие комбинации. savings_account(adequate). savings_account(inadequate). income(adequate). income(inadequate). Заключения представим унарным предикатом Investment (инвестиции), параметр й торого может принимать значения: stocks (акции), savings (сбережения) combination (сочетание - т.е. разбиение инвестиций). спользуя эти предикаты и импликацию, можно представить различные иНВС онные стратегии. Приоритетное правило, которому должны следовать лица с не точными средствами. - это увеличение сбережений на счету. Его можно записать savings_account(inadequate) -»investment(savings). дуюгшп.1<01г'ЧН0 С0ХРаненИе ДВУХ инвестиционных альтернатив можно предстаВ дующим образом. г savlngs_account(adequate) л income(adequate) -> investment(stocks). savings_account(adequate) л income(inadequate) -*investment(combination). Затем, советник должен определить, достаточны ли сбережения и доходы. Это также можно записать с помощью импликации. Потребность в арифметических вычислениях приводит к использованию функций. Для определения минимума достаточных сбереже- ний создадим функцию minsavings. Функция minsavings зависит от одного парамет- ра, соответствующего числу иждивенцев, и возвращает результат умножения этого параметра на 5000. Используя функцию minsavings, достаточность сбережений можно определить правилами VXamount_saved(X) л 3Y (dependents(Y) л greater(X, mlnsavings(Y))) -» savings_account(adequate). VX amount_saved(X) a 3Y (dependents(Y) л -<greater(X,minsavings(Y))) -» savings_account(inadequate), где minsavings(X) s5000 • X. При этих определениях amount_saved(X) и dependents( Y) означают текущую сум- му сбережений и число иждивенцев (dependents) инвестора. Здесь greater(X.Y)— стандартная арифметическая проверка, определяющая, что больше: X или Y. В этом при- мере данная функция формально не определена. Аналогично функцию minincome можно определить так. minincome(X) =15000 +(4000 * X). Функция minincome используется для вычисления минимального приемлемого дохода в зависимости от числа иждивенцев. Текущий доход инвестора представлен предикатом earnings (доходы). Поскольку достаточный доход должен быть стабилен и превышать минимально допустимое значение, earnings имеет два параметра. Пер- вый параметр— заработанная сумма, а второй может принимать значение steady (стабильный) или unsteady (нестабильный). Приведем правила работы советника, опи- сывающего эту ситуацию. VX earnings(X, steady) a3Y (dependents(Y) a greater(X, minincome(Y))) -> income(adequate). VX earnings(X, steady) a 3Y (dependents(Y) л greater(X, inmcome(Y))) ->mcome(inadequate). VX earnings(X, unsteady) —> income(inadequate). Чтобы давать консупьтягши. необходимо добавить к этому набору предложений исчисле- ния предикатов описание конкретного инвестора. Эго— предикаты amount_saved (сумма на счету), earnings (доходы) и dependents (иждивенцы). Например, человека с тремя иждивенцами, имеющего $22000 в сбережениях, и с устойчивым доходом в $25000 мож- но описать так. amount_saved (22000). earnings(25000, steady) dependents(3). _____________._______________________________ п о ис * Часть II. Искусственный интеллект как представлен Глава 2. Исчисление предикатов 100
. „ мы построили логическую систему, состоящую из следующих пред. Таким образом, мы nocip ложении. 3rfeouste)-ч/nvestment(saWngs). 1. savings jiccoun /с' * income(Bdequate) investment(stocks). ^“</nade’ua,e) 4 у 3’ZependentslY) л greater(X. m/nsav/n^r))) 'savings account(adequate). . л j y(dapandants(Y) л-> graatar(X, minsav/ngs(Y))) 5 v Xamount saved(X) * o ’ ' savings account(inadequate). 6 . у Xearnings(X. steady) лЭ Y (dependents (Y) r. greater(X, minlncome(Y))) _»income(adequate). j.YXearnings(X, steady) л 3 Y (dependents! Y) greater^, minlncqm^Y))) —i income(inadequate) 8. VXearningstX. unsteady) -t income(inadequate). 9. amount~saved(22000)- 10. earn/ngs(25000. steady). 11. dependents^). Здесь minsavings(X) - 5000 * X и minincome{X) - 15000 + (4000 * X). Этот набор логических предложений описывает предметную область задачи. Утвер- ждения пронумерованы, поэтому на них можно ссылаться, описывая ход рассуждений. Используя унификацию и правило модус поненс, можно вывести правильную инве- стиционную стратегию для этого лица как логическое следствие данных выше описании. На первом шаге нужно унифицировать конъюнкцию высказываний 10 и 11 с первыми двумя компонентами предпосылки из 7. Иными словами, earnings(250QQ,steady) л dependents(3) нужно объединить с earnings(X,steady) л dependents(Y) с учетом подстановки (25000/Х, 3/У). Эта подстановка порождает новую импликацию. earn/ngs(25000, steady) л dependents^) л -> greater(25000, minincome{3)) —> income(inadequate). Оценивая функцию minincome, приходим к выражению earn/ngs(25000, steady) л dependents{3) л -> greater(25000, 27000) mcome(inadequate). Поскольку в этом частном случае все три компонента предпосылки истинны согла предложениям 10, 11 „ математическому определению функции greater (больше « конъюнкция тоже истинна. Из зтото следует, что истинна и вся предпосылка- ПоЯ-Л можно применить правило модус поненс и получить заключение Income(lnadequate), означающее, что доход недостаточен. Добавим этот вывод к набору предложений, при- своив ему номер 12. 12. income(inadequate). Аналогично, унифицируя amount_saved(22000) л dependents{3) с первыми двумя элементами предпосылки утверждения 4 с учетом подстановки {22000/Х, 3/У), получим импликацию amount_saved(22000) л dependents(3) л greater{220QQ, minsaving$(3)) -> savings_account(adequate). Оценивая функцию minsavings(3), приходим к выражению anQOunt_saved(22000) л dependents(3) л greater{22000, 15000) -»sevlngs_account(adequate). Опять же, поскольку все компоненты предпосылки этой импликации истинны, то вся предпосылка истинна, поэтому можно снова применить модус поненс и получить заклю- чение savings_account(adequat&). Представим его как предложение 13. 13. savings_account{adequate). Анализируя выражения 3, 12 и 13, делаем вывод, что предпосылка в выражении 3 также истинна. Применив модус поиенс в третий раз. получаем результат investment{combination). Это предложение и есть рекомендация по инвестициям для данного лица. На этом примере мы показали использование исчисления предикатов для описания реальной проблемы. Кроме того, мы сделали логические выводы на основе применения правил вывода к исходному описанию задачи. Мы все же не обсуждали, как обеспечить корректность вывода и реализовать этот алгоритм на компьютере. Эти вопросы будут рассмотрены в главах 3. 4 и 5. 2.5. Резюме и дополнительная литература В этой главе было рассмотрено исчисление предикатов как язык представления для решения задач искусственного интеллекта. Были описаны и определены символы, термы, выражения и семантика языка. Основываясь на семантике исчисления предикатов, мы определили правила вывода, позволяющие получать предложения, логически следующие из данного набора выражений. Мы описали алгоритм унификации, определяющий под- становки переменных, которые приводят в соответствие два выражения, что весьма важ- но для применения правил вывода. И в заключение главы мы привели пример системы, выполняющей роль финансового советника В ней знания о предметной области пред- ставлены на языке исчисления предикатов, а в качестве методики решения задач исполь- зуется логический вывод. Исчисление предикатов подробно обсуждается в ряде книг по теории вычислительных машин и систем, в том числе в [Manna и Waldinger. 1985). [Gallier. 1986]. [Chang и Lee. 1973]. (Andews, 1986]. Современные методы доказательства будут представлены в главе 12. Глава 2. Исчисление предикатов 103 102 Часть II. Искусственный интеллект как представление ипоис*
np._ .. Leve^ue « »ные современные „р„,ад,' II автоматизм™»™ вывода описаны в (Veroff. 1997]. 2.6. Упражнения ----------------------------------_ 1 Используя таблицы истинности. докажите тождества из подраздела 2.1.2. 2. Новый оператор © (читается •'исключающее ПЛИ") можно определить следующей таблицей истинности. р О P&Q I «!П lil I Г’Н1*1 Т F т F Т Т F F F Создайте выражение исчисления высказываний, эквивалентное Р в О, используя только операции л, v и -л. Докажите их эквивалентность с помощью таблиц истинности. 3. Логический оператор w означает “'тогда и только тогда . Выражение Р «-» О эквива- лентно (Р -> О)л (О -* Р). Базируясь на этом определении, докажите, что Р О логически эквивалентно (Р v О) -> (Р л О). 3.1. Используйте при этом таблицы истинности. 3.2. Воспользуйтесь последовательностью подстановок с учетом тождеств, приве- денных в подразделе 2.1.2. 4. Докажите, что в исчислении высказываний импликация транзитивна, т.е. что ((Р -♦ О) л (О-> Я)) -» (Рчй). 5. а. Докажете, что правило модус поненс для исчисления высказываний обоснованно. Подсказка: используйте таблицы истинности и рассмотрите все возможные интер- претации. б. .Абдукция (abduction) — это правило, которое позволяет вывести Р из Р —» О и Покажите. что абдукция необоснована (см. главу 7). в. Покажите, что правило модус толленс (modus tollens) ((Р —> О) а-< О) —> л0" ГНЧНО. 6. Попытайтесь унифицировать следующие пары выражений. Найдите их наиболее об- щие унификаторы или же объясните, почему они не могут быть унифицированы: а)р(Х,У) ир(а,2); б)р(Х, X) ир(а,Ь); в) ancestor!X,У) и ancestor(bil/, father(bffl)]; r)ancestor(X,father(X)) и ancestor!dav/d,george)' Д)О(Х) и-.д(а), 7. а. Скомпонуйте множества подстановок {а/Х, Y/Z} и {X/W, Ь/У). Часть II. Искусственный интеллект как представление и п
б. Докажите, что композиция множеств подстановок ассоциативна. в. Постройте пример, демонстрирующий, что композиция не коммутативна. 8. Реализуйте алгоритм unify (подраздел 2.3.2) на выбранном вами языке программи- рования. 9. Приведите две альтернативные интерпретации для описания мира блоков (рис. 2.3). 10. Джейн Доу содержит четырех иждивенцев, имеет стабильный доход $30000 и $ 15000 на сберегательном счету. Составьте соответствующие предикаты, описывающие эту ситуацию для системы финансового советника, рассмотренной в разделе 2.4, выпол- ните унификацию и получите выводы, необходимые для выдачи рекомендаций по инвестициям. 11. Запишите набор логических предикатов, выполняющих простую диагностику неис- правностей автомобиля (если двигатель не заводится и фары не горят, значит, неис- правен аккумулятор). Не старайтесь слишком усложнять ситуацию, но рассмотрите варианты поломки аккумулятора, отсутствия бензина, неисправности свечей зажига- ния и стартера. 12. Следующий пример взят из книги [Wirth, 1976]. Я женился на вдове (давайте назовем ее IV), которая имеет взрослую дочь (назовем ее D). Мой отец (F). который весьма часто навешал нас, влюбился в мою падчерицу и женился на ней. Поэтому мой отец стал моим зятем, а моя падчерица стала моей ма- чехой. Спустя несколько месяцев моя жена родила сына (SJ, который стал шурином (зятем) моему отцу, а потому' моим дядей. Жена моего отца. т.е. моя падчерица, тоже родила сына (Зз). Используя исчисление предикатов, создайте набор выражений, описывающих дан- ную ситуацию. Добавьте выражения, определяющие основные отношения в семье, в том числе определение тестя (или свекра), и. используя правило модус поненс. дока- жите заключение "Я сам себе дедушка". Глава 2. Исчисление предикатов 105

Структуры и стратегии поиска в пространстве состояний Для того чтобы выжить, организм должен либо защитить себя броней (подобно де- реву или моллюску) и надеяться на лучшее ", либо развивать способность избегать опас- ных путей и стремиться к безопасному соседству. Если он предпочел второе, ему при- дется постоянно задавать себе основополагающий вопрос: "Что я сейчас делаю?". Даниэл С. Деннет (Daniel C. Dennett), Объяснение подсознания Две дороги расходятся в желтом лесу, Жаль, не могу я пройти по каждой из них. Был одиноки.» я странником в этом лесу, Долго стоял и смотрел на одну из них. На ту, уходящую в даль, туда, где она исчезает вдали; Затем я пошел по дороге другой... — Роберт Фрост (Robert Frost), Невыбранная дорога 3.0. Введение В главе 2 описано исчисление предикатов — пример языка представления в искусствен- ном интеллекте. Правильно составленные выражения исчисления предикатов позволяют опи- сывать объекты и отношения в области определения, а правила вывода (например, правило отделения modus ponens) — логически получать новые знания из имеющихся описаний. Эти правила вывода определяют пространство, в котором ведется поиск решения задачи. Глава 3 является введением в теорию поиска в пространстве состояний. Чтобы разрабатывать и внедрять алгоритмы поиска, разработчик должен уметь ана- лизировать и прогнозировать их поведение. При этом перед ним стоят такие вопросы. Гарантировано ли нахождение решения в процессе поиска? Является поиск конечным, нли в нем возможны зацикливания? Если решение найдено, является ли оно оптимальным.
Как процесс поиска зависит от времен вылмиеяия и используемой пшмге? Как интерпретатор может «аи6оа« аффективно упростить поиск? Как разработать интерпретатор дм наиболее эффективного использоМ1)1(я представления? Теория поиска в пространстве состоянии (slate space search) дает ответы на эти во просы Представив задачу в виде графа пространства состоянии, можно Исполь3£>МТь теорию графов для анализа структуры и сложности как самой задачи, так и пр0Цедуры поиска ее решения. Граф состоит из множества вершин и дуг, соединяющих пары вершин. В модели про- сгрансгва состояний решаемой задачи вершины графа представляют дискретные со- стояния процесса решения, например, результаты логического вывода или различные конфигурация игровой доски- Дуги графа описывают переходы между состояниями. Эти переходы соответствуют логическим заключениям или допустимым ходам в игре. Так в экспертных системах состояния описывают знания о задаче на определенном этапе ис- следования. Экспертные заключения в форме правил "если .... то" позволяют получить новую информацию При этом каждый случай применения правила представляется как дуга между состояниями. Теория графов является наилучшим инструментом исследования структуры объектов и их отношений. Именно это и привело к созданию теории графов в начале восемнадцатого века. Швейцарский математик Леонард Эйлер*-изобрел теорию графов, чтобы решить 'задачу о кенигсбергских мостах". Город Кенигсберг расположен на двух берегах реки в двух островах. Острова и берега реки соединены семью мостами, как показано на рис. 3.1. Берег реки 2 Рис. 3.1. Город Кенигсберг Задача о кенигсбергских мостах формулируется следующим образом. маршрут обхода города, при котором каждый мост пересекается ровно один раз? местные жители после безуспешных попыток найти такой маршрут усомнились в существовании, никто не мог доказать его отсутствие. Создав модель графа, Эйлер р^а лпзовм альтернативное представление карты города (ркс. 3.2). Берега реки <rb t я острова (<1 к ,2) опнсьтааются вершинами графа; мосты представлены помечен"»*"1" гами между вершинами (Ы, Ь2, .... Ь7). Представление в виде графа сохранвуО'"1' венную информацию (структуру системы мостов), а несущественные данные (рассто и направление) игнорируются. юд l). Искусственный интеллект как представление и поис*- гЪ2 Рис. 3.2. Граф системы мостов города Кенигсберга Кроме того, систему кенигсбергских мостов можно представить в терминах исчисле- ния предикатов. Предикат connect (соединить) соответствует дуге графа и утверждает, что берега реки или острова связаны некоторым мостом- Для каждого моста необходимо ----- по одному для каждого направления движения по мосту. connecfp2.i1 .£>1) соппесЦН ,rb\ ,Ь2} connected,г£>1,63) соппесЦ/2, гЬ1,Ь4) connect^! ,rP2,65) соплесф'1, г 02, 66) connect^,Ф2,Ь7) задать два предиката connect — connect(i1 ,/2,Ы) connect(rb1./1,b2> connect(rb1 ,И ,ЬЗ) саппесЦгЫ ,i2,b4) connect{fb2j1.b5} connect(rt>2,i1 ,Ь6) connect(rb2,i2,b7) Выражение соппесЦХ, Y,Z)-connectl Y,X,Z}. указывающее на то, что каждый мост может быть пройден в любом направлении, позволяет исключить половину предикатов, Представление с помощью предикатов эквивалентно представлению в виде графа в смысле сохранения связности. Однако никакой алгоритм не может преобразовать одно представление знаний в другое без потери информации. Структура задачи более естест- венно отражается в представлении на основе графа. Доказательство Эйлера аътюстриру- ет это различия. Чтобы доказать невозможность существования нужного маршрута, Эйлер вводит по- нятое степени вершины графа, замечая, что каждая вершина может иметь v&wfiw либо нечетную степень. Вершина четной степени имеет четное число дуг, соединяющих ее с соседними вершинами. Вершина нечетной степени имеет нечетное число таких дут. Вершины нечетной степени могут использоваться только как начало либо как конец маршрута. Все остальные вершины должны иметь четную степень, поскольку искомый маршрут должен входить в каждую такую вершин)’ н выходить из нее. Иначе такие вер- шины будут пройдены определенное число раз. а затем окажутся тупиковыми. Путеше- ственник не сможет покинуть вершину, нс используя еще раз уже пройденную дугу. Эйлер заметил, что если число вершин нечетной степени не равно нулю либо двум, то маршрут невозможен. Если существуют ровно две вершины нечетной степени, то можно начать путь в одной из них и закончить в другой. Если же вершин нечетной степени не существует, то маршрут может начаться it закончиться в одной и той же Глава 3. Структуры и стратегии поискав пространстве состояний 109
.-возможен если число вершин нелегкой степени графа от вершине. Итак, маршрут нс ° кснигсбсргск„х „остах. Эта задача называется задаад лично от О или 2. как в зад поиска пути Эйлера на г₽а’ mMH(lc оп,1СЬ,вает отношения между мостами, берега. Хотя предикатное пр д |]онят|(е степсш, вершины. Представление в вкдс ми и островами, оно н > связь каждой вершины с дугами, в отличие от ар. графа обеспечивает од„оэтому представление с помощью графа приводит к гументов предикатов КЛЮЧевую роль в доказательстве Эйлера. В этом ХТчае"иму№С™ теории графов с точки зрения анализа структуры обтек- ™ВС:™Г™в7ХН.“Йприводится краткий обзор основ теории графов, а затем- описание пространства состояний задачи и поиска на графах. Поиск в глубину и поиск - это две стратегии поиска в пространстве состоянии. Мы сравним их, от- меча) рилнчия между поиском от цели и поиском иа основе данных. В разделе 3 3 XX в пространстве состояний используется для вывода логических заключении. На протяжении всей главы теория графов будет использована для анализа структуры и сложности различных задач. 3.1. Теория графов_____________________________________________________ 3.1.1. Структуры данных для поиска в пространстве состояний Граф — это множество вершин и дуг между ними. В размеченном графе для каждой вершины задается один или несколько дескрипторов (меток), которые позволяют отли- чить одну вершину графа от другой. На графе пространства состояний эти дескрипторы идентифицируют состояния в процессе решения задачи. Если дескрипторы двух вершин не различаются, то эти вершины считаются одинаковыми. Дуга между двумя вершинами определяется метками этих вершин. Дуги графа также могут быть размеченными. Метка дуги используется для з д именованного отношения (как в семантических сетях) либо веса дуги (как в задаче коммивояжере). Дуги между двумя вершинами тоже можно различать с помощью ток (см. рис. 3.2). Граф называется ориентированным, если каждой дуге приписано определенное правление. Дуги в ориентированном графе обычно содержат стрелки, определяй-1 ориентацию дуги. Дуги, которые можно проходить в любом из двух направлений, содержать две стрелки-указателя, но чаще вовсе не имеют стрелок. На рис. 3.3 изо жен размеченный ориентированный граф. По дуге (а,Ь) можно двигаться лишь от шины а к вершине Ь, по дуге (Ь,с) можно двигаться в любом из двух направлении. Путь (path) на графе — это последовательность дуг, соединяющих соседние в ны. Путь представляется списком дуг, систематизированным в порядке их следов d с а рис. 3.3 список (a.b.c.d] представляет путь, проходящий через вершины а, . указанном порядке. Корневой граф содержит единственную вершину, от которой существует путь бои вершине графа. Эта вершина называется корпел, (root). При изображении WP' Х и гТ НН° ',омсщают » верхней части рисунка над всеми остальными в Р иами. Граф пространства состояний любой игры обь.о является корневым П* причем в качестве корня выступает начальное состояние ипэы. Начальные ходы в крестики-нолики представлены в корневом графе на рис. II.5. Тго ориентированный граф, в котором все дуги являются однонаправленными. Заметим, что этот граф не имеет циклов; игроки не могут (как бы они этого не хотели) аннулировать ходы. Дерево (tree) это граф, на котором для любых двух вершин существует не более одного пути между ними. Деревья обычно имеют корни, которые изображаются в верх- ней части рисунка, как и для корневых графов. Поскольку для каждой вершины дерева существует не более одного пути в эту вершину из любой другой вершины, то не суще- ствует путей, содержащих петли или циклы. Для корневых деревьев или графов отношения между вершинами описываются поня- тиями родителя, потомка и вершин-братьев (siblings) — вершин дерева, имеюшнх об- щую вершину-родителя. Они используются в обычном смысле наследования: при прохо- де вдоль направленной дуги родитель предшествует потомку. Концы всех направленных дуг, исходящих из одной вершины, называются вершинами-братьями. Аналогично на пути ориентированного графа предок предшествует потомку. На рис. 3.4 вершина b яв- ляется родителем вершин е и f (которые являются потомками b и вершинами- братьями). Вершины а и с являются предками вершин д, h, I, а вершины д, h, i являются потомками а и с. Узлы = (а,Ь,с,д,е} flyrH = {(a,b),(a,d),(b,c),(c,b),(c,d),(d,a),(d,e),(e,c),(e,c/)} Рис. 3.3. Размеченный ориентированный граф a Рис. 3.4. Корневое дерево как пример семейных отношении Прежде чем ввести определение пространства состояний задачи, приведем форма,с ные определения рассмотренных выше понятий. ОПРЕДЕЛЕНИЕ ГРАФ Kt ы. N которое не обязано быть конечным. Граф состоит из множества вершин N\, . »• и множества дгг, соединяющих некоторые пары вершин. Глава 3. Структуры и стратегии поиска в пространство состояний 110 Часть II. Искусственный интеллект как представление и П
|Шпами верш»”к т.е. Wr*(N'- соединяет вепщМ|ш Дуг,, «пл.«0|« ,у с N„ если IN,. Н,У пс являете» Лугой, и 1ф„ш гого “уХи », с N,. «»»«"« ««...Р«'>..... у .« coemuiMCi вершюна N, и Nj. ю Nt жги,шлется родителем N. а w w <»,. »,>. ™ ч вершинами-бранями. й. ,„«|1 граф имеет сятегктую перши,,у N,. в которую „с нхо/гот ,,,, дуга Таким образом, коран, ,рафп т имеет ролтслсП. Л'„„ч«,и яерввви -- ето ncpuniiui. кетороя го имеет потомию Упорядочении» |,оагедоите»ы<осп> nepiuiin [Ni, Ni, N, ... N„], w млдая ,Ш|]а (N, N,.,) является Лугой, шиыпасгел Я)»хго донны n- 1 iiu графе. И корневом цыфс wpuinun называется предком всех вершим, расположенных после нос (правее нее), « в то же время потомком всех вершил, рвакиюжентм on nyrii к пей (левее нее). Если муть включает некоторую вершину более одного раза (т.е. в иринедешюм пыше <шрсдедсш1М пути некоторая вершина Л) повторяете*), то говорят, что пучь содержит петлю, или цикл. Дерево — это граф, а котором существует единственный путь между любыми двумя вершинами. (Следовательно, нуги в дерене нс содержат циклов,) Ребра в корневом дереве ориентированы от корня. Каждая вершина о корневом дере- не имеет единственного родителя. Дне вершины называются связными, если существует куп», содержащий эги вершины. 3.1.2. Представление задачи в пространстве состояний В пространстве состояний задачи вершины грифе соответствуют состояниям реше- ния частных задач, а дуги — этапам решения задачи. Одно или несколько начальных со- стояний, соответствующих исходной информации поставленной задачи, образуют ко- рень дерева. Граф также включает одно или несколько целевых условий, которые соот- ветствуют решениям исходной задачи. Поиск в пространстве состояний характеризует решение задачи как процесс нахождения лучш решения (цепочки, ведущей к решено» задачи) от исходного состояния к целевому. Определим представление задачи в пространстве состояний более формально. ОПРЕДЕЛЕННЕ ПОИСК 0 ПРОСТРАНСТВЕ СОСТОЯНИЙ Пространство состояний представляется четверкой [NAS.GD] со следуншшм» обозначениями. N множество вершин графа цлп состояний в процессе решения задачи. задачнН0ЖеСТВ° МСЖОД ««Раинами, соответствующих шагам в процессе рсшсим" S — это непустое множество начальных состояний задачи omZn^T°e иОдмиож^ * состоящее из целевых состояний. Эти состоят» описываются одним из следующих способов. Измеряемыми свойствами состояний „ Я|,ИЙ’ встречающихся в процессе поиска. 2. Свойствами путей, возникающих » ппп..^ ремощения по дугам пуп,. Р 1 v поиска, например, стоимостью ис- Д„„усга,ШЫ,; - ™ „ул. „СРШ|„„„ ттл s а асрШ11|1у ю М11ожспщ Qo Цел,, может о,,го,.шать состояние. „а„р„„ер ,,,1ИГрь!,;я,у,„ ко„ф„гура„ню „ „™ ..крестики-нолики (рис. П.5) нли пятнашки" (рис. 3.5). С «рутой отрои, пси,, может ,„и,сыпать некоторые свойства допустимых „утей. В задаче о коммивояжере (рис. 3.7 и J.8) иоиск >ака„чн„ас,ся при „вхожде,,,,,, кратоайц.сго >и фа задаче грамм,,,„чсско,., анализа (раздоя 3.3; поиск имр|„асти „иовд„исм ' „ пешкого анализа предложения. Дуги п „ростра,,стик состояний соответствуют шагам процесса решения. а ну™ пред- ставляют решения на различной стадии завершения. Пуп, является целью поиска. Си „к- чипасзся из исходного состояния и продолжается до тех пор. пока нс будет достигнуто условие цели. Порождение новых состояний вдоль пути обеспечивается такими операто- рами, как допустимые ходы в игре нли правила вывода в логической задаче или экс- пертной системе. Задача алгоритма поиска состоит в нахождении допустимого пути в пространстве со- стояний. Алгоритмы поиска должны направлять пути от начальной вершины к целевой, поскольку именно они содержат цепочку операций, ведущую к решению задачи. Одна иа общих особенностей графа и одна из проблем, возникающих при создании алгоритма поиска на графе, состоит в том, что состояния иногда могут быть достигнуты разными путями. Например, на рнс. 3.3 путь от вершины а к вершине d может проходить через вершины Ь и с либо непосредственно от а к d. Поэтому важно выбрать снинималь- ный путь решения данной задачи. Кроме того, множественные пути к состоянию могут привести к петлям или циклам. Тогда алгоритм никогда нс достигнет цели. Если в каче- стве целевой вершины на рнс. 3.3 выбрать вершину в, а в качестве начальной — вершину а, то образуется циклический путь abedabedabed... Если пространство поиска описывается деревом, как на рис- 3.4, проблема зацикли- вания не возникает. Именно поэтому важно отличать задачи поиска на деревьях от задач поиска на графах с петлями. Алгоритмы поиска на произвольных графах должны обна- руживать и устранять истин в допустимых путях. При этом алгоритмы поиска на деревь- ях выигрывают в эффективности за счет отсутствия этих тестов и затрат на них. Игры а "крестик,,-нолию," и "иятиашки" можно «сдо.тыовать ш югоюстрашш ногой в пространстве состояний. Оба зги примера обменяют смысл условия в peiaeuuu. В задай, о коммивояжере (пример -U.3)«« удодогом ««а 2. ПРИМЕР 3.1.1. “Крестики-нолики" Пространство состоя,,„Г, игры •крссгик1,-нто,,,кп^ “°®р““°ц“саЫМ „стоянием - состоянием является пустая готова» доска. ш1| „ас|юлагасгся три крестика доска, на которой в одной строке, столбце да исходного состояв,,» в х (предполагаете», «о целью является, небела х конечное содержит последоввтстьиость х»-> • * № „„фипрашш из крестгоов >, Состояниям)! в пространстве являются Конечна, большинство из возмож- ноликов, которые moqt возникнуть в проим-сс « % Q) а леаяти клетках никогда не них 3’ вариантов расположения символов (лус , С^|МЬ1М1| х0дами игры, которые со- воэниквет в реальной Ифе- Ду>»» «предела то 112 ость II. Искусственный интеллект как представление и поиск Глава 3. Структуры и стратегии поиска в пространстве состояний 113
У о » пустуй, ааетау. I Р»Ф лроетраиггаа ия.,,,, с,„г| „ „„„.(«рс/иам гмишютн х I ^1М И)Я,„„ия ipaiixn, и Поли гауг„,и, л„й „е летиети даря»'"' путями. Олиаао и пр.л,ра>)ч«! ии,тй уршшей MoiyiPMia 1ВЛ1ЧЧ1Г'" Р ф„ ,|С „ттиМ"' юпарапопка „ у„ „и циалоа, па ааа Тчоанил лоиии.уго. „ерпупжа н»Ч>« ч« >Р»фУ мти№ „ройляч'м да"’»™' ’л"л»лш«*7И чалкраи >ш пиал. I раф л «им сиой, ио. Следоаетида'0'||с| 'к,л .м (illmMil исуМ: fjmiih), u/Kfiaiiicm, MG. и часто л«рв'««сл при поиске » i fJ/O/IOHOHOMHI Пэ-ГО/ИИЮЛОМП» /’we 1.1 М-юяшююмка и К-.чмоаажмка Пил ||р,клрс||сп,а состояний дает Knumamm mpemrni. слякиосп, плачи. В и,ре -imxiwH Hrnmn" ятмщнш ктт. лср«и« идол и тмтктн iipmmim ла шжлий иа иия, доем c/icayarr cent. и,лм,гжш.|х мриятои и,и.-,аии,|. ардоии и -i.jt <жнчп‘лн:п1.т. пикш P/H/7Z...ZI-4I immuirMiiM пугей Iм'к кнтчтнн пук» (Ч62КЖ)) пшимопр етсавси «ЛраЛтяп. nciioepcwiaciaio иплимм лереворои. Омякн суталпует ииит т- имя та/шч, имсиииих 'нши. иысокуи» факнтрияльиую или 'жснонсииияльнуит сложность, ко- торая на мини/ Жфадкол нышс, чем и лом случае. Например, и шахматах имеется 10,ю жгь млжиых шрокмх путей; я шашках ИУ**, причем искоюрыс ит них ниюл/ш нс ночникают к реальных И1рйх.‘1икис проефшигша чрезвычайно ешмены, и их ис№лможно исслсдоивть про- стым исреГшром иаришпон ('трщегии поиска и ирехдраианах больших размеров используил тврисгики, но-нюляюшие уменьшим, сножностт, иоиска (слала 4). ПРИМИ* .11,2, 8*)оломолг>мки Н wipe и "пятнашки" с H/ttiwtiUffiM фишками, ини /' .чнннтпамм1, ин рис. < *> шпн*' math нроиумеронаиных фишек размещены на поле из 16 клеток. Одна клетка ociaeica «усгой, так что фишки можно /нонан. и тшуиги, их ра шичиыс киифшураиич. Цель ш рм - найти /вкую нослслона/сльшлп. нсрсмсшсиий фишек и пустую клетку, к<жтрм прицела бы к таряиес тадшшой пеленой конфигурации. ’>ю понулярняя шpa, юн<»р<*й Hiuli.miicimi HI пне гаГнтяяшт. я /n.-icinc 01 оом,,,,, |рохлюймопий аиаЛ|М| ь крачда«и и «слыми фишками, окаймленными черным цветом). Некоторые испек гм ной и/ры оказались весьма интересными для ис-следоввиий Хет^Х'""’'?'""®''' ‘' "Л'",й ............ с.«»«>ий но» т’’ы ............................... ии.срес, а с дру,пй - лпплпс »»• мнричяшдок-гдодо'г"' ................. СЖ1ОЯ1ГИЙ иетяядает 161, если paniH'iaii с"*1' аир-Лиши иик-рее,,,.,,' .„ХХкХ'яуй" Р“’ ......" 6°П"’ фима^юТетелтдоТ’*"" 15 """’"'""’“«и рл'Шгрл.ии 0 у II ,,„„>ВЛЛОМ« • , |Н1. И| и J ||ВД1(1Л1^ 11|В |[И|К сас,,„. ЧвСТЫ II. Искусственный интеллект как првдетаолоиио и по*** 114
НИЙ тк>й итры меньше, нем к И^оловояомке. следуиллия примерах именно се мм будем истюлс-ютмгп, а ге> И ремой.,й житаи колы . 11ттюи1х Ш„„т,к, , („средаииуп. фишку 7 >ир»и> 1фи уетл,ив „„, , нк" ипи "исрсмадио. фишку з , 1ЖШ1 ,,„ "иерсмсшсиии пустой ПКИИТ. yuixniiun .шрысаш., ь фишек и кмекоода» ny<i»«KW(«aj|(myCTHMU„„ перемещении фишек р*'шо,-1ожеи> слрала /л "“Л TOHOpmt, о игре учаетжуи/г . "l,tU Переместить пустую клетку яяерх Т Переместит». пустую клетку кприко - f (сремсст иг t, пустую vnet ку ииич I HepcMccitfih пустую млегжу елетю*- Ч'тпбм с/»сла и, </Чсрелиой ход. необходимо /, /iei »а пределм и»роняло ноля. {Ьгппму а оп^, ходни моту» окачаиля исл'лтуииммми Напрю", И'< утлой, то допустимы лишь д*й хода. Если олреде/теим начальное и . иис и К-юловоломке, ю процесс решения задачи можно опиат ния оиисынаился массииом размерности 3/3 Ирсдикзпнос fip ттоят.юиаиия прслимата состояния с леяятъю параметрами Gj / доске/, Ду/я н /ipiK'/pnifc'/iM: амгюяннй оире^/ямх/ четыре о; ыпиояныс перемещения пустой клстии. Как и при шре » «РК,И,Я И“ЯИ“И „редко» Но. » Т>«фои, Ihmuimicito вершин кодоро™ “ м„„жсст»«' иеяевт 'пшо,.,, „ом ,р»фе .«можим ш.к»м г"«»« 3. Структуры и стрвтогии поиск» » прострштст»» состоииия
„ конЛкгураиий- Вели °А«° m них встречается на GO. _ это особое множество м> всрш1)НЫ „ целевую - искомая послсдоаа. поиск прекращаете"- Путь из тельность ходов. пространство состояний 8-головоломки или 15- Слсдует отметить, что по п(,ЛГ|Мф0В (одинакового размера). Отсюда сле- головоломкп состоит из двух нс ямяотм недостижимыми из любой заданной на- дует. что ровно половинат сое („„„рек,, правилам!) две соседние фишки, все чальноЛ вершины. Если п состояний окажутся достижимыми, состояния из другой части пространства ПРИМЕР 3.1.3. Задача коммивояжера Предположим, коммивояжер должен посетить пять городов и возвратиться до- „оГ зиача состоит в том. чтобы найти кратчайший путь. На рис. 3.7 дди пр11Мер той задачи Вершины графа представляют города, а метка кд каждой дуге указыва- ст стоимость путешествия по ней. Эта стоимость может означать длину отрезка пути в милях если коммивояжер пользуется автомобилем, или цену авиабилета при нс- пользовании самолета. Для удобства предположим, что коммивояжер проживает в 1 вроде А и должен вернуться в город А. Это предположение попросту сводит задачу с л-городамн к проблеме с л-1 городом. Рис. 3.7. Пример пути в задаче колсииеояжера вня) в ДЭО^мнльТ^п? В03М0ЖНЫХ ny™1 U,D,C,B,E,A] длиной (стоимостью путешест- цепочки с минимальной Кра™ЙШСЙ дяинь1' т е' ™CIT’oi;"№ фа, а не свойство own Ю‘ Замст,,м’ ЧТо исль — это глобальное свойство гра- “Г17"РИМСР ЦСЛеВ0Г° СОСТОЯН”Я В"Да 2 ”3 °ПРе' приведены результаты спа ПрСдставлен1,я возможных путей решения задачи К возможные следующие состоямнСН"Я Начиная От вершпны Д, к пути добавляются путь возвратится в исходную т " Д° ТСХ П°Р’ П0Ка Нс ,,счеРпастся список городов м длины (минимальной стоимости)4*^' ^еЛЬЮ являстся нахождение пути кратчайшее Как показано на рис 3 8 переборе (W-1 )| MpM„IG1,' ' «Р"“«»юший поиск в задаче коммивояжера состоит» ролов можно непосредственно п, ~ ‘““° Всрш"н граФа <“л" число городов). Для ’ г0’ проверить все вершины. Но в реальных ситуациях, № II- Искусственный интеллект как представление и поиск 116
пример для 50 городов, непосредственный пт А НОСТЬ вычислений Ni растет столь быстро что НСВОЗМожсн’ На самом деле слож- Тов станет неосуществимым. ’ СкоР° прямой перебор всех вариан- Путь: Путь' Путь- ABCDEA ABCEDA ABDCEA Стоимость: Стоимость: Стоимость' 375 425 475 Рис. 38. Поиск в задаче коммивояжера. Метка каждой дуги соответствует сум- марному весу всего путч от начальной вершины А до конечной точки дуги Разработано множество методов, сокращающих сложность поиска. Один из них — это метод ветвей и границ [Horowitz и Sahni, 1978]. В этом методе на каждом шаге по- рождается один из возможных вариантов пути, при этом учитывается наклучшмй из ра- нее построенных путей. Этот путь используется в качестве границы для будущих канди- датов. Поскольку на каждом щаге к пути добавляется один город, алгоритм анализирует все возможные продолжения. Если обнаруживается, что все возможные продолжения некоторого пути (ветвь) дороже, чем заданная граница, алгоритм уничтожает эту' ветвь и все возможные ее продолжения. В результате сложность поиска существенно сокращает- ся, но все же остается экспоненциальной (1,264 вместо N!). Еще одна стратегия состоит в конструировании пути по правилу идти в блн- жвйшнй не посещенный город". Путь к "ближайшему еосеау" на рис. 3.7— это 1л. Е, D, в, С А) его стоимость 375 миль. Этот метод высоко эффективен. гак как “а каждом шаге выбирается лишь один вариант! К сожалению, эвристика поиска ближайшего соседа нс всегда приводит к получению пути кричшнпен длины, как "оказано на рис, 3.9. Однако она является возможным компромиссом в случае, если полным перебор неосуществим практически. В разделе 3.2 исследуются стратегии поиска в пространстве состоянии. Гллва 3. Структуры и стратегии поиска в пространстве состояний 117
100 - « г» ___ -..—.у g задаче коммивоялсера, .-.... поиска ближайшего соседа. Заметим. что этот путь {A.E.D.B.C.A) имеет Рис. 3.9. Пример пути в полученный на основе шл.. заметим. vw • г ~ стоимость 550 « не является кратчайшим. Срав- нительно высокая стоимость дуги (С,А) неучи- тывается эвристикой 3.2. Стратегии поиска в пространстве состояний 3.2.1. Поиск на основе данных н от цели Поиск в пространстве состояний можно вести в двух направлениях: от исходных дан- ных задачи к цели и в обратном направлении от цели к исходным данным. При поиске на основе данных (data-driven search — поиск, управляемый данными), ко- торый иногда называют прямой цепочкой (forward chaining), исследователь начинает про- цесс решения задачи, анализируя ее условие, а затем применяет допустимые ходы или пра- вила изменения состояния. В процессе поиска правила применяются к известным фактам для получения новых фактов, которые, в свою очередь, используются для генерации новых фактов. Этот процесс продолжается до тех пор, пока мы, если повезет, не достигнем цели. Возможен и альтернативный подход. Рассмотрим цель, которую мы хотим достичь. Проанализируем правила или допустимые ходы, ведущие к цели, и определим условия их применения. Эти условия становятся новыми целями, или подцелями, поиска. Поиск продолжается в обратном направлении от достигнутых подцелей до тех пор, пока (если повезет) мы не достигнем исходных данных задачи. Таким образом определяется путь от данных к цели, который иа самом деле строится в обратном направлении. Этот подход называется поиском от цели, или обратной цепочкой. Он напоминает простой детский трюк, заключающийся в поиске выхода из лабиринта из конечного искомого состояния к заданному начальному. пмгемТпимене™ГИ ЛОиск на основе данных начинается с условий задачи и выполняется к шли Ли,СК "РаВИЛ ИЛИ Д0Пустимых “лов для получения новых фактов, ведущих „ ХыГХ™’"'’ ' °6рЗЩСН,'Я к Це™ “ продолжается путем определе- исходным данным задачТ ПРИВеС™ " цели' и построения цепочки подцелей, всдушеи к 118 Часть II. Искусственный интеллект как представление и поиск
Наконец заметим, что в обоих случаях („ при поиске „„ 0„, исследователь работает с одним „ тем же '" Пр" нако порядок и число состоянии в процессе поиска X Ѱљ""", »«’ поиска предпочесть, зависит от самой задачи. При эт™ КакУ'° стратегию правил, “форму пространства состояний, природу и ДОст2Г УЧИ™вать ““““«ь может изменяться от задачи к задаче. туияость данных задачи. Все это Как пример зависимости сложности поиска от выбора смтт. которой нужно подтвердить или опровергнуть утверждений ™яР "’ОТрим » Джефферсона”. Положительным решением является mm „„ г потомок Томаса * "Томас Джефферсон". Поиск на злом <" начиная от вершины “Я” строить цепочку предок вершине -Томас Джефф"^ ил„ начиная с вершины Томас Джефферсон- анализировать цепочку fro потомков " ’ Простая оценка позволяет сравнить сложность поиска в обоих ва7равле„™ ™час Джефферсон родился примерно 250 лет назад. Если считать, что новое поколче рож дается каждые 25 лет. то длина искомого пути составляет примерно 10 Поскольку каж ДЫЙ потомок имеет двух родителей, то путь от "Я" требует анализа 21 2 3” предков С другой стороны, поиск от вершины “Томас Джефферсон" требует анализа большего числа со- стояний, поскольку родители обычно имеют более двух детей (особенно это касается во- семнадцатого и девятнадцатого столетий). Если допустить, что каждая семья имеет в среднем троих детей, то в процессе поиска нужно проанализировать З10 вершин генеало- гического дерева. Таким образом, этот путь сложнее. Заметим, однако, что оба способа поиска имеют экспоненциальную сложность. Модуль решения задачи может использовать как стратегию поиска на основе данных, так и на основе цели. Выбор зависит от структуры решаемой задачи. Процесс поиска от цели рекомендован в следующих случаях. 1. Цель поиска (или гипотеза) явно присутствует в постановке задачи или может быть легко сформулирована. Например, если задача состоит в доказательстве математи- ческой теоремы, то целью является сама теорема. Многие диагностические систе- мы рассматривают возможные диагнозы, систематически подтверждая или отвер- гая некоторые из них способом поиска от цели. 2. Имеется большое число правил, которые на основе полученных фактов позволяют продуцировать возрастающее число заключений или целей. Своевременный отоор целей позволяет отсеять множество возможных ветвей, что делзит процесс пои в пространстве состояний более эффективным (рис. 3.10). Например. в _ доказательства математических теорем число используемых правил в МЫ Обычно значительно меньше количества, формируемого на основе полной темы аксиом. -.пта-ны 3. Исходные данные не приводятся в задаче, но ""^^может стоять рэково- быть известны решателю. В этом случае поиск от цели л,2.ност„- яством для правильной постановки задачи. В НР01^ доктор выбирает из ки, например, имеются всевозможные диагностичес конкретнук> ги- них только те, которые позволяют подтвердить или опровергну потезу о состоянии пациента. „р„мещЮГО1 „даюче. Раким образом, при поиске от цели подходящи пр ,1я Перспективных ветвей поиска. 119 Лава 3 Структуры и стратегии поиска в пространства
Налравлеиие поиска Рис. .U0. Пространство состояний, в котором при поиске от цели ветви ненужных направлений поиска эффективно отсекаются Рис. 3.11. Пространство состояний, в котором поиск на ос- нове Санных отсекает ненужные данные и их логические следствия и позволяет определить одну из нескольких воз- можных целей Поиск на основе данных применим к решению задачи в следующих случаях. 1. Все или большинство исходных данных заданы в постановке задачи. Задача интср лретацни состоит в выборе этих данных и их представлении в виде, подходящем для использования в интерпретирующих системах более высокого уровня. На стра лети поиска от данных основаны системы анализа данных определенною т»1па Ъо такие системы, как PROSPECTOR или Dipmeter, анализаторы геологических Данных, определяющие, какие минералы с наибольшей вероятностью могут быть найдены в некотором месте. 2. Существует большое число потенциальных целей, но всего лишь несколько сиос“ бон применения фактов и представления информации о конкретном примере ’ <и рис.ЗЛУ). Примером этого типа систем является программа DEND экспертная система исследования молекулярных структур органических сосД Часть II. Искусственный интеллект хак представл0ми0 и п 120
ний на основе формул, данных масс-спек-гт. д. органического соединения существует ’*?”ий т химии- ч«>бого структур. Однако данные масс-сяск™.™-*г’вычайио большое число возможных тавить лишь небольшое число такнГко^б^!^^^ ПрОГраМмс DENDRAL ос- 3. Сформировать цель или гипотезы очень ™,.ил и системы DENDRAL изначально может 6. нТ* На'|Р"м'Р- "Р" использовании структуре соединения. °'геНЬ ММ0 о возможной При поиске на основе данных знания „ огра„ичення, ММ£иные „ исходвой новкс задачи, используются для нахождения пути к решению исходной поста ПОДВОДЯ итог заметим, что ничто нс заменит тщательного анализа каждой коикрет- ной задачи. Необходимо учитывать такие особенности, как фактор кетменю npTZ пользовании правил, доступность данных и простота определения потяшиальиых четей В главе 4 рассказывается о том, сколько новых состояний возникает в результате приме- нения правил поиска в обоих направлениях. 3.2.2. Реализация поиска на графах При решении задач путем поиска на основе данных либо от цели требуется найти путь от начального состояния к целевому из графе пространства состояний. Последова- тельность дуг этого пути соответствует упорядоченной последовательности этапов ре- шения задачи. Если решатель задач имеет в своем распоряжении оракула или иное непо- грешимое средство предсказания для построения пути решения, то и поиска не требует- ся. Модуль решения задачи должен безошибочно двигаться прямо к цели, запоминая пуп. движения. Поскольку для интересных задач оракулов не сушестаует. решатель дат- жен рассматривать различные пути до тех пор. пока не достигнет цели. Поиск с «жира- тами (backtracking) — это метод систематической проверки различных путей в про- странстве состояний. Начнем рассмотрение алгоритмов с поиска с возвратами, поскольку это один из пер- вых алгоритмов поиска в информатике, который допускает естественную реализацию в рекурсивной среде, ориентированной на использование стеков (раздел 5.1). Упрощенная версия поиска с возвратами на примере поиска я глубину (раздел 5.1) будет реализована в части VI на языках LISP и PROLOG. Алгоритм поиска с возвратами запускается из начального состояния и cwjct лоневото- рому пути до тех лор. пока не достигнет цели либо не упрется в тупик, тн цель поиск завершается, и в качестве решения задачи возвращается путь к привел в тупиковую вершину, то алгоритм возвращается в тижаишую велмиих от ... 3 ’ , иггем спускается по одной из ветвей, ведущих от шин и исследует все ее вершины-брэтья. а затем спус ____ nmnmmi вершины-брата. Этот процесс описывается следующим рекурсивным Если исходное состояние S не удовлетворяет тр*ЙОМ”1*11 “ выбираем первый S.^,. и к этой вершине РС^ЙВНО '^С" вратами Если в результате попсы. с -оз-П»™• ‘‘°' ружеиа, то повторяем процедуру Д’» вср11”*’У й всг по тех пор. пока один из потомко. узлом, либо нс выяснится, что рассмотрен братья) Если же ни одна из вершин- рап< S »< ' прелку вершины S и повторяем проиелур. ..пчтомхо* _ , ют- ова- w вершины- г"ава 3. Структуры и стратегии поиска а пространстве со. 121
а™™ работает ДО тех пор. пока не достигает Цеди либо не последует „се ,|ро. состояний. На рис. 3.12 изображен процесс поиска с позпратамп „ с ком пространстве состояний. Пунктирные стрелки а дереве указывают ,,апра11ЯС1|11с процесса поХ а „ротлранстве состояний (вниз или вверх). Числа вомс каждой „ср™. „„ Хыаатот порядок их посещения. Ниже приведем алгоритм поиска е возвратами В нем используются три списка, позволяющих запоминать путь от узла к узлу „ „ро. аранствс состояний. Si- (Stale List) — список исследованных состояний рассматриваемого пути. Если цель уже найдена, то SL содержит список состояний пути решения. NSL (New State List) — список новых состояний, он содержит вершины, подлежащие рассмотрению, т.с. список вершин, потомки которых еще нс были порождены и рас- смотрены. DE (Dead Ends) — список тупиков, т.с. список вершин, потомки которых уже были ис- следованы. но нс привели к цели. Если состояние из этого списка снова встречается в процессе поиска, то оно обнаруживается в списке DE и исключается из рассмотрения. При описании алгоритма поиска с возвратами на графах общего вида (нс только для деревьев) необходимо учитывать возможность повторного появления состояний, чтобы избежать их повторного рассмотрения, в также петель, ведущих к зацикливанию алго- ритма поиска пути. Это обеспечивается проверкой каждой вновь порожденной вершины на сс вхождение в одни из трех вышеуказанных списков. Если новое состояние обнару- жится хотя бы в одном из двух списков SL или DE, значит, оно уже рассматривалось, и его следует проигнорировать. function backtrack; begin SL.:« (Start] ;NSL: = [Start ];DE:=[];CS: «Start; ^инициализация •. while NSL*[) do %пока существуют неисследованные состояния begin if СБьдоаКили удовлетворяет описанию цели) then return SL; %лри нахождении цели вернуть %состояний пути. if CS но имеет потомков [исключая узлы, входящие в РЕ, then begin while SL не пуст и С3=первый элемент списка SL begin добавить CS в DE; список SL, do %внести состояние %тупикоа удалить первый элемент из SL; %возврат удалить первый элемент из NSL; CS:» первый элемент NSL; end добавить CS в SL; end else begin поместить потомок С81кроме узлов, уже содержащихся в SL или NSL) и NSL; CS:s первый элемент NSL; добавить CS в SL and NSL) в список DE, 122 ь II. Искусственный интеллект как представление и поиск
end end; return FAIL; end. Обозначим текущее состояние при поиске с возвратами через CS (current state). Со- стояние CS всегда равно последнему из состояний, занесенных в список SL, и представ- ляет "фронтальную вершину на построенном в данный момент пути. Правила вывода, ходы в игре или иные соответствующие операторы решения задачи упорядочиваются и применяются к CS. В результате возникает упорядоченное множество новых состояний, потомков CS. Первый из зтих потомков объявляется новым текущим состоянием, а ос- тздвиые заносятся в список новых состояний NSL для дальнейшего изучения. Новое те- кущее состояние заносится в список состояний SL, и поиск продолжается. Если текущее состояние CS не имеет потомков, то оно удаляется из списка состояний SL (именно в этот момент алгоритм ‘'возвращается назад”), и исследуется какой-либо из оставшихся потомков его предка в списке состояний SL. Алгоритм поиска с возвратами на графе из рис. 3.12 работает следующим образом. Инициализируем списки. SL=(A); NSL=(A]; DE=(J; CS=A; После итерации Текущее состояние CS Список состояний SL Новые состояния NSL Тупики DE 0 А [Л] ГЛ] [ ) 1 В 1ВА) [В CD А] [] 2 Е [ЕВА] [EFBCDA] п 3 Н [НЕВА] [HIEFBCDA] [ 1 4 1 [IEBA] [IEFBCDA] [Н] 5 F [ЕВА] [FBCDA] [£/Н] 6 J [JFBA] [JFBCDA] [£(HJ 7 С [СА] [CD А] [BFJEIH] 8 G [GCA] [GCDA] [BFJE/H] Поиск с возвратами в данном случае является поиском на основе данных, при кото- ром корень дерева связывается с начальным состоянием, а потомки узлов анализируются Для построения пути к цели. Этот же алгоритм можно интерпретировать и как поиск от Цели. Дед этого долевую вершину следует взять в качестве кория дерева и анализировать совокупность предков для нахождения пути к начальному состоянию. При использова- нии цеди вида 2 (см. подраздел 3.1.2) этот Алгоритм должен определить целевое состоя- ние, исследуя путь для SL. Поиск с возвратами (backtrack) — это алгоритм поиска на графе пространства состояний. Алг^змтыы поиска на графах, которые будут рассматриваться далее. включая поиск в гпъиху №pthfirst). поиск в ширину (breadth-first) и Поиск по первому нашучшему ывяидени» [Ьея- fir$t search). используют идеи поиска с возвратами. в том числе следующие. L Формируется список неисследованных состояний (NSL). для того чтобы иметь возможность возвратиться к любому из них. 2- Поддерживаете» список “неудачных" состояний (О£). чтобы осадить алгоритм от проверки бесполезных путей. Глава з. Структуры и стратегии поиска в пространстве состс 123
Рис. 3.12. Поиск с возвратами в гипо- тетическом пространстве состояний 3, Поддерживается список узлов (St) текущего пути, который возвращается по дос- тижении цели. 4. Каждое новое состояние проверяется на вхождение в эти списки, чтобы предотвра- тить зацикливание. В следующем разделе рассматриваются алгоритмы с использованием списков, по- добные алгоритму поиска с возвратами. Эти алгоритмы, среди которых поиск в глубину, поиск в ширину н поиск по первом)' наилучшему совпадению (глава 4), отличаются от по- иска с возвратами более гибкими средствами и стратегиями поиска. 3.2.3. Поиск в глубину и в ширину Определив направление поиска (от данных или от цели), алгоритм поиска должен оп- ределить порядок исследования состоянии дерева или графа. В этом разделе рассматри- ваются два возможных варианта последовательности обхода узлов графа: поиск в глубину (depih-fisf) и поиск в ширину {breadth-firs!). Рассмотрим граф, представленный на рис. 3.13. Состояния в нем обозначены буквами (А. В. С, ...), чтобы на них можно было сослаться в следующих рассуждениях. При поиске в гтубину после исследования состояния сначала необходимо оценить все его потомки и их по- томки. а затем исследовать любую in вершин-братьев. Поиск в глубину по возможности уг- лубляется в область поиска. Если дальнейшие потомки состояния не найдены, рассматрива- ются вершины-братья Поиск в глубину исследует состояния графа на рис. 313 в таком по- рядке: А. В. Е. К, S. L, Т, F, М. С. G. N, Н, О, Р. U. D. I, Q, J, R. Алгоритм поиска с возвратами, рассмотренный в подразделе З.'З.’З, осуществляет поиск в глубину. Поиск в ширину, напротив, исследует пространство состояний по уровням, один за другим. И только если состояний на данном уровне больше нет. алгоритм переходит к следующему уровню. При поиске в ширину на графе из рис. ЗЛЗ состояния рассматри- ваются в таком порядке: А, В, С, D, Е, F. G. Н. I. J, К. L. М, N. О. Р. Q. R. S. Т. U- Поиск в ширину осуществляется с использованием списков open и closed, позво- ляющих отслеживать продвижение в пространстве состояний. Список open, подобно Кггт<Д^1Г0РНТМС/°'<СХ° с воэвРатами, содержит сгенерированные состояния, потомь1* делает ЫЛ” и^слсдованы- Порядок удаления состояний из списка орел опр® сокс1оч₽Н Х °0НСка' В СП|,С0К closed заносятся уже исследованные состояния. Сп closed объединяет списки ОЕ и SL. иоюльзуемые в алгор.гтме поиска с возврат^- _________ __________________ _ ______________________— Часть II. Искусственный интеллект как представление И поис 124
A Рис. 3.13. Граф, дымстрирукпций работ- атрии,, мое поиска в глубину и в ширину function breadth_first_search; begin open:=[Start]; ^инициализация closed := [ ]; while open * [ J do «есть состояния begin удалить крайнее слева состояние из open, скажем х,- if X - цель then return SUCCESS «цель найдена else begin сгенерировать потомок X; поместить X в список closed; исключить потомок X, если он уже в списке open или closed; «проверка на цикл поместить остальные потомки в правый конец списка орет. «очередь end end return FAIL «состояний не осталось end. Дочерние состояния генерируются правилами вывода, допустимыми ходами иг- ры. или другими операциями перехода состоянии На каждой итерации генерируют- ся все дочерние вершины состояния X и записываются в open. Заметим. что список open действует как очередь и обрабатывает данные в порядке поступления (идя первылг поступил — первым обслужен")- Это структура данных FIFO first-in-first- °ul Состояния добавляются в список справа, а >дадяются слева. Таким образом в поиске участвуют состояния, которые находятся в списке open дольше всего, обес- нечивая поиск в ширину. Дочерние состояния, которые были уже записаны в списки °Реп или closed, отбрасываются. Если алгоритм завершается из-за невыпазяемия Условия цикла while (Ореп= ()). то можно заключить, что весь граф исследован г желаемая цель нс достигнута. Следовательно, поиск потерпел нездачу. Глава 3. Структуры и стратегии поиска в пространстве сос о 125
хх'х---”-- 1. орвп=1А1,- closed»11 2. open=[B,c,Dl; clofedJ* B A] 3. орвп=[С,D,E,F) ; cl°sea;'f re В A) 4. °iosed=iD',C,B,Al 5. Ч®' 'F‘'' j J']. closed» IE, В, С, B, A) 6. open F,G, ' j ( K KaK L уже в open); closed» [F, E, D, c, B,A] Г closed» (G, F, E, D, С, B, A) Г и так далее, пока или U иайлеио. или open-(1 На рпс. 3.14 показам граф, изображенный на рис. 3.13. после шести итераций поиска в ши- рину. Состояния из списков open и closed на рис. 3.14 выделены цветом. Не выделенные состояния не были исследованы алгоритмом. Заметим, что “пограничные” состояния поиска на любой стадии запись(ваются в open, а уже рассмотренные в closed. Поскольку при поиске в ширину узлы графа рассматриваются по уровням, сначала исследуются те состояния, пути к которым короче. Поиск в ширину, таким образом, га- рантирует нахождение кратчайшего пути от начального состояния к цели. Более того, поскольку вначале исследуются состояния, найденные по кратчайшему пути, при по- вторном проходе это состояние отбрасывается. Иногда помимо имен состояний в open и closed необходимо хранить дополнительную информацию. Например, заметим, что алгоритм поиска в ширину не поддерживает список состояний на текущем пути к цели, как это делалось при поиске с возвратами {backtrack) в списке $L. Все посещенные состояния хранятся в closed. Если путь является решени- ем. то он возвращается алгоритмом. Это может быть сделано путем накопления инфор- мации о предках для каждого состояния. Состояние хранится вместе с записью роди- тельского состояния, т.е. в виде пары (состояние, родитель). Для графа на рис. 3.13 содержание списков open и closed на четвертой итерации было бы следующим. open» 1(0, А) , (В,В), (F,В), (G,С), (и,С)) ; closed»1(С,А) , (В,А). (А,nil) 1
Используя эту информацию, можно легко построить путь (А, В. F), ведущий от А к F. Когда цель найдена, алгоритм может восстановить путь решения, прослеживая его в об- ратном направлении от цели к начальному состоянию по родительским состояниям. За- метим. что состояние А имеет родителя nil (нуль), т.е. является начальным состоянием. Эго служит сигналом прекращения восстановления пути. Поскольку поиск в ширину на- ходит каждое состояние по кратчайшему пути и сохраняет первую версию каждого со- стояния. этот путь от начала до цели является самым коротким. На рис. 3.15 показаны состояния, удаленные из open и исследованные алгоритмом поиска в ширину для 8-головоломки. Как и прежде, дуги соответствуют перемещению пустой клетки вправо, вниз и влево. Номер рядом с каждым состоянием указывает порядок удаления из open. В графе не показаны состояния, оставшиеся в open по завершении алгоритма. Опишем алгоритм поиска в глубину — упрощенный алгоритм поиска с возвратами, уже представленный в подразделе 3-2.3. В этом алгоритме состояния-потомки добавляются и уда- ляются с левого конца списка open, т.е. список open реализован как стек магазинного типа иди структура LIFO — “last-in-first-ouf' (“последним пришел — первым обслужен"). При ор- ганизации списка open в виде стека предпочтение отдается самым "молодым" (недавно сге- нерированным состояниям), т.е. осуществляется принцип поиска в глубину. function depth_first_search; begin open:=(StartJ; ^инициализация closed •• = !),• while open и [) do %есть сос,ояния begin удалить крайнее слева состояние из open, скажем X; X ~' Цель then return SUCCESS %цель достигнута else begin сгенерировать потомок X; поместить X в список closed; исключить потомок X, если он уже в open или closed; %проверка цикла поместить остальные потомки в левый коней списка орел %стек end end; return FAIL %состояний не осталось end. Ниже показан процесс реализации алгоритма depth_first_search для графа из рис. 3.13. Каждая успешная итерация цикла while описана одной строкой (2,3,4....). Началь- ные состояния списков open и closed указаны в строке L Пусть U— целевое состояние. 2. 5. 8. 9. ореп=1А}; closed=[) open=(B,c,D]; closed=[A) °pen=(E,F,C,D); closed=(B,A) °pen=(K, L, F, C, DJ ; closed^[E,B,A? open=[S,L,F,C,D); closed=(К, E, B. A} open=(L,F,C, DJ ; closed=[S,К,E,B.A) °pen=(T,F,C,D]; closed=[L,S,K,E,B.Aj open= [F, c. DJ; closed= (T, L, S, К, E, B, A) °Pen=(M,C,D), as L is already on closed; closed= [F, T, L, S, К, E. B, A] Глава 3. Структуры и стратегии поиска в пространстве состояний
10. open=(C,Dj; closed=[M, F, T, L, S, К, E, В, A] 11. open=[G,H,D); closed= (C,M, F, T, L, S, К, E, B, A) И так далее, пока не будет обнаружено состояние U, или ореп= 1пнвпрвппвпввпивпр Г дв|пв 1ивв1вви1впв1вв !пбв1 34 35 36 37 38 39 40 4 f 42 43 44 45 46 Цель Рис. 3.15. Поиск в ширину, демонстрирующий порядок удаления состояний из списка open, в 8-галоволомке Как и при поиске в ширину, в списке open перечислены все обнаруженные, но еще не оцененные, состояния (текущая “граница” поиска), а в closed записаны уже рас- смотренные состояния. На рис. 3.16 показан граф, изображенный на рис. 3.13, после вы- полнения шести итераций функции depth_first_search. Списки open и closed на рис. 3.16 выделены цветом. Как и при поиске в ширину breadth_f irst_search. в данном алгоритме можно сохранять для каждого состояния записи о родителях. Это по- зволит алгоритму восстановить путь, ведущий от начального состояния к целевому. В отличие от поиска в ширину, поиск в глубину не гарантирует нахождение опти мального пути к состоянию, если оно встретилось впервые. Позже в процессе поиска мо гут быть найдены различные пути к любому состоянию. Если длина пути имеет значение в решении задачи, то в случае нахождения алгоритмом некоторого состояния повторно нсо холимо сохранить именно тот путь, который оказался короче. Это можно сделать, сохраняя для каждого состояния тройку значений (состояние, родитель, длина пути . ри генерации дочерних элементов значение длины пути просто увеличивается мц<\?,ИНКиУ И сохРаняется вместе с потомками. Если дочернее состояние достигнуто п® м путям, эту информацию нужно использовать для сохранения лучшей версии. 128 Часть II. Искусственный интеллект как представление и поиск
“с" развиваете» при рассмотрен,™ тгаритма А ( сохранение лучшей версии сОс,м„ю „p„ Wgmthm А) СТ, что цель будет достигнута именно в главе 4. Заметим, что пп “ поиске В глубину вовсе не гарантиру- по кратчайшему пути. Н’ А В списке closed б списке open Рис. 3.16. Граф, изображенный на рис. 3.13. после вы- полнения шести итераций depth_first_search. Состояния, содержащиеся в списках open и closed, выделены цветам На рис. 3.17 рассмотрен поиск в глубину на примере головоломки с 8 фишками. Как отмечалось ранее, пустая клетка передвигается согласно одному из четырех возможных правил (вверх, вниз, влево и вправо). Числа рядом с состояниями указывают порядок, в котором они были рассмотрены и удалены из списка open. Не показаны состояния, на- ходящиеся в open, когда цель уже найдена. Глубина поиска в данном случае была огра- ничена пятью уровнями, чтобы не “затеряться в глубинах' пространства состояний. После выбора стратегии поиска (на основе данных или от цели). оценки графа н вы- бора метода поиска (в глубину или в ширину) дальнейший ход решения будет зависеть от конкретной задачи. Влиять на выбор стратегии поиска может необходимость обнару- жения именно кротчайшего пути к цели, коэффициент ветвления пространства, доступ- ное время вычислений и возможности пространства, средняя длина пути к целевой вер- шине графа, а также необходимость получения всех решений или только первого. При выборе метода поиска несложно убедиться, что у любого подхода всегда имеются опре- Аеленные преимущества н недостатки. иск в ширину. Поскольку при таком подходе до перехода к уровню л*1 всегда к «уются все узлы на уровне л, поиск в ширину всегда находит самый короткий путь Дено1680” ВеРщ,,не’ Еслн 8 ЗЛ-!ДЧ*? существует простое решение, это решение будет нан- кое° С0Жалснню. при большом коэффициенте ветвления, если состояния имеют высо- сРсднее число потомков, комбинаторный взрыв может помещать алгоритму найти tH'm. Это происходит потому, что все перспективные н неперспективные вершины ГлаВа 3. Структуры и стратегии поиска в пространстве состояний 129
для каждого уровня поиска находятся в списке open. Для глубокого поиска расположена глубоко) или для пространства состояний с высоким коэймЬ ^Огда Цель ленив этот поиск может быть весьма громоздким. е{ггом Berg, 1 Цель Рис. 3.17. Поиск в глубину для игры в "пятнашки" с 8 фишками, ограниченный 5 уровнями Степень использования пространства при поиске в ширину измеряется в терминах числа состояний в списке open и является экспоненциальной функцией длины пути в любой момент времени. Если каждое состояние порождает в среднем В дочерних со- стоянии, то общее число состояний на данном уровне определяется умножением В на число состояний предыдущего уровня. Значит, на уровне п число состоянии составляет 8 . При исследовании уровня л методом поиска в ширину все состояния помешаются в open, что может быть нежелательно, если путь к решению достаточно длинный. Поиск в глубину быстро проникает в глубины пространства. Если известно, что п>ть решения будет длинным, то поиск в глубину не будет тратить время на поиск большого количества ‘-поверхностных*’ состояний на графе. С другой стороны, поиск в глубину может затеряться в глубинах графа, пропуская более короткие пути к цели, или даже 'застрять" на не ведущем к цели бесконечно длинном пути. Поиск в глуоину Эффективен для областей поиска с высокой степенью связности, по- тому что ему не нужно помнить все узлы данного уровня в списке open. Степень ис- ПрОиранпва состояний в случае поиска в глубину - это линейная фун^"я венного Каж^ом УРовие в open сохраняются только дочерние вершины едП||СТ венного состояния, Если у каждой кршины еРдочерн„х вер- 130 Часть II. Искусственный интеллект как представление и п°1,ск
шин, и если поиск продвигается на п уровней вглубь пространства, то уровень использо- вания пространства составляет Sxn. Так что же лучше: поиск в глубину или поиск в ширину? На этот вопрос можно отве- тить так. Необходимо исследовать пространство состояний и проконсультироваться с экспертами в данной области. В шахматах, например, поиск в ширину просто невозможен. В более простых играх поиск в ширину не только возможен, но даже может оказаться единственным способом избежать проигрышей или потерь в игре. 3.2.4. Поиск в глубину с итерационным заглублением Хорошим решением проблем поиска в глубину является использование предельного значения глубины поиска. Предельная глубина позволяет ограничить поиск только за- данным числом уровней. Это обеспечивает некоторое подобие “развертки” области по- иска в ширину при поиске в глубину. Ограниченный поиск в глубину наиболее полезен, если известно, что решение Находит- ся в пределах некоторой глубины, имеются ограничения во времени или пространство со- стояний чрезвычайно велико (как в шахматах). В таких задачах число рассматриваемых со- стояний ограничивают предельной глубиной поиска. На рис. 3.17 показан поиск в глубину для 8-головоломки, для которого предельная глубина ограничена пятью уровнями. Поэто- му именно на этой глубине возникает поперечная развертка пространства. Такая модификация позволяет исправить немало недостатков как поиска в глубину, так и поиска в ширину. Итерационном заглублением [Korf, 1987] называется поиск в глубину, первая итерация которого ограничена 1 уровнем. Если цель не найдена, выпол- няется еще один шаг с предельной глубиной 2. В процессе поиска предельная глубина увеличивается на 1 на каждой итерации. На каждой итерации алгоритм выполняет поиск в глубину с учетом текущего предельного числа уровнен. При этом при переходе от од- ной итерации к другой информация о пространстве состояний не сохраняется. Поскольку алгоритм исследует пространство “по уровням”, он может гарантировать нахождение кратчайшего пути к цели Поскольку на каждой итерации осуществляется только поиск в глубину, степень использования пространства на каждом уровне п со- ставляет Sxn. где В — среднее число дочерних состояний вершины. На первый взгляд кажется, что итерационное продвижение в глубину менее эффек- тивно по времени, чем поиск глубину или в ширину. Однако временная сложность алго- ритма (время выполнения алгоритма в зависимости от размерности задачи) в действи- тельности имеет тот же самый порядок величины, что и каждый из этих алгоритмов О( В"). Объяснение этого кажущегося парадокса приведено в [Korf. 1987). Поскольку число вершин на данном уровне дерева растет экспоненциально с увеличением глубины, почти все время вычислений тратится на самом глубоком уровне. К сожалению, можно показать, что в наихудшем случае все рассмотренные в этой главе стратегии поиска (поиск в глубину. в ширину и итерационное заглубление) обла- дают экспоненциальной сложностью. Это характерно для всех неинформированных алгоритмов поиска. Для снижения временной сложности алгоритмов поиска исполь- зуют направляющие эвристики. Поиск по первому наилучшему совпадению это ал- горитм поиска, подобный представленным выше алгоритмам поиска в глубину и в ши- рину. Однако в процессе поиска по первому наилучше.му совпадению состояния в спи- ске open, определяющие текущую границу поиска, упорядочиваются согласно Глава 3 Структуры и стратегии поиска в пространстве состояний 131
«оистическому поювателю качества. На каждой итерации поиск самые глубокие. а самые "лучшие" состолнн». Поиск по первому наилу1|^ овладению - центральная тема главы 4. 3 3 Представление рассуждений в пространстве состояний на основе исчисления предикатов 3.3.1. Описание пространства состояний логической системы В разделе 3.1 при определении графа пространства состояний было отмечено, что его вершины должны отличаться друг от друга, поскольку каждый узел представляет некоторое состояние процесса решения. В качестве формального языка для описания этих различий и отображения узлов графа в пространство состоянии можно использовать исчисление предц. катов. Более того, для создания дуг и описания связей между состояниями можно использо- вать правила вывода. Тогда методами поиска могут быть решены некоторые проблемы ис- числения предикатов. Например, таким образом можно определить, является ли некоторое конкретное выражение логическим следствием данного набора утверждений. Корректность и полнота правил вывода исчисления предикатов обеспечивает кор- ректность подобных заключений. Возможность получить формальное доказательство целостности решения задачи с помощью алгоритма решения самой задачи является уни- кальным преимуществом многих методов искусственного интеллекта. Хотя состояния многих задач (например, “крестики-нолики") более естественно опи- сываются другими структурами данных (например, массивами), общая логика и специ- фика решения многих задач ИИ приводят к использованию исчисления предикатов и других моделей представления знаний, в том числе правил вывода (глава 7), семантиче- ских сетей и фреймов (глава 6). Для всех этих моделей представления знаний можно ис- пользовать стратегии поиска, аналогичные представленным выше. Пример 3.3.1. Исчисление высказываний В качестве первого примера рассмотрим задачу построения графа на основе набора логических отношений из исчисления высказываний. Пусть р. q, г, ... — высказывания. Рассмотрим следующие утверждения. г->р v-tq s-*r S—MJ s определенные выстаз^в'а^'в те^и”'"0’' "равила МОДУС понснс МОГУГ 6ыть выведены Q, не могут быть выведены ™ ИСЯС_₽’ г и и- Другие высказывания, в частности, V из этих утверждений. Отклик ВДМ спосо6ом' Действительно, они логически не следуют них описаны на рис. 3.18 с помп* МСЖду Иачальными утверждениями и выведенными из р • -• С помощью ориентированного фафа. Часть II. Искусственный интеллект как представление и поиск
Рис. 3.18. Граф пространства состояний набора импликаций в исчислении высказываний Рис. 3.19. Граф И/ИЛИ дм выражения q^r—tp Дуги на рис. 3.18 соответствуют логическим импликациям (-»). Утверждения, кото- рые считаются истинными (S и 1). соответствуют исходным данным задачи. Логические следствия из данного набора утверждений соответствуют достижимым узлам. Путь на графе отражает последовательность применения правила модус поненс. Например путь [s, г, pj соответствует такому ряду логических выводов. Из s и s —> г следует г. Из г и г -> р следует р. Такой способ логического вывода информации сводится к нахождению пути от вер- шины. помеченной квадратиком (начального узла), к целевому высказыванию. Таким образом, задача логического вывода сводится к проблеме поиска на графе. При атом ис- пользуется поиск на основе данных— строится путь от известных (истинных) высказы- ваний к целевым утверждениям. К этому же пространству состояний можно применить и стратегию поиска от цели. Поиск от целевого высказывания позволяет прийти к обосно- ванию этой цели в классе истинных высказываний. Полученное пространство логических следствий можно исследовать методом поиска как в глубину, так и в ширину. 3.3.2. Графы И/ИЛИ В предыдущем примере все утверждения представляли собой импликации вида p-*Q. Способ представления логических операторов И и ИЛИ в таком графе не обсуждался. Представление логических связей, определенных этими операторами, требует расшире- ния понятия модели графа. Граф, отражающий подобные взаимосвязи, называется гра- фом И/ИЛИ. Графы И/ПЛИ являются важным инструментом для описания областей по- иска, порожденных многими проблемами искусственного интеллекта, в том числе зада- чами автоматического доказательства логических теорем и экспертными системами. В выражениях вида рлг-*р для обеспечения истинное™ р должны быть истинны как q, так и г. В выражениях вида pvr-»p истинность q или г достаточна для доказательства того, что р— истина. Поскольку импликации {—»), содержащие дизъюнктивные (v) предпосылки, могут быть записаны как пары отдельных импликаций. это выражение часто записывается в виде р-»р, г-+р. Чтобы представить различные отношения графи- чески, на графах П/ИЛИ различают узлы и (and) и или (or). Если предпосылки имплика- ций связаны оператором л. они называются и-узлами графа, а дуги. ведущие от этих узлов, соединяются кривой. На рис. 3.19 в виде графа П/ИЛИ представлено выражение Qлг-ip. Кривая, соединяющая дуги на рис. 319, означает, что для доказательства р должны быть истинными обе предпосылки: q и г. Если предпосылки соединены оператором ИЛИ, на графе они представляются узлами или. Дуги. ведущие от узлов или к слсд\ю- Глава 3. Структуры и стратегии поиска в пространстве состояний 133
„мимютея кривой (рис. 3.20). Это указывает на то. что истина лю6ой шей верш»1»е. не соединяют условием для истинности заключения. 011 из предпосылок является л ги„ерграфа. „ котором узлы соед„„ены Граф ИЛИИ является Приведем определение гиперграфа, отдельными дугами, я множеством ду ОПРЕДЕЛЕНИЕ ГИПЕРГРАФ Гиперграф состоит из следующих элементов. w - множество вершин. н_ множество гипердуг. Гипердуга задастся упорядоченной парой, в которой первый элемент является отдельной вершиной из N, а второй —подмножеством множества N. Обычный граф - это частный случай гиперграфа, в котором все множества порож- денных вершин (узлов-потомков) имеют мощность 1. Гипердуги также называют коннекторами, где к - мощность множества порож- денных вершин. Если к= 1. то можно считать, что потомок является вершиной ИЛИ. Ес- ли к> 1, то элементы множества потомков являются вершинами и. В этом случае коннек- торы изображаются в виде отдельных ребер, ведущих от родителя к каждой из порож- денных вершин и соединенных изогнутой линией (см. рис. 3.19). Р А. Q г Лис. J.20. Граф И/ИЛИ выра- жения qvr-+p Рис. .1.21. Граф И/ИЛИ для на- бора выражений из исчисления высказываний ПРИМЕР 3.3.2. Поиск на графе ШИЛИ Второй пример тоже относится к исчислению высказываний. Сгенерируем держащий оба вида потомков: и и или. Предположим, в некотором мире истинны дующие предложения. А b с алЬ-id алс-»е Ьлб—tf f-»g a/\e->h Часть ||. Искусственный интеллект как представление и п0И
Этот набор утверждений определяет граф И/ИЛИ. показанный на рис. 3.21. С помощью поиска на этом графе можно получить (вывести) ответы на следую- te воппосы. 3 1. Истинно ли /1? 2. Является ли h истиной, если Ь больше не истина*7 3. Каков кратчайший путь, доказывающий, что некоторое высказывание X истинно? 4. Показать, что высказывание р (не используемое в наборе исходных высказываний) есть ложь. Что это значит? Что необходимо знать для получения этого заключения? Поиск на графе И/ИЛИ требует хранения большего объема информации, чем поиск на регулярных (однородных) графах. В качестве примера рассмотрим описанный выше алгоритм поиска с возвратами. Потомки или проверяются в точном соответствии с этим алгоритмом. А именно, если найден путь, проходящий через вершины или и соединяю- щий цель с начальной вершиной, — задача решена. Если же некоторый путь не ведет к целевой вершине, алгоритм возвращается и исследует другую ветвь. Однако при иссле- довании вопроса об истинности родительской вершины узлов и необходимо доказать ис- тинность всех и-потомков. В примере, показанном на рис. 3.21, для определения истинности h с помощью стратегии поиска от цели (goal-directed strategy) сначала доказывается истинность а и е. Истинность а очевидна, а выражение е истинно, если истинны и с и а, что да- но по условию задачи. Решающее устройство прослеживает все дуги, ведущие к ис- тинным предложениям. Затем истинные значения передаются и-узлу для доказа- тельства истинности h. Стратегия определения истинности h на основе данных предполагает обработку ис- ходных данных (с. а и Ь) и добавление новых высказываний к набору известных фактов в соответствии со связями графа П/ИЛИ. Сначала к набору фактов добавляется высказы- вание е или d. Это дает возможность вывести новые факты. Процесс продолжается до тех пор, пока не будет проверена желаемая цель h. Поиск на графе И/ИЛИ можно рассматривать следующим образом. Операторы л (и- узлы графа) означают декомпозицию задачи. Иными словами, задача разбивается на подзадачи, которые должны быть решены для решения исходной проблемы. Оператор v (или) в представлении на основе исчисления предикатов определяет точку выбора между альтернативными путями решения задачи, или стратегиями. Нахождение пути к цели вдоль любой из ветвей является достаточным условием для решения общей задачи. 3.3.3. Примеры и приложения ПРИМЕР 3.3.3. Система MACSYMA Приведем сшс один пример графа И/ИЛИ. Им является программа символьного ин- тегрирования математических функций. MACSYMA— это известная программа, кото- рая широко используется математиками. Логические рассуждения в системе MACSYMA могут быть представлены в виде графа И/ИЛИ. Процесс интегрирования затрагивает один важный класс задач, в которых выражение разбивается на подвыражения. Эти под- выражения могут быть проинтегрированы независимо друг от друга, затем результат ал гебранческн объединяется в конечное выражение. К примерам этой стратегии относится правило интегрирования по частям и правило разложения интеграла суммы на сумму ин Глава 3. Структуры и стратегии поиска в пространстве состояний
Еше одна стратегия заключается в упрощении выражения с использованием различ ных алгебраических подстановок. Поскольку любое выражение может допускать ряд зЯ мен, а каждая замена представляет независимую стратегию решения, то эти стратегн’ представлены на графе вершинами или. На рис. 3.22 показано подобное пространств состоянии. Поиск на этом графе ведется от цели. Он начинается с запроса на вычислен! интеграла конкретной функции, а затем направляется вниз к алгебраическим вЫраЖСН ям. определяющим этот «итеград. Заметим, что здесь поиск от цели является очепплно X в™.оСШ^Ш':МУ прекичееки невозможно определить ™«бРа“Ч'к составляю. ИЯ’ Ф°РмиРуЮ|ц|1С заданный интеграл, не направив поиск от запроса в составляющим выражениям. к 136 ! Искусственный интеллект как представление и поиск
ПРИМЕР 3.3.4. Поиск от цели на графе И/ИЛИ Этот пример взят из исчисления предикатов и представляет поиск от цели на графе. Цель, истинность которой должна быть доказана, в этом случае представляет собой вы- ражение исчисления предикатов, содержащее переменные. В этой задаче аксиомы — это логические описания отношений между собакой Фредом и его хозяином Сэмом. При этом мы предполагаем, что холодный день — это не теплый день. Кроме того, в этом примере не рассматривается проблема, вызванная эквивалентными выражениями преди- катов. Она будет обсуждаться далее в главах 6 и 12. Факты и правила в этом представле- нии даны в виде предложений на английском (и русском) языке, за которыми следуют их представления на языке исчисления предикатов. 1. Fred is a collie. (Фред — это колли.) col)ie(fred). колли(Фред). 2. Sam is Fred’s master. (Сэм — хозяин Фреда.) master(fred,sam). day(saturday). 3. The day is Saturday. (Сегодня суббота). day{saturday). 4. It is cold on Saturday. (Холодно в субботу.) -dwarm(saturday)). 5. Fred is trained. (Фред дрессированный.) trained(fred). 6. Spaniels are good dogs and so are trained collies. (Спаниели — хорошие собачки, a колли такие же обученные.) VX[spaniel(X}v{collie{X)*trained(X))-^gooddog(X)] 7. If a dog is a good dog and has a master then he will be with his master. (Если собака хо- рошая и имеет хозяина, тогда она находится рядом с хозяином.) V(X,y,Z) [gooddog(X)Amaster(X.Y)Alocation(Y.Z)->location(X,Z)] 8. If it is Saturday and warm, then Sam is at the park. (Если в субботу тепло, то Сэ.м на- ходится в парке.) (day(seturday)Awarm(saturday))^location(sam,park). 9. If it is Saturday and not warm, then Sam is at the museum. (Если в субботу не тепло. то Сэм находится в музее.) (day(saturday) A-’{warm(saturday)))~>location(sam,museum). Цель— это выражение ЭХ location(fred,X) иля ЭХ место(Фред.Х), означающее “Where is Fred?” (Где же Фред?). Алгоритм с возвратами исследует альтернативные зна- чения этой порожденной цели: “if fred is a good dog and fred has a master and fred s master is at a location then fred is at that location also.” (Если Фред хороший пес. и Фред имеет хо- зяина, и хозяин Фреда находится в некотором месте, то Фред находится в том же месте.) Исследуются предпосылки этого правила: что значит "good dog (хороший пес) и т.д. Таким образом создастся граф И/ИЛИ, показанный на рис. 3.23. Рассмотрим этот поиск детально. Это пример поиска от цеди с использованием ис- числения предикатов. Он иллюстрирует роль унификации (объединения) при порожде- Глава 3. Структуры и стратегии поиска в пространстве состояний 137
„„„иль задачу: “Где же Фред? . Эту задачу ни„ облвсти поиска. переменной X, если оиа существует, ари*° ^рмулЧх»«‘1“:“Х. Хго(ФРад'Х> ЯВЛЯеТС” Л0ГИЧеСК™ СЛСЛС,ИИем «*£ торой locationlfrea.A/ них утверждении. ЛИТЬ расположение Фреда, то первыми будут исследоващ. раз уж необходимо опреде содержится выражение месго(/оса«ол). ц „предложения, в з^««^а,ымяне 7. Заключение этого высквзы^ пеР»- затем объединяется с выражением iocation(fred,)n location(X.Z) (или ме ' ' /z)) Предпосылки этого правила при том же набор. «-потомки основной цели Подстановки = (fred/X, sam/Y, museurrt/Z} Рис. 3.23. Подграф решения, показывающий, что Фред в музее стоит н ^1ражение МОЖНо интерпретировать так: один из путей нахождения Фреда со- нить кто хлГ°Ще^1 У*'110 убедиться, является лн Фред хорошей собакой, затем выяс- цель, таким ofinam ЗЗТем ОпРеделить местонахождение хозяина. Начальная все должны быть рш^шень™” Подиелями- Они являются и-вершинами, поэтому собакой. Это^соотвегстве^11^' Решатель сначала определяет, является ли Фред хорошей <fred/X).Предпосылкавыо^104™110 вь,с™™>ния 6, затем используется подстановка п 8РаП''е'('гед)^С0"'е(/гер)лгга;пе^Х7))НтеСКаЯ СУММа Д°УХ ВЫ₽аЖС"И ЖЛИ1М- поэтому решающего spar"el</red). База данных не содержит этого утвер- » ТЛ ~ ™ <«''ю(5ХИС™,даЛЖН0 предположить, что это ложь. ДРУ™ ва™ ™ должны б d))’ те- ФРад~ ™ к°л™ « фРед ДРССС"^ алиями 1 „ у. «“mm быть истиннь1 Так и есть g с00твстстви„ с высказЫ ТЬИскуссТ0енный интеллект как представление и поиск
я Итак, доказано, что выражение gooddo , f исследует вторую предпосылку высказывания 7 Затем Р™ающее устройство (Ггео'/Х) к выражению master(X.Y) n,^,,S.r<'X'Y}' пРименя» подстановку выражение с фактом master(fred.sam) (выс red'^‘ а затем объединим это ванную (обобщающую) замену (sam/И ?° поРожласт унифициро- третьей подцели высказывания 7, создавая новую цель “Х^ГпГхГ 3“a4e““e Разрешая эту цель, предположим что пешающее - 'Х ' порядку. Цель location(sam.X) вначале будет унифи1^м„Т° Пр°“рЯег правила "° вания 7. Заметим, что каждый раз исследуется адно и то же опа»33™04'1*"™ °ыскиы’ чеииями связывания дляX. Напомним, если /является ihu ₽ !“° с различными зна’ •т, смш а является фиктивной переменной (глаиа 7^ т0 она может иметь любое значение (любой ряд, начинающийся с пропнсно б™ ’ Поскольку диапазон действия конкретного значения какой-либо переменной отраичю вается пределами предложения, в котором содержится эта переменная, то исчисление предикатов не имеет никаких глобальных переменных. Иначе эту мысль можно выразить так: значения переменных передаются другим предложениям как параметры не имею- щие фиксированной области действия (памяти). Таким образом, многократные повторе- ния X в различных правилах в этом примере указывают на различные формальные пара- метры (раздел 12.3). Разрешая предпосылки правила? с вновь выведенными значениями связывания, ре- шатель отвергнет их, потому что Сэм не является хорошей собакой. Здесь алгоритм по- иска вернется назад к цели location(sam,X) и проверит заключение правила 8. Но н эта попытка потерпит неудачу, вызывая еще один возврат назад. Затем последует объедине- ние (унификация) с заключением высказывания 9 location(sam,museum). Поскольку предпосылки предложения 9 подтверждаются другими высказываниями (предложения 3 и 4), то заключение 9 истинно. Результаты унификации передаются вверх по дереву и приводят к заключительному ответу ЭХ location(fred.X), откуда по- лучим location(fredt museum). Важно тщательно исследовать природу поиска на графе от цели и сравнить его с поиском на основе данных из примера 3.3.2. Дальнейшее обсуждение этой пробле- мы, включая более строгое сравнение этих методов поиска на графах, рассмотрим на следующем примере. Но детальное описание приводится только при обсуждении продукционной системы (основанной на представлении знаний в виде продукцион- ных правил) в главе 5 и в приложении, описанном в части IV. Еше одна мысль, не явно использованная в этом примере, заключается в том, что порядок высказывай. и влияет на порядок поиска. В рассмотренном выше примере были по П0Р^ дованы все имеющиеся предложения, указывающие на Pacn0J*° истинность ко- этом использовался поиск с возвратами и отвергались утвер торых была опровергнута. ПРИМЕР 3.3.5. Финансовый советник (повторно) ,„„™-ь для „ .... э исчисление предикатов использовалось для В последнем примере из главы . ис - 1ВИЯ сисгемы — финансового со- прсдставлення набора правил, описывающих д „оиенс для формирования встннка. В том примере использовалось правя инвсстииий. Мы нс обсуждали совета конкретному человеку о наилучш встствуЮщкм выводам. Это задача 11>ть решения, проделанный программой к с подкод к осуществлению логиче- "опека. Данный пример иллюстрирует лишь од гани Здссь используется ски обоснованного поиска в системе финансово 139 Глава 3. Структуры и стратегии поиска в пространстве
. ,, птвпатами. В рассуждениях будем использовать пред„. поиск от дели л глубину и Ркат' здссь „е дублируются каты, составленные в рам • 1Ж11ЖИиев. вклад в размере $20000 н усгай. Предположнм^го миеиг^ Д r „абору сущсствующих чивыи доход $30000 в » момо добовдять новые. И. наоборот, программа может SX“noX“to эгой1он«ретнон информации, запрашивая у пользователя необходимые дополнительные сведения. Преимущество этого метода состоит в том, что можно не хранить ненужные данные, которые не будут полезными для решения. Этот подход часто используют в экспертных системах. w Цель консультаций состоит в том. чтобы определить наилучшин способ инвестиций. Это представлено выражением исчисления предикатов ЗХ investments, где X- целевая переменная, которую мы стремимся связать. Были приведены три правила (1, 2 и 3) которые дают заключения об инвестициях, поэтому запрос будет унифицирован (объединен) с заключениями этих правил. Если для первоначального исследования вы- брать правило 1, то его предпосылка savings_account(inadequate) становится подце- лью, т.е. дочерней вершиной, которую необходимо достичь, Для получения дочерних узлов подцели savings jiccount(inadequate) применяется единственно возможное правило 5, которое порождает «-вершину. amount_saved(X)^dependents(Y}^greater(X,minsavings(Y}) Если доказывать составляющие этого выражения слева направо, то компонент amount jsaved(X) будет рассмотрен первым. Поскольку приведенные ранее правила не содержат этой подцели, система запрашивает пользователя о дополнительных данных. После чего к имеющемуся списку добавляется предикат amount_saved{20000) с уни- фицирующей заменой 20000 вместо X, и первая подцель становится истинной. По- скольку мы исследуем вершину и, в случае неудачи с первым компонентом нам не пона- добилось бы исследовать остальные две подцели. Аналогично подцель dependents(Y) ведет к запросу пользователя, затем ответ dependents(2) (иждивенцев 2) добавляется к логическому описанию, Подцель ставится в соответствие выражению путем подстановки (2/У}. Затем алгоритм поиска оценивает истинность выражения -^greater{X,minsavings{Y)}. Оценка этого выражения приводит к значению “ложь” и невыполнению подцели, определяемой всей вершиной и. Затем алгоритм поиска возвращается к родитель- ской вершине savings_account(inadequate) и пытается найти альтернативный ва- риант доказательства истинности этой вершины. Эта попытка приводит к генериро- ванию следующей дочерней вершины и продолжению поиска. Поскольку нет прави- прп с°леРЖащего .эту подцель, поиск завершается неудачей и возвращается к цели nnHROHH°t?H 0ВИЯ invesJment^- С этой целью унифицируются заключения правила 2, приводя к новым подцелям sav'ngs_account(adequate)Aincome(adequafe), Чечне правада40адп'согпе(а1Хеаиа!Г015а'/,П^5'аССОиП^аС^в(7РаГе^ истикн0 № MtU№ оставлены на расо„„рсн„с читателю аТс^” "pL™”'a 6' Дальнейшие детали поиска виде приведен на рис 3 24 “• а “«"ЗДУемыи граф И/ИЛИ в его окончательной сть II. Искусственный интеллект как представление и поиск
QT)7esfrne7r(X)~^ Ijnvestment(sawngj) (агпоипуа^ t saved(2000Q^ dependents^) Gmount_ ’’здесь алгоритм заходит в тупик и возвращается назад’”” [ mvestmentlstocks)] [ savings~account(adequate) (amount saved(X)] ( oapendenisin ] (grealer<X.™nsawngs(Y))~| [amount saved(20000)] [ ~dependents(2) [ income(adequate)') greater(X,minincorne(Y)) ^earn/ngs(X,steady)( dependents(Y) j fearnfngs(30000, steady) ( dspendenfs(2) ] Puc. 3.24. Поиск, осуществляемый системой финансового советника на графе И/ИЛИ ПРИМЕР 33.6. Синтаксический анализатор н генератор предложений Заключительный пример не относится к исчислению предикатов. Рассмотрим на- бор правил подстановки (rewrite rule) для синтаксического анализа предложений (парсинга) на подмножестве правил английской грамматики. Правила подстановки преобразуют исходное выражение путем замены набора символов в предложении. соответствующего некоторому шаблону, находящемуся по одну сторону стрелки («-♦), шаблоном из другой части правила. Например, можно определить набор правил подстановки для замены выражения на одном языке (например, английском) выра- жением на другом языке (например, французском или языке исчисления предика- тов). Приведенные здесь правила подстановки преобразуют подмножество англий- ских предложений в грамматические конструкции более высокого уровня, такие как Глава 3, Структуры и стратегии поиска а пространстве состояний 141
именная или глагольная конструкция и предложение. Эти правила Используютс синтаксического анализа последовательности слов в предложении, т.с. для Для ления правильности построения предложений и их грамматической коррекТн°Г1РС'Це' также для моделирования лингвистической структуры предложений. ТИ’ а Рассмотрим пять упрощенных правил английской грамматики. I. Предложение—это именная конструкция пр (noun phrase), за которой глагольная конструкция vp (verb phrase). СЛеДует sentence w np vp 2. Именная конструкция — это существительное (п). пр^п 3. Именная конструкция пр — эго артикль art. за которым следует существительное п. np^artn 4. Глагольная конструкция vp (verb phrase) — это глагол. vp<->v 5. Глагольная конструкция — это глагол, за которым следует именная конструкция. vpwnp Кроме этих правил грамматики, синтаксический анализатор использует словарь дан- ного языка. Эти слова называются терминалами (terminals). В правилах подстановки они определены как части речи. В нашем небольшом “словаре” имеются такие слова: a, the (артикли), таи (человек), dog (пес), likes (любит) и bites (кусает). Они являются терми- налами простой грамматики. 6. а — артикль. агГ<ча 7. the —артикль, artothe 8. Человек — существительное. пнтап 9. Собака — существительное, пе^с/од 10. Любить — глагол (verb), vo/ikes 11. Кусать — глагол. v<-> bites Приведенные выше правила подстановки определяют граф И/ИЛИ (рис. 3-2 )• Sentence (предложение)— корень графа. Элементам, стоящим в левой части правил подстановки, соответствуют и-аершивы этого графа. Несколько правил с одинаковым заключением формируют вершины или. Заметим, что листья, или узлы-терминалы, гра Фа эт0 грамматически правильные слова английского языка. Выражение считается правильно построенным, если оно состоит только из терминальны- символов. При этом для выражения существует ряд. подстановок которые путем примс,,еН,1Я правил вывода преобразуют его в символ sentence (предложение). И, наоборот, анализ Часть II. Искусственный интеллект как представление и поиск 142
можно рассматривать как постпоение ями являются слова рассматриваемого aL синтаксического анализа, у которого листь- триваемого выражения. а СНмвол sentence _ его корисм Рис. 3.25. Граф И/ИЛИ для простой грамматики из примера 3.3.6. Для упрощения графа некоторые вершины (пр. art и т.д.) дублируются Синтаксический анализ предложения "The dog bites the man" с помощью дерева граммати- ческого разбора приведен на рис. 3.26. Это дерево является поддеревом графа П/ПЛИ, пока- занного на рис. 3.25, н построено в процессе поиска. Алгоритм синтаксического анализа на основе данных осуществляет поиск путем сопоставления правых частей правил подстановки с элементами предложения и пробует найти одинаковые пары. Как только соответствие найде- но. часть выражения, соответствующая правой части правила, заменяется образцом из его ле- вой части. Это продолжается до тех пор. пока предложение не будет сведено к символу sentence (указывающему на успешное завершение синтаксического анализа), или пока не будут исчерпаны правила, которые можно применить к предложению (что указывает на не- удачу). Проследим путь синтаксического анализа предложения "The dog bites the пит". I. Правило 7 — это первое правило, которое можно применить, записывая the как art (артикль). Получаем предложение: art dog bites the man. 2. Правило 7 применяется на следующей итерации и получается art dog bues art man. 3. Применение правила 8 порождает предложение art dog bites art n. 4. Правило 3 выводит предложение art dog bites np. 5. Правило 9 порождает art n bites np. 6. В результате применения правила 3 получим лр bites пр. Т Правило 11 порождает пр v пр. 8. Правило 5 порождает np vp. 9. Правило 1 приводит это предложение к заключению sentence, подтверждая кор- ректность первоначального предложения. Глава 3. Структуры и стратегии поиска в пространстве состояний 143
Puc.3.26. Представление предложения “The dog bites the man" в виде дерева грамматиче- ского раздора. Заметим. что оно определяет поддерево графа, показанного на рис. 3.25 Рассмотренный пример осуществляет синтаксический анализ в глубину на основе данных, поскольку он всегда применяет к выражению правило наивысшего уровня. Например, выра- жение art л приводится к лр до того, как bites приводится к v. Синтаксический анализ также можно выполнить отте.ч поиска от цели. Тогда точкой отсчета является sentence, а в про- цессе поиска находится ряд подстановок, которые соответствуют левым частям правил. Ряд подстановок (если такой существует) приведет в конце концов к нужному предложению. Синтаксический анализ, или парсинг, важен не только для задач понимания естест- венного языка (глава 13). но также для построения трансляторов и интерпретаторов для машинных языков (Aho и Ullman, 1977]. В литературе можно найти много алгоритмов синтаксического анализа для всех классов языков. Например, существуют алгоритмы синтаксического анализа от цели, которые умеют заглядывать вперед, чтобы определить, какое правило из входного потока нужно применить следующим. В приведенном выше примере мы рассмотрели очень простой алгоритм поиска на графе Н/ИЛИ — неинформированным метод. Однако для этого примера можно реализо- вать очень интересную стратегию поиска. Метод хранения текущего выражения н упоря- доченное нахождение подходящих правил— примеры использования продукционной системы для осуществления поиска и основная тема главы 5. Правила подстановки также используются для генерирования допустимых предложе- ний согласно правилам грамматики. Предложения могут быть сгенерированы путем по- иска от цели верхнего уровня sentence. Этот поиск заканчивается, если больше нет пра- вил. которое можно было бы применить. Поиск приводит к цепочке терминальных си*' волов, которая является допустимым предложением в данной грамматике. Например. sentence — это пр. за которым следует vp (правило 1). Заменяя пр на п (правило 2), получаем п vp. та™ОМа та" ~ °Ч”°Г° иаченш ” множества „ (прайио S) - приводит к Теперь для пр поиск успешен. и расс.чатривае1СЯ ур. п 3 эамсняет нд думаем man v. Правило 10 заменяет v на likes. man likes найдено как первое допустимое предложение. Если необходимо получить все допустимые предложения, этот поиск можно система- тично повторять, пока не будут испытаны все варианты, т.е. пока не будет исследовано все пространство состояний. Затем можно генерировать предложения “a man likes”, "the man likes и т.д. Всего при исчерпывающем поиске (полном переборе) можно по- строить 84 корректных предложения. Они включают такие семантические аномалии, как "the man bites the dog” (человек кусает собаку). Синтаксический анализ и генерирование предложений могут использоваться при ре- шении различных задач Например, если нужно найти все предложения, завершающие фразу “the man”, решателю можно представить незаконченный ряд “the man...”. Поиск на основе данных можно направить вверх и вывести завершающее предложение sentence (правило 1). Затем пр заменяется the man, и поиск от цели определяет все возможные Vp, которые завершают предложение. Этот алгоритм поиска позволяет по- строить предложения типа “the man likes”, “the man bites the man” (человек кусает человека) и т.д. В этих примерах мы имеем дело только с синтаксической корректно- стью. Проблема семантики — это иная задача. В главе 2 исследована проблема построе- ния семантики выражений формальной логики и выражений естественного языка. Эта проблема значительно сложнее, она будет обсуждаться в главе 13- Последний пример иллюстрирует чрезвычайную гибкость исследования пространства состояний. В следующей главе мы обсудим использование эвристик для фокусировки поиска на минимальной области пространства состояний. В главе 5 рассмотрим продук- ционные системы и другие формализмы управления методами поиска, а также иные приемы поиска и языки представления. 3. 4. Резюме и дополнительная литература Глава 3 познакомила читателя с теоретическими основами поиска в пространстве со- стояний. При этом для анализа структуры и сложности стратегий поиска при ретенмн задач использовалась теория графов. Рассматривая основы теории графов, мы показали пути ее применения для решения задач на основе поиска на графе пространства состоя- нии. Кроме того, в этой гладе приводится сравнение поиска на основе данных и от цели, поиска в глубину и в ширину’. Графы И/ИЛИ позволяют осуществлять поиск в пространстве состояний, реализуя логические рассуждения. Стратегии поиска, опиеадные в главе 3. были проялжюстрвро- ваны рядом примеров, в том числе на примере системы фнваисоаого сове пика, пред ‘Ставленного в главе 2. Основные прим» питы поиск? на графах обсуждаются в учебшках по теерш алгоритмов, в гам числе в fConnen. Lesenon. Rivest. 1990]. [Hefcoao в Veroff;i986J. fSerigewidc 1983]. -'*'”»»»--—... >»» । » пят 12 и реализованы в главах, оосвяшеншах являм № * ~ Рассмотрены в [Newell н Глава 3 Структуры и стратегии поиска е пространстве состоял* 145 144
, McDermott. 1985). В IPeari. W84J представлены адгори^,., (Winston. 19921 » [Charmak lip„BMeHHoro в главе 4. Развитие новых приемов поиска и заложены ,,от‘ “ „ широко обсуждаемая тема на ежегодных конф... поиска на графах — ото гр“ ренциях по ИИ. 3. 5. Упражнения______________-------------------------------_______ I Гамильтонов путь - это путь, проходящий через каждую вершину графа только ' один раз. Какие условия необходимы для существования такого пути? Существует ли такой путь на карте Кенигсберга ? 2 Представьте в виде графа задачу переправы человека, волка, козы и капусты из раз- дела 14.3 (см. рис. 14.1 и 14.2). Пусть узлы представляют расположение объектов в пространстве. Например, человек и коза находятся на западном берегу реки. а волк и капуста — на восточном. Приведите преимущества стратегий поиска в ширину и в глубину для этого пространства. 3. Приведите пример задачи о коммивояжере, в которой стратегия ближайшего соседа при нахождении оптимального пути приводит к неудаче. Предложите другую эври- стику для этой задачи. 4. Пройдите “вручную’’ алгоритм с возвратами для графа, показанного на рис. 3.27. Начните с состояния А. Проследите значения списков NSL, SL, CS по пути к решению. 5. Реализуйте алгоритм поиска с возвратами на языке программирования по вашему выбору. 6. Определите, какой алгоритм поиска (от цели или на основе данных) предпочтитель- нее для решения каждой из следующих задач. Обоснуйте ваш ответ. 6.1 • Диагностика неисправностей автомобиля. 6.2. Вы встретили даму, которая утверждает, что она ваша дальняя родственница м у вас есть общий предок по имени адмирал Ушаков. Вы хотели бы проверить ее заявление. 6.3. Один человек утверждает, что он приходится вам дальним родственником. Он не знает имени вашего общего предка, но знает, что это было не более восьми поколе ний назад. Вы хотели бы найти этого предка иля доказать, что его не существовало. 6.4. Программа автоматического доказательства теорем для планиметрии. 6.5. Программа интерпретации звуковых сигналов, отличающая звуки больше» л<М водной лодки от маленькой субмарины, кита от стаи рыб. 6.6. Экспертная система, которая поможет человеку классифицировать растения по виду, роду и Т.д, 8 Запишите |б°Р П°ИСКа В ШИРИКУ или в глубину для примеров из упражнения 6- ;'3™---0Р.™е0оИратами;и1яп;афаШИЛИ основе данных °Р°ше» собаке из примера 3.3.4 с помощью стратегии поиска на мент пространстаГпоисРкаМеР ^а1”1 П0”ска На графе ШИЛИ и сформируйте ФР^' ь II. Искусственный интеллект как представление и пои
ц. Проследите траекторию выполнения алгоритма на основе данных для системы •‘финансового советника , описанной в примере 3.3.5. для клиента с четырьмя ижди- венцами, имеющего $18000 на счет/ в банке и устойчивый доход $25000 в год. Ос- новываясь на сравнении этой задачи с примером в тексте главы, предложите нан- лучшую стратегию для решения задачи в общем виде. 12 . Добавьте К правилам английской грамматики, описанным в примере 3.3.6, правила для прилагательных и наречий. 13 Добавьте к описанию английской грамматики из примера 3.3.6 правила для фраз с предлогами. 14 Добавьте правила составления сложноподчиненных предложений вила sentence sentence и sentence. Г лава з. Структуры и стратегии поиска в пространстве сос

Эвристический поиск Проблема. с которой сталкивается символьная система при решении поставлен- ной задачи. заключается в том. чтобы, используя ограниченные ресурсы обработки наити решение, удовлетворяющее определенному условию. Если бы символьная сис- тема могла управлять порядком генерации потенциальных решений, то следовало бы добиться того, чтобы нужные решения появлялись как можно раньше. Символьной системе необходимо проявлять интеллект для успешного решения этой проблем' • Интеллект для системы с ограниченными ресурсами обработки — это пою разумной последовательности действий.. — Ньюэлл и Саймон, лекция по случаю вручения премии Тьюринга, 1976 Я аккуратный Аккуратный... О. ди Аккуратный во всех отношениях... — Либер и Столлер (Lieber и Stoller) 4.0. Введение В [Polya, 1945] эвристика определяется как "изучение методов и правил открытий и изобретений’'. Это слово имеет греческий корень, глагол eurisco означает исследовать Когда Архимед выскочил из ванны, держа золотой веиец, он закричал Эврика! . что значит “Я нашел!”. В пространстве состояний поиска эвристика определяется как набор правил для выбора тех ветвей из пространства состояний, которые с наибольшей вероят- ностью приведут к приемлемому решению проблемы. Специалисты по искусственному интеллекту7 используют эвристику в двух ситуациях. 1. Проблема может ие иметь точного решения из-за неопределенности в поста новке задачи и/или в исходных данных. Медицинская диагностик- пример такой проблемы Определенный набор признаков может иметь несколько при- акои проолемы. сзирсд .„„„стику чтобы поставить наиоолее точный чин; поэтому врачи используют звристн у. лечен11)1 Система технического диагноз и подобрать соответствующиеВнзуальныс сцены час- зрения-другой пример задачи нео Р сммнные друг с другом) то неоднозначны, вызывают разди и ентац„„ объектов. Оптнче- предположення относительно протя тсмысденностей. Системы тех- скни обман — хорошая иллюстрация
, часто используют эвристику для выбора наиболее вероя нического зрени мьИ1Х возможных. „ятероретаиии е рсшснис, но стоимость сто поиска может бы 2. проблема может имел (на11р11МСр, „гра в шахматы) рост прос™? слишком высокой, во . нмит эксп0НеНц1|аль„ыи характер. Дру,„ми ' еда возможных сое зкспоненииш1ьно с увеличением глубины „„ ЧИСЛО возможных поиска решен11я ; тб типа поиска в глубину „,1И . „ска. в этих муча* много времени. Эвристика позволяет избежать этой ширину могут зав на1,более "перспективному" пути, исключи из рас сложности и ™* ные состояния и их потомки. Эвристические алГОрИТМы СМОТР tax правило. на это надеются проектировщики) остановить этот комбина- ций Р»« » найт" "Р"емлемОе PCUKMHC- к вялению подобно всем правилам открытия и изобретения, эвристика может й я Эвристика - это только предложение следующего шага, который будет сде. «пути решения проблемы. Такие предположения часто основываются на опыте нл„ „юуиции Поскольку эвристика использует такую ограниченную информацию, как опи- са„„е текущих состояний в списке open, то она редко способна предсказать дальнейшее поведение пространства состояний. Эвристика может привести алгоритм поиска к субоп- тнмальному решению или не найти решение вообще. Это ограничение присуще эвристи- ческому поиску и не может быть устранено “лучшей” эвристикой или более эффектив- ным алгоритмом поиска [Garey и Johnson, 1979]. Эвристика и разработка алгоритмов для эвристического поиска в течение доста- точно долгого времени остаются основным объектом исследования в проблемах ис- кусственного интеллекта. Игра и доказательство теорем — два самых старых при- ложения в области искусственного интеллекта; оба они нуждаются в эвристике для сокращения числа состояний в пространстве поиска. Невозможно рассмотреть каж- дый вывод, который может быть сделан в той или иной области математики, или каждый возможный ход на шахматной доске. Эвристический поиск — часто единст- венный практический метод решения таких проблем. Исследование в области экспертных систем подтвердило важность эвристики как ос- новного компонента при решении задач. Эксперт-человек, решая проблему, анализирует доступную информацию н делает вывод. Интуитивные правила (“rules of thumb"), кото- рые использует эксперт, чтобы эффективно решить ту или иную проблему, в значитель- пячпяпеПеНИ эвристичнь1 по природе. Такие эвристики были созданы и формализованы разработчиками экспертных систем. ма, кетоп1л'Г,ст?,.аЛ1(1111ИМЬ1 состоят Двух частей: эвристической меры и загорю мы рассмотрим о4" К П0иска в пространстве состояний. В подразделе4.1-_ “жадный” алгоритмТь i г эврис™чесК11х алгоритмов поиска — так называемый саны В Конце этой главы Рааработка эвристик и оценка их эффективности он Ребор ЦХЦ“)ТэтпйТС™И’'"°ЛИКИ"(рис-IL5' Исчерпывающий поиск (полный «- :г.у»-устВ„хх^~: но возможен. На каждый из девяти пеРв ™ть семью различными аарю’2"“ °™"0В' На Которые' » СВ01° очереДЬ' Т’^сл» возможных состояний кптп МИ Н Т Д‘ пР0СТой анализ позволяет найти обше 9x8x7k..., иди 91. ’ рЫе следует рассмотреть в исчерпывающем попе . 150 ь " Искусственный интеллект как представление и
Рис. 4.1. Первые три уровня пространство состояний в игре крестики-нолики", редуциро- ванные о учетом симметрии Учитывая симметрию задачи, можно уменьшить пространство поиска. Проблема множества возможных конфигураций в действительности сводится к поиску возможных симметричных конфигураций игровой доски. Таким образом, существует не девять, а только три возможных первых хода — в угол, на верхнюю центральную клетку и в центр решетки. Редукции на втором уровне и далее сокращают размерность пространства до 12x7!. как показано на рис. 4.1. Симметрия игрового пространства, подобная рассмот- ренной выше, может быть описана как математический инвариант, и если она существу- ет в задаче, то может быть успешно использована для значительного уменьшения про- странства состояний. Простая эвристика может свести на нет необходимость поиска: мы можем делать такие ходы на доске, в которых крестики имеют наибольшее количество выигрышных линий. (Первые три состояния игры “крестики-нолики ’ просчитаны имен- но таким образом, рис. 4.2.) Если число потенциальных побед равно, берется первое из таких состояний. Затем алгоритм выбирает состояние с наивысшим эвристическим зна- чением. Для хода X берем центральную клетку. Заметим, что при этом отбрасываются не только остальные возможные ходы, но и их потомки. Отсюда следует, что после первого хода размерность пространства состояний уменьшается на 2/3 (рис. 4.3). Оппонент после первого хода может выбрать один из двух возможных ответных хо- Аов (как показано на рис 4.3). Что бы ни выбрал оппонент, к результирующему состоя- Игры может быть применена эвристика. Эвристика использования наибольшего числа выигрышных линий" выбирает среда возможных ходов наилучшии. При продол- жении поиска каждый новый ход устраняет необходимость обработки потомков отбро- шениых узлов, таким образом, полный перебор не требуется. На рис. -Т.< продемонстри- рован редукционный поиск на первых трех шагах игры. Каждое состояние игры ттожче- чо соответствующим ему эвристическим значением. Глава 4. Эвристический поиск 151
i ' । Четыре r»TeHU','ar,b" выигрыш продавшие центральную ететку две потенциально выигрышные линии, проходящие через среднюю клетку в верхнем ряду ..„□„6оМш«о-"“а,вы"г/,ЫШ,,“ сЛСдуюш.ем разделе (разделе 4.1) представлен алгоритм эвристического поиска и онстрнрованы сго характеристики с использованием различных эвристик для иг- гфод ..пя1наШки” над 8 числами (назовем ее 8-головоломка). В разделе 4.2 мы обсудим Ры В теоретическис понятия, относящиеся к эвристическому поиску, как допустимость 10X116 тонкость. В разделс 4-3 рассматривается использование минимаксного подхода и *,0&° бета-УСечения Для эвристик в играх со многими участниками. В заключительном (1ЛЬ ле проверяется общность эвристического поиска и еще раз обосновывается сто су- Ревенная роль в решении задач искусственного интеллекта. 4 ! Алгоритм эвристического поиска Три потенциально выигрышные линии, прохоаяшие через угловую клетку Рис. 4.2. Применение звристики — линий " к первым потомкам в игре “крестики-нолики' Рис. 4.3. Эвристическая редукция пространства состояний в 1 Р “крестики-нолики'' „ Хотя точное количество возможных состояний в игре вычислить труДи мдксн* предел этого количества состояний может быть вычислен, если допустить. й0Сти мальное число ходов в игре — 9, и каждый ход имеет по 8 потомков. В денс ходОМ число состояний будет гораздо меньше, так как доска заполняется, иск всеХ *о- число возможных ответов уменьшается. Более того, оппонент делает половину дов. Несмотря на это, грубый верхний предел — 9x8, или 72 состояния, что на меньше величины 9’. — - _ р о и с к Часть II. Искусственный интеллект как првДс‘гавЛвК 4.1.1. “Жадный” алгоритм поиска Наиболее простой путь эвристического поиска- это применение процедуры тска экстремума (hill climbing). Стратегии, основанные иа поиске экстремума, оценивают нс только текущее состояние поиска, но и его потомков. Для дальнейшего поиска выбирается наилучший потомок; при этом о его братьях и родителях просто забывают. Поиск прекра- щается, когда достигается состояние, которое лучше чем любой из его наследников. Поиск экстремума — название стратегии, которая может быть использована энергичным, но сле- пым альпинистом, поднимающимся вдоль наиболее крутого склона до тех пор. пока он не сможет идти дальше. Так как в этой стратегии данные о предыдущих состояниях не сохра- няются, то алгоритм не может быть восстановлен из точки, которая привела к “неудаче". Основная проблема стратегий поиска экстремума — это их тенденция останавливать- ся в локальном максимуме. Другими словами, как только они достигают состояния, имеющего лучшую оценку, чем его потомки, алгоритм завершается. Если это состояние является не решением задачи, а только локальным максимумом, то такой алгоритм не- приемлем для данной задачи. Это значит, что решение может быть оптимальным на ог- раниченном множестве, но из-за формы всего пространства, возможно, никогда не будет выбрано наилучшее решение. Пример такого локального экстремума появляется в игре в “пятнашки”. Часто для того, чтобы передвинуть фишку в нужную позицию, необходимо сдвинуть фишку, находящуюся в иаилучшей позиции. Без этого невозможно решить го- ловоломку, но в то же время иа данном этапе это ухудшает состояние системы. Дело в ТОМ, что “лучший” не означает “идеальный”. Методы поиска без механизмов возврата или других приемов восстановления не могут отличить локальный максимум от глобаль- ного. Существуют методы приближенного решения этой проблемы, например, случайное возмущение оценки. Однако гарантированно решать задачи с использованием техники поиска экстремума нельзя. Вариант алгоритма поиска экстремума предлагается в тесто- вой программе, описанной в подразделе 4.3.2. Несмотря на эти ограничения, алгоритм поиска экстремума может быть достаточно эф- фективным, если оценивающая функция позволяет избежать локального максимума и за- цикливания алгоритма. В общем. одаако. эвристический поиск требует более гиокого ме- «да. предусмотренного в -Чадном” алгоритме поиска, гае при использовании приоритет- «ой очереди возможно восстановление алгоритма из точки локального максимума. Подобно алгоритмам поиска а глубину » алгоритмам поиска а ширину, оранным в г«»е 3, -жадный., алгоритм поиска используст списки сохраненных « °Реп отслеживает текущее состояние поиска, а в closed записываются уже проверен- ~ 153 Глава 4. Эвристический поиск 152
питм записывает в список open состояние с учетом ные состояния. На каждом итоге к цели". Таким образом, на каждой иго- “которой эвристической оиен „ные состояния из списка open. Псевдокод 7^^ ..^мпоискаприведенниже, function best_iirst.search. %оставшиеся состояния состояние X из списка open; от Start к X X; do списке open или closed: %case %список OPEN пуст begin open := [scare]; %ининиализания closed := ( 1 while open # t ) d0 begin удалить первое if x=goal, return путь else begin сгенерировать потомок for каждого потомка X case потомок не содержится в Двоить потомку эвристическое значение; добавить потомок в список open end; потомок уже содержится в списке open: if потомок был достигнут по кратчайшему пути then записать это состояние в список open потомок уже содержится в списке closed: if потомок был достигнут по кратчайшему пути then begin удалить состояние из списка closed; добавить потомок в список open end; end; поместить X в список closed; переупорядочить состояния в списке open в соответствии с эвристикой (лучшие слева) end; return FAIL end. На каждой итерации функция best_first_search удаляет первый элемент из списка open. Достигнув цели, алгоритм возвращает путь, который ведет к решению. За- метим. что каждое состояние сохраняет информацию о предшествующем состоянии, чтобы впоследствии восстановить его и позволить алгоритму найти кратчайший путь к решению (см. подраздел 3.2.3.). Если первый элемент в списке open не является решением, то алгоритм использует про- лекционные правит проверки соответствия и операции, чтобы сгенерировать все возможные .тки данного элемента. Если потомок уже находится в списке open или closed, то ал Р1эт.Вм'втРаС'Г 113 лнук возможных путей достижения этого состояния. списке ” КШ'Я est-f irst-search вычисляет эвристическую оценку состоянии в “₽ТИ₽Ует СПИС0К 8 с этими эвристическим значениям. Пр» лучшие состояния ставятся в начало списка. Заметим, что из-за эвристической 154 Часть II. Искусственный интеллект как представление и поиск
„р„роди оценивания следующее состояние должно проверяться „а г дранства состоянии. Отсортированный список опеп юб°м "₽»- ^ередыо (priority queue). с,° называют приоритетной S Рис. 4.4. Эвристический поиск в гипотетическом пространстве состояний На рис, 4.4 показано гипотетическое пространство с эвристическими оценками некото- рых из его состояний. Состояния, рядом с которыми стоит их эвристическая оценка, были сгенерированы функцией best_first_search. Состояния, по которым велся эвристи- ческий поиск, отмечены полужирном шрифтом: заметьте, что поиск не ведется по всему пространству. Другими словами, цель “жадного” алгоритма поиска состоит в том, чтобы прийти к целевому состоянию кратчайшим путем. Чем более обоснованной является эври- стика (см. подраздел 4.2.3), тем меньше состояний нужно проверить при поиске цели. Путь, по которому функция best_f irsC__search находит целевое состояние, по- казан на рисунке жирными стрелками. Предположим, что Р— целевое состояние (см. рис. 4.4). Поскольку Р — цель, состояния из пути к Р имеют низкие эвристические зна- чения. Эвристика подвержена ошибкам: состояние О имеет более низкое эвристическое значение, чем целевое, и поэтому было исследовано ранее. В отличие от поиска экстре- мума. который не сохраняет приоритетную очередь для отбора следующих состоянии, данный алгоритм восстанавливается после ошибки и находит целевое состояние. 1. орел = [Д-5]; closed = []. 2. Вычисляем А-5;орел = [8-4, С-4, D-6]'.closed= [Д-5]. 3. Вычисляем 8-4; орел = [С-4 £-5, £-5, D-6];c/osed = [8-4, 4-5]. 4- Вычисляем С-4; орел = [Н-3, G-4, Е-5. £-5, Р'6); closed = [С-4. 8-4, Д-5]. 5. Вычисляем Н-3; орел = [0-2, Р-3. G-4, £-5, £-5, С-6], closed = [Н-3, С-4, 8-4, Д-5]• 6. Вычисляем 0-2; орел = [Р-3, G-4, £-5, F-5, 0-6], closed = [0-2, Н-3, С-4. 8-4, Д-5]. 2- Вычисляем Р-3, решение найдено'. 155 Глава 4. Эвристический поиск
- А-5 Состояния из списка open Состояния из списка closed Рис. 4.5. Эвристический поиск в гипотетическом про- странстве состояний. Состояния из списков open и closed выделены На рис. 4.5 показано пространство после пятой итерации цикла while. Здесь показа- ны состояния, содержащиеся в списках open н closed. В open сохраняется текущая граница поиска, а в closed— уже рассмотренные состояния. Заметьте, что граница по- иска очень искривлена, отражая тем самым приспособленческую природу “жадного" ал- горитма поиска. ‘'Жадный" алгоритм поиска всегда выбирает наиболее перспективное состояние в open для продолжения. Однако, поскольку при выборе состояния используется эври- стика, которая может оказаться ошибочной, алгоритм не отказывается от остальных состояний, и сохраняет их в списке open. В данном случае эвристика обеспечивает поиск вниз; этот путь оказывается ошибочным, но алгоритм в итоге возвращается к некоторому ранее сгенерированному “лучшему’’ состоянию в open и затем продолжа- ет поиск в другой части пространства. В примере на рнс. 4.4 после нахождения потом- ков состояния В казалось, что они имеют плохие эвристические оценки, н поэтому по- иск сместился к состоянию С. При этом потомки состояния В были сохранены в орет1 на случаи, если алгоритму необходимо будет вернуться к ним позже. В функции best_f irst_search, как и в алгоритмах нз главы3, список open позволяет воз- вращаться назад по ошибочному пути. 4.1.2. Функции эвристической оценки состояний Рассмотрим эффективность нескольких различных эвристик для решения 8-головоломки. На рис. 4.6 показано начальное и целевое состояние для 8-головоломкИ вместе с первыми тремя возможными состояниями, сгенерированными в процессе поиска. Самая простая эвристика подсчитывает количество фишек, находящихся не на свои* местах, в каждом состоянии, сравнивая его с целевым состоянием. Часть 1). Искусственный интеллект как представление и поиск
Целевое состояние Рис. 4.6. Начальное состояние, набор возможных пер- вых ходов и целевое состояние в игре "8-головоломка " Состояние с меньшим числом фишек, находящихся не на своих местах, расположено ближе к целевому состоянию, н поэтому будет рассмотрено первым. Однако эта эвристика не использует всю имеющуюся информацию, потому что она не принимает во внимание расстояние, на которое фишки должны быть перемещены. “Лучшая” эвристика суммировала бы все расстояния между фишкой. находящейся не на своем месте, н полем, в которое она должна быть перемещена для достижения целевого состояния. Обе эти эвристики можно критиковать за то, что они не учитывают трудности при перестановке фишек. Другими словами, если для достижения целевого состояния необ- ходимо переставить две рядом стоящие фишки, то это потребует более двух ходов, так как для такой перестановки фишки должны “обойти ’ друг друга (рис. 4,7). Целевое состояние Рис. 4.1. Целевое состояние и состояние с двумя перестановками: 1 и 2.5 и 6 Эвриегнкъ, принимающая во внимание этот факт, для каждой ннверсни (когда для Достижения целевого состояния необходимо поменять местами две рядом стоящие фнш- у Должна умножать эвристическое значение на малое число (например 2). На рис. 4.8 Глава 4. Эвристический поиск
,ме„еИИя каждой ю этих 1Р« •>»Р"С’ПК к Пэ™ потомкам, нзобра. жснным на рис. 4.6. „„„мснення оценивающих функций. Эвристика “суммы рас. На р№. 4.8 показан результл н оцснку ,,см простои 110дсчст ЧИ(, стояний", кажется, дейстапет. Эвристика перестановки фишек не может кайл, ла фишек, находящихся нен из них оценку, равную нулю. Эвристика различий между этими * „ШС1)1|Ю. так как ни одно из этих состояний не содержит “суммы состояний" не 1Ч”|В?®Р)Й варишт эвристики, преодолевающий ограничения, на- ни одной прямой инверсии. фишек". — сложить расстояния между фишками, клааываемыс на эвристику I „,..,теь1е должш.| быть взаимно переставлены. УДХВРапп™ме’ХСХиРУ". насколькО 11,УЛ1,° НаИТ” Х0Р°ШУЮ ЭВРИСТ‘'КУ' Наша циь то чтобы имользуя ограниченную информацию, содержащуюся в описании отдельного состояния, все же сделать правильный выбор. Каждая из эвристик, предло- женны" выше, игнорирует некоторые критические элемента, информации, и поэтому может быть улучшена. Разработка хорошей эвристики — это эмпирическая проблема, в решении которой помотают рассуждения и интуиция. Но все же решающий критерий оценки эвристики - это ее эффективность при решении практических задач. Поскольку эвристика может быть ошибочной, существует вероятность, что алгоритм поиска может пойти по ложному пути. Эта проблема возникала при поиске в глубину, где подсчет глубины использовался для того, чтобы определить ложные пути. Эта идея может быть также применена в эвристическом поиске. Если два состояния имеют одинаковые или почти одинаковые эвристические значения, то предпочтительнее исследовать состояние, которое расположено ближе к корневому состоянию графа. Это состояние с большей веро- ятностью расположено на пути к цели. Расстояние от начального состояния к его потомкам может быть измерено путем вычисления уровня глубины для каждого состояния. Для фишек. фишек находящихся не на своих местах Три возможных варианта эвристики в 8-головоломке ть II. Искусственный интеллект как представление и поиск
Дм начального состояния это значение равно 0 и увеличивается на 1 для каждою уровня поиска. Это позволяет записать фактическое число шагов, необходимых для дос- тижения в процессе поиска из стартового состояния любого из его потомков. Это значе- ние может быть добавлено к эвристической оценке каждого состояния для того, чтобы сместить поиск к наиболее подходящим состояниям. Таким образом, оценивающая функция f состоит из двух компонентов: Т(л) = д{л) + И(л), где 9(л) фактическая длина пути от произвольного состояния п к начальному, а h( л) — эвристическая оценка расстояния от состояния л к цели. Например, в 8-головоломкс значением h(n) можно считать число фишек, находя- щихся не на своих местах. Если рассмотреть состояния, изображенные на рис. 4.6, то значения f для каждого из них будут равны 6. 4 и 6 соответственно (рис. 4.9). На рис. 4.10 показано значение f для каждого состояния графа “жадного" алго- ритма поиска для 8-головоломки. Рядом с каждым состоянием указан его эвристиче- ский вес f(л) = д(л) + h(л). Номер в верхней части состояния указывает порядок, в котором это состояние было взято из списка open. Некоторые состояния (/?, д, b, d, л, к и 0 не пронумерованы, так как они оставались в списке open на мо- мент завершения алгоритма. д(п) - 0 g(n) = 1 Значение Г(л) для каждого состояния, 6 где Нл) = д(л)*Л(л), д(л) = реальное расстояние от/? до начального состояния. h(n) = число фишек, находящихся не на своих местах Целевое состояние Рис. 4.9. Эвристика f дм состояний в игре "З-жовоюмка “ Глава 4 Эвристический поиск 159
„ г-1 osed. которые генерируют этот граф, приведено ниже Содержание списков open и ст 1.open = (a41,etoK^ = [). 2,орвп = (с4,М,«6);с^ = [»4Ь S open = 1/5. к7' '7,; C'°Sedd = *5 *’,5] 6 Open = (/5,66.b6,d6,g6.*7, ПУ. closed = 1а4. с4, е5, 75J5], Г open = [m5. 66. №. 06, 96, n7, K7. >7); closed = [a4, c4, e5, 15. j5.15]. S. Найдено решение m = цель!. На 3 шаге состояния е и f имеют эвристическое значение, равное 5. Состояние е бы- яо поовереко первым, его потомками являются h и I. Хотя h является потомком е, для него число фишек, расположенных не на своих местах, соответствует состоянию Г; при этом данное состояние находится на один уровень ниже в пространстве состояний. Мера глубины. д(п). заставляет алгоритм выбирать t в качестве оценки на шаге 4. Поэтому ал- горитм возвращается к состоянию f, находящемуся на один уровень выше, и затем про- должает двигаться к цели по другой ветке. Граф пространства состояний на этой стадии поиска показан на рис. 4.11. Здесь закрашены области, в которых находятся состояния из списков open и closed. Обратите внимание на приспособленческую природу поиска до первого наилучщего совпадения. В действительности компонент g (п) функции оценки придает нашему поиску свой- ства поиска в ширину. Он предотвращает возможность заблуждения из-за ошибочной оценки-, если эвристика непрерывно возвращает “хорошие” оценки для состоянии на пу- ти. не ведущем к цели, то значение g будет расти и доминировать над h, возвращая про- цедуру поиска к кратчайшему пути. Это избавляет алгоритм от зацикливания. В разде- ле 4.2 рассмотрены условия, при которых “жадный” алгоритм поиска с использованием функции оценки гарантирует выбор кратчайшего пути к цели. Подведем итог. I. Операции над состояниями позволяют генерировать потомков текущего состояния. _. Каждое новое состояние проверяется на предмет того, встречалось ли оно раньше (т.е. находится ли оно в списках open илн closed). Таким образом предотвра- щаются циклы. 3. Каждому состоянию л соответствует значение f, равное сумме его глубины в про- Пп,СКа и некотоР°й эвристической оценки расстояния от него до пепсп^ктиои ругимн словам11’ h ведет алгоритм поиска к эвристически наиболее упопногпсПЬ1М СОСТОЯН$1ЯМ' в 10 время как значение g удерживает алгоритм от упорного следования по неверному пути. состояния в ernw^ °реп ^Р^ФУЮтся в соответствии со значениями ( Сохраняя все 5 ЭйнЬ КС °РеП‘ алгоРи™ сможет уберечь себя от неудачного завершения. open и с1ойебТв°Р1,™а Может ^ыть увеличена за счет представления списков “Жадный Р) ИЛИ Лев0СП,0Р°^0 <leflist trees)- любом графе простпанстия алгоритм для эвристического поиска »‘а рассмотренные ранее) ст°яний (как и алгоритмы поиска в ширину или в глуб,,нУ' Тбо --------—______________ . ___________________________—•— тьП, Искусственный интеллект как представление и поиск
Уровень поиска 9(п)« Состояние л Ял) = 7 д(п)°4 Целевое состояние Рис. 4.1Q. Пространство состояний, сгенерированное при эвристическом поиске на графе игры в "пятнашки " Этот алгоритм, в одинаковой степени применимый к поиску данных л поиску решения за- да*ш. поддерживает различные функции оценки. Далее мы продолжим рассматривать поведе- ние эвристического алгоритма поиска на других примерах (раздал 4.2). Благодаря своей уни- версальности "жадный" алгоритм поиска может использоваться с различными эвристиками, начиная от субъективных оценок ••хороших" состояний к заканчивая сложными критериями оценки состояний. ведущих к цели, на основе вероятностного подхода. Глава 4. Эвристический поиск
байесовские (Bayesian) статистические „ этого подхода я«л»'»гея Важным примером этого критерии (глава 7). Целевое состояние Рис. 4.H. Вид списков open u closed после третьей итерации эвристического поиска Список open Другой интересный подход к реализации эвристики — использовать меру доверия в экспертных системах для анализа результатов того или иного правила. Человек-эксперт- используя эвристику, обычно способен дать квалифицированную оценку степени дов>- рия своим выводам. Экспертные системы используют меры доверия (confidence measure для выбора тех результатов, которые имеют наивысшую вероятность успеха. СостоянИ 162 Часть II. Искусственный интеллект как представление и пои
с наиболее низкой мерой доверия могут быть полностью исключены из рассмотрения. Этот подход к эвристическому поиску будет рассмотрен в следующем разделе. 4.1.3. Эвристический поиск и экспертные системы Простые игры типа “пятнашек” по ряду причин являются идеальными примерами для исследования поведения алгоритмов эвристического поиска. 1. Области поиска достаючно обширны, чтобы использовать эвристические упрощения. 2. Большинство игр достаточно сложны н допускают большое разнообразие эвристи- ческих оценок для сравнения и анализа. 3. Игры, как правило, описываются достаточно просто. Описание пространства со- стояний шровой доски может быть сделано явно. Это позволяет исследователям сосредоточиться на поведении эвристики, а не на проблеме описания задачи. 4. Поскольку каждый элемент пространства состояний имеет одно представление (описание доски), одна эвристика может применяться во всей области поиска. Это отличает алгоритмы эвристического поиска от систем типа финансового советни- ка, где каждый элемент представляет собой подцель с собственным явным пред- ставлением. Более реалистические проблемы затрудняют выполнение и анализ эвристического поиска, требуя сложной эвристики, которая имеет дело с различными ситуациями в про- странстве состояний. Однако результаты, полученные в простых играх, могут быть ис- пользованы при решении проблем, возникающих в экспертных системах, планировании, интеллектуальном управлении и машинном обучении. В отличие от игры в “пятнашки”, в этих системах к каждому состоянию не может быть применена одна и та же эвристика. Эвристики, решающие специфические задачи, “зашиваются” в синтаксис и семантику соответствующих операторов решения данной задачи. На каждом шаге решения опреде- ляется, какую эвристику следует использовать. Операция (эвристика), которая должна быть применена к тому или иному состоянию в пространстве, определяется в процессе проверки соответствия шаблону. Пример 4.1.1. Модификация системы финансового советника Эвристические критерии поиска традиционно используются при решении задач ИИ. Вернемся к задаче разработки финансового советника, рассмотренноп в главах 2 и 3. где база знаний представляет собой набор логических заключении, принимающих значения “истина” или “ложь”. В действительности эти правила эвристичны по своей природе. Например, одно из правил гласит, что человеку с достаточными сбережениями и дохо- дом следует вложить свой капитал в акции: savings_account(adequate) л income(adequate) => investment(stocks). На самом деле такой человек предпочтет более безопасную комбинированную стра- тегию или вообще нс будет трогать свои сбережения. Таким образом, данное правило эвристично, и при решении проблемы необходимо попытаться учесть эту неопределен- ность. Можно принимать во внимание дополнительные факторы, такие как возраст инве- стора, его карьеру и другие вопросы. Однако все это существенно не влияет на эвристи- ческую природу финансового совета. Глава 4. Эвристический поиск 163
- ппоблсмы в экспертных системах состоит в том, что- Один из путей решен"» данн°" весовой коэффициент (называемый мерой дове бы с каждый правилом вывод №ретостп (ceriamty factor)). Это дает возмо». рея (confidence measure) пли ф 'ому такому выводу. ность измерить степень довср Ядоюр11Я представляющей собой вещественное Каждое заключение связ (пстпна) соответствует полному доверию, а -1 число из интервала [-1; U P1 отрезка соответствуют степени доверия выводу. На- (ложь) - недоверию. Значен t оценку од 01ражая, таюш образом, малую пример, приведенному выш 1 э заключениям можно присвоить другие веса, вероятность того, что от не верно, ио savings accountiadequate} л incomeiadequate} jnveslment(stocks) with Pon,'d^nmCee.;d°Q8uate) savings account(adequate) л mcomejadeqoate) a invesiment(combmation) with conftdence.°l5' savings accountfadequate} к income[adequate) Э investmentlsavings} with confidence -0,1. Эти правила отражают следующую общую стратегию. Человеку с достаточными сбе- режениями и доходом настоятельно советуют вложить капитал в акции, но существует некоторая возможность (и комбинированная стратегия должна учитывать ее) того, что ок может по-прежнему оставлять средства в банке. Эвристические алгоритмы поиска могут использовать эти факторы уверениости по-разному. Например, можно вычислять резуль- таты применения всех правил с учетом степени доверия к ним. Такой полный перебор всех возможностей может быть полезен, например, в медицине. Или программа может возвращать только результат с наибольшим фактором уверенности, если остальные ре- шения не представляют интереса. Это позволит ей игнорировать другие правила, ради- кально сужая область поиска. Можно также игнорировать правила с низкой мерой дове- рия, например, не выше 0,2. Это позволит медленнее сужать пространство поиска. При использовании меры доверия возникает ряд важных вопросов. Что понимается под “числовой мерой доверия”? Например, как рассчитать степень доверия, если один вывод ис- пользуется как предпосылка для других? Как объединять меры доверия, если к одному и тому же выводу можно принта несколькими путями? Как назначать меру доверия основополагаю- щим правилам? Эти проблемы более подробно будут обсуждаться в главе 7. 4.2. Допустимость, монотонность и информированность Поведение эвристики можно оценивать по ряду параметров. Например, наряду с pe- rn нием задачи может понадобиться алгоритм нахождения кратчайшего пути к нему. Это К0гда каадый дополнительный шаг к цели имеет очень высокую стоимость, на- топал нахпгшт113”1^-ВаНИИ ПУТИ для автономн°то робота в опасной среде. Эвристика, ко- ХрТожёни МЫ" К0₽0,К"" "У[Ь К ЦСЛН- Эоцустпио,) (admissible). В ДРУ иугь к решенпю м°жет б- -эф- ристика '‘лучХр^вХТ ™ ЛУ'‘Ш"С эвР11сТ"кп? И в каком смысле одна эв- Можно ли гарантировать что ?°'" ,"‘ФоР-'"1Рова1,пость (informedness) эвристик! стояние нельзя было найти по ионаРУжсчное в процессе эвристического поиска называется монотонностью по короткому пути от начального состояния? Это свойство эффективностью ,apZ^ .°™™ на эти и другие вопросы, связанные с __________ соста»™от содержание этого раздела. Часть II. Искусственный интеллект как представление и поиск 164
4.2.1. Мера допустимости Алгоритм поиска называется допустимым, или приемлемым (admissible), если гаран- тирует нахождение кратчайшего пути к решению. Поиск в ширину является допустимой стратегией поиска. Поскольку сначала рассматриваются все состояния графа на уровне п и лишь затем состояния на уровне п+1, то целевые состояния будут найдены по крат- чайшему из возможных путей. К сожалению, поиск в ширину часто слишком неэффек- тивен при практическом использовании. Используя функцию оценки f(n)=g(n)+h(n), введенную в предыдущем разделе, можно охарактеризовать класс допустимых эвристических стратегий поиска. Если п — узел графа пространства состояний, то д(п) представляет глубину, на которой это состояние было найдено, a h(n) — эвристическую оценку’ расстояния от узла л до цели. В этом смысле f(n) оценивает общую стоимость пути от начального состояния к целевому через узел л. При определении свойств допустимой эвристики определим функцию оценки Г так: f*(n)=g'(n)+h’(n), где д*(л) — стоимость кратчайшего пути от начального узла к узлу л, a h* — фактическая стоимость кратчайшего пути от узла л до цели. Отсюда следует, что С (л) — фактическая стоимость оптимального пути от начального узла до целевого через узел л. В дальнейшем мы увидим, что при использовании функции best_f irsc_search с функцией оценки f* результирующая стратегия поиска будет допустимой. Поскольку та- кие “оракулы" как (* для большинства реальных проблем не существуют, будем исполь- зовать функцию оценки f как наиболее близкую к Г. В алгоритме А д(п) — стоимость текущего пути к состоянию л является разумной заменой оценки д*, но онн не равны: д(п)>д*(п). Они равны только в том случае, если на графе найден оптимальный путь к л. Аналогично заменим Ь*(л) на h(n) — эвристическую оценку минимальной стоимо- сти достижения целевого состояния из узла л. Как правило. вычислить Ь* невозможно, но достаточно часто можно определить, действительно ли эвристическая оценка h(n) ог- раничена сверху, т.е. действительно лн Ь(л) Ь*(л) не превосходит фактической стоимо- сти кратчайшего пути h’(n). Если алгоритм использует функцию оценки в которой h(n) < то он называется алгоритмом А *. ОПРЕДЕЛЕНИЕ АЛГОРИТМ А, ДОПУСТИМОСТЬ, АЛГОРИТМ А* Рассмотрим функцию оценки f (п) = д (л) + h (л), где л — любое состояние, достижимое в процессе поиска, д (л) — стоимость пути из начального состояния к узлу л, h (л) — эвристическая оценка стоимости пути от л к цели. Если эта функция оценки используется в алгоритме best_first_search (раздел 4.1), результирующий алгоритм называется алгоритмом А. Поисковый алгоритм является допустимым, если для любого графа он всегда выби- рает оптимальный путь к решению. Если в алгоритме А используется функция оценки, в которой значение Ь(л) меньше или равно стоимости минимального пути от л до цели, такой алгоритм поиска назы- вается алгоритмом А* (произносится “А со звездочкой ). Теперь можно сформулировать свойство алгоритмов А*. Все алгоритмы А* допустимы. Глава 4. Эвристический поиск 165
.. одляется теоремой, которую читателю предлагается до- Допус..ость алгоритм»» А |Nilsson, |980|. с. 76_78). Гсорсма казать о рамках упражнении о к м „с„оль1у,ощиП такую эвристику h(n). цр„ гласит, что любой алгоритм л ' „ нахождение минимального пути от п д„ ,1с. которой h(niih-ln) для пс« '“Р™”'1 у ли. если такой путь вообще сушатву^^^о^^^гер^о^н кпк IulropirrM д», „ кото Заметим. ‘ " п„ССМОГраши каждого состояния принимается исключи- ром Пп) = 9(п) 0. Р от и„чаль1юго состояния. В подразделе 4.2.3 будет пока- ^Гчта Х™ узлов, рассматриваемых алгоритмом А*. - это подмножество со- эвристики, применяемые для „фы , "пятнашки". Для этой задачи невозможно вычислить значение h(н), но можно показать, что эвристика оптаиичеиа сверху фактической стоимостью кратчайшего «учи к цели. Например число фишек, расположенных нс на месте, меньше или равно числу шагов, требуемых дал их перемещения в целевую позицию. Таким образом, такая эвристика до- пустима II гарантирусг нахождение оптимального (или кратчайшего) нуги решения. Сумма прямых расстояний фишек, находящихся не на своих местах, до их целевой нози- цни также меньше или равна минимальному фактическому пути их перемещения в целе- вое состояние. Использование малых множителей для прямых перестановок фишек явля- ется допустимой эврисгикой. Такой подход к доказательству допустимости эвристик может применяться в лю- бых задачах эвристического поиска. Даже если нс всегда можно вычислить фактиче- скую стоимость кратчайшего пути к цели, довольно часто удастся доказать, что эв- ристика ограничена сверху этим самым значением. Если этот факт будет доказан, то результирующий поиск будет ограничен сверху кратчайшим путем к цели в случае существования такого пути. 4.2.2. Монотонность Напомним, что определение алгоршмов А* нс требует, чтобы д(п) было равно g*(n). Это означает, что допустимая звристика может первоначально достигать “нецелевых состояний, следуя но субоптимальному пути, но в конечном счете алгоритм найдет оп- тимальный пуп. ко всем состояниям, лежащим на пути к цели. Естественно спросить, существует ли эвристика, которая является “локально допустимой”, т.е. позволяет после- довательно находить кратчайший путь к каждому состоянию, которое всзрсчастся в про- цессе поиска. Это свойство называется монотонностью (monotonicity). ОПРЕДЕЛЕНИЕ монотонность Эвристическая функция h моноцита, сели 1. Для всех СОСТОЯНИЙ п, и п„ где п, ~ потомок п,. Ь(п.) - h(n,) 4 cost(n,. п) состояния'шкн,'' ~ фак1"'1сская чочмосп. (количество „стон) перемещения от 2. Эвристическая оценка 1(сто„„.о с„стоя„„я |Ш„1а = „ 166 И. Искусственный интеллокт как представление и поиск
Один из способов описания свойства монотонности состоит в том. чтобы считан, область поиска всюду локально совместимой с используемой эвристикой. Разноси, между эвристическими значениями некоторого состояния и любого из его потомков связана с фактической стоимостью перемещения между ними. Это говорит о том, что эвристика всюду допустима и достигает каждого состояния по кратчайшему пу- ти от его предка. Если “жадный" алгоритм поиска на графе использует монотонную эвристику, то некоторыми важными шагами можно пренебречь. Поскольку такая эвристика нахо- ди i кратчайший путь к любому состоянию при первом проходе через него, то исче- зает необходимость вычисления пути к этому же состоянию при последующих про ходах, поскольку новый путь заведомо не будет короче. Это позволяет отбрасывать любое состояние, через которое алгоритм проходит во второй раз. без модификации информации в списке open или closed. При использовании монотонной эвристики в процессе поиска в пространстве состоя пий эврис тическое значение для каждого состояния п заменяется фактической стоимо- стью пути к л. Поскольку реальная стоимость в каждой точке пространства не меньше эвристической оценки, 1 не уменьшается. Таким образом, функция f является монотонно неубывающей (в соответствии с названием). Докажем, что любая монотонная эвристика допустима. Представим любой путь в пространстве в виде последовательности состояний S|, S2.... Sx, где S| — начальное со- стояние, a Sg — целевое. Рассмотрим последовательность шагов по произвольно вы- бранному пути. От Si к S2 h{S))-h(S2) < costiSh SJ по свойству монотонности От S2 к S3 h(S2)~h(Si) <cost(S2, S3) no свойству монотонности От S3 к S4 h(Sjhh(S4) < cost(Sb S4) по свойству монотонности по свойству монотонности по свойству монотонности От Sg-i к Sx /KSg-O-htSg) < cosf(Sg_j, Sg) по свойству монотонности Суммируя каждый столбец и используя свойство монотонности h(Sf)=O, получим Оз S| к Sg < cost(Si, S„) Это означает, что монотонная эвристика h является эвристикой Л* и она допустима. Оставим в качестве упражнения проверку утверждения, что допустимость эвристики оз- начает се монотонность. 4.2.3. Информированные эвристики Заключительный вопрос этого раздела — сравнительный анализ способности двух эвристик найти кратчайший путь. Рассмотрим эвристику А*. ОПРЕДЕЛЕНИЕ ИНФОРМИРОВАННОСТЬ Если для двух А*-эврнстик h, и Аьдля всех состояний л в пространстве поиска вы- полняется неравенство Лцл) Л?(л). то эвристика h2 называется более информиро- ванной. чем Л| Глава 4. Эвристический поиск 167
<. можно использовать при сравнении эвристик дзМ игры „ Эго определение можн в ширину зкя„валенТен алгоритму А* с эв. “пятнашки Как было всех состояний X. Очевидно, что это значение ристикой h„ при котор » Ч|1СЛО ф„ши! находящихся не на своих мес- меньше, чем h . ы_ Следовательно, Таким образом, эври- так. является иижнеи ф находящ„хся не на своих местах, является более ин- формнрованной чем поиск в ширину. На рис. 4.12 показана, пространства поиска этих Z. эвристкк. Обе эвристики Л, и Л2 находят оптимальный путь к решению, но Л2 в Пр0. цсссе поиска оценивает намного меньше состояний. _ Точно так же можно доказать, что вычисление суммы расстоянии между фишками, находящимися не на своих местах, является более информированной эвристикой, чем определение числа фишек, находящихся не на своих местах. Для этого можно изобразить последовательность областей поиска (каждая последующая меньше предыдущей), схо- дящуюся к прямому оптимальному пути решения. Если эвристика 1ъ более информирована, чем hi, то множество состояний, проверяе- мых эвристикой Лг. является подмножеством состояний, проверяемых h, Это можно до- казать методом “от обратного". Предположил?, что существует по крайней мере одно со- стояние, проверяемое Гъ а не Гц. Поскольку h2— более информированная эвристика, чем hj, то для любого л /72(п)<Л1(л). Кроме того, обе эти эвристики ограничены выше- упомянутым значением h*. Следовательно, наше предположение неверно. Вообще, чем более информирован алгоритм А*, тем меньше состояний требуется проверить, чтобы получить оптимальное решение. Однако следует быть осторожным, так как при использовании более информирован- ной эвристики уменьшение числа состояний в пространстве поиска может потребовать неоправданно больших объемов вычислений. Интересным примером подобной ситуации являются компьютерные программы игры в шахматы. Один из возможных подходов к такой программе — использование простых эвристик и поиск в глубину в расчете на быстродействие компьютера. Для оценки состояния и увеличения глубины поиска такие программы часто используют специализированные аппаратные средства. Другой подход состоит в применении более сложной эвристики и уменьшении числа просматриваемых состояний. Эта эв- рнстака вычисляет тактическое преимущество, рассматривает позиции фигур, воз- ппч Ж'СТЬ аТак' Учить10ает ..роходные пешки и так далее. Сложность вычислений в пащеле 4 dt>Hn™Ke может PacTli зкепоненциально (эта проблема будет обсуждаться о=± °'К0ЛЬК5' °6щее 0Рем” ;и|я первых 40 шагов игры ограничено, важно оценкой ОптнмаПРНН”ТИС КОМпРомис““х Р^ний между поиском и эвристической уценкой. Оптимальное сочетание ппигм .. „ А прос в компьютерных шахматах. РИСТ1"< - открытый эмпирически., во- 163 ' Искусственный интеллект как представление и поиск
|0пв| Целевое состояние Рис. 4.12. Сравнение пространств состояний, просматриваемых при использовании эври- стического поиска и поиска в ширину. Часть графа, просматриваемая при использовании эвристического поиска, затемнена. Оптимальное решение выделено жирной линией. Эв- ристика прсдста&гяет собой функцию J[n)=g(n)+h(n), где Л(п)— число фишек, находя- щихся не на своих местах' 4.3. Использование эвристик в играх В то время две противоположные концепции вызвали многочисленные споры. Лучшие игроки различали два принципиальных типа Игры — формальный и психологический. — Герман Гессе (Hermann Hesse). Магистр Луди (Игра в бисер) 4.3.1. Процедура минимакса иа графах, допускающих полный перебор Игры всегда были важной прикладной областью для эвристических алгоритмов. Игры Для двух человек более сложны, чем простые головоломки из-за существования враждебного" и, ио обществу. непредсказуемого противника Такне игры не только Глава 4 Эвристический поиск 169
обеспечивают нек^рые интересные возможности для развития эвристик, но и создаЮт большие трудности в разработке алгоритмов поиска. Сначала рассмотрим игры с небольшим пространством состоянии. обсспечивающИм возможность исчерпывающего поиска. В таких играх проблема решается систСМатичс. ским перебором всех возможных ходов и контрмер противника. Затем рассмотрим нгры> в которых полный перебор либо невозможен, либо нежелателен. Поскольку в таких иг- рах можно просмотреть только ограниченную часть пространства состояний, игрок Вы. нужден использовать эвристику, чтобы прийти к победе. Игра “ним” (nim) — это одна из игр. пространство состояний которой допускает цс. черпывакиций поиск. В этой игре на стол между двумя противниками выкладывается не- которое число фишек. При каждом ходе игрок должен разделить кучку" фишек на два непустых набора разных размеров. Например, 6 фишек можно разделить на группы 5 и 1 или 4 и 2. но не 3 и 3. Первый игрок, который не сможет больше сделать ход, проигры- вает. Для разумного числа фишек в пространстве состояний этой игры можно реализо- вать полный перебор. На рис. 4.13 показано пространство состояний для 7 фишек. В играх, не допускающих исчерпывающего описания пространства состояний основ- ная трудность заключается в предсказании действий противника. Простой способ учесть такие действия — предположить, что ваш противник использует тс же самые знания о пространстве состояний, что и вы, и применяет эти знания для своей победы. Хотя это предположение имеет свои ограничения (которые будут обсуждаться в подразделе 4.3.2) оно дает разумную основу для предсказания поведения противника. Метод минимакса реализует поиск в игровом пространстве с учетом этого предположения. Рис. 4.13. Пространство состояний для одного из вари- антов игры "ним". В каждом состоянии семь фишек де- лятся на несколько кучек Искусственный интеллект как представление и поиск
MAX ZL ° ИГРС МШ " MAX Эти “u6Pa"bl no следующим причи- нам. MAX представляет игрока, пытающегося выиграть, или макшизировать свое преимущество, a MIN — противника, который пытается штирмать счет своего оппонента. Предполагаете», что M1N использует ту же самую информацию и всегда пы- тается достичь наихудшего для МАХ состояния. При реализации стратегии минимакса пометим каждый уровень в области поиска именем игрока, выполняющего очередной ход; MIN или МАХ. В примере на рис. 4.14 первый ход делает MIN. Каждому листовому узлу присвоим значение 1 нли 0. в зависи- мости от победителя: МАХ или MIN. В процессе реализации процедуры минимакса эти значения передаются вверх по графу согласно следующему правилу. • Если родительское состояние является узлом МАХ, то ему присваивают макси- мальное значение. • Если родительское состояние— узел MIN, то ему присваивают минимальное значение. Значение, связываемое таким образом с каждым состоянием, отражает наилучшее со- стояние, которого этот игрок может достичь (принимал во внимание действия противни- ка в соответствии с алгоритмом минимакса). Таким образом, полученные значения ис- пользуются для того, чтобы выбрать наилучший среди возможных шагов. Результат применения алгоритма минимакса к графу пространства состояний для игры “ним” пока- зан на рис. 4.14. Значения вершинам присваиваются снизу вверх на основе принципа минимакса. По- скольку любой из возможных первых шагов MIN ведет к вершинам со значением 1, второй игрок, МАХ, всегда может победить, независимо от первого хода MIN. MIN может побе- дить только в том случае, если МАХ допустит ошибку. На рис. 4.14 видно, что MIN может выбрать любой из возможных вариантов первого хода— все они открывают возможные пути победы МАХ. отмеченные на рисунке полужирными линиями со стрелками. Хотя существуют игры, где возможен полный перебор, все же наиболее интересными являются случаи, в которых он неприменим. В следующем разделе будет рассмотрено эвристическое приложение минимакса. 4.3.2. Минимакс при фиксированной глубине поиска При использовании минимакса в более сложных играх редко удается построить пол- ный граф пространства состояний. Обычно поиск выполняют вглубь на определенное число уровней, которое определяется располагаемыми ресурсами времени и памяти ком- пьютера. Эта стратегия называется прогнозированием п-го слоя (n-ply look-ahead), где п — число исследуемых уровней. Такой подграф не отражает всех состояний игры, и по- этому его узлам невозможно присвоить значения, отражающие победу или поражение. Поэтому с каждой вершиной связывают значение, определяемое некоторои эвристиче- ской функцией оценки. Значение, которое присваивается каждой из п вершин на пути от корневой вершины,— не показатель возможности достичь победы (как в предыдущем примере). Это просто эвристическое значение оптимального состояния, которое может быть достигнуто за п шагов от этой корневой вершины. Прогнозирование увеличивает силу эвристики, позволяя применить ее на большей области пространства состояний. Стратегия минимакса интегрирует эти отдельные оценки в значение, которое присваива- ется родительскому состоянию. Глава 4. Эвристический поиск 171
Рис. 4.14. Принцип минимакса игры “ним". Жирные линии показывают пути к победе МАХ Каждому узгу присвоено значение 0 тц ] в соответ- ствии с процедурой минимакса В конфликтной игре каждый игрок пытается переиграть друтого. и многие игровые эвристики прямо измеряют преимущество одного игрока над другим. В шахматах очень важно иметь преимущество в какой-либо части игровой доски, так что простая эвристика может учитывать разность количества частей, где имеют преимущество либо МАХ. либо MIN. и максимизировать ее. Можно применить и более сложную стратегию — присваи- вать различные значения частям доски, в зависимости от позиции фигур на доске (например, ферзь против пешки или король против пешки). Большинство игр дают без- граничные возможности лтя создания всевозможных эвристик. Графы игр рассматриваются по уровням. Как показано на рис. 4.14. МАХ и MIN Де лают шаги поочередно. Каждой ход игрока определяет новый уровень графа. Типичная игровая программа предсказывает ходы до определенной фиксированной глубины, кот^- рая определяется пространственными или временными ограничениями компьютера- о* стояния до згой глубины оцениваются эвристикой и на основе минимакса распростр2 няются обратно к начальному состоянию. Алгоритм поиска затем использует эти npot водные значения. чтобы выбрать нанлучший средн возможных ходов. Присвоив опенку каждому состоянию выбранного слоя, программа передает это зн чение каждому родительскому состоянию. Если родительское состояние относгл^ уровню . . ему передается минимальное нз состоянии всех его потомков. Если Р° тельское состояние узел уровня МАХ, минимакс назначает ему максимальное зна ние из всех его потомков. ' IK 11Гм!\Х™ЗНа',еНМ ™°в МАХ и одновременно минимизиРУ" м V проход по графу, присваивая значения К кушего состояния. Затем эти значения используются алгоритмом для выбора на1шучшего потомка текущего состояния. На рис. 4.15 алгоритм минимакса проиллюстрирован «а гипотетическом пространстве состояний с четырьмя уровнями. Самые ранние работы по ИИ в этой области — это программа игры в шашки, создай' пая Самюэлем (Samuel) в 1959 году. Эта программа была исключением для того време- ни. особенно учитывая существующие ограничения для компьютеров 50-х годов. Мало того, что эта программа игры в шашки применяла эвристический поиск, в ней также присутствовал простой алгоритм обучения. Эта программа была во многом пионерской, и ее нее ешс используют при создании игровых и обучающихся программ. Программа Сэмюэля оценивала состояние доски, используя взвешенную сумму не- скольких различных эвристических значений В этой сумме х, представляет такие особенности состояния игровой доски, как такти- ческие преимущества, расположение фигур, ситуация в центре доски, возможность жертвовать фигурами за тактическое преимущество и даже тенденцию перемещения фи- гур одного из (ггроков у края доски. Коэффициенты при xi специально настраиваются та- ким образом, чтобы отражать вклад каждого фактора в общую оценку ситуации Таким образом, если преимущество в какой-либо части доски важнее, чем. скажем, в центре, то это отражает соответствующий коэффициент. Программа Самюэля позволяет рассматривать необходимое число уровней (обычно ограниченное возможностями компьютера) и оценивает все состояния на данном уровне, используя полиномиальную оценку. Затем с помощью различных вариаций а.1горнтма минимакса эти значения распространяются до графу в обратном направлении. После этого игрок может делать ход в наилучшее состояние с учетом хода противнггка. Затем весь процесс повторяется. Если в процессе полиномиального оценивания некоторые ходы теряются, то программа настраивает коэффициенты, чтобы повысить эффективность. Другими словами, большие весовые коэффициенты уменьшаются (поскольку они вносят максимальным вклад в непра- вильную оценку), а меньшие веса оценок увеличиваются, чтобы усилить их влияние. Если программа побеждает, то противник, соответственно, проигрывает. Программа обучается, играя против человека или против другой версии такой же программы. Таким образом, программа Сэмюэля использовала алгоритм поиска экстремума для обучения, пытаясь улучшить эффективность и сделать локальные уточнения в полино- миальной оценке. Самюэль ограничил алгоритм поиска экстремума, введя проверку эф- фективности индивидуальных взвешенных эвристических оценок и удаляя наименее эф- фективные. Программа имеет некоторые интересные особенности. Например, из-за ог- раниченности глобальной стратегии она чувствительна к функциям оценки, приводящим к ловушкам. Модуль самообучения программы уязвим в случае противоречивой игры оппонента. Например, если противник широко использовал различные стратегии или просто играл “по-дурацки", то веса в полиномиальной оценке начинали принимать ‘случайные” значения. что приводило к полному снижению эффективности. Сделаем несколько заключительных замечании о процедуре минимакса. Прежде всего следует заметить, что оценки любого (предварительно выбранного) уровня могут быть неверными. При использовании эвристики с ограниченным прогнозиро- ванием сохраняется вероятность, что путь, приводящий в дальнейшем к плохой си- Глава 4. Эвристический поиск 173 сть п. Искусственный интеллект как представление и пои
Если ваш противник по шахматам предлагает гуанин, не будет обнаружен воврем . Bau,cr0 ферзЯ, а оценка нс ндет ладью в качестве приманки, чтоо к ^0|,0 С(1С1[1Я,,,,я будет паилучшая оценка, того уровня, где предлагается^мль с'тоянпя может привести к тому, что игра будет К сожалению, подобный выо р Зффектал, мризонта. Для противостояния та- проиграна! Это обычно называв »- c(>(.TO(|H(ljj „„ НССКолько уровней глубже кой ситуации обычно проем Р сслект|)вное углубление поиска в важных облас- состояния с хорошен оценкой. „.„„„нить эффект горизонта, так как поиск все тях, однако, не останется елей к равно должен остановиться в какой н У состояниям, лежащим за ее пределами- MIN 2359 0 742 156 Рис. 4.15. Минимакс в гипотетическом пространстве состояний В алгоритме мнннмакса существует и другой эффект, связанный с эвристическими оценками. Оценки, которые находятся очень глубоко в пространстве, могут не прини- маться во внимание из-за их большой глубины [Pearl, 1984). Подобно тому, как среднее произведений отличается от произведения средних, оценка минимакса (которую мы хо- тим получить) отличается от минимаксной оценки (которую мы получаем). В этом смысле обычно (хотя и не всегда) лучше использовать более глубокий поиск с оценкой состояний и алгоритмом минимакса. Детальное обсуждение этой проблемы и средств ее решения можно найти в [Pearl, 1984J. В завершение обсуждения алгоритма минимакса представим его приложение к игре в “крестики-нолики" (раздел 4.1), описанное в [Nilsson, 1980]. Здесь использу- ется чуть более сложная эвристика, позволяющая измерить конфликт в игре. Эта эв- ристика состоит в следующем. Выбирается состояние, которое необходимо оценить, находятся все победные строки для МАХ, а затем из их числа вычитается общее ко- личество победных строк для MIN. Алгоритм поиска пытается максимизировать эту разность. Если данное состояние приводит к победе МАХ, то оно оценивается как +оо, а если оно приводит к победе MIN — как -«о. На рис. 4.16 показано применение этой эвристики к нескольким состояниям. На рис.4.17, 4.18 и 4.19 показано применение эвристики, представленной на рис. 4.16. в алгоритме двухуровневого минимакса. На этих рисунках продемонстри- рована эвристическая оценка, возврат на основе минимакса, ход МАХ. а также неко- торые ограничения на ходы с равными эвристическими значениями [Nilsson. 1971]- 174 Часть II. Искусственный интеллект как представление и поиск
Для X существует 6 возможных вариантов победы Для О существует 5 возможных вариантов победы £(п) = 6-5« 1 Для X существует 4 возможных варианта победы Для о имеется 6 возможных вариантов победы £(л)=4-6 = -2 Для X имеется 5 возможных вариантов победы Для О существует 4 возможных варианта победы Е(л) = 5-4=1 Эвристика - £(п)=М(л)-О(л) где М(п} — общее число возможных вариантов моей победы; О(л) — общее число возможных вариантов победы оппонента; £(л) — общая оценка состояния л. Рис. 4.16. Эвристика, учитывающая конфликт в игре "крестики-нолики " 4.3.3. Процедура альфа-бета-усечення Прямой алгоритм минимакса требует двух проходов по области поиска. Первый позволяет пройти вглубь области поиска и там применить эвристику, а второй — присвоить эвристические значения состояниям, следуя вверх по дереву. Минимакс рассматривает все ветви в пространстве поиска, включая те из них, которые могли быть исключены более интеллектуальным алгоритмом. Разработчики игровых стра- тегий в конце 1950-х годов создали алгоритм [Newell и Simon. 19761. который полу- чил название альфа-бета-усечения и позволил повысить эффективность поиска в играх с двумя участниками [Pearl, 1984]. Идея альфа-бета-поиска проста: вместо того, чтобы рассматривать все состояния некоторого уровня графа, алгоритм выполняет поиск в глубину. В процессе поиска участвуют два значения, называемые альфа (alpha) и бета (beta). Значение альфа, связанное с узлами МАХ, никогда не уменьшается, а значение бета, связанное с уз- лами MIN, никогда не увеличивается. Предположим, что для некоторого узла МАУ значение альфа равно 6. Тогда МАХ может не рассматривать состояния, которые связаны с нижележащими узлами MIN и имеют значения меньше или равные 6 Альфа — самое плохое значение, которое может принимать МАХ. если MIN будет придерживаться "наилучшей” стратегии. Точно так же. если значение бета для узла MIN равно 6, то не следует рассматривать нижележащие вершины МАХ. с которыми связаны значения 6 или более. Глава 4. Эвристический поиск 175
176 Часть IV Искусственный интеллект как представление
™^^,Хцедуру-мы опускас“ м ^у у. поиск в глуоину, и вычисляем эвристические niwum - 1 .. У Предположим, что все они - узлы MIN. Максимальное из ™ знХГий м\п\°озвршц“и- ся родительскому состоянию (узлу МАХ к,™ и п ап™. ^м1иим1П1я>ш|М1М1 р _ 3 3 как и в алгоритме минимакса). Затем эго значе- яис передается прародителям узлов MIN как „огепциальпое граничное значение бета Затем алгоритм опускается к другим потомкам г,отомков „ „с „„ тельскис состояния, если их значения больше нли равны данному значению бета. Анало- гичные ироЦелУРЬ" можно описать для альфа-отсечения по потомкам второго поколения вершины МАХ. Существуют два условия останова алгоритма поиска на основе значений альфа и бета. 1. Поиск может быть остановлен ниже любого узла MIN, значение бета которого меньше или равно значению альфа любого из его предков МАХ. 2. Поиск может быгь остановлен ниже любого узла МАХ. значение альфа которого больше или равно значению бета любого из его предков MIN. Рис. 4.19. Двухуровневый минимакс применительно к ходу X в конце игры /Nilsson. 1971/ Таким образом, альфа-бета-усечение выражает отношение между узлами уровней п и п+2. При этом из рассмотрения могут быть исключены целые поддеревья с корнями на уровне п+ 1. Например, на рис. 4.20 изображено пространство поиска из рис. 4.15, к ко- торому применен алгоритм альфа-бета-усечсния. Заметим, что результирующее возвра- щаемое значение идентично полученному в алгоритме минимакса, но при этом процеду- ра альфа-бета-усечсния значительно экономичнее минимакса. При удачном порядке состояний в области поиска процедура альфа-бета-усечсния может аффективно удваивать глубину поиска в рассматриваемом пространстве при фиксированных пространственно-временных характеристиках компьютера [Nilsson. 19S0J Если же утлы рас- положены неудачно, процедура альфа-бста-усеченая осуществляет поиск в таком же про- странстве, как и обычный минимакс. Однако поиск проводится только за один проход. Глава 4. Эвристический поиск 177
4 4 Проблемы сложности----------------------------- —----L-------------«ямбиитояшх а»4 ВВЛЯСТСВ ЖПОНСНЦИШный рост Наиба» ж учкпиыт роработчики программ Посколыг, ^юстрмстда дат- ИЯМ»^ (втослтлыюй и другой) происходят в да- основные вязы чажчеаПЙ5^^т себе жсоомеашильиый рост. Мы часто слышим иейяоы вреда»- «“ (или быстрый или высоко проимюдигольный) жажбу: “Если бы • и» оо« тт- Тиж жалобы. часто вызываемые проблемой гомпьиггр мои проб»»» »»_. беспочвенны Просто проблема была поила -втрышиио- Р^^в^^ачяштзейств«.1юеереше1«ю. ж достаточно гтусюко и "**’~быЖ) «по количество состоянии, лросматрн- Комбииторгов рост аоможных шахиаткых ходов, составляет 1(У® «ЖЫХ чж полном переборе»с диезом молекул во Эго ж просто £,-я А аеч&дае ^=3 <А б/оет не больше, «ем 3; 8 яаляетсо ^-усеченным, так саг 5>3 £яв С з»е^ен>еа=3 'С6у£^т не меньше, чем 3) D яа.’^г’оя а-усеме>-«=аи, таг таг О-'З Е являете? а- так ка/ 2<3 С ПрНЪЧЧ&ёТ 3 Рис 420. Лафа-баяа-усечеяые г^именитеяыю к просп^юнаиау со- статтйкз рис. 415. Состояния без чиаовмх меток не оценмвазмсл Были предложены несколько метрик для вычисления сложности. Одна из анх ~~ фактор веяшеяш цюстранства. Фактор ветвления определяется как среднее количест- во ветвей f потомков). выходящих из любого состояния в пространстве поиска. Число со- стояю<й на глубине л поиска райю фактору ветвления. возведенному в л-ю степень. По- сле вычисления фактора ветвления можно оценить стоимость поиска пути любой хтинЫ ?** показана зависимость между фактором ветвления В, длиной пути L и обпв®* качеством состояний Т в процессе поиска хтя малых значений. Графики представлен логарифмическом масштабе. поэтому L — не прямая линия. та zrz~z 7'’'-ужа пекзаывают. как плохи дела на самом деле- .та фактор с. . хцер, в бинарном дереве), то хм исследования всс^ ™ ’Р'буегся рассмотреть "P"6™’”^ с___12 УР°внеи треоуется рассмотреть около КД**' ♦актор ветвления может быть уменьшен до 1Л (с помочим эвристики иД* переформулировки 1ам,к то qp« том дуги может быть удвоена. «чеетве рассмотренных состояжЯ ним Математическая формула . Т=В-В‘- вТГ.в- "ж™™* «Р«. 4.2). ж где Т — общее количество состовиий. L — дли Эго уравнение можно привести к виду ПУП<’ * ® ~ ""Ффиииент вегв ити, Т=В<В-~ 1I/IB- 1). Агины пути решения L Соответствующее соотноштше имеет вио T-Blfr~- (Ntlston. 198OJ Измерение пространства пояска — эмпяричеехт' знакомства с задачей и проверки различных ее вфя.. требуется — х ---- ло ВОЗМОл поЗ — XT-- зом, всего получается 24 хода. Разделив это чис-ю на 9 <ьи. ***** местоположений пустой клеткиг получим, что средь 2,67. Как показано на р. 1 - очень хорошее зиа- Если не принимать в ведущие назад » <используемые в хтгори____... - ..;исанных в этой гзг.-. будет на один ход меньше. В этом случае фактор ветвления ревев ‘Лииным полный перебор (в некоторых пространствах состоянию Как было показано в гта*^ 3. сложность хи -' списков closed и open. Чтобы поддерживав *«сть й. Исгусственный интеллект как представление и пои^* ^Лава^- Эвристический поиск 179
чески) состояний. 310 мож« уско. . „ем только «сказы» о№НОСТЬ потери лучшего состояния „ да. Однако 3 3TO^»>-JCHHU, r,СК поиск, в зависимости от чнеяа « ртшення. Метод "c-кои" .beam Searm____^______________ шагов называется . ' 3 g 5 з Общая стоимость 'решения задачи применения правила СТОИМОСТЬ стратегии управления Полная О ‘Информированность’ рж 4 г> Неформальный график стоимости поиска и стоимости вычисления Диетической опенки е зависимости от информирован- ности эвристики [Nilsson. 19801 При попытке снижения ветвления алгоритма поиска или сужения ^остра“"В“.П“'“ мы ввели понятие "более информированной" эвристики. Более информирован дает возможность рассматривать меньшую область для нахождения минимального пути решению. В разделе 4.3 было показано, что цена дополнительной информации, неом°д мой для сокращения пространства поиска, не всегда приемлема. При решении зада компьютере не достаточно найти минимальный путь. Необходимо также сократить ко ство операций, выполняемых компьютером в процессе нахождения решения. На рис. 4.22, взятом из [Nilsson, 1980], представлен неформальный результат ан лиза этих вопросов. По оси абсцисс отложено количество информации, которая у в эвристике для улучшения ее эффективности. По оси ординат показаны затраты про цессора на осуществление поиска. Если эвристика становится более информирован ной, затраты процессорного времени на рассмотрение состояний уменьшаются, п му что необходимо просматривать меньшее количество состояний. Обшая стонь нахождения пути решения — это общая стоимость эвристических вычислении пл стоимость просмотра пространства поиска. Желательно, чтобы обшая стоимость так го поиска была минимальной. В заключение следует отметить, что важной областью исследований является эВР стический поиск на графах И/ПЛИ, так как подобную форму имеет пространство сост нии для экспертных систем. Поиск на этих структурах включает компоненты, обсужда шиеся в этой и предыдущей главах. Поскольку для нахождения пути к цели необходи просмотреть все потомки узлов И. эвристическая оценка стоимости поиска ДЛ* У3^ представляет собой сумму оценок поиска его потомков. 45, Резюме и дополнительная литература Зада4 о6ычно ^вслнчиваютея экспонентой» Эв- ристический 01 ск это основной инструмент для управления таким "комбинаторным „рывом . В данной главе представлен "жадный" алгоритм поиска, а затем провишипи- ровано поведение эвристических алгоритмов. Мы рассмотрели такие их свойства, как допустимость, монотонность и информированность. Эвристический поиск был paCCMOI- рен на простых примерах типа игры в пятнашки”, а затем распространен на более слож- ные пространства состояний, возникающие при проектировании экспертной системы (глава 6). В данной главе также была рассмотрена эвристика, применяемая в играх с двумя участниками. Она использует процедуру минимакса и альфа-бета-усечсния дня предсказания ходов противника. Теория сложности играет важную роль почти в каждой области информатики, особенно при анализе роста пространства состояний и эвристиче- ском усечении. Теория сложности исследует сложность задач (в противоположность ал- горитмам). Ключевая посылка теории сложности состоит в наличии класса существенно сложных задач. Этот класс, получивший название класса NP-сложных задач (Nondetermimstically Polynomial), включает проблемы, которые не могут быть решены в разумное время без использования эвристики. Этому классу принадлежат почти все за- дачи поиска. По этой проблеме мы особенно рекомендуем книги [Garey и Johnson, 19791 и [Moret и Shapiro, 1991]. В [Pearl, 1984] детально описаны такие вопросы, как разработка и анализ эвристик. В [Korf, 1987, 1998, 1999] продолжено исследование алгоритмов поиска, в том числе опи- сан алгоритм IDA*. Программы игры в шахматы вызывают постоянный интерес на про- тяжении всей истории развития искусственного интеллекта. Новые результаты в этой об- ласти часто представляются и обсуждаются на ежегодных конференциях. Автор благодарит Нильса Нильсона [Nilsson. 1980] за его подход и примеры, которые были использованы в этой главе. 4.6. Упражнения 1. Придумайте эвристику, которую можно было бы использовать в программе разме- щения блоков для решения задачи “поставить блок X на блок Y . Будет ли такая эв- ристика допустимой? Монотонной? 2. Головоломка скользящих фишек включает три черные и три белые фишки, а также пустую клетку, как показано на рис. 4.23. В этой головоломке допустимы два хода с соответствующей стоимостью. Фишку можно передвинуть В соседнюю пустую понятию. Этот ХОД стоит I. Фиши мо- жет перепрыгивать па пустое место через одну или две другие фишки. Стоимость этого хода равна количеству перепрыгнутых фишек. Цель игры состоит в том. чтобы все белые фишки расположить слева, а черные - справа. Местоположение пустой клетки не важно. 2-1. Проанализируйте сложность пространства состояний и наличие циклов. 2.2. Предложите эвристику для решения этой проблемы и проанализируйте ее на до- пустимость, монотонность и информированность. 181 Глава 4. Эвристический поиск 180 Часть II. Искусственный интеллект как представление и по
а г. Ь W 4_2.</о***4’-'•’** * ‘ ™ ыя игры » "пяпшияи" (СМ. рис. 4.S) с эвристикой стожевщ Сравните три эч»сти“ и- №0JMIlttCJ не на своих местах, с удвоенным чистом ^’я^Х^"сХ™«во“и>1ОШ,,м критер,“м: np““ D'₽LZ»LctMh»s в «=» Д“ ЭТОГ0 П*буетси найти кратчайший пуп. , . -тем наюмоигь его как эталон; ________________ упомянутых эвристик наиоолее эффективно соям. 01 информированности . -Г- шяет пространство состоянии. а) монотонность для игры в "пятнашки ; , топэстимостъ Какая из этих эвристик ограничена сверху фактической стоимостью щта к не»? Обоснуйте свои предположения для оощего случая 11Л, приведите контрпример. 4 о Как было сказано выше, "жадный” алгоритм поиска хтя предотвращения зацикли- вания использует список closed. А что если отказаться от этого теста и определять задастивания на основе д<п)? Сравните эффективность этих двух подходов. б функция best_first_search не проверяет, является ли состояние целевым, пока оно не удалено из списка open. Эту проверку можно выполнять при рассмот- рении новых состояний. Как это отразится на эффективности алгоритма? На допус- тимостя? 5. Докажите. что алгоритм А* допустим. Подсказка: При доказательстве следует пока- зал». что: а) хи алгоритма А* поиск закончится; б) в списке open всегда существует узел, который находится на оптимальном пути к цели; в) если путь к цели существует, то алгоритм А* закончится нахождением оптималь- ного пути к пели. 6. Подразумевает ли допустимость выполнение свойства монотонности эвристики? Ес* ли нет, опишите, когда допустимость подразумевает монотонность. 7. Докажите, «по набор состояний, рассмотренных в алгоритме А*, является подмноже- ством состояний поиска в ширину. 8. Докажите, что более информированная эвристика просматривает более узкую делеД1?*”01^ ^о;1сказка' формализуйте доказательство, представленное в под?33 стамвкаГ^Х» ЭТ° ПрОС1ая слема кодирования, основанная на циклических nq* Наприыеп пои ис^' В КОТОрой ’’й символ алфавита заменяется (i+n)-M clfttB0^L m-Geiwev^ П0ЛЬ30ванни ШИФР* Це^ря со сдвигом 4 слово “Caesar" запнш^ 9-1. Приведите три эвристики, ра Цезаря. которые можно использовать для расшнфр°вкИ 182 асть Искусственный интеллект как представление и п
9.2- В простом шифре подстановки каждый символ заменяется другим на основе неко- торого произвольного взаимно однозначного отображения' К .ытю. предложенных для шифра Цезаря, может попользоваться для i .кого шифра? Объясните. (Спасибо Дону Моррисону (Don Mornson > r . ' ]Q. реализуйте стратегию минимакса на дереве, показанном на рис. 4.24. ] 1. Выполните альфа-бета-усечение слева направо для дерева из упражнения 10. Выполните на этом же дереве усечение справа налево. Объясните, почему результаты отличаются. 12. Рассмотрите трехмерную игру в ”крестнки-нодню<”. Проанализируйте сложность пространства состояний. Предложите эвристику для этой игры. 13. Выполните альфа-бега-усечение для игры в "крестнкн-но.тнкн" (см. рис. 4.17,4.18 н 4.19). Сколько вершин можно устранить в каждом случае? 14, а. Создайте алгоритм для эвристического поиска на графе П/ИЛИ. Обратите внима- ние на то. что для определения значения родительского узла необходимо просмот- реть значения всех его потомков. Таким образом, прн вычислении эвристических оценок стоимости пути к цели оценка стоимости узда AND состоит (как минимум’) из суммы оценок стоимости различных ветвей. б. Используйте этот алгоритм для поиска на графе (рис. 4.25). Рис. 4.24. Дерево для применения принципа минимакса А h(A) = 1 /Кб) = 5 fr{fi) = 2 h(G)=1 h(C)=5 h(H) = 3 Л(О) = 3 W)=1 h(E) = 2 Рис. 4-25- Пример графа для поиска 183 Глава 4. Эвристический поиск

Управление поиском и его реализация в пространстве состояний Если мы аккуратно отделим влияние среды, в которой выпозняется задача, от влия- нияаппаратных компонентов и организации, то получим истинную простоту адаптив- ной счете мы. Как мы видели, для описания способа решения человеком mama задач, как шахматы, логика и криптоарифметика (cryptarithmetic), необходимо постулировать только очень простую систему обработки информации. Очевидно сложное поведение системы обработки информации в данной среде обусловлено взаимодействием требова- ний среды с несколькими основными параметрами системы, в частности, характеристиками ее блоков памяти. — А. Ньюэлл и Н. А. Саймон, Решение проблем человеком, 1972 То, что мы называем началом, часто будет концам. Приходя к концу, мы приходим к началу. Конец — это наше начала... — Т. С. Элиот (Т. S. Eliot), Четыре квартета 5.0. Введение В главах 3 и 4 представлены задачи, решаемые методом поиска в пространстве со- стояний. Этот подход ••пространства состояний” к решению задачи позволяет нспользо- вать теорию графов для создания н анализа компьютерных программ. В главе 3 опреде- лен общий алгоритм поиска с возвратами . а также алгоритмы поиска а глубину и в ши- рину. Эвристический поиск был представлен в главе 4. Следующие понятия характеризуют данные и управляющие структуры, используемые для реализации поиска в пРостранствс состояний. 1. Представление решения задачи в виде пути от начального состояния к целевому. 2. Алпзр,™ поиска, система™чески проверяющий наличие альюриашвных ..утей к цеп,
3 Поиск с возвратами или другой механизм. позволяющий выходить из тупИК0ВЫх состояний И находить путь к цели- 4. Списки, содержащие точную информацию о рассматриваемых в данный состояниях, в том числе. а) список open, позволяющий алгоритму в случае необходимости исследовать ра. нее не рассмотренные состояния, б) список dosed, содержащий рассмотренные состояния. Он позволяет алгоритму избегать зацикливаний и учитывать тупиковые пути. 5. Список орел можно рассматривать, как стек для поиска в глубину, очередь для поиска в ширину пли приоритетную очередь для ‘жадного алгоритма поиска. В данной главе вводятся высокоуровневые методы для построения алгоритмов поиска. Первый из них — рекурсивный поиск, определяющий поиск в глубину с возвратами более кратким и естественным способом, чем в главе 3. Этот механизм составляет основу многих алгор1пмоа в разделе 5.1. Применение унификации в процессе поиска в пространстве состоя- ний расширяет возможности рекурсивного поиска. Этот алгоритм поиска по образцу (раздел 5.2) положен в основу языка PROLOG, описанного в главе 14, и многих экспертных систем, рассмотренных в главе 7. Раздел 5.3 посвящен так называемым продукционным сис- темам. Это обшая архитектура для решения образно-ориентированных проблем, которая широко используется как для моделирования человеческого образа мышлсиия при решении многих задач, так и для построения экспертных систем и других приложений ИИ. Наконец в разделе 5.4 рассматривается еще одно представление для решения задач искусственного ин- теллекта — так называемая модель массной доски (blackboard). 5.1. Рекурсивный поиск 5.1.1. Рекурсия В математике рекурсивное определение объекта— это его описание в терминах час- тей этого же определения. В информатике рекурсия используется для определения и ана- лиза структур данных и процедур. Рекурсивиая процедура состоит из следующих этапов. 1. Рекурсивный шаг: вызов процедуры из этой же процедуры для повторения после- довательности действий. 2. Условие, которое обеспечивает выход из процедуры и таким образом предотвра- щает зацикливание (рекурсивная версия бесконечного цикла). Оба этих компонента необходимы и появляются во всех рекурсивиых определениях и алгоритмах. Рекурсия— естественный инструмент управления массивами данных, кото- рые имеют правильную структуру и неопределенный размер, например, списками, Де ревьями и графами. Рекурсия особенно удобна для поиска в пространстве состояний- Простой пример алгоритм определения принадлежности данного элемента списку- Списком (list) называют упорядоченную последовательность элемеитов и фундаменталь- ных строительных блоков структур данных. Списки использовались как альтернативна форма записи выражений исчисления предикатов (глава 2) и для представления списков open и closed в алгоритмах поиска — ~ ~ .."'т“ элемента списку определяется так. из главы 3. Процедура проверки принадлежности function memberdtem, list); begin if список пуст then return FAIL else if item = первому элементу списка then return SUCCESS else Постанов Постанов begin tail : = список после удаления первого элемента,- member(item, tail) ^рекурсия end end. Эта процедура сначала проверяет, пуст ли список, и, если да, алгоритм возвращает ошибку. В противном случае он сравнивает выбранный элемент с первым элементом спи- ска. Если они равны, происходит успешное завершение процедуры. Таким образом, это ус- ловия завершения процедуры. Если ни одно из приведенных выше условий завершения не выполнено, процедура удаляет первый элемент из списка и снова вызывает сама себя для сокращенного списка. Это позволяет исследовать каждый элемент списка по очереди. Об- ратите внимание на то, что список конечен, и каждый шаг рекурсии уменьшает его размер на одни элемент. Это озиачает, что данный алгоритм не приведет к зацикливанию. В приведением выше алгоритме используются две фундаментальные операции со списком: первая из них (head) возвращает первый элемент списка, вторая операция (tail) возвращает список, полученный после удаления первого элемента. Эти операции наряду с рекурсией составляют основу высокоуровневых операций со списком типа member. Данные операции поддерживаются языками обработки списков LISP и PROLOG и под- робно описаны в главах, посвящениых каждому из этих языков. Рекурсия, поддерживаемая каким-либо языком программирования, расширяет воз- можности более традиционных управляющих конструкций, например, циклов и услов- ных операций. Другими словами, любая итерационная процедура может быть также реа- лизована рекурсивно. Удобство рекурсивных формулировок — ясность и компактность выражения. Математические понятия логики или функций не поддерживают таких меха- низмов, как упорядочение, ветвление и итерация. Для индикации повторения можно ис- пользовать рекурсию. Поскольку рекурсию проще описать математически, чем явные итерации, то легче формально проанализировать правильность и сложность рекурсивных алгоритмов. Рекурсия часто используется в системах автоматической генерации или ве- рификации программ, необходимых при создании компиляторов и интерпретаторов. Од- нако более важным является тот факт, что рекурсия — это естественный способ реализа- ции таких стратегий искусственного интеллекта, как поиск на графе. 5.1.2. Рекурсивный поиск Прямое преобразование описанного в главе 3 алгоритма поиска в глубину в рекур- сивную форму иллюстрирует эквивалентность рекурсии и итерационного подхода. Этот алгоритм для поддержки списка состояний использует глобальные переменные °Реп и closed. function depthsearch- %леоеменные open а closed глобальные begin 186 Часть II. Искусственный интеллект как представление и поис глава 5. Управление поиском и его реализация в пространстве состояний
списка open; состоянию open; ,t список open пуст Chen return^ .j элемент current-stat® . целевому else begin т списка . open , добавлением current_state; closed := clos®„J). current_state даЯ ““Гв "писке closed или open 1Г нв %построение стека then добавить потомок в начало списка open end; depthsearch end. Поиск в ширину можно обходимо сохранять с....--- %рекурсивный вызов ..................0 опиип> фактически тем же самым алгоритмом. При этом не- 'смсок closed как глобальную структуру данных и рассматривать СПТ^еддан7“Х,“рХ«но- что поиск в глубину не использует все вози», восв рекдаии. Процедуру можно упростить, используя рекурсию непосредственно (а нХез смсок open) для рассмотрения состояний н нахождения путей в их прострав- стае В новой версии алгоритма глобальная переменная closed используется для обна- ружевия повторяющихся состояний и предотвращения циклов. Список open неявно вс- пользуется в записях активации рекурсивной среды. function deothsearch (current_state); %closed — глобальная переменная begin if current_state равно целевому состоянию then return SUCCESS; добавить current_state в список closed; while current_state имеет непроверенные потомки begin child := следующий непроверенный потомок; if потомок не член списка closed then if depthsearch (child) = SUCCESS then return SUCCESS end; return FAIL end %поиск исчерпан Вместо того чтобы находить все потомки данного состояния, а затем помешать ,,х 8 список open, этот алгоритм рассматривает потомки по одному. Для каждого из них курсивно находятся все потомки, а затем рассматривается очередной потомок исходи состояния. Следует заметить, что алгоритм предполагает определенный порядок оПСР тор°в генерации состояний. Если при рекурсивном поиске некоторый потомок яВЛЯ ^С°“- Т° поиска успешно завершается, и, естественно. ₽аТЬеВ ланного потомка Если рекурсивный вызов для одного из' томки. Тм.ш S 8 ЧПИК' Т0 6удет Рассм°треи брат этого потомка, а также все ег биву (см. подразди'Тг зГч ИТ" о6ходнт весь гРаФ аналогично алгоритму пои«а )• Читателю рекомендуется проверить это утверждени Часть II. Искусственный интеллект как представление и о» 188
Рекурсия позволяет обейтесь без списка onm м НО реализовать рекурсию на каком-либо язмке ' ”М' посредством которого мож- дельную запись актцваЧцИ (activation record) а0ПЖСН "ШЮЧаТЪ от‘ „ого вызова. Каждая такая запись активации ‘ ““ рск!,р<:и"- состояние выполнения ди каждого вызова п»»,-,™' п₽'катъ ;шка-п-иыс переменные и процедуры с новым состоянием новая запис^актектош со" КаЖЛ°М Р^сианом вызове (состояние), все локальные переменные и текущее охраняет параметры процедуры алгоритме поиска состояния. нахоХиеся hXcmZZ' ВЫП°“' В О'™™ довательности записей активации рекурсивных вызовов 3 °М "У™'сохраняются “ после’ также последнюю операцию. хотораХХХТи гГ“ ™Г° С°аерЖИТ И иыла сделана При генерации соответствующего по- томка Это позволяет генерировать при необходимости брата данного потомка. Возврат производится, если ни один из потомков данного состояния ие привел к цели, что послужило причиной неудачного завершения процедуры. В этом случае в процедуру генерации потомков возвращается значение fail. Затем эта процедура применяется к брату данного состояния. В рассматриваемом случае внутренние меха- низмы рекурсии заменяют список open, который был использован в итерационной версии алгоритма. Рекурсивная реализация позволяет программисту ограничить рас- смотрение единственным состоянием и его потомками, а не иметь дело со всем спи- ском open. Возможность рекурсии выражать глобальные понятия в простой форме — главный источник ее удобства. Поиск в пространстве состояний — процесс рекурсивный по природе. Чтобы найти путь от текущего состояния к цели, необходимо двигаться в дочернее состояние, затем из него перейти к потомку и так далее. Если соответствующее дочернее состояние ие ведет к цели, то необходимо рассмотреть состояние того же уровня, на котором находится ро- дительское состояние. Рекурсия разбивает большую и трудную проблему (поиск во всем Пространстве состояний) на более простые части (генерирование потомков отдельного состояния), а затем применяет (рекурсивно) эту стратегию к каждому потомку. Этот процесс продолжается до тех пор, пока не будет найдено целевое состояние или исчер- пано все пространство состояний. Задача символьного интегрирования, рассмотренная в подразделе 3.3.3. является превосходным примером мощности рекурсивного подхода в задачах поиска. При ин- тегрировании выражения обычно выполняется замена переменных или декомпозиция интеграла, сведение его к совокупности более простых интегралов (подзадач). Эти подзадачи также могут быть решены рекурсивно с последующим объединением ре- зультатов в решении исходной задачи. Например, после применения правила суммы интегралов (интеграл суммы равняется сумме интегралов) можно попытаться рекур- сивно проинтегрировать каждое из слагаемых. В дальнейшем можно снова применять Декомпозицию и замену, пока не будет проинтегрирован каждый in членов. Затем ре- зультаты интеграции объединяют» (посредством суммирования) в конечный резуль- тат. Таким образом, рекурсия - это естественный инструмент для систематической Декомпозиции задачи с последующим объединением результатов решения частных за- •Дач для решения исходной проблемы. ___ t._u d г -г «птгкйный подход будет расширен до некоторого кон- В следующем разделе этот рекурсивным под- д F г mmriktu испозьзует унификацию и вывод для ге троллера логического решателя задач, который исп лыу > ч» „..„„...„о,- иерашш пространства лотическпх отношений и поиска в нем Загори™то XT™ операцию логического умножения нескольких целей and. а также построен», обратных Цепочек от цели к предпосылкам. Глава 5. Управление поиском и егореализация в пространстве состояний
5.2. Поиск по образцу В разделе 5 2 рекурсивный поиск будет применен к пространству лот„ЧСС1Я)го да В результате получим общую процедуру поиска для исчисления „ред„катов. '»>• ДопуХим. необходимо поезро™ алгоритм, который определяет являете, „„ жение исчисления предикатов логическим следствием некоторого набора утверж^ Эго предполагает поиск от цели е применением правил мофю понос. определяю^ 1 реходы между состояниями. Имея цель (типа р(я». алгоритм использует унифик для выбора импликаций, заключения которых соответствуют пели (например, ,(Х) “ р(Х)). Поскольку алгоритм обрабатывает импликации как потенциальные правила дл« разрешения запроса, их часто называют просто правилами. После унификации цели с за- ключением импликация (или правила) и применения результирующих подстановок ко всему правилу предпосылка этого правила становится новой целью (9(a)). Ее Называют подцелью. Затем алгоритм повторяется для подцелей. Если подцель соответствует факту в базе знании, поиск прекращается. Последовательность выводов, ведущая от исходной цепи к данным фактам, доказывает истинность первоначальной цели. function pattern_search (current_goal); begin . , if current_goal содержится в списке closed %проверка на зацикливание then return FAIL else добавить current_goal в список closed; while в базе данных остаются правила или факты для унификации do begin case current_goal унифицируется с фактом: return SUCCESS; current_goal - это конъюнкция (p л . . . ) : begin for каждого конъюнкта do вызвать pattern_search для конъюнкта; if pattern_search успешно завершается для всех конъюнктов then return SUCCESS else return FAIL end; current_goal унифицируется с заключением правила , . (p в q P> : begin применить подстановку унификации цели к предпосылке (q)'‘ предпосылки; успешно OattAr ”-S®arch лля Pattern_aearch заве than return SUCCESS else return FAIL end; end; end; %конец оператора case end. кусстеенный интеллект как представление и поиск
в функции pattern_search поиск ........ версии рекурсивного алгоритма, который чтобы"^» ° "°М°ШЬЮ мо-зд,1’>,Ш|роьа,ш.ж „ий. использует унификацию (подраздел 2 3 2> я „ с00твстствис дпух выраже- „равило модус нонене. Текущее состояние „о потомков сосгоя"ий ~ rent_goal. Если current goal Хвст™* ,,рСЛСИВ,КН0 <=ur- CESS. В противном случае алгоритм „ьтстс^со™^ а”ГОР“™ ВМВращаст SUC- нисм некоторого правила, рекурсивно поосматп ВИТЬ current-goal с lcltclK),!c' " -1 „ „ н^урсивно просматривая все предпосылки. Если cur- rent_goal нс согласуется ни с одним ит с е дним из утверждении, алгоритм возвращает FAIL. Этот алгоритм также обрабатывает конъюнк-тчои,.^ л 1 с г конъюнктивные цели, которые часто встречаются в предпосылках правила. н » Для простоты этот алгоритм не решает проблему согласования подстановок перемен- ных при унификации. Это важно при разрешении конъюнктивных запросов с общими переменными (например р(Х)лЧ(Х)). Оба конъюнкта должны быть согласованы не только между собой, но и с унифицированными значениями переменной X (подраздел 2.3.2). Эту проблему мы рассмотрим в конце раздела. Главное преимущество использования таких общих методов, как унификация и правило модус поненс, для генерации состояний заключается в том, что результирую- щий алгоритм может просматривать любое пространство логических выводов. Специ- фические проблемы описываются утверждениями исчисления предикатов. Таким об- разом, знания о задаче отделяются от реализации ее решения на компьютере. Функция pattern_search обеспечивает первую реализацию такого отделения знаний от управления. 5.2.1. Пример рекурсивного поиска: вариант задачи хода коием Использование исчисления предикатов с общим контроллером для решения задач по- иска можно проиллюстрировать на примере упрощенной версии задачи хода конем (knight’s tour problem). В шахматах конь может перемещаться на два поля по горизонтали или вертикали и на одно поле в перпендикулярном направлении. При этом он не должен выйти за пределы шахматной доски. Таким образом, в самом общем случае существует не более восьми возможных ходов (рис. 5.1). Традиционная формулировка задачи заключается в том. чтобы найти такую последо- вательность ходов конем, при которой он становится на каждую клетку только один раз. Эта задача дала толчок к развитию и представлению алгоритмов поиска. Пример, кото- рый мы используем в этом разделе.— упрощенная версия задачи хода конем. Здесь не- обходимо найти такую последовательность ходов, при которой конь побывал бы в каж- дом поле уменьшенной шахматной доски (3x3) только один раз. (Полная задача хода ко- нем рассмотрена в подразделе 5.3.2.) На рис. 5.2 показана шахматная доска, размером 3x3, где каждая клетка помечена це- лым числом от 1 до 9. Для простоты эта схема маркировки будет использоваться вместо более общей схемы, в которой каждая клетка маркируется двумя цифрами, номером строки и номером столбца. Поскольку размер шахматной доски уменьшен, мы просто перечислим возможные ходы, а не будем разрабатывать общий оператор перемещения- В этом случае допустимые ходы на доске можно описать с помощью предиката move. параметрами которого являются номера начальной и конечной клетки допустимого хода. НапрцМср> move( 1,8) перемешает коня из верхнего левого утла в середину нижнего ря- да- Предикаты на рис. 5.2 описывают все возможные ходы для шахматной доски 3x3. Глава 5. Управление поиском и его реализация в пространстве состояний 191
moved,8) move(6,1) moved,6) move(6,7) move(2,9) move(7,2) move(2,7) move(7,6) move(3.4) move(8,3) move(3,8) move(8,1) move(4,9) move(9,2) move(4,3) move(9,4) Рис. 5.2. Шахматная доска для упрощенной задачи хода 1 2 3 4 5 6 7 8 5x3 с допустимыми ходами конем - п ь-Ачестве примера Эти предикаты составляют базу знании для задачи хода конем, о ка Ование использования унификации для обращения к этой базе знаний проверим су различных ходов на шахматной доске. Для определения возможности перех 8)) • из клетки 1 в клетку 8 будем вызывать процедуру pattern_search (move « Поскольку данная цель унифицируется с фактом move( 1,8) в базе знании, фУ вращает значение SUCCESS без каких-либо подстановок переменных. г0 Другой запрос позволяет определить, куда конь может переместиться из н еТСЯ местоположения, например, из клетки 2. В этом случае цель move( 2, X) унифи11«Р с двумя различными предикатами в базе знаний с подстановками {7/Х} и {9/Х} емент3 ли move(2,3) результатом будет FAIL, так как в базе знаний не существует эЛ уСТ move(2,3). Ответом на запрос move(5,V) тоже будет FAIL, потому что не суШе утверждений, задающих перемещение из клетки 5. по- следующая задача состоит в построении алгоритма поиска для определения п следовательных шагов по доске. Это можно сделать с помощью импликаций исчис Часть II. Искусственный интеллект как представление И ПР“ТшагоХобыТСЯ " ба3е ЗНаНИЙ как ™ ” X ли направление ™ДЧерКНугь' ™ ™ "P*™a обеспечивают поиск от цели, мы XX™- Следовательно, прав.™ будем писать как Например, путь с двумя ходами можно записать так. V X, У [path2(X, Y}^3Z [mornlX, ZPmovetZ. Y)l]. Это правило утверждает, что для всех клеток X и Y существует путь с двумя ходами, если существует такая клетка Z, что конь может переместиться из X в Z. а затем — из Z в У. Общее правило path2 можно применять различными способами. Например, оно под- ходит для проверки существования двухходового пути из одной клетки в другую. Если функция pattem_search вызывается для цели path2f\,3), то проверяется соответ- ствие этой цели последовательности правилpath2(X,Y). При этом выполняются подста- новки для предпосылок правила. Результатом является конкретное правило, которое оп- ределяет условия, необходимые для такого пути. раг/з2( 1,3) <- 3Z [move(1, Z) л move(Z, 3)]. Затем функция pattern_search вызывает сама себя с этим параметром. Посколь- ку это конъюнкция двух выражений, pattem_search пытается разрешить каждую подцель отдельно. Это требует не только согласованности обеих подцелей, ио и непро- тиворечивости связывания всех переменных. Подстановка 8 вместо Z дает возможность согласовать обе подцели. Другой запрос может состоять в том, чтобы найти все клетки, которые могут быть достигнуты из клетки 2 за два хода. Это достигается вызовом pattem_search для цели path2(2, Y). Используя подобный процесс, можно найти все возможные подста- новки, включая {6/V) и {2/ Y} (с промежуточным значением Z. равным 7), а также {2/V) и {4/У) (с промежуточным значением 9). Дальнейшие запросы могут состоять в том. что- бы найти путь за два хода из клетки с некоторым номером в ту же самую клетку, из любой клетки в клетку' 5 и так далее. Обратите внимание на одно из преимуществ поиска по об- разцу: в качестве начальной цели могут быть взяты самые разнообразные запросы. Аналогично путь с тремя ходами проходит через две промежуточные клетки, которые являются частью пути от начального состояния к цели. Такой путь может быть опреде- лен следующим образом. У Х, Y [path3(X, Y) <-3Z, W[move(X. Z) л move|Z, IV) л moce(lV,y)]]. Используя это определение, можно рассматривать такие задачи, как path3(l ,2), path3( 1 ,Х) или даже раГЛЗ(Х, И- Эти задачи мы оставляем читателю в качестве уп- ражнений. Очевидно, что аналогичным способом можно решать задачи нахождения пути произ- вольной длины. Просто необходимо указать соответствующее количество промежуточ- ных мест “приземления". Также очевидно, что путь большей длины может быть оиреде- лен в терминах пути меньшей длины. V X, Y (path3(X, Y) <- 3Z[moW3(X, Z) л path2(Z, У)]]. Это дает возможность получить общее рекурсивное правило. V X, Y lpath(X, Y) <—3Z [moi/e(X, Z) л path[Z, У)]]- Последнее правило можно использовать для проверки существования "^"Р^- вольной длины. Такая задача может быть сформулирована следующим образом. Найти 193 Глава 5. Управление поиском и ого реализация в пространство состояний
ПУТЬ из ОДНОЙ клетки в ДРУО™- ПРИ ??°М Х°Д И3 иачально“ оетеи в "Ромежу^. HVfo а затем из промежуточной в конечную • пекурсивнм нр»Вш,о -пут,," неполно в том смысле, что в нем не опрЕдада„о ловче выхода да рекурсии. Поэтому любая попытка определить путь к цели, испоо J предикат path, будет безуспешной, потому что каждая попытка «анта промежуток пуп., снова будет приводи» к рекурсивному вызову pafA(Z, У). Это объясняется тем, что не определено условие достижения конечного состояния. Этот недостаток может быгь исправлен, если к базе знаний добавить условие path(X, X). Поскольку path(x, X) у„и филируется только с предикатами типа path( 3,31 или path{ 5,5), то оио определяет не. обходимое условие завершения рекурсии. Тогда общее рекурсивное определение пути задается двумя формулами исчисления предикатов. УХраГЛ(Х.Х) V X, Y[path(X, У) <-3Z[move(X, Z)Apath[Z, У)]]. Еще раз обратите внимание на элегантность и простоту рекурсивной формулировки Если объединить приведенные выше условия с рекурсивной процедурой pat- tern_search. то эти правила позволяют .....л D УПля нем. Объединяя их с правилами (или базы знаний). Л7О1/й{1, В) move(3, 4) n?ova(6, 1) movefB, 3) VXpath(X, X) VX, Y[path(Xt Y) 3 Z [movei найти всевозможные пути в задаче хода ко- получим полное описание задачи перемещения коня, move(2, 7) move(4, 3) move(7, 6) move(9, 4) move{2, 9) move(4, 9) move(7, 2) moue(9, 2) n?ove(1 6) move(3. В) move(6, 7) move(3, 1) -(X, Z)APar/7(Z, ИЦ- Следует заметить, что при решении задачи использовались логические описания, опре- деляющие пространство состояний, и процедура pattern_search поиска в этом про- странстве. Хотя правило path достаточно удовлетворительно определяет путь, оно не ука- зывает, как найти этот путь. Действительно, на шахматной доске существует много других путей, которые не ведут к цели, но, тем не менее, удовлетворяют этому определению. На- пример, если не принимать во внимание механизм предотвращения зацикливания, то поиск целирагб(1,3) может привести к зацикливанию между клетками 1 и 8, вместо нахожде- ния правильного пути 1—>8—>3. Таким образом, логическими следствиями базы знаний являются и цикл, и правильный (допустимый) путь. Аналогично, если рекурсивное пра- вило будет проверяться перед условием выхода из рекурсии, то условие выхода из рс* курсии path(3,3) будет проигнорировано, и поиск продолжится безо всякого смысла. 5.2.2. Усовершенствование алгоритма поиска по образцу Хотя начальная версия функции pattem_search определяет правильное поведен^ алгоритма поиска для выражений исчисления предикатов, все же стоит обратить внима на некоторые тонкости. Они включают порядок рассмотрения альтернативных варианте' корректную обработку полного набора логических операторов (a, v и -)- Логика по св сути декларативна, и без предписаний стратегии поиска она определяет прОсТРаН возможных выводов, но не указывает решателю, как выделить из него полезные- Реалнзаиии рассуждений средствами исчисления предикатов необходим р м управления, который осуществляет систематический поиск в пространстве. Часть II. Искусственный интеллект как представление и п этом позволяет избежать тупиковых путей и зацикливания. Алгоритм управления типа pattern_search должен пытаться найти альтернативные пути в некоторой последо- вательности. нание этой последовательности позволяет разработчику программы управлять поиском, должным образом систематизируя правила в базе знаний. Самый простой способ определения такой последовательности — потребовать, чтобы алгоритм проверял правила и факты в том порядке, в котором они встречаются в базе знаний. В задаче хода конем это гарантирует, что условие выхода из рекурсии path(X. X) будет рассматриваться перед следующим рекурсивным шагом. Другая проблема заключается в наличии логических связок в предпосылках правил, например, в импликациях вида: р^—рлг или pt-qA(rvs). Оператор л означает, что ре- зультат будет истиной, если выражения q и г тоже истинны. Кроме того, конъюнкты в выражениях должны разрешаться с помощью согласованных значений переменных- Так. чтобы найти значение выражения р(Х)лд(Х), не достаточно разрешить р(Х) и q(X). ис- пользуя подстановку (а/Х) и {Ь/Х}. Оба конъюнкта должны быть разрешены с помощью одного и того же соответствующего значения переменной X. С другой стороны, оператор v (или) обеспечивает истинность для всего выражения, если хотя бы одна из его частей является истиной. Алгоритм поиска должен принимать это во внимание. Последнее дополнение к рассмотренному алгоритму — это его способность находить цель, используя логическое отрицание Функция pattem_search обрабатывает ин- вертированные цели, разрешая вначале операнд отрицания —и Если эта подцель дости- жима, то процедура pattern_search возвращает FAIL. Если же эта цель недостижи- ма. то pattern_search возвращает пустое множество подстановок, указывающих на успех. Обратите внимание на то, что даже если подцель содержит переменные, то ре- зультат разрешения ее отрицания не может содержать никаких подстановок. Это связано с тем, что отрицание принимает значение “истина”, только если его операнд не удов- летворяется. Следовательно, операция отрицания не может возвращать никаких значе- ний связывания для этого операнда. Наконец, алгоритм должен возвращать не значение SUCCESS, а те значения связывания, которые использовались при решении Например, для нахождения пути move( 1, X) сущест- венной частью решения являются подстановки {6/Х} и {8/Х). Окончательная версия функции pattem_search, возвращающая множество уни- фикаций, удовлетворяющих каждой подцели, имеет следующий вид. function pattern_search(current_goal) ; begin if current_goal содержится в closed %проверка на зацикливание then return FAIL else добавить current.goal в список closed; while остаются унифицирующие факты или правила do begin case current_goal унифицируется с фактом-. return унифицирующие подстановки; current_goal инвертирована (-> р) •’ begin вызвать pattern_search для р; if pattern__search возвращает FAIL Глава 5. Управление поиском и его реализация в пространстве состояний 194
%отрицание истинно then return else return end; current_goal - begin for каждого * begin FAIL; (Р конъюнкта; search =°эв₽а®^ унификаций; КОМПОЗИЦИЮ всех уиич; FAIL; ЭТО ДИЗЪЮНКЦИЯ (Р . это конъюнкция конъюнкта do °вызвать pattern_search для “3pattern_search возвращает FAIL ейе применить^подстановки к другим конъюнктам; end: ____,. „„чямаает SUCCESS для всех конъюнктов if pattem_b^ ““ then return else return end; current_goal - begin repeat for каждого дизъюнкта вызвать pattem_search для дизъюнкта until больше нет дизъюнктов или SUCCESS; if pattern_search возвращает SUCCESS then return подстановки else return FAIL; end; current_goal унифицируется с заключением (p in p<— q) : begin применить подстановки унификации цели к предпосылке (q) ; вызвать pattern_search для предпосылки; if pattern_search возвращает SUCCESS then return объединение подстановок р и q else return FAIL; end; end; end return FAIL end. Этот алгоритм поиска в пространстве правил исчисления предикатов и фактов поло- жен в основу языка PROLOG (в котором используется хорновская форма предикатов, см. подраздел 12.3) и многих оболочек экспертных систем, работающих от це™1 (см. часть VI). Альтернативный принцип управления поиском по образцу обеспечивают укцноняые системы, которые будут рассмотрены в следующем разделе. «окончание оператора case ^окончание цикла while 5.3. Продукционные системы 5.3.1. Определение и история развития у о й Продукционная система (production system) — это модель вычислен • ГОрцтМ°в особо важную роль в задачах искусственного интеллекта как для создания ------------------------- ---——--------------------------— 196 Часть II. Искусственный интеллект как представл поиска, так и для моделирования решения задач человеком. Продукционная система обеспечивает управление процессом решения задачи по образцу и состоит из набора продукционных правил (production rule), рабочей памяти (working memory) и цикла управления “распознавание-действие". ОПРЕДЕЛЕНИЕ ПРОДУКЦИОННАЯ СИСТЕМА Продукционную систему можно определить на основе следующих категорий. I. Набор продукционных правил. Их часто просто называют продукциями (productions). Продукция — это пара "условие-действие", которая определяет одну порцию знаний, необходимых для решения задачи. Условная часть правила — это образец (шаблон), который определяет, когда это правило может быть применено для решения какого-либо этапа задачи. Часть действия определяет соответст- вующий шаг в решении задачи. 2. Рабочая память (working memory) содержит описание текущего состояния ми- ра в процессе рассуждений. Это описание является образцом, который сопостав- ляется с условной частью продукции с целью выбора соответствующих действий при решении задачи. Если условие некоторого правила соответствует содержи- мому рабочей памяти, то может выполняться действие, связанное с этим услови- ем. Действия продукционных правил предназначены для изменения содержания рабочей памяти. 3. Цикл “распознавание-действие". Управляющая структура продукционной систе- мы проста: рабочая память инициализируется начальным описанием задачи. Текущее состояние решения задачи представляется набором образцов в рабочей памяти. Эти образцы сопоставляются с условиями продукционных правил; что порождает подмножество правил вывода, называемое конфликтным множест- вом (conflict set). Условия этих правил согласованы с образцами в рабочей памя- ти. Продукции, содержащиеся в конфликтном множестве, называют допусти- мыми. Выбирается и активизируется одна из продукций конфликтного множест- ва (разрешение конфликта). Активизация правила означает выполнение его действия. При этом изменяется содержание рабочей памяти. После того как вы- бранное правило сработало, цикл управления повторяется для модифицирован- ной рабочей памяти. Процесс заканчивается, если содержимое рабочей памяти не соответствует никаким условиям. В процессе разрешения конфликтов (conflict resolution) выбирается для выполнения правило из конфликтного множества. Стратегии разрешения конфликтов могут быть достаточно простыми, например, выбор первого правила, условие которого соответ- ствует состоянию мира. Можно для такого выбора использовать сложную эвристику. Следует подчеркнуть, что продукционная система допускает использование дополни- тельных эвристик для управления алгоритмом поиска. Чистая продукционная модель не имеет никакого механизма выхода из тупиковых состояний в процессе поиска; она просто продолжает работать до тех пор, пока не будут исчерпаны все допустимые продукции. Многие практические реализации продукционных систем содержат механизмы возврата в предыдущее состояние ра- бочей памяти. Глава 5. Управление поиском и его реализация в пространстве состояний
прсдспвыеил 1111 Р"с- 5-1- Схем» "poi<v»"i|0""l”'U'"V,W" «..данной системы представлен „„ рис. 5.4. па„и Проста.! пример работы "1^ состоящую из символов в. Ь и с. в аролукииоип» <";ХХ-МОЙ. ecu ее условие соответствует части clpQK„ / ' „ipenpouya»"*’^" подстроки. которая соответствовала С| бочей вами... при части правила. Продукта......™ систем., - это £ ..оо.зомсн.сгсаетроко ип 1можсг зппрогр„мм11ро11„11п лп>, „ы,|0Я||С111<я модель .«число»» . копр 1Жптсс ес преднпэыпченио - эта рсМНМ1И, ' либо задач" "Л K0Ml t ’ толиеь-пдаип^систам. , мм №МПЬЮтсрИЫх вычислений, осдав0|1ных ВПС|,“™пых правилах", появилась в [РоЫ. 19431. В этой работе модель продукцИ01|. •^данныхпр в гачктв1> ф0рмш„,„0й теории вычислении. Основа этой те0. НЫХ "РХ"!Х.О! «Ы№йа и'гок. "° мнот-ом аналогичный правилам синтаксис ХаХа из примера 3.3.6. Эта теория также тесно связана с алгоритмами Маркоаа [Markov. 1954|.. подобно им эквивалентна машине Тыорин. . Интересное приложение продукционны* правил к моделированию человеческого мышления описано в работах Нюэлла и Саймона из технологического институт, Carnegie Institute of Technology (теперь - Carnegie Mellon Universny) в 1960-J970-X годах. Программы, которые они разработали, включая Универсмьныи решашем, задач (General Problem Solver), послужили важным приложением продукционных систем в искусственном интеллекте. Авторы исследовали человеческое мышление в процессе решения различных задач, таких как задачи по логике предикатов или игре в шахматы. Были составлены н разобраны на элементарные компоненты протоколы (образцы по- ведения. включая словесные описания процесса решения задачи, движения глаз и т.д.) решения различных задач. Эти компоненты рассматривались как основные биты зна- ния о методах решения задач человеком, для которых был реализован поиск на графе (так называемом графе поведения задачи). Для осуществления поиска в этом графе использовалась продукционная система. Продукционные правила представляли множество навыков человека при решении задач. Текущий фокус внимания был описан как текущее состояние мира. При работе продукционной системы "‘внимание” (или ‘‘текущий фокус”) решателя задачи сопос- тавляется с продукционным правилом, которое изменяет состояние ‘‘внимания” и при- водит его к соответствию с другим продукционным правилом (представляющим неко- торый навык), и так далее. Следует заметить, что в работе Ньюэлла и Саймона продукционная система исполь- зовалась Не только для реализации поиска на графе, но и для представления модели че- ния чппяи^и п°веден,1Я пРИ решении задачи. Продукции соответствуют навыкам РсшС эти лподукпни4tOCp°wo" паият11 человека. Подобно навыкам в долгосрочной памяти данной спеииЛи^гШ“е1'ЯМ7СЯ ПрИ ра^оте системы. Онн вызываются по “образцу шей базе знаний без°1' Пр°6лсмь1‘ а Новыс навыки Moiyr быть добавлены к существу системы cooTBeTCTBVPT°TBeTCTByK>1UCil команды записи. Рабочая память ироДУкШ,ой ка, и описывает rCK.iiiKpa>),,<0C!)U4li0‘l памяти, или текущей области внимания чел решения задачи не сохраняе1^'110 решсния 3^ачн- Содержание рабочей памяти п Эти результату ILuger, 1994]. “""«"ы о книгах [Newell и Simon, 1972] и |Luger- 1978b Шаблон рабочей памяти C1-AI С2-А2 СЗ-АЗ | Шаблон-» Действие Сп-»Ал I Рис. 5.5. Продукционная система. Цикл выполня- ется до тех пор, пока образец рабочей памяти не будет более соответствовать ни одному из усло- вий продукционных правил Набор продукций: 1. Ьа * аЬ 2. са -* ас 3. cb -* Ьс Конфликтное Применение Итерация# Рабочая память множество правила 0 сЬаса 1.2,3 1 1 саЬса 2 2 2 асЬса 2.3 2 3 асЬас 1.3 1 4 асэЬс 2 2 5 аасЬс 3 3 6 ааЬсс 0 Останов Рис. 5.4. Работа простой продукционной системы Ньюэлл. Саймон и другие исследователи использовали продукционные правила для моделирования различия между новичками и экспертами ({Larkin и др., 1980]. [Simon и Simon, 1978)) в таких областях, как решение алгебраических и физических задач. Про- дукционные системы также составляют основу для изучения человеческого и компью- терного обучения [Klahr и др.. 1987]. На этой традиции построены системы ACT* [Anderson, 19836) и SOAR JNewell, 1990). Продукционные системы обеспечивают модель представления человеческого опыта в форме правил и позволяют разрабатывать алгоритмы поиска по образцу — центральный элемент основанных на правилах экспертных систем. В экспертных системах продукционные модели не обязательно являются точной реализацией че- ловеческого подхода к решению задачи. Однако существуют такие аспекты продук- ционных систем, которые делают их полезными в качестве потенциальной модели Глава 5. Управление поиском и его реализация в пространстве состояний 199 198 Часть Искусственный интеллект как представление
CXee"Z«“ исследования продукционных систем в Университете Карисги В результате versiIV) появилось важное семейство языков для ГИЛ Ме»- кусственног'о интеллекта. Это так называемые OPS-язьгкн официаяь,,^ ^Ие. Х~ (Official Production System). Хотя сначала они предназначали», 2 ° ' делирования человеческого подхода к решению задач, эти языки оказались о,е ' эффективными для программирования экспертных систем „других пр„Л()же„и1‘ кусственного интеллекта. 0PS5 - язык реализации для УАХ-конфнгуратора н других экспертных систем, разработанных в Корпорации цифрового оборуд0 " (Digital Equipment Corporation) [McDermott, 1981, 1982], [Soloway „ др., Ito [Barker н O'Connor, 1989). Широко распространены OPS-интерпретаторы ' сональных компьютеров и рабочих станций. Активно используется созданная в на СА объектно-ориентированная версия продукционной системы CLIPS, реализован ная на языке программирования С. В следующем разделе мы рассмотрим примеры использования продукционных сис- тем для решения разнообразных задач поиска. 5.3.2. Примеры продукционных систем ПРИМЕР 5.3.1. И снова “8-головоломка” Пространство поиска для задачи “В-головоломка", описанной в главе 3, является дос- таточно сложным и интересным. В то же время оно настолько мало, что не вызывает особых трудностей в рассмотрении. “8-головоломка” часто используется для изучения различных стратегий поиска, например, поиска в глубину и в ширину, а также эвристи- ческих стратегий (см. главу 4). Здесь мы рассмотрим продукционную систему. Не уменьшая общности, будем говорить о “перемещении пустой клетки” вместо пе- ремещения пронумерованной фишки. Допустимые ходы определены продукциями, пока- занными на рнс. 5.5. Естественно, если пустая клетка находится в центре, допустимы все четыре хода. Если пустая клетка находится в одном из углов, возможны только два хода- Если начальное и целевое состояние для “8-головоломки” определены, то можно создать продукционную систему, просматривающую пространство поиска задачи. В реализации решения этой задачи каждую конфигурацию иа игровой можно представить с помощью предиката состояния с девятью параметрами ( девяти возможных положений восьми фишек и пустой клетки). Правила м0*н представить как импликации, предпосылки которых обеспечивают проверку нео ' димых условий. С другой стороны, для описания состояния игровой доски мо* использовать массивы или списки. Пример решения этой задачи на основе поиска в пространстве состояний, onlical* "' ’Г’ 980 ' llpon;i-iI,oc1PHP™n на рнс. 5.5 и 5.6. Поскольку путь к решению бииойИ Пп«О?СН1' 1Л'’боко' если его не направлять, поиск был ограничен преДельН J|oi; текущего пета” ПрИем ДЛЯ Реа™зации предельной глубины поиска — следить за, оМ направлении т " ° СЛуЧае ПРевЬ1Шения предельной длины отслеживать путь в о на поиска павна ,М"УСКа”' ме»«изм поиска с возвратом. На рис. 5.6 прИОн’и1"“^- поненХьно с v ™ ™СЛ0 вгамо*н“ состояний рабочей памяти Р^ поненциально с увеличением глубины поиска 200 Часть II. Искусственный интеллект как представЛенИ
Начальное состояние Целевое состояние Продукционное множество Условие целевое состояние в рабочей памяти пустая ячейка не возле левой границы пустая ячейка не возле верхней границы пустая ячейка не возле правой границы пустая ячейка не возле нижней границы Действие -• останов * переместить пустую ячейку влево » переместить пустую ячейку вверх "* переместить пустую ячейку вправо переместить пустую ячейку вниз Рабочая память содержит текущая и w„..„ еостоячие игровойдое101. Режим управления 1, Испытать каждое правило по порядку. 2. Не допускать циклов. 3. Завершить работу при нахождении цели. Рис. 5.5. "8-го.юеоломка " как продукционная система Рис. 5.6. Решение задачи -8-головоломки" с помощью пр<нЬ»щонкой системы, в которой поиск ограничен глубиной 5 [Nilsson. 1980] Глава 5. Управление поиском и его реализация в пространстве состояний 201
ПРИМЕР 5.3.2. Задача хода конем „иске размером 3X3. представленная в разделе 5.2, может бьпь Задача хода конем ндр систем. В этом случае каждый ход можно предпа. решена с помощью продам рго 0ПИСЫвают расположение коня в конкре^ вить как правило, предп в другую клетку- Все возможные ходы коня описи- клетке, а действие пеР“' „редукционных правил. ваются с помощью ше TCKyluee. и целевое состояние доски. В режиме управле- Рабочая память ссдср* . текущее состояние не уравняется с целСвым. ния правила ПРИМ“" По прОСТой схеме разрешения конфликтов запускается Тогда процесс не вызь1вал0 зацикливания поиска. Поиск может привести к первое же правилi . Р возможное перемещение приводит в уже по- ХеХ7соХ“Сователь„о, вызывает зацикливание. Поэтому режим упраме. должен обеспечить возврат- Действия этой продукционной системы при определе- нии существования пути кз поля 1 в поле 2 представлены в таил. д.х. № правила Условие Действие 1 Конь в поле 1 -> Ход конем в поле 8 2 Конь в поле 1 —> Ход конем в поле 6 3 Конь в поле 2 —* Ход конем в поле 9 4 Конь в поле 2 —> Ход конем в поле 7 5 Конь в поле 3 —> Ход конем в поле 4 6 Конь в поле 3 —> Ход конем в поле 8 7 Конь в поле 4 —> Ход конем в поле 9 8 Конь в поле 4 —> Ход конем в поле 3 9 Конь в поле 6 —> Ход конем в поле 1 10 Конь в поле 6 —> Ход конем в поле 7 11 Конь в поле 7 —> Ход конем в поле 2 12 Конь в поле 7 —> Ход конем в поле 6 13 Конь в поле 8 —> Ход конем в поле 3 14 Конь в поле 8 —> Ход конем в поле 1 15 Конь в поле 9 —> Ход конем в поле 2 16 Конь в поле 9 —> Ход конем в поле 4 тупиковых состояний. Эта темы показана на рис. 5.7. версия определения предикат* P Диката path для продукционной сне Таблица 5.1. Продукционная систА..в . -------------------------------Решения задачи ущр № итерации Рабочая память -----~- Конфлихтное Текущее поле Папа Множество —------------;——-------------Целевое поле (№ правила) 2 1 о конем на поле 3x3 Активизация правила 1 13 5 7 15 Интересно заметить, что реализация предиката пути path в задаче хода конем из раз дела 5.2 фактически обеспечивает построение продукционной системы! С этой точки зрения pattern__search— это просто интерпретатор, а реальный поиск фактически осуществляется с помощью предиката path. Продукционные правила— это факты пе ремещений move, первый параметр которых определяет условие (на доске должно Ь)ТЬ достаточно места, чтобы сделать ход), а второй — действие (поле, в которое конь мо* перейти). Цикл распознавание-действие” (recognize-act) реализуется с помошью Рех^ сивного предиката пути path. Рабочая память содержит текущее и желаемое целсво>- * стояние. Ее можно представить параметрами предиката пути path. На данной итера^ конфликтное множество — это все выражения перемещений, которые унифицируя»^ целью move(X.Z). Эта программа использует простую стратегию разрешения к°нФ^ тов, состоящую в выборе и активизации первого предиката перемещения в базе зна • который не ведет к повторному состоянию, Контроллер также осуществляет возврат Выход Останов Рис. 5.7. Рекурсивный алгоритм вычисления пути в продукционной системе Продукционные системы могут порождать бесконечные цикш при поиске на графе про- странства состояний. Эти циклы особенно трудно определшъ в продукционной системе, по- тому что правила могут активизироваться в .тюбом порядке. Следовательно. зашпетиванне может появиться при работе системы, но его нс легко обнаружить путем проверки синтаксиса набора правил. Например, при использовании порядка следования правил move в задаче хода конем, описанного в разделе 5.2. и стратегий разрешения конфликтов путем выбора первого соответствующего правила образец move(2 ,Х) будет соответствовать факту move(2,9). указывая на перемещение в поле 9- На следующем итерации образец move(9,X) будет сопоставлен с move(9.2). Алгоритм снова вернется в поле2. образуя цикл. Часть II. Искусственный интеллект как представление и л Глава 5. Управление поиском и его реализация в пространстве состоянии 203
„„ванне функция pattern_search проверяла глобащ,. Чтобы предотвратить заиикл в Стратс,-„я разрешения конфликп)в ный список ,юссшсниь,х соответствующее перемещение, которое ведет в ласькследук>шемУ:вы6“Р еще не посещенное обследованных состояний closed нс яв)1яети В продукционной ™стем\ непосредственно в рабочей памяти. Предикат nyni глобальной переменной, а хр о6разом. чтобы использовать рабочую память ди path можно модифициров обнаружения циклов. pattern_search не поддерживает глобальный список Предположим, что функш У налиЧ1|е циклов. Предположим также, что языкис- Closed .1 не выполняет при р коиструкцией assert(X) (добавить угвер. числения предикатов pa I рабочую память свой параметр X. Конструкция ЖДСНИС в базу знании), котор дняемое действие, следовательно, assert всегда assert — не обычный предико, а ’Хтат^Хспользуетчя для помещения в рабочую память “маркера”, указы- Предикат ass ' е Этот маркер представляется унарным предикатом oeonw "aZVoM которого является поле игровой доски. Маркер Ьеел(Х) добавля- X рабочей памяти после посещения нового состояния X. Для разрешения конфлик- тов можно потребовать, чтобы при реализации правила move(X.Z) в рабочей намят,, от- сугствовал маркер been(Z). Для конкретного значения Z это можно проверить, сопоста- вив образен с содержимым рабочей памяти. Модифицированное рекурсивное определение пути выглядит так. XfXpath(X.X) , VX.Ypath{X,Y) t-3Z move{X, Z) a-> (been(Z)) л assert(been(Z)) a path(Z,Y). В этом определении move(X.Z) успешно выполнится при первом совпадения с предикатом move. При этом переменная Z станет связанной. Если предикат Ьееп( соответствует элементу рабочей памяти, то —। (been(Z)) принимает значение “ложь”. Тогда функция patern_search возвращается и ищет другое соответствие для move(X,Z). Если клетка Z является новым состоянием, то поиск продолжается, a been(Z) добавляется в рабочую память для предотвращения дальнейших зацикли ваний. Реальная активизация продукционного правила происходит на следуюшеМ шаге рекурсии. Таким образом, наличие предикатов been в рабочей памяти обесле чивает обнаружение зацикливаний в продукционной системе. Заметим, что исчисление предикатов используется как язык описания продукииоН*’ правил и элементов рабочей памяти. Процедурная сущность продукционных систеМ-оТ бует, чтобы цели в определении предиката path были исследованы слева направо- порядок интерпретации обеспечивается функцией patern_search. ПРИМЕР 5.3.3. Полная задача хода конем а3. Решение задачи хода конем можно обобщить для полной шахматной доск* р 1ямри Xjа ПосколькУ ие имеет смысла нумеровать ходы в такой сложно** за халы Х°Д0В набором 113 8 правил, генерирующих допустимые ходы коне (СМ рИс₽5л)КЦИ10 С00ТВеТСТВУют 8 возможным вариантам перемещения npw™,ZZ'CP0MTb С1роки и шахматной доски, то можно сформуй правило для хода конем: вниз на две клетки и вправо на одну- 204 )овать УСЛОВИЕ: current row<6 л current ДЕЙСТВИЕ: new row = current row column<7 + 2 л new column = current column+1 Если для представления продукций ncmm.™,,. доску можно определить „pe^K^l;^^) XZ с—столбец шахматной доски. Поивепеннп? nLI.iIe г vn.c», где м строка, р денное выше правило может быть записано в ис- числении предикатов следующим образом. записано в ис movetsquaretRow. Column), squareWewrow. Newcolumn)) <- less_than_or_equals(Row, 6) a equals(Newrow, plus(Row, 2)) л less_than_or_equals(Column, 7) л equals(Newcolumn, plus(Column, 1)) Здесь plus (плюс) — функция сложения, less_than_or_equals (меньше или равно) и equals (равно) тоже имеют очевидную арифметическую интерпретацию. Это правило можно дополнить, написав еще семь правил для определения оставшихся допустимых ходов. Эти правила заменяют факты move в версии задачи 3x3. Функция path (путь) в примере 3x3 определяет цикл управления в этой задаче. Как мы уже видели, при процедурной интерпретации описаний в исчислении предикатов, на- пример с помощью алгоритма pattern_search. семантика исчисления предикатов слегка изменяется. Одно из таких изменений — это последовательность разрешения целей. При этом к выражениям исчисления предикатов добавляется процедурная семантика (или упорядочение). Еще один пример изменений — введение таких металогических предика- тов, как assert (утверждать), которые указывают на действия вне интерпретации значе- ний истинности для выражений исчисления предикатов. Эти проблемы более детально обсуждаются при рассмотрении языка PROLOG в главе 14, а также при описании реали- зации механизма логического программирования в LISP в главе 15. ПРИМЕР 5.3.4. Финансовый советник как продукционная система Во второй и третьей главе мы разработали модель небольшой системы “финансового советника’’. Для представления знаний о финансовом состоянии вкладчика было исполь- зовано исчисление предикатов, а для определения наилучшего способа вложения денег применялся поиск на графе. Продукционная система является естественным средством Для реализации такой модели. Импликация логических описаний составляют продукци- онные правила. Вся конкретная информация, в том числе зарплата клиента, число ижди- венцев и т.п., помещается в рабочую (оперативную) память. Правила начинают функ- ционировать, как только удовлетворяются их предпосылки. Из противоречивой совокуп- ности правил выбирается некоторое правило. Оно выполняется, а его заключение Добавляется в рабочую память. Это продолжается до тех пор, пока в рабочую память не будут добавлены все возможные заключения верхнего уровня. Действительно, многие оболочки экспертных систем являются продукционными системами с поддержкой до- полнительных возможностей. Среди них: интерфейс пользователя. поддержка рассужде- ний с неопределенностью, редактирование базы знаний и контроль выполнения поиска. 5.3.3. Управление поиском в продукционных системах Модели продукционных систем предоставляют дополнительные возможности подо- бавлению эвристического управления к алгоритму поиска. Эта дополнительные удобства ' ----------------------------------------- "«и поис1( Часть II. Искусственный интеллект как представлени Глава 5. Управление поиском и его реализация в пространстве состояний
т вы6ор сзра™™ (на основе данных ш.н от цели), выбор самой сзру^ :„^ч^™р“'’ешя"мк1’нф''икгов' V ленне посредством выбора стратегии поиска: на основе данных или от ЦМи п на основе данных начинается с описания задачи (например, в виде наб “а“,юм признаков болезни иди массива данных, который необходимо „„тер. ' “““.ОХ) “тем из имеющихся данных выводятся новые знания. Это осуществи^ 1,р .юименения правил вывода, например, допустимых ходов в игре « других Хй генерирующих новые состояния в текущем описании мира, и добавлен,н, рауль. □в к опнсаХ рассматриваемой задачи. Этот процесс продолжается д0 тех пор, „ока не будет достигнуто целевое состояние. Такое представление рассуждений на основе данных подчеркивает их соответствие „о. дели продукционной системы. "Текущее состояние мира” (это исходные данные, которые приняты как истина или выведены как истина с помощью правил вывода) помещается в ра. бочую память. Затем в цикле “распознавание-действие” текущее состояние сравнивается с (упорядоченным) набором продукции. Если эти данные соответствуют условиям одного из правил вывода (унифицируются с ними), применение этого правила добавляет новую пор- цию информации к текущему состоянию мира (изменяя рабочую память). Все продукционные правила имеют форму CONDITION —> ACTION (условие-» действие). Если условие CONDITION соответствует некоторым элементам рабочей памяти, выполняется действие ACTION. Если продукционные правила сформулиро- ваны как логические импликации и действие ACTION добавляет утверждения в рабо- чую память, то активизация правила соответствует применению модус поненс. При этом на графе создается новое состояние. На рис. 5.8 представлен простой пример поиска на основе данных для набора продукционных правил, записанных в виде импликаций исчисления высказываний. Стратегия разрешения конфликтов— это простая стратегия выбора допустимого правила, которое сработало раньше всего (или совсем не активизировалось). Поиск прекращается, когда цель достигнута. Кроме того, на рисунке также представлены порядок активизации правил и состояния рабочей памяти в процессе выполнения, а также граф пространства поиска. До сих пор мы рассматривали функционирование продукционных систем на основе данных. Однако существуют продукционные системы, осуществляющие поиск от цел», главе 3 говорилось о том, что поиск от цели начинается с цели и возвращается назад к фактам, соответствующим данной цели. Чтобы реализовать это в продукционна с11сте дгт/пм П0МСЩается в рабочую память, а затем проверяется ее соответствие действиям как ппи tT ВЫВ°Да' ПРовеРка соответствия действиям выполняется точно так #«• (напвимсп с °СНОве даннЬ1Х проверяется выполнение условии COND (ACTION) ^0“’° уНИФИКации)- Всс продукционные правила, заклюй После пповеп ' 00тветствук>т челн, формируют конфликтное множество. В рабочую Ц?ь фоош<Пт"Я ДСЙСГВИЙ ACTI0N “ услов,,я CONDITION добавь Затем провися с™ Н°ВЬ“: nWUK™ (ШШ "<№ продукционных правил Этот™1"5 Н°ВЫХ СОСГОЯН|,Й заключениям ACTION ос Факт, содержащийся в начальном оГ "РОДШ1Жаетс9 тех ™Р. г,ока “ ^сперП'^ системах, факт, непоспрп^ писании задачи, или, как часто бывает э 3 д11. мой информации Поиск ВеИН0 пояучениый путем запроса у пользователя н£0 с. Поиск прекращу когда услов11я в Р х ПрУодукцн0НйЬ1Х прав^' ь II. Искусственный интеллект как представлен^6 206 п£,льз°ванных (активизированных) в процессе поиска, окажутся истинными. Оги условия и цепочка правил, ведущих к исходной цели, составляют доказательство се истинности. Продукционное множество: 1 рлр->цель 2. ГЛ5->р 3. WAT->Q 4. Mu-»q 5. v->s 6. начало-эулглр Последовательное выполнение: Номер итерации Рабочая память Множество конфликтов Примененное правило 0 начало 6 6 1 начало, v, г, q 6,5 5 2 начало, v, г, q, s 6,5,2 2 3 начало, v, г, q, s, р 6,5, 2, 1 1 4 начало, v, г, д, s, р. цель 6, 5, 2,1 останов Просмотренная часть пространства: начало Рис. 5.8. Поиск на основе данных в продукционной системе На рис. 5.9 дан пример рассуждений от цели на том же наборе продукционных правил, который показан на рис. 5.8. Заметим, что в процессе поиска от цели активизируется со- всем другая последовательность продукционных правил и исследуется не то пространст- во, что в версии поиска на основе данных. Как следует из вышеописанных примеров, продукционная система обеспечивает естественную реализацию поиска от цели и на основе данных. Продукционные пра- вила — это закодированный набор правил вывода (знаний в экспертной системе, ос- нованной на правилах) для изменения состояния внутри графа. Если текущее со- стояние мира (набор истинных утверждений, описывающих мир) соответствует ус- ловиям CONDITION продукционного правила, то действие ACTION этого правила определяет новое (истинное) описание существующего мира. Этот процесс рассмат- ривается как поиск отданных. С другой стороны, если проверяется соответствие цели части ACTION набора продукционных правил, а затем в качестве подцелей выбираются условия CONDITION, истинность которых должна быть доказана (путем сопоставления за- ключений ACTION в следующем цикле работы продукционной системы), то задача ре- шается путем поиска от цели. Поскольку набор правил может активизироваться или на основе данных или от цели, можно сравнить эффективность этих подходов. Сложность поиска для обеих стратегий измеряется таким понятием, как коэффициент ветвления (branching fac- Глава 5. Управление поиском и его реализация в пространстве состояний
tor) (раздел 4.4). Этот критерий сложности поиска позволяет оценить стоимость обеих версий решения задачи (поиск на основе данных или от цели) и выбрать паи более эффективную стратегию. Можно также использовать комбинацию стратегии. Например, вначале вести по иск в прямом направлении от данных до тех пор, пока число состояний не стан достаточно большим. Затем изменить направление поиска, направив его от цели использовать возможные подцели для выбора среди состояний. Опасность так ' ** подхода состоит в том, что при использовании эвристического, или “жадного” горитма поиска (глава 4) просмотренные части графа могут не совпасть nnvr ’ с дру- гом. Тогда потребуется более длительным поиск, чем при простом пол (рис. 5.10). Однако если коэффициент ветвления пространства не изменяется н пользуется исчерпывающим поиск, комбинированная стратегия поиска может зм ИС' тельио сузить исследуемое пространство, как показано на рнс. 5.11. И проверенные прямого поиска Продукционное множество: 1.рлр-+цель 2. chs~+p 3 WAr-tq 4. гли-н? 5. v-*s 6. начало-и'лглд Последовательность выполнения: Номер итерации Рабочая память Множество конфликтов Примененное правило 0 цель 1 1 1 цель, р, q 1,2,3,4 2 2 цель, р, q, г, s 1,2,3, 4,5 3 3 _ цель, p,q,r, s, w 1.2, 3,4, 5 4 4 цель,р, q, г, $, w, t, u 1,2, 3,4, 5 5 5 _ цель, p, q, r. s, w, t, u, v 1.2, 3,4, 5, 6 б —5 цель, p, q, r, s. w, t, u, у, начало 1,2,3,4,6, 6 останов Просмотренная часть пространства: Цель S.1O. Д^Рав.,етыйрасширенны. птск в ^1°Яния' 'Проверенные в процессе обратного поиска цель начало направление поиска системе Состояния, проверенные как в процессе прямого поиска, так и при поиске в обратном направлении Состояния, проверенные лишь в процессе прямого поиска отсекав часть npocmpaHcmsa uc^ Уественный интеллект как представление и поис< а 5 Управление поиском и его реализация в пространстве состояний 209
Управление поиском с помощью стр) кзурь, правил Структура правил в „родукшюиной системе, включая различия между условием „ действием, а гакже порядок проверки условий, определяет метод исследования про. странства Описывая исчисление предикатов как язык представления, мы подчеркну, ли декларативный характер его семантики. Таким образом выражения „счислен,1Я предикатов всего лишь определяют истинные отношения в области формулировки за дачи и ие делают никаких утверждений относительно порядка интерпретации их ком. поневтов. Следовательно, некоторое частное правило может иметь вид VX (Гоо(Х) Л доо(Х) -> тоо(Х)). Согласно правилам исчисления предикатов альтернативная форма того же правила может быть такой tfX (foo(X) —> тоо(Х) v -igoo(X)). Эквивалент- ность этих двух выражений может быть продемонстрирована с помощью таблицы истинности (раздел 2.1). Хотя зги формулировки логически эквивалентны, они не ведут к одинаковым резуль- татам, если интерпретируются как продукции (продукционные правила), потому что реа- лизация продукционной системы обеспечивает определенный порядок проверки соот- ветствия и активизации правил. По этой причине форма представления правил определя- ется удобством (или возможностями) проверки соответствия правилам в конкретной задаче. Это является результатом выбора способа интерпретации правил продукционной системой. Продукционная система налагает на декларативный язык описания правил процедурную семантику. Поскольку продукционная система проверяет правила в определенном порядке, про- граммист может управлять поиском через структуру и порядок следования правил в про- дукционном наборе. Несмотря на то что выражения VX(foo(X) л доо(Х) -» тоо(Х)) и VX (foo(X) -ь лтоо(Х) v ->доо(Х)) логически эквивалентны, при реализации поиска они обрабатыва- ются не одинаково. Квалифицированные специалисты кодируют наиболее значащие (ключевые) эв- ристики, руководствуясь своими профессиональными знаниями. В очередности предпосылок содержится важная процедурная информация, необходимая для ус- пешного решения проблемы. Очень важно, чтобы эта формулировка (форма выра- жения) сохранялась при написании программы. Например, когда механик говорит: -'Если двигатель не вращается, и фары не горят, проверьте аккумулятор", водителю предлагается определенная последовательность действий. В логически эквивалент- ном предложении “Двигатель вращается или фары горят, или проверьте аккумуля- тор эта информация теряется. Такая формулировка правил не выдерживает крити- ки, так как при управлении поиском необходимо, чтобы система вела себя логично, а последовательность активизации правил была понятной. Управление поиском через разрешение конфликтов одяют Продукционные системы (как и все системы, основанные на знаниях) по3 представлять эвристики непосредственно в правилах, описывающих знан енИе того, они предлагают другой метод эвристического управления — через Р и пСр, конфликтов. Простейшая подобная стратегия сводится к тому, чтобы вы РоНфд«к- вое соответствующее правило из рабочей памяти. Однако для разрешения j|a- тов (conflict resolution) потенциально может быть применена любая ст^аТС пример, в OPS5 поддерживаются следующие стратегии разрешения кон jBrownston и др., 1985]. ь II. Искусственный интеллект как представление и п°ис
1 ........................................................-......— ...... 2 . Новизна (recency). Стратегия новичмм ЛТГ1алт тооых соответствуют nfa» = * Отдаст '^почтение правилам, условия ко- торых соответствуют образцам, добавленным в рабочую память последними Это позволяет сосредоточить поиск на одной линии рассуждения П°С',СД""МИ- 3 ' С°ГЛт "° ™Й П₽аТС, “И сообразнее использовать более конкретное, а не более общее правило. Одно правило более специфично (конкретно) чем другое, если оно содержит больше условий, а значит, соответству- ет меньшему количеству образцов в рабочей памяти. 5.3.4. Преимущества продукционных систем для ИИ Как видно нз предыдущих примеров, продукционная система обеспечивает общую струк- туру осуществления поиска. Благодаря ее простоте, модифицируемости и гибкости в приме- нении знаний для решения задач продукционная система, как оказалось, может быть важным механизмом для конструирования экспертных систем и других приложений НИ. Главные преимущества продукционных систем искусственного интеллекта описаны ниже. Разделенпе знания и управления. Продукционная система— изящная модель раз- деления знания и управления в компьютерной программе. Управление обеспечивается циклом “распознание-действие" продукционной системы. При этом знания о методах решения задач сосредоточены непосредственно в правилах. Преимущество такого разде- ления заключается в простоте изменения базы знаний, при котором не требуется изме- нять код программы управления. И. наоборот, это позволяет изменять код управляющей части программы, ие трогая набор правил вывода. Естественное соответствие поиску в пространстве состояний. Компоненты продукци- онной системы естественно отображаются в логическую структуру поиска в пространстве со- стояний. Последовательные состояния рабочей памяти составляют вершины графа простран- ства состояний. Правила вывода— набор возможных переходов между состояниями. Разре- шение конфликтов обеспечивает выбор перехода (ветви) в пространстве состояний. Эп1 правила упрощают выполнение, отладку и документирование алгоритмов поиска. Модульность продукционных правил. Важный аспект в моделировании продукци- онных систем — это отсутствие синтаксического взаимодействия между продукционны- ми правилами. Правила могут только влиять на активизацию других правил, изменяя об- разец в рабочей памяти. Правила не могут “вызывать" другие правила непосредственно, как подпрограммы. При этом они не могут устанавливать значения переменных в других продукционных правилах. Область действия переменных этих правил ограничена от- дельным правилом. Эта синтаксическая независимость способствует инкрементальной разработке экспертных систем путем последовательного добавления, удаления или изме- нения знаний (правил) системы. Управление на основе образцов (pattern-directed control). Задачи, решаемые с по- мощью программ ИИ. требуют особой гибкости при выполнении программы. Это вызва- но еще и тем фактом. что правила в продукционной системе могут запускаться в любой последовательности. Описание задачи, представляющее текущее состояние мира, опре- деляет конфликтное множество я. следовательно, конкретный путь поиска и решения. Возможности эвристического управления поиском. Несколько методов эвристи- ческого управления были описаны в предыдущем разделе. Глава 5. Управление поиском и его реализация в пространстве состоянии
найтовка Модульность правил и итерационный характер их ВЫ- Трассировка и тр работой продукционной системы. На каждой стади„ "“"Не^с1ЛзСнаЧнХейс™е” рассматривается некоторое правило. Поскольку каждое ооотвётствуо^т отдельной “порции" (chunk) знании о методах решения задач, со- ХХиё правила должно давать ясную интерпретацию текущего состояния системы н XZ юлсе того, цепочка правил, используемых в процессе решения, отражает как X до графе, так и “цепочку рассуждений”, приводящую к решению задачи человека- опта В главе 7 это будет описано детально. Напротив, единая линия управления 11ли процедура, написанная на традиционном языке программирования, например, Pascal „„„ FORTRAN, фактически бессмысленна. Независимость от выбора языка. Модель управления продукционном системой не зависит от представления правил и рабочей памяти, если это представление поодержива- ет сравнение с образцами. Мы описали продукционные правила как импликации исчис- ления предикатов вида А => В, где истинность А и правило вывода модус поненс позво- ляют сделать заключение В. Существует немало преимуществ применения логического представления знаний и обоснования правил вывода, однако модель продукционной сис- темы может работать и с другими представлениями. Исчисление предикатов обеспечивает преимущество логически обоснованного выво- да, одиако немало задач требует рассуждений, которые не обоснованы в логическом смысле. Для них необходимы вероятностные рассуждения, правила умолчания и недос- товерные свидетельства. В главах 6, 7 и 8 мы обсудим альтернативные правила вывода, предоставляющие такие возможности. Независимо от типа используемых правил вывода, продукционная система обеспечивает средства поиска в пространстве состояний. Правдоподобная модель решения задачи человеком. Среди первых моделей, исполь- зующих продукционные системы, были модели нахождения решения задач человеком (Newell и Simon, 1972]. Эти системы, главным образом, использовались в качестве модели че- ловеческой деятельности в различных областях научных исследований (глава 16). Поиск на основе образцов (pattern-directed search) позволяет исследовать пространст- во логического вывода в исчислении предикатов. На этой методике основано немало за- дач. В инх исчисление предикатов используется для моделирования таких специфиче- ских аспектов мира, как время и изменения. В следующем разделе представлена методо- логия классной доски” как разновидность продукционной системы. В методологии классной доски группы однотипных продукционных правил объединены в источники знаний, которые участвуют в решении задачи путем общения через глобальную рабочую память классной доски”. 5.4. Архитектура “классной доски” ---------------------------------------------------- управления ётпёьгёёаССН0^0Ст( - ^lackb°^d)— заключительный механизм (алгоритм) сгранстве л'огичеотт™™ ° ЭТОЙ гааве' Если необходимо исследовать состояния в про- дукционных систем об ВЫВ0да “которым детерминированным способом, применение про- Хёё 3начитаь«У“ гибкость, позволяя одновременно пред™' разрешения конфликтов. feXXX* реШ“"й и выб₽ать следующее состояние путем ционных систем позволяя пг> 0ГИЯ класснои Доски” расширяет возможности продУ* дый из которых соответствует^НИЗОВаТЬ рабочук> память в виде отдельных модулей, «а* одмножеству продукционных правил. “Классная доска н •гегрирует отдельные наборы продукционных ГХх Р—« задач в --ня «-«..„с- фрагменты речи, представленные в виде оцифрованной™,™™^'.™ в^оцсссе распознавания необходимо выделить в этом речевом фрагменте отдольньте адова сформировать их в предложения и, наконец, синтезировать семантическое Федотов ленис полученного значения. пр^дьыв При взаимодействии множества процессов в ходе решения одной большой задачи может возникнуть немало сопутствующих проблем. Примером этого служит задача слияния (объединения) показаний датчиков [Lesser и Corkill, 1983]. Предположим, имеется сеть датчиков, соответствующих различным процессам. Предположим так- же, что процессы могут сообщаться. Поэтому соответствующая интерпретация дан- ных каждого отдельного датчика зависит от данных, полученных другими датчика- ми этой единой сети. Эта проблема возникает и в задаче управления траекторией движения самолета, находящегося в поле обзора многочисленных радарных устано- вок с последующим объединением показаний всех датчиков в процессе обработки информации. Архитектура “классной доски" (стратегия решения сложных системных задач с при- влечением разнородных источников знаний, взаимодействующих через обшее информа- ционное поле) — модель управления, которая успешно применяется для решения этой и других задач, требующих координации различных процессов или источников знания. “Классная доска" — центральная глобальная база данных, предназначенная для связи не- зависимых асинхронных источников знаний. На рис. 5.12 дано схематичное представле- ние архитектуры "классной доски”. На рис. 5.12 каждый источник знаний KS, (knowledge source) получает свои данные от “классной доски”, обрабатывает их и возвращает результаты “классной доске” для нх дальнейшего использования другими источниками знаний. Это изолированные процес- сы, действующие согласно своим собственным спецификациям (описанию). Поэтому при параллельной обработке информации или мультипроцессорной системы эти системы участвуют в решении единой задачи независимо друг от друга. Это асинхронная система, поскольку каждый источник знаний KS, начинает свою работу, когда находит соответст- вующие входные данные на “классной доске". Закончив обработку данных, он возвраща- ет свои результаты и ожидает новых входных данных. Подход “классной доски” к организации большой программы изначально был реализован в системе HEARSAY-II [Erman и др., 1980]. [Reddy. 1976]. HEARSAY-11 — это программа понимания речи. Первоначально она была разработана как внешний интерфейс для базы данных публикаций по теории вычислительных систем. Пред- полагалось что абонент библиотеки может обратиться к компьютеру на английском языке с запросом типа: “Есть ли у вас какие-нибудь работы авторов Фейгенбаума (Feigenbaum) и Фельдмана (Feldman)?”. Компьютер должен ответить на этот вопрос, предоставив информацию из базы данных библиотеки. Понимание речи требует ин- теграции ряда различных процессов, которым необходимы различные знания и ал- горитмы. Сложность этих алгоритмов и знаний может расти экспоненциально. Об- работка сигналов, распознавание фоном, слогов и слов, синтаксических анализ и се- мантический анализ— все эти процессы связаны друг с другом в процессе интерпретации речи. Глава 5. Управление поиском и его реализация в пространстве состоянии 212 асть II. Искусственный интеллект как представление и поиск
Архитектура “классной доски" позволила скоординировать в системе HEARSAY-II несколько различных источников знания, необходимых для этой сложной задачи. “Классная доска" обычно организована в двух измерениях. В HEARSAY-II этнмн изме- рениями были время, в течение которого звучала речь, н уровень анализа фрагмента ак- тивной речи. Каждый уровень анализа реализовывался различными классами источников знания. Эти уровни анализа таковы. KSi Форма волны (временная диаграмма) акустического сигнала. KS, Фонемы или возможные звуковые сегменты акустического сигнала. KSy Слоги, которые могут быть составлены нз фонем. К5д Возможные слова, результат анализа первого KS,. KS$ Возможные слова, результат анализа второго KS (обычно рассматриваются слова из различных частей данных). KS6 Генерация возможных последовательностей слов. KS7 Связывание последовательности слов в фразы. Эти процессы можно визуализировать в виде компонентов (см. рнс. 5.12). При обра- ботке устной речи форма волны произнесенного сигнала рассматривается на самом ниж- нем уровне. Обработку этих данных выполняют определенные источники знаний. Ре- зультаты их анализа переносятся на доску и используются другими процессами. Из-за неоднозначности разговорного языка на каждом уровне доски могут присутствовать многочисленные конкурирующие гипотезы. Источники знаний более высоких уровней пытаются устранить неоднозначности конкурирующих гипотез. Процесс анализа в HEARSAY-II не следует рассматривать просто как последователь- ность этапов анализа на низком уровне и создания данных, которые затем могут быть проанализированы на более высоком уровне. Система HEARSAY-II значительно слож- нее. Если KS на одном уровне не может обработать (осмыслить) переданные ему данные, то он делает запрос к соответствующему источнику о новых данных. Затем, получив но- мпгитопНЫе'деласт ешс ОДНУ иопытку их обработки или принимает другую гипотезу от‘ впемен»^пДптВ0НаЧаЛЬН0 полученных данных. Кроме того, различные KS, могут одно- являются асИНЛТЬ Над разными Фрагментами речи. Все процессы, как было уже сказано. = Г ~ Н на основе данных. Онн запускаются с появле- ют свои результаты™ ” продоД1кают работу, пока не закончат задание, затем возврата Один'Х к? " ЖДУТ задания. обработки инфо'рмХиГпепГ 'и“"‘"рови1икол'< обрабатывает сообщения о результата* ФР щи, передаваемые между другими KS,. Планировщик ранжирует ре зультаты деятельности каждого KS, и с помощью __________ - некоторое направление решения задачи Если "„один ° ” °ЧереДИ °6ec"e4"DacT „„„шик пешяет что Один И3 истачников знаний нс активен, планировщик решает, что задача завершена, н прекращает свою работу Когда программа HEARSAY содержала базу данных окопп тот , е a vajy данных около 1000 слов, она работала ДОС- таточно хорошо, хотя немного медленно. Когда же база данных была расширена, данные оказались слишком сложными для источников знания, и KS, не могли их обработать. Сис- тема HEARSAY-UI [Balzer н другие. 1980], [Егшап и др„ 1981) - это обобщение подхода, принятого в HEARSAY-II. Временное измерение в HEARSAY-III ие используется, но различ- ные уровни анализа сохранены. “Классная доска" в HEARSAY-Ш предназначена для взаимо- действия с реляционной базой данных общего назначения. На самом деле. HEARSAY-Ш — это оболочка для проектирования экспертных систем (см. подраздел 7.1.1). Важным нововведением в HEARSAY-Ш стало отделение планировщика н превращение его в контроллер ( классную доску ) для первичной классной доски предметной области. По- явление второй классной доски позволило разделить процесс планирования и реализовать его с помощью многочисленных источников знаний подобно тому, как сама задача разделяет- ся на различные уровни анализа. За разные аспекты процедуры решения (например, когда и как применять знания о предметной области) стали отвечать различные KS,. Таким образом, вторая “классная доска" позволяет сравнить и сбалансировать разные решения отдельных за- дач [Nii н Aiello, 1979], [Nii, 1986а], [Nii, 19866]. Существует и альтернативная модель “классной доски”, согласно которой важные части базы знании остаются на “классной доске’’, а не распределяются по источникам знаний [Skinner и Luger, 1991]. 5.5. Резюме и дополнительная литература В главе 5 обсуждалась реализация стратегий поиска, описанных в главах 3 н 4. Таким образом, ссылки, перечисленные в заключительной части глав 3 и 4, относятся также и к этой главе. В главе 5 представлена рекурсия как важный инструмент программирования поиска на графе, а затем в рекурсивной форме реализован алгоритм поиска с возвратами (backtrack algorithm) из главы 3. Поиск по образцу (pattern-directed search) с использова- нием унификации и правил вывода упрощает реализацию поиска в пространстве логиче- ского вывода. Было показано, что продукционная система является естественной структурой для моделирования решения задач и реализации алгоритмов поиска. Эта глава завершается примерами реализации продукционных систем, осуществляющих поиск на основе дан- пых и от цели. Действительно продукционные системы всегда были важной парадигмой Для программирования задач ИИ. начиная с работ Ньюэлла I, Саймона и их комет нз Carnegie Mellon University [Newell и S.mon, 1976]. [Klahr н др.. 1987]. Продукционная система также является важной структурой, поддерживающей исследования в области когнитивистики (науки о мышлении) (Newell и Simon. 1972]. (Luger. 1 J. Конкретные реализации продукционных систем описаны в (Brownston и др.. 19S.) I Waterman и Haycs-Rolh. 197SJ. Ранние исследования по модели “классной доски" описаны в Работах, посвяшенны Системе HEARSAY-II. - (Reddy, 1976), (Erman и др.. 1980]. Да-зьнеишее развтк лете- Дологпи "классной доски" описано в работах [Lesser и or г , INH. 19866], посвященных системе HEARSAY-Ш. и (Engelmore и Morgan. 1988]. Глава 5. Управление поиском и его реализация в пространстве состояний 215 асть II. Искусственный интеллект как представление и пои
.пнным системам, планированию и структурам "классной Исследования по продукции псслсдованнй в искусственном интеллекте. Интере, доски” остаются областью актив о6 атиться к последним трудам конференций Ameri- сующемуся читателю Pel<0MeHa’|jol.nce conference и International Joint Conference on Arti- к"*анн (МогваП KaUfmann’ ‘,3даЛ 1ГУДЫ К°Нферснцнй' a также сборник докладов по вопросам ИИ. 5.6. Упражнения --------------------------------------------------------_ 1. Алгоритм проверки вхождения из подраздела 5.1.1 рекурсивно определяет, является ли данный элемент членом списка. 1.1. Составьте алгоритм, вычисляющий число элементов в списке. 1.2. Составьте алгоритм, вычисляющий число атомов в списке. Различие между атомами и элементами состоит в том, что элемент сам может быть списком. (Дополнительная информация содержится в разделе 15.1.) 2. Напишите рекурсивный алгоритм поиска в ширину (с использованием списков open и closed). Можно ли с учетом рекурсии обойтись при поиске в ширину без списка open? Объясните. 3. Проследите выполнение рекурсивного алгоритма поиска в глубину (без использова- ния списка орел) в пространстве состояний, показанном на рис. 3.10. 4. В древнеиндийской чайной церемонии принимают участие три человека: взрослый, слуга и ребенок. Они выполняют четыре задачи: поддерживают огонь, подают пирожки, нали- вают чай и читают стихи. Эти задачи перечислены в порядке убывания важности. В нача- ле церемонии все четыре задачи выполняет ребенок. Затем они по одной переходят к слу- ге и B3pocnosfy. В конце церемонии все четыре задачи выполняет взрослый. Никто не мо- жет браться за менее важную задачу, чем те, которые он уже выполняет. Сгенерируйте последовательность шагов передачи задач от ребенка к взрослому. Запишите рекурсив- ный алгоритм выполнения последовательности этих шагов. 5. Используя определения перемещения н пути для задачи хода конем из раздела 5.2, проследите выполнение алгоритма pattern_search для следующих целей: a) path( 1,9); б) path( 1,5); в) path(7,6). Если предикаты move выполняются по порядку, то в алгоритме поиска часто быва- ют зацикливания. Как обнаружить цикл н реализовать возврат в этом случае? 6 “а ”ь1ка псевдокода версию алгоритма pattern_search с поиском в ши- горитма цените временную и пространственную эффективность этого ал- 7 темеш^ния”, КаЧеСТВе _модели правило из примера 5.3.3, запишите восемь правил пе- ремещения мя полкой версии игры хода конем 8x8 ' X»™"”Хл“ "а',Ш,Ь”"е С0Стаян"я’ показанные на рнс. 5.5, промоделируй* щих стратегий- оломки продукционной системой с использованием следую Часть II. Искусственный интеллект как представление и поиск
а) поиск от цели; б) поиск на основе данных. 9. рассмотрите задачу финансового советника, описанную в главах 2, 3 и 4. Используя исчисление предикатов в качестве языка представления, решите следующие задачи. 9.1. Опишите задачу явно в виде продукционной системы. 9.2. Сгенерируйте пространство состояний и содержимое рабочей памяти при реше- нии задачи, описанной в примере из главы 3, на основе данных. 9.3. Решите эту же задачу, используя стратегию поиска от цели. 10. В подразделе 5.3.3 представлены общие стратегии разрешения конфликтов на основе рефракции (refraction), новизны (recency) и специфичности (specificity). Предложите н обоснуйте еще две такие стратегии. 11. Предложите две прикладные задачи, для решения которых можно использовать структуру “классной доски’’. Кратко охарактеризуйте организацию “классной доски” и источников знания для каждой задачи. ^Управление 217

Часть III Представление и разум в ракурсе искусственного интеллекта Наш век беспокойства в значительной мере является результатом попыток выполнять сегодняшнюю работу вчерашними средствами... — Маршалл Мак-Люган (Marshall McLugan) Может быть, стоит рассматривать мозг как набор контроллеров для осуществляе- мой деятельности? Этот небольшой сдвиг в перспективе окажет большое влияние на то, как мы конструируем науку о мышлении. На самом деле это требует больших изменений в нашем ходе мыслей об интеллектуальном поведении. Необходимо отказаться от: мыс- лей (привычных со времен Декарта) о разуме как сфере, отличной от сферы тела; разде- ления восприятия, познания и действия; идеи исполнительного центра, где мозг выполня- ет высокоуровневые рассуждения; и, более того, отказаться от исследовательских методов, которые искусственно отделяют мысль от осуществляемого действия. — Энди Кларк (Andy Clark), Being There Представление и интеллект __________________________________________________ Вопрос представления (representation} как нанлучшего способа фиксации критиче- ских аспектов интеллектуального поведения для использования в компьютере или взаи- модействия с людьми был постоянной темой в течение всей пятндссятнлсгней истории И. Часть III начнем с обзора трех господствующих подходов к представлению, приня- р*'* в настоящее время исследователями ИИ- Первый подход, сформулированный в *950-х и 1960-х годах Ньюэллом и Саймоном в их работе, связанной с программой Logic "teorist (Логический теоретик) (Newell и Simon. 1956. 1963а]. состоит в использовании
„ И^Л«« (weak problem-solving method). Второй подход „ слабых методов решет Р^^и 198О.Х ГОДах и поддерживаемый разработок, °Лу~ чивший сводига к применению сильных методов решения первых экспертных ? главы ?) в 6олее совреМенных исследовании „г ' Г ТойастяТробототехн.тки и агентных методов [Brooks, 1987, 1989), (Clark, iW'7' бенно в областях рои и тедреннЫх представлениях интеллекта ' из этих методологий представления интеллекта. Три гаавы „^состоит часть III, включают более детальные описания этих подходов. “в конце 1950-х и начале 1960-х Алан Ньюэлл (Ahn Newell) и Герберт Саймон (Herbert Simon) написали несколько компьютерных программ для проверки гипотезы о L, что интеллектуальное поведение является результатом эвристического поиска. Про. грамма Logic Theorist, разработанная совместно с Дж. Шоу (J. С. Show) [Newell и Simon, 1963а] доказывала теоремы из области элементарной логики с помощью системы обо- значений и аксиом, описанных в (Whitehead и Russell, 1950]. Авторы характеризуют свое исследование как ориентированное на понимание ‘...сложных процессов (эвристик), которые эффективны при решении проблем. Следователь- но, мы не заинтересованы в методах, которые гарантируют решение, но требуют большого количества вычислений. Скорее, мы желаем понять, как математик должен доказывать теоре- му, даже когда в начале или в процессе доказательства он не знает, как достичь цели.” В более поздней программе GPS (General Problem Solver) Ньюэлл и Саймой [Newell и Simon, 1963e], [Newell и Simon, 1972] продолжили поиск общих принципов интеллектуально- го решения проблем. Система GPS решала задачи, сформулированные как проблемы поиска в пространстве состояний. При этом в процессе решения задачи выполнялось множество опе- раций для изменения представления состоянии. Система GPS искала последовательность опе- рации, которая могла бы преобразовать исходное состояние в целевое, осуществляя поиск та- ким же образом, как и алгоритмы, рассмотренные в предыдущих главах. Для управления поиском в пространстве состояний система GPS использовала анализ четен и средств (means-aids analysis)— общую эвристику для выбора средн альтерна- тивных операции преобразования состояния. В процессе анализа целей и средств прове- ряются синтаксические различия между текущим и целевым состояниями и выбирается ™СРр°р' КОТ°РЫЙ может уменьшить эти различия. Предположим, например, что сит- иго пытается доказать эквивалентность двух логических выражений. Если текущее ле|Г„ЯгНпТ1тмДе₽ЖИТ оператоР л- а У цели нет этого оператора, то в процессе анализа не- преобоазоваи1.УДаДСН'И ЭТ°™ опеРатоРа из выражений можно выбрать соответствующее “ тПРИМеР ’аК0Н Де М°Р'ана (» Р^дел 12.1). ГО решения пробтом"^8 °PS Сможет стать об|,|сй архитектурой для интеллектуально- которая проверяет лишь сим™ “° °Т °6ласти’ по<-кольку в ней используется эвристик. ограниченные стратегиями ксическУк> форму состояний. Программы, подобные 6 разнообразие применений ’ основанными иа синтаксисе, и ориентированные на и"1?0’ (weak method problem !’eu,ame№-lu задач на основе слабых метода ко всем предметным о'^ласт^п^г”™ ЗВРИСТИКИ. которая может успешно применял1’ проблемы, используют боли,. °бшем случае методы, с помощью которых мы РсШ . стировать болезни, так кя* °е КОличество знаний о ситуации. Врачи способны д|,а обширные медицинские знания '?11 111^110 К обшИм возможностям решения задач им знаниями в области архитектуры px‘nWoPbl проектируют дома потому, что обла“‘кЮ, Диагнозе, могутбьтбесЯо^?,,^Бе3условно’ ’“ристики, используемые в медин" и при проектировании офисного здания- 111 Представление и разум в ракурсе искусственного инта^3 220 Слабые методы значительно отличаются т- рЫе используют точные знания частной проблемной <ЯТО"У method), кото- системы диагностики автомобилей. ₽ “°И °блает„. Рассмотрим правило для если двигатель не заводится и фары не горят, та проблема в аккумуляторе или в проводах (0.8) Эта эвристика, перефразированная как правило -если.... то...-, фокусирует поиск иа подсистеме аккумулятора автомобиля, исключая другие компоненты и уменьшая про- странство поиска. Отметим, что эта частная эвристика, в отличие от анализа целей и средств, использует знание о функционировании автомобиля, а также знание о взаимо- связях между аккумулятором, фарами и стартером. Она бесполезна в любой проблемной области, за исключением авторемонта. Решатели задач иа основе сильных методов не только используют специфические знания о предметной области, но и требуют большого количества таких знаний. На- пример, эвристика ‘неисправен аккумулятор” не слишком полезна при диагностике поломки карбюратора и может быть вообше бесполезной в любой области, выходящей за рамки диагностики автомобилей. Таким образом, главной проблемой при разработ- ке программы, основанной на знаниях, есть проблема извлечения и организации больших объемов специфических знаний о предметной области. Правила могут также содержать меру (0,8 в приведенном выше правиле), чтобы отразить достоверность этой части знаний о предметной области. При использовании подхода на основе сильных методов разработчик программы де- лает определенные предположения о природе интеллектуальной системы. Эти предпо- ложения формализованы Брайаном Смитом (Brian Smith) [Smith, 1985] в виде гипотезы о представлении знаний (knowledge representation hypothesis). Согласно этой гипотезе “'...любой механически материализованный интеллектуальный процесс будет состоять из компонентов, которые а) мы, как внешние наблюдатели, естественно выбираем для пред- ставления пропозиционального учета знания всего этого процесса, и б) независимо от внешнего семантического свойства играют формальную роль в реализации повеления, со- ответствующего этому знанию.” Важным аспектом этой гипотезы является предположение, что знание будет пред- ставлено пропозиуионально. т.с. в форме, которая точно представляет знание вопроса и которая может рассматриваться внешним наблюдателем как “естественное описание этого знания. Второе важное предположение состоит в том, что поведение системы должно определяться предложениями базы знаний, и что это поведение должно соответ- ствовать воспринятому смыслу этих предложений. в последнее время при описании вопросов представления в ИИ часто используются такие термины, как агентное. внедренное (воплощенное), шли змерджентное реитние задач. Некоторые исследователи, работающие в пртшладных оо.тастях. таких к ' ка. разработка игр и Internet, включая [Brooks, 1987. logo). [Agre и Chapman, 1987). [Jennings. 1995] ,HWooldridge. 20001. подвергли сомнению требование наличия какой- либо централизованной базы знаний или общецелевой схемы вывода, Решатош задач Разрабатываются распределенные агенты: активные. с этой точки зрения решение задач рассматривается как взаимодействия агентов. решающих задачи в различных подконтекстах своих областей. Представление и интеллект 221
па .. агента безопасности. Процесс решения разбивается ,,а например- Internet-броузер» " оП №всс отсутствующей координацией за. несколько компонентов с сстмять сс1Корное восприятие своего окружения дач.Ситуативный агент мо»6с, 0Ж„да„цЯ инструкций от некоторого общего также реагировать в эт0“ ^„ой игре агент может решать локальную задачу ти- контроллера. Например подачи с„п)ала без общего обзора всей ситуации. зашиты от коккреп . должны деПстоовать без прямого вмешательства Агенты автономнссса. Таким образом, автономные агенты у1|рав. ЛЮДС" собственными действиями и внутренним состоянием. Кроме того, гибкие ЛЯЮ™Вдолжны Чувствовать ситуацию их локального окружения, а также быть цреду. eMow тельными - должны уметь предвидеть ситуации. И, наконец, они должны гибко отвечать другим агентам проблемной области, переговариваясь о задачах, целях и соот- ВСТНсВкХыс"и«№д“вагели в области роботики создали свои агентные системы. Родни Бпукс (Rodney Brooks) из лаборатории MIT Robotics Laboratory разработал так называе- мую категориальную архитектуру (subsumption architecture') — многослойную последа, вательность конечных автоматов, каждый из которых действует в своем собственном контексте, поддерживая также функциональность иа более высоких уровнях. Мануэла Велосо (Manuela Veloso) из лаборатории роботнки Карнэги Меллон создала команду футбольных роботов-агентов, которые взаимодействуют в рамках футбольных турниров. И, наконец, этот ситуативный и внедренный подход к представлению описывает- ся некоторыми философами, включая {Dennett, 1991, 1995] н [Clark, 1997], как соот- ветствующая характеристика человеческого интеллекта. Ниже в этой книге будут приведены дополнительные схемы представлений, включая коннскционистскин (глава 10) и генетический (глава 1!) подходы. Общие вопросы представления снова обсуждаются в главе 16. В главе 6 в деталях исследуются основные подходы к представлению, принятые в ИИ. Мы начинаем с ранних представлений, включающих семантические сети, сцена- рии, фреймы и объекты. Эти схемы рассматриваются с эволюционной точки зрения, по- казывая путь развития от самых ранних исследований ИИ до современных средств. Да- лее описываются концептуальные графы Джона Сова (John Sowa) — представление, ис- пользуемое для понимания естественного языка. Наконец приводятся агентный и ситуативный подходы к представлению. В частности, рассматривается категориальная архитектура Родни Брукса, которая ставит под вопрос необходимость центральной базы точных знаний, используемой с общсцслевым контроллером. главе? обсуждаются системы, усиленные знаниями и рассматриваются проблемы приобретения, формализации и отладки баз знаний. Мы представляем различные схемы В,°1ЮЧая от цели и от данных. Кроме систем поимела* ПРавилах’ будут представлены рассуждения, основанные на моделях । ноеть обла™"''" ',Ь,ТаЮТСЯ ™',к° "Ржавить теоретические основы и функцион^ д“о ™ь,ва Р"МеР' МС1ЛТ>0*"<^ неней, в то время как вторь,е строят точную 6» обяа™;“Z „Зчь :Уб№СТВуЮЩ'Ю УСПСШНЫС " неудачные .Гримеры из проблем^ планирования I уду'исм ПРИ решении проблем. Глава? завершается о з Р чтобыу„р™яя±: * "РИ КГОТОРОМ Т0ЧНЬ,е “• быть «Р™'“ЮЮН“ Глава 8 опись.вает г “ ,1“ ° ТаКНХ С,|0>кнь1’1 обл»^ях , как роботика. задач в условиях нео11оелрПРИеМ°В’ К0Т0Рь,е направлены на представление РсШ® я определенности и неуверенности. В этих ситуациях мы пытась Ик можно лучше объяснить часто неоднозначную информацию. Этот тин рассужде- ний часто наливаю г at уктивиыми (abduclive reasoning). Сначала будет представ- лена немонотонная логика и логика поддержки истинности, расширяющая логику предикатов за счет включения ситуаций с неопределенностью. Однако решение мно- гих интересных и важных проблем не всегда можно свести к дедуктивной логике. Для рассуждении в этих условиях вводится ряд других эффективных средств, вклю- чая байесовский подход, подход Демстсра-Шафера и неточный вывод на основе фактора уверенности. Глава содержит также раздел по нечетким рассуждениям и за- вершастся кратким описанием стохастических агентов. В части VI многие из этих представлений реализованы на языках LISP н PROLOG. Часть III. Представление и разум в ракурсе искусственного интеллвк” Представление и интеллект 223 222

Представление знаний Эта грандиозная книга, универсум, написана на языке математики. и ее символами служат треугольники, круги и другие геометрические фигуры, без которых невозможно понять ее слово — без них бродишь в темноте лабиринта... — Галилео Галилей (Galileo Galilei), 1638 Поскольку нет организма, который может покрыть бесконечное разнообразие, одной из основных функций всех организмов есть разбиение окружения на классы, при котором неидентичные стимулы могут трактоваться как эквивалентные... — Элеанор Рош (Eleanor Rosch), Принципы категоризации. 1978 Мы всегда имеем два универсума рассуждений — назовем их "физический " и “феноменальный " (или, как вы желаете) — один связан с вопросами количества и фор- мальной структуры, другой — с теми качествами, которые соответствуют слову “мир ”. Каждый из нас имеет собственные ментальные миры, собственные внутренние .маршруты и ландшафты, и они не требуют ясной нейрологической “корреляции ". — Оливер Сакс (Oliver Sacks), Человек, который ошибочно принял свою жену за шляпу, 1987 6,0, Вопросы представления знаний Представление информации для решения интеллектуальных проблем — важная и трудная задача, лежащая в основе ИИ. Раздел 6.1 содержит краткую историческую ретроспективу ранних исследований по представлениям: в нее включены семантические сети (semantic net- works), концептуальные зависимости (conceptual dependency), сценарии (script) и фреймы (frame). Раздел 6.2 посвящен более современным представлениям — концептуальным графам (conceptual graph), предназначенным для решения задач понимания естественного языка. В разделе 6.3 обсуждается требование создания централизованных и явных схем представления. Альтернативой является категориальная архитектура (subsumption architecture) Брукса для роботов. В разделе 6.4 представлены агенты — другая альтернатива централизованному Управлению. В последующих главах приведено расширенное обсуждение представлении, включая стохастическое (раздел 8.3), коннекционистское (глава 10) и генетическое (Эмерджентное) (глава 11).
К WK.-' - „&«каение с исторической ретроспективы, в которой база з,га„„й Начинаем наше обсужаен. ' и отношенни предметной области в вычисли описывается как “to6P°*c"" отношен.и (Bobrow. 1975]. Результаты вывода в бате тельные объекты и протрамь татам действий или наблюдений в мире. Выч„с. знаний должны соответствов р / привычные программисту, выражаются язы. лительяые объекты, отношения ком представления знан™’ „даоации знаний, которые применяются в различны. Существуют Общие приьком представления. Например, иерархии классе» областях и могут прям * „бщесмысловых классификационных системах. Но к® можно наттт как в науч - ДС1ШЛСНИЯ? К:1к представить определения? Исключе- Киучтт'ггнтеллекту'альную систему по умолчанию делать предположения о недос- Хшей инфФмаши. и проверять истинность подобных предположении? Как наилу™ л ZZL время? Причинность? Неопределенность? Прогресс а создании Интел», "систем зависит от открытия принципов организации знании и от поддержки их высокоуровневыми средствами представления. _ Полезно делать различие между схемой представления и средой ее выполнения. Это подобно различию между структурами данных и языками программирования. Языки программирования являются средой выполнения; структурой данных служит стели Обычно языки представления знаний являются более ограниченными, чем исчисление предикатов или языки программирования. Эти ограничения принимают форму точных структур для представления категорий знания. Средой, в которой они выполняются, мо- гут быть PROLOG, LISP либо такие языки, как C++ или Java. Обсуждение данных вопросов иллюстрирует традиционный обзор схем представле- ния ИИ, приведенный в разделах 6.1 и 6.2. Этот обзор, как правило, включает глобаль- ную базу знаний из языковых структур, отражающих статику и “предопределенные цен- тры реального мира". Более поздиие исследования в области роботики [Brooks, 1991п], [Lewis и Luger, 2000], ситуативного познания [Agre и Chapman, 1987], [Lakoff и Johnson, 1999], агентного решения проблем [Jennings и др., 1998], [Wooldridge, 2000] и философии [Clark, 1997] бросили вызов традиционному подходу. Эти проблемные об- ласти требуют распределенного знания; мира, который сам может быть использован как частная структура знания; возможности рассуждать при неполной информации и даже на основе представлений, которые изменяются в процессе экспериментов в проблемной об- ласти. Эти подходы приводятся разделах 6.3 и 6.4. 6.1. Краткая история схем представления ИИ 6.1.1. Ассоционистские теории смысла Усилиями философов и математиков уровень логических представлений возрос И позволяет характеризовать принципы правильного рассуждения. Основная зад^ полными Ра3Ра 0ТКа Ф°Рмальных языков представления знаний с совершенным* ное яниманнрВИЛаМИ ВЬ1ВОДа' Поэт°му в семантиках исчисления предикатов оС* ных выпажри УДедЯеТСЯ С0ХРаиению истинности операций на корректно постр чедовеческпгАЯХ резУяьтате усилий психологов и лингвистов по оценке °Рйр ше связана со ™ИИмания возникла альтернативная линия исследований. Она м * становлением науки корректных рассуждений, а больше тягот* описанию способов приобретения и использования знаний о мире Этот подход до- казал. в частности, полезность применения ии и Р подход Д° ъ.пй И пассужлемий «по Р СНИЯ в областн понимания естественных языков и рассуждении на основе здравого смысла. Существует много проблем, которые возникают при отображении рассуждений на основе здравого смысла в формальную логику. Например, обычно принято ^ать, что операторы v и соответствуют конструкциям русского языка "или" и “если... то " Однако эти операторы в логике связаны только со значениями истинности и игнорируют специфическую взаимосвязь между посылками и заключением конструкции “если... то...’ (скорее корреляционную, чем причинную). Например, предложение “Если пти- ца— кардинал, то ее цвет — красный” (ассоциация птицы с красным цветом) может быть описано в исчислении предикатов следующим образом. VX {(кардинал(Х) -> красный(Х}). Это предложение может быть заменено логически эквивалентным выражением по- средством ряда сохраняющих истинность операций из главы 2: VX (—\красный{Х) -+ -,кардинал{Х)). Второе выражение истинно тогда и только тогда, когда истинно первое. Однако эквивалентность значений истинности в данном случае не сохраняется. Если рас- сматривать физическую основу истинности этих выражений, то факт, что лист бума- ги не красный и не является птицей-кардииалом, служит основой для истинности второго выражения. Из эквивалентности двух выражений следует, что второе явля- ется также основой для истинности первого. Это приводит к заключению, что белый цвет листа бумаги служит причиной того, что кардиналы красные. Эта линия рассу- ждений представляется лишенной смысла и довольно глупой. Причина такой бес- связности в том, что логическая импликация лишь выражает связь между значения- ми истинности своих операндов, в то время как выражение в русском языке предпо- лагает положительную корреляцию между членством в классе и обладанием свойствами этого класса. Действительно, определенный цвет птицы связан с ее гене- тическим строением. Эта связь теряется во второй версии выражения. Хотя факт, что бумага ие красная, обеспечивает истинность обоих выражений, но ие отражает причинную природу цвета птиц. Ассоционистские (associationist theory) теории определяют значение объекта в терми- нах сети ассоциаций с другими объектами. С точки зрения такой теории восприятие объ- екта происходит через понятия. Понятия являются частью всего нашего знания о мире н связываются соответствующими ассоциациями с другими понятиями. Эти связи пред- ставляют свойства и поведение объекта. Например, на основании опыта мы ассоциируем понятие “снег” с другими, такими как “холод", “белый . “снежный человек , скользкий и лел”. Наше знание о снеге и истинность утверждений типа снег белым возникают из этой сети ассоциаций. Из психологии известно, что люди ассоциируют понятия, а также иерархически организу- ют свои знания с помощью информации самых верхних уровней классификационной иерар- хии. Коллинс (ColHns) и Квиллиан (Quillian) [Collins и Quillian, 1969] моделировали хранение информации человеком и управление ею, используя семантическую сеть (рис. 6.1). Структура этой иерархии была получена в лаборатории в результате тестирования групп людей. Субъ- ектам задавались вопросы о различных свойствах птиц, такие как Канарейка это пти- ца? или “Канарейка может петь?" или “Канарейка может летать. • Глава 6. Представление знаний 226 асть III. Представление и разум в ракурсе искусственного интелЛ
Breathe Хотя ответы на эти вопросы, возможно, просты, изучение времени реакции что при ответе на вопрос “Может ли канарейка летать?’’ оно больше, чем на в Р "Может лн канарейка петь?”. Коллинс и Квиллиан объясняют эту разницу во вр ответа тем, что люди запоминают информацию на самом абстрактном уровне. того, чтобы запоминать конкретные свойства для каждой птицы (канарейки л дрозды летают, ласточки летают), люди запоминают, что канарейки птицы, а (обычно) имеют свойство летать. Даже более общие свойства, такие как питанне^д^ ние и движение запоминаются на уровне "животное”. Таким образом, попытка нить, может ли канарейка дышать, занимает больше времени, чем воспоминание,^ ли канарейка летать. Это, конечно, происходит нз-за того, что для получения ловек должен дольше путешествовать по иерархии структур памяти. 10жет лн Быстрее всего вспоминаются самые конкретные свойства птицы, скажем, еде. она петь или является ли она желтой. Оказалось, что отрицательная трактовка та лалась на наиболее детальном уровне. Когда субъекта спрашивают, может ли стр тать, он отвечает быстрее, чем когда его спрашивают, может ли страус дышать. образом, иерархия страус —>птица —> животное не прослеживалась, чтобы ор]-а- рицательную информацию, — она запоминалась наряду с понятием “страус • ннзация знаний была формализована в системах наследования. ысокО1Л Системы наследования позволяют нам запоминать информацию на самом в орС. уровне абстракции, что уменьшает размер баз знаний и помогает избежать пР°о^сТвз. чий. Например, если мы строим базу знаний о птицах, то можем определить св оГо общие для всех птиц, например способность летать или иметь родителей, для ^ojfCr класса птиц BIRD и разрешаем частным представителям птнц наследовать таки^^^^ 228 ЧАГТКШ п„„____________________________ свойс«а’ СВОЙсТ‘ ва. Это уменьшает размер базы знаний за счет требования определять существенные свойства лишь один раз и не определять нх для каждого объекта. Наследование также помогает поддерживать непротиворечивость базы знаний при добавлении новых классов и объекта. Предположим, в существующую базу знаний добавляется вид ROBIN (дрозд). Когда мы утверждаем, что ROBIN — это подкласс класса SONGBIRD (певчие птицы), дрозд наследует все общие свойства как певчих птиц, так и птиц вообще. Программисту не требуется запоминать (или забывать!) эту информацию. Графы оказались идеальным средством для формализации ассоционистских теорий знаний за счет точного представления отношений посредством дуг и узлов. Семантиче- ская сеть (semantic network) представляет знания в виде графа, узлы которого соответст- вуют фактам или понятиям, а дуги — отношениям или ассоциациям между понятиями. Как узлы, так и связи обычно имеют метки. Семантическая сеть, которая определяет свойства понятий "снег" и “лед”, показана на рис. 6.2. Эту сеть можно использовать (с соответствующими правилами вывода) для от- ветов на вопросы о снеге, льде и снежном человеке. Выводы делаются путем прослежи- вания связей с соответствующими понятиями. Семантические сети также реализуют на- следование: например, объект frosty (морозный) наследует свойства объекта snow- man (снежный человек). Термин “семантическая сеть” обозначает семейство представлений, основанных на графах. Эти представления отличаются главным образом именами узлов, связей и выво- Глава 6. Представление знаний Часть 111. Представление и разум в ракурсе искусственного
можно делать в этих структурах. Однако общее множество предположе дамн, которые ио»‘ во вюх языках представления сетей. Это иллюстрИр нвй и отношении с д Р в разде;1С 6.2 будут рассмотрены концептуальны,. гоол торта сетевых пр д й язык сетевого представления, который интег/ [Sow'a. 1984] — более современный язык г р Интегрирует многие из этих идеи. 6,1.2. Ранние работы в области семантических сетей Сетевые представления имеют почти такую же длинную историю, как и логика. фре. re (Frege), например, разработал три системы обозначении для логических выражений. Возможно, наиболее ранней работой, имеющей прямое влияние иа современные семан- тические сети, была система экзистенциальных графов, разработанная Чарльзом Пирсом (Charles Peirce) в девятнадцатом столетни (Roberts, 1973]. Теория Пирса использовала всю выразительную силу исчисления предикатов первого порядка с аксиоматической ос- новой и формальными правилами вывода. Графы давно используются в психологии для представления структур понятий и ас- социаций. Пионером в этой области был Сэлз [Selz, 1913, 1922], который использовал графы для представления иерархии понятий и наследования свойств. Он также разрабо- тал теорию схематического упреждения, которая повлияла на работы по фреймам и схе- мам в ИИ. Андерсон (Anderson), Норман (Norman), Румельхарт (Rumelhart) и другие ис- пользовали сети, чтобы моделировать человеческую память и интеллектуальные прояв- ления [Anderson и Bower, 1973], [Norman и др., 1975]. Много исследований на основе сетевых представлений было сделано в области пони- мания естественных языков. В общем случае для понимания естественных языков требу- ется намного больше знаний, чем для работы специализированных экспертных систем. Оно включает понимание общего смысла, принципов действия физических объектов, взаимодействий, происходящих между людьми, и принципов организации коллективов людей. Программа должна понимать намерения, убеждения, гипотетические рассужде- ния, планы и цели. Из-за требований большого количества необходимых знаний пробле- ма понимания естественных языков всегда являлась движущей силой исследований в об- ласти представления знаний. Первые компьютерные реализации семантических сетей были созданы в начале 1960- * ™ 11СП0ЛЬ30вания в системах автоматического (машинного) перевода. В работе asterman, 1961] Мастерман определил множество из 100 примитивных типов понятий и использовал их в словаре из 15000 понятий. В [Wilks, 1972] продолжено построение "Г”естественных языков на основе работы Мастермана (Masterman) в об* зуюших с™»еСКИХ СетеЙ‘ В Ч1|сле других ранних работ по исследованию ИИ, исполь- [Reitman 19651 Тч' Представлення- mo*ho назвать [Ceccato, 1961], [Raphael, 1968]- LKeiiman, 1965], [Simmons, 1966]. особенности Написана известная программа, которая иллюстрирует многие ла английские слои ппи ""”1 CeTeii [t)ulllian- ‘967). Эта программа характер®»8* лается в терминах дпугих'? Н° 1аКИМ же of5P:v,0'J. как это делает словарь: слово »пРсд кий. В отличие от формальнее " ЖС *ормУлнРУются составляющие этих 0ПРед формулировка просто ведет к п опРсЛСлсния слов в терминах базовых аксиом к НО, окольными путями. Ппи ппг.РУГИМ олРедсяениям. неструктурированными и. воз пока не убедимся что поник., ₽ Смотре слоаа МЬ1 прослеживаем эту цепочку до «х ем первоначальное слово. Каждый узел в сети Куиллиана соответствует словесному понятию, имеющему ассо- циативные связи с другими понятиями, из которых формируется его определение. База знаний организована в плоскости, каждая из которых является графом, характеризую- щим одно слово. На рис. 6.3, взятом из статьи [Quillan, 1967], показаны три плоскости, задающие три различных определения слова “plant": plant 1 (растение), plant 2 (место, где работают люди) и plant 3 (процесс помещения семени в землю). Plant-1. Живая структура, которая не является животным, часто с листьями, получающая пищу из воздуха, воды и земли. 2. Оборудование, используемое для некоторого производственного процесса. 3. Помещать (семя, растение и т.п.) в землю для выращивания. Рис. 6.3. Три плоскости, представляющие три определения слова "plant [Quillian. 1967j Программа использовала эту базу знаний для поиска отношений между парами анг- лийских слов. Получив два слова, она осуществляла на графах поиск в ширину для на- хождения общего понятия, или узла пересечения. Пути к общему узлу представляли от- ношение между словесными понятиями. Например, на рис. 6.4, взятом из той же статьи, показана точка пересечения путей, ведущих от понятий cry (плач) и comfort (покои). Используя пересечение этих путей, программа смогла заключить следующее. Плач (cry 2), помимо всего прочего, связан с производством печальных звуков. Покой (comfort 3) может уменьшить печаль [Quillan. 1967]. Числа в ответах указывают, какие именно значения слов выбрала программа. Куиллнан предполагал, что этот подход к семантике обеспечит следующие возмож- ности систем понимания естественных языков. 1. Определять смысл английского текста путем построения совокупности узлов пере- сечения. 2. Выбирать смысл слов, находя самые короткие пути к точкам пересечения с путями для других слов предложения. Например, в английском предложении “Tom went home to ТЬ III. Представление и разум в ракурсе искусственного интелл0|<т Глава 6. Представление знаний 231 230
«мой I»-»"1 csee невое Растен,ю"’ “«лгав садже; «ИГte«» Г**«"н»пер««ен1П1 п««п<й '»«еГн"ptar. вври* мечен* сж« Т“" ’ .„овыкил <» ассоциации между понятиями в » 3 Гиб®' огеечять на «опрхы. . >. •• -^•|ныч|н coaforc 1поюЛ)10яШт.1^>1 Ряс, 6.4. Пфе&с&а* юшл. «лГ>’-^т <. -ч «л — j « Хотя ата н ранние работы показали силу графов для модетаровання асеот№ тииого смысла.'они были ограничены чрезмерной общностью форматом* Обычно стртттурнроисюсь В терминах специфических отношение свойство, изсс-подкдзсс я агент-гдагол-объект. Исследования в осхтачн у ПР° ставзеяий часто фокчхнровалнсь на спецификации этих отношении. 6.13. Стэндяртизяпня сетевых отношений Само по себе представление отношешш в виде графов имеет мало П^ПМ^^рга.иц. ред исчислением предикатов — это только дрчтая запись отношений между Сила сетевых представлений состоит в определении связен и специфических пр**» вода, определяемых механизмом наследования. обенностн Хотя ранняя работа Кундлнана установила такие наиболее значительные ос формализма семантических сетей, как помеченные дуги к связи. ,<еРаРхИческ<^яС1ЖНостъ ванне н вывод на основе ассоциативных связей, она не позволяла преодолеть многих проблемных областей. Одной га главных причин этого была ограничу зен. которые не охватывали более глубоких семантических аспектов знании- часть связей представляла общие ассоциации между уздами и не обеспечивал3 основы ддя структурирования семантических отношешш. Та же проблема возни попытке использовать исчисление предикатов для охвата семантики смысла- формализм является очень выразительным и позволяет представлять почти л^ мНС- зваяяк. он слишком общий н переносит бремя конструирования соответствуй1 жества фактов и правил на программиста. Кунл1,,аНЗ Большинство работ по сетевым представлениям, развиваюших работы . ^-е сводились к определению обширного множества меток связей (отношению _________ полного моделирования семантики естественного языка. За счет реализации базовых се* м&нтнческнх отношений естественного языка как части формализма. а нс как части зна- ний о предметной области, базы знании позволяют автоматизировать рзбоп и обеспе- чивают большую общность и непротиворечивость. В [Brachman. 1979] отмечено следующее. Ключевым вопросом здесь является выделение примитивов ддя языков семантических сетей. Примитивами сетевого языка являются те понятия, для понимания которых ин- терпретатор программируется заранее, н которые (обычно) не представлены в самом сетевом языке. В [Simmons. 1973] подчеркнута необходимость стандартизации отношений с уче- том грамматики английского языка. В этом подходе, основанном на работе [Fillmore. 19б8]. связи определяются ролью существительных и групп существи- тельных в действии, описываемом предложением. К числу возможных ролей (падежных отношений) относятся агент, объект. инструмент, место я время. Предложение представляется как набор узлов, один из которых соответствует глаго- лу. з остальные связанные с ним халы представляют других участников действия. Эта стр) ктурз называется падежным фреймам {case frame}. При разборе предложе- ния программа находит глагол и ищет в базе знаний соответствующий ему падеж- ный фрейм. Затем она связывает значения агента, объекта н тому подобного с соот- ветствующими узлами падежного фрейма. Используя этот подход, предложение "Sarah fixed the chair with glue'* (‘'Capa укрепила стул клеем”) можно представить се- тью. показанной на рис. 0.5. Рис. 6.5. Падежный фрейм. представляющий пред- ложенье "Сара укрепила стул клеем ~ Таким образом, сам язык представления включает многие глубинные связи есте- ственного языка, такие как отношение между глаголом н его субъектом (агентное отношение) или глаголом и его объектом. Знание падежной структуры английского языка является частью самого сетевого формализма. При разборе отдельного пред- ложения становится ясно, что Сара— это человек, производящий укрепление, а клей используется для соединения частей стула. Отметим, что эти лингвистические отношения запоминаются отдельно Iнезависимо» от реального предложения и да- же от языка, на котором сформулировано предложение. Подобный подход принят в сетевых языках, предложенных в [Norman. 1972]. [Rumelhart и др.. 1972] и [Rumelhan и др.. 1973]. Ряд исследователей уделяли большое внимание дальнейшей стандартизации имен связей [Masterman. 1961]. [Wilks. 1972]. [Schank к Colby. 1973]. [Schank и Nash- Webber. 1975]. Каждое исследование было направлено на установление полного множе- ства 6. Представление знаний 233 232 Часть 111. Представление и разум в ракурсе искусственного и»
„ „„едставлсння семантической структуры вырВДе. стм примитивов для «»«^Хгва "Р“’ваны П°М°ЧЬ ” рСалтаЩ™ ра“^"нй с неестественного языка. Зги множест „емв11СИМЬ1 от „ндивидуальи^ использованием элементов фраз. особенностей отдельных языков л“’Ропыткой формального моделирования глубинных Возможно, наиболее амбициозно явяяется теория концептуально:, затсш,0. семантических струкпТ естественн Ri , „ Шенка (Schank) [Schank и Rieger, 1974]. в „„„ (conceptual dependency) » ссма1р1,ваЮтся четыре типа примитивов, рамках теории выражений. К ним относятся: на основе которых определяется смысл Р , ACT____действия (actions); . РР — объекты (picture producers); . АА - модификаторы действий (action aiders); * РА — модификаторы объектов (picture aiders). „ m действий должно приводить к созданию одного или ПреДПОЛапоимитиГов ACT Перечисленные ниже примитивы выбраны в качестве ос- нескольких примитивов лсь иовных компонентов действия. • ATRANS — передавать отношение (давать). . PTRANS — передавать физическое расположение объекта (идти). • PROPEL — применять физическую силу к объекту (толкать). • MOVE — перемещать часть тела (владельцем). • GRASP — захватывать объект (исполнителем). • INGEST — поглощать объект (есть). • EXPEL —издавать звуки (кричать). • MTRANS — передавать ментальную информацию (сказать). • MBUILD — создавать новую ментальную информацию (решать). • CONC — осмысливать идею (думать). • SPEAK — производить звук (говорить). • ATTEND — слушать. Эти примитивы используются для определения отношений концептуальной за симости, которые описывают смысловые структуры, такие как падежные отно или связи объектов и значений. Отношения концептуальной зависимости эт0 в цептуальные синтаксические правила, которые выражают семантические св соответствии с грамматикой языка. Эти отношения могут быть использованы конструирования внутреннего представления английского предложения. На р11^ представлен список основных концептуальных зависимостей [$с а есте. Rieger, 1974]. Эти зависимости охватывают базовые семантические стРУктУ?Ь1пиСЬ1- ствениого языка. Например, первая концептуальная зависимость на рис. 6. 0 л. вает отношение между подлежащим и сказуемым, а третья — отношение г объект. Они могут сочетаться и представлять простые транзитивные предЛ° такие как “John throws the ball" (“Джон бросает мяч") (рис. 6.7). рр • ACT РР*РА О АСТ<-РР act Да X t указывает, что исполнитель действует указывает, что объект имеет определенный признак означает объект действия обозначает реципиента и донора для объекта действия указывает направление объекта действия означает инструментальную концептуализацию действия указывает, что X вызывается У указывает изменение состояния объекта РР1 <-РР2 указывает, что РР2 является либо частью, либо владельцем РР1 Рис. 6.6. Концептуальные зависимости (Schank и Rieger, 1974} John Ball Рис. 6.7. Представление концептуальных зависимостей в предложении "John throws the ball" 1. PP«»ACT 2. PPWPA 3. pp^pp 4. PP T PA 5. PP t PP 6. АСТС-РР ACT ACT^tf - -t i Джон PTRANS John ** height (>average) John ** doctor boy t nice dog fl POSS-BY John John PROPEL cart John » ATRANS t book John INGEST t ice cream John PTRANS fertilizer John Mary do 1 spoon Bill<*• PROPEL bullet- yesterday John PTRANS field bag Джон бежал. Джон высокий. Джон — доктор. Милый мальчик. Собака Джона. Джон двигал гележху Джон взял книгу у Мэри Джон съел мороженое Джон удобрил поле Растения выросли. Билл застрелил Боба Вчере Джон бежал Рис. 6.8. Некоторые базовые концептуальные зависимости, взятые из работы [Schank и Colby. 1973}, и их использование для представ- ления более сложных английских предложений Глава 6. Представление знаний 235 234 Часть III. Представление и разум в ракурсе искусственного иН
акцепций может быть добавлена временная „ модальна, И наконец, ко множеству ко список модификаторов отношений. „„формация. Шенк приводит следу . р __ прошедшее время • f — буду шее Время • t — передача е к____продолжительность • ts — начало передачи • ? — вопрос • t/— окончание передачи • с — условие • /—отрицание • П(7 —настоящее время • delta ? — независимость от времени В пачках теории эта отношения считаются конструкциями первого уровня - просгейши. ми семантическими отношениями, на основе которых мотут быть построены более сложные структуры Примерь, того, как эти базовые концептуальные зависимости могут сочетаться да представления смысла простых английских предложений, показаны на рис. 6.8. На рис. 6.9 показано, как на основе этих примитивов представляется выражение John ate the egg" (“Джон съел яйцо”). Символы здесь имеют следующий смысл: • <--указывает направление зависимости; • <=> — обозначает отношение агент-глагол; • р — указывает на прошедшее время; • INGEST — определяет примитивное действие теории; • О — обозначает объектное отношение; • D — указывает направление объекта прн выполнении действия. Другим примером структур, которые могут быть построены на основе конделтуаль ных зависимостей, является графическое представление предложения “John preven Магу from giving a book to bill” (“Джон предостерег Мэри, чтобы она не давала книгу Биллу ) (рис, 6,10). Этот частный пример интересен тем, что ои демонстрирует прел ставление причинности. ₽ л John о ’INGEST’*—— Egg j Or^’INSIDE* *-----John I—«’MOUTH’ *---John Puc. 6.9. Концептуальная ставляющая выражение [Schank и Rieger, 1974] зависимость. пред- '‘John aie the egg" John о ’DO’ Puc. 6JO. Представление концепту eljted висимости для предложения "У пи Магу /гот giving a book to bill Rieger, 1974] Теория концептуальной зависимости имеет ряд важных преимуществ. Во-первых, за счет построения формальной теории семантик естественного языка уменьшаются проблемы, связанные с двусмысленностью. Во-вторых, само представление в про- цессе пос!роения канонической формы смысла выражений охватывает много есте- ственно-языковых семантик. Это означает, что все выражения, которые имеют один и тот же смысл, будут внутренне представлены синтаксически идентичными. а не только семантически эквивалентными графами. Это каноническое представление_ попытка упростить выводы, требуемые для понимания. Например, мы можем про- демонстрировать, что два выражения означают одну и ту же сущность, с помощью простого сопоставления графов концептуальной зависимости. Представление, кото- рое не обеспечивает канонической формы, может потребовать большого количества операций на графах различной структуры. К сожалению, процесс преобразования выражений в каноническую форму вряд ли можно полностью алгоритмизировать. Как отмечено в [Woods, 1985) и других работах, преобразование в каноническую форму нельзя реализовать даже для моноидов — алгеб- раических групп, которые значительно проще, чем естественный язык. Более того, нет уверенности, что люди запоминают свои знания в какой-нибудь канонической форме. Критические замечания высказывались также по поводу вычислительной слож- ности преобразования предложения в набор примитивов низкого уровня. Кроме то- го, сами примитивы не позволяют охватить многие более тонкие понятия, играющие важную роль в использовании естественного языка. Например, представление слова “tali’’ (“высокий”) во втором выражении на рис. 6.8 не учитывает неопределенность этого термина, как это делается в системах нечеткой логики [Zadeh, 1983], описан- ных в разделе 7.3. Однако нельзя сказать, что модель концептуальной зависимости интенсивно не изучалась и не была хорошо понята. Уточнение и расширение этой модели продол- жалось более десяти лет. Важными для развития теории концептуальных зависимо- стей являются работы, посвященные сценариям н пакетам организации памяти. Ра- боты по сценариям связаны с изучением организации знаний в памяти н ее роли в рассуждениях (см. подраздел 6.1.4). Пакеты организации памяти стали одной из вспомогательных исследовательских областей для разработки механизмов рассуж- дений, основанных на опыте (раздел 7.3). Теория концептуальной зависимости явля- ется полностью разработанной моделью семантики естественного языка. Она широ- ко применяется и дает непротиворечивые результаты. 6.1.4. Сценарии Программа, понимающая естественный язык, должна использовать большое ко- личество исходных знаний, чтобы понять даже простейший разговор (раздел 13.0). Согласно экспериментальным данным люди организуют это знание в структуры, со- ответствующие типовым ситуациям [Bartlett. 1932]. Читая статью о ресторанах, бейсболе или политике, мы устраняем любые двусмысленности в тексте с учетом тематики статьи. Если сюжет статьи неожиданно меняется, человек делает краткую паузу в процессе чтения, необходимую для модификации структуры знания. Воз- можно, слабо структурированный текст тяжело понять именно потому, что мы не можем с легкостью связать его с какой-нибудь нз структур знания. В этом случае ошибки понимания возникают из-за того, что мы не можем решить, кокон контекст Глава 6. Представление знаний 237 Часть III. Представление и разум в ракурсе искусственного иит
использовать для разрешения неопределенных местоимений и других двусмыслен, костей разговора. структурированное представление, описывающее стереотип. Сченарш, (я-прт) „ частном контексте. Сценарии первоначально были ную последовательна Abe,son 1977) как средство дм организации структур к„ще„. предложены в [оспа типовых ситуаций. Сценарии используются в снеге- Х“н™ХХ™енного языка для организации базы знаний в терминах ситуаций. ,,MHOCTbW спокйойны (те они знают-чего “имтъ" как действовать). Их либо встречают на входе, либо знак указывает, куда они должны тойти чтобы сесть. Меню либо лежи на столе, либо предоставляется официантом, ли- бо посетитель его просит. Мы понимаем процедуры для заказа еды, принятия пищи, on- латы счета и ухода. В действительности ресторанный сценарии совершенно отличается от других сцена- риев принятия пиши, например, в ресторанах “быстрого обслуживания” нлн в рамках “официального семейного обеда". В сети ресторанов “быстрого обслуживания” заказчик входит, становится в очередь, оплачивает заказ (до принятия пиши), ожидает подноса с едой, берет поднос, пытается найти свободный стол и т.д. Это — две различные после- довательности событий, и каждая имеет отдельный сценарий. Сценарий включает сле- дующие компоненты. • Начальные условия, которые должны быть истинными при вызове сценария. В этом сценарии они включают открытый ресторан и голодного посетителя, имею- щего некоторую сумму денег. • Результаты или факты, которые являются истинными, когда сценарий заверша- ется; например, клиент сыт и его деньги потрачены, владелец ресторана имеет больше денег. • Предположения, которые поддерживают контекст сценария. Они могут включать столы, официантов и меню. Множество предположений описывают принятые по умолчанию условия реализации сценария. Например, предполагается, что ресто- ран должен иметь столы и стулья, если не указано противоположное. Роли являются действиями, которые совершают отдельные участники. Офи- циант принимает заказы, доставляет пищу и выставляет счет. Клиент делает заказ, ест и платит. котпп^}^еНК (Schank> Р^ивает сценарий на последовательность сцен, каждая из включая релставляет временные аспекты сценария. Сценарий похода в ресторан включает следующие сцены: вход, заказ, принятие пиши и т д. ся отношениями6 конш‘пт^°СНОВ“Ые части" семантического значения — представляют структуре они ппечгтЯОТУаЛЬНОИ зависимости- Собранные вместе во фреймоподобно выше сценарий посещен^101 Посяедовательность значений или событий. Описании * Ф посещения ресторана представлен на рис. 6.11. Сценарий- РЕСТОРАН Аналог: Кафе Реквизиты: Столы Меню F = Пища Чек Деньги Роли. S = Заказчик W = Официант С = Повар М = Кассир О = Владелец Сцена 1 • Вход S PTRANS S в ресторан S ATTEND смотрит на столы S MBUILD куда сесть S PTRANS S за стол S MOVE S в сидячее положение Сцена 2 Заказ Меню на столе W приносит меню S просит меню S PTRANS меню S / s MTRANS сигнал W / W PTRANS Wk столу \ У' S MTRANS отдельный заказ W \ / W PTRANS Wk меню \ W PTRANS Wk столу \ W ATRANS меню S S MTRANS список блюд в СР (S) ’S MBUILD выбор F S MTRANS сигнал W W PTRANS W к столу S MTRANS 'я хочу Р W '—-- W PTRANS W к С W MTRANS (ATRANS F) С С MTRANS‘нет F1 W \ WPTRANSWS \ W MTRANS’нет RS \ вернуться к ' или \ перейти к сцене 4 С DO (сценарий "приготовить Р") (путь без оплаты) к сцене 3 Начальные условия' S голоден у S есть деньги Результаты' у S стало меньше денег у О стало больше денег S не голоден S доволен (не обязательно) Сцена 3' Употребление CATRANSFW WATRANSFS S INGEST F Вариант Вернуться к сц иначе перейти к сцене 4 ищи же 2. чтобы заказать еще раз, \ Сцена 4: Выход WMOV WPTRi WATRA SATRA SPTRA SATRAJ SPTRA Путь без оплаты SMTRANSW / (W ATRANS чек S) : выписывает чек iNSWkS NS чек S JS чаевые W NSSkM NS деньги М NS S к выходу из ресторана Рис. 6.11. Сценарий посещения ресторана [Schank и Abelson. 197'1 Описанная в (Schank и Abelson, 1977] программа читает небольшой рассказ о ресто- ранах и преобразует его во внутреннее представление концептуальной зависимости. По- скольку ключевые понятия этого внутреннего описания сопоставляются с начальными 238 ЧЭСТЬ Пр°«~иа и Разум в ракурсе искусственного инте^ Глава 6. Представление знаний 239
ПИВИ»’ связывает объекты, представленные в рассказе, с р0Ля. „ям11сценар»’'П1’0П,аМ аХ1Ми В cueW»»- Результатом является расширь Гн ^Д"°™*£1даМИ' ^Использующее сценарии для заполнения отсутеп^ “Хенне контекста рассказ». нию. Затем программа отвечает на волро_ " пры№е°ценарий Старик допускает рациональные предположена, Гы о рассказе, сеьщаясь на менар* ^сс1веяными в понимании естественного ЯЩа -ров. Пример 6.1.1 ( Не arderej sleak. When he paid he noticed he wot John went to a restaurant as ю rain (джон зашея „ рютрш1 running out of money. He hum №C Рассчитываясъ. он заметил, что остался без прошлым вечером. не начался дождь.) денег. Он поспешш домой, правильно ответить на вопросы о том, обедали Используя сценарии, с“ лпшь П0дразуМевает это), что использовал Джон: и- Хыё’ГгХдХю карточку, как Джон получил меню, что ои купил. & "Zt'no lunch. She sal a, a table and called a waitress, who brought Iter a mentt She ordered a sandwich. (Сью none,а но ланч. Она села за стол и позвала официалу, которая принесла ей меню. Она заказала сэндвич.) „ лЛипи- По поводу этого текста логично задавать следующие вопросы Почему офицв антка принесла меню Сью? Была ли Сью в ресторане? Кто платил? Кто заказал о» двич? Последний вопрос достаточно сложен. Ответ “официантка (упомянут следней женщина) является неправильным. Роли сценария помогают ссылки на местоимения и другие двусмысленности. Сценарии также могут пользованы для интерпретации неожиданных результатов или прерывания д кости по написанному сценарию. Пример 6.1.3 $ Kate went to a restaurant. She was shown to a table and ordered steak from a waitre^op<s)l, sat there and waited for a long time. Finally, she got mad and left. (Кейт вошла в Pec Ей указали стол, и она заказала бифштекс у официантки. Она села и долгое вре* ла. Наконец она разозлилась и ушла.) С|1дел На основе этого рассказа можно сформулировать следующие вопросы- и ждал. Почему она ждала? Кто разозлился и ушел? Почему она разозлилась. wanLчт° сУществУют " Другие вопросы, на которые нельзя ответить с поМ° не ппихояит^п °™осится следующий. Почему люди злятся, когда °Ф,шиаНТ бу|0Т нз- = ТН° ЛЮ?0Й СИСтеме’ основанной на знаниях, сценарии гребУ« Рированным ппЛ°ДИМ0И ба30В0Й "«Формации. Подобно фреймам и леНнЫ*,и проблемами L СТавлениям "спользоваиие сценариев сопряжено с °"Р сП1ро^ рассмотрим при”ераб1''4°св1:МУ с00_тветствия сценариев и чтения|Л 11Л11 Церта. Контекст Р ' связаннь1и со сценарием посещения рестор чать к31, В ресторане ”СЬ ИГрает важ“Ую Р»ль, так как слово “bill” м°»ет °’ Т0Ране> так и программу концерта. Пример 6.1.4 John visited his favorite restaurant on the way to the concert. He was pleased bv the bill because lie liked Mozart. (По пути „а концерт Джон посетил свой любимый ресторан. Он был доволен программой, так как любил Моцарта.) Поскольку выбор сценария обычно основан на соответствии “ключевых” слов, часто трудно определить, какой из двух или более сценариев следует использовать. Проблема соответствия сценария является “глубинной”, т.е. не существует алгоритма, гаранти- рующего правильный выбор. Она требует эвристических знаний об организации мира, а сценарии помогают лишь в организации этого знания. Проблема чтения между строк то- же очень сложна, нельзя наперед указать возможные случаи, которые могут нарушить сценарий. Например, рассмотрим следующую ситуацию. Пример 6.1.5 Melissa was eating dinner at her favorite restaurant when a large piece of plaster fell from the ceiling and landed on her date. (Мелисса обедала в своем любимом ресторане, когда большой кусок штукатурки отвалился с потолка и упал на ее финики.) Здесь уместны следующие вопросы. Ела ли Мелисса финиковый салат? Что она дела- ла дальше? Были ли финики Мелиссы запачканы? Как показывает этот пример, структу- рированные представления могут быть негибкими. Рассуждения могут быть локализова- ны в одном сценарии, даже если он не соответствует ситуации. Пакеты организации памяти решают проблему негибкости сценария, представляя знания с помощью более мелких компонентов вместе с правилами для их динамического связывания в схемы, соответствующие текущей ситуации [Schank. 1982]. Организация памяти знаний особенно важна для реализации рассуждений, основанных на опыте, в ко- торых решатель должен эффективно находить в памяти подходящее решение прежней проблемы [Kolodner, 1988л] (раздел 7.3). Проблемы организации и поиска знаний очень трудны и характерны для моделирова- ния семантического значения. Евгений Черняк [Charniak, 1972] показал, какое количест- во знаний требуется для понимания даже простых детских рассказов. Рассмотрим фраг- мент текста, описывающий вечеринку в честь дня рождения: “Mary was given two kites for her birthday so she took one back to the store” (“В день рождения Мэри подарили два воз- душных змея, поэтому она вернула один из них в магазин ). Мы должны знать о тради- ции дарить подарки в день рождения: знать, что такое воздушный змей и почему Мэри могла ие захотеть иметь двух змеев. Мы должны знать о магазинах и их политике обме- на. Несмотря на эти проблемы, программы, использующие сценарии и другие семанти- ческие представления, могут понимать естественный язык в ограниченных предметных областях. Примером может служить программа, которая интерпретирует сообщения, по- ступающие по каналам новостей. Благодаря использованию сценариев природных ката- строф. успешных сделок и других стереотипных истории программа достигла заметных успехов в этой ограниченной, ио реальной области [Schank и Riesbeck. 1981]. 6.1.5. Фреймы Фреймы (frame) — это другая схема представления, во многом подобная сценариям и ‘Ориентированная на включение в строго организованные структуры данных неявных (подразумеваемых) информационных связей, существующих в предметной области. Это Глава 6. Представление знаний 241 — _____________________________________ _____________________________л0|рэ Чзсть III. Представление и разум в ракурсе искусственного 240
„одерживает opr»»® в боЛСС СЛ°ЖНЫС СЛ"""^. №тоРЫс представлен^ объектов этой области. Сражают фреймы описываются следующим образом. в статье [Mins у. встречается с новой ситуацией (ил,, существен». Вот суп. теория фреи, ^дему). он выбирает из памяти структуру. называс меняет своистояку необходимости должен быть адаптирован „ ' -фреймом•^^Ыи'ым вменением деталей [Minsky. 1975] Р" всденвсоотвеп.|вн^ и- fMinsb' 1975] фрейм может рассматриваться как статическая струк в ^иетет»™^^ да, представления хорошо понятных стереотипных снтуа^ Z,oZX собственное знание о мире тоже организовано во фреймоводобные струк Мь['приспосабливаемся к каждой новой ситуации, вызывая информацию, основа,. Z на оп^ Затем мы адаптируем эти знания в соответствии с новой ситуацией. Например достаточно один раз остановиться в гостинице, чтобы составить представ- ление о всех гостиничных номерах. Там почти всегда есть кровать, ванная, место для че- модана телефон, аварийно-эвакуационная информация на внутренней стороне двери в та Детали каждого номера при необходимости могут изменяться. Может варьироваться цвет портьер, расположение и тип выключателей и т.п. С фреймом гостиничного номера связана также информация, принимаемая по умолчанию. Если нет простыней, нужно вы- звать горничную, если нужен лед. необходимо посмотреть в холле и т.д. Нам не надо подстраивать сознание для каждого нового гостиничного номера. Все элементы обоб- щенного номера организуются в концептуальную структуру, к которой мы обращаемся, когда останавливаемся в гостинице. Эти высокоуровневые структуры можно представить в семантической сети, организуя ее как совокупность отдельных сетей, каждая нз которых представляет некоторую сте- реотипную ситуацию. Фреймы так же, как объектно-ориентированные системы, обес- печивают механизм подобной организации, представляя сущности как структурирован- ные объекты с поименованными ячейками н связанными с ними значениями. Таким об- разом. фрейм или схема рассматривается как единая сложная сущность. Например, гостиничный номер н его компоненты могут быть описаны рядом отдель- ных фреймов. Помимо кровати во фрейме должен быть представлен стул: ожидаемая •гота — от 20 до 40 см. число ножек — 4, значение по умолчанию — предназначен д» рдения. Далее фрейм представляет гостиничный телефон: это вариант обычного теле- ка, но расчет за переговоры связывается с оплатой гостиничного номера. По умел42 этот специальный гостиничный коммутатор, и человек может использовал- dhc 6 17 еДЫ в НОмеР* внешних звонков и получения других услуг- “ ФРТ гостиничный номер. подобную обычной^и™ ,М°™ РВД|Р"»а,ь хак структуру данных, во стам. Ячейки (Ьпейм^ ’ С инФ°Рмацией. соответствующей стереотипны. содержат такую информацию. 1- Данные д.тя и^ифинауии фрЛт. а-тужип. ' дрУаши ФР<йиаш. -Гостиничный телефон ® з ° ”” 0ЧеРС>' 20 30 40 Стул, например, имеет высоту с®^*яе- оользованы Хля 0 Частъ ВЫЩе 60 см. и т.д. Эти требования могут -----определения соответствия новых объектов стереотипу фре^' 242 ___________ _____________________________________— Редставление и разум в ракурсе искусственного инте Рис. 6.12. Часть фрейма, описывающего гостиничный номер. "Специализированный" класс содержит указатель на суперкласс 4. Процедурная информация об использовании описанной структуры. Важной особен- ностью фреймов является возможность присоединить к ячейке процедурный код. 5. Информация по умолчанию. Это значения ячейки, которые должны быть истинны- ми, если не найдены противоположные. Например, стулья имеют 4 ножки, на те- лефонах есть кнопки, гостиничные кровати заправляются персоналом. 6. Информация для нового экземпляра. Многие ячейки фрейма могут оставаться не- заполненными, пока не указано значение для отдельного экземпляра или пока они нс понадобятся для некоторого аспекта решения задачи. Например, цвет кровати может оставаться неопределенным. Фреймы расширяют возможности семантических сетей рядом важных особенно- стей. Хотя фреймовое описание гостиничных кроватей на рис. 6.12 может быть экви- валентно сетевому описанию, фреймовая версия намного яснее той. в которой кровать описывается с помощью ее различных атрибутов. В сетевой версии существует просто совокупность узлов. Такое представление в значительной степени зависит от иитер- претацни структуры. Возможность организации знаний в такие структуры является важным свойством баз знании. Фреймы позволяют организовать иерархию знаний. В сети каждое понятие представ- ляется узлами и связями на одном и том же уровне детализации. Однако очень часто для Ojhhx целей объект необходимо рассматривать как единую сущность, а для других — Учитывать детали его внутренней структуры. Например, обычно нас не интересует меха- ническое устройство автомобиля, пока что-то ие сломается. При обнаружении поломки Мы лостаем схему автомобильного двигателя и пытаемся устранить проблему. Процедурные вложения являются важным свойством фреймов, так как они по- ляют связать фрагменты программного кода с соответствующими сущностями • --------------.------------------------------------------------------------- Глава 6 Представление знаний 243
«пения Например, в базу знании можно включить возмо«„0с фреймового представлеки о зь1 Для 6ольше подходит графически ь генерировать графичес Г, х вложений можно создавать демоны (d • чем сетевой. С помощь Р побочным эффектом некоторого Лругого Демон - это процедур ₽ пр|( каждом измсненни определенной ячейки в системе^ожно^запускать процедуру контроля соответствия типов или тест непрЦ1,, ВОРсХ°мь'фрейНов поддерживают наследование классов. Значения ячеек и исподьзуе- по умолчанию значения класса наследуются через иерархию класс/подкласс „ X Например, гостиничный телефон можно реализовать как подкласс обычного телефона обладающий следующими особенностями: внешние звонки проходят через коммутатор гостиницы (для расчета), II гостиничные услуги можно заказывать по пря- мому номеру. Некоторым ячейкам можно присвоить значения по умолчанию. Они не- пользуются, если нет другой информации. Например, в гостиничных номерах стоят кро- вати. поэтому туда необходимо идти, если вы хотите спать. Если вы не знаете, как по- звонить портье, попытайтесь набрать “нуль”. Когда создается экземпляр фрейма класса, система будет пытаться заполнить его ячейки либо заданными пользователем значениями, либо значениями по умолчанию, взятыми из фрейма класса, либо выполнит некоторую процедуру или демон для получе- ния значения экземпляра. Как и в семантических сетях, ячейки и значения по умолчанию наследуются через иерархию класс/подкласс. Конечно, используемая по умолчанию ин- форматы может привести к немонотонности описания данных, поскольку корректность такой информации не всегда можно доказать (см. раздел 8.1). В работе [Minsky, 1975] приводится пример использования фреймов в рассуждениях по умолчанию. Рассматривается задача выявления ситуации, в которой различные про- екции объекта на самом деле представляют один н тот же объект. Например, три проек- ции куба на рис. 6.13 действительно выглядят различными. В [Minsky, 1975] предложена система фреймов, которая распознает их как проекции одного и того же объекта, по умолчанию учитывая наличие невидимых сторон. Система фреймов на рис. 6.13 представляет четыре плоскости куба. Штриховые ™““''П°КМЬ,ВаЮТ плоскост». невидимые в этой проекции. Связи между фреймами от- бы учтътя«ШС11"Я между нидамн, которые представлены фреймами. Конечно, если бы более сложи",дополннтельная информация о цветах или узорах граней, узлы были затель налгштГ.'л" - д™с™1етльн°сти каждая ячейка фрейма может содержать Уй одни и те же данные'™ ,ЭТ° Пошолит избежать избыточности информации, поскольку Е на рис. 6.13). М0М0 использовать в нескольких различных ячейках (плоско ные Объекты ЗМОЖН,ОСТ" семантических сетей, позволяя представлять (фрейма). Это также ссмантической структуры, а в виде единой СУШ" ста, классы, наследование есгсственнь™ образом представить стереотипные су и сетевым представлениям чения по умолчанию. Хотя фреймы, подобно лот*1 сложных баз знаний все же мощным средством, многие проблемы орг»1"' сследовання. проведенные нт РСШаться на основе опыта и интуиции ирогрс” . с И исследовательском центе у * Г0Дах В Массачусстском технологическом ' 011;е философиио6ъ(.п11о тр Xerox Palo A)lo Research Center, привели к Рюр ,ков Р ализатаи, включая Smalltalk Лани°го программирования и созданию важных _ ’ ava‘ ++ И’ наконец, CLOS (раздел 15.12). Представление и разум в ракурсе искусственного инте,|Л Пространственный фрейм Рис. 6.13. Пространственный фрейм для представления куба [Minsky, 1975а] 6.2. Концептуальные графы: сетевой язык Вслед за первыми работами по созданию схем представления в ИИ (раздел 6.1 > был предложен ряд сетевых языков для моделирования семантики естественного языка и других областей. В этом разделе мы детально рассмотрим конкретный формализм, что* бы показать, как этими средствами решаются задачи представления смысла. Примером сетевого языка представления являются концептуальные графы [Soua. 1984]. Мы опре- делим правила формирования концептуальных графов н манипулирования ими, а также опишем соглашения для представления классов, экземпляров и отношений. В подразде- ле 13.3.2 показывается, как этот формализм может быть использован для представления смысла в задачах понимания естественного языка. 6.2,1. Введение в теорию концептуальных графов Концептуальный граф (conceptual graph) — эго конечный, связанный, двудольный ^раф. Узлы графа представляют понятия, или концептуальные отношения. В концепту- альных графах метки дуг нс используются. Отношения между понятиями предегдвляют- ся узлами концептуальных отношений. На рис. 6.14 узлы dog (собака) и brown (коричневый) представляют понятия. a color (цвет)— концептуальное отношение. т°бы различать эти типы узлов, узлы понятий будем представлять прямоугольниками. а концептуальные Отношения — эллипсами. В концептуальных графах узлы понятий представляют либо конкретные, либо абст- рактные объекты в мире рассуждений. Конкретные понятия, такие как кошка, телефон ”Ли Ресторан, характеризуются нашей способностью сформировать их образ. Отметим, Что к к°нкретным относятся обобщенные понятия, например, cat (кошка) или restau- rant (ресторан), а также понятия конкретных кошек и ресторанов. Мы можем также Формировать образ обобщенной кошки. Абстрактные понятия включают такие абеграк- Ции как любовь, красота, верность, для которых- нс существует образов в нашем вообра- Лава 6- Представление знаний 245
пшений описывают отношения, включающие одно ш,и женин Узлы концептуальных о™ концеПтуальных графов без использоваа1и Сколько понятий. Одним и ПР пу Ления отношений любой арности. N-apiloe помеченных дат является ^„-„адьного отношения, имеющего N дуг, как „0. отношение представляется узл казано на рис. 6. W. _ представляет одно высказывание. Типовая база знаний Каждый концептуальный граф и быть произвольной сложности, но они будет состоять из ряда таких граф на рнс. 6 14 представляет высказывание “А должны быть конечными, напр „чневого цвета"). На рис. 6.15 изображен более dog has a color of brown (° высказь1ванне “Mary gave John the book” (“Мэрн дала сложный граф, представ, концегггуальные отношения используются для представле- Джону книгу”), в этом граф примера ясно, как концептуальные графы —— [ binJ~|---— dies (летает) — унарное отношение brown color (цвет) — бинарное отношение Рис. 6.14. Концептуальные отношения разной арности person John Рис. 6.15. Граф предложения "Mary gave John the book1' 6.2.2. Типы, экземпляры и имена отношен и й'и[1'КИ 11ервых “мантичсских сетей в основном не заботились об опредег' в результате чего возникала семант.^ отношения межпу римср'отношенне между экземпляром и его классом отлич ЗОМ одни свойства поин°М <С°6ака) ” сго суперклассом (плотоядные). Подобны* пиление д“Х* »РУ™е - самим классам. В связке И “любить кости" отапг 1СЧИТ1' механизм для такого различия. Свойства и ^т свойствами “иметь мех'™” к„отдс,,1,ным собакам, а сам класс “собака нс сСу, включают имена и место ИЛИ ССТЬ ЧГ0 угодно". Свойства, соответствующие место в зоологической классификации. В концептуальных графах каждое понятие является уникальным экземпляром кон- кретного типа. Каждый прямоугольник понятия снабжается меткой типа, определяющей класс или тал экземпляра, представленного этим узлом. Таким образом, узел снабжен- ный меткой dog (собака), представляет некоторый объект этого типа. Типы имеют ие- рархическую структуру. Тип dog (собака) является подтипом типа carnivore (плотоядные), который, в свою очередь, является подтипом mammal (млекопитающие) и т.д. Прямоугольники с одной и той же меткой типа отражают понятия одного и того же типа. Однако этн прямоугольники могут либо представлять, либо не представлять одно н то же индивидуальное понятие. Каждый прямоугольник понятия помечается именами типа и экземпляра. Метки типа и экземпляра отделяются двоеточием. Граф на рнс. 6.16 показывает, что собака Emma — коричневая. Граф на рис. 6.17 означает, что некая иеспецифицированная сущность типа dog имеет коричневый цвет. Если экземпляр не указан, понятие представляет неспеци- фнцированный индивидуум этого типа. Концептуальные графы позволяют также описывать конкретные, но неименованные экземпляры. Для обозначения каждого экземпляра в мире рассуждений используется уникальный дескриптор, называемый маркером (marker). Он представляет собой число, перед которым расположен символ Маркеры отличаются от имен тем, что они яв- ляются уникальными: экземпляр может иметь одно имя, несколько имен или вовсе быть безымянным, но он имеет ровно один маркер. Подобным образом различные экземпляры могут быть тезками, ио не могут иметь один н тот же маркер. Это различие дает возмож- ность преодолевать семантические неоднозначности, возникающие при именовании объ- ектов. Граф на рис. 6.17 означает, что конкретная собака #1352 — коричневая. dog: етта Рис. 6.16. Концептуальный граф, показывающий, что собака Emma — коричневого цвета Рис. 6.17. Концептуальный граф, показывающий, что отдельная (но безымянная) собака— корич- невого цвета Маркеры позволяют отделить экземпляры от их имен. Если собака #1352 имеет имя эмма, для его описания можно использовать концептуальное отношение name (имя). Ре- зультатом является граф на рис. 6.18. Имя. заключенное в двойные кавычки, указывает, что это строка. Там. где не возникает опасность неоднозначности, мы можем упростить граф и ссылаться на экземпляр прямо по имени- При таком соглашении граф на рис. 6.18 эквивалентен графу на рис. 6.16. Рис 6.18. Коииептуапный граф- показывающий. „„„ собака с ипсие-п Етли, - коричкевщю гпава 6. Представление знаний 247 246 Часть III. Представление и разум в ракурсе искусственного интел"
,й речи «к и в формальном представлении мы часто игнор„ Хота как в разговор Р „мснсм, оно является важным „ должно быть „0 ™ различие между a,—»м если мь| говор.,м. чт0 ]о1, _ обь1чное W 2, «зыком приои»®1* Ргео самого имени, а не какого-нибудь экземпляра с имя. МЫ утверждаем, ™ ять „кие английские выражения, как “Chimpa^. is ' нем John. Эгс позволяет пр * мпанзе я8ляется именем вида приматов"). Подобным об name of species of pnmate. t y объскга нсскольких „мсн. Граф |и ₽ разом можно представ и ¥ ичсскон песне Леннона и Маккартни (1968 года) о представляет свтуашм, о‘ топая называла себя Lil, но все ее знали как Nancy, девушке с именем McGill, котор Рис. 6.19. Концептуальный граф для представле- ния человека с тремя именами Вместо обращения к объекту по маркеру илн по имени можно использовать обоб- щенный маркер * для определения неспецифнцированных экземпляров. Эта информация часто опускается в метках понятий: узел, заданный только меткой типа dog, эквивален- тен узлу dog; *, Дополнительно к обобщенному маркеру концептуальные графы позво- ляют использовать именованные переменные. Они представляются звездочкой, за кото- рой следует имя переменной (например, *Х или *foo). Это полезно, если два отдель- ных узла должны обозначать один и тот же, но не указанный экземпляр. Граф на рис. 6.20 представляет утверждение “The dog scratches its ear with its paw” (“Собака чешет ухо лапой’). Хотя мы не знаем, какая собака чешет свое ухо, переменная *Х указывает, что лапа и ухо принадлежат одной и той же собаке, которая чешется. Итак, каждый узел понятия означает экземпляр определенного типа. Это объект, от- носящийся к данному понятию, или объект ссылки (referent). Ссылка задается лип» ЛИ^° ДЛЯ ВСеХ экзеМ[и1яров в целом. Если для объекта ссылки используя' таегея'по'по» ПЛЯ|>а' поня™е явяяется конкретным, а если общий маркер — понятие с 6.2.3. Иерархия типов Как показано на рис. 6.21, иерархия типов — множестве типов, которое можно обозначить символ™, частичное упорядочение па С < S. то говорят, что с — это подтип s a s — ~ ЕСЛИ 3 и Ь — есть ТИ|,Ы и :.х Рис. 6.21. Иерархия типов, иллюстрирующая подтипы, супертипы, универсальный и абсурд- ный тип. Дуги представляют отношения Иерархия типов концептуальных графов представляет собой решетку, описывающую общий вид системы множественного наследования. В этой решетке типы могут иметь множество родителей и детей. Однако каждая пара типов должна иметь минимальный °бщий супертип и максимальный общий подтип. Тип v является минимальным общим сУпертипом для типов s и и, если s<v и u<v и для любого общего супертипа w типов s и u Максимальный общий подтип имеет аналогичное определение. Минимальный общий супертип совокупности типов служит для определения свойств, присущих только эгим типам. Поскольку многие типы, такие как emotion (эмоция) и rock (рок), не имеют общих сулсртнпов или подтипов, необходимо добавлять типы, которые выполня- Ют ЭТн Роли. Чтобы иерархия типов действительно стала решеткой, в концептуальные гРафы включают два специальных типа. Универсальный тип (universal type) обозначает- Ся Символом Ти является супертипом всех типов. Абсурдный тип (absurd type) обозна- ется символом J. и является подтипом всех типов. а8а 6- представление знаний 249 разум в ракурсе искусств
624 Обобщенней специализация ™,льиш графы яклю^т ряд операции длясоздаипя НО8ЫХ Теория «o«ue[,T’,Mb" (5L„ позволяют генерировать новый граф путем либо на основе существующих- шего графа, и очень важны для предсга8ле ' чшшзщш. либо аоюи,ет’ н, И1С. 6.22 показаны четыре операции, а именно- » ’ °^шк лупрощете'Предя<—•что 91 и «о. позволяет сформировать новый >раф Э. который является Точ. Н0Х~ позволяет заменить узлы понятий зрафа узлами, представляющим щ специализацию. Возможны две ситуации. 1. Если понятие помечено общим .маркером, то общий маркер может быть замсмн индивидуальным. 2. Метка типа может быть заменена одной нз меток его подтипов, если это соответст- вует объекту ссылки понятия. На рис. 6.22 мы можем изменить animal (животное) на dog (собака). Правило объединения позволяет интегрировать два графа в одни. Если узел поня- тия С| графа 3| идентичен узлу понятия с, графа з2, то можно сформировать новый граф, вычеркивая с2 н связывая все его отношения с с,. Объединение — это правило специализации, так как результирующий граф является менее общим, чем любой из его компонентов. Если граф содержит два одинаковых отношения, то одно нз них может быть вы- черкнуто вместе со всеми его дугами. В этом заключается правило упрощения. Дуб- лирующиеся отношения часто возникают в результате операции объединения, как на графе на рис. 6.22. 250 ЧаСТЬП₽едст^ние и раэум в ракурсв „^ссгввнного ингелле«а
Упрощение gt: Рис. 6.22. Примеры операций ограничения, объединения и упрощения Глава 6. Представление знаний 251
д„ иаюмхятпа правил ограничение необходимо так СОПо чтобы их можно было обьединить. Это позволит реализовать два п замена обобщенного маркера индивидуальным реализует вдело СДОвадие. )(а свойств типа. Замена метки тепа меткой подтипа определяет наслД°Ва,и,<: сом и суперклассом. Путем объединения одного графа с другим ,e/<on:11 иго Мс* fO)J!Poi, ленных узлов понятий можно реализовать наследование различ " ОгРаиьчсн^яЛ^ показано, кек шимпанзе наследует свойство "иметь Cii0J’c'"!. На г,00^*- (приматы) при замене метки типа меткой подтипа. Кроме ТО1Т °Т адасса Р{.. 6-23 экземпляр Волге наследует это свойство с помощью н<Ктанци'рораРИ<:УНК<: ,,оказа^te’ I ""’б'чегопо«^а‘ Концептуальный граф hand Наследование свойства подклассом Ichimpanieebonzol hand Наследование свойства экземпляром Рис. 6 23. Наследование в концептуальных графах Таким же образом объединение и ограничение можно применять для реализации правдоподобных высказываний, обычно используемых для понимания языка. Если мы говорим “Mary and Tom went out for pizza together” (‘‘Мэри н Том пошли вместе в пицце- рию"). то автоматически делаем ряд предположений: они ели круглый итальянский хлеб, покрытый сыром и томатным соусом. Они ели его в ресторане и каким-то образом рас- считались за него. Это рассуждение может быть сделано иа основе объединения и огра- ничения. Мы формируем концептуальный граф выражения и объединяем его с концепту- альными графами (из базы знаний) для пиццы и ресторанов. Результирующий граф по- ОбъединТниТи'огоани °НИ "" тома™ый СОУС и оплатили счет. частичное упорядочена ЧеНИе ЯВляются правилами специализации. Они определяю ниализацией о, то мм МНожестве полученных графов. Если граф р( является спе- играет важную роль в nnf*CM ГОВОРИТЬ' что 91 — обобщение д,. Иерархия обобщена стае основу для насле[1ойа^ГаВЛеНИИ зианий- Иерархия обобщения используется в каче- многих методах обучения ” Лругж ^щесмыс.товых схем рассуждения, а также в *дсние на основе частного п?;ЗВ0ЛАЯ Н2м’ НапРимер, конструировать обобщенное ут»еР Оправила не ЯВ7,Т УЧЭЮЩег0 пР««ера. Ф™ выводнтьед „ ” “г’авЩ1™« вывода. Они ие гарантируют, что из истинны^ ’улизт может не бып,^, '' графы' Например, при ограничении графа иа рис. 6,22 Р» "Р“мер объела 11а р\™НН 'м ~ Епвда можст 6ь1тъ кошкой. Подобным же °®Р ‘ че«ш,аРИ ССТкос™. могуг быть m*' “храняет истинность: собака на крыльце ► ,ю 0ор.мг,поо Ручными животными. Эти операции являются »ии обладают’™вд,са1 format,on ru|e)> „ ж сохр^„ воиством — сохраняют “осмысленность Это „пи использовании концептуальных графов в задачах понимания естественного языка. Рас- с!4отрим три выражения. Albert Einstein formulated the theory of relativity. (Альберт Эйнштейн сформулировал теорию относительности.) Albert Einstein plays center for the Us Angeles Lakers. (Альберт Эйнштейн - центровой в команде Los Angeles Lakers.) Conceptual graphs are yellow flying popsicles. (Концептуальные графы являются желтыми летающими мюмзиками) Первое выражение является истинным, а второе— ложным. Третья фаза вообще бессо- держательна: грамматически правильная, оно не имеет смысла- Второе предложение, хоть и ложное, является осмысленным. Я могу представить Альберта Эйнштейна на баскетбольной „лошадке. Канонические правила формирования накладывают ограничения на семантику смысла, т.е. не позволяют формировать бессмысленные графы на основе осмысленных. Не являясь смысловыми правилами вывода, они формируют основу для многих правдоподобных рассуждений в системах понимания естественного языка и для общесмысловых рассуждений. 6.2.5а Пропозициональные узлы Графы можно использовать для определения отношений между объектами мира, а также между высказываниями. Рассмотрим, например, утверждение “Tom believes that Jane likes pizza” (“Том верит, что Джейи любит пиццу"). Здесь believes— это отно- шение, аргументом которого является высказывание. Концептуальные графы включают тип понятий proposition (высказывание), объектом ссылки которого является мно- жество концептуальных графов. Это позволяет определить отношения, включающие вы- сказывания. Понятия высказываний, или пропозициональные понятия, изображаются прямоугольником, содержащим другой концептуальный граф. Эти понятия с соответст- вующими отношениями могут использоваться для представления знаний о высказывани- ях. На рис. 6.24 показам концептуальный граф для приведенного выше утверждения. От- ношение experiencer (чувствующий) аналогично отношению agent (агент)— оно тоже связывает субъект с глаголом. Связь experiencer используется для состояний Доверия, которые основываются скорее на интуиции, чем на действиях. На рис. 6.24 показано, как концептуальные графы с пропозициональными узлами мо- гут использоваться для выражения модальных понятий знания и доверия. Модальные ло- гики (modal logic) связаны с различными типами высказываний. Они позволяют выразить to, во что верится, возможное, вероятное или обязательно истинное, подразумеваемое как результат действия или противоречащее фактам [Turner, 1984). 6-2.6. Концептуальные графы н логика Используя концептуальные графы, можно легко представить такие конъюнктивные понятия, как "The dog is big and hungry" (“Собака большая и голодная”), но это представ- ление не позволяет описать отрицание или дизъюнкцию. Не решен также вопрос кван- тификации переменных. Мы Можем реализовать отрицание, используя пропозициональные понятия и унарную Опсрацию пед. Ее аргументом является пропозициональное понятие, которое в резуль- Тате Применения операции пед становится ложным. В концептуальном графе на Глава 6. Представление знаний 253 252 111' Представление и разум в ракурсе искусстееиноГ° и
тс 6 25 оперзш* пе3 используется для представления утверждения “There dogs- (“Розовых собак не бывает ). аге по Рис. 6.24. Концептуальный граф утверждения "Тот believes that Jane likes pizza", иллюстрирующий ис- пользование понятии высказываний Используя отрицание и конъюнкцию, можно формировать графы для представленИ1 дизъюнктивных утверждений в соответствии с правилами логики. Чтобы упростить эту процедуру, можно определить отношение or, включающее два высказывания и пред- ставляющее их дизъюнкцию. Предполагается, что в концептуальных графах родовые понятия связаны квантором существования. Например, родовое понятие “dog" (“собака’’) на графе, представленном на рис. 6.14, действительно представляет переменную, связанную квантором существо- вання. Этот граф соответствует логическому выражению 3X3Y{dog(X)ACo/or{X. ¥)аЬгомл(У)). Используя отрицание и квантор существования (подраздел 2.2.2), можно также пред- ставить квантор всеобщности. Например, граф на рис. 6.25 можно рассматривать как представление логического утверждения ^X^Yb(dog(X)AColor(X,Y)Apink(Y)}). граф утверждения "There are по puik dogs" Дикатов. Как видно вд этиу °СВОей выразительной силе эквивалентны исчислению пре- концетуалЬНыХ графов системТ^08’ существУег прямое соответствие представления обозначении исчисления предикатов. В [Sowa, 1 оеДложен следующий алгоритм преобразования концептуального графа g в выражение „Числения предикатов. 1. Каждое из п родовых понятий графа g связать 2. Каждое конкретное понятие в g связать может быть просто именем или ссылки для данного понятия. 3 Представить каждый узел понятия унарным предикатом, имя которого соответст- вует типу этого узла, и аргументом которого является переменная или константа данного узла. с отдельной переменной хьхг, —,хл. с отдельной константой. Эта константа маркером, используемым для указания объекта 4. Представить каждое n-арное концептуальное отношение на графе g л-арным пре- дикатом с тем же именем. Каждый аргумент предиката является переменной или константой, соответствующей узлу понятия, связанного с этим отношением. 5. Сформировать тело выражения исчисления предикатов в виде конъюнкции все:-, атомарных выражений, построенных в пп. 3 и 4. Все переменные в выражении считаются связанными квантором существования. Например, граф на рис. 6.16 представляется выражением исчисления предикатов вида 3X,(dog(Emma)ACO/or(Emma,X,)Abrown(X,)). Хотя концептуальные графы можно описать в синтаксисе исчисления предикатов, они поддерживают ряд специальных механизмов вывода, таких как объединение и огра- ничение, не являющихся частью исчисления предикатов. Мы представили синтаксис концептуальных графов и определили операцию ограни- чения как средство реализации наследования. Однако это не весь спектр операции и пра- вил вывода, которые можно реализовать на таких графах. Кроме того, до сих пор не рас- сматривалась проблема определения необходимых понятий и отношений для такой предметной области, как естественный язык. Мы вернемся к этим вопросам в подразде- ле 13.3.2 и используем концептуальные графы доя реализации базы знаний простой про- граммы понимания естественного языка. 6.3. Альтернативы явному представлению В последние годы исследователи ИИ продолжали изучать роль представления в реа- лизации интеллекта. Кроме коннекционистского и эмерджентного подходов, рассматри- ваемых в главах 10 и 11. наиболее достойной альтернативой явному представлению яв- ляется методология. описанная в работах Брукса из Массачусетского технологического института [Brooks, 1991о]. Брукс ставит под сомнение необходимость какой-либо цен- трализованной схемы представления и с помощью своей категориальной архитектуры (subsumption architecture) показывает, как интеллектуальные сущности могут развиваться из более низких вспомогательных форм интеллекта. Другой взгляд на проблему явного и статического представления содержится в рабо- тах Мелани Митчелл (Melanie Mitchell) и Дугласа Х'офстадтера (Douglas Hofstadter) из университета штата Индиана. Архитектура Copycat (подражательная архитектура) — это развивающаяся сеть, которая адаптируется к смыслу отношении, открываемых в процес- се экспериментирования с внешним миром. Важным прикладным аспектом исследования Брукса и Митчелл является то. что их идеи были разработаны на искусственных объектах. а затем проверялись с некоторыми 255 Ь1'1, Г1редставпение и разум в ракурсе искусственного интеллект Г пава 6. Представление знаний
- ш Как отмечается во введении к главе 16 это ограничениями эмпирических наук: их эксперименты разрабо-^"* рабош Брукса Мит Рдагадан был1, подтверждены или отвергнуты, „ как Г-^вТследуюшее поколение экспериментов. 631. Гипотезы Брукса и категориальная архитектура ' Блоке выдвинул гипотезу о том. что интеллект и рациональное поведение не в03й11ка. ет ^нематериальных (невоплощенных) системах, подобных системам доказат^ теорем или даже в традиционных экспертных системах (раздел 7.2). Эту гипотезу авТОр _ДИД на примерах созданных им роботов. Брукс считает, что .ттеллекг явИстс взаимодействия определенной многослойной системы со своим окружу влитого. Брукс придерживается точки зрения, что интеллектуальное поведение в03„в. кает при взаимодействии архитектур, организованных из более простых сущностей. В этом состоит основная идея его категориальной архитектуры (subsumpllon architecture). Категориальная архитектура реализована Бруксом в системе управления роботом. Эп архитектура представляет собой совокупность объектов-обработчиков, предназначенных для решения отдельных задач. Каждый такой объект является конечным автоматом, ко- торый непрерывно преобразует воспринимаемую входную информацию в выходное управляющее воздействие и зачастую реализуется с помощью простого множества про- дукционных правил типа условие—^действие (раздел 5.3). С помощью этих правил можно определить (случайным образом, т.е. без знания глобального состояния), какие действия соответствуют текущему состоянию подсистемы. Брукс допускает некую об- ратную связь от более низких уровней системы. Перед тем как представить пример архитектуры Брукса на рис. 6.26, познако- мимся с его философией. Брукс полагает, что “при построении больших интеллекту- альных систем представление является неправильной единицей абстракции". Следо- вательно “явные представления н модели мира можно строить лишь на низших уровнях интеллекта. Оказывается, в качестве модели мира лучше использовать сам мир" [Brooks, 1991а]. Таким образом, Брукс рассчитывает строить интеллектуаль- ные системы инкрементально. На каждом этапе архитектуры он предлагает создать завершенную систему и обеспечить надежность функционирования ее составных частей и их интерфейсов. На каждом шаге проектирования он строит завершенные интеллектуальные системы, которые тестируются в мире, требующем действитель- ного восприятия и действия [Brooks, 1991а]. На рис. 6.26, взятом из работы [Brooks, 1991а], показана трехуровневая категориаль- ная архитектура. Каждый уровень представляет собой сеть фиксированной топологии, состоящую из простых конечных автоматов, имеющих несколько состоянии, один или два внутренних регистра, одни или два таймера и доступ к простым вычислительным устройствам, позволяющим, например, вычислить сумму векторов. Этн конечные авто- маты ра охают асинхронно, посылая и получая сообщения фиксированной длины. В сис‘ теме нет централизованного управления. Наоборот, каждый конечный автомат управл* ineuuuaHHblMH' пол^чаемымн нм через сообщения. При получении сообщения или завер гло6апкык^МеННОГО ,1сриода 0Ж1,-зання состояние автомата изменяется. В системе нет зей Таь-и« данных или каких-либо динамически создаваемых коммуникационных свЯ томаты па±а3°М' ° "" Нев°3мОж™ Р^зовать общее управление. Все конечные ав- томаты равноправны и являются пленниками своеП СВЯЗНОС'ИР категориальной архи- Рис. 6.26. Функции трехуроенееой категоричной архи- тектуры и, работы [Brook, 1991aJ. уртт функции AVOID (избегать). WANDER (перемещаться) ВХ- PLORE (исследовать ) На рнс. 6.26 представлено подмножество функций трехслойной архитектуры, реализо- ванной s одном из первых роботов (Brooks. 1991а(. Робот был оснащен кольцом из двена- дцати сонарных датчиков. Каждую секунду эти датчики давали двенадцать радиальных из- мерении расстояния до препятствия. На самом низком уровне категориальной архитектуры реализуется функция AVOID (избежать), которая предотвращает столкновение робота с объектами, вне зависимости от того, являются они статическими или движущимися. Авто- мат с меткой, помеченный sonar data (сонарные данные), выдает мгновенную инфор- мацию тар, которая передается на автоматы collide (столкновение) и feedforce (ощущение препятствия), первый из которых способен генерировать сообщение halt (остановиться) для автомата, отвечающего за перемещение робота вперед. При активиза- ции автомата feedforce он способен генерировать инструкции runaway (уйти прочь) или avoid (обойти), чтобы избежать опасности. Эта сеть конечных автоматов самого низкого уровня генерирует инструкции halt (остановиться) и avoid (обойти) для всей системы. Следующий слой WANDER (перемещение) определяет способ перемещения системы, генерируя для робота случай- ное направление heading каждые 10 секунд. Автомат AVOID (нижний уровень) полу- чает направление heading от автомата WANDER и связывает его с результатами работы уровня AVOID. Автомат WANDER использует этот результат для подавления поведения более низкого уровня, заставляя робота двигаться в направлении, близком к заданному, и в то же время избегать столкновения со всеми препятствиями. И. наконец, активнзиру- ЯСЬ, автоматы turn (повернуть) и forward (прямо) (на верхнем уровне архитектуры) будут подавлять любые новые импульсы, присланные от автомата WANDER. Верхний уровень EXPLORE (исследовать) позволяет изучить окружение робота. При этом он осматривает (look) отдаленные места и достигает их. планируя путь plan. Этот уровень способен подавлять инструкции автомата WANDER и наблюдать за тем. как уси- лиями нижнего уровня робот огибает препятствия. Он корректирует отклонения и фоку- сирует робота на достижении цели, сдерживая блуждающее поведение, но разрешает ав- томату самого низкого уровня уклоняться от препятствий на пути. При реализации от- клонений, сгенерированных на более низком уровне, уровень EXPLORE вызывает автомат plan, чтобы вновь сориентировать систему на достижение цели. Основой кате- ~ ~ 257 Глава 6. Представление знаний 256 асть III. Представление и разум в ракурсе искусственного ицт0/1/10КГ
пяется то. что система не требует централизован,,., рориальной архитоьчурь, ” все свои действия без поиска сред,, во символьных ра“У«“”:^Хой конечный автомат генерирует инструкции для следующих состоянии. Хотя «К“ „ояния. глобально система действует иа основе вза,, внй исходя из своего ров11ей. модействия НИЖНИХ системных УР с1лура раннего проет Брукса Представленная трехслоиия Р в ПОСЛОДние годы его исследовательская группа ботке робота, передвигающего кол|1чсством уровней [Brooks, 1993]. [Brnoks разработала сложные систем пугсШеивовэть по лаборатории роботики Массачу Stein, 1994]. Одна спстемг> criI щцрмиииевых банок на ра6оч„х сетского технологическогоуровнн дм открытия дверей офисов, поиска ра6о. чТхстоловТр^познававих бзиок. Другое >ровн„ отвечают за управление рукой ро6иа для сбора этих банок “ ”усОр“^Хргоего уровня возникает в результате разработки и Брукс угвержда , н„зКого арх„тстур,,,. Четкое окончательное по- тестирования отдщд. „ межуровиевых связей, формируется в процессе зксю. ЕеДС™ ’to образом^егориальвая apxtrreKrypa успешно реализована в нескольких простых прикладных^мбототехн|щеских системах [Brooks. 1989]. [Brooks. 199Ш]. ^ТГатеториальноГархетек-гурой и другими подходами к проектированию систем управления связано несколько важных проблем (см. также раздел 16.2). 1 Существует проблема достаточности локальной информации на каждом уровне системы. Поскольку иа каждом уровне чисто реактивные конечные автоматы при- нимают решения по локальной информации, т.е. по данным текущего уровня, в процессе принятия решений ие учитывается информация с других локальных уровней. По определению такое решение будет недальновидным. 2. Если не существует абсолютного “знания” или “модели” сложного окружения, как можно иа основе локальной входной информации об ограниченной ситуации сге- нерировать инструкции для выполнения глобально приемлемых действий? Как может верхний уровень согласовывать возможные результаты? 3. Как чисто реактивный компонент с очень ограниченным набором состояний может обучаться в своей среде? Если агент должен быть интеллектуальным, иа некотором уровне системы нужна достаточная информация для реализации механизмов обучения. 4. Существует проблема масштабирования. Хотя Брукс и его помощники объявили о реализации категориальных архитектур из шести и даже десяти уровней, необходимо сформулировать принципы дальнейшего масштабирования интересного поведения. Может ли этот подход быть обобщен на очень большие и сложные системы? Наконец, мы должны задать вопрос: что такое "эмерджеитность"? Не мистика ли это. На настоящем этапе развития науки эмерджеитность относится к явлениям, с который* мы можем только считаться. Нам поставили задачу разработать систему, обладаЮШУ10 интеллектом, и испытать ее. К сожалению, без дальнейшей разработки этой инструкч1* эмерджеитность остается только словом, описывающим то что мы еше не можем П пять. В результате очень трудно определить, как можно использовать эту технологи Для дальнейшего построения более сложных систем. В следующем разделе мы оп«е“ ласт,гоНУЮ арХ“те^С°РУСа(. позволяющую открывать инварианты в проблемной об ласти исследовательским путем. 6.3.2. Архитектура Copycat Часто приходится слышать критические явления ИИ, связанные с их Этичностью и и- традивдонных схем пРед' nnv мыслительных ппл.^ остью и неспособностью отражать динамическую природу мыслительных процессов и интеллекта. Например, попадая в новую ситуацию человек часто бывает поражен ее сходством , „„ опадая в новую ситуацию, .лпп Л[< , дством с уже известными ситуациями. Часто отме- чается, что человек получает информацию как ruu-w ИВЛ _ * цию как снизу вверх, т.е. стимулируется новыми образами окружения, так и сверху вниз, т,е. связывается с ожидаемым результатом. и XаРхитектУРа Решения задач, разработанная в диссертации Мелани Мит- челл [Mitchell, 1993] под руководством Дугласа Хофстадтера [Hofsladter, 1995] в Индиан- ском университете. Архитектура Copycat основывается „а многих предшествующих ей техниках представления, включая модели классной доски (раздел 5.4). семантические сети (раздел 6.2), сети связен (глава 10) и системы классификации [Holland, 1986]. Она также использует подход Брукса к решению задач, состоящий в активном взаимодействии с предметной областью. Однако в отличие от моделей Брукса и сетей связей в Copycat в со- став решателя задач входит глобальное “состояние". Более того, представление является его динамической характеристикой. Copycat поддерживает механизм, подобный семанти- ческой сети, который растет и изменяется в процессе непрерывного взаимодействия со своим окружением. Таким образом, представление является меиее хрупким и более обте- каемым оно включает ту информацию, которую счел важной сам агент, а не ту, которую считал важной разработчик программы. И, наконец, компоненты Copycat позволяют изу- чать ситуацию сверху вниз и снизу вверх, а также устанавливают аналогии. Изначально задачей Copycat являлось восприятие и определение простых аналогий. В этом смысле архитектура базируется на раииих работах [Evans, 1968] и [Reitman, 1965]. Примером такой задачи является комплектация групп взаимосвязанных понятий: hot (горячий) и cold (холодный), tall (высокий) и wall (стена), short (короткий), wet (мокрый), hold (крепость) или построение групп понятий на основе иерархической орга- низации мира, в частности, bear (медведь) и pig (свинья), либо chair (стул) и foot (ножка), table (стол), coffee (кофе), strawberry (земляника). Архитектура Copycat при- менялась для завершения упорядоченных в алфавитном порядке строк, таких как: abc и abd или ijk и ?, либо abc и abd или ИЦкк н 2. Copycat включает трн основных компонента: рабочее пространство (workspace), гибкую сеть (slipnet), блок кодов (coderack). Эти составляющие взаимодействуют через подсистему измерения температуры. Температурный механизм включает степень вос- приятия в системе, а также управляет степенью случайности при принятии решения. Вы- сокая температура свидетельствует, что информации для принятия решения мало, низкая температура означает противоположное. Таким образом, при высоких температурах ре- шения более случайны, а при понижении температуры система достигает консенсуса. И. наконец, низкая температура говорит о “созревании" решения, а также отражает его “достоверность". Рабочее пространство — это глобальная структура, подобная классной доске, описан- ной в разделе 5.5, предназначенная для создания объектов, инспектируемых другими ком- понентами системы. В этом смысле оно во многом подобно области сообщений в класси- фикационной системе Холланда (Holland, 1986]. В рабочем пространстве организуется ие- рархия воспринимаемых структур (три строки алфавитных символов). На рис. 6.27 Представлено возможное состояние рабочего пространства со связями (стрелками) между соответствующими компонентами строк. Обратите внимание на то. что на ранних стадиях построения аналогии образуется связь между элементом с и парой kk. 258 Часть III. Представление и разум в ракурсе искусственного интеЛ Глава 6. Представление знаний 259
rmosl->fmost letter -*• 9r0UP puc 6 27 Возможное состояние рабочего простри,<- X Соруса,. Показано „ескояько примеров связей между буквами /МИМ. 19931 Гибкая сеть (slipnet) отражает набор понятий или потенциальных ассоциаций для комп— аналоши (рис. 6.28). Ее можно рассматривать как динамически „ерссфаи- ваемую семантическую сеть, каждый из узлов которой имеет свои уровень активации. Связи в сети могут быть помечены именами других узлов. В соответствии с уровнем ак- тивации помеченных узлов связанные узлы увеличиваются или сокращаются. Таким об- разом система изменяет степень ассоциации между узлами в зависимости от контекста. Эго важно при построении текущего решения. Для узлов, более тесно связанных в теку- щем контексте, уровень активации возрастает. Рис. 6.2В Небольшая часть гибкой сети Соруса, с умами, связями и мет- ками; адаптировано из {Mitchell 1993] щая^иТ небольп^Л к> ~ ”° аПрИ°рИ °Рган1™ван™» вероятностная очередь, состоя- ХмоХГс оаеРХНТОяВбИС',ОЛНЯСМЫХ КОД0В "РеА-—- формируемого решения за счХ "ростРанства и расширяющих некоторую часть теме, описанной в (Holland 19861ССЛедования различных аспектов пространства. В сис- Узлы гибкой сети тснсрио кг UK°.M очень похожи на отдельные классификаторы. _ оценкой исполнения. Таким об *U К° Ы И напРавлжот их в блок кодов с вероятностно» менты, конкурирующие между соб°М' СИСТема п°ДЦержнвает параллельные кодовые сег- рабочего пространства Эти клпи ™ возможность обнаружить и построить структур15’ К0ДЬ1 соотв^ствуют породившим ИХ узлам. В поиске приме- 260 Р Дставление и разум в оакупгя мгй-иг'г-тпаынпго интеллекта
ров уже сгенерированных сущностей состоит _____ ропать и наладить отношения, уже сущс^уХ С“'РХу “,п" Пь™сь *®:н™фнци- отва, у-коды могут также работать сни^£ ДУ о5ьекгами ра6очсг° простр‘и- ‘ котппыс rw™r,™BW " Ра6°ЧСМ повышается степень активации уг- лов, которые .снерируют исполнительные коды, Это позволяет в контексте текущего со- стояния решения проблемы влиять на будущее поведение системы. Важным элсХтом ар- хитектуры Copycat является использование случайности. Большинство решений принима- ется случайно, вероятность выбора действия или структуры определяется соответствием этой сущности текущему состоянию решения задачи. Фактор случайное™ также предохра- няет программу от попадания в “тупиковые ситуации”. Более того, выбранный наугад оши очный элемент (очевидно, нс относящийся к текущему пути) открывает возмож- ность перехода к другим потенциальным путям решения. Это помогает решать проблему “эффекта горизонта (раздел 4.3), когда неудачностъ текущего пути изначально невидима. Случайность, таким образом, привносит неоднородность в пространство поиска, что явля- ется одним из преимуществ генетических алгоритмов (гдава 11). И, наконец, температура служит механизмом обратной связи, определяющим степень “зацепления структур, построенных в рабочем пространстве. При низкой степени заце- пления вероятностный характер выбора, сделанного системой, не столь важен, поскольку оба варианта одинаково приемлемы. При высокой степени зацепления с внутренне не- противоречивым решением влияние вероятностного выбора возрастает, поскольку вари- анты теснее связаны с формируемым решением. Copycat представляет собой гибкую архитектуру, структуры которой развиваются как на основе данных, так и с учетом ожидаемого результата, поэтому отражают инварианты своего окружения. Однако эта архитектура имеет ряд недостатков. Во-первых, несмотря иа то, что рассуждения по аналогии являются обшей и важной особенностью интеллекта, алфавитная предметная область Copycat настолько семантически слаба, что результаты рассуждений по аналогии мало понятны. Это превращает данную архитектуру в игру- шечную систему. Во-вторых, Copycat ие дообучается. С каждым новым образом она пы- тается сформировать строки шаблонов. Для рассуждений по аналогии требуется, чтобы система интегрировала новые знания в уже существующую в ней систему понятий, раз- вивая силу аналогии при каждом столкновении с окружающим миром. Известно несколько новых проектов, развивающих Copycat и предназначенных для проверки архитектуры в более сложной среде. В [Marshall, 1999] продолжено моделиро- вание связей по аналогии. В [Lewis и Luger, 2000] архитектура Copycat расширена для использования в системе управления мобильным роботом. Таким образом, система Copycat значительно развита за счет взаимодействия с конкретным окружением с целью обучения. Результатом этого взаимодействия является карта пространства, исследуемого роботом. Объекты обнаруживаются и наносятся иа карту, а заодно планируются и пере- планнруются маршруты движения между объектами. В следующем разделе будут рас- смотрены агентно-ориентированный и компонентный подходы к решению задач. 6.4. Агентно-ориентированное и распределенное решение проблем ___________________________________________ В 1980-е годы исследователями ИИ было сделано два открытия, которые имели ш- ное значение для последующего анализа роли представления в интеллектуальном реше- Глава 6. Представление знаний
яоиие традиций распределенного искусственного Интел, „ни проблем. Первым было ‘ „Ро РИИ состоялся в Массачусетсском технологи, листа (ГИИ). Первый рабочий И вопросам, связанным с интеллектуальным четком институте в 1980 году и бьш множества решателей. Исследователями решением задач системами, сосу юпрось, параллелизма низкого уровня. РИИ было решено, что их не льких мащ„нах или распараллеливание сложных как распределенная обработка на дмснньге решатели можно эффективно ско- алгоритмов. Они хотели понять еиия проблем. Фактически это было началом ординировать для вителлиггуаль сственном и„ТСллскге с использованием и коорди- зры распределенной обработки » (daemon) и разработкой систем классной доски, нацией исполнителей (actor) и рассмотренных в разделе 5.4. . т представленным в разделе 6.3, стали ра. Вторым открытием исслед ' оииала 6ольшос влияние на традиционный боты Брукса и его „„оставления и рассуждения (раздел 6.3.1). Во-первых, взгляд не требует нейтрализованного эХМ,— знаний. Обрабатываемых некоторой общецелевой схемой вывода, привело к «юОпределенных и взаимодействующих моделей интеллекта, где каждый эле- “е” определенного представления отвечает за собственный компонент процесса ре- шения проблемы. Во-вторых, факт, что интеллект является ситуативным и активным, в контексте отдельных задач позволяет решателю перевести часть процесса решения в ок- ружающую среду. Это дает возможность каждому решателю решать поступающую зада- чу ничего нс зная о процессе решения в остальной части системы. Таким образом, один Web-агент может проверять список товаров, в то время как другой проверяет кредито- способность заказчика. При этом оба агента не осведомлены о принятии решения на бо- лес высоком уровне, например: разрешить или не разрешить покупку. Оба эти направления 1980-х годов повлияли на текущее состояние разработок и ис- пользование интеллектуальных агентов. 6.4.1. Агентно-ориентнрованное решение задач: определение Прежде чем двигаться дальше, определим, что мы подразумеваем под словами “агент”, "агентно-ориентированная система" и “мультиагентная система". Однако это несколько проблематично, так как мнения различных групп исследователей по этому во- просу расходятся. Наше определение и обсуждение базируется на работах [Jennings, Sycara и Wooldridge, 1998J, [Wooldridge, 2000], [Lewis и Luger, 2000]. Будем считать, что мультиагентнал система — это вычислительная программа, блоки решения задач (решатели) которой расположены в некоторой среде, и каждый из них способен к гибким, автономным и социально организованным действиям, направленным (либо нет) на предопределенные реалии или цели. Таким образом, четырьмя свойствами интеллектуальной агентной системы, включающей программные решатели задач, явля- ются: ситуатиыость. автотмюсть. гибкость и социапыюсть. битуативиость (situatedness) интеллектуального агента означает что он воспринимай S “ КОТОРОМ ж,кт“Усг- " “°*ет изменять это окружение. Примеры окружения крегным пт 'Т а™1108 яо Inlernel, среда ведения игры или “обитания" робота. Кон- роботов ROBOCIIpTv ?а М°ЖСТ “S'*™" шток в виртуальный футбол в соревнованиях вХвннком 1 И Щ, -2°001’ КОТ°Р“« взаимодействовать с мячом .. ая размещения, намерений и успехов других штоков. Это понятие си- —™kOTSTrSC( ОТ "Рт70ГО “ 6°"“ Решэтелях задач. таких как планировщик STRIPS (раздел 7.4) или экспертная система MYCIN (раздел 7 3) которые поддерживали централизованные и исчерпывающие знания о своих „рнХых обл^Х система (autonomous system) может взаимодействовав своим o^y- жсиисм без прямого вмешательства других п„.___ друз их агентов. Для этого она должна контролиро- вать свои действия и внутренние состояния. Некоторые автономные агенты могут также обучаться на своем опыте, чтобы улучшить свое поведение в дальнейшем (см. часть IV) В Internet автономный агент мог бы распознавать кредитную карточку вне зависимости от решения других вопросов электронной коммерции. В системе ROBOCUP агент дол- жен передать мяч партнеру или забить тол (в зависимости от конкретной ситуации). Гибкии агент (flexible agent) должен демонстрировать качества отзывчивости или пре- дусжтрительиости (в зависимости от ситуации). Отзывчивый агент получает стимулы от своего окружения и вовремя отвечает на них соответствующим образом. Предусмотри- тельный агент ие просто реагирует на ситуацию в своем окружении, но и адаптируется, це- ненаправленно действует и выбирает альтернативы в различных ситуациях. Агент по поис- ку кредитора, например, должен уметь предоставить пользователю несколько вариантов или найти другое кредитное агентство, если недостаточно одной альтернативы. Футболь- ный агент должен изменить свою тактику игры в зависимости от замысла противника. И, наконец, агент является социальным (social agent), если он может соответствую- щим образом взаимодействовать с другими программными или человеческими агентами. После всего сказанного становится ясно, что агент является лишь частью сложного про- цесса решения проблем. Взаимодействия социального агента ориентированы на дости- жение целей более крупной мультиагентной системы. Эта социальная направленность агентной системы должна решать много проблем, в том числе такие Как различные агенты выделяют подзадачи при решении проблем? Как агенты могут взаимодействовать друг с другом, чтобы облегчить решение системной задачи более высокого уровня (в системе ROBOCUP. например, вести счет)? Как один агент может поддерживать цели другого агента (например, управлять вопросами безопасности в Internet)? Все эти вопро- сы социальной направленности являются предметом современных исследований. Мы описали основы создания мультиагентных систем. Мультиагектиые системы иде- ально подходят для решения проблем, включающих большое количество методов реше- ния, точек зрения и сущностей. В этих областях мультиагентные системы имеют пре- имущества распределенного и конкурентного решения проблем, в том числе за счет реа- лизации сложных схем взаимодействия. Примеры взаимодействия показывают совместные действия по достижению обшей цели. В этом и состоит гибкость социаль- ных взаимодействий, которая отличает мультиагентные системы от традиционного про- граммного обеспечения и обусловливает интерес к агентной парадигме. В последние годы термин мультиагентная система относят ко всем типам про- граммных систем, составленных из множества полуавтономных компонентов. Распреде- ленная агентная система рассматривает пути решения частных задач с помощью ряда модулей (агентов), которые взаимодействуют на основе совместного использования зна- ний о задаче в процессе решения. Исследования в области мультиагентных систем со- средоточены на синтезе поведения множества иногда уже существующих автономных агентов ориентированных на решение данной проблемы. Мультиагентная система мо- жег рассматриваться как сильно связанная сеть решателей, совместно работающих над проблемами, которые могут выходить за рамки возможностей индивидуальных агентов [Durfee и Lesser. 1989). 262 III. Представление и разум в ракурсе искусственного интеллект3 Глава 6. Представление знаний 263
Решат™ =в™ ™ - муяьпккенгного решения проблем. Во-первых. «жлый шад- имеет не. "“Х^рмашоо и недостаточные возможное™ для решения всей задачи, вследствие че. ОД ограниченности знаний. Во-вторых, не сушествует глобального системного ZZZpa ДЛЯ решен» всей проблемы- В-третыя. анаши и входные данные задачи „ж. децентрализованы, и. в-четвертых, процесс рассуждения часто является асинхронным. Наконец разработок» традиционных объектно-ориентированных систем не видят ничего нового в агентнсьориенпгровзнной системе. Их можно понять, если рассматривать свойства отдельных агентов и объектив. Объекты определяются как вычислительные системы с инкац. сулированным состоянием, они обладают методами, связанными с этим состоянием, и совер- шают действия в окружающей среде, а также взаимодействуют, передавая сообщения. Различие между объектами и агентами состоит в том, что объекты редко контролируют свое поведение. Агенты следует рассматривать не как сущности, вызывающие конкретные методы друг друга, а как субъекты, которые запрашивают выполнение необходимых дейст- вий. Далее, агенты являются гибкими. т.е. чутко реагирующими иа изменение внешней среды предусмотрительными и социально настроенными. И, наконец, прн взаимодействии агентов зачастую можно выделить свои собственные потоки управления. Все этн различия не означа юг, однако. что такой объектно-ориентированный язык, как CLOS, рассматриваемый в разде ле 15.12, не является подходящей средой для построения агентной системы. Наоборот, сила и гибкость CLOS делает его идеальным для решения этой задачи. 6.4.2. Примеры и проблемы агеитио-ориеитированной парадигмы Чтобы конкретизировать идеи предыдущего раздела, опишем ряд прикладных облас- тей. в которых целесообразно использовать агентно-ориентированное решение задач. За- одно приведем ссылки на исследования в этих проблемных областях. • Производство. Производственная область может моделироваться как иерархия рабочих областей. Можно рассматривать рабочие области для мукомольного про- изводства, штукатурных, малярных работ, сборки и т.д. Эти рабочие области за- тем можно сгруппировать в производственные подсистемы. Каждая из подсистем функционирует внутри некоторого производственного процесса. Впоследствии эти подсистемы можно объединить в фабрику. Еще более крупная сущность — компания— может контролировать деятельность каждой из этих фабрик, напри- мер, управлять заказами, учетом товаров, ростом производства, прибылью и т.п. Литературные ссылки на агентно-ориентированное производство включают рабо- ты по формированию последовательности производственных процессов (Chung и Wu, 1997], производственных операций [Oliveira и др., 1997] и совместному соз- данию продукции [Cutosky н др., 1993], [Darr и Birmingham, 1996]. • Автоматическое управление. Поскольку контроллеры процессов обычно явля- ются автономными, реактивными и зачастую распределенными системами, не удивительно, что агентные модели приобретают в этой области важное значение- „Г'ТоолГ01 “сследою“™ "о управлению транспортными системами {Corera и ДР. 19961, управлению космическими аппаратами [Schwuttke и Quan, 19931, a"*' уск°Р,1теяя™ IPemolat и др„ 1996], (Klein и др„ 2000]. У"Рав' пению воздушным транспортом [Ljunberg и Lucas, 1992] и другие. 264 Часть III. Представление и разум в ракурсв искусстввнного инталлш«а
1“Хн^^иТ“еК™’^НИКаШ,ОННЫС СНСгеМЫ ЯШ1Я,и1с" большими рае. требуют монитопингя , С0СТОЯЩИМИ из вмимодействующих компонентов, которые системы исполмо ' УПраапения 8 Реал“юм времени. Агентно-ориснтированиые Т7оО71 аТ левого управления и менеджмента (Schoondenvoerd и ДР' m' Afi " " ДР" 9891‘ Персдач" информации, переключения [Nishibe и др., 19931 И обслуживания [Busuoic и Griffiths, 1994]. Более полный обзор приложе- нии в этой области содержится в [Veloco и др.. 1994]. Транспортные системы. Системы грузоперевозок едва ли не по определению яв- ляются распределенными, ситуативными и автономными. Приложения в этой об- ласти включают управление пассажиропотоками и транспортом для транспортных баз [Burmeister и др., 1997) и кооперативное составление транспортных расписа- ний (Fischer н др., 2996). • Информационный менеджмент. Изобилие, разнообразие и сложность информа- ции в современном обществе почти безграничны. Агентные системы могут обес- печить интеллектуальный информационный менеджмент, особенно в Internet. Как человеческий фактор, так и информационная организация как будто сговорились против комфортного доступа к информации. Двумя критическими агентными за- дачами являются фильтрация данных — получение из всей доступной информа- ции лишь той небольшой порции, которая нас действительно интересует, и сбор информации — задача накопления и определения приоритетов среди отобранных порций информации. Среди приложений можно отметить WEBMATE [Chen и Sycara, 1998], систему фильтрации электронной почты [Maes, 1994], поиск в Web [Lieberman, 1995] и агент поиска эксперта [Kautz н др., 1997]. • Электронная коммерция. Современная коммерческая деятельность осуществля- ется под управлением человека: мы решаем, когда купить или продать, какое ко- личество и по каким ценам, и даже, какая информация необходима нам к опреде- ленному времени. Несомненно, коммерция является областью, подходящей для агентных моделей. Хотя полная разработка электронных коммерческих агентов может быть осуществлена только в будущем, несколько систем уже реализовано. Например, современные программы могут принимать решения по многим покуп- кам и продажам на основании большого количества разнородной и распределен- ной информации. Было разработано несколько агентных систем для управления портфелем ценных бумаг [Sycara н др., 1996]. системы— помощники покупателя [Doorenbos и др., 1997], [Krulwich. 1996] и интерактивные каталоги [Schrooten и van de Velde. 1997], [Takahashi и др., 1997]. • Интерактивные игры и театр. Участники игр и театральные герои функциони- руют в богатой интерактивной среде. Игровые агенты могут втягивать нас в воен- ные игры, в сценарии управленшг финансами и даже в спортивные состязания. Те- атральные агенты играют роль человеческих прототипов и могут создавать иллю- зию жизни в эмоциональных ситуациях, при моделировании критических ситуаций в медицине или при обучении разнородным задачам. Исследования в этой области включают компьютерные игры [Wavish и Graham, 1996] и интерак- тивные модели личностей [Hayes-Roth, 1995], [Trappl и Petta, 1997]. Разумеется, существует много других областей, для которых подходит агентно- ориентированная парадигма реализации. Несмотря на то что агентная технология имеет много потенциальных преимуществ, для интеллектуального решения проблем еще необ- 265 Глава 6. Представление знаний
- ппииеденвый ниже список вопросов сформулирован холимо преодолен, р« ^X^Jennings и ДР- (Bond и Gasser. 19881. на основе идеи, иэложенн . .зовать распределить задачи агентов? Более тою . Как систематизировать, фор» ать результаты их решения? квксоотзстствуюшнмо Р й „ „„„„„действие агентов? Какие существу. . Как обеспечить передачу с о6щсний? Что и когда можно назвать подхо- Ют языки и протоколы переда IH сооощ дяшей информацией. поведение агентов при выборе действий и приня- ’ ш, ^шенпйГкак cnpLXc» с ныокализоваиными воздействиями и избегать ^едных взаимодействий с агентами? „ могут представлять и обрабатывать информацию о денег- ’ ы“х°— и знаниях других агентов для их координации? Как агенты мо.уг су. дить о состоянии координируемых нмн процессов. . Как распознать и скоординировать различные точки зрения и конфликтные наме- . Как распознать опасное поведение всей системы, например, хаотичное или вибри- рующес. н избежать его? • Как распределять и контролировать ограниченные ресурсы как отдельного агента, так и системы в целом? • И, наконец, какие технические средства и программные технологии существуют для разработки и поддержки агентных систем? Методы разработки интеллектуального программного обеспечения, необходимые для поддержки агентных технологий решения проблем, можно встретить на протяжении всей книги. Во-первых, требования к представлению процесса интеллектуального решения проблем стали постоянной темой нашего изложения. Во-вторых, вопросы поиска, осо- бенно эвристического, можно найти в части II. В-третьих, область планирования, пред- ставленная в разделе 7.4, обеспечивает технологию упорядочения и координацию подце- лен при организации решения проблем. В-четвертых, мы представляем идею стохастиче- ских агентных рассуждений в условиях неопределенности в разделе 8.3. И. наконец, вопросы обучения в областях автоматизированных рассуждений и понимания естествен- ного языка рассматриваются в частях V и IV. Эти подобласти традиционного искусст- венного интеллекта важны для создания агентных архитектур. Существует ряд других вопросов разработки агентных моделей, которые находятся вне сферы этой книги. например, языки коммуникаций, схемы взаимодействия и методы рас- пределенного управления. Они рассматриваются в [Jennings, Sycara и Wooldridge, J 998} и в трудах соответствующих конференций (AAAI, IJCAI и DAI). ^^^]£ме1£Дополиительиая литература__________________ НИЙ. включая пспользовХ" адХи'поа °''"0°“Ь‘Х альтеРн“™в Для представления зна- го. описаны системы без цента». ' р '.\LeMaHT“4ccKHx сетей и фреймов. Кроме п ждений. Наконец мы пассмот.» ПОВаннои базы ’“»ний или общецелевой схемы россу- «. рассмотрели распределенное решение проблем с агентами. Р«УЛ1- 266 Часть III. Представление и раэум в ракурса искусставнного интеллекта
"»к“ь»ак,т новый уровень поннмання „реИму|„еств „ oqJa. "^гегтвенностн эбЛекти Одходов к представлению. Тем не менее дебаты по вопросам естественности, эффективности и соответствия каждого из подходов продолжаются. Мы заканчиваем эту главу кратким обсуждением нескольких важных подходов в области представления знаний. Первый из них эт0 выбор и степень детализации атомарных символов для пред- ставления знании. Объекты мира составляют область определения отображения; вычис- лительные объекты в базе знаний являются его областью значений. Природа атомарных элементов языка в значительной степени определяет форму описания мира, например, если автомобиль это наименьший атом представления, то система не может рассуж- дать о двигателях, колесах и какой-либо другой части автомобиля. Однако, если этим частям соответствуют атомы, то для представления “автомобиля" как единого понятия может потребоваться более крупная структура со своими способами управления. Другой пример компромиссного решения при выборе символов может быть найден в работах, посвященных пониманию естественного языка. Сложные понятия, значение ко- торых не описывается одним словом, нельзя представить с помощью программ, исполь- зующих отдельные слова в качестве элементов смысла. Существуют также определенные трудности в выделении разного смысла одного н того же слова или разных слов с одним и тем же смыслом. Один из подходов к этой проблеме заключается в использовании се- мантических примитивов— независимых от языка концептуальных единиц, используе- мых в качестве основы для представления естественного языка. Хотя эта точка зрения устраняет проблему использования отдельных слов как единиц смысла, возникают дру- гие проблемы: многие слова требуют сложных структур для их определения; кроме того, при небольшом множестве примитивов сложно уловить тонкие различия, такие как “push” и "shove” (толкать) или "yell” и "scream” (пронзительный крик). Полнота — свойство базы знаний, которое обеспечивается подходящим представденн- ем. Отображение является полным по отношению к свойству или классу объектов, если все вхождения точно соответствуют элементу представления. Предполагается, что географиче- ские карты должны быть полными иа некотором уровне детализации. Карту, на которой упущен город илн река, нельзя рассматривать как навигационную. Хотя большинство баз знании не полны, полнота относительно определенных свойств илн объектов является обя- зательной. Например, предположение полноты представления позволяет планировщику иг- норировать возможные эффекты проблемы границ (frame problem). При описании задачи как последовательности состояний мира, вызываемых некото- рыми действиями или событиями, нужно учитывать, что этн действия иди события изме- няют лишь небольшую часть компонентов описания. Программа должна иметь возмож- ность выявить побочные эффекты и подразумеваемые изменения в описании мира. Про- блема описания побочных явлений действий называется проблемой границ. Например, робот, складывающий тяжелые ящики на грузовик, должен учитывать понижение уровня дна автомобиля с каждым новым ящиком. Если представление является полным, то не- определенных побочных эффектов не будет, н проблема границ исчезает. Трудность проблемы границ является следствием того, что для большинства областей невозможно построить полную базу знании. Язык представления должен помогать программисту в решении вопросов, какие знания можно опустить без потери информации. С проблемой полноты связан вопрос пластичности илн модифицируемости пред- ставления: при отсутствии полноты необходимо восполнить отсутствующие знания. По- скольку большинство баз знании являются неполными, желательно. чтобы процесс мо 267 Глава 6. Представление знаний
„им Кроме синтаксической простоты процесса „„фнкации ИЛИ “а"Ш1И" Х'до»"° гарантировать непротиворечивость базы знаний Мнения знаний ^““"'формации- Наследование являете» примером того, как _и добавлении и уда-'Ю™ Ф ₽ „..противоречивость. иема представления M0*'eT °^e^ t (Mitche!l, 1993]. решали вопрос пластичности за Несколько систем, вкл“ч“ "оторые изменяются и развиваются, встречаясь с ог. счет разработки сетевых струнW alCTtM№ представление является результатом раничениямн естественного ' ₽ _мния снизу вверх) с учетом ожидаемого результата приобретения новых данных t и*рассуждение по аналогии. Примером систем этого тн дсгаалеиия. связанным с отображением мира в базу другим полезным сю“" & дан„ом случае гомоморфизм означает однозначное знаний, является ‘'"""'°'"7'' „ ействиями мира и вычислительными объектами и one- соответствие между Обье ^ отображении база знаний отражает воспринятую рациями языка. При гот' низоваиа более естественным образом. структуру области и мож и „ легКости использования схемы представле- Кроме е™стве"“°нСены п0 „х вытослитыьной эффективности. В [Levesque и ZehmaTlSsZecyxaa^» компромисс между выразительностью н эффективностью. Кстла в качестве схемы представления используется логика, система является высоко выразительной вследствие полноты. Однако системы основанные на неограниченной логике, как правило, не очень эффективны (см. главу 12). _ Большинство вопросов представления относятся к любой информации, накапливаемой и используемой компьютером. Существует еще ряд вопросов, которые должны решаться раз- работниками распределенных и агентных систем. Многие из этих вопросов относятся к при- нятию решении на основе частной (локальной) информации, распределенной относительно выполняемых задач. Эта вопросы решаются с помощью агентных языков передачи сообще- ний и разработки алгоритмов для кооперации и совместного использования информации агентами. Большинство этих вопросов представлено в разделе 6.4. И, наконец, совершенно новые языки и представления могут потребоваться при реализации философских аспектов распределенного, основанного на окружении интеллекта, предложенных в [Clark, 1997], [Haugeland, 1997] и [Dennett, 1991,1995], где так называемые “неплотные” системы исполь- зуют окружение и других агентов в качестве критической среды для запоминания и использо- вания знаний. Необходимы также средства представления и поддержки, которые в соответст- вии с [Brooks, 1991а] “используют мир в качестве модели". В заключение расширим ссылки на материалы, представленные в главе 6. Ассоцианист- ские теории как модели компьютерной и человеческой памяти и рассуждений изучались в [Selz, 1913,1922], [Anderson и Bower, 1973], [Sowa, 1984], [Collins и Quillian, 1069]. Важным результатом в области разработки языков структурированного представле- ния знаний являются языки представления KRL [Bobrow н Winograd, 1977] и KL-ONE гас man, 79], которые играют особую роль как семантические основы структурир0 ванных представлений. Огсьшекгч^>К0НЦеТПуаЛЬНЬК гРаФ0В в значительной степени основан иа книге [Sowa, 1984 концептуальный “ зтому “МШию для более детального знакомства. Согласно этой Ра_ тки н логик бола^ысТ4™101 вы₽азигельнУю СИЛУ исчисления предикатов, модаль"“ 0. шевдй, полученных и, порядков с богатством множества встроенных понятии и Суше^Х л П“сгем0Л0™’-психолопт и лингвистики. Файке и Ливиски пД”'* ите₽еснь1х подходов к представлению. Например, “ представление, которое подчеркивает функдиональву» 268 "др, W85|. [Levesque*Тн"""' запрашива™°“ хранимой в базе знаний [Brachman [Brachman^ кеточнГиГзиХстсГком^имш’- П°М°ЧЬ P“ '““Г' ИздаииС 1 я компиляциеи важных статей на эту тему Многие из сс~ данная ™ва'™ иих даются как иа первоисточники. Полезными могут стать [Bobrow и Collins, 1975], [Devis, 1990]. [Weld и deKleer, 1990] и труды любой из конференций по ИИ вообще, или по представлению знании в частности, например [Brachman и др, 1990]. В настоящее время существует значительное количество статей, развивающих на- правления. предложенные Бруксом по категориальной архитектуре. Особое внимание стоит уделить работам [Brooks, 1991а], [Brooks и Stein, 1994], [Maes. 1994), [Veloco и др., 2000]. Дальнейшие исследования поддерживают философскую точку зрения о рас- пределенной и материализованной природе знаний и интеллекта. Особый интерес пред- ставляет работа [Clark, 1997]. Агеитно-ориентированные исследования являются достаточно популярными в совре- менном ИИ [Jennings и др., 1998]. На ежегодных конференциях по ИИ (IAA1. UCAI) агентным исследованиям посвящены целые секции. Для ознакомления с новейшими дос- тижениями в этой области мы бы порекомендовали изучить последние труды этих кон- ференций. Кроме того, следует ознакомиться с трудами конференции в области распре- деленного искусственного интеллекта (РИИ). Обзор н ссылки на важные прикладные об- ласти агентно-ориентированных исследований были представлены в разделе 6.4. Вопросы представления знаний находятся иа стыке искусственного интеллекта и ког- иитологии [Luger, 1994] и [Clark, 1997]. Книга [Luger, 1995] объединяет классические статьи, которые освещают разработку многих схем представления знаний. 6.6. Упражнения 1. В общесмысловых рассуждениях такие понятия, как причинность, аналогия, эквива- лентность используют не так, как в формальных языках. Например, если мы говорим “Инфляция заставила Джейн просить о повышении", то предполагаем более сложные причинные зависимости, чем в простых физических законах. Если мы говорим “Используйте нож или стамеску для подрезки дерева", то предполагаем важное по- нятие эквивалентности. Приведите примеры трансляции этих и других понятий в формальный язык. 2. В подразделе 6.2.1 приведены некоторые аргументы против использования логики для представления общесмысловых знаний. Приведите аргумент в пользу использо- вания логики для представления этих знании. 3. Запишите каждое из этих выражений в терминах исчисления предикатов, концепту- альных зависимостей и концептуальных графов. “Jane gave Tom an ice cream cone" (“Джейн дала Тому порцию мороженого"). “Basketball players are tall" (“Баскетболисты высокие ). “Paul cut down the tree with an axe" (“Пол срубил дерево топором”). “Place all the ingredients in a bowl and mix thoroughly" (“Поместите все ингредиенты в миску и тщательно перемешайте”). Глава 6. Представление знаний сть III. Представление и разум в ракурсе искусственного интеллеКТ
4. Прочитайте статью [Woods, 1985). Раздел IV этой статьи содержи? оляса//яе проблем в представлении знаний- Предложите решение каждой из этих проблем пользуя логику, концептуальные срафы и понятие фреймов. ' **с" 5. Опишите концептуальные графы (рис. 6.29) на естественном языке. 6. Операции join (объединить) и restrict (о/раничить) определяют обобнкцНо упорядочение на концептуальных графах. Покажите, что отношение обобщения Я0С лястся транзитивным. 7, Специализация концептуальных графов, использующая операции объединения и огра- ничения, является операцией, не сохраняющей истинность. Приведите пример, кото- рый демонстрирует, что ограничение истинного графа нс обязательно является истин- ным. Однако обобщение истинного графа всегда является истинным. Докажите это 3. Определите специализированны!! язык для описания деятельности общественной библиотеки. Этот язык должен содержать множество понятий и отношений и осно- вываться на использовании концептуальных графов. Сделайте то же самое для пред- приятия розничной торгоали. Какие понятия и отношения могли бы быть общими в этих двух языках? Какие из них могли бы существовать в обоих языках, но иметь различный смысл? 9. Транслируйте концептуальные графы (рис. 6.29) в исчисление предикатов. 10. ПрИ1„м,.т, базу маний ф алького графа. ового советника (раздел 2.4) в виде кондепту- ЧасТь HI- Представление I - ь и РаэУм в ракурсе искусственного интеллекта
11. Приведите пример из вашего мт ~ памяти по типу сценарии вд,, фрей^, Р ГОВ°,,"Т о6 человеческой 12. Используя копципуальние^™^, опредслитс . а) ресторана быстрого приготовления пищи; б) общения с продавцом бывших в употреблении автомобилей; в) похода в оперный театр. 13. Постройте иерархию подтипов пот гр8яс„ор,ное р его подтипами могли бы быть няч₽мило т^, р д ’ например, т =ui~nr, rur,B л наземное транспортное средство или морское транспортное средство. Они, в свою очередь, мог.™ бы имел, свои подтипы. Сде- лайте то же самое для понятий перемещаться и сердитый. 14. Построите иерархию типов, в которой некоторые типы не имеют общего супертапа. Дополните множество типов таким образом, чтобы иерархия превратилась в решет- ку. может ли эта иерархия быть выражена с помощью дерева наследования? Какие проблемы могут возникнуть при этом? 15. Каждая из следующих последовательностей символов генерируется в соответствии с некоторым правилом. Опишите представление правил ияи отношений, необходимых для продолжения каждой последовательности: а) 2, 4, 6.8, ... 6) 1,2, 4, 8, 16, ... в) 1,1,2,3,5,8,... г) 1, а, 2, с, 3, f, 4, ... д) о, t, t, f, f, s. s,... 16. В разделе 6.3 было представлено два примера рассуждений по аналогии. Опишите соответствующее представление и стратегию поиска, позволяющие сделать опти- мальный выбор. Приведите несколько примеров аналогии, которые можно реализо- вать на основе предложенного вами представления. a) hot (горячий) и cold (холодный), tall (высокий) и wall (стена), short (короткий), wet (мокрый), hold (крепость) б) bear (медведь) и pig (свинья); chair (стул) и foot (ножка), table (стол), coffee (кофе), strawberry (земляника) 17. Опишите представление, которое могло бы использоваться в программе решения по аналогии проблем, подобных показанным на рис. 6.30. Этот класс задач изучался в работе [Evans, 1968]. Представление должно учитывать такие существенные призна- ки, как размер, форма и относительное местоположение. 18. В статье [Brooks, 1991а] содержится обсуждение роли предстааления в традицион- ном ИИ. Прочтите эту статью и прокомментируйте ограничения явной и обшедое- вой схем представления. 19. В конце подраздела 6.3.1 содержится пять вопросов, которые должны быть решены для успешного решения задач на основе категориальной архитектуры [Brooks, 1991а]. Прокомментируйте хотя бы один из этих вопросов. 20. Определите пять свойств, которые должен иметь язык для реализации агентао- ориентированной службы Internet. Прокомментируйте роль языка Java как обшеце- 271 Г лава 6. Представление знаний
шяботен служб Internet. Согласны ли вы, что подо6- левого агентного языка для рир , Изобилие информации по этому вепре- вую роль выполняет н язык CLO су находится в самой Internet. 21. Ряд важных вопросов, относящихся к агентно-ориентированному решению задач, был представлен почти в самом конце раздела 6.4. Обсудите один из ннх. 22. Предположим, вы разработали агентную систему для представления командной игры в американский футбол. Для взаимодействия агентов в защите или нападении они должны иметь представление о планах других агентов и возможных ответах на соз- давшуюся ситуацию. Как бы вы построили модель целей и планов других взаимо- действующих агентов? 23. Выберите одну из прикладных областей для агентных архитектур, описанных в гла- ве 6.4. Выберите статью исследовательского или прикладного характера нз этой об- ласти. Разработайте структуру агентов, которые могли бы решать задачу. Разбейте проблему так, чтобы определить ответственность каждого агента. Составьте список соответствующих процедур взаимодействия. Масть III. Представление и разум в ракурсв искусстввнного интеллекта
F г. Сильные методы .•••' решения задач Основным принципом инженерии знаний является то, что возможности решателя задач интеллектуального агента в первую очередь определяются его информационной ва- зон и лишь во вторую ~ используемым методом вывода. Экспертные системы должны быть сильны знаниями, даже если они слабы методами. Это важный вывод, который лишь недавно по достоинству оценили исследователи ИИ. Долгое время они занимались почти исключительно разработкой различных методов вывода. Но можно использовать почти любой метод. Сила заключается в знаниях. — Эдвард Фейгенбаум (Edward Feigenbaum), Стэндфордскин университет Nam et ipsa scieniia potestas est (Знание — сила). — Фрэнсис Бэкон (Francis Bacon) 7.0. Введение Продолжая изучать вопросы представления и интеллекта, рассмотрим важный ком- понент ИИ — сильные методы решения задач, или методы, основанные на знаниях. Человек-эксперт способен действовать на высоком уровне, так как много знает об об- ласти своей деятельности. Это простое наблюдение является главным обоснованием для разработки сильных методов, или решателей проблем, основанных на знаниях (см. введе- ние к части III). Экспертные системы используют знания специфичной предметной облас- ти. Обычно разработчики экспертной системы приобретают эти знания с помошью экспер- тов, методологию и деятельность которых затем эмулирует система. Так же, как опытные люди, экспертные системы являются “специалистами ’ по узкому кругу проблем. Подобно людям, они обладают как теоретическими, так и практическими знаниями: человек- эксперг, обеспечивающий систему знаниями, обычно привносит собственное теоретиче- ское понимание предметной области, а также снабжает систему Хшростями , кратчайши- ми путями решения и эвристиками. полученными из опыта решения проблем. Экспертные системы обычно предоставляют следующие возможности. 1. Отслеживают свои процессы рассуждения, выводя промежуточные результаты н отвечая на вопросы о процессе решения. 2. Позволяют несколько модифицировать базу знающ (добакть „ удалять информацию). 3. Рассуждают звристически. используя для получения полезных решений во многом несовершенные знания.
с№гемы должен быть открыт для проверки, обсс. Процесс рассуждения экспертов 6лемы и объясняя выборы и решения, ко, печиия информацию о состоя""" Р‘ человеКа-эксперта. например врача вд„ торые делает программа. 06ьясн' .омииацию компьютера- В самом деле, мало кто инженера. если он должен принять р говоря ужс Q том что6ы следо из экспертов будет принимать со екгаи)1Ю Как и любые программные средства, вать совету машины, не учитывая простоту прототипирования, тестирования и экспертные системы должныго мегодолопи, разработки используются языки и изменения. Для поддержки р продукционной системе, например, мо- срелстю программирования гло6альНых синтаксических побочных эффектов, днфикаши одного прав, „1ШТЬСЯ без необходимости дальнейших изменений "rf протракгчы4 Разработчики экспертной системы часто объясняют, что легкость мо- ’ ,Ф Х7. базы знаний является главным фактором производства успешных программ. СиеХшей особенностью экспертных систем является использование эвристических методов решения проблем. Разработчики экспертных систем установили, что нефор. мазьные трюки" и “шпуитавные правила" являются существенным дополнением к стандартной теории, предоставляемой учебниками и курсами. Иногда эти правила усн- ливают теоретические знания с учетом здравого смысла, а зачастую они просто дают кратчайший путь к решению. Экспертные системы строятся для решения широкого круга проблем в таких облас- тях. как медицина, математика, машиностроение, химия, геология, вычислительная тех- ника. бизнес, законодательство, оборона и образование. Эти программы решают разно- образные проблемы. Следующий список из работы [Waterman, 1986] является полезным конспектом общих задач экспертных систем. • Интерпретация— формирование высокоуровневых выводов из наборов строк данных. • Прогнозирование — проектирование возможных последствий данной ситуации. • Диагностика — определение причин неисправностей в сложных ситуациях на ос- нове наблюдаемых симптомов. • Проектирование— нахождение конфигурации компонентов системы, которая удовлетворяет целевым условиям и множеству проектных ограничений. Планирование разработка последовательности действий для достижения мно- жества целей прн данных начальных условиях н временных ограничениях. ведением^ сравнение наблюдаемого поведения системы с ее ожидаемым по- ской о^Г~ ГГОМОЩЬ В образовательном процессе по изучению техниче- Упрощение - управление поведением сложной среды. блемы на основе знаний. Усгкшм^4”™-Технологию’ к°торая дает возможность решать про- кого круга проблем: от выбора соотв^п-^^^ 3„наний Д0Лжна обеспечивать решение широ- мализации знаний по решению задач R прикладной области до извлечения И фор- на правилах. При этом продукционная 11 6удут ^«‘"рены системы, основанные ЗУР* Для реализации пронессон ' °Удет представлена как программная арх»ггек- н анализа. В разделе 7.3 рассматриваются приемы 274 Р дставление и разум в ракурсе искусственного интеллекта
рассуждении на основе моделей „ опыта. Раздел 7 4 посвяшен . тонизации частей знаний в непротиворечивую последов,™ - процессу ор- цели. Приемы рассуждения в неопределенных с1Пу2и^ де,,™1П 1,0 лужению для разработки решателей задач на основе снльнь^Хов ° ГЛ“С ’’ ™“C В“ЖИЫ 7.1. Обзор технологии экспертных систем 7.1.1. Разработка экспертных систем, основанных на правилах На рнс. 7.1 показаны модули, которые составляют типичную экспертную систему. Пользователь взаимодействует с системой через пользовотоьскмв интерфейс, который скрывает многие сложности, в том числе внутреннюю структуру базы правил. При раз- работке интерфейса экспертной системы используют разнообразие стилен, включая “вопрос-ответ”, меню управления или графический интерфейс. Тип интерфейса опреде- ляется потребностями пользователя и требованиями базы знаний и системы вывода. Ядром экспертной системы является база знаний, которая содержит знание из частной прикладной области. В экспертной системе, основанной на правилах, это знание пред- ставляется в форме правил если..., пю..., как в примерах из раздела 7.2. База знаний со- держит как общие знания, так и информацию о частных случаях. Механизм вывода применяет знания при решении реальных задач. По существу, он является интерпретатором базы знаний. В продукционной системе механизм вывода со- вершает цикл распознавание-действие. Процедуры, которые выполняют этот управляю- щий цикл, отделены от самих продукционных правил. Такое разделение механизма вы- вода и базы знаний важно поддерживать по нескольким причинам. 1. Оно дает возможность представить знания более естественным образом. Напри- мер, правила если..., то... точнее описывают навыки человека по решению задач, чем компьютерный код более низкого уровня. 2. В связи с тем, что база знаний отделяется от программных управляющих структур более низкого уровня, разработчики экспертной системы могут сосредоточиться на накоплении и организации знаний, а не на деталях их компьютерной реализации. 3. В идеале разделение знаний н управления позволяет вносить изменения в одну часть базы знаний без создания побочных эффектов в других. 4. Разделение знаний и управляющих элементов программы позволяет использовать в различных системах одни и те же модули управления и интерфейса пользователя. Оболочка экспертной системы включает все компоненты, показанные на рис. 7.1. а база знаний и данные о частных случаях могут пополняться для новых приложе- ний. Штриховые линии на рнс. 7.1 ограничивают модули оболочки. Экспертная система должна сохранять информацию о частных случаях, в том числе факты и выводы. Сюда включаются данные, полученные в отдельном случае решения задачи, частные заключения, степени доверия к заключениям н тупики в процессе поис- ка. Эта информация отделяется от общей базы знаний. Подсистема объяснений позволяет программе пояснить свое рассуждение лользовд- телю. Она обеспечивает обоснования заключений системы в ответ на вопросы как. (раздел 7.2). объяснение необходимости конкретных данных, а также ответы на вопросы "почему.’" (раздел 7.2). 275 Глава 7. Сильные методы решения задач
Пользователь Впользоватепье<оМ интерфейсе можно использовать. вопросы и ответы, меню, естественный язык илн графические обозначения Машина вывода Подсистема объяснений Общая база знаний Данные частных случаев , „ т111>пяой экспертной системы для конкретной Рис. 7.1. Архитектура типовой зиму предметной области Многие системы включают также редактор базы знаний. Редакторы баз знаний по- ио“ю^программистам локализовать и откорректировать обои в действиях программы, используя информацию, обеспечиваемую подсистемой объяснении. Кроме того, они мо- гут помочь в пополнении новых знаний, поддержке корректности синтаксиса правил и в проверке на непротиворечивость при изменениях в базе знаний. Важной причиной сокращения времени разработки и настройки современных экс- пертных систем является наличие оболочек. В Internet можно найти оболочки CLIPS, JASS, а в части VI предлагаются оболочки для LISP и PROLOG. К сожалению, про- граммные оболочки не решают всех проблем, возникающих при разработке экспертных систем. Хотя разделение знаний и уровня управления, модульность архитектуры продук- ционной системы и использование соответствующего языка представления знаний помо- гают при построении экспертной системы, извлечение и формализация знаний для кон- кретной области остаются пока очень трудными задачами. 1.1.2. Выбор задачи и процесс инженерии знаний Экспертные системы приалекают значительные денежные инвестиции и человеческие усилия. Попытки решить слишком сложную, малопонятную или, другими словами, не соответствующую имеющейся технологии проблему могут привести к дорогостоящим и постыдным неудачам. Поэтому были выработаны критерии оправданности решения дан- ной задачи с помощью экспертной системы. 1. Необходимость решения оправдывает стоимость и усилия по разработке экс- пертной системы. Многие экспертные системы были построены в таких областях, как разведка минералов, бизнес, оборона и медицина, где существует большой по- тенциал для экономии денег, времени и защиты человеческой жизни. 2. Отсутствие человеческого опыта в ситуациях, где он необходим. В геологии. !мРг!е₽’ сУществУет необходимость удаленной экспертизы минирования и буре- болкши°Л°П1 И инженеРы част0 сами проходят большие расстояния, что связано с многие И потерями вРемени. При использовании экспертной системы многие проблемы удаленных районов могут быть решены без их посещения. ний Решение^,? ?'',ТЬ рещеиа с использованием символьных рассужу- ШеНИ£ Пр°6лемы “= ‘Ребус, физической ловкости „ли конкретных на- 276 Часть III. Представление и разум в ракурсе искусственного интеллекта
выков. Современным роботам присущих человеку. и системам зрения не хватает ума и тбкосги, 4. Проблемная область является гппш-.л суждений на основе здравого смысла В^,ур"ров’""'"' 11 ,|е требует рае- удобиы для изучения и формализации- пня ь,сокотехноло™чии<: области очень постооены ясные и Ц ДЛЯ Н,,х четко опРеДелена терминология и построены ясные и конкретные концептуальные модели Рассуждения на основе здравого смысла трудно автоматизировать. -суждения па основе 5 ПР°б7ДаноппТеТ бЫТЬ решена Традциадми вычислительными мето- Да ’ 1 экспертных систем не должна использоваться там, где это нс яв- ляется иео ходимостью. Если проблема может быть удовлетворительно решена олес традиционными методами, она не должна рассматриваться как кандидат для решения экспертными системами. 6. Известны эксперты, способные взаимодействовать между собой и четко вы- ражать свои мысли. Знания, используемые экспертными системами, формируют- ся из опыта и суждений людей, работающих в данной области. Важно, чтобы эти эксперты не только хотели, ио и были способны поделиться знаниями. 7. Проблема имеет приемлемые размеры и границы. Например, программа, пы- тающаяся воплотить весь опыт врача, нереальна. Программа, подсказывающая ме- дицинские решения по использованию конкретного медицинского оборудования или конкретного множества диагнозов, более практична. К разработке экспертной системы необходимо привлекать инженеров по знаниям, экспертов в данной предметной области и конечных пользователей. Инженер по знани- ям является экспертом по языку ИИ и представлению. Его главная задача— выбрать программный и аппаратный инструментарий для проекта, помочь эксперту в данной об- ласти членораздельно сформулировать необходимую информацию, а также реализовать ее в корректной и эффективной базе знаний. Часто инженер по знаниям изначально не знаком с прикладной областью. Знания о предметной области обеспечивает эксперт. Экспертом предметной об- ласти обычно является тот человек, который работал в этой области и понимает принципы решения ее задач, знает приемы решения, может обеспечить управление неточными данными, оценку частичных решений и имеет другие навыки, делающие его экспертом. Эксперт в предметной области отвечает за передачу этих навыков инженеру по знаниям. В большинстве приложений основные проектные ограничения определяет конечный пользователь. Обычно разработка продолжается до тех пор, пока пользователь не будет удовлетворен. Навыки и потребности пользователя учитываются в течение всего никла разработки. Постоянно отслеживаются следующие вопросы. Делает ли программа рабо- ту пользователя более легкой, быстрой, удобной? Какой уровень объяснения необходим пользователю? Может ли пользователь предоставить системе корректную информацию. Является ли адекватным интерфейс? Соответствует ли рабочая среда пользователя огра- ничениям на использование программ? Например, интерфейс, треоуюшии ввода данных с клавиатуры, ие подходит для использования в кабине истребителя. Так же. как и большинство разработок ИИ, экспертные системы требуют нетрадици- онного жизненного цикла разработки, основанного на раннем прототипировании и по- степенной модификации кода. Обычно работа с системой начинается р "ог™ И”' Ра по знаниям описать процессы, происходящие в данной предметной области Этому 277 Глава 7. Сильные методы решения задач
в данной области. Адекватность описания ДОС7В. помогает взаимодействие с эксперте“ ю с испертами и наблюдения за ними в гаегся с помощью предварительных н экспер1 начинают процесс извлечения процессе работы. Далее инженер п задаегея ряд простых задач, которые ок знаний по решению проблем. Для э приемы. Зачастую этот процесс за- питается решить, объясняя используемые при писыааютна видео- л аудиокассеты^ знаниям был новичком в предметной области. Иногда полезно, ™ не всегда может точно объяснить ход решения Общеизвестно, что чело Лвает упомянуть шаги, которые за годы работы в ”°бХ Х для него вполне очевидными или даже автоматическими. В силу Го г о оХХо слабого знакомства с предметной областью инженеры по знаниям ,ОГГ заметить эти концептуальные разрывы и попросить о помощи. Когда инженер по знаниям получит общее представление о предметной области и проведет несколько сеансов решения задач с экспертом, ок сможет приступить к разработке системы: вы- брать способ представления знаний (например, правила или фреймы), определить стратегию поиска (прямой, обратный, в глубину, в ширину н т.п.), разработать пользо- вательский интерфейс. После выполнения этих обязательных этапов инженер по зна- ниям строит прототип. Этот прототип должен быть способен решить проблемы из данной предметной об- ласти и обеспечить испытательный стенд для проверки предварительных проектных ре- шений. Когда прототип готов, инженер по знаниям и эксперт в предметной области ис- пытывают и уточняют знания путем решения конкретных задач и устранения дефектов. Если предположения, сделанные при проектировании прототипа, оказываются коррект- ными. прототип можно поступательно расширять до тех пор, пока он не превратится в окончательную систему. Экспертные системы строятся методом последовательных приближений. Выявляе- мые ошибки приводят к коррекции и наращиванию базы знаний. В этом смысле база знаний скорее “растет”, чем конструируется. На рис. 7.2 представлена блок-схема, описывающая исследовательский цикл разработки программы. Этот подход к про- граммированию был изучен Сеймуром Папертом (Seymour Papert) с помощью его язы- ка LOGO [Papert, 1980], а также Аланом Кэем (Alan Key), Согласно философии LOGO отслеживание откликов компьютера на некорректное представление идей в программ- ном коде приводит к коррекции кода (отладке) и преобразованию в более точный код. оазпайпткЦеСС ПР° И корре1СГНР0ВКН проектов-кандидатов является общепринятым в ИР„х „ СИ™М “ Ка”ДННаЛЬН0 °™нчается от таких проработанных ие- рархических процессов, как проектирование сверху вниз. подход "проблемГм^таГм Гр°М03дкнм’ или проектировщики решили изменить ботчикам исследовать проб.1ес,уТсс1,аа°ж?ь1“ЬвбзГСН,Ь ПрОТ°™П позволяет разра- конструирования программы дм ее решен™ пД Посредством Реального фикации зачастую создается Р ” ' П ,с завершения постепенной моди- лом правил. ” более прозрачная версия, обычно с меньшим количест- Другой важной особенностью экгпрп не должна рассматриваться как зак еРТИЫХ СНСтем является то, что программа никогда иметь ограниченные возможности уНЧеННая‘ Эвристическая база знаний всегда будет ляет естественным образом добавите°ДуЛЬНость модели продукционной системы позво- вать существующую базу правил новые правила или в любое время подкорректнро- 27В Р вставление и разум в ракурсе искусственного интеллекта
Начало 7.1.3. Концептуальные модели и их роль в приобретении знаний На рнс. 7,3 представлена упрошенная модель процесса извлечения знаний, которая могла бы служить первой аппроксимацией для понимания задач приобретения и форма- лизации человеческого опыта. Человек-эксперт, работая в прикладной области. опериру- ет знанием, мастерством и практическими навыками. Это знание часто является неопре- деленным н неточным. Инженер по знаниям должен транслировать этот неформальный опыт в формальный язык вычислительной системы. В процессе формализации практиче- ском деятельности человека возннкаетряд важных вопросов. 1. Человеческое мастерство часто недоступно для осознания разумом. Как отмечает Аристотель в своей “Этике": “Все. чему мы должны научиться, мы изучаем на соб- ственном опыте”. Навыки врача формируются за годы обучения в интернатуре и в процессе работы с пациентами. После многолетней работы эти навыки становятся Интегрированными и существуют в основном на уровне подсознания. Эксперты могут затрудняться точно описать то, что они делают при решении проблем. Глава 7. Сильные методы решения задач 279
«»»«•« реализованная система Опыт Рие. 7.3. Стандартный «и») но построение экспертной системы , Человеческий опыт часто принимает форму знания о том, справиться с ситуа- - 2 . не о том каковы рациональные характеристики этой ситуации. Мы выраба- тываем сложные механизмы действия, а не формируем фундаментальное понима- ние эт!,х механизмов. Наглядным примером этого является уникальная последова- тельность действий при верховой езде: опытный наездник для поддержания равновесия не решает в реальном времени многочисленные системы дифферент- альных уравнений. а использует интушъвное ощущение гравитации, момента и инерции для формирования адекватной управляющей процедуры. 3. Приобретение знаний часто рассматривается как получение фактических зна- ний об объективной реальности так называемого “реального мира”. Как пока- зано в теории и на практике, человеческий опыт представляет модели мира, формируемые отдельным человеком или группой людей. Такие модели созда- ются под воздействием социальных процессов, скрытых закономерностей и эмпирических методологий. 4. Опыт накапливается. Люди не только получают новые знания, но и перерабатыва- ют существующие, что сопровождается продолжительными дебатами в науке. Следовательно, инженерия знаний является сложной задачей, связанной с жизненным циклом любой экспертной системы. Чтобы упростить эту задачу, полезно создать кон- цептуальную .модель — прослойку между человеческим опытом и реализованной про- граммой (рис. 7.4), Под концептуальной моделью понимается концепция знаний о дан- ной области, построенная инженером по знаниям. Несомненно, отличаясь от модели фор'ХьнойбиьГзнмй™’ К01теГ1Т),“Ь"М модель действительно определяет структуру не ”з7па«ма™“’ЛЬЩ"НС,“ ннтересны.х областей этот промежуточный результат “ьХХ ™еТпе0К™ЧатеЛЬНЬ”' "° —, проекл,рован,и, программ ПрГХ^эТ” °бЛ-СТ" ° П°М°ЩЬЮ °6“"X “^ть требования к системе Однако изз^сп,... ж эьс"еРтнои системы необходимо описать к Экспертной системе должны т-»,,,»;,, *"*" жизненного йикла разработки требования фические представления пространства Х,*”- С Прототипом- Словари терминов, гра- частью этой модели. Публикуя эп тоянии и комментарии в коде сами являюты» бок как при реализации так и пни ' n?oeicntb,e решения, мы уменьшаем количество ош»* • аки при сопровождении программы. I- Представление и разум в ракурсе искусственного интеллекта
Реализованная система Рис. 7.4. Роль ментальных или концептуальных моделей в решении проблем Инженеры по знаниям должны сохранять записи своих интервью с экспертами по предметной области. Часто по мере улучшения понимания проблемной области инженеры по знаниям формируют новые интерпретации или открывают новую информацию. Записи наряд)' с документированием данных и интерпретаций играют важную роль при рассмот- рении проектных решений и тестировании прототипов. Наконец, эта модель играет проме- жуточную роль при формализации знаний. Выбор языка представления оказывает значи- тельное влияние на модель предметной области, создаваемую инженером по знаниям. Концептуальная модель не является формальной или исполняемой на компьютере. Это промежуточное проектное решение, шаблон для начала процесса кодирования чело- веческого опыта. Если инженер по знаниям использует модель исчисления предикатов, она может быть представлена в виде набора простых сетей, определяющих состояния рассуждений посредством типичных способов решения проблем. Лишь после дальней- ших уточнений эта сеть превратится в набор правил "ес7и..., то...". При создании концептуальной модели рассматриваются следующие вопросы. Яв- ляется ли решение проблемы детерминированным или оно основано на поиске? Как выполняется рассуждение: на основе данных (возможно, с генерацией и тестирова- нием) илн на основе цели (с учетом некоторого множества вероятных гипотез)? Су- ществуют ли стадии рассуждения? Хорошо ли изучена область и может ли она обес- лечить глубокие прогнозирующие модели, или все знание существенно зврисгичио? Можно ли для решения новых проблем использовать примеры прежних задач и их Решений, или сначала необходимо преобразовать эти примеры в общее правило? Является ли знание точным, или оно “размытое'' и приближенное, и для него ис- пользуются численные оценки определенности (глава 8)? Позволяют стратегии рас- суждений делать стабильные выводы илн внутренняя неопределенность системы требует немонотонного рассуждения, возможности формулировать утверждения, ко- торые впоследствии могут модифицироваться или отменяться (раздел 8.1). И, нако- нец. требует ли структура знаний о данной области отказаться от вывода на основе Глава 7. Сильные методы решения задач 281
правил » пользу таких альтернативных схем, как нейронные сети или генетнЧесКИе “ХХ^Х^уальной модели должны также учитываться потребности Конеч. иь,х пользователей. Чего они ожидают от конечной программы. Каков уровень их Оды та- новичок, средний пользователь или эксперт. Какие уровни объяснении нм требуют ся? Какой интерфейс на.иучшим образом удовлетворяет их нужды? Получив ответы на эти и другие вопросы, а также знания о предметной области можно приступать к разработке концептуальной модели, а затем и самой экспертаой' системы. Поскольку продукционные системы, впервые представленные и главе 5, пред, лагают собственные мощные средства для организации и применения знаний, онн часто используются в качестве платформы для представления знаний в экспертных системах 7,2. Экспертные системы, основанные на правилах В экспертных системах, основанных на правилах, знания о решении задач представ- ляют в виде правил "если..., то...'. Этот подход, являясь одним из старейших методов представления знаний о предметной области в экспертной системе, применяется в сис- темах, архитектура которых показана на рнс. 7.1. Как один из наиболее естественных он широко используется в коммерческих и экспериментальных экспертных системах. 7.2.1. Продукционная система и решение задач на основе цели Архшектура экспертной системы, основанной на правилах, может быть рассмотрена в терминах модели продукционной системы решения задач, представленной в части П. Между ними есть большое сходство: продукционная система считается интеллектуальным предшест- венником архитектуры современных экспертных систем, в которой продукционные правила позволяют лучше понять конкретную ситуацию. Когда Ньюэлл и Саймон разрабатывали про- дукционную систему, их целью было моделирование деятельности человека при решении за- дач. Если экспертную систему на рис. 7.1 рассматривать как продукционную, то базу знаний о предметной области можно считать набором продукционных правил. В системе, основанной на правилах, пары “условие-действие” представляются правилами “если..., /по...’’, в которых посылка (часть если) соответствует условию, а заключение (часть то) — действию. Если ус- вие удовлетворяется, экспертная система осуществляет действие, означающее истинность осушАт-пн^т аННЬ1е частнь1Х случаев можно хранить в рабочей памяти. Механизм вывода ПРИ ™ управление Xzxtxr твсгавуют ~——в ные, при этом часто трудно инФ°рмащш представляет собой исходные дан- процессу рассуждения ппи * Р улировать гипотезы или цель. Это приводит к прямому ЩЦет° Раб°ЧуЮ ПаМЯТЬ’ " СНСТе''‘а В экспертной системе на о и д 1 жение. Система сопоставляет С_Н°Ве цели в Ра^очУю память помещается целевое выра- их предпосылки в рабочую памяКЛК>'ЛНИЯ правил с Целевым выражением и помешает лее простые подцели. На спелый - ° соответствуст декомпозиции проблемы на бо- иесс продолжается, эти ппелппгъ^11 итерации работы продукционной системы про* лки становятся новыми подцелями, которые сопос являются с заключениями правил. Система работает до тех пор, пока все подцели в рабочей памяти не станут истинными, подтверждая гипотезу. Таким образом, обрат- ный поиск в экспертной системе приближенно соответствует процессу проверки гипо- тез при решении проблем человеком. В экспертной системе, чтобы достичь подцели, следует запросить информацию у поль- зователя. В некоторых экспертных системах разработчики определяют, какие подцели мо- рут достигаться путем запроса к пользователю. Другие системы обращаются к пользовате- лю, если не могут вывести истинность подцели на основе правил из базы знаний. В качестве примера решения задач на основе цели с запросами к пользователю рас- смотрим небольшую экспертную систему диагностики автомобиля. Это не полная сис- тема диагностики, так как она содержит всего четыре очень простых правила. Она при- водится как пример, демонстрирующий образование цепочек правил, интеграцию новых данных и использование возможностей объяснения. Правило 1: если топливо поступает в двигатель и двигатель вращается, то проблема в свечах зажигания. Правило 2: если двигатель не вращается и фары не горят, то проблема в аккумуляторе или проводке. Правило 3: если двигатель не вращается и фары горят, то проблема в стартере. Правило 4: если в баке есть топливо и топливо поступает в карбюратор, то топливо поступает в двигатель. Для работы с этой базой знаний цель верхнего уровня проблема в X помещается в рабочую память, как показано на рис. 7.5. Здесь X — переменная, которая может сопос- тавляться с любой фразой, например, проблема в аккумуляторе или проводке. В процессе решения задачи она будет связана с некоторым значением. С выражением в рабочей памяти сопоставляются три правила: правило 1, правило 2 н правило 3. Если мы разрешаем конфликты, предпочитая правила с наименьшим номером, будет активизиро- ваться правило 1. При этом X связывается со значением свечи зажигания, и предпо- сылки правила 1 помещаются в рабочую память (рнс. 7.6). Таким образом, система вы- бирает для исследования гипотезу о неисправности свечей зажигания. Это можно рас- сматривать как выбор системой ветви ИЛИ на графе И/ИЛИ (глава 3). Отмстим, что для истинности заключения правила 1 должны быть удовлетворены две предпосылки, Они являются ветвями И графа поиска, представляющего декомпозицию за- дачи (действительно ли проблема в свечах зажигания) на две подзадачи (топливо поступает в двигатель и двигатель вращается). Затем можно активизировать правило 4, заключение которого сопоставляется с целевым утверждением топливо по- ступает в двигатель, н его предпосылки помещаются в рабочую память (рис. 7.7). 282 пение и разум в ракурсе искусственного интеллекта Глава 7. Сильные методы решения задач 283
рабочая память Продукционные правиле проблемах Правило 1 Правило 2 Правило 3 Правило 4 Рис- 7.5. Начало работы продукционной системы диагностики неисправностей автомобиля Рис. 7.6. Продукционная система после акти- визации правила 1 пение и ра-*ум в ракурсе искусственного интеллекта 284
проблемавХ Рис. 7.8. Граф И/ИЛИ при сравнении заключения правила 4 с первой предпосылкой правила 1 в примере диагностики автомобиля Теперь в рабочей памяти существуют три элемента, которые не соответствуют ни од- ному из заключений в наборе правил. В подобной ситуации экспертная система будет за- прашивать пользователя. Если пользователь подтвердит истинность всех трех подцелей, экспертная система успешно определит, что автомобиль не заводится из-за неисправно- сти свечей зажигания. При поиске этого решения система исследовала крайнюю слева ветвь графа И/ИЛИ, показанного на рис. 7.8. Конечно, это очень простой пример. И не только потому, что база знаний об автомо- биле ограничена, а также потому, что в этом примере не учитывается ряд важных аспек- тов реализации. Правила описаны на русском, а не на формальном языке. При обнару- жении решения реальная экспертная система сообщит пользователю свой диагноз (наша модель просто останавливается). Необходимо также поддерживать достаточно длинную историю рассуждений, чтобы в случае необходимости возвратиться назад. Если вывод о неисправности свечей зажигания окажется неудачным, нужно иметь возможность воз- вратиться на второй уровень и проверить правило 2. Заметим. что информация по упоря- дочению подцелей в рабочей памяти на рис. 7.7 и на графе, представленном на рис. 7.8, явно нс выражена. Однако, несмотря на простоту, этот пример подчеркивает важность поиска на основе продукционной системы и его представления графом И/ИЛИ в экс- пертных системах, основанных на правилах. Ранее мы подчеркивали, что экспертная система должна быть открытой для инспек- тирования, легко модифицируемой и эвристической по природе. Архитектура продукци- онной системы является важным фактором для каждого из этих требований. Легкость Глава 7. Сильные методы решения задач 285
_с. с„„таксической нстависимосшо иродукшн, модификация. да'ример. °"РС"“Я™ м" знаний, которая может модифицироиатьсд аралия: каждое правило *"лястс" ’ 1М,|ССКИс офвиичсиия, поскольку индинидуад,.. независимо. Однако суштиую: далЖи1.| быть согласованы и любом пронес. иис правила связаны но смыслу. о6судим генерацию объяснений и унрац. ее редактирования или модификации. Ниже мы УД Р ление выводом. 7.2.2. Объяснении и прозрачность при рассуждениях „а основе цели Продукционная система осуществляет поиск графе. Программы подсистемы об,.. ЯСИ ,Х рис. 7.1 отслеживают процесс поиска иа фафс и используют -ну информ». чтобы отвечать па вопросы пользователя. С помощью продукционных правил квж- дый шаг процесса рассуждений документируется автоматически. Обычно экспертные системы, основанные на правилах, отвечают иа два вопроса - "почему?" и "как?". Вопрос "почему?" возникает, когда программа запрашивает ин- формацию у пользователя. и его ответ означает 'почему вы запрашиваете эту нпфор- манию?". Ответом является текущее правило, которое система пытается активизиро- вать. Ответом на вопрос “как вы получили этот результат?” яшшстся последователь- иость правил, использованных для достижения цели, Предположим, автомобильная экспертная система имеет средства объяснения, и в процессе работы достигла стадии, представленной конфигурацией рабочей памяти на рис. 7.7. Приведенный ниже диало! начинается с вопроса компьютера к пользо- вателю о целях, представленных л рабочей памяти. Огнен.! пользователя выделены жирным шрифтом. в Оаке есть топливо? да топливо поступает в г--г.^.г,. да двигатель вращается? почему :."0,и,’0“'|,ж 1адао |Ю"Р°С; “Ничему вы хоти.с тать, вращается ли двига- отаоси1сяИи<11т«",”С1*’П С "0M0"ttw символьною нредшавлеиия правила, к которому Было установлено, что: 1. топливо поступает в двигатель поэтому если ' 2. двигатель вращается, то проблема в свечах зажигания. аиивизироващ пра’вшю и', ц^роть "°"Р°Са “яа”. ™> Wo возможность нисм поведения системы является то/ СРНУЮ предпосылку. Отмстим, что объясне- рении на данный момент, Однако -vr/1**? и,’1,Юд "Равили, которое находится и рассмот- чему ирщрамма хочет знать впашяртр ° ССГ|СЧИпаст адекватное объяснение причин, по- - «мечает. ,ю Г’д"щ““ , “ Я“«*’Т«Л1- В вопрос “„очему" снеге- пользователь далее спрашивает; ,ш,иио поступает в питатель. Предположим, как топливо norTvn-,r„„ •--тупйг.т и ДйИРЛфли,, ^тыц,прадсгввлвниви Р0зум в ракурсе искусственного интеллект0
Отпетом является |1ослсдоватслык>ст1 naz.n.^ оно ооститтиас-кя обрая1им 1ф1Я0„£, ,2f '' « -"ому иклютению. ^формации, „„елейной W'"' "Р»- ж> Из правила 4 следует; если в Саке есть топливо и топливо поступает в карбюратор, топливо поступает в двигатель. в беке есть топливо - указано пользователем топливо поступает в карбюратор - указано пользователем Таким образом, архитектура продукционной системы обеспечивает основу для этих объяснении. В каждом цикле управления выбирается и активизируется новое правило. После каждою цикла пршрамма может быть остановлена и проинспектирована. По- скольку каждое правило представляет “глыбу” знаний по решению проблемы, текущее правило обеспечивает контекст для объяснения. Этим продукционный подход отличает- ся от более традиционных архитектур: если программу на С или С-ь-ь остановить во вре- мя исполнения, то вряд ли текущее выражение будет иметь мною смысла. Итак, система, основанная на знаниях, отвечает на вопросы ‘почему?", отображая текущее правило, которое она пытается активизировать. В ответ на вопросы "как?" она предоставляет последовательность рассуждений, которая привела к цели. Хотя эти меха- низмы являются концептуально простыми, они обладают хорошими возможностями объяснений, если база знаний организована логически грамотно. Главы по языкам LISP и PROLOG в части IV демонстрируют использование стеков правил и деревьев доказа- тельств ДЛЯ Обт.ЯСИСИИЙ, Ьсли объяснения ДОЛЖНЫ быть ЛО1НЧНЫМИ. важно нс только, чтобы база знаний выдавала корректный ответ, но и чтобы каждое правило соответство- вало одному шагу процесса решения проблемы. Если в одном правиле базы знаний за- ключено несколько шагов или правила сформулированы произвольным образом, полу- чить правильные ответы на вопросы "как?" и "почему?" будет сложнее. Это не только подрывает доверие пользователя к системе, но и делает про!рамму более трудной для понимания и модификации разработчиками. 7.2.3. Использование продукционной системы для рассуждений на основе данных Пример диагностики автомобиля в подразделе 7.2.1 иллюстрирует использование про- дукционной системы для реализации поиска на основе цели. В этом примере использовался Поиск в глубину, так как перед переходом к соседним целям для каждой обнаруженной в базе правил подцели производился исчерпывающий поиск. Однако, как мы видели в разде- ле 5.3, продукционная система является также идеальной архитектурой и для рассуждений на основе данных. В примере 5.3.1 этот процесс был продемонстрирован для игры в “пятнашки”, а в примерах 5.3.2 и 5.3.3 — для задачи о ходе конем. В каждом из этих при- меров конфликт разрешался посредством извлечения и применения первою обнаруженно- го в базе знаний правила. При этом выполнялся поиск в глубину, хотя в этих примерах не было механизма возврата для выхода из "тупиковых состояний в пространстве поиска. В рассуждениях иа основе данных чаше применяется поиск в ширину. Алгоритм очень прост: содержимое рабочей памяти сравнивается с предпосылками каждого пра- Глава 7. Сильные методы решения задач 287
аии в упорядоченной базе правил. Если данные в рабочей памяти приводят к активу. П„В правила, результат помещается в рабочую память, и управление передается следую, шему правилу. После рассмотрения всех правил поиск повторяется сначала. Рассмотрим, например, задачу автомобильной диагностики на основе правил из под. раздела 7.2.1. Если предпосылка правила не выводится из других правил, то недостаю- щая информация запрашивается при необходимости. Например, предпосылка правила 1 топливо поступает в двигатель нс является запрашиваемой, так как этот факт является заключением другого правила, а именно — правила 4. Поиск в ширину на основе данных начинается из состояния, показанного на рис, 7 9 Оно очень напоминает состояние, изображенное на рис. 7.5. Отличие состоит лишь в от- сутствии информации в рабочей памяти. Предпосылки четырех правил проверяются на предмет “запрашиваемой” информации. Предпосылка топливо поступает в двигатель не является запрашиваемой, поэтому правило 1 применить нельзя, и управ- ление переходит к правилу 2. Информация двигатель не вращается является за- прашиваемой. Предположим, ответом на этот вопрос будет ложь, тогда в рабочую па- мять заносится фраза двигатель вращается, как показано иа рис. 7.10. Итак, по первому разу все правила рассмотрены, и начинается повторное рассмотре- ние правил с учетом нового содержания рабочей памяти. Как показано на рис. 7.11, при сопоставлении правила 1 с данными в рабочей памяти его заключение — проблема в свечах зажигания — помещается в рабочую память. Больше никаких правил приме- нить нельзя, и сеанс решения задачи завершается. На рис. 7.12 показан граф поиска, узлы которого содержат информацию, находящуюся в рабочей памяти (РП). Первый проход по правилам Продукционные Рабочая память правила Рис. 7.9. Продукционная система в начале процесса рассуждения на ос- нове данных Рис. 7.10. Продукционная система после оценку первой предпосылки правила 2, которая оказалась ложной Рабочая память Топливо поступает в двигатель Топливо поступает в карбюратор В баке есть топливо 1 Двигатель вращается Продукционные Правила *• Правило 1 Правило 2 Правило 3 Правило 4 Правило активизируется Рис. 7.12. Граф поиска в ширину на основе данных, узлами которого является информация из рабочей памяти (РП) Рис. 7.11. Основанная на данных продукци- онная система после рассмотрения правила 4 начинает второй проход ио правилам Но правило? применить нельзя, поскольку первая нз двух конъюнктивных П^еД^оВз лок является ложной. Управление переходит к правилу 3, в котором первая посылка принимает значение “ложь”. В правиле 4 обе предпосылки являются запрашив Предположим, ответом на оба вопроса будет "истина", тогда предложения в баке топливо и топливо поступает а карбюратор помещаются в рабочую память, да же заносится и заключение правила — топливо поступает в двигатель. Часть |й. Представление и разум в ракурсе искусственного иНТвДЛ® Важной модификацией используемой в предыдущем примере стратегии поиска в ши- рину является так называемый оппортунистический поиск. Это простая стратегия поиска: всякий раз при активизации правила для вывода новой информации управление переходит к правилу, содержащему эту новую информацию в качестве предпосылки. Следовательно, любая вновь выведенная информация (состояние графа поиска в результате обработки опрашиваемых” предпосылок ие изменяется) является движущей силой для определения активизируемых в датьнейшем правил. Из-за случайного порядка следования правил пред- ставленный пример, сам по себе очень простой, также оказался оппортунистическим. В завершение раздела, посвященного рассуждениям на основе данных, затронем во- лосы объяснений л прозрачности в системах прямого поиска. Во-первых, по сравнению лава 7. Сильные методы решения задач 289 288
„ (подразделы 7.2.1, 7.2.2), рассуждения иа основе дан. с системами, основанными на ®л»этого очсвидна _ „ системе, Освд „Ых выполняются менее лллс“‘2“с,,0 на решение конкретной задачи, которая ра,б„. МИНОЙ на цели, рассуждение направл ° очередь. могут дробиться дальше. В ре. аается на более мелкие, и эти ползал . ведущсй ()т этой цел„ к ее составляют,,,, зультате поиск всегда направленпо и,отсуге„уст. Поиск выполняется по де. В системах на основе данных орис нвя правил „ появления новой информации. В реву, зависящему лишь от порядка .. лывчатым” и несфокусированным. итоге процесс поиска часто кажетс^ льтатом только что сказанного, пояснения, Во-вторых, и это является пр_ « весьма ограничены. В системах на основе выдаваемые пользователю в проц полыо8ателю представляется рассматриваемое пра- правил в ответ на вопрос почец . последовательность правил точно не отслежива- вило (см. подраздел 7.2. 7 •г0 поиска), это объяснение нельзя раз- ™ “оХГснове данных затрудняет подобные объяснения. И, Наконец Z достижении цели системе трудно дать исчерпывающее объяснение в ответ ё вопрос 'кок’" в качестве частичного или полного объяснения можно лишь „споль- зевать содержимое рабочей памяти или список активизированных правил. Но опять-таки ЭТИ пояснения не дают полного согласованного обоснования, которое мы наблюдали в рассуждениях на основе цели. 7.2.4. Эвристики и управление в экспертных системах Вследствие разделения базы знаний и механизма вывода, а также особенностей рабо- ты механизма вывода важным методом программного управления поиском является структурирование и упорядочение правил в базе знаний. Такое микроуправление на множестве правил открывает новые возможности, особенно с учетом зависимости стра- тегий управления от специфики предметной области и объема знаний. Хотя правило вида if р, q, and г then s (если р, q и г, то s) напоминает логическое выражение, оно может быть интерпретировано как последовательность процедур или шагов решения за- дачи: “чтобы получить з, сначала нужно выполнить р, затем q, затем г". Важность упо- рядочения правил и их предпосылок была неявно продемонстрирована в только что рас- смотренных примерах из раздела 7.2. Этот процедурный метод интерпретации правил является существенным компонен- том практического использования знаний и часто отражает стратегию решения задачи человеком-экспертом. Например, предпосылки правила можно упорядочить таким обра- зом, что наиболее вероятные отрицательные ответы илн простые подтверждения истины будут проверяться первыми. Это дает возможность отбросить правило (и, следовательно, отсечь часть пространства поиска) как можно раньше. Правило 1 в примере с автомобн- отает111 на вопРосы в такой последовательности: сначала требуется оп- эФ4екгивнп°С™ а7 ™ Т0Ш1ИВ0 “ Д“игатс-'|Ь. а затем — вращается ли двигатель. Это ве- ется другое поавгпё П₽И П0Пытке ВЬ|яснчть, поступает ли топливо в двигатель, вызыва- вопроса Пон ‘ 1<0КС'‘Н0М СЧ"е’ п°л«°влтоад должен ответить еше на Д»« “вращается ли деигатеж" ПОрядка предпосылок отрицательный ответ на вопрос конкретного условия Тем гамТы Тьь ™ "равил0 из Рассмотрения до проверки более Есть еще одна ™чадаIXповышается. имеет значения, поступает ли в нёто” У"Орядочения' Если двигатель не вращается, то ° топливо. В правиле 4 пользователя сначала прос пповерить наличие топлива в баке а -чят™ цпи первая проверка легче второй. Таким обпа-юё/л'™'"" ’ карбюратор' В это" си‘у'1 сто системы должны быть рассмотрены все асп7™ ’ФФ^ивш,. ПОСЫЛОК, стоимость каждой проверки пазмеп о Р Д * следования правил и пред- ёёс типичные случаи и т.д. ₽ ' Р ср ^екаемого пространства поиска, иаибо- планирование порядка правил, организация предпосылок в правилах и определение стоимости различных проверок — действия эвпистнчн, - определение алрпстичные по своей природе. В большин- стве экспертных систем, основанных „а правилах, эти эвристики отражают подходы че- ловека-эксперта и, несомненно, могут давать ошибочные результаты. В нашем примере, если топливо поступает в двигатель н двигатель вращается, проблема может заключаться в распределителе, а не свечах зажигания. Рассуждения на основе данных создают дополнительные проблемы и обеспечивают новые возможности управления. К ним относятся эвристики высокого уровня, такие как рефракция, оппортунистический поиск и учет особенностей предметной области, пред- ставленные в подразделе 5.3.3. При более специфичном подходе множества правил группируются в соответствии со стадиями процесса решения. Например, в задаче диаг- ностики автомобиля можно выделить четыре различные стадии: формирование ситуа- ции, соор данных, анализ (возможность возникновения нескольких проблем одновре- менно), заключение и рекомендации по ремонту. Для такого поэтапного решения задачи следует создать описание для каждой стадии решения и использовать их в качестве первой предпосылки всех правил, относящихся к этой стадии. Например, сначала в рабочую память можно поместить утверждение стадия — формирование ситуации. Если в рабочей памяти нет описания других стадий, то будут активизироваться лишь правила, содержащие в качестве предпосылки факт сталия — формирование ситуации. Разумеется, в каждом правиле эта пред- посылка должна располагаться первой. Для перехода к следующей стадии при активиза- ции последнего правила факт стадия — формирование ситуации нужно вычерк- нуть и заменить его фактом, определяющим стадию сбора данных. Первой предпосыл- кой всех правил, относящихся к стадии сбора информации, должна быть следующая: если стадия — сбор данных и .... По окончании стадии сбора данных послед- нее правило должно вычеркивать этот факт и дописывать в рабочую память факт пере- хода к стадии анализа данных. На этой стадии будут обрабатываться лишь те правила, первой предпосылкой которых является факт если стадия — анализ данных.... До сих пор в своем обсуждении мы описывали поведение продукционной системы в терминах исчерпывающего рассмотрения базы правил. Хотя такое поведение является достаточно дорогостоящим, оно включает внутреннюю семантику продукционной сис- темы. Однако существует ряд алгоритмов, таких как RETE [Forgy. 1982]. которые могут быть использованы для оптимизации поиска потенциально полезных правил. По сущест- ву, алгоритм RETE интегрирует правила в сетевую структуру. позволяющую системе со- поставлять правила с данными, прямо указывающими на правило. Этот алгоритм значи тельно ускоряет выполнение, особенно для больших множеств правил, в то же время со- храняя семантику поведения, описанную в данном разделе. И в заключение, правила были и остаются важным средством построения решателей задач, основанных на знаниях. Правила экспертной системы содержат знания людеи- экспертов в том виде, в котором они используются на практике. Поэтому они часто яв- ляются смесью теоретических знаний, полученных из опыта эвристик и специальных правил управления нерегулярными елхяаями и другими исключениями. Во многих си- Часть III. Представление и ра3ум в ракурс6 искусственного интеллект3 Глава 7. Сильные методы решения задач
„ „оказал свою эффективность. Тем не менее эвристические системы туациях этот подход доказал не соответствует ни одному из имеющие, могут давать сбои в том(случ. оц]и6очно пр„меняется к неподходящей ситуации, правил, ши ,вр„= J подобных проблем, потому что обладает более глубоки,, Человек-эксперт не испь й „бластн, позволяющим осмысленно применять теоретическим п°н11»ан Ри6егать в новых ситуациях к рассуждениям на основе ба- эвристические правил' далее в подразделе 7.3.1 подходы, основанные на моде- зовых принципов. Опи втможностн для экспертных систем. ЛЖЬХжЧностГоб“аться на примерах является другой человеческой способностью, котопто эмулируют^истемы решения задач, основанные на знаниях. Рассуждения на которую эму ру 3 3) поддерживают базу знании примеров решения задач. Птжстолкновении с новой проблемой механизм рассуждений выбирает из сохраненного множества случай, напоминающий решаемую задачу, и затем пытается применить его стратегию решения к новой проблеме. В юриспруденции примером рассуждений на ос- нове опыта является доказательство по прецеденту. 7.3. Рассуждения на основе моделей, на базе опыта и гибридные системы____________________________ 7.3.1. Введение в рассуждения на основе модели Человеческий опыт— это чрезвычайно сложная смесь теоретических знаний, эври- стик решения задач, примеров прошлых проблем и их решений, навыков восприятия и интерпретации, а также других аспектов, которые можно описать лишь как интуитивные. С годами человек-эксперт вырабатывает очень точные правила поведения в обычных си- туациях. Часто эти правила принимают форму прямых ассоциаций между наблюдаемы- ми симптомами и окончательными диагнозами, скрывая их более глубокие причинно- следственные связи. Например, экспертная система MYCIN может предложить диагноз, исходя из таких симптомов, как “головная боль", “тошнота" или "жар”. Хотя эти параметры могут быть индикаторами болезни, правила, напрямую связывающие их с диагнозами, не отражают более глубокого причинного понимания человеческой физиологии. Правила системы MYCIN позволяют определить название болезни, но не объясняют ее причины. Подход, основанный на более глубоких объяснениях, должен учитывать присутствие инфекцион- ных агентов, результирующее воспаление содержимого клетки, наличие виутричерепно- давления и причинную связь с наблюдаемыми симптомами головной боли, повышен- ной температуры и тошноты. сти noLZL3KCnepTH°fi СИстеме’ предназначенной для анализа причин неисправно- стику неиспоаннпХ °СН°Ве правил’ описательный подход позволит строить диагно- (возможно указываюпте™ ‘н СИМПТОмах. как обесцвечивание компонентов внутренние наблюдения компон^та‘сТОРИЯ НеИспРавностсй в подобных приборах ил» ходы, которые используют помощью электронного микроскопа. Однако под полезными дм более глубокого™8 Д"" С°ЯЗИ иа6люден™ с диагнозами, являются бес- объяснение могло бы начинаться^™38 Структурь‘ и Функций прибора. Более точное структуры цепи и уравнений опись,«»юТР°еНИЯ дегалнз|1рованной модели физическ ________________________’ ющих ожидаемое поведение каждого компонен I. Представление и разум в ракурсе искусственного интеллекта цепи и нх взаимодействия. Диагнозы могли бы основываться на сигналах, полученных из различных точек, и модели цепи для определения точных мест неисправности. оскольку экспертные системы первого поколения основывались на эвристических правилах, полученных нз описаний методов решения задач человеком-экспертом, они обладали рядом ограничений [Clancy, 1985]. Если ситуация не соответствовала заложен- ным в систему эвристикам, она просто терпела неудачу, хотя более строгий теоретиче- ский анализ мог бы привести к успешному решению. Часто экспертные системы приме- няли эвристики в несоответствующих ситуациях, в которых более глубокое понимание проблемы могло бы указать другой курс. Эти ограничения позволяют преодолеть подхо- ды, основанные на моделях. Механизм рассуждения, который базируется на специфика- ции и функциональности физической системы, называется системой на основе модели. Система рассуждений на основе модели осуществляет программное моделирование тех функций, которые необходимо понять или зафиксировать. (Существуют, конечно, и дру- гие типы систем, основанных на моделях, в частности, логические и стохастические. Они будут рассмотрены в главе 8.) Первые системы рассуждений на основе моделей появились в середине 1970-х и про- должали развиваться в 1980-х годах [Davis н Hamscher, 1992]. Интересно отметить, что некоторые из наиболее ранних работ были направлены иа создание программных моде- лей различных физических приборов, таких как электронные цепи, с целью их изучения [deKleer, 1976], [Brown и др., 1982]. В этих работах прибор или цепи описывались в виде набора правил, например, законов Кирхгофа и Ома. Обучающая система могла прове- рить знания студента в данной области, а также передать ему недостающие данные. Пра- вила, с одной стороны, обеспечивали представление функциональности, а с другой — представляли собой среду для передачи знания студенту. Развитием этих ранних обу- чающих систем, задача которых сводилась к моделированию и обучению функциональ- ности системы, стали системы рассуждения на основе моделей, предназначенные для устранения неисправностей. Прн выявлении неисправности в физической системе мо- дель предлагает множество прогнозируемых вариантов поведения. Неисправность отра- жается в различии между ожидаемым и наблюдаемым поведением. Система, основанная на модели, сообщает пользователю, чего ожидать, а различия между наблюдаемым и ожидаемым поведением приводят к идентификации неисправностей. Качественные рассуждения на основе моделей включают следующие аспекты. 1. Описание каждого компонента прибора, позволяющее моделировать их поведение. 2. Описание внутренней структуры прибора. Оно обычно содержит представление компонентов и их взаимосвязей наряду с возможностью моделировать их взаимо- действие. Требуемая степень знаний внутренней структуры зависит от применяе- мого уровня абстракции и ожидаемого диагноза. 3. Диагностика частной проблемы. Это требует наблюдений реального поведения прибора, обычно — измерения его входов и выходов. Входные и выходные изме- рения получить легче всего. Задача заключается в определении неисправных компонентов с учетом наблюдаемого по- ведения. Это требует дополнительных правил. описывающих известные формы неисправно- стей для различных компонентов н их комбинаций. Система рассуждений до.тжна ь нарх-житъ наиболее вероятные неисправности. объясняющие наблюдаемое поведение системы. Для представления причинно-следственной и структурной информации в моделях можно использовать различные структуры данных. Дтя отражения причинности и функ- Глава? Сильные методы решения задач
цлональности прибора в программе рассуждений на основе моделей зачастую и ют правила. Правила могут также использоваться для фиксации отношений мс* СП°/1Ь3^' лонентами. Объектно-ориентированные системы (см. раздел 15.12) также явля^^ KOfLi‘ красным средством описания устройства и внутренней структуры компонентов^ П₽е* При этом переменные — члены объекта представляют устройство или состояни М°^Сли- центов. а методы определяют функциональность устройства. с Кол,по- Чтобы конкретизировать процесс разработки и описания модели п^г. „ „ м ' (-'“ССМОтпич сколько примеров анализа устройств н цепей, взятых из работы /Davis и Ham н м Не‘ Поведение устройства описывается множеством выражений, определяющих СГ’ ^2]. между значениями на клеммах прибора. Для сумматора, показанного на °Тн°шения выражения имеют такой вид. ‘ ?lic'зтц Если известны значения в вычисляется как А: 2 'спл' Если известны С и А, значение точках А и В, то значение в точке С a+r (сплошная линия). Л ° ' точке В вычисляется как С-А (крупный пунктир) . -значение в точке А вычисляется Если известны значения С и В, значение в как С-В (пунктир). Рис. 7.13. Описание поведения сумматора из[Shrobe (ред.), 1988] Для представления этих отношений иет необходимости использовать алгебраическую форму записи. С таким же успехом могут быть использованы кортежи отношении, а огра- ничения могут быть представлены с помощью функций LISP. Целью рассуждении на осно- ве модели является представление знаний, определяющих функциональность сумматора. В качестве второго примера рассмотрим схему из трех мультиплексоров и двух сум- маторов (рис. 7.14). В этом примере входные значения задаются в точках А -Е, а выход- ные вычисляются в точках F и G. Ожидаемые выходные значения задаются в круглых скобках, а действительные выходы — в квадратных. Задача заключается в определении неисправности, объясняющей различие между этими значениями. В точке F наблюдается конфликт: ожидаемым выходным значением является 12, а реально полученным-— Ю- Проверяя зависимости в этой точке, определяем, что значение в точке F вычисляется как функция от ADD-1. Это значение, в свою очередь, зависит от выходов MULT-1 и MULT- 2. Одно из этих устройств содержит неисправность, следовательно, необходимо рас‘ смотреть три гипотезы: либо поведение сумматора неадекватно, либо некорректным яв- ляется один из двух его входов. Тогда проблему надо искать дальше в цепи. Если исходя из результата F (значения 10) предположить, что поведение ADD-1 и значение 6 его первого входа х корректны. то значение на втором входе ADD-1 _ значим его Y) должно быть равно 4. Но это противоречит ожидаемому значению 6. лагшЮЩСМУСЯ рсзультатом Правильного поведения MULT-2 и входов В и Р. Мы наблю- этими входами и знаем, что на них поступали правильные значения. Следов3 тслыто. неисправен модуль MULT-2. Вариантом второй гипотезы можс> быть предполо- жение. что модуль ADD-1 исправен, а неисправен компонент MULT-1. Продолжая рассуждения, приходим к выводу, что если на первый вход X модуля ADD-1 поступает корректное значение и сам ADD-1 работает корректно, то значение второго входа Y должно быть равно 4. Если это так, то G должно принимать значение 10. а не 12. так что выход MULT-2 должен равняться 6 и быть корректным. Здесь мы отбрасываем гипотезу, что неисправность содержится в MULT-1 или в ADD-1. Эти мо- дули можно рассмотреть при дальнейшем тестировании. В рассуждениях о ситуации, показанной на рис. 7.14, рассматривались три задачи. 1. Создание гипотезы о том, какие компоненты устройства могли вызвать расхожде- ние ожидаемого и реального значений. 2. Проверка гипотезы, в процессе которой при заданной совокупности потенциально неисправных компонентов определяется, какой из них может объяснить наблю- даемое поведение. 3. Выделение гипотез, когда в результате тестирования остается несколько версий (как на рис. 7.14) и необходимо определить, какая дополнительная информация может помочь выявить неисправность. Рис. 7.14. Направленные информационные потоки; из работы [Shrobe (ред.). 1988] И, наконец, мы должны отметить, что в примере на рис. 7 14 предполагается, что не- исправен единственный модуль. Мир не всегда так прост, хотя предположение о единст- венной неисправности является полезной и часто корректной эвристикой. Поскольку методы, основанные на качественных моделях. требуют понимания прин- ципов функционирования рассматриваемых устройств, они устраняют многие из ограни- чений эвристических подходов. Подходы, основанные на моделях, позволяют предста- вить устройства и схемы на причинном и функциональном уровне, а не рассуждать о причинах неисправностей на основе наблюдаемых явлений. Программный код отражает как функции модулей, так и внутренние зависимости системы. Такне модели часто более надежны, чем эвристические подходы. Однако обратной стороной такого точного моде- лирования является то, что стадия извлечения знаний требует большой скрупулезности, а -------------------------------------- 295 Глава 7. Сильные методы решения задач Часть 111. Представление и разум в ракурсе искусственного интеллекта
оказаться громоздкой и медлительной. Поскольку эв. результирующая программа устраненные случаи в общее правило, они ристические подходы ко зачастую более эффективны. связаны 6олее глубокие проблемы. Как и рас. Однако с подходом на основе мы _ эт0 всег0 лишь модель. Она является не- суждения на основе правил, моде неи)тором уровне детализации становится некор. обходимой абстракцией систем рНС 7 14 Мы считалн эти значещя ректной. Например, рассмотр состояние самих шин и контактов с мультиплек- заданными и корректными. Р неисправиы контакты? Если пользователь не серами. А если повреждены р, соотвеТствовать действительному устройству Учи ^^Ф^^^еалвнук, ситуацию, т.е. предполагаемые действия снеге- Любая модель описыв сое™нением считается контактная точка в системе, в а Т небрежно соедттнены два провода или устройства (например, когда два провода “еданёньХхим припоем). Большинство рассуждений, основанных на моделях, ие обеспечивают диагностику неисправности соединения из-за априорных предположений модели и заложенных в них методов поиска для определения аномалии. Дефек- ты соединений можно просто считать новыми проводами, которые не являются частью первоначального проекта. В этом состоит неявное “предположение о замкнутости мира" (раздел 8.1). согласно которому структура описания модели предполагается полной, и все, что не описано в модели, просто не существует. Но, несмотря на эти недостатки, рассуждения на основе моделей являются важным дополнением к инструментальным средствам инженера по знаниям. Исследователи про- должают углублять наше понимание диагностики за счет исследования принципов эф- фективного решения этой задачи человеком-экспертом, а также улучшения машинной реализации алгоритмов [Stem и Luger, 1997]. 1.3.2. Рассуждения на основе моделей: пример NASA В настоящее время NASA разрабатывает флотилию интеллектуальных космических зондов, предназначенных для автономного исследования солнечной системы [Williams и Nayak, 1996], [Bernard и др., 1998]. Этот проект начался с разработки программного обес- печения для первого зонда в 1997 и запуска аппарата Deep Space 1 в 1998 году. Для успеш- ной работы в суровых условиях космического путешествия космический корабль в ответ на неудачи должен уметь радикально перестраивать свой режим управления и учитывать эти неудачи при планировании оставшейся части полета. Для обеспечения приемлемой стои- мости и скорости реконфигурации необходимо быстро подключать стандартные модули, которые составляют программное обеспечение полета. Кроме того, NASA считает, что множество неудачных сценариев и возможных ответов будет слишком большим, чтобы ис- пользовать простой перечень всех возможных случаев. Космический корабль должен реак- 7=7" ПРИ РеТФИГ7Р£ЩИИ своей снстемь1 Управления. тивных самплпгам2?1°Пе Will,anLS и Nayak, 1996] реализованы ключевые функции реак' ставления автономных систем, основанных на моделях. Языком пред- числение Обратите °СН°Ве МОделей в Livingstone является пропозициональное ис- (raSj-XXZМ °™Д °Т "С”ИСЛе™ "С₽В0Г° П0Р“Т Основываясь на своих пп.-п., предсгавления в задачах диагностики на основе неделе калькой логики для кошкли^'™* '1сслсдованиях по разработке быстрой пропозпи" ДЛЯ конфликтных алгоритмов диагностики, Вильямс (Williams) и Наяк (Nayak) решили, что пришло время для построения быстрой реактивной системы, реали- зующей дедукцию в цикле восприятие-реакция. Дальновидные рассуждения модели долж- ны поддерживать единую централизованную модель для решения различных инженерных задач. В автономных системах это означает использование единой модели для поддержки выполнения различных задач. Такие задачи включают поддержку истории разрабатывае- мых планов (раздел 7.4), поддержку аппаратных режимов, аппаратуру для реконфигурации, определение аномалий, диагностику, устранение неисправностей. В системе Livingstone все эти задачи автоматизированы с помощью единой модели и общего корневого алгоритма. Это значительно расширяет возможности решателей задач, основанных иа моделях. На рис. 7.15 показана упрощенная схема подсистемы главного двигателя космического корабля Cassini наиболее сложного из построенных к настоящему времени. Ои состоит из гелиевого, топливного, кислородного баков, пары главных двигателей, регуляторов, кла- панов, пироклапанов и трубопроводов. Гелиевый бак поддерживает п.янпемир в двух топ- ливных баках с помощью регуляторов, понижающих высокое давление гелия до рабочего уровня. Когда топливные пути к главному двигателю открываются (изображение клапана не заштриховано), в главный двигатель подаются топливо и кислород. Там они смешива- ются, смесь воспламеняется, и этот процесс сопровождается толчком. Пироклапаны могут активизироваться (т.е. изменить состояние) только один раз, переходя нз открытого к за- крытому состоянию или наоборот. Их функцией является временная изоляция частей под- системы главного двигателя или постоянная изоляция отказавших компонентов. Клапанами управляют специальные драйверы (на рис. 7.15 ие показаны) и акселерометр, который из- меряет ускорение, сгенерированное двигателями. Рис. 7.15. Упрощенная схема системы двигателей Livingstone из работы [Williams и Nayak, 1996} Высокоуровневой целью системы является выполнение толчка из начального поло- жения, показанного на рис. 7.15. Эта цель может быть достигнута различными способа- ми: толчок обеспечивается или главными двигателями, или открытием топливных путей к главному двигателю. Например, для толчка можно открыть клапаны, ведущие к левому Двигателю, или активизировать пару пироклапанов и открыть клапаны, ведущие к пра- вому двигателю. Другие конфигурации соответствуют различным комбинациям активи- зации пироклапаиов. Эти конфигурации имеют различные характеристики, поскольку активизация пироклапанов является необратимым действием и тре ует значительно больше энергии, чем открытие или закрытие клапанов. 296 сть III, Представление и разум в ракурсе искусственного интеллекта Глава 7. Сильные методы решения задач 297 bUJJLILWar-
(иного двигателя была сконфигурирована так. чтобы Предположим, подсистема гла“" гателя путсм открыта ведущих к нему клана, обеспечить толчок от левого ™в"° „„пример перегрет, и не может обсспе- нов. Допустим, что этот двигатель _ 0£с<.ПСЧ|Пъ необходимый толчок даже в этой си- нить требуемый толчок. Для того ч ст|, „ „Овое состояние, в котором толчок де. туации, космический корабль следу ? „равой стороны. В идеале это достигается лается главным двигателем. раС"° правой части системы, и открытием остав- акгивизацией двух ппроклаиаиоа. „ панов. шихся клапанов би aimminauHHHO^^^ пытастся персвют„ космический корабль в со- Диспетчер кояфи.)Р / к0ТОрОм достигается множество динамически иэме- СТОЛИИС --—СТОЯ от выбранного нуги „,.за uaiAlHUYCfl L1CJ1CH ВЫСОКОГО урОВНл. lx Д г " диспетчер анализирует сенсорные данные, чтобы определить текущую кон- фХ”>,к, корабля, а затем переводит его в новое состояние, чтобы достичь цели. Диспет- чергонфигурадии является дискретной системой управления, которая обеспечивает кон- фигурацию необходимую для достижения множества целей. Алгоритм планирования, под- держивающий работу диспетчера конфигурации, представлен в подразделе 7.4.4. Рассуждения о конфигурациях и автономных реконфигурациях в системе требуют использования понятий рабочего и аварийного режимов, устранения неисправностей и изменения конфигурации. В системе NASA эти понятия описываются с помощью диа- граммы состояний: устраняемые неисправности — это переходы от неисправного со- стояния к рабочему. К рабочему состоянию применимы изменения конфигурации. Неис- правности — это переходы от нормального к аварийному состоянию. В работе (Williams и Nayak, 1996] управление автономной системой осуществляется с помощью реактивного диспетчера конфигурации и планировщика высокого уровня. Планировщик (раздел 7.4) генерирует последовательность целей по реконфигурации системы. Диспетчер конфигурации отслеживает переходы системы (в нашем случае — системы двигателей космического корабля) вдоль желаемой траектории. Таким образом, управление конфигурацией осуществляется посредством наблюдения и управления пере- ходами между состояниями системы. Чтобы определить необходимую последовательность управляющих воздействий, диспетчер конфигурации на основе моделей использует спецификацию переходов систе- мы. В примере на рис. 7.15 каждый элемент схемы моделируется системой переходов. Взаимодействие компонентов, показанное на рисунке помощью связей, моделируется с помощью переменных, используемых в соответствующих компонентах системы. испетчер конфигурации интенсивно использует модель для определения текущего состояния системы и выбора оптимальных управляющих воздействий для достижения к существенно в ситуациях, в которых при использовании простых мето- птапии benn^k-.v КаждаЯ может привести к катастрофе. Диспетчер конфи- помощью двух моз\.М0ДС;1Ь П0С1роеНия желаемой последовательности управлений с поэтапно ™иоуе?^АОЦеНКН " реконФи<УРаЦ»и (РО и РР на рис. 7.16). Модуль РО переходов, последовательностью °уП“ СИСТе.НЬ'Х ,раск"’Р,,й. совместимых с моделью пользует модель переходов объекта L»""" “ “Мерен“ых значсиий- Модуль РР ИС- ные РО в текущем состоянии. лпа п У р вления и Фрагменты траекторий, сгенсрирован- при которых конЛигупатшАм» ирслелсиия множества таких управляющих значений, РР ввляю’с» pZX:“поТсХгХГаС1СЯ В —щг. модули РО и дыдущего и текущих наблюде j “ м 0ПРеаедяет текущее состояние на основе npt' достигают конфигурационной 11с^И ОдУль рр рассматривает лишь действия, которые цели в следующем состоянии. Рис. 7.16. Конфигурационная система управления на основе модели [Williams и Nayak, 1996] В следующем разделе будут рассмотрены рассуждения иа основе опыта — прием, по- зволяющий использовать прошлый опыт работы в данной предметной области в новых ситуациях. В разделе 7.4 представлены вопросы планирования и снова рассмотрен при- мер системы, разработанной NASA. 7.3.3. Введение в рассуждения на основе опыта Эвристические правила и теоретические модели — вот два типа информации, кото- рые человек-эксперт использует для решения проблем. Еще одной мошной стратегией, используемой экспертами, является рассуждение на основе опыта решения задач. В рас- суждениях на основе опыта для решения новых проблем используется детальная база данных, содержащая известные решения задач. Эти решения могут быть собраны экс- пертами в области знаний или могут отображать результаты предыдущих успешных и неудачных попыток поиска решения. Например, медицинская диагностика основывается ие только на теоретических моделях болезней, анатомии и физиологии, но и на изучении истории болезни н врачебного опыта, приобретенного при лечении других пациентов. Системы CASEY [Koton, 1988а, 19886] и PROTOS [Bareiss и др., 1988] являются приме- рами рассуждений на основе опыта в медицине. Юристы тоже подыскивают прецеденты и пытаются убедить суд, что нужно дейст- вовать по аналогии с известной ситуацией. Хотя общие законы вырабатываются в рамках демократических процессов, их интерпретация обычно основана на прецеден- тах. Интерпретация закона в некоторой предыдущей ситуации определяет его текущую интерпретацию. Таким образом, важным компонентом правовых рассуждений являет- ся идентификация прецедента для принятия решения в конкретном случае. В работах [Rissland, 1983] и [Rissland и Ashly. 1987] предложены механизмы рассуждений на ос- нове опыта, предназначенные для поддержки правовых споров. Программисты часто повторно используют старые программы для адаптации сущест- вующих структур к похожей новой ситуации. Архитекторы используют свои знания об эс- тетической привлекательности и полезности существующих сооружений для разработки новых зданий, которые будут восприняты современниками как красивые и удобные. Исто- рики используют исторические факты, чтобы помочь государственным деятелям, чиновни- кам и гражданам понять прошлые события и планировать будущее. Возможность рассуж- дать на основе опыта является краеугольным камнем человеческого интеллекта. Другие области рассуждения на основе опыта включают проектирование, где успеш- но выполненный проект может использоваться в новой ситуации, и днш ностику, где час- 298 д тавление и разум в ракурсе искусственного интеллекта Глааа 7. Сильные методы решения задач
ЛГ11ЯОГ0 Хорошим примером этого является также ДИаги то приходят на ум неудачи прошл о6яасти решения текущей проблемы™’’ стика аппаратных СР=;КТ“, ^ ™ . ’ гяческ>« знаний по электронике и механическ„м ’»• мимо использования богаты1 те р го Рассуждения на основе опыта составляв «мам учитывает успехи и «уд» няческ11х снстем. включая С1,СТеМЬ1 л„а, носгн’ важный компонент многих д )992) „ аиализа неисправностей полуп„ ' спутникового ™ водииковых компонентов I обеспечивают ряд преимуществ для разработки экс Рассуждения настхиов знаний может быть упрощен, если №хани3м портных систем. Пронес решения экспертов по ряду проблем. Это мог суждения «У"" "сп““ п0 знашим от необходимости разрабатывать общие правщи ЛО бы »"а»бо» «ь ниже р зкспертов. Механизм рассуждения сможет обобщать на основе прим р . лг* их к НОВым ситуациям. рассуждениям позволяют экспертной системе учиться на свое„ оп^ после решения задачи путем поиска система может сохранить это решение, что. бы ^поХаться им при возникновении подобной ситуации (без привлечения поиска). Важно запоминать информацию как об успешных, так н о неудачных попытках решения. Хм образом, рассуждения на основе опыта являются мощным средством для обуче- ния Одним из первых примеров таких систем является программа для игры в шашки [Samuel 1959] (см. подраздел 4.3.2), где важные позиции на доске, найденные посредст- вом поиска или эксперимента, запоминались для последующего использования. Механизм рассуждения на основе опыта функционирует следующим образом. 1. Находит подходящие случаи в памяти. Случай является подходящим, если ре- шение может быть успешно применено в новой ситуации. Поскольку механизмы рассуждения не могут знать этого наперед, для выбора случаев обычно использу- ются эвристики. Как люди, так и искусственные механизмы рассуждения, опреде- ляют подобие на основе общих признаков: например, если у двух пациентов на- блюдается ряд общих признаков, связанных с симптомами и историей болезни, то велика вероятность, что у них одно и то же заболевание, н им подходит один и тот же курс лечения. Для эффективного поиска случаев память должна быть организо- вана соответствующим образом. Обычно ситуации индексируются по их сущест- венным признакам, что обеспечивает эффективный поиск аналогичных случаев. Идентификация существенных признаков зависит от ситуации. 2. Приспосабливает найденную ситуацию к текущей. Обычно случай— это после- довательность операций, преобразующих начальное состояние в целевое. Механизм рассуждения должен модифицировать некоторые операции в сохраненном решении с учетом специфики текущей проблемы. Здесь могут быть полезны такие аналитиче- ские методы, как подбор зависимости параметров, общих для сохраненных случаев и новой проблемы. Если аналитические связи между ситуациями отсутствуют, могут использоваться более эвристические методы — например, справочники. Применяет преобразованное решение. Модификация известного случая не обя- ельно гарантирует удовлетворительное решение проблемы. Может потребо- ваться еще одна итерация выполнения первых трех шагов. 4 ИЛИ иеудачиое решение длн дальнейшего использования- спеииалкиктр^^^ случаев П^бует адаптации индексной структуры. Существую1 SX71W1T П0ДДеРЖКИ ИНДеКСов- К ™ относятся алгор11тмы кластериза- . 1 и другие Приемы машинного обучения [Stubblefield и Luger, 1996]. Часть III. Представление и разум в ракурсе искусственного интеллекта Для реализации рассувдкия на основе случая мо„, туры данных. В простейшей ситуации случаи "“требоваться специальные струк- одни аргументы описывают сопоставляемые nnZT™'""™ ““ КОртежя °™ошений- ™с могут представляться и более сложными стр™™ “ ЭТаПЫ реШ=Н‘“ СлуЧаИ случаи запоминается как множество правилГтип^^Г™'™ ““ Дфгвья вшода- Обычн° ситуацию, являются существенными признаками ‘2™”'денстаие- Факты, описывающие щие действия, описывают преобразована, а?пеРатаРь1'"Реди™' вании такого представления и ортснизации Cmya“™- ₽И ИСП0ЛЫ” л ... иии и оптимизации поиска подходящих случаев могут применяться такие алгоритмы, как RETE [Forgy 1982] ™ Наиболее трудным вопросом в решении проблем на основе опыта является выбор существенных признаков для индексирования и поиска ситуаций. В (Kotodner и ДР„ 1993) при решении задач на основе случаев считается, что они должны быть органи- зованы в соответствии с целями и потребностями решателя проблем. Это означает, что необходимо выполнить тщательный анализ дескрипторов ситуации в контексте того, как эти случаи должны быть использованы в процессе решения. Например, рассмотрим Проблему слабого коммуникационного сигнала на спутнике в момент времени 10.24.35 GMT. На основе анализа определяется, что. кроме всего прочего, система имеет низкую мощность. Низкая мощность может быть следствием того, что сол- нечные батареи неправильно ориентированы по отношению к Солнцу. Наземные контрол- леры регулируют ориентацию спутника, мощность увеличивается, и коммуникационный сигнал снова становится сильным. Для записи этого случая можно использовать ряд суще- ственных признаков. Наиболее важным из них является слабый коммуникационный сигнал или низкий ресурс мощности. Другой существенный признак — время возникновения про- блемы (10:24:35). В соответствии с целями и потребностями решателя задач существенны- ми признаками являются слабый коммуникационный сигнал и низкий ресурс мощности. Время события может не иметь никакого значения, за исключением случая, если поломка произошла именно после того, как Солнце скрылось за горизонтом [Skinner и Luger, 1995]. Другой существенной проблемой является представление таких понятий, как слабый сигнал или низкая мощность. Поскольку эта ситуация вряд ли повторится в точности, то значение сигнала целесообразно представлять интервалами действительных чисел, опре- деляющими хороший, граничный, слабый и опасный уровни. В работе [Kolodner, 1993] предлагается множество возможных эвристик для органи- зации, хранения и поиска ситуации. К ним относятся следующие. 1 . Упорядочение на основе целей. Случаи систематизируются, по крайней мере час- тично, на основе описания цели. Выполняется поиск случаев, цель которых соот- ветствует текущей ситуации. 2 Упорядочение по существенным признакам. Выбираются случаи, для которых наибопее важные признаки (или большинство важных признаков) совпадают. 3. Предпочтение точных совпадений. Сначала рассматриваются все случаи точного совпадения признаков, а затем более общие соответствия. 4 Частотное предпочтение. Сначала проверяются наиболее типичные случаи. 5. Предпочтение новизны. Предпочтение отдается случаям, которые использовались последними. _ 6. Предпочтение легкости адаптации. Используются первые, наиболее легко ад - тируемые к текущей ситуации, случаи. 301 Глава 7. Сильные методы решения задач
имеют ряд преимуществ при разработке экспепти Рассуждения нт.основе on „становились „а некотором предстао^ систем. Как только инженер ,1рсдставляст труда^ Оно сводится к сбор" " случая, дальнейшее из»» й Описания случаев могут быть найдены в сохранению "^Н“6лк,7ннн современных явлении. ских записях „ли пр< «а „одн„мак>т ряд важных теоретических вопросов, отн. Рассуждения на «н рассуадениям. Одним из наиболее острых „ °' евшихся к человече У' етк испе„и „ойобня. Хотя меру подобия двух ’ „яеских =°ПР°“ как ф щи,, зависящую от числа общих признаков, такое „р^ чаев можно опись. НаПр„„ер. большинство объектов „ ситуаций 11МВДт бесконечное число свойств. Однако механизм рассуждении на основе опыта, как прави. юХаетХаи из очень небольшого архива поиска, составляемого инженером „„ ло. выбирает у исследовання возможности решателя определять соот- в™Хшп= признаки из своего собственного опыта (Stubblefield, 19951, определен , ХДяности признаков остается сложной проблемой. другой важной проблемой, с которой сталкиваются специалисты прн реализации рас. суждений на основе опыта, является проблема компромисса между запоминанием и вычис- лением. По мере запоминания новых случаев механизм рассуждений становится все более интеллектуальным, способным лучше решать различные проблемы. Действительно по мере добавления в память новых случаев результаты рассуждений до некоторого момента будут улучшаться. Но по мере роста базы данных время, необходимое для поиска и обработки информации о прецедентах, тоже растет. Снижение эффективности для больших баз дан- ных также может объясняться пересечением понятий и другими помехами. Одним из ре- шений этой проблемы является хранение лишь "наилучших” илн “прототнпиых” случаев и вычеркивание тех, которые являются избыточными или редко используемыми. Следова- тельно, система рассуждений должна забывать случаи, которые не доказали свою полез- ность. Примером ранних работ в этой области может служить алгоритм запоминания пози- ций на шашечной доске [Samuel, 1959]. Однако в общем случае не ясно, как можно автома- тизировать такие решения. Это остается областью активного поиска [Kolodner, 1993]. Автоматизированные объяснения рекомендаций — еще один тип рассуждения на ос- нове опыта. В ответ на вопрос, почему в данной ситуации рекомендуется принимать именно это лекарство, единственным объяснением системы является то, что именно это назначение было сделано в предыдущий период времени. Иногда используются объясне- ния, основанные на сходстве описаний текущей и предыдущей ситуаций. В примере за- дачи спутниковой коммуникации подходящий случай был выбран на основе слабого коммуникационного сигнала. Этот способ рассуждения тоже не обеспечивает более глу- окого о ъяснения, чем то, которое было выработано ранее в подобной ситуации. Но за- частую этого может быть достаточно. и.п?ъоЮК° МКО™С исслеД°ватели убеждены, что простое повторение целей высокого (Stern и Luee^oon^'nХ СЛучаев является недостаточным объяснением [Leake. 1992), тати солчеиип,- к еРнемся к ситуации со спутником. Предположим, что переорпен- снова становится /Т™ '™могас1 УлУчшить качество сигнала, но через три часа сигнал ва переориентиоуем^п'и СПО,1ЬЗУЯ частотную эвристику и эвристику новизны, мы сно- ждые три часа мп '1Не'1ную батарею. Через три часа слабый сигнал повторяется. Ка- ной ситуации в котопой Г" °тДН0 “ ™ же назначение. Этот пример основан на реал» гороскоп и давал „ ЬиИ “бнаружена более сложная причина, а именно: перегрело лавал „скаженные данные об ориентации спутника. Окончательно реш^ проблему и определить причину слабого коммуникационного сигнала удалось лишь с помощью рассуждении на основе модели поведения спутника (Skinner и Luger. 1995]. Рассуждения на основе опыта обеспечивают обучение по аналогии. Для повторного ис- подьзования прошлого опыта необходимо выделить существенные признаки прошлой ск- •[уации и построить отображение, позволяющее применить этот опыт в текущей ситуации. Примером подхода к решению задач на основе опыта является трансформационная опию- гия [Carbonell. 1983]. Новая задача решается путем модификации существующих решений до тех пор, пока их нельзя будет применить к данной ситуации. Операторы, которые моди- фицируют решение задачи, определяют абстракцию более высокого уровня, или Т- пространство, в котором состояниями служат решения задачи, подлежащие преобразова- нию (рис. 7.17). Целью является преобразование исходного решения в возможное решение поставленной проблемы. Для модификации решения можно его исключить, переупорядо- чить шаги в решении, соединить новые решения или изменить параметры в текущем реше- нии. Трансформационная аналогия — типичный пример решения задач на основе опыта. Более поздние работы уточняют этот подход. В них рассматриваются такие вопросы, как представление случаев, стратегии организации памяти случаев, поиск подходящих ситуа- ций и использование их для решения новых задач. Более полная информация о рассужде- ниях на основе опыта содержится в [Hammond. 1989]. [Kolodner, 1988а] и [Kolodner. 19886]. Исследования по аналогии рассматриваются далее в контексте машин- ного обучения на основе символов (см. подраздел 9.5.4). 7.3.4. Гибридные системы: достоинства и недостатки систем с сильными методами Успехи построения экспертных систем для решения сложных практических проблем продемонстрировали работоспособность основной идеи построения систем на основе зна- ний. Эффективность механизма рассуждения определяется его знаниями в данной области, а не методами рассуждения. Это наблюдение, впрочем, поднимает один из главных вопро- сов искусственного интеллекта— вопрос представления знаний. На практическом уровне 303 302 Часть III. Представление и разум в ракурсе искусственного интеллекта Глава?. Сильные методы решения задач
ппжен выбрать наиболее эффективный способ их прсдсгаа- кажлый инженер по знаниям дол* с рдд0М таких теоретически важных и интел- ления. Представление знании св"~ ение недостающей и неопределенной информа- пектуально сложных вопросов ' ^сния, отношение между языком предсгавле- цией, определение выразительн и эффекТивностью механизма рассуждения, ния и обучением, приобретении з основных подходов к представлению знаний: экс- В этой главе мы рассмотр ₽ вилах, механизмы рассуждений на основе моделей портные системы, основа““ недостатки каждого из перечисленных подходов к и опыта. Подытожим достоинства и нсди решению проблем. Рассуждения на основе правил Преимущества этого подхода сводятся к следующему. 1 Возможность использовать знания экспертов в очень простой форме. Это важно в 'областях, зависящих от эвристик управления сложной и/пли отсутствующей ин- формацией. 2. Правила отображаются в пространство состояний поиска. Возможности объясне- ния облегчают отладку программ. 3. Отделение знаний от управления упрощает разработку экспертной системы, обес- печивая итеративный процесс разработки, в котором инженер накапливает, реали- зует и тестирует отдельные правила. 4. В ограниченных предметных областях возможны хорошие результаты. Поскольку для интеллектуального решения задачи требуется большой объем знаний, эксперт- ные системы ограничиваются узкими областями. Однако существует много облас- тей, в которых разработка подобных систем оказалась чрезвычайно полезной. 5. Хорошие возможности объяснения. Хотя системы на основе правил поддерживают гибкие, проблемно-зависимые объяснения, необходимо отметить, что максимальное качество этих объяснений зависит от структуры и содержания правил. Возможности объяснения в системах, основанных на данных и на целях, сильно различаются. Недостатки рассуждений, основанных на правилах. 1. Правила, полученные от экспертов, часто являются эвристическими по природе к не охватывают функциональных знаний или знаний, основанных на моделях. 2. Эвристические правила обычно не являются робастными и не позволяют управлять отсутствующей информацией или неожиданными значениями данных. 3. Другой особенностью правил является их неприменимость на границе области оп- ределения^ отличие от людей, системы на основе правил при столкновении с но- про лемами обычно не способны возвратиться назад к первоначальным принципам рассуждения. ния 0TcvTCTRv^M'Tw1MbI ЛИШЬ на описательном уровне. Теоретические обосновы- вают симптомы с п ° СВЯЗаН0 с тем’ 470 эвристические правила напрямую связы- 5 3 решениями и не обеспечивают более глубоких рассуждений. предметной Хис^ТаГппа'3аВИСИМЬ1МИ- Формализованные знания о некоторой ной области Совпрмоии Р ВИЛ0’ очснь специфичны и применимы только к дан СП, присущейХ7ку1С "Ь1КИ Предста^“ия знаний не обеспечивают гибко- 304 Р Дставление и разум в ракурсе искусственного интеллект-1
рассуждения на основе опыта Преимущества рассуждений н. основе опыта ' “°м,,огих областях нс- риаиов. записей или других источники Пои L™'°ЩИХ ВСТОР"ЧССКИХ матс‘ тенсивного приобретения знаний е помощью челове^ксп^ И'" 2' з^ТрТп^ТХХХ^Хм приТспТ™ аНШ,ОГИ,НЫЙ “Ч™* повыс г тр , чем при использовании правил или моделей. 3. Рассуждения на основе опыта позволяют избежать прошлых ошибок и использовать прошлые успехи, ни обеспечивают модель обучения, как интересную с теоретической точки зрения, так и достаточно практичную для применения в сложных ситуациях. 4. Не требуется всестороннего анализа знаний о данной области. В отличие от систем, ос- нованных на правилах, где инженер по знаниям должен описать взаимодействие пра- вил, рассуждения на основе опыта обеспечивают простую аппитинную модель приоб- ретения знаний. Для использования этого подхода необходимо обеспечить соответст- вующее представление случаев, индексирование данных и стратегию адаптации. 5. Соответствующие стратегии индексирования повышают эффективность решения задач. Мощность механизма рассуждений на основе опыта определяется возмож- ностью выявлять отличительные особенности целевой проблемы и выбирать соот- ветствующий случай из базы данных. Алгоритмы индексации часто обеспечивают эту функциональность автоматически. Рассмотрим недостатки рассуждений на основе опыта. 1. Описания случаев обычно не учитывают более глубокие знания о предметной области. Это снижает качество объяснения и во многих ситуациях приводит к ошибочному при- менению опыта, а значит, к неправильным или низкокачественным советам. 2. Большая база данных может привести к снижению производительности системы. 3. Трудно определить хороший критерий для индексирования и сравнения случаев. Словари поиска и алгоритмы определения подобия необходимо тщательно отла- живать вручную. Это может нейтрализовать многие из преимуществ, присущих рассуждениям на основе опыта. Рассуждения иа основе моделей Преимущества рассуждений на основс моделей сводятся к с iujckuhumv 1. Возможность использовать при решении задач функциональные и структурные знания о предметной области. Это увеличивает эффективность механизма рассуж- дений при решении различных задач, включая тс, которые не ыли предусмотрены при разработке системы. 2. Механизмы рассуждений на основс моделей обычно очень ^юди ляются мощными и гибкими средствами решения задач, п - ппобтемой _________________ IU паяным при столкновении с новой проблемой, часто возвращаются к исходным данным прп 1 it .ткать в пазных задачах. Системы рассуждении иа 3. Некоторые знания можно использовать в р oa™u,!Y чнаинях По- - йччнпуются на теоретических научных знаниях, ло- основе моделей зачастую 6азнРу* т ‘ ми такое обобщение часто рас- скольку наука обычно оперирует общимг Р ’ _ ширяет возможности механизма рассуждении на ост 305 Глава 7 Сильные методы решения задач
„ пассужденяй. основанные на моделях, обеспечивают причимные 4. Обычно системеi ра«Т пояьзователям можно передать более глубокое пою,. KOID₽Oe “°ЖеТ СЫГРаТЬ ВаЖНУЮ ОбраЗОВаТСЛЬН^ роль (см. также раздел 16.2). Недостатки рассуждений иа основе моделей таковы. I Отсутствие экспериментального (описательного) знания предметной области. Эв- методы, используемые при рассуждениях иа основе правил, отражают важный класс экспертных оценок. 2 Необходимость точной модели предметной области. Знания из многих областей имеют строгую научную основу, которую можно использовать в рассуждениях на основе моделей Однако во многих сферах, например, в некоторых медицинских направлениях, большинстве проблем проектирования или финансовых приложени- ях, хорошо определенная научная теория отсутствует. В таких случаях подходы, основанные на моделях, ие могут быть использованы. 3. Высокая сложность. Рассуждения, основанные на моделях, обычно ведутся на де- тализированном уровне, что приводит к значительным усложнениям. Именно по этой причине эксперты в первую очередь разрабатывают эвристики. 4. Исключительные ситуации. Необычные обстоятельства, например, замыкание или взаимодействие множества неисправностей электронных компонентов, могут изме- нить функциональность системы таким образом, что ее трудно будет предсказать. Гибридные системы Важной областью исследований является комбинация различных моделей рассужде- ний. В гибридной архитектуре, объединяющей несколько парадигм, эффективность од- ного подхода может компенсировать слабости другого. Комбинируя различные подходы, можно обойти недостатки, присущие каждому из них в отдельности. Например, сочетание рассуждений на основе правил и опыта может обеспечить сле- дующие преимущества. 1. Просмотр известных случаев до начала рассуждений иа основе правил позволяет снизить затраты на поиск, 2. Примеры и исключения можно сохранять в базе данных ситуаций. 3. Результаты поиска можно сохранить для будущего использования. При этом меха- низм рассуждений позволит избежать затрат на повторный поиск. можностн 111151 рассуадений на основе правил н моделей открывает следующие воз- обучаюицтесистешх10™ ^уНКЦИОнальнымн знаниями. Это может быть полезно в правил, используемых^^а СИСТеМЬ‘ ПрИ 0ТКазах- при отсутствии эвристических к рассуждениям от исходнь^прин^пов МеХаНИЗМ рассуждений может пРибсгиуГЬ мочь в сложных рассужгД°П0ЛНЯеТСЯ эврнстическнм поиском. Это может по- можность выбора. ениях, основанных на модели, и обеспечивает воз- 306 А авление и разум в ракурсе искусственного интеллекта
Комбинация рассуждений на основе моделей и опы™ и опыта дает следующие преимущества. 1. Болес разумное объяснение ситуаций. 2. Проверка аналогичных случаев до начала боле? рассуждений на основе моделей. экстенсивного поиска посредством 3. Обеспечение записи примеров и исключений в базу данных случаев, которые мо- гут быть использованы для управления выводом на основе модели ₽ 4. Запись результатов вывода иа основе моделей для будущего использования. Гибридные методы заслуживают внимания как исследователей, так и разработчиков при- ложений. Однако построение таких систем требует решения целого ряда проблем. Необходи- мо определить метод рассуждения для данной ситуации, момент изменения метода рассужде- НИЯ, выяснить различия между методами рассуждения, разработать представления, обеспечи- вающие совместное использование знаний. Далее будут рассмотрены вопросы планирования или организации частей знаний для решения более сложных проблем. 7 А. Планирование 7.4.1. Введение Задача планировщика — определить последовательность действий модуля решения, например системы управления. Традиционное планирование основано иа знаниях, по- скольку создание плана требует организации частей знаний и частичных планов в проце- дуру решения. Планирование используется в экспертных системах при рассуждении о событиях, происходящих во времени. Планирование находит приложения как в произ- водстве, так и в управлении. Оно также важно в задачах понимания естественного языка, поскольку люди часто обсуждают планы, цели и намерения. В этом разделе будут использованы примеры из традиционной робототехники. (Современная робототехника, как указано в разделе 6.3, во многом основывается на ре- активном управлении, а ие иа планировании.) Пункты плана определяют атомарные действия робота. Однако при описании плана нет необходимости опускаться до аппа- ратного уровня (или микроуровня) и говорить о таких деталях, как поворот шестого ша- гового двигателя иа один оборот”. Планировщики описывают действия на более высо- ком уровне в терминах их воздействий на мир. Например, планировщик для робота из мира блоков может оперировать такими действиями, как ‘взять объект а или перейти в местоположение х”. На таких планах высокого уровня строится управление действиями настоящего робота. Например, для реализации пункта плана “принести блок а из комнаты б треоуетая следующая последовательность действий. 1 • Положить все, что есть в руке. 2. Пройти в комнату б. 3. Подойти к блоку а. 4. Взять блок а. 5. Выйти из комнаты б. 6. Вернуться в первоначальное местоположение. Глава 7. Сильные методы решения задач 307
п„сй в пространстве возможных действии до тех пор. Планы создан®» «У«м поиска ^собход1,мая для решения задачи. Это про^ не будет найдена последовательно . тмсняк)ТСЯ „ри выполнении каждого дсйо. еда представляет состояния целевое состояние (описание мира). Таким ВИЯ. Поиск заканчивается, когдад поиска, вкл10Чая алгоритмы решения Д* образом, многие принципы эврисги подходят и ДЛЯ планирования. сушествования реального робота. Изначально Задача планирования не з кОМПЬЮТСрного планирования полные планы фОрми. (в 1960-е годы) при решении зад совсршш1 свое первое действие. Таким образом, ровались заранее, перед тем’* бота в00бще! В последнее время благодаря рсали- планы разрабатывались Оез н реагирования исследователи сфокусировались займи сложных механизмов воспри^ия действнс на более иетС^Нр^"Н^\П^стодов поиска и поднимает ряд уникальных вопросов. На- прн?ерНопмсаание состояний мира может быть значительно сложнее, чем в предыдущих поим «ска. Рассмотрим ряд предикатов, необходимых для описания комнат, кори- доровобъектов в окружении робота. При этом необходимо представить не только мир X но и воздействие его атомарных действий на этот мир. Полное описание каждого состояния задачи может быть очень громоздким. Другой отличительной особенностью планирования является необходимость характе- ризовать сложные неатомарные состояния и действия. Захват объекта означает измене- ние его местоположения и состояния руки робота (теперь она сжимает объект). При этом не изменяется местоположение дверей, комнат илн других объектов. Описание того, что истинно в одном состоянии мира и изменяется при выполнении некоторого действия, на- зывается проблемой границ [McCarthy, 1980], [McCarthy и Hayes, 1969]. По мере услож- нения пространства состояний задачи вопрос поддержки истории изменений, связанных с каждым действием, и инвариантных признаков описания состояния становится все бо- лее важным. В этой главе будут представлены два подхода к проблеме границ, но, как показано ниже, ни один из них не является полностью удовлетворительным. Другие важные вопросы включают генерацию планов, хранение и обобщение хороших планов, воссганоаление системы после неожиданных сбоев (часть мира могла оказаться не такой, как ожидалось, возможно вследствие случайного сдвига относительно прежнего ме- стоположения) и поддержку соответствия между миром и его программной моделью. Представление и разум в ракурсе искусственного интеллект
в Примерах этого раздела мы ограничим мир робота ности стола и действиями руки робота котопая ножеством блоков на поверх- взять верхний блок и переместить блок в прс;,с;,м "Тн7ь6“°к”оаин т дру'ой' а, h С d й ‘«pwiuiax стола. На рис. 7.18 показаны пять блоков , ’ ’ ’ ’ пазм н На ВСРХНСЙ поверхности стола. Все блоки являются *¥ ^^бпазуя стеки Pvxa побпта°Т°₽Ь1С блоки Рас1’°лагаются непосредственно друг на друге, Р У • У Р имеет захват, который может схватить любой свобод- ный блок (тот, который не имеет блоков на своей верхней грани) и переместить его в лю- бое место на поверхности стола или на верхнюю грань любого другого свободного блока, рука робота может выполнять следующие задания (U, V,W,X,YkZ — переменные) доГо(Х,У^) Перейти в местоположение, описанное координатами X, Y и Z. Это местоположение может быть неявно задано в команде pickup(W), где блок W имеет координаты X, Y, Z. pickup (W) Взять блок W из его текущего местоположения и держать его. Пред- полагается, что блок является свободным, захват в это время пуст и компьютер знает текущее местоположение блока W. putdown(W) Опустить блок W в некоторой точке на столе. Записать новое место- положение для W. При выполнении дайной задачи предполагается, что в данный момент блок W удерживается захватом. stack(UtV) unstack(U,V) Поместить блок U иа верхнюю грань блока I/. При этом захват должен держать блок U, и верхняя грань V должна быть свободна. Убрать блок U с верхней грани I/. Перед выполнением этой команды блок U должен быть свободен, располагаться на верхией поверхности блока I/, н рука должна быть пустой. Состояние мира описывается множеством предикатов и отношеннй между ними. /оса t/о л (IVXKZ) on(X,Y) clear(X) gripping(X) gripping^) Блок W имеет координаты X, Y, Z. Блок X находится непосредственно на верхней поверхности блока Y. Верхняя грань блока X пуста. Захват робота удерживает блок X. Захват робота пуст. Блок W находится на столе. onfab/e(lV) Запись onfab/eflV) является короткой формой предиката focation(WXY^), где Z — уровень стола. Предикат оп(Х.У) указывает, что нижшя часть блока X ниодитмна верхней грани блока X. Если местоположение каждого блока в информация >. ере мешении в новое место записаны в компьютере, то описание мира можно упростить. При этом устраняется необходимость в команде, поскол . как p/ckupOO или stack(X), неявно содержат местоположение . множеством Тогда мир блоков, показанный на рис. 7.18. может быть предикатов Состояние 1 Поскольку предикаты, описывают является рис. 7.18. являются истинными одновременно, полное описание соетояни. является конъюнкцией (л) всех этих предикатов. Состояние 1 ontable(a). on(b.a) clear(b). Ontable(c). on{etd). cfear(c). Ontable(d). gripping^- clear(e). Глава?. Сильные методы решения задач 309
еаиа) и gripping^ опишем ряд истинных отношений (, Теперь для °'ваг(Ь.\°ХавнЛ выполнения (в процедурном смысле). декларативном смысле) или и 2. (VH (VX)- (on<FX) <- (.ontable^- 3. (VK) grippingO -AgrippmaWr „ утверждению, если блок X свободен, то не существует блока У, Согласно первому У™ _Р»« Процедурно его можно интерпретировать так: “Для расположенного на верхнейi гр _ у которь1й может находиться на верх- освобождения блока X нужно уора.ь ней граниX”. воздействующие на состояния и приводящие к новым Теперь разрабо Р * процедурную семантику для логического пред- ГХТпре^атоа Операторы (picKup. pu^n. stack, ““stack) определяются следующим образом. 4. (VX) (pickup(X) -» (gripping(X) <- (дг1рртд0лс1еаг(Х)л ontab/e(X)))). 5. (VX) (putdown(X) ((grippingO л ontable(X) л clear(X)) gripping(X))). 6. (VX) (VY) (stack(X,Y) -> ((оп(Х,У) л grippingO л clear(X)) <- (clear(y) л gripping(X)))). 7. (VX) (VY) (unstack(X,Y) -> ((clear(Y) л gripping(X)) (оп(ХХ)лс1еаг(Х) л grippingO)). Рассмотрим четвертое правило: для всех блоков X pickup(X) означает gripping(X), если рука пуста и блокХ свободен. Отметим форму этого правила: А—>(В<— С). Это озна- чает, что из А следует новый предикат В, если условие С истинно. Это правило можно использовать для генерации новых состояния в пространстве. Если предикат С является истинным, то в наследуемом состоянии В тоже является истинным. Другими словами, оператор А может быть использован для создания нового состояния, описываемого пре- дикатом В, если предикат С является истинным. Для создания этих операторов можно использовать и альтернативные подходы, описанные в подразделе 7.4.2, [Nilsson, 19S0] и [Rich и Knight, 1991]. Прежде чем использовать эти правила взаимосвязи для генерации новых состояний мира блоков, надо обратиться к проблеме границ. Прн описании нового состояния мира используются аксиомы границ— правила, определяющие инвариантные предикаты. На- пример, если применить оператор pickup к блоку В на рис. 7.18, то все предикаты, отно- сящиеся к остальным блокам, в следующем состоянии останутся истинными. Для мира блоков можно описать несколько правил границ. 8- (VX) (VZ) (VZ) (unstack(rz) -> (ontable(X) <- ontable(X))). 9- (VX) (Vn (VZ) (s.acWZ) -> (onteb/nCX) <- onteb/e(X))). рам stack и XtaTZ’„m П₽еЛИ1<ат °ntable инвариантен по отношению к операто- этих выражений :ПрИ * - Z; если же Y-Z. то одно из значения предикатов'оГн cwT” " Т0МУ’ Ч™ опеРатоРь| stack н “"Stack изменяют оператор unstack(c d) нс ШЬ некотоРЬ1х параметров. Так, в нашем примере затрагивает значение ол(Ь,а). Аналогично оператор ол(Ь,а). clear(b). ciear(c). cfear(d). gripping(e).clear(e). gripping^ нс затрагивает отношение dear(X\ gripping^- кР°ме того, оператор grippina ° ССЛИ Х=У или истинно выражение 0П(аЬ/е(Х)Л'ДеХ—удерживаемый блок. Таким об?ДпИВаСТ отношснпе °n(W а м0 описать ряд аксиом границ. разом, для нашего примера иеобходи- Опсраторы и аксиомы границ определяют стояние, определяемое оператором unstack nL^Ze СОСТ°Я"ИЙ- Рассмо1Р"м с0' должны выполняться три условия одноврсмТХо а ™ °"сра™ра Uns,acW/) c/sar(X). Когда эти условия выполняютсяХХнис опепат " новым предикатам gripping^) и clear(Y). О^ьньГс пЛ™ ПР'"ЮШ” “ ние 1. останутся истинными н в состоянии 2 ItoexoS °™сываю1™= “с™"' . переход к состоянию 2 осуществляется по- средством применения оператора unstack и аксиом траниц к предикатам состояния 1. Состояние 2 ontable(a). ontable(c). ontable(d). Подведем итоги. 1. Планирование можно рассматривать как поиск в пространстве состояний. 2. Новые состояния определяются такими общими операторами, как stack и unstack, и правилами границ. 3. Для нахождения пути из начального состояния к целевому могут применяться ме- тоды поиска на графах. Операции переходов для этого пути составляют план. На рнс. 7.19 показан пример пространства состояний, в котором поиск выполняется с применением описанных выше операторов. Если к этому процессу решения задачи доба- вить описание цели, то план можно рассматривать как множество операторов, описы- вающих путь от текущего состояния этого графа к целевому (см. подраздел 3.1.2.). Такое описание задачи планирования позволяет определить ее теоретические корни. Это — поиск в пространстве состояний и исчисление предикатов. Однако та- кой способ решения может быть очень сложным. В частности, использование пра- вил границ для вычисления инвариантов может экспоненциально усложнить поиск, что видно на примере очень простой задачи из мира блоков. Действительно, если ввести новый предикат для описания цвета, формы или размера, необходимо опре- делить новые правила границ, которые должны быть связаны со всеми соответст- вующими действиями! Предполагается также, что подзадачи общей задачи являются независимыми и могут быть решены в произвольном порядке. В интересных и сложных предметных областях это условие выполняется редко. Обычно предусловия и действия, необходимые для дос- тижения одной подцели, противоречат предусловиям и действиям, необходимым для Достижения другой. Проиллюстрируем эти проблемы и опишем подход к планированию, который в значительно мерс помогает их преодолеть. 7.4.2. Использование макросов планирования. STRIPS Система STRIPS (современное название - SRI In.erna.ionaD - «<|Л"с1^а нирования. разработанная в Стандфордском иссле®ва7лас[°миН"""^1< в н1ча. Research Ins.i.u.e Planning System) (Fikes .. Nilsson. 1971]. (F.kes и др , 197-]. В нача Д авление и разум в ракурсе искусственного интеллекте Глава 7. Сильные методы решения задач 311 310
„ловался ДЛЯ управления роботом SHAKet „от яонтро^Р “'Хктияиого представления знаний н выпо„„г; * ‘970-ХтХ5 0ешз”»"Р°6Л‘:^™м противоречивости подцелей и о6ес„еч„М11а Система STRIPS Ре вШ,1Ка с учетом' Р сохранялвсь и обобщались как мак. „ИЯ операо"" "'“"^сния: УС11СШ"“Ь ИСПользованы в подобных ситуациях. В ос- начальную м«м могли б» „СПОЛьзованный в STRIPS подход к ППа. ss*»-структурь’данных' ис"°’"”уемые для 0₽га- plckup(X) putdown(X) П: Д: В: gripping! ) л ciear(X) gripping(X) л ontable(X} ontable(X) лдпрр!Пд( ) П: gripping(X) Д: ontabie(X) л gripping! ) л clear(X) В: gripping(X) м«жно предстаитгги ния Отдельных аксиом границ, в «ставить следу,ощим образом. П. clearf Y} л gripping(X') stack(X,Y) д: оп(Х,У) ^gnpping( ) лс/еаг(Х) В: c/ear( Y) л gripping(X) П: clear(X) л gripping( ) лоп{Х,Г) unstack(X.Y) Д: gripplng(X) лс/еаг(Г) В; gripping( ) л оп{Х,Г) Важной особенностью списков добавления и вычеркивания является то, что они опи- сывают аксиомы границ. Подходу, основанному на списках добавления и вычеркивания, присуща некоторая избыточность. Например, в операторе unstack добавление дпрр!пд(Х) может подразумевать вычеркивание gripping(). Однако эта избыточность имеет свои преимущества. Каждый дескриптор состояния, который не упоминается в списке добавления нлн вычеркивания, остается истинным в описании нового состояния. К недостаткам подхода, основанного на списках добавления и вычеркивания, можно отнести следующее. Здесь для формирования нового состояния не используется процесс доказательства теорем. Однако это не является серьезной проблемой, так как доказатель- ство эквивалентности двух подходов может гарантировать корректность метода списков добавления и вычеркивания. Подход, основанный на списках добавления и вычеркивания, в нашем примере дает те же результаты, что н правила вывода с аксиомами границ, Поиск в пространстве со- стояний (см. рис. 7.19) для обоих подходов реализуется одинаково. Некоторые проблемы планирования не решает ни один из этих двух подходов. При ре- шении задачи ее зачастую делят на подзадачи, например unstack(e,d) и unstack(b,a). Попытка независимого достижения этих подцелей может вызвать проблемы, если дейст- вия, необходимые для достижения одной цели, направлены на разрушение другой. Несо- вместимость подцелей может быть результатом неправильного предположения о линейно- сти (независимости) подцелей. Нелинейность пространства план-действие может сделать поиск решений чрезмерно трудным или даже невозможным. Приведем простой пример не- совместимых подцелей. Используем исходное состояние 1, показанное на рис. 7.18. Пред- положим, что целью планирования является состояние G, показанное на рис. 7.20, в кото- ром ол(Ь, а)лол(а, с), а блоки d и е остаются в том же положении, что и в состоянии I. Можно отметить, что одна из частей конъюнктивной цели ол(Ь,а)лол(а,с) ол(Р,а) в состоянии 1 истинна. Для достижения второй подцели ол(а, с) это условие должно быть нарушено. Представление данных в виде треугольной таблицы (Fikes н Nilsson, 1971], IN’ilsson, 1980] позволяет смягчить некоторые последствия этих аномалий. Треугольная таблица является структурой данных для организации последовательности действий, включая потенциально несовместимые подцели. Она решает проблему протнворечиво- 3-| 2 —----— ________________ ________________________________-— Ча°ТЬ "Ь ПР^вленив и разум в ракурсе искусственного Интел"*" глава 7. Сильные методы решения задач 313
. посредством представления глобального взаимо- „рй внутр» макрооперации п оЛЬНОЙ таблице предусловия ОдНого с""сков добавлсния и вычсркиваи,,я п₽едш'- ствуюшего дей^11*' Рис. 7.20. Целевое состояние для мира блоков Треугольные таблицы служат для определения применимости макрооператора при построении плана. Повторное использование этих макрооператоров увеличивает эффек- тивность поиска при планировании в STRIPS. Действительно макрооператор можно обобщить, заменяя названия блоков в частном примере именами переменных. Затем для сокращения поиска можно вызвать новый обобщенный макрооператор. В главе 9 методы обобщения макрооперации оосуждаются при описании обучения на основе символов. Повторное использование макрооператоров помогает также рещнть проблему про- тиворечивости подцелей. Если планировщик разработал план достижения целей вида stack(X, У)лвгаск(У, Z), то этот план можно запомнить и использовать повторно. Это исключает необходимость разбивать цель на подцели н позволяет избежать возмож- ных усложнении. Плвгагиу ^приставлена треугольная таблица для макрооператора stacfrfX, но выражение 'гни* й^кр<’опеРатоР можн° применять в состояниях, для которых истин- чальному состоянию ТреуГ0ЛЬНая табдица соответствует на- (pickup, putdown, stack Записываются вдоль диагонали. Эти четыре действия предусловий каждого из рассм01РенЬ( ранее в данном разделе. Множество действию, а постусловия_ дсиствий описывается в строке, соответствующей этому жатся предусловия, а в столб С°,°ТВетствую1цем столбце. Например, в строке 5 содер' Для оператора pickup{X). ПосТ ~~ ПостУсловия (списки добавления и вычеркивания) гнх (дальнейших). Цель тпе^СЛ°ВИЯ Одних Действий являются предусловиями ДР>' яочить предусловия и пос™сппп,ЬН°П таблнцы — соответствующим образом упоря- пели. Таким образом трсугольми * Ка*Лого Действия при достижении более круп»0” вания на уровне макрооператопя ЛИЦЫ решают вопросы нелинейности планнр0 входов, в том числе при исполь ** ВопРосы можно решить и на основе дрУг,|Х Bssell и Norvig, )995] Р Новации частично упорядоченных планировпИ*00 Одним из преимуществ треугольных таблиц является возможность преодоления неожи- данных или аварийных ситуаций, таких как сдвиг блока. Часто в случае аварии для продолже- ния реализации плана требуется вернуться на несколько шагов назад. При необходимости планировщик может возвратиться назад к нужным строкам и столбцам таблицы. чтобы про- верить, какие подцели еще истинны. После такой проверки планировщик знает, каким должен быть следующий шаг решения. Это формализуется с помощью понятия ядра. Ядро п-га порядка, или п-е ядро, — это пересечение всех строк, начиная с n-й. с п столбцами, начиная с крайнего слева. На рис. 7.21 мы очертили третье ядро жирной ли- нией, При выполнении плана, представленного треугольной таблицей, /-я операция (т.е. операция в /-й строке) может быть выполнена, если все предикаты, содержащиеся в /-м ядре, истинны. Это позволяет проверить, какой шаг может быть выполнен, и восстано- вить выполнение плана при его нарушении. Для этого в треугольной таблице нужно най- ти и выполнить действие, соответствующее ядру максимального порядка. Это дает воз- можность не только возвратиться к предыдущим шагам плана, но и скачкообразно пе- рейти вперед после неожиданного события. Условия в крайнем слева столбце — это предусловия для макродействия в целом. Ус- ловия в самой нижней строке добавляются в мир при выполнении макросперагора Тре- угольная таблица может быть сохранена как макраоператор со своим собственным множеством предусловий и списками добавления и вычеркивания. Разумеется, подход на основе треугольной таблицы несколько скрывает семантику 'ФСДыдущих МОдслей планирования. Например, в таблице описываются лишь те посту- словия, которые одновременно являются предусловиями последующих действий. Таким “братом, для получения корректного результата необходима дальнейшая верифнкаши тРеУгольных таблиц, возможно, с учетам дополнительном информации. позволяющей сформировать последовательности треугольных таблиц Глава 7. Сильные методы решения задач 315 314 ЫП. Представление и разум в ракурсе искусственного интелл
При использовании макрооператоров возникают и другие проблемы. С уя числа макрооператоров планировщик использует более сложные операции а еЛиЧеНиеА( следуемого пространства состояний уменьшается. К сожалению, г'редусл0Ш1я')а3меР ty. раторов необходимо проверять на каждом шаге поиска. Необходимое лля Все* опр. применимости оператора сопоставление с образцом может значительно иссс поиска и свести на нет преимущества макроопераций. Проблемы н Н11Ть пРо- сохранения макрооперацин н определения следующего оператора остаютс Х°лил<Ости многих исследований. В следующем разделе будет описан алгоритм адаптив Предметом рования, при котором одновременно могут удовлетворяться несколько подц И°-Г° njIaw»- 7.4.3. Адаптивное планирование С момента появления ранних работ по планированию, описанных в предыдущем разделе (Fikes и Nilsson, 1971). в этой области был получен ряд значительных резуль- татов Многие из них не связаны с конкретной предметной областью. Но в последнее время особое значение приобретает планирование в специфических областях, где ис- пользуется распределенный механизм “восприятие-реакция”. В следующих разделах будет описана не зависящая от предметной области система адаптивного планирова- ния, а также более специфический планировщик Бартона (Burton) из NASA. В качестве дополнительной литературы по исследованиям в области планирования рекомендуем книгу [Allen и др., 1990]. Адаптивное, или щелео-реактнвное, планирование (АП) впервые было предложено в (Nilsson, 1994] и [Benson, 1995]. Принцип АП может применяться во многих областях, требующих скоординированного управления сложными подсистемами для достижения целей более высокого уровня. Здесь иерархическая архитектура управления (сверху вниз) соединяется с агентным подходом (раздел 6.4) или управлением снизу вверх. Ре- зультатом является система, которая может решать сложные проблемы посредством ко- ординации простых проблемно-ориентированных агентов. Такой подход можно обосно- вать следующим образом. Простые агенты хорошо работают в ограниченных простран- ствах. С другой стороны, контроллер более высокого уровня может делать более общие заключения, относящиеся ко всей системе. Например, он позволяет оценить, как текущее локальное решение воздействует на процесс решения общей задачи. аптивное управление объединяет аспекты управления по обратной связи и нпсткРпрГгНИе „К0Н_кретных Действии. Адаптивная программа — это аоследователъ- от бопер тпя^У ° еспечива10ших выполнение целенаправленного плана. В отличие делается ^Сред Интеллектуального планирования [Weld, 1994] здесь не ной предсказуемости111111 ° ДИСКретности 11 непрерывности действий, а также о пол- поддерживаться в течение мите™’' Наоборот’ Целенаправленные действия могут До тех пор, пока уд0метво„ ”ЬИОГО псР"о;1а времени, т.е. действие выполняете цель. В (Nilsson 19941 таи,,,Р - М пРедУСЛ08ия и не достигнута соответствую^ могут быть прерваны при актТКт?'И иазываются продолжительными (durative). Он" цели верхнего уровня. Ппи и иИИ некотоР°го Другого действия, более близкого К>ТСЯ, отражая новое состоян7рМеНеИИИ среды управляющие действия быстро изме^ Последовательности Ход Проблеыы- структурами данных__та.™п^*'ИТеЛЬНЬ1К Действий представляются специальна111 пар условие—^действие или пппПВЬЯМИ ^рис‘^-22)- TR-дерево описывается множесТВ0М пРодукиИонными правидамй (раздел 5 3) Налример, 316 а0Л0нив и Разум в ракурсе искусственного интеллекта С^А„ Сг->Аг, где Ot ~~ условия, а А, соответствующие им действия. Со — это ссылка на цель верх- него уровня дерева, a А$ нулевое действие, показывающее, что при достижении цели верхнего уровня никаких действий не требуется. На каждом цикле работы такой системы условия С, оцениваются сверху вниз (Со, Сь ..., С„) до тех пор, пока не находится первое истинное условие, и действие, связанное с этим условием, выполняется. Затем цикл по- вторяется. Частота повторения определяется скоростью реакции контура управления. Рис. 7.22. Простое TR-depeeo, содер- жащее правила условие—^действие для достижения цели верхнего уровня (Klein и др., 2000] Продукции С—>Д, организуются таким образом, что каждое действие А,, если оно не- прерывно выполняется при нормальных условиях, обеспечивает истинность некоторого условия более высокого уровня в TR-дереве. Проход по TR-дереву можно рассматривать как адаптивный. Если некоторое непредвиденное событие в среде управления изменя- ет результат предыдущих действий, алгоритм возвращается назад к условию правила более низкого уровня, и работа по достижению всех целей высокого уровня возобнов- ляется. Аналогично, если в среде выполнения задачи случается нечто непредвиденное, то управление автоматически перейдет к действию, связанному с истинным условием- TR-деревья могут создаваться с помощью алгоритмов планирования, которые использу- ют общепринятые в искусственном интеллекте методы редукции целей. Начиная от цели верхнего уровня, планировщик находит действия. результат которых приводит к дости- жению этой цели. Предусловия этих действий образуют новое множество подцелей. и эта процедура исполняется рекурсивно. Проиесс завершается, когда предусловия конеч- ных узлов выполняются в текущей среде. Таким образом алгоритм планирования выпол- няет редукцию цели верхнего уровня к текущему состоянию. Конечно, действия часто имеют побочные эффекты и планировщик должен тщательно следить за тем, чтобы ка- ждое действие нс изменяло предусловия действий более высокого уровня TR-деревз. Та- *им образом, редукция целен связана с удовлетворением ограничений за счет использо- вания различных стратегий переупорядочения действии. Итак, алгоритмы TR-планнровання используются для построения планов, листья ко- Т0Рых соответствуют текущему состоянию среды. Обычно они не позволяют строить РлаВа 1. Сильные методы решении задач
По. питать из любого состояния мира. так как подобна планы. м0"“ и эфф»™»™™ выполнения. Это очень „юкиЛ ны слишком велики для за№ могуу. „ривеоти „,,р в состояние, не удо ' скольку иногда непредвиден в случае потребуется переШ,анированис ряюшее предуслол"» ™планировЩ11Ка. правило. зтоД<ыа« » "Р' " 0„„сывается использование адаптивного ,Щщ в [Benson. 19941 . включая управление распределенными агента вания для "''Л0™' В [К,ет " Д₽" ‘т 1Юе'Л И *₽ роботами и ‘ Р пользуется для построения и испытания портативной ynJ адаптивный —" еля п)-™ заряженных частиц. В этих работах планирования обосновывается следующим образом. 1 Ускоритель пучков - это динамическая и зашумленная система. 2 . На процесс настройки ускорителя часто влияют стохастические процессы, радио- помехи или осцилляция источника пучков. 3 Многие действия в процессе настройки являются продолжительными. Это особеи- но касается процедур тонкой настройки и оптимизации, которые продолжаются до тех пор. пока не будут достигнуты некоторые критерии. 4 TR-деревья обеспечивают естественный способ описания планов настройки, пред- лагаемых физиками. В самом деле, при небольшом содействии физики сами могут разработать собственные TR-деревья. Более подробное описание этих приложений можно иаити в литературе, указанной в заключительной части главы. В следующем разделе мы вернемся к примеру рассужде- ний на основе модели из раздела 7.3 и опишем алгоритмы управления-планирования для двигательной установки космического аппарата. 7.4.4. Планирование: пример NASA В этом разделе будет описан планировщик для механизма рассуждений на основе мо- делек. ернемся к примеру из [Williams и Nayak, 1996], описанному в подразделе 132. истема mngstone это реактивный диспетчер конфигурации, использующий компо- пи м~~ой установки космического корабля для определения дейст- вии по ее реконфигурации (рис. 7.23). Каждый компонент системы двигателей можно представить в виде последова- тельности переходов, описывающей поведение этого элемента в рабочем, аварийном «сжимах и переходы между этими режимами, а также стоимость и вероятность пе- реходов (рис. 7.24). На рис. 7,24 элементы орел и closed представляют нормальные пабочие режимы, a stuck open и stuck closed — аварийные. Команда open имеет еди- ничную стоимость и вызывает переход от режима closed к open, а команда close — наоборот. Аварийные переходы переводят клапан из нормального рабочего режима в один из аварийных режимов с вероятностью 0,01. closed 0,01 stuckclosed Нормальный переход со стоимостью. Аварийный переход с вероятностью .. ^.,7'24' Модель системы переходов клапана из [Wilhams и Nayak, 1996а] Повеление элемента в каждом из режимов описывается формулами пропозициональ- ной логики, а переходы между режимами — формулами пропозициональной логики при ограниченном времени. Это описание можно использовать для моделирования цифровых и аналоговых устройств (deKleer и Williams. 1991]. [Weld и deKleer. 1990]. а также про- граммного обеспечения реального времени на основе модели параллельных реактивных систем [Manna и Penueli, 1992]. Модель системы переходов космического корабля — это композиция систем переходов его компонентов. При этом множество состояний конфи- гурации космического корабля определяется как прямое произведение состояний его компонентов. Предполагается, что системы переходов всех компонентов действуют син- хронно, т.е. каждый переход состояний космического корабля связан с переходом со- стояний его компонентов. Диспетчер конфигурации, основанный на модели, использует модель переходов системы как для идентификации текущей конфигурации космического корабля в режиме оценивания (РО). так и для перевода корабля в новое состояние в ре- жиме реконфигурации (РР). В РО поэтапно генерируются все переходы космического корабля в состояние, совместимое с текущими наблюдениями. Например, на рис. 7.25 показана ситуация, при которой в предыдущем состоянии левый двигатель запускается нормально, а в текущем состоянии отсутствует тяга. Задача РО — идентифицировать со- стояние, в которое может перейти корабль с учетом этого наблюдения. На рисунке пока- заны два возможных перехода, соответствующих неисправности одного нз клапанов главного двигателя. Неисправные клапаны обведены кружочками. При этом можно так- же учитывать многие другие переходы, включая маловероятные двойные отказы. В РР определяются команды, переводящие корабль в состояние для достижения цели (рис. 7.26). Этот рисунок соответствует ситуации, в которой в режиме идентификации обнаружена неисправность клапана, ведущето к левому двигателю. В РР предполагается, что ДЛЯ восстановления нормальной тяги в следующем состоянии необходимо открыть соответствующий набор клапанов, ведущих к правому двигателю. На рисунке показаны лье из множества конфигураций, позволяющих достичь желаемой цели при изменении состояния клапанов, обведенных кружками. Переход к верхней конфигурации Дешевле, так как для него необходимо лишь активизировать пироклапаны (см. подраздел 7.3..). Часть in.----------------------------------------------------- ие и разум в ракурсе искусственного иителле*^ Глава 7. Сильные методы решения задач 319
Тогда клапаны, ведущие к левому двигателю, перекрываются и с боту с одним двигателем. Использование модели космического Кп дек,а пР°ДОдж РР обеспечивает корректное достижение целей конфигурации ра”Ля как a pQ йе? Ра- ’^ККВ Возможнее текшие конфигурации при наблюдении нет тяги Текущая конфигурация а.ния из {Williams и Nayak. 1996а} Рис. 7.25. Режим оценивания из / Возможны следующие конфигурации, обеспечивающие “нормальную тягу" Ркс. 7.26. Режим реконфигурации из [Williams и Nayak. 1996а] гурация^предедаети ™UWTC’ Реает™кыми (см. раздел 6.4). В РО текущая В РР рассматриваются лишТть”6 Г’реяь1я>щей конфигурации и текущих наблюден» дующем состоянии. Пои з К0манды. которые обеспечивают достижение цели в сле- яереходов. ''щьтернатив кяючев^1° Роль играет предположение о синхронности Переходов для отдельны.” Является последовательное моделирование множеств» конфигурация могут оказатьеИПОНеНГ0в' ®янак0 в злом случае текущая и ослеаах вод небольшим фикию.,„„’ а1леК1! ДРУ‘ от друга, и возможность ограничит» ««' модели переходы считав, 'М числом состояний будет сведена на нет. Поэтому -аратвом о&спеченииХн Ес.“ переходы в программна жекня- что все поочеРелн. <нхр0Нны* система Livingstone исходит из предп°л^ ереходы корректны л поддерживают достижение же кокфи’ лаемой конфигурации. В системе Burton, развивающей основные возможности LAvingst°ne’ эт0 пРе поп°жение отсутствует. В системе Burton планировщик определяет последовательность управ/мюших воздействий, производящих все желаемые переходы r^jlliams и Nayak, 1997]. NASA использует архитектуру Burton в проекте Tech Sat 21. В системе Livingstone не нужно генерировать все переходы и. соответственно, управ- ляющие команды. Требуются только наиболее вероятные переходы и оптимальная команда управления* их эФФект1!ВН0г0 вычисления задачи РО и РР необходимо переформули- ровать как задачи комбинаторной оптимизации. В такой постановке в РО поэтапно генери- руются наиболее вероятные траектории корабля. Затем в РР определяется команда наи- меньшей стоимости, которая переводит корабль из наиболее вероятной текущей коифигу- пации к конфигурации, соответствующей желаемой цели. Задачи комбинаторной оптимизации решаются с помощью алгоритма поиска до первого наилучшего соответствия (best-first)- Более формальное описание РО и РР, а также детальное описание алгоритмов поиска и планирования содержится в [Williams и Nayak. 1996,1996а]. 7.5. Резюме и дополнительная литература Экспертные системы, основанные на правилах, строятся в виде продукционных сис- тем. Вне зависимости от того, основан конечный продукт на данных или иа цели, моде- лью программы является продукционная система, генерирующая граф поиска (глава 5). В главах 14 и 15 будут представлены оболочки экспертных продукционных систем, на- писанные на языках PROLOG и LISP соответственно. Эти оболочки позволяют реализо- вать поиск на основе цели. Правила могут включать степень надежности, что обеспечи- вает возможность эвристического поиска. Представленный в этой главе материал можно дополнить рядом работ. Особенно ре- комендуем подборку оригинальных публикаций по системе MYCIN [Buchanan и Shor- tliffe, 1984], Для робастной реализации поиска на основе данных можно использовать программное обеспечение CLIPS, распространяемое NASA (Giarratano и Riley, 1989]. К важным книгам по общей инженерии знании относятся [Hayes-Roth и др-, 1984], [Waterman, 1986], [Ally и Coombs, 1984], [Johnson и Keravnou, 1985], (Hannon и др., 1988] и [Negoita, 1985]. Советуем также прочитать [Ignizio, 1991}, [Mockler и Dologtce, 1992] и [Durkin, 1994]. Поскольку экспертные системы должны обладать обширными знаниями в конкретной предметной области, важным источником знаний для них являются описания примеров из этой области. Книги из этой категории включают [Klahr и Waterman. 1986], [Kerasnou и Johnson, 1986]. (Smart и Langeland-Knudsen. 1986]. [Coombs. 1984], [Prerau, 1990]. Осо- бенно рекомендуем книгу [Durkin, 1994] из-за ее многочисленных практических предло- жений по созданию экспертных систем. Разработан ряд методов для извлечения знаний. Подробная информация по отдель- ным методологиям представлена в [McGraw н Harbison-Briggs, 1989] и {Chorafas, 1990J, а также в [Mockler и Dologite, 1992]. Рассуждения на основе примеров являются ответвлением более ранних исследовании группы Шенка (Schank) из Йельского университета по сценариям (см. подразделы 6. L3 и 6.1.4). Книга [Kolodner, 1993] является всеобъемлющим введением в эту' область знании, а предлагает ценные взгляды на разрабогеу и проектирование подобных систем. В рабо- [Leake, 1992. 1996] содержатся важные комментарии по реализации объяснении в систе- 321 Глава 7. Сильные методы решения зад 320 Часть Ц|. Представление и разум в ракурсе искусствеВН°г
, В настоящее время существует ряд коммерческих i!pom мах. основанных на примерахгехнолоп1Ю снстем. основанных на примерах. , Чк|- ных продактов, поддержки» начало „ Я8НОМ представлении логически, Рассуждения ив: ос- процессы обучения [Brown и Burto* «<• почек и областях мате» „ 1982]. Более соврсменные исследования „ [Brown и VanLehn. 198 )• I (Davis и др 1982]. в [Sl.ro.пет и Luger. 19951 рсд' ставлены в [Hamscher м (Russc|| „ Norvig. 1995] описываются гибридные^1” пе ™Те =“ которых взаимодействие множества подходов к решению „ро6лсм “ТрдаеЬ^ °П"СаНЫ НеК0Т°РЫе СТР’ТО>Р Данных „ метХоиска, предназначенные для создания планировщиков общего наз„ачснм По “ой «матико можно также порекомендовать описание ABSTRIPS или ABstract дд, ге. нератора отношений STRIPS [Sacerdottl. 1974] и системы NOAH дм нелинейного 1(ли иерархического планирования (Sacerdottl 1975 [Sacerdott 1977L Более современные планировщик., описаны в разделе 15.3 и работе [Benson и Ntlsson. 1995]. Металланирование — это метод рассуждения не только о плане, но и о процессе планиро- вания. Эго играет важную роль в разработке экспертных снстем. В качестве первоисточников можно посоветовать лзггературу по системам Meta-DENDRAL [Lindsay и др., 1980] н Teiresias [Devts, 1982]. Непрерывно взаимодействующие с окружающей средой планировщики, т.е. системы, моделирующие изменяющееся окружение, описаны в [McDermott, 1978]. Дальнейшие исследования включают оппортунистическое планирование, использующее метод классной доски, и планирование, основанное на объектно-ориентированном описании [Smoliar, 1985]. Несколько обзоров по области планирования содержатся в словарях [Ватт и Feigenbaum, 1989] [Cohen и Feigenbaum, 1982] и энциклопедии по искусственному интеллекту [Shapiro, 1987]. Вопросы нелинейного и частично упорядоченного планирования представле- ны в [Russel и Norvig, 1985]. К этой области относится и работа [Allen и др., 1990]. Наше описание и анализ рассуждений на основе моделей, а также алгоритмы планирова- ния взяты из [Williams и Nayak, 1996,1996а]. Мы благодарны авторам, а также издательству AAAI Press за разрешение описать эти исследования в своей книге. 7.6. Упражнения 1. В разделе 7.2 мы ввели набор правил для диагностики автомобиля. Определите воз- можных инженеров по знаниям, экспертов в данной предметной области и потенци- альных конечных пользователей для такого приложения. Опишите ожидания, воз- можности и потребности каждой из этих групп. то. "иРаЖНеННЮ L Создайтс нарусском языке или псевдокоде 15 правил "если-, метой областиЛ^Х'Х'тл” 7'2) п₽едставлеиня отношений в этой при- 2 р граф» представляющим взаимосвязи этих 15 правил. основе данньмнл,™ упражнен11я 2- Ка|<ой поиск вы рекомендуете использовать: в» в ши₽ину или ° глубину9 Как,,м обр 4 Выбепит» г. - опека. Обоснуйте ответы на этн вопросы. 1-3 дляэтогоприложен^ра3работки экспертной системы. Ответьте на вопрос комендуем оболочку СТ трЛг^' нспользУя коммерческую оболочку. Особенно р __________________у LLlFS IGianatano и Riley, 1989]. 222 ------------------------- -__________________________ Ь III. Представление и разум в ракурсе искусственного интелЛ0*”
19. 20. 22. 6. Оцените оболочку, которую вы использовали = ее сильные и слабые стороны? Что в " Р выполнении упражнения 5. Каковы тения вашей задачи? Для каких залам п. М°ЖН° улучшитъ? Подходит ли она для ре- каких задач предназначен этот инстоументапий? сХмбХХ"тск“^еНнХ™ щибоп™ ПРОСтаГ° ,Леет₽°™»« прибора, оннсания функциональности системы иояозо использовать npMHra'^eciw” ~ 8. Прочтите и прокомментируйте статью [Devis и др., 1982] 9. Прочтите одну из ранних статей о рассуждениях'на основе моделей, посвященную обучению детей арифметике IBrown и Burton, 1978] или электронике [Brown и VanLehn, 1980]. Прокомментируйте этот подход. 10. Постройте механизм рассуждений на примерах для произвольно выбранного приложе- ния, например, задачи выбора курсов по вычислительной технике и компьютерным нау- кам при изучении базовых университетских дисциплин „ли получении степени магистра. 11. Используйте коммерческое программное обеспечение (найдите в Internet) для построения системы рассуждений на примерах из упражнения 10. Если нет готового программного обеспечения, постройте такую систему на языках PROLOG, LISP или Java. J2. Прочтите и прокомментируйте статью (Kolodner. 1991а]. 13. Опишите остальные аксиомы границ, необходимые для четырех операторов pickup, putdown, stack и unstack, упомянутых в правилах 4-7 из раздела 7.4. 14. Используйте операторы и аксиомы границ из предыдущего упражнения для генера- ции пространства поиска, показанного на рис. 7.19. 15. Покажите, как можно использовать списки add н delete для замены аксиом гра- ниц при генерации состояния 2 на основе состояния 1 в разделе 7.4. 16. Используйте списки добавления и вычеркивания для генерации пространства поиска из рис. 7.19. 17. Спроектируйте автоматический контроллер, который мог бы использовать списки добавления и вычеркивания для генерации графа поиска, подобного представленно- му на рис. 7.19. 18. Укажите не менее двух несовместимых (по предусловиям) подцелей в операторах из мира блоков (рис. 7.19). Прочтите исследование ABSTRIPS [Sacerdottl, 1974) и объясните, как управлять ли- нейными (или несовместимыми) подцелями при планировании задач. В подразделе 7.4.3 был представлен планировщик, созданный Нильсоном и его уче- никами в Стэндфордском университете [Benson и Nillson, 1985). Адаптивное плани- рование позволяет описывать продолжительные действия, т.е. такие, которые оста ются истинными в течение определенных временных периодов. Почему системы адаптивного планирования предпочтительнее планировщиков типа о стройте адаптивный планировщик на языках PROLOG. LISP или а\а. Прочтите статьи [Williams и Nayak, 1996], [Williams и Nayak, 1996а] и обсудите сис- темы планирования на основе моделей. Расширьте схему представления в пропозициональном „счислении. “ (Williams и Nayak. 1996а. С. 973) дм описания переходов состоянии двигател установки. 323 Глава 7. Сильные методы решения задач

Рассуждения в условиях неопределенности Любая традиционная логика обычно предполагает использование точных символов. Поэтому она применима не к земной жизни, а лишь к вообра- жаемому небесному существованию. — Бертран Рассел (Bertrand Russel) Свойством разума является удовлетворенность той степенью точности, которую допускает природа субъекта, а не ожидание точности там, где возможно лишь приближение к истине. — Аристотель (Aristotle) Если законы математики опираются на реальность, они являются неопре- деленными. А коль скоро они точны, они не отражают реальность. — Альберт Эйнштейн (Albert Einstein) 8.0. Введение Процедуры вывода, описанные в частях I и II, а также большинство процедур из час- ти III основаны на модели рассуждения, используемой в исчислении предикатов; из кор- ректных предпосылок с помощью обоснованных правил вывода можно получить новые гарантированно корректные заключения. Однако, как было показано в главе 7, существу- ет много ситуаций, для которых такой подход не годится. Зачастую полезные заключе- ния должны быть получены из неудачно сформулированных и неопределенных данных с использованием несовершенных правил вывода. Извлечение полезных заключений из неполных и неточных данных с помошью несо- вершенного вывода является неразрешимой задачей, однако человек в повседневной жизни справляется с этим достаточно успешно. Мы ставим корректные медицинские ди- агнозы и рекомендуем лечение на основании неоднозначных симптомов; анализируем автомобильные проблемы; понимаем языковые выражения, часто являющиеся неполны- ми или двусмысленными; узнаем друзей по голосу или по походке и т.д.
, „„суждения В условиях неопределенности рассмоп,„ Для демонстрации пР°°ле”днРгн0СТНкн автомобиля, представленной в разделе 7.2 4 двигатель не вращается и фары не горят, проблема в аккумуляторе или проводке. „ ™.™й взгляд это правило напоминает обычное предикатное выражение, исполь. Хода Хтс поненс. Однако это не так - оно эвристнчно по природс ВоТможнГхо™ и маловероятно, что аккумулятор и проводка исправны, просто у авт(? моХ поврежден стартер к перегорели фары. Невозможность завести двигатель и от. ™е свт не обязательно означают неисправность аккумулятора нли проводки. И„- тересно, что обратное утверждение правила истинно. проблема в аккумуляторе или проводке, то двигатель не вращается и фары не горят. Если чудо не произойдет, при неисправном аккумуляторе ни освещение, ни двигатель работать не будут! Эта экспертная система обеспечивает пример абдуктивного рассуждения. Формально абдукция означает, что из P—*Q и Q можно вывести Р. Абдукция является необоснован- ным (unsound) правилом вывода, означающим, что заключение не обязательно истинно для каждой интерпретации, при которой истинны предпосылки (раздел 2.2). Хотя абдукция и является необоснованной, она часто используется при решении про- блем. “Логически корректная’’ версия правила об аккумуляторе не очень важна при ди- агностике автомобильных неисправностей, поскольку предпосылка “проблема в аккуму- ляторе” в реальной задаче является целью, а заключение — наблюдаемыми симптомами, с которыми необходимо работать. Тем не менее правило может быть использовано аб- дуктивно, подобно правилам во многих экспертных системах. Неисправности или болез- ни вызывают (имплицируют) симптомы, а не наоборот; но диагноз должен ставиться от симптомов к причинам, их вызвавшим. В системах, основанных на знаниях, с правилом часто связывается фактор уверенно- сти для измерения степени доверия его заключению. Например, правило P^Q (-9) вы- ражает следующее: “Если вы верите, что Р истинно, то О будет выполняться в 90% слу- чаев . Таким образом, эвристические правила могут выражать политику доверия. ледующая проблема рассуждений в экспертных системах — как извлечь полезные о₽пиАНИЯ И3 даннь1Х с неполной или некорректной информацией. Для отражения досто- “освеХке "Т М0ЖН° ИСП0ЛИ0вг"ь меРУ неопределенности, например, утверждение бо Меру лостове™1 На Полную м°шность (.2)" указывает, что фары горят, но очень с® В ™й “ И несовеРшеиства данных можно учесть в правилах. неопре “яе„“ХвенТ:Я "7°™° СП°С°6ов абдуктнвным выводом " В разделе 8.1 показываете ™ ™ра30м при Решении задач, основанных на знаш абдуктивных задач. В разделе8К2ЛОГИЧеСКИе формалнзмы можно развнть для ,у подходу, в том числе нет™,,, - рассматривается несколько альтернатив логине _ суждения и теория ЛемпгтА 1ИВ“ВОД на основе фактора уверенности, “нечеткие Р шения некоторых пробле № Шафера. Эти простые приемы разработаны для Разр^ пертных систем. М аиесовского подхода, всплывающих при построении эк пв!ны ХмремеХе стохастические подходы к неточному выводу. Эти приемы ос- нованы на теореме Байеса, относящейся к рассуждениям о частоте событий на основе априорной информации о них. в заключение приводятся стохастические модели, пред- ставленные с помощью байесовских сетей доверия (belief network). Р 8.1. Абдуктивный вывод, основанный на логике До сих пор в основном рассматривались логические подходы к решению задач, при которых часть знании явно используется в рассуждениях, и, как явствует из главы 7, мо- жет обеспечить объяснения для выведенных заключений. Но традиционная логика имеет и свои ограничения, особенно в условиях неполной или неопределенной информации. В этих ситуациях традиционные процедуры вывода не могут быть использованы. В раз- деле 8.1 приводится несколько расширений традиционной логики, позволяющих под- держивать абдуктивный вывод. В подразделе 8.1.1 логическим подход расширяется для описания мира изменяющейся информации и степени доверия ей. Традиционная математическая логика является монотон- ной. Она основана на множестве аксиом, принимаемых за истинные, из которых выводятся следствия. Добавление в эту систему новой информации может вызвать только увеличение множества истинных утверждений. Добавление знаний никогда не приводит к уменьшению множества истинных утверждений. Это свойство монотонности приводит к проблемам при моделировании рассуждений, основанных на доверии (belief) и предположениях. При рассуж- дении в условиях неопределенности человек делает выводы на основе текущей информации н степени уверенности в ней. Однако, в отличие от математических аксиом, мера доверия и вы- воды могут изменяться по мере накопления информации. Проблему изменяющейся степени доверия решают немонотонные рассуждения. Система немонотонных рассуждений управляет степенью неопределенности, делая наи- более обоснованные предположения в условиях неопределенной информации. Затем вы- полняется вывод на основе этих предположений, принимаемых за истинные. Позже мера доверия может измениться и потребовать перепроверки всех заключений, выведенных с ее использованием. Затем для сохранения непротиворечивости базы знаний могут быть использованы алгоритмы поддержки истинности (подраздел 8.1.2). Другие расширения логического подхода включают “минимальные модели” (подраздел 8.1 3) и метод, осно- ванный на множественном покрытии (подраздел 8.1.4). 8.1.1. Логика немонотонных рассуждений Немонотонность является важной особенностью общесмысловых рассуждений и ре- шения задач человеком. В большинстве случаев при планировании мы делаем многочис- ленные предположения. Например, выезжая на автомобиле, следует учитывать состояние дорог и транспорта. Прн нарушении одного из предположений, например, из-за аварии на обычном маршруте планы изменяются и выбирается альтернативный маршрут. Традиционные рассуждения, использующие логику предикатов, основываются на трех важных предположениях. Во-первых, выражения теории предикатов должны адек- ватно описывать соответствующую предметную область. Следовательно, в виде преди- катов должна быть представлена вся информация, необходимая для решения задачи. Во- вторых, информационная база должна быть непротиворечивой, т.е. части знании не ДОЛЖНЫ противоречить друг другу. 11. наконец, с использованием правил вывода количе- Часть III. Представление и разум в ракурсе искусственного интеЖ^” Глава 8. Рассуждения в условиях неопределенности
ет, что мы неуверены в этот вопрос МОЖНО <— п„и.,пяется монотонно. При невыполнении хотя бы пп СТЮ известной информации ув 1рад,шионный подход работать не будет. °’ го „з этих правил основани вопроса. 0 , системы ра Немонотониье с„с«м^Рвтм ° преднет„Ои области. в данном случае част0 ставки аю “ с ° (ИС не1 знаний о предикате р. Отсутствие знания означа. знания важны. Прели ности р или л,ы уверены, что р не является истинны^ На ответить несколькими способами. Система PROLOG (см. главу щ гполычет тедпоюженш о замкнутости мира и считает ложью все те утверждения, использует прей может доказать. Человек часто выбирает альтернативный подход допуская истинность утверждения, пока не будет доказано обратное. XZn подход к проблеме отсутствия знания заключается в точном определении ис тины^в человеческих отношениях применяется принцип презумпции невиновности. Ре. зультат этих ограничивающих предположении позволяет эффективно восполнить уду- шейные детали нашего знания, продолжить рассуждения и получить новые заключения, основанные на этих предположениях. Предположение о замкнутости мира и его альтер- нативы обсуждаются в подразделе 8.1.3. Основа человеческих рассуждений — знание о традиционном ходе вещей в мире. Боль- шинство птиц летает. Родители, как правило, любят и поддерживают своих детей. Выводы делаются на основе непротиворечивости рассуждения с предположениями о мире. В этом разделе обсуждаются модальные операторы, такие как is consistent with (согласуется с) и unless (если не) для реализации рассуждений, основанных иа предположениях. Второе предположение, используемое в системах, основанных на традиционной логике, заключается в том, что знание, на котором строятся рассуждения, непротиворечиво. Для че- ловеческих рассуждений это очень ограничительное предположение. В задачах диагностики часто принимается во внимание множество возможных объяснений ситуации, предполагает- ся, что некоторые из них истинны, пока не подтверждаются альтернативные предположения. При анализе авиакатастроф эксперт рассматривает ряд альтернативных причин, исключая не- которые из них по мере появления новой информации. При рассмотрении альтернативных сценариев люди используют знание о том, каков этот мир обычно. Желательно, чтобы логи- ческие системы тоже могли принимать во внимание альтернативные гипотезы. И, наконец, для использования логики необходимо решить проблему адаптации базы знаний. При этом возникают два вопроса. Первый — как добавлять в базу знания, кото- рые основываются только иа предположениях, и второй — что необходимо делать, если одно из предположений окажется некорректным. Для решения первого вопроса можно о еспечить добавление нового знания иа основе предположений. Это новое знание ап- риори может считаться корректным н, в свою очередь, использоваться для вывода ново- Этого ПОдхода необходимость отслеживать весь ход рассуждении и я °СН0Ванных на предположениях. Мы должны быть готовы к пересмотру любого знания, основанного на этих предположениях. ваются анншнп^*04™™ ИНОГда пеРесматриваются, немонотонные рассуждения назы тэты. Структупы 1..ЬМи'Т е' Н08ая инФ°рмация может свести на нет предыдущие резуль гической системы р^дставления и процедуры поиска, отслеживающие рассуждения л° тс~поддержки т., х заключения, которые пшн охРаняют непротиворечивость базы знании, отеле несколько подходов к подлип М0ГУТ бЬ1ТЬ ocnoPeHbL в подразделе 8.1.2 рассматривав, аннулируемость рассуждений в Г ИСТИННОСТИ- Рассмотрим операторы, обеспечнва системах, основанных на традиционной логике. 0ПеХР=ТИЭ^Т=пТадоН0ГО РаССУЖЛеИН’ М0ЖИ° ‘ —'° гумента Допустим имеет^ Р ПОДДержиаает вывод на основе предположения о ложности аргумента. Допустим, имеется следующее множество выражений из логики предикатов. р(Х) unless q(X) -> г(Х) p(Z), r{W}^ s{W}. Первое правило означает, что г(Х) можно вывести, если истинно р(Х), и мы не ве- рим, ЧТО истинно q(X). Если эти условия выполняются, мы выводим г(Х), а используя г(Х), можем вывести s(X). Впоследствии, если обнаружится, что q(X) истинно, г(Х) и s(X) должны быть отменены. Заметим, что оператор unless связан скорее с понятием веры, чем истинности. Впоследствии изменение значения аргумента с “вероятно, ложь либо неизвестно” на “точно либо вероятно истина” может вызвать отмену всех выводов, зависящих от этих предположений. Расширяя логику за счет рассуждений на основе предположений, которые позже могут быть отменены, мы вводим в механизм рассужде- ний элемент немонотонности. Описанная выше схема рассуждений может быть использована также для описания правил умолчания [Reiter, 1980]. Замена р(Х) unless q(X) -> г(Х) на р(Х) unless ab р(Х) —> г(Х), где ab р(Х) — это abnormal р(Х), означает, что при отсутствии аномалин, такой как птица с перебитым крылом, можно сделать вывод, что если X — птица, то X может летать. Другой модальный оператор для расширения логических систем рассматривается в [McDermott н Doyle, 1980]. Авторы усиливают логику предикатов первого порядка мо- дальным оператором М. который помещается перед предикатом и читается как “не про- тиворечит”. Введем следующие предикаты: good ^student— быть хорошим студентом, study_hard — прилежно учиться, graduates — окончить ВУЗ. Тогда предложение VX good_student(X) л М study_hard(X) -э graduates(X) может быть прочитано следующим образом: для любого X, где X — хороший студент, ес- ли факт, что X прилежно учится, не противоречит остальной информации, то X закончит ВУЗ. Конечно, основной проблемой здесь является точное определение значения “не противоречит остальной информации". Сначала заметим, что утверждение “не противоречит остальной информации ’ может оказаться неразрешимым. Причина в том, что модальный оператор формирует супер- множество для уже неразрешимой системы (см. подраздел 2.2.2), и таким образом сам будет неразрешимым. Существуют два способа преодоления неразрешимости. Пер- вый — использование метода доказательства от противного. В нашем примере можно попробовать доказать выражение not{study_hard(X)). Если не удастся доказать, что X не учится, то можно предположить, что X учится. Этот подход часто используется в PROLOG-подобиой реализации логики предикатов, К сожалению, метод доказательства от противного может слишком ограничить область интерпретации. Второй подход к проблеме непротиворечивости заключается в выполнении эврв- стического и стран именного (по времени или по памяти) поиска истинности предиката (в нашем примере - study hard(X}). Если поиск не приводит к доказательству лож- ности предиката, можно предположить, что он истинен. При этом следует понимать, что утверждение graduates и все основанные на нем заключения в дальнейшем мо- гут быть отменены. 329 Глава 8. Рассуждения в условиях неопределенности 328 I- Представление и разум в ракурсе искусственного интелое
„ противоречит”, можно получить противоречивые резу Используя оператор нер хорощим ^chtom. но любит вечеринки. Тогда ты. Предположим. Петр я» ать следующее множество предикатов. описания можно исп0 ^ graduafes(x) л М not(siudy_herd(X)) -> not(graduates(X)) good^student(peter) party_person(pater}, . n.rtv oerson - любитель вечеринок. Из этого множества выражений можно вывесТ)1 ™ ?а"ие что он окончит ВУЗ. так и заключение, что он его не окончит (если „ет 6о. Z Z информации о привычках Петра и не известно, прилежен яи он н учебе)! Одним из методов рассуждения, позволяющих избежать таких противоречивых рс. чультатов является отслеживание связывания переменных, используемых в модальном операторе “не противоречит”. Таким образом, единожды связав значение peter с предИ. катом study hard или not(study_hard), система должна предотвратить связывание это- го значения с противоположным по смыслу предикатом. Другие системы немонотонной логики [Mcdermott и Doyle, 1980] являются еще более консервативными и предотвращу ют любые заключения из таких потенциально противоречивых множеств выражений. Возможна и другая аномалия. уу very_smart(Y) л М not(study_hard{Y)) -> not(study_hard(У)) УХ not(very_smart(X)} л М not{study_hard(X)) -> not(study_hard(X)), где verysmart — очень умный. Из этих выражении можно вывести новое выражение. VZМnot(study_hard(Z)) not(study_hard(Z)). Последующие исследования семантики оператора “не противоречит” направлены на решение проблем с такими аномальными рассуждениями. Одним из дальнейших расширений является логика, обеспечивающая автоматическое образование понятии (autoepistemic logic) [Moore, 1985]. Другой немонотонной логической системой является логика умолчания (default logic), созданная Рейтером [Reiter, 1980]. Логика умолчания использует новое множество пра- вил вывода вида A(Z) л: S(Z) C(Z), которое читается так. если A(Z) доказуемо и если оно не противоречит знаниям, позво- ляющим предположить 6(Z), можно вывести C(Z). ^ГЛЯп’ логика Ум°лчания во многом подобна описанной выше иемоно- помо1Ик^ГИКе аК ДеРмотга и Дойла. Важным различием между ними является метод, с альиые пп^ш°Р°Г0 совеРшается Рассуждение. В логике умолчания используются спеди ом/теопем КажллВЬ1В°Да пРавдоподо^ного расширения исходного множества акси -иХолХ С03ДаеТСЯ пугем использования одного из правил Таким образом естеетнА аНИИ’ представленных исходным множеством аксиом/теор знаний Это можно п НИ° полУчается Ряд правдоподобных расширений исходной JTO можно продемонстрировать на следующем примере. Каждое вы У-Лага(У)) -4 nof( graduates(Y)). q расширения, основанного^0 Использовать для создания уникального правдоподобн кованною иа исходном множестве знаний. ь ИЬ Представление и разум в ракурсе искусственного интелле 330
Логика умолчания позволяет испои^пИОТ. „ суждений любую теорему, выведенную в рамках аКС"0МЬ1 яснейших рас- бы установить, какое расширение даджшГиеп^ ПравдопОД°бно1О расширения. Но, что- дачи, необходимо обеспечить ПрИ СЙШЕПМ ния ничего не говорит о выборе возможных ппаигР решении’ Логика Умолча- шяний Подпобнее эти Р МОЖНЬ1Х правдоподобных расширений из базы (ГигеикуХ^^ ТСМЫ РйССМ0ТРеНЫ В Рйб°™ [Reiter « Criscuolo, 1981] и Н~яСУЩп СТВУСТ С"ОС°б ИеМ0И0Т0ИНь1Х рассуждений на основе множественного наследования. Упомянутый выше Петр (хороший студент и любитель вечеринок) мог на- следовать лишь одно из множества свойств. Поскольку он - хороший студент, то, веро- ятно, ои окончит , о он может наследовать и другое свойство (в данном случае час- тично противоречащее первому) - быть любителем вечеринок. Следовательно, ои мо- жет и не окончить ВУЗ. Важной проблемой, с которой сталкиваются системы немонотонного рассуждения, является эффективная проверка множества заключений в свете изменяющихся предпо- ложений. Например, если для вывода s используется предикат г, то отмена г исключает также s, а равно и любое другое заключение, использующее s. Если отсутствует незави- симый вывод s, s должно быть исключено из списка корректных утверждений. Реализа- ция этого процесса в худшем случае требует пересчета всех заключений при каждом из- менении предположений. Представляемые ниже системы поддержки истинности обеспе- чивают механизм для поддержки непротиворечивости базы знаний. 8.1.2. Системы поддержки истинности Система поддержки истинности (СПИ) может использоваться для зашиты логиче- ской целостности заключений системы вывода. Как отмечалось в предыдущем разделе, всякий раз, когда изменяются предположения в базе знаний, необходимо заново прове- рить все заключения. Системы поддержки рассуждений решают эту проблему, пересмат- ривая заключения в свете новых предположений. Один из способов решения этой проблемы обеспечивает алгоритм возврата, впервые предложенный в подразделе 3.2.2. Возврат к предыдущему состоянию является системати- ческим методом для исследования всех альтернатив в точках ветвления при решении задач иа основе поиска. Однако существенным недостатком такого алгоритма поиска является способ систематического выхода из тупиков пространства состояний и просмотра послед- них вариантов переходов. Этот подход иногда называется хронологический возвратом к предыдущему состоянию. Алгоритм хронологических возвратов систематически проверяет все альтернативы в пространстве, однако способ реализации этого механизма является за- тратным по времени, неэффективным, а при очень большом пространстве бесполезным. В процессе поиска желательно отступить назад прямо в точку пространства, где воз- никла проблема, и откорректировать решение в этом состоянии. Этот подход называется возвратом с учетом зависимостей. Рассмотрим пример немонотонного рассуждения. Нам необходимо прийти к заключению р. которое мы не можем вывести прямо. Одиако существует правдоподобное предположение р, которое, будучи истинным, ^вод”т ’ Таким образом, предполагая q истинным, мы выводим р. Продолжаем расе основе истинности р выводим г и s. Двигаясь еще дальше, уже ез учета . дим истинность f ии. И, наконец, доказываем, что прежнее предположение q является ложным. Что делать в данной ситуации? 331 Глава 8. Рассуждения в условиях неопределенности
Г хпонологическнми возвратами должен проити все шаги рассу^ Алгоритм поиска с хроно зависимостей обеспечивает переход Непо ния в обратном порядке. во £ вой информации, а именно — к первому прет. ' следственно к источникудангаться впереЛ отменяя истинность р, г H s в ложению об истинности ц- а ли г и s быть выведены независимо от р и q т_ это же время можно’ лр0Вер* _ав11ЛЬН0Г0 предположения, не означает, что они не мо^ — так 'н и 6ыл" выведены 6и ”г B4Z рассуждения алгоритма возврата с учетом зависимое^ необходимо выполнить следующие действия. 1 Связать с каждым выполняемым заключением его обоснование. Это обоснован ’ описывает процесс вывода данного заключения. Обоснование должно содержать все факты, правила и предположения, используемые для получения заключения. 2. Обеспечить механизм нахождения множества ложных предположении в рамках обоснования, которое привело к противоречию. 3. Отменить ложные предположения. 4. Создать механизм, отслеживающий отмененные предположения и отменяющий все заключения, которые используют в своих обоснованиях отмененные ложные предположения. Конечно, отмененные заключения не обязательно являются ложными, так что необ- ходимо перепроверить, могут ли они быть выведены независимо от отмененных предпо- сылок. Ниже приводится два метода построения систем возврата с учетом зависимостей. В [Doyle, 1979] описана одна из первых систем поддержки истинности, названная сис- темой поддержки истинности с учетом обоснования (justification based truth maintenance system), или СПИО. Джон Дойл (Jon Doyle) был первым исследователем, который явно от- делил систему поддержки истинности, сеть предположений и их обоснования от системы рассуждений, действующей в некоторой предметной области. Результатом этого разделе- ния является то, что СПИО взаимодействует с решателем задач (возможно, системой авто- матического доказательства теорем), получая информацию о новых предположениях и обоснованиях и, в свою очередь, поставляя решателю задач информацию о предположени- ях, которые должны быть достоверными с учетом существующих обоснований. СПИО выполняет три основные операции. Первая — проверка сети обоснований. Эту проверку может инициировать решатель задач с помощью запросов вида: “Должен ли я пмТТЬ пре~— Почему я должен доверять предположению р? Какие пред- положения лежат в основе рТ'. Фопмапии паста1иМе” является модификация сети зависимостей на основе ин- предположений M°" решателем задач- Модификация подразумевает введение новых обоснование ппёяп °ЛНенИ! или У^Р^ение предпосылок, дополнение противоречий и операция выполняется™"- П°Следней операцией СПИО является адаптация сети. Эта рация адаптации пепесм^^ Р&3’ К°ГДЭ ЛРОИСХОДНТ изменение сети зависимостей. Опе- обоснованиями. Р атрнвает все предположения в соответствии с существующими модальный оп^т^р мС™дС1К0Н‘^У!.1руем ПРОС1УЮ сеть зависимостей. Рассмотрим предикатом и читается .представленный в подразделе 8.1.1. который помешается перед тается как не противоречит".например. VX goodstudent(X) л М study hard(X) _ study hardlX} vrparty_person(Y) -ч not( study hard(Y)} Y~hardW goodstudonttdavid) Поместим это множество предположений в сеть обоснований. В СПИО каждый предикат, представляющий предположение, связывается с двумя другими множествами предположений. Первое множество, помеченное на рис. 8.1 мет- кой IN, является множеством предположений, которые должны быть достоверными для рассматриваемого предположения. Второе множество OUT является множеством пред- положении, которые не должны быть истинными для рассматриваемого предположения. На рис. 8.1 представлено обоснование предиката study_hard{david]. выведенного из предоставленных выше предикатов. Обозначения на рис. 8.1 адаптированы из работы [Goodwin, 1982] и объясняются на рис. 8.2. Предпосылки обоснований помечаются в со- ответствии с рис. 8.2, а, а комбинации предположений, приводящих к заключению, обо- значаются в соответствии с рнс. 8.2, б. Рис. 8.1. Сеть обоснований утверждения о том, что Давид учится прилежно a b Рис. 8.2. Обоснование предпосылки и конъюнкция двух предположе- ний а и not(b), доказывающих с [Goodwin, 1982] Из информации, приведенной на рис. 8.1. решатель задач может заключить, что studyhard(david) истинно, так как предпосылка good_student(david) считается ис- тинной и совместимой с фактом, что хорошие студенты прилежно учатся. К тому же в этом примере нет информации о том, что Давид не учится прилежно. Добавим предпосылку partyj>erson{david). Это дополнение позволяет вывести not(study hard(david)), и предпосылка study_hard(david} больше не поддерживается. Обоснования для этой новой ситуации отражены на рис. 8.3. Обратите внимание на мет- ки IN н OUT. Как свидетельствуют рнс. 8.1 и 8.3, в СПИО предикатные отношения явно не выра- жаются через начальное множество предположений. СПИО это просто сеть, позво ляюшая рассматривать лишь отношения между атомарными пред положениями и их от рицаниями и использующая эти данные для подтверждения множество предикатных связей и схем вывода (VX, л, v, -э и то) исп ь у- с решателе задач. В системах, описанных в [MeAllester, 1978] и [ a in Р СПИО и решатель задач объединены в рамках общего представления. 333 322 -_________________ ____________________ редставление и разум в ракурсе искусственного интеллект0 Глава 8. Рассуждения в условиях неопределенности
IN Рис. 8.3. Новая разметка информации, приведен- ной на рис. 8.1, связанная с новой предпосылкой party_per$on{david} СПИО описывает лишь зависимости между предположениями, но не содержимое СПИО опись®, предположения заменяются идентификаторами, часто этих предположен™. Поэтому с о6ьекгами (у3лами) сегн. Тогда ™6о“множеВств IN и OUT позволяет СПИО рассуждать о поддержке предположений. и™ СППО работает со множествами узлов и обосновании. Узлы означают предположения, а обоснования поддерживают их. С узлами ассоциированы метки IN н OUT указывающие статус предположения для данного узла. Мы можем рассуж- дать о поддержке любого узла посредством отнесения его ко множествам IN и OUT других узлов, составляющих их обоснования. Первичными операциями алгебры СПИО являются операторы проверки, модификации и адаптации, указанные выше. И, наконец, поскольку проверка обоснования производится путем обратного про- смотра связей самой сети обоснований — это пример возврата с учетом зависимо- стей. Для получения более полной информации об этом подходе в СПИО читайте [Doyle, 1983] или [Reinfrank, 1989]. Другим типом системы поддержки истинности является система поддержки истин- ности на основе предположений (СПИП). Термин “на основе предположений" впервые был введен в работе [deKleer, 1984], хотя подобные идеи можно отыскать и в [Martins и Shapiro, 1983]. В этих системах для узлов сети не используются метки IN и OUT. Узлы скорее являются множествами предпосылок (предположений), лежащих в основе их вы- вода. е еег, 1984] также учитывается различие между узлами-предпосылками, яв- т^ |д^1МНСЯ ИСТНН1|Ь1М11 везде> и узлами, которые могут описывать предположения реша- теля задач, которые позже могут быть отменены. РУю обеспечив^ СГТипП° СЦБОшению к СПИО состоит в дополнительной гибкости, кото- Пометав поелполп ’ работая со множестяом возможных состояний предположений. неТноеС П°М0ЩЬЮ МН0ЖеСга "Р^осьглок, при которых оиТистинны, по- X Х™й ГХН"е Предп°~» (- СПИО все узлы W). а скорее ряд возмож- различных множеств ’ ПОДДерживак)щих предпосылки. Создание зультаты, получаемые ппк Ш1И ВОЗможиых миров позволяет сравнивать ре- избавляться от них, а также об* РаЗНЫ* пРедпосылок, обнаруживать противоречия и К недостаткам СПИП относятсяССПеЧИвает существование различных решений задачи, которые сами являются немонотон^0™0**100™ представления множества предпосылок, Взаимодействие между СПИПНЫМИ ” ^правлення ими с помощью решателя задач, ме СПИО. Оно основано на опепаИ решателем задач реализовано аналогично систе- ственное различие состоит в том Т°Р&Х пРовеРки, модификации и адаптации. ЕднН' ния, а есть подмножества потений4™ В иет единого состояния предположи мальные множества преЯПосмггп.пРедп<>сылок. Цель СПИП — иайти минн- _______ э Достаточные для поддержки каждого узла. Эти 334 6 И разУм в ракурсе искусственного интеллекта
вычисления производятся путем распространения н комбинирования меток, начиная с меток предпосылок. Ниже детально описывается пример из [Martins, 1992]. Предположим, что существует сеть ПСПИ, представленная на рис. 8.4. В этой сети пь пъ пд и л5 являются предпосыл- ками, которые по предположению являются истинными. Сеть зависимостей отражает тот факт, что с помощью посылок Л1 И П2 выводится п3, с помощью п3 и л^ выводится п7, с помощью Лд и П5 выводится Пб, и, наконец, с помощью л6 выводится п7. Рис. 8.4. Разметка узлов в сети зависимостей ПСПИ На рис. 8.5 представлена решетка зависимостей предпосылок (подмножество/ супермножество), показанных на рис. 8.4. Эта решетка подмножеств обеспечивает хороший способ визуализации пространства комбинаций предпосылок. Если неко- торые предпосылки вызывают подозрение, СПИП сможет определить, как они соот- носятся с другими предпосылками подмножеств. Например, узел л3 на рис. 8.4 под- держивается всеми множествами предпосылок, которые находятся выше {л(, nJ в решетке на рис. 8.5. Механизм рассуждения СПИП избавляется от противоречий путем удаления из узлов тех множеств предпосылок, которые являются несовместимыми. Предположим, напри- мер, что необходимо проверить рассуждения, представленные на рис. 8.4, в связи с про- тиворечивостью узла л3. Поскольку меткой п3является множество {nb nJ, это мно- жество предпосылок определяется как противоречивое. Когда эта противоречие об- наруживается, все множества предпосылок, относящиеся к супер множеству [nlr nJ. помечаются как противоречивые и удаляются из сети зависимостей. В этой ситуации должна быть удалена одна из возможных меток, ведущих к л7. Полное описание алго- ритма устранения противоречий можно иайти в [deKleer, 1986]. Существует несколько других важных подходов к рассуждениям с помощью СПИ. Логические системы поддержки истинности (ЛСПП) строятся на результатах работы [McAllester, 1978]. В ЛСПИ отношения между предположениями представляются с по- мощью выражений (дизъюнктов), которые можно использовать дчя вывода значении ис- тинности соответствующих предложений. Другой подход механизм рассуждений на основе множественной достоверности (МДР)- подобен механизму рассуждений СПИП за исключением того, что решатель задач и система поддержки истинности объе- динены в одну систему МДР основывается на логическом языке SWM*, описывающем состояния знаний. Каждое состояние знаний описывается парой дескрипторов: первый отражает базу знаний, а второй — набор множеств в этой базе знаний, предпосылки ко- торых являются несовместимыми. Алгоритмы проверки на несовместимость в процессе рассуждений можно найти в [Martins, 1992]. Глава 8. Рассуждения в условиях неопределенности
о Рис. 8.5. Решетка предпосылок сети, показанной на рис. 8.4. Множества в рамках со скругленными углами определяют иерархию несовместимости [Martins, 1992] 8.1.3. Логики, основанные на минимальных моделях МЫ раСШИрИЛИ логику с помощью нескольких модальных стояниях мила Это п Ь1ЛИ специально разработаны для рассуждений об обычных со- дальные опепатопы поя^^ °Слабить требования к полноте наших знаний о мире. Мо- меичивого описания мира Необходимости Создания более гибкого и из- танные для рассуждения в не» РИделе представляются логики, специально разрабо- лищь истинные положения, и ког СИТуацИЯХ: когда множество утверждений описывает ложений являются истинными н к* Прир0ды решаемой задачи множества предпо- предположение о замкнутости °ЛЬШннстве случаев. В первой ситуации используется рассуждениями намини^п^' В° В™рои ~ ограничения. Эти подходы часто на- Как указывалось в разделе 2 3 ЬНЬ? люделях (reasoning over minimum models). творяет множеству предикативу »Л<° ^«называется интерпретация, которая удовле- вует несколько определений ми», Ыражен_ий 5 ДЛЯ всех значений переменных. СуШесТ' дель как модель. для которой не 1алЬН°й додели. Автор определяет минимальную мо- выражений S при всех значениях подмоде^й, удовлетворяющих множеств Важность минимальных Z что для описания ситуаций в миле АЛЯ реализацни рассуждений определяется тем- Дикатов. Например, описания ^eCTByeT (потенциально) бесконечное число пре- ________________ итуаций в задаче о миссионерах и каннибала* 336_______________________________ _______________________________—" пение и разум в ракурсе искусственного интелле1<т3
(раздел 14.10, упражнение 7) можно использовать том числе следующие: берега реки „аходятсдосДоч^о fi46"™' ЧИСЛ° ПрСДИК“ТО“' “ течение являются несущественными фаХрами иТд Пп„ 7 ДРУ? °Т ЛРУГа' "еТСР И ^идшрами и т.д. при определении задачи мы ло- вольно экономны в своих описаниях. Мы ИСПОПк™^ , ж / димые для решения задачи предикаты. У ” лишь "«Формативные и нсобхо- Предположение о замкнутости мира основывается на минимальной модели мира. Используются только предикаты, необходимые для решения. Предположение замкнуто- сти влияет на семантику отрицания в рассуждении. Например, если мы хотим опреде- лить, является ли студент членом группы, то можем просмотреть список (базу данных) этой группы. Коль скоро студент явно не помещен в эту базу данных (минимальная мо- дель), он не является членом класса. Аналогично, если необходимо узнать, существует ли авиасообшение между двумя городами, необходимо просмотреть список всех рейсов. Если прямой рейс туда не помещен, то он не существует. Предположение о замкнутости мира сводится к следующему. Если вычислительная система не может сделать заключения об истинности р(Х), то истинно not(p(X)). Как будет показано в разделе 12.4. на предположении о замкнутости мира строится вывод в сис- теме PROLOG. В разделе 12.4 при использовании минимальных моделей неявно учитывают- ся три предположения (аксиомы). Этими аксиомами являются уникальность имен, замкну- тость мира и замкнутость предметной области. Уникальность имен означает, что все ато- мы с различными именами являются различными. Замкнутость мира приводит к тому, что экземплярами отношений являются лишь те, которые выведены из имеющихся выражений (дизъюнктов). Замкнутость предметной области означает, что атомарными предложениями в предметной области являются только те, которые принадлежат модели. Если эти три пред- положения подтверждаются, минимальная модель является полной логической спецификаци- ей. В противном случае требуется алгоритм поддержки истинности. Если для использования предположения о замкнутости мира требуется, чтобы были определены все предикаты, составляющие модель, то для алгебры ограничений [McCarthy, 1980], [Lifschitz. 1984], [McCarthy, 1986] необходимо, чтобы были определе- ны только предикаты, существенные для решения задачи. В алгебре ограничении в сис- тему добавляются аксиомы, определяющие минимальную интерпретацию на предикатах из базы знаний. Эти “метапредикаты” (предикаты над предикатами утверждений задачи) описывают способ интерпретации конкретных предикатов. Таким образом, они опреде- ляют границы (или ограничивают) возможные интерпретации предикатов. В работе [McCarthy, 1980] идея ограничения используется в задаче о миссионерах и каннибалах Для решения этой задачи необходимо разработать последовательность хо- дов (по переправе лодки через реку) для шести символов при множестве ограничений. В [McCarthy, 1980] приводится большое число абсурдных ситуации. которые вполне могли быть использованы при формулировке задачи. Некоторые из них, такие как фактор вет- ра. уже были упомянуты в этом разделе. Несмотря на то что человек рассматривает эти ситуации как абсурдные, соответствующие рассуждения не столь очевидны. Аксиомы ограничений, которые Мак-Карт., (McCarthy) предлагает добавить в описание задачи, позволяют точно ограничить множество предикатов. В качестве другой примера ограничений рассмотрим предикатное "о-орнентнрованной спецификации рассуждений на основе здравого смысла (раздел 8 J). VXbird(X) a not (abnormal(X)) -> flies(X). где bird — птица. 337 Глава 8. Рассуждения в условиях неопределенности
встретиться в рассуждениях, в которых одним из свойств птн. Это выражение может астр означаст предикат abnormal (аномальный)? То, ЧТо цы является flies (летает), но 0 илН она мертва? Спецификация предика^ птица— пингвин, у нее пер а abnormal принципиально не аксИ0М> или множество метаправил, в рамках исчис- В алгебре ограничении си исп0ЛЬЗуетСя для генерации предикатов для некото- ления предикатов первого Р обеспечивает наименьшее расширение для оП- рой предметной облас™; в является системой предположений, включаю- ределеннои формулы. 1 Р^ тной о6паст11 А(р) о предикате р, то р можно шеи знание о мире К\ СМЫСле что минимально возможное количество ато- вместе с Л(Р| и схемой о^аничеюо. используются для вывода заключении в стандарт, начислении предикатов первого порядка. Эти заключения затем добавляются в сис тему предположении В. Допустим, для мира блоков из раздела 5.4 имеется выражение isblock(A) л isblock(B) л isblock(C), утверждающее, что 4, В и С являются блоками. Ограничение предиката isblock приво- дит к утверждению \fX(isblock(X) <г- ((Х=4) v (X=B)v (Х=С))). Это выражение означает, что блоками являются только А, В и С, т.е. только те объекты, которые считаются блоками согласно предикату isblock. Подобным образом предикат isbfock(A) v isblock(B) может быть ограничен утверждением VX(isblock(X} <- ((X=A)v (Х=8))). Более подробная информация об использовании схемы аксиом для вывода результатов содержится в [McCarthy, 1980] (раздел 4). Использование ограничений для таких операторов, как abnormal, аналогично пред- положению о замкнутости мира, так как допустимы только те связывания переменных, которые может поддерживать abnormal. Алгебра ограничений, однако, позволяет рас- ширить процесс рассуждений посредством предикатного представления. Если имеется предикат p(X)vq(X), то можно ограничить либо предикат р, либо q, либо оба сразу. Та- разом, в отличие от предположения замкнутости мира, алгебра ограничений по- мет описать возможные связывания переменных через набор предикатов. Nilsson результать1 в области логики ограничений можно найти в [Genesereth и тие точечной пВаЖНЫН ре3ультат полУчен в работе [Lifschitz, 1986]. Там вводится поня- каты и их возмоТll4eHH0C™' Когда минимальная модель описывает отдельные преди- - Не ВСЮ ПРеДМеТНУЮ Об— ВаЖНЫ‘‘ РеЗУЛЬ' ствии знаний у отдельного агента ’ С°ГЛаСН° КОТОрон возможны рассуждения об отсут- 8.1.4. Множественное покрь1тие и логическая абдукция Как отмечалось во введении - ваются правила типа °И главе’ ПРН абдуктивных рассуждениях рассматр! - Р=>0. в которых g являете» обоснованным предположением. ТР«’ 338 ~ ц _____________________________________________________________—- Дставление и разум в ракурсе искусственного интеллект^
6уется найти пример истинности предиката р. Аблуктианые рассуждения не являются традиционными, их часто называют обосно«ям»**>м * ” „лпд пм-спкил кованием наилучшего объяснения данных а. В этом разделе детально рассматривается nnmipm renann .а н процесс генерации объяснении в области абдук- тивного вывода. В дополнение к уже представленным методам абдуктивных рассуждений исследователи ИИ используют также множественное покрытие и логаческий анализ. Подход к абдукции на основе яшожестоенвого покрыто» объясняет пришпие некоторого предположения л рамках некоторои поясняющей гипотезы тем, что это единственный способ обоснования необъяснимого множества фактов. Основанный на логике подход к абдукции описывает правила вывода для абдукции вместе с определением допустимых форм их использования. В рамках множественного покрытия абдуктивное объяснение определяется как покрытие предикатов, описывающих наблюдения, с помощью предикатов, описывающих гипотезы. В работе [Reggia и др., 1983] описывается покрытие, основанное на бинарном причинном от- ношении R, где R является подмножеством множества {ГипотезыхНаблюдения}. Та- ким образом, абдуктивным объяснением множества наблюдений S2 является множество гипотез S1, достаточное для объяснения S2. Оптимальным является минимальное по- крытие множества S2. Слабость этого подхода заключается в том. что он сводит объяс- нение к простому списку гипотез S1. В ситуациях, где существуют взаимосвязанные или взаимодействующие причины, или где требуется понимание структуры или последовательно- сти причинных взаимодействий, модель множественного покрытия является неадекватной. Логические подходы к абдукции основаны на более сложной модели объяснения. В работе [Levesque, 1989] абдуктивным объяснением некоторого ранее необъясненного множества наблюдений О считается минимальное множество гипотез Н, совместимых с исходными знаниями агента К. Из гипотез Н и исходных знаний К должны следовать на- блюдения О. Более формально abduce(K, О} = Н тогда и только тогда, когда а) из К не следует О, б) из H'jK следует О, в) НиК не противоречиво, г) не существует подмножества Н, обладающего свойствами 1.2 и 3. Отметим, что в общем случае для данного множества наблюдений О может сущест- вовать несколько множеств гипотез или потенциальных объяснений. Логическое определение абдуктивного объяснения обеспечивает соответствующий ме- ханизм получения объяснения в контексте системы баз знаний. Если нз поясняющих гипо- тез должны следовать наблюдения О, то для построения полного объяснения нужно рассу- ждать в обратном направлении от О- Как было показано в разделах 3.3 и 6.^, можно начать с конъюнктивных компонентов О и проводить рассуждения от заключении к антецедентам. Этот подход, основанный на построении обратной цепочки вывода, также кажется естест- венным, так как условия, поддерживающие этот обратный процесс, вероятно, можно рас- сматривать как причинные законы, играющие основную роль, каковую играют причинные знания в конструировании объяснений. Модель является удобной, поскольку она напоминает хорошо знакомые исследователям ИИ обратный вывод и вычислительные модели дедукции. Существуют также интеллектуальные способы нахождения полного множества аб- дуктивных объяснений. Системы поддержки истинности, основанные иа предположени- ях (СПИП) ([deKlcer, 1986], подраздел 7.2.3), реализуют алгоритм вычисления мини- 339 Глава 8 Рассуждения в условиях неопределенности
— множества высказываний (нс аксиом), из которых л0- мальных множеств поддержкивозможные индуктивные объяснения множе- гически следует данное предл & декарТово произведение множеств поддержки, ства наблюдений представляют^^ * удОбСТво логической абдукции, ей присущи ДВа Несмотря на простоту, ВЬ|ЧнСЛительная сложность и семантическая ела- взаимосвязанных недостатку 1990] установлено> что СЛОжность задач абдукции бость. В работе (Seta множеств поддержки СПИП. Стандартное доказа- аналогачна сложное спип является [^.сложной, основывается на существо, тельство того факта. экспонснц„альным числом решений. Авторы не рассматривают тенцитной сложности ряда задач, сводя эту проблему к нахождению меня. °°"о множества NP-сложных решений. Для заданной базы знании хорновских выраже- ш,й <ем. раздел 12.2) авторы приводят алгоритм нахождения единственного объяснения порядка О(к*п) где к - число пропозициональных переменных, а л — число вхождений литералов. Однако, если ввести ограничение на типы искомых объяснений, задача снова становится NP-сложной даже для хорновских дизъюнктов. Одним из интересных результатов работы [Selman н Levesque, 1990] является тот факт, что добавление определенных типов целей или ограничений в задачу абдукции действительно значительно усложняет вычисление. С точки зрения решения задач чело- веком эта дополнительная сложность удивляет — для человека добавление дополнитель- ных ограничений на поиск объяснений упрощает задачу. Причина усложнения задачи в логической модели абдукции заключается в том, что добавление ограничений приводит к появлению дополнительных дизъюнктов задачи, а не к модификации структуры задачи, упрощающей вывод решения. Поиск объяснения в логической модели можно описать как задачу нахождения мно- жества гипотез с определенными логическими свойствами. Эти свойства, включая со- вместимость с исходными знаниями и выводимость того, что должно быть объяснено, предназначены для накопления необходимых условий объяснений, т.е. минимальных ус- ловий, которым должны удовлетворять объясняющие гипотезы, претендующие на роль абдуктивных объяснений. Одной из простых стратегий получения качественных объяснений является определе- ние абдуктивного множества фактов, т.е. множества дизъюнктов, из которого должны выбираться гипотезы-кандидаты. Это множество дизъюнктов позволяет заранее ограни- чить поиск теми факторами, которые потенциально могут играть существенную роль в выбранной области. Другой стратегией является добавление критерия отбора для оценки ора о ъяснений. Были предложены различные стратегии отбора, включая л<мнк- Л1НОЖества‘ Согласно этой стратегии из двух согласованных множеств пред- пплетп отдается минимальному, т.е. тому, которое содержится в другом. Критерии меньшРнепомеп111 * ВЫб°РУ ЭК0Н0МНЬ1Х множеств гипотез, т.е. таких, которые содержат меньше непроверенных предположений [Levesque, 1989]. па бритвы Оккам^К1 г**00™ И Пр0СТ0ТЬ1 МОжно рассматривать как реализацию принци- приводит к усечению ппГаЛеНИЮ’ Критерий минимальности множества практически не объяснения, являющиеся П0ИСКа' Его применение лишь исключает финальные себе критерий простоты тп- рмножествами других существующих объяснений. Сам по сконструировать примени Гъ- ДаСТ сомнительные преимущества при поиске. Несложно тез, является более предпочтит^°РЫХ объяснсние- требующее большего множества гнпо- Действительно сложные ппт» ЛЬНЬ1М по сравнению с некоторым простым множеством- "Руинные механизмы, как правило, требуют большего коллче- 340 д тавдение и разум в ракурсе искусственного интелл0,ста
ства гипотез, однако абдукция таких ханизмов может быть хопоню о(зпенопимипй особенно если присутствуют оппеделенимр хорошо оооснованнои, проверенные е помощью габлюдення. К',ючевис элементы этого механизма, уже Интересными являются и два следующих механизма выбора объяснен™, принимаю- щие во внимание как свойства множества гипотез, так и свойства процедуры доказатель- ства. Первый — абдукция на основа стоимости - сводится к оценке стоимости потен- циальных гипотез и правил. Общая стоимость объяснения вычисляется как сумма общей стоимости и правил, используемых для абдукции. Затем конкурирующие множества ги- потез сравниваются по стоимости. Одной из естественных семантик, которые могут быть добавлены к этой схеме, является вероятностная семантика [Charniak и Shimony, 1990] (раздел 13.4). Чем выше стоимость гипотезы, тем ниже вероятность событий; чем выше стоимость правил, тем менее вероятны причинные механизмы. Метрики, основанные на стоимости, можно использовать в сочетании с алгоритмами поиска наименьшей стоимо- сти, такими как поиск до первого наилучшего совпадения (см. главу 4), значительно уменьшающими вычислительную сложность задачи. Второй механизм — выбор на основе когерентности — применяют в том случае, когда необходимо объяснить не простое высказывание, а множество высказываний. В работе [Ng н Mooney, 1990] доказано, что метрика когерентности лучше метрики простоты для выбора объяснений при анализе естественно-языковых текстов. Авторы определяют когерентность как свойство графа доказательства. Более когерентными считаются объяснения с большим количеством связей между парами наблюдений и меньшим числом непересекаюшихся раз- биений. Критерий когерентности основан на эвристическом предположении о том. является ли предмет объяснения единственным событием или действием с различными аспектами. Обоснование метрики когерентности в задачах понимания естественного языка строится на "принципе красноречия", который говорит о том, что речь оратора должна быть связной и предметной [Gnce, 1975], Не трудно распространить этот подход на другие апуашш. Напри- мер, в задаче диагностики все наблюдения рассматриваются в комплексе, поскольку предпо- лагается, что они являются проявлениями одной и той же неисправности. В раз дегте 8.1 мы рассмотрели расширения традиционной логики, поддерживающие рассуждения с неопределенными или недостающими данными. Ниже будут описаны не- логнческие подходы к рассуждениям в ситуациях неопределенности, в том чнеле Стэнд- фордская алгебра фактора уверенности, рассуждения с использованием нечетких мно- жеств и теории обоснования Дем пет ер а--Шафера. 8.2. Абдукция: альтернативы логическому подходу Логические подходы, описанные в разделе 8.1, являются громоздкими и вычислительно сложными, особенно при их использовании в экспертных системах. В качестве альтернативы В некоторых ранних экспертных системах (например PROSPECTOR) была сделана попытка применить для абдукгивного вывода байесовские методы (раздел 8,3). днако применимость этого подхода ограничивается предположениями о независимости. непрерывности обновле- ния статистических данных и сложностью вычислений для поддержки стохастического выво- да. Альтернативное решение было использовано в Стэндфорда для разработки ранних экс- пертных систем в том числе MYCIN [Buchanan и Shortliffe, 19с гт„ л ,вП||РП|ческих знаний человек-эксперт может дать адек- При рассуждениях на основе эвристических знании r а . пLr'Tuрм11й Июли оценивают заключение с ватные и полезные оценки достоверности заклкч 341 Глава 8. Рассуждения в условиях неопределенности
АП как “весьма вероятно”, “маловероятно”, “почти наверняка” помощью таких ^рминов к етьГ не основаны на тщательном вероятное или “возможно . Эти ве эвоистикамн, выведенными из опыта рассуждений о ном анализе. Они сами вводятся три методологии абдуктивного вывода- предметной области. Р вывода на основе фактора уверенности, нечеткие рас. ™ Демпстера-Шафера. В разделе 8.3 представлены стохастические под. ходы к описанию неопределенностей. 8.2.1. Неточный вывод на основе фактора уверенности Стэндфардскоя теория фактора уверенности основывается на ряде наблюдений. Во-первых в традиционной теории вероятностей сумма вероятностей отношения и его отрицания должна равняться единице. Однако нередки ситуации, при которых человек- эксперт, оценив вероятность (достоверность) некоторого отношения значением 0.7, по- лагает. что отношение истинно, и вовсе не учитывает, что оио может быть ложным. Еще одно предположение, подкрепляющее теорию фактора уверенности, состоит в том, что знание самих правил намного важнее, чем знание алгебры для вычисления нх достовер- ности. Мера уверенности (или доверия) — это неформальная оценка, которую человек- эксперт добавляет к заключению, например: “вероятно, это так”, “почти наверняка, это так” или “это совершенно невероятно”. Стэндфордская теория фактора уверенности вводит некоторые простые предположе- ния о мере доверия и предлагает правила для объединения свидетельств при выводе за- ключений. Первым допущением является разделение меры доверия и недоверия (“за" н “против”) для каждого отношения. Пусть МВ(Н| £) — мера уверенности в гипотезе Н прн заданном свидетельстве Е. Обозначим через MD(H\E) меру недостоверности гипотезы Н при заданном свиде- тельстве Е. Тогда: 1 > МВ{Н\Е) > 0, если MD(H\E) = Q, или 1 > MD(H\E) > 0, если МВ(Н\Е)=0. Эти две меры накладывают ограничения друг на друга, так как заданной считается часть свидетельства в пользу данной гипотезы, либо против нее. В этом состоит важное различие между алгеорой уверенности и теорией вероятности. Если связь между мерами доверия и недостоверности установлена, их можно снова объединить следующим образом. СЕ(Н\Е) = МВ(Н\Е) - MD(H\E). гипот^^ХХ^Х^ГсГ CF fcertaint* factor> к 1 усиливается доверие к что доказательств в пап 66 отРицание- Близость значения CF к 0 означает, сбалансированы. ГИП0Тезы и ПРОТИВ нее слишком мало, либо эти свидетельства ределенное значение °НН сопоставляюг с каждым правилом оп- Меры уверенности позволяют пег™ °Тражает нх УнеРенность в надежности правила, вариации меры доверия обычно Ировать производительность системы, хотя слабые роль меры доверия поХХтТ B™°T ** °бщуЮ Р^-татнвность. Эта вторая наилучшей гарантией корректности ° Т°М’ ЧТ° “знание~ сила”. Другими словами, орректности диагностики является целостность Хнх знаний. Д тавление и разум в ракурсе искусственного интеллекта
Предпосылка каждого правила состоит из пяла Л.™ кзнкции и дизъюнкции. При использовании продукпи^ СвЯ:МИНЫ11 ОПЧ»Ш«“" КО"Ь. торы доверия, связанные с каждым условием nXZ^T’" У‘,И™СЯ *"*" РУ доверия всей предпосылке следующим образом. ' И СОЧетание мс- Для предпосылок Р1 и Р2 CF(P1 and Р2) = M/W(CF(P1), CF(P2)) н CF(P1 or Р2) = MAX{CF(P\), CF(P2)). для получения фактора уверенности в заключении правила объединенный фактор уверенности в предпосылках CF. полученный с помощью приведенных выше правил умножается на CF самого правила. Рассмотрим, например, следующее правило базы знаний (Р1 and Р2) or РЗ -з Я1 (0,7) and R2 (0,3), где Pl, Р2 н РЗ предпосылки, а Я1 и Я2— заключения правила с фактором доверия CF, равным 0,7 и 0,3 соответственно. Эти числа добавляются к правилу при его разра- ботке н представляют уверенность эксперта в выводе, если все предпосылки известны с полной определенностью. Если в процессе выполнения программы для Pl, Р2 и РЗ по- лучены значения CF, равные 0,6, 0,4 и 0.2 соответственно, то в данном случае Я1 и Я2 следует учитывать с факторами доверия CF, равными 0,28 и 0,12 соответственно. Ниже приводятся вычисления для этого примера. CF(PUQ,6) and Р2(0,4)) = M!N{0,6; 0,4) = 0,4 CF({0,4) огРЗ(0,2)) = ШХ(0,4: 0,2) = 0,4 Значение CF для Я1 в описании правила равно 0,7, так что Я1 добавляется ко множе- ству конкретных знаний о дайной ситуации со значением CF= (0,7) "(0,4) = 0,28. Значение CF для Я2 в общем правиле равно 0,3, так что Я2 добавляется ко множеству знаний о данной ситуации со значением CF (0.3) * (0.4) = 0,12. Требуется определить еще одну метрику'. Как объединить несколько значений CF, ес- ли два или более правил приводят к одному и тому же результату Я? Правило для этого случая отражает аналогию алгебры достоверности с теорией вероятности. Меры доверия прн объединении независимых свидетельств перемножаются. Многократно используя это правило, можно объединять результаты любого количества правил, используемых Для определения результата Я. Если CF{Я1) представляет фактор доверия результату Я, а ранее не использованное правило приводит к результату Я (снова) со значением СЯ(Я2). то новое значение CF результата Я вычисляется следующим образом. CF(fl1) + СЯ(Я2) - (CF(fl1) * СНЯ2)). если СЯ(Я1) и CF(R2) положительны, СР(Я1) + CF( Я2) + (СЯ(Я1) * CF(F2)), если CF(F1) и CF( Я2) отрицательны и СЕ(Я1) + СЕ(Я2) 1-M/W(|CF(F1)|,|CF(F2)|) во всех остальных случаях, где |Х| — абсолютное значение X. 343 Глава 8. Рассуждения в условиях неопределенности
прмнй эти комбинационные уравнения имеют дРугие Кроме легкости вычисле значение фактора CF, вычисленное согласно этому лезные свойства. Во-первы . । н _L Во-вторых, в результате объединен^ правилу, всегда буди: лежа сокУ ются, что тоже является положительны», противоположные знач м мера CF является монотонно возрастаю- □7^а”шеТфУн™- что в какой-то мере и следовало ожидать дЛЯ обобЩеи. "‘’и^ГХ^Рен''»™ стзндфордской алгебры описывает человеческую Итак, мера у Р вероятностной меры. Как указывалось в подрдзде. <су®^^В^УаднцОиХом байесовском подходе, если А В и С влияют на D, то при рассу- адении о D необходимо выделить и скомбинировать все априорные н апостериорные ве- роятности, включая P(D). ROM), P(D\B), P(D\C)t P(A\D). Подход, основанный на ^ндфордском факторе уверенности, позволяет специалисту по знаниям описать все эти взаимосвязи одним фактором СР доверия правилу, т.е. if A and В and С then D(CF). Эта простая алгебра лучше отражает способ мышления человека-эксперта. Теория фактора уверенности может быть подвергнута критике как необоснован- ная. Несмотря на то что она определяется в рамках формальной алгебры, значение меры доверия не так строго обосновано, как в теории вероятностей. Однако теория фактора уверенности не пытается строить алгебру для "корректного” рассуждения. Она обеспечивает компромисс, позволяющий экспертной системе объединять свиде- тельства по мере решения задачи. Эти меры являются эвристическими в том смыс- ле, что уверенность эксперта в результатах является неполной, эвристической и не- формальной. В системе MYCIN факторы CF используются при эвристическом поис- ке для установки приоритетов целей и определения точки отсечения, после которой цель не должна более рассматриваться. Но, несмотря на использование факторов CF для поддержки выполнения программы и сбора информации, производительность программы определяется качеством правил. 8.2.2. Рассуждения с нечеткими множествами Традиционная формальная логика основывается на двух предположениях. Первое связано с установлением принадлежности— для любого элемента и множества, принадлежащего некоторому универсуму, элемент является либо членом множества, ли о членом дополнения множества. Второе предположение основано на законе нс- ж^ЧпИ^тре',1Ьег° *aW exc,uded middle), утверждающем, что элемент не мо- жени^няпуп?^10 принадлежать множеству и его дополнению. Оба этих предполо- точки зпения нем* В теории иечетких множеств (fuzzy set theory) Лофти Заде. С тонной логики HZZZZ70iKeCTBa И 3аК0НЬ1 РаСС^деН11Й в Рамках ТраДИ' стен являет^хоГоши^Гинс6 tZadeh’ 19831 заключастся в том, что теория вероятно- не подходит для измрпрм Трументом для измерения случайности информации, но кающая при использования\CMblCJla инФ°Рмадии- В самом деле, путаница, возни* ствием ясности (неопоелел °В И естсственного языка, связана скорее с отсут точкой для анализа языковк^Н°СТЬ^ ЧеМ С° слУчайностью. Это является критической достоверности продукционна СТРуктуР и играет важную роль для определения мерь* Р аукционных правил. Для измерения неопределенности Заде прСД* 344 Редставление и разум в ракурсе искусственного интеллекта
лагает теорию возможностей, в то время как топпио делить меру случайности. °РИЯ веР°ятностей позволяет опре- Теория Заде дает количественное выпажен ция принадлежности множеству, которая может ппиннмаГ"' ЭТ°Г° ВВ°ДИТСЯ фунК' вале между 0 и 1. Понятие нечеткого множества Z t Реальныезиачения в интеР' дуюшим образом: пусть S - множество a s _ У М0ЖеТ быТЬ описано сле' ипжество F множества S оппр ’ . элемент этого множества. Нечеткое под- множество г множества Ъ определяется (Ьунк-нирд „ •степень” принадлежности s к F. ФУ^ " принадлежности mF( s), задающей На рис. 8.6 представлен стандартен прнмер нечеткого множесгеа_ где s _ множе. сгво положительных чисел, a F— нечеткое подмножество S. называемое множеством маЯых чисел. Приведенные ниже различные числовые значения могут иметь распределе- ние “возможности определяющее их "нечеткую принадлежность” множеству малых чисел: mF(l) - 1,0, mF(2) = 1,0, mF(3) = 0,9, mF(4)= 0,8 mF{ 50) = 0,001 и т.д. Для описания принадлежности положительного числа X множеству малых чисел созда- ется распределение mF возможности для всего множества положительных чисел S. Теория нечетких множеств связана не с созданием этих распределений, а скорее с правилами вычисления комбинированных возможностей на выражениях, содержащих нечеткие переменные. Таким образом, она включает правила сочетания мер возмож- ности для выражений, содержащих нечеткие переменные. Законы изменения меры возможности для операций or, and н not над этими выражениями напоминают соот- ветствующие соотношения из стэндфордской алгебры фактора уверенности (см. под- раздел 8.2.1). Для нечеткого множества, представленного множеством малых чисел на рис. 8.6, ка- ждое число принадлежит этому множеству с соответствующей мерой достоверности. В традиционной логике “четких” множеств достоверность того, что элемент принадлежит множеству, равна либо 1, либо 0. На рис. 8.7 представлена функция принадлежности множествам понятий “низкие, средние и высокие мужчины”. Отметим, что любой эле- мент может принадлежать более чем одному множеству. Например, мужчина ростом 5'10" принадлежит как множеству средних, так и множеству высоких мужчин. низкий средний высокий 12 3.. *7 4 6’ 5' 5'6" 6' бЪ7 Рис. 8.6. Нечеткое множество, представ- Рис. 8-7. Нечеткие множества, представ- ляющее “малые целые числа “ ™*>щие низких, средних и высоких мужчин Далее приводятся правила для сочетания и передачи нечетких мер для задачи, став- шей уже классической в литературе по нечетким множествам,~ задачи ^ттравления пе- ревернутым маятником. На рис. 8.8 представлен перевернутый маятник, который нео - ходимо удерживать в вертикальном положении. Положение маятника регулируется по- средством перемещения основания системы в направлении отклонения маятника и Действием силы тяжести. Детерминированный способ решения задачи стабилизации ма- ятника в состоянии равновесия может быть описан с помощью на ^ра дифференциаль ных уравнений [Ross, 1995]. Преимущество нечеткого подхода к управлению маятнико- вой системой состою в том, можно описать алгоритм эффективного упрощения сис- темой в реальном времени. Этот алгоритм управления приводится нижи 345 Глава 8. Рассуждения в условиях неопределенности
VnnncTHM задачу стабилизации маятника, рассматривая ее в двухмерном простран^ Упростим задачу качествс входных значении контроллера используются Лп ее. Как показано на рис. 8А в —маятника „ ° Дае Х^““сЧкоторой движется маятник. Обе эти величины положительны в лравом квадранте и отрицательны в левом. Оба эти значения подаются на вход нечеткого ко„. Херя игеР“"в ₽аб0ТЬ1 СИСТеМЫ' Г°Д0М К01р0ЛЛера Являютс” “жилица Направление перемещения основания системы. Команды по перемещению с укЩа11Ием его направления Обеспечивают сохранение равновесия маятника. miiiiiiiiiiiiiiiiiiiiiii Рис. 8.8. Перевернутый маят- ник и входные значения 0 и dQ/dt Для объяснения работы нечеткого контроллера опишем процесс решения задачи на основе нечетких множеств. Данные, описывающие состояние маятника (6 и d&/dt), ин- терпретируются как нечеткие меры (рис. 8.9), которые используются во множестве не- четких правил. Этот шаг может быть очень эффективно реализован за счет использова- ния нечеткой ассоциативной матрицы (НАМ) (fuzzy associative matrix), показанной на рис. 8.12. В НАМ отношения вход-выход кодируются напрямую. Правила не объединя- ются, как при традиционном решении задач на основе правил. Все применимые правила активизируются, а затем их результаты объединяются. Общий результат обычно задается областью пространства нечетких выходных параметров (рис. 8.10), который затем под- вергается дефаззификации для получения “четкого” управляющего воздействия. Заме- тим, что и входные, и выходные значения контроллера являются “четкими” значениями. и представляют точные показания некоторого .монитора на входах ц точные команды управления на выходе. четких облаХТ™116 °бласти ВХ0ДНЬ1Х значений, 0 и dO/dt. В этом примере для ряда Ве- неция правил и пол°ДНЫХ ЗНачений ситУаЦИя упрощена, но показан полный цикл приме- ло +2 радиан) разд^Тя ДИ£ШаЗОН ВХ0дНЫХ значений 9 (от -2 окрестность нуля Z (Zero) и 6 °^асть отрицательных чисел N (Negative), рис. 8.9, б представлен ™ * полож^^х чисел Р (Positive) (рис. 8.9. □)- На до +5 градусов в секунду) втопог*0™’ КОТОрЫе Р^бивается диапазон изменения (от-5 На рис 8.10 пре7твленью ВХ°ДН°Г° ЗНаЧеНИЯ N’ Р и Z' ное NB (Negative Biel отп,,,, 1ОДМножества выходных значений: большое отрицатель- (Positive) и большое полоокшт^нн^Р^,/Negatlvc^ нУ^евое Z (Zero), положительное шения изменяются в диапазоне от-24 Pos*tlve Bi8)- Величина и направление переме- Ча"Ь "L ПрвАстав"вние и разум в ракурсе искусстввиного интеппв^ 346
Область рассуждения Рис. 8.9. Нечеткие области для входных значений 0 (а) и dQ/dJ (б) Рис. 8.10. Нечеткие области изменения выходного значения, отражающие перемещение основания маятника Предположим, сначала контроллеру передаются значения 9-1 и dS/df=-4. На рис. 8.11 иллюстрируется процесс фаззификации этих входных значений. Каждое вход- ное значение можно отнести к двум нечетким множествам. Для 0 мера принадлежности области нуля и области положительных чисел составляет 0,5. Значение dQ/dt принадле- жит области N с мерой 0.8 и Z с мерой 0,2. На рис. 8.12 представлена упрощенная форма нечеткой ассоциативной матрицы для этой задачи. Входные значения для 0 или xt зада- ны в первом столбце, а для dQ/dt или х> — в верхней строке матрицы. Выходные значе- ния представлены в правом нижнем квадранте матрицы НАМ размером эхо. Например, Глава 8. Рассуждения в условиях неопределенности 347
если значение в равно Р, a d!i/dt - N. НАМ возвращает значение Z. После этого ходимо выполнить дефаззификацию выхода. с°б- -2-10 1 -! x,(OJ = 1 Рис. 8.11. Фаззификация входных значений х} = Р Z N р РВ р z 2 Р Z N N Z N NB Рис. 8.12. .... _^укитивная матрица (НАМ) для задачи стабилиза- ции перевернутого маятника. Входные значения указаны в левом столбце и верхней строке Нечеткая ассоциативная В данном случае по объе^°ГО прос1Ранства, необходимо* ппи ЗНачеиия отн°сятся к двум нечетким областям ре лГХ0””6 ПравИЛ нсчетких систем^*1* ЧСТЪ1рс пРав1™а. Как отмечалось выше, (истопии°Ра уверенности. Фактически *ЫПОЛНЯСГТСЯ аналогично стэидфордской алгеб- Ес™“} "РеДМЖШ’ ™ IBUChan“" " Shonliffe, 1984] впервые правадаберетсМаДЛеЖН0СТи ДВУ* предпосыл^8™ Щ1гсбРы нечетких рассуждении в качестве мет* МИН,,Мум э™х мер Если мр * СВЯЗаны конъюнкцией, в качестве меры Р ’,фавила берется максим^”??’ Двух "Р^осылок связаны дизъюнкцией’ ____________ «кеимум из этих мер. 348 Часть ------------------------------------------------------- Разум в ракурсе искусственного интеллекта
в нашем примере все пары связаны конъюнкцией берется минимум их мер: так что в качестве меры правила IF х, = Р and хг - Z THEN и = р m/n(0,5; 0,2) = 0,2 Р IF х, ' Р and хг = W THEN и - Z пнп(0,5; 0,8)=0,5Z IF х, = Z and хг = Z THEN и = Z m/n(0,5; 0,2)=0,2Z IFx, = Z and x2= N THEN и = N min{0,5; 0,8)=0,5W Затем полученные результаты объединяются (выполняется дефаззиф икания). В нашем примере объединяются две области, показанные на рис. 8.10, полученные в результате акти- визации этого множества правил. Существует ряд методов дефаззификации [Ross, 1995] Вы- берем один из наиболее известных — метод центра тяжести. При использовании этого ме- тода окончательным выходным значением контроллера, применяемым к маятнику, является значение центра тяжести объединения областей выходных значений. На рис. 8.13 представле- ны и само объединение и центр тяжести объединения областей. Этот выход или результат применяется к системе, снова измеряются значения q и dq/dt, и цикл управления повторяется. Ми б Рис 8Н Нечеткие консеквенты (а) « « объединения Центр тяжести объединения (-2) является четны выходам При описании систем нечетких рассуждений мы не рассматрн^ включая колебания в процессе сходимости и выбор оптимальных с не- четкие системы предоставляют инженерам мощный инструментарий дня борьбы с не точностью измерений, особенно в области управления. 349 Глава 8. Рассуждения в условиях неопределенности
8 2 3 теория доказательства Демистера-Шафера „urn,™ методы, которые рассматривают отдельные выскаэк, До сих пор °™ достоверности. Одним из ограничений вероятностны, „ числовые сцен являегея то цто они нспользуЮТ единственную колич ходов к второй может оказаться очень сложной задачей. Это сИза „ую меру. ВЫЧ.ЮД 0бмд1О1ен1И при отсутствии должного обосио "°с XшХоь" Наследованием оп-аничений эвристических правил и о^аииче^ и“ываеМЫЙ теОР'“1й °6°с>‘°е°’"1я «ыпстера-Шаф оассмзХает множества предположений и ставит в соответствие каждому и3 Н11х Е^ ’ X интервал доверия (правдоподобия/ которому должна принадлежать „4,, уверенности В каждом предположении. Мера доверия обозначается Ье/ и изменяется НУЛЯ что указывает на отсутствие свидетельств в пользу множества предположений д0 единицы, означающей определенность. Мера правдоподобия предположения р _ р/(р) определяется следующим образом: р/(р) = 1 - Ье/(лоГ(р)). Таким образом, правдоподобие также изменяется от нуля до единицы н вычисляется на основе меры доверия предположению not(p). Если not(p) вполне обоснованно, то ЬеЦпоЦр)}= 1, ар/(р) равно 0. Единственно возможным значением для bel{p) тад^ является нуль. Предположим, что существуют две конкурирующие гипотезы Ъ, и h2. При отсутствии информации, поддерживающей эти гипотезы, мера доверия и правдоподобия каждой из них принадлежат отрезку [0; 1]. По мере накопления информации эти интервалы будут уменьшаться, а доверие гипотезам— увеличиваться. Согласно байесовскому подходу (при отсутствии свидетельств) априорные вероятности распределяются поровну между двумя гипотезами: P(h,) = 0,5. Подход Демпстера-Шафера также подразумевает это. С дру- гой стороны, байесовский подход может привести к такой же вероятностной мере независимо от количества имеющихся данных. Таким образом, подход Демпстера-Шафера может быть очень полезен, когда необходимо принимать решение на основе накопленных данных. Итак, подход Демпстера-Шафера решает проблему измерения достоверности, делая коренное различие между отсутствием уверенности н незнанием. В теории вероятностей мы вынуждены выражать степень нашего знания о гипотезе h единственным числом P(h). Проблема такого подхода, по мнению Демпстера-Шафера, заключается в том, что мы просто не всегда можем знать значения вероятностей, и поэтому не любой выбор P(h) может быть обоснован. Функция доверия Демпстера-Шафера удовлетворяет аксиомам, которые слабее акси- ом теории вероятности, н сводится к теории вероятности, если все вероятности известны. Функции доверия позволяют использовать имеющиеся знания для ограничения вероят- ностей событий при отсутствии точных значений вероятностей. еория Демпстера-Шафера основана на двух идеях. Первая — получение степени и rta ИЯ ДЛЯ даннол задачи из субъективных свидетельств о связанных с ней проблемах, ,я.. раЯ ислользование правила объединения свидетельств, если они основаны на не РОМ °т!ПраВИЛ0 объединения первоначально было предложено Демпсте стера-ШаЛе V представляется неформальный пример рассуждения Дем конец применён» (Г*1 Опнсывается правило Де мп стера объединения свидетельств и. 1 конец, применение этого правила к более жизненной ситуации. 350 Часть III. Представление и разум в ракурсе искусственного интеллект
Рассмотрим субъективные вероятности ппа лиссы. Вероятность того, что ей можно веоитьВДИВОСТИ свидетсльств моей подруги Мс- зя, — 0,1. Предположим, Мелисса говорит что' СС51авляет а того, что верить нель- нис истинно, если Мелиссе можно верить но он К°”ПЬ1ОТер сломался. Это утверждс- нельзя. Таким образом, утверждение Мелиссы чт -ЯЗаТельно ложно- если ей верить вается с достоверностью 0,9, а то что он ис ° М°И К0МГ1ЬКУТеР сломался, обосновы- ность 0,0 не означает уверенности в том что"™!™' достовеРносгью °'0 Достовср- бы вероятность 0.0. Это просто означает' что утверждение" V"0"™’' ’Т° °,иачаяа рить, что мой компьютер не сломался. Мера правлотплнН М, “ “= дает "Ри™“ »=’ Р р вдоподобия pl в этой ситуации равна р/(комльютер_сломался) = 1 - Ьв((пот()!омг,ьЮгвр_сломаяся))=1 _ 0,0. или 1.0, и моя мера доверия Мелиссе есть [0,9; 1,0]. Заметим, что еще нет основания считать, что мои компьютер не сломался. основания Далее рассмотрим правило Демпстера для объединения свидетельств. Допустим, мой друг Билл также говорит, что мои компьютер сломался. Предположим, вероятность того что Биллу можно верить, составляет 0.8. а что верить нельзя - 0.2. Я также должен предположить, что утверждения Билла и Мелиссы о моем компьютере независимы друг от друга, т.е. они вызваны разными причинами. Событие “Билл заслуживает доверия" также должно быть независимо от события, определяющего степень доверия Мелиссе. Вероятность правдивости и Билла и Мелиссы равна произведению их вероятностей — 0,72; вероятность неправдивое™ обоих —0,02. Вероятность того, что верить можно по крайней мере одному из них — 1-0,02 = 0,98. Поскольку оба они говорят, что мой ком- пьютер сломался, и вероятность того, что по крайней мере один из них заслуживает до- верия, равна 0,98, можно установить степень достоверности события поломки компью- тера [0,98; 1,0]. Предположим, Билл и Мелисса расходятся в том, что мои компьютер сломался: Ме- лисса утверждает, что он сломался, а Билл говорит, что нет. В этом случае они оба одно- временно не могут говорить правду и не могут оба вызывать доверие. Либо обоим им нельзя верить, либо нельзя верить одному из них. Априорная вероятность того, что мож- но верить лишь Мелиссе, составляет 0,9*(1 - 0,8) = 0,18, а того, что верить можно только Биллу, — 0,8*( 1 - 0,9) = 0,08, а того, что ни одному из них верить нельзя. — 0,2*0,1 = 0,02. Имея вероятность того, что по крайней мере одному из друзей верить нельзя, (0,18 + 0,08 + 0,02) = 0,28, можно вычислить апостериорную вероятность того, что верить можно лишь Мелиссе, и мой компьютер сломан — 0,18/0,28 = 0.643; или апостериорную вероятность того, что прав лишь Билл, и мой компьютер исправен 0,08/0.28 — О._86. При этом было использовано правило Демпстера для объединения свидетельств. Посте заявления Мелиссы и Бидла о том, что компьютер сломан, мы рассмотрели три гипотети чсские ситуации, связанные с поломкой: Биллу' и Мелиссе можно верить. Биллу можно ве рить, а Мелиссе нет; Мелиссе можно верить, а Биллу нет. Доверие результату анализа воз- можных гипотетических сценариев составила 0,98. При втором использовании правкза тт л..ЛЯИп.«"к Снова были проанализированы все возможные сие- Демпстера свидетельства расходились, снова оьгш р. г Тэ- нарии. Исключалась единственная ситуация, саязанная с тем. что не Ме- ким образом, либо Мелиссе можно верить, а Биллу нет; ли можжэ ’составила лиссе; либо нельзя верить никому из них. Суммарная 0,64. Достоверность того, что пХ'омка)) - 0.714. мера до- Поскольку правдоподобие поломки состашэжи верия принадлежит интервалу [0,28; 0,714]. 351 Г лава 8. Рассуждения в условиях неопределенности
й1ТПО Лемпстера, можно получить меру доверия ДЛя Одной Используя правило Двероятности для другой (Является ли свиДет2 (Еь.я ли компьютер -ня необходимо предположить. что надежным?). Для ятн0СТИ независимы, но эта независимость лишь апп11 ’ которых М8“П'Ь'а вдзН11к.ает конфликт между различными атомами обосно^"**- Ока исчезает, ко д демпстера-Шафера в каждой ситуации приводит Г ИСП°ЛЬ связаниь.1' проблем. Во-первых, мы разделяем неопрсде,1ен„ость шеиию двух свя ямы<. части. во-вторых, применяем правило Дем,,^ Эти две задачи взаимосвязаны: предположим опять-таки, что Билл „ Мелисса „ „ Гт от друга сказали, что они были уверены в том, что мой Компьютер ’’ м"н"прелположим также, что я вызвал мастера для проверки компьютера, и чго „ ' Гб. лл и Мелисса) были свидетелями этого. Из-за этого общего события мы „ можем больше сравнивать степени доверия. Однако, явно учить,вая возможно^ поиглашения мастера, можно получить три независимых атомарных обоснования; правдивость Мелиссы, правдивость Билла и основание для присутствия мастера, Ко’ торые можно затем объединить с помощью правила Демпстера. Предположим, существует исчерпывающее множество взаимоисключающих гипотез Обозначим его через О. Наша цель — приписать некоторую меру доверия m различным подмножествам Z множества Q; m иногда называют вероятностной функцией чувств* тельности (probability density function) подмножества О. Реально свидетельства под- держивают не все элементы О. В основном поддерживаются различные подмноже- ства Z множества О. Более того, поскольку элементы Q предполагаются взаимоис- ключающими, доказательство в пользу одного из них может оказывать влияние на доверие другим элементам. В чисто байесовской системе (раздел 8.3) обе эти ситуа- ции разрешаются за счет рассмотрения всех комбинаций условных вероятностей, В системе Демпстера-Шафера эти взаимодействия учитываются напрямую путем не- посредственного манипулирования множествами гипотез. Величина mn(Z) означает степень доверия, связанную с подмножеством гипотез Z, а п представляет число источни- ков свидетельств. Правило Демпстера имеет вид mn (Z) - Например, мерой доверия mn(Z) гипотезе Z для п=3 источников свидетельств счита- ется сумма произведений гипотетических мер доверия т^Х) и т2( У), совместное вхож- дение которых поддерживает Z, т.е. Xn Y=Z. Как видно из примера, знаменатель правила емпстера допускает пустое пересечение X и У, а сумма мер доверия должна быть нор- мализована. оассмятпиНИМ ПРа®ИЛ0 Демпстера к задаче медицинской диагностики. Предположим, v него ..Г"" °?асгь СОлсР'жащад четыре гипотезы: пациент был без сознания • РМЯ со мнМ11ГТ|ень 111111 менингит (М). Наша задача — связать меры дР* гипотез, поскольХ'11 ГНП°Те3 В ₽амках О. Как отмечалось выше, это именно мноЖ^ , пользу {С F М\ п °НИ ннчем не обоснованы. Например, лихорадка свидетельству подтверждени ’ П ТЛЬКу Элементы Q трактуются как взаимоисключающие гиП01\. лоеь. поХдХХГ’” МИЯ1Ь “ Достоверность других. Как уже ботки множества гипотез РазРШ1^ст взаимодействие посредством прям0 ХХГХХаХГмГпГ°ИТе“ П "0ДМ"<>жеСТв Z множества О значение m(q.) представляет меру доверия, которая назначается каждому о из Q При- чем сумма всех т( <?,) равна 1. Если Q содеожит п к^ому q, из ц. при п -ТТЛ очрнк мипгп '-одержит п элементов, то существует 2Л подмно- жеств Q — это очень много. Проблема упоошаетгя та г-,™. ж -г- , у^нищастся за счет того, что многие из подмно- жеств недопустимы. Таким образом, существует „г, z- г ущьсгвует некоторое упрощение, и невозможные значения могут быть проигнорированы. И. наконец, правдоподобие О есть р|(О)-1- xm(q.). где q, множество гипотез, имеющих некоторую вероятность поддержки. При отсутствии информации о некоторых гипотезах, что чаше всего бывает в начале процсс- са диагностики, pl( Q) = 1,0. Предположим, первая часть свидетельства — у пациента лихорадка. Она поддержи- вает (C,FtM} с вероятностью 0,6. Назовем это первой мерой доверия т,. Если это всего лишь гипотеза, то /Л|{С,Г,Л4}-0,6, где m^Q)=0,4 для оставшегося распределения мер доверия. Важно отметить, что mY( О) = 0,4 представляет оставшуюся часть распределения достоверности, т.е. все другие возможные меры доверия О. а не достоверность дополне- ния {C,F,A4}. Предположим теперь, что мы получили некоторые новые данные для постановки ди- агноза. К примеру, у пациента сильная рвота, которая свидетельствует о со сте- пенью доверия 0,7. Назовем меру доверия этому свидетельству ш2. Для нее мы имеем m2{C,F,H}=0,7 и m2{Q}=0,3. Используем правило Демпстера для объединения этих двух свидетельств /л, и т2- Пусть X — набор подмножеств Q, на котором mt принимает нену- левые значения, и У — набор подмножеств О, на котором т2 принимает ненулевые зна- чения. Затем по правилу Демпстера определим объединенную меру доверия т3 иа под- множествах Z множества О. При его применении к диагнозам прежде всего отметим, что не существует пустых множеств Хп У, так что знаменатель равен 1. Распределение вероятностей т3 приведено в табл. 8.1. Таблица 8.1. Использование правила Демпстера объединения свидетельств т2 m3 m}'{C,F.M}=0,6 m2{C,F,H}=0,7 m3{C,F}=0,42 m,{ О}=0.4 m3{C,F,H}=0,7 m3{C,F,H}=0^8 nj|{C,F,A4}=0,6 m2{Q}=0,3 тз{С.ЕМ}=0,18 mi{Q}=0,4 m2{0}=0,3 m3{Q }=0,12 Четыре множества Z, представляющие все возможные способы пересечения X и Y со- гласно правилу Демпстера, составляют крайний справа столбец табл. 8.1. Степень дове- рия вычисляется перемножением мер достоверности элементов Хи У, ддя которых зада- ны щ j ц гп2. Отметим, что в этом примере каждое множество в Z уникально, что ие явля- ется частым случаем. Расширим пример, чтобы показать, как в процессе анализа факторизуются пустые множества достоверности. Предположим, получен новый факт, отражающий результаты лабораторного анализа, который связан с менингитом. Теперь т4{М}- 0.8 н т4(О}- 0.~. Чтобы объединить результаты предыдущего анализа т3 с т4 для получения т5. можно использовать формулу Демпстера (табл. 8.2). ___________________________________________________________________ . . .— Часть III. Представление и разум в ракурсе искусственного ин Глава 8. Рассуждения в условиях неопределенности 353 352
испо^нивпр^ипв Денпат'Р* Для объединения т,с т<с Таблица S.2. ” цепьюполу^^ "'а Л1-1 m5 '— - m s {1 =0,336 тз{СЛ=0.4- ni4{/W 1=0.8 ^5{М }=0,096 т-,{О1=0,12 m4{O}=0,2 m5{C, F}=0,084 mjIC/H-42 m5{ 01=0,024 т!{О}=03" m4{/W 1=0.8 m5( 1=0,224 т,|С.Р.И|=0.28 т4(М 1=0-8 m5{M}=0,144 m-,{C,F,/W}=0,18 m4{Q}=0-2 m5{ C.F,Н)=0,05б m;{C,F,H)=0,28 тАС f,M)=0,18 m4{Q]=0-2 m,{ С. F.M} .^0,03(5 Сразу отметим, множеств, поэтому ния нескольких пар тель уравнения Деь значения функции д что np{M} получается в результате пересечения двух различных пав общая вероятность т3{М} = 0,240. Кроме того, в результате пересече множеств получается пустое множество {}. Таким образом, знамена, гпетера равен 1 - (0,336 + 0,224) 1 0,56 = 0,44. Окончательные оверия яц будут иметь вид ms{M} =0,545 ms{C,F,H} = 0,127 ms{C.F} = 0,191 m5{C,F,M} = 0,082 m5{ 1 = 0,56 m5{Q) = 0,055 Во-первых, высокая достоверность пустого множества т5 { } - 0,56 означает сущест- вование конфликта свидетельств на множестве мер доверия т7. Данный пример позволя- ет показать несколько особенностей рассуждения Демпстера-Шафера, поэтому в нем ав- тор пожертвовал медицинской согласованностью. Во-вторых, при существовании боль- ших множеств гипотез, а также сложного множества свидетельств вычисление мер доверия может оказаться громоздким, хотя, как уже отмечалось, количество рассужде- ний все же значительно меньше, чем при использовании байесовского подхода. И по- следнее, подход Демпстера-Шафера является очень полезным инструментом, когда бо- лее строгие байесовские рассуждения себя не оправдывают. Подход Демпстера-Шафера является примером алгебры, поддерживающей в рассуж- дении субъективные вероятности, в противоположность объективным вероятностям Бай- еса. В субъективной теории вероятностей мы строим алгебру рассуждений, часто ослаб- ляя некоторые ограничения Байеса. Иногда субъективные вероятности лучше отражу рассуждения эксперта-человека. В последнем разделе главы 8 будут рассмотрены совские рассуждения, включая использование сетей доверия. 8.3. Стохастический подход к описанию неопределенности__________________________________ В рамках теории вероятностей можно определить (зачастую априори) шаНС^ г1путз Хотя1 С° ЫТН”' Можно также описать, как комбинации событий влияют ДРУГ ми начялЛеДНИе дОстижения в области теории вероятностей были получены ма комбинатпп8^10^СТолетия’ включая Фишера, Неймана н Пирсона. поПЬ1ТЬ дод» Мир™ иХтота |О1УХОДИТ корнямн через средние века к грекам, [Glymour и др., 1995а]. Теория вероятностей стро 354 7 ;--------------------------------— асть представление и разум в ракурсе искусственно ложении о том, что, зная частоту наступлен следующих комбинаций событий. Наппимр СОбытии’ можно рассуждать о частоте ло- терее или в игре в покер. можно вычислить шансы на выигрыш в ло- Сушествует ряд ситуаций, ппн котппм» средством. Во-первых, эта теория пшпГишм р“т,°стныи анализ является подходящим „ым. как при игре хорошо пеХХн“"“ „„„ крупье. В картах, например, следующая гапгГияХ" л“ 6сспристрастном поадс' уже вытянутых карт. Во-вторых этот попхпп Я Функциеи от ™па К0Л°Ды и мира. Хотя события в мире могут не бытесо»™"”'"*'” ”Р“ °писании ""ормаяьного" =- тия часто Неизвестно совершенно случайными, для предсказания события часто неизвестны причины и их взаимосвязь. Статистические корреляции явля- юте^юлезнои заменойгдги причинно-следственного анализа, хотя в работах (Glymonr и Cooper, 1999], [Pearl. .000] делается попытка связать понятая вероятности и причинно, ста. Дальнейшее использование вероятностей позволяет выявить возможные исключе- ния в общих взаимосвязях. Статистический подход группирует все исключения, а затем использует эту меру для описания исключения общего вида. Другая важная роль стата- стики это основа для индукции и обучения (например, алгоритм ID3 из раздела 9.3). При решении задач, основанных на знаниях (глава?), часто приходится проводить рассуждения с ограниченными знаниями и неполной информацией. Многие исследова- тельские группы направляли свои усилия иа изучение различных форм вероятностных рассуждений. В этом разделе сначала описывается полный байесовский анализ, а затем ограниченная форма байесовского вывода, называемая се/пячи доверия. 8.3.1. Байесовские рассуждения Байесовские рассуждения основаны на формальной теории вероятностей и интенсив- но используются в некоторых современных областях исследований, включая распозна- вание образов и классификацию. Теория Байеса обеспечивает вычисление сложных ве- роятностей на основе случайной выборки событий. Например, в рамках простых вероят- ностных вычислении можно определить, как карты могут распределяться среди игроков. Предположим, я — один из четырех игроков в карточной игре, в которой все карты рас- пределены равномерно. Если у меня нет пиковой дамы, я могу заключить, что вероят- ность ее нахождения у каждого из остальных игроков равна 1/3. Аналогично можно за- ключить, что вероятность нахождения у каждого из игроков червового туза также со- ставляет 1/3, и что любой игрок имеет обе карты с вероятностью 1/3*1/3 или 1/9, предположив, что события получения двух карт являются независимыми. В математической теории вероятностен отдельные вероятности вычисляются либо аналитически комбинаторными методами, либо эмпирически. Если известно, что А и В независимы, вероятность их комбинации вычисляется по следующему правилу. вероятность(А&В) = вероятность^} * вероятность(В) ОПРЕДЕЛЕНИЕ АПРИОРНАЯ ВЕРОЯТНОСТЬ Априорная вероятность (prior probability), часто называемая безусловной вероятно стью (unconditional probability) события, - это вероятность, присвоенная событию при отсутствии знания, поддерживающего его наступление. Следовательно, это веро ятность события, предшествующего какой-либо основе. Априорная вероятность со бытия обозначается Р{событие}. Глава 8. Рассуждения в условиях неопределенности
ппсТЕРИОРНАЯ ВЕРОЯТНОСТЬ (роя^ lJI"tahll"y)' часга называемая г,.,,,,,,,,,. Лкстирт'чрх® f^Xbaty) собьпня.- 310 веР°я1НОС1ь со6ьпия "PH HeKownT0’’"»- с™”^-~^"^п1,°Р"аЯ BCpo,mOCIb о6о’начаСТСЯ р< собыгив I осиоеаХ^* Н0М отпадения двойки или тройки при бросании игпаг11., - Априорная ожноСТей. деленная на обшее число возможных аль,™" та- ’го с>мма .„„ярость болезнн отдельного человека равна числу людей’ т.е. 2/6. Априорная Р Л(Одей1 находящихся под наблюдением, заболеванием, детеннзаболеванИя d у человека с симптомом з равна- Апостериорная верила p(d|s) = I dr>s | / I s I. ,™.мые скобки обозначают тело элементов множества. В правой части это ХХ£ано число люден, имеющих как заболевание d. так и симптом а. делеН1,^ SX» с симптомом а. Расширим это уравнение С ЗПщ p(d|s) = P(d n s) / Pls) и получим эквивалентное соотношение для P(s| d) и P(d п s): P(s|d) = P(dns)/P(d), p|dm) = P(s(d) * P(d). Подстановка этого результата в соотношение P(d| s) дает теорему Байеса (для одной болезни и одного симптома): P(d[s) = ( P(s|d) * p(d))/P(s). Важной особенностью теоремы Байеса является то, что числа в правой части уравнения получить легче, чем значение в его левой части. Например, вследствие меньшей популяции намного легче определить число больных менингитом, имеющих головные боли, чем процент больных менингитом in общего чиста страдающих головной болью. Более важной особенно- стью теоремы Байеса является то. что дая простого случая одной болезни и одного симптома в вычислениях участвует не очень много чисел. Трудности начинаются, когда мы рассматри- ваем комплексные заболевания d„ нз области заболеваний D и комплексные симптомы s, из множества возможных симптомов S. Прн рассмотрении каждой болезни из D и каждого симптома из S отдельно необходимо собрать н интегрировать лэхп измерений. (В дейст- вительности тхл апостериорных вероятностей плюс (лэ+п) априорных вероятностей ) К сожалению, анализ при этом становится намного сложнее. До сих пор мы рассматрива- ли симптомы отдельно. В действительности отдельные симптомы встречаются редко. Напри- мер. когда врач осматривает пациента, он должен учитывать много различных комбинации симптомов. Эту ситуацию описывает форма правила Байеса с комплексными симптомами. зг &...& sj _ (p(d)*p(s,& s2&...& sjd)) / P(s,& s„). пений*)?^6<П1Ш_ОДНОГО заболевания с одним симптомом необходимо лишь i d) так и ПеРЫ СИМПТОМ08 s( и s; и болезни d необходимо знать как приблизительно n2 Fr S С0Держит п симптомов, число таких пар будет n*(n'Lbl. числить около (т 2 ЛИ МЫ захотим воспользоваться правилом Байеса, то прид ятностек болезней/игш^^^ Вероя™°™0 + вероятностей симптомов) + ской системе с 200 чабпп РНТЬ т*П +п +т единиц информации. В - еваниями и 2000 симптомами это значение превышает 8000000°° Однако есть некоторая надежна итл . т.е. P(s,|s;)=P(St). Независимость означат чтГ*6 Э™Х П&Р буДут нсзависимы- дицине большинство симптомов не снятя ’ вероятность st не зависит от sr В ме- десять процентов сХомоГ 80000000 отношений. ’ нео6ходИмо рассматривать около Во многих задачах диагностики ... ей. когда симптом у пациента отсут^^Х 'К’° ° отРииате1ьной ннформаци- случаях необходимо, чтобы У (например, низкое давление крови». В обоих Pinot s) = 1 - P(s) и p(not d|s)= 1 - p(d[s). Наконец, следует отметить, что Р( s I d\ и pm i с i ю, ни сто । OJ и S) — это не одно и то же, и в любой ситуации эти величины будут иметь отоичиыр , 7 } ь различные значения. Эти отношения и попытка из- бежать циклических рассуждений являются важными при разработке байесовских сетей доверия (подраздел 8.3.2). Далее будет представлен один из наиболее важных результатов теории вероятно- стей теорема Байеса в общей форме. Она обеспечивает способ вычисления вероятно- сти гипотезы Н„ следующей из отдельного основания, если даны лишь вероятности ос- нования, следующего из реальных причин (гипотез). ру-1 [ £) = PlElfy}* Р(Н') XP{E\Hk)'P(Hk) где Р( Ht [ Е) — вероятность истинности Н, при заданном основании £; Р(Н,) — вероятность истинности Ht вообше; Р(Е| — вероятность наблюдения основания, если истинно Н,; п — число возможных гипотез. Предположим, необходимо определить вероятность обнаружения меди на основе пробы грунта. Для этого нужно знать наперед вероятность обнаружения каждого из множества минералов и вероятность определенного грунта при обнаружении каждого отдельного минерала. Тогда можно использовать теорему Байеса лля определения веро- ятности присутствия меди на основе пробы грунта Этот подход используется в системе PROSPECTOR, созданной в Стэндфордском уннверс1ггете и применяемой для геолого- разведки (медн, молибдена и др ). Система PROSPECTOR позволила обнаружить ком- мерчески значимые залежи минералов в нескольких местах [Duda и др., 1979а]. Для использования теоремы Байеса существует два главных требования. Первое заключа- ется в том, что должны быть известны вероятности взаимосвязи основания с различными ги- потезами, а также вероятности взаимосвязи различных частей основания. Второе, и иногда более трудное в определении, требование заключается в том. что должны быть вычислены все взаимосвязи между основанием и гипотезами или Р(Е| НЛ). Вообще и особенно в таких об- ластях, как медицина, предположение независимости не может быть априори обоснованным. Последняя проблема, затрудняющая использование сложных байесовских систем, за- ключается в переопределении таблицы вероятностей при выявлении новых взаимосвязей между гипотезами и обоснованиями. В таких активных исследовательских областях, как медицина, новые открытия осуществляются непрерывно. Для корректности заключении байесовских рассуждений требуется (постоянное) вычисление полных вероятностей, включая объединенные вероятности. Во многих о&шстях такой обширный сбор данных и 356 Г лава 8. Рассуждения в условиях неопределенности 357 СТЬ in. Представление и разум в ракурсе искусственного ин
и возможны, го стоят очень дорого. Там. где эти „ ие возможны, а если я » обеспечивает математически хорошо обоо». ЮР’“^ХподаюГС». байесово кии » "ольш11Нстао областей экспертных систем нс ваки« упрааае""' "“"ред“™ п^лжиь. опираться иа эвристический подход. Бол« vloXnS^ 3™ е очень МОШНВ.С компьютеры ие могут использовать байздв. ” за сложное". задач даже очей „„„ врсмев„. в завершение этого раЗДэд «смете®.да»У“ешн°™' изволвюии.й показать, как полный байесовский подход даивсдем небольшой щ»«Р. «” юаимосвя,ей гипотеза-основание. Lho использовать для о6иль „„ скоростной трассе и осознаете, что е№п. Предположи*. вы ведете ав б ьш0Г0 скопления транспорта. Вы пытаетесь на(1ти венно снижаете скорость из-за Может, это связано с ремонтом дороги? Бы- возможное объяснение сн"*с” 1 е объяснения. Через несколько минут вы про. ла авария? Возможно, в оранжевых комбинезонах, расположившихся езжаете мимо группы дорожи . aeTC< чт0 наилучшим объяснением является ре- посреди дороги. В этот момен аварМИ отбрасывается. Аналогично, если бы монт дороги. И альтернатив авТ0ИНСпекции или скорой помощи, наилуч- вы увидели впереди ‘ мигалку транспортная авария, позволяющая отбросить ШИМ объяснением этой crtTg^1 qt П1П0Тезь1 ВОвсе не означает, что она вообще невоз- версию о ремонте дороги, т она имеет намного меньшую вероятность, можнв. Скорее • «“ байесовская интерпретация этой ситуации Ремонт дорви, На рис. 8.14 средств , а„„ „ замедленным движением. Аналогично пи. ; движением. Далее согласно рис. 8.14 строит- рия связывается с ли. пягПпс деление для отношения ремонт дороги и замед- переменные мотут принимать ж- .“чи/nta (Д. Вероятностью распределения для этого случая показаны я. Z 8 И Ошетем. что если район». имеет значение Г, замедленное движение He«№ . при значении 1 - возможно. Отметим также, что вероятность того, что дорога сконструирована как скоростнав С = true, равна 0,5. а вероятность замедленного пере- движения Т = true равна 0,4 (это относится к штату Нью-Мексико). Авария Ремонт ©Оранжевые комбинезоны Рис. 8.14. Байесовское представление транспорт- ной проблемы с возможными объяснениями Замедленное движение Мигалка л ^определение объединенной вероятности Ж переменных из рис. 8.14 Далее рассматривается вероятность ремонта дороги при условии замедленного дви- жения ог ~Ч 0. Используя упрощенное правило Байеса, получим Р(С| Т) = P(C=t,T=t)/(P(C=t,T=t) + P(C=f,T=t)) =0,3/(0,3+0,1)=0,75. Так что теперь вероятность ремонта дороги при замедленном движении возрастает с 0,5 до 0,75. Аналогично эта вероятность возрастет еще больше при наличии комбинезо- нов, позволяющих напрочь отбросить гипотезу аварии. Кроме необходимости знать значение любого из параметров в каждом состоянии, следует учитывать вопросы сложности. Рассмотрим вычисление объединенной вероят- ности для всех параметров, показанных на рис. 8.14 (используя топологическую сорти- ровку переменных). Р(С,Д,0,Т,С)=Р(С)*Р(А|СГР(В|С,АГР(Т|С,А,0)*Р(Б|С,А,В,Т). Это, конечно, общая декомпозиция вероятностных мер, которая всегда истинна. Стоимость генерации таблицы объединенной вероятности экспоненциально возрастает с ростом числа параметров. В данном случае требуется таблица размером 25, или 32. Мы рассматриваем игрушечную проблему лишь с пятью параметрами. Для более интересной ситуации, скажем, с тридцатью или более параметрами потребуется таблица объединен- ной вероятности с биллионом элементов. Байесовские сети доверия позволяют решить вопросы представления и сложности вычислений. 8.3.2. Байесовские сети доверия Несмотря на то, что байесовская теория вероятностей обеспечивает математическую основу для рассуждений в условиях неопределенности, сложность, возникающая при ее применении к реальным предметным областям, может оказаться недопустимой. К сча- стью, мы можем уменьшить эту сложность, сфокусировав поиск на меньшем множестве наиболее адекватных событии и свидетельств. Подход, называемый байесовскими сетя- ми доверия (Bayesian belief network) [Pearl, 1988], предлагает вычислительную модель рассуждения с наилучшнм объяснением множества данных в контексте ожидаемых при- чинных связей в предметной области. Байесовские сети доверия ослабляют многие ограничения полной байесовской моде- ли и показывают, как данные из предметной области (илн даже отсутствующие данные!) позволяют разделять и фокусировать рассуждения. Наблюдения показывают, что мо- дульность предметной области часто позволяет ослабить многие ограничения завнеимо- сти/независимости, требуемые для правила Байеса. В большинстве ситуаций не надо строить большую таблицу объединенной вероятности, содержащую вероятности всех возможных комбинаций событий н свидетельств. Человек-эксперт выбирает локальные явления, которые заведомо связаны друг с другом, и получает вероятности или меры влияния, которые отражают лишь эти кластеры событий. Эксперты предполагают, что остальные события или условно независимы, или их корреляции настолько малы, что ими можно пренебречь. Рассмотрим снова пример транспортной задачи, показанный на рис. 8.14. Если пред- положить, что параметры зависят только от вероятностей их родителей, т.е. допустить, что при наличии знания о родителях узлы являются независимыми от других предшест- венников, то вычисление Р(С,А,В, T,L) выполняется следующим образом. P(C,A,0,T,L) = Р(С)*Р{А)*Р(0| С) ‘Р(Т| С А)" Pit |А) 358 II. Представление и разум в ракурсе искусственного интелле*15 Глава 8 Рассуждения в условиях неопределенности
^птпаать сделанное нами упрощение, рассмотрим вер0Я1. Чтобы лучше проиллюстрнри ненИЯ в п0Следнем уравнении мы ослабили ее д0 ность Р(В1 С. А) ИЗ пРедьщ^еГ° ^одожениг!. что авария не влияет на ремонт ДОрОГ(1 Р(В\С). Это основывается на р щц^ет замедлеНное движение, но ремонт и Аналогично на “оранжевые ко. * Г| с д В} Наконец, P(L | С,А. В. Т) ослабь авария учитываются в Р{ I о. 1е для Р(С,А, 0, T,L) теперь имеет всего 20 ется до Р(L|А)! оде к более жизненной проблеме, скажем, с 30 перемен, параметров (а нс 3 М I макс„мум двух родителей, в распределении будет не ными, где каждое состо состоян11е имеет трех родителей, в распределении бу- элементов - значительно меньше, чем биллион, требуемый м пол. "° НеХХХие^ зависимость узла сети доверил от родительских узлов. Связи межХ ^ами сети доверия представляют условные вероятности причинного влияния. В эксперта, использующего „ричинно-следственныи вывод, неявно нредпола- гается что эти влияния являются направленными, т.е. реализация некоторого события вызывает другие события в сети. Кроме того, рассуждение причинного влияния не явля- ется цикличным, а раз так, воздействие не может вернуться назад, чтобы вызвать себя. По этим причинам байесовские сети доверия могут быть естественным образом пред- ставлены в виде ациклического направленного графа (АНГ) (подраздел 3.1.1), где логи- чески последовательные рассуждения отображаются как пути, проходящие через дуги причина-симптом. В транспортном примере мы имеем даже более устойчивую ситуацию — здесь нет ненаправленных циклов. Это позволяет очень просто вычислять вероятностное распре- деление в каждом узле. Распределение узлов, не имеющих родителей, находится непо- средственно. Значения узлов-наследников вычисляются на основе вероятностного рас- пределения каждого из родителей путем соответствующих вычислений по таблицам ус- ловных вероятностей. Это возможно потому, что мы не заботимся о корреляциях между родителями любого узла (поскольку сеть задается как ациклический направленный граф). Это обеспечивает естественное абдуктивное отделение, при котором авария со- всем не коррелирует с наличием “оранжевых комбинезонов” (см. рис. 8.14). Далее рассмотрим предположение, неявно используемое в рассуждениях многих экс- пертов: присутствие или отсутствие данных об области может разделять н фокусировать поиск объяснений. Этот факт имеет важные комплексные последствия для пространства поиска. Приведем несколько примеров и концепцию d-отделения (d-separation), поддер- живающую эти интуитивные рассуждения. Сначала рассмотрим задачу диагностики наличия масла в автомобиле: предположим, старые поршневые кольца вызывают чрезмерное потребление масла, что, в свою оче- ред , приводит к низкому уровню масла. Эта ситуация отображается на рис. 8.16, а, где вень'магп^ р°^ШНСБЫе кольца- v - чрезмерное потребление масла и В — низкий уро- отношенир мр?СГ<) НС 3HM ° чРезмеРН0М потреблении масла, мы получаем причинное ли провепка пока CTaj>bIMH 1ЮР11!Невыми кольцами и низким уровнем масла. Однако, ес- характеризующая чрезмерное потребление кольца „ низкий уровень масла. не низкий уровеиь^^еэ^₽Ые ПОрщневые кольца могут вызвать как синий выхлоп, «к “ кольца,си„Хш™,‘X™П0КИа"а Иа ₽- 8-«6.6. где IZ- старые поршне^ изкии уровень масла. Не зная, какое значение им L 360 Часть III. Представление и разум в ракурсе искусственного интелле^0
переменная В - true или false, — мы нс знаем хлоп) и В (низкий уровень масла) коррелирован ТСЯ ли временные А (синий ви- ной И (старые поршневые кольца) означает о-™ ^НЫМи; наличие информации о перемен- ’ ТИ переменные нс коррелированы. Рис. 8.16. Последовательная связь узлов (а), в кото- рых влияние распространяется от А к В до тех пор, пока существует V; расходящаяся связь (6), где ин- формация распространяется к наследникам V до тех нор. пока определено значение У, сходящаяся связь (в): если ничего не известно о V, то его родители незави- симы, в противном случае между родителями суще- ствует корреляция И, наконец, если низкий уровень масла вызван либо чрезмерным его потреблением, либо утечкой, то при наличии данных о низком уровне масла эти две возможные причи- ны являются коррелированными. Более того, если переменная V (низкий уровень масла) истинна (рис. 8.16, в), то утечка масла объясняет его чрезмерное потребление. Если же состояние переменной V (низкий уровень масла) неизвестно, то эти две возможные при- чины являются независимыми. В любом случае информация о низком уровне масла яв- ляется ключевым элементом в процессе рассуждения. Эта ситуация изображена на рис. 8.15, в, где переменная А означает чрезмерное потребление масла, В — утечку и I/ — низкий уровень масла. Уточним эти интуитивные представления, определив ^-отделение узлов в сети дове- рия [Perl, 1988]. ОПРЕДЕЛЕНИЕ ^-ОТДЕЛЕНИЕ Два узла А и В в ациклическом направленном графе являются d-отделенными. если все пути между ними блокированы. Путь — это любая непрерывная последователь- ность связей на графе (связывающая узлы в любом направлении, например, на рис. 8.17,6— путь от А к 0). Путь является блокированным, если существует проме- жуточный узел V, обладающий одним нз следующих свойств. связь является последовательной или расходящейся, и состояние I/ известно. связь является сходящейся, и ни V, ни любой из наследников К не имеют обосно- вания. Глава 8. Рассуждения в условиях неопределенности 361
рпы последовательных, расходящихся и сходящихся отнОЦ1е Дополнительные примеры р Из рнсуика видно, как rf.o . ний между узлами приводятся на р ие влияет на построение' ссмотреНие графов на Рис. 8.16, покажем, как предП0П0. Перед тем как зако н ошают вычисления условных вероятностей. По За женил бш/есоваюн сстн Д р определение вероятностей может рассматриваться ТпР«еЛние°условных вероятностей. На рис. 8.16, а условная вероятность для Пугн 0“ X “н ОГ Ло а «-„сляек, следующим образом PIAKS) = W) * Ж'ИЛ) ’ Я<В1Л,И- исоользуом предположение бзйесолсной сети доверия, что условная вероятность пс. пемевно^ заХиннх значениях вероятностен всех се предшественников равна услов. “ ° сети при заданных значениях лишь для родителей. В результате в приведен. "° выше уравнении ₽(В|АИ заменяется на Р(В| И. поскольку V является прямым ро- итохем В а А - нет. Объединенные вероятностные распределения для трех сетей, показанных нарнс. 8.16, вычисляются следующим образом. a)P(A,V,B) = Р(А) * * Р(В|И, б) PtV.A.B} = P(V) * P(A\V} ' Р(б|И, в)Р(АВ,У) = Р(Х») ‘ Р{В) * P(V\A,B). Как показывает транспортный пример (см. рис. 8.14), в более масштабных байесов- ских сетях доверия многие переменные условных вероятностей могут быть исключены. Это делает сети доверия значительно более простыми в реализации, чем полный байе- совский анализ. В следующем примере (Pearl, 19881 рассматривается более сложная байесовская сеть. Как показано на рис. 8.17, переменная season (сезон) определяет вероятность rain (идет дождь), а также вероятность water (вода поступает из поливной системы). Переменная Wet sidewalk (мокрый тротуар) будет коррелировать с дождем или водой из поливной системы, Наконец, тротуар будет slick (блестящим) в зависимости от того, мокрый он или нет. На ри- сунке показаны вероятностные отношения для этой ситуации. Отметим также, что в отличие от транспортного примера в данном графе имеется ненаправленный цикл. Теперь зададим вопрос, как может быть описана вероятность мокрого тротуара P(IVS). Это не может быть сделано так, как было описано выше, т.е. Р( IV) = Р( IV| S) * P(S) или P(R) = P(R|S) * P(S). Обе причины LVS являются взаимно независимыми, например: если время года — это лето, то можно использовать как Р( IV), так и Р( R) • Та- ким образом, должны быть вычислены полные корреляции двух переменных, а также их корреляция с S. В данной ситуации это возможно, но сложность таких вычислений экс- поненциально зависит от числа возможных причин I/VS. Результаты вычислений пред- ставлены на рис. 8.18. Здесь вычисляется один элементх при истинных значениях R и № s <врсм" года>может П!”""'мать значен1“ - pt с - ь Р АЛЯ всех условий S, season * COW) P№=t\S = clodrP(W=t\S = cold} рис. 8.18. При этом щыучи °Жк° ВЫЧИСЛ11ТЬ остальные значения таблицы, показанной на темы. Такой “макроэлемент” п ЪедИненную вероятностъ дождя и воды из поливной uic кр емент представляет р( и/s) = Р(И/S | R. W) * Р(Я,IV). Эта задача 362 редставление и разум в ракурсе искусственного интеллекТ
решена в рамках приемлемых объемов г. ем вычислений экспоненциально увеличивается с P(H|S) P(Si Мокрый тротуар P(WS|H,W) P(S£|WS) Вода (поливная система) Pfiv S) iv Рис. 8. i 1. Пример байесовской сети доверия, вероятностные зависимости указаны рядом с ждым узлом, Этот пример взят из [Pearl 1988] S Время года SL J Блестящий тротуар т^Ч^еНИЙ’ Н0 пРоблема состоит в том, что объ- ростом числа родителей состояния. S=tiot S=cold где Рис. 8.18. Распределение вероятностей ка- для P(WS) как функция от P(W) и Р(Р) при заданном влиянии S. Вычисляется влияние х при R=) и IV= t Назовем этот макроэлемент объединенной переменной для вычисления P(IVS). Те- перь введем понятие клики, чтобы заменить ограничения АНГ из рис. 8.17 ацикличе- ским деревом клик, которое показано на рис. 8.19. Прямоугольники означают пере- менные, выше н ниже которых находятся клики. Размер таблицы, описывающей пере- дачу параметров через следующую клику, экспоненциально зависит от числа этих параметров. Необходимо отметить, что в клике должна быть представлена связанная переменная вместе с ее родителями. Таким образом, при построении сети доверия (процесс инженерии знаний) необходимо задумываться о количестве родителей каж- дого состояния. Как показано на рис. 8.19, б, клики могут пересекаться и передавать информацию через полное дерево клик, называемое объединенным деревом. Предста- вим алгоритм создания объединенного дерева на основе сети доверия. Этот алгоритм разработан в [Lauritzen н Spiegelhalter, 1988]. 1. Для всех узлов сети доверия сделать все направленные связи ненаправленными. 2. Для каждого узла начертить связи между всеми его родителями (штриховая линия между узлами R и IV на рис. 8.19, б). 3. Просмотреть каждый цикл в результирующем графе длины >3 и добавить допол- нительные связи, ослабляющие этот цикл до дерева. Этот процесс называется три- ангуляцией и не является необходимым для примера, показанного на рис. 8.19, б. 4. Сформировать объединенное дерево из результирующих триангулярных структур. Это делается с помощью выявления максимальных клик (клик, являющихся пол- ными подграфами, а не подграфами больших клик). Переменные в этих кликах объединяются, и создается результирующее объединенное дерево. В нем соединя- ются любые два объединения, содержащих по крайней мере одну общую перемен- ную, как показано на рис. 8.19, а. Процесс триангуляции, описанный в п. 3, является критическим, так как при распро- странении информации результирующее объединенное дерево должно иметь минималь- ную вычислительную стоимость. К сожалению, это решение является NP-сложным. Но. к счастью, для получения результата часто достаточно применить несложный щрани- ~ — ' ~ __ 4R3 Глава 8. Рассуждения в условиях неопределенности
. таблиц, необходимых для обработки объСдя. Отметим, что размер 2*2*2.2*2*2 и 2*2 соответственно. Доказанного на рве. 8.19.« ценный алгоритм, немного дерева. 6 R, W R, W, WS WS tVS. St S.R.W Рис. 8.19 Объединенное дерево (а) для байесов- ской вероятностной сети (б). Отметим, что мы начали конструировать таблицу переходов для прямоугольника, содержащего R, И/ И, наконец, рассмотрим пример сети на рис. 8.17 и вернемся к вопросу d-отделения. Напомним, что при наличии некоторой информации d-отделение позволяет проигнори- ровать при вычислении вероятностных распределений часть сети доверия. 1. SL d-отделимо от Я, S, IV, если известно И/S. 2. d-отделение является симметричным, т.е. S также d-отдслпмо (и не является объ- яснением St) при знании И/S. 3. Я и И/ являются зависимыми вследствие S, но значения S, R я И/ являются d- от деленными. 4. Если известно значение И/S, то Я и И/ не являются d-отделимыми, если же значе- ние WS нс известно — являются. 5. При заданной цепочке R—>WS—>SL, если известно И/S, то R и SL являются d- отделимыми. Мы должны быть осторожны, если известна информация о наследниках некоторого остояния. апример, если известно SL, то R и И/ не являются d-отделимыми, поскольку SL коррелирует с IVS, a IVS. Я и W ие являются d-отлелнмыми. века о “ К°ММе™Р- байесовские сети доверия отражают рассуждения чело- Посколы™ пасгХг>1аСТЯХ’ ГДС неК010РЬ1С Фаеторы известны н априори связаны с другими, дующий поиск отаи реализуется “Р” постепенной конкретизации информации, после- фекгивность поиска Р”УЛЬтаТС оказь>1,ается более эффективным. Эта эф- нием точного закона Байеса) о Прсдставлснием (поддерживаемым примене- ний рост статистических отношений и Д°баВЛение инФ<>Рмации вызывает экспоненциал- Существует ряд алготтилв расширение результирующей области поиска, мации при получении нового ПОСТРОСН,,Я сетей доверия и распространения инфор' М на .АВТО₽ рекомендует подход, основа- дерева клик, предложенный в пабп^п^*1* В ^Реаг|’ 1988К а также метод триангу^11 ” в работе [Laurintzen и Spiegelhalter, 1988]. В работе [Druzdel и Нелпоп, 1993] также представлены алгоритмы, позволяющие вычислить распростране- ние влияния в сети. В работе [Dechter, 1996] в основу унифицированной системы вероят- ностного вывода положен алгоритм сегментного исключения. Однако при использовании сетей доверия остается много ограничений как с точки зре- ния инженерии знаний, так и с точки зрения вычислительной сложности [Xiang и др., 1993], [Laskey и Mahoney, 1997]. Эти ограничения мотивированы разнообразием исследований в иерархических и компонуемых байесовских моделях (Koller и Pfeffer, 1997,1998], (Pfeffer и др, 1999], [Xiang и др.,2000]. Эти новые формализмы моделирования поддерживают де- композицию модели подобно объектно-ориентированному проектированию программного обеспечения. Дальнейшие расширения до полных стохастических моделей Тьюринга мож- но найти в [Koller и Pfeffer, 1997], [Pless и др., 2000]. В работе [Pearl, 2000] используются стохастические методы поддержания философской идеи причинности. Стохастические методы играют важную роль в области искусственного интеллекта, например, в решении задач с вероятностными агентами (Kosoresow, 1993]. Со стохасти- ческими методами мы снова встретимся при рассмотрении проблем обучения (раздел 9.7) и задач понимания естественного языка (глава 13). 8.4. Резюме и дополнительная литература С самого начала исследований в области искусственною интеллекта существовал круг ученых, хорошо чувствовавших логику и предлагавших ее расширения достаточ- ные для представления интеллекта. Для описания рассуждений в условиях неопределен- ности были Предложены важные альтернативы исчислению предикатов первого порядка. 1. Многозначные логики расширили лотку путем добавления к стандартным зна- чениям true и false таких новых значений истинности, как unknown. Это может обеспечить механизм для отделения ложных утверждений от утверждений, истин- ность которых просто неизвестна. 2. Модальные логики добавляют операторы, которые позволяют решать проблемы, связанные со знаниями, их достоверностью, необходимостью и возможностью. В данной главе обсуждались модальные операторы unless и consistent with. 3. Временные логики дают возможность квантифицировать выражения относитель- но логики, указывая, например, что выражение всегда истинно или будет истинно в определенное время в будущем. 4. Логики более высокого порядка. Многие категории знаний включают понятая более высокого порядка, в которых под знаком квантора могут находиться не только переменные, но и предикаты. Действительно для работы с этими знаниями нужны логики более высокого порядка или достаточно логики первого порядка? Если они нужны, как их описать наилучшим образом? 5. Логические формулировки определений, прототипов и исключений. Исклю- чения часто рассматриваются как необходимая особенность системы определений. Однако неосторожное использование исключении подрывает семантику представ- ления. Другим вопросом является различие между определением и прототипом или описанием типичных представителей. Какова разница между свойствами класса и типичного представителя? Как должны быть представлены прототипы? Когда про- тотип является более адекватным представлением, чем определение. Глава 8. Рассуждения в условиях неопрвдел 365 364 Часть 111. Представление и разум в ракурсе искусственного интелл
пподолж^ оставаться важной областью исадСЛп Предашда^ х"0^ "97“ (WeytouA 1980J. [М«,ге. 1982), ITumer. 1984) J (McCarthy, I968!’[Нау ’ 1 Жжения в области систем рассуждении с поддев И“шест»у№“»^"СВ“*Х™^ »“ мг№’ СПИ <ЛСПИ> ЮЛ0ЖС"Ы 8 Ра6«' к„й иикиноя» <СП1« °"“шсн11Я между предиоложе.и.ям.1 представляются IMcAII«ler. 1978). В ЛСПИ °™ «яды вывода знзчен.ш истинности 1по6щ * нктамн. которые могут быть Л1еХаша* рассуждении на основе Мноз1Сес^ “Хложекик. ДР>-\ХХдХг- механпчму рдесуждений СПИП ЮсЮеег. 1ЯМ] венной достоверности (МДП по [Marlins и shapiro> igS3]. МДР 0СН0ВЫвается (т Аналогичные идеи могут быть•состояния знаний. Алгоритмы для проверки не- логическом языке SWM , опись ‘ суждсння приводятся в (Martins, 1991]. Бо. противоречивости базы знании узлов СОДСржится в [Doyle, 1983] лсе полная информация п рассматривать любую теорему, выВеден. ; [Reinfrank, 1989). Логика умоп ‘ акСИомы для дальнейших рассуждений. Эти во- \ ную в расширении систем“'J Ь Criscuolo. 1981] и [Touretzky, 1986]. f пр осы рассматриваются в [пс аргужлений логики достоверности и поддержки истинно- 1 В области немонотонных р суи1ёствует обширная литература [Doyle, 1979], । сти. кроме оригинальных ста 1980]. Стохастические модели описаны в [Reiter, 1985], [deKleer, J. многочисленных докладах последних (Pearl. 1988), (Stafa .. ‘"^^мендует также энциклопедию пскусственнпта конференции AAAI U 06щ, матер„ал собран в книгах (Josephson и Josephson, Moore. 1985). Работа |РеаЧ 2000] вносит свой вклад в понимание при- чннно-слсдстаенных отаошенщг впичре.минимизации логической модели мож- мам собрана в книге [Ginsburg, 1987]. В качестве литературы по нечетким системам мы бы рекомендовали оригинальную статью [Zadeh, 1983]. Более современные реализации этого подхода можно найти в рабо- тах [Yager и Zadeh, 1994] и [Ross, 1995]. Задача перевернутого маятника, представленная в подразделе 8.2.2, взята из [Ross, 1995]. Алгоритмы реализации байесовских сетей доверия на основе передачи сообщений изложены в fPearl, 1988], а метод триангуляции клик (раздел 8.3) изложен в [Lauritzen и piege a ter, 1988]. Этот алгоритм обсуждается в [Shapiro, 1992]. Введение в байесов- йтнпДе™ ДОВерня содсРжится в [van der Gaag, 1996], а обсуждение качественных веро- ятностных сетей приводится в [Druzdel ,1996). ной обпа^11е»КИе Представления и алгоритмы продолжают оставаться очень актуаяь- Seco™ 1ХЬпе И Др- 1993'- Caskey - Mahoney. 1997]. Ограничения МММ байесовским °бУСЛОвили исследования по иерархическим и компонуе- др., 2000). Дальнейшее^ “ Pfeffer’ 19971 199811 [Pfeffer И ДР ’199911 [Xia"g '* можно найти В [Pless И дрРа2000]еНИе Э™Х РезУльтатов до полных моделей Тьюринг сть ill. Представление и разум в ракурсе искусственного интелл 366
8,5. Упражнения 1, Укажите три прикладные области в кото ----------------- неопределенности. Выберите одну из ЭтЛЫ^С°бХ?Д,,МЫ рассУжден,1я в условиях вывода, отражающих рассуждения в ней ластей и разработайте шесть правил 2. Даны следующие правила, применяемые в ™ ве “обратной цепочки". спертной системе, работающей на осно- А л not(B) => С(0,9)С v D => 5(0 75) 5гоЛ(0,6) G => 0(0,8) Система может вывести следующие rhai™. сдующие факты (с заданной достоверностью) Е(0,9) S(-0,8) G(0.7) Используйте стэндфордскую алгебру фактора уверенности для достоверности. определения Е и его 3. Рассмотрите простое MYCIN-подобное правило: if А л (В v С) => D(0,9) л Е(О,75) Обсудите вопросы, возникающие при работе с такими неопределенностями в кон- тексте байесовского подхода. Как это правило можно использовать в рассуждениях Демпстера-Шафера? 4. Приведите новый пример диагностических рассуждений и используйте уравнение Демпстера—Шафера из подраздела 8.2.3 для объединения свидетельств, аналогичного приведенному в табл. 8.1 и 8.2. 5. Используйте схему аксиом, представленную в работе [McCarthy, 1980, раздел 4]. для воссоздания результатов, приведенных в разделе 8.1.3. 6. Создайте сеть рассуждений, подобную представленной на рис. 8.4, и постройте ре- шетку зависимостей для ее посылок, как это сделано на рис. 8.5. 7. Рассуждения на минимальных моделях являются важными в повседневной жизни человека. Приведите не менее двух примеров, предполагающих использование ми- нимальных моделей. 8. Вернитесь к примеру перевернутого маятника из пода 8.2.2. Воспроизведите не ме- нее двух итераций работы нечеткого контроллера. 9. Напишите программу, реализующую нечеткии контроллер из подраздела 8.2.2. 10. С использованием литературных источников (например [Ross, 1995J) опишите две области, в которых применимо нечеткое управление. Разработайте множество нечет- ких правил для этих областей. 11. Добавьте некоторую новую связь на рис. 8.26, скажем, соединяющую сезон с тротуа ром, и создайте дерево клик для представления этой ситуации. Сопоставьте слож- ность этой задачи с тон, которая представлена деревом клик на рис. 8.17. 12. Добавьте оценки, необходимые для завершения табл. 8.4. 13. Создайте алгоритм реализации байесовских сетей доверия и примените его *** скользкого тротуара из подраздела 8.3.2. Можно использовать подход передачи со- Гдава 8 Рассуждения в условиях неопределенности 367
общений изложенный в (Pearl, !988). « ^нгуляции кд.,к. про^^ в (Lauriuen в Spiegellialcer. I988J. _ 15 Создайте дерево клик и объединенное дерево для ситуации, показанной на рИс. 8 2() SX вандализм .. землетрясение - все это может вызвать тревогу „ • Существует также мера потенциальной опасности раиоиа. где расположен дом. 16 Рассмотрите диагностические рассужден.гя. приведенные в подразделе 8.2.3, „ „рсд. ставьте их в виде байесовской сети доверия. Сопоставьте эти два подхода к задачс диагностики. Рис. 8.20. Сеть доверил, г"" возможность тревоги доме в от различных опасностей иллюстрирую щая - J зависимости Часть IV Машинное обучени Точность — это не истина... — Генри Матисс (Henri Matisse) Настоящее и будущее являются настоящим с точки зрения будущего и будущим с точки зрения прошедшего... — Т. С. Элиот (Т. S, Eliot) ...Каждый крупный результат является конечны.» продуктом длинной последовательности маленьких действий. — Кристофер Александер (Christopher Alexander) Символьное, нейросетевое и эмерджентное обучение В ответ на вопрос о том, какие проявления интеллекта, свойственные человеку, труд- нее всего компьютеризировать, помимо творческих способностей, принятия этических решений и социальной ответственности, чаше всего называют понимание естественного языка и способность к обучению. В течение многих лет эти две области были целью и камнем преткновения для развития искусственного интеллекта. Одной из причин слож- ности и важности исследования языка и процесса обучения является то, что эти области связаны со многими другими проявлениями человеческого интеллекта. Система, обла- дающая искусственным интеллектом, должна решать вопросы на человеческом языке на основе машинного обучения и автоматического доказательства теорем. В части IX опи- сано несколько подходов к машинному обучению. В части V рассмотрены вопросы ав- томатического доказательства теорем и понимания естественного языка. В главе 9 описываются методы обучения, основанные на символах. Сначала рассматри- вается набор символов, представляющих сущности и взаимосвязи между ними в области их определения. Символьные алгоритмы обучения обеспечивают возможность корректного и полезного обобщения, которое тоже можно выразить в терминах этих символов. Подходы к обучению на основе связей, изложенные в главе 10. предполагают ошюа- ние знаний в воде примеров деятельности в сетях, состоящих из оп«шзых обрабатывающих моментов. По примеру мозга живых существ такие сети обучаются за и рззум в ракурсе искусственного интелныбз 368
. ^уры и весовых коэффициентов связей при Получс, счет модификации собственной стру / „ обобщсН11я, выполняемых методу нии обучающей информации, в основе связей позволяют выявить инвара символьного представления: *3“^иТЬ цх в структур2 сети. антные фрагменты данных и пр ипаМ нервной системы биологических органу Если сети связен построены рассмотренных в главе 11, являются генети- мов, то аналогами эмерджекти ГсНСТ1)Ч'есК[1е алгоритмы начинают свою работу с щ> ческие и эволюционные процеС^шение прОблемы. Решения оцениваются по некоторому лой популяции кандидатов вар }U1 *чШИС Комбинация таких претендентов состав- критерию, позволяющему ото• р H'jit Таким образом по принципу Дарвина стро- ляет новое поколение возмож точных решений. Этот подход предполагает поиск игся последовательность все развития, который (хотя некоторые это и оспа- источника интеллекта в самом прессе раз ривают) стал источником^важных философских проблем и про- Машинное ооуче 1 относятся проблема обобщения — как машина может блем образования понятии К ним относя^ в ИС№зовать их "po6'KM' например; д"я раб°™с новымй ке вмот”ы’ данными. Вторая проблема машинного обучения - природа ,т^тт т. Ха ^от порог напоминает использование разработчиками программ собственной нк- Z„„„ и зврнТгик в моделировании, представлении н алгоритмизации процесса обуче- X примерами таких проявлений являются выделение важных понятии в области определения, использование конкретного алгоритма поиска или выбор архитектуры неи- ронной сети для обучения. Индуктивный порог с одной стороны обеспечивает процесс обучения, а с другой — ограничивает информационную емкость системы. И последний философский вопрос, получивший название эмпирической дилеммы, открывает вторую сторону медали: если в обучающейся системе нет заданных наперед индуктивных поро- гов. как можно научиться чему-то полезному, или даже вредному? Как вообще можно узнать, что система чему-то научилась? Этот вопрос зачастую возникает в эмерджентных моделях и моделях обучения без учителя. Эти три вопроса более подробно обсуждаются в разделе 16.2. 370 Часть IV. Машинное обу^еНИ
Машинное обучение, основанное на символьном представлении информации Разум, кап я и утверждал, в процессе наполнения большим количеством простых идей, переданных через органы чувств из внешнего мира или сформированных как отражение собственных операций, получает также информацию о том, что неко- торые из этих простых идей тесно связаны друг с другом,.., что впоследствии по невнимательности мы склонны трактовать как одну простую идею. — Джои Л о к (John Locke) Простое созерцание мира ничего не значит. Созерцание переходит в наблюдение, наблюдение — в осмысление, осмысление — в установление связей, поэтому можно сказать, что каждый внимательный взгляд в мир является актом теоретизации. Однако это надо делать сознательно, сдотей самокритики, свободой мышления, не боясь смелых высказываний и иронии. — Гете (Goethe) 9.0, Введение______________________________________________________________ _ гис-ггче обладающей интеллектом. В на- Способность к обучению присуща любой сис > , ' „ к-А.*,>тгя плоти* шем мире символов и их изменяли ^естественным. Интеллет^ьныс агенты до приобрегенНя опыта на осно- взаимодсиствни с окружающим миром.аггак* I» 6yjyT посвяшены ве своих внутренних состоянии и д®*^“от подхода к этой проблеме; первый-- проблеме машинного обучения. Они отрал-тр __ на (КН0Ве связей> и третий на основе символьного представления ннфор _ • основан на пртципах генетики ил!1 эволюционном нскусственного ннтел- Обучение играет важную роль в практичи. . в 19g4 году назвали про- лекта. Фейгенбаум (Feigenbaum) и Мак‘ \Ро м к ширОкому распространению ин- блему машинного обучения основным пр
=‘ " "=: '“T^fcpr с™« (Herbert Simon) °"РеДС',"Л °6>WHHe ~ Образом. •Обучение - это любое изменение в системе, приводящее я улучшению решек,,, 1ада, „р,,7с повторном предъявлении или х решению другой задачи на основе тсх же да [Simon, 1983] Это краткое определение затрагивает множество вопросов, связанных с разра6отвд обучаемых пробами. Обучение подразумевает обобщение на основе опыта. Про„зво™ тельностъ системы должна повышаться не только при повторном решении одной и той задачи но и при решении аналогичных задач из той же предметной области. Поскольку об ласть определения обучающих данных обычно достаточно широка, то обучаемая система зачастую может обработать не все возможные примеры, и этот ограниченный опыт она должна корректно распространить на недостающие примеры. Такая задача индукции (induction) является центральной для обучения- Для большинства задач имеющихся в нали- чии данных недостаточно, чтобы гарантировать оптимальное обобщение независимо от типа используемого алгоритма. Обучаемые системы должны обобщать информацию эври- стически, т.е. отбирать те аспекты, которые вероятнее всего окажутся полезными в буду, щем. Такой критерий отбора называется индуктивным порогом (inductive bias). Определение Симона описывает обучение как свойство системы улучшить повторное решение задачи. Как следует из вышесказанного, формирование возможных изменений, приводящих к такому улучшению, — это сложная задача. При исследовании природы обучения может оказаться, что подобные изменения на самом деле снижают производи- тельность системы. Поэтому предотвращение и выявление таких проблем — это еще од- на задача алгоритма обучения. Обучение приводит к изменениям в обучаемой системе. Это несомненно. Однако точная природа этих изменений и наилучший способ их представления далеко не так очевидны. Один из подходов к обучению сводится к явному представлению в системе знаний об области определения задачи. На основе своего опыта обучаемая система стро- ит или модифицирует выражение на формальном языке и сохраняет эти знания для по- следующего использования. Символьные подходы, описанные в разделах 9.2-9.6, стро- ятся на предположении, что основное влияние на поведение системы оказывают знания об области определения в их явном представлении. Нейронные сети (neural network), или сети связей (connectionist network), обучаются не на основе символьного языка. Подобно мозгу живых организмов, состоящему из огромно- го количества нервных клеток, нейронные сети — это системы взаимосвязанных искусст- венных нейронов^ Знания программы неявно представлены в общей организации и взаимо- действии этих нейронов. Такие системы не строят явную модель мира, они сами принима- ют его форму. Нейронные сети обучаются не за счет добавления новой информации в свою азу знаний, а за счет модификации своей обшей структуры в ответ на получаемую извне информацию. Нейросетевой подход к обучению будет рассмотрен в главе 10. , . г 6 1 0ПИС£,1вается генетическое (genetic learning), или эволюционное, обучение трмм еагП1П^' Естественно, наиболее впечатляющим примером обучаемой сис окоужаюп1имЯ °рГани?*’ человека илн животного, который эволюционировал вместе отлажен в геи^Р°М °Т эмерджентный подход к обучению, основанный на адаптэии. искусственной жизни™* аЛГ°рИ™ах’ генетическом программировании и исследо^1 372 Часть IV. Машинное обуч
Машинное обучение — -Л1) обширная об личсство проблем и алгоритмов их решения^ ^СДОВан»»- предлагающая большое ко- модными данными, стратегиями обучещии Ручаются своими задачами, они сводятся к поиску полезной информации а Оставления знаний. Однако все рентному обобщению. В разделе 9.1 будет рассмото/ ЫПМОЖНЫХ понятий и се кор- чения, в рамках которого будут введены обшир ™n ** KOfn^P символьного машинного обу- В разделе 9,1 рассматриваются различные^дачи^^*“*о6ластн 'жаний основном индуктивному обучению. Индукция (с <7учеии\И0 посвящена эта глава в жества примеров) — одна из наиболее (Ьунламеит^??0^ обобщения на осно»с мно- дачей индуктивного обучения является изучение понятий °^уЧСНИЯ- Типичиой за- на основе примеров некоторого понятия выводится его п С°ПСер1earn,ng)t "Ри котором Дущем корректно распознавать экземширы такого вания или удачное вложение акций”. В пазделах 9 ? н о i’ ^лскис за 0 о ле- концептуальной индукции: „о„ск « „рострам вера,й (VerL“^"X,Z В разделе 9.4 рассматривается роль индуктивного порога в процессе обучения Про- странство поиска в задачах обучения обычно чрезвычайно велико. Эта проблема сложно- сти усугубляется проблемой выбора наилучшего варианта обобщения на основе обучаю- щих данных. Индуктивный порог используется во всех методах для ограничения простран- ства возможных обобщений. Алгоритмы из разделов 9.2 и 9.3 основаны на данных. Они не используют априорных знаний об изучаемой предметной области, а определяют главные свойства общего понятия на основе большого количества примеров. Алгоритмы, выпол- няющие обобщение на базе обучающих данных, называются алгоритмами обучения на ос- нове подобия (similarity-based learning). В отличие от таких методов, человек в процессе обучения может использовать априорные знания о предметной области. Например, для эф- фективного обучения человеку не требуется большого количества примеров. Зачастую од- ного примера, аналогии или пространного намека вполне достаточно для формирования общего понятия. Эффективное использование таких знаний повышает результативность обучения и снижает вероятность ошибок. В разделе 9.5 рассматривается обучение на основе объяснения (explanation-based learning), обучение по аналогии и другие приемы, исполь- зующие априорные знания для обучения с помощью ограниченного числа примеров. Алгоритмы, представленные в разделах 9.2-9.5, отличаются друг от друга стратегия- ми поиска, языками представления и объемом используемых априорных знаний. Однако все они предполагают, что обучающие данные классифицированы. Обучаемой системе сообщается, к какому классу относится данный пример Такой подход, предполагающий наличие информации о классификации обучающих данных, называется о учением с учителем (supervised learning). _ В разделе 9.6 про.-юлжается изучение иидукивиьи методов по- ривается обичеииЛез «и (unsupereised learnmg), XSX ...... (conceptual clustering). Как интслдеиуальн категория? В этом разделе будут ныс категории? Как вообше определить, по те' ий____CLUSTER/? и COB-WEB. И, рассмотрены два алгоритма формирования (reinforcement learning), наконец, в разделе 9.7 представлено о учение нсе отклнк Процесс обучения при котором агент помешается в среду и по> обратной связи, нолучен- прсдполагает активную деятельность агента ^ением отлиЧЗстся от обучения с учите- ной в ответ на его действия. Обучение с полк ----------------------------------‘“"'^символьном представлении Глава 9, Машинное обучение, основан 373
. « нем не участвует учитель, напрямую оценивающий каждое действие ХГ«м далжсн выработать полктнкупнтерпретшши обраткой связи. ВсеПриставленные в этой главе подходы к обучению обладают общим свойств. Их «рассматривать как вариации поиска в пространстве состоянии. Даже , прад;с SU с подцеплением строится функция значимости в пространстве состояния Далее проблема машинного обучения будет рассматриваться в общем контексте поиска. 91 Символьное обучение------------------------------------------—__ ‘ тачек зреиия (рис- 91 ' вИ11 nfivMPHUH Одной из основных характеристик обучения яв- I. Данные и цели зад данные. Например, алгоритмы изучения понятий, ляется его " 9 3 начинают свою работу с набора положительных (и "р"мерм в““ого тссл-06учение ло““°сформиро- ZСобшее определение, позволяющее в дальнейшем распознавать экземпляры э“о класса. В отличие от обучения, основанного на данных, обучение но основе объяснения (раздел 9.5) предполагает извлечение общего знания нз каждого обу- чающего примера и наличие исходной базы знаний о конкретной области опреде- ления Алгоритмы концептуальной кластеризации, описанные в разделе 9.6, иллю- стрируют еще один вариант проблемы индукции. Они начинают свою работу с на- бора неклассифицированных экземпляров. Их задачей является категоризация этих данных, имеющая определенный смысл для обучаемой системы. Рис. 9.1. Общая модель процесса обучения 374 Часть IV. Машинное обучение
Примеры - не единственный источник данных лп * мер. зачастую обучается на основе высокое обУчени«- Человек, непри- меним программирования преподавать 1? *невых Рекомендации. При изу- цикле всегда должно достигаться услпии ° ШаеТ СВоим С17 Дентам, что в рентный совет напрямую НеХ=иим Ег’а’С,’ГНИЯ' ЭтЭТ 6иу“°“но конкретных правил управления счетчиками иикпов ₽'M,noBBTb в в"де языке программирования. Еще одним типом n6v ” логических Условий на лотия (подраздел 9.5.4), которую необходимо корреХо нитеркрХоа” X :::: j У должны корректно интерпретировать эту аналогию - электричество распространяется по проводам, как жидкость в 2 лопроаоде. Как и для потока жидкости можно измерить количество электриче- ства (силу тока) и его давление в потоке (напряженке). Однако, в отлнчне от воды, электричество не увлажняет вещи и не помогает мыть руки. Интерпре- тируя аналогию, следует выявить осмысленное сходство и исключить ложные или несущественные детали. Характеристикой алгоритма обучения также является его цель (target). Цель мно- гих алгоритмов понятие (concept), или общее описание класса объектов. Алго- ритмы обучения также могут использовать планы, эвристики решения проблемы или другие формы процедурного знания. Свойства н качество обучающих данных — это еще одно направление для класси- фикации задач обучения. Данные могут поступать от учителя из окружающей сре- ды или генерироваться самой программой. Они могут быть достоверными или не- проверенными, структурированными или неорганизованными. Данные могут включать как положительные, так и отрицательные примеры, или состоять только из положительных примеров. Данные могут быть подготовлены либо требовать дополнительных экспериментов по их извлечению. 2. Представление полученных знаний. Программы машинного обучения могут ис- пользовать любые языки представления, описанные в этой книге. Например, в про- граммах, обучаемых классификации объектов, понятия могут быть представлены выражениями из теории предикатов или с помощью фреймов и объектов. Планы могут описываться как последовательности операций или треугольные таблицы. Эвристики представляются в виде правил вывода. Для того чтобы сформулировать проблему изучения понятии следует представить экземпляры понятий в виде конъюнктивных выражений с параметрами, апример, два экземпляра понятия “мяч” (которых недостаточно для изучения самого поня тня) можно представить в следующем виде. size{obj1, small} л color(obji, red] л shapelob/1, slze(obj2, large} л color(obj2, red) л shape(o ) , ro n Общее понятие “мяч” можно описать так. size(X, Y) a са!ог(Х, Z) л shape{X, round} Bnn«mrnee этому общему определению, представ- Тогда любое выражение, удовлетворяют ляет мяч. Глава 9. Машинное обучение, основанное на символьном представлении 375
„„„Ий Имея набор экземпляров для обучения, система должна пестро. 3. Набор операций. И' ввил0 или план, удовлетворяющие ее целям. Д,и пешения^той^адачи необходимо уметь оперировать представлениями. К т„п„ч. решения этой зад о6()6ще„„с „ли специализация символьных выражений “сдайка весов нейронной сети или другая модификация представления да„„Ь1х в ™оХме В рассмотренном выше примере изучения понятии обучаемая система Говеет,': определение, заменив конкретное значение переменными. Рас. смотрим первое выражение. sizelobj). small) „ colorlobj). red) s shape(obj). round) Если заменить одну константу переменной, получим следующее обобщение. sizelobj), X) г color{ob)l. red) л shape(obi). round) sizelobj). small) л colorjobj), X) л shapelobj). round) size(ob}1, small) л color(obj), red) л shape(obj1, X) size(X, small) л color(X, red) л shape(X, round) 4. Пространство понятий. Язык представления наряду с описанными выше опе- рациями определяет пространство потенциальных определений понятий. Обу- чаемая система, чтобы найти нужное понятие, должна выделить это простран- ство. Сложность такого пространства понятий — основная мера сложности за- дачи обучения. 5. Эвристический поиск. Обучаемые программы должны учитывать направление и порядок поиска, а также для повышения эффективности поиска использовать имеющиеся в наличии обучающие данные и эвристики. В рассмотренном выше примере изучения понятия “мяч” алгоритм может выбрать первое выражение в ка- честве кандидата и включить его в последующие примеры. Например, имея един- ственный обучающий пример Sfze(obj1, small) л coiorfobj), red) л shape(obj), round), обучаемая система выберет его в качестве кандидата на определение понятия. Этот пример корректно описывает лишь одни экземпляр. Если алгоритму предъявить второй экземпляр этого понятия size(obj2, large) л color{obj2, red) л shape(obj2, round), обучаемая система может обобщить понятие-кандидат, заменив конкретные значе- ния переменными, и сформировать понятие, удовлетворяющее описаниям обоих экземпляров. В результате получится более общее понятие-кандидат, точнее соот- ветствующее целевому понятию “мяч’’. s/ze(X, У) Л color(X, red) л shape(X, round) описа^в^абптр ”зучения П0НЯТИи на положительных и отрицательных примерах определён так,?/ТР‘’Ка Bl"*CT°Ha |Wins,on' 1975^ Е™ программа строит обшне Обучающие данны/Т1,УтТУ₽1ШХ понятий’ как аРка- описывая их составные части, пример^П.Х^Этоп™е"0“еЛ“а™ЬН0СТЬ "ояожитедьных и отрицатель.^ ям или пяти удовлетворяющих^'’^)’' >,довлств°Р"‘оЩи* определенным услоМ земпляры, для принаплежиь ’ М" ^очтн Удовлетворительными” считаются эк отношения. -Почто не хватает одного свойства или Удовлетворительные” экземпляры позволяют программе вь.де- 376 Часть IV. Машинное обучение
лить свойства, которые можно использовать для ров из целевого понятия. На рис. 9.2 показаны п НИЯ отрицательных приме- удовлетворительные” экземпляры понятия “арка” °ЖнтельнЫ(: примеры и “почти Арка —1 г-| L . I J UCZ] LL Почти удовлетворительный Почти удовлетворительный пример пример Рис. 9.2. Хорошие и "почти удовлетворительные" при- меры понятия "арка" Программа представляет понятия в виде семантической сети (рис. 9.3). Она обучает- ся, уточняя описание кандидата на роль целевого понятия на основе обучающих данных. Программа Винстона уточняет описание кандидата с помощью обобщения и специали- зации. Обобщение приводит к такому изменению графа, которое обеспечивает соответ- ствие графу новых экземпляров понятия. На рис. 9 3, а показана арка из трех блоков и представляющий ее граф. В следующем обучающем примере (рнс. 9.3, б) перекладиной арки служит пирамида, а не блок. Этот пример не соответствует описанию понятия- кандидата. Программа сопоставляет эти графы, пытаясь определить степень их изомор- физма, с помощью имен узлов. После сопоставления графов программа может выявить различия между ними. На рис. 9.3 графы соответствуют друг другу по всем компонентам за исключением верхнего элемента: в первом графе этому элементу соответствует узел brie ft (блок), а во втором — узел pyramid (пирамида). На рис. 9.3, в показана иерархия обобщения этих понятий. Программа строит обобщенный граф, заменяя соответствую- щий узел ближайшим общим супертипом для объектов brick и pyramid. В данном при- мере это polygon (многогранник). В результате получается понятие, представленное графом на рис. 9.3, г. г"аВа 9. Машинное обучение, основанное на символьном представлении 377
Вариант описания арки описание арки, исключающее "почти удовлетворительный" в. Специализированное пример г. Обобщение, включающее оба примера must-not-i mUSt-nOt-KW bn» polygon Рис. 9.4. Специализация описания с целью исключить "почти удовлетворительные1' при- меры. На рис. 9.4, в к графу, представленному на рис. 9.4. а. добавлены ограничения, ис- ключающие его соответствие графу на рис. 9.4. б Эти операции — специализация сети за счет добавления связей и обобщение путем замены имени узла или связи более общим понятием — задают пространство возможных определений понятия. Программа Винстона выполняет поиск экстремума а пространстве понятий на основе обучающих данных. Поскольку программа не отслеживает маршрут поиска, ее производительность существенно зависит от порядка предъявления обучаю- примеров. Неудачный порядок может завести программу в тупик пространства по- иска. Обучающие примеры необходимо предъявлять программе в порядке, способст- вующем изучению данного понятия, подобно тому как преподаватель организует свои Снятия со студентами. Качество и порадок следования обучающих примеров важны также для алгоритма сопоставления графов: для эффективного сопоставления графы не Должны сильно различаться. Гп*Ва 9. Машинное обучение, основанное на символьном представлении... supports part supports part polygon Рис. 9.3. Обобщение описания, позволяющее исключить множественное представление Почти удовлетворительные" примеры отличаются от целевого понятия одним с ством. Для их исключения программа выполняет специализацию описания На рис. 9.4, а представлено описание понятия-кандидата. Оно отличается от п° удовлетворительного” примера на рис. 9.4. б отношением touch (касается) в послед _ описании. Программа строит специализацию графа, добавляя связь must-not-t^ должно касаться) (рис. 9.4, в). Заметим, что этот алгоритм существенно зависит от зосги отрицательных примеров целе понятию. Определяя единственное <^f4' тельное свойство, алгоритм уточняет понятие-кандидат. ____„ 378 -------------------ТпбУ1(е1’’Ие Часть IV. Машинное 379
- первы, реализаций принципа индуктивного обучения, программ. Являясь одной in пер 1 п 6лет,ы большинства подходов к машинному Обу Винстона иллюстрирует . о6обшения и специализации, чтобы определить Ппо че„,„о. Они и—т о«раШ»^ , прос1ршсгве осуществляется „а основе страиство возможных , и зависят от качества обучающих данных. В еле Хх рХ1хР-и;Х-я это проблемы и приемы их решения в системах шинного обучения. 9.2. Поиск в пространстве версий Поиск с пространстве версий (version space search) [M.tchell 1978, 1982) иллюстрн- ? „зет нндуктовное обучение «к реализацию поиска в пространстве понятий. Поиск в пространстве версий основан нз том. что операция обобщения упорядочивает понятия в пространстве поиска. Затем этот порядок используется для выоора направления поиска. 9Л.1. Операция обобщения и пространство понятий Обобщение и специализация — самые типичные операции при определении про- странства понятий. К основным операциям обобщения, применяемым в машинном обу- чении. относятся следующие. 1. Замена конкретных значений переменными. Например. color{ball, red} приводится К ВИДУ’ co/or(X, red). 2. Исключение vcroBiiH из конъюнктивных выражении. Так, shape(X, round) л size(X, small) л color(X, red) сводится к выражению shape(X, round) л color(x, red). Добавление в выражение операшш дизъюнкшш, Например, shape(X, round) л size(X, small) л color(X, red) приводится к shape(Xf round) л size(X, small) л (co/orfX, red) v color{X, blue)). Залена свойства родительским объектом согласно иерархии классов. Если объект р тагу_со ог (основной цвет) является суперклассом для свойства red (красный), то color(X. red) заменяется на color(X, primary_со!ог). множества лре^южевий'удо*™ °ПН“ТЬ “ терми"ах теории множеств. Пусть Р и О — ответственно. Выражение п МеГворяющих выражениям р u q из теории предикатов co- выше примерах множество обш"м- чсм Ч, если Р^О В приведен""' включает набор эземеитв , 110жеи’и. Удовлетворяющих выражению со!ог(Х, Iе тентов, удовлетворяющих выражению cplor{ball, red). в примере 2 множество круглых и красных объект ство маленьких красных и круглых объектов Зам ”ВЛЯеТСЯ более общим’ чем м«°*е' лозволяет упорядочить логические предложения в с отношение “более общий” отношение можно обозначить символом ”>” т е >С00тветствующем пространстве. Это ся более обшим, чем q. Такая систематизация выРажени« Р *вляет- выполняемого алгоритмом обучения. ущественно сужает направление поиска. Это отношение можно описать в тепмкмяг ИЛ1.„ ется более общим, чем понятие q. то говорят чтоТ”** (c<Wenng) Если понятае Р явля- определяется следующим образом. Пусть р(х\ и а(^.°^Ывает Q' Отношение по*рытия бой положительные примеры понятия. Другими "ристаЕ;,я“11шс P(x)->positive(x) и qW-tposilfvelxj. Говорят 4m ’ ЛЛЯ о6ъскта х qW^Pos,r,Ve(x) ""^canoTOHecKUMC.TeacTOHeXlJXs^lx)4’^ Например, colorIX. И покрывает cotorfбай Z) которое . „ colodball. red}. В качестве простого примера naccM^Z еР“‘" ПОКр“вает дующими свойствами. го примера рассмотрим множество объектов со еле- Sizes = {large, small) Colors = {red, white, blue) Shapes = {ball, brick, cube) Эти объекты можно представить с помощью предиката obj{Sizes, Colors, Shapes) Операция обобщения, осуществляемая путем замены конкретных значений переменны- ми, определяет пространство, представленное на рис. 9 5. Индуктивное обучение можно рассматривать как поиск в этом пространстве понятия, удовлетворяющего всем обучаю- щим примерам. 9.2.2. Алгоритм исключения кандидата В этом разделе представлены три алгоритма (Mitchell. 1982] поиска в пространстве поня- тий. Эти алгоритмы основываются на понятии пространства версий Ь-авюа space). пред- ставляющем собой множество всех описаний понятия, согласующихся с обучающими приме- рами. Эти алгоритмы работают за счет сужения пространства версий с появлением новых примеров. Первые два алгоритма обеспечивают сужение пространства версий в направлении от частного к общему и от общего к частному соответственно. Третий алгоритм, называемый лтаорютпго.м исключения кандидата (candidate elimination), объединяет оба подхода н реали- зует двунаправленный поиск. Эти алгоритмы основаны на данных- Обобщение выполняется на основе обнаружен- ных в обучающих данных закономерностей. Кроме того, поскольку в этих алгоритмах используются классифицированные обучающие данные, нх можно считать разновидно- стью обучения с учителем (supervised learning). Как и программа Винстона, реализующая обучение на основе структурных описании, алгоритмы поиска в пространстве версий используют и положительные, н отряыэтеть- примеры целевого понятия. Хотя операцию обобщения можно реализовать только на положительных примерах, отрицательные примеры позволяют предотвратить излиш- обобщение. Изученное понятое должно быть не только обшим. чтобы соответотво- МП всем положительным примерам, но и частным, чтобы исключить ке охР“<а№ "ые. В пространстве, представленном на рнс. ‘>5. все множество положительных зкзем- пляров покрывается понятием оЬЦХ. У. Z). 380 Часть IV. Машинное обучеив® Гпава 9. Машинное обучение, основанное на символьном представлении 381
лих. к а Однако это понятие является слишком общим, поскольку включает все существующие экземпляры. Чтобы избежать излишнего обобщения, необходимо систематизировать обучающие данные в минимально возможной степени, чтобы покрыть лишь положи- тельные примеры, либо использовать отрицательные примеры для исключения лишних объектов. Как показано на рис. 9.6. отрицательные примеры предотвращают избыточное обобщение за счет специализации понятии и исключения отрицательных примеров. Представленные в этом разделе алгоритмы используют оба приема. Поиск от частного к общему на множестве гипотез S выполняется следующим образом. Begin Инициализировать S первым положительным обучающим примером; N - множество всех отрицательных примеров. Понятие, составленное только из положительных примеров Рис. 9.6. Роль отрицательно примера, , „робот,ращении излишнего обобщен,и, В алгоритме поиска от частного к общему используется множество гипотез S. эле- ментами которого являются кандидаты на определение понятия. Чтобы избежать излнш- него обобщения, эти определения-кандидаты формируются как максимально конкрет- ные обобщения (maximally specific generalization) исходных обучающих данных. Понятие с является максимально конкретным, если оно покрывает все положительные примеры, не удовлетворяет ин одному отрицательному, и для любого другого понятия с', покры- вающего все положительные примеры, с'> с. На рис. 9.7 представлен пример примене- ния этого алгоритма к пространству версий из рис. 9.5. В подразделе 14.8.1 алгоритм по- иска в пространстве версий от частного к общему реализован на языке PROLOG. Понятие, построенное на базе положительных и отрицательных примеров Положительный: abUsmall, red. ball} S: {obj(sma)l, red, ball}} Положительный’, objismall, лМе, ball) Для каждого положительного примера р Begin Для каждого seS, не удовлетворяющего примеру р, заменить з минимальным более общим понятием. Удовлетворяющим примеру р-, ить из $ все гипотезы, более общие, чем некоторые другие гипотезы из S; S все гипотезы, удовлетворяющие рассмотренному End; е отрицательному примеру из W. ДЛЯ какого отрицательного дХ^ьВпевЭКЗе“ПЛЯРЫ “ить п в множество End; П0тез на предмет примера n S, Удовлетворяющие П; N для проверки последующих излишнего обобщения; End St {obj{small, X, ball)} Положительный: otyljarge. blue, bail} S: {objiY. X, ball)} Рис. 9.7. Поиск от костного к общему « „ростриктее версий при игу- чении понятия "ball" Можно выполнять поиск и от общего к частному. Р^МО^И" шин множество G максииащно общих понятии. покрывающее с п—»ные и ни Одного отрицательного примера. Понятие с является максима. с покрывает отрицательных примеров, и -™ "™^1„ые примеры Ы>«печивз- отрицательных примеров, с>с . этом ьные ПОЗВОляют избежать чрезмер- 101 специализацию понятии-кандидатов. а пол кой конкретизации понятий. ----------------~~Tn6v4eKf,e Часть IV. Машинное0 » Глава 9. Машинное обучение, основанное на символьном представлении 383 382
Begin 6 наиболее общим понятием в пространстве,. Инициализировать^^^ примеры р соДеРжит все каждого отриЦаТельнОГО Begin удовлетворяющего примеру п, заменить Для каждого 9;^с;о0шей специализацией, 9 еГ° Нпртворяюшей примеру П; не удовлетвори более частные, чем некоторые Q все гипотез» б’всГгипотезы, не удовлетворяющие из Р; Для Алгоритм исключении ктдидата обьед„ правленныи поиск, который дает множество п°лхода и обеспечивает двуна- длгоритм поддерживает два множества поня 1р!Имуществ для обучаемой системы, симально общих понятий-кандидатов а s _ Тии'канднаатов: 6— множество мак- происссе работы алгоритма специализация м^еСТВ\МаКСИМалЬН0 конкретных. В выполняется до тех пор, пока они нс сойлутг» СТВЭ G И обобшение множества S следующий вид. к целев°му понятию. Алгоритм имеет Для End Удалить из другие Удалить из некоторым примерам Begin Инициализировать Инициализировать <5 наиболее общим понятием в пространстве- Ь первым положительным обучающим примером; End; каждого положительного примера Р уХь из G все гипотезы, не удовлетворяющие р: Добавить р в множество Р, End; Отрицательный: objlsmall, red, bnck) G:{obj(X,K£)} ДЛЯ каждого положительного примера р Begin Удалить все элементы G, ие удовлетворяющие примеру р; Для каждого seS, не удовлетворяющего примеру р, заменить s наиболее частным обобщением, удовлетворяющим примеру р; Удалить иэ S все гипотезы, более общие, чем некоторые другие гипотезы из S; Удалить из S все гипотезы, более общие, чем некоторые гипотезы из G; End; G: {obfilarge. Y, Z), obliX white, Z), otflX blue. Z). obftX. Y, baff). bbtf. Y, cube)} Положительный: obftlarge, white, ball) G: (objffarge. Y, Z), obj[X, white, Z), ob/(X, Y, ball}} Отрицательный: objllarge. blue, cube) Для каждого нового отрицательного примера л Begin Удалить все элементы S, удовлетворяющие п; Для каждого geG, удовлетворяющего примеру л, заменить д его наиболее общей специализацией, не удовлетворяющей примеру л; Удалить из G все гипотезы, более частные, чем некоторые другие гипотезы из G; Удалить из G все гипотезы, более частные, чем некоторые гипотезы из S; End; 6: {objtlarge. white, Z), оЬЦХ, while, Z), objIX Y, ball)} Положительный: obitsmall. blue, ban G- {oty(X. Y, ba//)} Puc. 9.8. Поиск <™ общего к частт„у „ пространстж еерсий при изуч,,тш понт* “зржЛ.б.в^том п™1 пример г,Римспсния этого алгоритма к пространству ’'Р„о size (размел) рИмсре алгоритм использует базовые знания о том, llTO L __ JH). чеши (red, white ь/це)""”3^ значеиия {large, small}, свойство color (ua« “греют важную no^ ’’ \“°ЙСТВ0 shape <Ф°Р«а) - <b®«. brick' CUbe}' ЗВ»”' ш<й переменным,, "РИ ФормиР°ваиин понятий путем замены конкретн ----------------- Часть IV. Машинное Если G=S и оба множества содержат по одному элементу, значит, найдено единственное понятие, удовлетворяющее всем данным; Если G и S пусты, значит, не существует понятия, покрывающего все положительные примеры и не удовлетворяющего отрицательным; End На рис. 9.9 проиллюстрирована работа алгоритма „сюзюнеиия кщндгиата в прочая- «вс версий из рис 9 5 Заметим, что здесь не показаны понятия, которые были получены В процессе обобщения или специализации, но исключены из потоз как слишком общие или выполнить самостоятельно в качестве упраж ™ Р Ритма на языке PROLOG описана в полразделе 14.^- рпава 9. Машинное обучение, основанное на символьном предсталении 385 384
Положительный: obj(smatl, red ь-(). ОНЛДЛ2» I S:() Отрицательный: obftsmall, blue, ball} ры, а внутренняя — “расширяется” для включения новых положительных примеров. В итоге оба процесса сходятся к единому целевому понятию. Алгоритм исключения канди- дата позволяет определить, когда найдено единственно возможное описание целевого понятия. Если множества S и G содержат одно и то же понятие, значит, алгоритм завер- шился успешно. Если G и S пусты, значит, не существует понятия, удовлетворяющего реем положительным примерам и ни одному отрицательному. Это может произойти в случае противоречивости данных или при условии неудачного выбора языка представле- ния (подраздел 9.2.4). G: {obj{X,r0d.Z}} S: {oi>/(s/n8W-red' G:|ob/(X red, Z)} S: (o£>/(X red. Положительный: obiUarge, red, ball) Отрицательный: оЬЦ1агде. red, cube) Граница G Целевые понятия Граница S t O'. JobjtX, red, baity S: |ob/(X, red, ball)) Puc. 9.9. Изучение понятия “red ball" с помощью алгоритма исключения кандидата Объединение двух направлений поиска в одном алгоритме обеспечивает несколько преимуществ. Множества G и S содержат обобщенную информацию об отрицательных и положительных примерах соответственно, что устраняет необходимость хранения этих примеров. Например, после обобщения множества S с целью покрытия очередного по- ложительного примера множество G используется для исключения нз S понятий, покры- вающих отрицательные примеры. Поскольку в — это множество максимально общих Hfi УДОВЛ5ТВ°РЯЮЩИХ ни одному из отрицательных примеров, то элемент мкс- пшательиым^ ° чем лю^ой элемент нз G, должен удовлетворять некоторым от- костных обпйП₽цМ-₽аМ' Аналогичн°. поскольку S — это множество максимально кон- мент G более'ч1с' П0К[,ь'еающ1,х вее положительные примеры, то любой новый эле- нс пок₽ывает нскоторые попожител‘"ые Символом "ь” обозначе° абстракгное представление алгоритма исключения канл(Ыатй рицатедьные. Во внvтncмk|, Положитсльные обучающие примеры, а символом “ °* покрываемые понятиями Кругс заключсны все известные положительные пример . за его пределами являются НСшннй соответствует множеству G; любые пРиМ^р Целевое понятие, а также 0ТрииателЬными. Затененная часть изображения содСр «ом общими либо Ругие Сго 0ПРеделения, которые могут оказаться либо сл г°Р««а ансшня» оХо' к "НЬ1МИ (°™ечены « "П В процессе Р^. у 0СТЬ смается”, чтобы исключить отрицательные _______________'"’"ГпбУ40^ Часть IV. Машинное Рис. 9.10. Изменение множеств G и S в процессе работы алго- ритма исключения кандидата Интересным свойством алгоритма исключения кандидата является его инкременталь- ность. Инкрементальные алгоритмы обучения предполагают поочередную обработку обу- чающих примеров и формирование удовлетворительного, хотя, вохможно. н неполного, обобщения после предъявления каждого из экземпляров. В отличие от них алгоритмы па- кетной обработки (например, ID3 из раздела 9.3) требуют наличия всех обучающих приме- ров до начала обучения. Множества G и S в процессе работы алгоритма исключения кан- дидата сужают множество потенциальных понятий: если с — целевое понятие, то для всех ge G п se S g>c>s. Любое понятие, более общее, чем некоторое понятие нз G. будет покрывать отрицательные примеры; любое понятие, более частное, чем неко- торое понятие из S, не покрывает некоторые положительные примеры. Это означает, что множества G и S охватывают набор приемлемых понятий. В следующем разделе эти рассуждения будут проиллюстрированы на примере про- граммы, использующей метод исключения кандидата для изучения эвристик поиска. Программа LEX [Mitchell и др, 1983) обучается эвристикам для решения задач символь- ного интегрирования. Эта программа нс только демонстрирует использование множеств G и S для определения частных понятий, но и иллюстрирует такие вопросы, как слож- ность задач многошагового обучения и взаимоотношения между компонентами обуче- ния и решения проблемы в сложной системе. 7-------------------~ спаянное на символьном представлении. Глава 9. Машинное обучение, основан 387 386
9.2.3. Программа LEX: индуктивное изучение эвристик поиска Пттамма LEX изучает эвристики для решения задач символьного Интегру Программа „аическне выражения методом эвристического поиска На „ ’ =CS"O проинтегрировать. система выполняет поис"^ Хенад не содержащего знака интеграла. Компонент обучения использует компонента решениязадачи для индуктивного обучения эвристикам, что повыщ^ лзводительность модуля решения. Программа LEX выполняет поиск в пространстве, определенном операциями над!ц, гебрадческими выражениями. Эти операции представляют собой типичные ПреобртХ над выполняемые при интегрировании. К ним относятся следующие. ОР1: lrf(xldx-> г Jf(x) с/х ОР2:! и dv -> uv - I v du ОРЗ: ГКх)->Пх) ОР4: $(ft(x)+f}(x)) dx-> dx + !Л(х) dx Операции — это правила, в левой части которых указаны условия их использования Однако в этих выражениях определены лишь условия, при которых .можно применять эти операции, но они не включают эвристик, определяющих, когда это нужно делать Программа LEX изучает эти эвристики на собственном опыте. Эвристиками называются выражения вида: Если состояние текущей задачи удовлетворяет условию Р, значит, нужно применить операцию О с ограничением В. Например, типичной эвристикой для программы LEX является следующая. Если состояние текущей задачи удовлетворяет условию /х transcedental(x) dx, значит, нужно применить операцию 0Р2 с обозначениями U ~ X; dv = transcedental(x) dx Здесь эвристика предполагает интегрирование по частям для вычисления интеграла от произведения х и некоторой трансцендентной (т.е. тригонометрической) функции отх. Язык представления понятий в программе LEX состоит из символов, изображенных на рис. 9.11. Заметим, что эти символы представлены в виде иерархии обобщения, где каждый символ соответствует всем своим потомкам в этой иерархии. Обобщение выражений вы- полняется путем замены символа его предшественником в иерархии обобщения. J3xcos(x) dx. метПВадГРаММа LEX Может изменить обозначение cos на trig. Тогда выражение при- f Зх trig(x) dx. Например, рассмотрим выражение Кр го, можно заменить число 3 символом к, представляющим любое целое число )torcos(x№. щевиями. Р ЛеН° пространство версий для ОР2, определенное этими обоб 388 Часть IV. Машинное обучо
f poly(x) f2(x) dx ftransc(x) f2(x}dx —- apply OP2 f kx cos(x) dx —* apply OP2 J 3x ing(x) dx —• apply OP2 Puc- 9.12. пространство версий dw операции OP2 пава 9. Машинное обучение, основанное на символьном представлении 389
Программа LEX состоит из 4 компонентов. гКт,т„ент обобщения. используюшии для поиска эвристик метод ИСКлк,,^ 2 Кочпонент решения задачи. вычисляющий решение. З .^нонент нрипшии. извлекающий положительные и отрицательиые примеры , процессе решения задачи. 4 Генератор задан, формирующий новые задачи-кандидаты. программа LEX поддерживает несколько пространств версий. Каждое из них см с оХ^юй операций " Ч*4ютавл»ег частично изученную эвристику для такой “Х^мпонент обобщения обрабатывает эти версии с использованием положит^. ГыТ" отрицательных примеров применения операции сгенерированных модулем крир,. КН Получив положительный пример, программа LEX определяет, включен ли этот м. земпляр в пространство версий для соответствующей операции. Положительный пример включается в пространство версий, если он покрывается некоторым понятием из G. За- тем программа использует этот положительный пример для обновления эвристики. Если ни одна из существующих эвристик не удовлетворяет этому примеру, создается новое пространство версий, для которого в качестве первого положительного примера исполь- зуется данный экземпляр. Это может привести к созданию нескольких пространств вер- сий для одной операции с разными эвристиками. Модуль решения задачи строит дерево поиска прн решении задачи интегрирования. В программе процессорное время, отводимое на решение задачи, ограничено. При этом для решения задачи используется алгоритм поиска по первому наилучшему сов- падению со специально разработанными эвристиками. Интересно, что в качестве част- ных определений эвристики в программе LEX используются множества G и S. Если для данного состояния можно применить несколько операций, выбирается та, которая больше всего соответствует этому состоянию. Степень соответствия определяется как процентное соотношение всех понятий, расположенных в пределах G и S, удовлетво- ряющих текущему состоянию. Поскольку вычислительные затраты на проверку всех понятий-кандидатов могут оказаться значительными, степень соответствия в програм- ме определяется через процентное соотношение элементов G н S, удовлетворяющих данному состоянию. Заметим, что с уточнением эвристик производительность систе- мы LEX значительно повышается. Положительные и отрицательные примеры применения операций извлекаются в про- цессе решения задач в модуле решения. При отсутствии учителя программа должна сама разделить примеры на положительные и отрицательные. Это пример решения проблемы вы еления кредита (credit assignment). Нели обучение рассматривается в контексте ре- многошаговой задачи, то зачастую неясно, какое из действий в последовательно- м й пт»ЧШ 33 ПОЛУЧСННЫЙ РезУльтат- Если модуль решения проблемы получает невеР КЛИТИКГЫППП0 КЗК какой из неск°лькнх шагов стал причиной ошибки? В модуле путь пешениТ—МЫ пР°^лема решается с помощью предположения о том. 4W операций по этомГщ КрЙТЧайший к Цели. Программа классифицирует иримеяенн а операции, удале^иГо00™*™™0) кРатчайшемУ ПУ™ как положительные пример - Однако ппи mvup Т НСГ°’ рассматРИнает как отрицательные. 0 учитывать тот факт что Кратчаишего ПУ™ к решению в модуле критики необх°^ус. модифицируемые эвристики необязательно являются Д Часть IV. Машинное обуч®1 390
является кратчайшн^ЧтХГуХ^овепит^ РеШеНИЯ’ необязательно на самом деле сифицированных как отрицательные ПР В отсУтств»и операций, ошибочно клас- ваются пути начинакппиг-е Ш примеРы’ в программе LEX сначала рассматри- ваюгия «пинающиеся с этих лпрпйпий « „„______ г MV пешей ню Обычип ь „ * операции, и проверяется, не ведут ли они к лучше- У Р процессе решения одной задачи формируются от двух до два- дцати обучающих ПрИ „ОЛОЖИ1а|1>нь,с ’’отрХтсяьны! иримХ передаются в модуль обобщения, где они исполыуютея для обновления пространства версии соответствующих операций. Модуль генератора задач — наименее развитая часть программы. Хотя для автомати- занни выбора задач использованы различные стратегии, большинство примеров вводится вручную- Один из подходов к генерации примеров состоит в покрытии частных эвристик для двух операции с целью научить программу различать эти операции. Эмпирические тесты показывают, что программа LEX эффективно обучается полез- ным эвристикам. В рамках одного исследования программе LEX было предъявлено пять тестовых и двенадцать обучающих задач. Перед началом обучения она решала тестовые задачи в среднем за двести шагов без использования эвристик в процессе поиска. После формирования эвристики на основе двенадцати обучающих задач программа смогла ре- шить те же тестовые задачи в среднем за двадцать шагов. В программе LEX затронуты многие аспекты обучения, в том числе такие проблемы, как выделение кредитов, выбор обучающих примеров, взаимоотношения компонентов решения задачи и обобщения. На примере этой программы видна роль соответствующе- го представления понятий. Эффективность программы во многом обеспечивается иерар- хической организацией понятий. Эта иерархия достаточно невелика, чтобы ограничить пространство возможных эвристик и обеспечить эффективный поиск, и в то же время достаточно богата для создания эффективных эвристик. 9.2,4. Обсуждение алгоритма исключения кандидата Алгоритм исключения кандидата демонстрирует способ применения метода поиска в пространстве состояний и представления знаний к решению задачи машинного обучения. Однако, как и большинство важных научных результатов, этот алгоритм нельзя оценивать в отрыве от других задач. Он связан со множеством задач машинного обучения. Обучение на основе поиска, подобно другим задачам поиска, связано с операциями в некоторых пространствах. Поскольку алгоритм исключения кандидата реализует поиск в ширину, он может оказаться неэффективным. Если специфика задачи такова, что множест- ва G и S интенсивно увеличиваются, возможно, следует выработать эвристики для исклю- чения состояний из эл1Х множеств на основе лучевого поиска (Ъеагп search) (см. главу 4). Еще один подход к решению этой проблемы, описанный в разделе 9.4, предполагает использование индуктивного порога для дальнейшего уменьшения размера пространства понятий. Такие порош вносят ограничения в язык представления понятий. В программе LEX порог создан с помощью иерархии обобщения понятий. Язык представления поняли в этой программе достаточно строг, чтобы обеспечить формирование множества эффек- тивных эвристик и уменьшить пространство понятий до ‘обозримых размеров . Примене- ние порогов позволяет упростить пространство понятий, но может привести к неспл мо- сти системы адекватно представить изучаемые поиялгя. Следовательно, метод кандидата нс сойдется к целевому понятию, а множества G и окажутся пусты состоит противоречие между выразительностью и эффсктивностък осучен Глава 9. Машинное обучение, основанное на символьном представлении 391
яяепшение алгоритма может также быть вызвано шумом или прогнв Неудачное завершение и og м на зашумленных данных очень важна „ чивостью обучающих,е могут быть неполными или противоречивы^ реальных *"3^ назвать устойчивым к шуму. Даже одни АЯГ0РТ,ИСХныГобучающий пример может сделать алгоритм расходящинся 0 классифицированным у является использование нескольких множеств G и с “ ГХХ Хий поденного для всех обучающих примеров. соз^ Помимо "Рос,ра^? Р„ва на основе всех примеров за исключением одного, двух дополнительные "Р00^. не сходится для исходных множеств G и S. его нр„” 3еТСчеж?ых ' множествах, в надежде, что они окажутся согласованными. К сежа. Лию ™ой подход слишком неэффективен для практического использования. важную роль „сходных знаний в процессе обучения. Иерархия понятий про- JZ LEX основана на знаниях алгебры, и это принципиально важно для эффективно. ™ алгоритма. Может ли изучение области определения сделать обучение более зффек. ТИ0Ным? Ответ на этот вопрос содержится в разделе . . Важное значение программы LEX состоит в выявлении взаимосвязей между пред- сгавлением знаний, реализацией обобщения и поиском в процессе индуктивного обуче- ния. Хотя исключение кандидата— это лишь один из многих алгоритмов обучения, в нем проявляются общие проблемы обучения: сложность, обеспечение выразительности и использование знаний и данных в процессе обобщения. Эти проблемы являются цен- тральными для всех алгоритмов машинного обучения. Поэтому они еще не раз будут упоминаться в этой главе. 9.3. Индуктивный алгоритм построения дерева решений ID3 Алгоритм ID3 [Quinlan, 1986а] подобно методу исключения кандидата обеспечивает изучение понятий на примерах. Особый интерес представляют способ хранения полу- ченных знаний, подход к управлению сложностью, эвристика для выбора понятий- кандидатов и возможности обработки зашумленных данных. В алгоритме ID3 понятия представляются в виде дерева решений (decision tree). Такое представление позволяет классифицировать объект путем проверки значения определенных свойств. Например, рассмотрим задачу оценки кредитного риска на основе кредитной истории, текущего долга, наличия поручительства и дохода. В табл. 9.1 представлены примеры с из- вестным кредитным риском. Дерево решений на рис. 9.13 содержит приведенные в данные и позволяет корректно классифицировать все объекты в таблице. Каждый игт-ппнщ1111 ^еЛ дерева Решений представляет некоторое свойство, например, кредитную Депева доход- Каждому возможному значению этого свойства соотаетствует ветвь ний писк С пл^ЬЯ °1ража!01 результаты классификации, в частности, низкий или сред вестей: для кажппгпЮ ЭТ°Г° Дерева можно классифицировать клиента, тип которого неиз Для данного клиента ^’^Греннего У3™ проверяется значение соответствующего св011С^‘1 шается при достижении ПСреХ°Д П° ветви‘ ПРоцеСС ' Заметим, что ппи ОпРеДелЯ1ощего класс объекта. Дерева учитываются нр аг нФНКацИН каждого конкретного экземпляра с помощью э имеет хорош^Хтн^^"’ Представ~ в табл. 9.1. Например, если чело ШУЮ кредитную и„„р„ю „ низкий далг то соглмно дср<;Ру 6ез ДОХ* 392 '-----------------------------------------------' Часть IV. Машинное обучен
и поручительства с иим связывается низкий пш-v сифицировать все примеры. Р ‘ деРево позволяет корректно клас Таблица 9.1. Данные о кредитной истории № п/п НИСК Кредитная история Долг Поручительство Доход 1 2 3 4 Высокий Высокий Средний Высокий Плохая Неизвестна Неизвестна Неизвестна Высокий Высокий Низкий Низкий Нет Нет Нет Нет отО до $15 от 15 до $35 от 15 до $35 от 0 до $ 15 5 Низкий Неизвестна Низкий Нет свыше $35 6 Низкий Неизвестна Высокий Адекватное свыше $35 7 Высокий Плохая Низкий Нет от 0 до $ 15 8 Средний Плохая Низкий Адекватное свыше $35 9 Низкий Хорошая Низкий Нет свыше $35 10 Низкий Хорошая Высокий Адекватное свыше $35 11 Высокий Хорошая Высокий Нет отО до$15 12 Средний Хорошая Высокий Нет от 15 до $35 13 Низкий Хорошая Высокий Нет свыше $35 14 Высокий Плохая Высокий Нет от 15 до $35 Высокий | Высокий риск | Поручительство | Высокий рнск| [ Средний риск | Поручительство | низкий риск | Нет Адекватное Нет Адекватное Доход свыше $35 от0до$15 от15до$35 Доход отОдоЭ15 от15до$35 | Низкий риск свыше $35 [ Высокий риск Средний риск] | Низкий риск] | Высокий риск| | Средний риск"] | Н»«зкий риск | Рис. 9.75. Дерево решений для оценки кредитного риска В целом, размер дерева, необходимого для классификации конкретного набора при- меров, варьируется в зависимости от проверяемых свойств. На рис. 9.14 показано дере во, которое гораздо проще предыдущего, но позволяет корректно классифицировать примеры из табл. 9.1. Глава 9. Машинное обучение, основанное на символьном представлении. 393
| высокий риск | | средний риск[ Рис. 9.14. Упрощенное дерево решений для оценки кредитного риска Имея набор обучающих примеров и несколько деревьев решений, позволяющих кор- ректно классифицировать эти примеры, следует выбрать дерево, которое с наибольшей ве- роятностью позволит корректно классифицировать неизвестные экземпляры. По алгоритму ГОЗ таким деревом считается простейшее дерево решений, покрывающее все обучающие примеры В основу такого предположения положена проверенная временем эвристика, со- гласно которой предпочтение отдается простоте без дополнительных ограничений. Этот принцип впервые был сформулирован в 1324 году философом-схоластом Вильямом из Ок- кама (William of Occam) и получил название “бритвы Оккама” (Occam’s Razor). “Глупо прилагать больше усилий, чем нужно для достижения цели... Не стоит приумно жать сущности сверх необходимого." Более современная версия этого принципа сводится к выбору простейшего ответа, соответствующего исходным данным. В данном случае это наименьшее дерево решений, которое позволяет корректно классифицировать все имеющиеся примеры. Хотя принцип “бритвы Оккама” хорошо зарекомендовал себя в качестве общей эври- стики для всех видов интеллектуальной деятельности, его использование в данном алго- ритме имеет более точное обоснование. Если предположить, что существующих приме- ров достаточно для построения корректного обобщения, то проблема сводится к выделе- нию необходимых свойств из дополнительных примеров. Простейшее дерево решений, покрывающее все примеры, вероятнее всего, ие будет содержать излишних ограничении. И хотя эта идея основывается на интуитивных рассуждениях, ее можно проверить на практике. Некоторые из таких эмпирических результатов представлены в подразД£ де 9.3.3. Однако, прежде чем переходить к их изучению, рассмотрим алгоритм ЮЗ, по- зволяющий строить деревья решений на основе примеров. 9.3.1. Построение дерева решений сверху вниз алгоритму дерево решений строится сверху вниз. Заметим, что каждое жества ^ka»0^61' ра3^НТЬ на^°Р обучающих примеров на непересекающиеся п0Д^ свойства По апт И3 К0™Рь>х относятся все примеры с одинаковым значением э ритму D3 каждый узел дерева представляет некоторое свойство. основании которого выполняется разделение набопа -г гтппит плпн наоора примеров. Таким образом, алгоритм рекурсивно строит поддерево для каждого раздела. Эта процедура длится до тех пор по- ка все элементы раздела не будут отнесены к оп»ах«, „ Н до тех р’ „ внесены к одному и тому же классу. Этот класс стано- вится кон дерева, оскольку для построения простого дерева решений важ- ную роль играет порядок тестирования, в алгоритме ГОЗ реализован специальный крите- рии вы ора теста для корневого узла каждого поддерева. Чтобы упростить описание, в ЭТОМ разделе рассматривается алгоритм построения деревьев решений в предположении, что существует соответствующая функция выбора. Сама эвристика выбора для алгорит- ма ГОЗ рассматривается в подразделе 9.3.2. Например, рассмотрим процесс построения дерева, представленного на рис. 9.14, на ос- нове данных из табл. 9.1. Имея полную таблицу примеров, алгоритм ГОЗ выбирает в каче- стве корневого свойства значение дохода на основе функции выбора, описанной в подраз- деле 9.3.2. При этом множество примеров делится на три части, как показано на рис. 9.15. Элементы каждой части представлены порядковыми номерами примеров в таблице. Доход от 0 до $15 от 15 до $35 свыше $35 Примеры {1,4, 7,11} Примеры {2,3,12,14} Примеры {5, 6, 8, 9, 10, 13} Рис. 9.15. Фрагмент дерева решений Доход Примеры {2,3} Примеры {14} Примеры {12} Рис. 9.16. Еще один фрагмент дерева решений . гйпю паботэ' с отбора корректно классифицированных Алгоритм индукции рабний следующем образом. элементов целевых категории. Алгоритм Ш-' стр function induce_tree (exampleset, Properties} Begin oxamnle set принадлежат к если все элементы набора пример то "уз- -неся его к этому классу, иначе, если множество'в5имПеУнем°'которого является то вернуть конечный уз ----------------------------символьном представлении 395 Глава 9. Машинное обучение, основанное 394 Часть IV. Машинное обучв^0
в exempleset классов объединение всех имен ----- иначе Begin назначить его корнем выбрать свойство Р и назна текущего дерева, множестаа Properties удалить -°йс7з:а::нГ* свойства Р для каждого значения ^создать ветвь дерева с меткой V; к разделу partition? отнести элементы множества exampleset, для которых свойство Р принимает значение V; вызвать функцию induce^tree (partition,, Properties), добавить результаты к ветви V End End End Согласно алгоритму ГОЗ функция induce, tree рекурсивно вызывается для каждо- го раздела. Например, пусть к разделу {1,4,7, 11} относятся клиенты с высоким рис- ком- алгоритм ГОЗ создаст соответствующий конечный узел. Затем в качестве корневого узла поддерева раздела {2, 3, 12, 14} выбирается свойство “кредитная история”. На рис. 9.14 элементы этого раздела в свою очередь разбиваются иа три группы: {2, 3}, {14} и {12}. Таким образом, строится дерево, представленное на рис. 9.14. Оставшуюся часть дерева читателям предлагается построить самостоятельно. Реализация этого алго- ритма на языке LISP описана в разделе 15.13. Прежде чем переходить к рассмотрению эвристики выбора, проанализируем взаимо- связь алгоритма построения дерева и поиска в пространстве понятий. Набор всех воз- можных деревьев решений можно рассматривать как пространство версий. Операции перемещения в этом пространстве соответствуют добавлению частей дерева. Алгоритм ГОЗ реализует вариант поиска по первому наилучшему совпадению в пространстве всех возможных деревьев. Он добавляет дерево к текущему поддереву и продолжает поиск, не возвращаясь к исходной точке. Это обеспечивает высокую эффективность алгоритма, а также зависимость от критерия выбора свойств. 9.3.2. Выбор свойств на основе теории информации Каждое свойство можно рассматривать с точки зрения его вклада в процесс класси- фикации. Например, если необходимо определить виды животных, то одним из призна- ков классификации является откладывание яиц. Алгоритм ID3 при выборе корня текуще- го поддерева оценивает удельный вес информации, добавляемой каждым свойством. За- тем он вы ирает свойство, имеющее наибольшую информативность. ИНф°РМаЦИИ ^аппоп- обеспечивает математическую основу для изме* земпляпНвФпппаТИВН0СТИ СОобшениЯ- Каждое сообщение можно рассматривать как эк* бору одного ВОЗмод^Ь1Х сообщений. Передача сообщения соответствует вы информационную М0ЖНЫХ со°бщсний. С этой точки зрения целесообразно определить них игр, сравнив ц™остГсо°б1М°Ж11Ь1Х сооб1цсний можно оценить на примере азарт ценность сообщения с правильным прогнозом результата вра^иия РУ Часть IV. Машинное обучен14 396
летки и подбрасывания монеты. Поскольку количество »п, ки значительно превышает количество результатов^ “™«иии для рулет- „ын прогноз для игры в рулетку гораздо ннфопмХи 'и '^1"''^""’ M0"eTЫ• ™ "ра“ияь' игре значительно выше. Следовательно такое сопл 6°"Се’ Чт° " ставю' ‘ ’то11 Роль вероятности передачи кХо соХецп я” 7Г ‘'Нф°РМа“И“п ПОЛОЖИМ, что существует монета, при подбрасывании котопой *ДУЮШСГ° ПрИМСра' ПРед' выпадает решка. Если знать, что вероятность выпадания решки соХ^'РС тоТ’/’ случаев можно правильно угадать результат игры Шейной формализовал зти наблюдения, определив количество информации в сооб- щении как функцию от вероятности р передачи каждого возможного сообщения, а имен- но -log2 р. Имел пространство сообщений M=(m„ т„ .... mJ и зная вероятности р(пт,) для каждого сообщения, информативность этих сообщений можно вычислить следую- щим образом. W = £-р(т()1одг(р(т,)) = Е[-log? p(mj]. Количество информации в сообщении измеряется в битах. Например, информатив- ность сообщения в результате подбрасывания обычной монеты составляет /[Co/n]=-p(head)logs(p(/iead)) - p(taf/)log2(p(ta,/)) =-1/2log2(1/2)~ 1/2log2(1/2) = 1 бит. Если же монета такова, что вероятность выпадения решки составляет 75%. то инфор- мативность сообщения равна /[Со/л]=-3/4 1одг(3/4) - 1/4 Юдг(1/4) =-3/4*(-0,415)-1/4*(-2) =0,811 бит. Это определение позволяет формализовать интуитивные рассуждения об информа- тивности сообщений. Теория информации широко используется в компьютерных науках и телекоммуникациях, в том числе для определения информационной емкости телеком- муникационных каналов, при разработке алгоритмов сжатия данных и устойчивых к шу- му коммуникационных стратегий. В алгоритме ЮЗ теория информации используется для выбора наиболее информативного свойства при классификации обучающих примеров. Дерево решении можно рассматривать с точки зрения информации о примерах. Ин- формативность дерева вычисляется на основе вероятностей различных типов классифи- кации. Например, если предположить, что все примеры в табл. 9.1 появляются с одина- ковой вероятностью, то р(высокий риск)=6/„, р(средний риск)=*/„ и р(низкий риск)=*/^. Следовательно, информативность распределения D,„ описанного в табл. 9.1, а зна- чит, и любого дерева, покрывающего эти примеры, составляет / [О,,]=-6/14 1од,(6/14)-3/141од,(3/14)-5/141од,(5/14) =-6/14 Ч-1.222J-3/144-2,222J-5/14’(-1.485) = 1,531 бит. Количество информации, обеспечиваемое при выборе ХрХшХевеТкю" корня текущего дерева, равно разности общего количества информации в дереве и коли Глава 9. Машинное обучение, основанное на символьном представлении. 397
„водимого ДЛЯ завершения классификации. Количество инф неси» информации. сния дерева, определяется как взвешенное ерсд ,^ „аист, необходимое для ияр Свешенное среднее вычисляется как сумма ’ формации во всех: его поДДф^ого поддерева „ процентного соотношения пр„меро8 ведений информативна этом поддереве. rv4.ieCT1}VeT набор обучающих примеров С. Если корнем текуЩего Предположим, что суш приннмата „ значений, то множество с буДо дерева является свойств, г Cj. Информация, необходимая для завершения и.—" «#=' Выигрыш от использования свойства Р вычисляется как разность общей ннформатив- носи дерева и объема информации, необходимого для завершения построения дерева. да/п(^)=/[С]-Е[Р] Возвращаясь к примеру из табл. 9.1, при выборе в качестве корня дерева свойства “доход" примеры будут разделены на трн группы: С)={1,4, 7, 11},С2={2, 3. 12, 14} и Сз={5, 6, 8, 9, 10, 13}. Информация, необходимая для завершения построения де- рева, составляет Е[доход] = 4/14 + 4/14 */(С2] + 6/1 4 */[Сэ] =4/14'0,0 +4/14’1,0 + 6/14*0,650 =0,564 бит. Информационный выигрыш от такого разбиения данных табл. 9.1. составляет дат(доход)= l[Dt,] - Е[доход] = 1,531 - 0,564 = 0.967 бит. Аналогично можно показать, что да in (кредитная история) = 0,266 gain(debt)b = 0,581 да in (со tla t era/) - 0,576. Поскольку доход обеспечивает наибольший информационный выигрыш, именно это ВьюиРается в качестве корня дерева решений алгоритма ID3. Такой анализ ре- о выполняется для каждого поддерева до полного построения всего дерева. 93.1 Анализ алгоритма ID3 но, что ^омощыоЧТ^ГОрИ™ ID3 С1РОНТ простое дерево решений, совсем не очевиД примеры. Поэтому алгоритТгги ? М°ЖН° эФФективн° классифицировать неизэесп»* ных приложениях. Тесты па ЬШ пРотестирован на контрольных примерах и р Например, в работе [Quinlan^oT-i ХОРОШУЮ работоспособность. на примере задачи классик™ ’ исследована производительность алгоритма шпилей участвовали белые ЭНдшпилсй при игре в шахматы. В примера* э было научиться распознавать пп Ь ” ЛЙДЬЯ И чеРные король и конь. Задачей алгор ___________ ПОЗНЦИИ’ приводящие к поражению черных за три л лбУЧвНИ® Часть IV. Машинное 398
в качестве свойств использовались различные высоко,™ .•невозможность безопасного перемещения кТООля“п™ npl”Hal<"' та,<не ““ ных признака. ЭТОм учитывались 23 подоб- позиций. среди которых w’ZZ^pZXTnopZZ" ‘'4 МИЛЛ"°Иа различи“’ «ты тестирования приведены в nZ 9.2no^ZS Об₽”ОМ РеЭу,,Ь- ваиия приводится в работе (Quinlan. 1983). ана”“ Результатов тестиро- Эти результаты подтверждаются и другими тесомн и конкретными приложениями. Существуют варианты алгоритма ID3. позволяющие решать Хин в условиях зашум- ленных данных н очень больших обучающих множеств. Более подробная информация приводится в работе [Quinlan, 1986а, б]. Таблица 9.2. Результаты тестирования алгоритма 1D3 Размер обучающего множества Процентное отно- шение к размеру всего пространства Количество ошибок на 10000 примеров Прогнозируемый максимум ошибок 200 0,01 199 728 1000 0,07 33 146 5000 0,36 8 29 25000 1.79 6 7 125000 8,93 2 1 9.3.4. Вопросы обработки данных для построения дерева решений В работе [Quinlan, 1983] впервые предлагается использовать теорию информации для построения поддеревьев дерева решений. Именно эта работа положена в основу приве- денного выше обоснования алгоритма. Рассмотренные примеры были достаточно понят- ны н просты. Однако в них не затрагивалось множество проблем, которые зачастую воз- никают при работе с большими массивами данных. 1. Первая проблема — плохие данные. Это означает, что несколько наборов данных с идентичными свойствами приводят к различному результату. Что делать при от- сутствии априорной информации о достоверности данных? 2. Данные для некоторых наборов признаков отсутствуют, возможно, из-за очень вы- сокой стоимости их получения. Нужно ли проводить экстраполяцию или лучше ввести новое значение “неизвестен”? Как обойти эту проблему? 3. Некоторые признаки мот принимать значения нз непрерывного интервала. Такие данные подлежат дискретизации и последующей группировке. Можно ли приду- мать более эффективный подход? 4. Набор данных может быть слишком большим для алгоритма обучения. Что делать в этой ситуации? Решение этих проблем привело к созданию нового поколения алгорюмов основанных на пос?рос-<" Р"“““й ритм С4.5 [Quinlan, 1996]. Для решения этих проблем также ясно. . пр Глава 9. Машинное обучение, основанное на символьном представлении.. 399
, ихся элементов (bagging) и усиление (boosting). как добавление "овгорЯ*Х* ют собой векторы признаков или наборы прИМе>^ данные В^'“с"^^"^азовая‘,,,м’чтобЬ| удостовс₽,,ться 8 жиешпо' предполагает дублирование об«. aoto’®" HeKfrapblx обучающих примеров. При испояыовтии ада множеств с ЭМИКИ ег(, множества участвуют все примеры, ио , в формировании J экземпляра в обучающем множестве. Этот Вес I м весового кю*,и,’^.н0„и соответствующего вектора. После настройки весов па?" отражать степ®иь поскольку за счет весовых коэффициентов CJ2’ XbZp? Т внимание на разных примерах. Набор полученных классификаторов о6"’ Хек в один общий классификатор. При использовании метода добавления п0>и. ““щиток элементов вклад всех компонентных классификаторов одинаков, а в МВДщ vcuieHW классификаторы имеют различный вес. определяемый нх точностью. При работе с очень большими наборами данных их зачастую делят на подмножества, нз одном из которых строят дерево решений. Эго дерево проверяют на других подмножествах. В настоящее время литература по методам обучения на основе деревьев решений очень обцщр. на. Много информации содержится в Internet, Опубликовано большое количество результатов использования алгоритмов построения деревьев поиска на этих данных. И, наконец, достаточно просто конвертировать дерево решений в соответствующий набор правил. Для этого каждый путь в дереве решений нужно описать в виде отдельного правила. Левая часть этого правила (глава 5) состоит из решений, приводящих к конечному узлу. Дей- ствие в правой части выражения — это узел-лист или результат поиска по дереву. Затем этот набор правил можно настроить таким образом, чтобы он описывал поддеревья дерева реше- ний. Впоследствии его можно применять для классификации новых данных. 9.4. Индуктивный порог и возможности обучения В предыдущих разделах основное внимание уделялось обобщению по эмпирическим данным. Однако важную роль в успешном индуктивном обучении играют также априор- к Ч предположения ° природе изучаемых понятий. Индуктивный порог чения ЭТ° критерий, используемый обучаемой системой для огранл- следующем оазлм₽ ?°НЯТИЙ 1131(1 выбоРа понятий в рамках этого пространства. В обычно применяемы* >ЖГ рассМ0тРена необходимость использования и типы порогов, результаты исследований °буЧеНЙЯ' В ^Р^Деле 9.4.2 приводятся теоретические ня эффективности индуктивных порогов. Ш. Индуктивный порог рого его разделен[щ^обу^.ПрИМерОВ обычно достаточно велико. Поэтому без некото рассм°трим задачу классиdJ? °снове п°нска практически невозможно. Напри» • «"тельных и отрицательны* пЦИИ ИТ0ВЫХ Строк (^стоящих из 0 и 1) на основе пол Р^1ДеЛение Мн°жества всех с™Мер°В' ПосколькУ такая классификация — это пр вапи КЭЦИ1< соответствует мошн * 11ОдмН0)кества, общее количество вариаИГ0В „ “тго> ™«нфи4иХ™™ „Э10Г0 М,тожес™' m примеров сушеп.У« дпя строки, состоящей из п битов, количест 400 ножных комбинаций составляет г'1. Поэтому число вапиан™ „„ а ыХ строк длины л составляет 2 в степени 2". Для л=50 это сификации всех 6irro’ в0 молекул во вселенной. Поэтому без некоторых зври^ХZZZZ можно организовать эффективный поиск в таких пространствах Еше одни»,i обоснованием необходимости порога служит сама природа индуктивного обобщения. Обобщение не сохраняет истинности высказываний. Например, вступи че- стного политика, нельзя утверждать, что все политики честны. Сколько честных полити- ков нужно встретить, чтобы приити к такому заключению? Несколько сотен лет назад эта проблема была описана как задача индукции следующим образом. “Вы говорите, что одно предложение вытекает из другого. Однако необходимо признать, что это умозаключение не интуитивно и не демонстративно. Тогда какова же его природа? Можно сказать, что оно проверяется экспериментально, но это слабое утешение. Все умо- заключения, основанные на опыте, предполагают, что будущее аналогично прошедшему, и что сходные причины приведут к подобным результатам". [Hume, 1748]. В XVKI столетии эта работа считалась опасной, особенно на фоне попыток религиозного сообщества математически доказать существование бога. Однако вернемся к индукции, В индуктивном обучении обучающие данные — это лишь подмножество всех экзем- пляров области определения. Следовательно, для любой обучающей выборки возможны различные обобщения. Вернемся к примеру с классификацией битовых строк. Предпо- ложим, что в качестве положительных примеров некоторого класса строк системе были предъявлены строки {1100, 1010}. Для этого примера допустимо много различных обобщений: все строки, начинающиеся с "1” и заканчивающиеся "0"; множество строк, начинающихся с “1 множество четных строк или любое другое подмножество, вклю- чающее рассмотренный пример {1100, 1010}. На основе чего система может сделать обобщение? Одних данных для этого недостаточно, поскольку все приведенные примеры обобщений согласуются с этими данными. Обучаемая система должна сделать дополни- тельные предположения о "вероятных понятиях". В задачах обучения такие предположения зачастую принимают форму эвристик вы- бора ветвей в пространстве поиска. Примером такой эвристики является функция выбора на основе теории информации, используемая в алгоритме ЮЗ (подраздел 9.3.2). Алго- ритм ID3 выполняет поиск экстремума в пространстве возможных деревьев решении. На каждом этапе он проверяет все свойства, которые можно использовать для расширения Дерева, и выбирает из них наиболее информативное. Это "жадная ’ эвристика, поскольку предпочтение отдается тем ветвям в пространстве поиска, которые дают наилучший ре- зультат в продвижении к цели. Такая эвристика позволяет алгоритму П)3 выполнять эффективный поиск в простран- стве деревьев решений и решить проблему выбора приемлемого сообщения на основе ограниченного объема данных. В алгоритме ID3 предполагается, что минимальное дере- во, корректно классифицирующее все об'чаюшне примеры, ос_ ректно классифицировать и последующие обучающие при. ер . имеющимся новано на том, что маленькие деревья, скорее всего, удуг соо™£> д ьд должны Данным. Если же обучающее множество достаточно велико,' Какопи- включать все существенные признаки для ^шением практических за- сано в подразделе 9,3,3, это предположение об с испйЛЬЭчется в таких аяго- Дач. Подобное предпочтение простых определена Ритмах обучения, как CLUSTER/? из подраздета 9.6- Глава 9. Машинное обучение, осноеанное на символьном представлении... 401 Часть IV. машинное обуч0И
Если в некоторой и целевая строка Если в некоторой и целевая строка содержится "0\ значит, этой позиции. содержится "1я, значит, этой ПОЗИЦИИ. „опт представляет собой синтаксическое ограничен „шдап'вного " Р- т«ис пороги не являются эвристиками д ц ограничивают размер самого пространен * "а^еТ; пространстве понятию „енными средствами языка. Напрщ,,. ^елсгавлекв» изучаемых ПОН^ ан„чительный язык представлен™, Че„ тс ^уменьшение размера пространства понятии обеспечивает вы КОТ°РЫЙ М0ЖСТ °Ка3аТЬСЯ Эффеиивны« пр„ Примеров синтаксИЧе,1п7 является ограничение описания примеров шаблОаами кяасснфикации битовых стр . шаблон определяет класс всех соответст- состоящими из символов ’ задастся следующими правилами, вуюших ему строк, при этом соответст позиции шаблона строки должна содержать "0я в позиции шаблона строки должна содержать "1" в Символ *#’ в некоторой позиции соответствует либо "1я либо "0я. Например, шаблон “1 ##0” определяет набор строк {1 11 0, 1100, 1010, 1000}. Использование классов, соответствующих таким шаблонам, значительно уменьшает размер пространства понятий. Для строк длины п можно определить Зп различных шаб- лонов. Это значительно меньше, чем 2 в степени 2П возможных понятий в неограничен- ном пространстве. Порог также позволяет упростить реализацию поиска в пространстве версий, поскольку в этом случае обобщение означает замену символов “1° или “0” в шаблоне символом “#". Однако наличие этого порога приводит к невозможности пред- ставления (а следовательно, и изучения) некоторых понятий. Например, с помощью та- кого шаблона нельзя представить все строки, содержащие четное число нулей и единиц. Противоречие между выразительностью и эффективностью — типичная пробле- ма обучения. Например, в программе LEX четные и нечетные целые не различаются, ледовательно, она не может обучиться эвристике, основанной на этом различии. И HJtwtff 1ойа1ТкРЫХ программах порог изменяется в соответствии с данными пороге соабат Ольшинство обучаемых программ основываются на фиксированном uupuic сраоатывания. ^Хнш«ХННХ1У7соИЯ ИСПОЛЬЗуются Ручные типы порогов. конъюнкцией литералов Эт * njunctlve bias) ограничивают возможности обучения дизъюнкции в определениях0 Д0Ста™ЧН0 типичный подход, поскольку использование предположим, что в предста П0ИЯТИЛ вызывает проблемы при обобщении. Например, можно свободно использоватГНИИ 110ИЯТИ’1 в Рамках алгоритма исключения кандндата ным обобщением набора полп^Р^*0 ДИЗЪюнкЦии. Поскольку максимально конкрет- пр^еров, то обучаемая сисгемТ?гЛ«НЫХ примеРов является простая дизъюнкция этих Ма Удст просто добавлять новыр °° Ще Не сможет выполнить обобщение. Такая снеге- Огранив накодичес^А tMitchel1. 1980]. „ые ПО₽ОГ" (limitation °" tlK nnn’ber of disjuncts). дХПЬ "~'“‘ХноТ ™ многих приложений. Повысь дизъюнктов. можно, разрешив использовать небольшое ограниченное аекторы признаков (feature vector) — это linens о™. „ез наборы свойств, значения которых различны для разнш o°™Cb"!aH’l,I”c o6bCKT'J ?ы представлены именно наборами признаков Р 6 ов В табл. 9.1 объек- ых^Ср--ся “оХ ЭТ° ЭФФектИВНОСТЬ кото. Р Хоувские выражения (Hon, clauses) налагают ограничения на форму вывода ие "^“ГелТ^Т0”™4"”" Д°№ат“ Х°РН°-- выраже^еХно’о™- саны в разделе iz.x. Помимо синтаксических порогов, рассмотренных в этом разделе. в0 многах граммах при описании области определения используются конкретные знания о ней. Они обеспечивают чрезвычайно эффективные ограничения, или пороги. В разделе 9 5 осве- щаются подходы к выбору порогов на основе знаний. Однако, прежде чем рассматривать роль знании в обучении, кратко рассмотрим теоретические результаты, обосновывающие эффективность индуктивных порогов (см. также раздел 16.2). 9.4.2. Теория изучаемости Задачей индуктивных порогов является такое ограничение множества целевых поня- тий, при котором возможны эффективный поиск и формирование удачных определений понятий. Проблема количественной оценки эффективности индуктивных порогов была исследована теоретически. Качество определения понятия можно выразить в терминах корректной классифика- ции с его помощью объектов, не включенных в обучающее множество. Несложно напи- сать алгоритм обучения, формирующий понятия, с помощью которых можно корректно классифицировать все примеры из обучающей выборки. Однако, поскольку в области определения обычно содержится большое количество экземпляров, часть из которых может быть недоступна для обучения, алгоритм должен строить обобщения на основе некоторой выборки нз всех возможных примеров. Поэтому чрезвычайно важную роль играет эффективность работы алгоритма на новых данных. При тестировании алгоритма обучения множество всех примеров обычно делится на два непересекающихся подмно- жества: обучающее и тестовое. После обучения программы на обучающем множестве ее проверяют на тестовом. Эффективность и корректность алгоритма можно рассматривать как свойство языка представления понятий, т.е. индуктивного порога, а не конкретного алгоритма обучения. Алгоритмы обучения выполняют поиск в пространстве понятий. Если это пространство хорошо структурировано и содержит удачные определения понятий, то любой обосно ванный алгоритм обучения будет эффективно работать на этих определениях, елиже пространство является очень сложным, то алгоритм не даст хороших результатов, можно пояснить на следующем примере. _ Понятие "мяч" является изучаемым. Для его изучения можно ввести удобный язык описания свойств объекта. Увидев относительно небольшое количество шгсеи.человек «жет прийти к выводу, что мячи крутлые. Рассмотрим понятие ко™рое «УЧИТЬ. Допустим, группа людей прошла по всей планете, “ По- снов произвольных объектов н назвала этот класс 2^™ен™ «™е “выбранный объект" не просто требует чрезвычайно сложна,Т^Хкты' Скорее всего, с его помощью будет невозможно классифицировать f принадлежащие ко множеству выбранных. Эти рассуждения приводят выв ДУ Часть IV. Машинное обу^енИ г"ава9. Машинное обучение, основанное на символьном представлении... 403 402
„ „„НКГИС в проспи"^- с дан, ми обучения х^одгт по»сг0 иожио определить в термв что anropjn«“ изучаемым-"аии иыка с порогами. При попытке описац Понятие и» выразить грели» срсч„слитъ длинный список всех свойств & "^Хемоетъ" нужно определять в терминах 'нс "Лгого класса- ПоИОИУ "„паления понятий. В целом можно сказать, ±^о алгоритма, а ах конкретной области определения, а ., .^чаемость" формулируй* 0„„сания понятии. Мк^« синтаксических саойетв^ дао6дадим0 принимать во внимание ие только 4. При определении изуч набора данных. В целом, нельзя рассчитывать иа фоктивность, ио и “Ф’""4"1 понятия иа основе случайного набора приМсров построение точного и корР мэтсмагачсского ожидания в статистике, мы „аходт, , Скорее, подобно »“,исл“ роятаостыо является корректным. Следовательно, кор. ' понятие, которое с высок и коррсктиой классификации экземпляра во веем рсктность понятия — по вери прос,,МИС1Ве ™^Хи изученных понятий необходимо также учитывать вероятность Помимо коррекпi небольшая вероятность того, что нетипичность “ невозможности обучения. Следовательно, конкре™* мспреяелеиие положительных примеров или конкретное обучающее множество, вы. бплиое ю этих примеров, могут оказаться недостаточными для формирования корреи- иото понятия. При этом нужно учитывать две возможности, вероятность нетипичное™ примеров и вероятность нахождения удачного понятия (обычную ошибку оценивания). В приведенном ниже определении РАС-изучаемости эти возможности ограничены значе- ниями 8 и е соответственно. Итак, изучаемостъ— это свойство пространства понятий, определяемое языком их представления. При исследовании этого пространства необходимо учитывать вероят- ность нетипичное™ данных и вероятность, с которой результирующее понятие позволит корректно классифицировать неизвестные экземпляры, В 1984 году эти рассуждения были формализованы в теории приближенно коррект- ного с высокой вероятностью РЛС-обучения (probably approximately correct learning) [Valiant, 1984]. Класс понятий является РАС-изучаемым, если существует эффективный алгоритм, который с высокой вероятностью находит приближенно корректное понятие. Под cMAwttun7HH° КорРе,ГГНЫм понимается понятие, которое позволяет корректно не- высокой й₽пп ВЬ'СОКИЙ процент новых примеров. Таким образом, алгоритм должен с этом сам понятие- ко™рое является почти корректным, ПРИ леиия является то” чп-^ Ы^^ектийным- Интересным свойством этого опреле- примеров в простоанствЛЯиеО ЯЗДТе'1ЬН0 зависит от распределения положительных Рога и желаемой v ' °Н° ЗЭВИСИТ от ПРИР°™ «ыка понятий, т.е. от no- делении примеров зачаеп/РРеКТНОС7Н' наконеш сделав предположение о распре меньшим количеством ппимеппГ°ЖН0 ПОвысить производительность, т.е. обойти Формально понятие РАС это множество понятий с а X ^чаемости определяется следующим образом. Пусть С щупать алгоритмы, шаблоны илиТ*^0 экзсмг’™ров. В качестве понятий moiT ® ' алгоп^?ИЦа7С;1ЬНые лР«меры Ми Средства Деления множества X на положит - РАС-изучаемым. если суШ^ h Если ДЛЯ ошибки понятия е и вероятное™ йенах™,. горитм, который за полиномиальное время 1 /Ги ГЮНЯ7ИЯ 6 ал- рО0 размера п « |Х| находит такое поняик с ™ С;1Учайной выборке Приме- C. при котором вероятность ошибки обобщения ВЯЯЮЩСсся ^ментом множества Следовательно, для элемента у, подчиняюшегос ГГрСВЫШаюшая £- меньше, чем S. элементы множествах, выполняется соотношение распРслслению’ 410 и Р[Р[у неверно классИфицируется с Помощ^ 2. Время работы алгоритма для л примеров является пп^ !/е и 1/б. 1 тов является полиномиальным и составляет Это определение РАС-изучаемости позволило дока-^т. . „„дуктипнь.х порогов. Например, в работе (Valiant. 1984J поЛ£™о"Х k<NF является изучаемым. Выражения k-CNF — „о „решения а Хюи™в""й нормальной форме с о.раничеиием на количество дизъюнктов. Выражения формируются •° операторов конъюнкции ...с„ где с,- дизъюнктивное выражениТ^^ не более чем из клитералов. Этот теоретический результат обосновывает общепринятое описание понятии в конъюнктивной форме, используемое во многих алгоритмах обуче- ния. Мы не будем приводить доказательство этого утверждения, а отошлем читателя к исходной статье, где обосновывается этот результат, а также свойство изучаемое™ при использовании других порогов. Результаты исследования изучаемое™ понятий я индук- тивных порогов приводятся в работах [Hatissler, 1988] н [Martin, 1997]. 9.5. Знания и обучение Алгоритмы JD3 и исключения кандидата выполняют обобщение за счет поиска законо- мерностей в обучающих данных. Такие алгоритмы называют основанными на подобии (similarity based learning), поскольку обобщение для них является функцией подобия обу- чающих примеров. Пороги, реализованные в этих алгоритмах, представляют собой синтак- сические ограничения на форму представления изученных знаний. Они не предполагают строгих ограничений для семантики области определения. В этом разделе рассматриваются алгоритмы обучения, основанные на объяснении (explanation-based learning), которые при обобщении руководствуются знаниями об области определения. На первый взгляд идея ис- пользования априорных знаний в процессе обучения кажется противоречивой. Однако и в машинном обучении и в исследованиях ученых-когнито.тогов известен тот факт, что до- полнительные априорные знания об области определения повышают эффективность обу- чения. Одним из подтверждений важности знаний в процессе обучения является то, что ал- горитмы обучения, основанные на подобии, опираются на относигатьно батьшонооъем обучающих данных. В отличие от них человек может сформировать корректные обобще- ния на основе нескольких обучающих примеров. Поэтому во многих практических прило- жениях такие же требования выдвигаются и к обучаемым программам. Еще одним аргументом в пользу априорных знаний является т обобще- иийХ0"' ОбуЧаЮШИХ ПР"МЧ>°В МОЖНО иетпеквзтаыми. Ол- нии, большинство из которых окажутся либо бессмыс. „„^-тмяных пооогов. В ним ИЗ средств решения этой проблемы ЯВЛЯ<Л^ простого использова- °м разделе рассматриваются алгоритмы, выходя знаний об области опреде- синтаксических порогов и подтверждающие роль строгих знании об оа Лсиия в процессе обучения. ------------------Гл’М 9. Машинное обучение, основанное иа символьном представлении Часть IV. Машинное ооу 404 405
9.S.I. Алгоритм Meta-DENDRA 1978] _ это один из первых и лучщ^ . Mem-DENDRAL (Buch®"'^енш.. Алгоритм Meta-DENDRAL форм^ Алгор™<снения знани'-’И^Л^рДОКАЕ MacMnerapon^iiMecKoro ВS-cnenpoTp.*» м0ЛХче"ких связей. Специалисты-химики измеряют вес и. водит к разрыву некотар“ *L и интерпретирует эти результаты, чтобы восстановил, тавшихся фрагментов мо«Ч™ " * ₽ амме DENDRAL знания используются в форме исходную структуру “га""ен"я “0Р ф,носких данных. Исходным предположением правил интерпретации масмтоюр и определенноГ| молекулярной структуре. Вы- для правила служит граф. У мест расщепления молекулы. волом правила является тратр > правила на основе результатов масс- Алгоритм Меи'°„^ан,и молекул известной структуры. Входными данными епектрограф.таескотот.с^ твестных соединений, а также масса и алгоритма Meta-w^v полученных в результате спектрографической об- мвХтер^етацп). этах данных восстанавливается исходная структура £оХь> Обобщение данных о нарушении структуры конкретных молекул становится "“^«“обленниТп^граммс DENDRAL используется “теория полупорядка” из орта- нической химии. Хотя эта теория не позволяет напрямую строить правила вывода, она поддерживает интерпретацию нарушений структуры известных молекул. Теория полу- порядка состоит из правил, ограничений и эвристик следующего вида. Двойные и тройные связи не разрываются. В экспериментальных данных можно наблюдать лишь фрагменты, размер которых превышает 2 атома углерода. На основе теории полупорядка в программе DENDRAL формируются пояснения ! структурных нарушений, указывающие наиболее вероятные места расщепления, а также направления возможного перемещения атомов вдоль линий разрывов. Эти пояснения составляют набор положительных примеров для программы формиро- вания правил. Ограничения в левой части правил строятся на основе поиска от общего к частному. Работа алгоритма начинается с рассмотрения наиболее общего описания рас- щепления Х[ *Х2. Этот шаблон означает, чго расщепление, обозначенное символом мо- жет произойти между любыми двумя атомами. Этот шаблон уточняется таким образом: добавление атомов: X, *Хг -> X3-Xs *Х , где оператор ” означает химическую связь, или инсганцирование агомов „ агрибутов агомов Алгоритм Meta-DENDRAi -г иска экстремума в [mn.-тп. Удается только на положительных примерах путем по- такого ограничения аоавн^^ поиятии- Излишнее обобщение предотвращается за счет обучающих примеров В п КандндатоВ’ ПРИ котором они покрывают лишь половин) Уточняются путем модиЛикапи^111"’1 Модулях программы эти правила оцениваются и Преимушество алгоритма М ^nrk°M °бщих или частных правил. ти определения для преобпазеЛ DRAL состоит в использовании знаний об облас ____ Р^бразованщ, одномерных данных в более удобную форму. 406 ----------------------- Часть IV. Машинное обучен^
^„римеров. Интсрпретсццядапньщсо^ 95 2. Обучение на основе объяснения В „бучении на основе объяснения явное представление теоретических знаний об об- „зсги определения используется дпя построения пояснений к обучающим пример! обычно с целью доказательства того, что данный пример следует из этой теории. Фильт- рация шума в обучения на основе объяснения выполняется за счет обобщения пояснений к примерам, а не на основе самих примеров. При этом выбираются соответствующие ас- пекты опыта, и обучающие данные систематизируются в строгую и логически сотласо- „анную структуру. Существует несколько различных реализаций этой идеи. Например, она оказала зна- чительное влияние на представление общих операторов планирования (см. раздел 5.4 и 9.5) в программе STRIPS [Fikes и др„ 1972]. В алгоритме Meta-DENDRAL тоже исполь- зованы преимущества теоретической интерпретации обучающих примеров. В последние годы многие авторы предложили альтернативные формулировки этой идеи [DeJong и Mooney, 1986; Minton, 1988]. Типичным примером является алгоритм обобщения на ос- нове объяснения^ разработанный Митчеллом и его коллегами в 1986 году. В этом разделе будет рассмотрен вариант алгоритма обучения иа основе объяснения EBL (explanation- based learning), разработанный Депонтом и Муни (DeJong и Mooney] в 1986 году. Исходными данными для алгоритма EBL являются следующие. 1. Целевое понятие. Задача обучаемой системы — выработать эффективное опреде- ление этого понятия. В зависимости от типа приложения целевым понятием может быть система классификации, доказанная теорема, план достижения цели или эв- ристика для решения задачи. 2. Обучающий пример. Это пример цели. 3. Теоретические сведения об области определения. Набор правил илн фактов, ис- пользуемых для объяснения того, почему обучающий пример является экземпля- ром целевого понятия. 4. Критерий функциональности. Средства описания формы, которую может прнни мать определение понятия. Для иллюстрации алгоритма EBL рассмотрим пример изучения понятия 'чашка задача была описана Винстоном (Winston) в 1983 году н адаптирована к обучению на оснск ве объяснения Митчеллом и его коллегами в 1986 году. Целевым является правило, которое можно использовать для выяснения, является ли premise(X) -> сир(Х), № premise — это конъюнктивное выражение, соде1^^^^^^мт1Х правил. Допустим, теоретические сведения о чашках пред liftable(X) л holdsJiquid(X) сир(Х) linilid(Z} Part(Z, 1V) л concave(W) л points_up(W) -> holds_ q light (Y) a part(Y, handle) -> Hftable(Y) amall(A) -> light(A) made_of(A, features) —> light(A) r"^ 9. Машинное обучение, основанное на символьном представлении 407
„мпляр целевого понятия, который в данном случас ______ vrO 3K3CM*iJ г Обучаюший пример имеет такой анД: cup(objl) small(obj)) partlobit handle) owns(bob, objt) part(obj), bottom) part(obj)> bowl) points_up{bowl) concave(bowl) color(obj), red). „ппппжим что согласно критерию функциональности целевые поня- И, наконец, предполож ’ наблюдаСмых, структурных свойств объек- тм должны определят н (вогнутость). Можно сформулировать правила, позво- ЯВЛЯеТСЯ °ПИСаНИе ФУИКЦНОИМЬНЬ1М «™ ™ "^ом^ью^Хя'иеских сведений можно обосновать тот факт, что пример действительно является экземпляром изучаемого понятия. Такое обоснование будет иметь вид доказательства, что целевое понятие логически вытекает из примера, как для первого дерева на рис. 9.17. Заметим, что в этом объяснении такие несущественные при- меры из обучающих данных, как красный цвет со/ог(оЬ/1, red), не учитываются, а вни- мание акцентируется на важных свойствах изучаемого понятия. На следующем этапе обучения объяснение следует обобщить и получить определение понятия, которое можно использовать для распознавания других чашек. В алгоритме EBL эта процедура реализована за счет замены переменными тех конкретных значений в дереве доказательства, которые связаны только с конкретным обучающим примером (см. рис. 9.17). На основе обобщенного дерева алгоритм EBL определяет новое правило, за- ключением которого является корневой узел дерева, а начальными условиями — конъ- юнкция листьев small(X) Apart(X, handle) лpart(X,W) л concave(W) л points_up(W) —> сир(Х). ; При построении обобщенного дерева доказательства основная цель — заменить пе- ременными те константы, которые относятся к обучающему примеру, и оставить кон- кретные значения и ограничения, которые являются частью теоретических сведений об , скХСпяниПРеД^еН«,Я* В ЭТ°М примере значение handle (ручка) относится к теоретиче- | тавлено как\? ° ЛаС™ определен11я’ а нс к обучающему экземпляру. Поэтому оно ос- таВОбобщенноееСТВеНН°е 0ГраНИЧеНИе В °*°™ьном правиле. примера различныем|Гс°п0гокадаТепЬСТВа М°ЖН0 П0СТР0ИТЬ на основе обучающего зательства для конкретного п В раб°Те Митчелла сначала строится дерево дока- са, получившего название п рИМСра' КОт°Рое затем обобщается с помощью пропес- лн обобщенная цель (в натр?^ ^gOal re8ression). В процессе регрессия не- казательства, при этом кон* ПрИМере сиР(%У) приравнивается к корню дерева Д°' подстановки выполняются Значения заменяются переменными. Такие менены все соответствующие ™СИВН° П° ВСему Дереву до тех пор, пока не буДУт за' °те [Mitchell и др., 1986] нстанты. Этот процесс более подробно описан в ра 408 Часть IV. Машинное обучение
Д°каэателМ1т1,ото,'с,> что объект оЬ;гяялявтсяча1Цяой cup(ob/1) sma//(obj1) Обобщенное доказательство того, что объектХ — чашка сир(Х) liftable(X) holds liquid(X) light{X) part[X, handle) part{X,W) concave(W) points _up(W) small(X) Puc. ft 7 7. Частное и обобщенное доказательство того факта, что ооъект Хя&тяется чашкой В [DeJong и Mooney. 19861 предложен иьтеРнат"““^^ НТЬ обобщенные н частные деревья одновременно. -ыявлеЮ1Я отличий цели от варианту дерева доказательства, содержащему прав» пеальное доказательств понятия, сформированного за счет под.ст^“ 'p|anatio„ structure) (рис. 9.18) к ПО. Это дерево называется структурой ооъя^ Обучаемая система поддержива- представляет абстрактную структуру доказа j _ объяснения; список конкретных ет два различных списка подстановок для структур примера, и список общих подстановок, необходимый для объяснения о учаю подстановок строятся а подстановок для обоснования обобщенной цели. Эти списки процессе создания структуры объяснения. ся следующим образом. Пусть s, Списки общих и частных подстановок форм р^твенн0 д1Я всех соответствующих 11 'V— списки частных и общих подстановок <.оогв . следующему правилу, сражении et и е2 в структуре объяснения s,hs, обновляю* ei находится в левой части правила, tben begin _ и e2ss %объединить е, и е2 Л. = наиболее о&щий унификатор из i ______________ ---- ---------------------------- 409 Г/1ава 9. Машинное обучение, основанное на символьном представл
при условии sa 5s =5* Tt Г? = наиболее обший при условии Ss Sg ~SgTg end if находится в левой then begin Ta - наиболее общий ss =ssrs end значение sa, скомпоновав его c r «обновит 0 «объединить в1 и * унификатор из i 7 амячение sg, скомпоновав его с Т «Обновить значени 'в повила, а е2 - это факт из обУчаЮщеГо части правила, примера унификатор из е^а и e2ss «объединить ©! и ег «при условии Ss «обновить значение s„ скомпоновав его с Т cupl.obp1 smaftA) II smanlflbj 1) Puc. 9.18. Структура объяснения для примера с чашкой В примере на рис. 9.18 sI = {obj1/X, objl/Y, obj1/A, obrt/Z, bowl/W] st = WY,Y/A, X/Z}. частаоеТ^ Э™ подстанО8кк к сгРУ1<туре объяснения, показанной на рис. 9.18. получим частаоси общее деревья доказательства, „оказанные на рис. 9 17 Преимущества обучения на основе объяснения сводятся к следующему. хьега чашки в1[1гкш,^а'1аС1'УК' сояеРжэт несущественную информацию, наподобие позволяют обучаемой сиХ' ^еоРепяесю*е сведения об области определения 2 . Каждый примердопускаетмно-“°буЧа'0ЩИХпРт,еРовважнысacneh™' рых либо бесполезна либо к Жество Разлнчиь1.х обобщений, большая часть кото- рует заведомо адекватные ^^мыслеина, либо ошибочна. Алгоритм EBL форм11' ность с теоретическими сведенияТ1™ И °беспечивает логическую согласован* 3 - Используя знания об области на основе одного обучающего Пр^еЛаСНня’ алгоритм EBL обеспечивает обучение Часть IV. Машинное обУмеИИб
4 Построение объяснении позволяет обучаемой системе пн. зсП между ее целями и опытом, подобно тому как пп™ редполагать наличие сая- основс се структурных свойств. определение чашки создастся на Алгоритм EBL применялся для решения многочисленна , „„мер. в работе [Mitchell „ ap„ 1983] обсуждается во„ \ 4 обучо"ия' На‘ "LayLEX. Допустим, первый положительный пример исполь™ EBL * ШГ°‘ встретился при вычислении интеграла fZxJdx. Согласно алгоритмуТ^^^ станет элементом множества S, содержащего наиболее конкретные обобщения Од аако человек сразу же о пределит. что используемый при решении этой задачи пр^еы „С зависит от значении коэффициента и показателя степени и может применяться для любых вещественных значений этих переменных (за исключением’показа™, степени -1)- Поэтому можно обобщить этот пример и сделать вывод о том, что опе- рацию ОР1 необходимо применять для вычисления любых интегралов вида b dx. где И И г2 - любые вещественные числа. Для такого обобщения алгоритм LEX был модифицирован на базе знаний алгебры н обучения на основе объяснения. Реа- лизация алгоритма обучения на основе объяснения на языке PROLOG приводится в подразделе 14.8.3. 9,5.3. Алгоритм EBL и обучение на уровне знаний Алгоритм EBL элегантно демонстрирует роль знаний в обучении, однако при его изучении возникает много важных вопросов. Один из самых очевидных сводится к следующему: чему на самом деле учится система на основе объяснения? Чистый ал- горитм EBL позволяет лишь выучить правила в рамках дедуктивного замыкания (deductive closure) существующих теоретических сведений. Это означает, что изу- ченные правила можно сформулировать лишь на основе базы знаний без использо- вания обучающих примеров вообще. Основная роль обучающего примера сводится к фокусированию внимания обучаемой системы на существенных аспектах области определения задачи. Следовательно, алгоритм EBL зачастую рассматривают как од- ну из форм ускорения обучения илн реструктуризации базы знаний. Он ускоряет процесс обучения, поскольку не требует построения дерева доказательства, лежаще- го в основе нового правила. Однако он не позволяет изучить никакой новой инфор- мации. Это отличительное свойство алгоритма было сформулировано Дитрихом (Dietterich) при обсуждении обучения на уровне знаний в 1986 году. Алгоритм EBL извлекает неявную информацию из набора правил и делает ее явной. Например, рассмотрим игру в шахматы. Минимальные знания правил этой игры в соче- ^чии с неограниченными возможностями просчета наперед различных комбинаций обеспечивают компьютеру чрезвычайно высокий уровень игры в шахматы. К сожале- иию, шахматы слишком сложны для реализации изучаемого подхода. Любая обучаемая на основе объяснения система, которая сможет освоить стратегию игры в шахматы, на сам°м деле получит новые (с практической точки зрения) знания. Алгоритм EBL также позволяет отказаться от требования наличия полной и кор- ректной теории описания области определения и сконцентрироваться на приемах Мнения неполных теоретических сведений в контексте EBL. ЧЮИТ Фрагмент дерева решений. Ветви доказательства, которые 6“ть “ троены, указывают на неполноту теории. В этой области возникав «росных вопросов. К ним относятся: разработка эвристик для обоснования Гла»я 9. Машинное обучение, основанное на символьном представлении. 411
и, методологии выделения кредитов и выбор Од. - теории, формирование м пОДЛежашего исправлению. ШЬ” ^скольких неуспешных ^ъЯСНен„я предполагает его интегра. “° Дальнейшее раэ»«тне обучения н в этой области тоже 6ыл0 с подходом к обучению на оси „^полагающих использование Мго_ “ено множество базовых «ян. И иа основе теории с последующей пе. ритма EBL для ^'1"eH,",fi°X„”x данных компоненту обучения на основе под„6ия редачей этих частично обобщенны л „еудачные объяснения можно исподьзо. для дальнейшего обобщения, кр последующИм переходом к обучению на ос- вать для выявления неполно нове подобия. лкОСноваиия на основе ошибочной теории, варианты до- были изучены вопросы о зашумленными или неполными обучающими казательства теорем, методыi р аНиЫХ правил, подлежащих сохранению, данными и методы определения Р е 9.5.4. Обоснование по аналогии Если •чистый" алгоритм EBL обеспечивает лишь дедуктивное обучение, то обосно- ваяХ аХгии - это более гибкий метод использован,« имеющихся знании. Обое давание по аналогии строится на следующих предпосылках. Если две ситуации сходны в некотором отношении, то весьма вероятно, что они окажутся сходными и в других ас- пектах Например, если два дома расположены в одной местности и похожи по архитек. туре, то они, скорее всего, имеют одинаковую стоимость. В отличие от доказательств, используемых в алгоритме EBL, метод аналогии ие является логически строгим. В этом смысле он подобен индукции. Как замечено в [Russell, 1989] и других работах, анало- гия _ эТ0 вид индукции на основе единственного примера. В примере с домами свойст- ва одного дома прогнозируются на основе информация о втором. Как было указано при рассмотрении обоснования на основе опыта (раздел 7.3), ана- логия очень полезна для применения имеющихся знаний к новым ситуациям. Например, предположим, студент изучает свойства электричества, а преподаватель сообщает ему, что электричество напоминает воду, причем напряжение соответствует давлению, сила тока — величине потока, а сопротивление — пропускной способности канала. С помо- щью этой аналогии студент сможет легче понять закон Ома. В стандартной математической модели аналогии используется источник аналогии, который может представлять собой решение задачи, пример или относительно понят- ную теорию, а также не совсем понятная цель. Аналогия — это отображение соответ- ствующих элементов источника и цели. Заключение по аналогии расширяет это от- ражение на новые элементы области определения цели. Возвращаясь к аналогии такжТсип^^ И В0ДЫ’ На 0СН0ве свеДений о соответствии напряжения и давления, а способность канал ВСЛИЧИНЫ потока жидкости можно сделать вывод, что пропускная ХХро™едаГТСТВУет Это поможет лучше разобрав с реаппзацш, вычис^тельны^мме ™Р°к 6b“ р“ра6о,ан унифицированный подход к Gabelli, 1988); [Wolstencroft 19R01 пг °боснования П0 аналогии [Hall, 1989]; [Kedar- . „ ычно этот процесс состоит из следующих этапов- 1 • Поиск (retrieval). Зная ucnenv источник аналогии. Пои эт УЮ ПроблсмУ’ необходимо выбрать потенциальны^ которые подтверждают п °М н^жно выделить те свойства цели и источника. _____________ Рввдоподобие аналогии, а также проиндексировать 412 Часть IV. Машинное обуче^6
знания согласно этим свойствам. В целом, в процессе поиск» определяются исходные элементы отображения. 1 шляются 2 р^итие (уточнение). Обнаружив источник, зачастую следует выделить дополни- тельные свойства и отношения источника. Например, иногда в качестве базиса для аналогии необходимо разработать специфическое пояснение для решения пробле- мы в области определения источника. 1 3 Отображение и логический вывод (mapping and inference). Этот этап предполагает отображение атрибутов источника в область определения цели. Здесь используют- ся и известные соответствия и вывод по аналогии. 4 . Подтверждение Gustiftcation). На этом этапе проверяется ния- При необходимости его следует модифицировать. КОррсктность 0™браже- 5 . Обучение (learning). Полученные знания сохраняются в ™Лй ж.. жет быть полезна в будущем. форме, которая мо Эти этапы реализованы в многочисленных вычислительных моделях обоснования п0 аналогии. Например, теория структурного отображения (structure mapping theory) [Falkenhainer, 1990], [Falkenhainer и др., 1989), [Gentner, 1983] не только позволяет решить проблему поиска полезных аналогий, но и обеспечивает правдоподобную мо- дель понимания аналогий человеком. Основной вопрос при использовании аналогии заключается в том, как отличить выразительные, глубокие аналогии от поверхностных сравнений. В своей работе Гентнер (Gentner) утверждает, что истинные аналогии должны акцентировать внимание иа систематичных, структурных свойствах области определения, а не иа малосущественном сходстве. Например, аналогия “атом подобен солнечной системе” глубже, чем “подсолнух напоминает солнце”, поскольку первая отражает целую систему взаимосвязей между элементами, движущимися по своим ор- битам, а вторая описывает лишь внешнее сходство, состоящее в том, что оба объекта имеют круглую форму и желтый цвет. Это свойство отображения аналогии называется систематичностью (systematicity). Теория структурного отображения формализует эти рассуждения. Рассмотрим пример аналогии атома и солнечной системы, описанный в [Gentner. 1983] и проил- люстрированный иа рис. 9.19. Область определения источника включает предикаты yellow(sun) blue(earth) hotter-than(sun, earth) causes(more-massive(sun, earth), attraction, earth)) causes(attract(sun, earth), revolves-around(earth, sun)). Область определения цели содержит предикаты more-massive(nucleus, electron) revolves-around(electron, nucleus). ПРИ структурном отображении задается соответствие структур источника и цели, оп Ределяемое следующими правилами. ___________________________ 413 Глава 9. Машинное обучение, основанное на символьном пред
Объект Отношение Отношение второго порядка Отображение по аналогии Рис. 9.19. Отображение d.w аналогии 1. Из описания источника исключаются лишние свойства. Поскольку аналогия кон- центрирует внимание на системе отношений, сначала необходимо исключить пре- дикаты, описывающие несущественные свойства источника, В структурном ото- бражении эта процедура формализуется путем исключения из описания источника предикатов с единственным аргументом (унарных предикатов). Это обосновано тем, что предикаты с более высокой арностью, описывающие отношения между несколькими сущностями, содержат систематичную информацию с более высокой степенью вероятности, что и требуется для аналогии. В нашем примере исключа- ются утверждения, определяющие цвет Солнца и Земли yellow(sun) и blue(earth). Заметим, что в описании источника все еще могут содержаться ут- верждения, не имеющие значения для аналогии, например, утверждение о том, что Солнце теплее Земли hotter-than(sun, earth). 2. Отношения отображаются из описания источника в описание цели без изменении. Могут отличаться лишь параметры этих отношений. В нашем примере для источ ника и цели отношения revolves-around (вращается вокруг) и more-massive (более массивный) одинаковы. Такой подход используется во многих теориях 110 строения аналогий. Он позволяет сократить число возможных отображений, а же согласуется с эвристикой о предпочтениях в отображении. 3. При построении отображения в качестве его фокуса целесообразно выбирать °т шения олее высокого порядка. В нашем примере отношением более высокого ншГэта илл7’,Т1аСТ Causes’ ^скольку его аргументами являются другие отноЫе кается принципом систематичности (systematicity principle). Такие правила приводят к отображению sun -> nucleus earth -> electron. Расширяя это отображение, приходим к выражениям causes(more-massive(nucleus electron} causes{attract(nucleus, electron), revolv^aCt{(lUcleus‘ el^tron)) Теория структурного отображения была реализовав '&1вС*Г°П' nucleus^ областях определения. Однако она сще дале1(а от ™ и Тестирована в различных позволяет решить такую проблему, как поиск источника ?°РН" аналогии’ скольку не вычислительным экспериментом и объясняет многие аЛ °™н' Она подтверждается свойственного человеку. И, наконец, в 3T0M радделе Ы обосновання по аналогии, основе опыта (case-based reasoning), описанное в оазделеЛТк ИНаЛ0Сь о6о^апие на дамин н применении базы полезного опыта важная роль озъоди^Х^Г™ "" 9.6. Обучение без учителя Описанные выше алгоритмы построены на принципе обучения с учителем (supervised learning). В них предполагается существование учителя, некоторой меры соответствия или другого внешнего метода классификации обучающих данных. Обучение без учителя (unsupervised learning) не предполагает наличия учителя и обеспечивает формирование понятий в самой обучаемой системе. Пожалуй, лучшим примером обучения без учителя в человеческом сообществе является наука. Ученые не получают знаний от учителя. Они сами выдвигают гипотезы, объясняющие их наблюдения, оценивают эти гипотезы по та- ким критериям, как простота, общность и элегантность, а затем тестируют их с помощью разработанных ими экспериментов. 9.6.1. Научная деятельность н обучение без учителя Одной из первых и наиболее успешных систем, позволяющих »ов“е знания, является программа AM [Davis и Lenat, 1982]; [Lenat и ГОЛ']У „ осно. водит интересные, а иногда и оригинальные, понятия в математике rip , икации вывается на теории множеств, операциях по созданию новых знан < И комбинирования существующих ПОНЯТИЙ интересных” понятий. За счет поиска в простр nrtue™ii теопии чисел, грамма AM “открыла- натуральные числа и несколько важных понятии теории чисе. например, существование простых чисел, .жм|11т«я свое ппедставление Так, программа AM “открыла” натуральные числа^ множествам относится, напри- 0 “множествах с повторяющимися элементами . ММОжества в котором содср- мер (а, а. Ь, с, о). При спецпитании с —н, жатся только элементы одного типа, возникл соответствует числу 4. пример, множество с повторяющимися элементами , ' 1 }и{ 1, 1} ={1 • 1 1 Объединение таких множеств соответствует сложена п£>нятмя 5ЫЛО обнаружено, U или г + 2 = 4. В процессе дальнейшего из>чеш с помощью эвристики Что умножение— это последовательность операций сл^шя ^ ш Определения новых операций путем обращения су _ --- ---------------------------------------455 гДава 9. Машинное обучение, основанное на символьном предста 414 Часть IV. Машинное обучеНие
численное деление. Затем было найдено понятие простого числа, „Мад. ше^Хко Тад делителя (смочисло^П^ оцен|1вает его в соответствии с Не. При создании нового покя™я J определить •‘интересность понят™. Простые сколькими эвристиками. "“в0“ ,амюче„ис основано на частоте их появления. Пр,, числа оказались интересными а генерирует экземпляры базового „оня- оценке понятия по этой эвристн и к опредедению. Если все экземпляры удовлетво- тмя II проверяет их соответс знач„т, это тавтология, и новое понятие получает ряют определению нового, по понятия, не соответствующие ин одному щ низкую оценку. Аныогич понятне описывает значительную часть примеров простых чисел). проеме AM классифицирует его как ните- ресиое и отбирает для д'алось открыть простые числа и несколько дру. ГоХй о^ не см^лаУ продвинуться дюгьше элементарной теории ” сёл В Brown 1984] были проанализированы преимущества программы и ее от- Учения Изначально считалось, что основным преимуществом программы являются её эвристики однако впоследствии оказалось, что своим успехом программа обязана языку представления математических понятий. Понятия в ней представлены рекурсив- ными структурами на языке программирования LISP. Поскольку опнеанне основано на удачно спроектированном языке программирования, в определяемом пространстве плот- ность интересных понятий очень высока. Особенно это проявляется на ранних этапах поиска. При последующем исследовании понятий пространство расширяется по законам комбинаторики, и “доля” интересных понятий в общем пространстве уменьшается. Это наблюдение еще раз подчеркивает связь между представлением и поиском. Еще одной причиной, обусловившей невозможность получения дальнейших впечат- ляющих результатов на основе первых достижений программы AM, является ее неспо- собность “учиться учиться”, В процессе приобретения математических знаний она не выводит новых эвристик. Следовательно, качество поиска снижается с увеличением ма- тематической сложности задач. В этом смысле программа никогда не достигнет глубоко- го понимания математики. Эта проблема впоследствии была решена в программе EVRISKO, которая способна обучиться новым эвристикам [Lenat, 1983]. Проблема автоматического обучения исследовалась во многих программах, В про- грамме IL [Sims, 1987] для “открытия” новых математических понятий использованы различные приемы обучения, в том числе методы автоматического доказательства тео- рем и обучения на основе объяснения (раздел 9,5). Автоматический вывод целочислен- ных последовательностей описан также в [Cotton и др., 2000]. В программе BACON [Langley и др,, 1987] разработаны н реализованы математические Ф°рмированш! количественных научных закономерностей. Например, на основе CON повтопнп иНН0С™ 1у1анет от Солнца и периоде их вращения по орбитам система ВА- модели пеал1пэ1шТКрЬ1Ла 3а„°НЫ КеплеРа 0 движении планет. С помощью вычислительной чипа полезные ЧеЛ0Века в Ручных предметных областях, BACON обеспе- ловека. В системе SCAVENGERlS^И^Следования процессов научной деятельности че- алгоритма ID3 для повышения ubblefield’ 19951. [Stubblefield, 1996] применен вариан [Shrager и Langley 19901 пп пособности формирования полезных аналогий. В работе Несмогря на то что научная° МН0Жество ДРУП» самообучающихся систем. в ней были получены очень деятсльн0сть — важная область исследования, до сих пор очень незначительные результаты. Более фундаментальной нР°- блемои обучения без учителя, пр„ ре _ . из^чение катсгоРий-В [Lakoff j 9gy[°l^p0" ^*44 достигну, сс , ризация - это основа человеческого познан™ “° Ч*Дположад7„"рОгрс“’ зависят от способности систематизировать ^ёё">ГС°'<0уроввевь1е теёёёёГ’ ЧТ° классификационной иерархии. Большая чаёёг ^е1"ый °»“т в логичеёёГё знан,,я Объектов, например к лошадям, а не к отл7 “ий ’'«’века относив ™‘сова‘“«>й Росинанту или Боливару. В работе INordhaus?"0 ,ИЯ1ОЙ “Wenton ;гаш’а-ё М1егоРилм ванне категорий - основа единой теории тёё и’ё'е)''19901 0™ечеко “оТ₽"Ме₽' процессов химических реакций ученые учных исследований п ’ 0 фоРМиРо- единений по таким категориям, ™ ™ «• извес^й TeZ?™31™ В следующем разделе рассматривав? 1 ЩеЛ°ЧЬ” ^“Фн^иии со- clustering) — проблема формирования полезных <М°** (conceptual ванных данных. категории на основе неклассиф^ 9.6.2. Концептуальная кластеризация Для решения задачи кластеризации (clustering problem) требуются набор некласси- фицированных объектов н средства измерения подобия объектов. Целью кластеризации является организация объектов в классы, удовлетворяющие некоторому стандарту каче- ства, например на основе максимального сходства объектов каждого класса. Числовая таксономия (numeric taxonomy) — один из первых подходов к решению за- дач кластеризации. Числовые методы основываются на представлении объектов с помо- 1 шью набора свойств, каждое из которых может принимать некоторое числовое значение. При наличии корректной метрики подобия каждый объект (вектор из л значений призна- ков) можно рассматривать как точку в n-мерном пространстве. Мерой сходства двух объектов можно считать расстояние между ними в этом пространстве. Используя метрику подобия, типичные алгор1ггмы кластеризации строят классы по прин- ципу “снизу вверх’’. В рамках этого подхода, зачастую называемого стратегией накопитель- ной кластеризации (agglomerative clustering), категории формируются следующим образом. ! 1. Проверяются все пары объектов, выбирается пара с максимальной степенью подо- бия, которая и становится кластером. 2. Определяются свойства кластера как некоторые функции свойств элементов (например, среднее значение), и компоненты объектов заменяются этими значе- ниями признаков. । 3. Этот процесс повторяется до тех пор, пока все объекты не будут отнесены к одно- му кластеру. 4. Можно сказать, что многие алгоритмы обучения без учителя оценивают пютность по методу максимального правдоподобия (maximum likelihood density estimation), означает построение распределения, которому с наибольшей вероятностью ияются исходные данные. Примером реализации такого подхода является интерпре- тация набора фонем в приложении обработки естественного языка глава Результатом работы такого алгоритма является бинарное дерево, лис™ которого со- ответствуют экземплярам, а внутренние уз™ - клаТ,р“ Змеиные наборами сим- Этот алгоритм можно распространить на объект , пр является измерение '“•ьнь,х. а не числовых, свойств. Единственной проблемой при этом является измерен ________________ 417 г"ава 9. Машинное обучение, основанное на символьном продета 416 Часть IV. Машинное обучение
, й определенных символьными, а нс числовыми. значеНиЯМи степени подобия объектеобъеКгов с относительным числом совпадают^ Логично связать степень значений признаков. Если даны ^4—bak nbieca^arge. black. wooden, ball}. то можно внеси, метрику подобия :;х^Хсн':ьь;:с«к:^//ап(У(оь/ес(2. оь^ - т„„ кластеризации на основе подобия неадекватно учитывают роль одинаковый вес. В зависимости от контек™ ^каждое свойство может стать более важным, чем другие, а простая метрика поюбия не позволяет выделить главные признаки. Человеческие категории в гораздо большей степени определяются целью категоризации и априорными знаниями о пред- меткой области, а не внешним сходством. В качестве примера рассмотрим китов, кото- рые относятся к категории млекопитающих, а не рыб- При этом внешнее сходство не учитывается, основное внимание уделяется задачам классификации биологических орга- низмов на основе физиологических признаков и с учетом эволюции. Традиционные алгоритмы кластеризации не только не учитывают цели и базовые знания, но и не обеспечивают осмысленное семантическое обоснование сформирован- ных категорий. В этих алгоритмах кластер представляется перечислением всех его эле- ментов. Алгоритмы не позволяют получить содержательные определения или общие правила описания семантики категории, которые можно было бы использовать для клас- сификации как известных, так и неизвестных представителей этой категории. Например, множество людей, которые избирались на пост генерального секретаря ООН, можно представить в виде обычного списка. Содержательное определение {X | X, которые избирались на пост генерального секретаря ООН} позволяет выделить семантические свойства класса и классифицировать будущих пред- ставителей этой категории. Концептуальная кластеризация (conceptual clustering) позволяет решить эти проблемы за счет использования методов машинного обучения для создания общих определений по- нятии и применения базовых знаний при формировании этих категорий. Хорошим приме- ром реализации этого подхода является система CLUSTER/2 [Michalski и Stepp, 1983]. в*истпт^-П°р11Й НСПОЛЬЗУЮТСЯ базовые знания в форме языковых порогов. ___ зто ПЯПЯМА формируются к категорий на базе к опорных объектов, где кластеры выбивает “астраиваемый пользователем. Программа оценивает полученные “ повхоряех^ох процесс до тех пор. пока рии качества. Этот алгоритм имеет следующий вид. помошью сушествующих 310 МОЖИО СДеЛЭТЬ С 2. Для каждого опорного об^рыт^ а все остальные — R ' ИСПОЛЬЗУЯ его в качестве положительного примера» . естве отрицательных, создать наиболее общее определе 418 Часть IV. Машинное обучение
ине, покрывающее все положительные тнм, что при этом может образоваться относящимися к опорным) объектами. и ни одного отрицательного примера. Замс- нссколько классов, связанных с другими (нс з. Классифицировать все объекты в соответствии с этими описаниями. Заменить ка- ждое максимально общее определение максимально конкретным, покрывающим все объекты этой категории. При этом снижается вероятность перекрытия классов При классификации новых, неизвестных ранее объектов. 4. Классы могут перекрываться даже для объектов обучающего множества. В систе- му CLUSTER/2 включен алгоритм настройки перекрывающихся определений. 5. С помощью метрики расстояния выбрать элемент, ближайший к центру каждого класса. Метрика расстояния может напоминать описанную выше метрику подобия. 6. Используя эти центральные элементы в качестве опорных, повторить пункты 1-5. Алгоритм завершается после формирования приемлемых кластеров. Типичной ме- рой качества является сложность общих описаний классов. Например, согласно принципу “бритвы Оккама’’ следует отдавать предпочтение кластерам с синтакси- чески простыми определениями, т.е. с малым числом конъюнктов. 7. Если кластеры неприемлемы, но в течение нескольких итераций не наблюдается никаких улучшений, выберите новые опорные объекты, ближайшие к границе кла- стеров, а ие к его центру. Этапы работы алгоритма CLUSTER/2 показаны на рис. 9.20. После выбора опорных объектов (п. 1) После создания общих описаний (п. 2, 3) Заметим, что категории перекрываются После конкретизации описания понятий (п. 4). Пересекающиеся фрагменты все еще есть Рис. 9.20. Этапы выполнения алгоритма После устранения дублирования элементов (п. 5) CLUSTER/2 9.6.3. Пр.гр.р». COB-WEB . ПОТ-™— Н . vak и многие алгоритмы обучения с учителем, Многие алгоритмы кластеризации, необходимых и достаточных условии типа ID3, определяют категории в терм предСТаВляют собой наборы призна- принадлежиости этим категориям. Этн у отличных от признаков другой ка- ков, свойственных каждому элементу катег _____________________________ . ------------- 4-JQ Глава 9. Машинное обучение, основанное на символьном предста
тдам ги6костью и болес 'структурой* ЧСМ 8 0,"1МИ" ские^атегоР1111 ва самом далс “"Ределялис. ввд6 "°нХ«Р. 6“Х°вХи принадлежности, мы нс смогли бы отличить „ими и »^ГОЧМ“М «о По'«»'го™ °™еЧаЮТ прототипов в Чл? этой Например, для человека малиновка - бо,|се » веческих «отгори» ° _ 6олее типичный пример дерева, чем пальма (2 НЫЙ пример птицы, чем ун • минимум. В северных “ИР° даются теорией семейного сходства (family resemble э™ Рассу"си“ " что категории определяются сложной системой сходства меж., theory), которая гласит. и ц достаточными условиями принадлежности члена, элементами, в иен катеГОризации может не существовать свойств, общ, [WTotm ™в класса. В работе [Wittgenstein, 1953) приводится пример категории У* »е во игоы предполагают наличие двух или нескольких игроков (наПр„мер, к0„. , «Вй не для всех игр четко сформулированы правила (например, для дет. всДггрь! предполагают соревнование, подобно перетягиванию каната. Тем не [“от эта категория хорошо определена и недвусмысленна Человеческие категории также отличаются от большинства формальных иерар. хий наследования (глава 8) тем. что не все уровни человеческой таксономии олива- ково важны. Психологам удалось продемонстрировать существование категорий базового уровня (base-level category) [Rosch, 1978]. Базовая категория — это класси- фикация, которая чаше всего используется для описания объектов в терминах, изу- ченных с раннего детства, на уровне, в некотором смысле охватывающем наиболее фундаментальные свойства объекта. Например, категория стул является более ба- зовой, чем любое ее обобщение, в частности, “мебель”, или любая ее специализация, например, “офисный стул". “Машина" — это более базовая категория, чем “седан" или “транспортное средство”. Обычные средства представления классов или их иерархии, в том числе логическое представление, иерархия наследования, векторы признаков или деревья решений, не учи- тывают этого, хотя это очень важно не только для ученых-когиитологов, целью которых является познание человеческого интеллекта. Это имеет большое значение и для по- строения полезных приложений искусственного интеллекта. Пользователи оценивают программу в терминах гибкости, робастности и соответствия ее поведения человеческим стандартам. И хотя вовсе нс требуется, чтобы все алгоритмы искусственного интеллекта учитывали параллельность обработки информации мозгом человека, все алгоритмы изу- чения категории должны оправдывать ожидания пользователя относительно структуры к поведения этих категорий. Эти проблемы учтены в системе COB-WEB [Fisher, 1987]. Не претендуя на заа- vnoRw ДеЛИ человеческого познания, эта система учитывает категории базового го л ппп СТепень ^Ринадлежности элемента соответствующей категории. Кроме то- буюший пп?Ме В^ЕВ реализован инкрементальный алгоритм обучения, не тре приложения*4СТкаВЛеНЯЯ всех обучающих примеров до начала обучения. Во многих дХ Хт«У,ИММ СПСТеМа П0ЛуЧаСТ ‘° временем. В этом случае о£ новлять эта опиД°ЛеЗНЫе опРеделения понятий на основе исходных данных н ° описания с появлением новой информации. В системе COBWEB так*= пешена проблема определения корректного чт.™., TER/2 формируется изначально заданное число категоошГп В Пр0ГрЗММС CLUS' и-г1. -vrn число опнякп СЛ0 категоРин‘ Пользователь может нз- меня ’ одход нельзя назвать гибким. В системе COBWEB для определения количества кластеров, глубины иерархии и прилежности кате горни новых экземпляров используется глобальная мЛшка качества В отличие от рассмотренных ранее алгоритмов, в системе COBWEB реализовано ве- роятностное представление категории. Принадлежность категории определяется не на- бором значении каждого свойства объекта, а вероятностью появления значения. Напри- мер, Р( i Чц сь это условная вероятность, с которой свойство ft принимает значение V если объект относится к категории ct. На рис-9.21 показана система классификации программы COBWEB, приведенная в работе [Gennan и др., 1989]. Это пример категоризации четырех одноклеточных организмов, изображенных в нижней части рисунка. Каждый класс определяется значениями следующих свойств: цвет, количество хвостов и ядер. Например, к кате- гории СЗ относятся объекты, имеющие по 2 хвоста и ядра с вероятностью 1,0, и светлые с вероятностью 0,5. Как видно из рис. 9.21, для каждой категории в иерархии определены вероятности вхождения всех значений каждого свойства. Это важно как для категоризации новых эк- земпляров, так и для изменения структуры категорий для более полного соответствия свойствам их элементов. Поскольку в системе COBWEB реализован инкрементальный алгоритм обучения, она не разделяет эти операции. При предъявлении нового экземпля- ра система COBWEB оценивает качество отнесения этого примера к существующей ка- тегории и модификации иерархии категорий в соответствии с новым представителем. Критерием оценки качества классификации является полезность категории (category utility) [Gluck и Corter, 1985]. Критерий полезности категории был определен при иссле- довании человеческой категоризации. Он учитывает влияние категорий базового уровня и другие аспекты структуры человеческих категорий. Критерий полезности категории максимизирует вероятность того, что два объек- та, отнесенные к одной категории, имеют одинаковые значения свойств и значения свойств для объектов из различных категорий отличаются. Полезность категории определяется формулой =^lc‘)p(c4/' =v^‘ Значения суммируются по всем категориям с^, всем свойствам f, и всем значениям свойств Значение p(f,=Vy\Ck) называется предсказуемостью (predictability). Это веро- ятность того, что объект, для которого свойство f, принимает значение vv, относится к ка тегории с*. Чем выше это значение, тем вероятнее, что свойства двух объектов, отнесен- ных к одной категории, имеют одинаковые значения. Величина р( cj f-v,,) называется предиктивностью (predictiveness). Это вероятность того, что для объектов из категории ct свойство f, принимает значение vy. Чем больше эта величина, тем менее вероятно, что для объектов, не относящихся к данной категории, это свойство будет прннима ука занное значение. Значение p(ft=vy) - это весовой коэффициент, усиливающий влияние наиболее распространенных свойств. Благодаря совместному учету этих значении кая полезность категории означает высокую вероятность того, что о ъекты из тегории обладают одинаковыми свойствами, и низкую вероятность наличия этих свойств у объектов из других категорий. 420 Часть IV. Машинное обучение Глава 9. Машинное обучение, основанное на символьном предо 421
P( Cl 1=4/4 Кетегор***» с 1 ~^егв7~3^чение pW 'я™ П? Два____________О Цвет Светлый 0 50 Темный 0 50 Категория С2 Р<С2)*1/4 Свойство Значение р(Ис) Хвост Один 10 Два 0.0 0 25 0 50 0 25 Ядро Одко Два Три Категория СЗ ₽{СЗ)=2/4 Свойство Значение рМс) Хвост Один 0-0 Два 1 О Цвет Светлый 1 О Темный О О Цвет Светлый 0 50 Темный 0 50 Ядро Одно Два Три 1.0 0.0 00 0.0 1.0 0.0 Ядро Одно Два Три Категория С4 Р(С4)=1/4 Свойство Значение P(vtc} Хвост Один 1 ,о Два 0.0 Цвет Светлый 0.0 Темный 1.0 Ядро Одно 0.0 Два 00 Три 1.0 Категория С5 Р(С5)=1/4 Категория С6 Р(С6)=1/4 Свойство Значение p(vlc) Хвост Один 0.0 Два 1.0 Свойство Значение p(vic) Хвост Один 0.0 Два 1.0 Цвет Светлый 1.0 Темный О О Цвет Светлый 0.0 Темный 1.0 Ядро Одно Два Три 0.0 1 0 00 Ядро Одно Два Три 0,0 1.0 0.0 ^0 В Рис. 9.21. Кластеризация четырех одноклеточных организмов в систем Алгоритм COBWEB имеет следующий вид. cobwebtNode, Instance) Begin if узел Node — это лист, then begin создать два задать для Узла £^е\УЭЛа для Узла Node; инициализировав BeD веР°ятности, что и для узла Node; 3наченияМи ог>, Оятн°сти для узла L2 соответствующим11 объекта Instance- 422 Часть IV. Машинное обучеНИ
end добавить Instance к Node, обнови* Node; Обновив вероятности для узла end else begin добавить Instance к Node, обновив Node; ооновив вероятности для узла для каждого дочернего узла С v— вычислить полезность категории экземпляра Instance к категории С- пусть Si - значение полезности классификации Сх; пусть S2 - значение для второй классификации С2; пусть $3 — значение полезности __________ экземпляра к новой категории; пусть S4 - значение для слияния Сх и С2 в одну категорию; пусть Ss - значение для разделения Сх (замены дочерними категориями); узла Node * л при отнесении Для наилучшей наилучшей для отнесения end if Sx — наилучшее значение, then cobweb(Сх, Instance) else, if S3 _ наилучшее значение, then инициализировать вероятности для новой категории значениями Instance else, if St _ наилучшее значение, then begin пусть Св — результат слияния Сх и С2; сobweb(Са, Instance} end else, if Sj _ наилучший результат, then Begin разделить Cx; cobweb (CB, Instance) end; %отнести экземпляр к С В системе COBWEB реализован метод поиска экстремума в пространстве возможных кластеров с использованием критерия полезности категорий для оценки и выбора воз- можных способов категоризации. Сначала вводится единственная категория, свойства которой совпадают со свойствами первого экземпляра. Для каждого последующего эк- земпляра алгоритм начинает свою работу с корневой категории и движется далее по де- реву. На каждом уровне выполняется оценка эффективности категоризации на основе полезности категории. При этом оцениваются результаты следующих операций. 1. Отнесение экземпляра к наилучшей из существующих категорий. 2. Добавление новой категории, содержащей единственны» экземпляр. 3. Слияние двух существующих категорий в одну новую с добавлением в нее этого экземпляра. 4. Разбиение существующей категории на две и отнесение экземпляра к лучшей из вновь созданных категорий. Глава 9. Машинное обучение, основанное на символьном представлении.. 423
пппнессы слияния и разделения узлов. Для слияния Двух На рис. 9.22 показаны прон существуЮщие узлы становятся дочерними. на^°а создается новый узел, дм вычнсляются вероятности дзд н080Г(ЛНо' ве значении веРояТНО --меняется двумя дочерними. УЖ ПрИ разбиении о»ии узе вен „ выполняет кластеризацию иа разуМНос Т пХьку а нем используется вероятностное представление прин^' ’ Л0 К"а^- . .категории являются ™бИ,М“ И Р°баетНЬ,МИ КР°МС Тога- » нем про* ' я"’ зХг X орнй базового уровня, поддерживается прототипирование „ mяэффР 0„ основан не на классической логике, а, подобно м„ " '"ХечеСТож^а. учитывает•‘неоп^енность” категоризации как нео6^ "ый компонеит обучения и рассуждений в гибко., и интеллектуальной манере. Разбиение Слияние Рис. 9.22. Слияние и разбиение узлов описывается обучение с подкреплением, при котором, подобно условие 1/ЛаССИФикац11И из раздела 11.2, для изучения оптимального набора отношении условие-отклик учитываются обратные связи с внешней средой. 9.7. Обучение с подкреплением_______________________ обратная связь ввиван^Т^*^ Процессе взаимодействия с окружающим миром. ОдН3*? Форме. Например вТеХГ^11 ЧеЛОВека’ не всегда проявляется сразу ив явноГ ваются лишь по ппошесг'Г460^4 взаимоотн°шениях результаты наших действий ска3 всегда можно прослед,““^Р0'0 вРсме“«' На примере взаимодействия с мИР причинно-следственные связи [Pearl, 2000], а также послед 424 Часть IV. Машинное обучение
тсльности действий, приводящие к реализации агенты люди вырабатывают политику своей деятель Целей‘ Как интеллектуальные этом “мир" выступает в роли учителя, но его уоокиэя»^ В их мире. При Р ачастУ1° слабы и трудно усваиваются. 9.7.1. Компоненты обучения с подкреплением перехода от ситуации к J XnXZT’ ВЬ"“СЛИ1сл,>ныП мго₽'™ сообщается напрямую, как поступить или какое действи7ппст’"аГР“^еН1":' "С своего опыта узнает, какие действия приводят к наибольш’сХ^гр^нию Дей “ ВИЯ агента определяются не только сиюминутным пезульта™ u п Д ствиямн и случайными вознаграждениями. Э™ два свойства (метод “p^o™fcГи подкрепление с задержкой) являются основными характеристиками общения с no Jen леннем. Следовательно, такое обучение реализует более общую методологию, чем алто- ритмы обучения, описанные выше в этой главе. Обучение с подкреплением не определяется конкретными методами обучения. Оно характеризуется действиями объекта в среде и откликом этой среды. Любой метод, реа- лизующий подобное взаимодействие, относится к обучению с подкреплением. Такое обучение отличается от обучения с учителем, при котором “учитель" с использованием примеров напрямую инструктирует или тренирует обучаемую систему. При обучении с подкреплением агент обучается сам с помощью проб, ошибок и обратной связи. Он оп- ределяет оптимальную политику для достижения цели во внешней среде. (В этом смысле данный метод напоминает обучение классификации, описанное в разделе 11.3.) При обучении с подкреплением необходимо также учитывать не только существую- щие, но и будущие знания. Чтобы оптимизировать возможное вознаграждение, агент не только должен опираться на свои знания, но и исследовать еще неизведанную им часть окружающего мира. Такое исследование (возможно) позволит ему сделать лучший вы- бор в будущем. Одиако очевидно, что одно исследование или его полное отсутствие да- дут плохой результат. Агент должен изучить различные возможности и выбрать наибо- лее перспективные. В задачах со стохастическими параметрами для получения достовер- ных оценок попытки исследования должны повторяться многократно. Многие проблемно-ориентированные алгоритмы, описанные ранее в этой книге, включая алгоритмы планирования, методы принятия решений или алгоритмы поиска, можно рассматривать в контексте обучения с подкреплением. Например, можно создать план с помощью телео-реактивного контроллера (раздел 7.4), а затем оценить его на ос нове алгоритма обучения с подкреплением. По существу, в алгоритме о учения с под креплением DYNA-Q [Sutton, 1990, 1991] модельное обучение объединено с планирова- нием и действием. Такое обучение с подкреплением обеспечивает метод оценки как пла- на, так и модели, а также их полезности для решения задач в сложной среде. Введем некоторые обозначения из области обучения с подкреплен» е 1 — дискретный момент времени в процессе решения задачи s , — состояние задачи в момент времени f, которое зависит , i а, — действие в момент времени Г, зависящее от s„ G — вознаграждение в момент времени t, зав"СЯ^е ^)янш. т е, отображение из п - политика выполнения действий в зависимости от состояния. пространства состояний в пространство действии, я* — оптимальная политика; 7 данное на символьном представлении.. 425 Глава 9. Машинное обучение, основанное на
т „ .лS) — это ценность состояния s при использовании v - функция ценности, т.е. S) анИи ПОЛИТИКИ я. „ 0 7 2 пои постоянной политике я описан метод временных разНос В подразделе 9.7-2 при поVHa0CH0Bes. Л'Го6^никГС"“Х'^"‘<ем »Ч,Я’УЮТ 4 КОМГ,ОН™7 фу<^ ИИо. В обучении с плт МОТЙ„Л и зачас1ую, модель внешней среды. Ли1а вы°бор обучаемого агент,, и способ его действия в определенное ареия. т "ожег бытьХстз^ "₽авялаМ" аыаоаа ,Un* ПР°СТ°И та6ЛИЦеЙ ™ИС1а й« в конкретной ситуации политика может выступать результатом рас. Хе^ото поиска, анализа модели или процесса планирования. Она может быть стохас- Хкой. Политика — зто критичный компонент агента обучения, поскольку ее одвд достаточно для определения поведения в заданный момент времени. функция вознаграждения (reward function) г, задает отношение состояние-цель для данной задачи в момент времени t. Она определяет отображение каждого действия, или, более точно, каждой пары “состояние-отклик , в меру вознаграждения, определяющую степень эффективности этого действия для достижения цели. В процессе обучения с подкреплением перед агентом ставится цель максимизации общего вознаграждения, по- лучаемого в результате решения задачи. функция стоимости, или ценности (value function), V— это свойство каждого со- стояния среды, определяющее величину вознаграждения, на которое может рассчиты- вать система, продолжая действовать из этого состояния. Если функция вознаграждения определяет сиюминутную эффективность пары “состояние-отклик", то функция ценно- сти задает долговременную перспективность состояния среды. Значение состояния опре- деляется как на основе его внутреннего качества, так и на основе качества состояний, ве- роятно, последующих за данным, т.е. вознаграждения, получаемого при переходе в эти состояния. Например, пара “состояние-действие” может приводить к низкому сиюми- нутному вознаграждению, но иметь высокую ценность, поскольку за ней обычно следу- ют другие состояния с высоким вознаграждением. Низкая ценность соответствует со- стояниям, не приводящим к успешному решению задачи. Без функции вознаграждения нельзя определить значение ценности, которую необхо- димо оценить для получения более высокого вознаграждения. Однако в процессе приня- тия решении нас в первую очередь интересует ценность, поскольку она определяет со- стояния и их комбинации, приводящие к максимальному вознаграждению. Вознагражде' ие предоставляется непосредственно внешней средой, а стоимость может многократно С° времснем на осн°ве успешного и ошибочного опыта. На самом деле, мето1аТгЫЬ^ТИЧНЫМ И Сложным м°ментом обучения с подкреплением является создание ниянаоснокУг^НОГ° определения Ценности. Один из таких методов— правило обуче- Последним^ HeofiHWX раЗН0СТСИ бУдет продемонстрирован в подразделе 9.7.2. внешней среды. МодслГ— ЬНЫМ Элементом обучения с подкреплением является модель аы. Как следует из пяз механизм реализации аспектов поведения внешней сре сбоев, как в диагностике' М0Дели можно использовать не только для выявлен” нить результаты возможн'м/ опрсделенни плана действий. Модели позволяют о основе моделей_этосав деиств1»и без их реального выполнения. Планирован»» поскольку в ранних систсм^*1”^ дополнение к парадигме обучения с подкреплен!» пробными действиями и шш _3начен,ы вознаграждения и ценности определялись и ошибками агента. 426 Часть IV. Машинное обучен
9.7.2. Пример: снова “крестики-нолнкн” Проиллюстрируем алгоритм обучения с нолики”. Этот пример уже рассматривался в глаХ Он же 'фНМерС "кРестик,‘- 1998] ДЛЯ иллюстрации обучения с подкреплением Цетеег^0^30^ & " ВаП°' подтфепленисм с другими подходами, например микимакиым.ХХХ.^‘ Напомним, что крестики-иолики" - „о игра д д, Myx челоаек^торТеТо очереди расставляют свои метки X и о в сетке, размером 3x3 (см. рис. 1I.V). Пг^сает и™ первым составивши,, ряд ИЗ трех меток либо ПО горизонтали, либо по вертшалиЛИ& „О диагонали. Как известно читателю из раздела 4.3, при наличии политинформации о планах оппонента эта игра всегда завершается вничью. Одиако при использовании обу- чения с подкреплением можно получить более интересный результат. В этом разделе бу- дет показано, как можно разгадать планы соперника и выработать политику, позволяю- щую максимизировать свое преимущество. Эта политика эволюционирует при измене- нии стиля игры соперника и строится на использовании модели. Во-первых, необходимо создать таблицу, в которой каждому возможному состоянию игры соответствует одно число. Эти числа, определяющие ценность состояния, отражают текущую оценку вероятности победы, если игра начинается с этого состояния. Они будут использованы для выработки стратегии чистой победы, при которой победа соперника или ничья рассматриваются как поражение. Такой подход позволяет сконцентрироваться иа победе, и этим он отличается от рассмотренной в разделе 4.3 модели, предполагающей 3 возможных исхода: победа, поражение и ничья. Это действительно важное отличие. В обу- чении с подкреплением учитывается поведение реального соперника, а не полная инфор- мация о действиях некоего идеализированного оппонента. В таблице значения ценности нужно проинициализнровать следующим образом: 1 — для тех состояний, которые приво- дят к победе, 0 — для приводящих к поражению или ничьей и 0.5 — для всех остальных неизвестных позиций. Это соответствует 509с вероятности победы для этих состояний. Теперь нужно многократно сыграть в игру с этим противником. Для простоты пред- положим, что мы ставим крестики, а наш оппонент — нолики. На рис. 9.23 показана по- следовательность ходов — возможных и реализованных. Прежде чем сделать ход, оце- ните каждое из возможных состояний, в которое можно перейти из данного состояния. По таблице определите текущее значение ценности для каждого состояния. Чаще всего придется делать “жадные” ходы, т.е. выбирать состояния с максимальным значением функции ценности Иногда, возможно, потребуется сделать пробный ход и выбрать сле- дующее состояние случайным образом. Такие пробные ходы позволяют выявить упу щенные альтернативы и расширить пространство оптимизации. В процессе игры значение функции ценности для каждого выбранного состояния изменя^ елся, чтобы лучше отразить вероятность принадлежности данного состояния к "п дном) пути. Эта величина ранее бьша названа функцией вознаграждения для состоянии Ценность выбранного состояния вычисляется как функция от ценности С'1е'Э возвоа- ного состояния. Как показывают направленные вверх стрелки на рис. ,ТОчня- гах не учитывается ход соперника. Таким образом, ценность Ценность преды- г у побелы или поражения) ценность гдхды егся с учетом ценности последующего (и. конечна значениями ценности двух Душе го состояния изменяется на величинукоэфф11Ш1еит с. учившим не- последовательных состояний, умноженную на ие спор ние шагового множителя, или параметра шага (step-size paramecerr V,(sJ = (/(s„) + c(U(s„.1)-Vf(s.)) 427 Глава 9. Машинное обучение, основанное на символьном представлении
—‘—f- Мойход XI I 1х о I 10 Ход соперника I (ПОБЕДА') ходов » Х®ыШют ,,,,Ыю га/™е/“''“" “ ст>>а'те «^т1тент №а,ХХ’™^"ие при '“ « этом соотношении з„ ПМлСтзо на основГвпеТ^' Ш$рыное в момент л+i° 3°*^’ ВыбРаНН0е в момент времени п, а состояния Вы^еННЬи ^аз,/°стей (temporal dfff ° Уравнение — пример правила обучения Wx последоватеТ^ $УнкЦия от разност^0 learninS rule)’ поскольку изменение ^^azxr^ »₽е«~: ~ цеииости » Для игры в “крес ” Главе- П' Такие правила обучения будут об- менной системьГеС°ОбраЗНо Уменьшить разностей достаточно эффектна- тировать сходимосп3!34^^ ценности должи Говыи множитель с, поскольку для более победы при игре с ^УНкДни ценности ллв Ы ИЗМеНяться меньше. Тогда можно гаран- ^ножителя привелр^ННЬ1М С0ПеРником Имт Каждого СОСтояния к значению вероятности изменяться, отражая Г°Му’ 'П° Такая политРеСН° 0Тмстить’ что неизменность шагового Этот пример илл рвение (улучшеншГ'^ НИК°ГДа не сойдется и будет постоянно "Ч**. такое Об™ “'’’’"РУет много 'Z С1ИЛЯ противника, е происходит в ппо<<.ЫХ свойств обучения с подкреплением. В» ссе взаимодействия с внешней средой, в 428 Часть IV. Машинное обучен^6
НОМ случае - с соперником. Во-вторых, здесь имеет.. вых состояниях), и, чтобы ее достичь необходим янная Цель (отраженная в целе- нью обеспечить долгосрочное влияние конкретнь ° ПЛанировать и прогнозировать с це- с подкреплением, по существу, стр0Ит многоходо* Х°Д°В‘ Например’ алгоритм обучения нугь неопытного соперника. Важное свойство об^Т КОМбинации’ К0Т0Рые могут обма- что результата планирования и прогнозирования мож™ ° ПОДК₽сплением состоит в том, ведение соперника и не проводя расширенный поиск Д0СТИЧЬ’ Не маделиРУ* явно по- В рассмотренном примере для обучения up „.J правил игры. (Просто все состояния, кроме ктаечиых"^,бИ°В“е ЗИаНИЯ' Кр0М' ем 0,5.) Олнако такая “уравниловка” вовсе не обязательна nTZT"™ 3“™' „нем можно учесть и „ю6>ю решы1ую информанХ“ х1™ГхТрХ- ТО. при наличии данных о ситуации для значений состояний можно использовав сГе- ден!1Я из этой мололи. Важно помнить, что обучение с подкреплением применимо в любом случае, даже при отсутствии модели, олнако при наличии модельной информации ее тоже можно учесть. г В примере игры крестики-нолики” вознаграждение амортизируется с каждым следую- щим шагом. Здесь используется "близорукий” агент, максимизирующий только сиюминут- ное вознаграждение. На самом деле, при более пристальном изучении обучения с подкреп- лением необходимо учитывать "обесценивание” вознаграждения со временем. Пусть ко- эффициент у представляет текущее значение будущего вознаграждения. При получении вознаграждения на к шагов позже его стоимость снижается в у**1 раз. Такая мера "обесценивания” важна для реализации обучения с подкреплением на базе принципа ди- намического программирования. Этот подход будет описан в следующем разделе. "Крестики-нолики" — это пример игры с участием двух соперников. Обучение с под- креплением можно также применять при отсутствии противника, учитывая только об- ратную связь с окружающей средой. Рассмотренный пример характеризуется конечным (к тому же очень маленьким) пространством состояний. Обучение с подкреплением можно также применять для очень больших и бесконечных пространств. В последнем случае ценность состояния определяется только при достижении этого состояния и его участии в решении. Например, в работе [Tesauro, 1995] упомянутое выше правило вре- менных разностей встроено в нейронную сеть для обучения игре в нарды. Несмотря на то что пространство состояний игры в нарды содержит 10 значении, разработанная программа играет на уровне лучших специалистов. 9.7,3. Алгоритмы вывода и их применение к обучению с подкреплением В работе [Sutton и Barto, 1998] выделены три семейства алгоритмов обучения^под- креплением на основе вывода: обучение по правилу временных совое- мического программирования и метод Монте-Карло. этим типам основаны И е „„тоетрппрмием Методы временных разностей основаны менные подходы к обучению с подкреплением Meд ценности состояния на на использовании известных траектории и пер пкючрмня игле в “кпестики- основе ценности последующего состояния. Пример правил‘ - пазделе. нолики” на основе временных разностей ра^’^епНо®^вычисление фикции стоимо- Метод динамического программирования р СТО1(Мости последующего. Со- сти предыдущего состояния на основе значе Ф> паспределения для последующего стояния систематически обновляются с ‘ 1наМ11Рческ0Г0 программирования осно- состояния. Обучение с подкреплением метод _ ____ _________ _ 429 Глава 9. Машинное обучение, основанное на символьном представав
мн0 ц. том. -по для лю6ой — ’ " ЛЮб0ГО С°™Н"" ’ ”Ь'П0ЛНЯте’ рекурсивное УРависн1,с данного состояния s при использовании . > _ вероятность де^;. Г вероятность перехода из состояния s в ^Под rae’( „я Хики ”• ”1S^S Ася “уравнением Бсплмаиа для У“. Оно выражай хастйчес№И сражение "а,ыва"оя„,,‘ „ рекурсивно вычисляемыми значениям,, действием а. сТОИМостью 9 74 а показан первый этап вычислений ^ГГго^^сояоГ^,и возможных последующих состояния. При Ис’ s Р'"'ВХСь действия а составляет п( а | s). Для каждого и Г^ии полип*»1 л вероятность окружающей среды может осуществиться "™“ех состояний В Р^"ц.й. скажем, s'c вознаграждением г. В уравнен,в, ХхМ’»л“0‘ЙВК“ЛЬИ,ХсХ«>тся С учетом вероятности реализации каждой м Хана эти возможности УЧ*начаЛьното состояния s пропорциональна них. Согласно зтому УР™< "“X™ * коэффициентом у н вознаграждению, полу, стоимости всех последующих состо ченному вдоль всего пути. Рис. 9.24. Диаграммы вычисления V*, а) и Q * б) методом обратно- го прохода пенне, поскольку он предполагает^0™ 11р°' раммнрования имеет ограниченное приме- няй и управляющих возлей - 351114116 идеальной модели. Если количество состоя- ского программирования по^^^д^ь опт " С°°ТВеТСТВенно’ то метод Динамнче’ время, несмотря на то что об ДИТЬ 0ПТимальнУю политику за полиномиальное смысле скорость динамического^ ЧНСЛ° детеРминистских политик равно пт. В этом нению с прямыми методами ПрОграммиР°вания экспоненциально возрастает по срав- обеспечения таких же гарантий пространстве политик, поскольку прямые методы для Метод Монте-Карло не требГ ^°Т ВсестоРонней оценки каждой политики. метода испытывается каждая тгиТ Наличия Полиой модели. При использовании этого испытаний обновляется значение УОрИя вменения состояний, и по результатам таких нужен лишь опыт, т.е. последонят^*11”” СТ0НМ0СТи- Для работы метода Монте-Карло ограждений, полученная в пс'К'и1СЯЬН°СГЬ СОСтояний, управляющих воздействий и воз- знаНМ°Лег11р0Вад,1я- бальный реадьного «заимодействия с внешней средой или на ОТ °б Окр^аю^й среде не™ерИМеНТ “Пресен тем, что он не требует начальных иове модельного зкспсриментаЗВ0Ляет ПОлУч,,ть оптимальный результат. Обучен»6 --------- тоже дает хорошие результаты. При этом нужна м° 430 Часть IV. Машинное обучение
дель, которая может быть не аналитической, а численной п вать траектории и может ие вычислять точные значе Яолжна просто генериро- она не должна обеспечивать полное распределение в Вер0ЯТН0Стей- Таким образом, ходов, которое требуется в динамическом программип^нт^’ Возможных пеРе‘ Итак, метод Монте-Карло решает задачу обучен»» . „ ния результатов экспериментов. Для обеспечения хорошей^еПленисм за счст УЧ>едне- метод Монте-Карло работает только с полными эксперте™ ,7.““°"" результатов „тоге завершаться. Болес того, оценки стоимости и политики mмьи “ Д0ЛЖНЫ 8 вершении каждого тоста. Следовательно, метод Монте-Карло в “™Х"ьным в смысле последовательности экспериментов, а не шагов. Термин ^ХрТаачда тую употребляется а более широком значении для обозначения любого метода оценива- ния, в котором важную роль играет случайный компонент. Здесь он используется для методов, основанных на усреднении результатов экспериментов В обучении с подкреплением используются и другие методы, среди которых наи&мее из- вестным является Q-обучение [Watkins, 1989], представляющее собой вариант подхода на ос- нове временных разностей. Название метода продиктовано следующими соображениям. Q — это функция, отображающая пары состояние-действие в изученные значения стоимости Q: (состояние хвоздействие) -» стоимость Для одного шага Q-обучения выполняется соотношение Q(sf А) (1 - c)*O(SA) + c*[r„, + z * maxQ(s,.,,a)-Q(s,,af)], где с<1 и у<1, а г/+1 — вознаграждение для состояния s(+l. Метод Q-обучения проиллю- стрирован иа рис. 9.24, б. Если на рис. 9.24, а начальный узел представляет состояние, для ко- торого показаны возможные управляющие воздействия, то в рамках Q-обучения обратный проход выполняется для пар состояние-управление, поэтому на рис. 9.24, б корневым узлом является управляющее воздействие вместе с породившим его состоянием. В Q-обучении обратный проход осуществляется для узлов управления с учетом воз- награждения и максимума функции Q по всем возможным управлениям, вычисленным для последующего состояния. При полном рекурсивно определенном Q-обучении ниж- ние узлы дерева являются конечными и достигаются в результате выполнения последо- вательности действий с учетом вознаграждения, начиная с корневого узла. Ингерактивное Q-обучение предполагает прямой проход в пространстве возможных дей- ствий и не требует построения полной модели мира. Его также можно выполнять в пакетном режиме. Легко видеть, что Q-обучение — это разновидность метода временных Более подробное описание этого метода приводится в [Watkins, 1989] и [Sutton и Barto, 1 С помощью обучения с подкреплением решено большое количество важных задач. вкя[°~ чая обучение игре в нарды [Tesauro, 1994.1995]. В (Sutton и Barto. 1998) с точки эреши обу- чения с подкреплением проанализирована программа игры в шашки, описанная в разделе . Там же рассмотрены вопросы обучения с подкреплением дая^рашгенпя лифтом, линамиче- ского выделения каналов, составления расписаний и других проблем. 9.8. Резюме и ссылки Машинное обучение - одна из наиболее интеллекта, призванная решить основную задачу Д Р Глава 9. Машинное обучение, основанное на символьном представлении.. 431
. . вникает множество вопросов, связанных с пг, мяяаа. в этой научной Облает пможен1им„ самого искусственно^ н^’ пением знаний, поиском и,“ „освяшснных вопросам машинного обучеНия ^ дат. можно выдели три Ом°Р п 1997]. «я. Эц, работы (Langley-1995]'IN' ' нн11е обзоры (Kondratoff и Michalski. 1990]; (МИщ... Стоит отметать также б Р гакжс с6орянк сгатсй t Sha vlik ц Die 11 kk, “ др' 1983,'-';Х™^опубл—ые. начиная с 1958 тола. Поместив все эти Результа1' вкаючаюшии Раб01“' > сдела„„ очень важное дело как для специалистов в обла”„ водньп-т обзор по всей облает, включал сю^. ттоыскиенейросегевые методы и алгоритмы машинного обучения. Читатели, заинтересован- тмчеемк, н н rnv6oKHX знаний в области рассуждении по аналогии, могут обпатал, ГДХ(Holyoak. 1985); (Kedar-CaWii, 1988); (Th^rd^ Материал по вопросам создания новых знаний и формирования теорий содержится в [Lang|cy и др 1987] и [Shrager и Langley. 1990]. В [Fisher и др., 1991] собраны статьи по кластериза- ции, формированию понятии и другим формам обучения без учителя. В рамках машинного обучения много работ посвящено алгоритму ID3 н его модификаци- ям. В [Feigenbaum и Feldman, 1963] описан алгоритм запоминания ЕРАМ, в котором исполь- зуется специальный вид дерева решений, получивший название дискриминантной сети (discrimination net) и позволяющий строить последовательности бессмысленных слогов. Квинлану (Quinlan) впервые удалось использовать теорию информации для генерирования дочерних узлов дерева решений. В [Quinlan, 1993] и других работах описаны модификации алгоритма ГОЗ и решены вопросы обработки зашумленных данных и атрибутов, принимаю- щих значения из непрерывного интервала [Quinlan, 1996]; [Auer и др., 1995]. В [Stubblefieldи Luger, 1996] алгоритм ГОЗ применяется для улучшения процесса восстановления источника в задаче рассуждения по аналогии. Первые примеры обучения с подкреплением приводятся в [Michie, 1961]; [Samuel, 1959]. Большая часть материала этой главы почерпнута из [Sutton и Barto, 1998]. Метод Q-обучения более подробно описан в диссертации [Watkins, 1989]. Вопросы обучения на основе временных разностей освещены в [Sutton, 1998], а все алгоритмы обучения с под- креплением описаны в [Bertsekas и Tsitsiklis, 1996]. Вопросам машинного обучения посвящен журнал “Machine learning”. Новые ре- зультаты в этой области ежегодно докладываются на конференциях “International on erence on Machine Learning”, “European Conference on Machine Learning, fe™erriCan Ass°ciay°n of Artificial Intelligence Conference” и “International Joint Con- terence on Artificial Intelligence”. дпугие^Дп-.0^61*101 Ha основе св«ей освещены в главе 10, а социальное обучение и сывается впазделЛб^ П‘ Р°ЛЬ порогов и обобщения в обучении о 9.9. Упражнения_________ понятия “сттоенька"УгЗучения поиятнй Винстона н рассмотрите задачу и3^ я ЬКЭ СтУненька состоит из расположенных рядом маленького 432 Часть IV. Машинное обУ4^
большого блоков (рис. 9.25). Создайте сем или четырех положительных н “почти удо^Г*9™ Сеть представления трех это понятие в развитии. У летворительных” примеров и покажите Рис. 9.25. Ступенька 2. На рис. 9.9, отражающем работу алгоритма нятия, которые были сгенерированы а потом птб л кан-1 млата, не показаны по- нести или конкретности, либо были “поглощен д ЧрезмеРН0Й обш' процесс, отображая эти понятия и ук П°вторите 3. Реализуйте алгоритм поиска в пространстве версий на языке PROLOG или на любом другом языке Программирования. Если вы выбрали PROLOG, воспользуйтесь пеко- мендациями из подраздела 14.14.1. р 4. Используя функцию выбора на основе теории информации из подраздела 9.4.3, по- кажите, как алгоритм ГОЗ строит дерево, представленное на рис. 9.14 для данных из табл. 9.1. Учитывайте приращение информативности для каждого теста. 5. С помощью формулы Шеннона докажите, что информативность сообщения о ре- зультатах вращения рулетки выше, чем информативность сообщения о результате подбрасывания монеты. Что можно сказать о сообщении “не 00’’? 6. В некоторой предметной области составьте таблицу примеров, наподобие классифи- кации животных по видам, и продемонстрируйте процесс построения дерева реше- ний с помощью алгоритма ГОЗ. 7. Реализуйте алгоритм ГОЗ на любом языке программирования и протестируйте эту программу на данных по кредитной истории, приведенных в этой главе. При реали- зации на языке LISP воспользуйтесь алгоритмами и структурами данных, приведен- ными в разделе 15.13. 8. Подумайте, какие проблемы возникают при использовании атрибутов, принимающих значения из непрерывного интервала, например, из множества вещественных чисел. Предложите свои методы решения этих проблем. 9. Еще одной проблемой для алгоритма ГОЗ являются некачественные или неполные дан- ные. Данные считаются некачественными, если для одного и того же набора атрибутов возможны несколько различных результатов. Данные называются неполными, если часть значений атрибутов отсутствует, возможно, из-за стишком высокой стоимости их полу- чения. Как решить эти проблемы за счет модификации алгоритма ГОЗ? Ю. Познакомьтесь с алгоритмом построения дерева решений С4.5 из [Quinlan. 1993} и протестируйте его на одном из наборов данных. В этой работе приводится потный текст программы и тестовые наборы данных. 11 п й м -.а обучения на основе объяснения в некоторой Н. Подберите теоретические сведения для обучения обучения предметной области. Проследите за поведением системы в процессе ооучетпи. 12- Разработайте алгоритм обученна на основе осенения ния. Если вы выбрали PROLOG, выпользуйте алгоритмом из подрвхклв 433 Глава 9. Машинное обучение, основанное на символьном представлении
13 Вспомните пример игры в "крестики-нолики из подраздела 9.7.2 рс ритм обучения на основе временных разностей на любом языке прОп?“ПуЙТе *пъ Как изменится алгоритм, если принять во внимание симметричность заХ*МИрОй*"Ия 14. Что произойдет. если алгоритм на основе временных разностей из з использовать оба игрока? адачИ 13 6y;j?f 15. Проанализируйте задачу игры в шашки с точки зрения обучения с Воспользуйтесь при этом результатами анализа из [Sutton и Barto, 16. Можно ли решил, проблему перевернутого маятника, рассмотренную в (см. рис. 8.8), с помощью обучения с подкреплением? Разработайте Г,°Лраэлеле 8,2.2 вознаграждения и воспользуйтесь алгоритмом на основе временных раз"^^^0 17. Еше одной тестовой задачей для обучения с подкреплением является проблема решетки. На рис. 9.26 показана решетка размером 4x4 Д НазЫвас**ая ине ячейки по углам решетки — это целевые конечные состояния ' 1аШ грих°ван- другой ячейки агент может двигаться вверх, вниз, влево или 811^^ Иэ выйти за пределы решетки: при такой попытке состояние не измен °Н НС М°*ет дение для всех ходов, за исключением перехода в конечное состоя/^’ В°"(агРа*- Постройте решение на основе алгоритма временных разностей Составя**-1. разделе 9.7.2. си’ писанного в под- Машинное обучен на основе связей ие Кошка, которая однажды села иа горячую печи, никогда больше не сядет ни на горячую, ни на холодную... <=-1 Для любого хода РСШет 4x4 ” !3ш,т и — Марк Твен (Mark Twain; Все неизвестное остается неясным до тех пар. пока не пытаешься его уточнить... — Бертран Рассел (Bertrand Rusid!) ...как будто волшебный фонарик освещает изнутри образы на зкраяе —- Т. С. Элиот (T.S Ehofl Песнь зкенр/ Лзшбпгла Пл.иЬп,.™ 10.0. Введение_____________________________________________________________ В главе 9 основное внимание уделялось символьному подходу к обучению Цен- тральной идеей такого подхода является использование символов для обозначения объ- ектов и отношений между ними в некоторой предметной области. В этой главе будут рассмотрены нейршюдобные, или биологические, подходы к обучению. _ Нсйроподобные модели, известные также как системы параллельной распреде. обработки или системы связей, нс предполагают явного использования представления в задаче обучения. Интеллектуальные свойства этих сис^* * кэтся взаимодействием простых компонентов (биологических или Нейроны ос- нов) и настройкой связей между ними в процессе обучения или цн ганизованы в несколько слоев, поэтому такие СНС7С^ одновременно и Формация обрабатывается параллельно. т е. все нейроны о^ого слоя одновременно независима друг от друга получают и преобразуют вх^4® играет важную роль при . нейросетевых модеяхх символуД=W Формировании входных векторов и интерпрет сх кодирования образов «пааиия нейронной сети ратра&яадк щ ИМИт сыгр1П, акпаук лля их передачи в нейронную сеть Выбор .Оту-чсяяю Роль для способности (или неспособности) сети к. обработку информации- од- бет я связей выполняют параллельную и Входная информз.г— нако при этом символы ие рассматр«взюпгся 1(2 Часть IV. Машинное обУ4***
. „тоется в числовые векторы. Связи между элементами ил„ , метдай области ЧИСЛОВЫМИ значениями. И, наконец, преобразование об„°' „ами тоже ’юных операций, как правило, векторно-матричното ум„,вд, ЗОВ - ЭТО результат числ нндуктивныи порог системы. Выбранная архитектур ревизующие этот подход, не предполагают явного ппп. Алгоритмы И арх ”£в^врмотм для обучения сети. В этом и состоит основн« граммировання. инн Р ,,„вар,1а„тные свойства входной информации вМ8ляю преимущество ™° f сй архитектуры и метода обучения. При этом могу, пои. ^я'^даные" аттракторы. Но явное программирование здесь не требуется. Именно решен‘“следующ"х 3адаЧ' . ллнссофнкохм- определение категории или группы, к которой принадлежа, входные значения. . Распознавание образов - идентификация структуры или шаблона данных, . Реализация памяти, в том числе задача контекстной адресации памяти. • Прогнозирование, например, диагностика болезни по ее симптомам, определение следствий на основе известных причин. • Оптимизация — поиск наилучшей структуры ограничений. • Фильтрация — выделение полезного сигнала из фонового шума, отбрасывание несущественных компонентов сигнала. Описанные в этой главе методы лучше всего подходят для решения задач, которые трудно описать символьными моделями. К ним обычно относятся задачи, предметная область которых требует осознания либо плохо формализуется с помощью явно опреде- ленного синтаксиса. В разделе 10.1 рассматривается история развития нейроподобных моделей. Здесь представлены основные компоненты, необходимые для обучения нейронной сети, вклю- чая “механический" нейрон, а также описаны некоторые исторически значимые ранние результаты в этой области, в том числе нейрон Мак-Каллока-Питтса (McCulloch-Pitts), разработанный в 1943 году. Развитие этих нейросетевых парадигм в течение последних 40 лет во многом обусловило современное состояние проблемы машинного обучения, В разделе 10.2 в историческом контексте представлено правило обучения персептрв' на (perceptron), или дельта-правило (delta rule). Рассматривается пример, в котором пер- септрон выступает в роли классификатора. В разделе 10.3 вводятся сети со скрытыми Н 0СаеЩает^я а-'1Г0Рнтм обучения на основе обратного распространения ошибки лимосг^п™1011 ’ аКИе аРхитекгУРы позволили преодолеть проблему линейной разде* ния состоит СУшую Ранним нейросетевым моделям. Алгоритм обратного рас про с трав- роговыми функцшмиТотп °ШИбКН На Тех многослойной сети с непрерывными по* В разделе 10 4л' РЫе ДаЮТ НскоРРектный результат. . (Hecht Nielsen ^9871Р^СТаМеНЬ1 МОдели Кох°нена [Kohonen, 1984] и Хехто-Нмль« моделях векторы весовы7^/’1ТМЫе Л1етоды (competitive learning) их обучения, зов, а не мощности связе/лЭ<^ИЦИеНТ0В используются для представления самих all) выбирает узел обпач ГОРИ™ обучения “победитель забирает все" (winner- ответствует входному Вр^°Р0ГО ^ВскгоР ВСС°ВЬ1Х коэффициентов) наиболее точн более точного соответми^^'1 наСтРа,шает эти коэффициенты для обеспечен! ‘_______0 алгоритм обучения без учителя, поскольку 436_______________________------- ---------------------------- ---------’ 1 nfiy40^e Часть IV, Машинное ооу
победитель — это просто нейрон, вектор весовых Ktn(h(h близок входному вектору. Комбинация слоев нейронов кФфИШ1ентов которого наиболее к созданию сети, которая может служить интересной мп°Мнена и Плесберга приводит встречного распространения. делью для обучения по методу В разделе 10.5 представлена модель обучения о ппп^, Хебб высказал предположение о том, что при каждом Хб?а [НеЬЬ’ 19491 передачи ему импульса от другого нейрона сила связи междуэт^Тне^0^ rac™*c ет Алгоритм обучения Хебба — это простой алгопитм „ У - рона‘'|И "озреста- представлены версии этого алгоритма L обуч^ш^^а „инейная ассоциатиеная память (linear associator). основанная на модели Хебба В разделе 10.6 вводится очень важный тнд иейроподобных моделей, получивших на- звание аттракторных сетей (attractor network). В этих сетях для шжлвческой передачи сигналов используются обратные связи. Выходом сети является ее состояние в положе нин равновесия. В процессе настройки весов связей формируется множество аттракто- ров. При подаче на вход сети образов, относящихся к зоне притяжения аттрактора, сеть сходится к состоянию равновесия, соответствующему данному аттрактору. Следователь- но, аттракторы можно использовать для хранения образов в памяти. Тогда, имея входной образ, можно получить либо ближайший из сохраненных образов либо ассоциированный с ним. Первый тип сети называется автоассоциативной (autoassociative memory), а вто- рой — гетероассоциативной памятью (heteroassociative memory). В 1982 году физик- теоретик Джон Хопфилд (John Hopfield) разработал класс аттракторных сетей, доказа- тельство сходимости которых сводится к минимизации функции энергии. Сети Хопфил- да можно использовать для решения задач оптимизации при наличии ограничений, в ча- стности задачи коммивояжера. При этом критерий оптимизации записывается как функ- ция энергии системы (подраздел 10.6.4). В главен, заключительной главе частиIV, представлены эволюционные модели обучения, в том числе генетические алгоритмы и модели “искусственной жизни Вопро- сы представления информации и порогов в обучении, а также преимущества каждой из парадигм рассматриваются в разделе 16.3. ЮЛ. Основы теории сетей связей 10.1.1. Ранняя история Зачастую теорию нейронных сетей считают очень современной dLioct^ КИ относятся к периоду' ранних работ в области компьютерных наук, п автоматов и фин. Например, еще Джон фон Нейман пришел в восторг от теории обече- неГ1роподобного подхода к вы—м. ния выполнялись под влиянием психояогичссР нны< и методы их обуче- В этом разделе будут описаны основные компе * ния, а также представлены исторически важны jw‘ 7^- схема КОТорого показана Основой нейронных сетей является искусе —nvKTvnv На Р«с. 10.1. Искусственный нейрон имеет следующую с „ иЧ]| пт стающие из окружающем среды или от • Входные сигналы х, Эго данные. ргшчных моделей мо- Других активных нейронов. Диапазон вход дискретными (бинарными) Жет отличаться. Обычно входные значения яатяктся Глава to. Машинное обучение на основе связей 437
определяю™» множествами <0.1 J или (-М! либо принимают „ю6ые Рис. 10.1. Искусственный нейрон, входной вектор X, вес связей W, и пороговая функция f, определяющая выходное значение нейрона. Сравните эту схему с изо- брожением реального нейрона, приведенным на рис. 1.2 • Набор вещественных весовых коэффициентов w,. Весовые коэффициенты оп- ределяют силу СВЯЗИ между нейронами. • Уровень активации нейрона который определяется взвешенной суммой его входных сигналов. • Пороговая функция f, предназначенная для вычисления выходного значения нейрона путем сравнения уровня активации с некоторым порогом. Пороговая функция определяет активное или неактивное состояние нейрона. Помимо этих свойств отдельных нейронов, нейронная сеть также характеризуется следующими глобальными свойствами. * 1™“°™" (nCtW°rl< t0p0'0gy) ~ 310 шаблон' определяющий наличие связей Н'Йр0Яа‘"'- То™-та™я является главным источником индак- ”, рХи™е™ горитжз’обХ'и 'k”™8 а1°ùт)- В ЭТ°Й ГЛаВе nP«™™’ е^и Штатов и" o^6^SChen,e)’ °пределяющая интерпретацию данных. [McCulloch и Pitts.^19431 с®росетево,у модели является нейрон Мак-Каллока-Питтса ми -1)- Активационная функиия^^^0”3 ПОдаются биполярные сигналы (равные +1 числяется следующим образо Р ЭТ° П0р0Г0вая зависимость, результат которой вы- нейрона принимается равным^ ЛИ ВЗВСшенная сумма входов не меньше нуля, выход и Питтс показали, как на основ * Пр0ТИВн?м с;1Г^е-1. В своей работе Мак-Калиок функцию. Следовательно сист С Т&КИХ нейронов можно построить любую логическую тельную модель. ' ема из так1)Х нейронов обеспечивает полную вычисли* нейронов Мак-Каллока^Пи^с? *ЫЧИСления логических функций И и ИЛИ с помошью из котОрь1Х Задают аргуме я,v аЖДbl)"t И3 ЭТИХ Нейронов имеет три входа, первые Два соотвЛСеГДа раВен 1- ВесовыЛоэЛ'И *ИУ,а Гретий’ иногда называемый порогов етТмя еНН° +1' +1 и ~2. Тп° яФФНШ’еНТЬ1 СВЯЗСЙ для входных нейронов составляю чение х+у-2. Если Это 3 Любых входных значений хну нейрон вычисли ----- не меньше 0, выходным значением нейрона являем 438 Часть IV. Машинное обучен
-1, В противном случае — 1. Из табл, 10,1 видно что числяет значение функции хЛу. АналОГИЧНо МОЖНо /акои НеиР™> по существу, вы- нейрон на рис, 10,2 вычисляет значение логической фуХий^* В Ч™ BT°P°fi Рис. 10.2. Вычисление логических функций И и ИЛИ мощью нейронов Мак-Каллока-Питтса с по- Таблнца 10. 1 Модель Мак-Каллока-Питтсадля вычисления функции логического И ч" X У Х+У~2 выход 1 1 0 0 1 0 ! 0 -1 -1 1 -1 -1 0 -1 Несмотря иа то что Мак-Каллок и Питтс продемонстрировали возможности нейросетевых вычислений, реальный интерес к этой области проявился только после разработки примени* мых на практике алгоритмов обучения. Первые модели обучения во многом связаны с рабо- тами специалиста по психологии Д, О. Хебба (D. О, Hebb), который в 1949 году предположил, что обучение биологических существ связано с модификацией синапсов в мозгу. Он показал, что многократное возбуждение синапса приводит к повышению его чувствительности и веро- ятности его возбуждения в будущем. Если некоторый стимул многократно приводит к акти- визации группы клеток, то между этими клетками возникает сильная ассоциативная связь. Поэтому в будущем подобный стимул приведет к возбуждению тех же связей между нейро- нами, что в свою очередь обеспечит распознавание стимула (более точно утверждение Хебба приводится в подразделе 10.5.1), Модель обучения Хебба основана только на идее подкреп- ления и не учитывает забывчивость, штрафы за ошибки ши износ. Современные психолога пытались реализовать модель Хебба, но не смогли получить достаточно общих результатов без добавления механизма забывчивости [Rochester и др., 1988]. [Quinlan, 1991]. Модель обу- чения Хебба более подробно будет рассмотрена в разделе 10.5. В следующем разделе модель нейрона Мак-Каллока-Хебба расширена за счет формиро- вания слоев взаимосвязанных нейронов и добавления алгоритмов их взаимодействия. Первая версил такой нейроподобнон структуры получила название персептрона (perceptron). 10.2. Обучение персептрона Фрэнк Розенблатт [Rosenblatt. 1958] предложи — однослойной нейронной сети, получившей J Мак-Каллока-Хебба. при- У РЗСППОРТпач/ч.зтлет /-rn uaniiu fipncenTPOH аналогичен hci бу распространения сигналов персептрон 439 Глава 10. Машинное обучение на основе связей
гм . имивдые Ю.2.2. Входные значения персептрона ЯВ1и,_ „ер которого будет описан» , № _ КШСС1В,.ННЫМ числом. Уровень акгнвац,,,, бшюмрнымк (равн 1 нная сумма его входов, Ххду,. Выходное значение пер. «трона вычисляете г, пороговой функции: если уровень ат,в Р «трона вычисляется^с п 3„ачснию, выход персептрона принимается равным 1 превышает пли paeenj 1 Таи1М о6разом. выходное значение персептрона оычиаИс ’ .противном случаевя;овых коэффиш1СНТОв W. „ порога Г следующ,,,, на основе его входных > образом, 1, если Dc.w, £ f- -1, если^хЛ < 1. Для настройки весов персептрона используется простои алгоритм обучения с чч.Хм Персептрон пытается решить предлагаемую задачу, после чего ену ппеиъявляется корректный результат. Затем веса персептрона изменяются таким об- ПИОН чтобы уменьшить ошибку на его выходе. При этом используется следующее правило Пусть с — постоянный коэффициент скорости обучения, a d ожидаемое значение выхода. Настройка весового коэффициента для /-го компонента входного век- тора выполняется по формуле Aw=c(d-sign(Sx ,*,)) х,. Здесь sign(Ix,w() — выходное значение персептрона, равное + 1 илн - 1. Разность меж- ду желаемым и реальным выходными значениями может быть равна 0, 2 или -2, Следо- вательно, для каждого компонента входного вектора выполняются такие действия. Если значения желаемого и реального выхода совпадают, ничего не происходит. Если реальное выходное значение равно - 1, а желаемое — 1, то весовой коэффици- ент для /-го входа увеличивается на 2сх,. Если реальное выходное значение равно -1, а желаемое — 1, то весовой коэффици- ент для ьго входа уменьшается на 2сх,. При использовании такой процедуры получается вес, минимизирующий среднюю ошибку на всем обучающем множестве. Если существует набор весовых коэффиш1СН' тов, обеспечивающий корректное выходное значение для каждого элемента обучаю- щего множества, то такая процедура обучения персептрона позволяет его получить [Minsky и Papert, 1969]. Первоначально появление персептрона было встречено с большим энтузиазмом днако в 965 году Нлльс Нильсон (Nils Nilsson) и другие исследователи выявили от класса^0”11 М°ДелП пеРсептрона, Они показали, что персептрон не решает целого мыми иТ™0 сложных залач, в которых данные не являются линейно раздел» трона в тпкЯ В110следствни появились различные усовершенствования модели перс<^ “Perceptrons’’ локГ MH0r0CJi0l!HbIC персептроны. Минский и Пейперт в свое»» кн» "»йР«^иио<^]м^0ик1Х’мЮ)'^,,ТРО,,а НСЯЬЗЯ РСШ"ТЬ "Р°бЛСМУ ВОМ линейной риделичпт1ШаЧИ класс"Ф"каии". данные которой нс обладают сиой^ Функцию “исключающего Про6лсма “исключающего ИЛИ" истинности. И можно представить с помощью следующей 440 ---------“- л/SvM 0^^ Часть IV, Машинное о у
Таблица истинности для функции “исключающее ИЛИ' ~~~ *}Выход %,____________________ Г — .“=™=Х— vv/1+w/Kt (из первой строки таблицы истинности), w'*1 +0 > t (из второй строки таблицы истинности), 0+w,*1 > t (из первой строки таблицы истинности), 0+0 < t (т.е. положительный порог, из последней строки таблицы истинности). Эта система неравенств для Wj ц w2 и t не имеет решения. Тем самым подтверждает- ся, что персептрон нс может решить проблему ‘•исключающего ИЛИ’. Несмотря на то что существуют многослойные сети, способные решить эту проблему (см. подраз- дел 10-3.3), алгоритм обучения персептрона предназначен только для обучения одно- слойных сетей. Невозможность решения задачи “исключающего ШПГ для персептрона объясняется тем, что два класса, которые должна различать сеть, не являются линейно разделимыми (рис. 10.3). В двухмерном пространстве невозможно провеет прямую, разделяющую множества точек с координатами {(0,0), (1,1)} и {(1,0), (0,1)}. Можно считать, что входные данные сети определяют про- странство. Каждый компонент входного вектора определяет на- правление, а каждое входное значение задает точку в этом про- странстве. В задаче “исключающего ИЛИ” четыре входных век- тора с координатами и х. определяют точки, показанные на рис. 10.3. Задача обучения классификации сводится к разделе- нию этих точек на две группы. В п-мерном пространстве множе- ство является линейно разделимым, если его можно разбить на классы с помощью л-мерной гиперплоскости. (В двухмерном пространстве n-мерной гиперплоскостью является прямая, в (0, 1) •и. и (0,0) 0.0) 1 °-XS трехмерном — плоскость и т.д.) В результате выявления проблемы линейной раздел имеет направление исследований сместилось в сторону архитектур, ос- нованных на символьном представлении, а прогресс в облает Нс'*росстевой методологии значительно замедлился. Однако Дальнейшие исследования в 1970-х и 1980-х годах показали, что Рис. 10.3. Задача "исключающего ИЛИ". В двухмерном про- странстве нельзя про- вести прямую, разде- ляющую пары точек {(0,1). (1.0)} и {(0.0). (1.1)} эта проблема является разрешимой. правил? обратного раенроепцзанемия, В разделе 10.3 будет описан метод персептрона для многослойных се- каторы й является обобщением алгоритма о , го метода, рассмотрим пример сети ТС|‘г Однако прежде чем переходить к образов. В завершение раздела 10.2 |,сРсс1процного типа, выполняющей кляссиф |(zej dvJm-rule) — обобщение алго- будст изложено обобщенное дельта-нравило - Глава 10, Машинное обучение на основе саяз 441
пиша обучения персептрона, используемое в многочисленных нейросогевых рах, в том числе основанных на методе обратного распространения. архите^. 10.2.2. Пример: использование персептронной сети для классификации образов На рис. 10.4 показана общая схема решения задачи классификации. Строки дан пространства возможных точек выбираются и преобразуются к новому виду в Пр НЫ* стве данных н соответствующих им образов. В этом новом пространстве образо0^31* ляются признаки и определяются сущности, представляемые имн. Например рВ ВЬ1Де' рим задачу со звуковыми сигналами, записанными на цифровом устройстве. Рассмот* ческие сигналы трансформируются в амплитудно-частотное представление НКуСТи' система классификации по этим признакам может распознать, кому принадлежи^ голос. Еще одним примером задачи классификации является медицинская ли Даннь1^ предполагающая сбор информации с помощью медицинского Диагностического0^3’ дования и классификацию симптомов по различным категориям болезней ° °борУ' Для рассматриваемого примера в блоке преобразователя н извлечения п на рис. 10.4 данные из предметной области задачи трансформируются в дв^^^08 векторы декартова пространства. На рис. 10.5 показаны результаты анализа иГ* нации, приведенной в табл. 10.3. с помощью персептрона с двумя входами Rt ₽’ вых двух столбцах таблицы содержатся векторы данных, используемые для ния сети. В третьем столбце представлены ожидаемые результаты клтсгиж +1 или -1, используемые для обучения сети Ня г,«г ш к У 1 классификации, ные и линия разделения классов д\ ных Ze"" °буЧаЮЩИе сети каждого входного образа. ^У^нных после предъявления обученной Хз — Хп--- Признаки Классt Классл Сначала Н°хная система классификации '-начала познакомимся с ofi - Ю1ассиФИкатоРом может бк°РИе1"1 классиФикации. Каждая группа данных, вы- Хюш°а7НСТВе’ Давлена некоторой областью в многомер- для областей1еНЬ Пр,1надле)кности этой ™еТствует Дискриминантная функция д„ опре ' макснл’альное значение ласги Среди всех дискриминантных функции №>ВДдлявсех/1</" МеСТфУНКЦИЯ^ В пр ** “Р’ому „ когорьи W10.;Ншухмери w входные на дЮ значение 1. а второму 442 Часть IV. Машинное обучен* Рис. 10.5. Данные из табл. 10.3 в двухмер. иом пространстве. Персептрон, ти<^н. ныи в подраздые 102.1, обеспечивает ли- неиное разделение этого набора данных х, 4 л X. Выход 1,и 9,4 2,5 1,0 6,4 2,1 1 -1 j 8,0 7,7 _ 1 0,5 2,2 7,9 6,4 -1 7,0 7,0 -1 2,0 1,2 7.8 0.8 1 3.0 1 6,1 -1 ажным частным случаем дискриминантной функции является оценка степени при- надлежности на основе расстояния от некоторой центральной точки области. Классифн* чия, основанная на такой дискриминантной функции, называется классификацией по имачьно.му расстоянию. Легко показать, что такую классификацию можно реализо- ать дщ линейно разделимых классов. Если области Я, и R, являются смежными, как две области на рис. 10.5. то существует пограничная область , для которой дискриминантная функция имеет вид или g,(x)-g,(x)=0. Если классы линейно разделимы, как на рис. 10.5, то дискриминантная функция, раз- дающая соответствующие области, представляет собой прямую линию, т.е. функции д, ‘ Ляются линейными. Поскольку прямая — это множество точек, равноудаленных [(Т лвух фиксированных точек, то дискриминантные функции д, и д? это функции ми- 'мольного расстояния от декартового центра каждой из областей. ~___________________________________—_____________—____________________________ ава Ю. Машинное обучение на основе связей 443
можно вычислить с помощью персептрона, ПОКа -™о оВдезяк>ш>'ю ФУ"®"” а Зычных входа и пороговый вход с посто, ” Л""СЙ“^сР 10.6 в содержа"®1» „ение по следующей формуле тайного на рис- выполняет вы значением 1. Пер«пП» ( где |(x]=signfх). г ’ Одному классу, если «х)--1 — другому. Такое Если 1W-* ’ • ™ ‘ ПрИН^е21иой би№.«Р"°“ "pp“0’“ (рис-«»•«) По JX* •®июйв ‘^Х^ороговой функции "4=™^"»" «И. Величава Хй вход служит для сме^™ с помощью „астроики весж)го зтого смешения определяй Кайента й 10 3 для обучения персептрона, показанного на рис. Ю.6. Ф Используем да"нсизга6"са „ ай„ым образом, например [0.75. 0,5, -0,6),, Инициализируем значеитоп.* „писанный в подразделе 10.2.L Верхний ив- применим алгоритм обучения Р иии f (пв() , задает номер текущей итерации ад. сяспервой^ки1а6лицы flnet)’=f(0,754+0,5’ 1-0.6-11=1(0,651-1. .ние НлвП|=1 корректно, нэстройка весовых коэффициентов не № аз°Р»™ обучающего "Римера f(net)7=f(0,75'9,4+0,5*6,4-0,6’1 )=f(9,65) 1- Теперь нужно вычислить выходное значение е.-п. с учетом настроенных весов *» третьего обучающего примера f(„e0’=f(-3.01-2.5-2,06-2,1-1,0-1)М(-12.84).., Тто значение снова не совпадает с ожидаемым св иС обновляются таким образом »°лом На следующей итерации ве- W4 =И/Э + 0,2(-1-(-!))№ = ’-3,011 -2,06 l + 0,4) 2,1 )=) -1,22 -1,00 L ’ -2,011 нуж- 1,0 Х2 порог L-0.60] После десяти итераций обучения сети персептрона формируется линейное разделе- ние, показанное на рис. 10.5. Примерно через 500 шагов обучения вектор весовых коэф- фициентов будет равен [-1,3; -1,1; 10,9]. Нас интересует линейное разделение двух классов. В терминах дискриминантных функций д, и д^ разделяющая поверхность пред- ставляет собой множество точек, для которых д,(х)= д/х) или дДх) - д/х)=0, т.е. уро- вень активации равен 0. Уравнение функционирования сети можно записать в тер- минах весов net=w,x+wtxi+wr Следовательно, линейная разделяющая поверхность между двумя классами определя- ется линейным уравнением -1,3*х,+(-1,1 )'х;+10,9=0. /‘ис106 Персептрон для классификации Оаккых и, табл. I0J с кусокна-линейной би- полярной пороговой функцией Для данного обучаюгпргп значит, ом настройки весов нгобХимо В“ХОЛе Персептрона ожидается подразделе 10.2.1, озимо с — постоянный коэффициент фициентов, t — номер итерации уЧения’ и IV— векторы входов и весовых коэф- лаемый результат в момент t Т ~ “мвол транспонирования, d"' - со» ' ыход сети при t=2 равен ] (или, как в данном случае, в момент времени nem.Z^0J0M Сети "оставляет d:-sinnf<0„ATli’H“' Разность между ожидаемым и рем»- топ и 1”?она ИН|фемент обучения пт > >'Х")=-2. На самом деле для биполярного X ^*сгом"»^ Ко^Га Ст™ЛЯет либ° -Иво -**. ' число, наподобие 0,2. Об ”иИеНТС1'ОрОС™ “бдения — это небольшое веше' ВИМ Вект°Р весовых коэффициентов: 0,75 1 Гг 0,50 -о,4 о д .-0,60 значение -1, применить обучающее правило, описанное в 444 LXO Г-3,01' -£06 -too 10.2.3. Обобщенное дельта-правило Для обобщения идеи сети персептрона нужно заменить его строгую пороговую функ- цию активационной функцией другого типа. Например, непрерывные активационные функции позволяют строить более тонкие алгоритмы обучения за счет более точного вы- числения ошибки измерения. На рис. 10.7 показаны графики некоторых пороговых функций: кусочно-линейной биполярной пороговой функции (рис. 10.7, а), используемой для персептрона, и несколь- ких видов сигмоидальных функций (sigmoid J- Сигмоидальные функции получили такое название благодаря тому, что их график напоминает латинскую букву S (рис. 10.7, б). Типичная сигмоидальная активационная функция, или логистическая функция (logistic function), задается уравнением f(ne0=1/(1+e'zгде ner=lx,w- Здесь, как и ранее, х, — i-н вход, w, — вес связи. X — параметр “кривизны . исполь- зуемый для настройки формы сигмоидальной кривой. При больших значениях . форма сигмоиды приближается к обычной кусочно-линейной пороговой функции с диапазоном Учений {0,1}, а при значениях параметра "кривизны”, близких к 1. она напоминает Г|рямую линию. Аргументом пороговой функции является уровень акптваии.' е« - выход нейрона. Сипиомальнвя активационная фзнкштя owe оценить ошибку на выходе сети. Подобно обычной оадьная активационная функция отображает точки может ,нтервала (0,1). Однако в отличие от обычной пороговой функции ешмома Часть IV. Машинное обучение ава Ю. Машинное обучение на основе связей 445
нацию класс! принимать значения из всего интервала, т.е. она обеспечивает непре манию классической пороговой функции. Параметр Л определяет а!’!1р0. Взвешенное значение порога сдвигает график функции вдоль оси абсци^7*3^ 1W ™ '(*) fix) _______М а. Строгая кусочно- линейная биполярная пороговая функция б. Сигмоидальная униполярная пороговая функция 8- сигмоидальная сдвинутая функция с различной"кривизной". Чем больше значение параметра, тем точнее сигмоидальная аппроксимация кусочно-линейной пороговой функции Рис. 10.7. Активационные функции Появление сетей с непрерывными активационными функциями исторически обусло- вило новые подходы к обучению на основе коррекции ошибки. Так, обучающее правило Видроу-Хоффа [Widrow и Hoff, 1960] предполагает минимизацию среднеквадратиче- ской ошибки между ожидаемым выходным значением и уровнем активации сети netrWx,, независимо от вида активационной функции. Но самым важным правилом обучения для сетей с непрерывной активационной функцией является, пожалуй, дельта- правило (delta-rule) [Rumelhart и др., 1986, а]. Интуитивно дельта-правило базируется иа использовании понятия поверхности ошибки (рис. 10.8), которая представляет кумулятивную ошибку на всем наборе данных как функцию от весов сети. Каждая возможная конфигурация весов определяет точку поверхности ошибки. Имея определенную конфигурацию весов, с помощью алгоритма обучения можно найти направление на этой поверхности, вдоль которого происходит наиболее быстрое уменьшение функции ошибки. Этот подход называется обучением по методу градиентного спуска (gradient descent learning), поскольку градиент определяет “наклон” поверхности в каждой ее точке. Дельта-правило предполагает использова аКТИ»аФ.оииой функции. Этими свойствами об^Т""^ " “'ФФ'РенцнруемоП «СКВ» функция. Дельта-правило для настройки/Т. ’““«’Рении выше логисти- ки имеет вид Р “«ового коэфф, 1ц1ента ,.го ума где с — постоянный коэффициент скорости обучения d и л выходы /-го нейрона, f' - производная активационной ~ °Жидаемый и Реаяьньгй входное значение /то узла Покажем, хак выводится эта формуТ Среднеквадратическая ошибка на выходе сети ппп™ У ошибок для каждого узла Р РЦиональна сумме квадратов Error =(1/2)Х(^-ОЛг , где dt ожидаемое значение выхода нейрона, а О, — его реальное значение. При сум- мировании ошибки возводятся в квадрат, чтобы отрицательные и положительные ошиб- ки не компенсировали друг друга. Рассмотрим случай, когда сеть состоит из единственного (выходного) слоя нейро- нов. Более общий случаи наличия скрытых слоев будет описан в разделе 10.3. Сначала необходимо определить скорость изменения ошибки на каждом из выходных нейронов сети. Для этого нужно взять частную производную (partial derivative), определяющую скорость изменения векторной функции по одной из переменных. Частная производ- ная общей ошибки для каждого 1-го нейрона выходного слоя составляет дЕггог Э(1/2Г £(d> _3(1/2)*(d,-О,)г дО, дО, дО, Такое упрощение возможно, поскольку рассматриваемая сеть содержит лишь один выходной слой нейронов, а значит, ошибка на выходе одного из узлов не влияет ни на какие другие нейроны. Вычисляя производную, получим oUj Определим скорость изменения ошибки для каждого из весовых коэффициентов для 1-го узла. С этой целью вычислим частную производную функции ошибки для каж- дого из узлов по весовым коэффициентам связен ведущих к этому узлу. дЕггог _ дЕггог * ЭО, dwh dOi dwk ' Учитывая предыдущее соотношение, получим D ™ .мпткения где вычисляется частная производ- Рассмотрим правую часть этого в“Ра*е м К0ЭффициеНтам связей, ведущих к ная реального выхода /-го нейрона по в черезвесовые коэффициенты сле- **ему. Выходное значение нейрона выража Р Дующим образом: O,=f(WX), где W,X=net. ~------------------------------------- 447 Глава 10. Машинное обучение на основе связей 446 ---------------ТТбучеНА’3 Часть IV. Машинное У
f u -ппеоывная функция, можно вычислить се производную Поскольку' —14 к М * Подставляя это соотношение в предьшущес уравнение, получим Дм минимизации ошибки необходимо изменить значение веса в направлении анти- градиента. Следовательно, Д1У __c^C=-c[-W-O,)*r(nerJ)*xJ = c(d(-O/)*r(nef,)*xfc. * Несложно заметить, что дельта-правило напоминает метод вычисления экстремума, описанный в разделе 4.1. Там он применялся для минимизации локальной ошибки на ка- ждом этапе. Этот метод состоит в поиске наклона поверхности ошибки в окрестности некоторой точки. Такое свойство приводит к неустойчивости дельта-правила, поскольку с его помощью нельзя отличить локальный минимум от глобального. Существенное влияние на эффективность дельта-правнла оказывает коэффициент скорости обучения с (см. рис. 10.8). Значение этого коэффициента определяет вели- чину изменения весов на каждом шаге обучения. Чем больше с, тем быстрее вес приходит к оптимальному значению. Однако если коэффициент с слишком велик, алгоритм может “проскочить” точку экстремума или осциллировать в окрестности этой точки. Небольшие значения коэффициента скорости обучения позволяют уст- ранить эту проблему, но замедляют процесс обучения. Оптимальное значение этого коэффициента иногда определяется с учетом фактора момента [Zurada, 1992] — па- раметра, настраиваемого экспериментально для каждого конкретного приложения. Хотя дельта-правило обеспечивает возможность обучения только однослойных сетей, его обобщение приводит к методу обратного распространения ошибки — ал- горитму обучения многослоиных сетей. Этот алгоритм рассматривается в следую- щем разделе. 10.3. Обучение по методу обратного распространения___________________ 1. Вывод алгоритма обратного распространения ограничеиныш^0 раздела ЯСН0, что однослойные сети персептронного типа обладают что д^Х неХ0ЖН0СТЯМИ ^«фикании. В разделахР 10.3 и 10.4 будет показан , смотрены вычислителЛЬКИХ СЛ°еВ позволяет снять эти ограничения. В разделе 1 Р машин Тьюринга 0^° П0ЯНые мн°гослоЙные нейронные сети, эквивалентные кл алгоритма обучения 8^° Сетей долгос время не существовало эффсетИВ“ Ч1!ва|ощее решение-.т„'-'П°''^а3'Це;1С 0П1)С1Цвается обобщенное дельта-правил о, о Нейпонь ТОИ Проблемы- слоя п связаны только стаТ CC™ располагаются по слоям (рис. 10.9), причем эЛ^(бка на выходе сети может ВМН СЛ°Я П+1 ’ ^Ри многослойной обработке сигнала Ь ВЫзвана сложными процессами внутри нес. Поэтому HJ(K ошибки в выходном слое сети необходимо анализиооват. одного распространения ошибки обеспечивает сп0 б В комплексе- Метод об- гослойной структуры нейронной сети. С°° настройки весов с учетом мно- Обратное ра сп р острая ени е ошибки Рис. 10.9. Обратное распространение ошибки в нейронной сети со скрытым слоем В рамках этого подхода ошибка на выходе сети распространяется в обратном на- правлении к скрытым слоям. Анализируя обучение по дельта-правилу, несложно заме- тить, что вся информация, необходимая для модификации весов нейрона, относится только к этому нейрону, за исключением самой величины ошибки. Для нейронов выход- ного слоя величина ошибки вычисляется просто как разность между ожидаемым и ре- альным выходным значением. Для узлов скрытых слоев ошибку определить значительно сложнее. В качестве активационной функции при использовании метода обратного рас- пространения обычно выбирается логистическая функция f(пеt}= 1 /(1 +е’Гг’'), где nef=Lx,wf,. Применение этой функции обусловлено тремя причинами. Во-первых, она относится к классу сигмоилных функций. Во-вторых, поскольку она непрерывна, то ее производная суще- ствует в каждой точке. В-третьих, поскольку максимальное значение производной соответст- вует сегменту наиболее быстрого изменения функции, то наибольшая ошибка соответствует Узлам, дм которых уровень активации наименее определен. И, наконец, производная этой функции легко вычисляется с помощью операций умножения и вычитания f'(net)=(1/(i+e-A‘A’'))'=A(f(net)*(1-f(net))). Метод обратного распространения является обобщением дельта-правнла. В нем тоже используется метод градиентного спуска, описанный в разделе 1 ... Для узлов скр г слоя ошибка вычисляется на основе ошибки выходного слоя. °руЯ“ балок к весовому коэффициенту связи wb между fc-м и ,-м нейронами по методу обратно ГО распространения ошибки имеют вид 1- AWi,= -Xc*(<t-O,)*Of(1 -№ ДМ Умов выходного слоя; 2. Awfc«-^c«O((1-Q)X<-derta/,*»,X‘ ДМ умов скрытых слоев. Глава 10. Машинное обучение на основе связей 449 448 Часть IV. Машинное обуч
во втором соотношении i - индекс узла сиедуюшего слоя, до которого ₽ас„ропра. няется сигнал от 1-го нейрона, к вычислим производную от этой функции. Сначала возьмем производную д» первд . Z^o весовым коэффициентам связей с выходным слоем Как и ранее. трс6 JXm скорость изменения ошибки сети в зависимости от й-то веса связи с эго? случай рассматривался при выводе дельта-прав,<ла в подразделе 10.2.3. где было показано, что ^2L=-(d,-Ol}*f(net,)*xh. dW. Поскольку f —логистическая активационная функция, то Г(ле0=П1/(1+е‘А'”')>=^леГ>*(1“Т(ле0)- Напомним, что f{nef,)=Or Подставляя это выражение в предыдущее уравнение, получим a&ror=-yi(d,-O()*O,(di-O,)*Xk. Поскольку для минимизации ошибки вес должен изменяться в направлении, обрат* ном градиенту, то при вычислении добавки к весовому коэффициенту для ьго нейрона эту производную нужно умножить на -с: Awt=-c*(d-0/0,(1-0,)xk. Выведем формулу настройки весов для нейронов скрытого слоя. Для простоты сна- чала предположим, что сеть содержит только один скрытый слон. Возьмем один ьй ней- рон скрытого слоя и проанализируем его вклад в общую ошибку на выходе сети. Для этого рассмотрим вклад /-го нейрона в ошибку на выходе /-го нейрона выходного слоя, а затем просуммируем этот вклад для всех элементов выходного слоя. И, наконец, учтем вклад в общую ошибку k-го весового коэффициента связи с i-м нейроном. Эта ситуация изображена на рис. 10.10. Выходной слой Скрытый слой Входной слой /-го Рис. 10.10. Общий вклад -delta, * W,, 1 нейрона в ошибку на выходе сети, принимае- мый во внимание при настройке весового ко- 3Ффициента Сначала рассмотрим чаевую производную ошибки скрытого слоя. Для этого можно воспользоваться 6X11 П0 ВЫХ0ДУ **го нейрона цепным правилом дЕггог _ дЕггог , dnet, дО, dnet, дО, ' Первый множитель в правой части ___________ обозначим delta, ношения, взятый с обратным знаком, delta '-(bErrortfffinet). Тогда предыдущее соотношение можно переписать в виде дЕггог . tdnet. дО, 1 дО, Напомним, что уровень активации Дго нейрона net, выходного слоя вычисляется как сумма произведении весовых коэффициентов и выходных значений узлов скрытого слоя j Поскольку частные производные вычисляются только по одному компоненту сум- мы — по связи между нейронами / и /, получим dnet. ----- = W дО, *' где w,j — вес связи между ьм нейроном скрытого слоя и /-м нейроном выходного слоя. Подставляя этот результат в формулу производной ошибки, получим дЕггог , . t = -delta, w„. дО, Теперь просуммируем это выражение по всем связям ьго нейрона с узлами вы- ходного слоя дЕггог v- , м , , ———=> -delta, iv,. дО, Y ‘ ’ Это соотношение определяет чувствительность ошибки на выходе сети к выходу ьго нейрона скрытого слоя. Теперь определим значение delta,— чувствительность ошибки сети к уровню активации ьго нейрона скрытого слоя. Это даст возможность получить чувствительность ошибки сети к весовым коэффициентам входящих связен / го узла. Снова воспользуемся цепным правилом , . дЕггог дЕггог * дО, ~de,ta'=l^~=^oT Поскольку используется логистическая активационная функция, ~^- = ЛО,*а-О)}. dnet. ' 1 450 Часть IV. Машинное обуч0нИ Глава Ю. Машинное обучение на основе связей 451
для delta,, приходим к соотношению Пмеями по значение . ураа^-е дл -delta, ’W' ' .иити чувствительность ошибки на выходе сети к весу Входя св*1йТго нХ^°^ЫТОГО СЛОЯ РасСМОТрИЫ к'Й ВСС°ВОЙ ^Инииснт связи Wi с ,.м узлом. Согласно цепному правилу а&гог terror.. W -delta,* *>• МЙ = dnet, где Xi — кН вход выражение для delta,, получим Подставляя это соотношение в & *iv,K - лки f Поскольку для минимизации ошибки вес необходимо изменять в направлении анти- градиента, то его настройка выполняется по формуле дитй =-zc^^=>x*O((1-Q)£(defta/ivf) I Для сетей с несколькими скрытыми слоями эта процедура рекурсивно применяется для распространения ошибки от п-го скрытого слоя к слою п-1. Несмотря на то что метод обратного распространения ошибки позволяет решить про- блему обучения многослойных сетей, он ие лишен своих недостатков. Поскольку он ос- нован на методе поиска экстремума, то может сходиться к локальному минимуму, как на рис. 10.8. И, наконец, этот метод вычислительно не прост, особенно для сетей со слож- ной поверхностью ошибки. 103.2. Пример применения метода обратного распространения ошибки: система NETtalk Система NETtalk — интересный пример нейросетевого решения сложной проблемы обучения [Sejnowskt и Rosenberg, 1987]. Система NETtalk обучается произносить анг- лийский текст. Это достаточно сложная задача для явного подхода, основанного на сим- вольном представлении информации, например для системы, основанной на правилах, поскольку английское произношение очень нерегулярно. Система NETtalk учится читать строку текста и возвращает фонему с соотвегствук^ шяи ударением для каждой буквы строки. Фонема — это базовая единица звука в язы«- а ударение относительная громкость этого звука. Поскольку произношение каждой буквы зависит от контекста и окружающих ее букв, система NETtalk работает с окиоя 6virbijKailIHM Ctiib символов. При перемещении текста в этом окне NETtalk для каждой буквы возвращает пару фонема-ударение NETUlk лоим"а "* ₽-' Ю.11. Сел. состоит из 3 слое. не представтяетгЫ'эа*°П^С^КП 4X1411 символам текстового окна. Каждая позиди* ДЛЯ знаков nvHKTvaf ВХОДИЫми нсйромами, по одному для каждой буквы для знаков пунктуации и пробелов. Буква в каждой позиции активизирует cooler вуюший нейрон Узлы выходного слоя человеческой артикуляции. Остальные 5 ^ ЛАпяып ч»и«мы с помощью 21 свойства Сеть NETtalk содержит 80 скрытых иейог ut Ударение и границы с.юил н ых нейронов, 26 выходных узлов и 18629 связей 26 sw/zjflwu/ COOQO О ЖИЖ во сгрытьг/ нейронов ООС<>С<ХХ>Л^ЛЛ'----~ о f'uc. ЮЛ. Топология сети системы NETtalk При обучении системы NETtalk ей прымимис. окно размером 7 симаолоа. и сие- тема пытается произнести среднюю букву После сравнения ее произношения с кор- ректным веса системы настраиваются по методу обратного распространения ошибки. Этот пример иллюстрирует множество интересных свойств нейронных сетей, часть из которых отражают природу человеческого обучения. Например, в начале, когда про- центное соотношение корректных ответов невелико, процесс обучения идет достаточно быстро и замедляется с увеличением доли правильных ответов. Как и для человека, чем больше слов сеть научится произносить, тем легче ей будет выговорить неизвестные слова. Эксперименты, в которых некоторые весовые коэффициенты случайным образом изменялись, показал, что сеть устойчива к повреждению структуры. Исследования также показали высокую эффективность переобучения поврежденной сети. Еше один интересный аспект многослойных сетей — роль скрытых слоев. Любой ал- горитм обучения должен выполнять обобщение ия неизвестные сети точки предметной области. Скрытые слои играют важную роль, позволяя сети реализовать это обобщение Подобна многим сетям, обучвечым по методу обратного распространения, в скрытом слое системы NETtalk содержится меньше нейронов, чем во входном Это означает, что для кодирования информации, содержащейся в обучающих образах, в скрытом слое ис- пользуется меньше нейронов, т.е. этот слой реализует некоторую форму абстракции. Та- кое сжимающее кодирование приводит к тому, что различные входные образы в скрытом слое имеют идентичное представление. В этом и состоит обобщение. Система NETtalk обучается достаточно эффективно, хотя для этого требуется большое число обучающих примеров, а также многократное повторение итераций обучения на одних и тех же обучающих данных. В работе (Shavlik и др, 1991] приводятся данные эксперимен- тального сравнения результатов решения этой задачи методом обратного расдроетранения и с помощью алгоритма ГОЗ. Оказалось, что оба алгоритма дают одинаковые результаты, хотя по-разному обучаются и используют данные. В этом исследовании ров разделялось на две части: обучающую и тестовую выборки системы В разделе 9.3, и NETtalk) смогли корректно произнести 60% тестовых данных на 500 примерах. Однако дм обучения системы ГОЗ nOHaao6™^”|^^ w^ g ж_ му множеств?для системы NETtalk итерации обучения многократно повторялись. В ДО ленном исследовании обучение завершилось посте 100 KTC^aLU^^ прению основании- Как „омывает ™ пример. взаииос.™ ми на символьном и сетевом представления информации. Глава 10. Maiиинйтк» обучение на основе связей 453 452 Часть IV. Машинное
- о-тгпяп В следующем примере метод обратного распросто_ —« ж^Р=““в Хчаюшего ИЛИ”. применяется для решения 10.3.3. Применение метода обратного распространения для решеН11я задачи “исключающего ИЛИ В шершение этого раздела рассмотрю, задачу “исключающего ИЛИ" и Мк как ее можно решить с помощью нейронной сети со скрытым слоем. На рис. 1О.]2 По^ з^а етс с двумя входными нейронами, одним скрытым и одним выходным элементов Ст также содержит два пороговых нейрона, первый нз которых связан с единственным нейроном скрытого слоя, а второй — с выходным нейроном. Уровни активации скрЫто. го и выходного нейронов вычисляются обычным образом как скалярное произведение векторов весовых коэффициентов и входных значении. К этому значению добавляется величина порога. Веса обучаются по методу обратного распространения при испоЛьзо. ванни сигмоидальной активационной функции. Рис 10.12. Решение задачи ‘'исключающего ИЛИ" методом обратного распространения. Здесь Wy— весовые коэффициенты связей. Н — скрытый нейрон Следует отметить, что входные нейроны напрямую соединены обучаемыми связями с вы- ходным нейроном. Такие дополнительные связи зачастую позволяют снизить размерность скрытого слоя и обеспечивают более быструю сходимость. На самом деле сеть, показанная на рис. 10.12, не является единственно возможной. Для решения задачи “исключающего ШПГ’ можно подобрать множество различных архитектур нейронных сетей. Сначала веса связей инициализируются случайным образом, а затем настраиваются с использованием данных из таблицы истинности функции “исключающего ИЛИ" (0; 0)-+0; (0; 1 )->1; (1; 1)->0. После 1400 циклов обучения для этих четырех обучающих примеров получаются ве- совые коэффициенты следующего вида (значения округлены до 1 знака после запятой) ^,=-7.0 kVHB=2.6 kVo1=-7,0 kV^-11,0 ^7.0V-7,0 WOJ=~4,0. Для входного вектора {0,0) на выходе скрытого нейрона будет получено значение f(0*(-7l0)+0*(-7.0)+1‘2,6)=f(2,6)-4l. Для этого же входного образа выходное значение сети будет вычисляться ио фор«Уяе f(0*(-5,0H0‘(-4.0)+l«{_11i0)+V70)=fb40)^0 Для входного вектора (1,0) вводом cepuioro нейрона 6удат ____ ,11’(-7'0)+0*<-ЬО)+1-2.в)М(-4.4)->0. 454 Часть IV. Машинное обучеН а на выходе сети будет получено значение f(1 •(-5,0)+0*(-4,0)+0*(-11,0)+1'7,0)=Н2,0)->1 Для входного вектора (0, 1) будут получены аналогичные выходные значения, И, на- конец. рассмотрим входной вектор (1; 1). Для него на выходе скрытого слоя получим f(1’(-7,0)+1 *(-7,0)+1 *2,6)=f(-11,4)-»0, а на выходе сети f(1 *(-5,0)+1’(-4,0)+0*(-11,0)+1 *7,0)=f(-2,0)-»0. Понятно, что сеть прямого распространения, обученная по методу обратного распро- странения ошибки, обеспечивает нелинейное разделение этих данных. Пороговая функ- ция f это сигмоида, график которой показан на рис. 10,7,6, несколько смещенная в положительном направлении за счет обучаемого порога. В следующем разделе будут рассмотрены модели конкурентного обучения. 10.4. Конкурентное обучение 10.4.1. Алгоритм обучения “победитель забирает все” для задачи классификации В алгоритме “победитель забирает все" [Kohonen, 1984]. [Hecht-Nielsen, 1987] при предъявлении сети входного вектора возбуждается единственный нейрон, наиболее точ- но соответствующий этому образу. Подобный алгоритм можно рассматривать как реали- зацию механизма конкуренции между нейронами сети (рис. 10.13). На рис. 10.13 вектор входных значений X=(/j, х2..хт) передается слою нейронов сети А, В.N, причем нейрон В оказывается победителем, а его выходной сигнал равен 1. Рис. 10.13. Слой нейронов при работе ал- горитма "победитель забирает все". Ней- рон-победитель определяется на основе входных векторов __________________________________Г" 455 Глава 10. Машинное обучение на основе связей
л “победитель забьет все" реализует принцип обучения без учителя, По Алгоритм побелите выб1фается п0 максимальному уровню акгивнОсти. Ве’"°* скольку неирон-побед оНа победителя модифицируется для более точного ===ь-?-~ дИ^срГ’-ИЛ'), гле с - малый положительный параметр обучения, который обычно уменьшается а про. цессе обучения. Вектор весовых коэффициентов неирона-победителя настраивается пу. тем добавления к нему ДИ/*. и Согласно этому соотношению каждый компонент вектора весовых коэффициентОй увеличивается или уменьшается на величину х,-ие,. Целью такой настройки являете, максимальное приближение нейрона-победителя к входному вектору. Алгоритм “победитель забирает все” не требует прямого вычисления уровнен активации для поис- ка нейрона с наиболее сильным откликом. Уровень активации нейрона напрямую зави- сит от близости вектора весов входному вектору. Для /-го нейрона с нормализованным вектором весовых коэффициентов И/, уровень активации МД — это функция евклидово- го расстояния между W, и входным образом X. В этом можно убедиться, вычислив евк- лидово расстояние для нормализованного вектора W, |х - И(|=/х-wy = j№-2xu/+w/. Из этого соотношения видно, что среди всех нормализованных векторов весовых ко- эффициентов максимальный уровень активации WX соответствует векторам с минималь- ным евклидовым расстоянием J|X-W| |. Во многих случаях более эффективно опреде- лять победителя, вычисляя евклидово расстояние, а не уровни активации для нормализо- ванных векторов весов. Правило обучения Кохонена “победитель забирает все” рассматривается здесь по не- скольким причинам. Во-первых, это метод классификации, который можно сравнить с эффективностью персептрона. Во-вторых, его можно комбинировать с другими нейросе- тевыми архитектурами и обеспечить тем самым более сложные модели обучения. В по- следующих разделах будет рассмотрена комбинация метода обучения Кохонена с алго- ритмом обучения с учителем Гроссберга, Такая комбинированная архитектура, впервые предложенная Робертом Хехт-Нильсеном (Robert Hecht-Nielsen) [Hecht-Nielsen, 1987, 1990], называется сетью встречного распространения (counterpropagation network). Эта нейросетевая парадигма будет рассмотрена в подразделе 10.4.3. режде чем завершить это введение, следует отметить несколько важных модй- кации алгоритма победитель забирает все". Иногда в этот алгоритм добавляется комаМСТР С°®еС™ ’ кот°рый обновляется иа каждой итерации и препятствует слиш- П° еДаМ Одннх и тех же нейронов. Благодаря этому параметру про- В некотопых*°ДНЫ а °бразов Рааномерно представляется всеми нейронами сети. жество бл алгоРн™а определяется не нейрон-победитель, нейронов этого™ не”Ронов- и настраиваются весовые коэффициенты связей всех с^весовых ко°эТГа’ °ДИН падхо^ св<^ся к Дифференцирован^ н ' В рамках этого метп^ФИкИеНТ°В ВСех нейРонов из окрестности не про на-победите ниями и нормализуются0!^6”^Я Г™ °бычно инициализируются случайными знач^ алгоритм “победитель [Zurada, 1992]. в работе [Hecht-Nielsen, 1990J показа»0' ч’° ооедитель забирает все” можно рассматривать в качестве экви»*”"1” К-зиачиого анализа множества ланит п „„„ , кохонена обучения без учителя “победитель «бипаРа’“Л'' бУЛ" °ПИСа“ алгори™ решения задач кластеризации. р ст все , предназначенный для Ю.4.2. Сеть Кохонена для изучения прототипов вопросы классификации данных и исследования роли прототипов в обучении тради- ционно относились к компетенции психологов, лингвистов, специалистов по компью- терным наукам и теории обучения [Wittgenstein. 1953], [Rosch, 1978], [Lakoff 1987] Роль прототипов и классификации в интеллектуальной деятельности - это также основная тема данном книги, разделе 9.5 описаны методы классификации, основанные на сим- вольном представлении информации, и вероятностные алгоритмы кластеризации реали- зованные в системах COBWEB и CLUSTERS В разделе 10.2 представлен нейросетевой алгоритм классификации с помощью персептрона, а в этом разделе рассмотрен алгоритм кластеризации Кохонена “победитель забирает все" [Kohonen, 1984]. На рис. 10.4 снова показаны данные из табл. 10.3. На эти точки наложены наборы прототипов, сформированных в процессе обучения сети. В результате итрряпиниипгп обучения персептрона формируется такая конфигурация весовых коэффициентов, кото- рая обеспечивает линейное разделение двух классов. Как было показано, линейная по- верхность, определяемая этими весами, получается путем неявного вычисления центра каждого кластера в евклидовом пространстве. Этот центр кластера служит прототипом класса при решении задачи классификации с помощью персептрона. С другой стороны, алгоритм обучения Кохонена не требует участия учителя. При та- ком обучении набор прототипов создается случайным образом и уточняется до тех пор, пока прототипы не обеспечат явного представления кластеров данных. В процессе рабо- ты алгоритма коэффициент скорости обучения постепенно уменьшается, чтобы каждый новый входной вектор оказывал все меньшее влияние иа прототип. В системах, обучаемых по методу Кохонена, типа CLUSTER/2, используется строгий индуктивный порог, т.е. желаемое количество прототипов явно задается в начале работы алгоритма, а затем постоянно уточняется. Это позволяет разработчику определить кон- кретное число прототипов, представляющих каждый кластер данных. Метод встречного распространения (подраздел 10.4.3) обеспечивает дополнительное управление выбран- ным числом прототипов. На рис. 10.15 показана сеть Кохонена, предназначенная для классификации данных из табл. 10.3. Эти данные представлены в двухмерном декартовом пространстве, поэтому прототипы, представляющие кластеры данных, тоже являются упорядоченными парами. Для представления кластеров данных выбрано два прототипа по одному на каждый кластер. Узлы Д и В случайным образом инициализированы значениями (7,2) и (2,9). Случайная инициализация подходит только для таких простых 3 Обычно в качестве начальных значений векторов весовых коэффипиекгов выбираются представители каждого кластера. по6еД1тля является ближайшим к вход- Вектор весовых коэффициентов ^"Р0"0-" еще 6лнже к входным дан- ному вектору. Этот вектор весов уточняется и „гтаются неизмен- иым, в то время как весовые коэффициенты “X вектора до ними. Благодаря явному вь,ч''“е“'*”осВ“нормализовать эти векторы, как описано в каждого из прототипов нет необходимости н р подразделе 10.4.1. 456 Часть IV. Машинное обуч0ИИ глава 10. Машинное обучение на основе связей 457
нонена осуществляется бе3 * НеЙрОН-побеД««ль 0 Обучение сети Кохонен«о У веетороМ и каждым из прототипов. ется на основе расстояния ^организации сети (self-organizing net Сн' фикаиия выполняется в КохоНена входные данные обрабатываются » Обычно при обучеН““ из табл. 10.3 будут выбираться сверху вниз. Скач "''У' чайном порядке, однако д каждого из прототипов из- меряется расстояние от точк 11(1 1H7 2)||=(1-7);+J]“2;i"^ 11(1 1)-(2 9)||=(1-21 +<1"9) ~65' • Точки данных, а Прототипы | Рис. 10.14. Обучение сети Кохонена без учителя, при котором генерируется после- доватечьность прототипов, представ- ляющих кчассы из табл. 10.3 Рис. 10.15. Архитектура сети Кохонена для классификации данных из табл. 10.3 Узел А(7, 2) становится победителем, так как он ближе к точке (1; 1). Расстояние ме- жду этими точками ||(1; 1)-(7; 2) 11, причем квадратный корень вычислять нет необ- ходимости, поскольку эта функция возрастающая. Теперь для узла-победителя нужно пересчитать значения весовых коэффициентов, установив коэффициент скорости обуче- ния равным 0,5. На второй итерации WI=WI+C(X'-W,) = $ 2мЛ“ 0,5н1: ?^(7: г>+«-5« Л-П.С1 ;-2))= а второй итерации обучения вычислим расстояния от точки (9,4' 6,4): ||<9.4;6,4)-(4: 1,5)| |=(9,4;-4)4(6 4'-1 5)!-53 17 11 (9.4; 6,4)-(2; 9) 11 =(9.4; -'9)’=60,15 составляет Лигелем ЯВЛЯется узел А. Веса связей перед третьей итерацией обучен'01 W3 = W3+c(X’-w3) = =И; 1.5)+0,5((9,4; 6,4)-(4- 1 511 - =(4: ’.5М2.7; 2.5) = (6,7; 4) ' ” ' 458~ ------------ Часть IV. Машинное обучение На третьей итерации для точки (2,5; 2,1) имеем ||(2,5; 2,1 )-(6,7; 4)| |=(2,5~6,7)г+(2 1-4)г=21 оч ||(215;2,1)-(2;9)||=(215-2Л(2,1-9)1=47,8б УЗеЛ шТ40пп™0ВИТСЯ П°беДИТеЛем’ « «ег° вычисляется новый весовой вектор. На рис. 10.14 показана эволюция прототипов в течение 10 итераций. Алгоритм генера- 7пН1ГГп^йенТТННЬ1Х На ₽ИС‘ 1014’ Выбирает ОчеРедные Д^е из табл. 10.3 случайным образом, поэтому эти точки отличаются от вычисленных выше. Как показано на рис. 10.14, в процессе обучения прототипы постепенно смещаются к центрам кластеров. Напомним, что обучение выполняется без учителя на основе алгоритма с под- креплением ‘победитель получает все”. В процессе такого обучения строится последова- тельность явных прототипов, представляющих кластеры данных. Некоторые исследовате- ли, В том числе Зурада [Zurada, 1992] и Хехт-Нильсен [Hecht-Nielsen, 1990], показали, что алгоритм обучения Кохонена по существу эквивалентен k-значному анализу. В следующем разделе будет рассмотрен модифицированный алгоритм выбора прото- типов, основанный на модели Гроссберга, являющейся расширением сети Кохонена. 10.4.3. Нейроны Гроссберга и сети встречного распространения До сих пор рассматривалась задача кластеризации входных данных без участия учи- теля. Для обучения нейронной сети при этом требуются некоторые начальные знания об области определения задачи. В процессе определения характеристик данных, а также ис- тории обучения идентифицируются классы и выявляются границы между ними. По- скольку данные классифицируются на основе подобия их векторного представления, учитель может поспособствовать в калибровке полученных результатов или в присвое- нии имен этим классам. Это можно сделать с помощью обучения с учителем, при кото- ром выходы слоя, обучаемого по методу "победитель забирает все”, используются в ка- честве входов второго слоя сети. Решения этого выходного слоя можно явно скоордини- ровать (подкрепить) с помощью учителя. Такой подход позволяет, например, отобразить результаты слоя Кохонена в выход- ные образы или классы. Это можно сделать с помощью алгоритма •‘исходящей звезды” (outstar) Гроссберга [Grossberg, 1982], [Grossberg, 1988]. Комбинированная сеть, вклю- чающая слой нейронов Кохонена и слой Гроссберга, впервые была предложена Робер- том Хехт-Нильсеном и получила название сети встречного распространения (counterpropagation network) [Hecht-Nielsen, 1987, 1990]. Слой Кохонена достаточно подробно рассмотрен в подразделе 10.4.2, поэтому здесь остановимся на слое Гроссберга. На рис. 10.16 показан слой нейронов/l, В. N, один из которых-----1— является победителем. Алгоритм Гроссберга предполагает наличие обратной связи от учителя, приставленной вектором Y. с целью подкрепления весов связей от нейрона J к нейрону I выходного слоя, который должен активтироватъ с». Согласно алгоритму обучения Гроссберга вес исходящей связи W, от нейрона J к нейрону / увеличивается. общается слой Кохонена. После опреде- в сети встречного распространения сначала ооуча тс шаче- лення победителя его выходное значение устанавливается равным 1. ния всех остальных нейронов Кохонена принимаются равными называемую все нейроны выходного слоя, с которыми он связан, ^О1)МОР. №мпо- -исходящую звезду (рис. 10.16). Обучение слоя Гроссберга осуществляете. для компо нентов этой “звезды”. Глава Ю. Машинное обучение на основе связей 459
Слой нейроное. обучаемых по .—,пи 'победитель Выходной Ожидаемый Рис. 10.16. "Исходящая звезда" для нейрона J в сети, обучае- мой по методу "победитель забирает все ”. Вектор Y — это ожидаемый выход слоя Гроссберга. Жирной линией выделены связи нейрона, выход которого равен 1; выходные значения всех остальных нейронов слоя Кохонена равны О Если каждый кластер входных векторов представляется одним классом и всем членам этого класса соответствует одно и то же значение выходного слоя, то в итеративном обу- чении нет необходимости. Требуется лишь определить, с каким нейроном слоя Кохонена связан каждый класс, а затем назначить веса связей между каждым нейроном- победителем и выходным слоем на основе ассоциации между классами и ожидаемыми выходными значениями. Например, если J-й нейрон Кохонена соответствует всем эле- ментам кластера, для которого ожидаемым выходом сети является /= 1, то для связи ме- жду нейронами J и I нужно установить значение w}i= 1, а для всех остальных весовых ко- эффициентов исходящих связей нейрона J — wA=0. Если одному кластеру могут соответствовать различные выходные нейроны, то для настройки весовых коэффициентов “исходящей звезды" применяется итеративная про- цедура обучения с учителем на основе ожидаемого вектора Y. Целью процедуры обуче- ния является усреднение ожидаемых выходных значений для элементов каждого кластера, еса связей неирона-победителя с выходными нейронами настраиваются согласно формуле W"'= 1У+С( У- |У) W Зам^м.^Тэто П°беДИТеЛЯ c^X1wm с^ТИЯ’ Вектор Бесовых коэффпии- СЛ°Я Кохонена » адгоР«тм обучения п , * М’ а ожидаемый выходной век- победитель и его „УЗЛ°М 1 ВЬ1*одного слояРтВ°ДИТ К усилсиию связей между умом J ^ный адгоркп ®Ь1ХОд равен Л а желаемый°ДЬК° В Т0М сл^ае- если f- нейр°Н' ТоР°мУ связь между°ЖД0 СЧИТа1ъ разновиднп ВЬ1Х°Д ПрИ ЭТОм тоже Равен 1 • Поэт0МУ Над Хебба более Усиливается СТЬк\мет°Да обучения Хебба, согласно ко- табл Р оТ“М Сеть в4ечног11СаНа В Р&ЗДеЛе ? "РИ В03буЖденИИ’ ШеЯ ------ ажем на этом Примерзания для распознавания кластеров данных реализуется алгоритм обучения такой сет,! Часть IV. Машинное обучений 460 ДопУстим’ параметр Xi в табл. 10.3 представляет скорость двигателя в силовой установ- ке, а х2 — сго температуру. Оба параметра откалиброваны таким образом, что принима- ют значения из диапазона [0, 10]. Предположим, система мониторинга через заданные интервалы времени снимает данные с двигателей, и должна рассылать уведомление, если скорость н температура чрезмерно возрастут. Переименуем выходные значения в табл. 10.3 следующим образом: будем считать, что значение +1 соответствует “безопасному” состоянию, а -1 — “опасному". Сеть встречного распространения при этом будет выглядеть примерно так, как показано на рис. 10.17. Слой Входной 'победитель слой х, забирает все' Скорость Температура Выходной слой Рис. 10.17. Сеть встречного распространения для распо- знавания классов из табл. 103. Обучению подлежат ве- совые коэффициенты и WAD связей узла А с выход- ными нейронами Поскольку точно известно, каким выходным значениям слоя Гроссберга должны со- ответствовать нейроны-победители слоя Кохонена, можно напрямую задать эти значе- ния. Для демонстрации обучения слоя Гроссберга обучим сеть с помощью указанной выше формулы. Если (произвольным образом) принять решение о том, что узел S вы- ходного слоя отвечает за безопасную ситуацию, а узел D — за опасную, то веса связей нейрона А слоя Кохонена с выходным слоем должны быть равны (1; 0], а веса связей нейрона В — [0; 1 ]. Благодаря симметрии этой ситуации можно ограничиться рассмот- рением процесса обучения только для “исходящей звезды" нейрона А. Прежде чем приступать к обучению слоя Гроссберга, необходимо обучить слой Ко- хонена. Сходимость процесса обучения для слоя Кохонена была рассмотрена на этом же примере в подразделе 10.4.2. Входные векторы для обучения исходящих связей нейрона А имеют вид [X|, Xj, 1,0). Здесь хг и х^ — это значения из табл. 10.3, соответствующие нейрону А слоя Кохонена, а два других компонента указывают на то. что узел А является победителем, т.е. безопасное состояние двигателя соответствует значению "истина , а опасное — значению “ложь" (см. рис. 10.15). Веса исходящих связей нейрона А инициали- зируем значениями {0; 0] и коэффициент скорости обучения сделаем равным 0,2 1V*=[O; 0)+0,2[[1; 0]-[0; 0]]=(0; 0]+[0 2; ОНО.2. 0] И^=ГО 2' 01+0 2Г(Г 01-[0.2; 0)]=[0,2; 0]+[0,16, 0]—[0.36. 0]. СЦ-Ю.Зб'оПЧ 0.36; <>)Ч0.13. °НО+9.01. W=f0 49‘ 01+0 2ГГ1 ’ 01-Г 0 49; 0]] = [ 0,49, 0] + [0,1, 0]—{0,59, 0], ^[Д599; oj+S.llU;' ОН о 59; 0)Н 0.59; 0М0.О8; 0]=[0.67; 0). Глава 10. Машинное обучение на основе связей 461
L 1 что в процессе обучения значения весовых коэффН||Мп Несложно У»°^,^в;ия0. ю.за однозначности соответствия пейрона-поб*^ можно было бы просто назначить веса связей и „с „сполыо^ алгоритм обучения в0°6“еи обеспечивают адекватное функционирование г^,. Покажем, что такие значешы.веси поизан„ой на рис. 10.17. подать "ХдаН«” габл^оТто'уровень активности нейрона А составит [1; 1], а нейрона а ~ гоТвзве— суммаэтих значений для нейрона S выходного слоя составит 1. Еад Нисходящих связей нейрона В составляют [0.1] то уровень активации нейрона О 6у. ‘“паве,, 0 что „ требуется для данной задачи. Выбирая второй вектор из табл. 10.3, по. лучим уровень активации для узла А [0; 0). а для узла В - [1; 1 ]. Взвешенная сумма этих значений для нейрона S составляет 0, а для нейрона D — 1. Аналогично можно прове- рить корректность функционирования сети для всех данных из табл. 10.3. С точки зрения теории познания для сети встречного распространения можно предложить ассоциативную интерпретацию. Вернемся к рис. 10.17. Обучение слоя Кохонена можно рас- сматривать как знакомство с условным стимулом, поскольку сеть изучает образы по мере их поступления. Обучение слоя Гроссберга — это связывание нейронов (безусловных стимулов) с некоторым откликом. В рассмотренном случае сеть обучится рассылать уведомление об опасности при соответствии данных некоторому шаблону. После обучения система будет правильно реагировать на новые данные даже без участия учителя. Другая когнитивная интерпретация сводится к подкреплению определенных связей в памяти для данного шаблона. Этот процесс напоминает построение таблицы поиска для откликов на шаблоны данных. Сеть встречного распространения имеет, в некотором смысле, значительное преиму- щество перед сетью обратного распространения. Подобно сети обратного распростране- ния, она обучается классификации на основе нелинейного разделения. Однако делается это за счет пре процессинга, обеспечиваемого слоем Кохонена, с помощью которого дан- ные делятся на кластеры. Такая кластеризация обеспечивает существенное преимущест- во по сравнению с сетью обратного распространения, поскольку устраняет необходи- мость выполнения поиска, требуемого для обучения скрытых слоев такой сети. 10.5. Синхронное обучение Хебба 10.5.1. Введение в биологической основывается на следующем наблюдении: если один нейрон миуешжва ” НеЙ₽°На- " который процесс^пДаМ1?ОГОКРа^10 участвУет » возбуждении клетки В, то имеет место не- Дящий к усилению влияния ”етаболкчесх0Г0 изменения в одной или обеих клетках, при»0' Т влияния клетки А на клетку В." ван на поведенческом^ппми* ВЫГЛЯлит Достаточно привлекательно, поскольку он осно уровне. Нейрофизиологическ?ИПе П0ДкРеплення1 который наблюдается на нейронном совместном возбуждении мей™ Исследования подтвердили идею Хебба о том, что при Однако этот процесс ока^апг Н°В С11Наптические связи между ними могут усиливаться- оказался гоРаздо сложнее предположения Хебба об -усилении влияния”- Представленный в этом разделе закон обучения пг>тл,,. игу, Хебба, несмотря на то, что его идея оказала (>ЛУ^ИЯ название метода обуче- ‘ -™р„„ (^n“~nZZ°1^Pa,m,Or''ТаК0С °6УЧЯ,,“= ответ „а собы-™, происходящие в нейронной сети. Законы „бучен™ ХсяХ™ к ™“, итегории. описываются своими временными и пространсвеннымн сво^амГ Обучение Хебба используется в многочисленных нейросетевых архитектурах, Оно реализуется как в интерактивном, так и в кумулятивном режимах. Эф^кт уХп, сш,° зей между нейронами пр,, их взаимном возбуждении можно математически иромодели- ровать с помощью настроикн весов связей между ними с учетом знака произведения их выходных значении. Остановимся на конкретной реализации этого подхода. Предположим, что выход нейрона /связан со входом нейрона/. Добавкой к весовому коэффициенту связи между этими нейронами ДИ/ можно определить коэффициент скорости обучения с. взятый со знаком произведения (о, о;). В табл. 10.4 приводятся данные о знаке произведения о*о; выходов нейронов / и j в зависимости от знака каждого из множителей. Из первой строки таблицы видно, что если оба выхода нейронов положительны, то и весовая добавка ДИ/ имеет знак Следовательно, если нейрон / участвует в возбуждении нейрона /. то связь между ними усиливается. Таблица 10.4. Зависимость знака произведения от знаков выходных значений нейронов О, О ‘ Oj + + + - - + - - - + Вторая и третья строки таблицы соответствуют ситуации, когда знаки выходных зна- чений нейронов различаются. Поскольку знаки отличаются, необходимо уменьшить влияние нейрона i на выход нейрона /. Следовательно, инкремент к весовому коэффици- енту связи выбирается с отрицательным знаком. И, наконец, в четвертой строке знаки выходов нейронов i и / снова совпадают, и сила этой связи увеличивается. Такой меха- низм настройки весов способствует укреплению связей между нейронами, если их вы ходные сигналы имеют одинаковый знак, и уменьшению этой связке противном случае В следующих разделах рассматриваются два типа обучения ео а учителя учителем. Сначала рассмотрим алгоритм обучения без учителя. Ю.5.2. Пример алгоритма обученна Хебба без учителя Напоим, что при обучен™; используется внешнее воздействие. Веса ДФ от, сводигс, к уенлеишо от- формаци,, О входах „ выходах неирояд г, показаио. мегод юшка сет,, на уже виденные Вна мноте обусловленного отклика, ко- Хебба используется для моделирования > произвольно выбранный стимул, гда в роли условия для желаемого ода- Ч настраивать по формуле При обучении Хебба без учителя веса нейроны ДИ/=с*/(Х(1Л0*Х, Глаза 10. Машинное обучение на основе связе" 463 462 Часть IV, Машинное обуменИ
гд^м« „оло«ПеЯЬНи11 «оэффициект обучения. ПХМ - выходное , го^ейрона. аХ-ег® код- дапмиоюп, дай преобразования отклика сен, Покажем, как тму„а к условному. Эго позволит промоделировал, вида основного или безусло ,ект Павлой, когда у собаки вырабатывался обучения. разработанный того, как пол™ 1,|ШШ со6аке ""“'окрагао сопроводила», ный рефлекс на звоно_ „ачиналось слюноотделение. Сеть, показанная на рис. ц звонком, при звуке » У шес1ью нейронамп и выходной слон с одним нейронон содержит е слоя. ,ать значеш,с +1. соответствующее возбужденному Выходной нейрон Л^-л^ующее его невозбужденному состоянию. °6>'!c"'w равным °'2-в OTM примср:сиъ о6у,ад-» Ж4, И 1-1 -1 Г-1] представляющий собой конкатенацию двух образов: „ и 1]’. Образ [ 1: -1; ’ 1 соответствует безусловному стимулу, а образ f-1; 11J — новому. Рис. 10.18. Пример нейронной сети, для которой применяется обучение Хебба без учителя Предположим, сеть положительно реагирует на безусловный стимул, но не воспри- нимает новый стимул. Положительный отклик сети на безусловный стимул можно обес- печить с помощью весового вектора [ 1; -1; 1 ], в точности соответствующего входному образу, а нейтральный отклик на новый стимул— с помощью вектора весов [0;0;0]. Конкатенация этих двух векторов весовых коэффициентов дает исходный вектор весов сети [1;-1 ;1;0;0;0]. Теперь сеть нужно обучить реакции на входной образ таким образом, чтобы новая конфигурация весов обеспечивала положительный отклик на новый стимул. На первом шаге работы сети вычислим ^1И(!мп‘з1|*('1,)+(1’1)+,0’''’,,+,0’’)+(0'(-1,)= f(3)=sign(3)=1. Теперь определим новый вектор весовых коэффициентов . К Се™ НЭ Т0Т Же ВХОДНой обРаз с учетом обновленного вектора весов f(4,2)=, c;t(U.2)+(012)+(012)=4,2, Определим новый вектор весовых коэффициентов IV’ И^=М.2;-’.2;1.2;-0.2;0.2;-0,2Н0.2-1-[1 -V1- Несложно заметить, что произведение вектлппя м/.у „ дам абсолютное значение какого элемента в^ра "а °'2' П°“е 13 ИТСР™Й - 1У’1=[3,4;-3.4;3,4;-2,4;2,4;-2,4]. Теперь этот обученный вектор весов можно использовать для тестирования отклика сети на два отдельных образа. При этом ожидается, что сеть будет по-прежнему положи- тельно реагировать на безусловный стимул, и. что гораздо важнее, будет давать положи- тельный отклик на новый, обусловленный, стимул. Сначала проверим реакцию сети на безусловный стимул Три последних элемента входного вектора заполним про- извольно выбранными значениями 1 и -1. Например, определим реакцию сети на вектор sign! IV*X)=sign((3,4‘ 1 )+((-3,4)*(-1 ))+(3,4* 1)+ + (-2,4*Г)+<2,4*()+«-2,4)-(-ГШ= =sign(3,4+3,4+3,4-2,4+2,4+2,4)= =sign(12,6)=+1. Таким образом, сеть по-прежнему положительно реагирует на исходный безусловный стимул. Теперь проверим реакцию сети на тот же безусловный стимул и другой случайно выбранный вектор в последних трех позициях sign(H/'X)=sign((3,4*1)+((-3,4)*(~1))+(3,4’1)+ +(-2,4*1 )+(2,4’(-1 ))+((-2.4)’(-1 )))= =sign(3,4+3,4+3,4-2,4-2,4+2,4)= =sign(7,8)=+1. Этот входной вектор тоже приводит к положительному отклику сети. На самом деле эти два примера свидетельствуют о том, что сеть чувствительна к исходному стимулу, связь с которым была усилена благодаря его многократному повторению. Теперь определим отклик сети на новый стимул закодированный в послед- них трех позициях входного вектора. Первые три элемента заполним случайно выбран- ными значениями из множества (-1;1) и проверим реакцию сета на входной вектор 11;1;1,-1;1;-1] sign( WX)=sign((3,4*1)+((-3,4)*1)+(3,4*1)+ +(-2,4'(-1 ))+(2,4*1 )+((-2,4)*(-1 )))= =sign(3,4-3.4+3,4+2,4+2,4+2,4)= =sign(10,6)=+1. Дают с исходным стимулом, а вторые три отличаются о у sign(lV’Z)=sign((3,4-n+((-3l4n-W+(3l4*(-1))+ 464 Часть IV. Машинное обУ4®"11 Глава 10. Машинное обучение на основе связей 465
+(-2,4* J)+[2,4*1)+((-2,4)*(-1 )))s =sign(3,4+3,4-3,4-2,4+2,4+2,4}= ‘ =sign(5,8)=+1. [ Следовательно, распознан даже слегка отличный стимул. | Что же получилось в результате обучения Хебба? Благодаря многократному ному появлению старого и нового стимула была создана ассоциация Между Новым°ВМеСГ" лом н старым откликом. Сеть научилась обеспечивать прежний отклик на новый СТН?’’У‘ без участия учителя. Такая повышенная чувствительность также позволяет сети СТимУ« отвечать на слегка модифицированный стимул. Это достигается за счет синхп П^авИЯЬн° чения Хебба, в процессе которого сила отклика на общий образ увеличивается 0Г° дит к усилению отклика сети на каждый отдельный компонент этого образа ' ЧТ° °РИВ°' 10.5.3. Обучение Хебба с учителем Правило обучения Хебба основано на принципе усиления связи между нейронами при их взаимном возбуждении. Этот принцип можно адаптировать н к обучению с учителем, если , вес связи настраивать на ожидаемый, а нс реальный вьгход нейрона. Например, если входной потенциал нейрона В, поступающий от нейрона А, является положительным, и от нейрона В ожидается положительный отклик, то связь между этими нейронами усиливается. Проверим, как с помощью метода обучения Хебба с учителем можно научить сеть распознавать набор ассоциаций между образами. Ассоциации задаются как набор упоря- । доченных пар {<Xt, Л>, <Х2,У1>,..., <Х(,У(>}, где X, н У,— вектор ассоциируемых между собой образов. Предположим, размерность вектора X, равна л, а размерность Y,— т. Построим сеть, соответствующую этой ситуации. Оиа должна состоять из двух слоев, первый из которых содержит п нейронов, а второй — т (рис. 10.19). Для обучения этой сети воспользуемся формулой настройки весов нз предыдуще- го раздела AW=c*f(X,lV)’X, где f(X,IV) реальный выход нейронной сети. При обучении с учителем заменим ре- альный выход нейронов ожидаемым выходным вектором D. Получим г,, w AlV=c*D*X Puc, io гл *п обучения Хебба ^учитела»011^ С ПОЛ,ои1ЫО Л,ет°да 466 возьмем пару векторов <Х,.У,> из набора ассоциаций „ применим это правило обу- чеВВЯ к узлу X выходного слоя где AW* —’ весовая добавка к связи нейрона / входного слоя с узлом к выходного слоя, ______ ожидаемый выход К-го нейрона, а х, — /-й элемент вектора X. Эта формула приме- няется ДЛЯ настройки всех весов связей всех нейронов выходного слоя. Вектор <хь х , хл> —это входной векторX, a <dlt бг,..., dn> — выходной вектор У. Применяя ’ формулу для настройки отдельных весов связей с каждым нейроном выходного слоя, приходим к формуле модификации весов для всего выходного слоя 4И/=с*Г’Х. где у*Х__внешнее векторное произведение (outer vector product), определяемое как матрица УХ = Чтобы обучить сеть всему набору ассоциированных гар, нужно организовать итера- ционную процедуру настройки весов для каждой пары <Х„ Y,> по формуле Wt''-Wt+ctYl‘X/. Для всего обучающего множества имеем W'=W’+c’(y]'X,+ У/Хг+...+У,‘Хг). где IVй исходная конфигурация весов. Если исходные веса IVе инициализировать нуле- вым вектором < 0; 0;...; 0 >, а коэффициент обучения с выбрать равным 1, получим сле- дующую формулу вычисления весов w=r,-x,+ Г/Х2+...+Уг’Х,. Сеть, отображающая вектор входов в вектор выходов и обученная по этой формуле на- стройки весов, называется линейным ассоциатором (linear associator). Как станет ясно впо- следствии, такая модель позволяет хранить множество ассоциаций в матрице связей. Это приводит к возможности взаимодействия между сохраненными шаблонами. Проблемы, возникающие при таком взаимодействии, будут рассмотрены в следующих разделах. 10.S.4. Ассоциативная память и линейный ассоциатор Нейронная сеть, представляющая собой линейный ассоциатор, впервые была предложена Т- Кохоненом [Kohonen, 1972] и Дж. Андерсоном [Anderson и др.. 1977]. В этом разделе будет описана линейная ассоциативная сеть, предназначенная для хранения и восстановления обра- зов из памяти. Будут изучены различные формы памяти, в том числе гетероассоииативная. ав- ^ассоциатнвная и интерполятмвная модели. Будет проанализирована возможность использо- ^ння линейного ассоциатмва для реализации щперполятивнои памяти на базе метода обук- «чя Хебба. В завершение раздела будут рассмотрены проблемы интерференции или помех. вникающих при хранении в памяти нескольких образов. Сначала введем несколько определений, связанных с хранением информации в памя- т" Входные образы и хранимые в памяти значения являются векторами. Для устранения Часть IV. Машинное обучоние аВа 10. Машинное обучение на основе связей 467
r но вводится индуктивный порог, предполагающий проблемы представления ооы 1Ые в памяти ассоциации продета^ X "Р '“ “%, <Х,П>........ <ХХ». Д- ка^ой „арь,”; ’ * „да набора вектора ^^ючдля „«становления образа К,. Существует три тиваЦ' социативной памяти. „„„„тивная память (heleroassociaUve memory) — это такое отображ. Ь „Г«Х““™Р“М »еет°РУ Х' НаИб°Лее бЛ”К0МУ “ Х" СТаВИТСЯ ° С0°ТВеТС™е »<» вращаемый вектор К- 2 Автоассоциативная память (antoasocianve memory) - это такое ото6раже «„котором для всех пар Х,=Г.. Поскольку каждый вектор X, ассоциируется с са. мим собой, эта форма памяти используется в основном для восстановления полно- го вектора по его части. 3 Интерполятнвная память (interpolaiive memory) — это такое отображение ф; X-tY при котором отличному от эталона вектору Х-Х.+ Д, ставится в соответствие выходной вектор Ф(Х)=Ф(Х,+Д,)= К+С, где Е=Ф(Д,)- При интерполятивном ото- Сражении каждый из ключей эталона связывается с соответствующим образом в памяти. Если же входной вектор отличается от эталонного на вектор Д, то выход, ной вектор тоже отличается от эталонного иа величину Е, где Е=ф( Д,). Автоассоциативная и гетероассоциатнвная память используются для восстановле- ния одного из запомненных эталонов. Они моделируют память в ее исходном значе- нии, при котором извлекаемый образ является точной копией запомненного. Можно также сконструировать память таким образом, чтобы выходной вектор отличался от сохраненного в памяти в некотором семантическом смысле. В этом и состоит роль ин- терполятивной памяти. Линейный ассоциатор, представленный на рнс. 10.20, реализует одну нз форм интер- полятивной памяти. Как следует из подраздела 10.5.3, его работа основана на модели обучения Хебба. Веса связей инициализируются с помощью соотношения, приведенного в подразделе 10.5.3 При таких значениях весовых коэффициентов для каждого эталонного ключа сеть бу- дет восстанавливать точно соответствующий ему эталонный образ, в противном случае она будет осуществлять интерполяционное отображение. Теперь введем несколько понятий, которые помогут проанализировать поведение этой сети. Сначала введем метрику, позволяющую определить точное расстояние между векторами. Все векторы-эталоны в рассмотренном примере являются х&м.имнговььмм, т.е. пякш ТМИ Т0ЛЬК0 из ”1 и +1, Для описания расстояния между хемминговыми векго- лпл^ ЖН° ВВеСТИ хела,ингово расстояние (Hamming distance). Определим хеммингою пространство следующим образом: V множествами*-1} ГД6 КажАый элемент х, принимает значения из ком пространстве как°ЯНИе определяется MeW двумя любыми векторами в хемминго ичеству различных компонентов в векторах Хи Н 468 Часть IV. Машинное обучеиие
У'. = *”*>* *1*1 .WlnKl Уг- '*г№**г2Хг*...ИгпХг Xn=H''"'*"> + ‘Wm* ..МюЛп Рис. 10.20. Линейная ассоциативная сеть. На „од сета подается вектор Х„ а „а выходе получается со- ответствукпццй ечу вектор У, каясдый компонент которого у, является линейной комбинацией входов В процессе обучения каждый выходной нейрон подкреп- ляется соответствующими елку корректными выход- ними сигналами Например, хеммнкгово расстояние в четырехмерном хемминговом пространстве ме- жду векторами (1; — 1; — 1; 1) и (1 ;1 ;-1; 1) равно 1, И (1 ;1 ;1 -;1) равно 4, (1;-1;1;-1) и равно 0. Введем еще два определения. Дополнением хеммингового вектора называется вектор, все компоненты которого противоположны компонентам исходного вектора. Например, дополнением к является вектор (-1,1; 1,4). Определим понятие ортонормальности векторов. Ортонормальными называются ортогональные или перпендикулярные векторы единичной длины. Покомпонентное про- изведение ортонормальных векторов равно 0. Следовательно, скалярное произведение любых двух векторов X, и Х} из набора ортонормальных векторов равно 0, если эти век- торы различны: Х,Х/=5Ц, где 6, =1, если /=/, и 5Ч =0 в остальных случаях. Покажем, что определенный выше линейный ассоциатор обладает следующими дву- мя свойствами. Пусть Ф(Х)__выполняемое сетью отображение. Во-первых, для любого входного вектора Х„ точно соответствующего одному из эталонов, выход сети Ф(Х,) ра- вен соответствующему выходному эталонному вектору Yt. Во-вторых, для любого вход- ного вектора Xt. не соответствующего ни одному из эталонов, выход сети Ф(Х£) равен вектору yt, представляющему собой интерполяцию вектора Xt. Более точно, для X*- X, +Л„ где X, — эталонный вектор, сеть возвращает значение К=К+£ Е=Ф(Д,). Глава 10. Машинное обучение на основе связей
Сначала покажем, что при подаче нз вход сети одного из эталонов она соответствующий ему эталонный образ. в^аЩаег По определению активационной функции сети Ф(Л,1=МХ,. Поскольку W=Y,'X,-t Y/X^.^Y/X,, получим ф(Х,)=(Г,'Х,+*;Y-’x-',x° = Y.X.X. + УЛХЛ- + Y-X-X „о закону дистрибутивности. Поскольку из сказанного выше следует, что ХЛ=8„. то ф/х^О, + YA, + -+ уА' +--+ У"8" Поyemm ортонормальности 8,у=1 при >=/ и 0 в остальных случаях. Тогда ф(л;)=у,‘о ♦ у,-о +...+ К‘1 + + Y.‘a‘ Yr Можно также показать, что для входного вектора X., ие соответствующего ни одному из эталонов, сеть выполняет интерполирующее отображение. Так, для X,— X, +Д,. где X, — один из эталонных векторов Ф(Х,)= Ф(Х,+Л,)=У+Е. где У( — вектор, связанный с Х„ а Е= Ф(Д,)= «‘Х,+ У/Хг+..Л Y/XJ А,. Детали доказательства можно опустить. Теперь приведем пример обработки данных с помощью линейного ассоциатора. На рнс. 10.21 показана простая линейная ассоциативная сеть, отображающая четырехмер- ный вектор X в трехмерный вектор Y. Поскольку сеть работает в хемминговом простран- стве, в качестве активационной функции необходимо использовать описанную выше функцию sign. Допустим, требуется запомнить две векторные ассоциации <Хц Yi>. Yi 470 Часть IV. Машинное обУчеИ
Используя определенную в предыдущем линейного ассоциатора, получим Риделе формулу инИциадизаЦ11И вссов М=Л*Х,+ Л*хг+ У'/х^.+у^ С помощью операции вую матрицу сети внешнего векторного произведения Y X +Y у F линия rjXj+rjXj вычислим вссо- -1 1 1 -1 1 -1 1 [-1 -1 -1 1' -1-1+1 1 1 -1 -1] [-1 , -2 0 0 2’ 2 0 0 -2 .0-2-2 0 w = Проверим работу линейного ассоциатора для одного ит эта,™™ ц Х=[1:_1 из первой озонной пары „ вычислнТсвязаниьХцим в =Z>V У,=((-2)'1 )+(0'(-1 ))+(0"(-1 ))+(2*(-1 ))=_4 sign(_4)=_1 Уг=(2* 1 )+(0'(-1 ))+(0*(-1 ))+((-2)’(-1) =4, 51д’(П’)=4 Г У3=(0* 1 )+((-2)’(-1))+((-2)*(-1))+(О"(-1))=4 sign(4)'=i. Следовательно, У,-[-1;1;1] — получена вторая половина пары. Приведем пример линейной интерполяции эталона. Рассмотрим вектор X=[1;-1;1;1J. У,=((-2)*1 )+(0‘(-1 »+(0‘1)+(2*1)=0, sign(0)=1. Уг=(2*1)+(0*{-1))+(0*(-1))+((-2)*1)=0, sign(0)=1, У,=(0*1)+((-2)*(-1))+((-2Г1)+(0-1)=0, sign(0)=1. Заметим, что вектор У=[ не соответствует ни одному из эталонов. Подытожим несколько наблюдений относительно линейных ассоциаторов. Ожидае- мые свойства таких сетей основываются на предположении, что эталонные экземпляры составляют множество ортонормальных векторов. Это ограничивает их практическую применимость по двум причинам. Во-первых, может не существовать очевидного ото- бражения реальной жизненной ситуации в ортонормированный набор векторов. Во- вторых, количество сохраняемых образов ограничено размерностью векторного про- странства. Если требование ортонормированности нарушается, образы смешиваются в памяти, что приводит к помехам (crosstalk). Обратите внимание на то, что линейный ассоциатор восстанавливает эталонный об- раз только тогда, когда входной вектор в точности соответствует эталонному. При отсут- ствии точного соответствия входного вектора сеть выполняет интерполяционное ото- бражение. Можно возразить, что интерполяция не является памятью в прямом смысле этого слова. Зачастую требуется реализовать истинные свойства памяти, когда при пода- че на вход приближенного ключа сеть восстанавливает точный соответствующий ему эталонный образ. Для этого нужно ввести в рассмотрение аттракторный радиус, обес- печивающий притяжение векторов нз некоторой окрестности. В следующем разделе описывается аттракторная версия линейной ассоциативном сета. 10.6. Аттракторные сети (сети “ассоциативной памяти”) Ю.6.1. Введение До сих пор рассматривались сети ирного ®«гк). в таких сетях данные поступают на входные нейроны послеДую.цим слоях, до выхода ю се™. Еще одном важным классом нейронных сетей явля 471 ГлаВа 1 о. Машинное обучение на основе связей
_ „ш, «или» (feedback network). Архггтокгда таких сетей отл„.|ВДся котя сети с обратили аипямиt ° косвенно назад, ко входам нейрона. что выходкойяю передается Р r от сегей прямого распространения соП(,„ Отличия сетей с обратными яг в следующем. I Между нейронами существуют обратные связт. ' ИмХя некоторая .ременная задержка, т.е. сигнал распространяется не мптовещ,». 3 Выходом сети является ее состояние по завершении процесса сходимости. 4 Полезность сети зависит от свойств сходимости. Когда сеть с обратными связями приходит к неизменному состоянию, такое состояние называется состоянием равновесия, которое и рассматривается в качестве выхода сети. В сетях с обратными связями, которые будут рассмотрены в подразделе 10.6.2, со- стояния сен. инициализируются входным вектором. Сеть обрабатывает этот образ, псрс. давая его несколько раз от входа к выходу до тех пор, цока не достигнет состояния ра,- новесия Состояние равновесия сети - это и есть образ. Извлеченный из памяти. В под. разделе 10.6.3 будут рассмотрены сети, реализующие тетероассоциативную память, а в подразделе 10.6.4 — модели автоассоциативной памяти. Интересны и важны когнитивные аспекты этих сетей, реализующих модель контекст- но адресуемой памяти. Этот тип ассоциативных связей описывает извлечение из долго- временной памяти номера телефона, чувства досады или даже распознавания человека по части его фотографии. Исследователи выделяют множество ассоциативных аспектов этого типа памяти в структурах данных, основанных на символьном описании, включая семантические сети, фреймы и объектные системы, рассмотренные в главе 6. Аттрактор (attractor) — это состояние, к которому со временем сходятся другие со- стояния из некоторой окрестности. Каждому аттрактору в сети соответствует область, внутри которой сеть всегда эволюционирует к этому состоянию. Эта область характери- зуется аттракторным радиусом. Аттрактор может содержать одно состояние сети или не- сколько состоянии, по которым происходит циклическое перемещение. Попытки понять и математически описать свойства аттракторов привели к формиро- ванию понятия функции энергии сети [Hopfield, 1984]. Сети с обратными связями, функ- иня энергии которых обладает тем свойством, что любой переход состояний этой cent приводит к уменьшению сетевой энергии, обязательно сходятся к точке равновесия. Эти сети будут описаны в подразделе 10.6.3. Аттракторные сети можно использовать для реализации контекстно адресуемой па- мяти, запоминая нужные образы в качестве аттракторов сети. Их также можно приме- нять дм решения задач оптимизации, а том числе для задачи коммивояжера, создавая заЛачиТпТД„ФУК1ЩИИ стоимос™ в эадаче оптимизации в энергию сети. Решение зта» щьютак вазыв" " умсньш,ению о6ш™ энергии сети. Этот тип задач решается с помо- щью так называемых сетей Хопфилда. Ю.6.2. Двунаправленная ассоциативная намять | со™т^1е“ПХоСсмГ™ВНаЯ ПаМ”ТЬ (ДАП)- впеРвые описанная в [Kosko, 19881- воаать обратная связь каж ЬК СЛОеВ °^РабатЬ1ваюших элементов. Может также суше мерный входной вектоп X °Г° Нейр0Ва с с*мим собой. Сеть ДАП, отображающая скольку связи между нейронами *ерНЫИ выходиой вектор Ym, показана на рнс. 10'2*" й необходимо определять для обоих hsT являются двунаправленными, то веса ктг Часть IV. Машинное обучен'’
Рис. 10.22. Сеть ДЛП доя примера из под- раздела 10.6.2. Каждый нейрон может быть связан с самим собой Подобно весам в динеином ассоциаторе, веса связей в сети ДАП можно вычислить зара- нее. Для определения весов используется тот же метод, что и в линейной ассоциативной мо- дели. Векторы состоянии в архитектуре ДАП рассматриваются в Хеммингеном пространстве. Пусть даны N пар векторов, составляющих набор эталонов, которые необходимо со- хранить в памяти. Подобно описанной в подразделе 10.5.4 процедуре, веса связей вы- числим следующим образом: W=Y,‘X + У/Х!+... + У,*Х. Это соотношение позволяет вычислить веса связей от слоя X к слою Y (см. рис. 10.22). На- пример, W32 — это вес связи, ведущий от третьего нейрона слоя X ко второму нейрону слоя У. Предполагается, что между двумя нейронами существует лишь одна связь. Следовательно, весовые коэффициенты связи между слоями X и У одинаковы в обоих направлениях, т.е. мат- рица весов связей, ведущих от слоя У к слою X, является транспонированной матрицей IV. Сеть ДАП можно рассматривать как автоассоциативную модель, если набор ассоциа- ций имеет вид <Х1Л1>.<Х2Л2>-... Поскольку в этом случае слоиХ и У идентичны, слой У можно вообще исключить (рис. 10.23). Пример автоассоциативной сети будет рас- смотрен в подразделе 10.6.4. со входным векто- Рис. 10.23. Авпюассоциативная сеть .. ром lb Предполагается, ято между каждыми двумя ней- ронами существуем одна связь, так зто w„=w„ и мат- рица весовых коэффициентов симметрии, Сеть ДАП используется для изучения нз памяти ₽«« ня вход слоя X. Если входной образ ззп.умлен или не слою « есть ДАП за стую Ч“«'-Т восполнить этот образ и извлечь из памяти связанный с них, вектор. '---------------------------------------- 473 Г/1ава 1 о. Машинное обучение на основе связей
пчнныс из памяти сел. ДАП. нужно выполнить следующие дсй„Вад Чтобы извлечь данные и fVv\ передается исходная пара векторов (X, Y) где X — это образ, ' смзавный с НИМ ЭТаЛ0”’ “ СЛУЧ "° зада“««» 2. инф^манк» распространяется от слоя X к слою Y, н иьинеяяются зна,ения Н8йро. 3. Вжадные значения нейронов слоя Y перелаются на вход слоя X, и вычисляю^, значения нейронов этого слоя. 4 Два предыдущих действия продолжают выполняться до тех пор, пока состояние X «^стабилизируется. т.е. значения векторов X и Y перестанут изменяться. Указанный алгоритм описывает распространенно информации в сети ДАП в обоих наплавлениях до достижения точки равновесия. Работу алгоритма можно начинать с пе- редачи в сеть значений слоя У. тогда после сходимости можно получить значение некто, pa X. Эта сеть в полном смысле является двунаправленной: в качестве входа можно ис- пользовать вектор X и вычислять ассоциированный с ним вектор У, а можно на основа- нии вектора У определять значение вектора X. Пример такой сети будет рассмотрен в следующем разделе. После сходимости процесса обработки состояние равновесия представляет собой один из эталонов, использованных для построения исходной матрицы весов. На вход се- ти подается вектор с известными свойствами: либо идентичный одному из векторов эта- лонной пары, либо слегка отличный от него. Этот вектор используется для восстановле- ния второго вектора из эталонной пары. В качестве расстояния выбирается хеммингово расстояние, измеряемое как количество различающихся элементов векторов. Благодаря свойству ортонормированности сходимость сети ДАП к одному вектору означает также сходимтость к его дополнению. Следовательно, вектор дополнения тоже становится ат- трактором сети. Пример этой ситуации будет рассмотрен в следующем разделе. Сходимость сети ДАП определяется несколькими факторами. Если в матрице ве- сов сохранено слитком много эталонов, то онн оказываются очень близки друг к другу, что приводит к появлению псевдоустойчнвых состояний в сети. Этот фено- мен получил название помех, которые приводят к появлению локальных минимумов в пространстве энергии сети. Давайте кратко остановимся на обработке информации в сети ДАП. Умножая вход- ной вектор на матрицу связей, получим входные значения элементов второго слоя. Про- стая пороговая функция приводит полученный результат к виду, необходимому для *Ра‘ нения вектора в хемминговом пространстве. net (У) WX, или для каждого элемента у, net(yt) = Пороговая СпРаведливо Для вычисления значения нейронов слоя X. ороговая функция в момент времени t+l имеет вид +1 если net>0, f(net'), если net=0, если net<0. ной ассоциативной памяти^^ РассмотРено несколько примеров работы двунаправлеК 474 Часть IV. Машинное обУчеН
10.6.3. примеры обработки данных в Сети ддП На рис. 10.24 показана небольшая сеть ДДП ктпп вариантов линейного ассоциатора, представЛенно°™рад Является одним из простейших няет отображение четырехмерного вектора X в тоехм^®^ 10'5'4’ 313 сеть в^пол- тим, требуется запомнить в сети две пары эталонов РНЫИ ВеКТ°Р Y И наобоР°т- Допус- j<->yt=[i;i;i]. Рис. 10.24. Сеть ДАП для примеров из подраздела 10.63 Построим матрицу весов согласно формуле, приведенной в предыдущем разделе и/=уХ+угх'+у3х'+...+умх;, Г1 -1 IV = 1 -1 -1 -1 -1 -11 Г-1 -1 -1+1 1 -1J [-1 -1 -1 1 -1 1 -1 1 -2 0 -2 -2 о -2 О' -2 0 U -1 0 2 0 Матрица весовых коэффициентов связей слоя транспонированную матрицу для W и имеет вид Y со слоем X представляет собой 0 2 0 -2 0 -2 -2 0 -2 0-2 0 Выберем несколько векторов и протестируем работу сети ДАП. начала возьмем од ну из эталонных пар, подадим на вход сети вектор X и проверим, получится ли на вых д сети вектор Y. Пусть Х= [ 1; -11-1 b Тогда У3=(1*0)+((-1)*(-2))+((^1)*(-2))+((-1)‘0)=4. J£4>=1‘ Уг=(1*2)+((-1)*0)+((-1)*0)+((“^)*(~2))=4. Д4)"^' Уэ=( 1 *0)+((-1 )*(-2))+((-'1 )*(“2))+((_1) °)-4'^4) Итак, получен второй вектор из эталонной пары- в качестве входного и убедиться, что на выход будет получен _ & элемснты вектора У В качестве следующего примера ' ’сеть выдаст результат инициализируем произвольным образом. В э о У у,=( 1 -ОН 1 ч-2))+( 1 -<-2»+((-1 УН 1 • 2)+(1 -он 1 * 0 >*Н-1 Г(-2> ':*. У3=(1*0)+(1*(-2))+(1*(-2))+({-П 41 475 Глава Ю. Машинное обучение на основе связей
nvueH с учетом того, что для векторного аргумента [-4; 4; -4] зна- Этот результат получен и у* Вычислим значение компонентов вектопа у ченис пороговой функции равно [-1,1, -Ч-» Ра*. х'=((-1)*(-2))+П‘°ННГ('2))* ' х,=«-1)*0)+(1Ч-2))+((-1> 2. м После применения пороговой функции получим исходный вектор [1; 1; 1;^. По, скол"Тпр" обработке этого вектора получаете» устойчивый результат, может показап. с» что мы выявил., еще одну пару эталонных взоров. Однако на самом деле рассмот- ренный пример является дополнением ко второ,, паре эталонов Х2. Г2>. Это еще рщ полтвеождает. что в сети ДАП для каждой пары прототипов ее дополнение тоже являет, ся эталоном. Следовательно, в сети ДАП записаны еще два прототипа х4=[1; 1 ;1 ;-1; 11 ]- Выберем вектор из окрестности одного нз эталонов, например Х=[1; -1; 1; -1]. Заме- тим, что хеммингово расстояние от этого вектора до ближайшего эталона составляет 1. Инициализ1<руем случайным образом вектор У=[-1;-1;-1]. Вычислим значения нейро- нов второго слоя сети уГ1 = (1*0)+((-1)'(-2))+(1*(-2))+((-1)*0) = 0, Уг’’= (Г2)+((-1)*0)+(1*0)+((-1)*(-2)) = 4, Уз*1 = (1*0)+((-1)*(-2))+(V(-2)J+((-1)*0) = 0. Напомним, что по определению пороговой функции, приведенному в конце подраз- дела 10.6.2, для у' = 0 /(/+l) = f (у,). Поскольку первый к третий элементы вектора У1 были инициализированы случайным образом значением -1, то У=[-1; 1; -1]. Теперь сно- ва вычислим значение X. х,=((-1)*0)+(1*2)+((-1)*0)=2. Хг=((“1)*(-2))+(1*0)+((-1)*(-2))=4, *э=(М)*(-2))+(1*0)+((-1 Н-2))=4, Х4=((-1 )*0)+(1 *(-2))+((-1 )*0)=-2. Применяя пороговую функцию, получим вектор Х=[1; 1; 1; -1]. Повторяя этот про- цесс, снова вычислим вектор Y У<(1’0Н1^2)Н(П-2)Н(-1)*0)=-4 У2=(1*2)+(1*0)+(1*0)+((-1)*(-2))=4, Уа=(1*0)+(1*(-2))+(1*(-2))+((-1)*0)=-4. идеягичеГп^ применения пороговой функции получим 1; -1]. Этот вектор образом после^^1116^’ следовательно- сеть перешла в устойчивое состояние. Таким ° П0 Се™ бЛИЖайшнй * образ совпал с сохраненным изображение пои отсуггГ* М0ЖК0 остановить изображение лица или любое ДРУГ°е между исходным векторо^ХЧГ “j™™™ части “«Формации. Хеммингово Рас"0ЯЯ“ vTtl; 1:1: -11 равно 1По действоватьТв обраттю^ната6^60™1 ДаннЬ1х начиналась с вектора X. Естественно, пр ении, восстанавливая вектор X по исходному вектору К В работе [Hecht-Nielsen, 1990] приводятся интересные Там показано, что свойство ортонормальности, необхп рсзультаты анализа сан ДАП. сети, для сети ДАП является слишком ограничительнк НМ<Т линейной ассоциативной кроения сети требуется лишь линейная независимосп, ™Р показывает- что мя по- ров в пространстве эталонов нс представлял собой лИией~КðаВ; ЧТОбы Ни ОД1,Н 1,3 ве|СИ)- к ьооои линейную комбинацию других. 10.6.4. Автоассоциативиая память и сети Хопфилда Нейросетевые архитектуры получили всеобщее признание во многом благодаря ис- следованиям Джона Хопфилда, физика из Калифорнийского технологического институ- та. Он изучал свойства сходимости сетей на основе принципа минимизации энергии а также разработал на основе этого принципа семейство нейросетевых архитектур. Как физик Хопфилд рассматривал вопросы устойчивости физических объектов с точки зре- ния минимизации энергии физической системы. Примером такого подхода является мо- делирование отжига и охлаждения металлов. Рассмотрим сначала основные характеристики ассоциативных сетей с обратными связями. Начальным состоянием таких сетей является подаваемый на вход вектор. Сеть обрабатывает этот сигнал с использованием обратных связей до тех пор, пока не достиг- нет устойчивого состояния. Для того чтобы такую архитектуру можно было использо- вать в качестве модели ассоциативной памяти, необходимо обеспечить выполнение двух свойств. Во-первых, необходимо гарантировать переход сети в некоторое устойчивое со- стояние из любого начального состояния. Во-вторых, это устойчивое состояние должно быть ближайшим ко входному вектору в некоторой метрике. Сначала рассмотрим автоассоциативную сеть, построенную на тех же принципах, что и сеть ДАП. В предыдущем разделе было отмечено, что сети ДАП можно трансформи- ровать в модели автоассоциативной памяти, если в качестве X и Y выбирать идентичные векторы. В результате такого выбора, как будет ясно из дальнейшего, квадратная матри- ца весов становится симметричной. Пример такой ситуации показан на рис. 10.23 и опи- сан в подразделе 10.6.2. Матрица весов для автоассоциативной сети, в которой хранится набор эталонных векторов {Xi, Хз, ... ,ХП}, создается по правилу w=£x,x,r- 1 При создании автоассоциативной памяти на основе гетероассоциативной вес связи от Узла х, к узлу Xj равен весу связи от х, к х|ч т.е. матрица весовых коэффициентов является симметричной. Для выполнения этого предположения требуется лишь, чтобы между Двумя элементами сети существовала единственная связь с фиксированным весом. Воз- можен также особый случай, когда ни один из узлов сети не связан напрямую сам с со- бой, т.е. связь между х, и х( отсутствует. При этом на главной диагонали матрицы весо вых коэффициентов будут располагаться нули. Как и при работе с сетью ДАП. матрица весов строится на основе запоминаемых в Памяти образов. Продемонстрируем это иа простом примере. Рассмотрим три эталон- ных вектора 1; 11 ;1 ], 477 476 Часть IV, Машинное обучен^ Глава 1 о. Машинное обучение на основе связ
Вычислим iv= ' 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 11 f1 -1 -1 1 + -1 -1 1 L 1 1 1 1 1 -1 -1 -1 -1 1 -1 -1 1 1 11 f 1 -1 1 -1 4- -1 1 1 ij [ 1 1 -1 1 -1 -1 1 1 -1 1 -1 1 г 1 1 -1 -1 1 1 1 1 или ‘ 3 -1 -1 3 IV= -1 -1 -1 3 -3 -1 1 3 1 -1 -3 -1 3 1 1 3 1 Будем использовать пороговую функцию +1, если net>0, flnet*), если net=0, -t если net<0. Сначала проверим результат работы сети для одного из эталонов Ху= [ 1; 1; -1; 1; 1 ]. Получаем Хэ* IV = [7; 3; -9; 9; 7], а после применения пороговой функции приходим к состоянию [1; 1; -1; 1; 1]. Таким образом, при подаче в сеть этого вектора она сразу же сходится к нему. Это значит, что эталоны сами являются устойчивыми состояниями, или аттракторами. Теперь проверим следующий вектор, хеммингово расстояние от которого до эталона Х3 равно единице. Сеть должна сойтись к этому эталону, Это означает извлечение из па- мяти образа по частично искаженным данным. Выберем Х= [ 1; 1; 1; 1; 1 ]: Х‘ IV = [5; 1; -3; 3; 5]. Pa°™<Z7™Z "Ороговой ф>”,кции приходим к вектору Хэ = [ 1; 1; -1; 1; 1). ближайшего прототипа равной 'дотТ **’ ВеКТ°Р’ расстоянне от КОТОРОГО д° ^эготвектор^ах^лиао^^' "1; '1' 1' '11- Не СЛ0Ж"° >'бадтС”' 4 отХг. Вычислим произведение "И" 2 ” ВеКТОра *’• на расстоянии 3 от вектора Х| » 5; 3). а после применения пороговой функции получим [ 1; -1; -1; 1; 11. Это состояние нс яв- ляется устойчивым, поэтому вычислим П; -1; -1; 1; 1] * iv = [9; -з; -7; 7; 9], Г П0ПуЧИМ '1; -1; 1; Л- Теперь это состояние оказалось устойчя энё^п С °ДНИМ И3 ИСХОДИЫХ обР^- Возможно’ эт0 еШС 0ДННХ р ии. Однако при ближайшем рассмотрении видно, что этот век Часть IV. Машинное обучен^ 478 J
является дополнением к исходному прототипу Х2= г_ <. <. ,. , циативмои сети ДАП, аттракторами автоассоциативмпй ' ’ “1; “1Ь Как и в гетероассо- тотнпы. так и их дополнения, т.с. в данном С(Г „С ^яются как исходные про- До сих пор рассматривались автоассоциативные? ШесТЬ аггРаетоРов' циатнвной модели памяти. Одной из целей Джона X ж 0СН0Ваннь,с на линейной ассо- рти автоассоциативных сетей, применимой к любой °ПфИдда быяо Создан»с общей тсо- зями. которая удовлетворяет набору простых ограничений0 С обратнЬ1М" св«- этого класса однослойных сетей с обратными связям» »" ПфНДД Д0Казал- что для гни сети, обеспечивающая ее сходимость к устойчивому г™ Сущсствуст Фун^ия энер- Еше одной целью Хопфилда было РаспоХн° У Состоянню; непрерывного времени, более точно соотве^ст^щ^уГ^^Т М°ДеЛИ вариант альных нейронных сетей. Типичный способГГод=яУ ЯМ Ф^"°™Р°ва™ Р«- тях Хопфилда сводится к последовательной, а не по^ой^ „ся с ПОМОЩЬЮ процедуры случайного выбора обрабатываемого нейрон^однмреХ „ым применением некоторого метода, позволяющего убедиться в равном™»™ обработки всех нейронов сети. 1 "“имчл*|«и Структура сети Хопфилда идентична рассмотренной выше архитектуре автоассоцив- гавнои памят,.. Она состоит нз одного слоя связанных между собой нейронов (см рнс. 10.23). Функция активации, ,ии пороговая функция, тоже совпадает с рассмотрен- ной. Следовательно, для /-го узла +1, если Xienv=\x^dl если -1, если >Т, £w,xf'=7;. i При такой архитектуре для получения сети Хопфилда необходимо обеспечить лишь одно дополнительное ограничение. Если wv — это вес связи от узла i к узлу /, то весовые коэффициенты в сети Хопфилда должны удовлетворять условию w =0 V/,ww= wtl V/,/, /*/. Для обучения сети Хопфилда не существует никаких специальных методов. Подооно сети ДАП, ее веса обычно вычисляются заранее. На сегодняшний день поведение сетей Хопфилда, как и персептронов, ДО лучше, чем свойства других классов сетей. Это связано с тем, что поведение сетей Хопфилда описывается в терминах функции энергии W)=+2Zr<x> 1 I 1 п “ зтпй (Ьункции любое изменение состояний сети Покажем, что благодаря свойствам этой Ф>? . суЩествования минимума приводит к уменьшению общей энергии сети. изменении состояния сети, не функции Н и уменьшения значения ФУ", Хиого состояния, сложно прийти К выводу, что сеть будет сход -.^мента к изменение его состояния Сначала покажем, что штя любого энертои SH приводит к уменьшению значения функции Я. ДН=Н{Л"П-Н(№'д). 479 Глава Ю. Машинное обучение на основе связей
Учитывая опрела Фу— Н. 2?" ' ^=хои то слагаемые, не содержащие хк, можно исключить Поскольку ДЛЯ ’ Получим 97^ i -Л U и/ -LV поиходим к соотношению Учитывая тот факт, что иН> и wlr-w,.. прих д д«=2(х,““-хГ) ц показать отрицательность ДН. рассмотрим два случая. Сначала предположим, что —не х“изменилось с -1 на +1. Тогда множитель в квадратных скобках должен бьпь положительным. Поскольку х" ™ отрицательно. Теперь предполо- жим. что значение х. изменилось с 1 на -1. Тогда по тем же причинам ДН отрицательно. Если жех, не изменялось, то х"-х,”"=0 иДН-0. Отсюда следует что сеть должна сходиться из любого начального состояния. Более того состояние сети после сходимости соответствует локальному минимуму энергии. Если это состояние еще не достигнуто, значит, существует переход, приводящий к даль- нейшему уменьшению общей энергии сети, и согласно алгоритму обучения для модифи- кации выбирается именно этот узел. Было показано, что сети Хопфилда обладают одним из двух свойств, которыми должны обладать сети ассоциативной памяти. Однако можно показать, что сети Хоп- фЕщца в целом не удовлетворяют второму свойству: они ие всегда сходятся к устойчиво- му состоянию, которое является ближайшим к исходному. Для решения этой проблемы не существует общего метода. Сети Хопфилда также можно применять для решения задач оптимизации, в том числе задачи коммивояжера. Для этого разработчик должен определить отображение функции стоимости этой задачи в функцию энергии Хопфилда. Тогда переход к минимум энергии сети приведет также к минимизации стоимости в соответствии с состоянием данной за- дачи. Хотя для многих интересных задач, в том числе для задачи коммивояжера, такое отображение удалось построить, в целом построение отображения из пространства дан- ных задачи в функцию энергии — очень сложная проблема. В этом разделе рассмотрены гетероассоциативные и автоассоциативиые сети с обрат- ными связями. Проанализированы динамические свойства этих сетей и предложены очень простые примеры, отражающие эволюцию состояний систем к своим аттракторам, ыло показано, как линейную ассоциативную сеть можно модифицировать в аттрактор- кпрмСеТЬ к обсуждении сетей Хопфилда, функционирующих в непрерывном (ЬлшсУии •> Ь1Л° пР°лемонстРиРоваио’ как поведение сети можно описать в терминах скольку кяж-пРГ"И аСС сете“ Хопфилда обладает гарантированной сходимостью, по- ° Се™ умеиьшает о6шУю энергию сети. ет вешить нркп-глННЫИ на энеРгии подход к изучению сетей связей все же не позволя- тельно соответствует Xfi в°-первых, достигнутое состояние энергии не обяза- Хопфилда не обязательна аЛЬН°Му Минимуму для данной системы. Во-вторых, сети обязательно сходятся к аттрактору, ближайшему к данному входному 480 Часть IV. Машинное обучение
t г этим связано неудобство их использования для реализации контекстно ад- &е^°РУ;й памяти- В-третьих, при использовании сетей Хопфилда для решения задач ресУ6^ «пин не существует общего метода построения отображения ограничений в оПТ‘1МИ энергии Хопфилда. И, наконец, существует предельное значение общего ко- фунКН,1}О ийцмумов энергии, которые можно сохранить в сети и извлечь из нее, и это дцЯеСТ0а ь3я установить точно. Эмпирическое тестирование таких сетей показывает, ч14СЛ° веЛ сТ0О аттракторов составляет лишь малую часть обшего числа узлов в сети. qlo К°;111ЧС,|-1!С связанные с ним вопросы активно изучаются в работах [Hecht-Nielsen, Этот и дру ja 1992] и [Freeman, Skapma, 1991]. }990]< таких биологических подходов, как генетические алгоритмы и клеточные В рамка едПрйИЙМаются попытки построить модели обучения на принципах зволю- аВТома-гЫ’ ПР Обработка данных в этих моделях тоже является параллельной и рас- ции Ф°РМ *Н Цаппимер в генетических алгоритмах кандидатом на роль решения задачи популяция образов. В процессе работы алгоритма эта популяция эволю- является цеЛ~^еТоМ принципов воспроизводства, мутации и естественного отбора. Эти ^Ха«матРВВаЮТСЯВГЛ“еП' 10,7» Резюме и дополнительная литература В этой главе были рассмотрены вопросы обучения в сетях связей. В разделе ЮЛ они описаны с исторической точки зрения. Для более подробного ознакомления с этими вопро- сами МЫ рекомендуем ознакомиться с работами [McCulloch, Pitts, 1943], [Selfridge. 1959], [Shannon, 1948], [Rosenblatt, 1958]. Важно также изучить физиологические модели, особенно предложенные Дональдом Хеббом [Hebb, 1949]. Наука о познании продолжает исследовать взаимосвязи между' обучением и структурой мозга. Эта вопросы описаны в [Ballard. 1997], [Franklin, 1995], [Jeannerod, 1997] и [Elman и др., 1996]. За рамками рассмотрения остались многие важные математические и вычислитель- ные аспекты сетей связей, описанные в работах [Hecht-Nielsen. 1990], [Zurada. 1992] и [Freeman, Skapura, 1991]. Специалисты по машинному обучению должны рассматривать и множество других вопросов, связанных как с представлением, так и с реализацией вычислений. К числу' этих проблем относятся выбор архитектуры и структуры связен сети, определение пара- метров обучения и множество других. Существуют так называемые неиро-символьные гибридные системы, которые тоже могут отражать различные аспекты интеллекта. Сеть прямого распространения — одна из наиболее распространенных нейросетевых архитектур. Поэтому в этой главе достаточно много внимания уделялось ее пользованию и развитию. Введение в теорию нейронных сетеи’®19866]. вычислительных средствах обучения содержится в двухтомнике [ Этому же вопросу посвящена работа [Grossberg. 1988]. иипжйСпо дпугнх во- При использовании сетей прямого распростраиения^возни^^ н нейронов, формиро- просов, В том числе проблема выбора количества обучения, использования по- вания обучающего множества, настройки коэфф ц понятие индуктивного роговых нейронов и т.д. Многие из этих вопросов вх0 ИСПользуемых для решения порога, определяющего роль знаний, наблюдении задачи. Многие их этих вопросов рассматриваются описали их в своих работах Большинство разработчиков нейросетевых ' 1986]. [Hecht-Nielsen. 1989, I Anderson и др., 1977], [Grossberg, 1976, 1988]. [ ^’19Sft) и [Mead. 1989]. Более 1990], [Hopfield, 1982, 1984], [Kohonen. 197-, 198 J. --------------- Глава 1 о. Машинное обучение на основе связей 481
r том числе графические модели, описаны в работах [Jordan iqQQ1 ггёмда мХ порекомендовать и хороший современный учебник [Bishop. 1995]. 10.8. Упражнения------------------------------------------------ 1. Постройте нейрон Мак-Калока-Питтса. вычисляющий функцию логического следования =>. 2. Постройте персептронную сеть на языке LISP н реализуйте в ней пример задачи классификации, описанный в подразделе 1 . —• 2.1. Сгенерируйте свой набор данных, аналогичный представленному в табл. 10.3, и используйте его для решения задачи классификации. 2.2. Воспользуйтесь результатами работы классификатора и весами связей для опре- деления специфики разделяющей линии. 3 Реализуйте сеть прямого распространения на языке LISP или C++ и используйте ее для решения задачи "исключающего ИЛИ , описанной в подразделе 10.3.3. Решите эту зяпячу с помошью нескольких сетей различной архитектуры, например, сети с двумя скрытыми узлами без пороговых нейронов. Сравните скорость сходимости разных сетевых архитектур. 4. Реализуйте сеть Кохонена на языке LISP или C++ н используйте ее для решения за- дачи классификации данных из табл. 10.3. Сравните полученные результаты с опи- санными в подразделах 10.2.2 и 10.4.2. 5. Реализуйте сеть встречного распространения и используйте ее для решения задачи “исключающего ИЛИ". Сравните полученные результаты с данными для сети прямо- го распространения, приведенными в подразделе 10.3.3. Используйте свою сеть встречного распространения для разделения классов из табл. 10.3. 6. С помощью сети прямого распространения решите задачу распознавания десяти ру- кописных цифр. Для этого можно размешать цифры в сетке размером 4x6. Если фрагмент цифры попадает на данную клетку, присвойте ей значение 1, если нет — значение 0. Этот вектор из двадцати четырех элементов можно использовать в каче- стве входного вектора сети. Для построения обучающего множества можете вос- пользоваться и другим подходом. Решите эту же задачу с помощью сети встречного распространения. Сравните полученные результаты. 7. Выберите входной образ, отличный от использованного в подразделе 10.5.2, и при- мените метод обучения Хебба без учителя для распознавания этого образа. 8. В подразделе 10.5.4 для создания ассоциаций между двумя парами векторов исполь- зован линейный ассоциатор. Выберите три новые пары векторов и решите эту же за- дачу. Проверьте, обладает ли ваш линейный ассоциатор свойством интерполятивно- стн, т.е. может ли он находить близкие к эталону векторы? Постройте автоассош*2' тивныи линейный ассоциатор. 9. Вспомните сеть ДАП, описанную в подразделе 10.6.3. Измените пары ассоциаций, ранные в этом разделе, и построите для них матрицу весов. Выберите новые век торы и протестируйте свою сеть ДАП. 10‘ ра1ЛИЧИЯ меадУ сетью МП и линейным ассоциатором. Что такое помехи и как предотвратить их появление? стро“ сеть Хопфилда для решения задачи коммивояжера для десяти городе+ Часть IV. Машинное обучение Машинное обучение на основе социальных и эмерджентных принципов Как можно ограничить эту энергию, действующую в течение долгих веков и стро- го изучающую общую организацию, структуру' и привычки каждого существа — благословляющую на добро и отсекающую зло? Я не вижу границ этой энергии, которая медленно, но верно адаптирует каждое создание к самым сложным жизненным отношениям. — Чарльз Дарвин (Charles Darwin), О происхождении видов Первый закон пророчества: "Когда признанный пожилой ученый утверждает, что нечто возможно, он почти всегда прав. Если он утверждает, что нечто невозможно, он, вероятнее всего, ошибается." Второй закон' "Единственный способ постичь границы возможного — отважиться на небольшой шаг за его пределы. “ Третий закон: "Любая достаточно развитая технология неотличима от магии. — Ар пр Кларк (Arthur С. Clarke), Профили будущего 11.0. Социальные и эмерджентные модели обучения и - ял многом было обусловлено целью создания На ранних этапах развитие сетей связен во много. , - - , (buu-n это не единственный биологическим прототип для искусственной нервной системы. Однако это нс елш ,ironl™u Разработки алгоритмов машинного обучения. В сильнейших обучения, основанные на принципах около с С|стьнеЙшнх представителей попу- особей популяции в процессе ее развития в процессах, прн- ляции ярко проявляется на примере эволюции ш
и фопмирлваиню культуры. Эти процессы были формаднзОВВл, водящих к изменению н форьшро „„ицчсских алгоритмов, генетического noon? помощью теории клеточных . д.угих форм эмерджентных вычислений. ^ам’ мнровающ. искусанной жи м)ошикя модели (emergent model) обучен,|я Ими Эмерджентные^ф му адаптации - эволюцию форм жизни растив наиболее элегантную и ую^Р Дарв|(Н нет .^„„ц этой энергии, котом, кого и животного мир • создание к самым сложным жизненным отнощТ :ГННВ°про0^ (варьирования некоторых свойств наиболее жиэиеспос^ ниям В проиеси Р удачнь1Х э|аеМпляров повышаются адаптацноц ные°способностн „ПРОЯВЛЯЮТСЯ отличия между особями популяции Эволюция „ Зарож. Денис новых стюйсто происходят в популяциях материальных особей, которые действу. юТ " " на друга и подвергаются внешнему воздействию. Таким образом, необходимость ^Хсходит не только из внешней среды, ио и от взаимодействия между членами до- пуляцин Экосистема включает множество членов, кумулятивное поведение которых формирует оставшуюся часть популяции н формируется под ее воздействием. Простота процессов, лежащих в основе эволюции, обеспечивает их достаточно общее обоснование. Виды создаются в процессе биологической эволюции за счет отбора наиболее благоприятных изменений генома. Аналогично в процессе культурной эволюции при переда- че социально обработанных и модифицированных единиц информации формируются знания. Генетические алгоритмы и другие формальные эволюционные аналоги обусловливают более точное решение задачи за счет операций над популяциями кандидатов иа роль решения. Генетический алгоритм решения задачи включает три стадии, первая из которых предполагает представление отдельных потенциальных решений в специальном виде, удобном для выполнения эволюционных операций изменения и отбора. Зачастую таким представлением являются обычные битовые строки. На второй стадии реализуются скрещивание и мутации, присущие биологическим формам жизни, в результате которых появляется новое поколение особей с рекомбинированными свойствами своих родите- лей. И наконец на основе некоторого критерия отбора (fitness function) выбираются “лучшие” формы жизни, т.е. наиболее точно соответствующие решению данной пробле- мы. Эти особи отбираются для выживания и воспроизведения, т.е. для формирования но- вого поколения потенциальных решений. В конечном счете некоторое поколение особей и станет решением исходной задачи. В генетических алгоритмах применяются и более сложные представления, в том чис- ле правила вывода, эволюционирующие в процессе взаимодействия с внешней средой. Например, в генетическом программировании за счет комбинирования и “мутации” фрагментов программного кода программа эволюционирует и сходится к решению зада- чи, например к выделению инвариантного множества. Примеры обучения, представляющего собой социальное взаимодействие с целью вы- живания, можно найти в таких играх, как “Жизнь”. Эта игра изначально была разработа- на математиком Джоном Хортоном Конвеем (John Horton Conway) и представлена ши- рокой общественности Мартином Гарднером в журнале “Scientific American" в 1970 и годах, этой игре рождение, жизнь и смерть особей — это функция их собствснно- тлчмпТ ” Состоян,1я н* ближайших соседей. Обычно для определения игры доста- игпой “Жи’°Г° К0ЛИчества пРа0ил — трех илн четырех. Как показали эксперименты с чайно сложные ™М0ТРЯ На ЭГУ пРОСТОгУ’ в ее рамках могут эволюционировать чрезвы- саморепликаиии<^рУК1яРЬ1’ В Т°М ЧИСле МИ0гоклеточные организмы, имеющие функцию саморепликации [Poundstone, 1985]. н ОДИН из важных подходов к искусственной жизни (art г • гг вании условий биологической эволюции за счет m llfe) С0СТ0,1Т u моделиро- заданных наборами состояний и правил перехода ™Одеиствия конечных автоматов, формацию из внешней среды, в частности, от ближайших^™ “Т1 "рннимать нн- содержат инструкции по рождению, продолжению жизни и Правила переходов ких автоматов свободно действует в своей предметной обп МСртИ' Ес,ш "“"У^ция та- моденствовать как параллельные асинхронные агенты то инотм” '' °C°6"M0ITr ЛЮЦИЮ практически независимых “форм жизни” °"”0 на6пюдать Можно привести еще один пример. В работах (Brooks. 1986. 1987) описаны простые роботы, действующие как автономные агенты, способные решать задачи в лабораторных условиях. При этом центральный алгоритм управления отсутствует, а кооперация от- дельных особей становится артефактом распределенного и автономного поведения каж- дого из них. Сообщество ученых, работающих в области искусственной жизни, регуляр- но проводит конференции и выпускает журнал, на страницах которого обсуждаются но- вейшне результаты в этой области [Langton, 1995]. В разделе 11.1 вводятся эволюционные модели и описываются генетические алго- ритмы (genetic algorithm) [Holland, 1975] — подход к обучению на основе параллелизма, общего взаимодействия н, как правило, битового представления. В разделе 11.2 пред- ставлены системы классификации (classifier system) и генетического программирования (genetic programming) — сравнительно новые области исследования, в которых методо- логия генетических алгоритмов применяется для решения более сложных задач, в част- ности, для построения и уточнения наборов правил вывода [Holland и др., 1986], а также для создания и настройки компьютерных программ [Koza, 1992]. В разделе 11.3 пред- ставлена методология искусственной жизни [Langton, 1995]. Этот раздел начинается со знакомства с игрой “Жизнь”. В завершение раздела приводится пример “эмерджентного поведения", описанный в [Crutchfield и Mitchell, 1995]. 11,1, Генетические алгоритмы Подобно нейронным сетям, генетические алгоритмы основываются на свойствах биологического прототипа. В рамках этого подхода обучение рассматривается как кон куренция внутри популяции между эволюционирующими кандидатами на роль решения задачи. Каждое решение оценивается согласно критерию отбора. По результатам оценки определяется, будет ли этот экземпляр участвовать в следующем поколении решении. Затем с помощью операций, аналогичных трансформации генотипа в процессе оиологи- ческого воспроизводства, создается новое поколение решений кандидатов. Пусть Р( t) — поколение решенип-кандидатов в момент времени t В общем виде генетический алгоритм можно представить следующим образом, procedure genetic algorithm; begin установить Г=0; инициализировать популяцию P(t)< while не достигнуто условие завершения Глава~И? Машинное обучёниенаосновТсоцйал^цТйэмарджентных принципов 485 484 Часть IV. Машинное обучение
begin ВЫЧИСЛИТЬ популяции Р(0<‘ на основе --- число членов; создать с-- заменить с значение критерия качества для каждого члена значений критерия качества выбрать из Р(() нУЖное '!"°луЮшее поколение с помощью генетических операций. " учетом значений критерия качества особей поп’улянии Р(Г) их потомками; установить время t- + end еПЭтот алгоритм отражает основные принципы генетического обучения. Его конкри. ные реализации могут отличаться в зависимости от задачи. Какое процентное соотяо^. ние особей выживает в следующем поколении? Сколько особен участвуют в скрещу, ннн’ Как часто и к кому применяются генетические операторы? Процедуру “3^^ особей популяции Р(П" можно реализовать простейшим образом, заменив фиксиро. ванное процентное соотношение слабейших кандидатов. Более сложный подход со. стоит В упорядочении популяции согласно критерию качества и удалении особей с учетом вероятности, обратно пропорциональной значению критерия качества, Такую меру можно использовать для выбора исключаемых особей. И хотя для наилучших особей популяции вероятность их исключения очень низка, все же существует шанс удаления самых “сильных” особей популяции. Преимущество этой схемы состоит в возможности сохранения некоторых “слабых” особей, которые в дальнейшем могут внести свой вклад в получение более точного решения. Такой алгоритм замены извес- тен под многими именами, в том числе как метод Монте-Карло (Monte-Carlo), прави- ло рулетки (roulette wheel) или алгоритм отбора пропорционально критерию качест- ва (fitness proportionate selection). Несмотря на то что в подразделе 11.1.3 вводится более сложный принцип представ- ления. при изучении генетических алгоритмов решение задачи будем описывать с помо- щью обычных битовых строк. Предположим, что необходимо с помощью генетического алгоритма научиться классифицировать строки, состоящие из единиц и нулей. В такой задаче популяцию битовых строк можно описывать с помощью шаблона, состоящего из 1, 0 и символов #, которые могут соответствовать как 1, так и 0. Следовательно, шаблон 1##00##1 представляет все восьмибнтовые строки, начинающиеся, заканчивающиеся 1 и содержащие в середине строки два нуля подряд. При работе генетического алгоритма популяция кандидатов Р( 0) некоторым образом ициализируется. Обычно инициализация выполняется с помощью датчика случайных л. Для оценки решений-кандидатов вводится критерий качества f(xj), определяю ройИсоотиДг°ТВеТСТВИЯ Каждого канДИдата в момент времени Г. При классификаи1111 множестве пб^Г КандИдатов является процентное соотношение правильных ответов кандидату соответствует значение' ПРИ ТаК°М КрИТСр"И КачеСтва ка5КЯ°МУ РС11К“" W/m (р, t), мера соответствия^^ ЗНачение критерия качества для всех членов популяции. цией от „XZZ ’ В° ВРСМеН“’ “°ЭТОМУ Критерий “а МОЖеТ бЫТЬ и ия всей проблемы илн Г(х'). после анализа каждого кандидата выбираются пары для рекомбинации. При атом нс- пользуются генетические операторы, в результате выполнения которых новые решения получаются путем комбинации свойств родителей. Как и в естественном процессе зволю- цин, степень участия в репродуктивном процессе для каждого кандидата определяется зна- чением критерия качества: кандидаты с более высоким значением критерия качества участ- вуют в процессе воспроизводства с более высокой вероятностью. Как уже отмечалось, вы- бор осуществляется на основе вероятностных законов, когда слабые члены популяции имеют меньшую вероятность воспроизводства, однако такая возможность не исключается. Выживание некоторых слабейших особей имеет важное значение для развития популяции, поскольку они могут содержать некоторые важные компоненты решения, например, фраг- мент битовой строки, которые могут извлекаться при воспроизводстве. Существует множество генетических операторов получения потомства, обладаю- --------------------------------х т* - них называется СКрещива- Входные битовые строки: 11#0:101# 5110:#0#1 Результирующие битовые строки: 11#0#0#1 #110101# щего свойствами своих родителей. Наиболее типичный из наем (crossover). При скрещивании два решения-кандидата делятся на несколько частей и обмениваются этими частя ми, результатом становятся два новых кандидата. На рис. 11.1 показана операция скрещивания шаблонов бито- вых строк длины 8. Эти строки делятся на две равные час- ти, после чего формируются два потомка, содержащих по одному сегменту каждого из родителей. Заметим, что раз- биение родительских особей на две равные части_____ это достаточно произвольный выбор. Решения-кандидаты мо- гут разбиваться в любой точке, которую можно выбирать и изменять случайным образом в ходе решения задачи. Предположим, что целевой класс— это набор всех строк, которые начинаются и заканчиваются единицей. Обе родительские строки, показанные на рнс. 11.1. достаточно хорошо подходят для решения этой задачи. Однако первый их потомок гораздо точнее соответствует критерию качества, чем любой из родителей: с помощью этого шаблона не будет пропущен ни один из целевых примеров, а нераспознанными останутся гораздо меньше строк, чем в реальном классе ре- шения. Заметим также, что его “собрат” гораздо хуже, чем любой из родителей, поэтому этот экземпляр, скорее всего, будет исключен в одном из ближайших поколений. Мутация (mutation) — это еще один важный генетический оператор. Она состоит в слу- чайном выборе кандидата и случайном изменении некоторых его свойств. Например, .мутация может состоять в случайном выборе бита в шаблоне н изменении его значения с 1 на 0 или #. Значение мутя! mu состоит в возможном восполнении важных компонентов решения, отсутст- вующих в исходной популяции. Если в рассмотренном выше примере ни один из членов ис- ходной популяции не содержит 1 в первой позиции, то в процессе скрещивания нельзя псьту- чить потомка, обладающего этим свойством. Значение первого бита может измениться лишь вследствие му гании. Этой цели можно также достичь с помощью другого генетического опе- ратора — инверсии (inversion), которая будет описана в подразделе 11.13. Работа генетического алгоритма продолжается до тех пор. пока не будет достигнуто Условие его завершения, например, для одного или нескольких кандидатов значение кри- терия качества нс превысит некоторого порога. В следующем разлете приводятся при- меры кодирования информации в генетических алгоритмах, а также примерь, генетиче- Ских операторов и критериев качества доя двух задач: возможности описания проблемы в конъюнктивной нормальной форме н задачи коммивояжера. Рис. ILL Использование скре- щивания для двух битовых строк Олины 8. Символ # озна- чает "произвольное значение" Глава!1. Машинноеобучен^^^^“ИЭ^вНгаЫХПРИНЦИПОВ 486 Часть IV. Машинное обу^енИ
.. задачи в конъюнктивной нормальней Л<лпнсание 1113. Два ПРимер ’ КОММИВОЯ*«Ра 1 Лорме »зада вопросы представления и выбора крип^ и с задачи « о6суД"М во-первых, не все задачи естественно и легко 0„„. Выберем две «» момента- В и, генетические операторы должны пре. чсства- Следует^го „релП»»»""" ^.„„отношений внутри популяции. напр„мер, сать на уровне ЫП” недодательных ” ь всех городов в маршруте коммиВМвд. дочврашать появл ^„е и уни»в вяз„ между значением критерия нанести конъюнктивной нормальной форме Описание проблемы в obHOu форме (КНФ) — это представление вираже- Описание в коньюнктивно! Р связанных отношением И (л). Каждый ю нпя в виде последоватеЛЬН°еСдставлять собой дизъюнктивное выражение, определяемое этих 0"е₽а10^лВ11Д““Х.т«рал. Например, для литералов а, Ь, с, d, е и f выражение 0™0TX)xbav^e)A(^cvdv.a)x(av.bvc)A(.evn является конъюнктивной нормальной формой. Это выражение представляет собой конъюнкцию пяти операторов, каждый из которых является дизъюнкцией двух или не* скольких литералов. Понятия предложения и его представления были введены в главе 2. Там же обсуждались вопросы представления в конъюнктивной нормальной форме и предлагался метод сокращения числа операторов в КНФ. В разделе 12.2 будет приведено доказательство теоремы о разрешении. Представимость в конъюнктивной нормальной форме означает существование таких логических значений (1 илн 0 либо true и false) для каждого из шести литералов, при которых КНФ-выражение принимает значение true. Несложно проверить, что для дока- зательства представимости рассмотренного выше выражения в конъюнктивной нор- мальной форме достаточно присвоить значение false литералам а, b и е. Еще одно ре- шение обеспечивается присвоением литералу е значения false ч а с — true. Естественным представлением данных для задачи КНФ-описания является последо- вательность из шести битов, каждый из которых представляет значение одного из шести литералов а, Ь, с, d, е и f. Таким образом, выражение 101010 означает, что литералы а SseT™ ЗНаЧеННЙ ^ерал»РХе7 а b'd " f ~ false- ВЫШе ВЬ1рнжение принимает значение g ir^yj^XeHI,e истннно. ОДО рать гакие значения литералов, при которых «Х^м7ГТ°Р0В получить потомка, для как кандидат°наПеРаТ0Ра Должна П0ЛУчап>ся £ДОВагельн°. в результате выполнения каждого пор генегич^ решения задачи 'Тп.х CTPOi<a- которая может рассматриваться битовые С1ро^еКоПераТ°РЬ1‘ В частности в обладают все рассмотренные до сих как ’ ТОрые могут стать пен’, Р ультате скрещивания и мутации получаются на “браХХ " Звда"" «личные операторы, СЛеД0ВШ,,и битов в шестибитопой обеспечить боле/ канд,1дата на роль пени» ^СТ AB'VX пРоизвольных битов), тоже обеспс- ______№ф-"₽облемы. С этой точки зрения W 4QQ___—— данных в задаче КНФ. Часть IV. Машинное обучение Выбор критерия качества для этой популяции битовых строк не столь однозначен. С од- ной стороны, задача считается решенной, если найдена комбинация битов, при которой вы- ражение принимает значение true. Поэтому на первый взгляд сложно определить критерий, с помошью которого можно оценить ‘качество битовых строк как потенциальных решений. Однако существует множество вариантов. Следует отметить, что полное КНФ-выражение представляет собой конъюнкцию пяти операторов. Поэтому можно определить рейтинг ре- шения по шкале от 0 до 5 в зависимости от количества операторов, принимающих значение true - Тогда каждому из образов можно сопоставить соответствующий рейтинг: 1 1 0 0 1 0 — рейтинг 1, о 1 0 0 1 0 — рейтинг 2, 0 10 0 1 1 — рейтинг 3, 1 0 1 0 1 1 — рейтинг 5, следовательно, эта комбинация является решением. Такой генетический алгоритм обеспечи- вает разумный подход к решению КНФ-проблемы. Одним из важнейших свойств этого под- хода является неявный параллелизм, обеспечиваемый за счет одновременной обработки це- лой популяции решений. Этому представлению естественным образом соответствуют генети- ческие операторы. И, наконец, поиск решения выполняется по принципу “разделяй и властвуй”, поскольку решение задачи делится на несколько элементов. В упражнениях к этой главе читателю будет предложено рассмотреть другие аспекты этой проблемы. Задача коммивояжера Задача коммивояжера это классический пример тестовой задачи для методов ис- кусственного интеллекта и компьютерных наук вообще. Впервые она упоминалась в раз- деле 3.1 при описании графов. Пространство состояний этой задачи для N городов вклю- чает W! возможных состояний. Было показано, что эта задача является NP-полной, по- этому для ее решения предлагалось множество различных эвристических подходов. Формулировка задачи достаточно проста. Коммивояжеру требуется посетить N городов. Для каждой пары городов по маршруту сле- дования установлена стоимость (например расстояние). Требуется найти путь минимальной стоимости, который начинается из некоторого города, обеспечивает посещение остальных городов ровно по одному разу и возврат в точку отправления. Задача коммивояжера используется на практике, в том числе обеспечивает решение проблемы разводки электронных схем, задачи рентгеновской кристаллографии и мар- шрутизации при производстве СБИС. Некоторые из этих задач в процессе прохождения пути минимальной стоимости требуют посещения десятков тысяч точек (городов). Большой интерес представляет анализ класса задач коммивояжера с точки зрения эффек- тивности их реализации. Вопрос заключается в том, стоит потратить несколько часов на получение субоптимального решения на рабочей станции или дешевле разработать про- стой компьютер, который за несколько минут обеспечит вполне приемлемый результат. Задача коммивояжера — это интересная и сложная проблема, затрагивающая множество аспектов реализации стратегии поиска. Как можно решить эту' задачу с помощью генетического алгоритма. Во-первых, можно выбрать представление для маршрута посещения городов, а также подобрать ис- пользуемые генетические операторы. В то же время выбор критерия качества в данном случае достаточно прост - требуется оценить лишь длину пути. После этого маршруты можно упорядочить по длине — чем короче, гем лучше. Рассмотрим несколько очевидных представлений, которые имеют достаточно.сложные последствия. Предположил», необходимо посетить девять городов 7^7 489
п -Юдиным списком из девяти целых. Представим nonene можно битов: 0001.0010.100L Тогда ВЫр^МВо ^.пиыпеть посещения городов по возрастанию их представляет noaieao^ * ни|| поставлены только для простоты воспрп^0’1”1 номеров. Пробелы в использовать для решения этой задачи? CkJ ™ гхглгх—получаемая-результатс строка’ ск°^в: кие 0Д"°зна'*н“ “ , - пугь, при котором каждый город посещается только один 1* ^So^h cXXhJ некоторые города выпадут из последователыХГ Де',С"ГДХтяк7в нейдажды. Что можно сказать о мутации? Предположим, что ’’а S^’bXt в обозначении шестого города ОНО изменится на 1. Тогда „олузен^ число 1110 будет соответствовать порядковому номеру 14, который не входит в дощ тимый перечень городов. Инвертирование городов в выражении пути в данном является допустимой операцией, однако достаточно ли ее для получения необходимого решения? Одним из способов поиска минимального пути является генерирование и оценка всех возможных перестановок из N элементов в списке городов. Поэтому генети- ческие операторы должны обеспечить возможность получения этих перестановок. Задачу коммивояжера можно решить и по-другому: проигнорировать битовое представле- ние и присвоить городам обычные порядковые номера 1,2,..., 9. Пугь между этими городами будет представлять собой некоторую последовательность девяти цифр, а соответствующие генетические операторы позволят формировать новые пути. В этом случае мутация как слу- чайный обмен двух городов в маршруте будет допустимой операцией, но скрещивание по- прежнему окажется бесполезным. Обмен фрагментов маршрута на другие фрагменты того же пути либо любой оператор, меняющий местами номера городов маршрута (без удаления, до- бавления или дублирования городов), окажется достаточно эффективным. Однако при таких подходах невозможно обеспечить сочетание лучших родительских свойств в потомке, по- скольку для этого требуется формировать его на основе двух родителей. Многие исследователи [Davis, 1985], [Oliver и др., 1987] разработали операторы скре- щивания, устраняющие эти проблемы и позволяющие работать с упорядоченным списком посещаемых городов. Например, в работе [Davis, 1985] определен оператор, получивший название упорядоченного скрещивания (order crossover). Допустим, имеется девять городов 1,2 .... 9, порядок следования которых представляет очередность их посещения. процессе упорядоченного скрещивания потомок строится путем выбора одпоследовательности городов в пути одного из родителей. В нем также сохраняется мия с”тельнь11* поРВДОк городов другого родителя. Сначала выбираются две точки сече- тех ж? знаменные символом |, которые случайным образом устанавливаются в одних и чанным Каждого 113 Родителей. Местоположение точек сечеиия выбирается слУ' Для двух попит?' °ДН‘| К° кажД°Г0 из родителей эти точки совпадают. Например, если лир и р2 точки сечення располагаются после 3-го и 7-го городов Р1=(192|4657|83) Р2=(459| 1876(23), ков копируются дпэгм?П0Л^аЮТСЯ следУюЩ»м образом. Сначала для каждого из пото!* л НТЫ СТРОК родителей, расположенные между точками сечеиия. с1=(ххх|4657|хх) с2=(ххх[ 1876|хх). Затем после второй точки сечения одного из попит?п?.т ствуюшие другому родителю, с сохранением поХа “ "7“™ T”’ C°0TBCT’ имеющиеся города пропускаются. При достиженшГкониа стт, Ш"1 При этом уже и Tnk- и ни конца строки операция продолжается сначала. Так, последовательность подстановки городов из р2 имеет вид 234591876. Поскольку города 4, 6, 5 и 7 не учитываются (они уже входят в состав первого потом- ка), получается укороченный ряд 2, 3, 9, 1, 8, который и подставляется в cl с сохранени- ем порядка следования этих городов в р2: d =(23914657 118). Аналогично получим второй потомок с2=(392| 1876|45). Итак, в упорядоченном скрещивании фрагменты пути передаются от одного родителя р 1 потомку cl, при этом порядок посещения городов наследуется и от другого родителя р2. Этот подход основан иа интуитивном предположении о том, что порядок обхода городов играет важную роль в поиске кратчайшего пути. Поэтому информация о порядке следо- вания сохраняется для потомков. Алгоритм упорядоченного скрещивания гарантирует однократное посещение всех городов. К результату этой операции мутацию следует применять крайне осторожно. Как указывалось выше, она должна сводиться к перемене мест двух городов в рамках одного маршрута. Инвертирование (простое изменение порядка посещения городов) в данном случае неприменимо, поскольку при этом не формируется нового пути. Однако если в рамках одного маршрута выбрать некий фрагмент и инвертировать его, то это может дать хороший результат. Например, путь с1 =(23914657118) после инвертирования его средней части примет вид с1 =(239 ] 7564118). Можно ввести еще один оператор мутации, который состоит в случайном выборе го- рода и перемещении его в случайно выбранное положение в рамках маршрута. Такой оператор мутации можно применять и для фрагмента пути, например, выбрав фрагмент трех городов и поместив его в новое случайно выбранное положение, упражнениях к этой главе приводятся и другие примеры генетических операторов. 11.1.4. Обсуждение генетического алгоритма Рассмотренные примеры подчеркивают характерные для генетических алгоритмов про- блемы представления знаний, выбора операторов и определения критерия качества. Выбран- ное представление должно поддерживать генетические операторы. Иногда, как в КНФ-задаче, естественным является битовое представление. В этом случае для получения потенциальных решений можно напрямую использовать такие традиционные генетические операторы, как скрещивание и мутацию. В задаче коммивояжера ситуация совсем другая. Во-первых, дтя нее не ПОДХОД1П- битовое представление. Во-вторых, при определении операторов мутации и скрещивания для каждого потомка необходимо отслеживать выполнение требуемых свойств (присутствие в маршруте всех городов при однократном посещении каждого из них). Глава 11. Машинное обучение на основе социальных и эмерджентных принципов 491 490 Часть IV, Машинное обучени
И наконец при реализации генетическихоператоров существенна, Инф(ти должна передаваться следующему поколению. Если эта информация, как в КНф.^'1"" связана со значением истонности. то в результате выполнен™ тенетнческих это свойство должно сохраняться в следующем поколении. В задаче коммивоЛ^Р»» тнчной является последовательность городов в маршруте, поэтому потомкам £?”" передаваться фрагменты этой информации. Чтобы обеспечить такое наследоТ"’" свойств необходимо соответствующим образом выбрать способ представления ° генетические операторы для каждой задачи в отдельности. "Ых и Завершая обсуждение способа представления данных, рассмотрим проб "естественности" такого представления. В качестве простого, но несколько искусствен примера рассмотрим задачу выделения чисел 6, 7, 8 и 9. Естественным представлен^0' обеспечивающим сортировку данных, является обычное целочисленное описание поск среди десяти цифр каждая следующая на 1 больше предыдущей. При переходе к двоишГ^ описанию эта естественность исчезает. Рассмотрим битовое представление чисел 6,7 8 и 9°^ 01100111 1000 1001. Заметим, что числа 6 и 7, а также 8 и 9 отличаются друг от друга на один бит О числа 7 и 8 не имеют между собой ничего общего! Это свойство представления может ° звать большие проблемы при решении задач, требующих систематизации этих образов Для решения проблемы неоднородного представления используется множество приемов по чивших общее название кодирования Грея (gray coding). Например, код Грея для первых шестнадцато двоичных чисел приводится в табл. 11.1. Заметим, что здесь каждое число от личается от своих соседей ровно на одни бит. Обычно при использовании кодирования' Грея вместо обычного двоичного представления переходы между состояниями при реали- зации генетических операторов являются более естественными и гладкими. Таблица 11.1. Коды Грея для двоичных чисел О, 1, . 15 Двоичное число Код Г рея 0000 0001 0000 0001 0010 0011 0011 0100 0010 0101 0110 0110 0111 0111 0101 юоо оюо 1001 1100 юю 1101 1011 1111 1100 1110 1101 1010 1110 1011 1111 1001 1000 ____________________________ поиска. Они реализуют одну Генетических алгоритмов является параллельная природа сколько решений. На рис 11 р Мощных форм поиска экстремума, поддерживаюшу10 не _________ ‘ ' Взятом из Работы [Holland, 1986], показано, как множен во решений сходится к точкам экстремума в про зоитальная ось представляет возможные точки П°ИСка’ На Этом Рисунке горн- локазано качество этих решений. Точки на кривой i?3"™ РСШСНИЙ’ а по вертикали шений-кандидатов, полученные при работе генетиче ЧЛены текущей популяции ре- ния равномерно распределялись в пространстве по п а71Г°р1’™а' ^начально решс- группируются в областях, соответствующих наибЛ^' П°СЛе несколькнх итераций они «лее высокому качеству решения. Качество решения Качество решения а. Исходное пространство поиска б. Пространство поиска после п поколений Рис. 11.2. Генетический алгоритм как параллельный поиск экстремума При описании генетического алгоритма как алгоритма поиска экстремума неявно предполагается перемещение по поверхности, определяемой критерием качества. На этой поверхности существуют свои вершины, низменности, а также локальные максиму- мы и минимумы. Нарушение непрерывности этого пространства является следствием выбора представления и генетических операторов для конкретной задачи. Например, та- кое нарушение непрерывности может быть вызвано неправильным кодированием, в том числе без использования кодов Грея. Отметим также, что генетические алгоритмы, в от- личие от последовательных форм поиска экстремума, описанных в разделе 4.1, не сразу отбрасывают бесперспективные решения. При реализации генетических операторов да- же плохие решения могут оставаться в популяции и вносить свой вклад в формирование последующих поколений решений. Еще одним отличием эвристического поиска в пространстве состояний, описанного в главе 4, от генетических алгоритмов является анализ различия между текущим и целе- вым состояниями. Такая информация учитывается в алгоритме А* (раздел 4.2), требую- щем оценки “усилий” для перехода из текущего состояния в целевое. Дм работы генетиче- ских алгоритмов такая мера не нхжнз. Просто каждое поколение потенциальных решении оценивается с помощью некоторого критерия качества. Не требуется также строгая систе- матизация последующих состояний, как при поиске в пространстве состоянии. Просто формируется поколение решений-кандидатов, каждое из которых может внести свои вклад в получение новых возможных решений в процессе параллельного поиска. Важным источником эффективности генетических алгоритмов является неявный па^ше- лизм эволюционных операторов. В отличие от поиска в пешений. случае операции выполняются параллельно для целого семейства по ппиводяг к Ограничивая репродуктивные свойства слабых решений, генетические а_ _ строка исключению не только этого решения, но и всех его потомко* смОЖет породить Ю1#0##1 отброшена в гфоцессе работы=итмд ™ "XZ-™ ^роки вида 1 01 Если родительское Р^”\не " потенХьные потомки, то в процессе работы алгоритма не будут рассматр Глава 11. Машинноеобучениенаосновесоциальныхиэмарджентныхприниилов 493 Часть IV. Машинное обучение
„„гппчтмы все шире применяются для решения г,., Поскольку генетические Р' ания. в последнее время повышается интеИКЛаДНь'х задач и математ“^К°7даосиов. Естественно, возникают следующие вопрос,]*' " °с- мыедению их теорети , пхапактеризовать типы задач, для которых генетические алгорИтМк1 1 Можно ли охарактери^ ингмы ра. ботают наиболее эффективно. 2 Для каких типов задач они работают плохо. 3 . Что означает высокая и низкая эффективность генетического алгоритма ди, реще мня некоторого типа задач? 4 Существуют ли законы, описывающие поведение генетических алгорИтМов макроуровне? В частности, можно ли спрогнозировать изменения значений крИ рия качества для элементов популяции? 5 Существует ли способ описать результаты таких различных генетических операто, ‘ ров, как скрещивание, мутация, инвертирование и т.д.? 6 . При каких условиях (для каких задач и генетических операторов) генетические ал- горитмы работают лучше, чем традиционные интеллектуальные методы поиска? Многие из этих вопросов выходят за рамки тематики данной книги. В работе (Mitchell, 1996] указано, что в теоретическом осмыслении генетических алгоритмов пока еше больше открытых вопросов, чем приемлемых ответов. Тем не менее с момента по- явления генетических алгоритмов исследователи пытаются понять принципы их работы [Holland, 1975]. И хотя многие вопросы, как и приведенные выше, относятся к макроуровню, их анализ начинается с микроуровня битового представления. В (Holland, 1975] вводится понятие схемы (schema) как общего шаблона и строитель- ного блока решения. Схема— это шаблон битовых строк, описываемый символами 1,0 и #. Например, схема 10##01 представляет семейство шестибитовых строк, начинаю- щихся с фрагмента 10 и завершающихся символами 01. Поскольку центральный фраг- мент ## описывает четыре возможные комбинации битов, 00, 01, 10, 11, то вся схема представляет четыре битовые строки, состоящие из 1 и 0. Традиционно считается, что каждая схема описывает гиперплоскость [Goldberg, 1989]. В этом примере данная гипер- плоскость пересекает множество всех возможных шестибитовых представлений. Цен- тральным моментом традиционной теории генетических алгоритмов является утвержде- ние, что подобные схемы— это строительные блоки семейств решений. Генетические операторы скрещивания и мутации оперируют такими схемами в процессе поиска по- тенциальных решений. Эти операции описываются теоремой о схемах [Holland, 1975], [Goldberg, 1989]. По Холланду, для повышения производительности в некоторой среде адаптивная система должна идентифицировать, проверить и реализовать некоторые структурные свойства, формализуемые с помощью схем. ализ схем Холланда предполагает, что алгоритм выбора по критерию качества пяюИТСЯ К П0ИСКУ П0ДМн°жеств в пространстве поиска, наилучшнм образом удовлетво ...... дг*нному КРИТ£РИЮ. Следовательно, эти подмножества описываются схемами» опепатоплв* Значение критерия качества выше среднего. При выполнении генетически ваются вместеРнТВаНИЯ стр°итеяьнь1е блоки с высоким показателем качества складН что генетически Фор1*ирУют улучшенные" строки. Мутации позволяют гарантирова обест.’С“бСКНОС™ будут утеряны в процессе поиска, т.е. эти О.«Р»^ скис алгоритмы можно* Н°°ЫМ о6ластям поверхности поиска. Таким образом, гене’ оритмы можно рассматривать как некое обобщение процесса поиска с со«аН‘ „нем важных генетических свойств. Холланд изначально горитмы иа битовом уровне. Более современные оаботыОаналнз"ровал генетические ал- г0 анализа иа другие схемы представления [Goldber₽ рсзуяьтаты ’го- тические алгоритмы будут применены к более сложным „ ’ В СЛедующем разделе rcHe' и1°жным представлениям. Ц.2. Системы классификации и генетическое программирование Первые генетические алгоритмы почти целиком базировались на низкоуровневом представлении, в частности, битовых строках {0,1,#}. Помимо того что битовые стро- ки являются естественным представлением для реализации генетических операторов, они обеспечивают для генетических алгоритмов столь же высокую производительность, как и другие иесимвольные подходы, в том числе нейросетевые. Однако существуют за- дачи, например, проблема коммивояжера, для которых естественным является кодирова- ние на более высоком уровне представления. При глубоком исследовании может возник- нуть вопрос о реализации генетических алгоритмов для таких высокоуровневых пред- ставлений, как правила вывода или фрагменты программного кода. Важным аспектом этих представлений является возможность комбинирования таких фрагментов высоко- уровневых знаний, как цепочки правил вывода или вызовы функций. К сожалению, достаточно сложно определить генетические операторы, поддержи- вающие синтаксическую и семантическую структуру логических взаимоотношений и в то же время обеспечивающие эффективное применение скрещивания и мутации. Од- ним из возможных путей совмещения преимуществ правил вывода и генетического обучения является преобразование логических утверждений в битовые строки и при- менение для них стандартного оператора скрещивания. Однако получаемые после скрещивания и мутации битовые строки зачастую не обладают свойствами логических выражений. В качестве альтернативы этому представлению можно определить новые варианты скрещивания, применимые напрямую к высокоуровневым представлениям, таким как правила вывода или фрагменты кода на высокоуровневом языке программи рования. В этом разделе описываются примеры каждого из подходов, расширяющие возможности генетических алгоритмов. 11.2.1. Системы классификации В [Holland, 1986] разработаны проблемно-ориентированные архитектуры, получив- шие название систем классификации (classifier system), в которых генетическое обуче- ние применяется к правилам логического вывода. Система классификации включает стандартные элементы системы вывода (рис. 11.3): правила вывода (называемые здесь классификаторами), рабочую память, входные датчики (или декодеры) и выходные эле- менты (эффекторы). Отличительной особенностью системы классификации является конкурентный подход к разрешению конфликтов, применение генетических алгоритмов Для обучения и алгоритма "пожарной цепочки" (bucket brigade algorithm) для распреде- ления поощрений и наказаний в процессе обучения. Обратная связь со внешнем средой дает возможность оценить качество классификаторов-кандидатов. что необходимо дм реализации генетического обучения. Система классификации, показанная на рис. включает следующие основные компоненты. 7лава~?7"машинное обучвйивнаосновосоцйалы<ых7эмё^^ёнтных принципов 495 494 Часть IV. Машинное об^ние
Рис. Л.З. Взаимодействие системы классификации с внешней средой I. Детекторы входящих сообщений от внешней среды. 2. Детекторы обратных связей со внешней средой. 3. Эффекторы, передающие результаты применения правил во внешнюю среду. 4. Набор правил вывода, представляющий собой популяцию классификаторов. Каж- дому классификатору соответствует свое значение критерия качества. 5. Рабочая память для правил классификации, в которой результаты правил выбора интегрированы с входной информацией. 6. Набор генетических операторов для модификации правил вывода. 7. Система для предоставления кредита правилам, участвующим в выполнении ус- пешных действий. При решении задачи классификатор работает как традиционная система логиче- пс вывода' детекторы системы классификации нз внешней среды поступает ется иТ*’ налрИмер’ инФ°рмацня о сделанном игроком ходе. Это событие кодиру- память г ”” В Кач!1СТае образа во внутренний список сообщений — рабочую нове данныхЛглптв^°Аа ™ сообщення ПРИ обычной работе системы вывода на ос- тнвного класси<ЬикатпТВ-ЮТ условиям пРавнл классификации. Выбор “наиболее ак- мая цена-"° схеме аукциона, в которой предке- классификатора и vnoRHa Кумулированного значения критерия качества для такого Эти сообщения добавляют/0™^0™ между вх°Дньш стимулом и его условием, ким уровнем соответствия И8 ₽б °ЧУЮ память класснфнкаторов с наиболее высо- через эффекторы во внеш 3 ° НОВленного списка сообщения могут передаваться кации в процессе работы систе СреД^ Ли^° актнвизнровать новые правила классифн* Системы класси*икя.1и^СТеМЬ1 ВЫВОда’ (раздел 9.7). На основе ннж реаЛИЗуют из форм обучения с подкреплением значением критерия качеств °РМЛЦИИ’ П0стУпающей от учителя или определяемо” чества для популяции правил.' ° учаеиая система вычисляет значение критерия ного из вариантов rcHCTHMerJ^4^1^ И СТроит новую популяцию с помощь10 оД ------------ Г° ° учення- Системы классификации обучаются Д°- Часть IV. Машинное обучен* 496 мя способами. Первый способ состоит в испо ! страивающей меру качества правил адассификаХ°ВаНИИ Систсмы п°отреннй. нв- | вил и ослабления действия ошибочных. Ал горит уснЛения полсзвмх пра- ' часть вознаграждения или штрафа каждому распредслсния кредитов передаст участие в формировании окончательного правил?У КлассиФика1«*«’ принимавшему вознаграждений между взаимодействующими классикраСПределение Различных ется с помощью алгоритма “пожарной цепочки” Этот а1РЭМИ зачаст*ю Рсализу- распределения кредитов и штрафов для систем RMxm Р"™ рсшает проблему том последовательного применения набора правил. Как ХХлитГштрафьГм^ж ду правилами этой цепочки в случае ошибки „а выходе? Какое и, правил Опочки является источником ошибки: последнее или „дн0 из предыдущих? Алгоритм “пожарной цепочки позволяет распределить кредиты и штрафы между правилами ЭТОЙ последовательности в зависимости от вклада каждого правила в окончательное решение. Аналогичное распределение поощрений н штрафов на основе ошибки на выходе обеспечивает алгоритм обратного распространения, описанный в разде- ле 10.3. Более подробная информация об этом содержится в [Holland, 1986]. Вторая форма обучения связана с модификацией самих правил на основе генетиче- , ских операторов типа мутации и скрещивания. При таком подходе выживают лучшие , правила, а в результате их комбинации формируются новые классификаторы. ; Каждое правило классификации состоит из трех компонентов и работает, как обычная система вывода: на основе некоторого условия проверяется соответствие данных содержимому рабочей памяти. В процессе обучения генетические операторы могут модифицировать как условия, так и действия правила вывода. Второй компо- нент правила — действие — может изменять внутренний список сообщений (продукционную память). И, наконец, каждому правилу соответствует мера качества. Как уже отмечалось, этот параметр изменяется как при успешном, так и при неуспеш- ном применении правила. Эта мера изначально присваивается каждому правилу при его создании генетическим оператором. Например, мерой качества может служить среднее значение качества двух родителей. Взаимодействие этих компонентов системы классификации можно продемонстри- ровать на простом примере. Предположим, набор подлежащих классификации объек- тов определяется шестью атрибутами (условиями d , с2, ..., сб). Допустим также, что каждый нз этих атрибутов может принимать 5 различных значений. И хотя каждый атри- бут имеет свой физический смысл (например, параметр сЗ описывает цвет, а с5 — пого- ду), без потери общности допустимые значения всех атрибутов можно описать целыми числами {1,2, ..., 5]. Предположим, согласно правилам вывода объекты разбиваются на 4 класса: А1, А2, АЗ, А4. Таким образом, каждый классификатор можно описать в виде соотношен (с1, с2, сЗ, с4, с5, сб) -»At, где /=1, 2, 3, 4, мание на то. что несколько различных услов шаблона могут соогветство- иому классу, как в правилах 1 и 2. либо два одинаковых шаблона могут вать различным классам. РлаВа 11. Машинное обучение на основе социальных и эмерджентных принципов 497
-фА2 „ пналичных классов__________ номер праВи7Г^2~~~- Условие (атрибуты)______— 1 • * (2*3») 4 («М3») _д2 4 (W«W) .дз 5__________________ («НЗ»)_______________________________ ~ ~ -------------LLbctcmb классификации - это еще одна форма вездесущих систем, как показано выше. вывода. Единственным отличительным свойством основанных на правил „ пр,.веденном примере, является применение правил “асс“фи™“ '#^ представления шаблонов условий. Такое представление уело- строктшфрисимво ие генетических алгоритмов в правилах логического вывода. Zee бХ’исслед^ван вопрос генетического обучения в системах классификации. чХунростить изложение, будем рассматривать обучение системы только для класса Д1 Не принимая во внимание другие классы, присвоим шаблонам условии значение 1 или 0 в зависимости от соответствия классу 41. Заметим, что это упрощение не ограничивает общно- сто рассуждештя, поскольку эти выкладки можно распространить на случаи обучения для не- скольких классов. Для этого достаточно ввести вектор, соответствующий конкретному услов- ному шаблону. Например, классификатор из табл. 11.2 можно описать в виде (1 >(1000), (2##3##)—>(1 ООО), (1#####)—>(0100), (##43##)-»(0110). Последняя строка в этом примере соответствует правилам классификации для классов /12 и ДЗ, но не 41 или А4. Заменяя 0 или 1 подобными векторными представлениями клас- сов, можно оценить эффективность правила для классификации на несколько классов. Для определения корректности классификации будем использовать правила из табл. 11.2. А именно, будем рассматривать их в качестве учителя для оценки качества правил в системе классификации. Как в большинстве генетических систем обучения, вы- берем случайным образом исходную популяцию правил. Каждому шаблону условий со- поставим параметр качества (fitness) или силы (strength) (вещественное число из диапа- зона от 0,0 до 1,0). Этот параметр силы s будем вычислять на основе качества каждого родительского правила с учетом предыстории. В каждом цикле обучения с помощью правил будем пытаться классифицировать вхо- ды и проверять качество классификации с помощью учителя ими меры качества. Напри* р. предположим, что на некотором шаге получена следующая популяция кандидатов ncJLkT-jT^811"11 ^лассиФикации’ Для каждого элемента которой 1 означает корректный результат классификации, а 0 - неверный: s=0,6, s=0,5, 5=0,4, s=0,23. новое входное сообщение (1 4 3 2 1 5), и учитель ) классифицировал этот вектор как положительны (##3##5)-^О (21####).^ о И3 Среды ПОСТУПИЛО ИО£ основе первого правила из табл. 11.2) 498 Часть IV. Машинное обучение
пример для класса А1. Посмотрим, что происходит пои прпр память при попытке его классификации с помощью 4 пп ^ ЭТ°Г° °браза В ’1пГючУю ответствует правилам 1 и 2. Разрешение конфликта междуТГ^^0^ Обр£П С°“ полнястся иа основе конкуренции. В нашем примере степекьТ пРав,шами иы- вила вычисляется как сумма произведений степеней спит С00ТВСТСТй1,я каждого про- меры качества данного правила. Неопределенному атпиб^#™™ Каждого из и при точном соответствии атрибута присваиТастТя с^ень Го °’5’& ценное значение делится на длину входного вектора. Поскольку пеп^ нормиРовки полу' данного входного вектора дает два точных соответствия и 4 неопрсдиетых^^иб^ об- щая степень его соответствия входному вектору составляет ((4*О,5+2*1)*О.б7б=оТ^ второго классификатора тоже имеется 2 точных соответствия и 4 неопределенных атрибу- та, поэтому его степень соответствия составляет 0.33. В нашем примере по принципу кон- куренции побеждает классификатор с максимальной степенью соответствия, но в более сложных задачах желательно учитывать некоторый порог. Таким образом, победило первое правило, в соответствии с которым предъявленный образ относится к классу А1. Поскольку это действие корректно, мера качества первого правила увеличивается и принимает новое значение, приближенное к 1. Если бы резуль- тат выполнения этого правила оказался некорректным, его мера качества была бы уменьшена. Если для получения результата в системе многократно выполняется некото- рый набор правил, то определенную долю подкрепления должны получить все правила, участвующие в получении результата. Точная процедура пересчета меры качества опре- деляется в зависимости от системы и может оказаться очень сложной. Она может стро- иться иа основе алгоритма “пожарной цепочки" или другого метода распределения кре- дитов. Более подробная информация по этому вопросу содержится в [Holland, 1986]. После вычисления меры качества прав ил-кандидатов в алгоритме обучения приме- няются генетические операторы для создания следующего поколения правил. Сначала на основе принципа отбора выбирается множество правил с наиболее высоким значением критерия качества. Этот выбор базируется на значении меры качества, но может учитывать и дополнительные случайные величины. Элемент случайности обеспечивает возможность отбора правил с плохими показателями качества, которые, невзирая на общее несоответст- вие, могут привнести полезные элементы в решение задачи. Допустим, в рассмотренном примере для дальнейшей работы выбраны первые два правила классификации. После слу- чайного выбора точки скрещивания между четвертым и пятым элементами s=0,6, s=0,5, s=0,53, s=0,57. (##3#|#5)-»0 получим потомки (##3# 11 #)->0 (###2|#5)~>1 Мера качества каждого потомка — это взвешенная функция показатеть-и родителей. Весовые коэффициенты определяются местоположением качества и Первый потомок получил 1/3 информации от классификатора с мерой кач"£и 2/3- от классификатора с мерой качества 0.5. Поэтому его мера кзист (1/3«О,6)+(2/3*О 5)=0 53 С помощью аналогичных рассуждении выясним, что мера каче ства второго потомка равна 0.57. Результат [[“““системах классификации ределястся соответствием большинства атрибутов* Е тип иныхсид * с ЭД два новых правила, наряду с их родителями, входят в набор м Ф торыми работает система на следующем этапе- Главам. Машинное обучение на основе социальных и эмврАжентных принципов 499
Mvraumi. Простая мутация заключается в случайна Можно определить и оператор рольным значением »3 допустимого дна„аМн ' замене любого значеннл атрибута р ? д # Как указь1валось пр|| описании * Например. 5 можно изменить н 1 внссти элемент случайности а П0|й четких алгоритмов. °"еРа™р“ ' ш,1ЮнИе позволяет сохранить удачные фрагменты классификатора а то аре в потомках. данных из родительских прост „ прНзваи яишь проиллюстрировать работу Рассмотренный пример д вявсс[1ф|1Кац|Ш. В реальных системах может срабаты. основных компонентов си м0[уг передавать свои результаты в рабочую память вать несколько правил, и р доминирования одного нз классификаторов в пост Зачастую для предотвр. налогообложения. при которой его мера качества „а цессе решения при» несколько снижается. Здесь также не описан алгоритм каждом успешнее позволяющий в различной степени “поощрять” правила, участ- вуюшие в'успешном решении задачи и передаче сообщения во внешнюю среду. Кроме X № правило, генетические операторы применяются для трансформации класенфн- ов не на каждом шаге работы алгоритма. Обычно существует некий общий пара, метр определяемый с учетом специфики каждого приложения, в частности, иа основе анализа обратной связи со внешней средой, иа основе которого принимается решение о необходимости применения генетических операторов. Описанный пример взят из работы [Holland, 1986], выполненной в университете шта- та Мичиган. Такой подход можно рассматривать как численную модель познания, в ко- торой знания (классификаторы) обучаемой сущности формируются в процессе взаимо- действия с внешней средой и модифицируются со временем. При этом оценивается об- щая работа всей системы, а не качество отдельного классификатора. В работе [Michalski и др., 1983], выполненной в университете Питтсбурга (Pittsburg), предложен альтерна- тивный подход к построению систем классификации, в котором при создании нового по- коления классификаторов основное внимание уделяется отдельным правилам. Такой подход реализует предложенную Михальски (Michalski) модель индуктивного обучения. В следующе.м разделе рассматривается еще одно интересное приложение генетиче- ских алгоритмов, обеспечивающее эволюцию компьютерных программ. 1122. Программирование с использованием генетических операторов В нескольких предыдущих разделах рассматривалось применение генетических алго- ритмов для все более сложных структур данных. А что произойдет, если применить ге- нетические преобразования битовых строк к правилам "если..., пю..."! Возникает естест- венный вопрос, можно ли применять генетические и эволюционные операторы для соз- дания олее крупномасштабных вычислительных средств. Известны два основных ей ЭТ0Й °®ласти’ связанные с генерацией компьютерных программ и эволюци- ей систем, реализующих конечные автоматы. жет эволю.шп!^лВЫСКа3аН° предположенне- что удачная компьютерная программа мо- рами к которым ВаТЬ ЗЭ СЧеТ применения генетических операторов. При этом структУ’ иерархически оогани^^^10™ принцппы генетического программирования, являются поддерживает популярфрагменть1 компьютерных программ. Алгоритм обучен^ способностью решать не™™ 1^амм‘каидндатов. Качество программы определяется счет применения ск-nei и РЫИ Класс задач’ а модификация программы выполняется р менения скрещивания и мутации к поддеревьям программы. При генетическом 500 Часть IV. Машинное обучение
программировании поиск выполняется в пространстве иа. ного размера и сложности. Фактически пространство п ПьготеРных »Р0П>амм различ- имых компьютерных пробами, составленных из множсство вссх 1,°'- н0Стей символов, соответствующих предметной области И посясдовага1Ь- чсние, такой поиск содержит элемент случайности во Z ‘ п “ Гснстичсскос обУ* но на удивление, оказывается достаточно эффективнь1м выполняется "вслепую’. S.V-. -. — — дартные арифметические операции, математические „ логические фуХи а^еТп пифические функции для данной предметной области. В число про^аммных Zhohch- тов включаются данные стандартных типов: логические, целочисленные, с плавающей точкой, векторные символьные или многозначные. После инициализации генерируется популяция из тысяч компьютерных программ. Каждая новая программа создается с применением генетических операторов. Скрещива- ние, мутация н другие обеспечивающие воспроизводство операторы необходимо адапти- ровать для создания компьютерных программ. (Ниже мы кратко остановимся на не- скольких примерах.) Качество каждой новой программы определяется ее способностью решать задачи из конкретной предметной области. Сам критерий качества тоже форми- руется с учетом предметной области. Программы с высоким значением критерия качест- ва выживают и участвуют в формировании следующего поколения программ. Итак, генетическое программирование включает следующие шесть компонентов, многие из которых напоминают составные части генетических алгоритмов. 1. Набор структур, подвергающихся трансформации с помощью генетических опе- раторов. 2. Набор исходных структур, соответствующих предметной области. 3. Мера качества для оценки этих структур, выбираемая с учетом предметной области. 4. Набор генетических операторов для трансформации структур. 5. Описания параметров н состояний элементов каждого поколения. 6. Набор условий останова. В следующих разделах эти компоненты будут рассмотрены более подробно. В генетическом программировании операции выполняются над иерархически органи- зованными программными модулями. Основным средством представления компонентов программных языков был и остается язык LISP. В [Koza. 1992] программные фрагменты представлены в виде символьных выражений на языке LISP, или s-выражений.^ писание к-выражений, их естественное представление в виде структур деревьев, a ЭФ ек тивность такого представления более подробно рассматриваются в разделе • Генетические операторы оперируют s-выражениями. В частности,они ото р Древовидные структуры s-выраженпй (фрагменты программ на языке L ISP) 8 * Ре.« (другие псаммы на LISP). Хотя эти s-выражения появилис кеше^6о« *992], другие исследователи применяли этот подход к различны «нрования и в более позднее время. полезные программы из основе Генетическое программирование позволяет тро задачи При задании родных данных и предикатов, описывающих щ" X" оро- области определения для поколения программ, р Глава , 1. Машинное обучение на основе социальных и эмерджентных принципов 501
начала проанализировать возможные конечные ЗНЗЧе. ^й3 задач, необходимо с»3 а функции, необходимые для пОлуче ZcZZ элементов " Сав (KOZ 19921 отмечено, что •'...при использовании rweni’. :”Хонечиь,хзна=ИяВ^и'мо , ™ некоторая композиция функций „ конечны"»^"1*ВО^2^ТХ>фХуе«“^ »°мошью генетических оПе. Чтобы инициализировать стрУ«ур множество функции F и множество конеч. „торов. необходимо создать. дк.мн стной области. Множество F может соето- Емх значений 7, требуемых для Л» включать более сложные функции, такие как "ть из простых операции {+. -ч- 'Множсство 7 может содержать целые или вещее,. si„(x), cos(x) и матричные операц выражения. Множество символов 7 должно венные числа, матрицы ш фуНКЦИй из F. быть замкнуто относительно ФУ н -программ" путем случайного выбора эле- Затем генерируется полулягi выбнрая элемент из множества Т, мы получаем ментов из множеств F « / п р корневого элемента. Более интересной явля- вырожденное дерево, состоят ся элемент Из F, скажем, +. В этом случае получа- ется ситуация, когда сначала д РотенцяаяьнЬ1Ми потомками. Допустим, после этого в ется корневой узел дерева с:д у. выбирает из F операцию * (с двумя потенци- качестве первого потомка ™ ого_ конечное значение 6 из множества Т. Сде- льными потомками), а в ментамн могут стать конечное значение 8 и функция дующими случайно выбр ается выбором значений 5 и 7 нз множества Т. + из F. Допустим, npou.фр образом программа представлена на рис. 11.4. На I Случайно сгенерир лепного выбора операции +, на рнс. 11.4,6 — после | рис. 11.4, о показано дерево Р окончательная программа. Для инициа- J "уется целое —ие подо6' ных поограмм Для контроля размерности этой популяции можно применять ограничения, Zw программ. Описание подобных™ различных методов генерирования исходных популяции содержится в [Koza, 199 J. 5 7 в. исходной символам а' б. ^аучайная генерация У,"Ы‘ Л» Снх non °°”U с°°1’Н‘етствуют функция» ди сих пор рассматривалис JWUMMte06X0,iWMbie 1,ИИ11иа/1ИзХ1иЬп1?1?еДСТаВЛеН11Я (5’8Ь1Ражения) и древовидные струк- висит 1 ПрОграмм необходимо onneipnJ7 ЭВОЛЮ1^1И программ. Для управления попу- 1^шат^К°НКреТН0Й аддачи И обычно .Г 1ГГерий качества. Выбор критерия качества за- щая эл*е °;1ЮЦИ0НИру1Ощад программа г * °ирСде;1Снию набора задач, которые должна Щ эффективность реще1ад критерий качества - это функция, вычисляю- ^2 -----------------------°и программой. Линейный критерий качества (с1"' fitness) учитывает различие между результатом выполнен ем реальной задачи. Следовательно, линейный И » СУММУ ошибок ,фн наборе задач. Возможны з-Ле^ХмТ’™ М0ЖК0 ^“«‘«Ривать как крцтории качества подразумевает деление общего kS‘ Т НоРм™»™нь,й ножных ошибок. Следовательно. нормализованный Z “чссгаа на в(хх да,, диапазоне от 0 до 1. Преимущество нормализации Л? ИЧеСтва можст "’“«пьи в ляциями программ. Мера качества учитывает размсгХ работе с ^шими попу- создание компактных программ небольшого размера WaMMbI’ наЕ1Ример, можно поощрять Генетические операторы в пространстве прогвам дерева, так и обмен фрагментами между различнммЛГ^*111 и^Р^вание самого X» преобразования, получившие h^^ZZZZZВ 19921 (crossover). Воспроизводство — это выбор тюгпамм £тм <reProduaion> и арациваяия (без изменений) в популяцию следующего погаения TZ Поколения 11 копирование их поддеревьев двух существующих ZZmXZ SZ'J™' °бме“ граммы, представленные на рис. 11 5 в котовых родительские про- Дочерние деревья, полученные в результате скрещиванилТХ^'н^ 1 ванне также можно использовать для преобразования одного родительского дерева г^Х™- ремены мест в двух его поддеревьях. При случайном выборе точки скрещшХы «н- тичных родительских Дфева могут дать различное потомство. Точкой скрещивания Ze может служить корневой узел программы. Рис. 11.5. Две программы, подлежащие скрещи- ванию в случайно выбранной точке | Рис. 11.6. Дочерние программы, полученные в результате скрещивания Известно множество менее распространенных и менее полезных генетических преоб- разований деревьев программ. К ним относятся .мутация (mutation), при котором в структуру программы просто вносятся случайные изменения (например, замена конечно- го значения другим значением или поддеревом). Перестановка (permutation) аналогична оператору инвертирования строк. Она тоже выполняется для отдельных программ н со- стоит в перемене мест конечных символов или поддеревьев. Текущее пополнение программ отражает состояние решения. Не существует специ- альных методов, позволяющих учитывать рельеф поверхности, определяемой критерием качества. С этой точки зрения генетическое программирование напоминает алгоритм по- ««а экстремума, описанный в разделе 4.1. Генетическое программирование сходно с ее- ’«Швейным процессом эволюции, поскольку трансформации программ можно выпел- "»п непрерывно Тем не менее ограниченность времени и вычислительных ресурсов ’Ребуют Zh“ условий останова. Такие условия обычно зависят от значения критерия качества и потребляемых вычислительных ресурсов. Часть IV. Машинное обучение ава 11. Машинное обучение на основе социальных и эмеаджентных принципов 503
rltoe Программиро“ание- зте метад ™4>прования компыот Поскольку LX™ К области автоматического программ, 1ровад иых программ, то екомо*”° ° компьютерных программ на основе фрагмент? проблемой автемаТИЧеС“ ° ли работают с самого начала развития искусственного н„ „ой информации ИССДСДОв. Рдас проп,аммирован„е можно рассматривать как од теллекта [Shapiro, 199-J. области ^следовании. В конце этого раздела будет Приве но из средств в этой ва* программирования нз [Mitchell, 1996]. дсн простой пример генетического у ппгпаммы, моделирующей третий закон Кеплера о движении планет Э“вХа 19921 описано много приложений метода генетического программирования, В [Koza, 1992 on ные задач„. Однако большинство этих примеров слишком то жРе в [Mitchell. 1996] приводится простой пример, илшо. “ХХ^многие важные понятия генетического программирования. Третий закон Zena о "в "женки планет описывает функциональные зависимости между периодом oXS р и средним расстоянием от этой планеты до Солнца А. Формула третьего закона Кеплера имеет вид Рг=сАэ, где с — константа. Если считать, что единицей измерения величины Р является земной год, а величина А — это количество средних расстояний от Земли до Солнца, то с= 1. Для этого отношения s-выражение имеет вид P=(sqrt(M(AA)))- Целевая программа, реализующая это соотношение, представлена в виде древовидной структуры на рис. 11.7. В этом примере множество конечных символов выбирается очень просто: оно вклю- чает только одно значение А. Набор функций тоже задастся несложно, в частности {+, *, /, sq, sqrtj. Создадим случайным образом популяцию программ. Исходная популяция может иметь вид (*А(-(*А A)(sqrt А))) мера качества: 1 (/А(/(/А А}(/А А))) мера качества: 3 (+А(*( sqrtAjA)) мера качества: О Значения меры качества будут обоснованы ниже. Как указывалось выше в этом раз- деле, на исходную популяцию могут накладываться Ограничения по размеру и глубине программ, определяемые знаниями о предметной области. Этн три примера описывают- ся деревьями программ, показанными на рис. 11.8. Определим набор тестов для программ этой популяции. Допустим, нам известна не- im^aS инФ°РмаИия о планетах, которая должна найти свое подтверждение при работе получении р^дпо^жим’ известны данные, приведенные в табл. 11.3. Этн сведения получены из работы [Urey, 1952]. граммы качества Д°лжна определять степень соответствия результатов про- граммы отличаюг1|Ь1М’ ее М0ЖН0 определить как количество результатов работы пр0' пользовано для °Т ЭТалонных данных не более чем на 20%. Это определение ис- Читателю предлагаТсГсХТсш Пр01^аМи’ представленных на рис. HJ- руировать оиепатопы rim Ще Несколько элементов исходной популяции, скоп ления программ, и определить ^ов^^анТ* П°ЗВ°ЛЯЮЩИе Ф°Рм»Ровать новь1е П°К°’ 504 Часть IV. Машинное обучение
Рис. 11А Рис. И-7- Целевая про- грамма, моделирующая третий закон Кеплера Таблица 11.3. Набор Да»ных о даижении планет из работы [Urey 19521 д относительный размер главной полуоси орбиты а Р У' 952}'А ~ приведенный к данным для Земли ’ ~ о™<™тельный период, Планета А (ВХОД) Р (выход) Венера 0,72 0,61 Земля 1,0 1,0 Марс 1,52 1,87 Юпитер 5,2 11,9 Сатурн 9,53 29,4 Уран 19,1 83,5 11.3. Искусственная жизнь и эмерджентное обучение Ранее в этой главе была описана упрошенная версия игры “Жизнь". Эта игра, кото- рую можно эффективно визуализировать на компьютере, имеет очень простое описание. Впервые она была предложена математиком Джоном Хортоном Конвеем (John Horton Conway) и получила широкую популярность благодаря ее описанию в журнале Scientific American в 1970-1971 годах. Игра “Жизнь” — это простой пример модели вычислений, получившей название клеточных автоматов (cellular automata). Клеточный автомат это семейство простых конечных автоматов, демонстрирующее интересное эмерджент- ное поведение при взаимодействии элементов популяции. ОПРЕДЕЛЕНИЕ МАШИНА С КОНЕЧНЫМ ЧИСЛОМ СОСТОЯНИЙ, или КОНЕЧНЫЙ АВТОМАТ Понятие конечного автомата включает следующие элементы. Е Множество /, называемое входным алфавитом- 2- Множество S возможных состояний автомата. 3. Известное начальное состояние Sq. “ Фу^ия N: Sxl^S. определяющая сяяф-ю^ее стояние для каждой упорядо- ченной пары состояние-вход. Глава и. Машинное обучение на основе социапыллх и эмерджентных принципов 505
пм состояний - ЭТО функция текущего состоя,,™ „ о машины С конечным Так. состоянием конечного автомата „ ВЫХ“ < конечных автоматов. () СОСГОЯН1и! его соседей в момент впр состоянии б" я от его собственногос неточного автомата со своими cocej,'. '+\’ГБ«оХ7заимоле>.отв™ ен11е, чем поведение отдельного элемента. " Дается гораздо более разнообрази привлекательных свойств клеточных от его соседей' жи,°* -L Поскольку выход каждого эле цеСС социальной адаптации. состояний набора элементов можно о™« не вычисляегся значение критерия качесг- В примерах, описанных В э-тем р^ еделяе1ся как результат взаимодействия зле- ва для каждого элемента. Мер и» I * „отм„ранию” отдельных автоматов. Неявно ментов популяции, которое может Ч> осо6ей из „околения в поколение. Для кле- качество выражаем в вьЯ",“”“ обучеиче без учителя. Как и при естественной зво- точных автоматов обычно прими» других осо5ей зтой П0Пуляции люции, адаптация выполняется н оцеИИТЬ с глобальной, социально ориентире- Важную роль такого обучен иеобходимость концентрировать внимание ванной точки зрения. Такой подх Д У инвариантности и регулярные зависимости в на отдельных cento и «—X будет проанализирован в подразделе 11.3.2. обществе в целом. Этот важи эволюция ие должна быть направленной”. И, наконец, в отличие от об^ некоторой заранее заданной точке “омега”. При яв- Нельзя считать, что общество А поелыдуших разделах этой главы на самом деле ста- ном использовании мерь, качества^^"^ако, как отмечено в работах [Gould, »шь с точки^вд» его выживания. Единственной мерой прогресса является продолже- ние существования. 11.3.1. Игра “Жизнь” Рассмотрим простую двухмерную решетку или игровую доску, показанную на рис. 11.9, На этом рисунке одна из клеток закрашена черным (занята), а восемь соседних — заштри- хованы. Со временем внешний вид доски изменяется, при этом состояние каждой клетки в момент времени f+1 — это функция ее состояния и состояний ее ближайших соседей в момент времени f. Игра подчиняется трем простым прави- лам. Во-первых, если для некоторой клетки (занятой или сво- бодной) ровно три ближайшие соседние клетки заняты, то она будет занята в следующий момент времени. Во-вторых, если для некоторой занятой клетки заняты также ровно две соседние клетки, то она тоже будет занята в следующий мо- мент времени. И, наконец, во всех остальных ситуациях в следующий момент времени клетка остается свободной. Одна из интерпретаций этнх правил сводится к следую- тему. Для каждого поколения или момента времени жизнь ное I) является везупьтят Кажд0”. П0ПУляшш (черный цвет клетки или состояние, рав- шем поколении. A iimpuu?1 С° ственной жизни, а также жизни ее соседей в предыдУ' клеток) или разреженность гпгШК°М ПЛ0Тная населенность (более трех занятых соседних приводят к невозможности популяций (менее двух) в каждый момент времен жизни в следующем поколении. Рис. П.9. Заштрихованная область определяет группу соседей в игре “Жизнь" 506 Часть IV. Машинное обучай
Например, рассмотрим состояние, показанное (обозначенные символом X) имеют ровно но три^т '' Здюь р'"™ W югсткн „околение показано на рис. 11.Ю, 6. Здесь ^осе;,„„е К;|С1КН ™ СИМВОЛОМ Y). у которых есть три занятых соседа Неиг,?' <°6°эначсн,Ще жизни будет циклически переходить между ряс „ ^"тьея. что состояние „гм определить следующее состояние для рис 11 о ’ ",, А Чита™ю "Редяата- другие возможные конфигурации “мира”. В работе fPn и ’ ’ 6' а также исследовать разнообразие и богатство структур, получаемых в пез^?'°Пе' 19.85) °"исано 6о;1ьщое планеры (glider) шаблоны ячеек, которые пепемешакэт™ ИГрЫ Жизнь • ™м лиспе ряюшихся циклах изменения формы. ‘даются по игровой доске в повто- Благодаря своей способности обеспечивать разнооб процессе взаимодействия простых клеток клеточные а коллективное поведение в изучения математических принципов змерджентности ж^Гн0™"'МОЩНЫМ сРед<™м шевленных компонентов. По определению искусственная »°-°“ "Р0ПЪ1Х’ "е°ду' ная ценой усилий человека, а не природы. Как видно из ппе, А ЛС“3'“' венная жизнь имеет ярко выраженную тенденцию к пазило JT™ ПрИМера' искусст- ится иа основе взаимодействия ее атомов. Регулярности этой Ли, « система *изии "₽<>- правиламн работы конечных автоматов. " Ф<>рМЫ ™ Но как в данном случае можно воздействовать иа процесс развития жизни? Напри- мер, в биологии множество созданных природой живых сущностей во всей своей cZ- ностп и многообразии подчиняется воле случая и исторической неопределенности Мы верим в существование логических закономерностей в работе над созданием этого мио- жества, однако их может и не быть. Вряд ли мы сможем исследовать общие закономер- ности, ограничившись рассмотрением лишь созданных природой биологических сущно- стей. Важно изучить полный набор возможных биологических закономерностей, часть из которых может нарушаться вмешательством случая. Остается только гадать, как бы вы- глядел современный мир, если бы по воле случая ие вымерли динозавры. Чтобы постро- Рис. 11.10. Множество соседей, создающих эффект пе- реключения света Помимо известных попыток специалистов по антропологии и других ученых запол- нить бреши в изучении реальной эволюции, не прекращаются дискуссии о циклическом характере самой эволюции. Что бы произошло, если бы эволюция началась из других начальных условий? Что бы изменилось при включении других переходных процессов в ниией физической и биологической среде? Как пошел бы процесс развития^ Что оси- "ось бы нетронутым? Путь развития, который реально оыа премией на Земли- это ^ава 11. Машинное обучение на основе социальных и эмерджентных р
„ложных траекторий- Ответы на некоторые из этих Во лишь одна из многих некоторые из множества возможных ситуац^ В МОЖНО получить, сгенериров а Рис. IUI. Что произойдет с этими образами « следую- щем жизненном цикле? Технология искусственной жизни - это не просто артефакт из предметной области биологии или компьютерных наук. Исследователи из других областей, в том числе спе- циалисты по химии и фармакологии, построили синтетические артефакты, тесно связан- ные со знанием реальных форм жизни в нашем мире. Например, в области химии изуче- ние строения вещества и многих созданных природой компонентов привело к необходи- мости анализа этих компонентов, их составных частей и границ. Этот анализ и попытки рекомбинации позволили создать многочисленные соединения, ие существующие в при- роде. Знание о строительных блоках природных соединений привело к разработке их синтетических аналогов п созданию новых, не известных ранее веществ. Благодаря вни- мательному изучению естественных химических соединений люди пришли к некоторому пониманию множества возможных соединений вообще. Одним из средств понимания мира является моделирование и анализ общества на ос- нове взаимодействия и движения. Примером такой модели является игра “Жизнь”. По- следовательность жизненных циклов, показанная на рис. 11.12, иллюстрирует упомяну- тую ранее структуру “планер". Планер перемещается по жизненному пространству, цик- лически изменяя свою форму. За четыре такта он перемещается в новое положение со сдвигом на одну клетку вправо и вниз. экрану Рис. 11.12. Перемещение '‘планера " по ^укгурб^енов^биГ^” И1 с’'1' ^ИЗНЬ" ЯВЛЯстся исследование взаимодействия различных действии планера с е™* <'ложно помть и спрогнозировать, что произойдет при вз»,(к нопзс^ХЛГ’" пруи»“"- Например, на рис. 11.13 ..оказан пример соамест- во, поглощается дпхтой г ПЯанеров’ ^еРез четь1ре такта планер, передвигающийся вниз и № в том числе такие теоми У^Н0СТЬ10, Интересно отметить, что наши онтологические описания, термины, как сущность”, “планер”, “переключение света”, “поглошастся . 508 Часть IV. Машинное обучв^
0 Формах жизни, в том числе и искусст- оперировать терминами и закономерно- отражают наши антропоцентрические представления венной, и их взаимодействии. Человеку свойствен^ ^ми. присущими социальным структура го. 11.13. "Поглощение" "манера" другой сущностью 11.3.2. Эволюционное программирование Игра “Жизнь” - это интуитивный описательный пример клеточного автомата. Описа- ние клеточных автоматов можно обобщить, охарактеризовав их как машину с конечным числом состоянии. В этом разделе будут рассмотрены сообщества связанных друг с другом машин с конечным числом состояний и проанализировано их взаимодействие. Эта область знаний получила название эволюционного программирования (evolutionary programming). История эволюционного программирования возникла в момент зарождения самих компьютеров. В 1949 году в цикле лекций Джона фон Неймана исследован вопрос о том, какой уровень организационной сложности необходим для самовоссоздания. В [Burks, 1970] цель фон Неймана определена гак: “...это не попытка моделировать само вое произ- водство естественной системы на уровне генетики и биохимии. Автор хотел абстрагиро- ваться от естественной проблемы самовоспроизводства”. Не вдаваясь в химические, биологические и механические тонкости, фон Нейман поста- рался представить основные требования, необходимые для самовоспроизводства. Он разрабо- тал (но не реализовал) самовоспроюводяшуюся автомапзческую конструкцию. представ- ляющую собой двухмерную рещетку с большим числом отдельных автоматов с 29 состоя- ниями. Каждое следующее состояние отдельного автомата конструкции являлось функцией его текущего состояния и состояний четырех ближайших соседей [Burks. 1970,1987]. Интересно, что для обеспечения функциональности универсальной машины Тьюрин- га фон Нейману потребовалось спроектировать самовоспронзводящиися автомат, содер- жащий около 40 000 клеток. Это универсальное вычислительное устройство было также конструктивно универсальным в смысле его способности чтения входных данных с маг- нитной ленты, их интерпретации и использования специальной руки для создания опи- санной на ленте конфигурации в незанятой части клеточного пространства. Поместив на магнитной ленте описание самого автомата, фон Нейман создал самовоспроизводяшийся автомат [Arbib, 1966]. Позднее, в 1968 году. Кодд (Codd) уменьшил число состояний самовоспроизводяше- П)ся автомата, необходимых для обеспечения вычислительной универсальности. с -9 до 8- Однако для этого ему потребовалось примерно 100 000 000 клеток. После это го Девор (Devore) упростил машину Кодда и разработал автомат, содержащим примерно 8.7 500 ^еток. В последние десятилетня был разработан самовоспроизводяшиися^' стоящий из 100 клеток по 8 состояний каждая, не обладающим вычислительном универ- сапе клеток по о tot том» Подробные описания этих сальностью [Langton 1986 , Hightower, 199-Ь [Сооа. 1ivmh г"*Ва 11. Машинное обучение на основе социальных и эмерджеитных принципов 509
В материалах конференции, посвященных nDofi ых результатов содержа [Langton и др., 1992]. ЛеМам НауЧ Хвенной жизни [Langton, 19 £ ^^воспроизводящихся машин уходнт _ ^Х о^ом, Ф"Р«-Н"И,е результаты демонстрируют также змп^ вглубь теории ««числена И Р успех работы этих программ опреде^» исследования форм иск>«™„честви. а простым фактом выживания „ Z „которым заранее заданным TJ являеТСЯ сам0 выживание. Но сущ * воспроизводства особен Пр ы компьютерные вирусы и черви, способные другая сторона |пъ себя (обычно разрушая в памяти любую ннфо.^ вать в чуждой среде, В°Х ^производства) в инфицировать другие узлы. ’ РМа' пню, необходимую для 3 осгаВовимся на двух исследовательских проектах vn„ В заключение ₽ е Роднн Брукса (Rodney Brooks) из Массачусетсе МЯНУП" Ра"“„го института и Нильса Нильсона (Nils Nilsson) и его студентов из Став ГТХ бр^са упоминалась в разделе 6.3. а проект Нильсона - прн описания Ф РД =Хия в подразделе 7.4.3. В контексте данной главы этн два описания бу. "Р0С0В "Хеиы с точки зрения искусственной жизни и феномена эмерджентности. 'Ти бХкс [Brooks. 1991а. 19916] из Массачусетского технологического института постХ исследовательскую программу, основываясь иа исследовании искусственной жизни а именно— на интеллектуальном поведении, проявляющемся при взаимодейст- вии простых автономных агентов. Подход Брукса, зачастую называемый “интеллектом без представления”, предусматривает различные способы создания искусственного ин- теллекта. Брукс утверждает следующее. "Необходимо постепенно наращивать возможности интеллектуальной системы, отталкива- ясь на каждом шаге от полной системы, в которой автоматически обеспечивается коррект- ность фрагментов и их интерфейсов. На каждом шаге необходимо строить полные интеллектуальные системы, которые можно “выпускать" в реальный мир с реальными ощущениями и действиями. В противном случае мы будем обманывать сами себя. Мы следовали такому подходу и построили группы автономных мобильных роботов. При этом мы пришли к неожиданному заключению. При исследовании очень простых уровней интеллекта мы обнаружили необходимость яв- ного представления и моделей мира. Гораздо лучше использовать реальный мир в качестве его собственной модели.” Брукс построил серию роботов, способных обнаруживать препятствия и перемешать- ся вокруг офисов и зданий Массачусетского технологического института. Они могут пе- выйа^?^Я исслвдовать 11 обходить другие объекты. Каждая из этих сущностей осно- рая “поп па адее лУКСЙ °б архитектУРе категоризсщии (subsumption architecture), кото- nocrencHHVKW'-m Фронтальные идеи декомпозиции поведения на уровни и темы — это апТе(ГУРИ'3аЦНЮ-П>ТСМ апР°бации в реальном мире”. Интеллект этои «к Брукс утверждает: °р1ашвашш и взаимодействия с окружающей сРеа управления КаждыйК0НФигуР!1РУем конечные автоматы, располагая их по УР° не основывают^ЧнаИсуп1рВеНЬ ™ базе ‘Умствующих Нижние уровни ник в работах [Brooks 1987 высоких”- Более подробная информация содер Нильс Нильсон cn J’[LeWis llLuger- 200°Г rccott Benson), разработал систему'СТудентами 113 Санфорда, в частности Скоттом Бенсоном ________ 1СТСМУ Теле°-Реагпгвного управления агентами. По сравнению с ---------------- Часть IV. Машинное оог 510
r-ой Брукса, Нильсон предложил более глобальную an-w™™ систем, интеграция которых обеспечивает функции “Л существования в динамической среде. Такая система обеги в рсбаетного и П1бкого „а различные ситуации в окружающей среде исходя из цаде'й^-е'^^4™”1’™ РСаК' маяия между несколькими конкурирующими целями, плани^ваниТ нТыхТ^Х'и* ходе ситуации за определенные разработчиком пределыТХке действий для последующего построения более надежных планов результатов своих Нильсон н его ученики разработали телео-пеактивм^ том, направляюшУК™; цели с учетом постоянно тельств [Nilsson, 1994], [Benson, 1995], [Benson и Nilsson, 1995]. Эта программа в значительной мере напоминает продукционную систему (глава 5), НО При этом поддерживает длительные действия (durative action), т.е. действия, проис- ходящие в течение произвольных периодов времени, такие как “двигаться вперед, пока...’’- Поэтому, в отличие от обычной системы логического вывода, в данном случае необходимо постоянно отслеживать условия и выполнять действия, в наибольшей степе- ни соответствующие нм. Сказанное выше можно подытожить следующим образом. 1. Данный подход поддерживает принцип планирования, требующий стереотипной программы отклика. Эта архитектура также поддерживает планирование, позво- ляющее агентам соответствующим образом быстро реагировать на типичные си- туации (отсюда термин “реактивный”). Действия агентов также являются динами- ческими и подчиняются определенным целям (поэтому “тел ео"). 2. Агенты должны иметь возможность поддерживать несколько изменяемых во вре- мени целей и предпринимать действия, соответствующие организации этих целей. 3. Поскольку невозможно запомнить все стереотипные ситуации, необходимо обес- печить агенту возможность динамического планирования (а при необходимости и перепланирования) последовательности действий и изменения положения вещей во внешней среде. 4. Наряду с постоянным перепланированием в соответствии со внешними обстоя- тельствами важно обеспечить возможность обучения системы. В этой работе реа- лизованы методы обучения и адаптации, позволяющие агенту автоматически из- менять заложенную в нем программу. Более подробная информация содержится в работах [Nilsson, 1994], [Benson. 1995]. [Benson н Nilsson, 1995], [Klein и др., 2000]. Этн две работы служат примерами огромного множества исследовательских проек тов, основанных на использовании агентов. По своей сути они являются эксперимен тальными и поднимают вопросы, с которыми сталкивается естественный мир. о взаи модействии с внешним миром формируются и выживают успешные алгоритмы а способные к адаптации системы “отмирают Этот аспект иск}сственного н более подробно будет описан в завершение главы 16. Фе i Santa И наконец рассмотрим научные результаты, полученные в институте Санта-Фе (San.а Fe Institute). ИЛЗ. Пример эмерджентности в [Crutchfield и Mitchell, 1994] исследован: простых систем с целью формирования вза1 Глава 11. Машинное обучение на основе социальных и эмердхентных принципов 511
с «V информации, эта работа содержит пример эмер еиивную обработку " „Леннй В распределенной системе, состоящей „ ВДй"' вую юлл ^глобальньк вьяи процессоров на основе эволюцией "' »«и. сигмах глобальнон °6работки информации. ц,? ^ет появление ват®^ архитектуры и механизмов эволюции, обесиеч^ исследования явля епЛЖентных вычислении. реализацию методов мердж т чнсла отдельных ячеек. В каждом Из Клеточный автом«с0 ся по 149 клеток. Эти клетки с бинарными состоХ сбиваемых пример»срд р 0 6ез глобальной координации. Состояние каЛ ми образуют мном‘р™ "Ренного состояния на предыдущем шаге и состояний Z " метки зависит от ее эволюции клеточного автомата формируется двухме,, ближайших еоседе’т в р * ячеек с0 случайно сгенерированными сост^ кая решетка. ИИ® 149 шагов эволюции клеточного автомата, состоящего из ними. На рис. 1 _ ячейи1 ну1Черуются с 0 до 148. На рис. 11.14 показаны пропран. 149 злементов^Вре ц ВОЗМОЖНОго поведения клеточного автомата. На зтщ етвенно-врекюш представдень1 4ep„bIM„ клетками, а кулевые _ белы. ™7—е правила выбора соседей приводят к различным конфигурациям простран. ствевно-временных диаграмм клеточного автомата. О "ем набор правил, определяющих активизацию элементов клеточного автомата. На ИС 11 15 показан одномерный клеточный автомат с бинарными состояниями, состоящий roN-li ячеек Там же приведены таблица вычисления состояний и правило определения ближайших соседей. Показано изменение решетки за одни шаг. Эта решетка на самом деле представляет собой цилиндр, в котором крайние слева и справа ячейки в каждый момент времени считаются соседними (это важно для применения набора правил). Таблица правил реализует правило мажоритарного голосования (majority vote): если большинство из трех ячеек находится в единичном состоянии, то центральная ячейка на следующем шаге пере- ходит в состояние 1. В противном случае она переходит в состояние 0. б верный цветом, ”к>ск, идемонат^^"врак'"а,е диаграммы, отражающие поведение двух а нулевые ~ я* 3U€^xer<muoe поведение. Единичные значения кчеток оелым. Врем» КП№^ изменяется сверху вниз Часть IV. Машинное обУчсн Таблица правил окрестность: 000001 010011100101110111 результирующее значение: 0001 01 1 1 Решетка Рис. 11.15. Пример одномерного бинарного клеточного автомата, состоящего из №11 элементов. Здесь по- казаны решетка и таблица правил для ее обновления. Этот клеточный автомат является циклическим, т.е. два крайних значения считаются соседями В работе [Crutchfield и Mitchell, 1994] предпринята попытка построения клеточного автомата, выполняющего следующие коллективные вычисления, получившие название победы большинства (majority wins): если исходная решетка содержит большинство единиц, то на следующем шаге все элементы автомата переходят в состояние 1, в про- тивном случае — в состояние 0. При этом были использованы клеточные автоматы, в ко- торых окрестность состояла из семи ячеек (по три соседа с каждой стороны от центра). Интересным аспектом оказалось сложность построения правила, реализующего такие вычисления. На самом деле в работе [Mitchell и др., 1996] показано, что простое правило мажоритарного голосования для семи соседей не реализует правило победы большинст- ва. Для поиска требуемого правила был использован генетический алгоритм. Описанный в разделе 11.1 генетический алгоритм применялся для создания таблицы правил в экспериментах с клеточным автоматом. А именно, он использовался для на- стройки правил преобразования одномерной бинарной популяции элементов клеточного автомата. Критерий качества формировался с целью подкрепить правила, обеспечиваю- щие победу большинства для клеточного автомата. Таким образом, со временем на основе генетического алгоритма был сформирован набор правил, обеспечивающий победу большинства. Отобранные на основе критерия качества элементы популяции случайным образом комбинировались с помощью скре- щивания, а затем каждый потомок с малой вероятностью подвергался мутации. Этот процесс продолжался для ста поколений, при этом для каждого поколения вычислялся критерий качества [Crutchfield и Mitchell, 1994]. Как определить наилучший клеточный автомат, реализующий эмерджентные вы- числения? Подобно многим пространственным естественным процессам, конфигура- ция ячеек со временем зачастую образует динамически гомогенные ооласти в про- странствс. В идеале следует автоматизировать процесс анализа и определения этих за- кономерностей. В работе [Hanson и Crutchfield, 1992] разработан язык минимальных Детерминистских конечных автоматов, с помощью которого описаны области притя- жения аттракторов для каждого конечного автомата. Этот язык можно использовать для описания нашего примера. глава 11. Машинное обучение на основе социальных и эмердаентных принципов 513 512
, ,, а) эти области заметны невооруженным гоазом „ /как на Р«с 11 1 ’ ’ „ОСТИ Обозначим эта области символом Л, а ’*’> Ин0™ . „„вариантные noeepnfib. лучше описать взаимодействия, опреж/с,'ец. да№С<Хр“Хеэяеме«ыЛТО ЫЛГ-^ Л.области: сосп^'? Д^ иемэтихобЛасгей.Вта содержа1цая повторяющием фрагмент остояшая из единой £ • до пока они нас не интересуют. ' * рас ! 1.14. о имеется И Л-областей, можно отследить нх взаимодей р‘ вселяя "ствие шеста Л-облаетеи. в том числе по граиицс 6л п.4 описано »“'M0“e“ ой „ нулевой областями называется зне<>ре* л' И л”. Эта граница [Crutchfield и Mitchell, 1994] утверждаете, зд a (embedded parade гг.. иданизм передачи информации (или сипзд^ , внедренные часты - это * областях. При СТОЛКНовении этих частнд реал больших- пространствеопераи11и. Поэтому поведение клеточных автомавд к>ти соответствующие л ^^ывающими элементами, представляющими собой обусловлено частиц ч взаимодействия. наборы областей, их границ, ч Таблица П 4. Каталог регулярных областей, частиц (границ областей), Леностей (а скобках) и взаимодействий, описывающих пространственно- временное поведение клеточного автомата на рис. 11.14, а. Запись Р-Л'Л’ означает, что р - ото частица, формирующая границу между регулярными областями Л' и Лг Регулярные области л°=о* Частицы (скорости) а-л’л’(1) у-ЛгЛ°(-2) П-Л’Л’(4/3) Взаимодействия Распад Реакция Аннигиляция л’=г р-Л°Л’(О) Й-ЛрЛг(1/2) Ц~Л’Лг(3) а->у+ц Ц+&-Ф, п+а—>у, g+y->a W-»®,. Y+S—»©0 Лг*(10001)* выделены Л-обласги с ин ЭМе₽джектная логика. представленная на рис. 11.14, а. Здесь личенные фрагменты на содеРжимь,м. а также пограничные частицы. Уяе- дренных частиц. В прав ^ИС' Демонстрируют логику взаимодействия двух вне- логику отображения соотв ВеРХНеМ показано взаимодействие а+5—>Ц, реализуют^ показано взаимодействие КОнФнгУРаЧин сигналов а и 5 в сигнал М Ниже содержится в табл. 1 ] .4 астип U+Y-»a. Более полное описание взаимодействия частин Итак, важным результат™ - с ние «етодав описания эмепч Раб°ТЫ 1СгШсМеМ и Mitchell, 1994] является каждом- из ЛО=Г,.ВЬ'"1Й в пространственно распределенных «ое взаимодействие элементов маимолействующих клеточных процессоров. Лока-пь- e°HHTCH к изучению локальных Предедяет и глобальное. Роль генетических алгоритм’ *о^бот«е информации на ПраВИЛ взанм°дсйств11я. которые в результате при»»^ и™ е е“ " № I ™ ШИХ "Р^анственно-временных интервалах. В “спользовань, ИДе„ 1С0 '' 2„ Р2КТСрНС1ики пространственно-временных о™1* -----ф Рмальных языков. 514 -------------------------- Часть IV. Машинное обучеН Puc. 11.16. Анализ эмерджентной логики для классификации плотности областей на рис. 11.14, а. Этот клеточный автомат характеризуется тремя A-областями, шестью частицами и шестью видами их взаимодействия, описанными в табл. 11.4. Области выделены с помощью нелинейного преобразования с 18 состояниями, описанного в [Mitchell и др., 1996] Результат эволюции клеточного автомата отражает качественно новый уровень поведе- ния, который отличается от низкоуровневого взаимодействг£я распределенных элементов. Глобальное взаимодействие частиц иллюстрирует сложную координацию, возникающую в результате набора простых действий. Применение генетического алгоритма для правил из- менения состояния отдельных частиц отражает процесс эволюции, реализующий новый уровень поведения, необходимый для эффективных эмерджентных вычислений. Значение работы [Crutchfield и Mitchell. 1994] состоит в том. что в ней с помощью ге- нетических алгоритмов продемонстрировано эмерджентное высокоуровневое поведение клеточного автомата. Более того, авторы предложили вычислительные средства описа- ния инвариантности, построенные на основе теории формальных языков. Продолжение исследований даст возможность изучить природу сложности: определить характеристики жизни и понять принципы формирования родов, видов и экосистем. 11.4. Резюме и дополнительная литература Основоположником развития генетических алгоритмов и биологического обучения стал Джон Холланд (John Holland) [Holland. 1975,1986]. В последней работе вводится понятие системы класснфнкзшп!. Анализ генетических систем содержится в [Forrest. 1990]. [Mitchell, 1996]. [Forrest и Mitchell, 1993а, 19936]. Формальный анаше генетических алгорит- мов и обучения проводится также в (Goldberg, 1989], [Mitchell, 1996]. [Koza, 1992,1994]. Как отмечено выше, в работе [Holland, 1986] впервые вводится понятие системы класси- фикации. Классификаторы позволяют определить общий подход к обучению. Аналогичные идеи развиваются в [Rosenbloom и Newell. 1987] и [Rosenbloom и др.. 1993]. Джон Коза (John Koza) — это основной исследователь в области генетического програм- мирования [Koza, 1992,1994]. Описанный в подразделе 11.2.2 пример использования генети- ческих алгоритмов для изучения третьего закона Кеплера предложен в [Mitchell. 1996]. глава 11. Машинное обучение на основе социальных и эмерджентных принципов
л „ гпчпана математиком Джоном Хортоном КОМь„ и ..Жизнь” широкую популярность после ее обсуадения ^<4 J™ Conway). °Д"“ан„е вычнслительной мощности конечных а8ТОМатов*»^ fierific X»X компьютерам. Большой вклад в эти исследования в„« корнями К первым впервые показал, что вычислительная MOUWocrb «** 4он Нейман, который факт ой машине Тьюринга. Большинство его ю " автомата соо«-;«Х [Burks, 1966,1970 и 1987]. Другие иссле^ результатов прелс«“““ 21Рош1Саш1, как на основе этих ранннх работ по конечним £ [Hightower. 1992], [Koza, ственной жизни. Вопросы искусственной жизни ИСсле2' томатам строится м £ ™1986] [Ackley и др., 1992]. Труды конференций, посвящ^ им также в работах собраны в [Langton, 1989, 1990]. ных проблемам пскус™ важность эволюционной теории в рщв„. В [Dennett, 1995] Друт^ теме посвящена работа {Gould, 1996]. ТИН философского мышл - концепция агентного обучения изложена в работ®, Краску описан а, ^разделе^ [Веп в L. ,0801 IMaes’ 1990] предложена модель распределенной обработки информации , ±\otoJX- св- дальнейшее развитие в работе [Hayes-Roth и др., 1993). Р, зулътаты, ^писанные в подразделе 11.3.3, базируются на работе (Crutchfield „ Mitchell, 1994]. П.5. Упражнения________________________________________________________ 1. Генетический алгорита! должен подаержи^ать п^одск в^прос^анств^вероятных^ком- "чи реш" Гп ““различныхгенетических операторов. 2. Вспомните проблему разработки представления W генетичес"Ра™₽^. решении задач из различных предметных областей. В чем зде ь Р тиеного порога? санной 8 3. Вернемся к задаче построения конъюнктивной нормальной формы, опи подразделе 11.1.3. В чем состоит роль количества дизъюнктов, укаЖ[ГК строение конъюнктивной нормальной формы в пространстве реше другие возможные представления и генетические операторы для этой зад ли выбрать другую меру качества? Нъюнк- 4. Постройте генетический алгоритм для решения задачи представимости в тивной нормальной форме. задачи 5. Подумайте над проблемой выбора соответствующего представления ^не. коммивояжера, описанной в подразделе 11.1.3. Определите другие возмо тические операторы и меры качества для этой задачи. 6. Постройте генетический алгоритм поиска решения задачи коммивояжера. 7. Определите роль представления, в том числе кодирования Грея, Для 0Ш странства поиска в генетических алгоритмах. Приведите примеры ДВУХ областей, в которых этот вопрос играет важную роль. к ^ор0 8. Познакомьтесь с теоремой схем Холланда [Mitchell, 1996], [Koza, 1"21[ “„чей»’1 схем описывает эволюцию пространства решений при использовании i ---------------Тл6УчеИИе Часть IV. Машинное оот 516
алгоритмов? Что утверждает эта теория относительно задач, не подлежащих кодиро- ванию битовыми строками? 9. Как алгоритм “пожарной цепочки” [Holland. 1986] связан с методом обратного рас- пространения ошибки? 10. Напишите программу, решающую задачу моделирования третьего закона Кеплера, описанную в подразделе И.2.2. Ц. Сформулируйте ограничения (упомянутые в подразделе 11.2.2) по использованию методов генетического программирования для решения задач. Например, какие ком- поненты решения не могут эволюционировать в рамках парадигмы генетического программирования? 12. Познакомьтесь с первыми описаниями игры “Жизнь” в журнале Scientific American. Назовите другие структуры искусственной жизни, подобные описанному в подразде- ле 11.3.1 планеру. 13. Напишите программу моделирования искусственной жизни, реализующую функцио- нальность, показанную на рис. 11.10-11.13. 14. В разделе 11.3 упоминаются исследования, ориентированные на агентов. Ознакомь- тесь с публикациями по этим вопросам. 15. Определите роль индуктивного порога в выборе представления стратегий поиска н операторов, используемых в моделях обучения из главы И. Является ли генетиче- ская модель обучения изолированной илн ее можно распространить на более широ- кие области? 16. Изучите глубже вопросы эволюции и эмерджентности. Прочтите и обсудите работы [Dennett, 1995], [Gould. 1996]. Глава 11. Машинное обучение на основе социальных и эмерджентных принципов 517

Часть V Дополнительные вопросы решения задач искусственного интеллекта Точность — это не истина... — Генри Матисс (Henri Matisse) Время настоящее и время прошедшее — это лишь настоящее для времени будущего, а время будущее содержится в прошедшем... — Т. С. Элиот (Т. S. Eliot), Бернт Нортон ... любой крупный результат является следствием длинной последо- вательности мельчайших действий. — Кристофер Александер (Christopher Alexander) Автоматические рассуждения и естественный язык В части V рассматриваются два важных приложения искусственного интеллекта: по- нимание естественного языка и автоматические рассуждения. Приступая к созданию ис- кусственного интеллекта, необходимо решить проблемы языка, рассуждений и обучения. Предлагаемые решения этих проблем основываются на средствах и методах, упомяну- тых в предыдущих разделах этой книги. В свою очередь эти проблемы оказали сущест- венное влияние на развитие самого искусственного интеллекта и его методов. Во введе-
..„тдества и недостатки слабых методов р0Ц1. части ПЮб^'^Хьзования таких методов обусловлена еложНо*3^ч k Х»- П1юбКМа стью описания конкретных знании о мире с п0М0Щь’"Рз. раЗВИ™С ЭКС"ерТНЫХ СИСТСИ и сильнык , 'Явления. Несмотря на Ус ,осбуются более общие подходы. На самом „ ’*• С уирзмсни» В самих эк 1с03даиию быть ны ° их Ме. «до». Многеобешыои^ р ,порея, (automated reasoning). 3^ т«от«^'аРаауЖ ”яс во многих важных областях, включая р 'Р“е' мы нашли свое ПР»М£ . яюшию „ доказательство корректности программ нктегрированнь^х се^£ ’ в£рВ^дрОГраммирования PROLOG. В главе 12 расематр^ косвенно, при “’^тематическими рассуждениями. вопросы. “юанн“ „ценных языков при решении задач искусственного ,Wre, Сложность „о.инами в частнОсти, для использования языка необход* векга обьясш™ Юностей и опыта. Успешное понимание языка требует ото,.,' большой обьем эн . ч£давеческой психологии и социальных аспектов. ’“‘“^Хтшш лопг.еск.к рассуждений и интерпретация метафор. Из-за еяоВДо. Тайности человеческого языка на первое место выходит проблема исследом. ОТ. 1елиа№нн» знаний. Попытки таких исследований увенчались успехом част,„. Н. основе знаний были успешно разработаны программы, понимающие естественный вык в отдельных предметных областях. Возможность создания систем, решающих про. блему понимания естественного языка, до сих пор является предметом споров. Методы представления, описанные в главе 6, в том числе семантические сети, сценарии и фреймы, играют важную роль в решении задачи понимания естественного языка. В по- следнее время для решения этой задачи привлекаются методы корреляционного анализа языковых шаблонов. Языковые конструкции — это не случайный набор звуков или слов. Их можно моделировать на основе байесовского подхода. В главе 13 будут рассмотрены синтаксические, семантические и стохастические методы понимания естественного языка. С широким распространением технологий World Wide Web и интенсивным использо- ванием механизмов поиска вопрос понимания естественного языка стал еще важнее. Общий поиск полезной информации в неструктурированном тексте, возможность резю- мирования информации, или “понимания” текста, — это важнейшие новые технологии. Теоретические основы программных средств, базирующихся на символьном представле- нии и стохастическом распознавании образов, представлены в главе 13. И, наконец, в части VI будут рассмотрены многие структуры данных, используемые при решении задач понимания естественного языка. В разделах 14.7 и 15.11 описаны се- мантаческне сети и фреймовые системы, а в разделе 14.9 — рекурсивный семантик®1 сетевой анализатор. В главе 16 обсуждаются некоторые существующие проблемы и "° имании языка, обучении и решении сложных задач. Автоматические рассуждения ак это получается, спросил этот проницательный человек, — когда мне приходит идея, я могу выйти за ее рамки и связать с другими. не содержащи- мися в ней, как будто эти идеи неразрывно связаны с первоначальной ? — Иммануил Кант (Immanuel Kant), Prolegomena to a Future Metaphysics Любое рациональное решение можно рассматривать как вывод, полученный на основе некоторых начальных условий... Следовательно, поведение рацио- нального человека можно контролировать, если задать ему фактические предположения, на базе которых он строит свое заключение. — Симон (Simon), Decision-Making and Administrative Organization, 1944 Доказательство — это искусство, а не наука... — Вос (Wos), Automated Reasoning, 1984 12.0. Введение в слабые методы доказательства теорем В [Wos и др., 1984] сказано, что система автоматического доказательства “применяет однозначные описания для представления информации, точные правила вывода для фор- мирования заключений и внимательно сформулированные стратегии для управления этими правилами”. Авторы добавляют, что применение стратегии к правилам вывода для получе- ния новой информации — это искусство. “Хороший выбор представления подразумевает использование обозначений, повышающих вероятность решения проблемы, и включение полезной, хотя и не самой необходимой, информации. Хорошие правила вывода это правила, удачно использующие выбранное представление. Хорошие стратегии это принципы управления правилами вывода, повышающие эффективность программы авто- матических рассуждений.” Отсюда следует что для построения систем автоматических рассуждений использу- ются слабые методы решения проблем. Они строятся на таком однородном представле- нии, как теория предикатов первого порядка (глава 2). теория хорновских выражении (раздел 13.3) или операторов разрешения (раздел 12.2). Правила вывода должны оыть • Дополнительные вопросы решения задач искусственного
«пзможности полными. В качестве общих стратегий прНМе_ согласованными в "° !“’'“ж8ДНЫе" алгоритмы поиска и. как будет видио из ПОИСК в ширину. В глуб . „„вдержки (set of support) и единичное пред„ вы. такие эвристики как возможность исчерпывающего поиска. кие (unit Р^"«>с °™ особенно эвристик для этих стратегии. - во многом „с^ ботка стратегии поиска а мое решение задачи будет найдено в и”'’’ ,0. Нельзя гарантировать, что^ паият„. Рамк^ допустимого времени И Р м_ „о важное средство, а также основа для си- СЛабЫеов аХмьГвывода,экспертные системы иа основе правил - это прим^ „Ь1Х методов. Систем сния мдач Даже если правила „ системе реализации слабых сильные проблемно-ориентированные эвристики " экспертной система стратегиями вывода (слабыми методами). "₽ nZb'рСХ. слабых методов были в центре вниылнил ученых в o6JIam, „с. ктсХ го интеллекте с моменте зарождения этой науки. Эти приемы зачастую о™0. ^области доказап^снеа теорем (theorem provtng). хотя автор предпочитает более Хее название - автоматические рассуждения (automated reasomng). В начале этой главы (раздел 12.1) будут рассмотрены один из первых примеров автоматических рассу. ждений - система для решения задач общего вида General Problem Solver, а также ис- пользование анализа целей и средств (means-ends analysis) и таблиц отличий (difference tables) для управления поиском. В разделе 12.2 представлен важный результат в области автоматических рассужде- ний — система доказательства теорем на основе резолюции (resolution theorem prover). Будет описан язык представления, правило вывода, стратегии поиска и средства извле- чения ответов при доказательстве теорем разрешения. В качестве примера рассуждений на основе хорновских выражений в разделе 12.3 описан механизм вывода для языка PROLOG и показано, как этот язык реализует философию декларативного программиро- вания с помощью интерпретатора, основанного иа доказательстве теорем разрешения. В заключение этой главы (раздел 12.4) приводятся краткая информация о естественной де- дукции, решении уравнений и более сложных правилах вывода. 12,1. Система решения общих задач и таблицы отличий Система решения общих задач GPS (General Problem Solver) [Newel] и Simon, 19636], [Ernst и Newell, 1969] стала результатом исследований Алана Ньюэлла (Allen Newell) и ер ерта аимона (Herbert Simon) из института технологий имени Карнеги. Предшест- веннице» этой системы можно считать более раннюю компьютерную программу LT X1 eOr,S0 tNeWe11 И Simon’ 1963о] С помощью программы LT были доказаны мно- Пп кпР"ве«е в [Whitehead и Russell, 1950]. LT ™ ° системам Решения задач иа основе слабых методов, в программе также разраб уНИ^Ицированное представление и семантические правила вывода, а сом поиска решения^ пшГ СТраТ!Г“Й или эвРистических методов управления пронес medium) использовано Гр3мме LT в качсстве средства представления (represen выступают подстановка ВЬ1сказьгваиий (раздел 2.1), а в роли правил вь» Подстановка позволяет замен'°П)’ (replacement> и открепление (detachmen ставляющем собой аксип ить лю®ое вхождение символа в предположении, Р аксиому „ди теорему, зшедомо истиииым выра^нисм Например. Д полнителызые вопросы решения задач искусственного интеллект
выражение (BvB)^S вместо В можно подставить —^А и получить Замена позволяет использовать вместо выражения его ную форму. Например, при логической эквивалентности ражение -iAv-iA можно заменить А—>_1д. определение или выражений -AvB выражение эквивалснт- и А—>8 вы- Открепление - это правило вывода, которое в главе 2 было названо правом мо- дус поненс. в программе LT эти правила вывода были использованы для поиска в ширину при доказательстве теорем. Программа пытается найти последовательности операций, при- водящих к заведомо истинным аксиомам или теоремам. В исполняемом модуле LT реа- лизованы четыре метода. 1. Метод подстановки напрямую применяется для текущей задачи, чтобы привести ее к известным аксиомам и теоремам. 2. Если этот метод ие приводит к успешному доказательству, используются все воз- можные открепления и замены, и для каждого из результатов снова применяется метод подстановки. Если получить доказательство теоремы не удается, то все эти результаты добавляются в список подзадач (subproblem list). 3. Затем для поиска новой подзадачи, решение которой обеспечивает доказательство исходного утверждения, используется метод цепочки, учитывающий транзитив- ность импликации. Таким образом, если для задачи а->с получено Ь^с, то в каче- стве новой подзадачи выбирается a—>b. 4. Если первые три метода ие приводят к ожидаемому результату, то система выби- рает следующую подзадачу из списка. Эти четыре метода применяются до тех пор, пока не будет найдено решение, ие ис- черпается список подзадач, память или время, выделенные для решения задачи. Таким образом, система LT выполняет поиск в ширину в пространстве задач. В исполняемой программе подстановка, замена и открепление выполняются в рамках процесса проверки соответствия (matching process). Допустим, необходимо доказать утверждение р—>(q^p). В процессе проверки соответствия сначала выявляется одна из аксиом p^(qvp) как наиболее соответствующая в терминах различия для данной облас- ти определения (в данном случае в обоих выражениях совпадает основной логический оператор —>). Затем при проверке соответствия устанавливается идентичность левых операндов основного логического оператора обоих выражений. И, наконец, определяется различие правых операндов. На основе различия между операторами —> и v можно пред- ложить очевидную замену для доказательства теоремы. Процесс проверки соответствия помогает управлять поиском при реализации всех подстановок, замен и откреплений. Ои гораздо более эффективен, чем простои метод проб и ошибок, что обеспечивает ус- пешное решение задач с помощью программы LT. Рассмотрим эффективность проверки соответствия на примере доказательства теоре- мы 2.02 из книги [Whitehead и Russell, 1950): p->(q->P)- В процессе проверки соответст- вия в качестве замены находится аксиома p—*(qvP)- Подстановка -к? вместо q приводит к доказательству теоремы. Проверка соответствия, управление подстановкой и правила замещения приводят к прямому доказательству теоремы без привлечения поиска в про- странстве других аксиом или теорем. 523 Глава 12. Автоматические рассуждения
Дм вГОрого примерз постараемся с помощью программы LT показу - » "Р^'ссс "pUBC₽K" СООТВС1СТВ"Я ВШ,,и,ЯСТСЯ На‘,лучш« аКСН0Ма * ПЯТ» ВОЗМОЖНЫХ. , (^Н-А - подстановка -.А вместо Д. 3 М_,^Д)-»-А - имена v или - на 4. (p-.-'P'l-^P - подстановка р вместо А. ЧТОп^п LT доказывает эту теорему на основе пято аксиом примерно за деся1ь и. ^нз реальное доказательство выполняется за два этапа и не требует поиска. На первом X в пХс "проверки соответствия выбирается самая подходящая аксиома, поскол^ ХпмГ наиболее близка к утверждению, которое требуется доказать: выр№’ Затем вместо А подставляется -А. Этим определяется второй (п „0. следний) эта», который приводит к замене v на Программа LT не только является пер- вым Примером системы автоматических рассуждении, но и демонстрирует роль стратегий поиска и эвристик в средствах автоматического доказательства теорем. Во многих случаях LT за несколько шагов приходит к таким решениям, которые с большим трудом можно найти только путем полного перебора. Некоторые теоремы не решаются с помощью про- граммы LT, поэтому авторы программы внесли некоторые предложения по ее улучшению. Примерно в это же время исследователи из технологического института Карнеги (Carnegie Institute of Technology), а также специалисты из Йельского университета [Мооге и Anderson, 1954] начали высказывать свои идеи о способах решения логических задач. II хотя их основной целью было изучить процессы человеческого мышления, ре- шающие этот класс задач, они сравнили принципы решения задач человеком с подхода- ми, реализованным» в компьютерных программах наподобие LT. Это положило начало ново» научной области, получившей современное название психологии обработки ин- формации (information processing psychology). Данная наука пытается объяснить наблю- даемое поведение организмов с помощью прихштивноЙ программы обработки информа- ции, моделирующей такое поведение [Newell и др., 1958]. Это исследование также стало одной из первых работ в области науки о мышлении — когнитологии (cognitive science), о которой речь пойдет в разделе 16.2 [Luger, 1994]. Пристальное изучение этих первых программ показало существенные отличия чело- веческих подходов к мышлению от компьютерных реализаций наподобие LT. В челове- ческом поведении прослеживается существенная роль анализа целей и средств, в кото- ром методы уменьшения различий (средства) тесно связаны с конкретными отличиям» целями . о ним можно проиндексировать операторы уменьшения различи». пкю ассмотрНм простейший пример. Если начальное утверждение имеет вид p->Q. а це ciiunni еТСЯ то Р^ниие состоит в том, что в исходном выражении участвует левоч__ ,В делсвом v (а также в исходном утверждении есть выражение р, а в це а также удаления отлнчин Должна содержать различные способы замены -> на^ До полного устранения отл|Я ~&КИе пРеобРазования необходимо поочередно приме У^аюТнХ^ н «елеВЫХ Утверждениях »^ няющий эти отличия. Такая^о^ таблНцы выбирается оператор, част,1Ч^аНСния отличий. При эТОм Може_ Р ЦСдура применяется рекурсивно до полного устр потребоваться применение различных методов поиска. 524 вопросы решения задач искусственного инте
в среднем столбце табл. 12.1 [Newell и Simon 196W „„ вил преобразования для решения логических ,ani„ а представлены двенадцать ира- мендации по их применению. ' ° пРавом столбце приводятся рско- Теблица 12.1. Правила Прео6рязоввниядлялоп<1)ее[ N9n/n Правило преобразования Рекомендации по примамаамЭ . л . д _ь д. л Z--------------— ---------- 1 А В->В А А^В-^А Применяется, если А и В - два основных выражения 2 3 А'В->-В~>-А А А^А A vA <->vA Применяется, если А и 8 — два основных выражения Применяется только к основному выражению 4 A tB Cy^A В) С A v(SvC)<->(A vB)vC Применяется, если А и АэВ — два основных выражения 5 6 AvB<->-(-A—В) AziB^-AvB Применяется, если А эВ и ВэС — два основных выражения 7 A-(BvC)<-»(A-8)v(A С) Av(B-C)o(AvB>(AvC) 8 A B->A AB-iB Применяется только к основному выражению 9 A+AvX Применяется только к основному выражению 10 Применяется, если А и В — два основных выражения 11 A ] ? —> В A^>B\ Применяется, если А и АэВ — два основных выражения 12 AZ)B] A „ рДзС BdC Применяется, если АэВ и ВэС — два основных выражения В табл. 12.2 представлено доказательство, сгенерированное человеком [Newell н Si- mon, 19636]. При этом человеку, не имеющему опыта в решении задач формальной ло- гики, были предоставлены правила преобразования из табл. 12.1. Требовалось преобра- зовать выражение (Я=>->Р)е(-.ЯэО) к виду -<-«ОР). В обозначениях из главы 2 символ - обозначает —• обозначает л,аэ-------->. В табл. 12.1 символ —* или <-> обозначает кор- ректную замену. В правом столбце табл. 12.2 указаны правила из табл. 12.1, применяе- мые на каждом этапе доказательства. Таблица 12.2. Доказательство теоремы на основа исчисления высказываний № п/п Последовательность преобразований Применение правил 1 (Яэ-Р)(~ВэО) ~i~QP) 2 (~Rv-P)(RvO) Правило 6 применяется к левой и правой части 1 3 (~Pv-P)-(~PoO) Правило 6 применяется к левой части 1 4 Рэ-Р Правило 8 применяется к 1 5 -FK-P Правило 6 применяется к 4 елк Глава 12. Автоматические рассуждения
№п/п Последовательность преобразовании 6 -R=>Q 7 flvO 8 (-rv-phfnoi 9 P^-R 10 -QdR 11 PdQ 12 -PvQ 13 -(P-Q) 14 -(-QP) ---------------------------------^2222^., Применение правил Правило 8 применяется к 1 ‘ Правило 6 применяется к 6 Правило 10 применяется к 5 и 7 Правило 2 применяется к 4 Правило 2 применяется к 6 Правило 12 применяется к 6 и 9 Правило 6 применяется к 11 Правило 5 применяется к 12 Правило 1 применяется к 13. Что и требовалось доказал R паботе [Newell и Simon, 19636] стратегии решения задач человеком названы проход», м,еньиени ротагай. а обшил процесс использования преобразовании для уменьшения рад. U в конкретной задаче - „елей а средств. Алгоритм.выполнения этого анализа Z™. название свстыы решет* общих задач GW (General Problem Solver). На рис 12.1 показаны схема функционирования и таблица связей для GPS. Требуется преобразовать выражение А в выражение В. Для этого сначала необходимо найти разли- чие D между А и В. Во втором блоке первой строки решается подзадача — уменьшение D. Третий блок указывает на то, что процедура уменьшения различия является рекурсив- ной. Уменьшение различий выполняется во второй строке, где для D выбирается опера- тор Q. На самом деле список операторов формируется на основе таблицы связей. Опера- торы из этого списка последовательно проходят тест применимости (feasibility test). В третьей строке на рис. L2.1 используется нужный оператор н уменьшается О. Используемая в GPS модель решения задач основана на двух компонентах. Пер- вый— описанная выше общая процедура сравнения двух состояний н уменьшения их различий. Второй— таблица связей (table of connections), описывающая взаимосвязи между существующими различиями и конкретными преобразованиями, применяемыми для нх уменьшения. Таблица связей для 12 преобразований, описанных в табл. 12.1, по- казана на рис. 12.1. Для уменьшения различий в алгебраической форме при решении за- дач наподобие ханойских башен или моделировании более сложных игр, таких как шах- маты, могут применяться другие таблицы связей. Многочисленные применения системы GPS описаны в [Ernst и Newell, 1969]. Структурирование процесса уменьшения различий для конкретной предметной области помогает организовать поиск в пространстве состояний. Эвристический или приоритетный порядок уменьшения различий неявно определяется порядком преобразований на основе таб- зомниГТУ01 огласно ЭТ0А,У порядку обычно сначала выполняются более общие преобра- специал’П||Рованные. Зачастую при определении порядка преобразовании CPSНИ”ИПСрТ0В Предметной области. Одним иэ них crann°<:,lyaaUIa талчком для развития исследований во многих направления* ~Юве= “ТИИе ~ ‘->— 0 интеллекта дая анализа целей и средств были замене шения зада_4' В частности, используемые в GPS методы точную модель обработки СИ™МОЙ логического вывода, представляющей собой темах правила вывода исполь ’PMaU™ чеЛовеком (глава 16). В современных эксперты* о с зуются вместо отдельных элементов таблицы отличий GP$’ Д мнительные вопросы решения задач искусственного интеллекта Целы применить оператор О к объекту А Тест на применимость (предварительный) для описанной логической задачи: Совпадает ли основной логический оператор (т.е. А-В -> в хуже, чем Р-,0)? Не слишком ли велико выражение (т.е. (4 .-ВИД vC) A v(B-C] хуже, чем Р’О)? Не является ли оператор слишком простым (т.е. А -» А* А применимо к любому выражению)? Удовлетворяются ли второстепенные условия (например, правило 8 применимо только для основного выражения)? Таблица связей Добавить термы Удалить термы Изменить логический оператор Изменить знак Изменить знак операнда Изменить группировку Изменить положение Символ ’X" означает применимость некоторого варианта правила. Система GPS выбирает соответствующий вариант Рис. 12.}. Схема функционирования и таблица связей для системы GPS Методы GPS получили свое развитие и в других интересных направлениях. Так, вместо таблицы отличий в системах STRIPS и ABSTRIPS стали использовать таблицы операций (operator table) для планирования (planning). Планирование — это важный аспект управле- н,*я роботами. Чтобы решить задачу', например, перейти в другую комнату и принести не- который предмет, компьютер должен разработать план, определяющий действия робота. Сначала необходимо положить предмет, который робот держит “в руках”, затем подойти к Авсрн, выйти из комнаты, найти нужную комнату, войти в нее, подойти к объекту и т.д. При Глаеа 12. Аатоматическиерассухщения 527
STRIPS (Stanford Research Institute Problem So[v формировании планов аналогом таблицы отличи» GPs дуется raft»™ W . Каждой операции (прим.ш.виому дсйствию « Nilsson, 1971, 1972]. [S^1; 1 едаа1овий, анал„Г11ЧНЫХ тесту применим^) в этой таблице “огаетс™,Уй таюке содержи списки добавления и удаления, с по1? “ Р„с. 12.1. Таблица операции № „осле „ЫПОТНСНия операций. Система планЛ* которых описана в разделе 7.4. а ее реализация на языке PROLoS’ НИЯ, подобная S1KK O. оу. детрассмотрена в разделе1рассуждений в облаете искусственного иж». Итак, первыми модс™1'1 Theorisl дд-, „ General Problem Solver (GPS). В этих “ леки являются.гистемъ. Log, м здач ,Юпользовано унифицированное предсХ? мах реализованы слабы стратегии применения них правил. '>П1 же , — <- согХекном и мощном аппарате автоматических рассуждений. 12.2. Доказательство теорем методом резолюции________________ 12.2.1. Введение Резолюция - это один из приемов доказательства теорем в области исчисления высказы- ваний или предикатов, относящийся к сфере искусственного интеллекта с середины 60-х го- дов прошлого столетия [Bledsoe, 1977], [Robinson, 1965], [Kowalski, 19796]. Резолюция-эм правило вывода используемое для построения опровержении (refutation) (подраздел 12.2.3). Важным практическим применением метода резолюции, в частности при создании систем опровержения, является современное поколение интерпретаторов языка PROLOG (рис. 12.2). Принцип резолюции (или разрешения), введенный в работе [Robinson, 1965], описи- i вает способ обнаружения противоречий в базе данных дизъюнктивных выражений при минимальном использовании подстановок. Опровержение разрешения — это способ до- казательства теоремы, основанный на формулировке обратного утверждения и добавле- нии отрицательного высказывания к множеству известных аксиом, которые по предпо- ложению считаются истинными. Затем правило резолюции используется для доказатель- ства того, что такое предположение ведет к противоречию (доказательство от обратного). Поскольку в процессе доказательства теоремы показывается, что обратное утверждение несовместимо с существующим набором аксиом, исходное утверждение должно быть истинным. В этом и состоит доказательство теорем. Процесс доказательства от обратного состоит нз следующих этапов. 1. Предположения или аксиомы приводятся к дизъюнктивной форме (clause form) (подраздел 12.2.2). К набору аксиом добавляется Отрицание доказываемого утверждения в дизъюнк- тивной форме. 1 ют™кХС" ”ВМЮ™Ое разРсшенне этих дизъюнктов, в результате чего получ»- , _ ованные на них дизъюнктивные выражения (подраздел 12.2.3). 4. Генерируется пупое выражение означающее противоречие О том, чтоотоицан™’0 ваННЫе"“«учения пустого выражения, свидетельству»1 W ,UaH„e01T„U^„a-iiCT.IHHo (подраздел 12.2.4). Д полнительные вопросы решения задач искусственного интеллект резолюция — это согласованное правило вывода (см. главк „ ся полным. Резолюция является полной в смысле опровержения, т.е. если в наборе” ы' называний имеется противоречие, то „а основе этого набора всегда можно сгХро- ать Ш,И НУЛСВ°С “‘"|Ц'жение. Этот вопрос более подробно обсуждается по Х анин существующих стратегии построения опровержений в „одрХ.е 12 24 Z, доказательства от обратного требуется чтобы аксиомы и отрицание исходного У,Х жаенИЯ были приведены к нормальной дизъюнктивной форме (clause form) В дизъюнк- тивной форме логическая база данных представляется в виде набора дизъюнкций, или литералов (literal). Литерал это простейшее выражение или его отрицание. наиболее типичная форма резолюции, получившая название бинарной резоноиш (binary resolution), применяется к двум выражениям, одно из которых является литера- лом, а ДРУ14^ — ег0 отрицанием. Если литералы содержат переменные, то их необходи- мо унифицировать и привести к эквивалентному виду. Затем генерируется новое выра- жение. состоящее из дизъюнктов всех предикатов этих двух выражений, за исключением I этого литерала и его отрицания, которые считаются "вычеркнутыми”. ! Прежде чем перейти к более строгому описанию этой методики в следующем разде- ле, рассмотрим простейший пример. На основе принципа резолюции докажем утвержде- ние, аналогичное полученному с помощью правила модус поненс. При этом ставится за- дача не показать эквивалентность правил вывода (принцип резолюции на самом деле яв- ляется более общим, чем правило отделения модус поненс (композиционное правило)), а лишь познакомить читателя с этим процессом. Докажем, что утверждение "Фидо смертен” следует из утверждений "Фидо — соба- ка” “Собаки — это животные” н “Все животные смертны”. Преобразовывая этн предпо- ложения в предикатную форму и применяя правило отделения, получим следующее. 1. Собаки — это животные: V(X)(cfog(X)-»an/ma/(X)). 2. Фидо — собака: dog(fido). 3. На основе правила отделения и подстановки {fido/X} получим: animal(fido). 4. Все животные смертны: V(Y)(animal(Y)-^die(Y)). 5. На основе правила отделения и подстановки {fido/Y} получим: die(fido). По принципу резолюции этн предикаты необходимо преобразовать в дизъюнк- тивную форму. Предикатная форма V (X) (dо g (X) —> а п (m a I (X)) dog(fido) V(Y)(animal(Y)-*die(Y)) Запишем отрицание целевого утверждения “Фидо смертен . ~^die(fido) -idie(fido) Выполняя резолюцию с использованием обратных Х^нщь^т юнктивные выражения, представленные на рис. 12.2. Э ПР создание.^ конфликта (clashing). ^u„. Пи енмволизиру- Символ I на рис. 12.2 означает пустой дизъюнкт или ^0™в ч11вых высказыва- « конфликт предиката и его отрицания, т.е. наличие (операций унифика- ки" в пространстве дизъюнктов. Последовательность подстановок р Дизъюнктивная форма -it/og(X)van/ma/(X) dog(fido) -£nimal(Y)vdie(Y) Глава 12. Автоматические рассуждения 529
„„„„едения предикатов к эквивалентной форме, позволяет „ j шт) иримедаемы. для пР которых целевое высказывание истинно. На„„ гвееяго™"”- алгоритм, представляю . “елюъ ^№,еюн *0т0р„с существо, следует построить отрИ1ан(и ^ер, ! „0 приведению набора предИкаТОв к ДИЗЪ1ОНГ°ОН .«^Домтель ==.=^”= о СКО№^ОГУГ 6‘’1ТЬ ^Дчены некого'''"01' исход«ому множеству ‘ ско®мизация ограничивает П,„ Р ааикть. »нтепппега„„„У квантором существования (Char- ..’Можиые полетам—- пнэъюикгивиой формы для опровержения I 12.2.2. Построение ДМ ! разрешении 6 ванм всех операторов базы данных, описыа ' МеТОдр=здаюЩ™ смзан° С тем' ™ Р^ВДв -- Ж1 спуздаю. к приводящая к создан.® дизъюнктов. Такая форма одаряю» «аа п“Р°и™ гезеТСя конъюнкцией дизъюнктов (conjunction of disjuncts) ,,р-.сгл»:«><« базы „—голоданию все выражения в базе данных оЯЙОВре|ВД1 Эго конъюнкция, поскольку> _ эт0 дазъюиКцИЯ, поскольку каждое выриСН11е :.=== всю бюу ”- ^0X^w»^-n,'na'(y,vd'e(y)’A<do9<,,do’’- к этому выражению следует добавить (с помощью конъюнкции) отрицание целевого i в даном -.dio(tido). Таким образом, база данных описывается m | Х> дизъюнктов, а операторы конъюнкции можно опустить. nrfog(X) V amma/(X) animaf(Y) v die(Y) dog[fdo) <tog(Y)vdie{Y) {fido/Y} die(fido) die(fido} ^^Док^ I рассмотрим алгоритм, ,„„Щйй со6ой I приведению набора предикатов к дизъю. “вид. > 1,0 Рчт0 такие преобразования можно-— .,а...... ; ’“даажеиий в области теории . гер будет Только в том с,1уч:":' ссля ис-™"“: множество ?дизъюнктивная форма не является — - _ —и-тивым. > 1 аикатов, поскольку в ней могут быть утрачены 11™,^""°" 1кход11<!му множеству | JJ’’ связано с тем, что сколсмизация ограничивает вотмоим^ аС'К™ интеРп₽е™»»и. „сииых. связанных квантором существования (Chang >, Lee, l97^"°SaTnp>XX храияегся значение нстнниоетн выражений. Следовательно, если а исходном «ноже™ „;едйто» есть противоречие, то оно остается и в дизъюнктивной форме. Такие", „азоваиияие нарушают полноты доказательства опровержения Проиллюстрируем процесс приведения к конъюнктивной нормальной форме на конкрет- ном примере и дадим краткое пояснение каждому из шагов. Эти пояснения не претендуй™, роль доказательства эквивалентное™ преобразований для теории предикатов в целом. В следующих выражениях согласно принятым в главе 2 соглашениям прописными буквами обозначены переменные !W, X, У и Z), строчными буквами из середины алфави- та У, т и л) — константы и граничные значения, а начальными строчными буквами (а, Ь, с, d И е) — имена предикатов. Дм улучшения читабельности выражений исполь- зуется два типа скобок: круглые и квадратные. В качестве примера рассмотрим выраже- ние, где X, Y н Z — переменные, а / — константа. (VX)( 1а(Х)лЬ(Х)Н[с(Х. /)л(ЗГ)((32Цс(Л Z)Hd{X, П)]МVX)(e(X)). (i) 1. Сначала исключим оператор ~э с использованием эквивалентной формы, приведен- ной в главе 2: a—>bs~,avb. После этого преобразования выражение (i) примет вид (VX)b[a(X)Ab(X)]v[G(X, /)МЗП((32)Ьс(У, Z)]vd(X, Y))})4VX)(e(X)). (ii) 2. Теперь выполним преобразование операторов отрицания. Для этого можно вос- пользоваться формулам», описанными в главе 2, например такими. ЧЭХ)а(Х)=(УХЬа(Х) ->(vX)b(X)=(3X)->b(x} -i{aAb)s-lav-,b ~i(avb)s-»aA-ib Используя эти тождества, формулу (ii) можно привести к виду (VX)([-,a(X)v-,b(X)]v(c(X, /)л(ЗГ)((32)[-.с(Г,Z)]vd(X, V))])v(VX)(e(X)). (iii) 3. Теперь переименуем все переменные таким образом, чтобы переменные, ограниченные различными кванторами, .шелк различные имена (Эта операция называется стандарти- зацией переменных.) Как было указано в главе 2. имя переменной — это лишь обозна- чение "знакоместа’'. Оно не витает ни на истинность выражения, ни на общность вы- сказывания. Воспользуемся на этом шаге следующим преобразованием ((VX)a(X)v(vX)b(X)H(VX)a(X)v(vnb(H). Поскольку в (...) содержится два вхождения переменной X, переименуем ее Дующим образом ........ , (W)([-,a(X)v-,b(X)]v[c(X, /)л(ЗГ)((Э7)Ьс(У, Z)]vd(X. У))]МУ W)(e( )). (IV) мнительные вопросы решения задач искусственного интелл6^ *“—'——-- ' Авт°матическиб рассу)адеН1)Я 531
0 не изменяя порядок нх следования. Это м„ 4 переместим „Оточена возможность любого конфл „лп.,тъ поскольку в ..ч прцмет вид У именами переменных. °^b(X)]v(c(X, /)л(-с(Г. Z)vd(X, r»]ve(IV». (VX)(3n(3/>(vW(^ в „редваренной. или пренексной нОрЛ1алыюй На этом шаге получено выр^ юа1ГТоры вынесены в начало предложения. Р ‘е (prenex normal form). "°" существования с помощью процесса скопец 5 Теперь исключим все ква Р 1кпользуется квантор существования щ,я ’ (skolemizadon). В выршь содержит переменную, связанную квантором суЩе„ менной Г. Если выра* значнт, существует значение переменной 7 воины. например ,'КТИНно. Сколемизация позволяет определить 7аи ’ при котором необязательно показывает, как получить это значение. При это. метадом Пр11своения имени значению, которое значение. Она ли нскомым значением является к, то указанное выражс. должно сушест • /00(..„ к, ...). Итак, (3X)(dog(X)) можно заменить выпа ннеьюжно имсэть^ определенм х о5тначтт ХГното экземпляра X. При этом fido называется сколел.овской констану Snr consunt). Если предикат имеет несколько аргументов, и переменная, свя- «квантором существования, следует за переменными, связанными квантором всеобщности то она должна быть функцией этих переменных. Это отражено в процессе сколемизация. Рассмотрим выражение (УХ)(ЗГ)(гпоГЛет(Х, И>- Оно означает, что у каждого человека есть мать. Каждый человек — это перемен- ная X, а существование матери — функция от конкретно взятого человека X. В ре- зультэте сколемизации получим (VX}mother(X, m(X)}. Это означает, что у каждого X есть мать (значение т для этого X). Вот другой при- мер. Выражение (VX)(Vr)(3Z)(VtV)(foo(X, Y, Z, IV)) в результате сколемизации можно привести к виду (VX)(vr)(VlV)(foo(X, Y, f(X, Y), IV)). Связанные квантором существования переменные Y и Z находятся под квантором всеобщности переменной X (справа от нее), ио не под квантором всеобщности пе- ременной IV. Поэтому каждую из этих переменных можно заменить сколемовской функцией от X. Заменяя переменную Y сколемовской функцией f(X), a Z — gPO. формулу (v) преобразуем к виду <VX)(viV)([^a(X)v-,b(X)]v[c(X1 /)A(_1C(f(x), g(X))vd(X, f(X)))]ve(lV)>- (vl) После сколемизации можно перейти к п. 6, в котором просто удаляется префикс. сключим все кванторы всеобщности. К этому моменту (после п. 5) остались ли111 цУМеННЫ^ связанные кванторами всеобщности, и все конфликты переменю*1- ппл<1рНеНЫ В ° 3)’ ^вателыю, все кванторы можно опустить, поскольку л меннк^л ДОказательства предполагает выполнение утверждения для всеХ пе менных. Формула (vj) примет вид Дополнительные вопросы решения задач искусственного иителл
^a(X)v^(X)lv[c(X, />л(—.c(f(X), g(X>)vd(X, f(X)))lveW) 7 Теперь представим это выражение в виде конъюнкии V" пользуемся свойствами ассоциативности и -«г™, к ” л'т'к,нп™ Д™ ’того мс- „оМНим (глава 2), что ” дистР1’бутивности операций л и у. На- av(bvc)=(avb)vc, ал(ЬАС)=(алЬ)лс. Это означает, что операции л и v можно группиповатк п » прн необходимости можно воспользоваться ГПП“ 1)0 произвольным образом. “ 2. Поскольку выражение “ свои™™ дистрибутивности нз гяа- av(fc>Ac)=(avb)A(a vc). Окончательно выражение (vii) примет вид [^a(X)v-,b(X)vc(x, /)ve(W)]A[^a(X)v-,b(X)v-,c(f(X), g(X))vd(X, f(X))ve(W)]. (viii) 8. Теперь выделим каждый конъюнкт в отдельное выражение. Предложение (viii) бу- дет представлено в виде двух выражений -a(X)v-,b(X)vc(X, /)ve(IV), .. . —>a(X)v—,b(X)v-,c(f(X), g(X))vd(X, f(X))ve(lV). (ixb) 9. И, наконец, снова разделам переменные, т.е. присвоим переменным в каждом вы- ражении, сгенерированном в п. 8, различные имена. Это делается на основе приве- денного в главе 2 тождества (УХ)(а(Х)лЬ(Х))а(УХ)а(Х)л(УУ)Ь(Х). которое в свою очередь следует нз того, что имена переменных — это лишь обо- значения знакомест. Теперь, вводя новые имена переменных U и V. преобразуем формулы (ixa) и (ixb) к виду -xa(X)v-tb(X)vc(X, /)ve(W), (ха) -na(U)v-,b(U)v^c(f(U). g(U))vd(U, f(U))ve(l/)- (xb) Значение такой стандартизации станет понятно только после описания процедуры уни- фикации в процессе резолюции. Она сводится к поиску наиболее обшей унифицированной формы, обеспечивающей эквивалентность предикатов в двух выражениях, а затем ее под- становке вместо всех переменных с одинаковыми именами в рамках одного выражения. Так, если имена некоторых переменных совпадают, то в процессе унификации они могут быть переименованы с последующей (возможной) потерей общности решений. Описанный процесс используется для приведения любого набора выражений нз тео- рии предикатов к дизъюнктивной форме. При этом свойство полноты опровержения со- храняется. Проиллюстрируем процедуру резолюции, используемую для генерации дока- зательств на основе этих выражений. 12.2.3. Процедура доказательства на основе бинарной резолюции Процедура опровержения разрешения (resolution refutation) дает ответ на запрос или ГенернРУет новый результат путем сведения набора выражений к противоречию, пред- Лава Автоматические рассуждения
. ппотиворечяе возникает при попарной резолю. ПЬ1М вырз*'СНИСМ(' ? ш1Я не приводит к противоречию напря. ставленному^’^Ь1 данных. рез^ьвента (resolvent) - добавляется в резолюции в исчислении предикаГО8. 6щд»«»'“^яП, как "PO,,CXO’*L высказываний (без переменных). Рассмотрим pacSX- исчисления высказываний два родительских выр р1: a,va2v.. v ап, р2: b,vb.v...v .. ГД(. 1<Ил „ j<ysm в раудьгаю ....•- а^аЛ - у ' ’ гпстоит из дизъюнкции всех литералов двух родитель- Таким образом, резольвента состою »» д ских выражений за исключение^‘ прииципа резолюции. Допустим, что Простое рвссужленке• ^„м, чт0 одио из значений Ь илн ,Ь оба- av-Л и 6vc — даа ист ложно ibv-,b - это тавтология). Следовательно, значение зательно истинно, а второе — ложно (ov одного из литералов в выражении avc должно быть истинно. Выражение avc — это резольвента двух родительских выражений av-Ф и bvc. Рассмотрим теперь пример из области исчисления высказываний. Требуется полу- чить значение а на основе следующих аксиом (естественно, k—m=m—>i для всех пред- ложений / и т): st—Ьлс, Ь, С <—d л в, evf, dA-if. Приведем первую аксиому к дизъюнктивной форме. а«-Ьлс, ау-|(Ьлс), поскольку /->m=_,/vm av^bv-ic, по закону де Моргана. ражений ЬНЫе аКСИ°МЬ1 пР(1в°Дить не нужно, поэтому получаем набор следующих вы av-ibv-,c b, evf, d, -J. Доказательство по мето ‘Ю,<а3аН0 НаРИС' 12’3' СначаЛа К иаб°РувЫ|М пр№1ворсчне ’Сражения а. Символ I означает, что база данных 534 "ZZ-----------•—_____ CIb V’ ^°^^й1^льчь1е^ ----------------------------------- росы решения задач искусственного интелле^3 Рис. 12.3. Доказательство теоремы методом резолюции для примера из области исчисления высказываний Для того чтобы использовать бинарную резолюцию в исчислении предикатов, при ко- тором каждый литерал может содержать переменные, необходимо обеспечить эквивалент- ность двух литералов с различными именами fie реме иных или одинаковым постоянным значением. В подразделе 2.3.2 был определен процесс унификации, реализующий согласо- ванную и более общую подстановку для обеспечения эквивалентности предикатов. Алгоритм резолюции в исчислении предикатов во многом аналогичен этому же про- цессу для исчисления высказываний за исключением следующих моментов. 1. Литерал и его отрицание в родительских выражениях дают резольвенту только в том случае, если они унифицированы для некоторой подстановки а. Затем ст применяется к этой резольвенте до ее добавления к набору дизъюнктов. При этом требуется, что- бы ст была наиболее общим унификатором для родительских выражений. 2. Унифицирующие подстановки, используемые для поиска противоречий, обеспечивают связывание переменных, при котором исходный запрос является истинным. Этот про- цесс, получивший название извлечения ответа (answer extraction), будет описан ниже. Иногда для нескольких литералов в одном выражении существует объединяющая подстановка. При этом может не существовать опровержения для наборов дизъюнктов, содержа1цих это выражение, даже если этот набор является противоречивым. Например. Рассмотрим выражения P(X)vp(f(H)r -^PfVUjv^pf^Z)). ~ выражения можно свести лишь Не сложно заметить, что при простой резолюии То хть никакая подста- « ’^валентной форме иди тавтологии. а ие к противоречию- Цовка не сделает их противоречивыми. Дзва 12 Автоматические рассуждения 535
•менить фактори^Р^ выражений (factoring) Ер . РИ1у«Ш1И «одао , выражен”11 имеет наиболее общий униф„ В В "“3 можно заменить новым выражением, получи^ ПОДМН“*С1?“ 2) „ это выра*1""^ „сходное выражение, к которому ир„м (подрав" 2у ’’ (factor)- Ч>»КТОР -а, а затем удалены оставшиеся литералы н» каггбол« общего y“'t(X)vp(«n) можно унифицировать с помощью ПОДС”Я°' а лгдарда 8 "ыр”же остановку в обоих литералах и получим выра)к * пр"иер™ («П/Х>- Вичояним " 0 выражение его фактором р(Г(У)). Любая сиетевд f «>8 мгеМ ’‘’включаюшая факторизацию, является полной в смысле о„ро. Р( вожения РазРсшения’ ценных (выполняемую в п. 3 подраздела 12.2.2) М01йю XX СтанДарт“Х^^применение факторизации. Факторизацию также мо*ио Хрпре™^.''™ №1|юяа 8 1ТоиеяуРС гипеРРаолю,<ии ^XPerresolution), пассматриватъ как чаСТ г? д т описанной в подразделе разрешения из области исчисления предикатов. Рас. Приведем пример опров^ студента”. смотрим следуют) экзамен по истории и выигрывает в лотерею, — счастлив. Любой студент, который с: карательный студент может сдать все экзамены. Известно, что любой уда ьнЫХ студентов, но достаточно удачлив. Любой удач- ?иТХ°д^ лотсрею-сетв ли Джон? Сначала запишем эти предложения в предикатной форме. Любой «удею, который сдает экзамен по истории и выигрывает в лотерею. - еча„ VX(pass(X, Ыд(оеу)л>ип(Х. Ю«егу)-»Ларру(Х)). Известно, что любой удачливый или старательный студент может сдать все экзамены: \fX\/Y{study(X}vlucky(X}^p3ss(X, Y)). Джон не относится к числу старательных студентов, но достаточно удачлив: ->study(john)Alucky(john). Любой удачливый студент выигрывает в лотерею: VX(lucky(X)-^wfn(X, lottery)). Приведем эти четыре высказывания предикатов к дизъюнктивной фор- (подраздел 12.2.2). I. -xpass(X, history) v-, win (X, lottery) vhappy(X). 2. -rStudy(Y)vpasslY,Z). 3. -^lucky(W)vPass(W, V). 4. ^study(john). 5.lucky(jahn). 6- -'Hcky(U)vwin(U, lottery). Д авим к этим выражениям отрицание заключения в дизъюнктивной форм’ 7-^аР₽У(/ойл). ния 1фотивПорХТСНИЯ разрешения> показанный на рис. 12.4, отражает пронс и, следовательно, доказывает, что Джон счастлив. ^36 Чагти\/ п ' -------------------------—------- ополнительные вопросы решения задач искусственно!" В качестве последнего примера рассмотрим задачу “интересной жизни”. Все небедные и умные люди счастливы. Человек читаюп» - читать и является состоятельным человеком. Счастливы КНИГИ’ ~~ нсг;,уп Джон умеет Можно ли указать человека, живущего интересной жизнью?*™ *НВуг ннтсРесН0Й жизнью. Предполагается, что VX(s/nart(X)s-sfup/d(X)) и W(wea/^y(y)^poor(y)) Тогда получим VX( -npoor(X)Asmarf(X)-»happy(X)), у Y(read( Y)->smart( Y)), read{john)A->poor(john), VZ(happy(Z)~>exciting(Z)). =’^ЛООЛ(/)). pass(john, history) -I luckytV) v passtV. W) {john/V, history/W) luckyfjohn) luckyfjohn) " □ Рнс. 12.4. Опровержение разрешения для задачи "счастливого студента’ Отрицание заключения имеет вид “^(excit/ngtW)). "Ракетные выражения для задачи "интересной жизни” приводятся к дизьюнк- н°й форме следующим образом. '"aao a 12 д “------------- ‘ Авт°матические рассуждения 537
poor(X)A^smart(X)vhappy(X), ->read( Y)vsmart( Y), readijohn}, -poorljohn), -happy! Z} vexciting(Z), -,exciting(W}. Граф опровержения для этого примера показан иа рис. 12.5. excitingiW} -> happyiZ} v exciting(Z) {ZAV} -1 happyi^ PVZ) poorW *7 smart(X) -1 read(Y) v smarttr) {Г/Х} □ Рис. 12.5. Доказательство разрешения для задачи интересной Ж1 Поэтому в процедурах резолюции, которые относятся к слабым методам решений эа- очень большое значение имеют эвристики поиска. Подобно эвристикам, рассмот- ЛаЧ’ в главе 4, для каждой конкретной проблемы не существует строгого обоснова- РеНИнаИлучшей стратегии. Тем не менее существуют общие стратегии, позволяющие бо- НИЯ ся с экспоненциальным ростом числа возможных комбинаций. -1 read(Y) v exciting(Y) v рооЦУ) - poortjohn) {/оЛп/уГ^\ Рис. 12.6. Еще одно опровержение разрешения для задачи "интересной жизни 12.2.4. Стратегии и методы упрощения резолюции На рис. 12.6 показано отличное от представленного на рис. 12.5 дерево доказательст- ва для того же пространства поиска. Эти доказательства чем-то схожи, например, для ре- золюции они оба требуют выполнения пяти действий. Кроме того, в обоих доказательст- вах с помощью подстановки унификации получено, что Джон относится к числу ЛЮЛе1'- Прежде чем приступить к описанию этих стратегий, необходимо сделать несколько пояснений. Во-первых, основываясь на определении невыполнимости выражения из гла- вы 2, назовем набор дизъюнктивных выражений невыполнимым (a set of clauses is unsat- isfiable), если не существует интерпретации, доказывающей выполнимость этого набора. Во-вторых, правило вывода будем считать полным в смысле опровержения (refutation complete), если невыполнимость набора дизъюнктивных выражений может быть доказа- на с помощью одного этого правила. Этим свойством обладает процедура резолюции с факторизацией [Chang и Lee, 1973]. И, наконец, стратегия является полной, если на ее основе с помощью полного в смысле опровержения правила вывода можно гарантиро- ванно найти опровержение для невыполнимого набора дизъюнктивных выражении. Примером полной стратегии является поиск в ширину (breadth-first). живущих “интересной жизнью". системы Ре3°лЮ^« Однако такое сходство не обязательно. При определен устанавливал (подраздел 12.2.3) порядок комбинации дизъюнктивных выражени < -тИвЫра*е“'л,'!1. Это очень важный момент: если в пространстве дизъюнктов сушест у набор Б имеется N2 способов их комбинации даже на первом уровне. Результиру^ ,ОрМироваН’1 ражений тоже достаточно велик. Даже если 207с комбинаций приводят сТанет clU^ новых выражений, то на следующем этапе число возможных ком£>И? стр0 приВ°дП1 больше. Для больших задач такой экспоненциальный рост достаточно чрезмерной громоздкости вычислений. Стратегия поиска в ширину дизъюнктивных выражений Приведенный выше анализ сложности полного пеРвыполняется бинарная резолюция основывается на поиске в ширину. На первом ^щем этапе в пространство поиска всех дизъюнктов в пространстве выражении, а вь1ражения, сгенерированные при * исходным выражениям добавляются дизъюнкт* выражения, полученные ра- Резолюцни дизъюнктов. На п-м этапе обрабатываются все, а также исходное множество дизъюнктов. ^v.smamXJv^X) __________________________________________________________________Дв!^ 538 Часть V. Дополнительные вопросы решения задач искусственного Глава 12. Автоматические рассуждения 539
омУ разрастанИ1° пРостРаиства поиска, поэтому „пи привод к 0ЧС"Ь Ходило °на о6л“аеТ интсрсс"ь1М Такая больших ’«*ХируСТ нахождение кратчайшего пути « РИ11(,. не пригодна для Р эта оратепи ОДодним уровнем и не предполагает ника. добно поиску В ом эта® Р36"”,,,™, является полной, поскольку, если ее испощ,. НИЮ. поскольку Н данная ОД»11 обнаружит опровержение, если таковое кого углубленияЛром^ праиОД^*1» ширину является достаточно адекватной ^ед^тельно, м выше. На рис. 12.7 приводите, иллкадра. "" X в"^Х^ '№КРКИ,’Н Ж,’ЗИЯ ,™«п vsnartpn зовать д< существует- дДЯ I- ция стратегии p00fWv-’S"*rtW readtjohn) ->happtfZ) vexaWtZ) ^happwZ] smartUonn) u ехсЛлд(л) -i smart(jo/i.n) poor^jotoi) v excrt/ngfjohn) -i reartjohn) * poodX) happyt/o^'i v-rea^X) vejtaangpf) p^ortXjv-readW vpeppyfX) poorVohn) poortX) vhappH/'ohn) v“>smart(X) -> swia/TVaf,nl vtaPP^o^l ^resdfcAn) -smart^o^l P<xrtZ) happjdjohn) vhappfyoiw) vexatingijohn) v-ieatKZ) Puc. 12.7. Полное пространство состояний для задачи “интересной жизни", полученное при использовании стратеги поиска в ширину (для двух уровней) жжений- Необходимо лишь удостовериться в том что ппп,™ в^анИя целевого выражения, а также все их потомки. Р Р ВСС рсэояьвенты 01 Стратегия предпочтении единичного выражения Заметим, что в приведенных выше примерах резолюции противоречие возникает при „„явлении выражения, не содержащего литералов. Следовательно, ении результирующего выражения с меньшим числом литералов мы приближ мся к Терапии выражения, не содержащего литералов вообще. В частности, „ол^енне вы" ранения, состоящего из одного литерала илн так называемого единичного выражения (unit clause), гарантирует, что резольвента будет меньше, чем наибольшее родительское аыражение. Стратегия предпочтения единичного выражения предполагает максимальное использование единичных выражении в процессе резолюции. На рис. 12.8 эта стратегия проиллюстрирована для задачи “интересной жизни”. Совместное применение стратегии предпочтения единичного выражения и стратегии “множества поддержки” позволяет по- лучить более эффективную полную стратегию. Стратегия “множества поддержки” no^"”- ™ отличная стратегия поиска в больших про- LWos И Robinson'19681- -нножество.н поддержки Лл»пм $ ™° указать подмножество Т, называемое зольвент в квадом опровержении имем^Гк СТРате™И ,,еобх°лнмо. чтобы одна из ре- [ зать, что если 3 — невыпп™^ L - J редка из множества поддержки. Можно дока- гия множества поддепжки яи™ * ™ Наб°Р ДИЗЪкжктов> a S-T— выполнимый, то страте- I Если исходи"^ ”:Х “ГГ 8 “ - «Р- >' удовлетворяет любое множество 8 ЯВЛЯеггся согласованным, то этим требованиям Эта стратегия основывается на П0ддерЖкн’ включающее отрицание исходного запроса, ния приводит к противоречиво^' ЧТ° до^авление отрицания доказываемого выраже- поддержки ускоряет процесс пе-юЛз Пр0С1ранства возможных дизъюнктов. Множество ет собой отрицание цели или nonvu 1X1114 Пар ВЬ1Раженнй, в которых одно представля- На рис. 12.5 приведен ппимеп енное на е10 основе дизъюнктивное выражение. , “Десной жизни’’Рп^ИЯ С7рЗТеГИи “множества поддержки” для ре* тегад Уо',,ПРИ Наличии самого опровепжеми^7 МНО1кество поддержки опровержения су- ; шипи ДНИМ Н3 спос°бов пеаличя Р ННя^оио может составлять основу полной стр разлп^ ВСех 803М0*иых множГ 731(06 стратегии является выполнение поиска » °лее эффективный путь чем СТВ Поддержки опровержения. Естественно, это го* “ —-—- - поиск в ширину в пространстве всех дизъюнктивнь|Х 40 -------------------------------------— _______________-— -------— 6 вопросы решения задач искусственного интеллекТ0 Рис. 12.8. Использование Рис. ,2.8. Иеновое ^рмегии выражения д.зя решена задачи "интересной жизни г ма - это близкая стратегия, требующая, чтобы одна Стратегия единичного разрешения ~ эт вьгоажение. Это более строгое тре- из резольвент всегда представляла собой единич^ тения единичного выражения, бование, чем требования, выдвигаемые стратегией пр являегся полной. Для этого Можно показать, что стратегия единичного разре неполноты стратегии ли- ^ожно использовать тот же пример* что и для де вейной входной формы. ^яава 12. Автоматические рассуждения 541
ятеяя«» Р „,., предполагает прямое использование отрица„ сл,.теп.« '“*" й входной формы “Р д ю нового дизъюнктивного выраЖсн Стратегия Ока "д lU.аксиом. Полученный результат разрещаег. веля И исхолньо: акс цел„ с одной ния, которое в свою очередь рЩреШа. за счет резолюции оП> сотоання нового Р д0 получения пустого дизъюнкта. сяс^ой.»^мДЭтотПроиессп р0Д0Л^я вновь полученного выражения и аксиомы, ется с одн01’„Е реэолюш" *а задачи. Ранее полученные выражения На каждом эт® И 1|СХОДНОго утвержД используются две аксиомы вместе. Страте, сформулиро»™" ядаярезолюини.'^ полиой1 в чем иесложно убедиться на примере стве торицания цеЛИ’ ->av-ib, av-ib, -.avb, avb. Другие стратегии и методы упрощении Автор не ставил перед собой задачу исчерпывающего анализа всех стратегий или боль- шинства сложных приемов доказательства теорем на основе логического вывода и принципа резолюции. Они описаны в других источниках, в частности в работах [Wos, 1984] и [Wos, 1988]. Наша задача— познакомить читателя с основными средствами, разработанными дм этой области исследовании, и показать, как их можно использовать для решения задач. Про- цедура резолюции — это один из приемов, применяемых в слабых методах решения задач. В этом смысле резолюцию можно рассматривать как механизм вывода для исчисле- ния предикатов, требующий дополнительного анализа и осторожного применения раз- личных стратегий. В представляющих интерес больших задачах случайный выбор выра- жений для резолюции столь же бесперспективен, как и попытки написать хорошую ста- тью путем нажатия случайных комбинаций клавиш иа компьютере. Количество таких комбинаций слишком велико! решения задачи дизъюнкты (и ^рИМерь1 1Ривиально малы и содержат все необходимые для встречается довольно редко. Выше^1'0 Необхо,Щ1МЫе)- Такая ситуация в реальных задачах этой комбинаторной сложностью 8^° рассмо7рено несколько простых стратегий борьбы с ных соображений, относящихся к 3аверШенне Этог° подраздела приведем несколько важ- В разделе 12.3 будет показано как Р33ра °ТКе Систсм решения задач на основе резолюции- Минировании стратегий поиска мпу™ П0*1<яцью системы опровержения разрешения при ком- "Т в ™обесп -семантику- для логического программ^ При управлении поиском 0Ч(Ч,, разра^отки интерпретаторов для языка PROLOG, множества поддержки” со комбинировать стратегии, например, стране- ппя?\П°гК'Ка можно также встпа^/егиеи предпочтения единичного выражения. Эври* ПолоБ аКОе упоРЯдочсние наиблпТЬ В,Правила вывода (сортируя литералы слева № языке Р»п;еДВКОе ИСП0льзование стпТ Э^ективн° ДМ усечения пространства понс** KpHTep^e°G (раздел 12-3). ТСП1И играет важную роль в программирования лнои стороны, необходимообесп^” рСшения может служить общность заключен^ 7———-_______________ ЧКТЬ максимально возможную общность проме* _____________________-______________—— вопросы решения задач искусственного инте^6^
точных решений, поскольку это дает большую свободу их |ИИ Так, резолюцию дизъюнктивных выражений ттЛ ^пользования при резолю- связывання переменных, например(/ohn/X), необх^димоТтло^^^^’'^^11 свя .. апрмя С лпугой rrnnnu,, ооходимо отложить на максимально пЮДиее врем» С Другой если решение требует связывании конкретных пере- ^“^Xl H^Snfeehonf Р°ВаИ ™ ДЖО" М-илококком, подстановки {john/Person} н {staphllnfection} позволяют ограничить пространство поиска и повы- сить вероятность и скорость нахождения решения При выборе• «-П»™™ большое значение имеет вопрос полноты. В некоторых прнло- женнях очень важно знать, что решение обязательно будет найдено (если оно существу- ет). Это можно гарантировать, используя полные стратегии Повышения эффективности можно добиться за счет ускорения проверки соответст- вия. Можно исключить избыточные (н ресурсоемкие) операции унификации выражений, которые ие приводят к получению новых резольвент, индексируя каждое дизъюнктивное выражение по содержащимся в нем литералам и их положительным и отрицательным значениям. Это позволяет напрямую находить потенциальные резольвенты для любого выражения. Кроме того, некоторые выражения необходимо исключить сразу же после их получения. Не следует рассматривать тавтологии, поскольку они никогда не могут при- нимать ложное значение, и не дают новой информации для получения решения. Еще одним типом выражений, не несущих новой информации, являются так назы- ваемые категоризированные (subsumed) выражения — частный случай уже существую- щего более общего выражения. Например, выражение pfjohn) не информативно в про- странстве, где уже существует выражение VX(p(X)). В этом случае p(john) можно опус- тить без потерн общности. Это даже полезно, поскольку количество выражений в пространстве уменьшается. Аналогично выражение р(Х) относится к категории p(X)vq(X). Частная информация ничего ие добавляет к уже существующей общей. И, наконец, включение процедур (procedural attachment) позволяет без дальнейшего поиска оценить или обработать любое выражение, которое может дать новую информа- цию. Оно основано на принципах арифметики и состоит в сравнении атомов или выра- жений либо “запуске" любой другой детерминистской процедуры, добавляющей в про- цессе решения задачи конкретную информацию или ограничения. Например, можно ис- пользовать процедуру для вычисления связывания переменной при наличии для этого достаточной информации. Такое связывание переменной ограничивает возможные вари- анты резолюции и приводит к усечению пространства поиска. Теперь рассмотрим, как в процессе опровержения можно извлекать ответы. 12.2.5. Извлечение ответов в процессе опровержения Примеры, для которых гипотеза истинна, представляют собой подстановки лм ^ис- ка опровержения. Следовательно, сохраняя информацию о подстановках ’ сделанных при опровержении разрешения, можно получить данные л нз_ вега. В этом подразделе будут рассмотрены три таких примера и м влечения ответов из опровержения подлежащее доказательству за- Метод записи ответов очень прост. Берется ис од гпелаиная в процессе учение и к нему добавляется каждая Л-ч’етчиком” всех сделан- резолюции. Таким образом, исходное заключен с компьютерной реализации это Ых в процессе резолюции подстановок унификации. Р ОПр0вержеиия сущест- Л|ожет потребовать увеличения числа указателей, если пр ого пути решения пона- несколько вариантов выбора. Для получения альтернатива те у Лааа *2, Автоматические рассуждвния 543
механизм >прамен<«- пример возврата. Однако при аккура^ добитая механизм > можно сохранить. 3"p°n0'XS нккозько примеров. На рис. 12.5. иллюстрирующем докам 2=Za««a. живущего интересной жизнью, использованы лодстанО] *Х°Хл<™.™ные на рис. 12.9. Если сохранить исходную цель и ^Тв^е^ию асе подстановки опровержения, мы получим ответ на во„рос. ™ человек живущий интересной жизнью. № пне Г 9 показано, что с помощью опровержения разреше- ния можно не только доказать, что утверждение “никто не живет интересной жизнью” ложно, но и определить, что “счастливым” человеком является Джон. Это обший результат, в котором под- ;льСТВо су ПГ1‘"вки УЧ*. “РИмещщ к -J Этот Й4Ц I Требуется найти значение W, цанием пели является предложен -.gpljohn, IV). at(fido, Z) при котором gpljohn, W) или 3(W)(gp(john, ИМ Отри- ие —3(M/)(gp(john, W}) или atlfido, Z) -’«Volm,X)vaWdo,X) становки унификации, приводящие к опровержению, совпадают с выражениями, позволяющими полумиль значения, при которых исходное требование является истинным. Рассмотрим еще один пример, связанный с простой историей. exciting^ PW) | at(fido, X) {Itbrary/X} а фор л, X) в„. . } atijohn, library) Собака Фило идет туда, худа идет ее хозяин Джон. Джон — в биб- лиотеке. Где Фидо? Сначала представим эту историю в виде выражений исчисле- ния предикатов и сведем нх к дизъюнктивной форме. Предикаты имеют вид excrting[X) {Ш} j excitingly) □ поиска Фиоо at{john, X)->af(f/Po, X), at(john, library). Дизъюнктивные выражения -at(john, Y)vat(fido, Y), atljohn, library). Отрицание заключения имеет вид fyohn/Y) | excitingljohn) " i excitingljohn) at\fido, library) Puc. 12.10. Процесс извлечения ответа для задачи В процессе приведения указанных выше предикатов к дизъюнктивной форме для оп- ровержения разрешения квантор существования в первом предикате "У каждого челове- ка есть родитель’ требует построения сколемовскон функции. В данном случае она строится достаточно просто: нужно взять конкретное значение X и найти для него роди- теля. Функцию нахождения предка для X назовем ра(Х). Для Джона это будет его отец или мать. Для данной задачи дизъюнктивная форма предикатов будет иметь вид: р(Х, ра(Х)). -!Р(И/, У) v^p(y Z)vgp(iv, Z) -'9p(john, I/). Рис. 12.9. Подстанов- ки унификации, приме- ненные к исходному запросу, резолюция которого предапа&че- на на рис. 12.5 ответа. Литерал, от- это исходный запрос -&t(fido, Z). Это означает, что Фидо — нигде. На рис. 12.10 показан процесс извлечения сцеживающий подстановки унификации — Где Фидо?" at(fido, Z). , приводящая к противоречию, со- Посдедний пример демоистоиВЬШОЛНеНИЯ НСХодиого запроса: “Фндо в библиотеке", значение, из которого Как в пР°иессе сколемизации можно получить у каждого Челове Я 0ТВет' Усмотрим следующую ситуацию. 470 У конкретного человека Роднте-ть родителя — это дедушка. Требуется доказать Следующие есть р0Дитедь- первых, "У каждого человека ^акты н 0заимоотношения этой ситуации- Во- (^(3у)р(Х,и естъ родитель”: 'P^-₽o-ea,-,TOM)Wa„. —--------------- РИ‘Z).____________________________________________ е 8опР°сЬ( решения задач искусственного интелле*^3 Процессы опровержения разрешения н извлечения ответов дтя этой задачи пред- ставлены иа рис. 12.11. Отметим, что подстановки унификации при извлечении от- вета имеют вид gpljohn, pa(pa(john))}. Ответ на вопрос о том, есть ли у Джона дедушка, состоит в нахождении “ближайшего предка ближайшего предка Джона”. Сколемизированная функция позволяет вычислить этот результат. Описанный выше общий процесс извлечения ответа может использоваться в любых процедурах опровержения, где применяются подстановки унификации. показанные иа Рнс. 12.9 и 12.10, или сколемовские функции, показанные на рис. 12.11. Этот процесс по- зволяет находить ответы Метод действительно очень прост: экземпляры (подстановки Унификации), приводящие к противоречию, в то же время обеспечивают истинность от- рицания заключения (исходного запроса). Хотя в этом подразделе не доказывается при- менимость метода для тюбой задачи, работоспособность этого процесса проиллюстри- рована иа нескольких примерах. Более подробное описание процесса извлечения ответов Можно нантн в [Nilsson, 19S0] и [Wos и др- 19S4J- И2~Ав------------------------ тематические рассуждения 545
12.3. Язык PROLOG и автоматические рассуждения- 12.3.1. Введение Только понимание реализации языка программирования обеспечивает его корректное ' использование, надежность полученных результатов и возможность устранения побоч- ных эффектов. В этом разделе будет описана семантика языка PROLOG и его связь с во- просами автоматических рассуждений, рассмотренными в предыдущем разделе. Серьезным ограничением процедуры резолюции, описанной в разделе 12.2. является требование полной однородности базы данных задачи. В процессе приведения предикат- ной формы описания илн преобразования дизъюнктивной формы может быть утеряна важная информация о решении проблемы. Утраченная информация ие является под- тверждением или опровержением некоторой части проблемы, а скорее может служить процедурным описанием способа использования этой информации. Например, отрицание целевого выражения может иметь вид av-ipvcv-ntf, «а для позади, пустого диптн°ХССгРе30ЛЮШ'И *'ОЖНО НСПОЛМОВать стратегию поис- выбор конкретного литерала чя»„о. ' Стра1У"ю можно применять ко всем литералам. » золюции стратегии являю ** От вЬ1^°Ра самой стратегии. Используемые для р«- знаний о конкретной поелм^тм^а эвРИсТиками- Они не подразумевают глубоких Например, отрицание цХ &С™ Задачи' образовать к предикатной форме"0 ЙЫражения в приведенном выше примере можно прс- a^b^d. Зжениеа-а Это выражение можно интерпретировать так. “Проверить, истинно ли Пред°стаВ также b я d, и ложно ли выражение с”. Это правило служит для решения —- -----------------------------_______----------------------- 546 Часть V. Дополнительные вопросы решения задач искусственно дяст соответствующую эвристическую информацию. На самом деле проще всего обеспе- чить ложное значение общего предиката с помощью подцели Ь, поскольку наименее ресур- соемким по времени является следующий порядок выполнения операций’. "Проверить зна- чение посмотреть, ложно ли с, а затем проверить d". Существует неявная эвристика: сначала нужно проверить простейший способ получения ложного значения, а если он не сработает, перейти к остальной (возможно, более сложной) части решения. Эксперты могут разработать процедуры и взаимоотношения, которые не только сами являются истинными, но и содержат информацию о том, как воспользоваться этой истиной. При решении боль- шинства интересных задач эти эвристики не стоит игнорировать [Kowalski, 19796]. В следующем разделе вводятся хорновские выражения, а их процедурная интерпре- тация используется в качестве точной стратегии, позволяющей сохранить эту эвристиче- скую информацию. 12.3.2. Логическое программирование и язык PROLOG Чтобы понять математические основы языка PROLOG, введем определение логиче- ского программирования (logic programming). Затем добавим к нему точную стратегию поиска для получения аппроксимации этой стратегии поиска, которую иногда называют процедурной семантикой (procedural semantics) языка PROLOG. Для полноты описания языка PROLOG будет рассмотрено использование оператора not н предположения о замкнутости мира (closed world assumption). Рассмотрим базу данных дизъюнктивных выражений, подготовленную для опровер- жения разрешения (раздел 12.2). Если ограничить это множество выражениями, содер- жащими не более одного положительного литерала (а также 0 или более отрицательных литералов), получим пространство днзъюикгов с некоторыми интересными свойствами. Во-первых, задачи, описываемые с помощью этого набора дизъюнктов, сохраняют свой- ство невыполнимости (unsatisfiability) для опровержения разрешений, т.с. являются пол- ными в смысле опровержения (раздел 12.2). Во-вторых, важным преимуществом огра- ничения нашего представления этим подклассом всех дизъюнктов является наличие очень эффективной стратегии поиска опровержения, основанной на использовании ли- нейной входной формы, предпочтении единичного выражения и сведении целевого вы- ражения слева направо с помощью поиска в глубину. При эффективной реализации ре- курсии (конечных рекурсивных вызовов) эта стратегия гарантирует нахождение опро- вержения, если пространство дизъюнктов обладает свойством невыполнимости (van Emden н Kowalski. 1976]. Хорновское выражение содержит не более одного положитель- ного литерала, т.е. может быть записано в форме av-1b1v~1t?2v...v-lbn, где а и Ь, — положительные литералы. Чтобы подчеркнуть ключевую роль единственно- го положительного литерала в разрешении, хорновские выражения обычно записывают в виде импликации с положительным литералом в качестве заключения а<~^,лЬ2А...лЬп. Прежде чем обсудить стратегию поиска, дадим формальное определение подмноже- СтвУ хорновских выражений (Hom clause). Это подмножество вместе со стратегией не- ^ерминистского приведения целевого выражения называется логической программой Oogic program). Глава 12. Автоматические рассуждения 547
определение а ЛОГИЧЕСКАЯ ПРОГР „0 выражений, связанных квантором всеобщ Лда««ж<и исчисления предикатов первого порядка вида нос™, записанных В форме 0<_Ь,лЬгл6,л...лЬ.. д1 ы> к010рыс иногда называют апюл,арнШш Здесь а >1Ь, - по™Ж1^аголовок выражения, а конъюнкция Ь, - его тело. мм. При этом а ЭТ ™»даи« выраженный (Hom clause) теории предика- Такие предложения нэзы. ^„„„ы в трех формах: когда исходное дизмонк- Тов первого порядка, ини. п0,0Ж„телЬных airrepanoB, когда оно не содержит отрица. тинное выражение не сод т од11н положительный и один или несколько от- вальных литералов и обозначены цифрами 1,2 и 3 соответственно, рицательных литералов. Ли варп,ш1 к к, это так называемое беззаголовочное выражение или прове- 1, <-Ь|аЬ’аОзл •AD" j ряемые цели. ая<- называются фактами (fact)- 3, a<-b(A...Ab„ называется отношением правила. Теория хориовскнх выражений допускает только такие формы. Слева от символа им- пликации <- может располагаться только один литерал, и он должен быть положитель- ным. Все литералы справа от символа <- тоже положительны. Приведение выражений, содержащих не более одного положительного литерала, к хорновской форме, выполня- ется в три этапа. Сначала выбирается положительный литерал в выражении, если он су- ществует, и перемещается в его левую часть (на основе коммутативного свойства дизъ- юнкции). Этот единственный положительный литерал становится заголовком хорновско- го выражения. Затем все выражение приводится к хорновской форме по правилу av-,biv-,bJv,,,v-1b=a<— И. наконец, на основе закона де Моргана эта запись приводится к виду 8<-Ь1лЬ2л...аЬ„, где ди систематизации промежуточных цепей Ь, используется коммутативное свойство конъюнкции. m отметнть’ что П0Р°н невозможно преобразовать дизъюнктивные выражения бы«°сакь,0ГО ПР°ТНСТВа К ХОрновс№й Ф»Рме, Некоторые выражения не могут исходном поело™0" Ф°Р',<;' на"Р|1мсР PVQ- Для создания хорновского выражения В Если этот критерий в" Я0Л!кН0 содеРжаться не более одного положительного литера* предикатную форму ониВыполияется- то может понадобиться пересмотреть псходн> вом хорновской фоомы\Г,1Я проблсмы- будет видно из дальнейшего. пРен“У“^Хпч стратегии опровержений реаСТавлсния является возможность реализации эфф*^'п1 Алгоритм вычисления в логической программе реализует детерминированное привс дсние целевою выражения. Если целевое выражение имеет вид <-a,Aa2A...Aan, то на каждом шаге вычислении алгоритм произвольным образом выбирает некоторое значение а, 1</£п. Затем на основе недетерминированного выбора строится выражение а'^-Ь^лЬгл. ..лЬп, которое используется для приведения целевого выражения путем унификации а1 и а( с помощью подстановки £. Новое целевое выражение принимает вид <-(а1л...ла,.1лЬ,лЬгл...лЬпла(.|л...лаГ1)^. Такой процесс недетерминированного приведения целевого выражения продолжается до тех пор, пока целевое множество не окажется пустым. Если отказаться от недетерминированности за счет упорядочения подзадач в процессе приведения, то результат вычислений не изменится. Ко всем результатам, получаемым с помошью недетерминированного поиска, можно также прийти путем полного упорядочен- ного перебора. Однако, снижая уровень недетерминированности, можно определить стра- тегии, позволяющие исключить ненужные ветви из пространства поиска. Так. основная за- дача практических языков логического программирования — обеспечить программиста средствами контроля, а по возможности н уменьшить уровень недетерминированности. С помощью этих средств программист может обеспечить порядок приведения и выбрать набор дизъюнктивных выражений, используемых для приведения каждого целевого выра- жения. (Как и в алгоритмах поиска на графах, для предотвращения бесконечных циклов в доказательствах необходимо предпринимать дополнительные меры предосторожности.) Согласно абстрактной спецификации логическая программа должна обладать ясной семантикой, свойственной системам опровержения разрешения. В работе [van Emden и Kowalski, 1976) показано, что минимальной интерпретацией, при которой логическая программа истинна, является сама интерпретация этой программы. Поэтому в практиче- ских языках программирования, таких как PROLOG, в процессе работы программы можно вычислить только подмножество связанных с ней интерпретаций [Shapiro, 1987]. Последовательный язык PROLOG — это аппроксимация интерпретатора для модели логического программирования. спроекпгрованная для эффективного выполнения на ма- шине фон Неймана. Этот интерпретатор применялся до сих пор в данной книге. Последо- вательный PROLOG для управления поиском в процессе доказательства использует как по- рядок целей в выражении, так и порядок выражений в программе. Если известно некоторое число целей. PROLOG всегда обрабатывает их слева направо. В процессе поиска унифици- руемого выражения имеющиеся дизъюнкты всегда проверяются в том порядке, в котором они подаются программистом. После обработки каждого выбранного выражения к записи унификации добавляется указатель возврата, позволяющий в случае неудачного исходного выбора использовать другие выражения (опять же в заданном программистом порядке). Если процесс нс увенчается успехом для всех возможных выражений в пространстве дизъ- юнктов. то вычисления завершаются неудачно. При использовании оператора сие для эф- фективного поиска в глубину (подраздел 14.1.5) интерпретатор на самом деле может обра- ботать не все комбинации выражении в пространстве поиска. Опишем работу интерпретатора более формально. Пусть имеется шдь <-а1лагАа3л...лап 548 Д олнительные вопросы решения задач искусственного интеллект1 глава 12. Автоматические рассуждения
„„ PROLOG последовательно выбирает первое дизъЮнкт„ „ программа Р. которого унифицирует а,. Затем это выражена ИС1Ю""; ное выражение из Р. зуется для приведения целей. Вел а^Ь.лЬ.л.-.л то целевое выражение принимает вид приводящее выражение для ун”Ч> <-(Ь,лЬ,л.. .лЬ.лО.ла^. .ла,)5- mmn PROLOG пытается выполнить приведение крайней слева цели h Затем интерпрета> р R р, унифицирующее b,. Предположим, используя первое выражение г г Ь,<_С,ЛСгЛ.,.ЛС(, при подстановке унификации р. Тогда целевое выражение приводится к виду е-(С,лс,л...лс,л&гл...л&,ла1ла1л...лалНФ. Заметим что список целей обрабатывается как стек, поэтому целесообразно выполнять поиск в глубину. Если интерпретатор языка PROLOG не находит подстановку унификации, приводящую к решению, то он возвращается к ближайшей точке выбора унификации, вое- станавливает все установленные после этого связи и выбирает следующее выражение для унификации (в соответствии с порядком в программе Р). Таким образом, PROLOG реали- зует поиск в глубину слева направо в пространстве дизъюнктивных выражений. Если целевое выражение приводится к нулевому предложению (_)), то приводящая к этому композиция подстановок унификации Н-НФ--Ш обеспечивает интерпретацию, при которой исходное целевое выражение истинно. Помимо возврата в соответствии с порядком следования выражений в программе, последовательный язык PROLOG допускает использование выражения cut или !. Как описано в подразде- ле 14.1.5, выражение cut можно поместить в дизъюнктивное выражение в качестве самой цели. Тогда интерпретатор, достигнув этого выражения, фиксирует текущий путь выполнения программы и подмножество подстановок унификации, сделанных после выбора выражения, содержащего cut. При этом само выбранное дизъюнктивное выражение становится единст- венным средством приведения целевого выражения. Если процесс приведения завершится неудачно после выражена cut, то все дизъюнктивное выражение считается ложным. На практике дтя реализации механизма cut необходимо хранить возвратные указа- тели для участвующего в приведении выражения и всех его компонентов, расположен- ных о выражения cut. Наличие выражения cut может означать, что вычисляются только некоторые из возможных интерпретаций модели. "Т0Г описаник> последовательного языка PROLOG, следует сравнить его с моделью опровержения разрешения из раздела 12.2. пользуемк.т°п 1’рогРаммиРовашш пространство дизъюнктивных выражений. ® возможности п резШ1юции’ содержит подмножество хорновскпх выражений. Л:|Я чать не более олХХоХжи“ Х°рНОВСКОЙ формс кажлос выражение должно вклю 2 Следую илиж«тельного литерала. 2 1 Целслы^'>КТ^^111 ПОЗВОЛЯЮТ представить задачу в хорновской форме. <-ь,лЬ,л...лЬп_ КОТОРые необходимо проверить в процессе опровер- мпвки уииЛшгй 1111 Д™ Каждого а‘ ^Роится отрицание, выполняются подста- вое существует^11 " ПРНВеДеНИС Яо полГ«ния пустого выражения (если тако- 2.2. Факты а,<- аг<- ап*-- это отдельные выражения, используемые для резолюции. 2.3. Хорновские правила или аксиомы а«—Ь,лЬгл...лЬп позволяют выполнять приведение для соответствующих подцелей. 3. При использовании стратегии предпочтения единичных выражений, линейной входной формы (методики предпочтения фактов и использования отрицания цели и ее дочерних резольвент, описанной в подразделе 12.2.4) и применении принципа поиска выражений для резолюции в глубину (с возвратом) и слева направо система доказательства теорем на основе резолюции работает как интерпретатор языка PROLOG. Поскольку эта стратегия является полной в смысле опровержения, оиа гарантирует нахождение решения (т.е. исключает отсечение интерпретаций за счет использования выражения cut). 4. И, наконец, композиция подстановок унификации в процессе доказательства обеспечи- вает интерпретацию (ответ), для которой целевое выражение является истинным. Эго точно соответствует процессу извлечения ответа, описанному в подразделе 12.2.5. Важным свойством современных интерпретаторов языка PROLOG является неявное ис- пользование в его реализации предположения о за.мкнутости пространства (closed world as- sumption). В теории предикатов доказательство -р(Х) эквивалентно доказательству того, что р(Х) логически ложно, т.е. выражение р(Х) ложно для каждой интерпретации, для которой набор аксиом является истинным. Интерпретатор языка PROLOG на основе алгоритма уни- фикации из главы 2 дает более частный результат, чем общий принцип опровержения разре- шения. описанный в разделе 12.2. Вместо проверки всех интерпретаций он теепфует только те выражения, которые содержатся в базе данных в явной форме. Сформулируем эти ограни- чения, чтобы четко увидеть неявную ограниченность языка PROLOG. Предположим, что для каждого предиката р и каждой переменной X из р множество вь .....а„ составляет область определения X. Работа интерпретатора PROLOG в про- цессе унификации основывается на следующих принципах. 1. Аксиома об уникальности имен. Для всех элементов области определения если эта значения не идентичны. Следовательно разноименные элементы различаются. 2. Аксиома замкнутости .мира (closed world). P(X)->p(a,)vp(a2)v...vp(an). Это означает, что возможными реализациями отношения являются только те вы- ражения, которые содержатся в описании задачи. 550 ЧЭСТЬ V' ^°полнительныв вопросы р0Шения задач искусств0ННого интеллв^ Глава 12. Автоматические рассуждения
^',e’t’'"M(domainclosure)' 3. Аксиома о замыкан (X=a,)v(X=a,)v.,.v(X=a.>- даменты, содержащиеся в описании задачи, пре„ Эта аксиома гарантируй. слИНСтвенно возможных элементов. ставляют собой полный с , интерпретаторе языка PROLOG, что „Од. Эти три аксиомы неявно ре возможных интерпретации PROLOG, тверждаетея ограниченностью м * PROLOG все целевые выражения, для кото. Неформально это означав . лоЖНыми. Это может привести к аномалии' рых нельзя доказать истинное целевого выражения, ие содержится в тек» евин значение, обеспечивающее ист.ложным щей базе данных ™ ^вуют и другие ограничения, присущие всем языкам В языке PROLO южными из них, помимо проблемы отрицания, являются программирован^ логического программирования. В частности, сле. ™ П₽ивод“т к : вьХ™ с его подмножеством (раздел 2.3). а также использование выражения cut. Современное поколение интерпретаторов PROLOG следует рассматривать с практиче- ской точки зрения. Некоторые проблемы вызваны тем, что на сегодняшний день не су шествует эффективного пул. их решения (проверка вхождения). Другие связаны с по- пытками оптимизировать использование поиска в глубину с возвратом (выражение cut). Многие аномалии языка PROLOG являются результатом попытки реализовать иедетер- ! минированную семантику чистого логического программирования на последовательном j компьютере. К иим относятся проблемы, связанные с выражением cut. В заключительном разделе главы 12 рассматриваются альтернативные схемы логиче- ского вывода, применяемые для автоматических рассуждении. 12.4. Дополнительные вопросы автоматических рассуждений Мы рассмотрели слабые методы решения задач, основанные иа синтаксических свой- ствах представления и применении стратегий для выбора комбинаций в процессе полно- го перебора. В завершение этой главы приведем некоторые комментарии по основным аспектам слабых методов решения. 1. Единое представление для реализации слабых методов решения форме. Д жос едином ™ разрешения гробуег приведения всех аксиом к дизъюнкгавно» эвристик дня решения задачи От ПОТВОЛЯег Решать выражения и упрощает разработку потери важной эвристической ш Л °ВНЫМ недоста'гком этого подхода является возможное» Формат предгавл “ “ ‘ Ф°РМаиИ“ 8 пр011СС“ “ единообразного кодирования. зования правила отделения ш CC1W "' пю-" зачастую более информативен для исполь лобных синтаксических вапнэн^^331^ поиска в продукционной системе, чем один нэ110 зовать это правило Допустим тп Bf- Т°Г°’ так°й формат позволяет эффективно исполь (Раздел 8.0) утверждения “еСпи представеть абдуктивнын вывод (abductive inference) сед аккумулятор", с помощью Не заводится и фары не включаются. то, возможш го правила можно проверить аккумулятор. олнительные вопросы решения задач искусственного интелле^' При записи этого правила в дизъюнктивной форме теряется эвристическая информа- ция о способе его применения. Если записать это правило в предикатной форме turn overflights—^battery, то его дизъюнктивная форма будет иметь вид turn overflights^ battery. Это выражение можно записывать по-разному, причем каж- ая форма записи может представлять отдельную импликацию. (--.turn^over^lights^battery, (-,turn_over-^>(batteryvlights), (-,batteryf-,lights)->turn_over. (-.battery^iturn _pvervlights) и т.д- Чтобы сохранить эвристическую информацию в процессе автоматических рассуждений, некоторые исследователи разработали методы рассуждений, предполагающие кодирование эвристик путем формирования правил по аналогии с разработкой отношений человеком- экспертом [Nilsson, 1980], [Bundy. 1988]. Этот подход уже был рассмотрен в разделе 3.3. а его реализация на языке PROLOG описана в разделе 12.3. Экспертные системы на основе правил также позволяют программисту контролировать поиск с помощью структуры пра- вил. Эта идея будет развита в следующих двух примерах, в которых сохраняется форма импликации, и эта информация используется для управления поиском иа графе. Рассмотрим задачу рассуждения на основе данных с использованием следующих фактов, правил (аксиом) и цели. Факт: (av(bAC)). Правила (аксиомы): (a-s(dAe)), (b—>f), (c^(gfh)). Цель: ^evf. Доказательство утверждения evt показано на рис. 12.12. Обратите внимание на ис- пользование связки И для отношения v и связки ИЛИ для отношения л в пространстве поиска на основе данных. Если известно, что а или Ьас — истинно, то необходимо про- водить рассуждения с помощью обоих дизъюнктов, чтобы гарантировать сохранение ис- тинности. Поэтому эти два пути соединяются. С другой стороны, если b и с — истинны, то можно продолжать исследовать любой из этих конъюнктов. В процессе проверки со- ответствия любое промежуточное состояние, например с, заменяется заключением пра- вила, в частности, g\'h. предпосылка которого соответствует этому состоянию. Исследо- вание обоих состояний а ц f на рис. 12.12 приводит к достижению цели evf. Аналогичным образом можно использовать проверку соответствия правил на графе И/ИЛИ при рассуждениях на основе цели. Если в описании цели содержится символ v, как в примере иа рис Р.13. то каждую альтернативу можно исследовать независимо. Если целевое выражение представляет собой конъюнкцию, то необходимо обрабатывать °ба конъюнкта. Цель (ау(Ьлс)) Глава 12. Автоматические рассуждения
пра»ида'“кс""мы! факт; поиск высказывании Хотя эти примеры взяты из исчисления высказываний, в теории предикатов выполняется аналогично. После подстановок унификации для литералов можно приме- нять правила вывода и осуществлять поиск по различным ветвям пространства. Естест- УниФикацик должны быть согласованными по различным ветвям И пространства поиска. и скую инАлп«Т^Де11е предЛ0жень! метОДы решения, позволяющие сохранить эвристиче- образом, в экспертных реДСтавЛснии даниь1Х для слабых методов решения задач. Таким ческую информацию 3 ПрогРаммист может задавать в рамках правила эвристи- Учитьтат для управления^иск СИСТСМЬ1 °СиойанЬ1 на описаниях в форме правил, т.е. лок в рамках одного правила п °М ПОрЯДОК пра8ИЛ нли порядок следования предпосы- однородныхпроцедурпоискам'РИТаК°М ПОДх°ле отсутствует возможность применения «ако правило отделения все ж * П0ЛКОМ набоРе правил, таких как метод резолюции. ОД’ веденными на рис. 12.12 и (7 мажно использовать, что подтверждается графами, прн' бину, в ширину или "жадном" РодУк^Ионные системы, основанные на поиске 0 глу- ры для реализации систем ппя1>аЛГ/РИ™<г П0иска’ представляют собой пример архптскту Р "Л {см- димеры в гдайах 4, 5, 7Г 14 и 15). Направление поиска Рие. 12.13. Россуждеиия от ч<м о оо.хощью грофо И/ИЛИ в исчислении высказывании 12.4.2. Альтернативные правила вывода До сих пор рассматривалось наиболее обшее правило вывода — метод резолюции. Дня повышения эффективности процедуры разрешения существует несколько более сложных правил вывода, два из которых будут кратко рассмотрены в этом разделе. Это процедуры гиперрезолюции (hyperresolution) и парамодузяции (paramodulation). Описанная выше процедура резолюции на самом деле представляет собой частный случай, получивший название бинарной резолюции, поскольку на каждом шаге в созда- нии нового дизъюнктивного выражения участвуют ровно два род!ггеля. Гиперрезолю- иия — это последовательное применение процедуры бинарной резолюции для получения одного дизъюнкта. На каждом шаге в процедуре гиперрезолюции может участвовать од- но выражение с несколькими отрицательными литералами — так называемое ядро (nucleus) — ц несколько выражений, состоящих только из положительных литералов, сплзеллгззцов (satellite). Один из положительных литералов должен соответствовать отри- цательному литералу ядра. Кроме того, для каждого отрицательного литерала ядра необ- ходимо иметь по сателлиту. Таким образом, в результате применения гиперрезолюции Получается выражение, состоящее только из положительных литералов. Преимуществом процедуры гиперрезолюции является получение выражения, со- держащего только положительные литералы, и уменьшение размерности простран- Стйа дизъюнктов, поскольку в Процессе реализации процедуры не фиксируются _ - — ~ Г пава 12. Автоматические рассуждения 554 Часть V. Дополнительные вопросы решения дядям искусственного инТ
Резусы. По— > набора дизъюнктивных выр z}vlather(Y. Z), ^mamed(X, ^^УУ^деогдв, Kate), mamed(kate, gaorga^kes^g motherikate. sara можно ПОЯучить за один шаг. С помощью пшеррезолюцип заклю fatharlgeorga, sarah^kasigeorge. kata). является первое выражение. Два другие — сателлиты. Сател- Ядром в этом примере дизъюнктов, причем на каждый отрицательный —что в данном случае адро - ставляет собой дизъюнктивную форму импликаци married{X, Y^motherlX. Z)^father(Y, Z). Заключение этого правила - часть окончательного результата. Заметим, что в про- цессе отсутствуют промежуточные результаты типа ^motherikale Z)vfather{george, Z)vlikes(george, kate), которые обычно получаются при использовании бинарной резолюции в том же про- странстве дизъюнктивных выражений. Гиперрезолюция — это согласованная и полная процедура. В сочетании с другими страте- гиями, такими как стратегия “множества поддержки”, свойство полноты может нарушаться [Wos и др., 1984]. Для создания ядра и сателлитных выражений могут потребоваться специ- альные стратегии поиска, хотя в большинстве случаев эти выражения легко проиндексировать по имени и свойству положительности или отрицательности каждого литерала. Это позволяет подготовить ядро и сателлитные выражения к процедуре гиперрезолюции. Важным и сложным вопросом в разработке механизмов доказательства теорем является контроль равенства. Особенно сложные задачи возникают в областях, где большинство фак- тов и взаимосвязей имеют несколько представлений, например, могут быть получены путем применения свойств ассоциативности и коммутативности выражений. Такой областью явля- ется математика. Вот простой пример. Арифметическое выражение 3+(4+5) может быть представлено во многих различных формах, в том числе 3+((4+0)+5). Такие выражения слож- ны для использования подстановок, унификации и проверки равенства с другими выражения- ми в рамках автоматического решения математических задач. Демо0уля1;ия (demodulation) это процесс перефразирования или преобразования вы- Р Снии tlX автоматаческ°й записи в выбранной канонической форме. Единичные (demodid^n ,1С^ользуемЬ1е Д'1* преобразования к этой форме, называются демодуляторам’1 ние его канайии”” 3afa]°T различных выражений и позволяют заменять выражс- сгенерированная^нЛп ^°рМ0Й’ При пРавильном использовании демодуляторов вся вновь сгранетаолтюнюпвны^втаж™0^11“ уКазанной Ф°Рме еще до ее ">'СТ>'|11|СН"Я В "Р°' ражении. Например, пусть имеется демодулятор eqna/(fetfter(fa(z,er(X))i9randfe(Zier(X)) и новое выражение ageifatharifatharisarah)), 86). 556 Часть V. Дополнительные вопросы решения задач искусственного интеллекта
Прежде чем добавить это выражение в пространство дулятор. И выражение добавляется в виде Дизъюнктов, применяется демо- аде(дгапс/ГаГЛег(загаЪ), 86). В данном случае проблема равенства связана с , тельнее классифицировать человека: как отца отца fatherl^™^ пРсдпочти- grandfatherW? Подобным образом можно указать каноннч W И™ ДСДу1ику семьи, в частности определить, что брат отца brotber^t^-Z™п'Хт указав канонические имена, под которыми должна храниться „нформац^ можнор» работать демодуляторы, в частности equal. приводящие вею новую информацию к вы- бранной форме. Заметим, что демодулятора, -- это всегда единичные выражен™ Паралюдумуия это обобщение подстановки равенства на уровне термов. Напри- мер, пусть дано выражение 1 п«шри older(mother(Y), Y) и отношение равенства equal(mother(sarah), kate}. Тогда можно выполнить парамодуляцию и получить older{kate, sarah). Заметим, что проверка соответствия и замены {sarah/Y) и (rnother(sarah)lkate} вы- полняется иа уровне термов. Основное различие между процедурами демодуляции и парамо- дуляции состоит в том, что последняя допускает нетривиальную замену переменных в обоих аргументах равенства предикатов. При демодуляции замена выполняется с помощью демоду- лятора. Для получения окончательного вида выражения можно использовать несколько демо- дуляторов. Парамодуляция выполняется лишь один раз для любой ситуации. Итак, рассмотрены простые примеры мощных механизмов вывода. Эти механизмы можно рассматривать как более общие приемы резолюции в пространстве дизъюнктивных выраже- ний. Как и другие описанные выше правила вывода, они тесно связаны с выбором представ- ления, и для их реализации требуется применение соответствующих стратегий. 12.4.3. Стратегии поиска и их использование Иногда предметная область приложения диктует специальные требования к правилам вывода и эвристикам по их использованию. Выше уже рассматривался вопрос использо- вания демодуляторов для реализации равнозначных подстановок. В естественной де- дуктивной системе (natural deduction system), описанной в работе [Bledsoe, 1971], ис- пользованы две важные стратегии доказательства теорем иа основе резолюции, полу- чившие название стратегий расщепления (split) и приведения (reduce). Эти стратегии разрабатывались для использования в математике, в частности, для применения в теории множеств. Идея этих стратегий состоит в разбиении теоремы на части с целью ее упрощения и возможности использования таких традиционных мето- дов, как метод резолюции. Стратегия расщепления состоит в разделении различных ма- тематических форм иа соответствующие части. Доказательство соотношения Алв экви- валентно доказательству А и доказательству В. Аналогично доказательство Амв - это Доказательство А->в иА«-й. „елению больших доказательств на состав- Стратегия приведения тоже сводится к делению локазательств, д«'ощ„е. Например, доказательство того, что seAnS можно свести к доказательству 557 Глава 12. Автоматические рассуждения
в Или доказательство истинности некоторого свойства деух соотношений ве4 и seB ™ * этого свойства для —А и для ^е. р * ^аГения Ч4м8) фрагменты меньшего объема, можно ограничив доказательства больших тс Р ]971) попользуются также подстановки равенства страиство поиска. В РаС”^ ось „ „редыдушчх главах, корректное использование стра. Как неоднократно отмечалос Р е хорошего знания области Приложения ’ тегий- это, скорее искуси „ правил вывода. В заключение этой главы При’ также соответствующего пред отысаетт1 использовании могут ока ведем несколько общих пр . * „ правило, имеют свои исключения. Эти р. затася очень эффективным . последователей, работающих в этой об;1асг„ ХТ197ГпХп 1980]. [Wos и др., 1984], [Wos, 1988], а также собственна автора книги о слабых методах решен,» задач. Приведем этн реноме^. НИИ без дополнительных комментариев. . По возможности используйте дизъюнктивные выражения с меньшим числом ли- . Прежде чем применять общие правила вывода, разбивайте задачу на подзадачи. . По возможности используйте предикаты равенства. • Применяйте демодуляторы для создания канонических форм. • Пользуйтесь парамодуляцией при работе с правилами вывода для предикатов ра- венства. • Реализуйте стратегии, сохраняющие “полноту ’. • Используйте стратегию “множества поддержки” в задачах, содержащих потенци- альные противоречия. • В процесс резолюции старайтесь использовать единичные выражения. • Выполняйте категоризацию новых выражений. • Используйте средства упорядочения выражений и литералов в рамках более круп- ных выражений, отражающие ваши интуитивные представления и опыт решения задач из данной области. 12.5. Резюме и дополнительная литература_____________________________ Системы автоматических рассуждений и другие слабые методы решения задач со- ставляют важную область искусственного интеллекта. Они используются для выработки общих стратегии поиска в игровых задачах, при доказательстве теорем и для поддержки рассуждений в системах на основе баз знаний. Эти методы применяются для разработки оболочек экспертных систем и механизмов вывода. Слабые методы требуют выбора представления, правил вывода н стратегий поиска. Эти три составляющие неразрывно связаны между собой и не могут рассматриваться не- зависимо друг от друга. Выбор этих элементов также во многом определяется спец,, кои прттложения. Рекомендации по выбору основных составляющих слабых методов р ' шения задач приведены в конце предыдущего раздела. дизъюнктивных ЭТ0 процссс ностроения возможных интерпретаций в простраис дизъюнктивных выражений, к которому добавлено отрицание целевого выражения, Д° возникновения Р Р ч я. этой книге не рассматриваются вопросы полноты про- цедуры опровержения разрешения. Они освещаются в работе [Chang и Lee, 1973]. Любознательному читателю можно порекомендовать ознакомиться с соответствующей литератУР0”’ В частности, работа [Chang и Lee, 1973]— это очень доступная книга, рас- считанная на неподготовленного читателя. Формальные основы описанного подхода изло- жены в [Loveland, 1978]. Множество ранних классических работ в этой области собраны в rgiekmann н Wrightson, 1983а, 19836]. Важные результаты в области автоматических рас- суждений изложены в работах [Nilsson. 1980], [Genesereth и Nilsson, 1987]. (Kowalski, 19796]. [Lloyd, 1984], [Wos и др., 1984, 1988], [Robinson. 1965]. [Bledsoe, 1977]. Важный вклад в методику доказательства теорем внесла работа [Воуег и Мооге. 1979]. К ранним ра- ботам в этой области относятся [Feigenbaum и Feldman. 1963] и [Newell и Simon, 1972]. В течение последних двадцати пяти лет все новые результаты в области автоматиче- ских рассуждений докладывались на конференции CADE (Conference on Automated De- duction). В настоящее время много работ посвящены проверке соответствия моделей, разработке систем верификации и представления иерархических знаний [McAllester, 1999] [Ganzinger и др., 1999]. Продолжают свои исследования Ларри Вос (Larry Wos) и его коллегн из Аргонской национальной лаборатории. В частности, работа [Veroff. 1997] по теории автоматических рассуждений посвящена Восу. Стоит отметить также работы [Bundy 1983, 1988]. выполненные в Эдинбургском университете, а также [Kaufmann и др 2000]. выполненную в университете штата Техас. 12.6. Упражнения 1. Приведите предикаты, описанные в разделе 2.4, к дизъюнктивной форме и исполь- зуйте процедуру опровержения разрешения для ответа на запрос о том, должен лн конкретный инвестор выполнять investment(combination)! 2. С помощью процедуры резолюции докажите утверждение из упражнения 12 к паве 2. 3. Используйте процедуру резолюции для ответа на запрос нз примера 3.3.4. 4. В главе 5 представлена упрощенная форма игры “хода конем”. Приведите правило path3 к дизъюнктивной форме и с помощью процедуры резолюции получите ответ на запрос pat/)3(3, 6). Затем воспользуйтесь рекурсивным вызовом процедур в дизъ- юнктивной форме. 5. Как можно использовать процедуру резолюции для реализации поиска в продукци- онной системе? 6. Как с помощью резолюции реализовать рассуждения от данных? Используйте этот метод для определения пространства поиска в упражнении 1. Какие проблемы могут возникнуть в задачах, где пространство поиска достаточно велико? Воспользуйтесь процедурой резолюции для решения задачи переправы человека, волка, козы и капусты из раздела 14.3. 8. Воспользуйтесь методом резолюции для решения задачи из [Wos и др.. 1984]. Уело- ВИЯ задачи следующие. Четыре человека — Роберта, Тельма. Став и Пит — работа- ют на восьми различных работах. Каждый из них работает ровно на двух работах. Они занимают следующие должности: руководитель, охранник, санитар, телефонист, полицейский, учитель, актер и боксер. Санитар - это мужчина. Муж руководите- ля - телефонист. Роберта - не боксер. Пит не имеет высшего образования. Рооср- ~ ---------------------------------- ' 559 Гяава 12. Автоматические рассужДения 558 Часть V. Дополнительные вопросы решения задач искусственного интеллекта
- „«Ляг вместе играть в гольф. Кто на какой ps6o№ „„ль н полиней-®"1 с учетом пола каждого из сотрудИИКО8 р^пХЬ-. - J ядро СОСТОИТ ие меиее чем из ч^ * ва пример® гиперр*' 9 П₽"ЕД™в'приводящий дизъюнктивные выраж. ₽ га демодулятор для l“Jp““'mus(6) )) к виду equaltans, sum(5,0)). рЩра. ,0- к виду equaKans, 5, бегайте демодулятор для "Р" щести тИ1ТОВ семейных отношений. НЩи. п Постройте “каноническое форм отношений к канонической ш,т демодуляторы для Р __ да ..дяд Г форме. Например, орат ь и „з подраздела 12.2.4 для решения задача 12. Примените три ПА „счастливого студента, р „катной формы к дизъюнктивной 13 Wl-VIHIQIX. П-Ф(П]». ! Понимание естественного языка 14. Создайте граф И/ИЛИ для решения следующей задачи на основе данных. Факт: —d(F)v[b(f)Ac(f)}. Правила: ~,Ь(Х)^(Ю и b(Y)-+e(Y) и £j(WX-c(H/)- Доказать: -ia(Z)ve(Z). 15, Докажите, что стратегия линейной входной формы не является полной в смысле ровержения. 16. Создайте граф П/ИЛИ для решения следующей задачи и объясните, почему невоз- можно получить целевое выражение. r(Z)vs(Z)? Факт: p(X)vq(X). Правила: р(а)-эг(а) и q(b)-^s(b]. 17. Используйте процедуры факторизации и резолюции для опровержения следующих выражений p(X)vp(f(y)) и -iP(IV)v-p(f(Z)). Постарайтесь построить опровержение без факторизации. 18. Альтернативной семантической моделью для логического программирования явля- ется Flat Concurrent PROLOG [Shapiro, 1987]. Сравните эту модель с семантикой языка PROLOG, описанной в разделе 12.3. оп- , Чем объяснить потребность в словах? — Теренс (Terence) До меня доходит Какой-то ураган в твоих словах, Но не слова. — Вильям Шекспир (William Shakespeare), Отелю 13.0« Проблема понимания естественного языка Проблема понимания естественного языка, будь то текст иди речь, в значительной мере зависит от знания предметной области. Понимание языка — это не просто передача слов. Оно требует знаний о целях говорящего, контексте, в также о данной предметной области. Программы, реализующие понимание естественного языка, требуют представ* ления этих знаний и предположений. При их создании необходимо учитывать такие ас- пекты, как немонотонность, изменение убеждений, иносказательность, возможность обучения, планирования и практическая сложность человеческих взаимоотношений. Следует отметить, что все эти проблемы являются краеугольными для самого искусст- венного интеллекта в целом. Например, рассмотрим следующие строки из восемнадцатого сонета Шекспира. “Сравню ли с летним днем твои черты? Но ты .милей, умеренней и краше. Ломает буря майские цветы. И так недолговечно лето наше.1” Пять РЭмКах Упрошенной, буквальной трактовки каждого слова смысл этил стихов по- Невозможно. Доя его понимания нужно ответить на следующие вопросы. 560 ------------------------------------------------------------- Росы решения задач искусственного интеллект
- „„гтггатеггьностъ произведений Шекспира? Чтобы по. . Чем объясняется всобы-и"®" чел0ВСческая любовь и каковы « С0Ц|, няъ яя строи. нш6хШ'"1° ' „о питался отработать причитающийся ему го„орар алькые традиции. Шекспир вМлЮблсиную с летним днем? Означает лп это 2. Почему Шекспир Ча,н““„ o6uB„„„ с ной кожа покрывается летним загаром, „ли ™ °"а Г^Я yXS С ощущением тепла и летней красоты? она ассоциируете у этог0 фрагмента? Смысл сказанного явно не от- 3. Какие выводы можне> сдал пом0ЩЬ(О меТафор, аналогий н базовых знаний ражен в тексте. Он п0 лета ассоциируются с перипетиями человеческой Например, буря и скорой ним ипини и любви. понимает метафоры? Слова ие просто описывают совокупность объ. 4. Как человек по Ф Р состоит в сопоставлении харакге- =кл^ X и влюбленной автора. Какие из этих свойств могут быть при- Обоим объектам, а какие нет, и главное, почему некоторые свойства под- черкиваются, а другие даже не упоминаются? 5. И, наконец, должна ди компьютерная система понимания языка знать, что такое “ямб” ? Как компьютер ответит на вопрос, о чем эти стихи ? Если напрямую объединить словарные значения слов этого сонета, то это ие добавит ясности. Чтобы уловить смысл стихов, нужно задействовать сложный механизм понима- ния слов, синтаксического разбора предложения, построения представления семантиче- ских значений и их интерпретации в свете знаний предметной области. Рассмотрим второй пример, взятый из объявления о вакансиях на факультете компь- ютерных наук. “Факультет компьютерных наук университета Нью-Мексико... проводит конкурс на заме- щение двук должностей профессора. Требуются специалисты в следующих областях: программное обеспечение, в том числе анализ, проектирование и средства разработки...; системы, включая архитектуру, компиляторы, сети... Кандидаты должны иметь степень доктора наук по специальности... На факультете выполняются международные проекты в области адаптивных вычислений, искусственного интеллекта, поддерживаются тесные связи с институтом Санта-Фе и не- сколькими национальными лабораториями. В связи с этим объявлением возникает несколько вопросов. тгпгл >1,ТатС;1Ь ^,1аеТ' чт<> это объявление касается вакантных должностей именно этого факультета? ситете (они'дниРеДСТВЭ пРогРаммиРования необходимо знать для работы в универ- сом преподавания 1УКа3аНЫ В объявлении)? Человек, хорошо знакомый с продес- PROLOG и UML унивеРС1ГГето, сможет понять, что речь идет о языках Cobol. 3 Кдко И связях с друпт^ора^^”ию Имеют сведения о международных проектах 4. Как компьютер поймет, о чем л. направить объявление по I t ЭТ° объявление? Что ему необходимо знать, чт боты в Web? П егпе1 кандидату наук, который занимается поиском Р3 562 у д ' ' — „_________________________________ ____ Дополнительные вопросы решения задач искусственного Интел®*”
Понимание естественных языков связано (как и» первых, предполагается большой объем человечД», УМ) с 1р“” «"фотами. Во- „язи В сложном реальном мире, с которыми должна б’,"аНИИ' Язык r вш„м0. тендУюшаЯ на понимание языка. Во-вторых, язык им Ti* JHak0Ma любая система, про- стоят из фонем, и, в свою очередь, составляют поедл™ НеК°ТОрую С1РУКТУРу: слова со- ни* фонем, слов и предложений не является случайным Г* “ ФразЬ1' ПоряД°к ледова- этих компонентов общение невозможно И наконеи ” КОррекТно1° использования дукг некоторого агента — человека или компьютера’ *ЗЬ1К0ВЫе К0НСтРУки»и - это про- н развиваются в направлениях, определяемых их инл еН™ ВНедрены в сложную среду новые действия являются целенаправленными им«уальностъю и социумом. Язы- В этой главе предлагается введение в проблему понимания естественного языка и кратко рассматриваются вычислительные средства ее решения. Хотя основное внимание будет уделено вопросам понимания текста, разработка систем понимания и генерации речи тоже сопряжена с решением этих проблем, а также с дополнительными сложностя- ми, связанными с распознаванием и выделением слов из контекста. В первых системах искусственного интеллекта разработчики старались ограничить предметную область системы (поскольку для успешной работы системы требуется зна- ние предметной области) и создавали приложения, работающие в минимальной пред- метной области. К числу таких снстем относится SHRDLU [Winograd, 1972], которая могла работать с блоками различной формы и цвета и с помощью “руки” перемещать указанный блок (рис. 13.1). Система SHRDLU могла отвечать на заданные на английском языке вопросы типа “Что находится на красном блоке?” или выполнять запросы вида "Поместите зеленую пирамиду на красный брусок". Она понимала местоимения, например, могла обработать запрос: “Есть ли здесь красный блок ? Подними его”. Она даже понимала эллипсис, в ча- стности “Какого цвета блок находится на синем бруске? Какой формы?”. Поскольку мир блоков очень прост, то система была снабжена полной базой знаний о нем. Взаимодей- ствие с этим “миром” не требует знания таких общих понятий, как время, возможности, убеждения и разработки приемов представления этих знаний. Благодаря ограниченности предметной области в системе SHRDLU достигнута интеграция синтаксиса и семантики. Ее пример доказывает, что при достаточных знаниях о предметной области компьютер- ная система может эффективно работать с естественным языком. Паеа 13, Понимание естественного языка 563
..„,пй области система понимания языка должна Мод „ хорошего знания языка. Мощным средством для такого п пбяоны И предпояожевив chai„). Например, в языковых копиру, лировать шаб " „доя-оадаге <М сушСствгпсяьными. а нс наоборот. Man „„роаанив ’ обычно сто между приш1ипам„ построения яэ£ ! пре ГмодгХг также могут отражать опнса„,и которого они предназначены. I ^^"струкинй И реальным подход к пониманию языка. Раздел 13.2 В разделе 13.1 иредставлен сггм } рассматриваются вопросы модеЛирова. саяшен синтаксическому анагшзу. Р д представлсн стохастический подход к вы,,, ния синтаксиса и семантики. В разд „ „акоиец в раздвле 135 рассна1ри_ пению закономерностей в язык> поиимания естественного языка: ответы в, ваются несколько приложении да вь1ПОЛНСние Web-запросов и анализ вопросы, получение информации текстовой информации. 13.1. Разбор языка: символ мшйанализ 13.1Л. Введение Я,я,к- это сложный феномен, понимание которого включает такие разнообразные „ооХ как распознавание звуков и печатных букв, синтаксический разбор, вывод се- мантик высокого уровня и даже учет эмоционального контекста, передаваемого с помо- шью ритма и интонации. Для управления этой сложностью лингвисты определили раз- личные уровни анализа естественного языка. 1. Просодия (prosody), к которой относятся анализ ритма и интонации языка. Этот уровень анализа достаточно сложно формализуем, поэтому им зачастую пренебре- гают. Однако его значение очевидно. Сила ритма и интонации наиболее ярко про- является в поэзии и религиозных песнопениях. Ритмика языка играет важную роль также в детских играх и колыбельных. 2. Фонология (phonology) — наука о звуках и их комбинациях в языковых структурах. Эта область лингвистики играет важную роль в компьютерном распознавании и генерации речи. 3. Морфология (morphology)— анализ компонентов (морфем), из которых состоят слова. К этой области относятся вопросы правил формирования слов, в том чист* использования префиксов (в английском языке ин-, нон-, anti- и др.) и суффиксов < n»g, -/у и др.) для модификации значения корня слова. Морфологический анализ играет важную роль в определении значения слова в предложении, в том числе времени глагола, числа и части речи. 4, Синтаксический анализ (syntax) связан с изучением правил сочетания слов в 0 ^e^UX и предложениях, а также использованием этих правил для ра3 ® net!iHoPni^uИ ий- Эта область наиболее формализована, и поэтому . меняется для автоматизации лингвистического анализа. бы сго”^дазд “выраже’Х" ЗНаЧе“ИС слов- Ф|МЗ и предложений, а также сп« z П ражениях естественного языка. ВИИ на слушателяП1н1С5> ~ '<ауКа ° спосо6ах использования языка и его , еяушателя. НапрИмср. с „омощью прагматики можно о6ъясн,гть. ^астьУ. Дополнительные вопросы решения задач искусстввНного инте^’ слово “Да" является неудовлетворительным торый час?*’. м на вопрос ‘Знаете ли вы, ко- 7. Знания об окружающем мире (world knowledge) — ™ г™ песком мире, в котором мы живем, мире человечьи, *“ ° Рсаль"°м Ф"™ „ИЙ, а также значении целей и стараний в общении людеГэ^Т “’аимоотношс- и„я играют важную роль для полного понимания значения ™ Эзп уровни анализа кажутся достаточно естественными и подтверждаются с точки зрения психолог-ИИ, однако не дают полного представления о языке. оТи вселено свята НЫ между собой, и даже низкоуровневые изменения интонации и ритма могут полностью изменить значение слова. Примером этому является сарказм. Для синтаксиса и семанти- ки такая взаимосвязь очевидна, и хотя между этими понятиями проводится четкая линия, на самом деле эту границу сложно охарактеризовать. Например, предложение “Они едят яблоки" можно интерпретировать по-разному в зависимости от контекста Синтаксис тоже оказывает сильное влияние на семантику, что подтверждается важным значением структуры словосочетании при интерпретации предложений. Несмотря на то что природа различий синтаксиса и семантики является предметом ожесточенных споров, эти различия сохраняются и играют важную роль в понимании ес- тественного языка. Эти глубинные вопросы будут также рассмотрены в главе 16. 13.1.2. Стадии анализа языка Конкретная структура программ понимания естественного языка варьируется в зависи- мости от используемой идеологии и целей приложения. Проблема понимания языка может возникать при реализации интерфейса с базой данных, системы автоматического перевода, программы интерактивного обучения и др. Во всех этих системах исходное предложение необходимо привести к внутреннему представлению, отражающему его значение. Основ- ные стадии решения задачи понимания естественного языка показаны на рис. 13.2. Первая стадия — это синтаксический разбор (parsing), т.е. анализ синтаксической струк- туры. В процессе синтаксического разбора проверяется, корректно ли сформировано предло- жение, и определяется его лингвистическая структура. За счет идентификации таких основ- ных лингвистических отношений, как подлежащее-сказуемое, сказуемое-дополнение, в про- цессе синтаксического разбора строится базис для семантической интерпретации. Результаты анализа зачастую представляются в виде дерева разбора (parse tree). В синтаксическом анали- заторе используются знания синтаксиса языка, морфологии и, частично, семантики. Вторая стадия — это семантическая интерпретация (semantic interpretation}, в ре- зультате которой формируется представление содержания текста. На рис. 13.2 этот про- цесс показан в виде концептуального графа. К другим наиболее часто используемым представлениям относятся концептуальные зависимости, фреймы и логические пред- ставления. В процессе семантической интерпретации используются знания о значении Слов И лингвистической структуре, в том числе синонимы существительных it лов- На рис. 13.2 показано, что в программе используется знание значения слова less 'ковать) для добавления в качестве используемого по oZ’ «PS (губы). На этой стадии также выполняется проверка Л“^С™“НС ^™. Например, определение глагола Kiss может«раниче^ „ м> ЧТО человек может целовать только человека, Р Не Целует обезьяну Читу. 565 Лава 13. Понимание естественного языка
Дерево грам- матического । разбора: noun phrase I noun Синтаксис verb phrase /~nourwhrase noun kissed Jane i: Tarzan ,СКИЙ разбор sentence verb kissed Jane Tarzan Внутреннее представление. kiss person: jane object lips instrument agent Интерпретация знаний об окружающем мире_______ pet: cheetah Расширенное представление: ^possess ove experiencer | person: janej person: tarzan object kiss agent lips | instrument location jungle location Передать в блок генерации ответов, обработчику запросов к базе данных, транслятору и т.д. амках которого фрагмент внутреннего представления формируется при разборе 8 Р существенной части предложения. Объединение таких фрагментов составляет ка*д0 структУРУ предложения, которая зачастую используется для устранения дву- П°ЛН денностей н общего руководства действиями синтаксического анализатора. ^3 2. Синтаксический анализ Рис. 13.2. Стадии создания внутреннего представления предложения На третьей стадии структуры из базы знаний добавляются к внутреннему представле- нию предложения для формирования расширенного представления значения предложе- ния. Для полного понимания предложения требуются знания о реальном мире, в том числе знание того факта, что Тарзан любит Джейн, Джейн и Тарзан живут в джунглях и обезьяна Чита это друг Тарзана. Эта окончательная структура представляет значение текста и используется системой для дальнейшей его обработки. Например, в интерфейсе с базой данных эта расширенная структура используется для ормированад представления запроса с учетом организации базы данных. Затем этот за данных0^ ЫТЬ пРе°бРа:1ован в соответствующий запрос на языке управления базам» представлят^ В °^учающих программах эта расширенная структура может «»йтем£(см.0&~с№ХИгИС"0Г30ваТЬСЯ ОТВеТОВ на ВОП₽ОС "° 3аДМ Tn. сценариев в главе 6 и подпазлел 13 5 31 В вВДе СИСтах- хотя М0ГУТ быть по-разному роализоМ* втся в явном виде. Вместо" апримеР' во мноп« программах дерево разбора не <-V представление Тем не mcrp ЭТ°Г° напрямУю генерируется внутреннее семантике 13.2.1. Спецификация и синтаксический анализ с использованием контекстно-свободных грамматик в главах 3 и 14 вводится понятие правил вывода (rewrite rule), используемых для оп- ределения грамматики. Перечисленные ниже правила определяют грамматику для про- стых транзитивных предложений типа “Человек любит собаку" Для удобства эти прави- ла перенумерованы. J. sentence^, упоил_phrase verb_phrase 2. noun_phrase^noun 3. noun_phrase<^art!cle noun 4. verb_phrase^verb 5. verb_phrase<-averb noun_phrase 6. article <->a 7. article othe 8. noun<->man 9. noun«-»dog 10. i/erb<->likes 11. rerd^bites В правой части правил 6-11 содержатся английские слова. Эти правила формируют словарь доступных слов, которые могут появляться в предложении. Эта слова являются терминалами (terminal) грамматики и определяют лексикон (lexicon). Термины, опреде- ляющие лингвистические понятия более высокого уровня (senfence, noun_phrase), на- зываются нетерминальными и выделяются стилем формул. Заметим, что терминалы не встречаются в левой части правил. Корректное предложение — эта любая строка терминалов, которую можно разделить на части с помощью этих правил. Трансформация начинается с нетерминального симво- i ла sentence и в результате серии последовательных подстановок, определенных прави- ламн грамматики, приводит к формированию строки терминалов. Корректная подсга- иовка^ это замена символа, соответствующего левой части правила, символом из пра- в°й части этого правила. На промежуточных стадиях вывода строки могут включать как финалы, так и нетерминальные выражения. Такое представление называется сытен- ^алЬНой фор.мой (sentential form). Трансформация предложения The man bites the dog Ь1Глядит следующим образом (табл. 13.1). Часть V. Дополнительные вопросы решения задач искусственного инт Глава 13. Понимание естественного языка 567
предложения — Применяемое правило Строка __ - -—’ Т Sentence 3 nounj>hraseverbj>hrase 7 article noun verb .phrase 8 The noun verb JJhrase 5 The man verbjohrase 11 The man verb nounjobrase 3 The man bites nounjjbrase 7 The man bitesartic/e noun g The man bites the noun The man bites the dog_____________________________ ’ " •— Это пример сверху «шз (top-down derivation). Она начинается с сим- млХеХпи н завершается строкой терминалов. Трансформация снизу вверх начина. X со строки терминалов, включает замену элементов правой части правила соответст- ХяциХемешами из левой части и завершается символом sentence. Трансформацию можно представить в виде дерева, получившего название дерева ^аттеского разбора (parse tree), в котором каждый узел — это символ из набора правил грамматики. Внутренние узлы дерева - нетерминальные. Каждый узел н его по- томки — это левая и правая части некоторого правила грамматики соответственно. Лис- товые узлы — это терминалы, а символ sentence — корень дерева. Дерево разбора для предложения "The man bites the dog” показано на рис. 13.3. Существование трансформации или дерева разбора не только доказывает коррект- ность предложения с точки зрения грамматики, но и определяет его структуру. Фразо- вая структура грамматики (phrase structure) определяет глубинную лингвистическую организацию языка. Например, разделение предложения на глагольную и именную конструкции (фразы) определяет отношение между действием н его агентом. Такая разовая структура играет ключевую роль в семантической интерпретации, поскольку семямтич^ пР°межут°чные стадии трансформации, на которых может выполняться семантическая обработка. ческого разбот ~~ ™ задача построения трансформации или дерева грамматн- Алгоритмы грамматического рХора Хлчт°ВС форМального граммэтии. (top-down parser), которые нячи Р Д ся на два класса: анализаторы сверху вниз и строят дерево, листья котппп работу с высокоУРовневого символа sentence вверх (down-top parser) работа™ С0СТавляют целсвое предложение, и анализаторы снизу' в результате последовательных ЫХ ?ачннается со слов предложения (терминалов), и Основная трудность рещения ^"ФУстся символ sentence. существующего HagOpa прави Рамматического разбора состоит в выборе из формации. При неправильном J *°Т°Рое следует использовать на каждом шаге транс- ложенис. Например, при разбп 1_°рС анаЛ1«затор может не распознать корректно i’Pc;i‘ зультате применения правил 7 о ^°ЖеН11я ^he bites” методом снизу вверх в Рс' того ошибочное применсние ’ эУдет п°лучена строка article noun verb. Пося^ п °РУЮ НСЛЬЗЯ Привсст” к символу Z ?НСРИРУСТ стр0КУ article noun_prt?ase ver j оваты1раВцлоз-Аналогичныеnnfi" 6ПСе' Ha Самом деле анализатор должен !1С’ ________ ° лемы возникают и при разборе сверху вниз. 568 Часть V, Дополнительные вопросы решения задач искусственного иН
sentence noun_phrase verbphrase article noun ve,,b noun_phrase article noun man bites the Ja Puc. 13.3. Дерево грамматического разбора для предложения “The man bites the dog ” Проблема выбора корректного правила на каждой стации грамматического раэбора реша- йся за счет установки возвратных указателей и обратного перехода к исходной ситуации при некорректном выборе правила (подобно тому, как это происходит врекурсивных ашшшпо- рах спуска, описанных в разделе 14.9) или предварительной проверки исходной строки на предмет наличия свойств, позволяющих определить выбор применяемых правил. Обратная задача это задача генерации (generation), или формирования, корректных предложений на основе внутреннего семантического представления. Генерация начина- ется с представления некоторого осмысленного содержимого (в частности, семантиче- ской сети нли графа концептуальных зависимостей) и состоит в построении грамматиче- ски корректного предложения, отражающего этот смысл. Однако генерация — это не просто задача, обратная пониманию. При ее решении возникают отдельные сложности, для устранения которых требуются специальные методологии. Поскольку грамматический разбор играет особо важную роль в обработке нс только естественных, но и программных языков, ученые разработали многочисленные алгорит- мы такого анализа. Онн включают стратегии обработки информации снизу вверх и свер- ху вниз. Полный обзор алгоритмов грамматического анализа выходит за рамки этой гла- вы, однако мы остановимся на принципах работы анализаторов на основе сети перехо- дов (transition network). Сети переходов не обладают достаточной мощностью для анализа естественных языков, но они были положены в основу расширенных сетей пере- ходов (augmented transition network), которые зарекомендовали себя как полезные и мощ- ные средства работы с естественным языком. 13.2,2. Анализаторы на основе сети переходов Анализатор иа основе сети переходов представляет грамматику в виде набора конечных автоматов или сетей переходов. Каждая сеть соответствует одному нетерминальному эле- менту грамматики. Дуги в таких сетях помечены терминальными нли нетерминальными символами. Все пути в такой сети, ведущие от начального состояния к конечному, соответ- ствуют некоторому правилу для нетерминальных элементов. Последовательность меток дуг такого пути- это последовательность символов в правой части правшга. Грамматика, рас- смотренная в подразделе 13.2.1, может быть описана с помошью сетей переходов, показан- НЬ1Х на рис. 13.4. Если грамматика содержит несколько правил для нетерминальных элс- Мс”тов, то В соответствующей сети содержится несколько путей от начала к цели. Напри- МеР- правила noun_phrase^noun н noun_phrase^article noun изображаются в виде Различных путей в сети noun_phrase на рис. 13.4. ____________________________________ ЛЭВа Понимание естественного языка 569
noun: Рис. 13.4. Определение сети переходов простой грамматики английского языка этого * перехода в СС1И ДМ нетерминального элемента состоит в замене бора 1тс2ложсиия^РЖИМЬ1М ПРавой части грамматического правила. Например, для раз- начинается с исходного^ХяТз Тв "^х™ " CC™ ПредЛ0Жения ser"ence- °“ ход verb -Phrase и завершается n 1 ’ КЛЮчаст пеРех°Д noun _phrase, затем пере- замене исходного символа senten НС'Ш?М состоян«и Этот процесс эквивалентен д™ прохода “XСИМ80Л°8 „ varb^rase. терминальный символ, анализатор? Р°Веряет ее меткУ- Если метка представляет собой ли следующее слово метке дуги F Пр0Веряст вх°Диой поток и определяет, соответствует ЛИ дуга помечена нетерминальным™ °Н° С00тветствУет, переход нс совершается. Ес- для этого нетерминального символаСИМВОЛОМ’ анализатор рекурсивно переходит к сети наружен, то проход по дуге веохнг>глИ ПЬ1тается найти путь в этой сети. Если путь не об- вращается к исходной сети и пповрп0^Г°вНЯ невозможсн- В этом случае анализатор воз- путь в сети sentence. Если такой пт Следующий пУгь. Так анализатор пытается найти С° он корректное предложение в дапкгг ущсствУет* значит, входная строка представляет Рассмотрим "Р^оепре^’^й^матике. 0 предложения показаны наpIIC 1з 5^ Собака кусается”). Первые шаги раз- 570 ---------------------------------------- —___________________—----' росы решения задач искусственного интеллекта
Рис. 13.5. Анализ предложения "Dog bites" с помощью сети переходов 1. Анализатор начинает свою работу с сети sentence и пытается совершить переход по дуге с меткой noun_phrase. Для этого он переходит к сети поил_phrase. 2. В сети поил_phrase анализатор сначала пытается совершить переход по дуге article. Для этого он переходит к сети article. 3. В сети article нельзя найти путь к конечному узлу, поскольку ни одна из дуг не помечена первым словом предложения “dog”. В результате безуспешной попытки поиска пути анализатор возвращается к сети поил_phrase. 4. Анализатор пытается пройти по дуге noun в сети noun_phrase и переходит к сети поил. 5. Проход по дуге с меткой “dog” завершается успешно, а именно она соответствует первому слову входного потока. 6- Результат поиска в сети поил положителен. Это значит, что дуга с меткой noun в сети noun_phrase ведет к конечному состоянию. 7. Сеть nounphrase возвращает успешный результат сети самого верхнего ур разрешая переход по дуге noun_phrase. 8. Аналогичная последовательность шагов приводит к разбору части предложения verbj)hrase. * переходов. Этот анализатор Ниже приведен псевдокод работы анализатора наparse и transition. Аргумен- определен с помощью двух взаимно рекурсивных терминальный символ, то функ- том функции parse является символ грамматики. t он Негерминадьный. ЦИя Parse сверяет его со следующим словом вх 571 Лава 13. Понимание естественного языка
связанной с этим символом, и вызывает Ауи^, фуихют ₽агз2^а'1„^ вХй ceni. Фуияшя transition а качества параметра £ transition для поиска уж ^стся найти путь в этой сети с помощью метоя. пользует состояние сння вызывается функция parse (sentence) “°* иска в глубину. Д/в? разбора предложения вьоы w function parse(си«ьол_грамматики); begin сохранить указатель на текущую позицию во входном потоке- case символ грамматики является терминальным: if символ.грамматики соответствует следующему слову во входном потоке then return(success) else begin переустановить входной поток; return(failure) end; символ_грамматики является нетерминальным: begin перейти к сети переходов, соответствующей символу грамматики; у состояние:=начальное состояние сети; if tranfiition (состояние) возвращает success then return(success) else begin переустановить входной поток; return(failure) end end; end end. function transition(TeKywee_COCTOflHMeJ . begin case текущее_состояние - это конечное состояние: return(success) текущее состояние - это не конечное состояние: w lie существуют н^пГ,г.г,г,г ,,)4Je переходы из текущего состояния do begin символ_грамиетиги: = метка следующего непроверенного ,, перехода; рагее(символ^грамматики) возвращает success then begin следующее_состояние: =состояние в конце . перехода; 11 transition(следующее_состояние) возвращает success then return(success) end end 572 Час1ь ---------------------------------------------------------—' ешения задач искусственного инт0ЛЛ0Кта
return(failure) end end- поскольку анализатор может совершить ошибку и должен возвратиться к исходному состоянию, функция parse сохраняет указатель иа текущую позицию во входном пото ". дозволяя переустановить входной поток в эту позицию в случае возврата анализатора. Такой анализатор на основе сети переходов может определить корректность предложе- ния, ио нс может построить дерево грамматического разбора. Для решения этой задачи не- обходимо построить функцию, возвращающую поддерево дерева разбора, а не просто сим- вол success. Для пою процедуру анализа нужно модифицировать следующим образом. 1. При каждом вызове функции parse, параметром которой является терминальный символ, соответствующий следующему символу входного потока, она должна воз- вращать дерево, состоящее из одного листового узла, помеченного этим символом. 2, Если функция parse вызывается для нетерминального значения параметра сим в ол„ грамма тики, она вызывает функцию transition- При успешном завер- шении функции transition она возвращает упорядоченный набор поддеревьев (который будет описан ниже). Функция parse строит на их основе дерево, корнем ко- торого является с им в ол_ грамма тики, а дочерними элементами— поддеревья, воз- вращаемые функцией transition. 3. При поиске пути в сети функция transition вызывает функцию parse для метки каждой дуги. При успешном завершении функция parse возвращает дере- во, являющееся результатом разбора соответствующего символа. Функция tran- sition сохраняет эти поддеревья в виде упорядоченного набора и при нахожде- нии пути в сети возвращает упорядоченный набор деревьев разбора, соответст- вующий последовательности меток дуг этого пути. 13.2.3. Иерархия Хомского и контекстно-зависимые грамматики В подразделе 13.2.1 была определена малая часть правил английского языка на осно- ве контекстно-независимой грамматики (context-free grammar). В такой грамматике в левой части правил может содержаться только по одному нетерминальному символу. Следовательно, правило можно применять к любому вхождению этого символа, незави- симо от контекста. Хотя контекстно-независимые грамматики зарекомендовали себя как мощное средство определения языков программирования и других формализмов в ком- пьютерных науках, есть основания считать, что сами по себе оии недостаточно эффек- тивны для представления правил построения естественного языка. Например, рассмот РИМ, что произойдет, если добавить к описанной в подразделе 13.21 грамматике сущест- вительные и глаголы не только в единственном, но и во множественном числе: noun^men, noun<->dogs( verb<-> bite, ^erbwlike, помощью „О....матики можно °^-™ХД7:ХыхТп™^ множ“*С"ИЙ “Ида ''rhC d,’SS like the ' пеинГ^изатор допускает такие предло- Шественное число употребляются нскоррск 573 Рава 13, Понимание естественного языка
ппавила не используют контекст для координации существуют прав» Например, правило, определяю ЖеН"НимХеЩЩ--НОГО 11 МН:Ж;СГкон^укЦИЮ nounjibrase. за которой "Хедпожение sentence числа существительного и Гла. вольная verb phrase е je6y использовании артию1еи. Хга. Та же проблема с0ГЛ3^Х^езависимь1МН фзмматиками, составляют’ лишь один из Языки, определяемые контекстно- назьшаегся иерархией Хомского классов иерархии формальных язык [Chomsky, 1965J. На нижнем уровне этой Ие. (Chomsky hierarchy) [Норсюй(regular language). Регулярным называется язык, рархии находится класс определена с использованием конечных автоматов. Хотя грамматика которого может оыть * компьютерных науках, они недостаточно эффек- регулярные языки активно мп J языков программирования, тивньтдяягтредставлештя сад (context-free language) в иерархии Хомского расц0. А"Нт^ёнГвыше регулярна языков. Оии определяются с помощью правил вы- ложены на уровень вышр^гу^^^ КОнтекстно-независимых правил может распола- "тольТодин" нетерминальный символ. Класс контекстно-независимых языков можно анализировать с помощью сетей переходов. Интересно отметить, что если в ана- лшаторе на основе сетей переходов не допускать рекурсии (т.е. дуги помечать только терминальными символами, не приводящими к “вызову другой сети), то класс таких языков будет соответствовать множеству регулярных выражении. Таким образом, регу- лярные языки — это строгое подмножество контекстно-независимых языков. Контекстно-завиасмые языки (context-sensitive language) составляют строгое супермно- жество контекстно-независимых языков. Они определяются с помощью контекстно- зависимых грамматик, которые допускают использование нескольких символов в левой час- ти правила для определения контекста применения этого правила. Таким образом, гаранти- руются глобальные ограничения, в частности, согласованность единственного и множествен- ного числа. Единственным ограничением для правил контекстно-зависимой грамматики явля- ется непревышение правой части правила размера его левой части [Hopcroft и Ullman, 1979]. Четвертым классом, составляющим супермножество контекстно-зависимых языков, является класс рекурсивно-перечислимых языков (recursively enumerable language). Такие языки определяются с помощью неограниченных продукционных правил. Поскольку эти правила не такие жесткие, как контекстно-зависимые, класс рекурсивно-перечислимых языков является строгим супермножеством контекстно-зависимых языков. Этот класс не представляет интереса для определения синтаксиса естественного языка, хотя тоже игра- п,лВаЖИУЮ Р°ЛЬ В Т<2°РИ11 компьютерных наук. Остальная часть этой главы будет посвя- ангЛ11ЙСК0Г0 языка, как относящегося к классу контекстно-зависимых. (аптикль evr ^Игекстао независимая грамматика для предложений вида article noun verb ““ — 11 ных, а также существительных и глаголов, имеет вид sentence^nounj)hrase verb_phraso noun^hrase^article number noun noutLPhrase^number noun number<^singufar, numbers plural a";clas'n9alar»asingular article singu/arMthe singular article p/ura/Msome р/ага/ ’ article p/ura/Mthe pl^al' вопросы решения задач искусственного интбЛл0|Ста
singular nounoman singular, singular noun<->dog singular, plural поипешеп plural, plural лонж >dogs plural, singular verbjahrase^singular verb, plural verb phrase<-->plural verb, singular verb^likes, singular verb^bites, plural verb<-^like, plural verb^bite. в ЭГОН грамматике нетерминальные символы singular и plural обеспечивают ограни- чения при определении правил применения различных артиклей, существительных и глагольных конструкции с целью согласования форм единственного и множественного числа. Трансформация предложения “The dogs bite" с использованием этой грамматики выполняется следующим образом. к sentence. noun_phrase verbjahrase. article plural noun verbjahrase. The plural noun verbjahrase. The dogs plural verbjahrase. The dogs plural verb. The dogs bite. Аналогично контекстно-зависимую грамматику можно использовать для проверки выпол- нения синтаксических соглашений. Например, добавив к данной грамматике нетерминальный символ act of biting, можно запретить использование предложений вида “Man bites dog” (человек кусает собаку). Этот нетерминальный символ можно использовать для предотвра- щения построения предложений, в которых действие bites выполняет существительное man. Контекстно-зависимые грамматики позволяют определять языковые структуры, не ох- ваченные контекстно-независимыми грамматиками, но их практическое применение при создании анализаторов сопряжено с некоторыми сложностями следующего характера. 1. При использовании контекстно-зависимых грамматик резко возрастает количество правил и нетерминальных символов. Представьте себе сложность контекстно- зависимой грамматики, необходимой для описания форм числа (единственного и множественного) и лица (первого, второго и третьего), а также всех остальных форм соглашений, принятых в английском языке. 2. В контекстно-зависимых грамматиках размывается структура фраз языка, столь ясно представимая с помощью контекстно-независимых правил. 3, При попытке описать более сложные соглашения и обеспечить семантическую со- гласованность самой грамматики теряются многие преимущества разделения син- таксического и семантического компонентов языка. 4- Контекстно-зависимые грамматики не решают проблемы построения семантиче- ского представления значения текста. Анализатор, который просто принимает или отвергает предложение, никому не нужен. Он должен возвращать эффективное представление семантического значения предложении. В следующем разделе будут рассмотрены расширенные сети переходов ATN Rented transition network), с помощью которых можно определять контекстно- ава 13. Понимание естественного языка 575
6 ппедставлення обладает некоторыми преимуществу зависимые языки. Такой ^«матиками при разработке анализаторов. п„ сравнению с контекстно-зависим „,.ио в ATN-анализаторах 13.3. CHirraKCiKJi"!^^^—----------------------------------------- . к-пнтекстно-зависимых грамматик является сохранение простой струя. Альтернативен для коигек™ атда, „ расшнрение зтах правил за счет добавле- туры правил контекстно-нсзав контекстуальные проверки. Такие процедуры вы- ния процедур, выполнявши процессе анализа. Вместо использования граммата- „олняются при испо.тьз=и прав™ едан_го „ множестаенно> цис™ КИ для представления неодушешенные предметы, их можно представлять с по « еХ™ (ftX). связанных с терминальными и нетерминальными символами трам- , мазики Связанные с правилами грамматики процедуры обращаются к этим средствам для присвоения значений и выполнения необходимых проверок. К грамматикам, использующим ! расширения контекстно-независимых грамматик для реализации контекстной зависимости, ! стиосися расширенные грататки фразовой структуры (augmented phrase structure) ‘ [Heidom. 1975], [Sowa, 1974], расширения логических грамматик (augmentation of logic gram- ; mar) [Allen, 1987) и расширенные сети переходов ATN (augmented transition network). i Этот раздел посвяшен ATN-анализу и вопросам разработки простых ATN-анализаторов i для предложений из “мира собак", о которых шла речь в подразделе 13.2.1. Будут выполне- I ны первые два шага процедуры, проиллюстрированной на рис. 13.2: создание дерева раз- бора и его использование для построения представления смысла предложения. В этом при- мере будут использованы концептуальные графы, хотя ATN-анализаторы можно также [ строить на основе сценариев, фреймов и логических представлений. I 13.3.1. Анализаторы иа основе расширенных сетей переходов Расширенные сети переходов усиливают возможности обычных сетей за счет добавле- ния процедур, связанных с дугами сети. Эти процедуры выполняются ATN-анализатором при проходе соответствующих дуг. Процедуры могут присваивать значения и выполнять 1 (нап^^п ПрНВ0ДЯШИ- к запрещению перехода при несоблюдении заданных условий ! С помлн!1.к1С^аШеНИИ ° использовании форм единственного и множественного числа), тши виутеннего сХаити^Можно СТ1Ю|,ТЬ дерево разбора, применяемое для генера- "37Z7 ° ПрС;1СТамс'"“ “-ела предложен^. лами (в то^числеТегь’поХлХ^ Т"НалЬНЫМИ- так " нетерминальными симво- ванисм его морфологического гапия НапР1|мер, слово можно описывать с использо- ственное или множественное чис Э ° помощь1° процедуры задавать часть речи, сдии- описываются аналогично. Именн™ ЛИЦ° ” 'Я' НстеРмииальнь'С символы грамматики ным, его числом и лицом Как т” конструкция описывается артиклем, существнтель- нредставить с помощью фреймопот^л HafbHue’ так и нетерминальные символы можно Значения утих ячеек могут залзня-г.° Н°И СТ1*УКТУРЬ1 с именами ячеек и их значениями пример, первая ячейка фрейма ппгп,,ПР°иеДУ₽Ь1 Ш|И Указатели на другие струкгуры- На' именной конструкции. На рис в г, °'Кенш' можст содержать указатель иа определение sentence, noun phrase и verb nhra?№aH“ фРеймы Для нетерминальных символов слоя дсяьные слова представляются с ° " °"исанной ВЬ|ше простой грамматике. РС определяется фреймом, в кото ощью “«алогичных структур. Каждое слово в ___________________________ром УиДзано, к какой части речи оно относите*' 576 -----------------------------------------------------------—" просы решения аадач искусственного интеллект*’
огичсский корень и существенные грамматические свойства. 0 нашем примере 0ОрФол о проверить только соответствие форм единственного и. множественного чне- Ие0°х go;iee сложных грамматиках могут учитываться также лицо и другие свойства. за В записях словаря может содержаться определение концептуального графа значе- 0 ЭТИХ а используемое при семантической интерпретации. Полный словарь рассматри- НИЯ С^амматики показан иарис. 13.7. раемои ' н Предложение Именная конструкция Глагольная конструкция Noun phrase: Determiner: Verb- Verb phrase: Noun: Number Number: Object: Рис- S3.6. Структуры для представления нетерминальных символов преою- жения, а также именной и глагольной конструкций bite bites Слово Определение Слово Определение PART_OF_S₽EECH: article like PART_OF_ SPEECH: verb ROOT , a ROOT: like NUMBER: singular NUMBER: plural PART_OF_SPEECH: verb hkes PART_OF_SPEECH:verb ROOT: bite ROOT: like NUMBER: plural NUMBER, singular PART OF.SPEECH: verb man PART_OF_SPEECH: noun ROOT, brte ROOT, man NUMBER: singular NUMBER: singular dog PART_OF_SPEECH: aoun men PART.OF.SPEECH noun ROOT: dog ROOT: man NUMBER: plural_____ NUMBER: singular PART OF SPEECH. article dogs PART OF SPEECH. noun the ROOT' dog NUMBER plural ROOT the___________ NUMBER: plural or smguly Рис. 13.7. Записи словаря для простои ЛТП-сети 577 айа 13. Понимание естественного языка
На рис. 13.8 показана сеть ATN для данной грамматики. С помощью псевдоКо процедуры, выполняемые для каждой дуги. Метками дуг являются как нстермИН£Ла 0!и,Сакь; волы грамматики (как и на рис. 13.4), так и числа, используемые для указания фуп НЫе С|,Л'- занных с каждой дугой. Для прохода дуги эти функции должны быть успешно вы с&я. При обращении к сети нетерминального символа анализатор создает О;1^енЬ[, Например, при входе в сеть noun phrase создается фрейм noun_phrase ФРеЙ^ ма заполняются функциями для этой сети. Этим ячейкам могут быть приев ИК,< Фрей- ' грамматических свойств или указатели на компоненты синтаксической НЫ ЗИаЧенйя i символ verbjahrase может состоять из символов verb н nounjohrase^^^^1'1 (т.е »/>,л«я..тяет полученную CTDVKTvnv. ₽НдостйЖе. ' sentence: ним конечного состояния сеть возвращает полученную структуру. function sentence-1; begin NO(JNJ>HRASE := структура, возвращаемая noun_phrase_rerb_phrase___ сетью noun_phrase; Г J \ /5 \S|J SENTENCE-SUBJECT := NOUN_PHRAS£- end. function sentence-2; beyERB PHRASE := структура, возвращаемая " сетью verb_₽hrase network; «NOUN PHRASE.NUMBER = ‘ VERB_PHRASE.NUMBER ^SENtInCE.VERB PHRASE:=VERB PHRASE; return SENTENCE' end else fail end. noun.phrase: function noun .phrase-1; begin ARTICLEфрейм определения для следующего входного слова; it ARTlCLE-PART OF SPEECH=ar1icle IhenNOUN.PrfRASE.DETERMlNER := ARTICLE else fail end. р“с'л8л™-^.<ш™„гай,я function noun_phrase-2; begin NOUN := фрейм определения для следующего входного слова; if NOUN.PART OF SPEECH-существительное и NOUN.NUMBER согласуется с NOUN.PHRASE.OETERMlNER.NVMBER then begin NOUN.PHRASE.NOUN := NOUN; NOUN PHRASE.NUMBER := NOUN.NUMBER return ROUN PHRASE end else fail end. проверки соответствия числа и построения дерева разбора 575 ~Чаот^. 1/ л тельные вопросы решения задач искусственного интеллект3 function noun.phrase-3 begin NOUN := Фрейм определения дня следующего входного слом; if NOUN.PART_OF_S₽EECH= существительное (ben begin NOUN PHRASE.OETERM1NER := unspecified; NOUNPHRASE.NOUN := NOUN N£>VN-PHRASE NUMBER NOUN.NUMBER end else tail end. verb_phrase: function verb .phrase-1 begin VERB := фрейм определения для следующего входного слова; if VERB.PART_OF_SPEECH=verb then begin VERB PHRASE.VERB :=VERB; VERB.PHRASE.NUMBER :=VERB.NUMBER; end; end. function verb_phrase-2 begin NOUN.PHRASE := структура, возвращаемая сетью noun .phrase; VERB.PHRASE.OBJECT := NOUN.PHRASE; return VERB PHRASE Рис. 13.8. (Окончание) function verb_phrase-3 begin VERB := фрейм определений для следующего входного слове: tf VERB.PART_OF_SPEECH=verb then begin VERS .PHRASEVERB =VER8, VERS PHRASE NUMBER :=VERB.NVMBER; VERB.PHRASE. OBJECT := unspecified; return VERB.PHRASE; end; end. При проходе дуг с метками noun, article и verb считывается следующее слово из входного потока и извлекается его определение из словаря. Если это слово относится к несоответствующей части речи, переход по дуге не совершается. В противном случае возвращается фрейм определения. На рис. 13.8 фреймы н ячейки обозначены идентификатором ФРЕЙМ. ЯЧЕЙКА, в ча- стности ячейка числа фрейма глагола обозначена VERB. NUMBER. В процессе разбора каждая функция строит и возвращает фрейм, описывающий соответствующую синтакси- ческую структуру. В этой структуре содержатся указатели на структуры, возврашземые сетями более низкого уровня. Функция самого высокого уровня (уровня предложения) возвращает структуру sentence, представляющую дерево разбора входного потока. Эта структура передается семантическому интерпретатору. На рис. 13.9 показано дерево грамматического разбора, возвращаемое для предложения The dog likes man . На следующей стадии обработки естественного языка на основе полученного дерева разбора (наподобие представленного на рис. 13.9) строится семантическое представле- н,,е знаний о предметной области и смысла предложения. ^ава 13. Понимание естественного языка 579
Рис. 13.9. Дерево грамматического разбора для предложения “The dog likes man ", возвращаемое A.TN-анализатором 13.3.2. Объединение знаний о синтаксисе и семантике Семантический интерпретатор строит представление значения входной строки, пере- мещаясь по дереву грамматического разбора от корневого узла sentence. В каждом узле он рекурсивно интерпретирует его дочерние узлы и объединяет полученные результаты в о шем концептуальном графе. Например, семантический интерпретатор строит прсд- “ символа verb_phrase, формируя рекурсивные представления дочерних узлов ~vn .JI l^Un~P raSe И °^ъслиняя их шт представления глагольной конструкции. Рс- Рекvne^е';ЖГСЯ узлу sentence и объединяется с представлением символа subject. разбора НекотлеКраЩаСТСЯ "Р” достиже,,ии терминальных элементов дерева ™ :РПр,”Х₽ьным Т0М ЧИСЛС -—аующпе существительным, глато- нести артикли, не имс'к'Гnn'Zr. н'1'™'1""'” понятий из 6азы знаний. Другие, в час, деляют другие понятия на графе™ С°°твстстаия с понятиями базы знаний, но опре- ний о ‘‘мире собак". К hoh”^ семантичсский интерпретатор использует базу зна также действия like и Ь/(еЯэ1ЯМ ЭТ°” ^азы Знани^ относятся объекты dog и man. ’ показанной на рис. 13.10 ™ Иоиятия описываются с помощью иерархии тип0®' 5 8 0 Часть Vи ~~*** ельные вопросы решения задач искусственного иителле,ста Рис. 13.10. Иерархия типов для приме- ра из “мира собак" Помимо понятий необходимо определить отношения, которые будут использованы в концептуальных графах. В нашем примере участвуют следующие понятия. • Символ agent (агент) связывает понятие act (действие) с понятием типа animate (одушевленный). Агент определяет отношение между действием и одушевленным объектом, инициирующим это действие. • Символ experiencer (носитель состояния) связывает понятие sfate (состояние) с понятием типа animate (одушевленный). Он определяет отношение между психи- ческим состоянием и его носителем. • Символ instrument (инструмент) связывает понятие act (действие) с понятием entity (сущность) и определяет инструмент, используемый для выполнения действия. • Символ object (объект) связывает понятие event (событие) или state (состояние) с понятием entity (сущность) и представляет отношение “действие-объект". • Символ part (часть) связывает понятия типа physobj (физический объект) и опре- деляет отношение между целым и его частью. При построении интерпретации особо важная роль отводится глаголам, поскольку они определяют отношения между подлежащим, дополнением и другими компонентами предложения. Каждый глагол можно представить с помощью падежного фрейма (case frame), определяющего следующие данные. 1. -Лингвистические отношения (агент, объект, инструмент и т.д.), соответствующие данному глаголу. Например, транзитивные глаголы связаны с объектом, а незраи- зитивныс — нет. 2. Ограничения на значения, которые могут присваиваться любому компоненту па- дежного фрейма. Например, в падежном фрейме для глагола bites утверждается, что агент должен относиться к типу dog. Тогда предложение Man biles dog будет отклонено как семантически некорректное. з. Используемые по умолчанию значения компонентов падежного фрейма. Во фрей- ме глагола “bites” для понятия, связанного с отношением instrument, по умолча- нию используется значение teeth. '—----------------------------------------------------------------—-------------- ГЛава 13. Понимание естественного языка
Определим действия, позволяющие строить семантическое представление правил или процедур для каждого потенциального узла дерева грамматического разбора. В нашем примере правила описываются в виде процедур на языке псевдокода. В каж- дой процедуре при неуспешном завершении конкретного теста или объединения данная интерпретация отклоняется как семантически некорректная. procedure sentence; begin вызвать процедуру noun_phrase для получения представления подлежащего; вызвать процедуру verb_phrase для получения представления сказуемого с зависимыми словами; с помощью объединения и ограничения связать понятие существительного, возвращаемое для подлежащего, с агентом графа для глагольной конструкции end procedure noun_phrase; begin ЫЗВегаестейтельно"°иП ЛЛЯ получения представления case ' неопределенный аотикль ™ определяемое существа елинственн°е понятие. определенный артиХ, ™ ЛЬН““' является общим; с понятием -.г.... единственное число: связать марка? множественноГчисло^™ суЩ®«витедьнЫМ; во множественном чис3аТЬ' ЧТ° существите-пьное 582 Масть V л ительные вопросы решения задач искусственного инте'1леК1а J
end case end. procedure verb_phrase; begin вызвать процедуру verb для получения if с глаголом связано дополнение then begin представления глагола; ВЫдополнения^ДУРУ n°Un-Phrase получения представления с помощью объединения и ограничения связать понятие, определяемое дополнением, с дополнением соответствующим сказуемому end end. procedure verb; begin получить падежный фрейм для глагола end. procedure noun; begin получить понятие для существительного end. Артикли не соответствуют понятиям в базе знаний, ио позволяют определить, ка- ким является понятие, связанное с данным существительным: общим нли конкрет- ным. Представление понятий во множественном числе в книге не рассматривается. Их обработка с помощью концептуальных графов описывается в [Sowa, 1984]. С помощью этих процедур для иерархии понятий, показанной на рис. 13.10, н па- дежных фреймов, представленных на рис. 13.11, можно описать действия семанти- ческого интерпретатора, предпринимаемые для построения семантического пред- ставления предложения “The dogs like a man” на основе дерева грамматического разбора, изображенного на рис. 13.9. Последовательность этих действий проиллю- стрирована на рис. 13.12. Числа в скобках в следующем списке соответствуют порядковым номерам на рис. 13.12. 1. Сначала для узла, соответствующего предложению, вызывается процедура sentence. 2. Процедура sentence вызывает процедуру noun_phrase. 3. Процедура noun_phrase вызывает процедуру noun. 4. Процедура noun возвращает понятие, связанное с сущссгв1ггельиым dog (1 на рис. 13.12), 5. Поскольку артикль является определенным, процедура noun_phrase связывает мар- кер#! сэтим понятием (2) и возвращает данное понятие процедуре sentence. 6. Процедура sentence вызывает процедуру verb_phrase. — ____________________________,__________________________________________ Глава 13, Понимание естественного языка 583
Рис. 13.12. Построение семантического представления на основе дерева грамматического разбора 7. Процедура verb_phrase вызывает процедуру verb, позволяющую получить па- дежный фрейм для глагола like (3). 8. Процедура verb_phrase вызывает процедуру noun_phrase, которая в свою очередь вызывает процедуру noun для получения понятия, связанного с существи- тельным тал (4). 9. Поскольку артикль является неопределенным, процедура noun phrase опреде- ляет это понятие как общее (5). 10. Процедура verb_phrase ограничивает понятие entity в падежной рамке и объединяет его с понятием, соответствующим существительному man (6). Эта структура возвращается процедуре sentence. 11. Процедура sentence объединяет понятие dog- #1 с узлом experiencer па- дежной рамки (7). ГенепанияЫяЙ7к°Н11е1ПУаЛЬНЫЙ ГраФ пРедставля^т значение предложения. грамм пониманняКОВЫХ конструкц,1й ““ °то связанная задача, решаемая с помощью про- ЯЗЫКЗ ГеНСра™ ’“ражен.,й требует п, ния. Например отнппюи РР КТН0Г0 ВЫХОда на основе внутреннего представления зна! понятиями. Сп'омощьк>СНИе a9ent °Мачает связь подлежащее-сказуемое между ДвУмЯ товым шаблонам П0дХ0д0в соответствующие слова присоединяются к го образцов предложений или 3™ шаблоны можно рассматривать в качеств ИЛИ‘Ц ФРаг«е"тов, в частности, глагольной и именной кон^' нительные вопросы решения задач искусственного интвллекта
..«и Выходной результат строится путем прохода пл vnu х , Жирования этих фрагментов. Более сложныеподходы ™ " нир - опии о U(.nft<u,« чидлицы к генерированию языковых конст- рукиии сдан =Ж™Ь“ ГР™,МаТПК пРсобР“™™я АЛЯ отображения значения в диапазон возможных предложении [Winograd, 1972) [Alien 1987] в разделе 13.5 будет описан способ программного построения внутреннего представ- деиия текста на естественном языке. Это представление может быть использовано в са- мых различных приложениях, два из которых будут представлены в разделе 13.5. Однако сначала в разделе 13.4 будут описаны стохастические подходы выявления шаблонов и обших закономерностей языка. 13.4. Стохастический подход к анализу языка 13.4.1. Введение В разделе 13.1 был описан принцип понимания языка на основе шаблонов. В разде- лах 13.2 и 13.3 отмечалось, что семантические аспекты языка и связанные с ними знания могут быть представлены фонематическими структурами и описаниями на уровне пред- ложения. В этом разделе вводятся стохастические модели, поддерживающие на этих же уровнях анализ структур на основе шаблонов, обеспечивающий понимание языка. Статистические языковые методы — это приемы, используемые при рассмотрении естественного языка как случайного процесса. В обыденном смысле случайность подра- зумевает отсутствие структуры, определения или понимания. Однако рассмотрение есте- ственного языка как случайного процесса позволяет обобщить детерминистскую точку зрения. С помощью статистических (или стохастических) приемов можно с достаточной степенью точности моделировать как хорошо определенные части языка, так и аспекты, обладающие некоторой степенью случайности. Рассмотрение языка как случайного процесса позволяет переопределить многие ос- новные задачи, связанные с пониманием естественного языка, в более строгом матема- тическом смысле. Например, в качестве интересного упражнения можно выбрать не- сколько предложений из предыдущего абзаца (включая запятые и скобки) и вывести эти же слова в порядке, заданном генератором случайных чисел. Полученный в результате текст вряд пи будет осмысленным. Интересно отметить [Jurafsky и Martin. 2000]. что по- добные структурные ограничения действуют на многих уровнях лингвистического ана- лиза, включая структуры звуков, комбинации фонем, грамматические структуры и т.д. В качестве примера использования стохастического подхода рассмотрим задачу опреде- ления частей речи. Большинство людей знакомы с этой задачей со времен изучения грамматики в школе. Для каждого слова в предложении необходимо определить, к какой части речи оно отно- сится. Если слово является глаголом, то можно указать его наклонение, а также переход- ность. Для существительных нужно определить число. Сложности возникают при обработ- ке слов типа swing. В выражении “output potential swing" (перепад выходного напряжения) это слово выступает в роли существительного, а в выражении suing at the а (ударить по мячу) — в роли глагола. Приведем фразу Пикассо и выделим в н<.й части речи. Art is а |ie that lets us see the truth СУШ. Глагол Артикль Сущ. Мсстоим. Глагол Мсстонм. Глагол Артикль Сущ. '"лава 13. Понимание естественного языка
Для решения задачи опишем ее формально. Пусть имеется множеств ..........wj, например {a, aardwark, .... zygote), и множество частей° Сл°8 скрнпторов Sr^ti..t„). Предложение, состоящее из п слов, —. Это послел РеЧи а из п случайных величия kVj. ИА.Wn- Эти переменные являются слуца(- °®ательцоС1. нами, поскольку могут принимать любое нз значений множества s„. с нек НЫМн ведИч ностью. Дескрипторы Г|, Тг, .... Т„ тоже составляют последовательность °Т°р°й верОя1 личин. Значение случайной величины Г, обозначим через t„ а значение ее Требуется найти наиболее вероятную последовательность дескрипторов * ЧеРез го предложения. То есть нужно найти последовательность t{, t, г ^ЛЯ Сл°а Дани ' Шую значение ' МаКси.мнзиРу1^' Р(Г,=Г„ .... Tn~tn\W,=w,, .... №„=&„). Напомним (раздел 8.3), что зались Р(Х)У) означает вероятность X частую имена случайных переменных опускают и пишут просто П^И ^CJ1qbHh у. ja СХ......(1) | Заметим что если точно известно распределение вероятности, то за достаточно длИ- | тельное время можно максимизировать значение вероятности по всем возможным набо- { рам дескрипторов и получить оптимальный результат для данной последовательности • слов. Более того, если для каждого предложения существует лишь одна корректная по- следовательность дескрипторов, то с помощью данного вероятностного метода ее всегда можно найти. Вероятность этой последовательности будет составлять 1, а вероятность всех остальных последовательностей — 0. В этом смысле статистический подход являет- ся обобщением детерминистского. В реальной жизни из-за ограниченности объема памяти, данных и времени этим точ- ным методом воспользоваться нельзя и приходится довольствоваться аппроксимациями. Далее в этом разделе будет рассмотрено несколько способов аппроксимации (1) (в по- рядке улучшения). Для начала отметим, что (1) можно записать по-другому р('«.............wJ=P(t„ ..., tn, w,.W„)/P(iv.....w ). Поскольку максимум этого выражения находится за счет выбора tj, Тг.--. его мож- но упростить и записать в виде , р('....W.........М= I P('1)P(iv,|f,)P(t!|r„w,)...P(t.|lv.W',t...t„.,)= (2) j ...........w,|t,............tiv w<.w }' ’ Заметим, что соотношение (2) эквивалентно (1). сложно макенмизи* 13.4.2. Подход на основе марковских моделей На практике (как было указано в разделе 8.3) обычно достаточно Именно к ровать вероятностные соотношения, зависящие от многих случайных в достэ- таким соотношениям относится (2). Это связано с тремя причинами- Во’П^0(.йМи ЛРУ' точно сложно хранить вероятность случайной величины, обусловленную экСпонсн^11' гимн случайными величинами, поскольку число возможных вероятностен еслп ально возрастает с ростом количества определяющих факторов. 586 Часть V. Дополнительные вопросы решения задач искусственного и удастся сохранить все значения вероятностей, их достаточно трудно оценить. Оценка обычно делается эмпирически путем подсчета количества вхождений события в размечен- ном врУ^иУ10 обучающем множестве. Если это событие встречается лишь несколько раз, то оценка его вероятности будет неточной. Таким образом, легче оценить вероятность p(Cat[tfie), чем P(cat]the dog chased the), поскольку последняя фраза встречается в обучающем множестве гораздо реже. И, наконец, нахождение цепочки дескрипторов, мак- симизирутошей структуру вада (2), займет очень много времени (это будет показано ниже). Поэтому сначала найдем некоторую удовлетворительную аппроксимацию (2). Введем два основных предположения: P(t,|tp t,.,, W,.w,„) соответствует PUjf,.,) И P(ivJ t........ ' соответствует p(iv,[t,). Эти предположения называются .марковскими (Markov assumption), поскольку они предполагают, что текущее состояние зависит от предыдущих. Подставляя эти прибли- жения в (2), получим (3) Соотношение (3) гораздо удобнее с практической точки зрения, поскольку входящие в него вероятности можно легко оценить н хранить. Напомним, что (3) — это лишь ап- проксимация выражения P(t(.... Гп| W]..wn). которую необходимо максимизировать путем выбора дескрипторов Гь .... 1Л. К счастью, это можно сделать с помощью алго- ритма динамического программирования, известного под названием алгоритма Витерби (Viterbi algorithm) [Viterbi, 1967], [Forney, 1973]. Алгоритм Витерби вычисляет вероят- ность последовательности дескрипторов t2 для каждого слова в предложении, где t — число возможных дескрипторов. На данном шаге рассматриваемая последовательность дескрипторов может быть записана в следующем виде. article article {best tail} article verb {best tail) article noun {best tail) noun article {best tail} noun noun {best tail}, где {best tail} — наиболее вероятная последовательность дескрипторов, найденная ди- намически для оставшихся л-2 слов и данного дескриптора л-1. Для каждого возможного значения дескриптора под номером л-1 и дескриптора под номером л существует своя запись в этой таблице (получается Г последовательностей дескрипторов). На каждом шаге алгоритм находит максимальные вероятности и добав- ляет по одному дескриптору к каждой последовательности {best tail). Этот алгоритм гарантирует нахождение последовательности дескрипторов, максимизирующей соотно- шение (3) за время O(f2s), где t— число дескрипторов, s — количество слов в предло- жении. Если вероятность Р(Г,) обусловлена последними л дескрипторами, а не последни- ми двумя, то работа алгоритма Витерби завершится за время O(t"s). Отсюда видно, по- чему зависимость от слишком большого числа предыдущих значений увеличивает время нахождения максимума. — -----------------------------------------------------------——--------------- Глава 13. Понимание естественного языка 587
„ „чоалспюритсльиой- Для 200 возможных ли.„ К счастью. аппроксим^ <3> "“Х. предназначенного для оцени, верояшосге^ торов и большого обучаюшегомншж дескрипгорь, с точностью 97%, ™ сопоста,^ мощью этого метода можно точносп. марковской аппроксимации наряд , с * точностью работа человека- УДИ» „отоли00ання во многих приложениях. На„ри простотой делают эту «"^Хнаяаиия речи используются так называемые „одели Д мер. в большинстве систем ра .^^„„ческис знания ' для прогнозировав» грош «ngram), обеспечиваю .ф11фаЛ,м _ это простая марковская модель, в которой слов с учетом уже двумя предыдущими словами. При работе с гад™ вероятность текущего слою , „ д оп,|санные выше приемы. Более подпой, моделями используется алг Р [j^fsky и Martin, 2000]. иая информация по этому вопросу содержи 13.4.3. Подход иа основе дерева решений Очевидной проблемой, возникающей при использовании марковского подхода, явля- ется учет только локального контекста. Если вместо задачи определения частей речи для слов в предложении требуется определить действующее лицо, объект действия или залог глаголов, следует учитывать более широкий контекст. Эту проблему можно проиллюст- рировать на примере следующего предложения. The policy announced in December by the President guarantees lower taxes. : (Политика, провозглашенная в декабре президентом, гарантирует снижение налогов.) • На самом деле действующим лицом в данном случае является President, однако про- ; грамма на основе марковской модели, вероятнее всего, назовет действующим лицом ! policy, a announced — глаголом в действительном залоге. Естественно, если бы про- грамма могла задавать вопросы типа “Описывает ли данное существительное неодушев- ленный предмет?” или “Встречается ли слово by на несколько слов раньше рассматри- ваемого существительного?”, то она определила бы действующее лицо гораздо точнее. Напомним, что задача расстановки дескрипторов эквивалентна максимизации выра- жения (2), т.е. ПРМ< -.с.,.%. .tWl wu ятиог^п1» ССКИ увеличенис контекста позволяет находить более точные оценки веро- зовать отаетъ1^'М уточнения вероятностей желательно иметь возможность исполь- Г“НЫе ВЫШе Нематические вопросы. можно комбинироватьПУГЯМИ' Во'пеРвых' ‘•'•зрковскш, подход разделах этой главы Во-йт ПШматичсского разбора, описанными в предыдущих “Да” и “Нет” с помешка ??ЫХ’ можно нахолить вероятности, обусловленные ответами реализация на языке LISP __ГОритма (который подробно описан в разделе 9.3, а его ID3 среди большого множргтт>РаЗДеЛе илн подобного ему алгоритма. В алгоритме хорошую оценку вероятности 1В°Г|росов выбираются только те, которые обеспечивают в том числе в задаче грамматик °ЛеС спожных сдачах обработки естественного язык3- ется работа алгоритма ID3 ока-»?*01'0 раз^°Ра< Деревья решений, на которых основы»3 дели. Далее будет показано vav *Вак>тся б°лее предпочтительными, чем марковские мо шений в задаче грамматического р^°ОрЬ’°Ватъ ^горитм ID3 для построения дерева Ре' 588 Часть - —* пьные вопросы решения задач искусственного интеллекта
выше уже уиоми„ш,ся вопрос Описываетда„нос иый предмет' . Подобные вопросы можно задавать только „ 10м мучас. ссди „,всстио. какие существительные описывают одушевленные или неодушевленные предметы. На самом деле существует способ автоматического разделения множества слов „а ™ классы. Этот прием получил название кластеризации взаимной информации (mutual in- formation clustering). Взаимная информация, распределенная между двумя случайными величинами Хит. определяется следующим образом: Кластеризация взаимной информации для словаря слов начинается с помещения каждого слова словаря в отдельное множество. На каждом шаге с помощью биграм- мы (bigram), т.е. модели следующего слова, вычисляется средняя взаимная инфор- мация между множествами и выбирается разбиение множеств, состоящих из двух слов, минимизирующее потери средней взаимной информации для всех классов. Например, пусть изначально существуют слова cat, kitten, run и green. На первом шаге алгоритма строятся множества {cat}, {kitten}, {run}, {green}. Скорее всего, вероятность появления некоторого слова после слова cat примерно равна вероятности появления этого слова после слова kitten. Другими словами, P{eats | cat}-P{eets | kitten), P{meows\cat) ^P{meows\ktllen). Таким образом, для случайных величин XI, Х2, И, Y2, при которых X1={{cat}, {kitten}, {run}, {green}}, У1 -слово, следующее заХ1, X2={{cat, kitten}, {run}, {green}}, Y2=cnoBO, следующее за X2. Общей информации в Х2 и Y2 не намного меньше, чем в XI и И. Следовательно, сло- ва cat н kitten с большой вероятностью можно сгруппировать. Если продолжить эту процедуру до получения комбинаций всех возможных классов, то получится бинарное дерево. Тогда словам, расположенным в листовых узлах этого дерева, можно присвоить двоичные коды (bit code), описывающие пуп» перемещения по дереву до достижения это- го слова. Такие коды отражают семантическое значение слов. Например. cat=O1100011, kitten=01100010. Более того может оказаться, что коды всех слов, “напоминаюших существительные", в качестве крайнего слева бита содержат 1, а третий бит всех неодушевленных предме- тов тоже равен 1. - Такая новая кодировка слов словаря позволяет анализатору более эффективно зада- «ать вопросы. Заметим, что при кластеризации контекст не принимается во внимание, 'озтому слово book (книга) может быть классифицировано как •напоминаюшее сущест- вительное", хотя в предложении "book a flight” (заказать билет иа самолет) иеобхо- ДИмо рассматривать как глагол. 589 Глава 13. Понимание естественного языка
ий анализ н дрУ™е приложения п 4 4. Грамматически *’,л* Н /этического подход3 бил использован .о МНОГИХ областях компьютерной 1Ц1||. Стохастический подход с1ИТь и в тех сферах, где традиционно применял. ГВИСГОЖ .Тем не менее его МО* "Р ся символьный подход. ов в задачах грамматического разбора впервые Использование ыснности. возникающей в связи с существованием было связано с проблемой нео 1* пред10Жения и необходимостью выбора нескольких возможных интерпр (|в file on the pnnter” (Напечатай файл на наилучше». Например, прелтожс деревьев, показанных на рис. 13.13. принтере) может быть представлено Предложение the file on Артикль Существительное I I the printer Предложение Глагольная конструкция Именная конструкция Print Предложная конструкция Артикль Существительное Предлог the file on Именная конструкция Артикль Существительное Рис. 13.13. Два различных the printer »РГОСВД.,И(Ш „ред1ожтт „Ргт м просы решения задач искусственного интеллекта
В подобной ситуации одних правил грамматики для rmk™, недостаточно. Необходимо учитьжа,,. „?которую “°РрСК™°го "^“ени. иед Toe-vm меопоелслснног-гк ру контекстную и семантическую информа- шно. Такую неопределенность можно разрешить с помощью стохастических методов Для ппиного примера можно использовать то же спок-пт методов, для данни* н ,о жс средство, что и для определения частей ре- _____алгоритм 1U3- ии позволяет предсказать втлятил^. чи, ” ь всР°ятиость корректности пазбооа на осно- ве семантических вопросов о данном предложен,,,,. Если „ прс^ожснии е^еХует неко- торая синтаксическая неопределенность, то можно выбрать предел™, ве^ялюсть корректности которого максимальна. Обычно для использования этого подхода требуется иметь обучающее множество предложений с их корректными представлениями в последнее время специалисты „о статистическому моделированию естественных ЯЗЫК0В активизирован свою деятельность и стали применять статистические методы грамматического разбора без использования грамматики. Хотя принципы работы анали- заторов, ие учитывающих грамматику, выходят за рамки данной книги, следует отме- тить. что они более близки к системам распознавания образов, чем к традиционным принципам грамматического разбора, описанным выше в этой главе. Разбор без учета грамматики дает достаточно хорошие результаты. В экспериментах по сравнению его эффективности с результатами работы грамматических анализаторов на одинаковом множестве предложений разбор без учета грамматики обеспечивает 78% эф- фективности, а с учетом 69% [Magerman, 1994]. Эти результаты достаточно хороши, но их нельзя считать выдающимися. Гораздо важнее другое, Описание грамматики для тради- ционного анализатора требует примерно десяти лет педантичной работы грамотного лин- гвиста, в то время как анализатор без учета грамматики, не использующий жестко закоди- рованной лингвистической информации и основанный лишь на сложных математических моделях, может сам извлекать необходимую информацию из обучающих данных. Более подробная информация по этому вопросу содержится в {Manning и Scbutze. 1999]. Понимание речи, преобразование речи в текстовую информацию и распознавание руко- писного текста— это еще три области, имеющие богатую историю использования стохас- тических методов для моделирования языка. В этих областях для прогнозирования сле- дующего слова чаще всего используется статистический метод на основе модели триграмм. Эффективность этой модели объясняется ее простотой. С ее помощью можно предсказать следующее слово по двум предыдущим. В настоящее время специалисты в области стати- стической обработки языка стараются сохранить простоту и легкость использования этой модели при добавлении грамматических ограничений и более долгосрочных зависимостей. Этот новый подход получил название метода грамматических триграмм (grammatical tri- gram). Грамматические триграммы содержат информацию об основных связях между па- рами слов (такими как подлежащее-сказуемое. артикль-существ1ггельное_ или сказуемое- дополиеиие). Совокупность этих ассоциаций образует грамматику связей (link grammar). Такую грамматику построить гораздо легче, чем традиционную. При этом для нее доста- точно эффективными оказываются вероятностные методы. в работе [Вег-ег и др. 1994] описана статистическая программа Candide, осуществ- ляющая перевод французского текста на английский язык. В ней для разработки вероят- ностной модели процесса перевода использованы как статистические методы, так и тео- № информации. Для ее обучена требуется “ИИ на французском и английском языке. Пр, Р татамн коммерчсской “постав,,мы (а в некоторых случаях и превосходят их) рс >• сс перевода программы Systran 1Ве,се, „ др.. 1994]. Интересно кстема Candide ие выполняет традиционного гра. _ 3Уются только грамматические триграммы и грамматика 591 Глава 13. Понимание естественного языка
- в которых стохастические методы Мод_ указать несколько дать хорошие результаты. К таким 6ол'ее подробно описан в ра6отах Uu^ 135Л1ро^^ 13 5 1 Обучение и ответы на вопросы пппменением технолога» понимания естественного языка является нап11я. Интересным "Р“,ене™ ч,гоп, рассюз или другой фрагмент текста на естесгеещ ние программы. КОТО|“У №М в гааве 6 обсуждались некоторые вопросы предсгавлеМ|, языке н отвечать на вопрос сочетания базовых знаний с ков XКак видно'°рис-13-2, программа можег °Тить ^Хедстттвле’тГГходньтх данных со структурах,и концетпуальиых графов в базе дан. ZZ~,e представления, в том числе сценарии (подраздел 6.1.4), позволяют моде Хвать более сложные ситуации, в то.м числе зависящие от времени. После построения расширенного представления текста программа может интеллектуально отвечать на вопросы о его содержании. Вопрос приводится к внутреннему представлению в проверяется его соответствие расширенному представлению текста. Рассмотрим пример, по- казанный на рис. 13.2. Эта программа может прочесть предложение “Tarzan kissed Jane” (Тарзан поцеловал Джейн) и построить его расширенное представление. Допустим, программе задан вопрос “Who loves Jane?" (Кто любит Джейн?). Вопроси- тельное слово определяет сущность вопроса. При ответе на вопрос со словом who (кто) требуется указать агента действия. Вопросы what (что) требуют найти объект действия. Вопросы how (как) подразумевают определение средств выполнения действия и т.д. Граф для вопроса "Who loves Jane?" показан на рис. 13.14. Узел агента на этом графе помечен вопросительным знаком, указывающим на то, что целью вопроса является оп- ределение агента, Затем эта структура объединяется с расширенным представлением ис- ходного текста. Понятие, связанное с понятием person: ? на графе запроса, дает ответ на этот вопрос: "Tarzan loves Jane" (Тарзан любит Джейн). В качестве примера реализации этого подхода можно рассматривать анализатор на основе рекурсивной семантической сети спуска, реализованный на языке PROLOG и описанный в разделе 14.9. | person: ? | [person: "jane"[ вопроса "Who loves Jane?" Puc'1314 Ктчетушшый граф для 13.5.2. Интерфейс для базы данных является получение погт^ ПРИ разработке программ понимания естественного языка -_______ достойных знаний о предметной области. Современные техноло- тельные вопросы решения задач искусственного интеллект
ГИИ применяются только для узких предметных областей с '' й этому критерию удовлетворяют предложена г W определенной семяи- Гейсов а,|Я 6аз даННЫХ’ Понимающих естественный 1 “Я“ННЫС с Р“Р^°™ой интер- феИС л^.иип хпамятся run»». ег снныи язык. Несмотря на то что в базах данных обычно хранятсягатаитскис объемы информации, эта информация имеет поста- точно и связана с узкой предметной областью. Более того, comL- тика да"нь х 0 ' определена. Эти свойства наряду с возможностью пере- дачи в базу данных запроса на естественном языке делают интерфейс для такой базы данных важным приложением технологии понимания естественного языка задача такого Интерфейса - перевести вопрос с естественного языка в формат стан- дартного запроса на языке базы данных. Например, с помощью такого интерфейса во- прос "Who hired John Snuth. (Кто нанял на работу Джона Смита?) можно перевести в запрос на языке SQL [Ullman, 1982] следующего вида. SELECT manager FROM MANAGER_OF_HIRE WHERE EMPLOYEE='John Smith' При выполнении такого преобразования программа должна не просто выполнить ис- ходный запрос. Ей также необходимо решить, где выполнять поиск в базе данных (отношение MANAGER_OF_HIRE), выбрать имя поля (MANAGER) и ограничения для дан- ного запроса (EMPLOY ЕЕ= 'John Smith'). Эта информация не содержится в исходном вопросе. Ее требуется найти в базе данных на основе сведений об организации этой базы и понимания содержания вопроса. В реляционной базе данных (relational database) данные связаны отношениями между сущностями различных доменов. Предположим, что необходимо построить базу данных сотрудников, в которой нужно будет находить зарплату каждого сотрудника и опреде- лять, кто принял его иа работу. Эта база данных должна состоять из трех доменов (domain) или наборов сущностей: менеджеров, сотрудников и зарплат. Эти данные мож- но связать двумя отношениями: employee_salary, связывающим сотрудника с его зарплатой, и manager_of_hire, связывающим сотрудника с его менеджером. В реля- ционной базе данных отношения обычно представляются в виде таблиц, в которых пере- числены экземпляры реализации отношения. Столбцам таблицы прн этом присваиваются имена, которые называются атрибутами (attribute) отношения. На рис. 13.15 показаны таблицы для отношений employee_salary и manager_of_hire. Отношение man- ager_of_hire имеет два атрибута — employee и manager. Значения отношения это пары сотрудник-менеджер. manager_of_hire: employee_salary: employee manager employee salary John Smith Alex Barrero Don Morrison Jan Claus Anne Cable Jane Martinez Ed Angel Jane Martinez Ed Angel BobVerott John Smith Alex Barrero Don Morrison Jan Claus Anne Cable $35,000.00 $42,000.00 $50,000 00 $40,000.00 $45,000.00 Puc. 13.15. Два отношения из базы данных сотрудников Если предположить, что каждому сотруднику соответству нсджер и зарплата, то имя сотрудника можно использоват уникальное имя, ме- качестве ключа (key) 593 Глава 13, Понимание естественного языка
Один атрибут может выступать ключом . В ‘ХаХний Базз Данных возвращает указанное з„а,^ значение «и "“^ХГмежДт' ключами и лр>™и атрнбутамн можно £ целевого атрибута-Взаимосмз способами, включая биографы О^псп,^ бриить графически f“““£|lman. 1982] и Оиагроомы потоков банных <data подхода позволяют представить связь ключей с виде направзеивого^сш.^ щ счет включения диаграмм этих взаймы Кошкптумьные графим» данных, определяющее эту связь, обозначается связей [Sow- МЫ- О™™™* т1ОВХИЯ,. Атрибуты отношения - это понятия в ков_ помощью ромба с _«даны от ключей к другим атрибутам. Графи лляотнопгекин ec₽loyee_salary и r3anager_of_hire “супшосгь-отаошенне TJX преобразования вопроса на английском языке к виду формального запро В пропетое npewp=~~~- соде^аш>1О ответ „а этот вопрос, поле, значение ю Х^^Хашапюя. и значения ключей, определяющих это поле. Вместо пр,. Х^^Х^Хна английском языке иа язык базы данных его сначала «обходу. ^Х^естГХбмее выразительный язык, в частное™, язык концептуальных графов. ЭгоУео&одамо поскольку многие вопросы на естественном языке могут трактоваться ши требовать дополнительной интерпретации для получения хорошо структурированного запроса к базе давиых. Именно этому н способствуют более вырази трикниг галп< представления- Интерфейс взаимодействия с базой данных должен разобрать и интерпретировать запрос. представив его в виде концептуального графа, как было описано выше в этой гзаве. Затем этот граф объединяется с информацией из базы знаний с помощью опера- ций объединения и ограничения. В нашем примере необходимо обрабатывать запросы мдя- “Who hired John Smith?" (Кто нанял на работу Джона Смята) ням “How much does John Smith earn?" (Сколько зарабатывает Джон Смит). Для каждого потенциаль- ного запроса нужно хранить граф, определяющий его сказуемое, и все связанные с этим восфосом диаграммы “сущность-связь". Запись базы знаний для глагола hire по- казана на рве. 13.17. т Рис. 13.17. Запись базы знании сия просов о “нанимателе "
Семантический интерпретатор строит граф _ еГо с соответствующей записью "3 базы ^шйШе . отражающим связь ключей с целью вопгаТ ГР“* с’'швога- для формирования запроса к базе данных НаоиГи в " Пв* жао1ам- яопроса “Who hired John Snuthr ("Кто нанял на ра^Х *“ объединения с элементом базы знаний. no.ajaH^^'X^j^l' доказан запрос SQL. сформированный иа основе этого За11т^ Р"С “ “ ствутошей записи, целевое поле н ключ для загтп» , ^*3^ Заметим, что имя соответ- cTB’\IMJ ^ги сведения изв-м^яи-гг^е «и запРоса в «опросе на естественном языке не Указаны- -тги сведения извлекаются из базы знаний. Sa£CTMN<*£0 FROMMWiAGS* CX.rtSE WBEBBW® = "jchn жЖ* Запрос на йзьие SC'_ Рис. 13.18. Получение мяросп я «ие «явных с яомошь» графа. иреа ста&ииощего вопрос на еалествемлом языке Как видно нз рис. 13.18. в исходном вопросе об агенте и объекте не ссяулновт- кой информации, за исключением тоге ' ’vr'‘ rierson- лх. , - -е.зтмсям- ооъединитъ этот граб с элементом оазь _ ею, К. * _ ственяо. Дм волы сначала неооходимо привести к - ,,.цмг талое, выполнения проверки типов в исходном запросе можно “• вер^мю Если john smith не относится к типу еп?р/оуее. то вопрос должен^ Л некорректных, и программа должна это автоматически<ич>елел^ нежяое оош- После построения расширенного графа запроса пр0<т'в*М^**^Ж^: связы- ^не. помеченное символом ?. и огфеде»сг- что отношение вападе... — - “** ключ с этим понятием. Поскольку ключу [ПХ>с является корректным, и программа может ; б** данных. Преобразование графа “супшостъ-связь в запрос -Футом языке выполняется достаточно просто. j6om 595 Елана 13. Понимание естественного язык j
,.„„стой руст использование подхода „ Хотя этот пример очень “"„одействия с базой данных. В нашем ,1р^ ППЯ построения интерфейса В концептуальные графы, но это далек' Р' ^:ХХие«ь.кииреДИ-В. 1353. извлечение информанииисистемы автоматического резюмирования для Web - World Wide Web связано много интерес! ых задач и возможностей С технологией World » „ программ понимания естественного языка применения искусственньного программного обеспечения является резкь Одной из основных задач Web. „нрование ннтересньк мат^иалов^ по ключевым словам или с помощью других При нахождении инф р ’ е1Ю извлечения информации (information extraction sys- лес сложных ЭИ)Т текст „ прореферировать его с учетом заданной наперед tern) должна подучил,о6ласж Она должна найп1 полезную информацию, связан- ±c ойастью, и закодировать ее в виде, удобном для представления ко- ную с этой вреда „.„„я я структурированной базе данных. вечному пользователю или сохранения в шрук.эн ж В отличие от систем глубокого понимания естественного языка, система извлечения информации “просматривает” текст в поиске соответствующих разделов и концентриру. ет свое внимание только на обработке этих разделов. Например, система извлечения ин- формации может резюмировать информацию из предложении о работе в области ком- пьютерных наук. Вернемся к примеру, приведенному в разделе 13.0. Пример объявления о вакансиях в области компьютерных наук “Факультет компьютерных наук университета Нью-Мексико... проводит конкурс на заме- щение двух должностей профессора. Требуются специалисты в следующих областях: программное обеспечение, в том числе анализ, проектирование и средства разработки...; системы, включая архитектуру, компиляторы, сети... Кандидаты должны иметь степень доктора наук по специальности.,. На факультете выполняются международные проекты в области адаптивных вычислений, искусственного интеллекта, поддерживаются тесные связи с институтом Санта-Фе и не- сколькими национальными лабораториями... ” Система извлечения информации может получать важные сведения с помощью по- добных предложений н заполнять шаблон определенной структуры. Пример частично заполненного шаблона Организация: факультет компьютерных наук университета Нью-Мексико I ород: Albuquerque Штат: NM 87131 Описание вакансии: должность профессора ТпеЛ.тм.Май квалиФикация: степень доктора наук по специальности,.. ки в том мь навь1ки* У'Челлс использовать программное обеспечение и средства разра ° КИ. в том числе для анализа и проектирования,.. Опыт практической деятельности: ведения об организации: (текст прилагается) 596 Часть V. Дополнительные ВоПросы решенИя задач искусственного интелл^а
В первых системах обработки данных на естественном „ пли использовались самые разные подходы, от тпапипил ЫКе ДЛЯ извлечсния чнформа- побный семантический анализ и снабженных полным С„ННЬК Средств' выполняющих нод- „редложения. до систем, использующих методы сравнен нтаксическим описанием каждого ровном лингвистического анализа и базой знаний О кл'очевЬ1х нс обладающих систем выявились очевидные недостатки этих клайнихТ™ “ Процессе Разработки таких цссс извлечения информации описан в (Cardie, 1997] след^Хм 6™°° СМ,ременный г1ро‘ Текст: факультет компьютерных наук университета м ” конкурс на замещение двух должностей профессора “™,Мексик0- проводит следующих областях... Р ™ Р ’ Требуются специалисты в 2. разметка и тэгирование: факультет/попи компьютерных/adj наук/поцп 3. Диализ предложения: факультет/subj проводит/verb конкурс/obj... 4. Извлечение: Организация: факультет компьютерных наук... Описание вакансии: должность профессора 5. Объединение: Нью-Мексико=№^... 6. Генерация шаблона ; результат приведен выше. Хотя детали архитектурной реализации системы извлечения информации могут раз- личаться в зависимости от приложения, последовательность выполнения основных функций при этом не изменяется. Сначала каждое предложение, найденное на Web-узле, подлежит разметке и тэгиро- ванию. Для решения этой задачи можно использовать стохастический подход, описан- ный в разделе 13.4. Затем следует стадия анализа предложений, на которой выполняется грамматический разбор и выделяются глагольные группы, существительные и другие грамматические конструкции. После этого на этапе извлечения информации выполняет- ся поиск семантических сущностей, соответствующих данной области. В рассматривае- мом примере на этом этале определяется название организации, вакансии, требования к кандидату и т.д. Стадия извлечения информации — это первый этап процесса, полностью определяе- мый спецификой предметной области. На этой стадии система выявляет специфические отношения между соответствующими компонентами текста. В нашем примере в роли организации выступает факультет компьютерных наук, а его местоположением считает- ся университет Нью-Мексико. На стадии объединения строится список синонимов и вы- I полняется разрешение анафор. В частности, символы Нью-Мексико и NM определяются i как синонимы, а в процессе резолюции анафор факультет компьютерных иаук из первого ! предложения связывается со словом “факультет” в последующем тексте. I На этапе объединения применяется вывод на уровне рассуждений, который в ивою । очередь вносит вклад в генерацию шаблона. В процессе такого вывода определяется ко- ! личество различных отношений в тексте, фрагменты информации связываются с полями ! шаблона, а затем строится и сам шаблон. i Несмотря на значительный прогресс в области развития искусственного интеллекта, современные системы извлечения информации тоже нс лишены про лсм. о первых, можно значительно улучшить точность и робастность этих систем. Ошибки в процессе извлечения информации скорее всего связаны с недостаточным пониманием исходного «кета. Во-вторых пос^оеиие систем извлечения информации шт,. нощтн нон области может оказаться достаточно сложным и ресурсоемким процессом [Card.e, 1997J. 597 Глава 13. Понимание естественного языка
„„„.„тированной на "Рсдметную о6ласть природой за,. Обе эти проблемы «язан“ "Хчении информации можно улучшить за сч^ информации- П^ие« на ст11ую область, однако „одиф"»- Хи- линоисгичееких ^очн то процесс. ФНКа. ция лиигнистичсских знании ®РУ у существует множество интересных приложений ! Тем нс менее в на<яо^ Р )(др 1997J „редстввлеиа система подц I „„„санной „ др, 19951 описана система анализа медицинских * ! страхования жизни. В [Ьо®г страхован!.»- Известна программы анализа г» i точек пациентов. T*“ ^.„рования (MUC-5. 1994]. системы автоматической клае. ! зетных публикации и их Р (Ho|owczak и Adam. 1997] и программы извлечет,, сификацни юридических д У» вакансий [Nahm и Mooney, 2000]. информации из компьютерных 13.5.4. Использование алгоритмов обучения для обобщения извлеченной информации Рассмотрим приложение, в котором многие описанные в этой главе идеи объединены с Щ. горищами машинного обучения, изложенными в разделах 9.3 и 15.13. В работах [Cardie и Mooney 1999] и [Natan и Mooney. 2000) высказана идея о том, что процесс извлечения и,, формации из текста можно обобщил, за счет применения алгоритмов машинного обучения. Суть подхода достаточно проста. Полностью или частично заполненные шаблоны со- бираются с соответствующих Web-узлов. Эта информация сохраняется в реляционной базе данных, на основс которой с использованием алгоритмов обучения наподобие ID3 или С4.5 строятся деревья решений. Как известно из раздела 9.3, подобные деревья ре- шений могут отражать неявные связи в наборе данных. (Этот прием называют "добычей" данных — data mining.) Предполагается, что эти вновь выявленные зависимо- сти можно использовать для уточнения исходных шаблонов и базы знаний, принимаю- щей участие в процессе извлечения информации. Приведем пример информации, кото- рая может быть извлечена в процессе анализа вакансий в области компьютерных наук. Если требуется специалист на факультет компьютерных наук, значит, опыт работы с конкретной платформой не обязателен. Или, если имеется вакансия профессора в уни- верситете, значит, кандидат должен иметь опыт исследовательской работы. Более под- робно эти вопросы освещены в [Nahm и Mooney, 2000]. 13.6. Резюме и дополнительная литература след^ет из э™й главы, существует множество подходов к определению грамматик и лов бмпиРеД710/КеНИ1) На естественном языке. В качестве типичных примеров таких подхо- дцы бьГГ^' ШрК0ВСК11с м°Д*ли и ATN-анализаторы. Грамотные студенты зований (transform^1 V ДруГПМИ возможностями. К ним относятся грамматики преобра- дежные грсишати^с^^1 Пиитические грамматики (semantic gramm^M* " Функциональные ep^tamumt (function : НОЙ структуры или смирил грамматиках преобразований для представления глуб ] Такую глубинную craw™ 1редложення используются контекстно-независимые прав1 . состоящего не толь^>^У М0ЖН° ПрСдСтавитъ в виде дерева грамматического разбор • наборы символов именуемых ИНалЬнь1Х и нетерминальных элементов, ио и включакЯЯ именуемых графическими Л1аркерауи (grammaticai marker). С поМО , джеин) и Jane is liked by Тот (Джсии любима Томом) имеют одинаковую глубинную но различную поверхностную структуру. знаковую глуоинную, но Правила трансформации применяются к самим деревьям разбора. С их помощью вы- полняются проверки, требующие глобального контекста, и строится удобная поверхност- ная структура- Например, с помощью правила преобразования можно проверить, что число ддя узла, представляющего подлежащее, соответствует числу сказуемого. С помощью пра- вил трансформации простую глубинную структуру можно отобразить в различные поверх- ностные структуры, заменяя действительный залог страдательным или утверждение вопро- сом. Хотя грамматики преобразований подробно не описаны в этой книге, они являются важной альтернативой для грамматик описания структуры неоднозначных фраз. Исчерпывающее описание грамматик и методов разбора естественного языка приво- дится в [Winograd, 1983]. В этой книге особое внимание уделено грамматикам преобра- зования. В [Allen, 1997] содержится обзор проектных решений программ понимания ес- тественного языка. Еще одним источником по вопросам обработки естественного языка, затронутым в этой главе, является книга [Harris, 1985]. Рекомендуем также ознакомиться с [Gazdar и Mellish, 1989]. В [Charniak, 1993] представлены материалы по применению статистических методов для анализа структуры языка. Семантический анализ естественного языка связан с решением многих сложных во- просов, относящихся к представлению знаний (глава 6). Эти вопросы затрагиваются в [Charniak и Wilks, 1976]. Из-за сложности моделирования знаний и необходимости учета социального контекста в процессе анализа естественного языка многие авторы подни- мают вопрос о возможности применения этой технологии за пределами ограниченных предметных областей [Searle, 1980], [Winograd и Flores, 1986], [Smith. 1996]. В работе [Schank и Riesbeck, 1981] задачи понимания естественного языка решаются на основе технологии концептуальной зависимости. В [Schank и Abelson, 1977] обсужда- ется роль структур организации знаний более высокого уровня в программах обработки естественного языка. Значение контекстуальных знаний в моделировании рассуждений отмечается в [Searle, 1969]. В [Fass и Wilks, 1983] предложена теория семантического предпочтения (semantic preference theory), которая может стать основой моделирования семантики естественного язы- ка. Семантическое предпочтение — это обобщение падежной грамматики, допускающее пре- образования падежных фреймов. Эго обеспечивает большую гибкость семантики представле- ния, а также возможность представления таких понятий. как метафора и аналог™ Полное описание иерархии Хомского читатель найдет в [Hopcroft и Ullman, 1979]. Концептуальные графы и их применение при моделировании семантики баз данных опи- саны в [Sowa, 1984]. пкпаботки языка описано в работах [Jurafsky и Современное состояние технологии обработки языка описан н л/ Manin, 2000], [Manning и Schutze. 1999], [Cole, 1997] и в зимнем номере журнала А/ M%°oS9’7сХвания И тенденции в обпастп традиционной, так Н со стохастической точек зрения р/ ^Association for °нференцнй по искусственному интеллекту t 7Р o,nputational Linguistics. нительные вопросы решения задач искусственного интедлеКТ Глава 13. Понимание естественного языка 599
13 7. Упражнения------------------------- - ------~-------------7Гс,сдуюш..х пред'южснии как синтаксически нско ) классифицируй кЖЖ “У /бессмысленное; осмысленное, но неверное ное; синтаксически к»РР^™ • „-ед , оженил выявляется каждая из этих Проблем, ное. Когда в процессе "окимаи к Colorless green ideas sleep lunouSl>. Fruit flies like a banana Dogs the bile man a. president of the USA. George Washington was thi tilth pas This exercise is easy nctnnus's garden in the shade. A want to be under the sea tn an octopus sg«u , Опишите структуры представления и знания, необходимые для понимания следу», ших предложений. The brown dog ate the bone. Attach the large wheel to the axle with the hex nut. Mary watered the plants. The spirit is willing but the flesh is weak. My kingdom for a horse. 3. Выполните разбор следующих предложений с использованием грамматики из “мира со- бак”, описанной в подразделе 13.2.1. Какие из этих предложений недопустимы? Почему? The dog bites the dog. The big dog bites the man. Emma likes the boy The man likes. Bite the man. 4. Дополните грамматику из “мира собак’’ таким образом, чтобы она включала описа- ние недопустимых предложений из упражнения 3. 5. Выполните разбор каждого из предложений с использованием контекстно-зависимой грамматики из подраздела 13.2.3. The men like the dog. The dog bites the man 6. Постройте дерево грамматического разбора для каждого из следующих предложе- ний, При этом вам придется дополнить простые грамматики более сложными лин- гвистическими конструкциями, такими как прилагательные, наречия и вводные кон- струкции. Если предложение допускает несколько вариантов разбора, постройте диа- каждого 113 ни* и объясните, какая семантическая информация нужна для выбора правильного варианта. Типе flies like an arrow but frmt flies ]lke a banana. Tom gave the big. red book to Mary on Tuesday Reasoning ls an art and not a science 10 err is human, to forgive divine. * Д^^олните гпзммзтшгу m 11 ™нсВДК11„;гУ™е7:“гco6aE”вию™ в нес прилагательные и именные вст: используйте пекгпен ° ПрилагательнЬ1е в английском языке не имеют числа. Со- зультат, либо прнлагатель °е ПрЭВИЛ0 a^ective_list, возвращающее либо пустом Ре ^вьте эту грамматику r вН0С’ 33 К0тоРЬ1м следует список прилагательных. Пред у В виде сети переходов. 600 V л' ~ ' ——- _ . _ _ _ - еДьные вопросы решения задач искусственного интеллекТ
8. добавь следующие контекстно-независимые правила к фамматпке из “мира собак" НЗ подраздела 13.2.1 . Представьте результирующую грамматику в виде сетей Перехода. sentence^noun_phrase verb_phrase prepositionalohrase pf0posftiondl_phrase4r-b-preposition noun_phras& preposition , preposition <->t о, preposition^on. 9- разработайте ATN-анализатор для грамматики из “мира собак” с прилагательными (упражнение 7) и вводными фразами (упражнение 8). 10- Определите понятия и отношения в концептуальных графах, необходимых для пред- ставления грамматики из упражнения 9. Определите процедуры построения семан- тического представления на основе дерева грамматического разбора. 11. Дополните контекстно-зависимую грамматику из подраздела 13.2.3 для обеспечения проверки семантического соответствия между подлежащим и сказуемым. А имен- но — люди не должны кусать собак, хотя собаки могут либо любить, либо кусать людей. Выполните соответствующую модификацию ATN-грамматики. 12. Дополните ATN-грамматику из подраздела 13.2.4, включив в нее вопросы who и what. 13- Объясните, как марковские модели из раздела 13.4 можно комбинировать с символь- ными подходами к пониманию языка, описанными в разделах 13.1-13.3. 14. Дополните пример интерфейса взаимодействия с базой данных из подраздела 13.6.2, что- бы иметь возможность отвечать иа вопросы вида “How much does Don Morrison earn?”. При этом потребуется дополнить грамматику, язык представления и базу знаний. 15. Для предыдущей задачи разместите слова, в том числе и знаки препинания, в слу- чайном порядке. 16. Допустим, что наряду с другими сотрудниками в отношении employee_salary (подраздел 13.6.2) перечислены менеджеры. Дополните этот пример таким образом, чтобы получить возможность обрабатывать запросы вида Find any employee that earns more than his or her manager” (“Найдите сотрудников, которые зарабатывают больше, чем их работодатели”). 17. Как стохастический подход из раздела 13.4 можно объединить с методами анализа базы данных из раздела 13.5? 18. Использование стохастического подхода для изучения образов, содержащихся в ре- ляционных базах данных, — важное современное направление исследовании, кото- рое иногда называют "добычей данных’ (data mining) (см. раздел 13.3). ак можно использовать этот подход для ответов на запросы к реляционным базам данных, по добные приведенным в разделе 13.5? 19. На основе материала из раздела 13.5 разработайте систему извлечения информации Для некоторой области знаний, которую можно использовать в ^Лава 13. Понимание естественного языка 601

Часть VI Языки и технологии программирования для искусственного интеллекта Карта — это не территория: имя — это не сам объект. — Альфред Коржибски (Alfred Korzybski) Чему я научимся.. кроме корректного использования нескольких средств? — Гари Снайдер (Gary Snyder), Языки, их понимание и уровни абстракции В части VI мы сначала обсудим вопросы, связанные с выбором языка программиро- вания для задач искусственного интеллекта. Затем в главах, посвященных языкам LISP и PROLOG, будут рассмотрены многочисленные приемы программирования, которые можно использовать для построения интеллектуальных систем. Основная задача про- граммирования искусственного интеллекта— сформировать представление и управ- яяющне структуры, необходимые для решения интеллектуальной задачи. Требования к этим структурам во многом определяют необходимые свойства языка реализации, о •ведении к этой части сначала перечисляются требования, выдвигаемые к языкам про- чяимировання задач искусственного интеллекта, а затем вводятся языки программиро- ••НИЯ LISP И PROLOG. Эти два языка чаще всего применяются для решения задач ис- ^«венного интеллекта Их синтаксис и семантика дают богатую почву для рассужде- о задачах и их решении. Эти языки оказали ощутимое влияние на ИСТ°РИ“ Р“ви™ "Явственного интеллекта. Во многом это определяется их мощностью, а также воз- МО)кностъто их рассмотрения как “средства мышления .
-лтпакилп высокого уровня на основе опьгга_ ^ГЬ ЛордаР0»""’ *кистей человеческого мозга. Абстракт,„ П03й„ ”1 Возможное ’ „С1-1Ш||Х осоосн мредметной области в общую характер,, “ на из главных и нсания „ожнои спе|лр частностс,- объединить. ле Он,, позво.м в незнакомый дом. человек может сопи"* ‘ -»>- Аб~ позвоХ:- Хт£ В нем: к" Хв Р™ых домах Д;,Я °П,,Са П0ЛН0" Картии“ «ОГИ мыслить «Р^";ч’СХв. НО абстракция возможность сжато представить ва*^ человек на Создавая теории ли ош шественные и количественные характеристики ыцС Объектов выделяет сиеста №ше11С1)р>е1СЯ точностью описания и силой прогнозу Огеутсме детален "Р“ ' 6а^м_ важнейшее средство понимания сложности окру да корректной а также управленти этой сложностью. Процесс абе™ жакшето нас и. внуфе ₽ „ чревно: знания организуются в различные да,вщ механизмов выделештя структуры из хаоса и заканчивая построй SZ важных теорий. Большинство наших идет, связаны с других,,, идеями. абстракция (hierarchical abstraction) - организация опыта в струпу. PV абстрактных классов и описаний все более высокого уровня это важное средство понимала поведения и структуры сложных систем, включая компьютерные программы. Подобно тому, как поведение животных можно изучать без учета физиологии их нервной системы, алгоритм можно рассматривать как отдельную характеристику, не зависящую от реализующей его программы. Например, рассмотрим две различные реализации бинарного поиска, написанные на языке FORTRAN с использованием массивов и C++ с использованием указателей. По существу, эта программы эквивалентны, несмотря на различие их реализаций. Такое отделение алгоритма от кода— лишь один из примеров иерархической абстракции в компьютерных науках. В [Newell, 1982] выделены два уровня описания интеллектуальных систем: знании (knowledge level) и символов (symbol level). Уровень символов связан с конкретными формализмами, применяемыми для представления знаний в процессе решения задач. Примере sj рассмотрения задачи на таком уровне является описание в главе 2 лопки предикатов как языка представления. Выше расположен уровень знаний, связанный с со- держанием информации и способами ее использования. оазпаб<пк!Гг1^ННЧеНИе °ч)ажается на архитектуре систем на основе знаний и стиле их возможностей П°'1Ь30Ва1С-Н1 общаются с программой в терминах своих знаний и выделенный таовенг рС^1ИЗаиИи !,скУСственного интеллекта должны иметь чеДО ления отражает эта точта^ Деление базы знаний от используемой структуры упр^ мы на уровне знаний Н •>П[К)щас’1 разработку гармоничного поведения си Для базы знаний, в чапнотГ'^0 На Уровне символов определяется язык представ^ Уровня знаний позволяет п» Логнческие или продукционные правила. Его отделен^ поста н простоты прогпамиипГРаММИСТ^ Решать проблемы выразительности, эфФе ния системы. Ниже уровня си^аЖ1Я’ Не относящиеся к более высоким уровням по решения вопросов разработки (риТ Р^Сполагается Уровень организации програ*1 зволяет программисту сткзечься0^40^ * разРаботке систем сложно переоценок 0»*^ ______ Т СЛ01кн°сти, относящейся к нижним уровням, 11 Л0ГИИ пРогРаммирования для искусственного интелЛ
—т»- Жироваться от деталей конкретной реализации или языка иЖГ"""™ "нталет1 " a6cT‘ ^мдаиФ'шнРовать Реалиааиию. повышая ее эффективное^^ нрования- Он "очво:1"- -;руото платформу, не затрагивая поведение^Х^^х'^Z” Уровень знаний Символьный уровень Уровень алгоритмов и структур данных Уровень языков программирования Уровень компоновки Микрокод Машинные инструкции Уровни аппаратных средств Рис. VI. 1. Уровни системы, основанной на знаниях из [Newell, 1982} Уровень знаний определяет возможности интеллектуальной системы. Сами знания не зависят от формализмов, используемых для их представления, а также выразительности выбранного языка программирования. На уровне знаний решаются следующие вопросы. Какие запросы допустимы в системе? Какие объекты и отношения играют важную роль в данной предметной области? Как добавить в систему новые знания? Будут ли факты из- меняться со временем? Как в системе будут реализованы рассуждения о знаниях? Обла- дает ли данная предметная область хорошо понятной систематикой? Имеется ли в ней непонятная или неполная информация? Важным шагом в разработке архитектуры про- граммы является внимательный анализ вопросов этого уровня и выбор конкретного спо- соба представления, используемого на символьном уровне. На символьном уровне принимаются решения о структуре представления и органи- зации знании. Важнейшим вопросом является выбор языка программирования. Как из- вестно из глав 6-8, логика— это лишь одни из многих формализмов представления знаний. Язык представления должен не только давать возможность выражать необхо- димые знания, но и быть согласованным, модифицируемым и вычислительно эффек- тивным. Ои должен помогать программисту познакомиться с организацией базы зна- ний. Этн критерии зачастую противоречивы, что требует внимательного подхода к разработке языков представления. Подобно разделению уровней знаний и символов, в программе можно разграничить символьный уровень, алгоритмы и структуры данных, используемые для его реализации. Например, поведение логической системы решения задач, основанной на хэш-тжашгах. fyler отличаться от ее реализации на базе бинарных деревьев только оыстродеистаисм. Это Вопрос реализации, который должен оставаться прозрачным на символьном уровне. М"»п.е алгоритмы и структуры данных, используемые в задачах оорзоотки естественного «ька. сводятся к работе с деревьями и таблицами. Но есть и специфические дл. искусст- *«ного интеллект^ представления. Они приводятся в виде псевдокода во всех частях «ин- "*•а "X реализация на языках LISP и PROLOG описана в соответствующих главах. 0бэоР языков PROLOG и LISP 605
.-mvKiVP данных располагается уровень языка. На . Ниже уро»"» МГ0₽”7^сп^п^ммироВпния. Хотя хороший стиль ,1ро . уровне важную роль ™ Д-ретных свойств языка программ,,ровен,„ „Р '* , ртваши предполагает разделен 11СкуСственного интеллекта требует их глу8Л ' давших уровнен. спец'1|ф' “ “ з «зыка должна удовлетворять ограничениям, взаимосвязи. Кроме того сгру у КОМПЬЮТер„о„ архитектуры, включая 0Пе2’ словленным ешебопее нпзк УР„ * средств, о6ъем „ и бь1Стр * „ионную систему, архи* ^00 обеспечивают реализацию требований символьной ня'Эт,ш об”я их n°w XX свойства языков LISP и PROLOG. Обзор языков PROLOG и LISP prolog PROLOG— это наиболее известный пример языка логического программирования (logic programming language). Логическая программа — это набор спецификаций в рамках формальной логики. PROLOG основан на теории предикатов первого порядка. Само имя этого языка программирования расшифровывается как Programming in Logic (Программирование в логике). При выполнении программы интерпретатор постоянно реа- лизует вывод на основе логических спецификаций. Идея использования возможностей представления теории предикатов первого порядка — это одно из основных преимуществ применения языка PROLOG для компьютерных наук вообще и искусственного интеллекта в частности. Применение теории предикатов первого порядка в языке программирования обеспечивает прозрачныи, элегантный синтаксис и хорошо определенную семантику. Развитие языка PROLOG уходит корнями в исследования, связанные с доказательством теорем, а точнее, с разработкоп алгоритмов опровержения резолюции [Robinson, 1965]. этой работе разработана процедура доказательства, получившая название резолюуг/и (resolution), которая и стала основным методом вычислений на языке PROLOG. В главе 12, ... B0IIP°ca‘M автаматического доказательства теорем, описаны системы резолю- ^2°^еРЖеН1и1 (reSO1Utionrefulatlon ^m) (см- разделы 12.2 и 12.3). исследования тащи*0”0™3” PR°L0G заРекомендовал себя в качестве полезного средства генерация кода ВОПРОСОВ программирования, как автоматическая рования. PROLOG как^^ ПрОграмм 11 Разработка высокоуровневых языков програ*»01* ный стиль программирован^^ ОСНОванные на логике языки, поддерживает декларатив- ного описания ограничений ? С КОнстРУиРование программы в терминах высокоур0 сталь программирования °^ласти задачи. В отличие от него, процеДУР* инструкции но выполнению ^Лагает написаЖ1е программы в виде последователь11 общается, “что есть истина” ан/™3’ R логическом программировании компьютеру*' точиться на решении задачи и ст ЭТ° сделать”. Это позволяет программистам соср1 написания низкоуровневых дЙН1и1 СПе1Шфикаций для предметной области, а не KaJ±“ PROLOG'I‘PorpaMMa б^?~ ,,н«РУкинй вида “что делать далее • - проекта по пониманию естест^ НаПНсаиа в начале 1970-х годов во Франции в Р lK“alsk'- ‘W Т=оре™:::г:х-ка[со1тегаиегидр, 1973]. [Roussel Д: —_______________ ы этого языка описаны в работах [К °ГИИ ПрогРаммирования для искусственного интел/10
1979^- [Ha*es’ 1977Ь (Lloyd, 1984]. Основной этап » 1на 1975-1979 годы, когда на кафедре искус^нм PR°L0Q Пр1” Эдинбург Дэвид Уоррен (David H.D. Waaen) и Фернандо сиали за реализацию этого языка. Они создали пепкый Р ИР& ^егпаП(^° Pereira) от- точно робастный для предъявления его всей ком потери о Гиб^™15 PR0L0G’ доста* пукт базировался на системе DEC 10 и мог работать как в Пр°‘ в режиме компилятору Описание этого кода и результаты сравненГрГо^сГя^м LISP приводятся в [Warren н др 1977). Эта версия стала первым стандартом языка PROLOG и была описана в книге [Clocksin и Mellish, 1984). В нашей книге используется именно этот стандарт, который известен под названием эдинбургского синтаксиса Преимущества этого языка были продемонстрированы при разработке исследовательских проектов, призванных оценить н повысить выразительность логического программирования Многие приложения, реализованные на этом языке, описаны в трудах Международной кон- ференции по искусственному интеллекту и Симпозиума по логическому программированию. Ссылки на дополнительную литературу приводятся к конце главы 14. LISP Язык LISP был впервые предложен Джоном Маккарти (John McCarty) в конце 50-х годов. Вначале этот язык рассматривался как альтернативная модель вычислений на ос- нове теории рекурсивных функций. В своей первой работе [McCarthy. 1960] автор языка сформулировал поставленную перед ним цель следующим образом. Требуется создать язык для символьных, а ие числовых вычислений, реализующий модель вычислений на основе теории рекурсивных функций [Church, 1941]. При этом нужно обеспечить четкое определение синтаксиса и семантики этого языка и продемонстрировать формальную полноту этой вычислительной модели. Хотя LISP — это один из старейших компьютер- ных языков, все еще находящихся в использовании (наряду с языками FORTRAN и CO- BOL), при внимательном рассмотрении его истории развития становится ясно, что он постоянно идет в авангарде языков программирования. Эта модель программирования зарекомендовала себя столь хорошо, что на принципах функционального программиро- вания были основаны многие другие языки, в том числе SCHEME, ML и FP. Основным структурным блоком программ и данных в LISP является список. (Отсюда и аббревиатура LISP__ Lisp Processing, илн обработка списков.) LISP поддерживает большое число встроенных функций работы со списками как со связными структурами Указателей. LISP обеспечивает для программиста всю мощь и общность связанных структур данных, освобождая их от необходимости явно управлять указателями и реали- зовывать операции с ними. Изначально LISP был компактным языком, состоящим нз функции построения и оо- р»ботхи списков, позволяющим определять новые функции, проверять равенство н оце- онвать выражения. Единственными средствами управления были рекуреш и уигоише «'ераторы. в терминах этих примитивов при необходимое™.определялись бол«: слож- "ыс функции. Однако со временем лучшие из новых функции стали «• >от процесс расш языка за счет добавления к нему новых функции^р»лк создании! к F г тер зачастую включающих сотни кпециализиро- »НИЮ многочисленных дпалеktobLISP.m программой, реализации Веш. '*’ункцнП для структурирования дан_ • > Р редактирования функций L|SpX“c“X ” ЦеЛОЧ"СЛСННЫХ ХамТ'^н диалекты способствовали превращению ** трассировки выполнения программ, j 0бзоР языков PROLOG и LISP 607
LISP из простои и элегантной теоретической модели вычислений в бо среду для построения больших программных систем. Из-за быстрого паз ai^°’ Мощи, ««пеетов LISP агентство зашиты новейших исследовательских niX Р5ста1Шя i -----------------------в 1983 году предложило «зшддр^^» Defe ! Д ,ВДскт.«олЛ , квинтэссенция диалектов I Кп - - J5P’ ^Рокое --- ,расПро. общих фундаментальных принципов ₽рам'щроаан„;' cn^nv аля построения диалектов liok ......\ п vanned Research Projects Артс) в itTitii название Common LISP. Хотя Common LISPОдин из них — SCLE]^ * Х'е" переосмХние LISP, используемое как для решения задач искусстве^'' теялекта. так в да изучения Ovu..... +. ^““iSP ППИН"ИПП“ ..................... В данной книге будет использован именно Common LISP. Выбор языка реализации _ ссЬормировался как отдельная область знании и продемон- Искусственный интелле J г мНОГНХ практических задач на основе язы- стрировал свою ^"ме“им° ПОСЛеднее время удельный вес этих языков при решении КОВ LISP и PROLOG. Од“Хт „есХько енггзился. Это объясняется г ребонанмями к задач 1ККУССТВСННОГО Н О|стемы искусственного интеллекта зачастую служат мдадамидррт« больших приложений, поэтому стандарты разработки приводят к «об- Использования единого языка программирования всего приложения. Совре- менные системы искусственного интеллекта реализуют на многих языках, включая Smalltalk С C++ о Java. Тем не менее LISP и PROLOG продолжают играть свою роль в разработке прототипов программ и новых методов решения задач. Кроме того, эта языки служат для обоснования многих средств, которые впоследствии включаются в современные языки программирования. Наиболее ярким примером является язык Java, в котором используются динамическое связывание, автоматическое управление памятью и другие средства, впервые реализованные в языках программирования задач ис- кусственного интеллекта. Создается впечатление, что весь остальной мир программирова- ния до сих пор пытается перенять стандарты от языков реализации искусственного интел- лекта. С этой точки зрения ценность LISP, PROLOG или Smalltalk со временем будет неук- лонно повышаться. Автор уверен, что эти языки пригодятся читателю, даже если впоследствии он найдет свое место в C++, Java или любом другом конкурирующем языке. 608 ________________________________________________________ Раммирования для искусственного интш1ле
Введение в PROLOG Все объекты человеческих размышлений и исследований естественным образом можно разделить на два вида: "связи идей " и "сущность фактов ". — Дэвид Хьюм (David Hume), К вопросу о человеческом разуме Единственный способ улучшить наши рассуждения — это сделать их столь же осязаемыми, как математические формулы, чтобы уметь найти ошибку с одного взгляда и иметь возможность в споре с оппонентами просто сказать: "Давайте посчитаем... и посмотрим. кто из нас прав ". — Лейбниц (Leibniz). Искусство открытия 14.0. Введение Как реализация принципов логического программирования язык PROLOG вносит ин- । тересный и существенный вклад в решение задач искусственного интеллекта. Наиболее важное значение имеет декларативная семантика (declarative semantics) — средство прямого выражения взаимосвязей в задачах искусственного интеллекта, а также встро- енные средства унификации и некоторые приемы проверки соответствия и поиска. В этой главе будут затронуты многие важные вопросы логического программирования и организации языка PROLOG. В разделе 14.1 представлены базовый синтаксис языка PROLOG и несколько простых программ, демонстрирующих использование исчисления предикатов в качестве языка представления. Будет показано, как отслеживать состояние среды PROLOG н использовать оператор отсечения (cut operator) для реализации поиска в глубину на языке PROLOG. В разделе 14.2 рассматривается вопрос создания абстрактных типов данных (АТД) (abstract data types — ADT) на языке PROLOG. К ним относятся стеки (stack), очереди (queue) и приоритетные очереди (priority queue), используемые для построения продук- ционной системы в разделе 14.3 и разработки в разделе 14.3 управляющих структур для “горитмов поиска, описанных в главах 3. 4. 6. В разделе 14.5 по материалам раздела 7.4 Р«рабатывается пмнироещик (planner). В разделе 14.6 вводится понятие метш,редиКа- “">« (meia-predicate) — предикатов, область интерпретации которых «ктааиют сами “Чтения языка PROLOG. Например, выражение atomix) является истинным, если это атом, т.е. константо. Метапредикаты можно и™™ ™ ’Исиия типов при интерпретации программы на языке interpreter) на Гликаты используются для построения .иепшиптгр^татор^ (mela-in.erpreier)
prolog °ц=^иГрп^ ^Ka%ROLOG.a™«^ "°^X»«CHeH,,e ЯЗЬ"“‘ PR0L°G ШЯ маш™'<оги o6 ”3 в разделе 14.8 П°"СК 8 “С'1СИ" " °6уч=ние Яа ння в качестве примеров рассм р с]рОПТСЯ рекурсивный анал„затор основе объяснения из '.ла Р работы которого изложены в главе 13. В заверь вс семантических сете , ПР 'НН Р О „ догическото программирование обсуждаются общие вопросу Р мстодов решсния задач. отличия этих подходов от деклар 14.1. Синтаксис для программирования логики предикатов----------------------------------------- 14.1.L Представление фактов и правил Несмотря на существование многочисленных диалектов языка PROLOG, в этой книге используется исходная версия языка С-PROLOG, разработанная Уорреном (Warren) и Пеоейпой (Pereira) [Clocksin и Mellish. 1984]. Чтобы упростить представление данных на языке PROLOG при описании логики предикатов в главе 2 используются многие согла- шения принятые в этом языке. Однако существуют многочисленные отличия синтаксиса логики предикатов от языка PROLOG. Например, в С-PROLOG символ : - соответствует символу логики предикатов первого порядка. Приведем еще несколько отличий син- таксиса PROLOG от обозначений, используемых в главе 2. Название операции Обозначение в логике предикатов Обозначение в языке PROLOG и л или v ; только если : - не not Как и в главе 2, имена предикатов и связанных переменных представляют собой по- следовательности буквенно-цифровых символов, которые начинаются с буквы. Перс менные представляются в виде строк буквенно-цифровых символов, которые начинают ся (хотя бы) с прописной буквы, Так, выражение likes(X, susie). или, еще лучше, likes(Everyone, susie). № представлять тот факт, что •'каждый лю6ит Сьюз„". Ил„ Utes (george, У), lltes(susie. ’ д“ ““o' PROLOG Рн1ХбЮбЯТ ДЖ°РДЖ " СЬ'°ЗИ' отно*'" Джордж любит Кейт U п необходимо представить следующее о likes (george, kate) Tik СЬЮ31Л ЕГ° МОжНО записаТЬ В ВИДС 1 ikes (george, ’любит Сьюзи” можно предс^’** _____________' Ukes(george, susie) , Насть V). языки и технологии программирования для искусственного ИН^’ И, наконец. “Джордж л,обит Сьюзи, если Джордж не любит Кейт" описывается так likes(george, susie) :- not(likes(george, kate)) Из этих примеров видно, как связки л, V. из логики прсдикатм прсдста8ляют. ся на языке PROLOG. Имена предикатов (наподобие likes), количество и порядок сле- дования параметров и даже постоянное или переменное число параметров определяются требованиями (неявной семантикой") конкретной задачи. В этом языке программирования не существует никаких ограничении, кроме требования правильного построения формул. Профамма на языке PROLOG это набор спецификаций из логики предикатов первого порядка, описывающих объекты и отношения между ними в предметной области задачи. На- бор спецификации называется базой данных (database) конкретной задачи. Интерпретатор PROLOG отвечает на вопросы, касающиеся этого набора спецификаций. Запросы к базе дан- ных — это шаблоны, представленные в том же логическом синтаксисе, что и записи базы данных. Интерпретатор PROLOG использует поиск на основе шаблонов для определения то- го, являются ли эти запросы логическим следствием содержимого базы данных. Интерпретатор обрабатывает запросы, выполняя поиск в базе данных в глубину слева на- право и определяя, является ли данный запрос логическим следствием спецификаций из базы данных. PROLOG— это в основном интерпретируемый язык. Некоторые версии языка PROLOG работают только в режиме интерпретации, другие допускают компиляцию части или всего набора спецификаций для ускорения выполнения программы. PROLOG — это ин- терактивный язык: пользователь вводит запросы в ответ на приглашение Допустим, требуется описать “мир симпатий и антипатий” Джорджа, Кейт и Сьюзи. База данных для этой задачи может содержать следующий набор предикатов. likes(george, kate). likes(george, susie). likes(george, wine). likes(susie, wine). likes(kate, gin). likes(kate, susie). Этот набор спецификаций имеет очевидную интерпретацию или отображение на “мир” Джорджа и его друзей. Этот мир является моделью для базы данных (раздел 2.3). Затем интерпретатору можно задавать вопросы ?- likes(george, kate). Yes likes(kate, susie). Yes likes(george, X). x = kate X = susie k = wine likes(george, beer). no Отметим несколько моментов в этих примерах. Во-первых, при образке защх,са likes (george X) пользователь последовательно вводит приглашение ,, поэтому '"пернретатор возвращает все термы из спецификации базы данных, которые .можно Г/1а8а 1< Введение в PROLOG 611
гтются В том порядке, в котором были найдены в бй, „сдавить вместе X. ОИ»„ накокец wine. Хотя это противоречу ф «» сначала Касе, затем sus н11ровв1,ныи порядок - это свойств» 6 ° ненронедурньте специфик^ на послсдоватсЛьных машинах. Про^ шинства интерпрететеро». Р « „опека мсменТОв в базе данных. „а языке PROLOGдолже знате " на запрос вь,даются послс пользователе Заметем также, что послед) ходат в03врЭт к последнему найденному РИуль го приглашения ; (.««)• одят к нахождению всех возможных тату. Последовательные существует, интерпретатор выдает ответ по. на запрос. Если решении ль ги1ЛЮСтрИруют допущение замкнутости .мира (c]Osed Приведенные выше при Р (negation as failure). В языке PROLOG предцол^ wor|d ложным, если нельзя доказать истинность его отрицания, ется, что любое выражеш iqeOrget beer) интерпретатор ищет предикат XXX. *« ^ixes.^e, ‘ пХкУ но.Х не завершается успехом, запрос считается ложным. Таким образом, в языке ' кода привояатеетея. ™° МИРС ^дстевлекь. в 6азс х Допущение замкнутости мира приводит к многочисленным практическим и философ, ским сложностям в языке. Например, невозможность включить некоторый факт в базу данных зачастую означает, что его истинность неизвестна. Однако в силу допущения замкнутости мира этот факт трактуется как ложный. Если некоторый предикат был упу- , щен или при его вводе была допущена опечатка наподобие likes (деогде, Ьееег), то ответом на данный запрос будет по. Аспект трактовки отрицания как лжи — очень 1 важный вопрос в области искусственного интеллекта. Хотя это предположение обеспе- чивает простой способ решения проблемы незаданных знаний, более сложные подходы, в том числе многозначные логики (истина, ложь, неизвестно) и немонотонные рассужде- ния (см. главу 9) обеспечивают гораздо более богатый контекст для интерпретации. Выражения PROLOG, использованные в приведенной выше базе данных, являются примерами спецификации фактов (fact). PROLOG также позволяет определять правила J- (rule), описывающие взаимосвязи между фактами с использованием логической импли- > каши ; -. При создании правила на языке PROLOG слева от символа : - может распопа- : гаться только один предикат. Этот предикат должен быть положительным литералом (positive literal), т.е. не должен представлять собой символ с отрицанием (раздел 12.3). се выражения логики предикатов, содержащие отношения импликации илн эквива- нгУгл СТИ Д0ЛЖНЬ1 ^ЫТЬ приведены к этой форме, которая получила назва- , капни Оакп^°М С В ХОРНОВСКОЙ дизъюнктивной форме в левой части импли- ; Д0Л СадеРитк’ единственный положительный литера». Лог»» первого порядка поим? °™ clause calcu'us) эквивалентна полной теории преаика™ Допустим, к спеипЛ*^10** Д<И доказэтельств на основе опровержения (см. главу пртвило, определяющее дау™друзейТДСНН°Й ВЫШе ба3“ данных 1ребуеТС’' д° 3”" friends (х Vi ™ Ьго можно описать следующим образом. Этовы likeS<X' likeS(Y- *>• Z’ что X bS"/и Птобит”?РчРе™Р°ВаТЬ так- “х и у — друзья, если суш«теУет «У ни в логике предикатов чн о ДССЬ Важно °™с™ть два момента. Во-первых, п0<* ^иные, то шкада (0блас;ьНИопВп^М0м «зыке PROLOG не определены глобальные" Р ^ends. Во-вторых, переме^ переменных X, /и Z ограничена пра _____________________ е’ унифицируемые или связываемые с X, f и ’ ологии Программирования для искусственного интерл сованы по всему выражению. Обработку правила friends интерпреташрим языка PROLOG можно проиллюстрировать на следующем примере. Если к набору спецификаций из предыдущего примера добавлено правило friends, то интерпретатору можно передать запрос. 7- friends(george, susie). yes Для ответа на этот запрос PROLOG осуществляет поиск в базе данных с помощью ал- горитма с возвратом, представленного в главах 3 и 5. Запрос friends (george, susie) унифицируется (проверяется на соответствие) с заключением правила friends (X, Y) likes (X, Z) , likes (Y, Z). При этом переменной X соот- ветствует значение george, a Y susie. Интерпретатор ишет значение переменной Z, для которого выражение likes (george, Z) истинно. Это выполняется с помощью первого факта в базе данных, в котором Z соответствует kate. Затем интерпретатор пытается определить, истинно ли выражение likes (susie, kate). Если оно окажется ложным, то иа основе допущения замкнутости мира данное значение для Z (kate) отклоняется. Тогда интерпретатор возвращается для поиска вто- рого значения Z в выражении likes (george, Z). Затем проверяется соответствие выражения likes (george, Z) второму дизъюнк- ту в базе данных, при этом переменная Z связывается со значением susie. После этого интерпретатор пытается найтн соответствие для выражения likes (susie, susie). Если эта попытка тоже завершается неудачей, то интерпретатор снова переходит к базе данных (возвращается) в поисках следующего значения для Z. На этот раз в третьем пре- дикате будет найдено значение wine, и интерпретатор постарается показать, что likes (susie, wine) истинно. В данном случае значение wine является связкой для значений george и susie. Интерпретатор PROLOG проверяет соответствие целей шаблонам в том порядке, в котором эти шаблоны были введены в базу данных. Важно отметить взаимосвязь между кванторами всеобщности и существования в ло- гике предикатов и обработкой переменных в программе PROLOG. Если переменная со- держится в спецификации базы данных PROLOG, то предполагается, что она связана квантором всеобщности. Например, выражение likes (susie, Y) согласие семантике предыдущих примеров означает "Сьюзи любит каждого”. В процессе интерпретации не- которого запроса любой терм, список или предикат может быть связан с Y. Аналогично в правиле friends (X, Y) likes (X, Z), likes (Y, Z) допускаются любые связанные переменные X, Y и Z, удовлетворяющие спецификации этого выражения. Для представления на языке PROLOG переменной, связанной квантором существова- ния, можно использовать два подхода. Во-первых, если известно конкретное значение переменной, то его можно ввести в базу данных напрямую. Так, likes (george, 'vine) — это экземпляр выражения likes (george, Z), и его можно ввести в базу Данных, как это было сделано в предыдущих примерах. Во-вторых, для поиска экземпляра переменной, доставляющего выражению значение истина", можно обратиться с запросом к интерпретатору. Например, чтобы определить, существует ли такое значение Z, при котором выражение likes (george, Z) истинно, Этот запрос можно передать интерпретатору. Ои проверит, существует ли такое значение временной Z. Некоторые интерпретаторы PROLOG находят все значения, связанные квантором существования. Для получения всех значений с помощью интерпретатора PROLOG требуется повторять пользовательское пршлашеиие ,. гПава 14. Введение s PROLOG 613
изменение н мониторинг среды PROLOG 14.1.2. Создание, PROLOG сначала создается база данных СПе при написании д11Катов к спецификации в интерактивной фикаш.и. Для ДОбаВЛС“‘sert.^Так Рс помошью команды ₽еде ?‘ aSSert,U Laerca предикат likes (david, sarah). Теперь в ответ на зап^ К специфика^ добавляется рс likes(david, X). , будет возвращен результат х _ sarah. можно контрОЛНровать добавление новых специфи. с помощью пр д asserta (Р) добавляет предикат Р в начало списка пре- кации в базу данных. (р) _ в К0Нец списка предикатов Р. Это важно для по- “ выб°Ра W”TCT0B поиска- Удаления Предиката р И3 базы Хых используется предикат retract(Р). Следует отметить, что во многих реализа- циях языка PROLOG предикат assert ведет сеоя более непредсказуемо, т.е. точное время добавления нового предиката в среду может зависеть от многих других факторов, влияющих как на порядок следования предикатов, так н иа реализацию возвратов. Создание спецификации путем последовательного использования предикатов as- sert и retract — очень утомительный процесс. Вместо этого можно создать файл, содержащий все спецификации для языка PROLOG, с помощью обычного редактора. После создания файла (назовем его myf ile) нужно вызвать PROLOG н поместить весь файл в базу данных с помощью команды consult. Так, запрос ?- consult (myfile}. yes добавляет предикаты, содержащиеся в файле myf ile, в базу данных. Существует и । краткая форма предиката consult, которую целесообразно использовать для добавле- ния в базу данных нескольких файлов. При этом используется следующее обозначение ?- [myfile]. yes । Предикаты read и write используются для взаимодействия с пользователем. Ко* считывает следующий терм нз текущего входного потока и добавляет холкой поТпСВЫражения радляются точкой. Команда write (X) помещаетX ввьн торым распопа СЛН Х № СВтанная пеРеменная, то выводится целое число. пере» к0; решстрацпонн^Гно С“М°°Л П0ДчеРкива™- Это целое число представляет внутр™»" необходимый - раб°™среды доказ Предикаты see и tell 0Писан в подразделе 12.2.2). ~ й в файл. Команда see (X) т ьзуются дяя считывания информации из файла и порожденный в X. Еспи кРЫвает файл X и определяет текущий входной п0Т0К’ а see (X) завершается неулачр^дХ Не связана с существующим файлом, то ком ходного потока. Если файла х н НаЛ0ГИЧН0 КОманда tell (X) открывает файл /и* которого совпадает со связанна/ СущСствУет. 10 команда tell (X) создает ФаИ’ вают соответствующие файлы М ЗНачением х- Команды seen(X) и told(X) ехнологии программирования для искусственного иНТ0ЛЛ Некоторые предикаты языка PROLOG помогают отслеживать состояние базы дан- ных, а также связанных с ней вычислений. Средн них наиболее важными являются listing, trace и spy. При использовании команды listing (и,мя_предиката}, где параметром является нмя предиката, в частности member (подраздел 14.1.3), интерпре- татором возвращаются все дизъюнкты нз базы данных с соответствующим именем пре- диката. Заметим, что в данном случае число аргументов предиката не указано, поэтому возвращаются все варианты данного предиката, независимо от числа аргументов. Команда trace позволяет пользователю отслеживать состояние интерпретатора PROLOG. В процессе мониторинга в выходной файл выводятся все целевые утверждения, обрабатываемые интерпретатором PROLOG. Зачастую этой информации для пользователя слишком много. Возможности трассировки во многих средах PROLOG слишком сложны для понимания и требуют дополнительного изучения и опыта. Обычно при трассировке ра- ботающей программы PROLOG можно получить следующую информацию. 1. Уровень глубины рекурсивных вызовов (помечается в строке слева направо). 2. Когда предпринимается первая попытка обработки целевого утверждения (иногда используется команда call). 3. Когда цель успешно достигнута (с помощью команды exit). 4. Возможность других соответствий целевому утверждению (команда retry). 5. Невозможность достижения цели, поскольку все попытки завершились неудачно (зачастую используется команда fail). 6. Полная трассировка прерывается командой notrace. Если требуется более избирательный мониторинг, то применяется команда spy. Имя от- слеживаемого предиката обычно задается в качестве аргумента, но иногда оно определяется с помощью префиксного оператора (указывается после этого оператора). Так, с помощью ко- манды spy member выводится информация обо всех случаях использования предиката member. Аргументом предиката spy может быть также синеок предикатов с указанием их арности. Так. команда spy {member / 2, append/ 3 ] определяет мониторинг всех случаев использования целевого утверждения member с двумя аргументами и утверждения append с тремя аргументами. Команда no spy удаляет все контрольные точки. 14.1,3. Списки и рекурсия в языке PROLOG В предыдущих подразделах на нескольких простых примерах представлен синтаксис языка PROLOG. В этих примерах PROLOG предстает как механизм вычисления на базе выражений логики предикатов (в хорновской дизъюнктивной форме). Это согласуется со всеми принципами вывода в рамках логики предикатов, представленными в главе 2. Для проверки соответствия шаблонам в языке PROLOG используется унификация и возвра- щаются значения переменных (связанные переменные), обеспечивающие истинность выражения. Эти значения унифицированы с переменными в конкретном выражении, но нс связаны в общей среде. Ниже будет показано, что основным механизмом управления при программировании на языке PROLOG является рекурсия. Однако сначала рассмотрим несколько несложных димеров обработки списков. Список (list) — это структура данных, представляющая со- бо» Упорядоченный набор элементов (или даже самих списков!. Рекурсия это_естест- «нный способ обработки списочных структур. Л-м обработки списков в языке PROLOG глава 14. Введение в PROLOG 615
„ » оекурсии. Сами элементы списков заключаю^ „.„ояьзуют проиИ.УР- ДРУ МПЯГЫМ"' ПРИВСДСМ W „anpawMe^J^OG. „еров списка на языке гки (1- 2- 3- me) (alien, ату). I*»' ₽аС” ([george, katej, t [tom, dick, harry, [ 1 ™ может отделяться от его хвоста оператором |. Хвост списку Первый элемент списка .Например, для списка [ tom, dick, harrv ™ список после ^/X^oXboctom-список (dick, harry, ।" "р»^ы ун,,ф',каш”'мгокно разделть спн“к на компонеи1ы- . Если список (tom, dick, harry, fred) соответствует шаблону (х|У),то X = tomnY = [dick, harry, fred]. . Если список [tom, dick, harry, fred] соответствует шаблону [x, Y|z]ud X = tom,Y = dick и Z = [harry, fred]. . Если список [tom, dick, harry, fred] соответствует шаблону [x, у, z|W],toX = tom,Y = dick, Z = harry, W - [fred], • Если список [tom, dick, harry, fred] соответствует шаблону [w, X, Y, Z|V],toW = tom,X = dick, Y = harry, Z = fred,V =[]. Помимо разбиения списка на отдельные элементы унификацию можно использовать для построения списочной структуры. Например, если X - tom, Y = [dick] и L уни- фицируется с [X |Y], то переменная L будет связана со списком [ tom, dick]. Термы, отделенные друг от друга запятыми н расположенные до вертикальной черты, являются элементами списка, а находящаяся после вертикальной черты структура всегда является списком, а точнее, его хвостом. Рассмотрим простой пример рекурсивной обработки списка: проверку принадлежно- сти элемента списку с помощью предиката member. Определим предикат, позволяющий выявить наличие элемента в списке. Предикат member должен зависеть от двух аргу- ментов. элемента и списка. Он принимает значение “истина”, если данный элемент со- держится в списке. Например, ?- member(а, Yes member(а, No ?- member(X X = а X = b X = с [а, Ь, с, d, е] ) 2, 3, 4]) . [а, Ь, с] ) . по Чтобы определить поедим у первым элементом списка member Рекурсивно, сначала проверим, является л“ ’ member(х, [Х|т]> 616 ---------------------------------—________________________— программирования для искусственного инте^л
Этот предикат проверяет, идентично ли значение х первому элементу списка. Если нет. то естественно проверить, содержится ли X в оставшейся части (Т) списка. Это оп- ределяется следующим образом. jnemberfX, [Y|Т]):- member(X, Т) . Таким образом, проверка наличия элемента в списке на языке PROLOG выполняется с помощью двух строк. member(X, [X|Т] ) . member(X, [Y|Т]):- member(X, Т). Этот пример иллюстрирует значение встроенного в PROLOG порядка поиска, при ко- тором условие останова помещается перед рекурсивным вызовом, а значит, проверяется перед следующим шагом работы алгоритма. При обратном порядке следования предика- тов условие останова может никогда не проверяться. Выполним трассировку предиката member(c, [а, Ь, с ]) с нумерацией. 1: member (X, [X | Т] ) , 2: member(X, [Y|T]) member(X, Т) . ?-member(c, [a, b, с]). call 1. fail, since c*a call 2. X = c, Y = a, T = [b, c] , memberfc, [b, c]>? call 1. fail, since c=#b call 2. X = c, Y = b, T = [c] , member (c, [c] ) ? call 1. success, с = c yes (to second call 2.) yes (to first call 2.) yes Хороший стиль программирования на языке PROLOG предполагает использование аио- нимных переменных (anonymous variable). Они служат для указания программисту и интер- претатору того, что определенные переменные используются исключительно для проверки соответствия шаблону, т.е. само связывание переменных не является частью процесса вычис- лений. Так, чтобы проверить, совпадает ли элемент X с первым элементом списка, обычно ис- пользуют запись member (х, [х | _] ). Символ _ означает, что, несмотря на важное значе- ние хвоста списка в процессе унификации запроса, содержимое хвоста не играет роли. Ано- нимные переменные необходимо также использовать в рекурсивном утверждении при проверке наличия элемента в списке, если значение головы списка не играет роли. member(X, [Х|_]). member(X, [_|Т]) member(X, Т) . Хорошим упражнением для углубления понимания природы списков и рекурсивного управления является запись элементов списка по одному в строке. Допустим, требуется таким образом записать элементы списка [a, b, с, d]. Для этого можно определить рекурсивную команду. Writelist ( [ ] ) . Writelist(1Н|Т] } write(H), nl, writelist(T) . 'Этот предикат записывает элементы списка по одному в строке, поскольку nl озна- чает Переход на новую строку в выходном потоке. Если требуется записать элементы Списка в обратном порядке, то рекурсивный предикат должен следовать перед командой Глава 14 Введение в PROLOG
„панпгаовать. ЧТО список будет пройден до конца СЩе д0 write. Тогда можно а™ро меме,„ СПИСка „ нсн рскурси сго элементов. Затем будет ствующих элементов списка. Запись списка в обра1" вызов процедуры дл<' • Ш1|М образом. „ом порядке определяй следу reverse^ritelistin^ ;. reverse,writelist(Т) , write(H), nl. reverse-wrxtelis дать „„ведение этих предикатов, запустив их в рс. Читателю предлагает ся н жиме трассировки. 14.1.4. Рекурсивный поиск в языке PROLOG О .... s > „досматривалась задача “хода конем" размерности 3x3 в рамках теории предикатов“^'перемещения коня использовалась квадратная доска следующего вида. ~Т I 2 Т 3 4 5 6 7 8 | 9 ~ Допустимые ходы можно представить на языке PROLOG с помощью предиката move. Предикат path определяет алгоритм нахождения пути между его аргументами за О или более ходов. Заметим, что предикат path определен рекурсивно. move(1, 6) move(1, 8) move(2, 7) move(2, 9) . move(3, . move(3, . move(4, . move(4, 4).move(6, 8).move(6, 3).move(7, 9).move(7, 7).move(8, 1).move(8, 6).move(9, 2).move(9, 3) . 1) . 4) . 2) . path(Z, Z). path(X, Y) move(X, W) , notlbeen(W)) , assert (been (W) ) , path(W, Y) . Это определение предиката path представляет собой реализацию на языке PROLOG алгоритма, описанного в главе5. Как было указано выше, assert — это встроенный апгемеитк КОТОРЬ1Й всегда имеет значение "истина" и попутно помещает свои шенных пя В аЗУ данИ^х спецификаций. Предикат been используется для записи посе- щенных ранее состоянии и предотвращения циклов. стоящей в созлштГДт Т™1®™ Ьееп противоречит цели разработчика программы, се- менных. В частности !*"" Л0ГИКИ "Рел"«-пов без использования глобальных пере- доступный любой дпугой „ П°СЛе ;1о6авлсн,,я в базу данных представляет собой факт, контекст. Более того созданиТ'1^ 8 ЭТ°“ бще даннЬ|Х’ а значит, имеющий глобальны" базовый принцип моделнпояяи ГЛ° альнь1х структур для управления программой нарушает задачи) хранится отдельно от Лр0Ду^“’”‘ систем, в которых логика (специфи*"» been были созданы как глоба^™ управления программой. В данном случае стрУ1^ исполнения самой программу НЫе специФикации, предназначенные для модифика Как было предложено в гля». т »ращ=н1ициюювпривьиове,'авсЗ. № отслеживай,гя посещенных состояний и чр*' ублированных состояний (цикл™,ЛИ Path можно использовать список. Для выявл одход позволяет обойти проблеме М0ЖН° воспользоваться предикатом member- " ЛШу ^пользования глобального утверждения been(W>- 618 ----------------------------------------------___________________— ИИ п₽огРаммирования для искусственного Интел»» Поиск в глубину с помощью алгоритма с возвратами, описанного PROLOG может быть реализован следующим образом. в главах 3 и 5, на языке path(z, z, L). pathix, Y, b) movelx, Z) , not (member (Z, l) ) , path(z, Y, [z|L]) Здесь member — определенный выше предикат. Третий параметр предиката path— это локальная переменная, представляющая список уже посещенных состояний. При генерации нового состояния (с использованием предиката move) оно помещается в начало списка состояний [z | L] для следующего дозДО path, если оно до сих пор не. содержалось в списке посещенных состояний not(member(Z, L) ). Следует отмстить, что все параметры предиката path являются локальными, а их те- кущее значение зависит от места вызова на графе поиска. При каждом рекурсивном вы- зове к этому списку добавляется новое состояние. Если все продолжения из данного со- стояния завершаются иеудачей, неудачей завершается и соответствующий вызов path. Если интерпретатор возвращается к родительскому вызову, то третий параметр, пред- ставляющий список посещенных состояний, принимает свое предыдущее значение. Та- ким образом, в процессе поиска с возвратом на графе состояния добавляются и удаляют- ся из этого списка. При успешном завершении вызова path первые два параметра принимают одинако- вые значения. Третий параметр — это список посещенных состояний в пути решения, в котором эти состояния перечислены в обратном порядке. Таким образом, можно вывести на печать все этапы решения. Спецификацию PROLOG для задачи "хода конем" с ис- пользованием списков н поиска в глубину с возвратами можно получить с помощью это- го определения path и приведенных выше спецификаций предикатов move и member. Вызов интерпретатора PROLOG для команды path(X, Y, [X] ), где х и Y— это числа из диапазона от 1 до 9, позволяет найти путь из состояния X в состояние Y, если этот путь существует. Третий параметр инициализирует список посещенных состояний начальным состоянием X. Заметим, что в языке PROLOG регистр символов не учитыва- ется. Первые два параметра должны определять любое представление состояний в об- ласти определения задачи, а третий — список состояний. С помощью унификации вы- полняется обобщенная проверка соответствия шаблонам для всех возможных типов дан- ных. Таким образом, path— это общий алгоритм поиска в глубину, который можно использовать для любого графа. В разделе 14.3 он будет применен для реализации про- дукционной системы решения задачи "о перевозке человека, волка, козы и капусты с соответствующими спецификациями состояний. Вернемся к рещению задачи “хода конем" на поле 3x3. Полную задачу 'хода конем на поле 8x8 на языке PROLOG читателю предлагается решить самостоятельно (см. уп- ражнения к главам 14 и 15). Для этого пронумеруем обе части алгоритма path. 2- is path (XZ/ yV LH - move(X, Z) , not (member (Z. L) ) . path(Z, Y.(Z|L)). Path(l, 3, [i]). Выполним трассировку этой задачи. match 1. fail 1 * 3 Path(i з path(]/ 3' (13) moved, Z) attempts to matches 2. X matches Z as call path(6, 6, not (member (6, d))) Глава 14. Введение в PROLOG 619
nath(6 3, (6,1J) attempts to match 1. fail 6*3 path(6, 3. 16.11) matches 2. X is 6, f is 3, L is f move(6.Z) matches Z as 7, not (member!?, [6, }), ; . path<7,3.[7,6,11) true, path(7,3, [7,6,1]) attempts to match 1. fail 7 * 3 path(7,3,[7,6,1i) matches 2. X is 7, Y is 3, l is ' move(7,Z) is 2=6 ---, .tz<6, move(7,Z) is Z=2 - " "> 1 Й ' fails, backtrack! itches л. « — not (member(6,[7,6,1])) fails, backtv?, not (member(2, [7,6,1])) true, ack! move (!, -- - path(2,3, (2,7,6,11) path call attempts 1, fail, 2 # 3. path matches 2, X is 2, Y is 3, L is [2,7,6,1] move matches Z as 7, not (member (...) ) fails, backtrack' move matches Z as 9, not (member (. . . )) true, path(9,3,[9,2,7,6,1}) path fails 1, 9 # 3. path matches 2, X is 9, Y is 3, L move is Z = 4, not(member (...)) path(4, 3,[4,9,2,7,6,1]) path fails 1, 4*3. path matches 2, X is 4, Y is 3, move 2 = 3, not(member(...)) true, path(3, 3, 13,4,9,2.7,6,1]) path attempts 1, true, 3 = 3, yes is [9,2,7,6,1] true, L is [4,9,2,7,6,1] yes yes yes yes yes yes В заключение отметим, что рекурсивный вызов path — это оболочка (shell), ши обшач Управляющая структура для поиска на графе. В path (X, У, L) X— текущее! стояние, У целевое. Если Хну совпадают, рекурсия прекращается. L — список со- I п. J Тек^щем п^гн к состоянию У. При обнаружении каждого нового состояния Z с । наличия .-«™М move(x' zi это состояние помещается в список [z|LJ. Проверка 1 Эта проверка га™ ° СПИСКе в“полнлется с помощью вызова not (memberIZ, Lil- Ее „ХТ" ОТСуГС™е ВДКЛ0В в наП'то'"™ замкнутым sWKenaoXVd™”1*™ L ° РагсмотРениом алгоритме поиска пути и • »се посещенные состояния я ЛТ““? С0СТ0ИТ в Том' что это множество содержа , расширить запись ссппай ** В Списке L храннтся только текущий путь. Желательно добудет сделано в разделе^ьГ^^ ВЫ30Ве ₽ath’ н хранить все посещенные состояния 14.15. Использование оператора отсечения для управления в языке PROLOG цел£ р качеств** Оператор отсечения (cut) представляется символом ’ и указывается' пО^°чИЬ1а вого утверждения без аргументов. При этом его применение имеет нес дост^^'с- эффектов. Во-первых, этот оператор всегда выполняется прн его перв дь1ду1ДсМ^ во-вторых, если при возврате оказывается невозможным, вернуться к ___________________ __________________________________-- 620 Часть V). Языки и технологии программирования для искусственН стоянию- то все целевое утверждение, в котором содержится этот оператор, счшаскя ложным- В качестве простого примера использования оператора отсечения рассмотрим реализацию вызова предиката path для поиска двухшагового пути в задаче “хода конем”. Можно создать следующий предикат path2. path2(X, Y) move(X.Z), move(Z,Y). Между точками X и Y существует двухшаговый путь, если между ними существует “промежуточная остановка Z. Предположим, для данного примера существует следую- шйя база данных ходов конем. move(l. б). move(1, 8) • move(б, 7) . move(б, 1)• move(8, 3) . move(8, 1) • В ответ на запрос о поиске двухшаговых путей из состояния 1 интерпретатор выдаст четыре значения. ? - path2(1,W). W = 7 W = 1 W = з W = 1 по Если в предикате path2 используется оператор отсечения, то ответов будет только два. path2(X, Y) move(X,Z), !, move(Z,Y). ?- path2(1,W). W = 7 W = 1 no Это происходит потому. что переменная Z принимает только одно значение (первое свя- занное с ней) — 6. Если первая подцель реализуется успешно, то переменная Z связывается со значением 6, и достигается оператор отсечения. Поэтому в дальнейшем возврат к первой под- цели не выполняется, и переменная Z не связывается с другими значениями. Оператор отсечения в программировании используется для нескольких целей. Во- первых, как видно из данного примера, он позволяет программисту явно управлять фор- Мой дерева поиска. Если дальнейший поиск (полный перебор) не требуется, то в этой точке можно выполнить явное усечение дерева. При этом код на языке PROLOG напо- м»нает вызов функций: если предикат PROLOG (или набор предикатов) “возвращает” ОДно множество значений (связей) и достигается оператор отсечения, то интерпретатор не выполняет поиск для других подстановок унификации. Если это множество значений е приводит к решению, то поиск решения не продолжается. 621 Глава 14. Введение в PROLOG
отсечения позволяет управлять рекурсией. Например. пр„ Во-вторых. оператор ото ве предиката path рой.?. Z’ £!' moveCX. Y>. not (member (Y, L) ) . pathlY. 2,(у|ы), , ₽ath'X' Z' ’ отеепенпя означает, что в результате поиска на графе будет найдено добавление оператора отсече ^^„взется тем. что последующие рещ. только одно решение. > н"«• ', дюъюикгавного выражения path(Z, z, L). Е™, *“ W “af™ZZeT остальные решен.», то предикат path (Z, z, L) np„HItMa„ пользователь запрашии |1Н1|ЦИ1фуст вьпов второго предиката path для продолжен,» I значение ложь н те отсечения размещается после рек» ГО№Ю (полногор^а ФФВ № можя быть повторен (в результате вювра ре YP снвного вызова раин, "Р°вХы“лХ™ым эффектом использования оператора отсечен.» является ускоре- ние оаботы программы и экономия памяти. Если этот оператор использован внутри пре- | ™ката. то указатели в памяти, необходимые для возврата к предикатам, расположенный слева от оператора отсечен.», не создаются. Дело в том, что они никогда ие понадобятся. Таким образом, применение оператора отсечения приводит к нахождению желаемого решен.» только при более эффективном использовании памяти. Оператор отсечения также можно использовать при реализации рекурсии для повторной инициализации вызова path и продолжения поиска на графе. Эта возможность будет проде- монстрирована в разделе 14.3 при описании общего алгоритма поиска. Доя реализации этого алгоритма нам также понадобится разработать несколько абстрактных типов данных. 14.2. Абстрактные типы данных в PROLOG Эффективность программирования в любой среде можно повысить за счет сокрытия информации и введения процедурных абстракций. Поскольку в алгоритмах поиска на графе, описанных в главах 3-5, используются такие структуры данных, как множество (set), стек (stack), очередь (queue) и приоритетная очередь (priority queue), логично вве- сти их в языке PROLOG, что и будет сделано в этом разделе. Как уже отмечалось ранее, основными средствами построения структур для поиска на графе являются рекурсия, списки и проверка соответствия шаблонам. С помощью этих строи- тельных блоков создаются абстрактные типы данных (АТД). Все процедуры обработки спи- , в знаХ^й “Ые ВЫ’™и' опрелыиюш"е АТД, “сокрыты" внутри этой абстракции, котори значительно., мере отличается от обычных статических структур данных. 14.2.1. Стек одного конца. Следователей '”'НИ СТ3Утогура. доступ к которой осуществляется только с ного и того же конца ИнЛ ВСе элементЪ1 Добавляются и удаляются из структуры со Out) — “последним вошел назь1вают структурой данных LIFO (Last-In- « служить алгоритм поиска в rnvK *М ВЫшсл Примером работы этой структуры м необходимо определить с ле И3 подРаздела 3.2.3. Для функционирования стс ^дующие операции. 1. Проверка наличия элементов 2- Добавление элемента в стеГ В ^ПрОверка ПУСТОТЫ стека). ГИи пР°гРаммирования для искусственного интелЛ
3. выталкивание (или удаление) последнего элемента (верхушки) пт стека. 4. Просмотр последнего элемента (верхушки) без его удаления. 5. Проверка наличия данного элемента в стеке. 6 Добавление списка элементов в стек. Операции 5 и 6 можно определить на основании первых четырех операций Теперь опишем эти операции на языке PROLOG, используя в качестве строительных блоков списки. 1. empty_stack( [ ] ). Этот предикат можно использовать либо для проверки пус- тоты стека, либо для создания нового пустого стека. 2 - 4. stack(Top, Stack, [Top | Stack] ). Этот предикат выполняет операции выталкивания, добавления и считывания последнего элемента стека в зависимости от связанных переменных, передаваемых ему в качестве параметров. Например, если первые два аргумента представляют собой связанные переменные, то в треть- ем аргументе формируется новый стек. Аналогично, если третий элемент связан со стеком, можно получить значение верхушки стека. Тогда второй аргумент будет связан с новым стеком, из которого удален последний элемент. И. наконец, если передать стек в качестве третьего аргумента, то через первый элемент можно по- лучить значение его верхушки. 5. member_stack (Element, Stack) member (Element, Stack). Это выражение позволяет определить, содержится ли данный элемент в стеке. Естест- венно, этот же результат можно получить с помощью рекурсивного вызова, про- сматривая следующий элемент стека, а затем, если этот элемент не соответствует значению аргумента Element, выталкивая его из стека. Эту процедуру необходи- мо выполнять до тех пор, пока предикат проверки пустоты стека не примет значе- ние “истина”. 6. add_list_to_stack(List, Stack, Result) append(List, Stack, Result). Значение первого аргумента List добавляется к значению второго аргумента Stack для получения нового стека Result. Эту же операцию можно выполнить, выталкивая элементы из стека List и добавляя каждый сле- дующий элемент во временный стек до тех пор. пока стек List не окажется пус- тым. Затем нужно выталкивать по очереди элементы из временного стека и добав- лять их в стек Stack до опорожнения временного стека. Предикат append под- робно описан в разделе 14.8. Осталось определить предикат reverse_print_stack. выводящий стек в обрат- НОМ порядке. Это очень полезно, если в стеке в обратном порядке хранится текущий путь от начального состояния к текущему состоянию п>афа поиска. Несколько примеров ис- пользования этого предиката будут приведены в следующих подразделах. reverse_print_stack(S) empty_stack(S) . teverse_print_stack(S) stack(E, Rest, S), reverse_print_stack(Rest) , «rite(E), nl. 623 глава 14. Введение в PROLOG
14 .2.2. Очередь FffO (First.in.First.0uO - “первым 80,№,, Очередь (queue) - "°как список, в котором элементы удадя „ервь1м вышел-. Ее зачалюрас 0„средь исп0„1ась для определи вд’ "„ одного кониа. Д,залип очереди требуются следующие операц„„ „да в ширину в главах выполняет проверку очереди на Пус1() 2. enqueu ( [H|Tnew)) enqueue(E, Т, Tnew). Этот рекур. enqueue (Е, I * очередь определяемую вторым аргументом, элемент Е. т“э7еХпредс™и.яетяоа>«>»чеРсдь- <Е ГЕ|Т] Т) Этот предикат создает новую очередь (третий аргу. 3' меВ^екоторш> является результатом удаления очередного элемента (первого аргу. ' “енХ исходной очереди, определяемой вторым аргументом. ; ._ roiTi ) Этот предикат позволяет прочитать следующий эле- 4. dequeue (Е, 1Ь|и. е । мент Е данной очереди. j 5 member_oueue(Element, Queue) member (Element, Queue). Это выражение проверяет, содержится лн элемент Element в очереди Queue. 6. add_list_to_queue(List, Queue, «enqueue) append (Queue, List, New-queue). Очистка всех элементов очереди. I Очевидно, что операции 5 и 6 можно реализовать на основе первых четырех опера- ций. Предикат append описан в разделе 14.10. 14.2.3. Приоритетная очередь В приоритетной очереди (priority queue) элементы обычной очереди упорядочены, и каждый новый элемент добавляется в соответствующее место. Оператор удаления эле- мента из очереди извлекает из нее лучший отсортированный элемент. Приоритетная < очередь шла использована при разработке “жадного” алгоритма поиска в главе 4. w о4^- это, по существу, отсортированная обычная оче- операциям операций С0в£1аДа»от с операциями для обычной очереди. К таким том ши onepaira7de^l:,A~gUeUe’ m®'nber-4ueue и dequeue (следующим элемен- enqueue в ппигтит» является “лучший” отсортированный элемент). Опер»»1»1 ДЫЙновый элемент Хё„° операция insert_pq, поскольку № inserts (state " в отведенное для него место. insertjqistate' н iai : I . Precedes (stateн> 1 ' [State. I msertjqiState, (й|т ' типов оче- %оператор сравнения зави. ^элементов ^рЫ* а?°'’ Первый аргумент такого предиката — это вновь добавляемый эпеме^.ширенная °че ментом является существующая приоритетная очередь, а третьим Р очеред1*- рель. Предикат precedes отвечает за соблюдение порядка элементов в —-• ---------- „нте^3 И Технологии программирования для искусственного Следующим оператором для приоритетной очереди является insert_list_pq- предикат используется для добавления несортированного списка или множества ентов в приоритетную очередь. Это необходимо при добавлении дочернего состоя- ЭЛС в при°РитетиУю очеРсдь ПРИ реализации “жадного" алгоритма поиска (глава 4 и НИЯ аздел 14.4.3). Оператор insert_list_pq использует оператор insert_pq для ° бавления в приоритетную очередь каждого нового элемента. . eert liSt_pq([ ). L, L). in-ert-list_pq([State/Tail], L, New.L) :- 1П £nsert_pqtState, L, L2), insert_list_pq(Tail, L2, New_L). 14.2.4. Множество И, наконец, опишем абстрактный тип данных множество (set). Множество — это набор неповторяющихся элементов. Его можно использовать для объединения всех дочерних со- стояний или поддержания списка closed в алгоритме поиска, представленном в главах 3 и 4. Множество элементов, например {а, Ь], представляется в виде списка [а, Ь]. в кото- ром порядок элементов ие играет роли. Для множества необходимо определить операции empty__set. member_set, delete_if_in_set и add__if_.not_in._set. Потребуют- ся также операции для объединения и сравнения множеств, включая union, intersec- tion. set_difference, subset и equal_set. empty_set([ ]) . member_set(E, S) :- member(E, S). delete_if_in_set(E, ( ], [ ]). delete_if_in_set(E, [E[T], T) !. delete_if_in_set(E, [H(T_new]) delete_if_in_set(E, T, T_new), l. add_if_not_in_set(X, S, S) member(X, S), I. add_if_not_in_set(X, S, [Xjs]). union([ ] , S, S). union([H|T], s, S_new):~ union(T, S, S2), add_if_not_in_set(H, S2, S_new) , subset ([ ] , _) , subset([Н|T] , S) member_set(H, S), subset(t, S). intersection([ ], ( ])• intersection([H|T], S, (H|S_new)) member_set(H, S), intersection(T, S, S_new), intersection([_|T], S, S_new) intersection(T, S, S_new), !• set_diff erence ([ ] , (П- se^—difference ( [H| T] , S, T_new) •'~ member_set(H, S), set_difference(T, S, T_new) , !• set_difference([H|T], S, IH|T_new]) set_difference(T, S, T_new), !• 625 Глава 14. Введение в PROLOG
exjual_s«t(Sl. S3) *‘ subsetiSl. S3)• suhset(S2. Si)• 14J npmepnpoa^^ ». mur пассхютреня прол'и|||онн1в с,|стема -1ЛЯ решения задачи пере. кап— Эта ф.рмул..руеГСя сдеду ющпм образом перкп~»п«« через реку и перевез™ е гобой падка. козу н капусту. На жда. коп-рЛ упрпапять Ч“ОГК Лмга ™»>Реме1то может few дат гжезжирз. («.дачи .юдачника). Ее™ волк останется на береп- с Satom « «ест. Ёста «» —епя на береп с капустой. то она уничтожнт катек- Ткбчскя пыркатап. птопасюгедьягоп. переправки через реку таким образом, чтобы все четче гаекажнрз «из зкпияы в 1ККХТН и то-qMHHoeni на другой серег реки. Ркокчрпм продутапоннуто систему, обеспечивающую решение этой проблемы. Во- первых. очевидно. что эту задачу можно представить как задачу поиска на графе. Для этого нужно 3-честь все возможные ходы, доступные в каждый момент решения задачи. Некоторые из этих ходов могут оказаться неудовлетворительными, поскольку приводят к получению неустойчивых состояний г кто- го кого-то съест). Дая начала предположим. что все состояния устойчивы, и просто рассмотрим граф вошожиых состояний. В лодке можно перевозить четыре комбинации пассаязфов: че- хвеп и водка, человека и козу. человека и капусту. а также одного человека. Состоянием мира” является некоторая комбинация символов на двух берегах. На рис. 14.1 показаны несколько состоянии процесса поиска. "Состояние мирз” можно гфедсгавитъ с помощью предиката scare (F, W, G, С). в котором первый параметр (мфеэепет местоположение человека, второй параметр — местоположение волка, тре- тий козы, а четвертым — капусты. Предполагается, что река течет с севера на юг. по- этом) оерега обозначим символами е (восточный) и w (западный). Таким образом, state iw, v, v, w) означает, что все объекты расположены на западном берег)’. Эта снпаша соответствует началу решения задачи. Следует отметить, что все описанные соглашения были произвольно выбраны авто- P<»t самом деле, как отмечают специалисты в области искусственного интеллекта. ^-з^а^кня — зачастую наиболее критичный аспект реше- кжгов обеспечивают удобное представление логики преди- кат nerv и гтд-ж-г, Ржалвчные состояния мира создаются в результате переправы (pf 14 li R„^^rae:,110TC1 Юмененнями значении параметров предиката state вяхъ тог факт что лааной проблемы переправы. Пока не будем учиты- начаэо графа возможных яаляк)ГГСя неустойчивыми. На рис. 14.2 показано гое. то нет необходммостиит^88 ЧеРез • Поскольку человек всегда управляет дод- На рве. 142 показащ часть road» отле:а,ное представление для местоположения лод»*- Оивсавдьй млп» пекчтм^^8-10 КОТОР°М необходимо выполнять поиск пути. зеню ноесхом в продтквппт^ ВЬООа Ч^лнката path обеспечивает механизм управ вея"> состояния в процессе поиг^Тп^Г' Продукционные правила — это правила и»»е- Посколжу язык PROLOG ^Ч^лелнм их на языке PROLOG как правила пюх е- там» на языке PROLOG »ZZ?*₽y? хоРновскнмн дизъюнктами, то продУкШ10Н11Ь* _____.__________________ лн^° напрямую описываться в хорновегойлизы^ 626 Часть VI теладюпад программирования для искусственного интеллекта изной форме, лисю преобразовываться к (процесс приведения правил "еелп..., ио„ к хор-?’₽М.ат> Выберем первый вариант В радаеле 1—). В хорновской дизъюнктивной фопме ,22" Л1ПЪЮН™1®"ой форме описан состояний должны располагаться в голове лизъю^. °НЫ T'K>'luero последующего рагора : - Они являются аргументами предиката m2™ v° ВЫРаже™- т е. сева от one- детворять продукционное правило .тля возвращения 6 СЛ°В11Я’ котоРым должно удов- ся справа от оператора : Как будет показано в “едующег° состояния, размещают- могутбьггь представлены в вще ограничений ей,,ж ' Шем "Р^ере, эти условия также г пъ.пп11 унификации. 14.1. Пример госзедоватезыюсвш перевозок для задача нерезфавы человека, возка. козы и августы Сначала определим правила для перевозки через реку волкз. Эго правило должно учи- ТЫватъ перевозку как с левого берега на правый, так н наоборот, а также должно быть прв- менимо. если человек и волк находятся на противоположных берегах реки. Тагам образом. Должно преобразовывать состояние statele, е, G, С) в состояние state(w, С>. а состояние state iw, w, G, С)—в state (е, е, G, С).Длясостоя- ^statetc, w, G, С) и statefw, е, G, С) оно должно принимать значение Ло*ь . Переменные G и С представляют тот факт, что третий и четвертым параметры мо- оыть связаны с любым из значении е или w. Независимо от значений этих параметров °*^ не изменяются после переправы человека и волка. Некоторые из подученных состоя- ,ги могут оказаться "неу стойчивымн”. бедующее правило move применимо только в том случае, если человек и волк иахо- ится на одном и том же берегу и переправляются на противоположный берег реки. За- егвМ’ что местоположение козы и капусты не изменяете!. ^^(stat^-v - - - -- '• ' х Г?. JPfe, - '^₽(w, е, 1^>вва ’4. Введение в PROLOG
stetele.e.e.w) s:ate(e. e. w. e) state(e.w.e.e.) Puc. 14.2. Часть графа состояний для задачи переправы человека, вол- ка, козы и капусты с учетом неустойчивых состояний Это правило срабатывает в том случае, если в качестве первого параметра предикату move передается состояние (текущее положение на графе), соответствующее одинако- вому местоположению человека и волка. При активизации этого правила генерируется новое состояние (второй параметр предиката move), в котором значение Y противопо- ложно значению X. Для получения этого нового состояния должны быть выполнены два условия. Во-первых, должны совпадать значения первых двух параметров, а во-вторых, оба новых местоположения должны быть противоположны старых/. Первое условие проверяется неявно в процессе унификации. Следовательно, если первые два параметра не совпадают, то предикат move даже не вызывается. Эту провер- ку можно явно выполнить с помощью следующего правила. move (state (F, W, G, C) , state(Z, Z, G, C) ) F=W, opp(F, Z) . В этом эквивалентном правиле move сначала проверяется равенство значений F и W, и только при его выполнении (расположении обоих объемов на одном берегу реки) параметру можиГ™™",начение' противоположное F. Заметим, что в языке PROLOG присваивание СвязанвыГэти8™ С помощь|° связывания значений переменных в процессе унификации- ^^иХХ“1ГПР0СТ₽аИЯЮГСЯ.На ВСе схождения переменной в дизъюнктивно» вЫ- в процессе усечениГГ ПереМенно" ограничивается содержащим ее дизъюнктом. РованГ сХУ и™ нно?оВаЖНУЮ Р0ЛЬ НГраеТ 13К0е МОЩН°е среда™ стояния, не удовлетворяй-. интеллекта, как проверка соответствия шаблонам, ла. В этом смысле пепвая™"' Шаблшмм' автоматически отсекаются для данного прав' стааление, поскольку с-с.-Г^и* "рааила move обеспечивает более эффективное пре унификации это состояние ПерВЬ1е два параметра не совпадают, то в проиее Теперь создадим пре»„к рассма1Р“вается. 0, стояния, чтобы в процессе '103В0ЛЯ1°ЩИй проверить безопасность каждого нового с __________ПереПравы че₽ез реку „и одни из объектов не был съеден- Н« 6 2 в Ч а ст ь V | ____- ~~^******' логии программирования для искусственного интелл
безопасным является любое состояние, в котором втооой к - „ противоположны первому параметру. В этом случае вол7™ "ap!"'U’Tlll‘' безопасным является и такое состояние, при котором одинХы тоТ- ”°МС раметры. и при этом они противоположны первому. Тогда коза със сткапус™^™" не- безопасные ситуации можно представить в виде следующих правил unsafe. unsafe(state(X, Y, Y, C)) opp(x, Y) . unsafe(state(X, W, Y, Y)) opp(x, Y) . Здесь необходимо отметить несколько моментов. Во-первых, если состояние -нс яв- ляется небезопасным not unsafe (т.е. безопасно), то согласно определению встроен- ной процедуры not в языке PROLOG для этого состояния не может быть истинным ни один из предикатов unsafe. Следовательно, ни один из этих предикатов ие может быть унифицирован с текущим состоянием, или при унификации их условия нс должны вы- полняться. Во-вторых, встроенная процедура not не эквивалентна операции логического отрицания в теории предикатов первого порядка. Процедура not — это, скорее, отри- цание за счет невыполнения противоположного утверждения. Чтобы проверить, как по- ведет себя предикат unsafe, необходимо протестировать множество состояний. Доба- вим к предыдущему продукционному правилу проверку not unsafe. move(state (X, X, G, C), state(Y, Y, G, C)) :- opp(X, Y) , not(unsafe(state(Y, Y, G, C))). Процедура not unsafe проверяет приемлемость нового состояния в процессе поиска с помощью вызова предиката unsafe. Если все критерии удовлетворяются, включая проверку (в алгоритме path) отсутствия этого состояния в списке уже пройденных состояний, для дан- ного состояния вызывается (рекурсивно) алгоритм path для перехода глубже по графу. При вызове предиката path новое состояние добавляется к списку уже пройденных. Аналогично можно разработать три других продукционных правила, представляю- щих переправу через реку человека с козой, капустой и без "пассажиров”. Для вывода результатов трассировки добавим к каждому правилу команду writelist. Команда reverse_print_stack используется в условии останова алгоритма path для вывода пути окончательного решения. И. наконец, добавим пятое “псевдоправило”, которое не содержит никаких условий и поэтому всегда срабатывает при невыполнении всех предыдущих правил. Оно означает возврат вызова алгоритма path из текущего состояния. Это псевдоправило позволяет пользователю отслеживать поведение продукционной системы в процессе ее работы. Теперь рассмотрим полную программу на языке PROLOG, реализующую продукци- онную систему решения задачи переправы человека, волка, козы и капусты. Она должна включать предикаты unsafe и writelist, а также предикаты, описывающие абст- рактный тип данных стек (подраздел 14.2.1). ®ove(state(X, X, G, С) , statefY, Y, G, С)) : орр(Х, Y) not (unsafe (state (Y, Y, G, C))). writelist(['попытка переправить человека m°ve (state (X, w, X, c) , state (Y, W, Y, C)) °PP(X, Y) , not (unsafe (state (Y, W, Y, сШ. writelist (( 'попытка переправить челове "'ove (state (X, w, G, X) . state(Y, W, G, Y)) =- °PP(X, Y) , not (unsafe (state (Y. W, G, Y) J writelist(['попытка переправить e волка' , Y. Y, G, C]) . козу’ , У, W, Y, C]) . капусту'. Y, W. G, Y]). 629 Глава 14. Введение в PROLOG
а. л / V W, Gi С) ) * w G, С) , statet . w G, С)))' noe<unsafe<seaeeB(<, го человека', ¥, w, G, с». ^tatelF^, G, С), G С) ) , fail. move(state(г, ВОЗВРАТ из , F, > writelist(I k) • - pathtGoal. Goal, nl, „rite! -путь решения аЛ) reverse__print_stacK t path(State, Goal, move(State, Next-® t -tate, Been_stack)), not(member_stack e - . New_been_stack) , stack(Next_state, e - been.stack) , ! - path(Next_state, Goal, « - opp(e, w). Opp (w, e) • Этот код вызывается в запросе go, инициализирующем рекурсивный вызов алгорит- MaXh Чтобы упростить работу „родимы. можно создать предикат test, облег- чающий ввод начальных данных. gotstart, Goal) empty_stack(Empty_been_stack), stack (Start, Empty_been_stack, Been_stack) , path(Start, Goal, Been_stack) . test go(state(w, w, w, w) , state (e, e, e, e) ) . Этот алгоритм возвращается из состояний, не обеспечивающих дальнейшего продви- жения. Для мониторинга связывания различных переменных в процессе каждого вызова алгоритма path можно использовать команду trace. Следует отметить, что эта систе- ма является обшей программой перемещения четырех объектов из любого (допустимого) местоположения на берегах реки в любое другое (допустимое) местоположение, включая поиск обратного пути к начальному состоянию. Другие интересные свойства этой про- дукционной системы, в том числе зависимость результатов поиска на графе от порядка следования правил, можно проиллюстрировать в следующих упражнениях. Приведем некоторые результаты трассировки выполнения программы, отображая лишь правила, действительно используемые для генерации новых состояний. ?- test, попытка попытка попытка попытка попытка попытка попытка ВОЗВРАТ из е, ВОЗВРАТ из w, попытка переправить переправить человека и козу е w е w переправить < переправить • переправить переправить переправить переправить w, w, попытка переправить ч^овёк: Путь решения: state(w, w, w, w) е, w) е, w) одного человека w w e w человека человека человека человека человека , е, е г w, е одного человека —а и козу и и и и и волка e e e w козу w e w w капусту e e w e волка w w w e козу е w е е е е е е w е W е statele, w, state(w, у. Часть VI. Языки ит ___________________________________ ИИ пР°гРаммирования для искусственного интеллб,гг 630
stated state (w, state(e, state(w, state(e, e, e, w) e, w, w) e, w, e) e, w, e) e, e, e) Итак, эта программа на языке PROLOG реализует w переправы человека, волка, козы и капуста.. Правила mov „амт. Рабочая память представлена аргументами вызова алгоритмТ^ГмДТ™0™510 лепил продукционной системой реализуется с помощью рекурсивного вызовараТиХ нец, порядок следования правил для генерации дочерних состояний (разрешав ZtaZ определяется порядком расположения этих правил в продукционной памя™ ' 14.4. Разработка альтернативных стратегий поиска Как видно из предыдущего раздела, в самом языке PROLOG реализован поиск в глу- бину с возвратом. Этот момент более детально будет описан в разделе 14.7. Теперь рас- смотрим, как реализовать на языке PROLOG альтернативные стратегии поиска, описан- ные в главах 3—5. Цдя записи состояний в процессе поиска в глубину, в ширину и при реализации алгоритма поиска будут использованы списки open и closed. В случае не- удачного завершения поиска в некоторой точке мы не будем возвращаться к предыду- щим значениям этих списков. Они будут обновляться при вызове алгоритма oath, и по- иск будет продолжаться с новыми значениями. Для предотвращения хранения старых версий списков open и closed будет использован оператор отсечения. 14.4.1. Поиск в глубину с использованием списка closed Поскольку при возвратах в рекурсивных вызовах значения переменных восстанавли- ваются, алгоритм поиска в глубину из раздела 14.3 пополняет список пройденных со- стояний только состояниями, относящимися к текущему пути к цели. И хотя проверка наличия в списке каждого нового состояния позволяет избежать циклов, она требует по- вторного тестирования тех областей пространства, которые уже были достигнуты ранее при построении других путей, но отклонены на данный момент из-за их бесперспектив- ности. Это более полное множество состояний составляет список, получивший название closed в главе 3 и Closed_set в следующем алгоритме. В множестве Closed_set хранятся все состояния текущего пути и состояния, от- вергнутые при возврате алгоритма. Следовательно, теперь оно не представляет путь от исходного к текущему состоянию. Для хранения информации о пути определим упоря- доченную пару [state, Parent], представляющую каждое состояние и его родителя. Начальное состояние Start будет представлено парой [Start, nil]. Эти пары у ДУТ использованы для воссоздания пути решения из множества Опишем на языке PROLOG структуру программы для поиска в глу и у качения списков open и closed н проверяя каждое новое на .го ..«в ^иске пройденных. Алгоритм path зависит от трех параметров. Goal. Текущее cocTS6d~Set <обРабатываемого КЗК множеСГВо) Нн^Ле^Г°ореп stack. Операторы родине State является следующим состоянием Д™ ОРеп„ с* и Set описаны в разделе 14.2. г • ЭВа 14' Введение в PROLOG 631
и,1,1излиз«РУюШСГО ВЫ30В алгоритма path- Закс. ялтм С лред«к»и ®°' СТСК open_stack помещается пара, 0„исы. [StarC' nilL МИ~ 9°<SXtyJ°«1’-,^n)OPX«'^Pen' Open-atack) WtyJS<0^-c?osk.s«- Goal) • BrZ-₽a--C«WerooT^ap^TOB. имеет ВВД. ₽athlXty-fcackiOpB^;BtBeknpMBenM к решению'). path7SpenS?™k"Pcl°^Bet\GXeUt«k)- State = Goal, print solution([State, . - path (Open_stack, Closed-set^ G ^ acJ{, Open_stack>, stack)(State, Parent), Re P Closed_set, Children), get.childrenfState Rest op _ stack, New_open_stack), addLlist_to_stack<O>ildren,oRest_eP -ew_closed set) , get £?^Жё:“:Вг^В^78С^6еЙёе, !Children) “bagof(Child, moves (State, Rest_open_stack, Closed_set, Child), Children). ar at-el) - moves(State, Rest_open_Stack, Closed_set, [Next, State]) - move(State, Next), not (unsafe (Next)) , % проверка зависит от задачи not(member—stack([Next, _) , Rest—open_stack) ) , not (member_set ([Next, , Closed_set) ) . Предполагается, что правила move и (при необходимости) предикат unsafe некою рым образом определены. move(Present_state, Next_state) % первое правило move(Present_state, Next„state) ... % второе правило При вызове первой команды path поиск прекращается, если стек OperL_stack пуст. Это означает, что в списке open больше не содержатся состояния для продолжения пож ка. Обычно это свидетельствует о том. что для данного графа выполнен поиск полным ребором. Второй вызов path завершается при нахождении решения, которое и вывод на печать. Поскольку состояния графа поиска представлены парами [State, РаГеП0)П команда printsolution перейдет ко множеству Closed_set и рекурсивно перестр пугь решения. Заметам, что пуп, решения будет выведен в прямом порядке, printsolution([State, nil), ) write(State), nl “ printsolution ([Stated Parent], closed set) -- Gran^«ntl f~ciosed_set>, write(Stste), г;’'™1' Grandparent), Closed_set) , 632 ------------------------------------------------------------—< Рограммирования для искусственного интеЛ/,ехТ
~—- ^ого t—а в едином списке. Второй плр^Гп еХТдо^ ХТоГе которым производится срависиие в базе данных. Первый парамеар определ Хежа nine хранению в списке компоненты второго параметра. Напри^, „а^м0Т Хео- вать связанные значения для одной переменной предиката. Все связанные переменные первого параметра накапливаются в списке н связываются с третьим параметром В этой программе предикат Ьадо£ накапливает состояния, досзитнутые при срабатыва- нии всех существующих продукционных правил. Естественно, необходимо хранил, все по- ДО.КН конкретного состояния, поэтому их можно добавить в соответствующем порядке в список орел. Вторым аргументом предиката bagof является новый предикат moves визы- мюший предикаты move для генерации всех состояний, которые могут быть достигнуты с помощью данного продукционною правила. Аргументами предиката moves являются теку- щее состояние, списки open и closed и переменная, представляющая состояние, достигае- мое при “хорошем ходе. Прежде чем возвратить это состояние, предикат moves проверяет, что это новое состояние Next не содержится в множествах res t_open_stack, open (поскольку текущее состояние удалено) и closed_set. Предикат bagof вызывает moves и накапливает все состояния, удовлетворяющие этим условиям. Третий аргумент предиката bagof представляет новые состояния, помещенные в стек Open_stack. В некоторых реализациях предикат bagof принимает значение “ложь”, если для вто- рого аргумента нс найдено никаких соответствий, а значит, третий аргумент пуст. Это можно исправить с помощью подстановки (bagof (X, moves (S, Т, С, X) , List); List = [ ] ) для текущих вызовов предиката bagof в данном коде. Поскольку состояния поиска представлены парами “состояние-родитель”, предикаты про- верки вхождения элемента во множество member_set необходимо модифицировать таким образом, чтобы они отражали структуру проверки соответствия шаблону. Необходимо прове- рить, совпадает ли пара “состояние-родитель” с первым элементом списка таких пар. и, если нет — выполнить рекурсивное сравнение со всеми остальными элементами списка. member_set ( [State, Parent], [[State, parent]| _]) . member_set (X, [_|T]) member_set(X, T) . 14.4.2. Поиск в ширину в языке PROLOG Теперь рассмотрим оболочку (shell) алгоритма поиска в ширину, явно использующую списки open и closed. Эту оболочку совместно с правилами move и предикатами un- safe можно применять для решения любой задачи поиска. Алгоритм вызывается сле- дующим образом. 5°(Start, Goal) empty_queue (Empty_open_queue) , enqueue ( [Start, nil], Empty_open_queue, Open_queueJ , emptyset (ClOsed_set) , Path (Open_queue, ClosecLset, Goal)- Зиачеши парамегоов Start и Goal очевидны. Они представляют начальное и Пеле- Жителе. Начальное состояние Start представляется парой [Start, nUJ. Ла 633 Гпава Введение в PROLOG
„„«дая командой printsolution для воссоздания пуги п„ формант исямьЗУ Первым параметром предиката path яви? M”° C1OSed~s^ » Пленные, значения которых не г™ваются в дизьзон^ ранении, обозначаются символом >lt ^(ScK0S^e“e)pe“e«^ не найдено-). OpeVgueue, _). state = Goal, writef'Путь решения:'), nl, printsolution ((State, Parent), Closed_set). path(Cpen_queue, Closed_set, Goal) dequeue ((State, Parent], Open_queue, Rest_open_queue) get_children(State, Rest_open_queue, Closed^set, Children) add_list_to_queue (Children, Rest_open._queue, New_open qu ' union ([ [State, Parent]], Closed_set, New_closed__set) "" eue^f path(New_open_queue, New_closed_set, Goal), I. get_children (State, Rest_open_queue, Closed_set, Children) bagof(Child, moves (State, Rest_open_queue, Closed_set, Child), Children). moves (State, Rest_open_queue, Closed_set, [Next, State]) move(State, Next), Rest U”? “ M — not(member_set( [Next, _] , Closed_set) ) . HcotaJnXT ОбОЛОЧКОЙ- ПОСКОЛЬ|<У Здесь не описаны правила move. Их queue и set описаны в рто'14.2НКРеТН°Й "реДМетной областП залачи- 0,ге₽аг«₽“ path вызывается с тяыыпГГ0РИ™а Path опРеделяется для случая, когда предают только если для графа больше нВЫМ арГуМентом °Реп_Ф1еие. Эта ситуация возникает, найдено. Решение находится п 6 ОСталось непроверенных состояний, а решение не было °Pen_queue совпадает г П(1пПрИ Вызове вт°рого предиката path, когда голова очереди В процессе поиска пТ"’ С0СТ°ЯНИем Goa1' стояния для текущих состоянийmaTbI и moves накапливают все дочерние со- сана в пРеДыдушем разделе. Чтоб поддеРживают очередь. Работа этих предикатов спи- стся в виде пары [ state раг Ы ®°СС03дать пУгь решения, каждое состояние сохрани тель nil. Как упоминалось Родителем начального состояния является указа- Уст некоторого усложн Одразделе М.4.1, попарное представление состоян«,! Ves и printsolution. ровеРки соответствия шаблонам в предикатах member И.4.3, Реализация “жа я Оболочка для реади °Г° алг°ритма поиска на языке PROLOG меняетсякпрВиХ7ИНУ’ В аЛГ°рнтма п°иска— это модификация про^ лагаемом аягОри17НОЙ °Чередьто. ynonZ)04^^ каждого нового ВЬ,3°Ва Рп преД ем скрытой очепЛГРНстическая мера Ченнои по эвристическому критерню- р ди и применяется ПР еразРывно связана с каждым новым с 634 иТ 7~—--------- СИстематизацни ее элементов. Мы буДсМ Часть^1. ЯзыкТ^^---------- __ __ ____________ и прогРаммирования для искусственного интбЛ
„янить информацию о родителе каждого состояния кяи „ pU она используется для построения пути рвения командой ^ХоГиТГоп’ ” Р Чтобы отслеживать всю необходимую для поиска НиЖп incsoiutlon- в виде списка из пяти элементов: опиеаХЗХ Х^Хе еХиие иел°е число, определяющее глубину поиска на ,рафе. целое число, определяющее эХХ ческую меру качества состояния, и целочисленная сумма третьего и четвертого элемента Первый и второй элементы списка находятся обычным образом, третий определяется пу- тем добавления единицы к предыдущей глубине, четвертый - это эвристическая мера Z конкретной задачи. Пятый элемент списка используется для упорядочения состояний в от- крытой очереди Open_pq и вычисляется по формуле f (n)=g(n)+h(n) (см главу 4) Как и ранее, правила move не приводятся. Они определяются с учетом специфики за- дачи, Операторы работы с очередью и приоритетной очередью описаны в разделе 14.2. Мера качества состояния heuristic тоже определяется с учетом специфики задачи и отражает эвристический характер четвертого параметра в списке описаний. Этот алгоритм имеет два условия останова и вызывается следующим образом. go(Start, Goal) empty_set(Closed_set), empty„pq(Open), heuristic(Start, Goal, H) , insert_joq( [Start, nil, 0, H, H] , Open, Open_pq), path(Open_pq, Closed_set, Goal). Здесь nil — это родительское состояние для состояния Start, а Н — его эвристиче- ская мера качества. Приведем код программы, реализующей “жадный” алгоритм поиска, path(Open„pq, empty_pq(Open_pq), write('Поиск завершен, решение не найдено.'), path (Open_pq, Closed_set, Goal) : - dequeue„pq( [State, Parent, , Open_pq, _), State = Goal, write('Путь решения:'), nl, printsolution([State, parent path(Openjpq, Closed_set, Goal) dequeue_jpq([State, Parent, D, H, S] , Open_pq, Rest_open_pq) , get_children( [State, Parent, D, H, Si, Rest_open__pq, Closed_set, Children, Goal), insert list_pq(Children, Rest_open_j>q, New_open_pq) , union(71 State, Parent. D. H. SJ1 . Close4_set, New_closea_set> , path(New_open_pq, New_closed_set, Goal), !- Предикат get_children генерирует все дочерние состояния для Как и в предыдущих алгоритмах поиска, в нем используются пр Правки №ves. Работа эп<х предикатов более подробно описана в подрою‘^Правила "ереходов, проверки безопасности допустимых переходов и эвр1 элемипа множе- опРеделяются с учетом конкретной задачи. Проверка 7“' "“У должна быть специально реализована для списков из пят . _ 9et_chilaren( (State,., D, _, -1. Rest_open_pq, Closed.se , en. Goal) ] Rest_open_pq, bagof(Child, moves([State, -J Closed^set, Child, Goal), Children). Closed_set). 635 ГЛава 14- Введение в PROLOG
%определяется с учетом задач . Rest_open_pq, Closed_set, , Depth, - H SJ, Goal) :“ mWe ™ext,'s«te' №W-D' H' „„„«(State, Next), Определяется с учетом 3.„ not (unsafe (Next) ), _) , Rest_open _J>q) ) , not (member J>Q( [N®t - /1, _b closed_set)), not(member.set ( New_D is Depth heuristic(Next, Goal, Hl, / 1S ”, Аманда printsolution выводит путь решения. Она рекурсивно изд. И. наконец, кома , с00тветствня первых двух элем ДИТ пары Ibtat , элементам пятиэлементных списков, составляют,,,, мвожХо Closed-set. Родителем начального состояния является указатель nil. printsolutionflstate, nil, _, -, write (State) , nl. ] closed_set) printsolution([State, Parent _ г1лсс,а , member_set ((Parent, Grandparent, _, _, _) , Closed_set), printsolutionl [Parent, Grandparent, _, _, , Closed_set), write(State), nl. 14.5. Реализация планировщика на языке PROLOG В разделе 5.4 был описан алгоритм планирования на основе теории предикатов. В нем логика предикатов использовалась как для представления состояний мира плани- рования, так и для описания правил изменения таких состояний. В этом разделе будет разработана реализация этого алгоритма на языке PROLOG. Состояния мира, включая начальное и целевое, представим в виде списков предикатов. В рассматриваемом примере начальное и целевое состояния можно описать таким образом, start = [handempty, ontable(b), ontable(c), on(a, b) , clear(c), clear(a)] goal - [handempty, ontable(a), ontable(b), on(c, b) , clear(a), clear(c)] Пепехо'11.ШШЧ c ФРагментом пространства поиска показаны на рис. 14.3 и 14.4. ния как в пачлЛГтя блОКОВ оп,,сываются с помощью списков добавления и удале- ката move с его Ред,,ка™ move зависят от трех аргументов. Первый — имя прели- ар,умснт- эт°с=к пр—в-т епсрс,:ь вило перехода было ппим истинны в описании состояния мира, чтобы данное пра ления и „ ТрегиГ, аргумент — это список добав удаляются из него для созл-^ ПРед,,катов’ которые добавляются к состоянию мира ня хода. Заметим, что в данном Н0В0Г0 СОстояния в результате применения правила перс рации над множествами в тпм^^ ПОЛезно использовать абстрактные типы данных и 0,1 применять для управления прелу1'^ °^ъединснне- пересечение, разность и т.д- Их УЛ° Четыре перехода в этом миоеЛ°в*,,ЯМН’Э также Добавления и удаления списков. ra°ve(piC}rUp,x, можно описать следующим образом. <handempty)n^e^5y' с^еаг (X) , On(x Y) j ^)), ааа^«^;п^<оп(х,у)>, Л0ГИИ п₽огРаммирования для искусственного инте'”,в1<,а
BOve<pickuP<x) • [handempty, clear(X) [del(handempty), del(clear(X)) add(holding(X))]). • °ntable(X)], del(ontable(x) /nutdown(X), (holding(X)] , n°Ve[del (holding(X)) , addtontable(X)), add(clear(X) ) , add(handempty)]). (Stack(X, Y), (holding(X), clear(Y)], m°Ve (del (holding (X) ) , del (clear (Y)) , add(handempty) add(on(X, Y)), add(clear(X))l) • Puc. 14.3. Начальное и состояния для задачи w .чира бмкоа Рис. 14.4. Нача1ъные уровни пространства состояний д.1я миро аюков Кат т Ha,<OHC1i' построим рекурсивный контроллер для генерации плана. Первый прели- Гс Нированця соответствует условиям останова при успешной реализации плана, Посл(> Дост,,жени“ Ц^-чи. Последний предикат означает завершение полного перебора, Ра^ *огорого дальнейшее планирование невозможно. Рекурсивный генератор плана аст слеДующнм образом. Ла8а 14' Введение в PROLOG
мнение для предиката move- j Находим отношен» подмножества проверяем, выполняются Ли п , С яомош-о О"ер-“\П0Х"ниото —. дослевияРгесоп генерИруеТ новое состояние Child_state с Исподь 3 . Предикат cha9 5авлеН(И „ удаления. 4 .сХХ“"Д« -^er'stack проверяем’не сода~ли новое «- New move_.st.ack. 6 Оператор stack добавляет исходное состояние папе в стек New_been_stack. 1 г „„иошью рекурсивного вызова предиката plan на основе дочернего состоя®, ChHd“ta?e^обновленных стеков New_move_staek и Been_stack нахе дится новое состояние. Для реализации алгоритма требуются дополнительные утилиты, описанные при рас- смотрешш абстрактных типов данных (стека и множества) в подразделах 14.2.1 и 14.2.4. Естественно, поиск реализуется на основе стеков с помощью алгоритма поиска в глубину с возвратами и завершается после нахождения первого пути к цели. Алгоритмы планиро- вания на основе поиска в ширину и “жадного" алгоритма поиска читателю предлагается реализовать самостоятельно в качестве упражнений. plan(State, Goal, Move_stack) equal_set(State, Goal), write!'переходы'), nl, reverse_print_stack (Move_stack) . plan(State, Goal, Been_stack, Move_stack) move(Name, Preconditions, Actions), conditions_met (Preconditions, State) , change_state(State, Actions, Child_state), not (member_stack(Child_state, Been_stack)) , stack(Name, Been_stack, New_been_stack) , stack(Child_^state, Move_stack, New_roove_stack) , plan(Child_state, Goal, New_been__stack, New_move_stack), •• coShions_met(₽,Ws)^-'nPK Ta™X ПереХОДах план невозможен'.'>. subsetlp, S), change_state(s, [ ], s) change state(s, ladd(₽)|T),'s new| change_state(S, T, S2) add______if_not in sat <d ci change_state(s, (del (₽) It,. -П®")' !' change-state (S T so ' S-n®W) :' Tlelete-if-ln_set(₽ o, „ reversH-prlnt-stack(s) ' .S^' S-neW)' !' e®Pty_stack(S) reverse_print_stack(S) •. stacklE, Resti s) -it^Snfrlnt-st^4<est), ЫКИ И ТвХИ0'10™и программирования для искусственного интелле»13
И. наконец, выпишем предикат до дм инициализации же предикат test для демонстрации простого метода запоев ™ п₽сднкага р1ап'» ™- o(Start, Goal) системы планирования. empty—stack (Move_stack) , empty.stack(Been_stack) , stack(Start, Been_stack, New_been stack) plan(Start, Goal, New_been_stack, Movejtack) . te3t^"”Pty' °ntable(b)- -tabletc), on(a, b), cleartc), ей"?. °ntable,a)' ontabletb), onto, b) , clearta). 14.6. Метапредикаты, типы и подстановки унификации в языке PROLOG 14.6.1. Металогические предикаты Металогические конструкции позволяют повысить выразительность программирова- ния в любой среде. Такие конструкции будем называть .метапредикатами (meta- predicate), поскольку они предназначены для проверки соответствия, формирования за- просов и управления другими предикатами, составляющими спецификацию предметной области задачи. Их можно использовать для рассуждения о предикатах в PROLOG, а не доя обозначения термов или объектов, что свойственно обычным предикатам. Метапре- дикаты в языке PROLOG служат для реализации (как минимум) пяти целей. 1. Определение “типа” выражения. 2. Добавление ограничений “типа” в логические приложения. 3. Построение, разделение и оценка структур PROLOG. 4. Сравнение значений выражений. 5. Преобразование предикатов, передаваемых в виде данных, в исполняемый код. Выше было описано, как в программу на языке PROLOG можно ввести глобальные структуры, т.е. данные, доступные во всем множестве дизъюнктов. К текущему наоору Дизъюнкт С можно добавить с помощью команды assert (С). Использование команд assert и retract связано с некоторой опасностью. По- скольку эти команды создают и удаляют глобальные структуры, они приводят к по- бочным эффектам которые могут вызвать другие проблемы, присущие плохо структу- рированным программам. Однако глобальные структуры иногда необходимо исполь- зовать. Это требуется при создании в среде PROLOG с™шческ« сетей (semanne "«) и Фреймов (frame). Глобальные структуры также можно использовать для описа- ния новых результатов получаемых с помощью основанной на правилах оболочки. информаций должна быть глобальной, чтобы к ней могли получить доступ другие ”Р К'ХТдХТ метапред,,катов, применяемых для упраш,е„ия „редст^еииями, от- н°сятся следующие. Глава 14. Введение в PROLOG 639
. ,,аг (Х) принимает значение —" ™ько в том случае, если X _ НеС8таннад ' беременная. ..|КТ11На" только в ток. случае, если nepeMeHHa> ' ГсХ-Х-ьгитермом. . =.. создает список из Р ^„ф.щнрует Y со списком [ f оо, а, ь> Например, foo (а^ - ш а хвост содержит аргументы этой ф5лицин Голова списка использоватъ для выполнения обратного действия Метапрелигат •• а> Ь/ С] истинно, то значением X являете. Так, если выражение х-. • t foo(a, b, с)- С t„r(A В О принимает значение “истина .если аргумент А —это * Хный фунетор которого имеет имя В и арность С. Например, выражение functor!foo (а, Ы , X, Y) истинно для значений пере- „енныхx=f00 и Y=2. Если один нз аргументов метапредиката functor (А, в, с) является связанной переменной, то можно получить значения других переменных, в частности, все термы с заданным именем и/или арностью. . clause (А, В) унифицирует В с телом дизъюнкта, голова которого унифициро- вана с аргументом А. Если в базе данных существует предикат р (X) q (X), то clause (р(а), У) истинно для Y=q (а). Этот метапредикат полезно использовать для связывания управ- ляющих правил в интерпретаторе. • any„predicate(. . ., X, . ..) X выполняет предикат X, являющийся аргументом произвольного предиката. Так. некоторый предикат X можно передавать в качестве параметра н выполнять в любое удобное время. Предикат call (X). где X — дизъюнкт, тоже завершается успеш- но при выполнении предиката X. Этот краткий список металогических предикатов очень полезен при построении и интерпретации структур данных искусственного интеллекта, описанных в предыдущих главах. Поскольку PROLOG позволяет легко управлять собст- венными структурами, то несложно реализовать интерпретаторы, модифицирующие се- мантику языка PROLOG. Это и будет сделано ниже. 14.6.2. Типы данных в языке PROLOG может ппивестиРкЛ0ЖеНИЯХ неогРаниченное использование подстановок унификаций В процессе уншЬпкят “'кнове““ю “шибок. PROLOG — это нетнпизированный я™"- вязки к типам даииых"1н ₽0СТ° Проверяется соответствие шаблонам без всякой их пр" Дитея .п01федХб±Р1'МСР''Л,аЧСНЛСВЬ1РЯ*ш,„»аРРс.па(п1.1. 6, 6) наподобие Pascal можно w 1"*П append- ^а примере строго типизированных язык программистам избежать °стовсриться в том, что проверка соответствия типов помог\ тле типов данных (tvne'i 1{ ь ОП1Х *4>°блем. Многие исследователи предлагают ввести по 1986], [Mycroft и O'Keefe,19^‘ данных [Neves и др., 19551 полезны для использования в реляционных ве ограничений для этих „ ^7). Логические правила можно применять в ка --------"Равил и типизировать их, чтобы обеспечить согласованность „смысленную интерпретацию запросов. Допустим, в базе данныт .... ношения inventory (каталог), suppliers (поставщики). ХнеГСХ- I ^нао-поставщик) и т.п. Определим базу данных как . uppilGr-lnventory . йыми полями, которые можно рассматривать как наборы кортежей Шпр^мео' ИМеН<”а'“ ! inventory может состоять из четырехэлементных кортежей, где ' отношение I еитате, Pnumber, Supplier, Weight> е inventory I только в том случае, если Supplier- это нмл поставщика товара с номером pnumber, именем Pname и весом Weight. Допустим также, что Р <Supplier- Snumber, Status, Location* e suppliers ТОЛЬКО в том случае, если Supplier - это имя поставщика с порядковым номером Snumber. статусом status из города Location, а «Supplier, Pnumber, Cost, Departments e supplier_inventory только в том случае, если Supplier— это имя поставщика партии с номером Pnum- ber, стоимостью Cost в отдел Department. В языке PROLOG можно определить правила, реализующие различные запросы и выполняющие проверку соответствия типов для этих отношений. Например, запрос “располагаются ли поставщики партии товаров № 1 в Лондоне" на языке PROLOG мож- но представить так. ?- getsuppliers(Supplier, 1, london) . Правило getsuppliers (Supplier, Pnumber, City) cktype(City, suppliers, city), , suppliers(Supplier, _, _,City), cktype(Pnumber, inventory, number), supplier_inventory (Supplier, Pnumber, _, _), cktype(Supplier, inventory, name). реализует этот запрос и накладывает ограничение на кортежи базы данных. Первые пе- ременные pnumber и City связываются, если запрос унифицируется с головой прави- ла. Предикат cktype выполняет проверку принадлежности элемента Supplier множе- ству suppliers, проверку легитимности 1 как инвентарного номера я проверку того, что london — это возможное местоположение поставщика. Пусть предикат cktype зависит от трех аргументов: значения, имени отношения и имени поля. Допустим, он проверяет соответствие каждого значения типу отношения. ^апример, можно определить списки допустимых значений для переменных Supplier, Pnumber н City и реализовать типизацию данных с помощью запросов проверки при- иадлежностп предлагаемых значений этим спискам. Кроме того, можно определить ло- гические ограничения на возможные значения в рамках одного типа. Например, можно потребовать, чтобы инвентарные номера не превышали 1000. Необходимо понимать различия в реализации проверки соответствия типов между ^Ртнымн языками наподобие Pascal и языком PROLOG. Для отношения suppli- rs “ языке Pascal можно определить следующий тип данных. УР ® suppiier = record Sname: string; логии программирования для искусственного интелл0 Лаеа ’4. Введение в PROLOG 641
smeber: integer: boolean; location: string end . Pascal определяет новые типы (в данном случае supply Программист на языке Ease ^еап и integer. Если программист вс TCpMil№ уже существуют MMnl[JMTop автоматически выполняет проверку со- пользует переменные этого тип . ответствия типов. представить в виде В PROLOG отношение supplier supplier(snanie(Supplier! , snumber (Snunber) . status(Status). Иноверка ZotbZbhb типов осуществляется с помощью таких правил, как getsup- . ^Tcktvpe Различие проверки соответств.щ типов между языками Pascal „ ЙоцЬ очевидно. При объявлении типа в языке Pascal компилятору передается тип ZhXk всей структуры (record), так и ее отдельных компонентов (boolean, in- teger string). При объявлении переменной указывается ее тип (record), а затем создаются процедуры для доступа к этим типизированным структурам. procedure changestatus (X: supplier)« begin if X.status then. . . • Поскольку PROLOG — это не процедурный язык, в нем объявление не отделяется от использования типов данных, а проверка соответствия типов осуществляется в процессе выполнения программы. Рассмотрим правило supplier_name(supplier(sname(Supplier) , snumber(Snumber) , status(true)У location (london))) integer(Snumber), write (Supplier) . Предикат supplier_name получает в качестве аргументов экземпляр предиката Sup- plier и записывает имя данного поставщика. Однако это правило успешно реализуется только в том случае, если номер поставщика— это целое число, переменная статуса прини- мает значение true, и поставщик располагается в Лондоне. Важной особенностью проверки соответствия типов является ее реализация с помощью алгоритма унификации (true, lon- don) и встроенного системного предиката integer. Можно ввести ограничение на выбор значешш из определенного списка. Например. можно потребовать, чтобы значение перемен- пшпоег выбиралось из списка номеров поставщиков Ограничения на запросы к определяются с помощью прав,t, nIna cktype „ suppiier_na№ и рс^°>™Т ZL™Ma™mi,Bn'WUeKe ВЫПатнения программы. лг па. Первый и наибптё МЫ ра“мотрелн ТР11 способа типизации данных в языке PR можных тначснигЛспс1"1"'" СОСТОНТ 8 использовании унификации для ограничен!1"I в PROLOG для огмнн^МеИ-ЫХ’ Второй способ — применение встроенных пред11 являются метагтедикатъ*1™ Пр08срки соответствия типов. Примерами его ре1™1 ограниченна" „Var(x)'c^^eix. Y) и integer (X). Третий ьистаия типов выполи^,' с"“’изаиии 8 рассмотренном примере, где пр08ер“ зЧе- ним Supplier> Pnumber и г М0ЩЬю правил, определяющих принадлежнос ______ _______lty к Данным спискам. И2 ЧаСТЬ^ ^ЗЫКИИТеХНОЛОГииПрограмми₽ованиядляискусственногоИИТеллекта четвертый, более радикальный, подход - это полная проверка соответствия типов дан- иых „ предикатов, предложенная в (Mycroft и O'Keefe. 1984J. В этой работе все имена пре- дикатов связываются с определенным типом и фиксированной арностью. Более того, типи- зируются и сами имена переменных. Преимущество этого подхода состоит в том. что огра- нлчения на вложенные предикаты и переменные в программе на языке PROLOG опреДеляются с^10^ программой. Несмотря на то что выполнение программы при этом за- медляется. такой подход обеспечивает очень высокий уровень безопасности типов. Таким образом, вместо встроенной проверки соответствия типов в языке PROLOG допускается проверка соответствия в процессе выполнения под полным контролем про- граммиста. Этот подход имеет множество преимуществ для разработчиков систем искус- ственного интеллекта, включая следующие. 1. Программист не должен постоянно заботиться о строгой типизации. Он может пи- сать программы, работающие для любых типов объектов. Например, предикат проверки принадлежности элемента списку выполняет общую проверку, незявнеи- мо от типа элементов списка. 2. Гибкость типизации помогает разрабатывать программы в новых областях зианнй. Программисты могут абстрагироваться от проверки соответствия типов на ранних стадиях разработки программы и ввести ее для выявления ошибок при более глу- боком понимании задачи. 3. Представления данных в области искусственного интеллекта плохо согласуются со встроенными типами данных таких языков, как Pascal. C++ или Java. PROLOG по- зволяет определять типы с использованием всей моши логики предикатов. Эта гибкость хорошо видна на примере с базой данных. 4. Поскольку' проверка соответствия типов осуществляется в процессе выполнения программы, а не во время компиляции, то программист сам определяет, когда ее следует начинать. Это позволяет отложить проверку соответствия типов до момен- та связывания определенных переменных или до другого момента. 5. Контроль проверки соответствия типов во время исполнения позволяет писать программы, в которых новые типы создаются в процессе выполнения. Это можно использовать, например, в программах обучения. 14.6.3. Унификация, механизм проверки соответствия предикатов к оценка Важная особенность программирования на языке PROLOG состоит в том. что интер- претатор ведет себя как система доказательства теорем на основе резолюции (см. раз- дел 12.3). Как система доказательства теорем PROLOG выполняет последовательность разрешающих процедур над элементами базы данных, а не оценивает операторы н вы- ражения подобно компиляторам традиционных языков. Это приводит к важному резуль- тэту: переменные связываются (инстанцируются, принимают значения) с помощью под- становки унификации, а не за счет оценки, если, конечно, оно не треоуется явно. Такая парадигма программирования приводит к своеобразным последствиям. Первым, и наиболее важным, результатом является ослабление требовании к опреде- лению переменных как входных или выходных параметров. Преимущество этого подхо- да чы уже наблюдали на примере предиката append, с помощью которого можно либо объединять списки, либо проверять корректность их ооъединения. лиоо делить список на Глава 14. Введение е PROLOG --g
ссновка унификации также будет рассмотрена как мех части. В ограничений при грамматическом разборе „ ции предложений. средство экспертных систем, основанных на правилах и Унификация-это мошное Р „ответствия должна присутствовать во 8ССХ фреймах. Разновидность тако' Р нап„санн„ таи,х систем на универсальных язь,- продукционных системах. 11 4 аии|, зачастую приходится реализовывать 8руч ках программирования алгор х и|Ш на языке LISP приводится в разделе 15.6). ную (реализация алгоритма у уи„фнкаци„ и применсинем Важное различие между * процедуры унификации выполняют Спитака,- традиционных языков данных (с соответствующимп параметрами под, чеекую проверку соо ^ Например, предположим, что требуется соз- , °т successor успешно выполняющийся, если его второй аргумент на едн- жад больше первого. Не понимая сущности унификации, такой предикат можно определить следующим образом. successor(X, Y):- Y = X + 1. Он не будет работать, поскольку оператор = не оценивает свои ар1ументы, а лишь пытается унифицировать выражения в левой н правой части. Этот предикат будет ус- пешно выполнен, если Y можно унифицировать со структурой Х+1. Поскольку 4 не уни- фицируется с 3+1, то вызов successor^, 4) завершится неудачно. С другой сторо- ны, с помощью оператора = можно проверять эквивалентность (определяемую путем унификации) любых двух выражений. Чтобы корректно определить предикат successor и другие арифметические преди- каты, необходимо оценивать значения арифметических выражений. В языке PROLOG для этого существует оператор is. Он оценивает выражение в правой части и пытается унифицировать результат с объектом из левой части. Так, в выражении осуществляется унификация объекта X со значением суммы Y и Z. Поскольку при этом | выполняются арифметические вычисления, это приводит к таким последствиям. | 1. Если переменные Y и Z не имеют значений (не связаны во время выполнения), то ' реализация оператора is приводит к ошибке времени выполнения. j 2. Аналогично, если X и Z связанные переменные, то с помощью выражения X is Y : Z нельзя получил, значение Y (как в декларативных языках программирования). I ператор is необходимо использовать для оценки значений выражений, содер- , жащих арифметические операции + , *, / и mod. то^Х^вя^^Тр™"1’''1111'™''' ЧВв1ные вязыке PROLOG мор/1 "мс’ь одн° " менная получила некотпг^ В 111)0116006 локального присваивания или унификации пере нием с^=”~еНИе' ™ °На “ "Р—ь новое значение за неклю-е- наятрХ,онно’“^,™е "°— Следовательно, 1s - это не функция, подоб- С помощью оператора 1зМ “““а“М Вь,Раженнех is х + 1 всегда ложно. Аименно. °рректно определить предикат successor (X, successors, у) .-у £ (3, X). с числовым значением, на основс X, либо для провср- (3, 4) . 2) . (4, (Y, 4) . Ои будет корректно выполняться, если переменная X связана Его можно использовать либо для вычисления значения Y к1{ значений X и Y. ?- successor X = 4 yes ?_ successor yes successor no ?- successor failure, error in arithmetic expression Как следует из этого обсуждения, интерпретатор PROLOG не оценивает выражения по- добно тому, как это делается при использовании традиционных языков программирования. Программист должен явно реализовать оценивание с помощью оператора is. Явное управле- ние оценкой, как н в LISP, упрощает обработку выражений (в том числе данных, передавае- мых в качестве параметров), а также их создание и модификацию в рамках программы. Это свойство наряду с возможностью оперировать выражениями логики предикатов как данными н выполнять эти выражения с помощью предиката call существенно уп- рощает разработку различных интерпретаторов, таких как оболочка экспертной системы из следующего раздела. В завершение обсуждения преимуществ вычислений на основе унификации приведем пример, в котором объединение строк выполняется с помощью разностных списков (difference list). В качестве альтернативы традиционному обозначению списка в PROLOG его можно представить в виде разности двух списков. Например, список [а, Ь] экви- валентен списку [а, Ь| (]]-[] или [а, Ь, с] - [с]. Такое представление имеет несколько преимуществ по сравнению с традиционным синтаксисом списков. Если спи- сок [а, Ь] представлен в виде разности [а, b J YJ- Y, то он на самом деле описы- вает потенциально бесконечный класс всех списков, первыми двумя элементами которых являются а и Ь. Такое представление обладает интересным свойством сложения. X - Z = X -Y + Y - Z Это свойство можно использовать для определения следующей однострочной логи- ческой программы, в которой X-Y — первый список, Y-Z — второй, а X-Z — результат их конкатенации. catenate (X - Y, Y - Z, X - Z) . Эта операция объединяет два списка произвольной длины за постоянное время за счет унификации списочных структур, а не за счет повторного присваивания, основанно- го на длине списков (как при использовании предиката append). Вызов предиката catenate дает следующие результаты. ?- catenate ([a, b|Y)-Y, (1. 2, 3) - [ ), »)• Y = II, 2, 3] w = la. b, 1, 2, 3) - ( 1 Как показано иа рис. 14.5, значение (по.тзерево) Y во втором параметре '» С Обоими вхождениями Y в первом параметре конкатенации. В этом про»™ сила Унификации, которая не сводится к простой подстановке значении переменных. В про- 644 Часть VI. Языки ______________________________" °ЛОГИИ программирования для искусственного интеЛЛеКТ‘ 645 Глава 14. Введение в PROLOG
X шшта проверка соответствия общих структур. вс цес«>™ф№Щда„„е целого подоерева. Этот пример также иллю представлен™. Таким образом, разностные сп„СКн^«р,. кла« списков. включая возможно резиты конкатенац,,,,. "м разделе рассмотрев отличительные особенности н преимущ^ ванного в языке PROLOG подхода к вычисленимпоснованного на унифИКации Р' *0». нация — это ядро декларативной семантики PROLOG. Ниф„. Добавление разностных списков: prolog. После связывания Y со списком [1,2.3), Z - со списком II и сложения: X - Z Рис. 14S Ддавеендяые Граммы kohko-WW™ «“ °“oe« ™"“™ 14.7, Метаинтерпретаторы в языке PROLOG 14.7.1. Введение в метаинтерпретаторы: PROLOG в языке PROLOG Как на Lisp, так и на PROLOG, можно писать программы для работы с выражениями, написанными в рамках синтаксических соглашений языка. Такие программы будем на- зывать шттштерпрепюторами (mela-interpreter). Например, оболочка экспертной сис- темы интерпретирует набор правил и фактов, описывающих конкретную задачу- И хотя тепппет»^ Мдачи опись1ваются с помощью синтаксиса применяемого языка, метав»- терпретатор „ожег переопределять их семантику. Prolog'sX>XXpr<^OG е£пргатара опРсЛея™ семантику чистого №« левое утвепжленис и пк к °G' Предикат solve получает в качестве параметра а утверждение и обрабатывает его согласно семантике PROLOG. solve(true) -_i “Г solve<A) Р<ХДТМ' IT”~~ »*6ОР суждений. Ч(х> S(X^X)' г|у>- Г<Х) t{Xj s(a) . t(b) - с(с) • Тогда предикат solve будет вести себя как интерпретатор PROLOG. ?_ solvelpfa, Ы) . C’solve(Р(Х, П>. X » a. Y = Ъ; X = а, X = =; jyO solve(p{f, g))• no Предикат solve реализует тот же поиск в глубину слева направо на основе цели, что и интерпретатор PROLOG. Возможность написания метаинтерпретаторов для языка имеет несколько теоретиче- ских преимуществ. Например, в [McCarthy, 1960J описан простой метаинтерпретатор для LISP, представляющий собой часть доказательства того факта, что этот язык является пол- ным (по Тьюрингу). С более практической точки зрения метаинтерпретаторы можно ис- пользовать для расширения или модификации семантики базового языка для обеспечения его более полного соответствия специфике приложения. Такая методология программиро- вания получила название металингвистической абстракции (meia-linguistic abstraction), подразумевающей создание высокоуровневого языка для решения конкретных задач. Например, семантику стандартного языка PROLOG можно модкфишгровать таким обра- зом, чтобы спрашивать пользователя о значении любого целевого утверждения. истинность которого нельзя определить с помощью базы данных. Это можно обеспечить путем добавле- ния следующих выражений в конец предыдущего определения предиката solve. solve(A) askuser(A). askuser(A) write(A), Введите значение true, если целевое утверждение истинно, и false а противном случае'), nl, read(true) . Поскольку это определение добавляется в конец списка других правил solve, оно вызывается только в том случае, если остальные правила не срабатывают. Предикат solve запускает предикат askuser для передачи пользователю запроса о значении це- левого утверждения А. Команда askuser выводит целевое утверждение и инструкции пользователю. Предикат read (true) пытается унифицировать введенное пользовате- лем значение с термом true. Если пользователь ввел значение false (или значение, которое нельзя унифицировать со значением true), то эта попытка завершится неуда- чей. Таким образом, мы расширили семантику предиката solve и изменили поведение языка PROLOG. Приведем пример использования определенной выше простой базы зна- нии, иллюстрирующий поведение дополненного предиката solve. g)) значение true, если целевое утверждение истинно, в противном случае значение true, если целевое утверждение истинно. в противном случае ?- solve(p(f, s (f)? Введите и false true. true. Введите и false yes Глава 14. Введение в PROLOG ть VI, Языки и технологии программирования для искусственного ин
«вся f ^интерпретатора позволяет ему отвечать На Следующее Р«сширХоХта« пользоаателю вопрос, то пользовать, I В® и,трПХм why (почему). Отлетом на этот запрос должно С,,£?Ч ! Д ему встречным «опросом W У „р0,рамма. Это реализуется За СЧсТ^пГ1)ТС‘ ' ХпР»»“0'К°Т0Р°Т<Х ртссуж/топ-1' В качестве второго параметра ,. X правил в „Р clause для обратной связи с целевым утас^ solve. При каждом вызове иршнл0 „ Тогда „ стскс ( ем предикат solve помета на„аысШего уровня и заканчивая текущей подцсль цепочка правил, вачкнтн1 от ц вводить даа коррскгнЬ1Х отоста |<а Поскольку пользоваты respond, который либо завершается ycneL: и' дпкат askuser вызь1Ва°Ря true (как было описано выше), либо записывает Hoe"11" вводе пользователем |юлиоват£„ь вводит ответ why. Предикаты гевроп/и ХГг —я взаимно рекурсивными, поскольку пост,с вывода ответа на запрос Хоеди respond вызывает askuser для вывода следующего запроса пользой. X о Учении полевого утверждения. Заметим, однако, что на этот раз нри Xser сто параметром является хвост стека правил. Таким образом, последовав. Хь запросов why просто приводит к последовательному извлечению „равна тои до его опорожнения- Это позволяет пользователю отследить всю цепочку рассуждсний, solveftrue, _) :-!• solve(not(А), Rules) : solve((А, В), Rules) : . . solve(A, Rules) clausetA, В), solve(B, HA solve(A, Rules) askuser(A, Rules). askuser(A, Rules) write(A), write(”? Введите значение true, если целевое истинно, и false в противном случае'), read(Answer), respond (Answer, A, Rules). respond(true, _). respond(why, A, (Rule|Rules)) write(Rule), nl. askuser(A, Rules). respond(why, A, [ ]) : - askuser (A, [ ]). not(solve(A, Rules)) . !, solve(A, Rules), solve(B, Rules). B) Rules)). утверждение nl, Например, команду solve можно выполнить для простой базы данных, введенной ранее в этом разделе. Обратите внимание, насколько успешно запросы why позволяют отследить цепочку рассуждений. ?- solve(p(f, g) , [ ] ) _ S(f)? Введите значение true, если и false в противном случае why. q(f) s(f) 8(f)? Введите значение true, если why. И Se в "₽°™вном случае целевое целевое утверждение утверждение истинно, истинно, р<(. 9) (q(f), г(_.. ее- в(£)? true. и false t (g) ? true. Введите и false Уев В противном случае значение true, если в пРотивном случае целевое целевое утверждение утверждение ИСТИННО, ИСТИННО, 648 Чисть VI .Языки и Т0ХНОЛОГИИ программирования для искусственного интеЛ
Важным расширением предиката solve является -и любой успешно реализованной цели. Построение дока’в™"‘ств“ ст оболочкам экспертных систем возможность ответа на зат™™—°6сс"сч*'’ 0“(' z- uiBvia на запросы как Это свойстао „ажно ДЛЯ любого алгоритма, в котором используются рассуди, о результатах реше- ния задачи, в частности, алгоритма обучения на основс пояснений (раздел 9 5) Обычный интерпретатор PROLOG можно модифицировать за счет рекурсивного по- тения дерева доказательства для целевого упзерждення в случае успешного разреше- ния цели, в следующем определении дерево доказательства возвращается в качестве второго параметра предиката solve. Доказательством атомарного утверждения true является само это утверждение. Такое свойство приводит к построению рекурсии. При разрешении цели А с помощью правила А :-в можно построить доказательство В и возвратить структуру (А Proof В). При разрешении конъюнкции целей А и В мож- но просто объединить деревья доказательств для обеих целей: (Proof A, Proof В). Определение метаинтерпретатора, обеспечивающего построение деревьев доказа- тельств, имеет следующий вид. solve (true, true) solve(not (А) , not ProofA) :- not(solve(A, ProofA)). solve((A, B), (ProofA, ProofB)) solve(A, ProofA), solve(B, ProofB). solve(A, (A ProofB)) clause(A, B), solve(B, ProofB). solve(A, (A given)) askuser(A). askuser(A, Proof) write(A), write('Введите значение true, если целевое утверждение истинно, и false в противном случае’), read(true). Запуск этого предиката для рассмотренной выше простой базы данных дает следую- щий результат. ?- solve(p(a, b), Proof). Proof = р(а, b) :- ((q(a) s(а) : - true)) , (r(b) (t(b) true))) В следующем разделе эти приемы используются для реализации оболочки экспертной системы exshell. В ней база знаний используется в форме правил решения задачи. Система запрашивает у пользователя необходимую информацию, записывает специфи- ческие данные, отвечает на запросы how и why и реализует механизм неточных рассуж- дений на основе фактора уверенности из главы 8. И хотя система exshe гораздо сложнее описанных выше метаинтерпретаторов PROLOG, она является лишь расшире- нием этой методологии. Ес ядром служит предикат solve, реализующий о р иск цепочек правил п фактов. 14.7.2. Оболочка для экспертной системы на основе правил в этом разделе будут описаны основные "чтерпретатора для основанной на правшах эк“ Р,ффсет„внос1ь применения оболочки В завершение; раздела будет продемонстрирован ФФ 649 глава 14. Введение в PROLOG
„™ автомобильной диагностики. Если читатель жед exshell дп» "Хл» °СН0ВНЫХ пРеДИКата° об°™чк„ , миться с этими Р Уконен раздела. 1. И. i комендусм ему заглянут состоит ю правил „ спецификаций , База знании оболочю с помошью предиката rule вида гще!, Ч . зователю. пРавилвП'®'у1верЖден>,с для базы знаний, записанное с помоцц, ' Cf| Первый параметр а у утаержден1Я м01уг представлять собой правила Рр> него синтаксиса PRO _ а Р — конъюнктивный шаблон П|щ 1<3 : о г иёпзнно Первый параметр предиката rule может также яяяят^х^ ЖИПф»м™^ ^ктернзует степень доверия разработчика PROLOG, парам р механизм неточных рассуждений на основе ^"/предложенный для системы MYCIN, описанной в главе 8. ПаД"’’ Ser изменяться а диапазоне от 100 (если факт заведомо истинны,,) до -100 (д м’ " ДОМС ложных фактов). Если значение параметра CF близко к нулю, значит, степень ум. ренностп для данного факта неизвестна. Приведем типичное правило нз базы знаний № диагностики неисправностей автомобилей. rule! (bad-component (starter) (bad_system (starter_system), lights(come_on))), 50} . ruleffixfstarter, ’замените стартер'), 100). Первое правило утверждает следующее. Если “неисправной” оказалась система стар- тера, и фары включаются, значит, плохим компонентом является стартер с фактором уверенности 50. Второе утверждение означает, что починить неисправный стартер мож- но путем его замены (с уверенностью 100). В оболочке exshell предикат rule ис- пользуется для извлечения правил, дающих заключение для указанной цели, подобно то- му, как в более простой версии предиката solve используется встроенный предикат clause для извлечения правил из глобальной базы данных PROLOG. Система exshell поддерживает запросы к пользователям о неизвестных данных. Однако, поскольку интерпретатор не должен задавать вопросы для каждой неразрешен- ной цели, программист может явно указать, какую информацию следует получить. Это можно сделать с помощью предиката askable. askable(car_starts) . Этот предикат означает, что интерпретатор может запрашивать у пользователя значе- ^”стинности цели car_starts, если необходимая информация отсутствует и не мо- жет быть выведена с помощью базы данных. тема еу^’^.0'грСдсясн,1°" программистом базы знаний правил и допустимых запросов, с№ ям. Поск-onkk-v 1^держивает свои собственные данные, относящиеся к конкретным ыпуаш< хранить Эго позволяет^ 33111)3111113361 У пользователя информацию, ответы необходим0 с Хо^мтинтеппПРО1ТаММе П0ВТОрНЬ1Х запР °™в В Пр°ЦСССС К°НСУ^еты- рех аргументов. Пспв^!ТаТОра exsheU является предикат solve, зависящий от шить. При успешном арГумент зто Целевое утверждение, которое требуется p F деленью уверенно °б°Л0ЧКа 1 сзя-1Вает вгор» правил, применяемый дляЧлСЛЯеМ0И На ОСнове базы знаний. Третий аргумент 3 метода неточных paccv^n ТВ^Т0В на запРосы why, а четвертый — порог отсечс ' г ограничивать пространство™ °СН0Ве ФактоРа уверенности. Такой подход п°3 п. верности) опускается ниже заданн^ ССЛ" значение ФактоРа уверенности (степс Языки И технологии программИрования искусственного интелЛ
При разрешении цели G предикат solve сначала пы яи G любому факлу, уже полученному от пользователя и * ВЫЯВИТЬ соотастствие цс- ся с помощью предиката known (А, CF). Нап '13вес™ые факты представляют- качает. что пользователь уже сообщил о том что аетпм’'"“'“r-start=- 85> <» достоверности 85. Если значение целевого тами-ии. Мпускасгс” “ ученью пытается разрешить его с помошью базы зна^ решая ее и умножая достоверность зтой цели на -1 St" 01рииание цсяи' ных целен производится слева направо. Если G _ это nL^X’™* ко“ъ,онктив- кат solve проверяет все правила, голова которых соответствует GJB сл^аГнеуда^ого завершения этой операции solve передает запрос пояьэо^тслю. Пр!?получении £ пользователя значения достоверности цели предикат solve добавляет эту информацию в базу данных с помощью предиката known. % ситуация 1: истинное значение целевого утверждения уже известно solve(Goal, CF, Threshold) :- known(Goal, CF), i, above_threshold(CF, Threshold) . % Ситуация 2: отрицание цепи solve (not (Goal) , CF, Rules, Threshold) invert_threshold (Threshold, New_threshold), solve (Goal, CF_goal, Rules, New_threshold), negate_cf(CF_goal, CF) . % Ситуация 3: конъюнктивные цели solve((Goal_l, Goal_2), CF, Rules, Threshold) !, solve(Goal_l, CF_1, Rules, Threshold), above_threshold(CF_1, Threshold) , solve(Goal_2, CF_2, Rules, Threshold), above_threshold(CF_2, Threshold) , and_cf(CF_l, CF_2, CF) . %Вычисление CF для конъюнкции целей обратная связь с правилом в базе знаний ', Rules, Threshold) . (Premise)), CF_rule), CF premise, [rule((Goal :- Premise), %Проверка порога достоверности % Ситуация 4: I solve(Goal, CF rule((Goal solve(Premise CF_rule)|Rules], Threshold), rule_cf (CF__rule, CF_premise, CF) , above_threshold(CF, Threshold) . % Ситуация 5: добавлени факта в базу solve(Goal, CF, Threshold) rule(Goal, CF), above_threshold(CF, Threshold). % Ситуация 6; запрос к пользователю solve(Goal, CF, Rules, Threshold) : - askable(Goal), askuser(Goal, CF, Rules), !, assert(known(Goal, CF) ) , above_threshold(CF, Threshold). Консультации с пользователем начинаются Двумя параметрами. Первый аргумент- " рой — переменная, которая будет связана с базы знаний. Этот предикат выводит ». retractal 1 (known(_, _) ) для очистки j знаний ипша-.v,. с помощью версия предиката solve с — это цель верхнего уровня в базе знаний, а в го- с фактором уверенности в цели после анализа набор инструкций пользователю. вызывает команду -------любой остаточной информации от преды- 651 Глава 14, Введение в PROLOG
20) , „v4hell а затем вызывает предикат solve с соответ^ оболочки exsneu-. Ctct)jv, душих запусковорол параметров. ** Ш1.МИ значениями четырех парам solve (Goal, CF) print_instructions, retractall(known solve(Goal, CF, %Порог 20 Команда print-instructions сообщает пользователю список допустимых ow тов на запрос exshell. print_instructions Р nl write(‘Возможные ответы. ), nl' ^еГФактор уверенности в истинности запроса. -), nl' writer Число от -100 до 100. ') , nl, write(1 why. '), пГ writer how(X), где X - это целевое утверждение'), nl. Следующий набор предикатов позволяет вычислить коэффициенты достоверности. (0 оболочке exshell используется разновидность метода неточных рассуждений на основе фактора уисренности, представленного в подразделе 8.2.1.) Фактор уверенности для конъюнкции двух целей — это минимум среди факторов уверенности каждой из це- лей. Фактор уверенности для отрицания факта вычисляется путем умножения фактора уверенности этого факта на -1. Степень уверенности в гипотезе, полученной с помощью правила, равна произведению факторов уверенности предпосылок и самого этого прави- ла. Предикат above_threshold определяет, превышает ли значение фактора уверен- ности заданный порог. 0 системе exshell пороговое значение используется для отсе- чения цели, если уверенность в ней слишком низка. Заметим, что предикат above_threshold отдельно определяется для отрицательных и положительных зна- чений порога. При положительном значении порога отсечение выполняется в том случае, если фактор уверенности не превышает этого порога. Отрицательное значение порога означает, что мы пытаемся доказать ложность цели. Поэтому для отрицательных целей поиск прерывается, если значение фактора уверенности цели превышает заданный порог. Команда invert_threshold вызывается для умножения значения порога на -1. and_cf(A, В, А) ;~ А = < В. and_cf(A, В, В) negate_cf(CF, Negated_CF) :~ Negated_CF is - 1 * CF‘ rule cf(CF_rule, CF_premise, CF) •- CF is (CF^rule * CF_premise/10D) above_threshold(CF, T) 71 miSe/100)• T >= 0, CF >= t, above_threshold(CF, T) - T < 0, CF =< t' spond выполняютдей™ В°ДИТ 3апрОс и считывает ответ пользователя. Предикаты ге -WT действия, соответствующие введенной пользователем ипфоР^""' 652 ЧаСТЬ „ля „скуссТ!^^
as)cuser (Coal, CF, Rules) %ЗапрашиВает ответ пользователя nl, write ('Запрос к пользователю1^?1 Ц6ЛИ write(Goal), nl, write('?')( read(Answer), respond(Answer, Goal, CF, Rules). ^Обрабатывает ответ в качестве ответа на запрос пользователь может ввести значение параметра CF из диапазона от -100 до 100. отражающее степень его доверия истинности цели, запрос why или how (X). Ответом на запрос why является правило, расположенное в данный момент в верхушке стека. Как и в предыдущей реализации, успешная обработка запросов why приводит к по- следовательному извлечению правил из стека. Это позволяет восстановить всю цепочку рассуждении. Если ответ пользователя соответствует шаблону haw(X), то предикат re- spond вызывает команду build_jjroof для построения дерева доказательства для X и команду write_proof для вывода этого доказательства в удобной дтя восприятия форме. Все неизвестные входные значения “отлавливаются" предикатом respond. % Ситуация 1: пользователь вводит корректный фактор уверенности respond(CF, CF, _) number(CF), CF =< 100, CF >= -100. % Ситуация 2: пользователь вводит запрос why respond(why, Goal, CF, [Rule|Rules]) : - write_rule(Rule), askuser(Goal, CF, Rules). respond(why, Goal, CF, [ ]) : - write('Перейти к вершине стека правил. '), askuser(Goal, CF, [ ] ) . % Ситуация 3: Пользователь вводит запрос now. % Строится и выводится доказательство respond(how(X), Goal, CF, Rules) build_proof(X, CF_X, Proof), !, write(X), write('заключение получено с уверенностью ), write(CF_X),nl, nl, write('Доказательство ') , nl, nl, write_proof(Proof, 0), nl, nl, askuser (Goal, CF, Rules). % пользователь вводит запрос how, доказательство пос . respond(how(X), Goal, CF, Rules) write(’Истинность '), write(X), nl, write('еще неизвестна. '), nl, askuser(Goal, CF, Rules). % Ситуация 4: неизвестный ввод respond(_, Goal, CF, Rules) write('Неизвестный отклик.'), nl, askuser(Goal, CF, Rules) . n H -3d nroof почта полностью соответствует определению Определение предиката build_proot_1,04 oroof не спрашивает пользова- предиката solve с четырьмя параметрами. днак среди даНных. соответствующих «Я» о неизвестных фвкзэх. поекюльку они ‘„чьели пели, определенным ситуациям. Предикат buiM.proct стрс д > 653 Глава 14, Введение в PROLOG
. cp (Goal. CF given) > build_pnoof(Goal. known(Goal, ЬГ/, proof) build_proof(not Goal, c . !, Proof), negate c£ (CF_goal i, build_pr°of (Goal, CF, {Proof_l, Proof_2)) : Lp)- buildJ>roof((Goal--l' J°a - Cp lf Proof-D, !, build_proof (Goal-±, proof—2), and_cf(CF_l, CP 2 C₽1 build-proof (Goal—2., CF proof, j — » CF) , build_proof (Goal, CF, 'cF_rule) , rule ((Goal p CF premise, Proof), build-proof(Premise, n.le_cf(CP rule, c£₽r“oai; CF fact) ) : - build-proof(Goal, CF, i rule(Goal, CF)• И наконец, создадим предикаты, определяющие простой интерфейс пользователя. Как правило, для его написания требуются огромные объемы кода. Сначала определим предикат вывода правила в удобном для восприятия формате. write-rule (rule ((Goal (Premise)), CF)) : - write(Goal), write(':-'), nl, write_premise(Premise) , nl, writef’CF = '), write(CF), nl. write_rule(rule(Goal, CF)) • ~ write(Goal), nl, write('CF = '), write(CF), nl. Тогда предикат write_premise записывает конъюнкты из предусловий правила, write-premise ((Premise_1, Premise—2)) !, write_premise(Premise_l) , write_premise(Premise—2). write-premise(not Premise) !, write(' '), write (not), write(' ’), write (Premise) , nl. write_premise(Premise) write(' '), write(Premise), nl. Команда write_proof выводит доказательство с отображением структуры дерева. %Выводит дерево %доказательства %с указанием уровней write—proof ( (Goal, CF given), Level) indent(Level) , write(Goal) , write(’ CF= '), write(CF), полУЧено от пользователя'), nl • write-proof ( (Goal, CF fact), Level) -- ' ^1т₽гЬГе1)' write<G<>alb writer CF = write( факт из базы знаний') nl i write—Proof ((Goal, CF : - Proof), Level) ’ wri te^ j ' write(GoalH write (’ CF = '), write(CF), ' writejroof7notSProofLerel 1 Write-Proof <Proof, New_level) , . П1' write—proof ( (proof n+ Wr^te_proof (Proof, New— level) , !- write-proof (Pro 4 irOOf~21 ' Level) •- indent (0). ~ ' Level) , write_proof ( Proof—2 , Level), '), write(CF) , Языки и технологии программирования для искусственного интелл^
indent(1) „riteC l_new is l-i, indent (l_new) . Для иллюстрации работы оболочки exshell оассмо™и базу знании для диагностики неисправностей авто к - ^дующую простую является утверждение fix, зависящее от одного М°ЬИЛ€И' Целью верхнего уровня решение задачи разбивается иа поиск ненсппавноГсХ^м °ЩЬЮ бИЬ' ЗНаиий компонента в рамках этой системы и постпоение * поиск неисправного основе поставленного диагноза. Заметим что бата "° решению пРоблемы на существует множество симптомов, которыенсвозможнп"" И™™ НСПОЛНОЙ' случае программа exshell попросту не работает Рас, ДИагностиРовать- в этом которые нз этих случаев и добавление правил срабатывающих п ______ ___________F Р оатывающих при неприменимости может решить в ка- остальных правил, это интересная задача, которую читатель честве упражнения. rule((fix(Advice) %3апрос (bad_component (X) , fix(X,Advice) )), 100), rule((bad_component(starter) : - (bad—system! starter_system) , lights (come_on))) , rule((bad_component(battery) :- (bad_system(starter_system) , not lights (come„on) ) ) , rule ( (bad_component (timing) : - (bad_systemf ignition_system) , not tuned_recently)), rule((bad_component(plugs) :- (bad_system! ignition_system) , plugs (dirty) )) , 90), rule ( (bad_component(ignition_wires) (bad_system(ignition—system) , not plugs (dirty) , tuned_recently)), 80) . rule( (bad_sy stem (st art er_sy stem) (not car_starts, not turns_over)), 90). rule((bad_systern(ignition_system) (not car_starts, turns_over, gas_in_carb) ) , 80). rule( (bad_system(ignition_system) (runs (rough) , gas_in_carb) ) , 80) . rule((bad—system(ignition—system) (car—starts, rule(fix(starter, верхнего уровня 50) . 90) . 80) . runs(dies), gas_in_carb)), 60) . 'заменить стартер'), 100). %Совет по устранению проблемы , 'заменить или зарядить аккумулятор'), 100). 'настроить временные параметры'), 100). 'заменить свечи зажигания'), 100). 'проверить провода в системе зажигания'), %Можно спросить пользователя о цели rule (fix (battery- rule (fix(timing, rule(fix(plugs, rule(fix(ignition—wires, 100) . askable(car—starts). askable(turns_over). askable(lights(_)). askable(runs(_)) askable(gas_in_carb)• askable(tuned_recently)* askable (plugs (_)) 655 Глава 14. Введение в PROLOG
,veMM этой базой знаний в работе системы exshell. На м Теперь воспользуел«я Сшюшной линией обозначены пройденные L а жириой -р"- S0lV9{fix(X)). not starts not not starts not not starts turns turns over turns over over gasjn _carb Успешное Неудачное завершение завершение Успешное Неудачное Успешное Успешное Успешное завершение завершение завершение завершение завершение Рис. 14.6. Граф поиска для системы диагностики неисправностей автомобилей, нии обозначают непройденные ветви, а жирные — окончательное решение Пунктирные ли- ?- solve(fix(X), CF). Возможные ответы: Фактор уверенности в истинности запроса Число от -100 до 100. why. how(X), где X - это целевое утверждение Запрос к пользователю:car_starts ? -100. Запрос к пользователю: turns_over ? 85. Запрос к пользователю: gas__in_carb ? 75. Запрос к пользователю: tuned_recentlv ? -90. х настроить временные параметры' CF = 4В.0 how и whv^CnnR0TPHM ситУацию’ ПРИ которой в этой же задаче используются запрос* на рис. 14 6 НИТе °Т8еты с С00тветствующими поддеревьями и путями, показанным solve(fiX(X), CF). Возможные ответы: 10™ННОС™ запроса. ГИИ прогРаммирования для искусственного интеллект , how W, где х это целевое Утверждение Запрос к пользователю: car.starts I ? -100. | запрос к пользователю: turnS_over , о why bad_system (starter_system) :- J not car_starts I not turns_over 1 cf - 9 0 t запрос к пользователю: turns_over ! ? why. J bad^component (starter) : - i bad_system(starter_system) lights(come.on) I CF = 50 I Запрос к пользователю:tums_over I ? why. ! fix(_0):- bad_component(starter) fixtstarter, _0) CF = 100 J Запрос к пользователю: turns_over ? why. Возврат к верхушке стека правил. Запрос к пользователю; turns_over ? 85. Запрос к пользователю:gas_in_carb I ? 75. Запрос к пользователю: tuned_recently ? why. bad_coinponent (timing) : - ba d_sy s t em (i gn i t i on_sy s t era) not tuned_recently CF = 80 Запрос к пользователю:tuned_recently ? how(bad_system(ignition_system)) . bad-system!ignition_system) заключение получено с достоверностью 60.0 Доказательство bad-system(ignition_system) CF= 60.0 not car_starts CF = -100 получено от пользователя turns_over CF = 85 получено от пользователя gas-in_carb CF = 75 получено от пользователя Запрос к пользователю: tuned_recently ? -90. X = 'настроить временные параметры' CF - 48.0 14.7,3. Семантические сети в языке PROLOG В этом разделе рассмотрим реализацию наследования для простого языка се. <античе ских сетей (глава в). Этот язык не обладает всей мощью и общностью таких средств, как концептуальные графы. В частности, мы не будем учитывать важное различие между ^яссами и их экземплярами. Однако такая ограниченность упрощает реализацию языка. 7" — ---------------------------- 657 Лава 14- Введение в PROLOG
- „оказанной на рис. 14.7, узлы представляют так„с п, в семантической сети. “ „ и|ассы ostrich (страус), crow (ворона). ГЦ как конкретная каиареи brate (позвоночное). Отношение isa связывает кля П (дрозд), bird (птица) и ve В зтой сети реализованы канонические*'"'1 различных уровней иерар i sa (Туре, Parent) указывает на то, что «л* мы представления ланных^предик^ hasprop(0b]ect, р Туре является под™ объектов. Предикат hasprop указывает на то, что о$Л value) описывает сво^обв-^^Р^ Object обладает ty_ имя объединяющей их связи. и value — это узлы сети, a property [ robin I penguin] isa [ canary | isa color-------------- -----»j yellow sound I—:-------1 ------>»| sing I sound -«------ color I--1---) I 1-----1 Color I Ш 1 I opus I I tweety -—»j white | Puc. 14.7. Фрагмент семантической сети, описывающей птиц и других животных Фрагмент списка предикатов, описывающих показанную на рнс. 14.7 иерархию птии, имеет вид. isa(canary, bird). isatostrich, bird) . isa(bird, animal). isa(opus, penguin). hasprop(tweety, color, white) . hasprop(canary, color, yellow). hasprop(bird, travel, fly). hasprop(ostrich, travel, walk) . hasprop(robin, sound, sing) . hasprop(bird, cover, feathers) . Создадим рекурсивный объект семантической isa(robin, bird)- isa(penguin, bird)- isa(fish, animal)- isa(tweety, canary)- red) , hasprop(robin, co < br0Wn) hasprop(penguin, co . hasprop(Eish. walk). hasprop (penguin, sing) hasprop(canary, so skin) • hasprop (animal, co алгоритм поиска, позволяющий определить, самом сети указанным свойством. Свойства хранятся в с 658 Часть VI. Языки и технологии программирования для искусственного интвлл ^Хссвм. Исключения размешаются на отдельном уровне^'к^очен^ Т^с^о'” trich и пингвин penguin ходят (walk), но не летают (fly). Предикат haspronerty на- чииает поиск с конкретного объекта. Если информация напрямую Ге связана с он переходит по связи isa к суперклассам Если суперкласса больше не суввсп^и^ Ksrhasproperty не нашел нужного свойства, поиск завершается неудачей. hasproperty(Object, Property, Value):- hasprop(Object, Property, Value). hasproperty (Object, Property, Value) isa(Object, Parent), hasproperty(Parent, Property, Value). Предикат hasproperty выполняет поиск в глубину в иерархии наследования. В следующем разделе будет показано, как применять наследование для представления на основе фреймов и реализовывать отношения деревьев и множественного наследования. 14.7.4. Фреймы и схемы в языке PROLOG Семантические сети можно разбивать на части, добавляя к описаниям узлов дополни- тельную информацию и обеспечивая тем самым фреймовую структуру. Переопределим рассмотренный в предыдущем подразделе пример с использованием фреймов. Каждый фрейм будет представлять набор отношений семантической сети, а ячейка isa — опре- делять иерархию фреймов (рис. 14.8). В первой ячейке каждого фрейма содержится имя узла, например, name(tweety) или name (vertebrate). Во второй ячейке определяется отношение наследования ме- жду данным узлом и его родителями. Поскольку в нашем примере сеть имеет древовид- ную структуру, каждый узел содержит лишь одну связь — предикат isa зависит от од- ного аргумента. В третьей ячейке содержится список свойств, описывающих этот узел. В этом списке можно использовать любые предикаты PROLOG, в том числе flies, feathers или color (brown). В последней ячейке фрейма находится список исклю- чений и принимаемых по умолчанию значений для данного узла. Его элементы тоже мо- гут представлять собой либо отдельные слова, либо предикаты, описывающие свойства. name: bird name: animal isa: animal isa: animate properties: flies feathers properties: eats skin default: default. name: canary isa; bird properties: color(yetlow) sound(smg) default: size(small) name, tweety isa canary properties’ default cdor(white) Рис. 14.8. Фреймы дчя базы знаний <? птицах ГЛ98а Введение в PROLOG 659
. каждый предикат frame связывает имена ячеек. е„„ск„ На нашем языке фреймов кажд позволяет различать типы знаний „ свойств и принимаемые по умол« наслсдования. Хотя при такой реал„,аЦ|й приписывать им разное повело ие Ро6о,1Х списков, для конкретных приложений но. Хкяассы могут наследовать сво“ сння. Например, можно наследовать только m оказаться полезными и дррти Р ть СПИСОК, содержащий свойства используемые по умолчанию зна значсния „ногда называются з,ичтадл1и самого класса, а не его зюем р^ что6ы canary 0„рсделм вид иосад (class value). Например. наследоваться подклассами нли экземплярами: певчей птицы. Это свонство Дальнсйшсс расширение этого примера предлагаег- tweety — нс есть вид певч в конЦе ЭТой главы. ся выполнить в качестве у р показаиныС на рис. 14.8, на языке PROLOG с помощью Теперь опишем отнош®“ ‘ аргументами. Для проверки соответствия типов пре. предиката факта frame с * того, что в третьей ячейке фрейма содержится диката frame, в частности, ш I к ение иэ заданного диапазона свойств, можно в подраздеЛе 14-6'2- frame(name(bird), isa(animal), [travel(flies), feathers], [])• frame (name (penguin) , isa(bird), [color(brown)], [travel(walks)]). frame(name(canary), isa(bird), [color(yellow), call(sing)], [size(small)]). frame (name (tweety) , isa(canary), [color(white)]). Определив для фрейма (рис. 14.8) полное множество описаний и отношений насдедо ванця, разработаем процедуры для извлечения свойств из этого представления. get(Prop, Object) frame (name (Object) , List_of_properties, _) , member(Prop, List„of_properties) . get(Prop, Object) frame (name (Object) , List_of_def aults) , member(Prop, List_of_defaults) . get(Prop, Object) :- frame(name(Object) , isa(Parent), ) get(Prop, Parent). ' ' J Если структура фреймов допускает множественное наследование свойств (см. также Р ' дел 15.12), то в наше представление и стратегию поиска необходимо внести соответствую , изменения. Во первых, в представлении фрейма аргумент, связанный с предикатом isa> । список супсркдассов данного объекта. Каждый суперкласс этого списка ZZT класс объекта, указанного в первом аргументе прсдаката frame. Если °Р“а klrt^n К ПИНГВИН0В Paquin и представляет собой персонаж мультфиль П“С г), то это можно представить следующим образом. _______ Часть VI. Языки и технологии программирования для искусственного Интел £rame(name (opus) , isa([penguin, cartoon_char]), [color(black)], Теперь проверим свойства объекта opus с помошыа обоим суперклассам penguin и cartoon_char мХутостьи^ “° “СрархИИ 1за к «ми get в предыдущем примере нужно добавить ДОПОЛХЬН« „X” get (Prop, Object) : - frame(name(Object), isa(List), _r j get_niultiple(Prop, List), Предикат get_multiple можно определить следующим образом, get_jnultiple (Prop, [Parent|_]) : - get(Prop, Parent). get_multiple(Prop, [_|Rest)) ;- get_multiple(Prop, Rest), В этой иерархии свойства класса penguin и его суперклассов будут проверены до начала проверки свойств класса cartoon_char. И, наконец, с каждой ячейкой фрейма можно связать любую процедуру на языке PROLOG, Имея фреймовое представление для данного примера, в качестве параметра предиката frame можно добавить правило PROLOG ияи список таких правил. Для этого все правило нужно заключить в скобки, как это делалось при реализации оболочки ex- shell, и включить эту структуру в список аргументов предиката frame. Например, можно разработать список правил отклика для объекта opus, обеспечив для этого пер- сонажа возможность давать различные ответы на разные вопросы. Этот список правил (где каждое правило заключено в скобки) должен стать параметром предиката frame, определяющим соответствующий ответ в зависимости от значения X, пе- редаваемого фрейму opus. Более сложными примерами могут служить правила управления термостатом или создания графического изображения на основе множества значений- Такие примеры представлены в разделе 15.12. где важную роль в объектно-ориентированном пред- ставлении играют связанные с объектами процедуры, зачастую называемые методами. 14.8. Алгоритмы обучения в PROLOG 14.8.1. Поиск в пространстве версий языка PROLOG в главе 9 описано несколько алгоритмов символьного машинного обучения. В этом и бедующем разделах будут реализованы два из них: алгоритмы поиска в пространстве версий (version space search) и обучения на основе пояснения (explanation-based learning). Сами эти алгоритмы описаны в главе 9. а здесь приводится лишь их ремнзация на языке PROLOG. Такой выбор языка для реализации алгоритмов машинного обучения лс" тсм. НТО он очень иллюстративен, поддерживает встроенные мех “дгветствия шаблонам, а его возможности рассуждении на метауровне упрощают по "роение и работу с новыми представлениями. _ двунаправленнь1й Сначала реализуем поиск от частного к общему. построению адг°ритм исключения кандидата. Читателю будут предложены советы поетроени ГЛЭВа 14’ Введение в PROLOG 661
системы поиска в пространстве версии от общего к частному. Эти алгоритмы зависимы от используемого представления понятии, если это предсз-авленне ппг. Ка Не' вает соответствующие операции обобщения и специализации. Мы будсм представление объектов в виде списков свойств. Например, маленький краем Ь~°аать можно описать с помощью следующего списка. ь’и щ,ч [small, red, ball]. Понятие маленького красного объекта можно описать с помощью списка с прпа 'временной [small, red, X]. Такое представление называется вектором признаков (feature vector). Оно зительно, чем полная логика, поскольку с его помощью нельзя представить МСНее BbIpa’ красных и зеленых мячей”, Однако оно упрощает обобщение и обеспечивает <ВСех дуктивнью порог (раздел 9.4). Вектор признаков можно обобщить, подставляя g^01116 Ин‘ станты переменные. Например, наиболее конкретным обобщением для ве 8Мест° к°н- red, ball] и [small, green, ball] является вектор [small, X, ball]. Этот в °^°В ^Smal1, ет каждую из специализаций и является наиболее конкретным из всех такиТ™13 П0Крыва' Будем считать, что вектор признаков покрывает другой вектор ппнзнахп7О₽°в' либо идентичен этому вектору, либо является более общим Заметим что И“" °" процедуры унификации отношение покрытия covers асимметрично- cv Ji™"™'ОТ чения, для которых X покрывает Y, но Y не покрывает X. Например веетооТх ^ покрывает вектор [large, red. bell}. „о не наоборот. Определим предикат eov^ %переменные покрывают друг друга Т2) . %переменная покрывает константу Т2) . %проверка соответствия констант векторов признаков следующим образом. covers(П, [ ]) . covers([Н1|Т1], [Н2|т2]) ;- var(Hl), var(Н2), covers(Т1 covers([HljT1], [H2|T2]) ;- var(Hl), atom(H2J, covers (T7 covers ([Hl | Tl], [H2|T2]) T ( ' atom(Hl), atom(H2), Hl = H2 covers (Tl, T2) , ' шим, чем другой (^°веХТры7е’м^СТСЯ °ДНН вектор признаков С1Р<^о более об-1 more_general. точны). Определим соответствующий предикат! more_general(x, Y) •- ПлЬ<^ ! ' • not(covers(у vi1 ? Обобщение векторов n ' ' covers(X' Y> ' сящего от трех аргументов. Пепвый^1113^^ С 11омощьи) предиката generalize, зави- ^°Н может содержать это вект0Р признаков, представляющий ^ременных. Треттйар^Х^^' Bl0P°« аргумент — экземпляр, не содержа- ^^Ь1м обобщением гипотезы покпм ;ШКПТа generalize связывается с наиболее кон- элемеиИВН° СКаНИрует веет°РЫ ппизня ~ даинь1^ экземпляр. Предикат generalize компо^Х^’ В результнРУк>щий’вГВНИВаЯ С00ТветствУю1й11е элементы. Если зицию пт, СТОра п,Потезы. Если тп< СТ°Р ВКЛ1<™егся значение соответствуюШсг0 зование вым™^^1,0 веет°ра помеша^1еНТЫ Не Совпадают’ т0 в соответствующую по- обобщения %-еКИЯ ?ot (Feature\sT СЯ перемснная- Обратите внимание на исполь- атома без nea(lL° 1118061106 0TPHuaHiie nn-iriSt~PrOp> во ВТОРОМ определении предиката тельного связмпН0Г0 ВЫполнення nnonpJi0^01 провеРить- можно ли унифицировать дв* ания переменных ОПпр Уиификации и формирования любого нсжела* ______________Пределим предикат generalize. 662 -------Z_______________________________-; Рограммироеания для искусственного интеллв^ oenerali«e([], LI, (]). «eaturilReitlgonD |R!St! ' IlnSt-₽rop|Rest_instl , not (Feature \- Inst_prop) , generalize (Rest- pae(- t „ generalize! (Feature | Rest 1 , (Instjroplidst-ikst) 7 h£j,t S'n"’ ’ 3 Feature Inst_prop, generalize (Rest, Rest.inet, Reet.gen? ’’ Эти предикаты задают основную операцию для представления векторов признаков остальная часть реализации не будет зависеть от конкретного представления и может применяться к различным представлениям и операциям обобщения Как было указано в разделе 9.2, поиск от частного к общему в пространстве понятий можно проводить за счет поддержания списка Н гипотез-кандидатов. Гипотезы в Н — это наиболее конкретные понятия, покрывающие все положительные примеры и ни одного от- рицательного. Ядром алгоритма является процедура process, зависящая от пяти аргумен- тов. Первый аргумент это обучающий экземпляр positive (X) или negative (X), указывающий на то, что X является положительным или отрицательным примером. Второй и третий аргументы это текущий список гипотез и список отрицательных экземпляров. В процессе реализации предикат process связывает четвертый и пятый аргументы с об- новленными списками гипотез и отрицательных экземпляров соответственно. Первое выражение в этом определении инициализирует пустое множество гипотез первым положительным экземпляром. Второе обрабатывает положительные обучающие примеры путем обобщения гипотез-кандидатов для обеспечения покрытия этих приме- ров. Затем ликвидируется чрезмерное обобщение за счет удаления всех гипотез, которые являются более общими, чем другие, а также гипотез, покрывающих некоторые отрица- тельные примеры. Третье выражение в этом определении служит для обработки отрица- тельных примеров за счет удаления любых гипотез, покрывающих эти экземпляры. process (positive (Instance) , [ ] , N, [Instance] , N) . process (positive (Instance) , H, N, Updated_H, N) generalize_set(H, Gen_H, Instance), delete(X, Gen_H, (member(Y, Gen_H), more_general (X, Y) ) , Pruned_H) , delete (X, Pruned_H, (member (Y, N), covers(X, Y) ) , Updated_H). process (negative (Instance) , H, N, Updated_H, [Instance|N] ) .- delete(X, H, covers(X, Instance), Updated_H). Process(Input, H, N, H, N) : - %Отслежизакие ошибок ввода Input \= positive(_), write ( ^BBejXV либо”положительный пример positive (Instance) либо отрицательный negative (Instance) ), nl. Интересным аспектом этой реализации является предикат delete. предстан.тающ^^ собой обобщение обычного процесса удаления всех повторных того какие списка. Один из аргументов этого предиката используется для опр<. днкат delete *месть, подлежат удалению из списка. С Хю^ХмХй) проверяет соответствие своего первого аргумента (к р бшъ СПиском) Затем ^ому ЭТСмсн1у второго аргумента (который X Каждого такого связывания выполняется проверь , } — вызовов целевых ут- ^ента. Эта проверка представляет собои любую посЛ^° данная проверка завершается ВеР*Дений языка PROLOG. Если список элементов таков, что данная пре р Гл98а 14- Введение в PROLOG 663
П1лияет этот элемент из резуль-пфующего списка. ре неумно, ™n^11MTdele““eZ» ПреД"КаТ delete- эт° "Рекраснад Хт возврзшзекя через "°“^0Имея яозможность передавать специфику Хер метарассузкденш..‘ „3 СГО1С1И. профашист тем самым поучает »бЩк Хе^в. BO™PBK^W”eXa операций со списками. Так. предикат delete ,,ow средство реализации используемые в процедуре process, в очень Вдм. пактнои форме. delete(X. L. в?а1> not(Goal)). №«_L) ; №w_L = ( 1>. (bagot (л, оекурсивно сканирует список гипотез и обобщает Каж. Предикат З61162731126'3^^ ^^ примером. При этом предполагается возмож- дую из них в соответствии с оу щений кандидатов одновременно. На самом деде ность существования нескольм признаков допускает лишь одно наиболее описанное в разделе 9.2 предела неверн0, поэтому необходимо определить конкретное обобщение. Однако це алгор5ггм для общего случая. _Н. Туапсе) Xgom'S^°^S-(««othesis' Inscance' Х)' Updated-headl' UPft7Ad£eURestUpdated_rest, Instance) , Instance) :- covers(Hypothesis, Instance), generalize_set(Rest, Updated_rest, Instance). Правило specific_to_general реализует цикл для считывания и обработки обу- чающих примеров. specific_to_general(Н, N) : - write(’Н='),write(Н) ,nl,write( 'N=') ,write (N) , nl, write('Введите пример:'}, TT~a=t-edN), read (Instance) , process (Instance, H, N, Updated_H, up j specif ic_to_general (Updated_H, Updated_N) . Следующий пример иллюстрирует выполнение алгоритма. ?- specific_to_general([], []) и = (1 N = [] Введите пример: positive((small, H = [[small, red, ball]] N = [) Введите пример: negative([large, H = [[small, red, ball)] N = ([large, green, cube]] Введите пример: negative([small, blue, brick])- H - [[small, red, ball]] N = [[large, green, cube], [small, blue, brick]] Введите пример: positive([small, green, ball])- H= [[small, __66, ball)) red, ball] ) . green, cube]) . , ((large, green, cube], [гаа11, bl brickl 1 ^Г1"б р£:шгП1аг9е-bw- ((small, blue, brickl, (large, green, cube)) I Вторая версия алгоритма, описанного в подращу 9.2.2. выполняет поиск в налиавенни эт обшего к частному. В этой версии множество птотез-кандадатов ииишализируегея наи- более общим среди возможных понятии. Для представления с помощью вектора ЯЯ список переменных. Затем выполняется специализация поняпй-кандшатов. предотвра- щающая покрытие отрицательных примеров. В представлении на основе векторов признаков да операция сводится к замене переменных константами. При получении нового положи- тельного примера удаляются любые пшотезы-кандадаты, не покрывающие его. Реализация этого алгоритма во многом аналогична описанной выше реализации по- иска от частного к общему, включая использование общего предиката delete для опре- деления различных фильтров для списка понятий-кандидатов. В системе поиска от общего к частному процедура process будет зависеть от шести па- раметров. Первые пять соответствуют версии поиска от частного к общему'. Первый пара- метр — это обучающий пример вида positive (Instance) или negative (Instance), второй'— список гипотез-кандидатов, включающий наиболее общие гипотезы, не покры- вающие отрицательных примеров. Третий параметр — список положительных примеров, ис- пользуемый для удаления любых слишком специализированных гипотез-кандидатов. Четвер- тый н пятый параметры — это обновленные списки гипотез и положительных примеров со- ответственно. Шестой параметр — это список допустимых подстановок переменных для специализации понятий. Для специализации путем подстановки константы вместо пере- менной следует знать допустимые значения каждого компонента вектора признаков. Эти значения необходимо передавать с помощью шестого параметра предиката process. В рассматриваемом примере векторов [S/ze, Color, Shape] список типов может иметь вид [[sma/Z, medium, large], [red, blue, green], [ball, brick, cube]]. Заметим, что пози- ция каждого подсписка соответствует компоненту вектора признаков, в котором исполь- зуются значения этого списка. Например, первый подсписок определяет допустимые значения первого компонента вектора признаков. Реализацию этого алгоритма предлагается осуществить в качестве упражнения, ля ориентировки приведем результаты работы нашей реализация. ?- general_to_specific< [ I_____11. (И I (small,medium, large). [red,blue,green] , [ball, brick, cube]]). H = (L_0, _1, _2] ] P = [] Введите пример; positive{[small, red, ball])- H = U-0, _1, _2] ] ? ~ [[small, red, ball]] h i) ВведИте пример: negative((large, green, 70 ball)] H= ([small. _89, _90], [-79, red, -SO),, - ₽ = [[small, red, ball]] wHrkl). Введите пример: negative([small. hue, H = [(—79, red, _80],[_69, _70, ball]) P s {(small, red, ball]] ball])- ВеДите пример: positive([small. " ; (t_69, _70. ball!) , ,. red ball)) p- ((small, green, ball!, (small, reu, ---—_______________________________ 664 Часть VI Языки и технологии программирования для искусственное - Введение в PROLOG 665
14.8.2. Алгоритм кандндата, описанный в подразделе 9.2.2, предатавля. полный алгоритм “^“^Хправленных алгоритмов поиска. Его ядром тоже ЯВЛя. ет собой комбинацию двух однона Р^ аргументов. Первый аргумент - обуча|о. ется предикат process, зависят _ G „ S - это множества максимально общих шпй пример, второй и трети - W „^енно. Четвертый и пятый аргументы сад. „ максимально конкретных гипо множестя. ШеСтой аргумент предиката process ветствуют обновленным “ерС’0К для специализации векторов признаков, содержит список допустимых пи» ит process выполняет обобщение множества s Для положительных пример покрь1ТНя этого примера. Затем нз S исключу, наиболее конкретных обобщении Кроме ТОГО( из множества G тоже удаляются ся любые чрезмерно обобшеннь эт0Г0 обучающего примера. Интересно отме- все элементы, нс обеспечивавши ° общим, если не существует покрывающих его эле- тать, что элемент S является Р Р содержИт такие гипотезы-кандидаты, которые, с ментов G. Дело в том, что м общими а с другой — не покрывают отрицатель- ОДНОЙ стороны, являются макси ал Хт delete. Tcess — ~ ..гх.. =. =^Хвр~т““ится к замене переменных констант ами-для этого ,т" буХередать список допустимых подстановок в качестве шестого аргумента предика- та process. Определение предиката process имеет следующни вид. process(negacivetlnstance), G. S. updated_G , Updated-S, Types) delete(X, S, coversfX, Instance), Updated_S), specialize_set(G, Spec.G, Instance, Types), deletefX, Spec_G, (member(Y, Spec_G) , more_general(Y, X)}, Pruned_G), .. deletefX, Pruned_G, (member (Y, Updated_S), not (covers (X, WL Updated_G). process(positive(Instance), G, %Инициализация S deletefX, G, not(covers(X, process(positive(Instance), G, deletefX, G, not (covers (X, } , , generalize_set(S, Gen_S, Instance), deletefX, Gen_S, (memberfY, Gen_S) , more_general(X, Y)) , Pruned_S), deletefX, Pruned_S, not ( (member (Y, Updated_G) , covers(Y, X)))- Updated_S). process(Input, G, P, G, P, input \= positively, mput \= negative^), write( введите либо положительный positive (Instance) либо отрицательный пример negative(Instance):') , nl. тез канпитГ 9erterali2e-set выполняет обобщение всех элементов множества П0КРЫТВД °б~го "Р^ра. Его решшзация в точности тична версии, определенной в программе поиска от частного к общему. В качеств 666 Часть VI, Языки Updated_G, [Instance], _) Instance)) , Updated_G) . S, Updated_G, Updated_S, _) Instance) ) , Updated_G), и технологии ппаТТГ ’ ГЛЭБа 14‘ ВвеДение в PROLOG и программирования для искусственного и I >* "JZZX™- •- i -—-—*— Decialize,set([], (], _) . ^cialixe_set([Hypothesis|Restl, Updated^, Instance Types).- covers (Hypothesis, Instance), ce' iYpes’ • (bagof (Hypothesis, specialize (Hypothesis, Instance, Tynes) Updated^head), ypesj ' Updated_head = []), specialize_set (Rest, Updated_rest, Instance, Types) - append (Updated_head, Updated.rest, Updated_H) . special^26—set ( [Hypothesis | Rest] , [Hypothesis |Updated_rest] Instance,Types):- not (covers (Hypothesis, Instance)), specialize„set (Rest, Updated_rest, Instance, Types). Предикат specialize находит среди элементов вектора признаков тот, который является переменной. Он связывает эту переменную с константой, выбираемой им из списка допустимых значений таким образом, чтобы она не соответствовала обучающему примеру. Напомним, что предикат specialize_set вызывает предикат specialize с помощью предиката bagof для получения всех специализаций. При однократном вы- зове предиката specialize он лишь подставляет константу вместо первой перемен- ной. Использование предиката bagof обеспечивает получение всех специализаций. specialize([Prop|_] , [Inst_prop|_], [Instance_values|_]) :- var(Prop), member (Prop, Instance_values) , Prop \= Inst_prop. specialize([_|Tail] , [_| Inst_tail] , [_jTypes])r- specialize(Tail, Inst_tail, Types). Определения предикатов generalize. more_general, covers и delete совпа- дают с соответствующими определениями этих предикатов в программе поиска от част- ного к общему. Предикат candidate.elim реализует цикл верхнего уровня, выводит текущие значения множеств G н S, а также вызывает предикат process. candidate_elim( [G] , [S], _) covers(G, S), coversfS, G), write('целевое понятие: '), write(G),nl. candidate_elim(G, S, Types) : - г'Введите write('G=') .write(G) ,nl,write(’S=') ,write(S), nl, пример: ') , read(instance) , т , . , c Process (Instance, G, S, Updated.G, Updated_S, Typ candidate_elim(Updated_G, Updated_S, Typ В заключение этого раздела представим результаты список ««я кандидата. Обратите внимание на инициализацию множеств G Допустимых подстановок. candidate_elim( [ [_ blue, green], (ball, brick, cube]]) £ -1. -2И [], [[small, medium, large], [red, Sa 667
поимер' positive![small, red, ball]). Введите приме S= [[small/red, ba/// , г largP, green, cube)). Введите пример: negativ U1 , [_76, , ball]] G= [[small, _96, -y/J- - S= [tsma11' ”d'n^tive( [small, blue, brick]). введите пример: negati u Ьа1Ц) G= [ [_86, red, - J ~ S= [[small, red, ball]] u green, ball]). Введите пример: positive([small, G= [[-76, _77, ball)) S. [{small. -351, “J)”(llarge, red, ball)). Введите пример: positive(t Я target concept is: [_76, _7 , , yes [ i 14 8.3. Реализация обучения на основе пояснения на языке PROLOG i В этом разделе будет описана реализация на языке PROLOG алгоритма обучения на | основе пояснения, изложенного в подразделе 9.4.2. Наша реализация основывается на | алгоритме prolog.ebg, предложенном в работе [Kedar-Cabelli и McCarty, 1987], и ил- I люстрирует возможности унификации в языке PROLOG. Несмотря на то что на многих , языках достаточно сложно реализовать алгоритм обучения на основе пояснения, его вер- [ сия на PROLOG очень проста. Этот алгоритм не строит структуру пояснения и не поддерживает отдельные множе- ства для подстановок обобщения и специализации, как это описано в разделе 9.4. В нем дерево доказательства для обучающих примеров и обобщенное дерево доказательства строятся одновременно. В этом примере будут использованы деревья доказательств, аналогичные применяемым в оболочке exshell (подраздел 14.7.2). При выявлении факта в системе prolog_ebg этот факт возвращается как лист дерева доказательства. Доказательство конъюнкции целей , представляет собой конъюнкцию доказательств каждой из них. Доказательство цели, тре- бующее построения цепочки правил, представляется в виде (Goal :- Proof), где Proof связывается с деревом доказательства для предпосылок этих правил. Ядром алгоритма является предикат prolog_ebg. Он зависит от четырех аргумен- тов. Первый из них это целевое утверждение, доказываемое с помощью обучающего примера. Второй обобщение цели. Если теория описания области определения допус- кает доказательство конкретной цели, то третий и четвертый аргументы связываются с ~°~ СТВЭ ЦеЖ И СГ0 обобШеиия. В частности, прн реализации примера | Р дела -5--нужно вызвать предикат prolog_ebg со следующими аргументами. [ Prolog.ebgtcuptobji), cup(X) , Proof, Gen_proof). деления и обучают»”0 PR0L0G представлена теория описания области опре ры prolog ebg nana^11^ П0Драздела 9-4-2- При успешном завершении npou^ - Urs, ™ " «еп-proof Ur связаны с деревьями до^' полразделе 14.7 2 Оси™.'? ~ это Простая вариация метаинтерпретатора, ОПИСЭИ'??. ния вмдолня™ п°рХено01“Г ~ » том. что разрешение цели и ее . щ Один интересный аспект алгоритма связан с »=x=S менные этого правила со значениями из обучающего пР зывает перс мен Ъгг уч^ющего примера. Определим предикат prolo9-eJjy- рГо1°9-еЬз (А' GenA' А- GenA) ;- clause(A, true). ргоЮЗ-е^3 ( <А' ' (GenA,GenB) , (AProof, BProof) (GenAProof,GenBProof)) !, prolog_ebg(A, GenA, AProof, GenAProof) , prolog_ebg(B, GenB, BProof, GenBProof). prolog- ebg (A, GenA, (a Proof), (GenA GenProof)) - clause(GenA, GenB), duplicate ( (GenA -. - GenB), (a B)), prolog_ebg(B, GenB, Proof, GenProof). Предикат duplicate основывается иа использовании предикатов assert и re- tract для создания копии выражения PROLOG с новыми переменными. duplicate(Old, New) assert(*$marker'(Old) ) , re- tract (* $marker'(New)). Предикат extract_support возвращает последовательность операционных узлов наивысшего уровня согласно определению предиката operational. Он реализует ре- курсивный проход по дереву. Рекурсия прекращается при обнаружении узла в дереве до- казательства, квалифицируемого как операционный. extract_support (Proof, Proof) -. - operational (Proof) . extract_support ( (A : - _) , A) : - operational (A) . extract_support ( (AProof, BProof), (A, B) ) extract_support(AProof, A), extract_support(BProof, B). extract_support ( (_ :- Proof), B) :- extract_support(Proof, B) . Последним компонентом алгоритма является построение изученного правила на ос- нове предикатов prolog_ebg и extract_support. ebg(Goal, Gen^goal, (Gen„goal :- Premise)) :- prolog_ebg(Goal, Gen_goal, _, Gen_proof) , extract-support(Gen_proof, Premise) . Проиллюстрируем выполнение этих предикатов на примере изучения структурных определений чашки из подраздела 9.5.2 [Mitchell н др.. 1986]. Сначала опишем теорию предметной области чашек и других физических объектов. Эта теория включает еле дующие правила. cuP(X) :- liftable(X), holds_liquid(X) . ,Qlin(w) holds_liquid(z) :- part(Z, W) , concave(W), points_up( )• iiftablefY) :- light(Y), part(Y, handle). light(A) :- small (A) . light(A)made_of(A, feathers)- Обучаемой системе также дается следуй,— пример, о котором йзяестно. что °Ь j 1 — чашка. SmaU (objl) . part(obji, handle). °^s(bob, objl). _________________________ _______________^ГОИН^110^ 668 Часть VI. Языки и технологии программирования для искусств ГЛаВа 14- Введение в PROLOG 669
part Iobj1< bottom). part(obj1, bowl)• points_up(bowl). concave(bowl). color(obj1, red) с помощью критерия операционной определи., предика™, которые можно „споль. зовать в правиле. operational(small(_))• operational(part(_, _))• operational(owns(_, J)• operational(points_up(_))• operational(concave(_)). Запуск алгоритма для этого примера иллюстрирует поведение этих предикатов. ?- prolog_ebg(cup(objl), cup(X), Proof, Gen_proof). X = _0, Proof = cup(obj1) ((liftable(objl) :- ((light(obj1) small(objl)), part(obj1, handle))), (holds_liquid(objl) (part(obj1, bowl), concave (bowl) , points_up (bowl) ) ) ) Gen_prooof = cup(_0) ((liftable(_0) ((light(_0) small(_0)), part(„0, handle))), (holds„liquid(_0) :- (part(_0, _106), concave(_106), points_up(_106)))) Если предикату extract_support передать обобщенное дерево доказательства^ полученное после выполнения предиката prolog_ebg, то он возвратит операционные узлы дерева доказательства, упорядоченные слева направо. ? ~ extract_support((cup(_0) ;- ((liftable(_0) •- " ((lightT^O) t- small(_0)), Part(_0, handle))), (holds_liquid(_0) :- (part(__0,_106) , concave(JL06) -o =._0. _1оГ>1Па7и₽<-1О6”,”-~Е'гя"1ве>' Premise = (small (J) 1Dart. t л v, points_up (j.) — ' handle) ) , part (_0 , _1) , concave(_l). И, наконец, предикат ebo нового Правила на основе пор ИСП0Льзует описанные выше процедуры для построй»1’ , редьявленного примера. ebg(cup(objl), cud(xi on Р X = о ^UP(X), Ruie) технологии программирования для искусственного инт0ЛЛсЛ
le s cup(-O) : - ’((small < °) • P®rt <-O.handle)) .part (_О,_1Ю) polntS-UpClK» > 14.9. Обработка естественного языка concave(_110), на PROLOG 14.9.1. Семантические представления для обработки естественного языка Благодаря встроенным возможностям поиска и проверки соответствия шаблонам язык PROLOG органично подходит для решения задач обработки естественного языка Грамматику естественного языка можно описать на PROLOG напрямую, как это будет сделано при описании контекстно-независимой и контекстно-зависимой грамматик в подразделе 14.9.2. На PROLOG легко создать и семантические представления, в чем мы сможем убедиться при описании падежных фреймов в этом разделе. Семантические представления также можно реализовать либо с помощью теории предикатов первого порядка, либо на основс метаинтерпретатора для другого представления, как было пред- ложено в подразделе 14,7.4. И, наконец, семантический вывод, в том числе объединение, ограничение и наследование в концептуальных графах можно напрямую описать на язы- ке PROLOG, в чем читатель сможет убедиться, прочитав подраздел 14.9.3. Как известно из раздела 6.2, концептуальные графы можно преобразовать в выраже- ния теории предикатов, а значит, напрямую описать на языке PROLOG. Имена узлов концептуальных отношений становятся при этом именами предикатов, а арность отно- шения определяет количество аргументов. Каждый предикат PROLOG, как и каждый концептуальный граф, представляет одно предложение. Концептуальные графы, представленные на рис. 6.11, на языке PROLOG можно опи- сать следующим образом. bird(X) , flies(x). d°g(X), color (X, Y), brown(Y), child(X), parents (X, Y, Z) , father(Y), mother (Z) . Здесь X, Y и Z — переменные, связанные с соответствующими объектами. Как было указано в разделе 14.6, к параметрам можно добавить информацию о типах. С помощью вариации предикатов isa можно также определить иерархию типов. Падежные фреймы, введенные в подразделе 13.3.2, тоже очень легко построить на «ыкс PROLOG. С каждым глаголом связывается список семантических отношении. сРеди ннх могут быть агенты, инструменты и объекты. Ниже будут рассмотрены приме- ры Для глаголов give (давать) и bite (кусать). Например, глагол give может быть с вяз i с '«’АЛежащим. дополнением .’непрямым дополнением. Очевидным =м ^зизадии ”их структур является английское предложение John gives агу падежном М’РИ книгу). Применяемые но умолчанию значения Фрейме, связав нх с соответствующими переменными. ' (ве(Л _ куеатв) можно оп ть „пользуемый по умолчаниюлшетрумс < > 1 казать, что инструмент для кусания [toeth) приналчежит шею,. над Я ЭТ1,Х Двух глаголов мопт иметь следующий вид- Verb(9ive, Ihuman (Subject), ~ _ _ Ва и Введение в PROLOG 671
agent (Subject, give), act_of_giving (give), object (Object, give), inanimate (Object), recipient {Ind_obj, give), human (Ind_obj) J ) . verb(bite, , [animate (Subject), _ agent (Subject, Action), act_of_biting (Action), object (Object, Action), animate (Object), instrument (teeth, Action), part_of (teeth, Subject) J ). Логическое программирование предоставляет широкие возможности для построения грамматик и представления семантических значений. Далее на PROLOG будут построены рекурсивные анализаторы, а затем к ним будут добавлены семантические ограничения. 14.9.2. Рекурсивный анализатор на языке PROLOG Рассмотрим приведенное ниже подмножество правил грамматики английского языка. Эти правила являются непроцедурными, поскольку просто определяют отношения меж- ду частями речи. С помощью этого подмножества правил можно определить коррект- ность многих простых предложений. Sentence^NounPhrase VerbPhrase, NounPhrase^Noun, NounPhrase^Article Noun, VerbPhrase^ Verb, VerbPhraset^Verb NounPhrase. Добавим к этим правилам грамматики небольшой словарь. Artic/e(a), Article(the), Noun(man), Noun(dog), Verb (I ikes}, Verb(bites). the dog"" в котороГсвязь^л^0 ГраМматического разбора предложения “The man bn* правила естествен^ соответствует конъюнкции в правилах грамматики- tence - этГимеХ w Ра3°М °ПИСЬ1Ваютс* «а PROLOG. Например, предложение sen- рукция verbphrase ОНС1Р^КЦИЯ n°unphrase, за которой следует глагольная консТ sentence(Start,End) . _ „ , л Каж OUnp rase<Start, Rest), verbphrase (Rest, En каждое правило на PROLGr ™ ппеД- ставляет собой последовательное^ ВНСИТ<7двух паРамегров, первый нз которых Р некоторая начальная часть сниг СЛ0В В Ф°Рме списка. Правило проверяет, явля должен соответствовать втопп ДОПустимой частью речи. Оставшийся суфФикС с т. рому паРаметру, поскольку анализ предложений вып<>^ 672 Часть V] ~ логии программирования для искусственного инт0Л и слева направо. Если правило описания Предложеиип , „арамеп, предиката sentence предс^ХX “ успсщн°- ™ "»Ро« „ученную после разбора фраз nounphrase н XX Х’ „бой корректное предложение, то в остатке X Список Ч^яияет „ай и именно,, конструкции определяются две X™ 1 > • Л» ™ оль. рнативные формы описания. dog разбора bites the грамматического the man Рис, 14.9. Дерево _ И/ИЛИ для предложения “The man bites the dog " Для простоты само предложение тоже описывается в виде списка [the, man, bites, the, dog]. Список разделяется на составляющие и передается различным грамматическим правилам для проверки синтаксической корректности. Обратите внимание на то, как выполняется проверка соответствия шаблонам для списка в вопросительном предложении. Сначала отбрасывается голова списка или голова со вторым элементом, а предикату передается оставшаяся часть списка н т.д. Предикат utterance в качестве па- раметра получает подлежащий анализу список и вызывает правило sentence. При этом второй параметр правила инициализируется пустым списком [ ]. Полная грамматика опре- деляется следующим образом. utterance (X) :- sentence(X, [ ]) . ae^tence( Start, End) nounphrase (Start, Rest), verbphrase(Rest, nounphrase ( [Noun | End] , End) : - noun (Noun) . a°unphrase ( [Article, Noun I End], End) article (Article) , noun(Noun). yerbphrasef [VerblEnd] , End) verb (Verb) . verbphrase ( [Verbi Rest] , End) verb(Verb), nounphrase (Rest, End). article(a). article (the) . n°un(nian) _ n°un(dOg)' ,Verb(likes) . Verb(bites) . ? Tenepb можно проверять корректность построения конкретных предложении. YeaUtterance ( [the, man, bites, the, dog])- IQ- Введение в PROLOG 673
?- utterance([the, man, bites, the]) no Интерпретатор может также предложить возможные варианты слов ддд н предложении#. °Лньц ?- utterance([the, man, likes, X]). X = man X = dog no И, наконец, этот же код можно использовать для построения множества жений, корректно сконструированных в рамках данных правил грамматики Предло' ного словаря. и огРаничен- ?- utterance(X). [man, likes] [man, bites) r [man, likes, man] f (man, likes, dog] и т.д. ваны на основе заданных правил грамматики и словаря. Заметим, что гки ет поиск в глубину слева направо. _ то„.„„й _ „аннон Правила грамматики - это спеиификация корректных конструкции подмножестве легитимных предложений английского языка. Код на языке PROL V стааляет этот набор логических спецификаций. Интерпретатору передаются запро наборе. Таким образом, ответом является функция от спецификации и задаНН°^вляет с0. В этом состоит основное преимущество вычислений на языке, который сам пред Q бой систему доказательства теорем на основе спецификаций. Более подробная инфор PROLOG как системе доказательства теорем приводится в главе 12. ^сл0. Предыдущий пример можно естественным образом расширить, добавив к пе^мейта вия согласованности форм существительного и глагола. Тогда для каждого словаря необходимо указать форму этого слова в единственном н множественном а для предикатов nounphrase н verbphrase ввести дополнительный параметр» в жающий числовую форму number данной фразы. В этом случае сушествнте единственном числе должно быть связано с глаголом в форме единственного ч^ЛнвСден- Контекстная зависимость существенно повышает мощность грамматнК11‘ Р кон- ная выше версия реализует контекстно-независимую грамматику. Теперь постро * текстно-зависнмую грамматику на языке PROLOG (раздел 13.2). В ней сохраня но- текстная информация, необходимая для проверки соответствия формы числа, дификация достигается „ счет расширения предыдущего кода. utterance(X) sentence(X [ J) ™M*-ase(Start, Rest, Hunger), verbphrase(Rest, End, Number) . 674 ЧастьVI. Языки7^^^аммирования для
nounphrase ( [Noun | End] , End, Number) nounphrase([Article, Noun|End], End article(Article, Number). verbphrase([Verb|End], End, Number) verbphrase ( [Verb | Rest] , End, Number) nounphrase(Rest, End, _) . article(a, singular). article(these, plural). article(the, singular). article(the, plural). noun(man, singular). noun(men, plural). noun(dog, singular). noun(dogs, plural). verb(likes, singular). verb(like, plural). verbfbites, singular). verb(bite, plural). noun(Noun, Number). Number) noun(Noun, Number), t- verb(Verb, Number). :- verb(Verb, Number), Теперь снова протестируем предложения. ?- utterance ( [the, men, like, the, dog]), yes ?- utterance ( [the, men, likes, the, dog]), no На второй запрос получен отрицательный ответ, поскольку существительное men н глагол likes не согласуются по числу. Если в качестве целевого утверждения ввести ?- utterance ([the, men|X])., то этот предикат с помощью параметра X вернет все глагольные конструкции, допол- няющие фразу “the men...”, в которых числовая форма существительных н глаголов будет согласована. В рассмотренном примере взятые из словаря параметры обеспечивают дополнительную информацию о значениях слов в предложении. Обобщая этот подход, можно построить мощ- ный грамматический анализатор естественного языка. В словарь можно включать все новую и новую информацию о членах предложения, создавая базу знаний о значениях слов английско- го языка. Например, люди являются одушевленными н социальными объектами, а собаки одушевленными и несоциальными. Тогда можно добавить новые правила типа 'Социальные объекты не кусают одушевленных несоциальных существ”. Эго позволит исключить предло- жения типа [ the, man, bites, the, dog]. Если же несоциальный объект больше не является одушевленным, то его, конечно же, могут съесть в ресторане. 14.9,3. Рекурсивный анализатор на основе семантических сетей Теперь расширим множество контекстно-зависимых правил грамматики, включив в него условия семантической согласованности. Это можно сделать, определив для падеж- ах фреймов глаголов соответствующие семантические описания подлежащих и допол- ««ий. Затем ограничим полученные полграфы семантических сетей, обеспечив их вза- имную согласованность. Это достигается с помошью таких операции нал графами, как объединен» н ограничение. Они вынолкяюгся для каждой части графа, возвращаемой в качестве дерева разбора. Глава 14. Введение в PROLOG 675
Сначала представим правила граммапи®. Заметом. что предикат самого аерхн utterance возвращает не просто предложение, а граф предложения Sentence Ур0В11« Предикаты компонентов отношений грамматики (nounphrase и Verbphrase) в?/ предикат join для слияния ограничений соотоегстоующих графов. вЬЦЬ1^от utterance(X, Sentence_graph) sentence(X, [ J, Sentence_graph) . sentence (Start, End, Sentence_graph) nounphrase (Start, Rest, Subject_graph), verbphrase (Rest, End, Predicate_graph) , joint [agent (Subject_graph) ], Predicate.graph, Sentence nounphrase ([Noun | End], End, Noun_phrase_graph) ' ^raph), noun (Noun, Noun_phrase_graph) . nounphrasef [Article, Noun J End], End, Noun_phrase_graph) article(Article), noun (Noun, Noun_phrase_graph) . verbphrase ([Verb | End], End, Verb_phrase_graph) :- verbfVerb, Verb_phrase_graph) , verbphrase ([Verb | Rest], End, Verb_phrase_graph) ;- verb(Verb, Verb_graph), nounphrase (Rest, End, Noun_phrase_graph) , join([object (Noun_phrase_graph) ], Verb_graph Verb_phrase_graph). ' join(X, X, X). join(A, В, C) isframe(A), isframe(в), - 3oin_frames (А в г join(А, В, C) ; - ' ‘ nOt—3°rned) . isframe (A),' is_slot((B) . isframe (B), is.slotfA), , join(A,nBS1cH°~£rame(A’ Bl V- is_slot(A),' is_s10t(B1 , JOin-Slots(A, В, C) ' ' ограничения ’ 0, OK) :_ ' С, E) , i D- ok) , C' IA|D], OK) ;- D' °K> , ! , Предикат jo£n f ет в каче<^еРВ0Г° ^рейма ячейкаУвтопп ° "р0Веряет соответствие каждой ячейки вующие пег/ ПараметР°в ячейку и Лпа- Г°' ПрСднКат join_slot_to_frame получа- с^етомХ°МУПараМе^ пХитТ” И НЭХ0ДИТ в этом фрейме ячейки, соответст- joi рар*и*типов. °1TVslots проверяет соответствие двух ячеек ....... __________U- А' А. ок). " !- ___________________ Р гРаммирования для искусственного ИНТвЛЛ0^1 ( С] ) I О]) FB, _) , РВ, FN) , В, Value—Ь), man) , man, man). jOin_slot_to_frame(А, [в | C], [D join_slots(A, B, D), join—slot„to_frame(А, [В | с], [B join_slot_to_frame(A, C, D). join, slots(A, B, D) functor(A, FA, _), functor(B, match_with_inheritance(FA, arg(l, A, Value_a), arg(l, join(Value_a, Value_b, New_value) , ~ D =-• [FN | [New_value]]. isframe([_ | _] ) . isframe ( [ ] ) . ls_slot(A) functor(A, 1). И, наконец, создадим словарь, представляющий собой иерархию иерархий, и опишем на- дежные фреймы для глаголов. В рассматриваемом примере будем использовать простую ие- рархию, в которой перечислены все корректные специализации. Третьим аргументом преди- ката match—with—inheritance является общая специализация первых двух. Более жиз- ненная реализация должна содержать граф иерархий, на котором выполняется поиск общих специализаций. Предлагаем читателю выполнить это в качестве упражнения. match_with_inheritance(X, х, X). match_with_inheritance(dog, animate, dog). match_with_inheritance(animate, dog, dog), match_with_inheritance(man, animate, match_with_inheritance(animate, article (a) . article(the) , noun(fido, [dog (f ido) ]) . noun(man, [man(X)]). noun(dog, [dog(X)J). verb(likes, [action([liking(X)]), agent([animate(X)]), ob- ject (animate(Y))) ]) . verb(bites, [action([biting(Y)]), agent([dog(X)]), ob- ject (animate(Z)] ) ]) . Теперь проанализируем несколько предложений и выведем граф Sentence_graph. ?- utterance ( [the, man, likes, the, dog], X). X= [action([liking(_54) ]) , agent ([man(_23) ]), object ([dog(_52) ]) ] . ?- utterance([fido, likes, the, man], X). [action([liking(_62) ]), agent ([dog(f ido) ]), ob- ject ( [man(_70)] ) ] , utterance([the, man, bites, fido], Z) . no В первом предложении утверждается, что некоторый человек, имя которого неиз- вестно. любит безымянную собаку. Последнее предложение, несмотря на свою синтак- сическую корректность нс удовлетворяет семантическим ограничениям, поскольку аген- том глагола bites должна быть собака. Во втором предложении конкретная собака Фидо любит безымянного человека. В последнем примере проверим, может ли Фидо укусить безымянного человека. utterance([fido, bites, the, man], X) . x= [actionf [biting (_12) ]), agent([dog(fido)]), о 3ect<[man(-i7)]) ] . —----------------------- Глава 14. Введение в PROLOG 677
П*Г1ИИПЯТЬ во многих интересных направлениях, в ча^„ Этот анализатор мо»«о Р Фнарсчия н вводные фразы, либо позволил, нс"от""' добавить к нему добавления нужно включить в граф предложения к’°’ ааТь сложные предл—Эт.<Д допустнных только прГС0^ ^ГХторьХих требований к пре^оженню. Дополнительные примеры дятся в перечне упражнении. ------ ------ ^ГТ^ыкахпрограммирования, как FORTRAN и С, логика описа- В таких традиционных я даениеМ алгоритма решения неразрывно связаны друг с ния задачи и управление эт0 просто последовательность действий, выпол- другом-Программа на таком языКИ называются процедурными (procedural), в ™"л"Х™сания задачи отделена от ее выполнения. Как следует нз глав 5-7, На3йГ™^Уговор^еС™ PROLOG ешс не достаг С0СТ0ЯННЯ полного совеРшенства. Однак^уже сейчас можно показать, что логическое проп>аммнрование, реализуемое на «ыке PROLOG обладает некоторыми преимуществами непроцедурной семантики. Рас- Х«м пример декларативной природы PROLOG. Возьмем предикат append. ^ndUXlTl^b^ixINLD append(Т, L, NL) . Ои является непроцедурным элементом, поскольку определяет отношения между списками, а не набор операций по их объединению. Следовательно, различные запросы могут приводить к вычислению различных аспектов этого отношения. Чтобы лучше по- нять предикат append, можно провести трассировку процесса объединения двух спи- сков. Вот пример запроса н ответа. ?- append([a, b, с], [d, е] , Y) . Y - [а, Ь, с, d, е] Y match 1, L is [d, е] (for BOTH parameters) , yes yes, N is [d, e], [X|NL] is [c, d, e] yes, NL is [c, d, e], [X|NL] is [b, c, d, e] yes, NL is [b, c, d, e] , (X|NL) is [a, b, c, d, e) [a, b, c, d, e) , yes В большинстве алгоритмов PROLOG параметры предикатов можно разделить “входные’ и выходные , поскольку в большинстве определений при вызове предиката некоторые параметры должны быть связ- но это не обязательно так. На самом деле параметры в PROLOG i ____ входные н выходные. Код на PROLOG — это просто набор спецификаций истинных вержденин или описание логики ситуации. В частности, предика! отношение между тремя списками, прн котором третий список вставки первого в начало второго. Чтобы проиллюстрировать это вания предиката append. на предполагается, что связаны, а другие — нет. _СЗ вообще не делятся иа ___________________________________________-- уг- предикат append задает такое ___________________________.; является результатом утверждение, рассмотрим разные варианты использо- ?- append([a, b], [с], [а, b, с]), yes ?- append([a], [с], [а, Ь, с]), по ?- append(X, [ b, с], (а, Ь, с]). X = [а] ?- append(X, Y, [а, Ь, с]). X = [ ] Y = [а, Ь, с] X = [а] Y = [Ь, с) х = [а, Ь] Y = [с] Выполнение предиката append не рекурсивно по хвосту, поскольку конкретные зна- чения переменных достигаются после успешного завершения рекурсивного вызова. Сле- довательно, после завершения рекурсивного вызова X располагается в голове списка [XINL]. Для этого каждый вызов необходимо записывать в стек PROLOG. Рассмотрим следующий пример трассировки. 1. append([ ], l, L). 2. append([х|Т], ?- appendfla, b, с], [г try match 1, fail (a match 2, v - NL) Id, е], Id, L- IX|NL]) ; (d, е] , b, т is [b, try match 1, fai-] r. match э / A*11 tb, X is а, Id, е], е) , LD, match 2, X is b, T is NL) try match 1, fail match 2, X is c, ' NL) - append(T, L, NL) . Y) . c]*[ ] C1< L is [d, e], call append([b, cL c]^[ ] , L is [d, e] , call append([cb [c]*[ ] T 15 t L L is [d,e], call append (I ---------------------------------------------------- 678 Часть VI. Языки и технологии программирования для искусе X = [a, b, c] Y = [ ] no В последнем запросе PROLOG возвращает все списки X и Y, которые в результате конкатенации дают список [ а, Ь, с ] — всего четыре пары списков. Как было указано выше, append — это описание логики отношения между тремя списками. Результат ра- боты интерпретатора зависит от запроса. Решение задач на основе множества спецификаций корректных отношений в данной предметной области в сочетании с работой системы доказательства теорем связано со мно- гими интересными и важными аспектами. Такое средство находит свое применение в столь разнообразных областях знаний, как понимание естественного языка, обработка баз дан- ных, написание компиляторов и машинное обучение. Работу интерпретатора PROLOG нельзя до конца осмыслить без осознания понятий из области доказательства теорем резо- люции, особенно процесса опровержения хор невских дизъюнктов, описанного в главе 12. PROLOG — это язык программирования общего назначения. В связи с ограниченно- ст’>ю объема книги в этой главе были опущены его многочисленные важные аспекты. Любознательному читателю автор рекомендует познакомиться со многими замечатель- гЛава 14. Введение в PROLOG 679
ж, .ltth 1984], [Maier и Warren, 1988], [Steriir, KK№WI1. в ТОМ 'n'^va'^ ^993],'(Lucas. 1996] шш [Ross. 1989]. в pa6oi8 “ -”"не языка PR0L0G Bo [King. 19911. lGffidar и M искусственного интеллекта. .юкиых приложениях теории ис^е а также предложения по созданию алгорит. Более полное описание т™ приводятся в [Mycroft и O'Keefe, 1984]. Применение мов проверки соответствияпрИ разработке экспертных систем описано . стеков правил и [Sterling и Shapiro. 1986]. вопросы построения таких представлений искус. Во многих книгах РаССМческие сети, фреймы и объекты [Walker и др., 1987] сгвенного интеллекта, как сем [Malpas, 1987]. PROLOG настолько органично подходят для решения Средства представления яз PROLOG часто используют для моделирования задач понимания естественного. ’prqlOG был разработай для анализа французского таких языков. Первый интерпр ? . (metamorphosis grammar) [Colmerauer, 1975]. языка на основе ’ „олыинпм определенных дизъюнктов (definite clause в [Pereira и W5ren' е этой области исследований внесли работы [Dahl, 1977], grammy Свои вклад в Р . 19ад [Sowa. 1984], [Walker „ др, 1987]. (Dahl и McCord. 198] (М pr0log уходят к теоретическим принципам исишь- „TZTZXZ В этой области автор особенно рекомендует ™ 'К°Нтослаб«й интерес вызывают и другие, отличные от PROLOG, среды лоткле- ското программирования. К ним относятся параллельные языки логического программ», рования (Shapiro. 1987). В [Nadathur н Tong, 1999] описан Lambda-PROLOG « “ тнческого программирования более высокого уровня. В работе (Hill и Lloyd. 1994] пред ложен язык Goedel. а в [Somogyi и др., 1995] — язык Mercury. Goedel и Mercury - две относительно новые среды декларативного логического программирования. 14,11, Упражнения 1. Создайте на языке PROLOG реляционную базу данных. Представьте кортежи данных в виде фактов, а ограничения— в виде правил. В качестве примеров можно рассмотреть базу данных товаров в универмаге или записей о сотрудниках в отделе кадров. 2. Напишите на языке PROLOG программу, решающую задачу Вирта “I ат ту own grandfather (Я мой собственный дедушка) (глава 2, упражнение 12). 3. Напишите на PROLOG программу проверки принадлежности элемента списку. Что произойдет, если элемент не принадлежит списку? Дополните эту спецификацию та ким о разом, чтобы она позволяла разбивать список на элементы. ЙТ PR°L0G Пр0ГраММ* uni^ <Вад, Set), которой передня № возвпаи список* который может содержать повторяющиеся элементы). а параметр Set (множество без повторяющихся элементов). (список в cmicK^°L0G программу вычисления количества элементов в атомов в списке (вычшадГ °ДНИМ Эяемеитом>- Разработайте программу можно воспользоваткс НИЯ КОличества элементов во всех подсписках)- пользоваться несколькими мегапредикатами типа atom () - 680 искусс7^^
в. Напишите на PROLOG код программы, решающей задачу перевозки человека, волка, козы и капусты. 6.1. Выполните этот код и постройте граф поиска. 6.2. Измените порядок следования правил для получения альтернативных путей решения. 6.3. Используйте оболочку, описанную в этой главе, для реализации поиска в ширину. 6.4. Опишите полезные для данной задачи эвристики. 6.5. Постройте решение иа основе эвристического поиска. 7. Выполните задания 6.1-6.5 из упражнения 6 для следующей задачи. Три миссионера и три каннибала стоят иа берегу реки и хотят переправиться через иее. У берега находится лодка, в которую могут поместиться только два человека, и ни одна из групп ие умеет плавать. Если на одном из берегов реки миссионеров ока- жется больше, чем каннибалов, то каннибалы превратятся в миссионеров. Требуется найти последовательность перемещений всех людей через реку, ие влекущую за со- бой никаких превращений. 8. Воспользуйтесь своей программой для решения модифицированной задачи миссио- нера и каннибала. Например, решите эту же задачу для 4 миссионеров и 4 канниба- лов, если лодка может перевезти только двух человек. Решите эту же задачу для слу- чая, если в лодке помещается три человека. Постарайтесь обобщить решение на це- лый класс задач миссионера и каннибала. 9. Напишите программу иа PROLOG для решения полной задачи хода конем 8x8. Ис- пользуйте при этом архитектуру продукционной системы, предложенную в этой гла- ве и главе 5. Выполните задания 6.1-6.5 из упражнения 6. 10. Выполните задания 6.1-6.5 из упражнения 6 для задачи о кувшинах с водой. Есть два кувшина, содержащие 3 и 5 литров воды соответственно. Их можно заполнять, опорожнять и сливать воду га одного в другой до тех пор, пока один из них не окажется полным или пустым. Выработайте последовательность действий, при которой в большем кувшине окажется 4 литра воды. (Совет: используйте только целые числа.) И. Воспользуйтесь алгоритмом path для решения задачи хода конем в этой главе. Пе- репишите его вызов в рекурсивной форме вида path(X, Y) pathlX, W) , move(W, Y) . Выполните трассировку и опишите результаты. 12. Напишите программу передачи значений на верхний уровень дерева или графа игры. Используйте при этом: а) минимаксный подход; б) отсечение дерева альфа-бета; в) оба подхода для игры в “крестики-нолики 13. Напишите иа PROLOG программу реализации процесса поиска для алгорюма финаисо- вою консультанта, описанного в главах 2-5. Воспользуйтесь архитектурой продукцион- ной системы. Чтобы сделать программу интереснее, добавьте несколько пр 14. Допишите код для системы планирования из раздела 14Л требующую нового множества перемещений, добавив тие фигуры, как пирамида или сфера. 681 Глава 14. Введение в PROLOG
^.шик на основе поиска в ширину для примера из раЗДад 15 дХ^™^^р'туСдаГВСГС”У,<’Ш1'': ЭВр1,еТ"К“' М0ЖН° ЛИ опРеде"ип ^ пусп.мос^”Р^"^ « ПОЛОбНУЮ 1рсуголь“ой табл”«с- Испои, 16. Создайте для с®* Мщения успешных последовательностей перемещений 17 Х=^р "р“,<ютов АТЛ прнор'™очередн "3 ~ >«. iX.nyihe проверку соответствия типов. позволяющую предотвратить аномал,,w вида append(nil. 6, б). 19. Действительно ли процедура конкатенации разностных списков выполняется за нейное время (раздел 14.6)? Поясните. 20 Создайте базу данных товаров нз подраздела 14.6.2. Реализуйте проверку соответ^. в>« типов дм набора из шести запросов на множестве этих кортежей данных. 21. Дополните определение языка PROLOG в PROLOG (раздел 14.7), включив в него оператор отсечения и операции логического II и ИЛИ. 22. Добавьте новые правила к оболочке exshell. Добавьте новые подсистемы для вы- явления неисправностей коробки передач или тормозов. 23. Создайте базу знаний для новой предметной области оболочки exshell. 24. Работа оболочки exshell завершается неудачно, если предложенное целевое ут- верждение нельзя доказать с помощью существующей базы правил. Дополните обо- лочку exshell таким образом, чтобы при невозможности доказательства цели она вызывала эту цель как запрос PROLOG. Добавление этой возможности потребует изменения предикатов solve и build_proof. 25. Оболочка exshell позволяет пользователю отвечать на запросы, вводя степень до- верия или запросы why и how. Дополните эту оболочку таким образом, чтобы поль- зователь мог вводить ответы у для истинных запросов и п — для ложных. Эти отве- ты должны соответствовать степеням доверия 100 и -100. 26. Вспомшгге концептуальные графы, используемые для описания “мира собак” в раз- деле 6,2. Опишите эти графы на PROLOG. Разработайте правила PROLOG для опе- раций restrict, join и simplify. Совет: создайте список предложений, конъ- юнкция которых составляет граф. Тогда операции на графах будут соответствовать операциям управления списками, 27. Реализуйте систему на основе фреймов с наследованием, поддерживающую определение трех видов ячеек, свойств класса, наследуемых подклассами, свойств, наследуемых эк- зе. шлирами данного класса, но не его подклассами, и иена еле дуемых свойств класса _ ПНШ1П^ ир^ТШестаа н проблемы, связанные с таким разграничением. векто'мв^изн^ °бшего к частаомУ в пространстве версий с использование® счет замены пепе7 9,4,1 Социализация вектора признаков выполняется ритму список лп *еННЫХ константами. Поскольку для этого требуется указать ходим дополниг^Х ЗНаЧеКИЙ каждого поля вектора признаков, ему н люстрирует необходим рГумент’ Следующее определение цели верхнего уро® могут быть маленькими С^еННИЦ1,аЛИЗаЦИИ РассмотРенного примера. Объ^ и иметь Форму шара.брус^шн^б^11 б°ЛЬШИМИ’ кРаснымн’ синими или з 682 искусс-^^
run_general :- general_to_specific([[_, ([small, medium, large], (red. blue: green), (ball, brick, cube]]). 29. Реализуйте теорию описания предметной области для примера из главы 9. Запустите этот пример с помощью команды prolog_ebg. 30. Дополните определение предиката ebg таким образом, чтобы после построения но- вого правила оно добавлялось в логическую базу данных и могло использоваться в последующих запросах. Проверьте производительность полученной системы с по- мощью теории достаточно богатой предметной области. Такую теорию можно по- строить самостоятельно либо дополнить теорию из примера с чашками. добавив в нее описание различных типов чашек, например, чашек без ручки. 31. В главе 15 приводится реализация алгоритма ID3 из главы 12 на языке LISP. Создай- те с ее помощью реализацию этого алгоритма на языке PROLOG. Не пытайтесь при этом просто перевести код LISP на PROLOG, Эти языки различны и, подобно есте- ственным языкам, для описания одних и тех же объектов требуют различны* идиом. Придерживайтесь стиля PROLOG. 32. Постройте на PROLOG ATN-анализатор из подраздела 13.2.4. Добавьте вопросы who и what. 33. Напишите на PROLOG код для подмножества правил грамматики английского языка (раздел 14.9). Добавьте к рассмотренному примеру: а) прилагательные и наречия для модификации глаголов и существительных; б) вводные фразы (можно ли сделать это с помощью рекурсивного вызова?); в) сложные предложения (два предложения, объединенные операцией конъюнкции). 34. Описанный в этой главе простой анализатор естественного языка допускает грамма- тически корректные предложения, которые могут иметь недопустимое значение, в частности “The man bites the dog" (Человек кусает собаку). Такие предложения можно исключить из грамматики, добавив в нее данные о семантической допустимо- сти. Разработайте на PROLOG небольшую семантическую сеть, позволяющую рас- суждать о некоторых аспектах возможной интерпретации грамматических правил английского языка. 35. Переработайте анализатор на основе семантических сетей из подраздела 13.3.2, обеспечив более богатое представление класса иерархий. Перепишите определение предиката matcivwith„inheritance. чтобы вместо перечисления общих спе- циализаций двух элементов он вычислял такие специализации с помощью поиска по иерархии типов. 683 глава 14. Введение в PROLOG

Введение в LISP —...Заглавие этой песни называется "Пуговки для сюртуков" — Вы хотите сказать — песня так называется? — спросила Алиса, стараясь заинтересоваться песней. — Нет, ты не понимаешь, — ответил нетерпеливо Рыцарь. — Это заглавие так на- зывается. А песня называется "Древний старичок ”. — Мне надо было спросить: это у песни такое заглавие? — поправилась Алиса. —Да нет, заглавие совсем другое. "Сгорем пополам"! Но это она только так называется/ — А песня эта какая ? — спросила Алиса в полной растерянности. — Я как раз собирался тебе об этом сказать. — Льюис Кэррол (Lewis Carroll), Алиса в Зазеркалье Старайтесь в сложном видеть простоту. — Лао Тзу (Lao Tzu) 15.0. Введение За более чем сорокалетнюю историю своего существования LISP зарекомендовал себя в качестве хорошего языка программирования задач искусственного интеллекта. Изначально разработанный для символьных вычислений, за время своего развития LISP был расширен и модифицирован в соответствии с новыми потребностями приложений искусственного интел- лекта. LISP — это императивный язык (imperative language). Его программы описывают, как выполнить алгоритм. Этим он отличается от декларативных языков (declarative language), программы которых представляют собой определения отношений и ограничений в предмет- ной области задачи. Однако, в отличие от таких традиционных императивных языков, как FORTRAN или C++, LISP — еще и функциональный язык (functional language): его синтаксис и семантика продиктованы математической теорией рекурсивных функций. Мощь функцио- нального программирования в сочетании с богатым набором таких высокоуровневых средств построения символьных структур данных, как предикаты, фреймы, сети и объекты, обеспечи- ли популярность LISP в сообществе ИИ. LISP широко используется как язык реализации средств и моделей искусственного интеллекта, особенно среди исследователей. Высокоуров- невая функциональность и богатая среда разработки сделали его идеальным языком для по- строения и тестирования прототипов семанти|а диалекта Common LISP. При в этой главе кратко описаны синтак иСП0Льзуемым для программирования зтом особое внимание уделено средствам ’ рнИИ списков для создания сим- задач искусственного интеллекта; рассказано о применении
, также реализации интерпретаторов и алгоритмов поиск» . «льных структур Приводятся примеры программ иа языке LISP. Wae“mL7ZXXM0B поиска, систем проверки соответствия шаблонам чаюшие реализацию ь . оболочки экспертных систем, основанные на правилах' ? темы доказательства т Р 1Снтированного моделирования. Мы, конечно го₽тх х xs«-»•» э-ол «кого х: сможем дать не ер помещены в конце данной главы. В этой книге J ХХу"“« лишь на использовании LISP для реализации языков представления и J торетмХ программирования задач искусственного интеллект 15.1. LISP: краткий обзор —------------------- ” — 15.1.1. Символьные выражения как синтаксическая основа LISP Синтаксическими элементами языка программирования LISP являются символь- ные выражения (symbolic expression), которые также называют ^-выражениями (s-expression). В виде s-выражений представляются и программы, и данные, s-выражение представляет собой либо атом (atom), либо список (list). Атомы LISP— это базовые синтаксические единицы языка, включающие числа и символы. Символьные атомы со- стоят из букв, цифр и следующих иеалфавитно-цифровых символов. Приведем несколько примеров атомов LISP. 3.1416 100 х hyphens t ed-name *some-global* nil лами и заюппмр™ Л°СЛеД°каТСЛЬН0СТЬ атомов илн ДРУ™х списков, разделенных пробе- лами и заключенных в скобки. Вот несколько примеров списков (1234) (tom шагу john joyce) (а> (Ь с) (d (е f))) М°ЖеТ быть М0ГУГ бЬГГЬ дРУгие списки. При этом глубина вло- с-т31..?0Р'МЬ1 И СЛО5кности. Пустой ?Т0 позволяет создавать символьные структура J? t 7P даннад и управлении ими V°* (’ Играет ос°бую роль при построении сХТГое Сражение,Х’Т есть -еци^ имя - nil; nil - его можно иРез8Ь1чайн° гибкое соедстап ДНовременио является и атомом, и списком, (on нт Спольз°вать для представлен и 0СТР°еНВД представления. Например- (likes0^?1 table} сражений из теории предикатов. ^rge Ulkes biH merry) ) 686 ЧаСТЬ для ЭТОТ синтаксис позволяет представил, выражения теории предикатов в описанном а этой главе алгоритме унификации. Следующие два примера демонстрируют способы ис- пользования списков для реализации структур данных, необходимых в приложениях баз данных. В подразделе 15.1.5 описана реализация простой системы извлечения данных на основе этих представлении. Н2467 (lovelace ada) programmer) (3592 (babbage Charles) computer-designer)) ((key-1 value-1) (key-2 value-2) (key-3 value-3)) Важным свойством LISP является использование одинакового синтаксиса для пред- ставления ие только данных, но и программ. Например, списки (* 7 9) (+ 3 4) 7) можно интерпретировать как арифметические выражения в префиксной форме записи. LISP обрабатывает эти выражения именно так: (*7 9) означает произведение 7 на 9. Если иа компьютере установлен LISP, то пользователь может вести интерактивный диа- лог с его интерпретатором. Интерпретатор выводит приглашение (в качестве примера в этой книге используется символ >), считывает введенные пользователем данные, пыта- ется оценить их и в случае успеха выводит результат. Например, >(*79) 63 > Здесь пользователь ввел выражение (* 7 9), а интерпретатор выдал результат 63 — значение, связанное с этим выражением. После этого LISP выводит следующее приглашение и ожидает ввода пользователя. Такой цикл называется циклом чтения- оценки-нечати (read-eval-print loop) и составляет основу интерпретатора LISP. Получив список, интерпретатор LISP пытается проанализировать его первый элемент как имя функции, а остальные элементы — как ее аргументы. Так, s-выражение (f х у) эквивалентно более традиционной математической записи f(x, у). Выводимое LISP значение является результатом применения этой функции к ее аргументам. Выражения LISP, которые могут быть осмысленно оценены, называются формами (form). Если пользователь вводит выражение, которое нельзя корректно оценить, то LISP выводит со- общение об ошибке и позволяет пользователю выполнить трассировку и внести исправ- ления. Вот пример сеанса работы с интерпретатором LISP. > (+ 14 5) 19 >(+ 1 2 3 4) 10 > <- (+ 3 4) 7) 0 =’<*(+ 2 5) (- 7 (/ 21 7) ) ) 28 > <= (+ 2 3) 5) * (* 5 6) (+ 4 5)) > (а Ь с) Егг°Г: invalid function; а Глава 15. Введение в LISP
_nQB аргументы сами являются списками, например . в нескольких ИЗ этих "Р"«т^ет композицию функции и в данном случае ЧИта„. 3 4) 7). Это выражение Слово рПуль'гат делено №lOr(> СЯ так: “вычесть 7 из , качестве аргумента передается ие s-выражение з 4), а результат его оценивает ее аргументы, а затем применяет функцию Оценивая функцию. Llorc ен11Я, к оценке аргументов. Если ар.умснты сам„ № задаваемую первым зле“ с”1вн0 применяет это правило для нх оценивания. Таким лвклся функщеямн. то Uor р вызовов функций произвольной глубины. Важно образом, LISP допускает нивает все объекты. При этом используется соглаше- помнить, что по умолчанию НапрИМер, если интерпретатору передать значение ние, что числа соответствую символамИ) например х, могут быть связаны выражения 5, то LISP вернет результа _ возвращается результат связывания. Связанные СИК1. При оценивании связанных вызОва функций (подраздел 15.1.2). Если символ не волы могут появляться в р сообщение об ошибке. связан, то при его оценке выд. 2 3, (*3 5 и, LISP сначала оценивает аргумен- Например, оценивая выр aWMeina LISP оценивает его параметры 2 н 3, воз- W(*2 31 и I j соответствующие им арифметические значения. Эта значения перемножаются и в результате дают число 6. Анало- гично результатом оценки выражения (*3 5) является 15. Затем эти результаты передаются функции сложения более вы- сокого уровня, при оценивании которой возвращается 21. Диа- грамма выполнения этих операций показана на рис. 15.1. Помимо арифметических операции LISP включает множест- во функций работы со списками. К ним относятся функции по- строения и комбинирования списков, доступа к элементам спи- сков н проверки различных свойств. Например, функция list принимает любое количество аргументов и строит на их основе список. Функция nth получает в качестве аргументов число и список и возвращает указанный элемент этого списка. Нумера ция элементов списка начинается с нуля. Вот примеры использо- вания этих и других функций работы со списками. (+(*23)(*3 5)) (’23) 2 3 Рис. 15.1. Древовидная диа- грамма оценивания стой функции USP (’3 5) 3 5 про- 4 5 4 0 5) ' (а b d)) с 2 1 2 3 2 ' ((а 1) 4 5)) (b 2) (с 3) (d 4)1) ' (a b с d)) 2 ‘(12345)) > (list 123 (1 2 3 > (nth а > (nth 3 > (nth (с 3) > (length 4 > (member nil > (null ( Функции Основные идеи работы со спн 1 ЭТ°Г0 ра3дела можно лзТо п^Ро^н0 ^удут описаны в подразделе 15.1-5 fioR -------------- Жить в ВИде следующего определения. ----------— - ________________ Рограммироеания для искусственного инт^0 определение S-ВЫРАЖЕНИЕ s-выражсине можно рекурсивно определить следующим образом. 1. Атом — это s-выражение. 2. Если Si, 8з, ..., sn s-выражения, то s-выражением является и список (sb s2, .... sn). Список — это неатомарное s-выражение. форма это подлежащее оцениванию s-выражение. Если это список, то первый элемент обрабатывается как имя функции, а последующие оцениваются для получе- ния ее аргументов. Оценивание выражений выполняется следующим образом. Если s-выражение — число, то возвращается значение этого числа. Еслн s-выражение — атомарный символ, возвращается связанное с ним значение. Ес- ли этот символ не связан, возвращается сообщение об ошибке. Если s-выражеиие — это список, оцениваются все его аргументы, кроме первого, а к полученному результату применяется функция, определяемая первым аргументом. В LISP в виде s-выражений представляются н программы, н данные. Это не только упрощает синтаксис языка, но и в сочетании с возможностью управления оценкой s-выражеиий упрощает написание программ, обрабатывающих в качестве данных другие программы. Это облегчает реализацию интерпретаторов на LISP. 15.1.2. Управление оцениванием в LISP: функции quote и eval В нескольких примерах из предыдущего раздела перед списками аргументов распола- гался символ одинарных кавычек '. Этот символ, который также может быть представ- лен функцией quote, представляет собой специальную функцию, которая не оценивает свои аргументы, а предотвращает их оценивание. Зачастую это делается для того, чтобы аргументы обрабатывались как данные, а не как оцениваемая форма. Оценивая s-выражения, LISP сначала старается оценить все аргументы. Если интер- претатору передается выражение (nth 0 (а b с d)), то он сначала пытается оце- нить аргумент (а b с d). Эта попытка приведет к ошибке, поскольку а — первый элемент этого s-выражения — не является функцией LISP. Чтобы предотвратить эго, следует воспользоваться встроенной функцией quote. Она зависит от одного аргумента и возвращает этот аргумент без его оценки. Например, > (quote (а b с)) (а b с) 51 (quote (+ 1 3)) (+ 1 3) Поскольку функция quote используется довольно часто, то в LISP допускается ее сокращенное обозначение в виде символа '. Поэтому предыдущие примеры можно пе- реписать в следующем виде. > ' (а Ь с) (а Ь с) > '(+ 1 3) ( + 1 3) Глава 15- Введение в USP 689
> (list «• 12) l«3 4») (37) .., > (list '(+12) '(+34)) ((+ 12) (+3 4)) В первом примере аргументы ие квотированы, поэтому они оцениваются и передают ся в функцию list согласно используемой по умолчанию схеме. Во втором примере функция quote предотвращает оценку, и в качестве аргументов функции list Перед; югся сами S-выражения. И хотя {+1 2) - это осмысленная форма LISP, фу^ quote предотвращает ее оценивание. Возможность предотвратить оценивание про- грамм и обращаться с ними как с данными важное свойство LISP. В дополнение к функции quote LISP также предоставляет в распоряжение пользователя функцию eval, позволяющую оценить s-выражение. Она зависит от одного аргумента, пред, ставляюшего собой s-выражение. Этот аргумент оценивается как обычный аргумент функции Однако результат снова оценивается, и в качестве значения выражения eval возвращается окончательный результат. Вот примеры применения функций eval и quote. > (quote (+ 2 3)) (+ 2 3) > (eval (quote (+ 2 3))) 5 /функции quote ?> (list '*25) (* 2 5) > (eval (list '* 2 5)) 10 Функция eval, по существу, обеспечивает обычное оценивание s-выражений. Благодаря и eva^ существенно упрощается разработка метаинтерпретаторов "Т? ~ МРИЩШИ стандартного интерпретатора LISP, определяющих альтерна- дология нпотяим1И1СЛЬНЫС возможности этого языка программирования. Эта важная мето- деле 15 7 и пйчт^1Р°ВаТ1Я 1ШЛЮС1Р1ФУется на примере "инфиксного интерпретатора” в раз- деле 15.7 и разработки оболочки экспертной системы в разделе 15.10. ; функция eval отменяет результат выполнения ;строится оцениваемое s-выражение ; строится и оценивается выражение Днале J Раммировадие USP: создание новых функций ААнадскт Lommon LISP 1 * числе следующие. ключает большое количество встроенных функций, в том Полный спектр арифметических ж нои’ комплексной арнфмети Фикций поддержки целочисленной, веществен- • Разнообразные функцц ” Р&^°ТЬ1 с Рациональными числами. • Функции работы со ₽ганизации циклов и управления программой. • Функции ввода-вывода ” ДРУГИМН стРУкТУрами данных. • формы для контроля оценивания функций. • функции управления средой н операционной системой. Всс функции LISP невозможно перечислить в одной главе. Более подробная ипфоп- нация о них содержится в специальной литературе по LISP подрооная ипфор Программирование в LISP сводится к определению новых функций и построению программ на основе богатого спектра встроенных и пользовательских фуикций’новые функции определяются с помощью функции defun. имя которой представляет собой сокращение фразы define function . После определения функции ее можно использовать так же, как и любую другую встроенную функцию языка. Предположим, что требуется определить функцию square, зависящую от одного ар- гумента и возводящую его в квадрат. Эту функцию в LISP можно определить следую- щим образом. {defun square (х) (* х х) ) Первым аргументом функции de fun является имя определяемой функции, вто- рым список ее формальных параметров, которые должны быть символьными атома- ми. Остальные аргументы — это нуль или s-выражения, составляющие тело новой функ- ции, т.е. код LISP, определяющий ее поведение. Как и все функции LISP, de fun воз- вращает значение, представляющее собой просто имя новой функции. Важным результатом работы функции de fun является побочный эффект, состоящий в создании новой функции и добавлении ее в среду LISP. В рассмотренном примере оп- ределяется функция square, зависящая от одного аргумента и возвращающая результат умножения этого аргумента на себя. После определения функции ее необходимо вызы- вать с тем же числом аргументов или фактических параметров. При вызове функции фактические параметры связываются с формальными, и тело функции оценивается с учетом этого связывания. Например, при вызове (square 5) значение 5 связывается с формальным параметром х в теле определения. Оценивая тело (* х х), LISP сначала оценивает аргументы функции. Поскольку в этом вызове параметр х связан со значением 5, то оценивается выражение ( * 5 5). Более строго синтаксис выражения defun имеет вид. (defun <имя функции? (<формальные параметры?) <тело функции?) В этом определении описания элементов формы заключены в угловые скобки <>. Это обозначение будет использовано и далее. Заметим, что формальные параметры функции defun представляются в виде списка. Вновь определенную функцию можно использовать так же, как и любую другую встроенную функцию. Предположим, что необходимо вычислить длину гипотенузы пря- моугольного треугольника, зная длины двух его других сторон. Эту функцию можно оп- ределить на основе теоремы Пифагора, используя определенную ранее функцию square, а также встроенную функцию sqrt. Следующий пример кода снабжен под- робными комментариями. LISP поддерживает однострочные комментарии, т.е. игнори- рует весь текст, начиная с первого символа ;, и до конца строки. (defun i ,-длина гипотенузы равна (загГ? ?USe Х У -корню квадратному из суммы qrt (+ (square х) '-квадратов двух других сторон. (square у) ) ) ) ' VI. Языки и технологии программирования для искусственного Интел Глава 15- Введение в LISP 691
ил типичен, поскольку большинство программ LISP со Этот пример Довольно.типи вь1полняюших отдельные хорошо. определен ’ ® относительно небольших фуни.....спользуются для реализации функцИЙ й- дачи. После определения эти ФУ п0ВедеНие самого высокого уровн, ,ы- сотого уровняло тех пор, пока „„„.пяммой в LISP: условия и предикаты i 1514. Управление прогр ' _ LisP тоже основывается иа оценивании функций. Управлян, Реализация ветале»^ ( в эав11СИМ0СГ„ От результатов выборочно оцеаищ. шие функции выполняют и F рассмотрим следующее определение фуНЩ1Ин . что в LISP имеется встроенная функция abs, аычис^. > Шая абсолютное значение числа). t (defun absolute-value U) ;еСли x меньше 0, вернуть -x (cond ((< x 0) (- ;в противном случае возвращается x ((> = X UI Alli в этом примере используется функция cond, реализующая ветвление. Аргументам этой функции является множество пар условие-действие (condition/achon pair). (cond (<условие1> <действие1>) (<уаловие2> <действие2>) j • ! (<условиеп> <действиеп>)) , Условие и действие могут быть произвольными s-выражениями, при этом каждая па- ра заключается в скобки. Подобно функции defun cond не оценивает все свои аргумен- ты. Она оценивает условия по порядку до тех пор, пока одно из них не возвратит значе- ние, отличное от nil. В этом случае оценивается соответствующее действие, и получен- ный результат возвращается в качестве значения выражения cond. Ни одно из других действий и ни одно из последующих условий не оцениваются. Если все условия возвра- щают значение nil, то и функция cond возвращает nil. Приведем альтернативное определение функции absolute-value. (defun absolute-value (x) (cond ((< x 0) (- x)) ,-если x меньше 0, вернуть -x (t XD> ;в противном случае возвращается x В этой версии учитывается тот факт, что второе условие (>= х 0) — всегда истин но, если первое условие ложно. Атом t в последнем условии оператора cond эт0* атом LISP, который соответствует значению “истина”. Его оценка всегда совпадает с са мим атомом. Следовательно, последнее действие выполняется только в том случае, ес все предыдущие условия возвращают значение nil. Эта конструкция очень полезна, скольку позволяет задать действие, выполняемое оператором cond по умолчанию в СЛУЧНесм^ ВСХ ПредЫДущ"е Условня не выполняются пюбь1е оцениваемктр 43 ™ В Качестве >'СЛ0В1'й оператора cond можно использовать эвХТпХ»ВЫТеТ’ В LISP специальные функции, получивши чение (“истина""08 ^.rcdlcate*' Предикат — это функция, возвращающая логичен вс- ‘ ИВИС— - ™о. Удовлетворяют ли ее на^ри сравнения вида = >и>- п** очевияиЫ|«« примерами предикатов являютс ,lSp. - от некоторые примеры арифметических предикат ? (= 9 (+ 4 5)) > (>= 17 4) * (< 8 (+42)) nil > (oddp 3) t > (minus? 6) :> (numberp 17) t > (numberp nil) nil > (zerop 0) t > (plusp 10) t > (plusp -2) nil /проверка четности аргумента ;проверка ;проверка, неотрицательности аргумента является ли аргумент числом /проверка равенства аргумента нулю /проверка строгой положительности аргумента Заметим,^ что в этих примерах предикаты возвращают значения t или nil, а не истина н ложь . Вообще, в LISP значение предиката nil соответствует логическому значению “ложь”, а любое отличное от него значение (не обязательно t) обозначает “истина”. Примером функции, использующей это свойство, является предикат member. Он зависит от двух аргументов, причем второй аргумент обязательно должен быть спи- ском. Первый аргумент — это элемент списка, определяемого вторым аргументом. Пре- дикат member возвращает суффикс второго аргумента, начальным элементом которого является первый аргумент. Если первый аргумент не является элементом списка, преди- кат member возвращает результат!!. Например, > (member 3 ' (1 2 3 4 5)) (3 4 5) Такое соглашение дает следующее преимущество. Предикат возвращает значение, которое в случае истинности условия может использоваться для дальнейшей обработки. Кроме того, при таком соглашении в качестве условия в форме cond можно выбирать любую функцию LISP. Форму if, зависящую от трех аргументов, можно использовать как альтернативу Функции cond. Первым параметром является само условие. Если результатом проверки условия является ненулевое значение, то оценивается второй аргумент функции if н возвращается результат этой оценки. В противном случае возвращается результат оценки третьего аргумента. При бинарном ветвлении конструкция if в целом обеспечивает бо- лее прозрачный и изящный код, чем функция cond. Например, с помошью формы if Функцию absolute-value можно определить следующим образом. (defun absolute-value (х) (if (< х 0) (- х) х)) Помимо функции if и cond, в LISP содержится обширный набор управляющих кон- °1>Укиий, в том числе итеративных, таких как циклы do и while. Хота эта функции «чень полезны и обеспечивают программисту широкие возможности упрзмеи» пр<ь Т>«ммой. они здесь ие будут обсуждаться. Эту информацию читатель сможет наши в Спе диализирован ной литературе по LISP. сть VI. Языки и технологии программирования для искусственного иИтеЛ Глава 15. Введение в LISP
мелете управления программой в LISP СВЯза одно из наиболее or и not. Функция not зависит от од>10[' £ пользованием логических Р этот аргумент равен nil, и nil — в протицЭ гумента и возвращает зиачениот любого числа параметров. Они ведуг случае. Функции and и. orГГ логические операторы. Однако важно понимать точно так же. как и соотве^™?ются на условной оценке (cond.t.onal evaluation). ЧТО функции and и ОХ основа № ар1умекты слева направо. Процесс заад. При обработке формы ап мает значение nil, или после оценки последнего ад шаотя, если один tnapiyMem н возвращае1 значение последнего оцененного гумента- По завершении р Y. значение возвращается только в том случае, если ад аргумента. Следовательно у Ангиип(чно аргументы формы or оцениваются только аргументы функции отл№ и в03вращается в качестве результата Некоторые до появления ненулевогоз неОцененными. что иллюстрируется на примере ю аргументов этих функции _ > значения своего аргумента, в некоторых диалектах USP ^РгГпепозавершенииработывозврашаегзначеииеп!!. ’ (and (oddp 2) (Print “второй оператор был оценен )) “(and (oddP 3) (print “второй оператор был оценен")) >T°CrM(oddpa3°P(print -второй оператор был оценен")) > (or (oddp 2) (print “второй оператор был оценен")) второй оператор был оценен Поскольку в первом выражении результатом оценки (oddp 2) является nil, функ- ция and просто возвращает значение nil без оценивания формы print. Во втором вы- ражении результатом оценки (oddp 3) является t, и форма and оценивает выражение print. Аналогично можно проанализировать работу функции or. Поведение этих функций очень важно понимать. Дело в том, что их аргументами могут быть формы, оценка которых связана с получением побочных эффектов, подобных функции print. Условный анализ логических функций позволяет управлять процессом выполнения про- граммы LISP. Например, форму or можно использовать для получения альтернативных решений и проверки их до тех пор, пока одно нз них ие даст отличный от нуля результат. 15.1.5. Функции, списки и символьные вычисления В предыдущих разделах был рассмотрен синтаксис LISP и введено несколько полезных функции. Все они применялись для решения простых арифметических задач, однако истинная сила LISP проявляется в символьных вычислениях. Они основываются иа использовании его сков для построения структур данных любой СЛОЖНОСТИ, СПСТО Я1 них из символьных и Ч11С\ вш атомов, а также создании форм для управления ими. Простоту обработки сиМ*??1)0. neJn^X1^aHHbIXl 3 таюкс естественность построения абстрактных типов данных в L вьтол^^еМ На Пр0СГОМ “РнмеРе управления базой данных. В нашем приложении писи заданы ™ераЩ1И над запнсями, содержащими информацию о сотрудниках. В п0 писизаданы имя, зарплата и табельный номер сотрудника ”Р“ГЯ В ВИДе списков’ 1ГСРВЫМИ Фемя »'™еитами К0ТО^ ФуХХ“л еЛЬН“й номер' с "ом‘™ью Ф^“ии nth можио цию получения поляРцмениНЫМ П0ЛЯМ Записн' Например, определим следую (defun name-field (record) (nth 0 record)) Приведем пример ее использования. > (name-field '((da Lovelace) 45000.00 33851411 (Ada Lovelace) Аналогично можно определить функции получения го номера salary-field и список, состоящий из двух элементов (собственно имя и -Ы. \ нмя — это тоже функцию, которая на основе параметра name вычисляет либо имя,0ПрСДеЛИП> (defun first-name (name) (nth 0 name)) Вот пример ее использования, > (first-name (name-field '((Ada Lovelace) 45000.00 338519))) Ada Помимо доступа к отдельным полям записи необходимо реализовать функции созда- ния и модификации записей. Они определяются с помощью встроенной функции LISP list. Функция list получает произвольное число аргументов, оценивает их и возвра- щает список, содержащий значения параметров в качестве своих элементов. Например, > (list 1234) (1 2 3 4) > (list '(Ada Lovelace) 45000.00 338519) ((Ada Lovelace) 45000.00 338519) Как видно из второго примера, функцию list можно использовать для определения конструктора записей в базе данных. (defun build-record (name salary emp-number) (list name salary emp-number)) Вот пример ее использования. > (build-record '(Alan Turing) 50000.00 135772) ((Alan Turing) 50000.00 135772) Теперь с помощью функций доступа и build-record можио создать функцию, возвращающую модифицированную копию записи. Например, (defun replace-salary-field (record new-salary) (build-record (name-field record) new-salary (number-field record))) r- > (replace-salary-field '((Ada Lovelace) 45000.00 338519) 50000.00) ((Ada Lovelace) 50000.00 338519) Заметим, что эта функция на самом деле не обновляет саму запись, а создает ее мо- дифицированную копию. Эту обновленную версию записи можно сохранить, связав ее с глобальной переменной с помощью функции setf (подраздел L.L . - отя в су Шествуют формы, позволяющие модифицировать конкретный элемент списка в исход- “ОЙ структуре (без создания копии), хороший стиль программирования не предполагает их использования поэтому в этой книге они не упоминаются. Если в приложении ис VI. Языки и технологии программирования для искусственного инт®^ Глаа015. Введение в LISP 695
^,«гл>ы. и* м°"‘ФикаииЯ выполметс» с ПОМО^ : ом большие СТРУКГ’Г пользу»®1 яе С-ФУ«УРЫ- ,ыл создай абстрактный тип данных для 06pa6tr[Kll . создания новой коп примерах бы с03даны рюлнчиые функции доступа к в рассмотрен^ в эТОм Р“» п изт0М программисту не приход,™,,,. >«Ф°РмаиИ12Х^дзнных и их м°пнфньап wbJX ддя реализации записей Гщы К°Да' 3 ЯеИаСГ К°й 6”Л" нда- Это У"р0'“а”1кдам и иодаер«ки' „ебуют обработки больших объемов знав,,,-, доступным л»'"энного и1ГГИ“'ХХ»и1« этих знаний структуры данных, в ча. J Приложен У используемые для чио сдажны Поэтому человеку проще: опредметнон * сема1ПИЧеские се™’ “елового значения, а не конкретного «щ». ЭТИ знания в терминах их метоаоиог11я построения абстрактных та- • р .« “утреннего представлен^ "° в6о™е приложений искусственного «пеллет. Х«»Хз=твя-"У«Р"преде^ новые функции, он является идеалы,™ . 15.1,6. Списки как рекурсивные структуры i В предыдущем разделе для реализации доступа к полям записей простой базы данных , сотрудников использовались функции nth и list. Поскольку все записи о сотрудниках i имели фиксированную длину (состояли из трех элементов), то этих двух функций было' достаточно. Однако для выполнения операций иад списками неизвестной длины, в част- ности для реализации поиска на неуказанном числе записей этого мало. Для выполнения такой операции необходимо иметь возможность сканировать список итеративно или ре- курсивно, завершая проход при выполнении некоторых условий (т.е. при нахождении нужной записи) или после просмотра всего списка. В этом разделе вводятся операции со списками, причем для определения функций обработки списков используется рекурсия. Основными функциями доступа к компонентам списков являются саг и cdr. Первая из них зависит от одного аргумента, который сам является списком, и возвращает его первый элемент. Функция cdr тоже зависит от одного аргумента, который должен быть списком, и возвращает этот же список после удаления его первого элемента. Например, так. > (саг • (а Ь с)) Заметим, что список квотирован > (cdr ’(а b с)) (Ь с) । b> <С d*11 ; первый элемент списка может быть списком - > (cdr ' ((a b) (cd))) I ((cd)) > (car (cdr '(a b c d) )) ( Функции car и cdr oc АУК>СщХМ^^,УК1УРаМИ °П=РащШ ПОЯХОЛе " ВЫП0ЛНСНИЮ 0Пера“И^ ? ‘ жды.м элементом списка выполняются c/It , _ , die- 1. Если список пуст, операция завершается. цсрсХС' * 2. В противном случае обрабатывается этот элемент и осуше дующему элементу списка. По згой схеме можно определить множестао полезны, - пример. язык Common LISP включает предикат member <РУНКЦИИ Работы со списками. Не- которого s выражения списку, и length, позволяющий HaZT"“°““'ii п₽инаш,юи1“ст> ие- собственные версии этих функций. Функция mv- , Д™Ну описка. Определим свои аргументов — произвольного s-выражения „ списка ту 17т® л буЖ1 заавсеть от если s-выражеиие ие является элементом списка my-list в Д0ЛЖНа втврапитъ пП' возвращать список, содержащий это s-выражение в качестве пеовТ™"”' ““ 6уДСТ (defun ray-member (element my-list) ™элемента. (cond ((null my-list) nil) ((equal element (car my-lis't)) ^”’1 не *ВЛяется членом списка ; элемент найден y-xist) (t (my-member element (cdr my-list))))) ;шаг рекурсии Вот пример использования функции тпу-member, > (шу'ПгетЬег 4 '(1 2 3 4 5 6)) (4 5 6) > (ту'шетЬег 5 ’(abed)) nil Аналогично определим собственные версии функций length и nth. (defun ту-length (my-list) (cond ((null my-list) 0) (t (+ (ту-length (cdr my-list)) 1)))) (defun ту-nth (n my-list) (cond ((zerop n) (car my-list)) ;функция zerep проверяет .•равенство нулю (t (my-nth (-n 1} (cdr my-list))))) ; своего аргумента Интересно отметить, что приведенные примеры использования функций саг и cdr в то же время иллюстрируют историю развития LISP. Ранние версии языка содержали ие так много встроенных функций, как диалект Common LISP. Программистам приходилось самим определять функции проверки принадлежности элемента списку, вычисления длины списка и т.д. Со временем наиболее общие из этих функций вошли в стандарт языка. Common LISP — легко расширяемый язык. Он позволяет легко создавать и ис- пользовать собственные библиотеки повторно используемых функций. Помимо саг и cdr LISP содержит множество функций построения списков. Одна из них — list, зависящая от произвольного числа аргументов, предстаатяющих собой s-выражеиия. Функция оценивает их и возвращает список результатов (подраздел 15.1.1). Бо- лес примитивным конструктором списков можно считать функцию cons, параметрами кото- рой являются два s-выражения. Эти параметры оцениваются, и возвращается список, первым элементом которого является значение первого аргумента, а хвостом — значение второго. > (cons 1 '(2 3 4) ) И 2 3 4) > (cons ' (а b) ' (с d е) ) На Ь) с d е) Функцию cons можно считать обратным преобразованием для функцийI сах-и cdr по- гкольку результатом применения функции саг к значению, возвращаемому функцией cons. М6 ЧаСТЬ ДЛЯ Глава15. Введение в LISP 697
1 1 .мг гопа Аналогично результатом применения фунет,,. является cons, всегда является агорой ар.умент этой « значений, возвр . . , > (car (cons 1 > (cdr (cons (2 3 4) Приведем пример «««-"^^^Г^иштельные значения. Функция f il ter-negatiuГ должна удалять из тпрмрит _ рекурсивно проверяет. ется, и (,„ 'SDCTa- --itjrersss.sret” ;условие останова ((plusp (саг > (2 3 4)) > < (2 3 4))) Лекции cons. ЗТОГО определии функция использования ФУ" двляетСЯ числовой список. Эта функад, ‘T-ves. пар»*'П>о« “"Л значсиия. Функция f ilter-negatiVe5 пе3 - - 01рШ FcnH первый элемент отрицателен, он исклюй элементы списка, t отрицательных элементов хвоста сад. элемент списка положителен,он ВЮ№ Пе1еляемо™ФУНМ,ИеИ --------- number-list)) (cons (car number-list) (filter-negatives (cdr number-list)))) number-list))))) -4)) (t (filter-negatives (cdr Вот пример вызова этой функции. > (filter-negatives '(1 -1 2 -2 3 (1 2 3) Это типичный Пример использования функции cons в рекурсивных функциях над списками. Функции саг и cdr делят список на части и “управляют” рекурсией, a cons формирует результат по мере “развертывания” рекурсии. Еще один пример использова- ния функции cons — переопределение встроенной функции append. (defun my-append (listl list2) (cond ((null listl) list2) (t (cons (car listl) (my-append (cdr listl) list2))))) Проиллюстрируем вызов этой функции а'Т'пТб)'*1 2 31 44 5 6)1 append Ж6 РекуРсивной схеме строятся определения функций мента из списка нсппп ** тегп1зег‘ ® каждом из этих определений для удаления зле- го вызова укороченное УСТСЯ.^'¥НК11,1Я Cdr‘ 310 обеспечивает возможность рекурсивно* курени функция cons ^екуРСНЯ завершается, если список пуст. В процессе)*’ рекурсией (cdr-recursion> рсстраивает решение. Эта схема зачастую называется с! Хвостовой Р^УРсие^ (tail resursion), поскольку ФУ»1^ лучения хвоста списка. 15.1.7. Вложенные списки, структуры и рекурсия саг- Хотя обе функции cons и append предназначены для объединения меТрами важно понимать различие между ними. При вызове функции cons ее па __________________________________________________ 698 Часть VI. Языки и технологии программирования для искусств и де- которого являются элементы (1 234) 2 3 4 ((12)3 4) Pwc. 15.2. Представление списков в виде деревьев для отображе- ния различий в их структуре списка. Первый из них становится первым элементы ^врашас-г список, аденамикшпрогояв^кисяэТеме^Го^^^^^.поа^^^™ аРР&'К^ > (cons (1 21 (3 4) ) 7(1 2) 3 4) ; (append '(12) ’ (3 4) ) (1234) Списки (1 2 3 4) и ( (1 2) 3 4) имеют принципиально разную структуру. Это различие можно отобразить графически, установив изоморфизм между списками и де- ревьями. Простейший способ построения соответствия между списками и деревьями — создание для каждого списка узла без метки, потомками г— этого списка. Это правило рекурсивно применяется ко всем элементам списка, которые сами являются списка- ми- Атомарные элементы становятся листовыми узлами дерева. При таком построении два указанных выше спи- ска генерируют деревья различной структуры (рис. 15.2). Этот пример иллюстрирует широкие возможности спи- сков по представлению данных. В частности, их можно ис- пользовать как средство представления любой древовидной структуры, в том числе дерева поиска или дерева граммати- ческого разбора (рис. 15.1). Кроме того, вложенные списки обеспечивают возможность иерархического структурирова- ния сложных данных. В примере с записями о сотрудниках из подраздела 15.1.4 поле имени само является списком, состоящим из собственно имени и фамилии. Этот список можно рас- сматривать как единую сущность, а можно получать доступ к каждому его компоненту. Простой схемы cdr-рекурсин, описанной в предыдущем разделе, недостаточно для реализации всех операций над вложенными списками, поскольку в ней не различаются списочные и атомарные элементы. Например, допустим, что функция length, опреде- ленная в подразделе 15.1.6, применяется к иерархической списочной структуре. > (length '((12) 3 (1 (4 (5))))) 3 Функция length возвращает значение 3, поскольку список состоит из 3 элементов: (1 2), 3 и (1 (4 (5))). Это, конечно, правильно, н такое поведение функции корректно. С другой стороны, если требуется подсчитать количество атомов в списке, необхо- димо определить другую схему рекурсии, которая при сканировании элементов списка будет “вскрывать” неатомарные элементы списка и рекурсивно выполнять операции по подсчету атомов. Эту функцию можно определить так. (defun count-atoms (my-list) (cond ((null my-list) 0} ((atom my-list) 1) . (t (+ (count-atoms (car my-list)) ^вскрываем элемент (count-atoms (cdr my-list)))))) •‘сканируем список , , . . , > (count-atoms '((1 2) 3 (((4 5 (6)))))) 0 м rar-edr. Помимо рекурсивного прохода по Это определение — пример рекурсии , tomS выполняет рекурсию по перво- СПНСку с помощью формы cdr, функция соип Глава 15. Введение в USP 699
car Затем функция < комбинируй MV с поморю Форм завершается при достижении атома „ек«. -^нни огвс«- Реку^‘ ь как добавление второго измерена, , ГХ-о Р^*ИИ Car'Cdt “ РеКУРСИвН0Г° On₽*'- в““МаНХ15 1.1- РИ„С»'в^""ЙВ"°да иа (tenglh((l Я3(1<4(5»))1 (lengthO (1(4(5))))) Еще одним примером использования рекупсии „ функции flatten. Она зависит от одного аргумента ar'cdr явяяется определение произвольных структур, и возвращает неиерапхич ^дставляющего собой список атомов, расположенных в том же порядке. 06™™ а*™ СПИС°К' состоящий из тех же функций flatten и count-atoms. В обеих функция^^*46 На аналогию определений леиия рекурсией используется схема car-edrоС|0т/ разбнения списков и управ- нулевого или атомарного элемента, и для построена о Прекрашастся ПРИ Достижении вызовов в обоих случаях применяется вторая функция РеКурсИВных (defun flatten (1st) П +)' (cond ((null 1st) nil) ((atom 1st) (list 1st)) (t (append (flatten (car Ьншъм- , . J-st) ) (flatten (edr 1st)))))) Вот пример вызова функции flatten. > (flatten '(a (b c) (((d) e f)))j (a b c d e f) (3 b1’)1”1 ' ,a Ь C” ;ЭТОТ уже не содержит иерархии > (flatten '(1 (2 3) (4 (5 6) 7))) (1 2 3 4 5 6 7) Рекурсия car edr является основой реализации процедуры унификации в разделе 15.6. Рекурсия по дереву, или car-cdr-рекуроия: (count-atoms((12) 3 (1(4(5)))» (count-atoms((5))) (count-aloms(5)) 0 Рис 15.3. Диаграммы линейной и древовидной схемы рекурсии 15.1.8. Связывание переменных с помощью функции set Язык LISP строится иа теории рекурсивных функций. Ранние его версии могут слу- жить примером функционального или прикладного языка программирования. Важным аспектом чисто функциональных языков является отсутствие побочных эффектов в ре- зультате выполнения функций. Это означает, что возвращаемое функцией значение зави- сит только от определения функции и фактических параметров при ее вызове. Хотя LISP основывается на математических функциях, можно определить формы, нарушающие это свойство. Рассмотрим следующие команды LISP > (f 4) 5 > (f 4) б > (f 4) 7 Заметим, что f ие является полноценной функцией, поскольку ее результат определя- йся не только фактическим параметром: различные вызовы с параметром 4 возвращают разные значения. Дело в том, что при выполнении этой функции создается побочный эффект, который сказывается на се поведении при последующих вызовах. Функция f реализована с помощью встроенной в LISP функции set. (defun f (х) (set 'inc (+ inc 1)) (+ x inc)) . PpwnbiaTOM оценивания первого должен Функция set зависит от двух аргумент . ' пппи3вольное s-выражение. Функция шляться символ, а вторым параметром может значение символу. опреде- set оценивает второй аргумент и присваивает полученное V(. Языки и технологии программирования для искусственного инте^6 Глава 15- Введение в USP
Если в рассмотренном примере значение перемвм. - ленному первым аргум помощью вызова (set 'inc 0), то при последую^11 *Пс инициализировать ну будСТ увеличиваться на 1. ц^х 8ьь зовах значение этого nl аргумента функции set обязательно дОп^ результатом о—-’ -рв^ Зстся просто квотированный ен^» символ. Зачастую <юр_ очень част0, в LISP существует альтернативная ку такая ситуация ТР которой первый 11араметр нс оценивается. Д;1я *°РМа 3"фун"иии setQ необходимо, чтобы ее первый параметр был символом. На^ мер, следующие Формы эквивалентны. > (set 'х 0) и 0 > (setq х 0) | 0 Хотя использование функции set позволяет создавать в LISP объекты, не являющие, ся чистыми функциями в строго математическом смысле, возможность связывания зна ’ чения с переменной глобального окружения — очень полезное свойство. Многие задачи 1 программирования наиболее естественно реализовать на основе определения объектов 1 состояние которых сохраняется между вызовами функции. Классическим примером та- f ких объектов является начальное число, используемое i енератором случайных чисел 1 Его значение изменяется и сохраняется при каждом вызове функции. Аналогично в сис-! теме управления базой данных (в частности, описанной в подразделе 15.1.3) естественно, хранить базу данных, связав ее с переменной в глобальной среде. Таким образом, существует два способа присваивания значения символу: явный — с по-1 мощью функции set или setq, и неявный, когда при вызове функции фактические парамег-' ры вызова связываются с формальными параметрами в определении функции. В рассмотрен- ных выше примерах все переменные в теле функции были либо связанными (bound variable) либо свободными (free variable). Связанная переменная — это переменная, используемая в ка- честве формального параметра в определении функции, а свободная переменная встречается в теле функции, но не является формальным параметром. При вызове функции все связи пере- менной в глобальной среде сохраняются, а сама связанная переменная ассоциируется с фак- тическим параметром. После завершения выполнения функции исходные связи восстанавли- ваются. Поэтому присваивание значений связанной переменной в теле функции не влияет на глобальные связи этой переменной. Это видно из следующего примера. > (defun foo (х) „ переменной х (setq х (+ х 1)) ;инкрементирование связанной г х) ;возврат значения foo > (setq у 1) 1 > (Еоо у) 2 * у ; значение у не изменилось иная л Св* В примере, приведенном в начале этого раздела, в функции f "тсра, свобод^6 П занной, а переменная inc — свободной. Как ясно из этого пр оВ менныс в определении функции — прямой источник побочных эфф ИН=Йз™ ф0РМЫ set ИЛИ 3etq —« обобщенная функция присваивания setf. Эта функция не присваивает значения символу а оценивает свой первый аргумент с целью получения адреса в памяти и помещает по этому адресу значе- ние второго аргумента. Прн связывании значения с символом функция setf ведет себя аналогично setq. > (setq х 0) 0 > (setf х 0) 0 Однако, поскольку функцию setf можно вызвать для любой формы описания ме- стоположения в памяти, она допускает более общую семантику. Например, если первым параметром функции setf является вызов функции саг, то setf заменяет первый эле- мент списка. Если первым аргументом функции setf является вызов cdr, то заменяется хвост этого списка. Например, так. > (setf х ' (а Ь с)) ;х связывается со списком (а Ь с) > х /значение х - это список (а b с) > (setf (car х) 1) ;результат вызова функции саг для х соответствует 1 /адресу в памяти > л /функция setf изменила значение первого элемента х (1 Ь с) > (setf (cdr х) '(23)) (2 3) > х /теперь у х изменился хвост (1 2 3) Функцию setf можно вызывать для большинства форм LISP, соответствующих адресу в памяти. В качестве первого параметра могут выступать символы и функции, в частности, car, cdr и nth. Таким образом, функция setf обеспечивает большую гибкость при соз- дании структур данных LISP, управлении ими и даже замене их компонентов. 15.1.9. Определение локальных переменных с помощью функции let Функция let — это еще одна полезная форма явного управления связыванием перемен- ных. Она позволяет создавать локальные переменные. В качестве примера использования функции let рассмотрим функцию вычисления корней квадратного уравнения. Функция quad-roots зависит от трех параметров а, Ь и с уравнения ax‘+bx+c=0 и возвращает спи- сок, состоящий из двух корней этого уравнения. Корни вычисляются по формуле у _ -Ь±Уьг -4ас 2а Например, так. * (quad-roots 121) (~L0 -1,0) * (quad-roots 168) (-2,0 -4,0) ыки и технологии программирования для искусственного интв^ Г/1ааа15. Введение в LISP 703
При вычислении значения функции quad-roots значение выражения \4>2 -4я7 используется дважды. Из соображений эффективности и элегантности Зн вычислить один раз и сохранить его в локальной переменной для вычИсл ^еНие М°^о ней. Поэтому исходная реализация функции quad-roots может иметь такой °б°ИХ (defun quad-roots-1 (a b с) (setq temp (sqrt ( - (* b b) (* 4 a c}))) (list (/ ( + (- b) temp) (* 2 a)) (/ (- (- b) temp) (* 2 a)))) Заметим, что при такой реализации предполагается отсутствие мних иения. Попытка вычислить квадратный корень из отрицательного числа KopHeii Урав- удачному завершению функции sqrt с кодом ошибки. Модификация ПрИ0Сдст к не. работки этой ситуации не имеет прямого отношения к рассматриваемом*0^ С Цель1° об- Хотя с учетом этого исключения код функции корректен, оценивание В°Пр°су- побочному эффекту установки значения переменной temp в глобалки™ 6 ПрИвеДегк > (quad-roots-1 12 1) 1 °кружении. (-1,0 -1,0) > temp 0.0 Более предпочтительно сделать переменную temp локальной для функции quad- roots и исключить этот побочный эффект. Для этого можно использовать блок let. Вот синтаксис этого выражения. (let (<локальные-леременные>) <выражения>) Элементы списка (<локалъные-переменнь1е>) — это либо символьные атомы либо пары вида (<символ> <вырахение>) При оценивании формы (или блока) let устанавливается локальное окружение, со- стоящее из всех символов списка (<локальные-переменные>). Если некоторый символ является первым элементом пары, то второй элемент оценивается, и результат оценки Э™М Символом- Символы, не включенные в пары, связываются со знача- П1 . ели некоторые из этих символов уже связаны в глобальном окружении, то глобальные связи сохраняются и восстанавливаются при выходе из блока let^ После установки этих локальных связей задаваемые вторым параметром ф jet <выражения> по порядку оцениваются в этом окружении. При выходе из возвращается значение последнего выражения, оцененного в этом блоке. Поведение блока let можно проиллюстрировать иа следующем примере. > (setq а 0) 0 > det ((а 3) Ь) (setq Ь 4) (+ а Ь) ) > а 0 > Ь ERROR - bis not bound at top level. _—'"'L ________________________________ 704 Часть VI. Языки и технологии программирования ДЛЯ искусе В этом примере до выполнения блока let переменная а связана со значением о а Ь- не связана на верхнем уровне окружения. При оценивании формы let а связывается со значением 3, а Ь — с nil. Функция setq присваивает переменной Ь значение 4. после че- го оператор let возвращает значение суммы а и Ь. После завершения работы формы let восстанавливаются предыдущие значения переменных а и Ь, в том числе несвязанный ста- тус переменной Ь. С помощью оператора let функцию quad-roots можно реализовать без глобаль- ных побочных эффектов. (defun quad-roots-2 (а Ь с) (let (temp) (setq temp (sqrt (- (* (list (/ (+ (- b) temp) (/ (- (- b) temp) ( b b) (* 4 a c)) ) ) (* 2 a)) * 2 a))))) Переменную temp можно также связать при ее объявлении в операторе let. Это обеспечит более согласованную реализацию функции quad-roots. В этой окончатель- ном версии знаменатель формулы 2а тоже вычисляется однократно и сохраняется в ло- кальной переменной denom. {defun quad-roots-3 (a b с) i (let ((temp (sqrt (- (* b b) (’ 4 a c)))) {denom (* 2 a) ) ) (list (/ (+ (- b) temp) denom) (/ (- (- b) temp) denom)))) Помимо устранения побочных эффектов версия quad-roots-З наиболее эффек- тивна среди всех реализаций, поскольку в ней отсутствуют повторные вычисления оди- наковых значений. 15.1.10. Типы данных в Common LISP Язык LISP включает большое количество встроенных типов данных. К ним относятся целые числа, числа с плавающей точкой, строки и символы. В LISP также содержатся та- кие структурированные типы, как массивы, хэш-таблицы, множества и структуры. Со всеми этими типами связаны соответствующие операции и предикаты проверки при- надлежности объектов данному типу. Например, для списков поддерживаются функции идентификации объекта как списка listp, определения пустоты списка null, а также конструкторы и функции доступа list, nth, car Hcdr. Однако в отличие от таких строго типизированных языков, как С или Pascal, в которых проверка типов всех выражений может быть сделана до начала выполнения программы. в LISP типы относятся к объектам данных, а не к переменным. Любой символ LISP можно связать с любым объектом. При этом программист получает возможности типизации, ие ограничивая гибкость работы с объектами различных или даже неизвестных типов. Напри- мер, любой объект можно связать с любой переменном во время выполнения программы. Это позволяет определять такие структуры данных, гак фреймы, без полной спецификации топов хранящихся в них значений. Для поддержки этой гибкости в LISP реализована про- «рга соответствия типов во время выполнения программы. Таким образом, если связать "'ременную с символом и попытаться некорректно использовать это значение во время выполнения программы, интерпретатор LISP выдаст ошибку ГЛЭВа 15- Введение в LISP
> (setq x 'a) a > (+ x 2) _ . _ > > Error: a is not a valid argument to > > While executing: + Пользователи могут реализовывать свои собственные функции проверки соо вия типов на основе встроенных или пользовательских предикатов. Это позволяет^10* делать ошибки, связанные с использованием типов. °пре- Этот раздел не претендует на полное описание возможностей LISP. Автор Л11 рался ознакомить читателя с интересными свойствами языка, которые будут (1С1ЩЬ ваться при реализации структур данных и алгоритмов искусственного интеллекта ЛЬЗ°' свойствам относятся следующие. ' ')т,,м 1. Естественная поддержка абстрактных типов данных. 2. Использование списков для создания символьных структур данных 3. Использование функции cond и рекурсии для управления программой 4. Рекурсивная природа списочных структур и рекурсивные схемы управления ими 5. Использование функций quote и eval для управления оцениванием форм 6. Использование функций set и let для управления связыванием переменим, .. побочными эффектами. h манных и В оставшейся части этой главы эти идеи использованы для иллюстпагшн пр» . дач искусственного интеллекта на языке LISP в том числТРеше»™ за- поиска и проверки соответствия шаблонам. ’ реализации алгоритмов 15.2. Поиск в LISP: функциональный подход к Г™ Задачи пеРепРавы человека, волка, козы и капусты И1те-:пекпи1а языке LISP^<RpntT.,,,?3MOi^HOeni пРогРаммного решения задач искусственного Человеку греб^,’ „ " Пере8°ЗИ' ЧМОвеКа’ВОЛКа’ К03Ы И гапУсты' На берегу реЫ1 _',еРга_Р«ку и перевезти с собой волка, козу и кащиу. может перевозшъ не более двух п1г°Т°Р0Н Д0Лжен Управлять человек. Лодка одновременно регу с козой, то он ее съест Если СаЖирой (включая лодочника). Если волк останется на бе Требуете, Ифа6огать ™ „а берету с капустой, то она уничтожит кз* ы все четыре пассаищра были nePeiIPaRK,! через реку таким образом, что Решение этой задачи еНЬ' В ПСЛ0СТИ и сохранности на другой берег рек» на языке LISPHLZTL^?L0Ci бЫЛ° °ПИСадо в Р33^ 14.3. При программной налытп°Л1еИ С реШением на PROLOG * Т°М ЖС пРОС7ранотве. Но наряду со стрУ^Г ДЛЯ пХпг^ИеНТаЦНЮ ЭТог° «зыка плот Программная реализация на LISP отражает функим<> ,ШИ™ “““•Здмь рак-nuJX прогРаммЬ1 является наб^П CKtI П0СС1ценнь,л состояний. , , ГРаммных k ~ В Этих Функц11ях опРеде;1»юших состояния мира как а мпонентов более высокого^^''^ пРсдставление состояний скрыто от --------_____ °КОГ0 УРО*”*- Состояния представляются в виде 6 ЧаСТьМ^зь^^^------------------------------------------------' программирования искусственного интеД^1 из четырех элементов, в которых каждый компонент обозначает местоположение человека, волка, козы и капусты соответственно. Так, список (е w е w) задает состояние, при ко- тором человек (первый элемент) и коза (третий элемент) находятся на восточном берегу, а волк и капуста на западном. Базовыми функциями, определяющими состояние данных этого типа, являются конструктор make-state и четыре функции доступа farmer- side, wolf-side, goat-side и cabbage-side. Параметром конструктора является местоположение человека, волка, козы и капусты. Эта функция возвращает состояние. Па- раметрами функции доступа является состояние, а возвращаемым значением — местопо- ложение объекта. Эти функции можно определить так. (defun make-state (f w g с) (list f w g c)) {defun farmer-side (state) (nth 0 state)) (defun wolf-side (state) (nth 1 state)) (defun goat-side (state) (nth 2 state)) (defun cabbage-side (state) (nth 3 state)) Оставшаяся часть программы основывается на этих функциях. В частности, они при- меняются для реализации четырех возможных действий человека: переправы через реку в одиночку или с одним из пассажиров. При каждом переходе в новое состояние функции доступа используются для разделе- ния состояния на его компоненты. Функция opposite (которая вскоре будет определе- на), задает новое местоположение объектов, пересекающих реку, а функция make- state— трансформирует его в новое состояние. Например, функцию farmer- takes-self можно определить так. (defun farmer-takes-self (state) (make-state (opposite (farmer-side state)) (wolf-side state) (goat-side state) (cabbage-side state))) Заметим, что эта функция возвращает новое состояние без учета его безопасности. Состояние является небезопасным, если человек оставит на берегу' козу с капустой или волка с козой. Программа должна найти путь решения, не допускающий “опасных * со- стояний. Проверку состояния на его “безопасность” можно проводить на многих этапах выполнения программы. Мы будем выполнять ее в функциях перемещения с помощью формы safe, которая вскоре будет определена. Вот пример ее использования. > (safe '(w w w w) ) /состояние безопасно, возвращается без изменений (w W w w) > (safe * (е w w е) ) ,-волк съест козу, вернуть nil nil * (safe ' (w w e e)) /коза съест капусту, вернуть nil Функция safe используется в каждой возвращает состояний. Так, любой переход, приводяши вычисления пути проверяет не это состояние, а значение nil. Рекурсивный^^ это состояние. Таким обра- возвращаемое значение, и, если оно равно ni . L ^ловия до определения возмож- ем функция safe обеспечивает реализацию проверки уш Глава 15. Введение в LISP 707
hocth применения правила перехода. Этот стиль используется при Со онных систем. С учетом функции safe четыре формы перехода прОй, дуюшим образом. Н° опРедзди^<- (defun farmer-takes-self (state) (safe (make-state (opposite (farmer-side state)) (wolf-side state) (goat-side state) (cabbage-side state))\i (defun farmer-takes-wolf (state) (cond ((equal (farmer-side state) (wolf-side st (safe (make-state (opposite (farmer^®? (opposite (woTf-si^^)) 9oat-side state) Stat«H (cabbage-side state))), nil > (setq |3 |1) (1 2 3) > (eq |1 |3) t (t nil))) ,de£^^erf9a-er-siadeSs-te) (goat-side state), (safe (make-state (opposite (farmer-side state}) (wolf-side state) (opposite (goat-side state)) (cabbage-side state)))) функция safe определена на основе формы cond. Это позволяет проверить два “опасных’ условия: человек расположен на противоположном берегу от волка и козы, и че- ловек находится на противоположном берегу от козы и капусты. Если состояние безопасно, функция safe возвращает его неизменным, в противном случае она возвращает nil. (goat-side state) (wolf-side state)) (farmer-side state) (wolf-side state)))) nil) (goat-side state) (cabbage-side state)) (defun safe (state) (cond ((and (equal ; волк съест козу (not ( (and (equal (equal , i , j- . ; коза съест капусту (farmer-side state) (goat-side state)))) nil) (t state))) (t nil))) (defun farmer-takes-cabbage (state) (cond ((equal (farmer-side state) (safe (make-state (cabbage-side state) ) (opposite (farmer-side state)) (wolf-side state) (goat-side state) (opposite (cabbage-side state))) ) ) (t nil))) Деления, находятся ли Перехода вклк>чают проверку условия для опре- реки. Если нет, то эти в предПолагаемьгй пассажир на одном и том же берегу представленные выше формы -Воааращают nil- В функциях перехода используются вращающая местоположение ° Раоотки состояний, а также функция opposite, вот opposlte про™оположн°е (СОМ <<е™а1 -е) в USp сувдс^ Jal side 'W> '«>» б°лее ,|ростой — eq — возвпашХ *>азличиых предикатов для проверки равенства Н“* <енты соответствуют одноми Т значенне “истина*’ только в том случае, если ™™Пам»™* Более сложи “7яВН™’У Же О6И1ЯУ. указывают на одну и ту *е аргументы должны быть синта^01051 Лреднкат e<?ual, для истинности которой 8 ксически идентичными. I ) Функция path реализует поиск с возвратами в пространстве состояний. Ее аргумен- тами являются исходное и целевое состояния. Сначала проверяется равенство этих со- стояний. Если они равны, то поиск завершается успешно. Если эти состояния не равны, функция path генерирует все четыре соседних состояния на графе состояний и рекур- сивно вызывает сама себя для каждого из них, пытаясь найти путь к цели. Это определе- ние на LISP можно записать так. (defun path (state goal) (cond ((equal state goal) 'success) (t (or (path (farmer-takes-self state) goal) (path (farmer-takes-wolf state) goal) (path (farmer-takes-goat state) goal) (path (farmer-takes-cabbage state) goal))))) Эта версия функции path представляет собой простой перевод рекурсивного алгорит- ма поиска пути с “человеческого” языка на LISP. Она содержит несколько ошибок, кото- рые необходимо устранить. Однако эта версия отражает основную структуру алгоритма, поэтому до начала устранения ошибок ее следует проанализировать подробнее. Первый оператор cond служит для проверки успешного завершения алгоритма поиска. При соот- ветствии исходного состояния целевом)' equal state goal рекурсия прекращается и возвращается атом success. В противном случае функция path генерирует 4 дочерних утла на графе поиска, а затем вызывает сама себя для каждого из этих узлов. Обратите внимание на использование формы or для управления оцениванием аргумен- <!(Гз? 11 412 12 ,(12 * (equal |1 |2) > le4 |1 (2) 3)) тов, Напомним, что функция or оценивает свои аргументы до тех пор. пока один из них не возвращает значение, отличное от nil. В этом случае вызов функции or прекращается, остальные се аргументы не оцениваются, а результатом считается это ненулевое значение. аким образом, функция or не только используется как логический оператор, но и обеспе- чивает способ управления ветвлением в пространстве поиска. Здесь применяется форма or, а не cond, поскольку проверяемое и возвращаемое ненулевое значение совпадают. Неудобство этого определения состоит в том, что функция перехода может возвращать значение nil, если переход невозможен или ведет к “опасном)” состоянию. Чтобы предот- ратить генерацию узла-потомка для состояния nil, необходимо сначала проверить, является Л11 текущее состояние нулевым. Если да, то функция pa th должна возвращать ni 1. 708 ----------------------------------------------------- ОГИИ программирования для искусственного лТ<* Глава 15. Введение в USP 709
{cons state been-list))} :test if 'equal) ) state) goal goal goal state) state been-list)) state been-list)) state been-list)) ) ) ) ) , ,„„M решения при реализации функции path „ с . раним вопросом, требуют У нствс поиска. Через несколько ша ' X°= noTeHU»“b"b,XU"^ человек будет возить себя самого е одного «Ч выямен^ функции path чс бесКОНечныи цикл между идент11Чи ₽егЧ S няни, которые уже былнпо been-list,представляющий Ы X path нужно Д«й»ХХдом рекурсивном вызове функции path ,та „ *< ХшевиыД ^»»ни 'ское соХие будет добавляться в синеок been-li8t. стояния мира родительски со соСТОЯНИЯ можно использовать Пред , * Гво^ХХниеФУН--3^ (de£un path (cond ((null ^taaoai) (reverse (c SXr state been-list ‘(no(or”'(path ‘^h *farmer-ta)<es-goat state) !=X XeSX bbage state) goal (cons state been-list)))))) Здесь member - это встроенная функция Common USP. которая ведет себя так же, как и пользовательская функция my-member, определенная выше в этой главе. Еип. венным различием между этими функциями является включение в список вртумеит» параметра • test S-equal. В отличие от “доморощенной функции my-member.та- кая форма позволяет программисту указать функцию, которая будет использоваться да проверки принадлежности элемента списку. Это повышает гибкость функции, во не > рает существенной роли в настоящем обсуждении. Вместо того, чтобы возвращать атомарное значение success, лучше передавать ю функции найденный путь решения. Поскольку последовательность состояний в путн ре щения уже содержится в списке been-list, список возвращается в новой версии функции. Поскольку этот список построен в обратном порядке (начальное состояние яв ляется его последним элементом), ои сначала обращается (перестраивается в р порядке с использованием встроенной функции LISP reverse). И, наконец, поскольку параметр been -1 i sp желательно скрыть от пользова j лесообразно создать вызывающую функцию верхнего уровня, параметрами котор дуг являться начальное и целевое состояние. Она будут вызывать функцию pat чением параметра been-list равным nil. (defun solve-fwgc (state goal) (path state goal nil) ) 1£03Ы Давайте сравним версии программ решения задачи перевозки человека, вол » в капусты, написанные на LISP н PROLOG (программа на PROLOG опи разделе 143), Программа на LISP не только решает ту же задачу, но и выполи в том же пространстве состояний, что и версия иа PROLOG. Это служит п0ДТ Lrpea- ем той мысли, что концептуализация задачи в пространстве состоянии не заы дНяют лизации программы поиска в этом пространстве. Поскольку обе программы оиск в одном и том же пространстве состояний, эти реализации имеют Часть VI, Языки и технологии программирования для искусственного Различия между ними очень тонки, но позволяют подчеркнуть разницу между деклара- тивным и процедурным стилями программирования. Состояния в версии PROLOG представляются с помощью предиката state(е,е,е,е), а в LISP задаются с помощью списка. Эти два представления не просто являются синтакси- ческими вариациями друг друга. Представление состояния в LISP определяется не только синтаксисом списков, но и функциями доступа и переходов, описывающими абстрактный тип данных состояние . В версии PROLOG состояния являются шаблонами. Их значение определяется способом проверки соответствия другим шаблонам правил в PROLOG, кото- рые тоже могут быть списками. Версия LISP функции path несколько длиннее, чем ее реализация на PROLOG. Эго свя- зано с тем, что на LISP приходится реализовывать стратегию поиска, в то время как PROLOG использует встроенный алгоритм поиска. Алгоритм управления в LISP задается явно, а в PROLOG неявно. Поскольку PROLOG строится на декларативном представлении и ме- тодах доказательства теорем, написанные на нем программы более лаконичны и напоминают описание предметной области задачи. В них алгоритмы поиска не нужно реализовывать на- прямую. Обратной стороной медали является “сокрытие” поведения программы, определяе- мого встроенными стратегиями вывода PROLOG. Кроме того, над программистами “довлеют” формализм представления и стратегии поиска, заложенные в PROLOG. В свою очередь, LISP допускает большую гибкость в представлении и свободу действий программи- ста. Однако здесь программисту приходится явно реализовывать стратегию поиска. 15.3. Функции и абстракции высшего порядка Одним из главных преимуществ LISP и других функциональных языков программи- рования является возможность определения функций, параметрами которых являются другие функции, а также функций, возвращающих функцию в качестве результата. Такие функции называются функциями высшего порядка (higher-order functions) и составляют важное средство реализации процедурной абстракции. 15.3.1. Отображения и фильтры Фильтр (filter) — это функция, проверяющая элементы списка на предмет соответст- вия некоторому условию и удаляющая “отбракованные” элементы. Примером фильтра является описанная выше в этой главе функция filter-negatives. Отображения (тар) — выполняют некоторые действия над списком объектов данных и возвращают список результатов. Эту идею можно развить и ввести понятия обобщенных отображе- ний и фильтров, подунаюших в качестве параметров списки и функции и проверяющих применимость функций к элементам списков. В качестве примера рассмотрим упомянутую в подразделе 15.16 функцию til ter- negatives. ЕЙ в качестве параметра передается числовом список, а в результате ее вы- полнения возвращается этот же список, но без отрицательных элементов. Аналогично можно определить фуикцию-фильтр для удаления четных чисел из списка (defun filter-evens (number-list) ;условие останова (cond ((null number-list) nil) ((oddp (car number-list)) ---------------------------------------------------- 711 Глава 15. Введение в LISP
(cons (car (£Ute—«3 (t ‘filce^^ns^edr number-list))))) Функции отличаются друг от друга только именем предика Поскольку эти функц СПИСка, логично объединить их в единуюСпЧ- зуемого ртоом которой является предикат-фильтр. УН> Функц^ ’"СХХап. з *орм“ USP fUnCa11’Парамстрамн «порой С ф^Х^едовагеяьпость аргумент, к которым эта функция н прймекяе^- (,de£un (cond <<nul* -7* (car ust-of-elements) ) U U?cons (car list-of-elements) (filter (cdr list-of-elements) test)) ) (t (filter (cdr list-of-elements) test)))) функция filter проверяет условие test для первого элемента списка. Если,, зультат проверки отличен от nil. он добавляется к результату фильтрации хвостасгаад с помощью фуикшш cons. В противном случае возвращается отфильтрованный хвсс списка. При использовании этой функции ей можно передавать в качестве параметр различные предикаты. Тогда она будет решать разные задачи фильтрации. > (filter '(1 ; Фильтрация ; отрицательных чисел -7 6) #'plusp) -9 5 -2 3 (1356) > (filter '(123456789) #’evenp) (2 4 6 8) > (filter ' (1 a b 3 с 4 7 d) #'numberp) (1347) ;Фильтрация всех ; нечетных чисел ; Фильтрация нечисловых ; элементов списка ри передаче функции в качестве параметра, как в приведенном примере, перед ее де нем нужно указывать # , а не просто символ '. Это делается для того, чтобы интерпретатор /hvHinM°r С°°тветствуюишм °бразом обрабатывать этот аргумент. В частности, при передаче ных (рг-тВ-^а?ССТВе ПаРаметРа в Common LISP сохраняются все связи ее свободных перемен- бодных npTvn0ВЫе существУют^ Такое сочетание определения функции со связыванием сео- етингерппетатанТср336^^ лексг™ескил1 замыканием (lexica) closure). Флаг #' уведоми- функцию. БолеестрогхЛ^г ХТ1ИМ0С11’ пос1Роения лексического замыкания и передачи его’ 1 runcall определяется следующим образом. (funcall <фуНКЦ1Я> <арГ1 > < ар^ > < арг„ >} Ложа1ДеЛСН л <ФУНК1^ ~ ™ LISP> а вызова ФуНКЦИИ‘ РезУЛЬтат оценивания funcall совпадает с Pe3^?L. ческих параметров/НЛ1/ВД>’ ССЯИ указаинЬ1е аргументы передаются ей в качестве ф дават^^вд^с^^ту ЖС задач* ™ н funcall, но ее аргументы и funcall. Ппогоаммм дансгвенное синтаксическое отличие между функция» функции аналогичны Ж СТ М0Жег выбиратъ одну из функций по своему УсМОТрсН11|йаа0 оцениванием функций Ра/// SVa1, поскольку все три позволяют пользователю Я а1 азадчие между ними состоит в том, что параметрами функЮ«‘е гни программирования для искусственного ият< являются оцениваемые s-выражсния, а функциям annl v « 1 „ Я „чпзшн™., Rrvr «линям apply и tuncall передаются сама функ- ция и ее параметры. Вот примеры использования этих функций. > (funcall #'plus2 3) I (apply #'plus'(2 3)) > (eval '(plus 2 3)) \ (funcall #'car ' (a b c)) a > (apply #'car '((a b c))) a Еще одним важным классом функций высшего порядка являются отображения, т.е. функ- ции, применяющие заданную функцию ко всем элементам списка. На основе funcall мож- но определить простую функцию-отображение map-simple, возвращающую список резуль- татов применения некоторого функционала ко всем элементам исходного списка. (defun map-simple (func list) (cond ((null list) nil) ((t (cons (funcall func (car list)) (map-simple func (cdr list)))))) > (map-simple #'1+ '(12345 6)) (234567) > (map-simple tt'listp (12 (34) 5 (678))) (nil nil t nil t) Это упрощенная версия встроенной в LISP функции mapcar, допускающая исполь- зование нескольких списков аргументов. Тогда к соответствующим элементам несколь- ких списков можно применять функции нескольких аргументов. > (mapcar #' 1+' (1 2 3 4 5 6) ) ;та же Функция, что и map-simple (234567) >(mapcar #'+'(1234) '(5678)} (6 8 10 12) > (mapcar #'max'(3917) '(2568)) (3968) Функция mapcar — лишь одна из многих встроенных функции-отображении в LISP, а значит, одна из многих функций высшего порядка. 15.3.2. Функциональные аргументы и лямбда-выражения В предыдущих примерах аргументы-функции передавались по имени и применялись к другим аргументам. Для этого функции-аргументы нужно было определять заранее в гло- бальной среде. Однако зачастую желательно передавать в качестве параметра само определе- ние функции, не определяя ее глобально. Осуществить это позволяют ткибдачзыражения. Выражение lambda позволяет отделить определение функции от ее имени. Истоки лям- бда-выражений связаны с дяибда-исчиаениеи (lambda-calculus) математической моделью вычислений, обеспечивающей (среди всего прочего) особенно четкое разграничение между Хектом и его именем. Синтаксис лямбда-выражения аналогичен определению функции de- fun, однако имя функции здесь заменяется ключевым словом lambda. -----------------------------—------------------ 713 Глава 15. Введение в LISP
,1а^ «формаль^е-раме^) — > (lamoao „^пользовать вместо имени функции r Лямбда-выражения funcan выполнит тело лямбда-выраже„^Ц*%,, £иПСа11ы’бХ₽свя»н“ с параметрами funcall. Как и при использований ф’" к^ества формаХх и фактических параметров должны совпадать. Наприм "TfuZall #'(lambda (х) (* х х>) 4) Лямбд,. Здесь „ерем^ая >™ч..ВМу, «ч > (apply #'(lambda (х у) (+ (* х х) у) ) (2 3)) Z (funcall #’ (lambda (х) (append х х) ) ' (а Ь с) ) >a(f^call #’ (lambda (xl х2> (append (reverse xl) х2>) - (а ь с) '(de f) ) (с b a d е f) Лямбда-выражения можно использовать и в функциях высшего порядка наподобие шарсаг вместо имени глобально определенной функции. Вот пример. >(шарсаг #' (lambda (х) (* х х) ) '(1 2 3 4 5)) (1 4 9 16 25) > (шарсаг #'(lambda (х) (* х 2)) '(12345)) (2468 10) > (mapcar #' (lambda (х) (and (> х 0) (< х 10) ) ) ' (1 24 5 -9 8 23)) (t nil t nil t nil) Если бы не существовало лямбда-выражений, программисту пришлось бы определять все функции в глобальной среде с помощью функции defun, даже если они подлежат однократному использованию. Лямбда-выражения освобождают программиста от такой необходимости. Чтобы возвести в квадрат все элементы списка, достаточно передать лямбда-форму функции mapcar. Это иллюстрируют приведенные выше примеры. При этом не нужно заранее определять функцию возведения в квадрат. 15.4. Стратегии поиска в LISP Функции высшего порядка являются мощным средством процедурной абстракции- В этом разделе приемы абстрагирования будут применяться для реализации общих алгоритмов поис- ка в ширину, глубину и жадного" алгоритма поиска, описанных в главах 3 и 4. Дня управие ния поиском в пространстве состояний будут использованы списки open и closed. 15.4.1. Поиск в ширину и в глубину качестве сто Mrop2’™a ПС11,ска в ширину базируется на использовании спи®» ZZS (0<1еРеДИ)- CnHCK" closed определяются как вать использование3/0 Несколько причин. Во-первых, мы хотим прол®' , епользование глобальных структур в LISP. Во-вторых, целесообразно Ч» программное решение на LISP с ппогпаммпй В-третьих, поскольку следует определить глобально. И, наконец списки^ П°ИСКа’ то пРостРанство поиска глобальными переменными, поскольку они могут ” Closed Р^У”110 объявить образность использования локальных и глобады^ыГ^^” боЛьшими- В целом иелесо- лизаиии конкретного языка программирования Глоб 3аВ“СИТ °Т деталей реа’ выделяются слева и справа символом * Функции nmt пеРеменные в Common LISP следующим образом. ™ иска 8 ширину можно определить (defun breadth-first ( ) (cond ((null *open*) nil) (t (let ((state (car *open*))) ( cond ((equal state -goal-) 'success) (t (setq -closed* (cons state -closed*)) setq -open* (append (cdr -open*) (generate-descendants state ‘moves*))) (breadth-first))))))) (defun run-breadth (start goal) (setq ‘open* (list start)) (setq ’closed* nil) (setq *goal* goal) (breadth-first)) В этой реализации проверяется наличие элементов в списке ‘open*. Если список пуст, то алгоритм возвращает значение nil, означающее неудачное завершение алго- ритма. В противном случае проверяется первый элемент списка *ореп*. Если он соот- ветствует целевому узлу, то алгоритм завершается и возвращает значение success. В противном случае для получения потомков текущего состояния вызывается функция generate-descendants, узлы-потомки добавляются в список ‘open*, и функция breadth-first рекурсивно вызывает сама себя. Функция run-breadth— это про- цедура инициализации, в которой задаются исходные значения переменных *ореп*. *closed* и ‘goal*. Функции generate-descendants в качестве параметров пе- редаются состояние state и список функций *moves*, генерирующих переходы. В за- даче перевозки человека, волка, козы и капусты с учетом определений переходов го раз- дела 15.2 список ‘moves* имеет вид. (setq ’moves* '(farmer-takes-self farmer-takes-wolf farmer-takes-goat farmer-takes-cabbage)) Функция generate-descendants зависит от состояния и возвращает список его потомков. Помимо генерации списка потомков она предотвращает дублирование ме- ментов в этом списке и исключает узлы, уже присутствующие в списке -open* или -closed*. Кроме состояния функции generate-descendants передается список переходов. Это могут быть имена уже определенных функций или лямбда-определения. Для сохранения результатов перехода в локальной переменной child используется блок let. Определение функции generate-descendants может иметь следующий вид. ----------------------------------------- 715 Глава 15. Введение в LISP
ICOTd,(l±i chiM retest .'equal) ; -open. ^est ((member *clos< (t (cons rest) : test .'equal) raat) child -closed* .-test .'equal) re child rest))))))) п„„ вызове функции member используется дополнительный „Пр 1 котовый впервые упоминался в разделе 15.2. Функция member L est Цтов’атояю задавать любую процедуру проверки наличия элемента в с„„СКе можно использовать предикаты любо., сложности и семантики. Од„ако^» Lgyer обязательного задания такой функции: по умолчанию используется пред,, * При использовании этого предиката два объекта считаются идентичными. есл„ о’ ,е’ нимают одно .. то же местоположение в памяти. Мы используем более слабую фу„ * сравнения equal, в которой два объекта считаются равными, если они „неют '» же значение. Поскольку глобальная переменная -moves* связывается с соответзд " шнм набором функций переходов, то описанным алгоритм поиска можно применять дц поиска в ширину на любом графе состоянии. Единственной проблемой этой реализации является невозможность вывода списка состояний, расположенных вдоль пути решения от начала и до конца. Хотя прн заверше нпи алгоритма все ведшие к цели состояния содержатся в списке *closed*, в нем также находятся все остальные состояния, пройденные на предыдущих уровнях поиска Чтобы решить эту' проблему, для каждого состояния нужно записывать и его предка Когда текущее состояние будет соответствовать целевому, информацию о предках можно будет использовать для построения пути от целевого состояния к исходному. Эта расширенная версия поиска в ширину начинается с определения абстрактного типа дан» ных записи состояния. (defun (defun (defun get-parent (state-tuple) (nth 1 state-tuple)) (defun - . . (cond ((null list) nil) build-record (state parent) (list state parent)) get-state (state-tuple) (nth 0 state-tuple) ) retrieve-by-state (state list) J n__: ..id ((equal state (get-state (car list))) (car list)) (t (retrieve-by-state state (edr list))))) Функция build-record строит пару (<соспюяниехнред<ж>). Функции get-state к get-parent обеспечивают доступ к соответствующим полям записи, функция retrieve- by state получает в качестве параметров состояние и список записей состояния, а возвра- щает запись, поле состояния которой соответствует данному состоянию. Функция build-solution использует форму retrieve-by-state для восстановле- ния родительского состояния и построения списка состояний, ведущих к целевому- При bu ’ ,ТЦИИ списка ореп* родительским состоянием для начального является ni 1- Фуни®’’ so ution прекращает свою работу после перехода к нулевому состоянию. (defun build-solution (state) (cond ((null state) nil) state ‘closed'D^D )bUild~S°lution (get“Parent (retrieve-by-state .. f СТЬ алг0РИП1а аналогична реализации поиска в ширину из раздела 3- (se^orea*th (Start 4 °РеП <Ust <build-record start nil))) bVI. Языки и технологии программирования для искусственного интелав<,г (setq *closed* nil) (setq ‘goal* goal) (breadth-first)) (defun breadth-first ( ) (cond ((null ‘open*) nil) (t (let ((state (car ‘open*))) (aetq -closed- (cons state -closed-)) statel *8Oa1-’ <t (setq -open- (append (edr -open-) ‘шо^а)ПаеЗСеП<3а“а state) (breadth-first))))))) (defun generate-descendants (state moves) (cond ((null moves) nil) (t (let ((child (funcall (car moves) state)) rest (generate-descendants state (edr moves)))) (cond ((null child) rest) ((retrieve-by-state child rest) rest) ((retrieve-by-state child ’open*) rest) ((retrieve-by-state child ‘closed*) rest) (t (cons (build-record child state) rest))))))) Поиск в глубину можно обеспечить путем модификации процедуры поиска в ширину и реализации списка open в виде стека. Для этого нужно всего лишь изменить порядок следования аргументов функции append. 15.4.2. “Жадный” алгоритм поиска “Жадный” алгоритм поиска можно реализовать с помощью простой модификации поиска в ширину. Вместе с каждым состоянием нужно сохранять его эвристическую оценку. Затем кортежи ‘open* следует отсортировать по этой оценке. Для записей со- стояний потребуются типы данных, основанные на типах данных из реализации алго- ритма поиска в ширину. (defun build-record (state parent depth weight) (list state parent depth weight)) (defun get-state (state-tuple) (nth 0 state-tuple)) (defun get-parent (state-tuple) (nth 1 state-tuple)) (defun get-depth (state-tuple) (nth 2 state-tuple)) (defun get-weight (state-tuple) (nth 3 state-tuple)) (defun retrieve-by-state (state list) (cond ((null list) nil) ((equal state (get-state (car list))) car list)) (t (retrieve-by-state state (edr list))))) Функции best-first.. generate-descendants определены следующим образом. (defun best-first ( ) (cond ((null ‘open*) nil) (t (let ((state (car ‘open !^nd ('(equa^* (get-state'state) *goal*> (build-solution •goal*)) (t (setq ‘open ------------------------------------- 717 Глава 15. Введение в LISP
.oenerate-desce^da-t s t get-s (+ 1 (get-depth state)) ’SS*) {state depth moves) — (child (rest (genera-e-de (cord I l=uli r i reur i c? * — _ p- (c-'^s (build-record chula state depth w (+ depth (heuristic child))) rest))))))> стинствпшым отличием прмкэд поиска best-first от breadth-first " функции inser-.-by-.ecSr.t для сортировки записей спад "oren* оо эвристическим весам и вычисление тонны поиска и этих весов с помощи, функция generate-descendants. _ Ди завершения процедуры поиска bes.-tcrst требуется определить фувпоы, inser-_by_weigi.-. Она получает в качестве параметра ие сортированный сшкоязг- писей состояний и вставляет их по одному в соответствующие позиции списка -орст- При этом также требуется с учетом специфики задачи определить функцию heuristic. Ее —[——гром является состояние, хтя которого вычисляется эвристический вес с но иошыогяобакьаой переменной ’goal’- Определить эти функции читателю ирсяапа- 155. Проверка соответствия шаблонам LISP Проверка соответствия шаблонам — это важная методология искусственного ннтет- лекта, которая уже была описана в главах. посвященных языку PROLOG н продушвов- ным системам. В этом разделе будет представлена реализация рекурсивной процедуры проверки соответствия шаблонам и рассмотрено ее использование для построения ф)®- пни извлечения информации по шаблону из простой базы данных. Ядром системы восстановления информации служит функция match. параметрами торой являются два s-выражения. а возвращаемым значением — t. если эти выражения со- ответствуют Друг другу. При этом оба выражения должны иметь одинаковую также содержать идентичные атомы в соответствующих позициях. Функция таС^\^ие кает использование в s-выражениях переменных, обозначенных символом ?• Пере*6®^ соответствуют любому s-выраженню (списку или атому), но не сохраняют свЯЗЫВ^^5Вя Ч« полной унификации. Ниже приводятся примеры требуемого nose-ieH,tVj'ia г12- aatch. Эти примеры напоминают соответствующие примеры на языке PROyLnorfMa вы 14, поскольку функция catch на самом деле является упрошенной версией а. Уиифнкации. положенного в основу языка PROLOG, а также многих друп« д> сгвенного интеллекта, основанных на шаблонах. В разделе 15.6 функция таСС“в^яо- до полноценной реалюацин алгоритма унификации за счет добавления во^ использования имен переменных и возвращения списка связей. 718 Часть VI. Языки и технологии программирования для искусственного иит^ ’ ,МССЬ- Hikes bill wine) lllkeB Wu , »'=atch-(likes bill wins) (iikes bill j Г (natch-(likes bill ?) • (likes fef , x _ c —e|> :гример z перемечи: > (шасси- (likes ? wine) (likes bill ?)| S ООСИЭС > (natch' (luces ?)’(likes bill (p--’cc - - __, ‘y~w-cS —a? sra___talk' > (natch'(likes ?)'(likes bill vine)) функция catch используется для определения формы get-nazc-es параметрами toTOpoH являются два s-выражения. Первый аргумент - это шаблон, с ваютст элементы второго s-выражения, предещз.тяющего coZZL^Z^Z catcnes возвращает перечень элементов списка, соответствующих „ервГму аргументу В приведенном ниже примере функция get-=atches используется для взвмииза! писей из оазы данных сотрудников, описанной выше в этой ням Поскольку база данных велика и содержит относительно сложные s-выражения ее целесообразно связать с глобальной переменной -database* в использовать эту пере- менную в качестве аргумента функции get-matches. Это существенно повышает чи- табельность примеров. > (setq 'database* '(((lovelace a da) 50000.00 1234) Кtuning alan) 45000.00 3927) ((Shelley eary) 35000.00 2850) ((vonNeumann john) 40000.00 7955) ((Si3»n herbert) 5QGQ0.QC 1374) Umccarthy john) 48000.00 2864! Hrusseil bentrand) 35CIC . licl 'database* > (get-matches '((taring alan) 45000.00 3927) 'database' ((taring alan) 45000.00 3927) > (get-matches • (? 50000.GC ?) «database') гвсе сотрудники с зарплатой 50С00 (((lovelace ada) 50000.00 1234) ((sison herbert) 5C0QC.Q2 1374)) > (get-matches '((? John) ? ?) ’database*) /все сотрудники с именем зсЬп (((vonNeumann John) 40000.00 7955) ((accarthy john) 48000.00 2864)) Функция get-matches реализована рекурсивно. Это обеспечивает поиск элемен- тов, соответствующих первому аргументу (шаблону). Все элементы базы данных, соот- ветствующие этому шаблону, объединяются с помошыо функции cons и передаются в качестве результата. Определение функции get-matches имеет следующий вид- ((defun get-matches (pattern database) (cond ((null database) ( )) соответствие найдено, добавление к результату ((match pattern (car database)) (conf (car database) (get-matches pattern. (cdr database)))) . . (Cdr- database)))) > (t (get-matches pa--®-- 719 Гдава 15. Введение в LJSP
Основой дайной системы является функция match- Она ирелс!а„пя„ co8oj. наделяющий. соогеиствуют ли друг другу s-выражения с переменна,ми. РаЛи,. S «война на утверждении. что два списка соответствуй друг друр, случае. если друг другу соответствуют их голова, к хвосты. Поэтому дад реапИза7®ЛЬ|'“Ю., алгоритма применена рекурсивная схема car cdr. Рекурсия завершаете,, когда пп Аа*”»го гуменгов сдастся атомом (в том числе пустым списком nil, который м,Ие И менно и атомом, н списком). Если оба аргумента представляют собой один и тот же °ЛНовРе- один из шаблонов представляет собой атомарную переменную ? (соотоегстцувдцЛ^4^ вольному шаблону), то рекурсия завершается успешно. В противном случае 11роЛ^ ветствкя завершается с отрицательным результатом. Заметим, что если один из щабРКа СОот’ дяется переменной, то второй необязательно должен быть атомарным, поскольку пе Я°Н°8 ®’ могут соответствовать в-вьгражешшм произвольной сложности. у Ранные Поскольку обработка условий завершения очень сложна, то в реализации Л match используется функция match-atom, зависящая от двух аргументов один из которых является атомом. Она и проверяет соответствие шаблонам сложность реализации процедуры скрыта в функции match-atom, структура цКОль^ car-cdr в функции mat ch выглядит более наглядно. РекУрсиц (defun match (patternl pattern?) (cond (or (atom patternl) (atom pattern?));один из шаблонов (match-atom patternl pattern?)) ;вызов match-atom ~ aroa ;в противном случае (t (and (match (car patternl) (car pattern?) ) , ; пРоверка соответствия car « (match (cdr patternl) (cdr pattern?) ))))) Ca .-cdr При реализации функции match-atom учитывается тот факт, что при вызове этой функции один из ее аргументов — атом. Благодаря этому предположению упрощается ™Т” Друг поскольку требуется лишь удостовериться, ... представляют собой одни и тот же атом (возможно, переменную). Эта футе- мии из нто Т иеуда4ей' еслн шабл0™ представляют собой различные атомы либо ответствие неат“'арным- Если первая проверка завершается неудачей, то со- пемекной Эта п-Г' М°ЖеТ ыть Д°стн['нуго, только если один из шаблонов является ас- наконец, функция°"1г’1аь1вС?МЯеТ заключительнУю часть определения функции. И. пепеменнлй р предназначена для проверки того, является ли шаблон ет дальнейшее пяс Пере”енных как экземпляров абстрактного типа данных улроша- кованные перемм^пХб!^™ <НапримеР' Распространение этой функции нам- . (л , тому, как это было реализовано в языке PROLOG). “tCh;at™ (patternl pattern?) (or (equal patternl pattern?1 « (variable-p oattorn), ‘ •'шаблоны совпадают, или (defun <variat>le-p pattern^))) ;один И3 НИХ явяяе'гся переменно'• иапаЫе-р <х| (equal х '?)) 15.6, Рекурсивная функция унификации ______________________—" -,»п-?.и‘ПЖЛе 15 5 рсал“зова« рекурсивный апгортм проверки соотвегстаия шаб*^',',Х звовякшцшвключай в шаблоны неименованные переменные. Расширим^^^^^ асть VI. Языки и технологии программирования для искусственного и ыу до реализации полного алгоритма унификации, описанного в главе 2. Функция uni f у до- пускает использование именованных переменных в обоих выражениях и возвращает список связанных переменных, соответствующих данному шаблону. Э» функция унификации со- с^авляет основу систем вывода, которые будут разработаны ниже в стой главе. Как и в разделе 15.5, будем рассматривать шаблоны, представляющие собой константы, переменные или списочные структуры. В полном алгоритме унификации переменные могут отличаться Друг от друга своими именами. Именованные переменные логично представлять в виде списков (var <имя>), где имя— это, как правило, атомарный символ. Примерами до- пустимых переменных являются (var х), (var у) и (var newstate). Параметрами функции unify являются два шаблона, подлежащих сравнению между собой, и набор подстановок (связанных переменных). В общем случае при первом вызо- ве функции это множество будет пустым (nil). Если проверка соответствия завершается успешно, функция unify возвращает множество подстановок (возможно, пустое), необ- ходимых для соответствия шаблону. Если соответствия не найдены, то функция unify возвращает символ failed. Значение nil используется для обозначения пустого мно- жества подстановок, т.е. соответствий, не требующих никаких подстановок. Вот приме- ры использования функции unify. > (unify'(Р a b) ( ) ) ; возвращает подстановку ;b для переменной > (unify' (P (var y) b)'(p > (unify' (P b) ((var y) • ;переменные в обоих шаблонах { )),-переменная, связанная ;с более q а (var у))) .•сложным шаблоном > (unify'(р а)'(р а) ( )) ;nil означает, что подстановки не требуются nil > (unify '(pa) '(q а) ( ) ) .•возвращает атом .•failed, означающий ;неудачное завершение , например. в выраже- failed) patternl pattern? •проверка на наличие переменной pattern? patterns failed , _ Обратите внимание на использование в этих вызовах символа . ими ((var х) .Ь). Это обозначение будет обсуждаться после описания функции unify. В ней, подобно системе проверки соответствия шаблонам из раздела 15-5. исполь- зуется схема рекурсии car-cdr. (defun unify (patternl pattern? substitution-list) (cond ((equal substitution-list 'failed) 'failed) ((varp patternl) (match-var 0 substitution-list)) ((varp patterns) (match-var substitution-list)) ((is-constant-p patternl) (vuuu (t 'failed))) ((is-constanc-f p-.___ (cond | (equal patternl pattern?) substitution (t 'failed))) ((is-constant-p pattern?) 'failed) (t (unify (cdr patternl) (cdr pattern?) 721 Глава 15. Введение в LISP
(unify (car pattern!) (car patted) substitution-list))) сначала проверяется соответствие списка полг^. пр., вызове.функции un^ „ гом случае. ссли значению «а11еАмух шаблонов завершается неудачно. При выполнении з?' ц„„ начальных “““^Гначенне failed- условия функция возвр йюнов яшяегся „еременной, вызывается функция match-v» -—£-===”= '““^элементом оператора cond является декомпозиция задачи по дереву сии^чада гооводаггся унификация первых элементов с помощью связанных перемер ГсХ подХовкн substitution-list. Результат передается в качестве третьей, « функции unify для унификации хвостов списков шаблонов. Это позволяет испо* зовать подстановки переменных, сделанные при проверке соответствия первых элементе.,, и Хрять вхождение этих переменных в оставшейся час™ обоих шаблонов. Вот пример определения функции match-var. , (defun match-var (var pattern substitution-list) ! (cond ( (equal var pattern) substitution-list) (t (let ((binding (get-binding var substitution-list))) (cond (binding (unify (get-binding-value binding) pattern substitution-list)) ((occursp var pattern) 'failed) (t (add-substitution var pattern substitution-list))))))) Эта функция сначала проверяет соответствие переменной шаблону. При самоунифи- кацни переменной подстановки не требуются, поэтому список substitution-list возвращается неизменным. Если параметры var и pattern не совпадают, выполняется проверка связанности пере- менной. Если переменная связана, то функция unify рекурсивно вызывается для проверки соответствия значений указанному шаблону pattern. Заметим, что значение связанной пе- ременной может был. константой, переменной или шаблоном произвольной сложности. По- этому для завершения проверки требуется вызов полного алгоритма унификации. I Если переменная var не связана ни с какими значениями, вызывается функция ос- ) cursp, с помощью которой проверяется наличие var в шаблоне pattern. Проверь вхождения (occurs check) необходимо выполнять для предотвращения попыток унифи кации переменной с содержащим ее шаблоном, которые могут привести к появлению циклов. Например, если переменная (var х) связана с выражением (Р (var х)).то любая попытка применения этих подстановок к шаблону приведет к бесконечному и,,к лу. Если в шаблоне pattern встречается фрагмент var, функция match-var возврз щает значение failed. В противном случае новая пара подстановки добавляется в сп сок substitution-list с помощью функции add-substitution. функции unify И match-var составляют основу алгоритма унификации. НИ описаны функция occursp (выполняющая проход по дереву шаблона в поисках в• дении в него заданной переменной), varp и is-constant-p (проверяющая, чемi Гн L»AiyMeHT: Перемснной или константой). Затем будут рассмотрены функции обра КИ множества подстановок. tdefvn occursp (var pattern) (cond ((equal var pattern) t) ((or (varp pattern) ft for (occursp var (ca^ p«t^f (defun is-constant-p Хх'Г Patte™> > > 1 >: (atom item)) pattern)) (defun varp (item) (and (listp item) (equal (length item) 2) (equal (car item) 'var))) Множества подстановок можно ппедстанит». n ™ substitutions, get-binding и binding-value. Асеоцнатив^йТцнсок- £o список записей данных иди пар мюч-знячетие (key/data). Первый элемент каждой запи- си - это ключ для ее восстановлен,и, а оставшаяся часть записи содержит данные кото- рые могут представлять собой либо список значений, либо отдельный атом. Извлечение данных осуществляется с помощью функции assoc, параметрами которой являются КЛЮЧ и ассоциативный список, а возвращаемым значением — первый элемент ассоциа- тивного списка, соответствующий данному ключу. При вызове функции assoc можно дополнительно указать третий аргумент, означающий тип проверки, используемой для сравнения ключей. По умолчанию для проверки в Common LISP используется функция eql, согласно которой равенство двух аргументов означает, что они указывают на один и тот же объект (т.е. занимают одну и ту же область памяти или принимают одинаковое числовое значение). При реализации множеств подстановок будем использовать менее жесткий тест equal, проверяющий синтаксическое соответствие аргументов (идентичность имен). Приведем примеры использования функции assoc. > (assoc 3 '((la) (2 b) (3 с) (4 d)) ) (3 с) > (assoc 'd ' ((a b c) (b c d e) (def) (c d e) ) :test S'equal) (d e f) > (assoc 'c '((a . 1) (b . 2) (c .3) (d . 4)) :test #’equal) (c . 3) Заметим, что функция assoc возвращает всю запись, соответствующую указанному ключу. Данные из этого списка можно извлечь с помощью функции edr. Заметим также, что в последнем вызове элементами а-списка являются не списки, а структуры, полу- чившие название точечных пар (dotted pair), например (а . 1) • Точечная пара - это базовый конструктор в LISP. Она является результатом объединения двух s-выражений. Обозначение списка, используемое в этой главе это лишь один из вариантов точечных пар. Например, при вызове (cons i nil) На самом деле возвращается значение (1 . nil). что эквивалентно (1). Анало- гично список (1 2 3) можно записать в виде точечных nap (1 . (а . (J - nil) ) ). Хотя на самом деле функция cons создает точечные пары, списочные обо- значения гораздо понятнее, а потому предпочтительнее. о6озн,ченмх точеч- При объединении двух атомов результат всегда татасы содержащий вто- пых пар. Хвост точечной пары — это сс второ! . и. рой атом. Например, Часть VI. Языки и технологии программирования для искусственного интеЛ Рлава 15. Введение в LISP 723
-b) ? (cons 'a I (a • b},. . b)) > (car <a (edr '<a • b)> b естественным Образом входят в состав ассоциативных списко>, Точечные нары естестве: извлечения другого аТома), * 0. один атом используется бу10Ш„х работы с парами атомарных снмво „„«те» в друпо• ин вместо переменной зачастую подставляется отд" "ХХы нередко встречаются в ассоциативных списках. возвр^ фунииейунифнкацшт onLisp оПределена функция acons. аргументу | Наряду С assob н ассоцИатнвный список, а возвращаемым значением - „Т! : первый элемеит котарого _ это результат объединения : данных. Например. i > (aeons 'а 1 nil) j ((а . D) Заметим, что если в функцию aeons передаются два атома, то в ассоциативный СПн. сок добавляется их объединение. > (aeons 'pets ' (еггапа jack Clyde) . '((name . bill) (hobbies music skiing movies) [ (job . programmer)) ) ((pets emma jack Clyde) (name . bill) (hobbies music skiing movies) (job . programmer)) Элементами ассоциативного списка могут быть точечные пары н списки. Ассоциативные списки обеспечивают удобный способ реализации различных таблиц и других простых схем извлечения данных. При реализации алгоритма унификации ас- социативные списки используются для представления множеств подстановок: ключи со- ответствуют переменным, а данные — нх значениям. Данные могут представлять собой простую переменную, константу либо более сложную структуру. С помощью ассоциативных списков функции работы со множеством подстановок можно определить следующим образом. (defun get-binding (var substitution-list) (assoc var substitution-list :test tf'equal)) e ни get-binding-value (binding) (edr binding) ) e un a d-substitution (var pattern substitution-list) (aeons var pattern substitution-list) ) лепр реализация алгоритма унификации завершена. Она будет использован]jK для постп^ реализацИн простого интерпретатора для языка PROLOG и в раз построения оболочки экспертной системы. —^^1£РДРетаторы и внедренные языки_^^^ название ИНТерПретатоРа LISP называется циклом read-eva IP ^КЦИН Интерпретатора по чтению, оцениванию и выводу 724 Чагтк \л п _______________________________________~~ „аыражений. введенных пользователем. фуНМ1ио де 15.1-4. составляет основу интерпретатора LISP c"^1' опредслснная в подразде- print можно написать на самом языке LISP. В сл ПОМОЩ|>Ю П“кл read-eval- упрошенная версия этого цикла. Упрощение со<тпЛУЮЩСМ "рИмерс бУлст разработана хотя LISP обеспечивает средства, необходимые ляХ ° 0ТСу1ствин обработки ошибок. ДЛЯ создания цикла read-eval-print ' рсгшпации- read и print. Первая из них не зависит ()°°““,"'чуемся лвумя функциями LISP s-выражение, введенное с клавиатуры, функция араМСТрОВ и вювращает следующее оценивает его и выводит результат в стандастный „?nt 3“ИС“Т °Т одного ар'Умента. бится также функция terpri, не зависящая от anrv ВЫаода- При этом нам понадо- поток символ новой строки newline. По завершении"™» В“ЮДЯШШ в шает значение nil. Цикл read-eval-print реализветс Функцм "-erpri возвра- (print (eval (read))) Разуется как вложенное , выражение. При этом сначала оценивается s-выпажение „ ж (read). Возвращаемое этой функцией значение (слеЯуЮщ^ХГе~= „выражение) передастся функции eval для оценки, результат которой в свою оч^ень передается функции print и выводится на экран. В завершение цикла «ыводитсятеи- глашенне, а с помощью функции terpri после отображения результатов выводится символ newline, и цикл рекурсивно повторяется. Таким образом, окончательно опре- деление цикла read-eval-print имеет вид. (defun my-read-eval-print ( ) (print':) (print (eval (read))) (terpri) (my-read-eval-print)) Этот цикл можно использовать “поверх” встроенного интерпретатора. > (my-read-eval-print) ;не зависит от аргументов «•вывод приглашения : ;цикл read-eval-print ;вывод символа newline ;повтор цикла 3 ;новое приглашение Из этого примера видно, что функции, подобные quote и eval, обеспечивают про- граммисту на LISP широкие возможности управления обработкой функций. Поскольку программы и данные LISP представляются в виде s-выражений, можно написать програм- му, выполняющую любые действия над выражениями LISP до их оценки. В этом состоит преимущество LISP как процедурного языка представления: произвольный код LISP мож- но хранить, модифицировать и оценивать при необходимости. Это свойство также упроща- ет написание специализированных интерпретаторов, расширяющих или модифицирующих поведение встроенного интерпретатора LISP. Эта возможность положена в основу многих экспертных систем, написанных на языке LISP, считывающих запросы .юаюователя и от- вечающих на них в соответствии с результатами анализа базы знание Примером реализации подобного с«еци^,3^“Н”°™п“,°^>"вХ1«ошзЯ оценивать *ет служить модификация цикла тГге ‘^сНой си„„,е обозначений. Работа арифметические выражения в инфиксной, а ‘ ₽ Ф ,(>6раг„ге внимание на модифи- такого интерпретатора показана на следующем при. ре ( Р3 ЦИрованнос приглашение inf ix->>- 725 Рлава 15. Введение a LISP
infix-* (1 * 2> infix-’ (7 - 2> infix» ((5 + 2) (3 D) /цикл должен допускать вложенные выраженич 14 В целях простоты инфиксный интерпретатор обрабатывает только арифметические жния. Можно его дополнительно упростить, ограничив его возможности обработкой бит- ных операций и требованием заключения выражении в скобки. Эта позволяет избежать иео£ ходимости применения бат сложных технологии грамматического разбора и не ipeg.,.. учета приоритета операций- Пр» этом интерпретатор допускает вложенные выражения npo>J вольной глубины л выполняет обработку бинарных арифметических операций. Модифицируем разработанный ранее цикл rsad-eval-print, добавив функции переводящую инфиксные выражения в префиксную форму перед их передачей функции eval. Первая попытка определения этой функции может иметь такой вид. (defun simple-in-Со-pre (list (nth 1 exp) (nth 0 exp) (nth 2 exp) (exp) ;средний элемент (символ операции) ,-становится первым ;первый операнд /второй операнд Функцию simple-in-to-pre удобно применять для преобразования простых вы- ражений. Однако с ее помощью не удастся корректно обработать вложенные выражения, в которых операнды сами являются инфиксными выражениями. Для решения этой про- блемы операнды необходимо транслировать в префиксную форму. Рекурсия завершается проверкой типа аргумента: если он представляет собой число, то оно возвращается неиз- менным. Полная версия транслятора из инфиксной в префиксную форму имеет вид. (defun in-to-pre (exp) (cond ((numberp exp) exp) (t (list (nth 1 exp) (in-to-pre (nth 0 exp)) (in-to-pre (nth 2 exp)))))) С помощью этого транслятора можно модифицировать цикл read-eval-print н обеспечить интерпретацию инфиксных выражений. Например, так. (defun in-eval ( ) (print ’infix->) (print (eval (in-to-pre (read)))) (terpri) 111 (in-eval)) С помощью такого интерпретатора можно обрабатывать бинарные выражения в фиксной форме. > (in-eval) infix-?(2 + 2) 4 infix->((3 * 4) - 5) 7 ой арйф*“^' В приведенном примере на LISP реализован новый язык — язык инфик^vKTypaMw 11 тики. Поскольку наряду с символьными вычислениями (списочными с у ________ __________ - _ - ______________________________________________ 726 Часть VI. Языки и технологии программирования для искусственного
фациями их обработки) LISP поддеру >SP гораздо легче, чем на многих друП1х “левкой. та Лгодоло™10 программирования задач иа™-™ >от ‘Wen m Р"HIbl,y задачу ’ис ^««г^пческой абстракции (XmgXc 'XT “окусствечи0™ интеллекта зачастую вегрСча "g S,lc abst™ta>). При -ыТ ' ^ннгвистическои абстракции бадовый “™ком сатана в » USP) применяется для реализации спеЦиМНз»роин^“Х°М“ИЯ (в < X рый может быть более аффективным для решснм ’ УРтнетого X ;ет<и,шг»«с»>«ческая абстракция означает И£ ™^™ого «яста задач. Терми„ цип другого языка программирования, а не решения самой, °? ПЫИ “» Р£™за. ле 14.6, PROLOG тоже позволяет программку еоздааата Пога'!а“0 “ р1»т Преимущества метаинтерпретаторов с точки зрения ли»™™P"₽eraTOPbl «™уровия. м сложных предметных областей обсуждались также во две "ГЮ'Там'''1’Р'1ваИ11я задач 15.8. Логическое программирование на языке Т.tsp В качестве примера металингвистической абстракции разработаем на usp гатор ДЛЯ задач логического программирования, используя для этого Игори™ ™1,и щга из раздела 15.6. Подобно логическим программам на языке PROLOG логические программы в данном случае тоже состоят из баз данных фактов и правил из области ис- числения предикатов. Интерпретатор обрабатывает запросы (или цели) за счет их уни- фикации с элементами логической базы данных. Если цель унифицируется с одним про- стым фактом, процесс завершается успешно. Решением в этом случае является множест- во связанных переменных, сгенерированное в процессе проверки соответствия. Если цель соответствует голове правила, интерпретатор рекурсивно пытается соответствовать предпосылке правила, используя при этом метод поиска в глубину и связанные перемен- ные, сгенерированные в процессе проверки, В случае успеха интерпретатор выводит ис- ходную цель, в которой переменные заменены соответствующими значениями. Для простоты этот интерпретатор поддерживает конъюнктивные не®1 и импликации, операторы or и not в нем ие определены, как не определены н арифметические опера- ции, операторы ввода-вывода и другие встроенные в PROLOG предикаты. Мы не гтыга емся реализовать полную версию PROLOG и отследить все особенное™ поиска. Отсут- ствие оператора отсечения не позволяет корректно обрабатывать рекурсивные предик Ты- Тем ие менее предлагаемая оболочка иллюстрирует oCH0BHbJ\ZLo пеРечис- логнческого программирования. Читатель может добавить к ннтер Ленные свойства в качестве интересного упражнения. 15.8.1. Простой язык логического программирования OiKpxKM- Предлагаемый интерпретатор для задач логического п^”^е1ие^х в потом исчяс- яорновские выражения — подмножество выражен! . р юи>юнет1,в. *"ИИ предикатов. Корректно определенные Ф°Р"уЛ"вОТЙ герм - это от»»'. Ь1Х выражений и правил, написанных в стиле USP- „з.чекгы еоота«ству*эт 1 элемеитом которого является имя преднн • нгы. переменные или друга Гейтам. В качестве аргумента могут выступать 727 AaSa ’5- Введение a LISP
„„сани,. фУ»даи UnifY’ '"Cr=*““Ue nne„ nCP' bill music) if (father robert)) (friend bil __ это СП||СО1С. первым элементом которого явля Конъюнктивное выр®<®е термы или конъюнктивные выражения. '* 11 и»»и-»1-1 " ""2 “««» "Z— —" “» распознавание. <заклв.ете» (rule if <лредпосьика л^гылка»- это либо простое, либо конъюнктивное предлог Здесь <"РеЛЮС™ стое предложение. Приведем несколько примеров при»' а<заключение> — всадо н (rule if всегда простое предложение. Приведем несколько п™,. г (and (Hkes (var х) (var г)) (likes (var у) (var z) ) ) (friend (var x) (var y)) ) (and (size (var x) small) (color /var x) red) (smell (var x) fragrant)) (kind (var x) rose)) then (rule if then Логическая база данных — это список фактов и правил, связанных с глобальной перемен- ной ‘assertions*. Приведем пример базы данных об отношениях симпатии, основаюм на вызове функции setq (можно было бы воспользоваться и функцией def var). (setq ’assertions* '((likes george beer) (likes george kate) (likes george kids) (likes bill kids) (likes bill music) (likes bill pizza) (likes bill wine) (rule (likes (var x) (var z) ) If (and (likes (Var x) (var z) ) (likes (var y) (var z) j ) then (friend (var x) (var y))))) считывает цеде^Гвы Интерпрегат0Ра используется функция logic-shell, данных, связанной с пепГ*™ пь1тается Удовлетворить их иа основе логическ» ЗОЙ данных функция fogiXTh*®®Sertions*' ПРИ Работе с пРивСдеНН° даяе»»1' (символом ; отмечены ком Ле^ Должна демонстрировать следующее >(logic-shellj И}' ?|Hkes bill (var 'В1®ОД приглашения ? -успешно выполненные запросы выводятся ' Остановками Языки и технологии программирования для искусственного и"
(likes bill kids) (likes bill music) (likes bill pizza) (likes bill wine) 2 (likes george kate) (likes george kate) ? (likes george taxes) ?(friend bill george) (friend bill george) ?(friend bill roy) ?(friend bill (var x)) (friend bill george) (friend bill bill) (friend bill bill) (friend bill bill) (friend bill bill) ?quit ;если запрос не ;возвращается выполнен, ничего не ;из (anddikee bill kids) (likes •roy не существует в базе ;не выполнен george kids)} знаний, запрос bye ;из ;из ;из ;из ;из (and(likes (and(likes (and(likes (anddikes (and(likes ill kids)(likes george kids)) bill kids)(likes bill kids)) bill music)(likes bill music)) bill pizza)(likes bill pizza)) bill wine)(likes bill wine)) ; не Прежде чем переходить к обсуждению реализации интерпретатора для решения задач логического программирования, рассмотрим тип данных потока stream. 15.8.2. Потоки и их обработка Как видно нз предыдущего примера, даже небольшая база данных требует сложной обработки. Необходимо не только определять выполнение или невыполнение целевого выражения, но и находить в базе данных подстановки, обеспечивающие истинность це- левого выражения. Одному целевому выражению могут соответствовать различные факты, а значит, и разные множества подстановок. При использовании конъюнкции целей необходимо удовлетворить всем конъюнктам, а также обеспечить согласованность связанных пере- менных. Аналогично при обработке правил необходимо, чтобы подстановки, сформиро- ванные в процессе проверки соответствия заключения правила целевому выражению, были внесены в левую часть правила. Необходимость управления различными множест- вами подстановок — основной источник сложности интерпретатора. Эту проблему по- могают решить потоки. Они позволяют сконцентрировать внимание на изменении по- следовательности подстановок-кандидатов в рамках ограничении, определяемых логиче- ской базой данных. Поток (stream) — это последовательность объектов данных. Наиболее типичным примером обработки потоков является обычная интерактивная программа. Поступающие с клавиатуры данные рассматриваются как бесконечная последовательность стволов, а программа считывает « обрабатывает текущий символ из потока ввода. Обработка по- токов — это обобщение этой идеи: потоки не обязательно создаются пользователями, х Могут генерировать и модифицировать функции. Генератор (generator) - это фикция, создающая непрерывный поток объектов данных. Фунт?» "I выполняет некоторое преобразование над каждым элементом по к. т итом сличает некоторые элементы из потока по условиям, заданным некоторым предикатом. 729 Глава 15. Введение в LISP
пример, кокъюнкшо,.^— (and (likes bill (var zl) (likes george (var z))) Воспользуемся к. потоков каждый конъюнкт в тока множеств подстановок. Ill) (likes bill (var z)) (((varz). kids) ((varz). music) ((var z). pizza) ((varz). wine)) ((((varz). kids))) Pwc. 15.4. Фильтрация потока подстановок переменных в соот- ветствии с конъюнк- цией целей механизмом вывода, можно представить в виде поТОк, ! решения, воз^«“е пр„ которых целевое утверждение еледуст ' а №. подстановок «еМС““’7 базой знаний, используются для модифнка,,^’ “ П0ЛУЧеИ,и’ Р“УЛЬТа,а- Ра««^и^ bill (var г*’ где (var z))) ппгической базой данных из предыдущего раздела. С точки зре,11и ! в этом выражении можно рассматривать как фильтр д£ [ . j^oe множество подстановок переменных в потоке щ, меняется к этому конъюнкту, а результат сверяется с базой знан,в Пои отсутствии соответствия множество подстановок исключаете. „3 потока. Если же соответствие найдено, создаются новые мне», ства подстановок за счет добавления новых связанных перемену к исходному множеству. На рис. 15.4 показана обработка потока подстановок с помо- щью этого конъюнктивного целевого выражения. Сначала поток подстановок-кандидатов содержит только пустое множество под. становою Он расширяется после появления первого соответствия предложения множеству элементов базы данных. После исключе- ния подстановок, не удовлетворяющих второму конъюнкту (likes george (var z)), в потоке остается одно множество подстановок. Результирующий поток ( ( ( (var z) .kids))) со- держит единственную подстановку переменной, обеспечивающую соответствие обеих подцелей базе знаний. Как видно из этого примера, одна цель н единственное мно- жество подстановок позволяют сгенерировать несколько новых множеств подстановок, по одному для каждого соответствия базе знаний. Кроме того, с помощью целевого утверждения можно исключить множество подстановок из потока, если со- ответствие ие найдено. Поток множеств подстановок может расширяться н сужаться в процессе обработки последователь- ности конъюнктов. В основе обработки потоков лежат функции создания, расши- рения и доступа к элементам потока. Простой набор функции об- работки потоков можно определить на основе списков и стандарт ных операций над ними. (<fefunB^ \П”ОК ИОВЫЙ пеРвый элемент j возврадаеЛЛХ'^т е1е“еПС аСГеаЛ” ’ < возвраХЛХ <СаГ > > (defun tail-stream' г ко,ГоРого удален первый элемент воззращает значен^””’’ ; c°w^;“rXoK(stream’' = °^гХг?лВг{;Хкагеа,п’ ’ nil) (likes george (varz))
,Aefun combine-streams (stream 1 e)- (cond ( (empty-stream-p (E , <conbine-Btrsams eam =t«a»l) str«" i> Хотя реализация потоков в виде списков не обеспечив^ вых ТИПОВ данных, такое определение позволяет посмп-m Х возможн°стей потоке- иия обработки потоков. Во многих задачах, в частнТТ"’ На с точки зре- для задач логического программирования из раздела 15 R СОздании интерпретатора ное средство организации и упрощения кода. В разделе is о "^П^ммисту мощ- раничения списочной реализации потоков, а также пред оЬсу5адаютс* некоторые ог- к использованию потоков при оценивании с задержкой апьтернативный ™лход 15.8.3. Интерпретатор для задач логического программирования на основе потоков Реализуем интерпретатор с помощью функции logic-shell, которая является уп- рощенным вариантом цикла read-eval-print, описанного в разделе 15.7. После вы- вода приглашения ? эта функция считывает следующее введенное пользователем s-выражение и связывает его с символом goal. Если целевое утверждение croal соот- ветствует значению quit, функция завершает работу. В противном случае она вызывает функцию solve для генерации потока множеств подстановок, удовлетворяющих дан- ному целевому утверждению. Этот поток передается в функцию print-solutions, которая выводит целевое утверждение с каждой из найденных подстановок. Затем функция ре- курсивно вызывает сама себя. Вот определение функции logic-shell. (defun logic-shell ( ) (print ' ? ) (let ((goal (read))) (cond ((equal goal 'quit) 'bye) (t (print-solutions goal (solve goal nil)) (terpri) (logic-shell)}))) Основой интерпретатора является функция solve. Она получает целевое угвер ние и набор подстановок и находит все решения, согласованные с знаний. Эти решения возвращаются как поток множеств подстановок, не найдены, функция sol ve возвращает пустой поток. С точки ков функция solve является источником (source), или генератор . решений. Вот ее определение. (defun solve (goal substitutions) (declare (special *assertions*)) (if (conjunctive-goal-p goal) aoal) (fil ter-through-conj-goals ( /make-emotv-stream))) (cons-stream substitutions Jna^e. . (infer goal substitution Assertions* является cne- Ключевое слово special означает, что переме 14еСкн связываться со средой, ^ьной (special), или глобальной (global), и будет динами _______ 731 Г/1ава Введение в LISP
л1 (Во многих современных версиях LISP оК, в которой вызывается функШ« = ни» special не требуете» ) явдяется Ш1 цсяь кокъюнкпшнои. Если да, п> фук.щня solve сначала яро afconj-goals. выполняющая описанную в noJ* ется функиия filter д свое угасржаенис goal не конъюнкгавно, вызывается лЛ ле 15.8.2 филырадто. Если н разрешение цели с помощью базы знаид' ШЛ определенная • nj.goals вызывается для тела коньку Функция filter с ов из которой удален оператор and) и потока, (т.е. п0“е^теЛЬ”Осходное множество подстановок. Результатом ее работы являстс< держащего только и д щ)1й для данного цслевого > ПОТОК подстановок, пр д i 1 ter-through-сопз-goals. Поиведем определение функнии filter tn (defun filter-through-conj-goals (goals substitution-streak (if (null goals) substitution-stream (filter-through-conj-goals (edr goals) . (filter-through-goal (car goals) substitution-stream)))) Если список целей пуст, функция завершает работу и возвращает поток substitu- tion-stream без изменений. В противном случае вызывается функция filter- through-goal для фильтрации потока подстановок на основе первого целевого выра- жения в списке. Результат ее работы передается вызываемой рекурсивно функции fil- ter-through-conj-goals для обработки оставшейся части списка целей. Таким об- разом поток передается по списку целей слева направо, расширяясь и сужаясь при обра- ботке каждого целевого утверждения. Функция filter-through-goal зависит от одного параметра (целевого утвер- ждения), который используется в качестве фильтра для потока подстановок. Такая фильтрация выполняется с помощью вызова функции solve, параметрами которой яв- ляются целевое утверждение и первое множество подстановок в потоке. Результатом вы- зова згой функции является поток подстановок, полученный в результате проверки соот- ветствия целевого утверждения базе знаний. Этот поток может быть пустым, если целе- вому утверждению не удовлетворяет ни одна из подстановок в потоке, либо содержать несколько наборов подстановок, представляющих альтернативные значения переменных- Полученный поток объединяется с результатом фильтрации хвоста входного потока, (dofun filter-through-goal (goal substitution-stream) df empty-stream-p substitution-stream) (make-empty-stream) (combine-streams g0?1 ^ead-stream substitution-stream) ) ^°Ugh“gOal goal (tail-stream substitution-stream))))) становой передастся **НКЦИИ fllter-through-conj-goals поток множеств flW through-goal обпабзт^^31^110”11 Цепевы* утверждений, а функция £1K®- вызов функции solve обесаеТ ЭТ0Т П°Т°К каждой конкретной цели. Рекурс»8 f. если кокъюн^:ххгрешение цели “°набора подс:н^ filter-through-coni-rr 1 Р батываются в функции solve с помощь ленной ниже функции inf S’ Т° ОтдельнЬ1е цели разрешаются с помоШьК) оторая получает целевое утверждение и набор п0Д и технологии программирования для искусственного интелЛ6
вок, а возвращает все решения, найденные в базе знаний т г infer — это база знаний логических выражений Ппи п ?Р Й ПараметР Фуикции X solve ей передается база знанХ™»?™"“Г ♦assertions*. Функция infer последовательно «и глобальном переменной сверяя соответствие целевого утверждения каждому П°ИСК В ЗНаНИ" kb* Такая рекурсивная реализация функции infег обе^“иГ^бм™"” ПРа’ИЛа ственныц интерпретатору PROLOG „ многим обцяо^^ проверяется, не пуста ли база знаний kb, н, если да. возвращается пустой Готов ВX тивном случае первый элемент базы знаний kb связывается с символом assertion с помощью блока let*. Этот блок аналогичен блоку let, но при этом гарантированно оценивает исходные значения локальных переменных в последовательно вложенных контекстах, т.е. обеспечивает порядок связывания и видимость предыдущих переменных в нем также определяется переменная match. Если assertion-это правило, пере- менная match инициализируется подстановкой, требуемой для унификации цели с за- ключением этого правила. Если же assertion — это факт, переменная match инициа- лизируется подстановкой, требуемой для унификации assertion с целевым утвержде- нием. После унификации цели с первым элементом базы знаний функция infer проверяет, удалась ли она. Если соответствие не найдено, она рекурсивно вызывает сама себя, пытаясь разрешить целевое утверждение с помощью оставшейся части базы зна- ний. Если же унификация завершилась успешно, a assertion — это правило, функция infer вызывает функцию solve для предпосылки этого правила, причем множество подстановок связывается с переменной match. Функция combine-stream объединяет полученный поток решений с потоком, построенным функцией infer при обработке оставшейся части базы знаний. Если assertion — не правило, значит, это факт. Тогда функция infer добавляет решение, связанное с переменной match, к решению, полу- ченному при обработке оставшейся части базы знаний. На этом поиск прекращается. Приведем определение функции infer. (defun infer (goal substitutions kb) (if (null kb) (make-empty-stream) (let* ((assertion (rename-variables (car kb))) (match (if (rulep assertion) (unify goal (conclusion assertion) substitutions) (unify goal assertion substitutions)))) (if (equal match 'failed) (infer goal substitutions (edr kb)) (if (rulep assertion) (combine-streams . (solve (premise assertion) match) (infer goal substitutions (edr kb))) (cons-stream match (infer goal substitutions (edr kb)))))))) n.,.. ...... “ передается в функцию rename-variable , между переменными в це- Уннкальное имя. Это позволяет предотвратить целевом утверждении встречается левом утверждении и базе знаний. В ^^’^переменн^: отличную от (var х) Фрагмент (var х), его нужно обрабатыв ще всего путем переименования в описании правила или факта. Решить эту проблему проще - 733 Рлава 15, Введение в LISP
,«х переменных в базе знаний и присвоения им уникальных имен. Определеии XX!e-v«riables будет приведено в конце этого раздела. е,111<* На этом реализалия ялра интерпретатора для решения задач логического прот, ваши завершена Итак, solve - это высокоуровневая функция, которая тонер,,?>«• множеств подстановок, приставляющих решения для целевого утверждения, полХ использованием базы знаний. Функция filter-through conj-goals e,u*Ket конъюнктивные цели слева направо, при этом каждая цель выступает в качестве *1>Сий|!’ для потока решений-кандидатов. Если целевое утверждение не прицщ^^ “истина” с учетом базы знании для потока множеств подстановок, функции £ through-con j-goals удаляет эти подстановки из потока. Если целевое утве . liter~ это простой литерал, функция solve вызывает функцию infer для генсраи^^0' всех подстановок, удовлетворяющих целевогиу утверждению с учетом базы зн “ ПОГ01са но PROLOG, полученный интерпретатор для заданного целевого утверждения ^°Ло^ удовлетворяющие ему связанные переменные из имеющейся базы знании HaxoW все Осталось определить функции доступа к элементам базы знаний, упоав вовками и вывода решения. Параметрами функции print-solutions П°ДсТа' вое утверждение и поток подстановок. Для каждого множества подстаново^^^ ЦСЛС' функция выводя целевое утверждение, в котором переменные заменена В П°Т°Ке 313 из этого множества. ы Нх Значенияад (defun print-solutions (goal substitution-stream) (cond ((empty-stream-p substitution-stream) nil) (t (print (apply-substitutions goal (head-str^ substitution-stream))) stream (terpri) шыо*Ь™;Ш11*₽арр1у-5^иХ"” ™0ЖеС™ ПОдс™тевок осуществляется с now шаблона. Если шаблон является констаитпй ЫПОлняющен рекурсивный проход по дереву переменная, функция apply_subst. 0Н В03вРащается без изменений. Если же это данного значения. Заметим, что связаны U 1OnS РекУРсивно вызывает сама себя для переменной, либо шаблоном любой слож°С ЗНЭЧение может быть либо константой, либо (defun apply_s..hr. - _ Н0Сти- ‘-d ((is_cO^t^ substitution-list) < (varp pattern) pactern> Pattern) (let ((binding (get , . (cond (binding (яг^11П^ pattern substitution-list))) binding) p y-Substitutions (get-binding-value substitution-list)) (t (cons (арр1у^егпН )) (apDly^g .,3<_Substl tut ions ( Функция^ ^titutions (cdr pattern) substitution-1^' Левому у^ ^и^именовьщаер tern) substitution-list))))> ^etl' НадРимер, целевое ир НеобходиАю длГ ЗНаний до проверки их соответспя» знании (р ^Рждение (р Дотвращения нежелательных конфлик1°в ена одним выпаяв ПОскольку обля Var Должно соответствовать элем^ “И*^0ДИвд в-димости каждой переменной W х> ифнкацин это соответствие ие требуется- Ко*1 Уфд ----- ______ ____________ ________________________ Хнологии программирования для искусственного интеЛЛ
Сгинет имен МОЖНО предотвратить за счет поисвоенна о основу схемы переименования можно полл-ллпт. И переменно“ уникального нмс- ^ не зависящую^ аргументе '”™KU"W С™"™ L1SP ВОЛ. состоящий из числа с префиксом «: G. Например, возвращает уникальный сим- у (gensym) #:G4 ? (gensym) #:G5 > (gensym) #:G6 В процессе переименования имя каждой переменной в выражении заменяется результатом вызова функции gensym функция rename-variables выполняет необходимую инициа- лизацию (описанную ниже) и вызывает функцию rename-гес для рекурсивного выполне- ния подстановок в шаблоне. Когда встречается переменная, вызывается функция rename, возвращающая ее новое имя. Чтобы при нескольких вхождениях в шаблон одной и той же пе- ременной ей было присвоено одно имя, при каждом переименовании переменной ее имя по- мешается в ассоциативный список, связанный со специальной переменной *name-list*. Благодаря объявлению этой переменной как специальной все ссылки иа нее являются дина- мическими, и их можно использовать в различных функциях. Так. при каждом обращении к переменной *name~list* в функции rename мы получаем доступ к экземпляру этой пе- ременной, объявленному в функции rename-variables. При первом вызове для данного выражения функция rename-variables инициализирует переменную *name-list* зна- чением nil. Приведем определения этих функций. (defun rename-variables (assertion) (declare (special *name-list*)) (setq *name-list* nil) (rename-rec assertion)) (defun rename-rec (exp) (declare (special *name-list*) ) (cond ( (is-constant-p exp) exp) ( (varp exp) (rename exp) ) (t (cons (rename-rec (car exp) ) (rename-rec (cdr exp)))))) (defun rename (var) (declare (special *name-list*)) (list 'var (or (cdr (assoc var *name-list :test#'equal)) (let ((name (gensym))) (setq *name-list* (aeons Функции доступа к компонентам правил и name *name-list*))name)))) целевых утверждений не требуют допол- нительных пояснений. (defun premise (rule) (nth 2 rule)) (defun conclusion (rule) (nth 4 rule) (defun rulep (pattern) (and (listp pattern) (equal (nth 0 pattern)'rule)) (defun conjunctive-goal-p Ooal) (and (listp goal) (equal (car goal)'and)) ) (defun body (goal) (cdr goal)) Глава 15. Введение в USP
-----------оболочки logic-shell было показано, -по Исполь При описании реа ых программ. Однако реализация потоков в вид» -пЙ""' потоков облетает вали с 1тотоками. в частности, такая ремиз J"*°‘ „е обеспечив»помш1ЯСГРобрабать.вать потоки данных большой длшщ. * достаточно эффскп и потоков всс элементы необходимо обрабатывать до Ви, дачи зтого'потока (списка) в следующую функцию. В оболочке logic-shell это " Л полному перебору базы знаний для каждого промежуточного целевого уЛ X™ чтобы сформировать первое решение для цели высокого уровня, npoipaM£ должна получить список всех решении. Даже если нам требуется лишь первое решение из этого списка, программа должна выполнить поиск во всем пространстве решений. Го- раздо предпочтительнее реализовать эту функцию таким образом, чтобы поиск первого решения осуществлялся только в определенном части пространства, а нахождение ос- тальных решений было отложено до нужного момента. Вторая проблема — невозможность обработки потоков сколь угодно большой длины. Хотя эта проблема в программе logic-shell не возникает, с ней приходится сталки- ваться при решении многих важных задач. Предположим, что нужно написать функцию, возвращающую поток из первых п нечетных чисел Фибоначчи. Для этого можно исполь- зовать генератор потока чисел Фибоначчи, фильтр для удаления нз него четных чисел и 1 функцию для накопления полученных решений в списке нз п элементов (рис. 15.5). , К сожалению, длина потока чисел Фибоначчи неизвестна, поскольку неясно, сколько чи- сел потребуется для получения первых п нечетных чисел. Поэтому лучше создать генератор, выдающий числа Фибоначчи по одному и пропускаю- щий их через фильтр до тех пор, пока не будут получены первые п нечетных чисел. Такой подход более близок шпуитивному представлению об оценке потоков, чем используемый при 1 их списочной реализации. Будем называть его оцениванием с задержкой (delayed evaluation). Вместо того, чтобы генерировать весь поток решений, функция-генератор должна на- ходить первый элемент потока и приостанавливать свое выполнение до тех пор, пока не потребуется следующий элемент. Когда программе требуется следующий элемент, рабо- та генератора продолжается. Он находит очередной элемент и снова приостанавливает оценивание оставшейся части потока. Тогда поток будет состоять не из всего списка чи- ЛНШг И3 ДВуХ компонентов— первого элемента и элемента, на котором процесс генерации был приостановлен (рис. 15.6). Rvn8111^ ° задержкои воспользуемся замыканием функции (function closure). ФУНКЦИЮ Н ВСе е5 данные переменные в текущей среде. Такое тывать с помощью А?аТЬ С п^ременной илн передать его в качестве параметра и обра а нение функции до ХноТмом^Ч’ П° СуЩеству’ замыкание “замораживает" выпо* function Напоимрп ента’ Замыкание можно создать с помощью формы • например, рассмотрим следующую запись на LISP. > (setq v Ю) 10 > (let ((v 20)) (setn г i 2o A_ciosure) £l°®uJ;e (function (lambda ( ) v)))) *•2 #х28641е> 10 КИ И Технологии программирования для искусственного инте'1'10
Генератор Порождает поток чисел Фибоначчи Фильтр Удаляет из потока четные числа Накопитель Накапливает первые л чисел из потока Рис. 15.5. Потоковая реализа- ция программы поиска первых п мечетных чисел Фибоначчи Поток на основе списка, содержащий неопределенное число элементов (S, е2 ез е4 ' • • ) Поток с отложенным оцениванием хвостовой части содержит только два элемента, но может включать любое число элементов (е1 . <отложенное оценивание хвостовой части потока>) Рис. 15.6. Реализация потоков на основе списков и оценивания с задержкой Изначально функция setq связывает переменную v со значением 10 в глобальной среде, В блоке let переменная v локально связывается со значением 20 и создается за- мыкание функции, возвращающей это значение переменной v. Интересно отметить, что при выходе из блока let это связанное значение переменной v не исчезает, поскольку оно сохраняется в замыкании функции, связанном с переменной f„closure. Однако это лексическое связывание не имеет отношения к глобальному' связыванию переменной v- Следовательно, если оценить это замыкание, будет возвращено значение 20 локаль- ной переменной v, хотя глобальная переменная v по прежнему принимает значение 10, Эта реализация потоков основана на паре функций delay и force, ервая нз них получает в качестве параметра выражение и не оценивает его. а возвращает замыкание. фУнкция force получает замыкание в качестве аргумента и запускает его с помощью Функции funcall. Приведем определения этих функций. <defmacro delay (ехр} '(function (lambda О. exp))) (defun fOrce (function-closure) (funcall function-closure) 737 Глава 15. Введение в USP
обратную Ка. | LISP, получившей название макро™ функция dslay— ДадХгьс помощью функции de fun, поскольку определенные Згу функцию нельзя °"Р^" сво„ аргументы до выполнения тела. Макросы обеХ' таким Образом форм-WHH над оцсииванисм параметров. Макрос опр," ’ чивают программистам° его выполненни аргументы не оценивай лястся с помощью Ф°РМЫ связываются с формальными параметрами, и а исходные s-выр»тни« "Р й эип оцсниваиия называется мшрорасШираш^ макроса оцеиивается д , оценке полученнои формы. (macro-expansion), а втор' " мы ввели еще одну форму LISP — ЧтобЫ ЛоомТподобно функции quote, предотвращает анализ параметров, но до. I “"Тето^вГние выбранных элементов выражении. Любой элемент s-выраженщ, | обратной кавычкой и расположенный после запятой, оцениваете,. „ его | значение вставляется в результирующее выражение. Например, рассмотрим вызов (delay (+ 2 3)) .Выражение (+ 2 3) не оцени- вается а связывается с формальным параметром ехр. При первом оценивании макроса возвращается выражение, следующее за обратной кавычкой, в котором формальный па- оамето ехр заменен его значением — неоцененным s-выраженнем (+ 2 3). Получится выражение (function (lambda () (+2 3))). Оно снова оценивается, и возвра- щается замыкание функции. Если позднее передать это замыкание в функцию force, то будет оцениваться выражение (lambda () (+ 2 3)). Это функция, ие зависящая от аргументов, тело которой соответ- ствует значению 5. С помощью функций force н delay можно реализовать потоки на ос- нове оценки с задержкой. Перепишем функцию cons-stream в виде макроса, зависящего от двух аргументов. Этот макрос должен присоединять значение первого к оценке второго. При этом второй аргумент оценивается с задержкой и может возвращать поток любой длины. Определим функцию tail-stream, оценивающую хвост потока. (defrtiacro cons-stream (ехр stream) ' (cons, ехр (delay, stream))) i (defun tail-stream (stream) (force (edr stream) ) ) ?’ Переопределим также в виде макроса функцию combine-streams. Она должна получать два аргумента, но ие оценивать нх. В этом макросе для создания замыкания второго потока используется функция delay. Полученный результат вместе с первым потоком передается в функцию comb-f, аналогичную определенной ранее функции combine-streams. Однако, если первый поток оказывается пустым, то новая функция оценивает второй поток. Если первый поток не пуст, выполняется рекурсивный вызов функции comb-f с помощью обновленной версии cons-stream. Прн этом рекурсив- ный вызов в замыкании замораживается” для дальнейшей оценки. Streams) Ht empty-stream-p streaml) (force stream2) ail stream streaml) stream2))) ) stream и emptyZ!estr^06aBHTb * ВерСиям Функций head-stream, kob на основе оценивания с заде”3 П°Драздела 15-8-2, получим полную реалнзач для искусственного^®"""*” Э™ ФУнкции можно использовать для решения задачи получения первых п нечетных чисел Фи оиаччи. ункция f ibonacci-stream возвращает поток всех чисел Фибо- наччи. Заметим, что это бесконечная рекурсивная функция. Бесконечный цикл предот- вращается за счет оценивания с задержкой, поскольку следующий элемент вычисляется только в случае необходимости. Функция filter-odds получает поток целых чисел и исключает из него четные элементы. Функция accumulate получает поток и число и и возвращает список, состоящий из первых п элементов потока. (defun fibonacci-stream (fibonacci-1 fibonacci-2) (cons-stream (+ fibonacci-1 fibonacci-2) (fibonacci-stream fibonacci-2 (+ fibonacci-1 fibonacci-2)))) (defun filter-odds (stream) (cond ((evenp (head-stream stream)) (filter-odds (tail-stream stream))) (t (cons-stream (head-stream stream) (filter-odds (tail-stream stream)))))) ((defun accumulate-into-list (n stream) (cond ((zerop n) nil) (t (cons (head-stream stream) (accumulate-into-list (- n 1)(tail-stream stream))))) ) Для получения списка первых 25 нечетных чисел Фибоначчи можно воспользоваться следующим вызовом. (accumulate-into-list 25 (filter-odds (fibonacci-stream 0 1))) Эти функции работы с потоками можно использовать в определении интерпретатора для решения задач логического программирования из раздела 15.8. Это позволит в некоторых случаях повысить его эффективность. Предположим, необходимо модифицировать фикцию print-solutions, чтобы она выводила не все решения, а лишь первое из них, и ожидала дополнительного запроса пользователя. Если потоки реализованы в виде списков, то перед выводом первого решения необходимо иайти их все. При оценивании с задержкой первое решение можно найти отдельно, а затем при желании вычислять остальные решения. В следующем разделе интерпретатор для решения задач логического программиро- вания будет модифицирован в оболочку экспертной системы. Однако сначала будут вве- дены две дополнительные функции работы с потоками, используемые впоследствии в реализации оболочки. В разделе 15.3 были представлены обобщенные функции отобра- жения и фильтрации списков. Эти функции map-simple и filter можно модифици- ровать для работы с потоками. В следующем разделе будут использоваться функции filter-stream н map-stream. Их реализацию предлагается разработать читателю в качестве упражнения. 15,10, Оболочка экспертной системы на LISP Оболочка экспертной системы, разрабатываемая в этом разделе, является обобщени- ем механизма обратного вывода, описанного в разделе 15.8. Основные модификации сводятся к использованию факторов достоверности для управления неопределенными Рассуждениями, возможности обращения к пользователю для получения неизвестных Фактов и использованию рабочей памяти для хранения ответов пользователя. Эта обо- Лочка экспертной системы называется lisp-shell. 739 глана 15. Введение в LISP
15.10.1. Реализация факторов достоверности Разработанный выше интерпретатор дая решения задач логического протМык ИИ. возвращал множества подстановок, при которых целевое УгверВДс,щ™'"₽<«г. слсдуст нз базы знаний. Связанные переменные, ие обеспечивающие cot;,a,“"",c«4 целевого утверждения с базой знаний, либо удалялись из потока, либо вообще и ронялись. Однако при реализации рассуждении с факторами достоверности Im„„ ₽"• тинные значения заменяются числовыми значениями из диапазона от ~1 до +1 Р гь" нс. Поэтом)' поток решений должен содержать не только связанные переменные ft, воющие реализацию цели, но и включать степень доверия, с которой каждое решен» из базы знаний. Следовательно, оболочка lisp-she 11 должна обрабатывать не^^ множеств подстановок, а потоки пар, состоящих из множества подстановки и чи 11Оток'и ставляющего степень истинности целевого утверждения при данной подстановке П₽ед' Элементы потока реализуем как абстрактный тип данных. Для управления пол и факторами достоверности используем функции subs t-record, subst-lis cf. Первая из них строит пару, состоящую из множества подстановок и фактора д ** SU^st~ ста, вторая возвращает множество связанных переменных для этой пары, а третья0010^^ достоверности. Записи будут представлены как точечные пары подстановки*. <факпюр достоверности*). Приведем определения этих функций <ОП/сед ;Возвращает список связанных переменных на основе пары ; подстановка-фактор достоверности. (defun subst-list (substitutions) (car substitutions)) ;™“X™KTOP ДОСТОВернос™ “ — ‘ паРЫ полсМнозха.фактор (defun subst-cf (substitutions) (cdr substitutions)) ; Формирует пару множество подстановки-^ (defun subst-record (substitutions cf) ₽ ДОСтове₽Нос™- (cons substitutions cf)) ставляются точечными ападами"И<Т0Же СВЯЗаиы с Факт°ром достоверности. Факты прет- <ymep^me>~ Z Х " Утв"РЖдете> <факт°Р ^~pWcml»,rV его определенности. Пвавпла литеРал> а <фактор достоверности* — мера then заключение* сфакто л исываются в формате (rule if <предпосылм> меткой области описания цветов °Стоверности> J • Приведем пример правила из пред- (rule if (and (rose (var t i then (kind (var x) aiirican°b (™Г red) ’ :.zzzr- (de£“h premise fruieT'’' Прааила- . 'nth 2 rule)7le) <de££FSr7S:)n₽aB,u,a' ------------------------------------------------------------- 740 Часть VI. Языки и технологии программирования для искусственно1'
(nth 5 rule)) •Проверяет, является ли данный шаблон (defun rulep (pattern) правилом. (and (listp pattern) (equal (nth 0 pattern) -rule))) ;Возвращает часть факта, являющуюся (defun fact-pattern (fact) (car fact)) шаблоном. ;возвращает фактор достоверности факта (defun fact-cf (fact) (cdr fact)) С помощью этих функций можно реализовать интерпретатор правил путем модификации интерпретатора для решения задач логического программирования га раздела 15.8. 15.10.2. Архитектура оболочки lisp-shell Основу оболочки lisp-shell составляет функция solve. Она не возвращает по- ток решения напрямую, а сначала пропускает его через фильтр, удаляющий любые под- становки, фактор достоверности которых ниже, чем 0,2. Таким образом удаляются ре- зультаты с невысокой степенью доверия. (defun solve (goal substitutions) (filter-stream (if (conjunctive-goal-p goal) (filter-through-conj-goals (cdr (body goal)) (solve (car (body goal)) substitutions)) (solve-simple-goal goal substitutions)) #'(lambda (x) (< 0.2 (subst-cf x))))) Это определение мало отличается от определения функции solve в оболочке logic-shell. Эта функция по-прежнему содержит условный оператор, выделяющий простые и конъюнктивные цели. Различие состоит в использовании обобщенного фильт- ра filter-stream, удаляющего любые решения, фактор достоверности которых ока- зывается ниже заданного значения. Эта проверка реализуется с помошью лямбда- выражения. Второе отличие состоит в использовании функции solve-simple-goal вместо формы infer. Обработка простых целей усложняется за счет возможности за- просов к пользователю. (defun solve-simple-goal (goal substitutions) (declare (special ‘assertions*)) (declare (special *case-specific-data*) ) (or (told goal substitutions *case-specific-data*) (infer goal substitutions ‘assertions*) (ask-for goal substitutions))) В этой функции для поочередного использования трех различных стратегий применяется форма or. Сначала вызывается функция told, проверяющая, было ли данное целевое \тнер- жление уже разрешено пользователем в ответ на предыдущий запрос. Ответы пользователя связываются с глобальной переменной *case-sPecif ic-data*. Функция told просмат- ривает этот список в поисках соответствия целевому утверждению. Благодаря lisp-shell не запрашивает дважды одну и ту же информацию. Если целевое утверждение 741 Глава 15. Введение в LISP
, cnlve-siniple-goal пытается вывести в списке ответов не найдено, *assertions*. И. наконец, если это не Уд^ ждение с n0”^^^k_for. отправляющая пользователю запрос на получение инф^’ ции. ^функцииопределены ниже. -nt измеНился мало. В него лишь добаи Т ХеХ .ГпГееДи«Л *case-specif ic-data* значением опера1Ор ИНШ1НМ1ПЗЦ и утверждения. Заметим, что при первом вызове 4WZ РХГГп:ред""ро^ пустое множество подстановок, а пара, состоя™^ мноХства подстановок и фактора достоверности cf. принимающего значеиве X чХ не имеет реального значения. Оно лишь включается для согласованно^ сннХса и заменяется реальным фактором достоверное™, введенным пользователе, или полученным из базы знаний. (defun lisp-shell О (declare (special *case-specific-data )) (setq *case-specific-data* ( )) (prinl 'lisp-shell> ) ;prinl не выводит новую строку (let ((goal (read))) (terpri) (cond ((equal goal 'quit) 'bye) (t (print-solutions goal (solve goal (subst-record nil 0))) (terpri) (lisp-shell))))) Функция filter-through-conj-goals не меняется, а функция filter- through-goal должна вычислять фактор достоверности конъюнктивного выражения как минимум соответствующих факторов-конъюнктов. Для этого первый элемент потока substituion-strearn связывается с символом subs в блоке let. Затем вызывается функция solve для данного целевого утверждения goal и множества подстановок. Ре- зультат передается в обобщенную функцию отображения map-st ream, которая получа- ет поток пар подстановок, возвращаемых функцией solve, и пересчитывает их факторы достоверности. Приведем определения этих функций. (defun filter-through-conj-goals (goals substitution-stream) (if (null goals) substitution-stream (filter-through-conj-goals (cdr goals) (defun fiit-\tei~thr°tU9h~9oal (car seals) substitution-stream)))) Uf .0Ugh'9M1 (9oal substitution-stream) Sty’sttea"-p substitution-stream) (make-empty-stream) (ссстйМп ^e^d-stream substitution-stream) )) i combine-streams 's°lve goal subs) Mn^st-if(^St'record <subst-list x) (subst-cf subs))))) tubstitutio^U3^"90al 9oal <tail-stream гitutiQn-stream)>))}) Определение функции i f X^^ °бшая структура згой функции “ изм<™ется с учетом факторов достоверности- радела 15.8, т.,г,с„ь ь ““«стстьуст ее версии, написанной для интеряр^ Фу"кц"'1 "-''.иеляется фактор достоверности решении »»<* нологии программирования для искусственного
нове факторов достоверности правил н степени соответствия решений предпосылкам правил. Функция solve-rule вызывает функцию solve для нахождения всех реше- ний на основе предпосылок правил и использует функцию map-stream для вычисления результирующего фактора достоверности для заключения этого правила. (defun (goal substitutions kb) (if (null kb) (mak e - emp ty - s t r earn) (let* ((assertion (rename-variables (car kb) ) ) (match (if (rulep assertion) (unify goal conclusion assertion) (subst-list substitutions)) (unify goal assertion (subst-list substitutions))))) (if (equal match 'failed) (infer goal substitutions (cdr kb)) (if (rulep assertion) (combine-streams (solve-rule assertion (subst-record match (subst-cf substitutions))) (infer goal substitutions (cdr kb))) (cons-stream (subst-record match (fact-cf assertion)) (infer goal substitutions (cdr kb)))))))) ((defun solve-rule (rule substitutions) (map-stream (solve (premise rule) substitutions) #'(lambda (x) (subst-record (subst-list x) (* (subst-cf x) (rule-cf rule)))))) И, наконец, с учетом факторов достоверности модифицируется функция print - solutions. (defun print-solutions (goal substitution-stream) (cond ((empty-stream-p substitution-stream) nil) (t (print (apply-substitutions goal (subst-list (head-stream substitution-stream)) )) (write-string "cf =") (prinl (subst-cf (head-stream substitution-stream))) (terpri) (print-solutions goal (tail-stream substitution-stream)))) ) Остальные функции, в том числе apply-substitutions и функции доступа к компонентам правил н целевых утверждений, остаются неизменными. Их определения приведены в разделе 15.8. Для реализации оболочки lisp-shell остается определить функции ask-for и told, обрабатывающие взаимодействие с пользователем. Они определяются достаточно просто, однако читатель должен понимать, что при их описании сделаны некоторые уп- рощающие предположения. В частности, в ответ на запросы можно вводить лишь значе- ния у нли п, соответствующие значениям фактора достоверности 1 и I. Пользователь нс может дать недостоверный ответ на запрос. Функция ask-rec выводит запрос и счи- тывает ответ. Эти действия повторяются до тех пор, пока пользователь не ответит у или п- Читатель может дополнить функцию ask-rec таким образом, чтобы принимались 743 Глава 15, Введение в LISP
1 (Этот диапазон, конечно же, выбран цро^. диапазона от -1 -1 ‘_ другие диапазоны.) “° мо^оТ^ «опрос пользователк, по поводу вольно. в проверяя- можн „овальный список -askables*. с Ио X определить. для каких целевых у^ “О" “ “Jl-rop экспертное сис^_ а какис должны выводиться только иэ бад, "OMO^ XShmumhPocu11 1,0 ^1иск'элементов в глобальном списке *case- cold выполняет п ые пользователь уже отвечал. Ее р^. ’^^а’.содержашемз^нак^Д аналогична факты. Приведем определения этих функций, fic-daca* хранятся - declare (special ,»*e.specl£ic-da«’ > > X^cl-iona poal (“ubsc-liec sibstit {result {ask rec que|Y^ }(cons (subst-record query ((setq ^case-specie Зв-а«ев»*<Хе-»соЙ'^«’и=с substitutions) rSSUlt) (nake-extpty-streamn))) 1 (defun ask-rec (query) i (prinl query) (write-string '>') (let ((answer (read))) (cond ((equal answer y) -) ((equal answer 'n) - 1) (t (print ’введите у или n') (terpri) (ask-rec query))))) (defun askable (goal askables) (cond ((nail askables) nil) -failed)) t) ((not (equal (unify goal (car askables) (t (askable goal (edr askables)) ) ) ) (defun told (goal substitutions case-specific-data) (cond ((null case-specific-data) (make-ernpty-stream)/ (t (combine-streams (use-fact goal (car case-specific-data) substitutions) ir_data)))j}) (told goal substitutions (edr case-spec11 Ha этом реализация оболочки экспертной системы на основе LISP завеРШ^сП^пйой дующем разделе эта оболочка будет использована для построения простои системы классификации. 15.10.3. Классификация с использованием оболочки lisp"3^10^ и кус10’ ’ Рассмотрим небольшую экспертную систему для классификации дереву Хотя эта система не претендует на полноту с точки зрения ботаники, она и. 44 Час^я^Ийтевдлогиип________________________________________________ ммирования для искусственного инте^л6*73 {Var X))(color fvar x) fvar x)Hcolor (var x) •s основные свойства экспертных снстем. Бета связана с _ гло6альным1 манными: -assertions, и -askables*. с первой из них с^Х бХГ и фактов, а со второй - список целевых утверждений, по которым можно „росы пользователю. Используемая в этом примере база знаний строится двух вызовов функции setq. (setq *assertions*’( (rule if (and (size (var x) tall) (woody (var x),} then (tree (var x)> .9) (rule *•£ tvar small) (woody (var x))) then (bush (var x)) .9} (rule if (and (tree (var x)) (evergreen blue)) then (kind (var x) spruce) .8} (rule if (and (tree (var x)) (evergreen green)) then (kind (var x) pine) .9) (rule if (and (tree (var x)) (deciduous fruit)) then (fruit-tree (var x)} 1) (rule if (and (fruit-tree (var x)) (color sweet)) then (kind (var x) apple-tree) .9) (rule if (and (fruit-tree (var x)) (color fruit sour)} then (kind (var x) lemon-tree) .8) (rule if (and (bush (var x)) (flowering (ve: then (rose (var x)) 1) (rule if (and (rose (var x)) (color (var a, ----- then (kind (var x) american-beauty) 1))) (setq *askables*'( (size (var x) (var y)) (woody (var x)) (soft (var x)) (color (var x) (var y)) (evergreen (var x)) (thorny (var x)) (deciduous (var x)) (bears (var x) (var y)) (taste (var x) (var y)) (flowering (var x))}) Приведем пример работы системы с этой базой знаний. Читателю -Я»- «еД1пь порядок обработки правил. изменения факторов “ость удаления подстановок, не обеспечивающих непшил-тъ целевого утверждения. Глава 15. Введение в USP * пере- данных правил давать во- С ПОМОЩЬЮ е^, газ-е yellow (Cssce .c: 745
> uisp-sbell) iisp-shell>(kind tree-1 (var x)) (size tree-1 tall) >y (woody tree-1) >y (evergreen tree-1) >y (color tree-1 blue) >n color tree-1 green) >y (kind tree-1 pine) cf 0.81 (deciduous tree-1) >n (size tree-1 small) >n lisp-shell>(kind bush-2 (var x)) (size bush-2 tall) >n (size bush-2 small) >y (woody bush-2) >y (flowering bush-2) >y (thorny bush-2) >y (color bush-2 red) >y (kind bush-2 american-beauty) cf 0.9 lisp-shell>(kind tree-3 (var x)) (size tree-3 tall) >y > n lisp- (---- (woody tree-3) >у (evergreen tree-3) (deciduous tree-3) >y (bears tree-3 fruit) >y (color fruit red) >n (color fruit yellow) >y (taste fruit sour) >y (kind tree-3 lemon-tree) cf 0.72 (size tree-3 small) >n lisp-shell>quit bye пользо- мтелю вопрос о том, является ли лепев° К° адомалий- Например, система задает В футом случае пользователю запаек ° НИЗКИМ’ хотя У*е сообщалось, что оно высокое. оно уже охарактеризовано как нечист * В0Прос 0 ТОм- является ли дерево лиственным, хотя системы. В базе знании не сопел- леное' ^то 'типичные примеры поведения экспертной высокий" и ’ шПЮ(['р (0ПпедепЯрХТТСЯ кикакой информации о взаимосвязи понятий (deciduous и evX^T01 Еа11 и SIra11’ или “лиственный” и вы для проверки соответствия точки 3Рения базы знаний это лишь шабло- *^тся »се правила. Дщ Toro поиск выполняется полным перебором, то прове- правилп^0^0 Зак°лироватъ и отн^МЗ демонстрировала более глубокие знания, в базе ’ угвеР*лак>щее, что small еНИЯ междУ понятиями. Например, можно написать топпг^иШСН51Я не ’^ставлены, not tal1- в рассматриваемом примере нагелю предлагается реаличг>ОЛЬКУ В Системе lisp-shell не реализован опера- вать его в качестве упражнения. —11^£^^^ческие сети и наследование в —- В этом разделе „ .„иге Ll^’ семейство прелс^влеи^й реализация семантических сетей иа емантические сети обеспечивают базис для р ных систем вывода. Мы не будем обсуждать все возможные варианты, а сконцентрируем внимание на основном подходе к построению сетевых представлений с помощью спи- сков свойств (property list). После их использования для определения простой семанти- ческой сети будет введена функция для реализации наследования классов. Изложенные в этом разделе идеи являются важным источником развития объектно-ориентированной методологии программирования, описанной в разделе 15.12. LISP эт° удобный язык для представления графов любой структуры, включая се- мантические сети. Списки обеспечивают возможность создания вычислительных объек- тов произвольной сложности. Эти объекты могут быть связаны с именами, обеспечи- вающими простоту ссылок и определение взаимосвязей между объектами. На самом де- ле все структуры данных LISP основаны на внутреннем представлении в виде цепочек указателей, которое изоморфно структуре графов. Например, граф с метками можно представить с помощью ассоциативного списка. Каждый узел — это элемент ассоциативного списка, в котором все исходящие из этого узла дуги хранятся в разделе данных в виде другого ассоциативного списка. Дуги описы- ваются с помощью элемента ассоциативного списка, ключом которого является имя ду- ги, а данными — узел назначения. При таком представлении для поиска узла назначения некоторой дуги выбранного узла можно использовать встроенные функции работы с ас- социативными списками. Например, маркированный направленный граф, показанный на рис. 15.7, можно представить с помощью ассоциативного списка вада ((а (1 Ь)) (Ь (2 . с)) (с (2 . Ъ) (3 . а))) 1_^Ь c Puc. /5,7. Простой маркированный направленный граф Такой подход положен в основу многих сетевых реализаций. Однако семантические сета можно реализовать и на основе списков свойств (property list). По существу, списки свойств — это встроенное средство LISP, позволяющее связы- вать символы с именованными отношениями. При использовании списков свойств объ- ектам в глобальной среде можно напрямую сопоставить именованные атрибуты (без применения функции setq). Такие связи с символом рассматриваются не как значения, а как дополнительный компонент — список свойств. Для управления списками свойств используются функции get, setf, remprop и plist. Функция get вида (get <CfWBOji> <имя-свойства>) позволяет получить свойство объекта <амвол> по его имени. Например, если для сим- вола rose свойство color принимает значение red, а свойство smell — значение sweet, значит, функция get будет вести себя следующим образом. (get 'rose 'color) red (get 'rose 'smell) Языки и технологии программироеания длЯ искусственного интелле 747 Глава 15. Введение в USP
sweet'rose 'party-*££iliati°nl та „он попытке получить значение несуще^ „ гпелнега вызова в,и,в°- „ХтЫ функция 9et »°’вРащает знач™“е nil. „ХС^^ХХис помошьюфункции setf. имеющей следуй Свойства связываю синтаксис. (зее£<формахзнв«еда^’ н aetq. Первый аргуМент функции set£ функция является «бобшеиие V Функция setf использует яе берется из большого, но «»«Р^ к ферм включены функции саг и cdr. фж иие формы, а место его хранения. о аргунеяга в указанное место. Например, ция serf помешает значение св ра6оты со списками можно использован, функцию setf наряду с ДО™W". видно из следующего примера. ДЛЯ модификации списков в глоо ? (sew к' (а ь (а Ь с d е) ? (setf (nth 2 3 c d е)) х) 3) (a b 3 d e) Функция setf J" \ _______win runic; свойств. Например, свойства розы можно определить следующим образо) > (setf (get 'rose 'color) 'red) red наряду с функцией get используется для изменения значений | > (setf (get 'rose 'color) 'red) i >efsetf (get 'rose -smell) 'sweet) , swset Параметрами функции remprop, удаляющей именованное свойство, явля вол и имя свойства. Например, > (get 'rose 'color) red > (remprop 'rose ‘color) color > (get 'rose 'color) nil его Функция pl 1st получает в качестве аргумента символ и возвращает спи свойств. Например, > (setf (get 'rose red > (setf (get 'rose sweet > (plist 'rose) (smell sweet color , ; еть.*19* С помощью списков свойств достаточно просто реализовать семантическую <= сб11 | пример, следующие вызовы функции setf определяют описание семаитИ# видов птиц, показанной на рис. 14.7. Отношение isa определяет связи наследо^ 'color) ,red) -sweet) red) ЧастьУ1?Язык^ и Рэммировдния для искусственного ИНТ0^
(setf (9et 'animal 'covering) 'skin) (setf (get 'bird 'covering) 'feathers) (setf (get bird 'travel) 'flies) (setf (get 'bird 'isa) 'animal) (setf (get 'fish 'isa) 'animal) (setf (get 'fish 'travel) 'swim) (setf (get 'ostrich 'isa) 'bird) (setf (get 'ostrich 'travel) 'walk) (setf (get 'penguin 'isa) 'bird) (setf (get 'penguin 'travel) 'walk) (setf (get 'penguin 'color) 'brown) (setf (get 'opus 'isa) 'penguin) (setf (get 'canary 'isa) 'bird) (setf (get 'canary 'color) 'yellow) (setf (get 'canary 'sound) 'sing) (setf (get 'tweety 'isa) 'canary) (setf (get 'tweety 'color) 'white) (setf (get 'robin 'isa) 'bird) (setf (get 'robin 'sound) 'sings) (setf (get 'robin 'color) 'red) В этом представлении семантической сети уже определена иерархия наследования. Если выполнить поиск по связи isa, то можно определить родительский объект по за- данному свойству. Для нахождения родительских объектов используется поиск в глуби- ну, который прекращается прн нахождении экземпляра заданного свойства. Такой под- ход обычно используется во многих коммерческих системах. В качестве стратегии поис- ка можно также использовать поиск в ширину. Функция inherit-get— это вариация функции get, которая сначала пытается полу- чить свойство данного символа. Если это свойство отсутствует, функция inherit-get вы- зывает функцию get-f rom-parents для реализации поиска. Первым параметром функции get-from-parents является либо один родительский объект, либо список таких объектов, а вторым параметром— имя свойства. Если параметр parents принимает значение nil, поиск завершается неудачно. Если родительским объектом является атом, для него вызывает- ся функция inherit-get для получения свойства самого родительского объекта либо про- должения поиска. Если в качестве параметра указан список родителей, функция get-from- parents рекурсивно вызывает сама себя для головы и хвоста этого списка. Функция прохо- да по дереву inherit-get определяется следующим образом. (defun inherit-get (object property) (or (get object property) (get-from-parents (get object 'isa) property))) (defun get-from-parents (parents property) (cond ((null parents) nil) ((atom parents) (inherit-get parents property)) (t (or (get-from-parents (car parents) property (get-from-parents (cdr parents) property))))) 15.12. Объектно-ориентированное программирование ______с использованием CLOS Несмотря на многочисленные преимущества функшюиалышго. "которые задачи лучше решать в терминах объектов, состояние которых изменяется Глаеа 1S. Введение в LISP 749
™nv Обычно относятся задачи моделирования. ГГрсдста временем. К ^ому ™ПУ об^^^ева большого здания. Если рассматрива Ссбс программу. моделирующую^"^„yiouiiix между собой объектов (комнаты, тео^^ систему как множество вза> > изменения температуры и состояния^' ™. бойлеры тр^опро» ды и ^спт Обьсктао.ориснтнро яи|ия р друга, то задачу моато |110 задачи. при котором задача разбивается на „2“' держивают такой пода Д Она обладает состоянием, которое мо^ ^'МОде“‘Т^менемТмножеством функций, определяющих их поведение. По Х'Хюио ортенпфованное программирование позволяет решать задачи путсм^ ству. Объектно op i р Ta№j. модельны„ метод решения задач естествен ХТбрХ подаодиг для искусственного интеллекта. Это эффективная методолога, „гЛмштованты предоставляющая мощные средства для решения сложных задач. "^Об“ кгно-орнентированное протра.мкшрованне померживают многие языки, в там числе Smalltalk, C++, Java н Common LISP Object System (CLOS). На первый взгляд LISP уходит корнями В функциональное программирование, а ооъектная ориентация с созда- нием объектов, сохраняющих со временем свое состояние, не вписывается в его исход- ную концепцию. Однако многие средства языка, в том числе динамическая проверка со- ответствия типов и возможность динамического создания и разрушения объектов, дела- ют его идеальной основой для создания объектно-ориентированного языка. LISP лежите основе многих раниих объектно-ориентированных языков, таких как Flavors, КЕЕ и ART. После разработки стандарта Common LISP сообщество его почитателей предложи- ло систему CLOS как средство объектно-ориентированного программирования на LISP. Чтобы называться объектно-ориентированным, язык программирования должен обеспе- чивать три возможности; инкапсуищию (encapsulation), полиморфизм (polymorphism) и насле- дование (inheritance). Определим эти возможности более детально и опишем, как их поддер- живает система CLOS. 1. Инкапсуляция. Все современные языки программирования позволяют создавать сложные структуры данных, в которых элементарные (атомарные) элементы объе- диняются в одну структуру. Объектно-ориентированная инкапсуляция — это соче- тание в одной структуре элементов данных и процедур для их обработки. Такие структуры называются классами (class). Например, рассмотренные в разделе 14.2 абстрактные типы данных вполне обоснованно можно считать классами. В таких объектно-ориентированных языках, как Smalltalk, инкапсуляция процедур (или ме- тодов) в определении объекта реализуется явно. В CLOS принят другой подход, возможность реализуется за счет проверки соответствия типов. Здесь подДеР методы' П0ЛУчившие название родовых функций (generic function). 101 менятГто^™ Ы СВ0ИХ параА1егР°в и тем самым гарантируют, что их можно при вать как логи * экземпляРам заданного класса объектов. Это можно рассматр вать как логическую связь методов со своими объектами. ч JX₽“Xo"™,B4,oX^?tH3M ,?™30Шло от W корней: X она демонстаип^ форма . Функция считается полиморфно • Наиболее типи^ый ПОведение в зависимости от типов своих аргуме стые графические редакГоры" дТп7РФН“Х ФуНКЦНЙ И ИХ Р°Т кр^ мая) определен свой объект ПД ПустиМ’ *** каждой фигуры (квадрат, P^oM классе определить метл я 1ПобРажен“я этих объектов естественно в висимости от изображаемой^ К&ЖДЫЙ метод должен работать Ф !гуры), однако имя у всех одно. Для кажд и технологии программирования для искусственного инте^
та в такой системе будет существовать метод draw. Это гораздо проще, чем опре- делять отдельные функции draw-square, draw-circle и т.д. Система CLOS поддерживает полиморфизм за счет механизма родовых функций, поведение кото- рых определяется типами их аргументов. В примере с графическим редактором можно определить функцию draw, включающую код для изображения всех опре- деленных в программе фигур. При оценивании будет проверен тип аргумента и ав- томатически выполнен соответствующий код. 3. Наследование* Наследование — это механизм для поддержки языком программирова- ния абстрактных классов. Ойо позволяет определить общие классы и задать структуру и поведение их специализаций. Так, класс деревьев tree может описывать свойства со- сен, тополей, дубов н других видов деревьев. В разделе 15.11 был построен алгоритм наследования для семантических сетей. Он иллюстрирует простоту реализации насле- дования с помощью встроенных в LISP структур данных. Система CLOS обеспечивает более робастный н выразительный встроенный алгоритм наследования. 15.12*1. Определение классов и экземпляров в CLOS Базовой структурой данных в CLOS являются классы. Класс — это описание множе- ства экземпляров объектов. Классы определяются с помощью макроса defclass, имеющего следующий синтаксис. (defclass <имя-класса> (<имя-суперклассам*) (< специфика тор-элементам*)) Здесь <имЯ‘Класса> — это символ, за которым следует список прямых суперклассов, т.е. непосредственных предков данного класса в иерархии наследования. Этот список может быть пустым. За списком родительских классов следует список (возможно, пус- той) спецификаторов элементов. Спецификатор элемента — это либо имя элемента, либо список, состоящий из имени элемента и одного или нескольких параметров. Специфика тор-элемента : ; = имя-элемента j (имя-элемента [параметр]) Например, можно определить класс прямоугольников rectangle, сегментами кото- рого являются длина length и ширина width. > (defclass rectangle О (length width)) #<standard-class rectangle> Функция make-instance позволяет создавать экземпляры класса .Ее парком является чьи класса, а возвращаемым значением - его экземпляр В хранятся реальные данные. Символ rect можно связать с экземпляром класса rectan gle с помощью функций make-instance и setq. > (setq rect (make-instance 'rectangle)) #<rectangle #x286ACl> ля полапйтк МРчэбяЗЗТСЛЬНО- ОНИ ИМСЮТ Параметры элементов в определении клас варианты) ДУЮЩИЙ синтаксис (где символ [ означает альтернативные варианты) параметр „= - «ader , :lessor I 751 Глава 15. Введение в LISP
: allocation <тип-разлгедтеяил> | : initarg <имя> J : initform <фсрма> ««я ™ чаются с помощью ключей. Ключ — это вид необязатолки Параметры элемента значением ключа указывается ключевое слово п> параметра ., фунм™ Параметры элементов обеспечивают лоступ R „ * торое всегд' "ач" „м функцш1. возвращающей значение данного элемента ад, э^еХара. Ключ /writer задает имя функции записи элемента. Клю, К1^Хог определяет функцию, которая может использоваться для считывания значе- элементо или изменения его значения (с помощью функции setq). В следую^ Xie определяется класс прямоугольников rectangle, элементам., которого явл,. X длинаХепдсЬ и ширина width с функшими доступа get-length и get- width соответственно. Связав символ rect с экземпляром класса прямоугольников с помощью функции make-instance, воспользуемся функцией доступа get-length для присваивания с помошью функции setq элементу length значения 10. Для вания этого значения снова воспользуемся функцией доступа. считы- > (defclass rectangle О ((length :accessor get-length) (width :accessor get-width))) #<standard-class rectangle> > (setq rect (make-instance 'rectangle)) "<rectangle #x289159> > (setf (get-length rect) 10) 10 > (get-ler.gth rect) 10 Помимо функций доступа для обращения к элементам класса можно использовать функцию-примитив slot-value. Она определена для всех элементов. Ее параметром является экземпляр класса и имя элемента, а возвращаемым значением — значение этого элемента. Оту функцию можно использовать совместно с setq для изменения значения элемента. Например, функцию slot-value можно применить для получения значения элемента width экземпляра rect. > (setf (slot-value rect 'width) 5) > (slot-value rect 'width) Функция : allocat io P^Xhi™1”1 РагЧещен1иГГ1-пзГадгММеЩеНИС элемента « памяти. Существует ди ^^^a^-:oX:xcrOlass'в псрв°м -^.то зваХ?" " тот Длемент^г^0 ЭКЗемпляРа* а во втором — все экзем- ния отражаются46^ Данного элемента СЛИ 8 Качестве типа размещения выбран ШЬ1 : instance Экземллярах класса ЭКземпляРов совпадают, а его измене- Ключ -init- ° УМолчанию используется тип размер* Нией znake^n 9 П03В0*^ Указать МО;зифидирОва АЛСе Д'1* заДанвд начал?^6111, КотоРы^ будет использоваться ф)иК ^sthnwia^^Hne класса ° 3**ачени» Например, —----- ЗКЗемпляров ап91е, инициализируя значения элемент1’8 752 —— ___________________________________—" раммироеания для искусственного интел/^1 > {defclass rectangle () ((length : accessor get-length -inib^ • (width : accessor get-width :initara . Bnit'leil9th) #<standard-class rectangle> 9 lnit Wldth))) >(setq rect (make-instance 'rectangle 'inir uv -init-width 50)) g±e ^nit-length 100 f<rectangle #x28D081> > (get-length rect) 100 ? (get-width rect) 50 Ключ ; uniform позволяет задавать форму, оцениваемую при каждом обращении к функции make-rnseanc е дая вычисления начального значения элемента. Например можно написать цютрмму. запрацшвающук, у пользователя значения элементов ктоХн’Х » зсмлляра прямоугольника. Это можно сделать с помощью ключа : initf ora > (defun read-value (query) (print query) (read)) read-value ? (defclass rectangle () ((length ;accessor get-length :initform (read-value "введите длину*)) (width = accessor get-width initform (read-value "введите ширину*)))) #<standard-class rectangle> > (setq rect (make-instance 'rectangle)) "введите длину** 100 "введите ширину” 50 #<rectangle #х290461> > (get-length rect) 100 > (get-width rect) 50 15.12.2. Определение родовых функций и методов Родовая функция — это функция, поведение которой зависит от типа ее аргументов. В CLOS родовые функции содержат множество .методов (method), индексированных по типу аргументов. Вызов родовой функции аналогичен вызову обычной функции. Просто при ее вызове реализуется метод, связанный с данным типом аргументов. При выборе метода родовой функции используется структура иерархии классов. Если не существует метода, определенного напрямую для аргумента данного класса, исполь- зуется метод, связанный с "ближайшим" предком в дереве иерархии. Родовые функции обеспечивают основные преимущества классического объектно-ориентированного под- ала и передачи сообщений, включая наследование и перегрузку. Однако по ду>) они ^Раздо ближе к парадигме функционального программирования, составляющей основу LlSp- Например, родовые функции можно использовать наряду с такими конструкциями Bt*icoKoro уровня языка LISP, как mapcar иди funcall. Родовые функции определяются с помощью функции de generic методов с Функция defgeneric позволяет определять родовую функцию и неск0Л^ п^ощью 0дН0й формы. Функция defmethod определяет отдельные .методы. Р Т ------------------------------------------------ ’ 753 ава 15. Введение в LISP
„ЙШУЮ родовую функцию. Приведем упрощенный CLOS объединяет в ’атксисфУнкиИиае£9еПеГ1С список <олисаиие-метода>*) ",ХетТс имл-фуикаии ^-^алиаиров^-^а-список форад, <описание-метода> • • - являются имя функции, лямбда-список ее аргумен- Параметрами функции def^eri методов. В описании метода cnevia. ювХлеДотяиельи^ лямбда-список из определения функдаи, „ Ко_ быть заменен парой (символ уточненнми-лт^)., тХ формальный параметр может 6 параметр - класс аргумента. Если ,1а. Хой символ - л™ имя парам^- ^^«0 его типом считается t - наиболее рамстр типа t бьПЬ СВЯЗаН“ С ЛЮбЫМ °бЬе™М' К°- цщй класс в иерархии CLOS; Пар^Ф лямбда-списка должно совпадать с числом арку, личество элементов сиециалюнроыив функция создает обобщенную функцию, маПов лямбда-списка фу№даи 9 шую родовую функцию. методы которой заменяют лю^юЧ™ ’ ой функции можно определить классы прямо- в качестве примера ислользованн* i методы вычисления площади. угольника и окружности и реализовать ш (defclass rectangle О length -.initarg init-length) {(length -.accessor g -initarg init-wxdth))) (width :accessor get-widtn <de£^^--- get-radius :initar3 init'radiUSl ’ > (defgeneric area (shape) (-.method ((shape rectangle)) (* (get-length shape) (get-width shape))) (.method ((shape circle)) . (* (get-radius shape) (get-radius shape:) P , nit_width 5)) (setq rect (Xrke-instance -rectangle rnxt-length 10 mat w (setq cite (make-instance -circle inrt-radius 7)) _ Функцию area теперь можно использовать для вычисления площади любо > (area rect) 50 > (area circ) 153.93804002589985 лй * Методы определяются с помощью функции define thod, синтаксис ^орому при* нает синтаксис функции defun. Однако здесь для объявления класса, ПрИ оПре- наддежат аргументы, используется специализированный лямбда-список. такиМ име- делении функции с помощью def method не существует родовой функции нем, она создается. Если же родовая функция с таким именем уже существу ^аВить метод добавляется к ней. Например, к приведенному выше определению мо класс квадратов square. (defclass square () ((side ‘.accessor get-side : initarg init-side) ) ) (defmethod area ((shape square)) (* (get-side shape) (get-side shape))) ; (setq sqr (make-instance 'square 'init-side 6)) хиологии программирования для искусственного интелл
функция defmethod не изменяет существовавши* ння площадей фигур, а лишь добавляет новый метоп v ранее^Редслси”й ДОя вымпеле- ши метод к родовой функции, > (area sqr) (area rect) 50 > (area circ) 153.93804002589985 15.12.3. Наследование в CLOS Язык CLOS поддерживает множественное наследование. Наряду с гибкой схемой представления данных множественное наследование таит опасность возникновения ано- малин, связанных с наследованием элементов и методов. Если для двух предков опреде- лен одни н тот же метод, то важно знать, какой нз них наследуется. Возможные неодно- значности устраняются в CLOS за счет определения списка приоритетности классов (class precedence), в котором упорядочиваются все классы иерархии. При определении класса с помощью функции def class все его прямые предки упо- рядочиваются слева направо. На основе этой информации система CLOS определяет по- рядок всех классов в иерархии наследования, на базе которого формируется список при- оритетности классов. Список приоритетности классов удовлетворяет двум правилам. 1. Любой прямой родительский класс предшествует любому более дальнему предку. 2. Порядок приоритетности непосредственных родительских классов соответствует их указанию при вызове функции def class слева направо. Система CLOS строит список приоритетности классов для любого объекта путем то- пологической сортировки его родительских классов согласно следующему алгоритму. Пусть С — это класс, для которого требуется определить список приоритетности. 1. Пусть Sc — это множество, состоящее из С и всех его суперклассов. 2. Для каждого класса с нз 8С определяется множество упорядоченных пар Rc = {(с, с,), (с,, сг), (сг, сэ) с„)}, где Ci ....Сп— прямые предки класса с в порядке их перечисления в определении def class. Заметим, что для каждого множества Я,- определен глобальный порядок. 3. Пусть Я — это объединение множеств Яг, составленных для всех элементов S,. Оно может быть, а может н не быть частично упорядоченным. Если оно не является частично упорядоченным, то иерархия ие согласована, и алгоритм это определит. 4. Выполняется топологическая сортировка элементов R следующим образом. 4.1. Строится пустой список приоритетности Р. 4.2. Находится класс в R. не имеющий предков. Он добавляется в конец списка Р и удаляется нз множества Sr, а все содержащие его пары удаляются из Я. Если S Хт несколько классов, ие имеющих предков, то выбирается тот из ' содержится нески го расположен ближе всего к концу те- НИХ, прямой Производный класс KOTOpUi и ра кущей версии списка Р. 4.3. Пункты 4.1 и 4.2 повторяются до тех пор. ..ока не будут исчерпаны асе элемен- ты нз R, не имеющие предков. 755 Глава 15. Введение в LISP
значит иерархия не согласована. В ней могут содержу 5. Если иноже^о S, ^^.зрешип, с помошью данной мегодоло™. СЯ неоднозначное™, к приоритетности полностью упорядочеи с П^ольку полученный В результат неодиозначноСта в существующей иерарх его помощью классов используется в системе CLOS при реализации данном вызове родовой функцни’система При выборе метола, приме™™^ Метод считается подходящим для дан- CLOS сначала находит все "°^“ R специализированный параметр метода . „ого вызова родовой функши. если в вызове родОвои функцни. Сиегщалнз„. гласуется с типом с“^^Гаргументом, если ои соответствует классу этого аргу. классу одного из его вр*“°В„0Д1Шие методы с учетом списков приоритетности ' Затем система CLOS сортирует вдщщх параметров слева направо определяется, . арпментов. Путем сравнения слеш г пер(ая пара соогеегстауюших спешить какой из двух методов должен стою и сравнивает вторую пару. Этот процесс про- зированных параметров совпадает, различающихся специализированных пара- должается до тех пор. пока не Судет сщпаегся меТОд. параметр которого находится метров- Среди тшх “^^"’^ствуюшето аргумента. После сортировки всех подхо- левее в списке приоритетное™icoo У наиболее специализированным метод для данных 15.12.4. Пример: моделирование термостата Обьекптоюрнентированный подход к программированию, обеспечивающий естест венный способ организации больших н сложных программ, в равной степени тфнмешо. и для разработки баз знаний. Помимо преимуществ наследования классов для тфi д ления классифипированных знаний, принципы передачи сообщении в о ориентированных системах упрощают представление взаимодействия компонентов В качестве простого примера рассмотрим задачу моделирования системы паро отопления для небольшого офисного здания. Эту проблему можно естественным зом описать в терминах взаимодействия компонентов, например, так. В каждом офисе есть термостат, включающий и выключающий систему обогрева оф Он работает независимо от термостатов в других офисах. Бойлер для теплоцентрали включается и выключается по требованию, поступающей из оф Л чя Когда нагрузка на бойлер возрастает, .может потребоваться некоторое время Д- нужного объема пара. Различные офисы передают в систему разные требования. Например, угловые ко большими окнами охлаждаются быстрее, чем внутренние. Внутренние помет нагреваться даже от соседних комнат. Объем пара, направляемый системой в каждый офис, зависит от общих требований к с • ’ Это лишь некоторые аспекты, которые необходимо принимать во вниманИеиХр93* делировании такой системы. На самом деле взаимодействие между компоне цсц- до сложнее. Объектно-ориентированное представление позволяет разработчику * нроватъ внимание на описании конкретного класса объектов. Термостат ' ---------—— __________________ _____________________________—----- ркТЭ Часть \Л. Языки и технологии программирования для искусственного >
ставить температурой, до которой он нагревает изменение температуры. воду, а также скоростью его реакции на Теплоцентраль можно охарактеризовать в тепминах которое она может производить, количества тХщва. ’">личести'геПла- времени, затрачиваемого на выполнение поступающих к снстемГ™^^ П.‘Му'“:"НЯ’ скорости потребления воды. уоающих к системе требовании, а также Комната характеризуется объемом, теплотмерями через стены и окна, количеством тепла. поступающего из соседних комнат и скоростью поступления тепла в комнату База знании должна описывать информацию, хранящуюся в классах roX.VXL mostate экземплярами которых являются объекты room-322 и thermostat-211 со- ответственно. Взаимодействие между компонентами описывается в терминах передачи сообщении между объектами. Например, при изменении температуры в комнате передается сообще- ние экземпляру класса thermostat. Если эта температура достаточно низка, термостат после некоторой задержки должен включиться. При этом объекту теплоцентрали переда- ется сообщение с запросом большего количества тепла. При этом теплоцентраль потреб- ляет больше топлива или, если она уже функционирует на пределе своих возможностей. некоторая часть тепла, передаваемого в другие комнаты, перенаправляется в ответ на но- вое требование. Это мож'ет привести к включению других термостатов и т.д. Такое моделирование позволяет проверить работоспособность системы в экстре- мальных ситуациях, оценить потери тепла и эффективность самой системы обогрева. Полученную модель можно использовать для диагностики неисправностей в системе н выявления их симптомов. Например, если есть основания считать, что проблемы с обог- ревом вызваны неисправностью теплотрассы, можно ввести в модель соответствующие характеристики и проверить свои предположения в модельном режиме. Основу реализации этой модели составляет набор определении классов. Класс термо- статов имеет один элемент— setting. Для каждого экземпляра он инициализируется значением 65 с помощью функции initform. Для класса thermostat определен произ- водный класс heater-thermos tat для управления радиаторами (в противовес конди- ционерам воздуха). Единственный элемент этого класса связывается с экземпляром класса heater. Заметим, что элемент класса heater имеет тип размещения : class. Это озна- чает, что термостаты в разных комнатах управляют общим на все здание радиатором. (defclass thermostat О ((setting :initform 65 :accessor therm-setting))) (defclass heater-thermostat (thermostat) ((heater .-allocation :dass :initarg heater-obj))) mu o*f) которое изначально принимает Класс heater обладает состоянием (on или о. ). pw 8КЛЮчает элемент значение off, и характеризуется местоположением. п,мепсм экземпляры rooms-heater. связанный со списком объс™ рентами списков классов, как и другие структуры данных LISP. • (defclass heater () ((state ,-initform 'off :accessor heater-state) (location .-initarg lec' (rooms-heated))) 757 Глава 15, Введение в LISP
Элементами класса room являются temperature, принимающий Нач ние 65. thermostat, связанный с экземпляром класса thermostat, и ЗЛЬИ0е ваюший имя комнаты. ПаШе, (defclass room О ((temperature ;initform 65 ;accessor room-temp) (thermostat :inltarg therm .•accessor room-thermostat) (name :initarg name .-accessor room-name))) Иерархия описанных классов приводится на рис. 15.8. °писц. в модели термостата Рис. 15,8. Иерархия классов При моделировании поведения этих классов. Реализуем систему со ^М0Стата исп°льзуются конкретные экземпляры одного термостата, ' СТ0ЯЩую из одной комнаты, одного нагревателя и <’et£ «°"'-32^’мке-ЙсисГ““от'Ьеа<:еГ ’1ОС 'o£fice’> , 'new 'room-325>){£i heater’ ««lot-vaxue omce.heater , Опрслыситчпем.м.пп r°™B-heated) (list room-325) I вешТ'м' K°M"“T'’“"“'"“'•гея^стопам "TnomaHU "aP™ 159 выводит9 /Г0Д chan0e-temp устаиаян ” Change‘’temP« check-temp и change- нужно /°° Щс,,нс пользователю и bi м Ивас1 ПО0ос значение температуры в комнате. тсрмостатаЮНО1ЖТ1* радиатоР. А»адогичн,Ва<ГТ МеТОД check“temp, чтобы проверить. нс •емиера ' ” ВВДЬ,Иаег Ме™Д check”" Change -setting изменяет установи "не о включении’В*аТС "ИЖС устаповкиетспмос°ДСЯИРУК,ЩИЙ функцию термостата .^и противном случае * Р '1ата. он передаст обогревателю сооб —___. редасзся сообщение об отключении. 738 ------------------------------—_ _____________________________________ и 'ИХНОЛОГИИ Пйог '------------------------------------ раммирования длЯ искусственного интвлле,<т3
Рис. 15.9. Экземпляры классов в модели термостата с исходными значениями и указа- нием типа размещения элементов (defmethod change-temp {(place room) temp-change) (let ( (new-temp ( + (room-temp place) ternp-change))) (setf (room-temp place) new-temp) (terpri) (prinl "температура в") (prinl (room-name place)) (prinl "составляет') (prinl new-temp) (terpri) (check-temp place))) (defmethod change-setting ( (room room) new-setting) ((let ((therm (room-thermostat room))) (setf (therm-setting therm) new-setting) (prinl "изменение установки термостата в ) (prinl (room-name room)) (prinl "на'1 (prinl new-setting) (terpri) (check-temp room))) (defmethod check-temp ((room room)) (let* ((therm (room-thermostat °0™ . . (heater (slot-value therm ea ( tejnp r (cond <<> (thenn-.etexw^hen»)^^ (t (send-heater heater 'off))>>) oom)) on) ) (5, Введение a LISP 759 Л
Методы класса heater управляют состоянием обогревателя и изменение туры в комнатах. Аргументами метода send-heater являются экземпляр обо и сообщение, передающее новое состояние. Если новым состоянием является вается метод turn-on включения обогревателя, в противном случае вызова °П' 8bl3tJ' его отключения turn-off. После включения обогревателя вызывается Меается MeToj5 rooms для повышения температуры в комнатах на 1 градус. (defmethod send-heater ( (heater heater) new-state) (case new-state (on (if (equal (heater-state heater) 'off) (turn-on heater)) (heat-rooms (slot-value heater ’ rooms-heated) (off (if (equal (heater-state heater) 'on) ' (turn-off heater))))) (defmethod turn-on ((heater heater)) (setf (heater-state heater) 'on) (prinl "включение обогревателя в") (prinl (slot-value heater 'location)) (terpri)) (defmethod turn-off {(heater heater)) (setf (heater-state heater) 'off) (prinl "отключение обогревателя в') (prinl (slot-value heater 'location)) (terpri)) 1 (defun heat-rooms (cond (rooms amount) ((null rooms) nil) (t (change-temp (car rooms) (heat-rooms (cdr rooms) amount) amount) ) ) ) Приведем пример работы модели. > (change-temp room-325 5) "температура в "room-325" составляет "60 "включение обогревателя в "office "температура в "room-325" составляет "61 "температура в "room-325" составляет "62 "температура в "room-325" составляет "63 "температура в "room-325" составляет "64 "температура в "room-325" составляет "65 "отключение । обогревателя в "office nil > (change-setting room-325 70) "изменение установки термостата в "включение обогревателя в "температура "температура "температура "температура "температура "отключение обогревателя nil в в в в в "room-325" 11 room-32 5“ "room-325" "room-325" "room-325" room-325" на "office составляет составляет составляет составляет составляет в "office "66 "67 "68 "69 "70 "70 760 ЧаСТЬ VL для
15ДЗ. Обучение в LISP: алгоритм ID3 В ,том разделе будет описана реализация алгоритма ID3 из раздела 93. Согласно этому алгоритму на основе множества обучающих примеров строятся деревья решений, обеспечивающие классификацию объекта ио его свойствам. Каждый внутренний узел дерева решении отвечает за_ одно из свойств объекга-кандидата и использует его значе- ние для выбора следующей ветви дерева. В процессе прохода по дереву проверяются различные свойства. Эта процедура продолжается до тех пор, пока не будет достигнут один из листов дерева, означающий класс, к которому относится данный объект. В алго- ритме ID3 для упорядочения тестов и построения (почти) оптимального дерева решений используется функция выбора тестов, построенная на основе теории информации. В алгоритме ID3 задействованы сложные структуры данных, в том числе объекты, свойства, множества и деревья решений. Основу его реализации составляет набор опре- делений структур агрегатных типов данных, аналогичных записям в языке Pascal или структурам в С. С помошью функции def st rue С в Common LISP можно определить тип данных как набор именованных элементов. Форма def struct строит функции, не- обходимые для создания и управления объектами данного типа. Наряду с использованием структур для определения типов данных при реализации алго- ритма будут использованы такие функции высокого уровня, как mapcar. Как стало ясно прн реализации оболочки экспертной системы, использование отображений и фильтров для вы- полнения функций над списками объектов обеспечивает большую прозрачность подхода к программированию на основе потоков данных по сравнению с другими принципами про- граммирования. Возможность обработки функций как данных и построения замыканий функ- ций — краеугольный камень стиля программирования на языке LISP. 15.13.1. Определение структур с помощью функции def struct С помощью функции def struct можно определить новый тип данных (data hpe) сотрудников — employee. (defstruct employee name address serial-number department salary) Здесь employee-это имя типа, name, address, serial-number, department и salary - „мена его элемент». При оценивании формы defstruct не создается никаких экземпляров записей о сотрудниках. Опредс«ютсял.ниь пшиф, холимые для создан» и управления его „ количество специфика!»- являются символ, который становится имен. ы п0 имени. Спецификаторы Ров элементов. В данном случае 5 элементе р элементов. включая нх тип и элементов позволяют также определять различи информацию для инициализации (Sleele, 1990). результатам. Рассмотрим Оценивание формы defstruct привод» к нескольким ре Ди* примера следующее определение. 761 1"Лава 15. Введение в LISP
(defstruct <имя типа> <имя элемента 1> <имя элемента 2> <имя элемента п>) мнению имя которой формируется по принципу make-<^w Э > ^опоэвоД создавать экземпляры данного типа. Например, после определения ZX“Ге с объектом этого типа можно связать имя new-employee. (setq new-employee (make-employee)) Имена элементов можно использовать в качестве ключей при создании функции. С их помощью элементам экземпляров можно присваивать начальные значения. Например, так. (setq new-employee (make-employee tname '(Doe Jane) :address "1234 Main, Randolph, Vt t serial-number 987 65 ;department 'Sales :salary 4500 - 00) ) При оценивании функции defstruct <имя muna> становится названием типа дан- ных. Это имя можно использовать в функции typep для проверки принадлежности объ- екта к некоторому типу. Например, так. > (typep new-employee 'employee) t Более того, defstruct определяет функцию <имя muna>-‘p, которую тоже можно использовать для проверки принадлежности объекта к данному типу. > (employee-p new-employee) t > (employee-p '(Doe Jane)) nil И, наконец, defstruct определяет функции доступа к каждому элементу структу- ры. Их имена формируются по схеме <имя тила> <имя элемента> В рассматриваемом примере доступ к значениям employee можно получить следующим образом. > (employee-name new-emplovee) (Doe Jane) > ^ress new-^Ployee) 1234 Mam, Randolph vt" Sal^₽1OYee'de₽artment new‘'ernPloyee) различных элементов объекта new ’--нтоГ,^мп^пХе7Х“рВаТ1‘C0BMCCTB°° "3MCHC,UU'ЗНЗЧеН"" ^(e^oyee-salery new-en)Ployee) > (setf (employee-salary new-employee) 5000.00) Wn искусственного*^^®***
5000.0 > (employed*salary new-employee) 5000.0 Таким образом, с помощью структур можно определять предикаты и функции досту- па к объекту данного типа в одной и той же форме LISP. Эти определен™ будут играть ключевую роль при реализации алгоритма ID3. ‘ На основе множества примеров, относящихся к известным классам алгоритм 1D3 строит дерево, позволяющее корректно классифицировать все обучающие примеры и (с высокой вероятностью) неизвестные объекты. При изучении алгоритма ID3 в разделе 9.3 обучающие примеры были представлены в табличной форме с явным перечислением свойств и их значений для каждого примера. Например, в табл. 9.1 приведен список свойств обучающих примеров, используемых для прогнозирования кредитного риска. В данном разделе мы снова обратимся к этой задаче. Таблицы — это лишь один из способов представления примеров. В более общем слу- чае нх можно рассматривать как объекты, обладающие различными свойствами. Сдела- ем несколько предположений о представлении объектов. Для каждого свойства опреде- лим функцию, зависящую от одного аргумента и применяемую для получения значения этого свойства. Например, если объект credit-prof ile-1 связан с первым примером нз табл. 9.1, a history — функция, возвращающая значение кредитной истории, то при вызове этой функции для указанного объекта будет получен следующий результат. > (history credit-profile-1) bad Аналогично зададим функции для других свойств кредитного профиля. > (debt credit-profile-1) high > (collateral credit-profile-1) none > (income credit-profile-1) 0-to-15k > (risk credit-profile-1) high Выберем представление для базы знаний из данного примера. Представим ооъекты в виде ассоциативных списков, в которых ключами являются имена свойств, а данными соответствующие значения. В частности, первый пример из та л. . можно представить в виде ассоциативного списка. I (risk.high) (history.had) (debt .high) (collateral .none) (income.0-15k)) „ о i n виде структур воспользуемся функцией Для определения примеров из табл-9.1 в в ш ассоциа- defstruct. Полный набор обучающих примеров представим вид тнвных списков и свяжем этот список с именем examp es Jsetq examples hi h) (collateral . none) (((risk . high) (history . bad) (debt . mgnj (income . 0-15k)) v high) ((risk . high) (history . unknown> ( [collateral . none) (income . 15k зьк '(risk . moderate) (history . unknown (debt (collateral . none) (income . 15k 763 Глава 15. Введение в LISP
high) ‘biStory . unhno-n) (debt ' 1OW’ (C°llatera 1 • insane - 0-15W) (debt . low) (collateral . none) /(risk . Io*» (history - (incone . оуег"^к’* unknown) (debt - low) (collateral . adequate) ((risk . low) (history . (incane - over-35k)) . low) (collateral . none) ((risk - high) (history • ban/ (incone . °-15k*> (history • bad) (debt . low) ((risk . moderate) (history^ . оуеГ_35к)} (collateral . adequate) I iow) (coliateral . none) ((risk . low) (history . good) (incone - good) (debt . high) (collateral . adequate) ((risk . low) (niscux/ • » ^T/h^hflSscory - good) (debt . high) (collateral . none) (history . good) (debt . high) (collateral . none) (^iT/lw* ^iitoxy . good) (debt . high) (collateral . none) (OrisR6. high) (history . bad) (debt . high) (collateral . none) (incone . 15k-35k)))) Поскольку задачей дерева решений является определение риска для новых примеров, в процессе проверки используются все свойства, за исключением значения риска, (setq test-instance '((history . good) (debt . low) (collateral . none) (income . 15k-35k))) Определим свойства для такого представления объектов. (defun history (object) (edr (assoc 'history object .-test S'equal))) (de fun debt (obj ec t) (edr (assoc 'debt object .-test S'equal))) (defun collateral (object) (edr (assoc 'collateral object :test #'equal))) (defun income (object) (edr (assoc 'income object .-test #'equal))) (defun risk (object) (edr (assoc 'risk object :test S'equal))) Свойство property это функция, определенная над объектами. Такие функции пред сгавляются в виде элементов структуры, включающей другую полезную информацию, (defstruct property name test values) свойства, name—это H1?1SPa-Pr°Perty связан c Функцией, возвращающей знз зователя. Элемент val Своиства- Оно включается исключительно для удобства функцией test. Тпебпк ~ Список всех значений, которые могут возврат- став значительно упрощаТ*6 Лаговременного определения диапазона значении Часть VI. Языки и технологии программирования для искусственного инте^
Деревья решений можно определить с помощью следующей структуры. (defstruct decision-tree CeSt-name test branches) (defstruct leaf values) Таким образом, дерево поиска является экземпляром структуры decision-tree или leaf- труктура leaf состоит из одного элемента value, определяющего класс объекта. Экземпляры типа decision-tree представляют внутренние узлы дерева. Их элементами являются test, test-name н множество ветвей branches. Функция test зависит от одного аргумента— объекта— и возвращает значение свойства. При классификации объекта с помощью funcall вызывается функция test, Rтиращаемое ею значение применяется для выбора ветви дерева. Имя этого свойства залает элемент test-name. Этот элемент облегчает пользователю контроль дерева решении. При вы- полнении программы он не играет никакой существенной роли. Элемент branches — это ассоциативный список поддеревьев. Ключами являются возможные значения, воз- вращаемые функцией test, а данными — сами поддеревья. Например, дерево на рнс. 9.13 соответствует следующему набору вложенных струк- тур, Обозначение #S применяется при реализации ввода-вывода в Common LISP, Оно означает, что данное s-выражение представляет структуру, #S(dec is ion-tree :test-name income •.test #<Compiled-function income #x3525CE> :branches ((0-15k - #S(leaf :value high)) (15k-35k . #S(decision-tree :test-name history stest #<Compiled-function history *x3514D6> :branches ((good . #S(leaf rvalue moderate)) (bad . tSQeaf :value high)) (unknown . #S(decision-tree :test-name debt .-test #<Campiled-function debt Fx3olA.i> :branches ((high . #S(leaf rvalue high)) (low.#S(leaf :value moderate)))))))) (over-35k . #S(decision-tree :test-name history :test #<Co...d-fun.. history #x3514D6> -branches ((good . #S(leaf .-value lew)) (bad - #S(leaf rvalue moderate)) (unknown . #S(leaf : value lew))))))) 765 Глава 15. Введение в USP
хо„ В “ГОрШМе OnP” eXaWPle-£r^ «е" дуюшнм образом. (defstruct example-frame instances properties classifier site Здесь instances —это список объектов, для которых известно, к какому классу они принадлежат. Эи данные используются в качестве обучающего множества дц построения дерева решения. Элемент properties — это список объектов типа property включающий свойства, которые можно использовать при проходе узлов дерева. Элемент classifier — это тоже экземпляр типа property. Он представ- ляет классификацию, которую должен изучить алгоритм ЮЗ, Поскольку известно, к каким классам принадлежат обучающие примеры, эту информацию можно включить в качестве еще одного свойства. Элемент size задает количество примеров в списке instances, a information — это содержимое данного множества примеров. Зна- чения size и information определяются из примеров. Поскольку их вычисление занимает определенное время, а эти данные используются многократно, имеет смысл сохранить их в отдельных элементах. Напомним, что алгоритм ЮЗ строит деревья решений рекурсивно. Для каждого эк- земпляра структуры example-frame выбирается свойство, которое используется для разбиения обучающего множества на непересекаюшиеся подмножества. Каждое под- множество содержит все экземпляры, для которых данное свойство принимает одно и то же значение. Выбранное свойство используется в качестве теста для данного узла дерева. Для каждого подмножества в этом разбиении алгоритм ID3 рекурсивно строит поддерево с учетом остальных свойств. Алгоритм прекращает свою работу, если ос- тавшееся множество примеров принадлежит к одному и тому же классу. Для него соз- дается лист дерева. Определим структуру partition, которая разбивает множество примеров на под- множества с использованием заданного свойства. (defstruct partition test-name test components info-gain) мым для создан!^ э*3<"?1ПЛяра структуры partition связан со свойством, используй пользователя, Элемент HeHiW’ test'name — это имя теста, включенное для удобств» ной реализации components — СВЯЗЫвается с подмножествами разбиения. Вд ные значения выбрадного ««г ассоциативный список. Ключами являются р frame. Элемент gain-inf 1СТВа’ & данными~“ экземпляр структуры ехаП1₽ менения теста для данного L°тасчаст за информацию, получаемую в результате пр структуры example-framed1 ДСрева’ Подобно элементам size и in forma но используемое в алгоритме. СодсрЖ1гг вычисляемое значение, мн0^^ точно отражает его структуру Даря этим 11111351 Данных реализация алгоритм для иекуес^е^^^
15.13.2. Алгоритм ID3 Основу реализации алгоритма ID3 составляет оеююсн™, л ва build-tree, параметром которой являете, rS""" ДеРС' (defun build-tree (training-frame) (cond ; Вариант 1: пустое множество примеров ^ke-le^fa”l₽1r£r?”e'lnStan':es training-£гаю)) примеров-)) Ue ‘невоз“°*н° классифицировать: нет ; Вариант 2: использованы все тесты 1 (e™P1®-frame-properties training-frame)) (make-leaf =value (list-classes training-frame))) ; Вариант 3; все примеры принадлежат одному классу (JxampJ-e-frame-information training-frame)) (make-leaf :value (funcall (property-test (example-frame-classifier training-frame) ) (car (example-frame-instances training-frame))))) • Вариант 4: выбор теста и рекурсивный вызов (t (let ((part (choose-partition (gen-partitions training-frame)))) (make-decision-tree .•test-name (partition-test-name part) -•test (partition-test part) -.branches (mapcar (lambda (x) (cons (car X) (build-tree (cdr x)))) (partition-components part))))))) С помощью конструкции cond функция build-tree ана.тизирует четыре возмож- ных случая. В первом случае структура training-frame не содержит обучающих примеров. Такая ситуация может встретиться в том случае, если множество обучающих примеров алгоритма ID3 неполно — в нем отсутствуют экземпляры с указанным значе- нием данного свойства. В этом случае создается лист, содержащий сообщение “невозможно классифицировать: нет примеров”. Второму случаю соответствует ситуация, когда элемент свойств структуры train- ing-frame пуст. При рекурсивном построении дерева решений после выбора свойства оно удаляется из списка свойств данного экземпляра example-frame для всех подде- ревьев. Если множество примеров не согласовано, список свойств может исчерпаться до построения однозначной классификации обучающего множества. В этом случае создает- ся лист, значением которого является список всех классов, к которым могут относиться обучающие примеры. Третья ситуация представляет успешное завершение построения ветви дерева. Если содержимое элемента information структуры example-frame равно нулю, значит, примеры принадлежат одному и тому же классу (согласно определению информация по Шеннону, приведенному в разделе 12.3)- Алгоритм завершается и возвращается лис- товой узел, значение которого соответствует оставшемуся классу. В первых трех случаях построение дерева завершается. В четвертом случаедля по- стРоення поддеревьев текущего узла рекурсивно вызывается функция build tree, ^кция gen-part it ions с учетом тестов элемента свойств генерирует список всех «иможкых разбиении множества примеров, з ф.тешнз choose-partition выбирает 767 Глава 15. Введение в USP
- „ После связивлния в блоке let полученного разбиения с наиболее информ»™»»» "° шеннй. которому соответствует исполИован. " ременной part строятся >еел Дер hes связь1вается с ассоциативным списку „ый ДЛЯ разбиения тест в^=мен branches соответствует значение теста, а да„. поддеревьев. Каждому построенное в процессе рекурсивного вызова ные представляют собой дерево ре^ components структуры part уже прея. функции build-tree. Подал и1очамн которого являются значения свойств, а ставляет собой ассоциативный сп построение поддеревьев выполняется с по- данными - экземпляры ехалр' применнть функцию build-tree к каждому мощью функции шарсаг, объекту данных ассоцнативногеспн^^ арГумента training-frame - функция gen-partitxo __ возвращает все разбиения соответствующего под- объекта типа example-frame' создается с использованием некоторого свойст- множества примеров. Каждое р gen_partitions вызывает функцию parti- ва ИЗ списка properties, у экземпляр example-frame и выбранное свойст- tion, аргументами которо мер0В на основе значений этого свойства. Заметим, ™°еН—ю Формируя разбиение для каждого элемента списка свойств экземпляра training-frame. ((defun 3en'Pa^i^"S(^ri(partitior’training-frame х) ) ^maP<(example-^ranie-properties training-frame))) Функция choose-partition просматривает список возможных разбиений и вы- бирает из ннх наиболее информативное. (defun choose-partition (candidates) (cond ((null candidates) nil) ((= (list-length candidates) 1) (car candidates) ) (t (let ((best (choose-partition (cdr candidates))) (if (> (partition-info-gain (car candidates) ) (partition-info-gain best)) (car candidates) best)))}) Самой сложной функцией при реализации алгоритма ID3 является функция р^аг^^^ tion. Она получает в качестве параметров экземпляр exapmle-frame и н свойство property, а возвращает экземпляр структуры разбиения. ((defun partition (root-frame property) f e)j) (let ((parts (mapcar #' (lambda (x) (cons x (make-example- r (property-values property)))) frame)) (dolist (instance (example-frame-instances root- (push instance (example-frame-instances tance) (cdr (assoc (funcall (property-test property) inS parts))))) (mapcar #’ (lambda (x) (let ((frame (cdr x))) (setf (example-frame-properties frame) rtieg (remove property (example-frame-proP root-frame))) (setf (example-frame-classifier frame) (example-frame-classifier root-fram (setf (example-frame-size frame) (list-length, (example-frame-instances frame))) (setf (example-frame-information frame) (сотриte-informat ion (example-frame-instances frame) (example-frame-classifier root-frame))))) parts) (make-partition : test-name (property-name property) : test (property-test property) :components parts ;info-gain (compute-info-gain root-frame parts)))) В функции partition сначала в блоке let определяется локальная переменная parts. Она инициализируется ассоциативным списком, ключами которого являются все возможные значения свойства, используемого для теста, а данными - поддеревья раз- биения. Это делается с помощью макроса dolist, который связывает с каждым элемен- том списка локальную переменную и оценивает ее. Пока элементами списка являются пустые экземпляры структуры example-frame, элементы, соответствующие каждой подзадаче, связываются со значением nil. С помощью формы dolist функция par- tition помещает каждый элемент root-frame в соответствующий элемент поддере- ва переменной parts. При этом используется макрос LISP push, модифицирующий список за счет добавления нового первого элемента. В отличие от cons функция push постоянно добавляет новые элементы в список. Этот фрагмент кода отвечает за разбиение множества root-frame. По завершении работы функции dolist переменная parts представляет ассоциативный список, в ко- тором каждый ключ является значением свойства, а каждый элемент данных — множе- ством примеров, для которых выбранное свойство принимает данное значение. С помо- щью функции тар с аг пополняется информация о каждом подмножестве примеров пе- ременной parts. При этом соответствующие значения присваиваются элементам properties, classifier, size и information. Затем строится экземпляр струк- туры partition, элемент components которой связывается с переменной parts. Во второй ветви функции build-tree для создания листового узла при неодно- значной классификации используется функция list-classes. В ней для перечисления классов, которым соответствует список примеров, применяется цикл do. В этом щисле список classes инициализируется всеми значениями классификатора из training- frame. Если в списке training-frame содержится элемент, принадлежащий некото- рому классу, то этот класс добавляется в список classes-present. (defun list-classes (training-frame) (do ((classes (property-values (example-frame-ciassifxer training-frame)) (cdr classes)) , ' /₽T,-amnle-f rame-classifier (classifier (property-test (example ггал training-frame))) classes-present) ;результаты переменной ((null classes) classes-present) накапливаются в локальной .•выход из цикла ----------------------------------------------------—----- 768 Часть VI. Языки и технологии программирования для искусственной 769 Глава 15. Введение в USP
(if (member (car classes) (example-frame-instancas (xy) (equal * Classl£«г у);;, (push (car classes) classes-present)))) n Лункцип используются для извлечения из примеров необходимой инф00. „ац^ун Xompuce-infonaation определяет информационное содерж^ нации. Функш „ “вычисляет количество примеров для каждого класса и долю каж Ztacca во всем множестве обучающих примеров. Если предположить, что зга доля ХГтс ует вероятности принадлежности объекта данному классу, то можно вь,Ч11с. примеров по определению Шеннона. (defun compute-information (examples classifier) (let ( (class-count (mapcar #'(lambda (x) (cOnsxO)) (property-values classifier))) (size 0)) ; вычисление количества примеров для каждого класса (dolist (instance examples) (inef size) (inef (edr (assoc (funcall (property-test classifier) instance) class-count)))) (•вычисление информативности примеров (sum (lambda (x) (if (= (edr x) 0) 0 (/ (edr x) size) (log (/ (edr x) size) 2)))) class-count))) Функция compute-infо-gain вычисляет прирост информации для данного раз- биения путем вычитания взвешенного среднего информации компонентов из соответст- вующего значения, полученного для родительских примеров. (defun compute-infо-gain (root parts) (- (example-frame-information root) (sum #'(lambda (x) (* (example-frame-information (edr x)) (/ (example-frame-size (edr x)) (example-frame-size root)))) parts))) Функция sum вычисляет значения, получаемые в результате применения функции f ко всем элементам списка list-of-numbers. (defun sum (f list-of-numbers) (apply ' + (mapcar f list-of-numbers))) На этом реализация функции build-tree завершена. Осталось реализовать фУ«к* С которая на основе дерева решений, построенного функцией bui Benet ТТ" KJIacc,,*HKau«'O указанного объекта путем рекурсивного проход* та. Пои зтом дНКЦИЯ достаточно проста. Ее выполнение завершается по достижем)*1' цируемого объект<Д0М УЗЛе пРовеРяется значение соответствующего свойства клас «стаи пвивьпмГж * "0ЛуЧСНН™ Результат используется в качестве ключа для ветви при вызове функции assoc. 770 Часть VI. Языки и технологии программирования для искусственного ин^*
(defun classify (instance tree) (if (leaf-p tree) (leaf-value tree) (classify instance (edr (assoc (funcall (decision-tree-test tree) instance) (decision-tree-branches tree)))))) Теперь вызовем функцию build-tree для примера из табл. 9.1. Свяжем символ tests со списком определений свойств для кредитной истории, долга, поручительства и дохода, а символ classifier — со значением риска для данного примера. С помощью этих определений примеры из таблицы можно связать с экземпляром example-frame, (setq tests (list (make-property :name 'history : test #'history :values '(good bad unknown)) (make-property :name 'debt •.test fr'debt :values '(high low)) (make-property .•name 'collateral :test #'collateral :values '(none adequate)) (make-property :name 'income :test #'income tvalues '(0-to-15k 15k-to-35k over-35k)))) (setq classifier (make-property :name 'risk :test #'risk -.values ' (high moderate low) ) ) (setq credit-examples (make-example-frame :instances examples :properties tests :classifier classifier :size (list-length examples) :information (compute-information examples class))) На основе этих определений можно построить деревья решений и использовать их для классификации примеров по их кредитному риску. > (setq credit-tree (build-tree credit - examples)) #S(decision-tree :test-name income : test #<Compiled-function income #х35ч..СЕ> •.branches ((0-to-15k . #S(leaf :valuehigh)) (15k-to-35k - #S(decision-tree 771 Глава 15. Введение в LISP
:test-name history :test #<COTpiled-function historv .-branches 514D6> ((good . #S(leaf rvalue moderate)! (bad . #S(leaf rvalue high)) П (unknown . #S(decision-tree : test-name debt .test #<Compiled-funCti_ .•branches debt ^35.. (((high . #S(ieaf ;valn b (low . #S(leaf ,-vaiup 6 hi9h}} moderate)))))))) (over-35k . #S(decision-tree history ‘ test'hame ►(classify ((history . good) (income . 15k-to-35k)) credit-tree) moderate ibranches ((good low) ) (bad . moderate)) (unknown . #S(leaf :value low))))))) (debt . 1OW (collateral . none) • .-valre ««(leaf rvalue и PROLOG и Lisp Л -------------- -___________ ^ "a Л0ГИКе ** матема™еской модели вь»й ™Г'"' УВДаННОС X Те°РеМ- а L1SP - иа ™>Р“‘ Зуемвд ал°В Пр°грамм,'Рования струкпт ” Э™ язь1ки нз множества более традаки- ‘Рея™. Унас?^ К°Т°рЫХ °nPe«™ ар^пуД »« Н PR0L°G В С'~У - матемХем^- своим Тсопети как prOLOG-^болееаКЖе ”*выразительную мощь н ясность. чисто функии <1ескнм корням, LISP па°ВЬ1И И3 Этнх ДВУХ языков — остался близокI СКИМ языком °Нальнь1м языком ппогпй38ИЛСЯ настолько> что его уже нельзя назв^ нологий. к ПР°гРаммирования поллаММИр°Вания' ^Режде всего он стал пракпн^ Рактные типы Мп ОТНОсятся ФункциоияеггР>КИВа1ОЩИм П0ЛНЬ1й спектр современных т# °РиентИрованн анных, обработка ПотЬН°е и пРнкладное программирование, а * в ^Рсимуше^Пц^аммирование. °К°В’ 0Цени8а»пе с задержкой и объ^ Го пРограммИров°В прОгРаммированХ' ЧТ° Него РазРаботан широкий диапазон^ СИХНЬИ?- средах ГШИРЯади^ б^овую модель фун^н^ Р°Ва^ HBUSP.в лаинХ ^_ИИ С возможностями списков ПО C(>3J! ______В1ГОЙ ^ве а™Ь“ Сосга»™»т основу современного пр»^ 770 и '——адись проиллюстрировать этот стиль- Часгь _____________________________________________ п₽ограммирования для искусственного интвв’
При разработке алгоритмов для этой главы использована книга [Abelson и Sussman, 1985]. Хорошим руководством по изучению Common LISP является [Steele, 1990]. Кроме того, можно порекомендовать такие учебники по программированию на LISP, как [ToureUky, 1990], [Hasemer и Domingue, 1989], [Graham, 1993] и [Graham, 1995]. Многие книги посвящены применению языка LISP для разработки систем решения задач искусственного интеллекта. Так, [Forbus и deKleer, 1993] содержит описание реа- лизации известных алгоритмов ИИ на LISP и является незаменимым пособием для спе- циалистов по практической реализации методов искусственного интеллекта. Кроме того, существует множество книг, посвященных общим проблемам искусственного интеллекта и их решению иа основе LISP. К ним относятся [Noyes, 1992] и [Tanimoto, 1990]. 15.15. Упражнения 1. Метод Ньютона нахождения квадратного корня из числа предполагает вычисление значения корня и проверку его точности. Если найденное решение не обладает тре- буемой точностью, вычисляется новая оценка, и процесс повторяется. Псевдокод этой процедуры имеет следующий вид. function root-by-newtons-method (х, tolerance) guess := 1; repeat guess := 1/2(guess + x/guess) until absolute-value(x - guess * guess) < tolerance Напишите на LISP рекурсивную функцию вычисления квадратных корней по методу Ньютона. 2. а. Напишите на LISP рекурсивную функцию обращения элементов списка (не ис- пользуя встроенную функцию reverse). Оцените сложность реализации. Можно ли реализовать обращение списка за линейное время? б. Напишите на LISP рекурсивную функцию, получающую вложенный список про- извольной длины и выводящую зеркальный образ этого списка. В частности, функ- ция должна демонстрировать такое поведение. > (mirror '((a b) (с (d е))) ) ( ( (е d) с) (Ь а) ) 3. Напишите на LISP генератор случайных чисел. Эта функция должна поддерживать гло- бальную переменную seed и возвращать разные случайные числа при каждом вызове. Описание алгоритма генерации случайных чисел найдите в специальной литературе. 4. Напишите функции initialize, push, top, pop и list-stack, поддерживаю- щие глобальный стек. Оии должны вести себя глгтчюгинмооразом. > (initialize) nil > (push 'foo) foo > (push 'bar) bar > (top) bar > (list-stack) 773 Глава 15. Введение в USP
(bar foo) > (pop) bar . ? (list-stack? (£oo) с помощью списков, не содержащих пОйт^ 5. Множества можно "Ре®^ р ю реализацию операций объединения, пепес элементов. Напишите на Libre ₽ n „ difference (Не’ *-> 6 Задача башен Ханоя основана иа следующей легенде. В дальневосточном монастыре существует головоломка, состоящая из трех X» иголок И 64 золотых дисков различного размера. Изначально даск„ 6 Хваны на одну щлу и упорядочены по уменьшению размера. Монахи пыИ1Пс1 переместить все диски на другую иглу по следующим правилам. 6.1. Диски можно перемещать только по одному. 6.2. Ни один диск не может располагаться поверх диска меньшего размера. Согласно легенде, когда эта задача будет решена, наступит конец света. Напишите на LISP программу для решения этой задачи. Для простоты (и чтобы про- грамма завершила свою работу еще при вашей жизни), не пытайтесь решить полную задачу о 64 дисках. Попробуйте рассмотреть 3 или 4 диска. 7. Напишите компилятор для оценки арифметических выражений вида (оператор операнд! операнд?), ! где оператор — это +, * или /, а операндами являются числа или вложенные вы- ражения. Примером допустимого выражения является (*(+ 3 6) (— 7 9)). Допустим, что целевая машина поддерживает инструкции: (move value register) (add register-1 register-2) (subtract register-1 register-2) (times register-1 register-2) (divide register-1 register-2) ] Результаты всех арифметических операций присваиваются аргументу, хранящем^ в первом регистре. Для простоты количество регистров считайте неограниченный заннк^Т°Р ДОЛЖен полУчать арифметическое выражение и возвращать список Я тайных машинных операций. разделГ^ П°ИСКа в глУбннУ ° возвратами (аналогичный нСП0ЛЬЗ°ВШ*Н^е- ния задачи мимист Н™ переправы чел°века, волка, козы и капусты) для Той мне еРЭ И канни^ала- Задача формулируется следующим образом. нее. У бе7е°га находитеКаИИИбаЛа На берегу реКИ И хоТЯТ пеРеПРаВИ^вСкь" ни одна из групп не vmp Л°ДКа’ В К0ТоРУ!о могут поместиться только два 4 жегся больше, чем Есди на Одном нз берегов реки миссионР^ найти последователкилг^ 311001 То каннибалы превратятся в миссионеров- бой никаких превращен - перемещеннй всех людей через реку, ие вле«У ритм поиска в глубину для решения задачи о кувшинах с водо 774 Часть VI. Языки и технологии программирования для искус07
Имеются два кувшина емкостью 3 и 5 литров водь, соответственно. Их можно заполнять ОПОньГ^ ОДНОГ° В ДРУГОЙ д° тех "°га « °™ полным или пустым. Выработайте последовательность действий, при которой в большем кувшине окажется 4 литра воды. (Совет: используйте только целые числа) 10. Реализуйте функции build-solution и eliminate-duplicates для алгорит- ма поиска в ширину из раздела 15.3. 11. Используйте разработанный в упражнении 10 алгоритм поиска в ширину для реше- ния следующих задач. 11.1. Задача переправы человека, волка, козы и капусты (см. раздел 15.2). 11.2. Задача миссионера и каннибала (см. упражнение 8). 11.3. Задача о двух кувшинах (см. упражнение 9). Сравните полученные результаты с результатами работы алгоритма поиска в глуби- ну. Различия должны особенно четко проявиться в задаче о двух кувшинах. Почему? 12. Завершите реализацию “жадного” алгоритма поиска из подраздела 15.3.3. Исполь- зуйте его с учетом соответствующих эвристик для решения каждой из трех задач, перечисленных в упражнении 11. 13. Напишите на LISP программу решения задачи о 8 ферзях. (Задача состоит в нахож- дении на шахматной доске такой позиции для 8 ферзей, чтобы они ие могли побить друг друга за 1 ход. Следовательно, никакие два ферзя не должны располагаться в одном ряду, столбце или на одной диагонали.) 14. Напишите на LISP программу решения полной версии задачи о ходе конем для доски 8x8. 15. Реализации алгоритмов поиска в ширину, в глубину и “жадного” алгоритма с ис- пользованием списков open и closed очень близки друг другу. Они различаются только реализацией списка open. Напишите общую функцию поиска, реализующую любой из трех алгоритмов поиска, определив функцию поддержки списка open в качестве параметра. 16. Перепишите функцию print-solution из реализации интерпретатора для реше- ния задач логического программирования таким образом, чтобы она выводила пер- вое решение и ожидала запроса пользователя (например, символ возврата каретки) для вывода второго решения. 17. Модифицируйте интерпретатор для решения задач логического программирования таким образом, чтобы он поддерживал операторы or и not. Дизъюнктивное выра- жение должно принимать значение “истина”, если такое значение принимает хотя бы один из дизъюнктов. При обработке дизъюнктивных выражений интерпретатор дол- жен возвращать объединение всех решений, возвращаемых дизъюнктами. Отрицание реализовать несколько сложнее, поскольку отрицание цели истинно только в том случае, если целевое утверждение принимает значение “ложь”. Поэтому для отрица- ния цели нельзя возвращать никаких связанных переменных. Это результат предпо- ложения о замкнутости мира, описанного в разделе 12.3. 18. Реализуйте общие функции отображения и фильтрации map-stream и filter- stream, описанные в разделе 15.8. 19. Перепишите программу решения задачи поиека первых п нечетных чисел, Ф,<6онач- ЧИ с использованием общего фильтра потека filter-stream вместе функции 77S Глава 15. Введение в LISP
первые л чешы-v№« фн6оначчи. “4t. WB квитов P ^шя1(м 1ческого программИр0вад1и M XSSS—,ZTs^e”=^ C’’"«C>Z«°™*onePaWI>OM write ПрИ ПОЛОЖИТеЛЬНОМ °™*' «Книт^Ж “ i^Kpiwre потек, содержащий исходное множество подстановок. ш°о wr ппгяческого программирования, включив в него арифметические м 2L >. совет: как и в упражнении 2(1 сначала моднфн^ Ею solve ДЛЯ выявления этих операторов до вызова функции infer. Если содержит оператор сравнения, замените все переменные их значениями и оце. шпе это выражение. Если результатом оценивания будет nil, функция solve возвратить пустой поток. В противном случае она возвращает поток, содержащий ис- ходное множество подстановок. Будем предполагать, что выражения не содержат не- связанных переменных. В качестве более сложного упражнения определите оператор = как функцию (подобно оператору is в PROLOG), присваивающую значение несвязан- нон переменной и выполняющую проверку равенства, если все элементы связаны. 22. Используйте разработанные в упражнении 21 арифметические операторы в интер- претаторе для решения задач логического программирования для решения задачи консультанта по финансовым вопросам из главы 2. 23. Выберите задачу (например, диагностики автомобилей или классификации видов животных) и решите ее с помощью оболочки lisp-shell. 24. Модифицируйте оболочку экспертной системы из раздела 15,10 таким образом, что- бы в качестве ответов пользователя допускались не только значения у и п. Напри- мер, пользователь может задать связанные переменные для целевого утверждения. Для этого нужно изменить функцию ask-f or и связанные с ней функции и позво- лить пользователю вводить шаблоны, соответствующие целевому утверждению. В случае соответствия нужно запрашивать у пользователя коэффициент достоверности. 25. Дополните оболочку lisp-shell оператором not. В качестве примера обработки от- рицания цели с использованием рассуждений с неопределенностью используйте матер®-1 главы 7 и оболочку экспертной системы из главы 14, написанную на языке PROLOG. 6. Напишите ATN-анализатор (раздел 11.3) для некоторого подмножества английской языки. В коммт/^°ДеЛЬ И3 раздела 1512 систему охлаждения, понижающую темпе^)^ эффициент т?ЛИ °На пРевь1шаег заданное значение. Для каждой комнаты в₽еД1 13 системы. СИСТеме CL0S м°Дель для другой предметной области, например алгоритм Юз для решения другой задачи, выбранной по своему УсМ01рС 3** Часть VII Эпилог Потенциал компьютерных наук (при его полном изучении и реализации) поставит нас на более высокую ступень знания о мире. Компьютерные науки помогут нам достичь более глубокого понимания интеллектуальных процессов. Они углубят наши знания о процессах обучения, мышления и анализа. Мы сможем построить модели и концепту- альные средства для развития науки о познании. Подобно доминирующей роли физики в нашем веке при изучении природы материи и начала вселенной, сегодня на первый план выступает изучение интеллектуальной вселенной идей, структур знаний и языка. По моему мнению, это приведет к существенным улучшениям, которые в корне изме- нят нашу жизнь... Мне кажется, недалек тот час, когда мы поймем принципы организации знаний и управления ими... — Дж. Хопкрофт (J. Hopcroft), лекция по случаю вручения премии Тьюринга. 1987 Что такое мышление ? Нематериальная субстанция. Что такое материя? Этого никогда не осмыслить... — Гомер Симпсон (Homer Simpson) Мы научимся, когда поймем, что это важно. — Эрл Уивер (Weaver) Рассуждения о природе интеллекта Хотя в этой книге затрагивается множество философских аспектов искусственного интеллекта, основное внимание сосредоточено на инженерных технологиях, используе- мых для построения интеллектуальных артефактов на основе компьютера. В заключение книги мы вернемся к более сложным вопросам философских основ искусственного ин- теллекта, постараемся еще раз переосмыслить возможности науки о познании на основе методологии НИ, а также обсудить будущие направления развития этой дисциплины. Как неоднократно отмечалось ранее, исследования человеческого познания и спосо- бов решения задач человеком внесли существенный вклад в теорию искусственного ин- теллекта и разработку его программного обеспечения. В свою очередь, работы в области ИИ обеспечили возможность построения моделей и экспериментальную проверку науч- ЫКИ И Технологии программирования для искусственного и*1
многих дисциплинах, в том числе биологии, лингву „мх РйУ»’”™'Хчекие мы обсудим такие темы, как ограниченность, ' ПО, познания В г1роцсссов мышления и роль куль мжнот Ф™ ™ »< знаний, Эти вопросы приводят к таким новым научнь^и и S* нниииитер^епш жнмость модалсП прНрОда „ возможности *""Ч ским "Робмм™, автора привел его к междисциплинарному подходу о6. учного метода. Опьиавторн"Р иссдедованиями психологов. лиигвХо^>» эпистемологов и специалистов в других областях. изучающих’^ гтпоблем человеческого мышления. Ч Тоадиинонно работа в области искусственного интеллекта основывались на о физической символьной системе [Newell и Simon. 1976). В рамках этого подход* разработаны сложные структуры данных и стратегии поиска, которые, в своюочеое привели к получению множества важных результатов. Были созданы системы, об.ч^ шие элементами интеллектуального поведения, и выявлены многие компоненты, wZ ляюшие интеллект человека. Важно отметить, что большинство результатов, основании на этих ранних подходах, были ограничены предположениями, вытекающими из фило- софии рационализма. Согласно рационалистской традиции сам интеллект рассмирии. ется как процесс логических рассуждений и решения научных задач, основанный на прямом, эмпирическом подходе к пониманию вселенной. Этот философский рациона- лизм слишком ограничивает развитие искусственного интеллекта на современном этале. В книге представлено множество более современных разработок, в том числе альтер- нативные модели обучения, агентно-орнеитированные и распределенные системы реше- ния задач, подходы, связанные с овеществлением интеллекта, а также исследования по реализации эволюционных вычислений и искусственной жизни. Эти подходы к понима- нию интеллекта обеспечивают необходимые альтернативы идеям рационалистского ре- дукционизма. Биологические и социальные модели интеллекта показали, что человече- ский разум во многом является продуктом нашего тела и ощущений. Ои связан с куль- турными и социальными традициями, навеян произведениями искусства, нашим опытом гтооие^пПОКРУЖаЮЩИХ людей- Создавая методы и компьютерные модели таких сложны* следователи адаптация нейросетевых структур человеческого мозга, ис- более новых мощиых результатов, допои® область. Если подо®но самим компьютерным наукам. — довольно ново современных компьютер*™ ^ИЗики Ш1И би°логии измеряется столетиями, то воЧ» интегрировать различнее поп^ ИСЧИСЛяется Десятками лет. В главе 16 мы поста^ систем. Автор считает что °ДЫ К в единую науку создания интеллекту Дуг к возможности coinauuoTa наука’ технология, философия и жизненное кредо пр ном ^пользовании аРтеФакт°в и экспериментов, которые при к° ^ьных систем. В этой гла^п? ^ П0НЯТЬ °бщИе принципы построения ин^> ния эпистемологических осип/шд1рива10тся предложенные в главе 1 традиШ * КрИтнкам (хотя многие ич делается не ДДЯ того, чтобы дать д ц ие- лью ' исследовать и осВетит 3 Нападок еще требуют ответа), а с позитивно пути развития этой науки. Искусственный интеллект как эмпирическая проблема 16 Теория вычислительных систем — дисциплина эмпирическая. Можно было бы назвать ее экспериментальной наукой, но, подобно астрономии, экономике и геологии, некоторые из ее оригинальных форм испытаний и наблюдений невозможно втиснуть в узкий сте- реотип экспериментального метода. Тем не менее это эксперименты. Конструирование каждого нового компьютера — это эксперимент. Сам факт создания машины ставит вопрос перед природой; и мы получаем ответ на него, наблюдая за машиной в действии, анализируя ее всеми доступными способами. Каждая новая программа — это экспери- мент. Она ставит вопрос природе, и ее поведение дает нам ключи к разгадке. Ни машины, ни программы не являются "черными ящиками ", это творения наших рук. спроектиро- ванные как аппаратно, так и программно; мы можем снять крышку и заглянуть внутрь. Мы можем соотнести их структуру с поведением и извлечь множество уроков из одного- единственного эксперимента — Ньюэлл (A. Newell) и Саймон (Н.А. Simon), лекция по случаю вручения премии Тьюринга, 1976 Изучение мыслящих машин дает нам больше знаний о мозге, чем самоанатиз. Западный человек воплощает себя в устройствах. — Уильям С. Берроуз (William Burroughs), Завтрак нагишом Где то знание, что утеряно в информации? — Т. С. Элиот (T.S. Eliot), хоры из поэмы "Скала" 16.0. Введение______________________________ Для многих людей наиболее удивительным аспектом работы в сфере искусственного интеллекта является степень, в которой ИИ. да и большая часть теории вычислительных систем, оказывается эмпирической дисциплиной. Этот аспект удивителен поскольку большинство рассматривает эти области в терминах своего математического паиинже- нерного образования Пунк^альным математикам свойственно желание применить к
конструированию часто состоиХшТв^*14 и аНаЛИЗ- СТОХ3Х с-.»о назвало бы разумными". К несчастно, а может. „ Hao6 »" систем, которые общее сяожность интеллектуальных программ и иВ)|| *' <» МВ"С":ХГн ГХмодействию с миром природы и человеческой деятельно^' Н°СТЬ' "^мСьш анализ е чисто математической или чисто инженерной точек зре„ ®' лаютневозможнь™ „ссяедования искусствен кого интеллекта до о ЗУ 'и6 сделать их неотъемлемой частью теории интешектуалЫ1ых » Есе оПи elligen. systems), то в процессе конструирования, использования и анал,и аптефактов должны применять смесь из аналитических и эмпирических методов. С эд Хи зрения каждая программа ИИ должка рассматриваться как эксперимент: он став1П ” “ перед природой, и ответ на него - это результат выполнения программы. Огкл„к оды на заложенные конструкторские и программные принципы формирует наше понимание формализма, закономерностей и самой сути мышления. В отличие от многих традиционных наук, изучающих человеческое познание, разра- ботчики разумных компьютерных систем могут исследовать внутренние механизмы сво- их “подопытных”. Они могут останавливать выполнение программы, изучать ее внут- реннее состояние и как угодно модифицировать ее структуру. Как отметили Ньюэлл и Саймон, устройство компьютеров и компьютерных программ предопределяет их потен- циальное поведение, возможность всестороннего исследования, и доступность для по- нимания. Сила компьютеров как инструментов для изучения интеллекта проистекает из этой двойственности. Соответствующим образом запрограммированные компьютеры способны достигнуть высокой степени сложности как в семантике, так и в поведении. Такие системы естественно охарактеризовать в терминах физиологии. Кроме того, мож- но исследовать их внутренние состояния, что в большинстве случаев не могут осущест- вить ученые, занимающиеся разумными формами жизни. К счастью для работ в сфере ИИ, равно как и для становления теории интеллектуаль- ных систем, современные физиологические методы, в особенности относящиеся к ней- рофизиологии, пролили свет на многие аспекты человеческого мышления. Например, се- годня мы знаем, что функция человеческого интеллекта не цельна и однородна. Она, скорее, является модульной и распределенной. Достоинства этого подхода проявляются в работе органов чувств, например, сетчатки глаза, которая умеет фильтровать и предва- рительно обрабатывать визуальную информацию. Точно так же обучение нельзя назвать однородной, гомогенной способностью. Скорее, оио является функцией множества р33 пезонщнгйгГ6”’ КаЖДая И3 КОТОРЫХ адаптирована для специфических целей. Магнитно лучения е СКанироваН[1е’ позитронная эмиссионная томография и другие методы и >• блемы, особенно относаСШТабаМ НауКн’ необходимо решать важные философские система “познает" cro^^^8 К эпистемологии, или вопрос о том, как интеллекту предметом изучения исГГт»'5'" Проб,1емы “=Р>-ирУЮ’.ся од вопроса о том, ч —„ пР:Ме„:м^~о от~до более глу6оких’ вопросы о том, что такое “ ° Физнческой символьной системе. Дале ситься с узлами коннекш<лоМВ°Л ? СНмвольной системе, и как символы могут а, лизма, выраженного в МОдели- Рассматривается вопрос о роли Р т0е ручающихся программ. ВозникадГ?ИВН°Г° "орога и представленного в °?сП,укП' вопрос, как соотнести это с недостато з ----- Часть VU- 780
нения, внедрения агентов и социологических предпосылок решения зад^Вза^ючеиие дискуссии о философских вопросах будет предложена эпистемология в духе конструкти- визма. которая естественным образом согласуется с предложенным подходом к рассмот- рению ИИ как науки, так и эмпирической проблемы. Итак, в этой заключительной главе мы вновь возвращаемся к вопросу, поставленному в главе 1: что такое интеллект? Поддается ли ои формализации? Как построить системы, проявляющие это свойство? Каким образом искусственный и человеческий интеллект впи- сываются в более широкий контекст теории интеллектуальных систем? В разделе 16.1 рас- сматривается пересмотренное определение искусственного интеллекта. Оно свидетельству- ет о следующем. Хотя работа в области ИИ и осиоваиа на гипотезе о физической символь- ной системе Ньюэлла и Саймона, сегодня набор ее средств и методов значительно расширился. Эта область покрывает гораздо более широкий круг вопросов. Анализируются альтернативные подходы к вопросу об интеллекте. Они рассматриваются и как средства проектирования интеллектуальных устройств, и как составные части теории интеллекту- альных систем. В разделе 16.2 основное внимание читателя будет сконцентрировано на ис- пользовании методов современной когнитивной психологии, нейросетевых вычислений и эпистемологии для лучшего понимания области искусственного интеллекта. Наконец, в разделе 16.3 обсуждаются задачи, стоящие сегодня как перед практиками ИИ, так и перед специалистами по формированию понятий. Хотя традиционные подходы к ИИ зачастую обвиняют в рационалистском редукционизме, новые междисциплинарные методы тоже нередко страдают подобными недостатками. Например, разработчики гене- тических алгоритмов н исследователи искусственной жизни определяют интеллект с точки зрения дарвинизма: "Разумно то, что выживает". Знание в сложном мире внедрен- ных агентов часто сводится к формуле "знаю, как сделать", а не к "знаю, что делаю". Но для ученых ответы требуют пояснений, их не устраивает одна лишь "успешность" или "выживаемость" моделей. В этой заключительной главе мы обсудим будущее ИИ, сфор- мулировав насущные для создания вычислительной теории интеллекта вопросы, и при- дем к выводу, что эмпирическая методология является важным, если не наилучшим ору- дием для исследования природы интеллекта. 16.1. Искусственный интеллект: пересмотренное определение_________________________________ 16.1.1. Интеллект и гипотеза о физической символьной системе Основываясь иа материале предыдущих 15 глав, можно сформулировать пересмот- ренное определение искусственного интеллекта. ИИ- з„ю дисциплина. исследующая закономерности. лежащие в основе разумного поведения, путей построения и изучения артефактов, предо- пределяющих эти закономерности. Согласно этому определению исканный интеллект в Собой теорию закономерностей, лежали» в основе интеллекта, н в теория ошща- методолотю создания и исследования всевозможных моделей. р Глава 16. Искусственный интеллект как эмпирическая проблема 781
ИЗ научного метода проектирования и проведения эксп^ ется. Этот вывод прон текшей модели и постановки дальнейших экспер гов с ,1Ыью ИИ. бросает вызов многовековому Однако это определение, Оно даег людям. которые жаждут пониманий возможно, является нового МСШ111ЛИ поискам разума в каКиЛ ’ Х^м— Penrose, 1989). Бон. наука, нссдеду^ отсрьтк ещез» У _т вкяад „ человеческие знания, то он подтверди ™ не мистический эфир, пронизывающий люден н ангелов, в, прХвов и законов. которые можно постичь и применить в конструировав ^ХуаХых машин. Необходимо отмстить. что наше пересмотренное определенна *. и-ается шгтеллекга, оно определяет роль искусственного интеллекта в изучении природы и ^ИсХ^^давенствующий подход к искусственному интеллекту включал во- строение формальных моделей и соответствующих им механизмов рассуждений, осно, ванных на переборе. Ведущим принципом ранней методологии искусственного интел- лекта являлась гипотеза о физической символьной системе (physical symbol system), впервые сформулированная Ньюэллом н Саймоном [Newell и Simon, 1976]. Эта гипотеза гласит следующее. Физическая система проявляет разумное в широком смысле поведение то- гда и только тогда, когда она является физической символьной системой. Достаточность означает, что разумность может быть достигнута каждой правильно организованной физической символьной системой. Необходимость означает, что каждый агент, проявляющий разумность в общепринятом смысле, должен являться физической символьной системой. Необходимое условие этой гипотезы требует, чтобы любой разумный агент, будь-mo человек, инопланетянин или компьютер, достигал разумного поведе- ния путей физической реализации операций над символьными структурами. Разумное в широком смысле поведение (general intelligent action) означает действия, характерные для поведения человека. Физически ограниченная система ведет себя соответственно своим целям, приспосабливаясь к требованиям окружающей среды. „Л"И Cai7n°" собрали аргументы в пользу необходимого н достаточного условш* облЛи „Г’ 1976]'[NeWeH’ 1981]’ 1981]. В последующие годы специалист* Гипотеза и K0rHlrlT0J10JHH исследовали территорию, очерченную этом гипотезой. методологии- ^взическои Снмвольной системе привела к трем важнейшим пряна описания мира- пи1аб°ВаНИЮ СНМВ0л0в и символьных систем в качестве средСТВ иС. следования £аниц потенш™^”™08 Перебора’ в особенности эвристического. Да- тивной архитекгуоы и ЬНЫХ умозаключений таких систем; отвлеченно символьная система МеСТСя в ВИдУ предположение о том, что правильно постР0^ средств реализации. На**” Пр0ЯВ^ять интеллект в широком смысле независн^^ РУктивной дисциплиной Т’ С ЭТ0И Т0ЧКИ 3Рення ИИ становится эмпирическом Языковые знаки, называем Г НЗуЧаеТ ннтеллект, строя его действующие цз различные сторонние объекты ’ СЩ/валамм’ используются для обозначении ил» —________ _______ * к вербальные знаки в естественном языке, епмв 782‘ ~~---------------------------------------------------------"^*Г Часть»11 Lit
нжсп или ссылаются на конкретные вещи в мире разумного агента. Например, для этих объ- ектно-ссылочных связен можно предложить некоторый вариант семантики (см. раздел 2 3). С точки зрения символьных систем использование символов в ИИ уходит далеко за пределы такой семантики. Символами здесь представляются все формы знаний, опыта, понятий н причинности. Все подобные конструктивные работы опираются на тог факт, что символы вместе со своей семантикой могут использоваться для построения фор- мальных систем. Оин определяют язык представления (representation language). Эта воз- можность формализовать символьные модели принципиальна для моделирования интел- лекта как выполняемой компьютерной программы. В этой книге было детально изучено несколько представлений, в том числе предикатное исчисление, семантические сети, сценарии, концептуальные графы, фреймы и объекты. Математика формальных систем позволяет говорить о таких вещах, как непротиворе- чивость, полнота и сложность, а также обсуждать организацию знаний. Эволюция формализмов представления позволяет установить более сложные (широкие) семантические отношения. Например, системы наследования формируют семантическую теорию таксономического знания и его роли в интеллекте. Формально определяя наследова- ние классов, такие языки облегчают построение интеллектуальньи программ и предоставля- ют удобно тестируемые модели организации возможных категорий интеллекта. Схемы представления и их использование в формальных рассуждениях тесно связаны с понятием поиска. Поиск — это поочередная проверка узлов в априори семантически описан- ной сети представления на предмет нахождения решения задачи или подзадач, выявления симметрии задачи и тому подобного (в зависимости от рассматриваемого аспекта). Представление н поиск связаны, поскольку соотнесение задачи с конкретным пред- ставлением определяет априорное пространство поиска. Действительно решение многих задач можно значительно усложнить, а то и вовсе сделать невозможным, неудачно вы- брав язык представления. Последующее обсуждение индуктивного порога в этой главе проиллюстрирует эту точку зрения. Вьгразительным и часто цитируемым примером связи между поиском и представле- нием, а также трудности выбора удобного представления является задача размещения костей домино на усеченной шахматной доске. Допустим, имеется шахматная доска и набор костей домино, причем каждая закрывает ровно две клетки на доске. Полоцким также, что у доски не хватает нескольких клеток — на рис. 16-1 отсутствуют верхний ле- вый н нижнни правый уголки. Глава 16. Искусственный интеллект как эмпирическая проблема
тли чтобы установить, можно ли разместить кости домино ня Задача состоит в том, и этом каждая кость покрывала две и топ Д°СКе та»- чтобы все поля m проблему, перебрав все варианты расположен™" ДВе клетки. Можно пот_ А.шения на основе поиска, который является есгестве»"0'' тей. Это ™П''Ч™ ^|ИЯРДОСК,, в виде простой матрицы. игнорирующим Ъ» незначительные особенност.,, как цвет поля. Сложность подобного поискк "н®вероятна. Для эффективного ретения необходимо применение эвристически £ ТОЛОВ Пример можно отсечь частные решения, которые оставляют изолирован^ отдельные клетки. Можно также начать с решения задачи для досок меньшего размер" ™ как 2X2.3x3. и постараться расширить решение до ситуации 8x8. Опираясь на более сложное представление, можио получить изящное решение. Дц этого нужно учесть тот факт, что каждая кость должна одновременно покрывать белую и черную клетки. На усеченной доске 32 черные клетки, но лишь 30 белых, следовательно, -требуемое размещение невозможно. Таким образом, в системах, основанных на сим- вольных рассуждениях, возникает серьезный вопрос: существуют ли представления, по- зволяющие оперировать знаниями с такой степенью гибкости и творческого подхода? Как может конкретное представление изменять свою структуру по мере появления новых сведений о предметной области? Эвристика — это третий важный компонент символьного ИИ после представления и поиска. Эвристика — это механизм организации поиска среди альтернатив, предлагае- мых конкретным представлением. Эвристики разрабатываются для преодоления сложно- сти полного перебора, являющейся непреодолимым барьером на пути получения полез- ных решений многих классов интересных задач. В компьютерной среде, как и в челове- ческом обществе, интеллект нуждается в обоснованном решении ‘‘что делать дальше". На протяжении истории развития ИИ эвристики принимали множество форм. Такие ранние методы решения задач, как метод поиска экстремума (hill climbing) в шашечной программе (см. главу 4) или анализ целей и средств (means-ends analysis) в обобщенной системе решения задач General Problem Solver (см. главу 12), пришли в ПИ из других дисциплин, таких как исследование операций (operations research), и постепен- но выросли до обшепрнменимых методов решения задач ИИ. Характеристики поиска, включая допустимость (admissibility), монотонность (monotonicity) н осведомленность (informedness), являются важными результатами этих ранних работ. Подобные методы часто называют слабыми (weak methods). Слабые методы были разработаны как универ- С(м:1Те?1И поиска« рассчитанные на применение в целых классах предметны'*. and Simon' 1972L 1Emst « Newell. 1969]. Эти методы и их характер»- стики рассмотрены в главах 3, 4, 5 и 12. ИИ с исполмпй?1 8 ПредставленЬ1 сильные методы (strong methods) для решения зада4 ний с ис пользован Г™ Экспердных систем на основе продукционных правил, рассужу а также символьногооб™(modet'based reasoning) и примеров (case-based reasoning- тоды фокусируют внимГмеНИЯ Symbol'based learning). В отличие от слабых, сильны ласти, будь то медицина инФормации’ специфичной для каждой предметно тоды лежат в основе э внутренних органов или интегральное исчисление. Сильны _ усвоением знаний. В сильны^'4 СИСТем 11 W*» подходов к решению задач с акТ’'*ньВ. необходимых для пешенма * Методах особое значение придается количеству д представлению, управлению^411’ обучению и пополнению знаний, их синтакси4- Управлению неопределенностью, а также вопросам о качестве знан»» Часть VII. Э^’' 784
П°::оМХ™„ИеСУЩеС1ВУеТ ДеЙ'™«—и» |,н™лектуалы|ых СИМВОЛЬНЫл umvicm * Характеристика интеллекта как физической ~ реканин. Большую их часть легко отвергнуть пассмотпев “ СИСТеМЫ вызывает немало на- Р ., обоснования (отпппгПпоТ РНу1’ Рассмотрев вопросы семантического значе- ния и обоснования (groundmg) концепции символов и символьных систем Вопрос “смысла , конечно, тоже бьет по идее интеллекта как и р и секта как поиска в предварительно интеппоети- рованных с"«“льных структурах. Понятие смысла в традиционном ИИ развито весьма слабо. Тем не менее искушение сдвинуться в сторону более ••мате.матозиро^шой" семан- тики. например, теории возможных миров (possible worlds), представляется ошибочным. Такой метод уходит корнями к рационалистской идее подмены гибкого эволюционирую- щего интеллекта материализованного агента миром ясных, четко определенных идей. Обоснование смысла — это проблема, которая всегда путала планы как привержен- цев, так н критиков искусственного интеллекта, а также когнитологов. Проблема обосно- вания сводится к следующему: как символы могут иметь смысл? В работе [Searle, 1980] она рассматривается на примере так называемой “китайской комнаты". Автор помещает себя в комнату, предназначенную для перевода китайских предложений на английский. Ему передают набор китайских иероглифов, а он отыскивает значение иероглифов в большом каталоге и передает на выход соответствующий набор английских символов. Автор заявляет, что даже без знания китайского языка его “систему" можно рассматри- вать как машину — переводчик с китайского на английский. Но здесь возникает одна проблема. Любой специалист, работающий в области маптин- ного перевода или понимания естественных языков (см. главу 13), может возразить, что “переводчик", слепо сопоставляющий один набор символов с другим, выдает результат очень низкого качества. Более того, возможности текущего поколения интеллектуальных систем по “осмысленной" интерпретации набора символов весьма ограничены. Проблема слишком бедной опорной семантики распространяется н на вычислительно реализованные сенсорные модальности, будь то визуальные, кинестетические или вербальные. Что касается понимания естественного языка, Лакофф и Джонсон [Lakoff и Johnson, 1999] возражают, что способность создавать, использовать, обменивать и интерпретиро- вать осмысленные символы является следствием интеграции человека в изменяющуюся социальную среду. Благодаря ей возникли человеческие способности выживания, эволю- ционирования и продолжения рода. Она сделала возможными рассуждения по аналогии, юмор, музыку и искусство. Современные средства и методы искусственного интеллекта и впрямь весьма далеки от способности кодировать и использовать эквивалентные по “смыслу” системы. Прямым следствием бедной семантики является то, что методология поиска в тради- ционном ИИ рассматривает лишь предварительно интерпретированные состояния и их контексты. Это означает, что создатель программы ИИ связывает с используемыми сим- волами семантический смысл. Поэтому интеллектуальные системы, включая системы обучения и понимания естественного языка, могут строить .тишь не*УЮ вычисляемую Функцию в этой интерпретации. Таким образом, большая часть снстем Ш1 очень ограни- чена в возможности построения новых смысловых ассоциации по мере изучения окру- жающего мира [Lewis и Luger, 2000]. Вследствие стесненных возможностей семантического чизельные успехи связаны с разработкой компоненты реше- « от чересчур широкого контекста и в гожевре С11СКМ folbU1M т часть ния задачи с помошью заранее интерпретируемых с Глава 16. Искусственный интеллект как эмпирическая пробл 785
,тай книге Но и такие системы не поддерживают множественных и„те„ , „оминалась в этой кни^ бн0СТИ восстанавливать работоспособность после сбОя ₽ ревший и <^ч““ й ИСТОрии искусственного интеллекта изучались р^ На 'Ф»тя*ен™ 0 ф1В1,ческой символьной системе. Были разработаны альТСрна „Ыс варианты, последних главах этой книги, символьная система „ т„вы этому подходу, возможные средства реализации интеллектуальной система, "°нск " еяьнь е модели основанные на работе органического мозга, а также на проще ^“гиче кой эволюции, предоставляют альтернативную базу для понимания и„. XX В терминах научно познаваемых „ эмпирически воспроизводимых процессов. Оставшаяя часть этого раздела посвящена обсуждению этих подходов. 16.1.2. Коннекционнстские, или нейросетевые, вычислительные системы Существенной альтернативой гипотезе о физической символьной системе являются исследования в области нейронных сетей и других, заимствованных из биологии, вычис- лительных моделей. Нейронные сети, например, являются физически реализуемыми вы- числительными моделями познания, не основанными на предварительно интерпретиро- ванных символах, которыми точно описывается предметная область. Поскольку знания в нейронной сети распределены по всей ее структуре, зачастую сложно (а то и невозмож- но) соотнести конкретные понятия с отдельными узлами или весовыми коэффициентами. Фактически любая часть сети может служить для представления разных понятий. Следо- вательно, нейронные сети являются хорошим контрпримером, по крайней мере, условию гипотезы о физических символьных системах. Нейронные сети и генетические алгоритмы сместили акцент исследований ИИ с про- блем символьного представления и стратегий формальных рассуждений на проблемы обучения и адаптации. Нейронные сети, подобно человеческим существам и животным, умеют адаптироваться к миру. Структура нейронной сети формируется ие только при ее разработке, но и при обучении. Интеллект, основанный на нейронной сети, не требует переведения мира иа язык символьной модели. Скорее, сеть формируется при взаимо- действии с миром, который отражается в неявной форме опыта. Этот подход внес значи- тельный вклад в наше понимание интеллекта. Он дал правдоподобное описание меха- низмов, лежащих в основе физической реализации процессов мышления; более жизне- спосо ную модель обучения и развития; демонстрацию возможности путем простой локальной адаптации сформировать сложную систему, реагирующую на реальные явле- , мощное орудие для когнитивной теории нейронных систем (neuroscience), множество всттпДЭРЯ СВОеЙ мног°граниости нейронные сети помогают ответить на ИИ Важный кпяС0В' лежащих за пределами впечатляющих возможностей символьного Щедра,™ ZC ™ В°ПРОСОВ Касается пР°блемы перцепции. Природа ие столь дикатного исчисления^ей^6017 H;HUCr0 В0СПР»*тия в виде набора точных формул пр „ образов из хаоса сенсорных ст^улсГ™ °беСпечивают м°Дель выделения “осмыслен жели аналогичные сщтш1НН°Г° пРедставлення нейронные сети часто более сеть может эффективно клагг11СИСТеМЫ' ^°^етствующим образом обученная нейро аеческому восприятие, основач^ИЦИ₽0Ва1Ъ Н0Вые Вх0ДНЬ1е данные, проявляя подобное нескольких нейронов сепьезнп Не Нй строго” логике, а иа “схожести”. Аналогично п Это является следствием избыто С ПОаяияет на производительность большой иеиронно! _______________ юности, часто присущей сетевым моделям. 786 ~~~ -------•—_________________ __———х
Наверное, самым притягательным аспектом kouu₽v,.«« еобиостъ обучаться. Вместо построения подробной “ С"°' ОСП. благодаря гибкости своей с^уктуркмо™M°A“" “'Т"'™' г/ /ры могут адаптироваться на основе опыта Они ие столько строят модель, сколько сами формипуются пап L,„nu, ис *г р руются под влиянием мира. Обучение является одним из главных аспектов интеллекта. И именно ит пппТ,,.,,., лучение является нно проблемы обучения вырастают наибо- лее сложные вопросы, связанные с нейросетевыми вычислительными системами. Почему мы до сих пор не создали мозг Недавиие исследования в когнитивной теории нейронных систем [Squire и Kosslyn, 1998], [Gazzaniga, 2000] представляют новый аспект в понимании когнитивной архитектуры человеческого мозга. В этом разделе мы кратко ознакомимся с некоторыми открытиями в этой области, проведя параллель между ними и искусственным интеллек- том. Эти вопросы будут рассмотрены с трех позиций: иа уровне, во-первых, нейрона, во- вторых, нейронной архитектуры и, в-третьих, когнитивного представления проблемы ко- дирования (encoding). На уровне отдельного нейрона Шепард [Shephard, 1998] и Карлсон [Carlson, 1994] определяют множество различных типов нейронной архитектуры, построенной из кле- ток, каждая из которых выполняет специализированную функцию и играет свою роль в большей системе. Они выделяют клетки рецепторов наподобие клеток кожи, которые передают входную информацию другим скоплениям клеток, внутренним нейронам, ос- новная задача которых сводится к передаче информации внутри скоплений клеток, и мо- торным нейронам, формирующим выход системы. Нейронная активность имеет электрическую природу. Состояние возбуждения или покоя определяется характером ионных потоков в нейрон и из него. У типичного нейро- на потенциал покоя составляет приблизительно -70 мВ. Когда клетка активна, окончание аксона выделяет определенные вещества. Эти химические вещества, называемые медиа- торами (neurotransmitters), взаимодействуют с постсинаптической мембраной, обычно вливаясь в нужные рецепторы и возбуждая тем самым дальнейшие ионные токи. Потоки ионов, достигая критического уровня, около -50 мВ, формируют потенциал возбужде- ния (action potential) — триггерный механизм, однозначно определяющий степень воз- буждения клетки. Таким образом, нейроны сообщаются, обмениваясь последовательно- стями двоичных кодов. Существует два вида постсинаптических изменений, вызванных достижением потен- циала возбуждения: тормозящие (inhibitory), наблюдаемые в основном в межнейронных структурах клеток, и возбуждающие (excitatory). Такие положительные и отрицательные потенциалы постоянно генерируются в синапсах дендритной системы. Когда результи- рующее влияние всех этих событий изменяет потенциалы мембран соответствующих нейронов от -70 мВ до примерно -50 мВ, пороговое значение превышается, и вновь инициируются ионные токи в аксонах этих клеток. На уровне нейронной архитектуры в коре головного мозга (тонком елое, покрываю- щем полушария мозга) содержится приблизительно 10 нейронов. Большая часть коры имеет складчатую форму, что увеличивает ее площадь поверхности. С точки зрения вы- числительной снстомы необходимо учитывать не только холичеегво синапсовл но нна- грузочные способности „о входу и выходу. Шепард (Shephard. 1998) примерно оценнва- ет оба этих параметра числом 1О’п нейрониых и компьютерных систем. суще- Кроме различии в клетках и архитектурах не р совепшен- огвует более глубокая проблема когнитивного представления. Мы. к примеру, совершен Глава 16. Искусственный интеллект как эмпирическая проблема 787
„ ™ как в коре кодируются даже простейшие воспоминания. Иди - :zxx^- как—та код-:- “Х^ТиХ^^Х^овТкогорым ста,киеаются и'^Довагеди и н °” ного и вычислительного толка, касается роли врожденного знания в обучен™. Можно лдГпровести эффективное обучение “с нуля . без начального знания основываясь включительно на опь“те; или же должен присутствовать некий индуктивный порог? Оп,.п разработки обучающихся программ предполагает необходимость какого-либо начального знания обычно выражающегося в форме индуктивного порога. Оказалось, что способность нейронных сетей строить осмысленное обобщение на основе обучающего множества зави- сит от числа неГгронов, топологии сети и специфики алгоритмов обучения. Совокупность этих факторов составляет индуктивный порог, играющий не менее важную роль, чем в лю- бом символьном представлении. Например, находится все больше подтверждений тому, что дети наследуют совокупность “аппаратно прошитых" когнитивных предпосылок (порогов), благодаря которым возможно обучение в таких областях, как язык и интуитив- ное понимание законов природы. Представление врожденных порогов в нейронных сетях сегодня является областью активных исследований [Elman и др., 1996]. Вопрос о врожденных порогах отходит иа второй план, если обратить внимание на более сложные проблемы обучения. Предположим, нужно разработать вычислительную модель научного открытия и смоделировать переход Коперника от геоцентрического к гелиоцентрическому взгляду на устройство вселенной. Для этого требуется представить в компьютерной программе теории Коперника и Птолемея. Хотя эти взгляды можно представить в качестве активационных схем нейронной сети, такие сети ничего ие ска- жут о них, как о теориях. Человек предпочитает получать объяснения вроде: “Копериик был озадачен сложностью системы Птолемея и предпочел более простую модель, в ко- торой планеты вращаются вокруг Солнца". Подобные объяснения требуют символьного выражения. Очевидно, нейронные сети должны обеспечивать символьное обоснование. В конце концов, человеческий мозг— это нейронная сеть, ио она неплохо умеет обра- щаться с символами. И тем ие менее символьное обоснование в нейронных сетях — важная, но все еще открытая проблема. Еще одной проблемой является роль развития в обучении. Дети не могут просто учиться на доступных данных. Их способность к обучению в конкретных областях про- явгыется иа четко определенных стадиях развития [Karmiloff-Smith, 1992]. Возникает любопытный вопрос: является ли этот факт всецело следствием человеческой биологии, ПТ3"7 ИеКИе ПРИНципиально необходимые ограничения на способность ин- вития служить^ закономеРиости окружающего мира? Могут ли подобные стадии раз- Возможно ли чтоаНИЗМ°М m разбиения задачи обучения на более простые подзадачи- веинТ™ ВХ "ХИХИВеИН° НМаГаеМЬ'Х ™ Р“ВИТИе ИСКУС”' Применение °СНОВОИ обПеиия в сложном мире? ные проблемы перед исследовав Р®ШеНия пРа1Сгических задач ставит дополнится лают их такими при вл скате ль Тб СЭМЫе свойства нейронных сетей, которые_ точности „ли неоднозначност™ адаптиРоваться- УстойчивостьК]* „х практического применения Д НЬ1Х'' ОдновРемеино создают препятствия ся, их поведение сложнее ппр СК0ЛЬКу нейР°ниые сети обучаются, а ие программирУ ложнее предсказать. Существует несколько общих принципов пр<^ 788 Часть VII. Э№’"оГ
тироваиия сетей, которые вели бы себя нужным лК™, Одиако сложно объяснить, почему нейпоннэ^ се^п” ” Предметной обла<™ Обычно такие объяснения принимают вид каких ™ h опРеделеиномУ выводу, вышеперечисленные проблемы являются Возникает вопрос, так ли уж различаются в - иистские сети и символьные системы ИИ*’ В них ппе™ интеллекта коннекцио- подходах процесс “мышления” сводке^вычи^^^пе"0" Дамеитш1ьиыс и формальные ограничения, таки^ка^опис^на^^г^ве З^ипотем Чер- ча-Тьюринга (Church-Tunng) [Luger. 1994]. Оба подхода предлагают модель разумщ применимую в практических задачах. Более того, оба подхода отвергают филоео^ю дуализма и помещают истоки разума в структуру и функцию физических устройств. Мы верим, что согласование этих двух очень разных подходов неизбежно. Исключитель- ным вкладом в науку стало бы построение теории преобразования символьного представле- ния в конфигурацию сети, н, в свою очередь, влияния на ее дальнейшую адаптацию. Такая теория помогла бы во многих исследованиях, например, интеграции в единую интеллектуаль- ную систему нейросетевого восприятия и систем рассуждения на основе знаний. Тем не менее в ближайшее время у приверженцев обоих взглядов будет достаточно работы, и мы ие видим никаких причин, мешающих им сосуществовать. Для тех же, кого смущает подобная проти- воречивость двух моделей интеллекта, приведем пример из физики, в которой свет иногда удобнее рассматривать как волну, а иногда — как поток частиц. 16.1.3. Агенты, интеллект и эволюция Агентные вычисления и модульные теории познания ставят перед исследователями сис- тем ИИ интересные вопросы. Одна из известных школ когнитологии полагает, что разум формируется из наборов специализированных функциональных элементов [Minsky, 1995], [Fodor, 1983]. Все модули имеют четкую специализацию и используют широкий диапазон врожденных структур и функций, от "аппаратно прошитого” решения задач до индуктивного порога. Это связано с разнообразием проблем, которыми они как практические агенты долж- ны заниматься. В этом есть смысл: как можно обучить нейронную сеть заниматься и перцеп- цией, и двигательными функциями, и запоминанием, и логическими рассуждениями? Мо- дульные теории интеллекта предоставляют базу для поиска ответа на этот вопрос, а также на- правление дальнейшего исследования таких вопросов, как природа индуктивного порога в отдельных модулях или механизмы модульного взаимодействия. Генетические и эволюционные вычислительные модели обеспечивают новые захва- тывающие подходы к пониманию как человеческого, так и искусственного разума. Де- монстрируя возможность рассмотрения разумного поведения как совокупности работы большого числа ограниченных независимых агентов, теория генетических и эволюцион- ных вычислений решает проблему представления сложного разума в виде результата взаимодействия относительно простых структур. В работе [Holland, 1995] приведен пример, в котором механизмы обеспечения хле&м большого города (например Нью-Йорка) демонстрируют процесс возникновения интел- лекта в ^ской сХме Вряд ли можно написать централизованный планировщик, который обеспечивал бы жителе.. Нью-Йорка привычным им oZ ба. Да и неудачный эксперимент коммунистического мира по несмотря на прак- иого управления явно показал °Т>ани^™^ ™ це^раивованного планирования, ела- тические сложности написания алгоритма такого ц игр Глава 16. Искусственный интеллект как эмпирическая проб 789
.... скоординированные в — так неплохо спРав™"™ буЛ0ЧИцк владеет весьма ограниченными сведен, ' имеют центрального ад ^Лю у старается оптимизировать возможно Решение ГХ°„ОЙ проблемы складываете» нз коллективной Н7ем””^еленад^адеииое^устойчнвое к флуктуациям и почти оп™мадь. ное поведеииеможет складываться из взаимодействия отдельных локадьиых агентов, эти модели дают еще один ответ на старый философский вопрос о происхождении разума. Главный урок эволюционных подходов к интеллекту состоит в том, что цельный интел- лект может возникнуть и возникает из взаимодействия множества простых, отдельных, локальных, овеществленных агентских интеллектов. ~ Вторая главная особенность эволюционных моделей заключается в том, что они опирают- ся на дарвиновский принцип естественного отбора как иа основной механизм, формирующий поведение отдельных агентов. Возвращаясь к примеру с булочниками, трудно утверждать, что каждый отдельный пекарь ведет себя “глобально оптимальным’’ образом. Источник такой оп- тимальности— не централизованный проект, а простои факт. Булочники, которые плохо удовлетворяют нужды своих покупателей, разоряются. Путем неустанных, многократных се- лективных воздействий отдельные булочники приходят к модели поведения, которая обеспе- чивает как их собственное выживание, так и общественную полезность. Комбинация распределенной, агентской архитектуры и адаптивных воздействий есте- ственного отбора — мощная модель эволюции и работы разума. Эволюционные психо- логи [Cosmides и Tooby, 1992, 1994], [Barkow и др., 1992] разработали модель формиро- вания врожденной структуры и индуктивного порога человеческого мозга в процессе ес- тественного отбора. Основа эволюционной психологии — это рассмотрение разума как модульной системы взаимодействующих специализированных агентов. В эволюционной психологии ум часто сравнивают со швейцарским ножом — нвбором специализирован- ных инструментов, предназначенных для решения различных задач. Появляется все больше свидетельств тому, что человеческий интеллект действительно в высокой степе- ни является модульной системой. В [Fodor, 1983] приводятся философские доводы в пользу модульной структуры интеллекта. Минский [Minsky, 1985] исследовал различные применения теорий модульности в сфере искусственного интеллекта. Такая архитектура имеет важное значение для теорий эволюции интеллекта. Сложно представить себе, как эволюция могла сформировать цельную систему такой сложности, как человеческий другой стороны, правдоподобным выглядит тот факт, что эволюция в течение натепкик°В MOrJla Успешно сформировать отдельные, специализированные позна- механизм^мх^1?1 °На могла работать над комбинациями модулей, формируя результате оешатГ»е°леИСТВИЯ’ о6меиа информацией и сотрудничества, позволяющие в результате решать все более сложные задачи познания IMilhen 19961 отВечТ”аНеХт^юе"СКЦИИ 'И"™"’ 19921 "Омывают. как эти же процессы могут описывают адаптацию неТпоютГ” ИСрВИ0Й системы- Модели нейронного дарвинизм вет на воздействия внешней г * СИ<?Тем в теРмннах Дарвина: в процессе селекции ление других. В отличие т- ₽СДЬ1 п₽оисходит усиление одних цепочек в мозге и ос информацию нз обучающих данн0ЛЪИЫХ Методов обУнения, которые пытаются BbVieJ^0. рии нейронной селекции паег ЫХ И использовать ее для построения модели мира, нейронов и их «ХХ"?""1” ВЛИЯНИе «лекгивиьЛоздейетвий на популяш-" действие. Эдеаьман (Edelman, 1992, С. 81] утверждает: 790 часть VII. ЭПИ"*
Рассматривая изучение мозга как науку о познании а инструктивным процессом. Здесь не происходит и <п'° познание не является как ее нет в эволюционных или иммунные сп"сРедстад’ной пересылки информации, или иммунных процессах. Напротив, познание селекшвно. Агентные технологии предоставляют такжр пользуя агентные подходь^ом^ Хоили инФоомГ"0" Ис‘ прогнозирующие) модели экономических рынков. Агентные технологии оказыгаюТ™ возрастающее влияние иа построение распределенных компьютерных систем ZX ку средств поиска в Internet и проектирование сред совместной разработки Наконец, агентные модели оказали немалое влияние на теорию сознания. Например Даниэль Дэннетт [Dennett, 1991] рассматривает функцию и структуру сознания, отталки- ваясь от агентной архитектуры интеллекта. Он начинает с замечания, что вопрос о ме- стоположении сознания в мозге или разуме некорректен. Напротив, его множественная теория сознания^(multiple draft theory of consciousness) основана на рассмотрении созна- ния во взаимодействии агентов в распределенной архитектуре интеллекта. Во время пер- цепции, управления двигательными функциями, решения задач, обучения и другой пси- хической активности формируются объединения взаимодействующих агентов. Эти соче- тания очень динамичны и изменяются в зависимости от потребностей в различных ситуациях. Сознание, по Дэннету, служит связующим механизмом этих объединений агентов, оно поддерживает взаимодействие агентов. Совокупность агентов становится основой когнитивной обработки данных. Ограничения агентного представления интеллекта Развитие эволюционного подхода привело к возникновению новых вопросов. Напри- мер, еще предстоит понять весь путь эволюции высокоуровневых познавательных спо- собностей языка. Подобно попыткам палеонтологов реконструировать эволюцию видов, отслеживание развития этих высокоуровневых проблем связано с большим объемом кропотливой роботы. Необходимо перечислить все агенты, лежащие в основе архитекту- ры разума, и отследить их эволюцию во времени. Важная проблема для агентских теорий — объяснение взаимодействий между моду- лями. Хотя модель ума как “швейцарского ножа” полезна для интуитивного понимания, модули, из которых состоит интеллект, не так независимы, как лезвия перочинного но- жика. Разум демонстрирует широкие, весьма изменчивые взаимодействия между когни- тивными областями: мы можем говорить о вещах, которые видим, что выявляет взаимо- действие между визуальным и лингвистическим модулями. Мы можем сооружать зда- ния, служащие специфичным социальным целям, что свидетельствует о взаимодействии между технической и социальной сторонами интеллекта. Поэты могут строить метафоры для описания зрительных сцен, демонстрирующие гибкое взаимодействие между визу- альным и тактильным модулями. Исследование представлении и процессов, делающих возможными эти межмодульные взаимодействия, является областью текущих исследо- ваний [Karmtloff-Smith, 1992], [Mithen. 1996]. [Lakoff и Johnson. -ООО]. Все важнее становятся практические применения агентных техно»™шИ ГТ™ X пьютернос моделирование на основе агента», можно создай. рых нс существует аналитического описания ^кого спектра явле- ния изучения. Методы ««темы, тираиення сложным» про НИИ. например. аааптацип ™овеч«№И№МУ»»» „Хают, метаоро-аопш. Во- цессами, включая ускорение частиц.п°?ХХ„.^..та^ые предстонт решить для созда- просы представления и вычислительной реализац , р Глава 16. Искусственный интеллект как эмпирическая проблем. 791
каление исследовании в построении преДСТт,п „ня ™<их моделей, компьютерной аппаратуры. .„аний, алгоритмов и даже разрао ым11 предстоит иметь дело агентным Другие практические вопрос ’ ного взаимодействия, особенно в случаях^ К‘ =“ ;=: аСПеКГ ЭВОЛЮиИОНН°Й те°рИИ “"у™*™-- эд „озможн^ь описать различные виды психическом деятельности единой моделью никноХ порадка из хаоса. Краткий обзор, проведенный в этом разделе, позво^ выделить работы, использующие эволюционную теорию для моделирования ряда про. цессов: от эволюции интеллекта до конструирования экономических и социальных мо- делей поведения. Есть нечто чрезвычайно привлекательное в той идее, что эволюцион- ные процессы, описываемые теорией Дарвина, могут объяснить разумное поведение во многих масштабах: от взаимодействия индивидуальных нейронов до формирования мо- лекулярной структуры мозга или функционирования экономических рынков и социаль- ных систем. Оказывается, интеллект подобен фрактальной структуре, где одни и те же процессы действуют в любых масштабах и во всей системе в целом. Далее будут рассмотрены психологические и философские аспекты человеческого мышления, которые повлияли иа создание, разработку и применение теории искусствен- ного интеллекта. 16.2. Теория интеллектуальных систем Основная группа исследователей искусственного интеллекта сосредоточила свою деятельность на понимании человеческого разума совсем не случайно. Люди обеспечи- вают прототипы и примеры интеллектуальных действий. Поэтому разработчики искусст- венного интеллекта редко игнорируют “человеческий” подход, хотя обычно и не ставят перед собой цели заставить программы действовать по примеру людей. Так, в приложу э1гспрКтпПЬЮкеРН0” диагностики программы зачастую моделируют рассуждения людей' го интеллекта ^аюЩИХ в соответствующей области. А главное, понимание человеческо- Современная Захватьшающая и все еще открытая научная проблема. (scienceof intelligenuZem^n (C°gni1^.e science)- или теория интеллектуальных систем тара. Однако в главе 1 vnn возннкла с изобретением цифрового ком «и. Их список начинается М“ НаЛ0СЬ’ что У этой Дисциплины были свои предшествен теоретиков, таких как и Булл и включает многих современНЬ* моделей, а’таюхе Джон фи Неймм'^<Г'0,< " П1,ТТС’ основоположиики неЙР°^Я- венной жизни. Эти исслевплп. Один И3 пеРВЬ1Х защитников концепции J ставить эксперименты, основаниями НауК0Й лишь тогДа- когда возникла возмоя^' нием компьютеров. Наконеп-тл 1С.На Теоретических соображениях, а точнее, с п теория интеллекта?’. Можно Tav-M°*H° Задать в°прос: “Существует ли всеобъем тем помочь в создании искусгтПрЖе СПросить: “Может ли теория иителлектувльНЫ В нижеследующих Оа. У еиног° разума?”. мология ц социология цовХВКраТце будет Рассказано о том, как психология, эти1 -----и на исследования в сфере ИИ 792 ---------- vi| э^°( Часть VII-J
16.2.1. Ограничения психологии Ранние когнитологнческие исследования Такие системы учились шрать в простые игры плантоп/^ Л°™Ческих задач челооск°м- ™й [Feigenbaum н Feldman, 1963], [Newell „ S,mon. 1ЭТ2Г?5‘ПУЧеНИе Т над системой Logic Theorist (см. раздел 12 1) Ныо,я„ „ г - 98 L В "Р0®^ ₽а6°™ числительные подходы со Лате™„„ „о^а^Х^Г" С“°И ными ДНЯ них служили протоколы „ыслей (lhjnk.a|oud Х°2 своих мыслей в процессе обдумывания решения задачи, например, дохаХХХ иибудь теоремы. Ньюэлл и Саймон сравнили эти пгютлклпм г „„л™, - и Jra протоколы с поведением компьютерной программы, работающей над тон же задачей. Исследователи обнаружили поразительную схожесть и интересные отличия, как в задачах, так и в субъектах исследования. Эти ранние проекты позволили создать методологию, применяемую в когнитологии в последующие десятилетия. 1. На основе данных, полученных от людей, решающих определенный класс про- блем, строится схема представления и соответствующая стратегия поиска для ре- шения задачи. 2. Отслеживается поведение компьютерной модели, решающей такую проблему. 3. Ведется наблюдение за людьми, работающими над решением задач, и отслежива- ются измеряемые параметры их процесса решения, а именно: протоколы “мыслей вслух”, движения глаз, записи промежуточных результатов. 4. Решения человека и компьютера сравниваются н анализируются. 5. Компьютерная модель пересматривается для следующего цикла экспериментов. Эта эмпирическая методика описана в лекции Ньюэлла и Саймона, прочитанной по случаю вручения премии Тьюринга. Ее фрагмент был выбран в качестве эпиграфа к этой главе. Важным аспектом когнитологии является использование экспериментов для под- тверждения работоспособности архитектуры решателя, будь то продукционная система, сеть связей или архитектура, основанная иа взаимодействии распределенных агентов. В последние годы к этим понятиям добавилось принципиально новое измерение. Те- перь в процессе решения задач можио “разбирать" и изучать не только программы, но и людей, и другие формы жизни. Множество новых технологий получения изображений пополнили набор средств, применяемых для изучения активности коры мозга. К этим технологиям относится магнитная энцефаюграфия (magnetoencephalography MEG), которая регистрирует магнитные поля, создаваемые группами нейронов. В отличие от электрического магнитное поле не искажается костями и кожей черепа, следовательно. можно получить более четкое его изображение. Другая технология — позитронная эмиссионная томография (positron emission tomogra- phy— РЕТ), В кровеносный сосуд впрыскивается радиоактивное вещество, обычно 0 . Когда определенная область мозга возбуждена, чувствитетьными дегокгорамн регистрируется большее количество радиоактивного агента, чем в состоянии покоя этой области мозга. Срав- нение изображений возбужденных и находящихся в покое областей ”°’а?гзеТм.,,аРУЖ1 (ПкшЫ „ДО*(пис|иг от более стандартного метода, основанного на мл г Глава 16. Искусственный интеллект как эмпирическая проблема 793
MMR1 Подобно методу РЕТ, в этом подходе для выявления ж, используется сравнение изображений возбужденных „ Па^ ш"°ся а покое областей M03.U мозга сдалал„ программны(; ДМЬНеЙШИЙХом ПерлмЛр»' " СГ° К0ЛЛСГаМН 1PearlmU"er " ЗД разработанные Бартко станы с персчнслсннымн вь,ще Л, гсХ’ваниям появилась возможность получить сложные образцы^ ЙаГ°Хозникаюшсго на выходе устройств для получения изображений нервной с„ . *“• X важньТшаг в исследованиях, поскольку такие показатели, как давжеша ТХ,Ти сердцебиение, связаны с исследуемыми схемами возбуждения „сйроноа • Д рХь«™ недавних исследований в когнитивной теории нейронных систем [Squirei) К(Х 998) [Shephard. 1998], (Gazzaniga. 2000] значительно улучшили понимание ро. ™ нейронной составляющей в интеллектуальной деятельности. Хотя анализ „ кри™и таких результатов выходит за пределы рассмотрения данной книги, коснемся нескольких важных вопросов. • В области восприятия и внимания существует проблема связывания (binding prob- lem). Такие исследователи, как Энн Трисмэи [Triesman, 1993, 1998], отмечают, что представление восприятия зависит от распределенных нейронных кодов, отве- чающих за сопоставление частей и качеств объектов, и ставят вопрос о том, какие механизмы “связывают” информацию, относящуюся к конкретному объекту, и по- зволяют отличать этот объект от других. • В области визуального поиска рассматривается вопрос о том, какие нейронные меха- низмы обеспечивают восприятие объектов, входящих в большие, сложные сцены. Не- которые эксперименты показывают, что фильтрация информации о незначительных объектах играет важную роль в определении целей поиска [Luck, 1998]. Вопрос о том, как мы “учимся” видеть, исследуется в работе [Sagi и Таппе, 1998]. • Работы [Gilbert, 1992, 1998] посвящены гибкости восприятия. Из них следует, что видимая человеком картина не отражает точные физические характеристики сце- ны. Она значительно зависит от процессов, с помощью которых мозг пытается ин- терпретировать эту картину. В [Ivry, 1998] рассматривается вопрос о том, каким образом кора мозга кодирует н индексирует соотносящуюся во времени информацию, включая интерпретацию ощущении и двигательную активность. ния ми™ гормоны’ выРабатываемые в состояниях эмоционального возбуЖДе б™мо£Т На ПР°ЦеССЫ памяти [Cahil1 и McGaugh. 1998]. Это соотносится с про- ленное значение^* (егоип^1п^: почему мысли, слова, ощущения имеют осмыс евская 1асгетае В КаК°М СМЫСле в03можна игРУстЬ в всшах"' верГИЛ принципа^ТвГзьтоаю*16 аСПекгы Рсчи основаны на важных организационно* ными и лингвистичЮЩИХ исследования в области нейронных систем с когнит сматривается BonpocCK0"™MTe0p“M“ (Miller и др.. 1998]. В [Gazzaniga. 2000^ сочетаются в коре мозга ’ синтаксическис н семантические составля стадии соответствуютСЯ^ПреДеЛеННОму ЯЗЫКУ- н «акне нейро физ нелогичен IKuhl, 1993 1998] °Му процессу? Этой проблеме посвящены Р 794 Часть VII. ЭП^
• В [O’Leary н др., 1999] затрагиваются следующие вон™™ «г тие. чем определяется пластичность критических пе^ П°НИМаТЪ разви' процессе взросления, наблюдаемых в соматосенсоп? ** реоргакнзации в шнх9 Кпн'гичны пи гЬячгл l * а осенсоРных системах млекопитаю- щих . рн гичны ли фазы развития для формирования интеллекта9 Эти же вопоосы рассматриваются в (Karmiloff-Smi.h, 1992]. [Gazzaniga. 20001 и подразд^е 16 1 2 Практическая работа в сфере искусственного интеллекта не требует обширных по- знании в вышеперечисленных „ смежных нейронных и психологических oSZ Но такие знания могут помочь в разработке интеллектуальных устройств, а также в опреде- Ленин места исследовании ИИ в контексте общей теории интеллектуальных систем^На- конец, синтез психологии, нейрофизиологии и компьютерных наук- по-настоящему увлекательная задача. Но она требует детальной проработки эпистемологами, что будет нашей следующей темой для обсуждения. 16.2.2. Вопросы эпистемологии Если не знаешь, куда идешь, придешь не туоа, куаа хочешь... — приписывается Йоги Берра (Yogi Berra) развитие искусственного интеллекта происходило в процессе решения множества важных задач и вопросов. Понимание естественных языков, планирование, рассуждения в условиях неопределенности н машинное обучение — все это типичные проблемы, ко- торые отражают важные аспекты разумного поведения. Интеллектуальные системы, ра- ботающие в этих предметных областях, требуют знания целей и опыта в контексте кон- кретной социальной ситуации. Для этого в программе, которую человек пытается наде- лить “разумом", необходимо обеспечить возможность формирования понятий. Процесс формирования понятий отражает как семантику, поддерживающую исполь- зование символов, так и структуру применяемых символов. Задача состоит в том, чтобы найти и использовать инвариантности, присущие данной предметной области. Термин “инвариант” используется для описания регулярностей или значимых, пригодных для использования, аспектов сложных рабочих сред. В данном рассмотрении термины сим- волы н символьные системы используются в широком смысле. Они включают широкий спектр понятий: от четко определенных символов Ньюэла н Саймона [Newell н Simon, 1976] до узлов и сетевой архитектуры систем связен, а также эволюционирующих структур генетики и искусственной жизни. Хотя рассматриваемые ниже вопросы характерны для большей части работ в сфере ПИ. остановимся на проблемах машинного обучения. Это обусловлено тремя причинами. Во-первых, довольно глубокое изучение хотя бы одной ключевой предметной облас- ти искусственного интеллекта даст читателю более полное и точное представление о по- следних достижениях ИИ. Во-вторых, успехи в машинном общении, а особенно в ней- ронных сетях, генетических алгоритмах и других эволюционных подходах, потенциаль- но способны совершить революцию в сфере ИИ. Наконец, обучение — это одна из наиболее увлекательных областей исследований в искусственном интеллекте. Несмотря на прогресс, обучение остается одной из наиболее трудных проблем, встающих перед исследователями ИИ. Далее мы обсудим три вопроса, сдерживающих сегодня продвижение в этой ефере: во-первых. and overlearning) во-вторых, роль андуммного порога (rnductrve bras) в обучении, в- третьих, LnupL empirics dilemma). или понимание эво.понии без ограни- Глава 16. Искусственный интеллект как эмпирическая проблема 795
,тмы взаимосвязаны. Присущий многим алгориП1ам чеиий. Последние м рвиионаяистической проблемы. Порог опред^- тавный порог является выр» дая зачаиую зависит от того, чему хоч^'10' ожиданиями. ». «. Иногда МЬ1 не располагаем априорными Догад^^’ литься. Есть И другая проо на6людать в исследованиях, посвященных нсхус ° 1 зультате. Это, иапримф нож® и будет “ю"пХ (» X* к Р“делу)' ТО- “°рее ВСеГ°’ НеТ! ЭТИ Темы в следующем разделе. ПРпХ,ер«б°«“,ользмани“е прелстааЛеНИЯ. Разноо6Разных моделей обучен», , П хоннекшюнистских и эволюционных), зачастую были слишком несете? енныНа^мер, архитектуры связей часто содержали всего несколько узЛ0в ш„ ада Хый слой. Такие примеры уместны, поскольку основные законы обучения можно адекватно объяснить в контексте нескольких иеироиов или слоев. Но стоит помнить, что В реальных задачах нейронные сети обычно значительно больше, и проблема масштаба здесь имеет значение. Например, для обучения с обратным распространением ошибки требуется большое количество обучающих примеров, а для решения сколько-нибудь практически интересных задач нужны большие сети. Многие исследователи ([Necht- Nielsen, 1990]; [Zurada, 1992], [Freeman и Scapura, 1991]) работали над проблемой выбора оптимального числа входных данных, соотношения между числом входных параметров и узлов в скрытом слое, определением количества проходов процесса обучения, доста- точного для обеспечения сходимости. Здесь мы только констатировали, что эти пробле- мы сложные, важные и в большинстве случаев открытые. Количество и качество обучающих данных важны для любого обучающего алгорит- ма. Без обширных исходных знаний о предметной области алгоритм обучения может не справиться с выделением образов при получении зашумленных, недостаточных или даже испорченных данных. Смежная проблема — вопрос “достаточности” в обучении. В каких случаях алгоритмы можно назвать достаточно пригодными для выделения важных границ или инвариантов предметной области задачи? Приберечь ли запас входных данных для тестирования алго- ритма? Отвечает ли количество имеющихся данных требуемому качеству обучения? Долж- но ытъ, суждение о1 достаточности’’ является в большей степени эвристическим или даже эстетическим, мы, люди, часто рассматриваем алгоритмы как “достаточно хорошие . ппосттн^1^511^51 проблемУ обобщения на примере, используя метод обратного рас । оши ки для нахождения функции по набору заданных точек (рис. - • Линии вокруг этого набора представляют ФУ1<к1^о найденные алгоритмом обучения. НапоМ^>|М’ по завершении обучения алгоритму нео х° предоставлять новые входные данные, что Ы верить качество обучения. дп- Функция fj представляет довольно т°ч проксимацию методом наименьших ^y^gnjuo Дальнейшее обучение системы может дать Ф5\, которая выглядит как достаточно ^чио проксимация набора данных. Но все же. i соответствует заданным точкам- ДальненШ ------------------------- 796
ние может привести к функциям, которые точно аппгюкгиь.™ „ыс обобщения для новых входных данных Ланные' Н° “Т уЖЗС’ (overtraining) сети. Одной нз симных “обжимеZoZ" ощнбки является то, что в вредных облаках mhoZXXX Z^eXTe обобщения т.е. аппроксимации функций, которые приближают обучающие данные н кор- ректно обрабатывают новые. Тем не менее обнаружить точку, в которой cm. переходит ю "недообучеиного в переобученное состояние, - задача нетривиальная. Наивно думать, что можно построить сеть, или вообще какой-либо обучающий инструмент, снабдил, его “сырыми данными, а затем отойти в сторону и наблюдать за тем, как он вырабатывает са- мые эффективные и полезные обобщения, применимые к новым подобным проблемам. Подведем итог, возвращая вопрос обобщения в контекст его эпистемологии. Когда решатель задач формирует и применяет обобщения в процессе решения, он создает ин- варианты или даже системы инвариантов в области задача-решение. Таким образом, ка- чество и четкость таких обобщений могут быть необходимой основой для успешного осуществления проекта. Исследования в области обобщения задачи и процесса ее реше- ния продолжаются. Индуктивный порог*, рационалистское априори Методы автоматического обучения, рассмотренные в главах 9-11, и, следовательно, большая часть методов ИИ отражают индуктивные пороги, присущие их создателям. Проблема индуктивных порогов в том, что получаемые в результате представления и стратегии поиска дают средство кодирования в уже интерпретированном мире. Они ред- ко могут предоставить механизмы для исследования наших интерпретаций, рождения новых взглядов или отслеживания и изменения неэффективных перспектив. Такие неяв- ные предпосылки приводят к ловушке рационалистской эпистемологии, когда исследуе- мую среду можно увидеть лишь так, как мы ожидаем иди научены ее видеть. Роль индуктивного порога должна быть явной в каждом обучающем алгоритме, (Альтернативное утверждение гласит, что незнание индуктивного порога вовсе не озна- чает того, что он не существует и не влияет критически иа параметры обучения.) В сим- вольном обучении индуктивные пороги обычно очевидны, например, использование се- мантической сети для концептуального обучения. В обучающем алгоритме Уинстона [Winston, 1975а] пороги включают представление в виде конъюнктивных связен и ис- пользование “попаданий близ цели" для коррекции наложенных иа систему' ограничений. Подобные пороги используются при реализации поиска в пространстве версий (раздел 9.1), построении деревьев решений в алгоритме ID3 (раздел 9. л) или даже прави- лах Meta-DENDRAL (раздел 9.5). Как упоминалось в главах 10 и 11, многие аспекты стратегий коииекционистского и генетического обучения также предполагают наличие индуктивных порогов. Например, ограничения персептронных сетей привели к появлению скрытых слоев. > местей вопрос о том, какой вклад вносят скрытые утлы в получение решения. Одиа из функции скры- тых узлов состоит в том. что оно добавляют новые измерения в пространство представ- лений. На простом примере нз подраздоча 10.3.3 было видно, что данные в задаче "исключающего ИЛИ" нс были линейно разделимы в двухмерном пространств Однако получаемые в процессе обучения весовые коэффициенты добавляют к представлению еще одно измерение. В трехмерном пространстве точки можно разделить двухмерной гл. Р _™. ьяпжнп рассматривать как персептрон, находящим плоскостью. Выходной слои этой сети можно расс.ы j. плоскость в трехмерном пространстве. Глава 16. Искусственный интеллект как эмпирическая проблема 797
1 многие из -различных” парадигм обучения используют fu Стоит отметить, что мн Примером подобной ситуации является взаим °ГДа „„„„о) общие инлут ““^CLUSTER^ (раздел 9.5). nepcempoHO„ (раад^ мсаИУ кластеризацией» Бшю отмечено, что встречное раслростране "2>« сетями протеидов разд используюшей обучение без учителя с коррекцией аеД* формации • с дбуиеиием с учителем в слое Гроссберга, во выходу В слое Коховен и распространением ошибки. ,г“ч подобно обучению с Р Р важных аспектах. Фактически Даже „ РМдаЖНХТХ-ХояиеиНем к методу аппроксимации фун Л шастер'"Т1мь, пытаемся классифицировать наборы данных; во втором строим ф ZZohhoX отделяют тетеры данных друг от друга. Это можно иа6^ S используемый персептроном алгоритм классификации иа основе минимально,, рХяиия находит также параметры, задающие линейное разделение. ₽ Даже задачи обобщения или построения функции можно рассматривать с различию, позиций Например, статистические методы используются для обнаружения корреляция данных. Итеративный вариант рядов Тейлора позволяет аппроксимировать большинство функций. Алгоритмы полиномиальной аппроксимации на протяжении более столетия используются для аппроксимации функций по заданным точкам. Итак, результат обучения (символьного, коннекционнстского или эволюционного) во мно- гом определяется принятыми предположениями о характере решения. Принимая в расчет этот синергетический эффект в процессе разработки вычислительных решателей задач, зачастую можно улучшить шансы на успех и более осмысленно интерпретировать результаты. Дилемма эмпирика Если в сегодняшних подходах к машинному обучению, особенно обучению с учителем, главную роль играет индуктивный порог, то обучение без учителя, которое используется во многих генетических и эволюционных подходах, сталкивается с противоположной пробле- мой, которую иногда называют дилеммой эмпирика. В таких подходах считается, что реше- ния сложатся сами на основе эволюционирующих альтернатив, в процессе “выживания” наи- более подходящих особей популяции. Это мощный метод, особенно в контексте параллель- ных и распределенных средств поиска. Но возникает вопрос: откуда можно узнать, что система пришла к правильному решению, если мы ие знали, куда идем? давным-давно Платон сформулировал эту проблему словами Менона из знаменитого диалога: J неизаадгтныхС_(^ра‘м>м-СокТ1ат- ты будешь искать вещь, не зная даже, что она такое? Какую Ю Даже натолкни *обсрешь 7111 предметом исследования? Или, если в лучшем случае № натолкнешься на нее, w QHa tq не зналГ- П0Д™“* слова Менона (Mitchell. 1997) и ч«ки иуждаегея „7 В_ол ’"'Р™ " Макреди [Wolpcrt, Macready, 1995). Эмпирик £ учности своим рассужлен Д0Ле рациоиалнстского априорного знания для приДД ИЯМ. учителя и эволюционно^а?0* множество увлекательных разработок в обуЧС*^ыХ из моделях или минимизации энеГ^' Примером служит создание сетей, оСН08дГГракго- Р°в ДДя сложных инвапиант Р'ИИ/ КОТОрЫе можно рассматривать в качеств., притяжения, исследователь нач”^ НаблЮдая> как данные “выстраиваются лиРования динамических явлРН»“ Т рассматРивать эти архитектуры как сред —-----Возникает вопрос: каковы ограничения этих 7" ----------------------------------—______________— Часть VII.
Фактически исследователи „оказали [Siegelman и Somag, 1991], ™ рекуррентные се- ти полны в смысле вычислении, т.е. эквивалентны классу машин Тьюриип^^та эквива- лентность обобщает более ранние результаты. Колмогоров (Kolmogorov. 1957) показал что дал каждой непрерывной функции существует нейронная сеть, реализующая ее вы- числение. Также было показано, что сеть обратного распространения ошибки с одним С“РЫ™“ 7°“.^" аппроксимировать любую непрерывную на компакте функцию (Necht-Nielsen, 1989). В разделе 11.3 было указано, что фон Нейман построил полные, по Тьюрингу, конечные автоматы. Таким образом, септ связей и конечные автоматы оказа- лись еще двумя классами алгоритмов, способных аппроксимировать практически любую функцию. Кроме того, индуктивные пороги применимы к обучению без учителя, а также к эволюционным моделям; пороги представлений применимы к построению узлов, сетей и геномов, а алгоритмические пороги — к механизмам поиска, подкрепления и селекции. Что в таком случае могут нам предложить коннскциоиистские, генетические или эво- люционные конечные автоматы в их разнообразных формах? 1. Одна из наиболее привлекательных черт нейросетевого обучения — это возмож- ность адаптации на основе входных данных или примеров. Таким образом, хотя их архитектуры точно проектируются, они обучаются на примерах, обобщая данные в конкретной предметной области. Но возникает вопрос о том, хватает ли данных и достаточно они ли “чисты”, чтобы не исказить результат решения. И может ли это знать конструктор? 2. Генетические алгоритмы также обеспечивают мощный и гибкий механизм поиска в пространстве параметров задачи. Генетический поиск управляется как мутация- ми, так и специальными операторами (например, скрещивания или инверсии), ко- торые сохраняют важные аспекты родительской информации для последующих поколений. Каким образом проектировщик программы может найти и сохранить в нужной мере компромисс между разнообразием и постоянством? 3. Генетические алгоритмы н коннекциоиистские архитектуры можно рассматривать как примеры параллельной и асинхронной обработки. Но действительно ли они обеспечивают результаты, недостижимые в последовательном программировании? 4. Хотя нейросетевые и социологические корни ие имеют принципиального значе- ния для многих современных практиков коннекционистского и генетического обучения, эти методы отражают многие важные стороны естественного отбора и эволюции. В главе 10 были рассмотрены модели обучения с уменьшением ошибки — персептронные сети, сети с обратным распространением ошибки и модели Хсбба В подразделе 10.3-4 описаны сети Хопфнлда, предназначенные для решения задач ассоциативной памяти. Разнообразные эволюционные модели рассматривались в главе 11. 5. И, наконец все методики обучения являются эмпирическими средствами. Доста- точно ли мошны и выразительны это средства, чтобы по мере выяжтеиия инвари- антностей нашего мира ставить дальнейшие вопросы о природе восприятия, обу- чения и понимания? В следующем разделе будет обосновав вывод о том, что конструктивистская эписге- О следующем разделе методами современного искусственного мология, объединенная с экспериментальным ~ ы метле лова- „ ___т^унологии для дальнейшего построения и нсследова интеллекта, предлагает средства и технологии для ния теории интеллектуальных систем. Глава 16. Искусственный интеллект как эмпирическая пробле
Примирение с конструктивистами Конструктивисты зультатом L-— категортямп. наложенными [von С.- явления орных ’ термин в сг. егся активным и интерпретирующим. Теории, как сети: кто их закидывает, у П1ог — Л. Витггснштейн (L Win ' ‘“««Klein) ^•„.исты выдвигают гипотезу о том. что всякое понимание явл,СТс, „ гктивиеты „ежам энергетическими образами мира и мент. р (^"наложенными на мир разумным агентом [Piaget. 1954, iS." X’eseld 1978]. В терминах Пиагета (Puget), мы aeetl.mmpyeu ( Ж , внеХй среды в соответствии с нашим текущим пониманием и »р„спо , (ас" ommoda^e) наше понимание к "требованиям явления. '(аа часго используют термин сеемы (schemata) дня обозначения ZZ'используемых в организации опытного знания о внешнем мире. Эта, .рчвн заимствован у британского психолога Бартлетта [Bartlett. 1932) и корнями ухода, фшософию Канта. С згой точки зрения наблюдение не пассивно и нейтрально, а „да,. вГспрн^ятм информация (кантовское апостериорное знание) никогда не вписы- вается точно в заранее составленные схемы. Поэтому пороги, основанные на схемах и используемые субъектом для организации опытных знаний, должны быть модифи- цированы, расширены или же заменены. Необходимость приспособления, вызванная неудачными взаимодействиями с окружающей средой, служит двигателем процесса когнитивного уравновешивания. Таким образом, конструктивистская эпистемология является основой когнитивной эволюции и уточнения. Важным следствием теории конструктивизма является то, что интерпретация любой ситуации подразумевает применение понятий и категории наблюдателя. Когда Пиагет [Piaget, 1954. 1970] предложил конструктивистский подход к понима- нию, он назвал его генетической эпистемологией (genetic epistemology). Несоответствие между схемой и реальным миром создает когнитивное противоречие, которое вынуждает пересматривать схему. Исправление схемы, приспособление приводит к непрерывному развитию понимания в сторону равновесия (equilibration). Пересмотр схемы и движение к равновесию— это врожденная предрасположен- ность, а также средство приспособления к устройству общества и окружающего мира. 0 пересмотре схем объединяются обе эти силы, отражающие присущую нам склонность к выживанию. Модификация схем априори запрограммирована нашей генетикой и в то же время является апостериорной функцией общества и мира. Это результат нашего вопло- щения в пространстве и времени. Здесь наблюдается слияние эмпирической н рационалистической традиции- °бЪеКТ Чел0ВеК может воспринимать не больше, чем воспр^ инны внешн1тЧУВСТВоБЛаГ°ДарЯ пРИСп0С0бдению он выживает, изучая общие Р очередь tam МИра‘ Восприятие определяется нашими ожиданиями, которые, Следовательно, эти функцин могут по- ром. Он являетсяВиХРеДК° Осознает схемы, обеспечивающие его взанмодеис^^ Но чаще всего человек не знает” ПредВ31ГТОСТН и предубеждений в науке и в ° ного равновесия с ми ИХ СМысла‘ ^ии формируются за счет достижен» Почему KOHc-mvi^0?1’а Ке в иредессе сознательного мышления. про- блем искусственного' ВКСТСКая эпистемология особенно полезна при ,,зуЧ моГасгв _______ Н0Г° и™декта? Автор считает, что конструктивизм иомо^ -----'5|гЭП^10Г Часть VI’ 800 рассмотрении проблемы эпистемологического доступа (epistemological access). Бо- лее столетия в психологии идет борьба между двумя направлениями: позитивистами, которые предлагают исследовать феномен разума, отталкиваясь от обозримого фи- зического поведения, и сторонниками более феноменологического подхода, кото- рый позволяет использовать описания от первых лиц. Это разногласие существует поскольку оба подхода требуют некоторых предположений или толкований. По сравнению с физическими объектами, которые считаются непосредственно наблю- даемыми, умственные состояния и поведение субъекта четко охарактеризовать крайне сложно. Автор полагает, что противоречие между прямым подходом к физи- ческим явлениям и непрямым к ментальным является иллюзорным. Конструктивист- ский анализ показывает, что никакое опытное знание о предмете не возможно без применения некоторых схем для организации этого опыта. В научных исследовани- ях это подразумевает, что всякий доступ к явлениям мира происходит посредством построения моделей, приближений и уточнений. 16.2.3. Внедренный исполнитель и экзистенциальный разум Символьные рассуждения, нейросетевые вычисления и разнообразные формы эволю- ционных стратегий являются главенствующими подходами в современном изучении ИИ. Тем не менее, как было отмечено в предыдущем разделе, для обеспечения более высокой эффективности эти подходы должны принимать в расчет ограничения мира, согласно ко- торым весь “интеллект" является овеществленным. Теории внедренного и овеществленного действия утверждают, что интеллект не является результатом управления моделями, построенными разумом. Его лучше все- го рассматривать в терминах действий, предпринимаемых помешенным в мир аген- том. В качестве метафоры для лучшего понимания разницы между двумя подходами в работе (Suchman, 1987] предлагается сравнение между европейскими методами навигации и менее формальными методами, практикуемыми полинезийскими остро- витянами. Европейские навигационные методы требуют постоянного отслеживания местонахождения корабля в каждый момент путешествия. Для этого штурманы по- лагаются на обширные, детальные географические модели. Полинезийские навига- торы, напротив, не пользуются картами и другими средствами определения своего местонахождения. Они используют звезды, ветры и течения, чтобы продолжать движение к своей цели, импровизируя маршрут, который непосредственно зависит от обстоятельств их путешествия. Не полагаясь на модели мира, островитяне рас- считывают на свое взаимодействие с ним и достигают своей цели с помощью на- дежного и гибкого метода. Теории внедренного действия утверждают, что интеллект ие нужно рассматривать как процесс построения и использования моделей мира. Это, скорее, менее структуриро- ванный процесс выполнения действии в этом мире и реагирования на результат. Этот подход акцентирует внимание на способности чувственного восприятия окружающего мира, целенаправленных действиях, а также непрерывной и быстрой реакции на измене- ния, происходящие в нем. В этом подходе чувства, посредством которых человек вне- дряется в этот мир, имеют большее значение, нежели процессы рассуждения о них. Важ- нее способность действовать, а не способность объяснять эти действия. Влияние такой точки трения на ееги святей и агентские подходы онеииджхОно; стоит в отказе от обших символьных методов в пользу процессов адаптации и обучения. Глава 16. Искусственный интеллект как эмпирическая проблема
. а-ичнн [bangton, 1995), должно быть, саммй „ Р,6о™ > области иск^е „од влиянием теорий внедренного действия э^® "<* мер исследовании. к 6ото„хнике Родни Брукеа [Brooks, 198911" **• ™ ра3ума "“^McGoniele 1998]. Льюиса и Люгера [Lewis и Luger, 2000). Эти hcS®'’ Мак-Гонигла [Mcto начинать работы „ сфере ИИ с реализации вмГ’' „ЛИ утверждают, ч е))ИЙ „ ыодслируе.мом разуме. Этот акцент на логич» уровневых ир°“= человечество неверной дорогой, отвлек внимание от фундамс5,™’1 рассуждениях ио ел аге^ внедряться в мир и действовать в нем ^’ Хым Об^ом По мнению Брукса, нужно начинать с проектирования „ исследовХ роботов, созданий, действующих на уровне насекомых. Они лят изучить процессы, лежащие в основе поведения как простых, так и сложных существ Построив множество таких простых роботов, Брукс и его коллегн пытаются применить приобретенный опыт в конструировании более сложною робота COG, который, как на- деются разработчики, достигнет способностей человека. Несмотря на это, теория внедренного действия также повлияла на символьные подхо- ды к ИИ. Например, работы в области реактивного планирования (Benson, 1995], [Benson и Nilsson, 1995]. [Klein н др., 2000] отвергают традиционные методы планирования, предполагающие разработку полного и определенного плана, который проведет агента по всему пути, от стартовой точки и до желаемой цели. Такне планы редко срабатывают нужным образом, потому что на пути может возникнуть слишком много ошибок и не- предвиденных проблем. Напротив, системы реактивного планирования работают цикла- ми. За построением частичного плана следует его выполнение, а затем ситуации пере- оценивается для построения нового плана. Конструктивистские теории и теории внедренного действия подтверждают мно- гие идеи философии экзистенциализма. Экзистенциалисты считают, что человек проявляет себя посредством своих действий в окружающем мире. То, во что люди верят (или утверждают, что верят), куда менее важно, чем то, что онн совершают в критических ситуациях. Этот акцент весьма важен в ИИ. Исследователи постепенно поняли, что интеллектуальные программы необходимо помешать прямо в предмет- ную область, а не лелеять в лаборатории. В этом причина роста интереса к робото- технике и проблеме восприятия, а также к сети Internet. В последнее время ведутся активные работы по созданию Web-агеитов, или “софтботов”, — программ, которые выходят в сеть и совершают полезные интеллектуальные действия. Сеть привлек» тельна для разработчиков ИИ прежде всего тем, что она может предложить интМ лектуальным программам мир, куда более сложный, чем построенный в лабораЮ ыит °Т МИР’ сРавннмый по сложности с природой и обществом, могут населят ват^ГТ™' агеи™’ не имегащие тел, но способные чувствовать « л1*1”’ вать, как в физическом мире. влияние нТигч™В1°Ра' Те°РИН яренного действия будут оказывать все возрастаю^ ния таким вопросамиТ ННТелЛеет’ заста®ляя исследователей уделять боЛЬД^ В ноГо агента. Важно также vu ВаЖН0СТЬ овешествления и обоснования для интеллекту факторов на обучение и йВЛИЯНИе Финального, культурного и экоН°* аген- та. [Clark, 19971 пльл«- г ’10с°б влияния мира на рост и эволюцию внедре В за ’l 11 }uhnson, 1999]. (1 препятствуют сеп одФняРМУЛИРУеИ ОСНОйНЬ1е вопросы, которые как способствуй5 ных систем. ЩНИм усилиям специалистов в построении теории интелл -----'^^л|Эг,и/,оГ Часть VII-J 802
16.3. Искусственный интеллект: текущие задачи и будущие направления Как геометр, напрягший все старанья. Чтобы измерить круг, схватить умом Искомого не может основанья. Таков был я при новом диве том... — Данте (Dante), Рай Хотя использование методик ИИ для решения практических задач продемонстриро- вало его полезность, проблема их применения для построения полной теории интеллекта сложна, н работа над ней продолжается. В этом заключительном разделе мы вернемся к вопросам, которые привели автора к изучению проблем искусственного интеллекта и на- писанию этой книги: возможно ли дать формальное математическое описание процессов, формирующих интеллект? Вычислительное описание интеллекта возникло с появлением абстрактных определе- ний вычислительных устройств. В 1930-1950-х гг. эту проблему начали исследовать Тьюринг, Пост, Марков и Черч— все они работали над формальными системами для описания вычислений. Целью этого исследования было нс просто определить, что подра- зумевать под вычислениями, но и установить рамки их применимости. Наиболее изучен- ным формальным описанием является универсальная машина Тьюринга [Turing, 1950], хотя правила вывода Поста, лежашие в основе продукционных систем, тоже вносят важ- ный вклад в развитие этой области знаний, Модель Черча [Church, 1941], основанная на частично рекурсивных функциях, привела к созданию современных высокоуровневых функциональных языков, таких как Scheme и Standard ML. Теоретики доказали, что все эти формализмы эквивалентны по своей мощности: лю- бая функция, вычисляемая при одном подходе, вычисляется и при остальных. На самом деле можно показать, что универсальная машина Тьюринга эквивалента любому совре- менному вычислительному устройству. Исходя из этих фактов, был выдвинут тезис Чер- ча-Тьюринга о том, что невозможно создать модель вычислительного устройства, более мощного, чем уже известные модели. Установив эквивалентность вычислительных мо- делей, мы обретаем свободу в выборе средств их технической реализации: можно стро- ить машины иа основе электронных ламп, кремния, протоплазмы или консервных банок. Автоматизированное проектирование в одной реализации можно рассматривать как эк- вивалент других механизмов. Это делает еще более важным эмпирический метод, по- скольку исследователь может экспериментировать над системой, реализованной одними средствами, чтобы понять систему, реализованную иными. Хотя, возможно, универсальная машина Тьюринга и Поста чересчур универсальна. Парадокс состоит в том, что для реализации интеллекта может потребоваться менее мощный вычислительный механизм с большим упором на управление. В работе [Levesque и Brachman, 1985] высказано предположение, что для реализации человече- ского интеллекта могут потребоваться вычислительно более эффективные (хотя н ме- нее впечатляющие) представления, в том числе основанные на использовании хориов- ских дизъюнктов для представления рассуждений н сужении фактического знания до основных литералов. Агентские н эволюционные модели интеллекта также разделяют подобную идеологию. Глава 16- Искусственный интеллект как эмпирическая проблема 803
- л Аномальной эквивалентностью вычислителе,. Еще один аспект, связаннь™ * £6лема взаимоотношения мозга и тела. По лей._ это вопрос дуализм [ д) фнлософЫ задавались вопросом взанмоад^6 мере со времен [„ фнз11ческого тела. Философы предлагали нсевозм^"' „„„геграцин мозга со™ ,зма я0 отрицания материального существо,^ объяснения, от "олног ии „ „орнитологические исследования отвергаю, 4 вплоть до вмеша™’“ „аюриальиой модели разума, основанной на физической знанский снмвоЛов. формальном описании вычислительных операм 1“71' ,1и!’г-1”*1 "" С не менее возникает множество вопросов, связанных с эпистемологически принципами организации интеллекта как физической системы. Отметим некоторые ва>, ные проблемы. ]. Проблема представления. Ньюэлл и Саймон выдвинули гипотезу о том, что фи- зическая символьная система и поиск являются необходимой и достаточной харак- теристикой интеллекта (см. раздел 16.1). Опровергают ли успехи нейронных сетей, генетических и эволюционных подходов к интеллекту гипотезу о физической сим- вольной системе, или же они сами являются символьными системами? Вывод о том, что физическая символьная система представляет собой достаточную модель интеллекта, привел ко многим впечатляющим и полезным результатам в современной науке о мышлении. Исследования показали, что можно реализовать физическую символьную систему, которая будет проявлять разумное поведение. Достаточность гипотезы позволяет строить и тестировать символьные модели многих аспектов поведения человека ([Pylyshyn, 1984], [Posner, 1989]). Но теория о том, что физическая символьная система и поиск необходимы для разумного пове- дения, остается под вопросом [Searle, 1980], [Weizenbaum, 1976], [Winograd и Flores, 1986], [Dreyfus и Dreyfus, 1985], [Penrose, 1989]. 2. Роль овеществления в познании. Одним из главных предположений гипотезы о физической символьной системе является то, что физическая реализация символь- ной системы не влияет на ее функционирование. Значение имеет лишь формальная структура. Это ставится под сомнение многими исследователями [Searle, 1980], [Johnson, 1987], [Agre и Chapman, 1987], [Brooks, 1989], [Varela н др., 1993], LЧТ° разумиые Действия в мире требуют физического воплош* ГХоВП°нТ0ЛЯеТ 0&ьеди^ься с миром Архитектура сегодняшних «ом- кусстаенногоДц°ПУС1СаеТ ТШС0Й СТепенИ внедРСиия, ограничивая взаимодействие эти сомнения “ТеЛЛекта с миром современными устройствами ввода-вывода- отличного от ппепЫ’ Т° реЕШпация машинного разума требует интерфейса, вс 3. Культ ПРбтГаем°Г0 временными компьютерами. Дивида^как иг^Хе^5РадИЦИОИИО уПор в ИИ делался на разум отдельного^ мозга (способов кодиппй^6*™' ПредпОлагается, что изучение принципов Р нимание истоков интелле^Г Н МаНипулироваиия знаниями) обеспечит пол в«ь в контексте обшЛ" ‘ Н° МОЖио Утверждать, что знание лучше рассМ В «ории интелле™ Т °ТДеЛЬНУЮ "Р™’ гге, ««* «»ем ааЖ1П1,х ’ “Саннои 8 (Edelman, 1992], общество само явля^ «о»' ~-------------°<™«»>ощ.<х интеллекта. Возможно, понимание социальп»^ Часть VII. 3"^ 804
текста знания и человеческого поведения ие менее важно для теории интеллекта, чем понимание процессов отдельного разума (мозга). 4. Природа интерпретации. Большинство вычислительных моделей работают с за- ранее интерпретированной предметной областью, т.е. существует неявная априор- ная привязка разработчиков к контексту интерпретации. Из-за этой привязки сис- тема ограничена в изменении целей, контекстов, представлений по мере решения задачи. Кроме того, сегодня делается слишком мало попыток осветить процесс по- строения интерпретации человеком. Позиция Тарскиана (Tarskian), который рассматривает семантическое приспособ- ление как отображение множества символов иа множество объектов, безусловно, слишком слаба и ие объясняет, например, тот факт, что одна предметная область может иметь разные интерпретации в свете различных практических целей. Лин- гвисты пытаются устранить ограничения такой семантики, добавляя к ней теорию прагматики [Austin, 1962] (раздел 13.1). К этим вопросам в последнее время часто обращаются исследователи в области анализа связной речи, поскольку здесь важ- ную роль играет применение символов в контексте. Однако проблема гораздо ши- ре — она сводится к изучению преимуществ и недостатков ссылочных средств в целом [Lave, 1988], [Grosz и Sidner, 1990]. В традиции семиотики, основанной Пирсом [Peirse, 1958] и продолженной в рабо- тах [Есо, 1976], [Grice, 1975], [Seboek, 1985], принимается более радикальный под- ход к языку. Здесь символьные выражения рассматриваются в более широком кон- тексте знаков и знаковых интерпретаций. Это предполагает, что значение символа может быть понято лишь в контексте его интерпретации и взаимодействия с окру- жающей средой. 5. Неопределенность представлений. Гипотеза Андерсона о неопределенности представлений [Anderson, 1978] гласит: принципиально невозможно определить, какая схема представления иаилучшим образом аппроксимирует решение задачи человеком в контексте его опыта и навыков. Эта гипотеза основывается иа том факте, что всякая схема представления неразрывно связана с большей вычисли- тельной архитектурой и со стратегиями поиска. Детальный анализ человеческого опыта показывает, что иногда невозможно управлять процессом решения в степе- ни, достаточной для определения представления, или же установить представле- ние, которое бы однозначно определяло процесс. Как и принцип неопределенности в физике, где процесс измерения влияет иа исследуемое явление, это соображение важно при проектировании моделей интеллекта, но оно, как будет показано ниже, не ограничивает их применимости. Такие же замечания могут быть адресованы к самой вычислительной модели, где индуктивные пороги символов и поиска в контексте гипотезы Черча—Тьюринга все же накладывают ограничения на систему. Мысль о необходимости построения не- кой оптимальной схемы представления вполне может оказаться осколком мечты рационалиста, в то время как ученому нужна лишь модель, достаточно качествен- ная для рассмотрения эмпирических вопросов. Доказательством качества модели является ее способность интерпретировать, предсказывать и адаптироваться. 6. Необходимость построения ошибочных вычислительных моделей. Поппер [Popper, 1959] и другие утверждают, что научные теории должны ошибаться. Сле- довательно, должны существовать обстоятельства, при которых модель не может Глава 16. Искусственный интеллект как эмпирическая проблема 805
ЛГ1_ине DfO связано С тем, ЧТО для подтип конечного числа подгвер^^ ' праВ^‘^в оСбки в существующих теориях стимулируют дальнейшие"^ ' следования. о фюнческон символьной системе, а также аге„ГСПп ' Kpa8H”^Х^молелей интеллекта может привести к тому, что их будет но£ и эво-™“™““о[Ш1бэтъся. Следовательно, их применимость в качестве модели ГТоХ^еииой. Те же замечания можно сделать по поводу предположе„вй 2 „Ттогаческой традиции (п. 7). Некоторые структуры данных ИИ, такие как ^Х”кие сети, тоже настолько общи, что ими можно смоделировать пракц,. ото поддается описанию, или, как в универсальной машине ТьЮриич тХо вычислимую функцию. Таким образом, если исследователю ИИ или кот,- толоту задать вопрос о том. при каких условиях его модель интеллекта не будт работать, он затруднится ответить. 7 Ограничения научного метода. Некоторые исследователи [Winograd и Ro- res, 1986], [Weizenbaum. 1976) утверждают, что наиболее важные аспекты интеллекта в принципе невозможно смоделировать, а в особенности с помощью символьного представления. Эти аспекты включают обучение, понимание естественного языка в речь. Эти вопросы корнями уходят глубоко в феноменологическую традицию. На- пример. замечания Винограда CWinograd) н Флореза (Flores) основываются на про- блемах, поднятых в феноменологии [Husserl, 1970], [Heidegger, 1962]. Многие положения современной теории ИИ берут начало в работах Карнапа (Сатар), Фреге (Frege), Лейбница (Leibniz), а также Гоббса (Hobbes), Локка (Locke). Гумма (Hume) и Аристотеля. В этой традиции утверждается, что интел- лектуальные процессы отвечают законам природы н в принципе постижимы. Хайдеггер (Heidegger) и его последователи представили альтернативный подход к пониманию интеллекта. Для Хайдеггера рефлексивная осведомленность свойственна миру овеществленного опыта. Приверженцы этой точки зрения, включая Винограда, Флореса и Дрейфуса (Dreyfus), говорят, что понимание личностью каких-либо аспек- тов основывается на их практическом “использовании” в повседневной жизни- По существу, мир представляет собой контекст социально организованных ролей и лей. Эта среда и функционирование человека в ней не объясняются соотношениями и теоремами. Это поток, который сам себя формирует н непрерывно модифицирует В фундаментальном смысле в мире эволюционирующих норм н неявных целей чело* ческии опыт это знание не объекта, а, скорее, способа действия. Человек по С0В" «нут не способен выразить большую часть своего знания и разумного поведет» Форме языка, будь то формального или естественного. ттаиимГои7У Т0ЧКу зрени"- Во-первых, как критика чисто рационалис^ деятельность аиионалтм отстаивает позицию, что всякая человеч формализованы и^н” " °™етс™:ннос1ъ в принципе могут быть пРедсТ“ ufg- иие. отвод, важики *™ Большинство вдумчивых людей ставят это под 'наконец-то!). Сам Ап ^°ЛЬ ,моииям- самоутверждению и обязательства. ТО. что требует ^Эриста1сль ГОВОРИЛ: “Почему я не чувствую побужден 109е- ' Существует множество разновидностей че. вгвльности, выходящих за пределы досягаемости научного метода. Часть*'- 806
рые играют важную роль в сознательном воспроизвести в машинах. взаимодействии людей. Их невозможно 1ралишв'‘ состоящая в изучении данных, построении моделей, постановке экспериментов и проверке результатов с уточнением модели дальней- ших экспериментов, дала человечеству высокий уровень понимания, объяснения и способности предсказывать. Научный метод — мощный инструмент для улучше- ния понимания человека. Тем не меиее в этом подходе остается множество под- водных камней. Во-первых, ученые ие должны путать модель с моделируемым явлением. Модель позволяет постепенно аппроксимировать феномен, но всегда имеется '‘остаток” который нельзя объяснить эмпирически. В этом смысле неоднозначность пред- ставления не является проблемой. Модель используется для исследования, объяс- нения н предсказания, и если она выполняет эти функции, то это— удачная мо- дель [Kuhn, 1962]. В самом деле разные модели могут успешно пояснять разные аспекты одного явления, например, волновая и корпускулярная теории света. Более того, когда исследователи утверждают, что некоторые аспекты интеллекта находятся за рамками методов научной традиции, само это утверждение можно проверить лишь с помощью этой традиции. Научный метод— единственный ин- струмент, с помощью которого можно объяснить, в каты смысле вопросы могут быть за пределами текущего понимания человека. Всякая логически последова- тельная точка зрения, даже точка зрения феноме?'----- - ' - , <и. должна соотноситься с текущими представлениями об с ' она всего лишь устанавливает границы, в которых феномен *•' Эти вопросы необходимо рассматривать для сохранения логической связности и развития ИИ. Для того чтобы понять процесс решения задач, обучение и язык, необходимо осмыслить представления н знания на уровне философии. Исследователям предстоит рошть аристоте- левское противоречие между теорией и практикой, жить между наукой и искусстве»*. Ученые создают инструменты. Все наши представления, алгоритмы и языки— это инструменты для проектирования и построения механизмов, проявляющих разумное до- ведение. Посредством эксперимента можно исследовать как их вычислительную адек- ватность для решения задач, так н наше собственное понимание явления интеллекта. Мы наследники традиции Гоббса. Лейбница. Декарта. Бэббиджа. Тьюринга и других, о чьем вкладе в науку было рассказано в главе I. Инженерия. на>ка и философия. природа идей, знаний и опыта; могущество и пределы формализма и механизма — это ограничения, с кото- рыми необходимо считаться и с учетом которых нужно продолжать исследования. 16.4. Резюме и дополнительная литература Для получения дополнительной информации ч1 ками, приведенными в конце главы I К ним ctoj (Winograd и Flores, 1986]. Вопросы когнитолопш _ n..n (Newell и Simon. 1972), (Posner. 1989). [Lnger, 1994). IBalUrd. 199/j. (Franki.n, 1995). (Jeannerod, 1997], (Elman и др.. 1996]. В работах [Haugeland, 1981. 1997], [Dennett, скис корни теории интеллектуальных систем. 1978). [Smith. 1996] описаны философ- Кннга [Anderson. 1990] по когнитивной Глава 16- Искусственный интеллект как эмпирическая проблема 807
,е примеры моделей обработки информации. в психологии дает приводится детальное описание многих нрикцИП11^ Pylyshin, 1984). [Andren. WJP мотрение неопределенности представлен^. в ныхвопросов когиитоло^ «„orca для исследовании структура СВД1Й [Dennett, 1991] методы кс,г™ книги по научному методу: [Popper, 1959] иия. Также можно ш>Р«о«[Lakat0S. 1976] [Quine, 1963] [Kuhn, 1962]. [Bechtel. IWll" предлоЖены возможные ответы на вопрос обос. Наконец, в (Lakott и топ важные аспеКты овеществленное™ интеллекта, нования. В книге (СТзтК. 1 решения задачи внедренного робота можно Библиография Предлагаем читателям адреса двух известных научных групп. The American Association for Artificial Intelligence 445 Burgess Drive Menlo Park, CA 94025 Abelson H.. Sussman G. J. Structure and Interpretation of Computer Programs. Cambridge, MA: MIT Press, 1985. Ackley D. H., Hinton G. E. and Sejnqwski T. J. A learning algorithm for Boltzmann machines. Cognitive Science 9, 1985. Ackley D. H., Littman M. Interactions between learning and evolution. In Langton ct al. (1992), 1992. Computer Professionals for Social Responsibility P.O. Box 717 Palo Alto, CA 94301 Adler M. R„ Davis A. B., Weihmayer R. and Worrest R. W. Conflict resolution strategies for nonhierarchical distributed agents. Distributed Artificial Intelligence, Vol. 112. San Francisco: Morgan Kaufmann, 1989. Agre P. and Chapman D. Pengi: an implementation of a theory of activity. Proceedings of the Sixth National Conference on Artificial Intelligence, pp. 268-272. CA: Morgan Kaufmann, 1987. Aho A. V. and Ullman J. D. Principles of Compiler Design. Reading, MA: Addison-Wesley, 1977. Allen J. Natural Language Understanding. Menlo Park, CA: Benjamin/Cummings, 1987. Allen J. Natural Language Understanding, 2nd ed. Menlo Park, C.A Benjamin/Cummings, 1995. Allen J., Hendler J. and Tate A. Readings in Planning. Los Altos, CA: Morgan Kaufmann, 1990. Aliy J. L. and Coombs M. J. Expert Systems; Concepts and Examples. Manchester NCC Publications, 1984. Anderson J. A., Silverstein J. W„ Ritz, S. A. and Jones R. S. Distinctive features, categorical perception and probability learning: Some applications of a neural model. Psychological Review, 84: 413-451, 1977. Anderson J. R. Arguments concerning representations for mental imagery. Psychological Review, 85: 249-277, 1978. Anderson J. R. Acquisition of cognitive skill. Psychological Review, 89: 369-406, 1982. Anderson J. R. Acquisition of proof skills in geometry. In Michalski et al. (1983a), 1983a. Anderson J, R. The Architecture of Cognition. Cambridge. MA: Harvard University Press, 19836. Anderson J. R. Cognitive Psychology and its Implications. New York; W. H. Freeman, 1990. Anderson J. R. and Bower G. H. Human Associative Memory. Hillsdale, NJ: Erlbaum. 1973. Andrews P, An Introduction to Mathematical Logic and Type Theory: To Truth Through Proof. New York: Academic Press, 1986. Smalltalk/V: Tutorial and Programming Handbook. Los Angeles: Digitalk. 1986. Appelt D. Planning English Sentences. London: Cambridge University Press, 1985. Arbib M. Sunpie self-reproducing universal automata. Information and Control 9:177-189.1966.
> д w ed Papers Of John Von Neumann on Computing and c Aspray W' “с X idge MA: MIT Press, 1987. neory. Lamo 6 w neon amj ap/,iicalio„ of agnostic pac-learnin. wi,. on Machine 11—29 San Francisco. ivioig** Л ,₽PJ 'l Wo»' >0 Do Things with Words. Cambridge, MA: Harvard University Press. 19щ Xb E and Harms R, ed. Universals of Linguistic Theory. New York: Holt, Rinehatt Winston. 1968. Bachant J and McDermott J. R1 revisited: Four years tn the trenches. Al Magaztne 5(3),1% n t ic T Can programming be liberated from the Von Neumann style? A functional style ш B Isa^ ^Communications of the ACM, 21(8): 613-641.1978. * Ballard D. An introduction io Natural Computation. Cambridge, MA: МГГ Press, 1997. Balzer R. Erman L. D„ London P. E. and Williams C. HEARSAY III: A domain independent framework for expert systems. Proceedings AAAI. 1980. Bareiss E. R„ Potter, B. W. and Weir С. C. Protos: An exemplar-based learning apprentice. International Journal of Man-Machine Studies, 29: 549-561, 1988. Barker V.E. and O'Connor D.E. Expert Systems for configuration at DIGITAL: XCON and Beyond. Communications of the ACM, 32(3): 298-318, 1989. Barkow J. H., Cosmides L. and Tooby J. The Adapted Mind. New York: Oxford Univ. Press, 1992. Ban A. and Feigenbaum E., ed. Handbook of Artificial Intelligence. Los Altos, CA: William Kaufman, 1989. Bartlett F. Remembering. London: Cambridge University Press, 1932. Bateson G. Mind and Nature: A Necessary Unity. New York: Dutton, 1979. Bechtel W. Philosophy of Mind. Hillsdale, NJ: Lawrence Erlbaum, 1988. Bellman R. E. Dynamic Programming. Princeton, NJ: Princeton University Press, 1956. Benson S. Action Model Learning and Action Execution in a Reactive Agent. Proceedings of the International Joint Conference on Artificial Intelligence (IJCAI-95), 1995. Benson s and Nilsson N. Reacting. Planning and Learning in an Autonomous Agent. Machine “'те ЬУ K' Furukawa' D' Michie and s- Muggleton. Oxford: Clarendon ВеГ8шд Ure?I™n" cel1 jjietra S" Della Pietra V -Gillett Lafferty J-.Metcer R’’ РПТ" Proceedings nn5° add* S'-',e"‘f°r Machine Translation. Human Language Technology M«Xe, те* W°rksho₽ °"Speech a"d NaIura'la"^ Sa" Ma’“' MuscettolaN^NayakP ptfn Gar"ble E' B" Ka"cfsk>' B- Kurien BX Design of the 'remole B" K" Rou4uette N- Smith B' a"d W„ Xd®6 Aerospace ConferenceS|998 ₽ n'"e"'f°r spacecraft autonomy. Proceedings of Bhaskar R. and Simon^A^ ^“ra-Dynamic Programming. Belmont, MA: Athena, 19^^ Bishop C.H . Neural N,„ "° solvinS in semantically rich domains. Co%. Set- • ^NetworksforPauettt Recognilion. Oxford^ford Univasity Press. 1^' 810 Библ«оГ(,аФ
— "“°™ ***** Bledsoe W. W. Non-resolulion theorem proving. Artificial Intelligence, 9. 1977, Bobrow D. G. Dimensions of representation. In Bobrow and Collins (1975), 1975. Bobrow D. G. and Collins A., ed. Representation and Understanding. NY: Academic Press, 1975. Bobrow 0 G. and Winograd T. An overview of K.RL. a knowledge representation language. Cognitive Science 1(1), 1977. Bond A. H. and Gasser L„ ed. Readings in Distributed Artificial Intelligence. San Francisco: Morgan Kaufmann, 1988. Boole G. The Mathematical Analysis of Logic. Cambridge: Macmillan, Barclay & Macmillan, 1847. Boole G. An Investigation of the Laws of Thought. London: Walton & Maberly, 1854. Boyer R. S. and Moore J. S. A Computational Logic. New York; Academic Press, 1979. Brachman R. J. On the epistemological status of semantic networks. In Brachman and Levesque (1985), 1979. Brachman R. J. / lied about the trees. Al Magazine 6(3), 1985. Brachman R. J. and Levesque H. I. Readings in Knowledge Representation. Los Altos, CA: Morgan Kaufmann, 1985. Brachman R. J., Fikes R. E. and Levesque H. J. KRYPTON: A functional approach to knowledge representation. In Brachman and Levesque (1985), 1985. Brachman R. J., Levesque H. J. and Reiter R., ed. Proceedings of the First International Conference on Principles of Knowledge Representation and Reasoning. Los Altos. CA: Morgan Kaufmann, 1990. Breiman L., Friedman J„ Olsen R. and Stone C. Classification and Regression Trees. Monterey, CA: Wadsworth, 1984. Brodie M. L., Mylopoulos J. and Schmidt J. W. On Conceptual Modeling. New York: Springer-Verlag, 1984- Brooks R. A. A robust layered control system for a mobile robot. IEEE Journal of Robotics and Automation. 4: 14-23, 1986. Brooks R. A. A hardware retargetable distributed layered architecture for mobile robot control. Proceedings IEEE Robotics and Automation, pp. 106-110. Raliegh. NC. 1987. Brooks R. A. A robot that walks: Emergent behaviors from a carefully evolved network. Neural Computation 1(2): 253-262. 1989. Brooks R. A. Intelligence without reason. Proceedings of UCAI-91. pp. 569-595. San Mateo, CA: Morgan Kaufmann. 1991a. Brooks R. A. Challenges for complete creature architectures. In Meyer and Wilson, 1991. Brooks R. and Stein L. Building brains for bodies. Autonomous Robots. 1: 7-25. 1994. Brown J, S. and Burton R. R. Diagnostic models for procedural bugs in basic mathematical skills. Cognitive Science, 2. 1978. Brown J. S. and VanLehn K. Repair theory: A generative theory of bugs in procedural skills. Cognitive Science, 4: 379—126, 1980. Brown J S Burton R R and deKleer J. Pedagogical, naluml language and knowledge engineering techniques m SOPHIE. In Sleeman and Brown (1982). 1982. Библиография B11
— „и R Kant Е. and Martin N. Programming Expert Systems in Brownston L FarrellPragramming. Reading. MA: Addtson-Wesley, 198S « 4" вХ В. G. and Mitchell T. M. Model-d.rected .earning of production rides. and Hayes-Roth (1978), 19/8. „ r- „„я Shortliffe E H. ed. Rule-Based Expert Systems; The MYCIN Exn„ ^Munford Heuristic Programming Project. Reading. MA: Addison-Wesley.^'* Bundy A. Computer Modeling of Mathematical Reasoning. New York: Academic Press. 1ад Bundv A The use of explicit plans to guide inductive proofs. Lusk R. and Overbeek R (ed. Pre'eedings of CADE 9. pp. 111-120. New York: Spnnger Verlag. 1988. '(е* Bundv A Byrd L.. Luger G.. Mellish C.. Milne R. and Palmer M. Solving mechanics pnbn ifig^a-level inference. Proceedings of UCA1-I979, pp. 1017-1027, 1979. '* Bundy A and Welham R. Using meta-level inference for selective application of multhk rewrite rules in algebraic manipulation. Artificial Intelligence, 16: 189-212, 1981. Burks A. W. Theory of Self Reproducing Automata. University of Illinois Press, 1966. Burks A. W. Essays on Cellular Automata. University of Illinois Press, 1970. Burkks A. W. Von Neumann’s self-reproducing automata. In Aspray and Burks (1987), 1987. Burmeister B., Haddadi A. and Matylis G. Applications of multi-agent systems in traffic and transportation. IEEE Transactions in Software Engineering, 144(1); 51—60, 1997. Burstall R. M. and Darlington J. A. A transformational system for developing recursive programs. JACM, 24 (January), 1977. Burstein M. Concept formation by incremental analogical reasoning and debugging. In Michalski et al. (1986). Busuoic M. and Griffiths D. Cooperating intelligent agents for service management in communications networks. Proceedings of 1993 Workshop on Cooperating Knowledge Based Systems, University of Keele, UK, 213—226, 1994. Butler M„ ed. Frankenstein, or The Modem Prometheus: the 1818 text by Mary Shelly. New York: Oxford University Press, 1998. ill L. and McGaugh J. L. Modulation of memory storage. In Squire and Kosslyn (1998), 1998. a"d ^neralizmg plans from C^lwonProblem S0l''i,,g “"d Michalski et al'^gss) J9g3 a”d M,tehe11 T- M. An overview of machine teaming. ” Cardie C.Ind Mo”1mf"rma,i°n ‘«raction. Al Magazine, Winter, 65-79.I»7- 5-9,1999. °"ey 'J' Madnne learning and natural language. Machine Learning. Carpenter P. Д. 5thecL Needham Heights MA: Allyn Bacon. J9’4, l977. Cogninve processes in Comprehension. Hillsdale. NJ: B Gordon &ВгеасЬ,А19б(“ Pro8ram"4ng for Mechanical Translation. NeW Y° БиблиогР9*11 C,UnI КП) ' SymbaUc ^sic and Mechanical Theorem Proving. New York: Academic Press, 1973. 15 Charniak E Toward a model of children's story comprehension. Report No. TR-266, Al Laboratory, MIT, 1972. Chamiak E. Statistical Language Learning. Cambridge. MA: МГГ Press 1993 Charniak E.. Hendrickson C.. Jacobson N. and Perkowitz M. Equations for part-of-speech tagging. Proceedings of the Eleventh National Conference on Artificial Intelligence Menlo Park. CA; AAAI/MIT Press, 1993. Charniak E. and McDermott D. Introduction to Artificial Intelligence. Reading. MA: Addison- Wesley, 1985. Charniak E„ Riesbeck С. K.. McDermott, D. V. and Meehan J. R. Artificial Intelligence Programming, 2nd ed. Hillsdale, NJ: Erlbaum. 1987. Charniak E. and Shimony S. Probabilistic semantics for cost based abduction. Proceedings of the Eighth National Conference on Artificial Intelligence, pp. 106-111. Menlo Park, CA: AAAI Press/ MET Press, 1990. Chamiak E. and Wilks Y. Computational Semantics. Amsterdam; North-Holland. 1976. Chen L. and Sycara K. Webmale: A persona! agent for browsing and searching. Proceedings of Second International Conference on Autonomous Agents (Agents 98), 1998. Chomsky N. Aspects of the Theory of Syntax. Cambridge, MA: MIT Press, 1965. Chorafas D. N. Knowledge Engineering. New York; Van Nostrand Reinhold, 1990. Chung К. T. and Wu С. H. Dynamic scheduling with intelligent agents. Metra Application Note 105. Palo Alto: Metra, 1997. Church A. The calculi of lambda-conversion. Annals of Mathematical Studies. Vol. 6. Princeton: Princeton University Press, 1941. Churchland P. S. Neurophilosophv: Toward a Unified Science of the Mind/Brain. Cambridge. MA: МГГ Press, 1986- Clancy W. J. Die advantages of abstract control knowledge in expert system design. AAAI-3.1983. Clancy W. J. Heuristic Classification. Artificial Intelligence, 27: 289-350. 1985. Clancy \V. J. and Shortliffe E. H. Introduction: Medical artificial intelligence programs. In Clancy and Shortliffe (19845), 1984a. Clancy W.J. and Shortliffe E. H„ ed. Readings in Medical Artificial Intelligence: the First Decade. Reading. MA: Addison-Wesley. 19846. Clark A. Being There: Putting Brain. Body, and World Together Again. Cambridge. MA: MIT Press, 1977. Clocksin W. F. and Mellish C. S. Prog, in PROLOG. 2nd ed. New York: Springer-Verlag. 19S4. Codd E. F. Cellular Automata. New York: Academic Press. 1968. Codd E. F. Private communication to J. R. Kora- In Koza (1992). 1992. Cohen P. R. and Feigenbaum E. А. The Handbook of Artificial Intelligence. Vol. 3. Los Altos. CA: William Kaufmann, 1982. Cole R. A., ed. Survey of the State of the Art in Human Language Technology. New "lork: Cambridge University Press. 1997. Cole P. and Morgan J. L., ed- Studies in Syntax. Vol. 3- Neu York: Academic Press. 197x —------------------------------------ 8t3 Ьиблиография 812
r*ile v R Retrieval time from semantic memory. jOQ ^linS A-alX'Xehavior. 8: 240-247. 1969. G—“ ‘fc Gm‘Pe '",MSe"Ce АП^- Un^ Ai.vMaree.Ue II.J975. r p SyMme de Communicati C0'“X^Xremr.'Research Report, Groupe Intelligence Artifreielle, Untv^ С oX M T 5>М"“- №'V УОГк: ACademiC Press- «84. -a ’ M- 2 management. Ibbt, cxpei i, i < '• Cornten I. H. Leiserson С. E. and Rivest R. J. torodnertot, to Algorithms. C^rid^ MIT Press. 1990. Cosmides L and Tooby I Cognitive adaptations for social exchange. In Barkow et al. (1992), 1992 Cosmides L. and Tooby I. Origins of do,nain ^ificity: the evolution of fi,nc,lo^ organhation. In Hirschfeld and Gelman (1994), 1994. Cotton S.. Bundy A. and Walsh T. Automatic invention of integer sequences. Proceedings of the AAAI-2000, Cambridge: MIT Press, 2000. Crick F. H. and Asanuma C. Certain aspects of the anatomy and physiology of the cerebral cortex. In McClelland et al. (19S6), 1986. Crutchfield J. P. and Mitchell M. The Evolution of Emergent Computation. Working Paper 94- 03-012. Santa Fe Institute, 1995. Cutosky M. R., Fikes. R. E.. Engelmore R. S., Genesereth M. R., Mark W. S., Gruber T., Tenenbaum J.M. and Weber C.J. PACT: Au experiment in integrating concurrent engineering systems. IEEE Transactions on Computers, 26(1): 28-37, 1993. Dahl V. Un Systems Deductif d'Interrogation de Banques de Donnes en Espagnol. PhD thesis, Universite Aix-Marseille, 1977. Dahl V. and McCord M. C. Treating Coordination in Logic Grammars. American Journal of Computational Linguistics, 9: 69-91, 1983. i Dallier J. H. Logic for Computer Science: Foundations of Automatic Theorem Proving. New York: Harper & Row. 1986. Darr T. P. and Birmingham W. P. An attribute-space representation and algorithm for concurrent engineering. AffiDAM 10(1): 21-35, 1996. Davis E. Representations of Commonsense Knowledge. Los Altos, CA: Morgan Kaufmann, 1990. Davis L. Applying Adaptive Algorithms to Epistatic Domains. Proceedings of the International Joint Conference on Artificial Intelligence, pp. 162-164, 1985. Davis R. Applications of meta level knowledge to the construction, maintenance, and u«<lf large knowledge bases. In Davis and Lenat (1982), 1982. K"OWledge'based Sys,ems m Artificial Intelligence. New DaVi(1992a)nd199rCher W- Mode,-b^d Zoning: Trouble Shooting. In Hamscher et al. 814 Библиограф1'1*
Davi£;X Г ™ S; Artificial Intelligence. Menlo Park. California: AAA^Press }982NatlC,na’ Conference °" ,wchX"±::=;Xm^ A" ^ch-ne deKI7.rTRw''Tue b"rf knm’l^‘ of o^icai mechanics. Technical Report AI-TR-352, Al Laboratory, MIT, 1975. deKleer J. Local methods for localizing faults electronic circuits (МП Al Memo 394). Cambridge, MA: MIT, 1976. deKleer J. Choices without backtracking. Proceedings of the Fourth Nafonal Conference on Artificial Intelligence, Austin, TX, pp, 79-84. Menlo Park, CA AAAI Press, 1984. deKleer J. Ал assumption based truth maintenance system. Artificial Intelligence, 28,1986. deKleer^J. and Williams В. C. Diagnosing multiple faults. Artificial Intelligence 32(1); 92-130. deKleer J- and Williams В. C. Diagnosis with behavioral modes. Proceedings of the International Joint Conference on Artificial Intelligence, pp. 13124-13330. Cambridge MA: MIT Press, 1989. Dempster A. P. A generalization of Bayesian inference. Journal of the Royal Statistical Society. 30 (Series B): 1-38, 1968. Dennett D. C. Brainstorms: Philosophical Essavs on Mind and Psychology. Montgomery, AL: Bradford, 1978. Dennett D. C. Elbow Room: The Varieties of Free Will Worth Wanting. London: Cambridge University Press, 1984. Dennett D. C. The Intentional Stance. Cambridge MA: MIT Press, 1987. Dennett D. C. Consciousness Explained. Boston; Little, Brown. 1991. Dennett D. C. Darwin's Dangerous Idea: Evolution and the Meanings of Life. New York: Simon & Schuster, 1995. Dietterich T. G. Learning at the knowledge level. Machine Learning, 1(3): 287-316. 1986. Dietterich T. G. and Michalski R. S. Inductive learning of structural descriptions: Evaluation criteria and comparative review of selected methods- Proceedings UCAI 6.1981. Dietterich T. G. and Michalski R. S. Learning to predict sequences. In Michalski et al. (1986), 1986. Doorenbos R., Etzioni. 0. and Weld D. A scalable comparison shopping agent for the world wide web. Proceedings of the First International Conference on Autonomous Agents (Agents 97), pp. 39—48, 1997. Doyle J. A truth maintenance system. Artificial Intelligence, 12, 1979- Doyle J. Some theories of reasoned assumptions: An essay in rational psychology. Tech. Report CS-83-125. Pittsburgh-. Carnegie Mellon University, 1983. Dressier O. An extended basic ATMS. Proceedings of the Second International Worfah^ on Non- Monotonic Reasoning, pp. 143-163. Edited by Remfcmk. deKleer. Ginsberg and Sandewall. Lecture Notes in Artificial Intelligence 346. Heidelberg, pnnger er .c. 815 Библиография
u , ^Dreyfus S.EAW Over Machine. New York: Mactnillan/The Free M I QualiZe Verbal Explanations in Bayesian Belief Networks. A!SB S NattS'conference on Art^ctal IntenUce'^^- «Si "°sn Duda R О Hart P. E., KonoHge K. and Reboh R. A computer-based consultant for „ploration. SRI International. 19796. Durfee E H and Lesser V. Negotiating task decomposition and allocator,i using panial planning. Distributed Artificial Intelligence: Vol П. Gasser, L and Huhns, M. ed. Sa„ Francisco: Moraan Kaufmann, 229-244. 1989. Durkin J. Expert Systems: Design and Development. New York: Macmillan. 1994. Eco. Umberto. А Theory of Semiotics. Bloomington. Indiana: University of Indiana Press, 1976. Edelman G. M. Bright Air. Brilliant Fire: On the Matter of the Mind. New York: Basic Books, 1992. Elman J. L.. Bates E. A.. Johnson M. A., Karmtloff-Smith A-, Parisi D. and Plunkett K. Rethinking Innateness: A Conneclionist Perspective on Development. Cambridge, MA: MIT Press, 1996. Engelmore R. and Morgan T„ ed. Blackboard Systems. London: Addison-Wesley, 1988. Erman L. D., Hayes-Roth F.. Lesser V. and Reddy D. The HEARSA YII speech understanding system: Integrating knowledge to resolve uncertainty. Computing Surveys, 12(2): 213- 253,1980. Erman L. D., London P. E. and Fickas S. F. The design and an example use of HEARSAY III. In Proceedings UCAI7, 1981. Ernst G. W. and Newell A. GPS: A Case Study in Generality and Problem Solving. New York: Academic Press. 1969. Etherington D. W. and Reiter R. On inheritance hierarchies with exceptions. Proceedings AAAI-83, pp. 104-108. 1983. Euler L. The seven bridges of Konigsberg. In Newman (1956), 1735. Evans T. G. A heuristic program to solve geometric analogy problems. In Minsky (1968). 1968. Falkenhatner B. Explanation and theory formation. In Shrager and Langley (1990), 1990. Falkenhatner B„ Forbus K. D. and Gentner D. The structure mapping engine: Algorithm aM examples. Artificial Intelligence, 41(1): 1-64, 1989. Pass D. and Wilks Y. Preference semantics w'ith ill-formedness and metaphor. American Journal of Computational Linguistics IX, pp. 178-187, 1983. Fei8e(ni9a6™,196^ Пе Simula,ion °fverbal lear"in« behavipr- ln Feiee"baum and Feld®»» etgenbaum E. A. and Feldman J., ed. Computers and Thought. New York: McGraw-Hill. 1963. ^orduckP. The Fifth Ceneration: Anificial intelligence and JaP*’ nge to the World. Reading, MA: Addison-Wesley, 1983. Fikes R- Е. and Nilsson N. J. STRIPS: A new approach to th, t- to artificial intelligence. Artificial Intelligence, 1(2) 1971 арр1":а'юп °f 'heorem proving Fikes R- E., Hart P. E. and Nilsson N. J. Leantin, „.п ' Artificial Intelligence, 3(4): 251-288, 1972 * ° erecurmj generalized robot plans. Fillmore С. J. The case for case. In Bach and Harms (1968), 1968. Fischer K„ Muller 1. P. and Pischel M. Cooperative . . j ,. domain for DAI. Applied Artificial Intelligence, lOfTl-iT A" арр“са"°" RSh 2:аСди"‘'‘т ‘"mmaUal С°"СерПш1 Mach'"= Learning, Fisher D. H„ Pazzant M. J, and Langley P. Concept Formation: Knowledge and Experience in Unsupervised learning. San Mateo, CA: Morgan Kaufmann Publishing. 1991. Fodor J. A- The Modularity of Mind. Cambridge, MA: МГГ Press. 1983 Forbus K-D. and deKleer J. Focusing the ATMS. Proceedings of the Seventh National Conference on Artificial Intelligence, pp. 193-198. Menlo Park: CA. 1988. Forbus K. D. and deKleer J. Building Problem Solvers. Cambridge. MA: МГГ Press. 1993. Ford К. M. and Hayes P. J. Turing Test Considered Harmful. Proceedings of International Joint Conference on Artificial Intelligence. Montreal, 1995. Ford К. M., Glymour C. and Hayes P. J. Android Epistemology. Cambridge: МГГ Press. 1995. Forgy C. L. PETE: a fast algorithm for the many pattem/many object pattern match problem. Artificial Intelligence, 19(1): 17-37, 1982. Forney G. D., Jr. The Viterbi Algorithm. Proceedings of the IEEE (March), pp. 268-278.1973. Forrest S. Emergent Computation: Self-organizing, collective, and cooperative phenomena in natural and artificial computing networks. Physica D, 42:1-11,1990. Forrest S. and Mitchell M. What makes a problem hard for a genetic algorithm? Some anomalous results and their explanation. Machine Learning, 13: 285-319, 1993d. Forrest S. and Mitchell M. Relative building block fitness and the building block hypothesis. In L. D. Whitley (1993), 19935. Franklin S. Artificial Minds. Cambridge, MA: MIT Press, 1995. Freeman J. A. and Skapura D. M. Neural Networks: Algorithms. Applications and Programming Techniques. New York: Addison-Wesley. 1991. Frege G. Begriffsschrifi. eine der aritbmetischen nachgebildete Formelsprache des reinen Denkens. Halle: L. Niebert, 1879. Frege G. Die Gnindlagen der Arithmetic. Breslau: W. Koeber. 1884. Frey B. J. Graphical Models for Machine Learning and Digital Communication. Cambridge: MIT Press, 1998. Gadamer H. G. Philosophical Hermeneutics. Translated by D. E. Linge. Berkeley: University of California Press. 1976. Gallier J. H. Logic for Computer Science: Foundations of Automatic Theorem Proving. New York: Harper and Row, 1986. , Ganzinger H, Meyer C. and Veanes M. 77te Proceedings of the Annual Symposium on Logic in Computer Soenoe. pp. -4-34.1999- Gardner M. Mathematical Games. Scientific American (October 1970). 817 816 БиблиогР8*"" Библиография
, - Scientific American (February 1971). Gardner M. Malhemal,cat Games. л Oarey M. and of W. GazdXX^ A" ""^ - С^"ге"ж°х‘жаMITPres-2«Ю. XX M. and Nilsson N. Logical Foundations ofArttfictal inteUtgettce. Us Altos. CA: Morgan Kaufmann, 1987. Genesereth M. R. The role of plans in intelligent teachtng systems. In Sleeman and BrOW1 (1982), 1982. Gennari J. H-, Langley P- and F.sher D. Models of incremental concept formation. Anificia| Intelligence. 40(1-3): 11-62, 1989. Gentner D. Struct,.re-mapping: A theoretical framework for analogy. Cognitive Science, 7: 155-170, 1983. Giarratano J. and Riley G. Expert Systems: Principles and Programming. PWS-Kent Publishing Co, 1989- Gilbert C.D. Plasticity in visula perception and physiology. In Squire and Kosslyn (1998), 1998. Gilbert C. D. Horizontal integration and conical dynamics. Neuron, 9: 1-13, 1992. Ginsburg M.. ed. Readings in Non-monotonic Reasoning. San Francisco: Morgan Kaufmann, 1987. Glasgow B., Mandell A., Binney D., Ghemri L. and Fisher D. MITA: An information extraction approach to analysis of free-form text in life insurance applications. Proceedings of the Ninth Conference of Innovative Applications of Artificial Intelligence, pp. 992-999,1997, Gluck M. and Corter J. Information, uncertainty and the utility of categories. Seventh Annual Conference of the Cognitive Science Society in Irvine, Calif, 1985. Glymour C., Ford K. and Hayes P. The Prehistory of Android Epistemology. In Glymour et al. (19956), 1995a. Glymour C., Ford K. and Hayes P. Android Epistemology. Menlo Park, CA: AAAI Press, 19956. Glymour C. and Cooper G. F. Computation, Causation and Discovery. Cambridge: MIT Press, 1999. Goldberg A. and Robson D. Smalltalk 80: The Language and Its Implementation. Reading, MA: Addison-Wesley, 1983. G°U?T? ?jE' Ge"e,ic Algorithms in Search, Optimization and Machine Learning. Reading, MA: Addison-Wesley, 1989. Goldstme H. H.The Computer from Pascal to Von Neumann. Princeton. NJ: Princeton University Press, 1972. Goodman N. Fact, Fiction and Forecast, 4th ed. (Ambridge, MA: Harvard University Press, 1954. Report LITh"maT1*82 Nm'Mono,onic Dependency Net Update. Technical Linkoping University, Link6ping“n ScienCe and lnfor™tiO" ' Xd s.‘j andnyl°Se"y-Can,br,d8eMA: Mk™₽ 1996. OUSe' ‘ Spread °f silence from Plato to Darwin. NY: Harmony Books- 818 БиблИОГраФиЯ
Graham P. On USP: Advanced Techniques for Common I , ца||. 1993. J USP- Englewood Chris. NJ: Prentice Graham P. ANSI Common Lisp. Englewood Cliffs, NJ: Prentice Hall 1995 Grice H. P. Logic and conversation. In Cole and Morgan (1975), 1975 Grossberg S. Adaptive pattern classification and universal „„ j. , „ „ , , . and coding of neural feature detectors. Biological Cybernetics'23 12U134 ^°P'"e'" Grossberg S. Studies of Mind and Brain: Neural Prinrinl.. „ Development. Cognition and Motor Control. Boston: Reidel Pres{ 1982. Grossberg S„ ed. Neural Networks and Natural Intelligence. Cambridge. MA: MIT Press. 1988 Grosz B. The representation and use of focus in dialogue understanding. PhD thesis. University of California, Berkeley, 1977. 6 Grosz B. and Sidner C. L. Plans for discourse. Intentions in Communications, Cohen P. R and Pollack M. E. ed., pp. 417-444. Cambridge, MA: MIT Press. 1990. Hall R- P. Computational approaches to analogical reasoning: A comparative analysis 39(1)- 39-120, 1989. ” Hammond K., ed. Case Based Reasoning Workshop. San Mateo, CA Morgan Kaufmann. 1989. Hamscher W., Console L. and deKleer J. Readings in Model-based Diagnosis. San Mateo: Morgan Kaufmann, 1992. Hanson J. E. and Crutchfield J. P. 1992. The Attractor-basin portrait of a cellular automaton. Journal of Statistical Physics, 66(5/6): 1415-1462. Harmon P. and King D. Expert Systems: Artificial Intelligence in Business. New York: Wiley, 1985. Harmon P., Maus, R. and Morrissey W. Expert Systems: Tools and Applications. New York: Wiley, 1988. Harris M. D. Introduction to Natural Language Processing. Englewood Cliffs NJ: Prentice Hall, 1985. Hasemer T. and Domingue J. Common LISP Programming for Artificial Intelligence. Reading, MA: Addison-Wesley. 1989- Haugeland J., ed. Mind Design: Philosophy, Psychology, Artificial Intelligence. Cambridge, MA: MIT Press, 1981. Haugeland J. Artificial Intelligence: the Very Idea. Cambridge/Bradford, MA: МГГ Press, 1985. Haugeland J., ed. Mind Design: Philosophy, Psychology, Artificial Intelligence, Ind ed. Cambridge, MA: МГГ Press, 1997. Haussler D. Quantifying inductive bias: Al learning algorithms and Valiant's learning framework. Artificial Intelligence. 36:177-222, 1988. Hayes P. J. Some problems and non-problems in representation theory. Proc. AISB Summer Conference, pp. 63-69, University of Sussex, 1974. Hayes P. J. ft, defense of logic. Proceedings UCAI-77, pp. 559-564. Cambridge. MA. 1977. Hayes P. J. The logic offrames. In Metzing (1979). 1979. Hayes-Roth B. Agents on stage: Advancing the state of the art m Al^ 1 иксе“ Fourteenth International Joint Conference on Arttfictal Intelltgem.e. Catnbndge, Press, 967-971, 1995. 819 Библиография
B"T“ CommunieationsoftheACM,x . Hayes-Roth F„ Waterman D. and Unat D. BuM.ng Exper, Sys.e.ns, Reading. MA; Addison_ Weslev 1984. Hebb D. O. The Organization of Behavior. York: Wiley. 1949. Hecht-Nielsen R. Nearai analog processing. Proc. SPIE, 360, pp. 180-189. Bellingham, WA. i9|q Hecht-Nielsen R. Counleipropagabon networks. Applied Optics, 26:4979-4984 (December 1987) Hecht-Nielsen R Theory of the backprapagation ,,enrol Proceedings of International Joint Conference on Neural Networks, I. pp. 593-611. New York: ffiEE Press, 1989. Hecht-Nielsen R. Neurocomputing. New York; Add is on-Wes ley, 1990. Heidegger M. Being and. Time. Translated by J. Masquarrie and E. Robinson. New York Harper & Row, 1962. Heidom G. E Augmented phrase structure grammar. In Schank and Nash- Webber (1975), 1975. Helman P. and Veroff R. Intermediate Problem Solving and Data Structures: Walls and Mirrors, Menlo Park, CA: Benjamin/Cummings, 1986. Hempel C. G. Aspects of Scientific Explanation. New York: The Free Press, 1965. Henderson Peter. Functional programming: Application and Implementation. Englewood Cliffs, NJ; Prentice-Hall, 1980. Hightower R. The Devore universal computer constructor. Presentation at the Third Workshop on Artificial Life, Santa Fe. NM, 1992. Hill P. A. and Lloyd J. W. The Goedel Programming Language. Cambridge, MA: MIT Press, 1994, Hillis D. W. The Connection Machine. Cambridge, MA: MIT Press, 1985. Hinsley D., Hayes J. and Simon H. From words to equations: Meaning and representation in algebra word problems. In Carpenter and Just (1977), 1977. Hinton G.E. and Sejnowski T. J. Learning and relearning in Boltzmann machines. In McClelland et al. (1986), 1986. Hinton G.E. and Sejnowski T. J. Neural network architectures for AL Tutorial, AAAI Conference, 1987. Hirschfeld L. A, and Gelman S. A., ed. Mapping the Mind: Domain Specificity in Cognition and Culture. Cambridge: Cambridge University Press, 1994. ^^blex 1985 М°°Ге R‘ C* Formal Theories of the Commonsense World. Norwood, NJ- Hodges A. Alan Turing: The Enigma. New York: Simon and Schuster, 1983. M и Л °* ^Uld COHCeptS аП^ Creative Ana^Sies, New York: Basic Books, 1995. Нл11й a A(^ptation in ^atura^ Artlficial Systems. University of Michigan Press, 1975- automata ^andfon^ spontaneous emergence of self-replicating systems using ceilula Holland HPndfOrmal8— In Lindenmayer and Rozfnberg U976), 1976- applied to parallel rule’based P°S.sibilities S^eral purpose learning algori* P «не/ rule-based systems. In Michalski et al, (1986), 1986. 820 ’ ----------------------------------------— Библиогр^
Holland J. H. Hidden Order: How Adaptation Builds Гы» i Wesley, 1995. Complexity. Reading, MA: Addison- Holland J.H.. Holyoak K.J, Nisbett R. E. and Thagard PR м D Inference. Learn,ng and Discovery. Cambridge, MA?M1T Press. 1986 Pr0Cesses °f Holowczak R. D. and Adam N. R. Information extraction-based m i classification for the global leeal inform baSed mu^ple-category document Conference on InnovaU^A^JnsaРг0Сеи1^5 °f "”= Ninlh Mpp «canons of Artificial Intelligence, pp. 1013-1018, 1997. Holyoak K. J. The pragmatics of analogical transfer The Puchnin™ г т л Motivation, 19: 59-87, 1985. 7 Psychology of Learning and Hopcrofl I t and Ullman J. p. Introduction to Automata Theory. languages and Computations Rending, MA: Addison-Wesley, 1979. ana Hopndd J. J. Neural’ networks and physical systems with emergent collective computational abilities. Proceedings of the National Academy of Sciences 79, 1982. Hopfield J. J. Neural networks and physical systems with emergent collective computational abilities. Proceedings of the National Academy of Sciences, 79: 2554-2558.1984. Horowitz E. and Sahni S. Fundamentals of Computer Algorithms. Rockville, MD: Computer Science Press, 1978. Hume D. An Inquiry Concerning Human Understanding. New York: Bobbs-Merrill, 1748. Husserl E. The Crisis of European Sciences and Transcendental Phenomenology. Translated by D. Carr. Evanston, IL: Northwestern University Press, 1970. Husserl E. Ideas: General Introduction to Pure Phenomenology. New York: Collier, 1972. Ignizio J. P. Introduction to Expert Systems: The Development and Implementation of Rule- Based Expen Systems. New York: McGraw-Hill, I99L Ivry I. B. The representation of temporal information in perception and motor control. In Squire and Kosslyn (1998), 1998. Jackson P. Introduction to Expert Systems. Reading, MA: Addison-Wesley, 1986. Jeannerod M. The Cognitive Neuroscience of Action. Oxford; Blackwell, 1997. Jennings N. R. Controlling cooperative problem solving in industrial multi-agent systems using joint intentions. Artificial Intelligence, 75: 195-240, 1995. Jennings N.R. and Wooldridge M. Agent Technology: Foundations, Applications, and Markets. Jennings N. R. and Wooldridge M. ed. Berlin: Springer-Verlag, 1998. Jennings N.R., Sycara К. P. and Wooldridge M. A roadmap for agent^research development. Journal of Autonomous Agents and MultiAgent Systems. 1 (1). 7 36, 1998. Johnson L. and Keravnou E. T. Expen Systems Technology: A Guide. Cambridge, MA: Abacus Press, 1985. Johnson M. The Body in .he Mind: The Bodily Basis of Meaning. Imagination and Reason. Chicago: University of Chicago Press, 1987. Johnson W. L. and Solo way E. Proust. B)te (April). 1985. Johnson-Laird P. Mental Models. Cambridge, MA. Harvard Unnersity ss, - Johnson-Laird P. N. The Compuier and ihe Mind. Cambridge. MA: Harvard Un»«W 1988. Jordan M. (ed.) Learning in Graphical Models. Boston. Kluwer Аса e 821 Библиография
—’R - Co~- i 7.H. Pr0CVSmS- Upper Sa№ Riv». NJ; Kan.7Z™/^ Critique of Rooson. Smith N.K. translator. New Yort St Manin s Press. 1781/1964- Kanniloff-Smith A. Вы* A D^lopmental Perspeenve o„ Cog„itn.e Cambridge. MA: МГГ Press, 1992. Kaufeun„ M-. Manolios P. and Moore. IS- (ed.) Con.pu.er-A.ded Reasoning: Aa, Studies Boston: Kluwer Academic. -0W. Kautz H.. Selman B. and Shah M. The hidden web. Al Magazine 18(2): 27-35. 1997. Kedar-Cabelli S. T. Analogy — From a unified perspective. In Helman (1988), 1988. Kedar-Cabdh S.T. and McCarty LT. Explanation based generalization as resolution theory proving. Proceedings of the Fourth International Workshop on Machine Learning, 1987. Keraxnou E. T. and Johnson L Competent Expert Systems: A Case Study in Fault Diagnosis. London: Kegan Paul, 1986. King S. H. Knowledge Systems Through PROLOG. Oxford: Oxford University Press, 1991. Klahr D., Langley P. and Neches R-. ed. Production System Models of Learning and Development. Cambridge, MA; МГГ Press, 1987. Klahr D. and Waterman D. A. Expert Systems: Techniques, Tools and Applications. Reading, MA: Addison-Wesley. 1986. Kian W. B.. Westenell R. T. and Luger G. F. A general purpose intelligent control system for par tide accelerators. Journal of Intelligent & Fuzzy Systems. New York John Wiley, 1999. Klein W. B.. Stem C R.. Luger G. F. and Pless D. Teleo-reactive control for accelerator beamline tuning. .Artificial Intelligence and Soft Computing: Proceedings of the LASTED Internationa! Conference, Anaheim: LASTED/ACT A Press. 2000. Kodratoff A. and Michalski R. S.. ed. Machine Learning: An Artificial Intelligence Approach. Vol. 3. Los Altos, CA: Morgan Kaufmann. 1990. Kohonen T. Correlation matrix memories, IEEE Transactions Computers, 4: 353—359,1972. Kohonen T. Self-Organization and Associative Memory. Berlin: Springer-Verlag, 1984. Koller D. and Pfeffer A. Object-oriented Bayesian networks. Proceeding of the Thirteenth Annual Conference on Uncertainty in Artificial Intelligence. San Francisco: Morgan Kautmann, 1997. Probabilistic frame-based systems. Proceeding of the Fifteenth Anrual onfereoce on Uncertainty m Artificial Intelligence. San Francisco: Morgan Kaufmann. 199K r^)resentalion of continuous functions of mans variables b) ~ one ™ Proceedings of IteiX solver capabilities through case based infrr**e' Kaufmann, 1987 International Workshop on Machine Learning. CA: Motp*1 of the Case Based ° CaSe тетогУ: A parallel implementation. Proceed'^ ReaS°nin& W^P- Los Altos, CA: Morga^ Kaufmann. 198^- 822 '---------------------------------------------------------------
Kolo^ Cdse Based R^ning Worisl^p. San Muto, .CA Morgan Kanfaa». 19886 Colodner J- L. Improving human decision making through /. , , Magazine, 12(2): 52-68, 1991. S gh case-based decision aiding. Al Kolodner J. L. Case-based Reasoning. San Mateo. CA. Morgan Kaufmann. 1993 Korf R-ESearcfl-In Shapiro (19876), 1987. Korf R- E- Artificial intelligence search algorithms In CRC ЬЪпак-ы-л- at -.u a Theory of Computation. M. J. Atallah, <L Boca Raton H : “* '‘"'fc Ж' PUZZleS RMC S Cubt " raamh "“Higcnr S^- К°5к?Л^ТоеГ' °Я<*”Л' monon« 'EEE Transactions Systems. Man & Cybernetics. |o» HTvXJy Ijud. Kosoresow A P A fast-first cut protocol for agent coord morion. Proceedines of the Eieveah National Conference on Artificial Intelligence, pp. 237-242, Cambridge, MA МП Press, 1993, Koton P. Reasoning about evidence in causal explanation. Proceedings of AAAI-88. Cambridge, NLA: AAAI Press/МП Press. 1988a. Koton P. Integrating case-based and causal reasoning. Proceedings of the Tenth Annual Conference of the Cognitive Science Society. Northdale. NJ: Erlbaum. 19886. Kowalski R. Algorithm = Logic + Control. Communications of the ACM. 22:424-436,1979a. Kowalski R. Logic for Problem Solving. Amsterdam; North-Holland, 19796. Koza J. R Generic evolution and со-evolution cf computer programs. In Langton et ah (1991), 1991. Koza J R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. Cambridge, MA: МП Press, 1992. Koza J. R. Genetic Programming II: Automatic Discovery of Reusable Programs. Cambridge, MA: МП Press. 1994. Krulwich B. The BarginFinder agent: Comparison price shopping on the internet. Boes, and other Internet Beasties. Williams, J. ed. 257-263, Indianapolis: Macmillan. 1996. Kuhl P. K. Innate predispositions and the effects cf experience in speech perception: The native language magnet theory. Developmental Neurocogmtion' Speech and Face Processing in the First Year of Life. Boysson-Bardies B.. de Schonen S.. Jusczyk P_. McNeilage P. and Morion J, ed. pp. 259-274. Netherlands: Kluwer Academic. 1993. Kuhl P. K. Learning and representation in speech and language. In Squire and Kosstyn (1998). 1998. Kuhn T. S. The Structure of Scientific Revolutions. Chicago.- University of Chicago Press, 1962. Laird J.. Rosenbloom P. and Newell A Chunking in SOAR: The Anatomy of a General Learning Mechanism. Machine Learning 1 (1). 1986a. Laird J., Rosenbloom P. and Newell A. Universal Sub goal mg and Ch*tn^g Generation and Learning of Goal Hierarchies. Dordrecht Kluwer. 19866. Lakoff G. Women, Fire and Dangerous Things. Chicago . University of Chicago Press. 1987. Lakoff G and Johnson M Philosophy in the Flesh, New York: Basic Books. 1999. Lakatos I. Proofs and Refutations: The Logic of Mathematical Discovery. Cambridge University Press. 1976. Langley P. Elements of Machine Learning. San French Morgan Kauris 199> -------------------------------------- 823 Библиография
, . r , and Simon H. A. Bacon 5: The discover, or Langley P ’Bra*hfaL Sevenlh International Joint Conference on Artificial Inte|i>”» Proceeding Bradstuw G. L. and Zytkow J. M. Scienlific Discovery c '** HS| Exploraho J н д an<j Bra()shaw G L Пе seaKh (1986), 1986, Langton C. 0. Studying artificial life with cellular automata. Physica D, 120449, 198(. Langton C. G. Artificial Ufe. Santa Pe lnsii.uie Studies in the Sciences of Comp,e Reading, MA: Addison-Wesley, 1989. * 4. Langton С. Computation at the edge of chaos: Phase transitions and emergent compUtatio Physica D., 42: 12-37,1990. " Langton C. G. Artificial Life: An Overview. Cambridge, MA: MIT Press, 1995. Langton C G. Taylor C, Farmer J. D. and Rasmussen S. Artificial Life //, SFl Studies in n, Sciences of Complexity. Vol. 10. Reading, MA: Addison-Wesley, 1992. t,le Larkin J. H-, McDermott J., Simon D. P. and Simon H. A. Models of competence in solvit physics problems. Cognitive Science, 4, 1980. 8 Laskey K. and Mahoney S. Network fragments: Representing knowledge for constructing probabilistic models. Proceedings of the Thirteenth Annual Conference on Uncertainty in Artificial Intelligence. San Francisco: Morgan Kaufmann, 1997, Lauritzen S. L. and Spiegel halter D. J. Local computations with probabilities on graphical structures and their application to expert systems. Journal of the Royal Statistical Society В 50(2); 157-224, 1988. Lave J. Cognition in Practice. Cambridge: Cambridge University Press, 1988. Leake D. B, Constructing Explanations: A Content Theory. Northdale, NJ: Erlbaum, 1992. Leake D. B., ed. Case-based Reasoning: Experiences, Lessons and Future Directions. Menlo Park: AAAI Press, 1996, Leibniz G. W. Philosophische Schrifien. Berlin, 1887, Lenat D,B, On automated scientific theory formation; a case study using the AM program. Machine Intelligence, 9: 251-256, 1977. Lenat D. B. AM. an artificial intelligence approach to discovery in mathematics as heuristic search. In Davis and Lenat (1982), 1982. 61-98 program that learns new heuristics. Artificial Intelligence, 21(1,2). J S‘ W AM and Eurisk° aPP™' work- ^cial 1П1е1УёеПС' Addison-wllfyj^V’ Bltlldlng UrSe Knowledge Based Systems, Reading, MA Les™VP’ R°Cky Raccoon‘ The White Album. Apple Records, 1968. Levesque H F °L °‘ distributed vehic(e monitoring testbed. Al Magazine. 4(3), ! _ • Intelligence,и23^И98°4 “ ^nCtio,lal aPProach to knowledge representation. Arti|C
Levesque, H. J. A knowledge level account of abd • International Joint Conference on Artificial Win Proceedings of the Eleventh Morgan Kaufmann, 1989. Intelligence, pp. 1051-1067, San Mateo, CA: Levesque H. J. and Brachman R. J. A fundamental ,md reasoning (revised version). In Brachman and Levesque (1915)^ re,mse",a,im and Lewis J. A. and Luger G.F. Л conrrmcn’virr model of roin, ' Proceedings of the Twenty Second Annual Confaence of Z ? p"fo,”u‘"ce ln Hillsdale, NJ: Erlbaum, 2000. omerence of the Cogmuve Science Society. Lieberman H. Lelizia: An agent that assists web browsine bm-rf,,., „r „, c РтГ'э™' 1О1т C0"feren” °" Anir,Cial ,№П'8="«. «2^29. Cambridge MaZh Lifschitz V. Some Results on Circumscription. AAAI 1984, 1984 Lifschitz v. Pointwise Circumscription: Preliminary Report. Proceedings of the Fifth National Conference on Artificial Intelligence, pp. 40<wl 10. Menlo Park, C A: AAAI Press, 1986. Linde C. Information structures in discourse. PhD thesis, Columbia University, 1974. Lindenmayer A. and Rosenberg G., ed. Automata, Languages. Development. New York: North-Holland, 1976. Lindsay R. K-, Buchanan B, G., Feigenbaum E. A and Lederberg J. Applications of artificial intelligence for organic chemistry: the DENDRAL project. New York: McGraw-Hill, 1980. Ljunberg M. and Lucas A. The OASIS air traffic management system. Proceedings of the Second Pacific Rim International Conference on Al (PRICAI-92), 1992. Lloyd J. W. Foundations of Logic Programming. New York: Springer-Verlag, 1984. Lovelace A. Notes upon LF. Menabrea's sketch of the Analytical Engine invented by Charles Babbage. In Morrison and Morrison (1961), 1961. Loveland D. W. Automated Theorem Proving: a Logical Basis. New York: North-Holland, 1978. Lucas R. Mastering PROLOG. London: UCL Press, 1996. Luck S. J. Cognitive and neural mechanisms in visual search. In Squire and Kosslyn (1998), 1998. Luger G. F. Formal analysis of problem solving behavior in Cognitive Psychology. Learning and Problem Solving, Milton Keynes: Open University Press, 1978. Luger G. F. Mathematical model building in the solution of mechanics problems: human protocols and the MECHO trace. Cognitive Science, 5: 55-77, 1981. Luger G. F. Cognitive Science: The Science of Intelligent Systems. San Diego and New \ork: Academic Press, 1994. Luger G. F. Computation dr Inlelligence: Collected Readings. CA: AAAI Press/МТГ Press, 1995. Luger G. F. and Bauer M. A. Transfer effects in isomorphic problem solving. Acta Psychologia, 42, 1978. , . f Luger G, F., Wishart J. G. and Bower T. G. R. stages op * * ° ° object-concept development in infancy. Perception, .. ’ ‘ Maehtey M. and Young P. An Imroduetion io the General Theory ofAlgomhms. Amsterdam. North-Holland, 1979. _ . and Маплппап B.J. principles ’ Implementation, 2nd ed. New \ork. Hr , 825 Библиография
MksP-Ao^W"* МА: МП Press, 1990. vX I. KOOK: A W-w-f aK‘ * b*l««xi СЫЬ. ю рпдахНй-!^ Мжн Z. and Wajdas * Г~ ** °МЯрШеГ Pr°Z™™*g Reatfefc Addtfioo-Wesley. xt„ г рнаей A The TeugwM^^gic pf Reactive and Concurrent Synemr CD, ari Scfaze H. Foundations of Statistical Natural Language Prorrm^ И А ЛЬ«*? #5у*»аг Recognition for Natural Language. Cambridge, MA. IflT Press. 1980. VfaiCT.A Ad^#^«*«.Nario(ial Academy of Sciences. USSR. 1954 V^AJ J, B. W<«*’ A Se#-№athmg Cognitive Architecture for Analogy-Mating mi High-Level Perception. PhD dissertation. Departmem of Consoler Science. latfcaa Сапой). 1999. Marta А Cc^mtmonai Learning Theory: An Introduction. Cambridge: Cauhridg. Lorrersey Press, 1997. Manias J. Петек. Ле Me truth, and nothing but the truth: an indexed bibliografMtohe Inmnrae on truk maintenance systems. Al Magazine. 1 1(5): 7-25, 1990. Maias I. A sncoae fur epistemic staes. New Directions for Intelligent Tutoring Sy®» Сояа. ed. NATO АЯ Scries F Heiddberg: Springer- Veriag. 1991. Manas J. P Тлей Maintenance Systems. Id Shapiro S C. ed. {1992). 1992- Manas J. and Stapno S. C. Reasoumg m multiple belief spaces. Proceedings of the DCAL San Masco, CA: Morgan Karfram. 1983. A Mcdd^Be&fRevision. Amfioai Irtdhgence.3>l): 25-79. Wtt ^^BfwaeM. Semantic message detection for machine translation, using Imerbs^- noceetegs of Ле 1961 laernaboeal Соп&яоке on Machine Translation. 1961- D ^Adm"n^t^,M*i,aa^^tystem.b^ Al Lab.. Memo 473.19Ж r"-frioM i^ В^У<^ДИ —ed** averaging. Proceedings of the Т*«1№ ACM ^AmLioice СП Сх>»Цр«деюаа} Leanim» Theory COLT-99 1999 *P*b<di£ expressions and their computation by тл^ sfcc^l~a^»*of*eACB(LX4)T I960. iteC^Y^m^^monseW In Minsky (1968J. pp.403-418.1968. I038-10^1977toSIC<rf рпЫм m artificial intelligence. Proceedings 11CAT
‘*^^cira№*b0"-Afar* McCarthy J- Лдз&шйжг of Greamscriptimt to Formah Artificial Intelligence, 2& 89-116,1986. imeUigence. In Meltzer and Michie (1969), 1969 ? "пифии of McClelland J-U Rnmelhart D E and The POP Research Gnaax --- Pmrrtnuf. 2 ТОЙ. Camhewise UA lrrrn. __________ araua DlSOwatd Inteffigence, 18: 327-367,1982. McC**11 Deng* of a PROLOG based machme rnmdmias nsem. Proceed» of fee BnBetin of Mathematical Biophysics, 5:115-133,1943. McDeriDOG J. RJ. The formtSive years. Al Magazine (awwer 1981k 1981. McDennoc J. and Bachant J. R] misted; Four years й Ле troches. Al Magazine >3y 1984. McGoragle B- Incrememing buetiigoc systems by design. Proceedings of the Hrs: International Conference on Simulation of Adaptive 8ehavfor <SAB-90t 1990. McGomgie В, Ашоноягу й die irakmg: Gening robots to control themselves. Тт^пжпю Symposium on AiMooomous Agents. Oxford: Oxford Uraversjty Press. 1998. McGraw K. L. and HarbisOT-Briggs K. Knowledge Acquisition: Principies md Gaid fia ' Englewood Cliffs. NJ Prenace-Hafl, 1989. Mead C- Analog VLSI and Neural Systems. Reading. MA Adtfcoo-WesJe-y. 1989. MerieattTooiy M Phenomenology of Perception. London- Roudedse A Reran P=± 1962. Merging ed Frame Conceptions and Text Understanding Berlin; alar oe Gruyter £x Co. 1979. Meyer J. A and Wdson S cd. From anrmab to animats. Proceedings of ihe Rn Imemational Conference on Simulation of .Adaptive Behavior. Cambridge. MA: MR Press/В radford Books. 199! Michalski R. S . Carbonell LG. aid Mhchdl T.M_ cd. НтЛте Lesnm^ An Ап&сй; Intelligertce Approach. Vol-1. Palo Aho. CA: Tioga. 1983 Michalski R. S, Carbondl EG- aid Mrtcbeil T M. ed. Mme l^nmg An Artifiti^ Intelligence Approach. Vol- 2. Les Ahos. CA: Morgan __________________ » Mtchalskj R. S and Stepp R-В Learning from obseMsm: ameejnsal chtstermg^ L Michalski et al. (1983). 1983. Michie D. Tnal and "rvr Science Surrey. P*t 1 В««я SA. >d McCtaen V. ed. 129- 145 Hanrrnoodsworth UK: Penguin. 1961. ____
Miner R Tofte M. and Harper R. Definition of Standard ML. Cambridge, MA. MIT Press, Igg0 Milner r' and Tofte M. Commentary on Standard ML. Cambridge. MA: MIT Press, 1991. Minsky M ed. Semantic Information Processing. Cambridge. MA: MIT Press, 1968. Minsky M A framework for representing knowledge. In Brachman and Levesque (1985), 1975. Minsky M in Psychology of Computer Vision by P. Winston. McGraw-Hill, 1975a. Minsky M. The Society of Mind. New York: Simon and Schuster. 1985. Minsky M. and Paper! S. Perceptrons: An Introduction to Computational Geometry. Cambridge, MA: MIT Press, 1969. Minton S. Learning Search Control Knowledge. Dordrecht: Kluwer Academic Publishers, 1988. Mitchell M. Analogy-Making as Perception. Cambridge, МАЦ MIT Press, 1993. Mitchell M. An Introduction to Genetic Algorithms. Cambridge, MA: The MIT Press, 1996. Mitchell M., Crutchfield J. and Das R. Evolving cellular automata with genetic algorithms: Л review of recent work. Proceedings of the First International Conference on Evolutionary Computation and Its Applications. Moscow, Russia: Russian Academy of Sciences, 1996. Mitchell T. M. Version spaces: an approach to concept learning. Report No. STAN-CS-78- 711, Computer Science Dept., Stanford University, 1978. Mitchell T. M. An analysis of generalization as a search problem. Proceedings IJCAI, 6, 1979. Mitchell T. M. The need far biases in learning generalizations. Technical Report CBM-TR- 177. Department of Computer Science, Rutgers University, New Brunswick, NJ, 1980. Mitchell T. M. Generalization as search. Artificial Intelligence, 18(2): 203-226, 1982. Mitchell T. M. Machine Learning. New York: McGraw Hill, 1997. Mitchell T. M., Utgoff P. E. and Banarji R. Learning by experimentation: Acquiring and refining problem solving heuristics. In Michalski, Carbonell, and Mitchell (1983), 1983. Mitchell T. M, Keller R. M. and Kedar-Cabelli S. T. Explanation-based generalization: A unifying view. Machine Learning, 1(1); 47-80, 1986. Mithen S. The Prehistory of the Mind. London: Thames & Hudson, 1996. Mockler R. J. and Dologite D. G. An Introduction to Expert Systems, New York: Macmillan, 1992. re О. K. and Anderson S. B. Modem logic and tasks for experiments on problem solving behavior. Journal of Psychology, 38: 151-160, 1954. ProceSin^AAM 82 1982 representation and commonsense reasoning- 75-94,1985 consic^eratio,ls 011 nonmonotonic logic. Artificial Intelligence, 25(1)- °Г Benjami^cXingT199L A‘80,ith,ns from P t0 ^P, vol 1. Redwood City, CA: 1961. аМ M°mSOn E‘’ Charles Babbage and His Calculating Machines. NY: Dover, Michalski et al. (1981) n^™tation advice into a heuristic search procedure. In 828 БиблиограФиЯ
and ldUC-5, Proceedings of the Fifth Message Hn^ Kaufmann, 1994. g ^standing Conference p Mycroft A. and O’ Keefe R. A. A polymorphic N Morgan 23: 295-307 1984. *Wm/or Mylopoulos J. and Levesque H. J. An overview nft„ , . 1984‘ °fbl0Wl^ Mentation in Brodie et at Nadathur G. and Tong G. Realizing modularity in t Logic Programming, 9, Cambridge, MA: МП P^ да*' JOUnlal Of Functi°“l Nagel E. and Newman J. R. Godel's Proof New Ynri- м v ’. Nahm U. Y. and Mooney R. J. A information extraction. Proceedings 7LZ“ TSra4 * *»» mining and Conference, pp. 6274,32, 20«Г for ^gence Neches R., Langley P. and Klahr D. Learning devrinntnoM „ j et al. (1987), 1987. *' * pmc,Jl and production systems. In Klahr Negoita C. Expert Systems and Futzy Systems. Menlo Park, C A: Benjamin/Cummin-s 1985 Neves J. C. F. M. Luger G. F. and Carvalho J M. A /omutlirm/or vfe»-, in n log,cdata base. In Proceedings of the ACM Computer Science Conference, Cincinnati, OH, 1986. Newell A. Physical symbol systems. In Norman (1981), 1981. Newell A. The knowledge level. Artificial Intelligence, 18(1): 87-127,1982. Newell A. Unified Theories of Cognition. Cambridge, MA: Harvard University Press. 1990. Newell A., Rosenbloom P. S. and Laird J. E. Symbolic architectures for cognition. In Posner (1989), 1989. Newell A., Shaw J. C. and Simon H. A. Elements of a theory of human problem solving. Psychological Review, 65: 151-166, 1958. Newell A- and Simon H. The logic theory machine. IRE Transactions of Information Theory, 2: 61-79, 1956. Newell A. and Simon H. GPS: a program that simulates human thought. Lemende Automaton. H. Billing ed. pp. 109-124. Munich: R. Oldenbourg KG, 1961. Newell A. and S,mon H. Empirical exploration with tl^ie Theory Machine: a case sooty in heuristics. In Feigenbaum and Feldman (1963), 1963a. .An. (Iin Newel! A. and Simon H. GPS: a program that simulates human thaught. In Fe.gentaun and Feldman (1963), 19636. , р^-^НаИ 1972. Newell A. and Simon H. Human Problem Solving. Engle < symtois and search. Newell A. and Simon H. Computer lienee as ™Р*лса ш<г Communications of the ACM, 19(3): I - • 1956. Newman J. R. The World of Mathematics. № t _ , Esptaaalion Proceedings Ng H. T. and Mooney R- J. On the Ro!e of Cohere * uw4, Mento m. of the Eighth National Conference on CA: AAAI Press/MIT Press, 1990. blefrl sa/ving and the evolution of Nii H.P, Blackboard systems: The blackboardmod^P blackboard architectures. Al Magazin , Библиография
> Н ₽ -Ж-""' frOm ° Ч № "₽• * "Ст fOr bU,U" programs McGraw-Hill, 1965. v i«nn N J Learning Machines- r*ew i N toon S I РгМо” *Л“« Mahal‘ " Лп^сш11пкШ‘еаи:е New York: McGraw-Hill, 1П. Pal0 A,‘°-CA;TiOga-1980 x;i«on N J Tdto-Ractn t Programs for Agent Control. Journal of Artificial Ьвдц ‘ Research. 1:139-158. 1994. •* Nilsson N- J Artificial Intelligence: A New Synthesis. San Francisco: Morgan Kaufmann, 1ЭД Nishibe Y Kuwahara K.. Suda T. and Ishida T. Distributed channel allocation „ «. nemorts. Proceedings of the EEE Globecom Conference, 12.2.1-12.2.7.1993. Nordhausen B. and Langley P. An integrated approach to empirical discovery. In Shragea] Langley (1990), 1990. Norman D. A Memory. knowledge arid the answering of questions. CHIP Technical Report 25 Center for Human Information Processing, University of California, San Diego, 1972. Norman D. A. Perspectives on Cognitive Science. Hillsdale. NJ: Erlbaum, 1981. Norman D. A_. Rumelhart D. E. and the L.VR Research Group. Explorations in Cognition. S« Francisco: Freeman, 1975. Novak G. S. Computer understanding of physics problems stated in natural language. Proceedings UCAI5,1977. Noyes J. L. Artificial Intelligence with Common USE: Fundamentals of Symbolic and Numeric Computing. Lexington, MA: D. C Heath and Co. 1992. O’Keefe R. The Craft of PROLOG. Cambridge, MA МГТ Press, 1990. O’Leary D.D. M, Yates P. and McLaughlin T. Mapping sights and smells in the Ьпж distinct chanisms to achieve a common goal. Cell 96: 255-269, 1999. Oliver L M., Smith D. J. and Holland J. R. C. A Study of Permutation Crossover Operators я the Traveling Salesman Problem. Proceedings of the Second International Conference « Genetic Algorithms, pp. 224-230. Hillsdale, NJ: Erlbaum & Assoc. 1987. Oliveira E„ Fonseca J. M. and Steiger-Garcao A MACIV: A DAI based resource manage** system. Applied Artificial Intelligence, 11(6): 525-550, 1997. Papen S. Mindstorms. New York: Basic Books, 1980. Schwartz W Causal understanding of patient illness in РакииГ м OCeed'n£3 International Joint Conference on Artificial Intel Palo Alto: Morgan Kaufmann, 1981. P^A^Xtey.WM?e'“ ЛГаК8'“ ,ОГ C°mpU,er PrMem So,'‘nS mXU 1988iSe"' Sy5'ems: Nelv,orks °f PtaUSib,e l"lereK‘ Cr^edtty. New York: Cambridge University Press. 2000. 830 Библио^
Pearimuner В. A and Parra LC Maximum likelihood blind source separation A «m/exr serudne generalization of/СА. Advances in Neural Information Proceeine Swems 9 Cambridge. MA: MIT Press. 1997. «maaon rroceumg Systems. 9, Рейсе C. S. Collected Papers 1931-1958. Cambridge MA Harvard University Press, 195B Penrose R. The Emperor's New Mind. Oxford; Oxford University Press. 1989. Pereira L. M. and Warren D. H. D. Definite clause grammars for language analysis — A survey of the formalism and a comparison with augmented transition networks Artificial Intelligence, 13; 231-278. 1980. Perlis D. Autocircumscription. Artificial Intelligence, 36: 223-236, 1988. Perriolat E, Sakaret P.. Varga L. Z. and Jennings N. J. Using archon: Particle accelerator Control, 11(6): 80-86, 1996. Pfeffer A, Koller D., Milch B. and Takusagawa K. SPOOK: A system for probabilistic object- oriented knowledge representation. Proceedings of the Fifteenth Annual Conference on Uncertainty in Artificial Intelligence. San Francisco: Morgan Kaufinann 1999. Piaget J. The Construction of Reality in The Child. New York Basic Books, 1954. Piaget J. Structuralism. New York: Basic Books, 1970. Pinker S. The Language Instinct. New York: William Morrow and Company, 1994. Plato The Collected Dialogues of Plato, Hamilton E and Cairns H. ed. Рижские Pmceton University Press, 1961. Pless D., Luger G. and Stem C. A new object-oriented stochastic modeling language. Artificial Intelligence and Soft Computing: Proceedings of the IAS I ED International Conference. Anaheim: LASTED/ACT A Press, 2000. Polya G. How to Solve П. Princeton, NJ; Princeton University Press. 1945. Popper K. R. The Logic of Scientific Discovery. London: Huichmson. 1959- Posner M. I. Foundations of Cognitive Science. Cambridge, МА МГТ Press, 1989 Post E. Formal reductions of the general combinatorial problem. American Jomnal of Mathematics. 65: 197-268,1943. Poundstone W The Recursive Universe: Cosmic Complexity and the Limits of Sciertipc Knowledge. New York William Morrow and Company. 1985. Pratt T. W. Programming Languages: Design and Implementation Englewood Clift, NJ: Prentice-Hall, 1984. Prerau D. S. Developing and Managing Expert Systems: Proven Techniques for Business and Industry. Reading. MA Addison-Wesley. 1990. Pylyshyn Z W. НТцЯ the mind's eye tells the mind's brain: a critique of mental imagery. Psychological Bulletin. 80: 1-24, 1973. Pylyshyn Z W. The causal power of machines. Behavioral and Beam Sciences 3:442-444,1980 Pylyshyn Z. W. Computation and Cognition: Toward a Foundation for Cognitive Science Cambridge, MA: МГГ Press. 1984. Quill,» M R. Wordconcepu A >*«>Aand dmUaim of “"°”’* avMmv.ln Brachman and Levesque (1985). 1967. Quine W. V. O. From a Laical Pom, of*"- 2nd ed. New York. Harpe, Torrtboofa. 1963. 831 Библиография
• I n J. R. PrKCdUreS a"d "Kir aPP,iCa,iOn -° ем. 0U"'/<""« In MiCha’Sk'e^jA./0„ ,re^. Machine Learning. 1(1): 81-106,198&,. Quinlan J- R °f on concept learning. In Michalski et al. (1986), 19866 Q“in,bniI RR 2X~ a"d P"*eedin8S?A0196 .MC“: AAAI 1996 Quinlan J. R- B gg p for Machine Learning. San Francisco: Morgan Kaufmann, 199, Quinlan J- R. C - • „ psychoiOgy. Chicago, IL: University of Chicago Press, 1991. Quinlan P. Connection _ semantic information retrieval. In Minsky (1968), 1968 by machine: A review'proceedin8S °f Ле mEE 64 (MayI976)’ 1976' ,, r> c and Wang P. Y. Diagnostic expert systems based on a set covering R^iJoumallf Man-Machine Studies, 19(5): 437^60,1983. „ . . . M Fundamental and Logical Foundations of Truth Mamie,muce. Linkbping Studies t’tience and Technology. Dissertation 221. Department of Computer and Inhumation Science. Linkoping University, Linkoping, Sweden . Reiter R On closed norid databases. In Webber and Ntlsson (1981), 1978. ^nlet R. A logic for default reaso, ^.Artificial Intenigence. 13^1 I3J1980. Reiter R On reasoning by default. In Brachman and Levesque (1985), 1985. Reiter R. and Criscuolo G. On interacting defaults. Proceedings of the International Joint Conference on Artificial Intelligence, 1981. Reitman W. R. Cognition and Thought. New York: Wiley, 1965. Rendell L. A general framework for induction and a study of selective induction. Machine Learning, 1(2), 1986. RichE. and Knight K. Artificial Intelligence, 2nd ed. New York: McGraw-Hill, 1991- Rissland E. L. Examples in legal reasoning: Legal hypothetical. Proceedings of UCAI 83. Sa Mateo, CA: Morgan Kaufmann, 1983. Rissland E. L. and Ashley K. HYPO: A case-based system for trade secrets law. Proc mgs, First International Conference on Artificial Intelligence and Law, 1987. Roberts D. D. The Existential Graphs of Charles S. Pierce. The Hague: Mouton, 1973. Robinson J. A. A machine-oriented logic based on the resolution principle- °u ACM, 12: 23-41,1965. Rochester N., Holland J. H., Haibit L. H. and Duda W. L. Test on a cell assen^y^^d, ed. actuation of the brain, using a large digital computer. In J. A. Anderson an Neurocomputing: Foundations of Research. Cambridge, MA: MIT Press, 198». Rosch E. Principles of categorization. In Rosch and Lloyd (1978), 1978. g. Rosch E. and Lloyd В. B., ed. Cognition and Categorization, Hillsdale, NL Erlba Rosenblatt F. The perceptron: A probabilistic model for information storage an org m rhe brain. Psychological Review, 65: 386-408, 1958. Rosenblatt F. Principles of Neurodynamics. New York: Spartan, 1962. of osenbloom P S. and Newell A. The chunking of goal hierarchies: A gefler practice. In Michalski et al. (1986), 1986. Rosenbloom P.S. and Newell A. Learning by chunking, a production system model of practice. In Klahr et al. (1987), 1987. 7 Rosenbloom PS., Lehman J. F. and Laird J. E. Overview of Soar as a unified theory of cognition: Spring 1993. Proceedings of the Fifteenth Annual Conference of the Cognitive Science Society. Hillsdale, NJ: Erlbaum, 1993. Ross P. Advanced PROLOG. Reading, MA: Addison-Wesley, 1989. Ross T. Fuzzy Logic with Engineering Applications. New York: McGraw-Hi 11, 1995, Roussel P. PROLOG: Manuel de Reference et d’Utilisation. Groupe d’Intelligence Artificielle, Universitd d’Aix-Marseille, Luminy, France, 1975. Rumelhart D. E., Lindsay P. H., and Norman D. A. A process model for long-term memory. In Tulving and Donaldson (1972), 1972. Rumelhart D. E. and Norman D. A. Active semantic networks as a model of human memory. Proceedings IJCAI-3, 1973. Rumelhart D. E., Hinton G. E. and Williams R. J. Learning internal representations by error propagation. In McClelland et al. (1986), 1986a. Rumelhart D. E., McClelland J. L. and The PDP Research Group. Parallel Distributed Processing. Vol. 1. Cambridge, MA; MIT Press, 19866. Russell S. J. The Use of Knowledge in Analogy and Induction. San Mateo, CA: Morgan Kaufmann, 1989. Russell S. J. and Norvig P. Artificial Intelligence. A Modem approach. Englewood Cliffs, NJ: Prentice-Hall, 1995. Sacerdotti E. D. Planning in a hierarchy of abstraction spaces. Artificial Intelligence. 5; 115- 135, 1974. Sacerdotti E. D. The non linear nature of plans. Proceedings UCAI 4,1975. Sacerdotti E. D. A Structure of Plans and Behavior. New York: Elsevier, 1977. Sagi D. and Tanne D. Perceptual learning: Learning to see. In Squire and Kosslyn (1998). 1998. Samuel A. L. Some studies in machine learning using the game of checkers. IBM Journal of R & D, 3:211-229, 1959. Schank R. C. Dynamic Memory: A Theory’ of Reminding and Learning in Computers and People. London: Cambridge University Press, 1982. Schank R. C. and Abelson R. Scripts, Plans, Goals and Understanding. Hillsdale, NJ: Erlbaum, 1977. Schank R. C. and Colby К. M.. ed. Computer Models of Thought and Language. San Francisco: Freeman, 1973. Schank R. C. and Nash-Webber B. L., ed. Theoretical Issues in Natural Language Processing. Association for Computational Linguistics, 1975. Schank R. C. and Rieger C J. Inference and the computer understanding of natural language. Artificial Intelligence 5(4): 373-412, 1974. Schank R. C. and Riesbeck C. K„ ed. Inside Computer Understanding: Five Programs Plus Miniatures. Hillsdale, N.J.: Erlbaum, 1981. 833 832 6иблиогрв*и* Библиография
. r Holland О. and Bruten J. Ant-like agents for ioad Schoonderwoerd R, proceedings of the F.rst International СопГ^"« '« , Velde W. Software agent foundation for dynamo . Applied Artificial Intelligence,1 1(5) pp. 45<M82, I99' , TT M and Ouan A. G. Enhancing performance of cooperating agen,s S" - Р^Т37°1993е ТЬ1Г,ееП1Ь In‘ernatiOnal J°in‘ C0nf^ Artificial Intelligence, pp. 332-33/, IM. Searle J Speech Acts. London: Cambridge University Press, 1969. Searle J. R. Minds, brains and programs. The Behavioral and Brain Sciences, 3: 417424,1980. Sebeok T. A. Contributions to the Doctrine of Signs. Lanham, MD: Univ, Press of America, 1985 Sedgewick R. Algorithms. Reading, MA: Addison-Wesley, 1983. Sejnowski T. J. and Rosenberg C. R. Parallel networks that learn to pronounce English ten. Complex Systems, 1: 145-168, 1987. Selfridge 0. Pandemonium: A paradigm for learning. Symposium on the Mechanization of Thought. London: HMSO, 1959. Selman B. and Levesque H. J. Abductive and Default Reasoning: A Computational Core, Proceedings of the Eighth National Conference on Artificial Intelligence, pp. 343-348. Menlo Park, CA: AAAI Press/MIT Press, 1990. SelzO. Uber die Gesetze des Geordneten Denkverlaufs. Stuttgart: Spemann, 1913. Selz 0. Zur Psychologic des Produfaiven Denkens und des I returns. Bonn: Friedrich Cohen, 1922. Shafer G. & Pearl J., ed. Readings in Uncertain Reasoning, Los Altos, CA: Morgan Kaufom 1990. Shannon C. A mathematical theory of communication. Bell System Technical Journal, 1948. Shapiro E. Concurrent Prolog: Collected Papers, 2 vols. Cambridge, MA: MIT Press, 1987, Shapiro S. C., ed. Encyclopedia of Artificial Intelligence. New York: Wiley-Interscience, 1Ш Shapiro S. C., ed. Encyclopedia of Artificial Intelligence. New York; Wiley, 1992. Shavlik J. W. and Dietterich T. G., ed. Readings in Machine Learning. San Mateo, & Morgan Kaufmann, 1990. Shavlik J. W. Mooney R. J. and Towell G. G. Symbolic and neural learning algorithm erpenmental comparison. Machine Learning,6(1): 111-143, 1991. ephard G. M. The Synaptic Organization of the Brain. New York: Oxford University Pn^’1 XrLhol^anMatM CA MmP“'af'ral ММ of Scie",ifiC Discover> T chrn. ii r- * ’LA’ Mor8an Kaufmann, 1990. , Соп/егтКе^опАп№°Г‘ПП ln,elhSe'’ce: Survey Talks from (/*^0 ». 4"" г ” 2”'”‘s" «•*' .HftSSrrr -N” ^SSS8- * Siekmann 1 H and" *П"’к'"1!: Whal Develops. Hillsdale, NJ: Erlbaum, 1978. 1957,0 1970 Vo|r'l8 N°nv '’ Пе of Reasoning: Collected W YoTk: Springer-Verlag, 1983a. 834 Siek7Xo M vTnT v’ ? Au,oma,ion Collected Papers from 1957 to 1970. Vol. II. New York: Springer-Verlag, 19836. °fasP‘as of meaning in directed graph structure;. Communications of the ACM, 9:211-216, 1966. Simmons R. F. Semantic networks: Their computation and use for understanding English sentences. In Schank (1972), 1973. Sirn0.n.£cP‘ ,an^oSlrnOT1 H‘ A' lndividual differences in solving physics problems. In Siegler (19 /о), 197o. Simon H. A. Decision making and administrative organization. Public Administration Review 4: 16-31, 1944. Simon H. A. The functional equivalence of problem solving skills. Cognitive Psychology, 7: 268—288, 1975. Simon H. A. The Sciences of the Artificial, 2nd ed. Cambridge, MA: MIT Press, 1981. Simon H. A. Why should machines learn? In Michalski et al. (1983), 1983. Sims M. H. Empirical and analytic discovery in IL. Proceedings of the Fourth International Workshop on Machine Learning. Los Altos. CA: Morgan Kaufmann, 1987. Skinner J. M. and Luger G. F. A synergistic approach to reasoning for autonomous satellites. Proceedings for NATO Conference of the Advisory Group for Aerospace Research and Development, 1991. Skinner J. M. and Luger G. F. An architecture for integrating reasoning paradigms. Principles of Knowledge Representation and Reasoning. B. Nobel, C. Rich and W, Swartout, ed. San Mateo, CA: Morgan Kaufmann, 1992. Skinner J. M. and Luger G. F. Contributions of a case-based reasoner to an integrated reasoning system. Journal of Intelligent Systems. London: Freund, 1995. Sleeman D. Assessing aspects of competence in basic algebra. In Sleeman and Brown (1982), 1982. Sleeman D. and Smith M. J. Modelling students’ problem solving. Al Journal, pp. 171-187. 1981. Sleeman D. and Brown J. S. Intelligent Tutoring Systems. New York: Academic Press. 1982. SmalltalkTV: Tutorial and Programming Handbook. Los Angeles: Digitalk, 1986. Smart G. and Langeland-Knudsen J. The CRI Directory of Expert Systems. Oxford: Learned Information (Europe) Ltd., 1986. Smith В. C. Prologue io reflection and semantics in a procedural language. In Brachman and Levesque (1985), 1985. Smith В, C. On rhe Origin of Objects. Cambridge, MA: МГГ Press, 1996. Smith R. G. and Baker J. D. The dipmeter advisor system: a case study m commercial expert system development. Proc. 8th IJCAL pp. 122-129, 1983. Smoliar S. W A View of Goal-oriented Programming, Schlumberger-Doll Research Note, l^So. Soderland S., Fisher D„ Aseltine J. and Lehnert W. CRYSTAL- Inducing a conceptual dictionary. Proceedings of the Fourteenth International Joint Conference on Artfiual Intelligence, 1314-1319, 1995. --------------------------- ’ 835 Библиография
D K n p Woolf B, Bonar J. and Johnson W. L. MENO-IF „ S°l0Way bwnal of Computer Based Instruction, 10(1, 2), 1983 P'°ST njhant J and Jensen K. Assessing the maintainability of Xc . S cZing^ 'he problems of a very large rule base. Proceedings AAAI-87. CA Morgan Kaufmann, 19S7. S A14 Somoeyi Z. Henderson, F. and Conway C Mercury; An efficient purely decl mograrnnung language. Proceedings of the Austrian Computer Science Confer'* 499-512,1995. " Sowa J. F. Conceptual Structures: Information Processing in Mind and Machine. R^j MA: Addison-Wesley, 1984. 81 Squire L. R. and Kosslyn S. M.. ed. Findings and Current Opinion in Cognitive Neuroscitw 1 Cambridge: МГГ Press. 1998. ' J Steele G. L. Common LISP: The Language, 2nd ed. Bedford, MA: Digital Press, 1990. Stefik M., Bobrow D„ Mittal S. and Conway L. Knowledge programming in LOOPS: Refm on an experimental course. Artificial Intelligence, 4(3), 1983. Sterling L. and Shapiro E. The Art of Prolog: Advanced Programming Techniques. Cambridge MA: MIT Press, 1986. Stem C. R. An Architecture for Diagnosis Employing Schema-based Abduction. PhD dissertation. Department of Computer Science, University of New Mexico, 1996. Stem C. R. and Luger G. F. A model for abductive problem solving based on explanation templates and lazy evaluation. International Journal of Expert Systems, 5(3): 249-265,1992. Stem C. R. and Luger G.F. Abduction and abstraction in diagnosis: a schema-based account, Situated Cognition: Expertise in Context Ford et al. ed. Cambridge, MA: МГГ Press, 1997. Stubblefield W. A. Source Retrieval in Analogical Reasoning: An Interactionist Approach. PhD dissertation, Department of Computer Science, University of New Mexico, 1995. Stubblefield W. A. and Luger G. F. Source Selection for Analogical Reasoning: An Empirical Approach. Proceedings: Thirteenth National Conference on Artificial Intelligence, 1996. Stytz M. P. and Frieder O. Three dimensional medical imagery modalities: An overview Critical Review of Biomedical Engineering, 18, 11-25, 1990. CamhM^r and Sit,iai£d Actions: The Problem of Human Machine Communication Cambridge; Cambridge University Press, 1987 sXTs У COmpU'erMo‘M MH Acquisition. Cambridge, MA: MIT Press, 1975. 9-44, i9gg 10 bretbi:! by the method of temporal differences. Machine Learning ‘‘pproximaiinfa2d„narcl‘l'ec,ures f°r learning, planning, and reacting base,MJ CoMerenc Prac-di^ °f th<= SeV<=nth Sutton R. S. Dy„a: д pp' 21f"224 Sa" Francisco: Morgan Kaufmann, № Bulletin, 2: 160-164 f^^cLarc^ilecture for learning, planning, and reacting- Si с,,Ил r> « ’ Press, 1991 Sutton R. s. and Barto. А П ₽ • r Sycara K., Decker К p e,nfOrcement Learning. Cambridge: MIT Press, 1998- IEEE Expert, 11(6) 19% W*U’4mson M. and Zeng D. Distributed intcHig^1 Tang A. C., Pearlmutter B. A, and Zibulevsky M. Blind source separation of neuroinagnetic responses. Computational Neuroscience 1999, Proceedings published in Neurocomputing, Tang A. C., Pearlmutter B. A, Zibulevsky M, Hely T. A., and Weisend M. A MEG study of response latency and variability in the human visual system during a visual-motor integration task. Advances in Neural Information Processing Systems: San Francisco: Morgan Kaufmann, 2000a. Tang A. C., Phung D. and Pearlmutter B. A. Direct measurement of interhemispherical transfer time (1HTT) for natural somatosensory stimulation during voluntary movement using MEG and blind source separation. Society of Neuroscience Abstracts, 20006. Takahashi K., Nishibe Y., Morihara I. and Hattori F. Intelligent pp.: Collecting shop and service information with software agents. Applied Artificial Intelligence, 11(6): 489-500.1997. Tanimoto S. L The Elements of Artificial Intelligence using Common LISP. New York: W.H. Freeman, 1990. Tarski A. The semantic conception of truth and the foundations of semantics. Philos, and Phenom. Res., 4: 341-376, 1944. Tarski A. Logic, Semantics, Metamathematics. London: Oxford University Press, 1956. Tesauro G. J. TD-Gammon, a self-teaching backgammon program achieves master-level play. Neural Computation, 6(2): 215-219, 1994- Tesauro G. J. Temporal difference learning and TD-Gammon. Communications of the ACM, 38:58-68, 1995. Thagard P. Dimensions of analogy. In Helman (1988), 1988. Touretzky D. S. The Mathematics of Inheritance Systems. Los Altos, CA: Morgan Kaufmann, 1986. Touretzky D. S. Common LISP: A Gentle Introduction to Symbolic Computation. Redwood City, CA: Benjamin/Cummings, 1990. Trappl R. and Petta P. Creating Personalities for Synthetic Actors. Berlin: Springer- Verlag, 1997. Triesman A. The perception of features and objects. Attention: Selection. Awareness, and Control: A Tribute to Donald Broadbent. Badderly A. and Weiskrantz L. ed, pp. 5-35. Oxford: Clarendon Press, 1993. Treisman A. The binding problem. In Squire and Kosslyn (1998), 1998. Tulving E. and Donaldson W. Organization of Memory. New York: Academic Press. 1972. Turing A. A. Computing machinery and intelligence. Mind, 59: 433-460, 1950. Turner R, Logics for Artificial Intelligence. Chichester: Ellis Horwood, 1984. Ullman J. D. Principles of Database Systems. Rockville, MD: Computer Science Press, 1982. Urey H. C. The Planets: Their Origin and Development. Yale University Press. 1952. Utgoff P. E. Shift of bias in inductive concept learning. In Michalski et al. (1986). 1986. Valiant L, G. A theory of the learnable. CACM, 27: 1134-1142, 1984. van der Gaag L. C., ed. Special issue on Bayesian Belief Networks. AISB Quarterly. 94. 1996. van Emden M. and Kowalski R The semantics of predicate logic and a programming language. Journal of the ACM, 23: 733-742, 1976. VanLe T. Techniques of PROLOG Programming with Implementation of Logical Negation and Quantified Goals. New York: Wiley. 1993. библио1^ Библиография
„ F and Rosch E. The Embodied Mind: Cognitive Sci Varela F' TcaX.fg;MA: MIT Press. 1993. £^™"« Cam 8 s Ha„ K. and Stone ? CNITED-98 RoboCup.gg Vcloso M, Bowl-n8 ^ Ach.mMSgM,ne 2i(i); p ^T^no^ Z A./^« vZoffR ed Automated Reasoning and its Appbcat.ons. Cantbndge. MA: MITPress, ' , - , hnin,a, for convolutional codes and an asymptotically oplim V"eraigorilZriEEE Transactions on Information Theory, IT-13(2): 260-269. 1967. von Glaserfcld E. An introduction to radical constructivism. The Invented Realtty, Wa cd, pp. 17-40. New York: Norton. 1978. Walker A McCord M„ Sowa J. F. and Wilson W. G. Knowledge Systems and PROLOG < Logical Approach to Expert Systems and Natural Language Processing. Reading, Мл Addison-Wesley, 1987. Warren D. H. D. Generating conditional plans and programs. Proc. AISB Sumn^ Conference, Edinburgh, pp. 334-354, 1976. Warren D. H. D. Logic programming and compiler writing. Software-Practice and Experience 10(11), 1980. Warren D. H. D.. Pereira F. and Pereira L. M. User's Guide to DEC-System 10 PROLOG Occasional Paper 15, Department of Artificial Intelligence, University of Edinburgh, 1979. Warren D. H. D., Pereira L. M. and Pereira F. PROLOG— the language and iu implementation compared with LISP. Proceedings, Symposium on Al and Programming Languages, SIG-PLAN Notices, 12:8,1977. Waterman D. and Hayes-Roth F. Pattern Directed Inference Systems. New York: Acaderai; Press, 1978. Waterman D. A. Machine Learning of Heuristics. Report No. STAN-CS-68-118, Compute Science Dept, Stanford University, 1968. Waterman D. A. A Guide to Expert Systems. Reading, MA: Addison-Wesley, 1986. Watkins С. J. С. H. Learning from Delayed Rewards. PhD Thesis, Cambridge University, 1989. avish P. and Graham M. A situated action approach to implementing characters in caf111’ games. Applied Artificial Intelligence, 10(1): 53-74, 1996. Webber В. I., and Nilsson N. J. Readings in Artificial Intelligence. Los Altos: Tioga Press, W»1 e'Kaufmannnd19K9UllikOWSl<i С°трМеГ thal l^rn' San Ма‘“' aided'tZ&a°deti'sZnn'LmaXk S' Saflr A model-based method for co^1 Weizenbaum I c “,n'makll,S- Artificial Intelligence, 11(1-2): 145-172,1977. Weld D. A„ i,UrZ’Z"erPOlWerandReaS°''' San Francisco: W' Я FreCmLin'' WeldD. S. anddeKlZ"j,.°ed'₽rar''''''"e"'P'a''"''"^ AI MagaZine ‘5(4): w Altos, CA: Morgan Kaufmann Wo" ®“а1',а1''’е Reasoning about Physical Sys '"t'll'^n^.’lniversh^of £41060^'1 .J^ectch Report 14, Department o' A" Wel,“e;i^.“^o374r °f qua,i,a,ive рг°ьммс °'^ning. Antftcial Whitehead A. N. and Russell B. Principle Mathematica. 2nd ed. London: Cambridge University Press, 1950. 6 Whitley L. D., ed. Foundations of Genetic Algorithms 2. Los Altos, CA Morgan Kaufmann, 1993. Wjdrow B. and Hoff M.E. Adaptive switching circuits. 1960 IRE WESTCON Convention Record, pp. 96-104. New York, 1960. Wilensky R. Common LISPCraft, Norton Press, 1986. Wilks Y. A. Grammar, Meaning and the Machine Analysis of Language. London: Routledge & Kegan Paul, 1972. Williams В. C. and Nayak P. P. Immobile robots: Al in the new millennium. AI Magazine 17(3): 17-34, 1996a. Williams В. C. and Nayak P. P. A model-based approach to reactive self-configuring systems. Proceedings ofthe AAAI-96, pp. 971-978. Cambridge, MA: MITPress. 1996. Williams В. C. and Nayak P. P. A reactive planner for a model-based executive. Proceedings of the International Joint Conference on Artificial Intelligence. Cambridge. MA МГГ Press, J 997. Winograd T. Understanding Natural Language. New York: Academic Press. 1972. Winograd T. A procedural model of language understanding. In Schank and Colby (1973), 1973. Winograd T. Language as a Cognitive Process: Syntax. Reading, MA: Addison-Wesley, 1983. Winograd T. and Flores F. Understanding Computers and Cognition. Norwood, NJ.: Able*. 1986. Winston P. H. Learning structural descriptions from examples. In Winston (1975/?), 1975a. Winston P. H., ed. The Psychology of Computer Vision. New' York: McGraw-Hill, 19756. Winston P. H. Learning bv augmenting rules and accumulating censors. In Michalski et al. (1986), 1986. Winston P. H. Artificial Intelligence. 3rd ed. Reading, MA: Addison-Wesley. 1992. Winston P. H., Binford T. 0., Katz B. and Lowry M. Learning physical descriptions from functional definitions, examples and precedents. National Conference on Artificial Intelligence in Washington, D. C.. Morgan Kaufmann, pp. 433-439. 1983. Winston P. H. and Hom В. К. P. LISP Reading, MA. Addison-Wesley. 1984. Winston P. H. and Prendergast K. A., ed. Die AI Business. Cambridge. MA: МГГ Press. 1984. Wirth N. Algorithms + Data Structures = Programs. Englewood Cliffs. NJ: Prentice-Hall, 1976. Wittgenstein L. Philosophical Investigations. New York: Macmillan. 1953. Wolpert D. H. and Macready W. G. The No Free Lunch Theorems for Search. Technical Report SFLTR-95-02-010. Santa Fe. NM: The Santa Fe Institute. 1995. Wolslencroft J. Restructuring. reminding and repair: What's missing from models of analogy. AICOM, 2(2): 58-71. 1989. Wooldridge M. Agent-based computing Interoperable Communication Networks 1(1): 71-97, 199S. Wooldridge M. Reasoning about Rational Agents. Cambridge. MA: МГГ Press. 2000. Библиография 838 Библи°гр£'ф,'<
Wo,s w. ° F0^f°r Seman,'C NCm°"'ln BraChma"and (1985). 1985. para„,odulation md s«°( ^Por, Proceedings of ,he W« L. Robrnso^G.A. r*Den—on. NeW York: SP™6er-Ver^ Symposium on л»““ « Ip. 367-410,1968. Basic Research Problems. NJ: Prentice Hall, )ЭД8 Wost'^Zw J—C°mPUterS аП<1 Ma'hematiCS Wi'h AP*a4 29(2): xi-xiv, 1995. Boyie } jammed Reasaning: l,.!roduai Wos L. Ovetbee£n^w„“| Cliffs, NJ: Prentice-Hall, 1984. Applicate "8е M Mu!liph, sec,iMedBayesian networks mJ junction X* ^hr^wledg^d systems. Computmonul Intelligence 9(2): 171-220,1993. , X v r, and Jensen F. V. Practical issues in modeling large diagnostic «яели SangJ;’°X«°^ 'faresia,, networks. International Journal of Pattern Recog*, Intelligence, 14(1): 59-71,2000 Yager R. R. and Zadelt L. А. Рчау Seis, Neural Networks and Soft Computing. New Yofc Van Nostrand Reinhold, 1994. Young R.M. Serialion by Children: An Artificial Intelligence Analysis of a Piagetian Тшк Basel: Birkhauser, 1976. Yuasa T- and Hagiya M. Introduction to Common LISP. Boston: Academic Press. 1986. Zadeh L, Commonsense knowledge representation based on fusty logic. Computer, 16: 61-65,19S1 Zurada J. M. Introduction to Artificial Neural Systems. New York: West Publishing, 1992. Алфавитный указатель авторов A Abelson, 238; 239; 599; 773 Ackley, 5/6 Adam. 598 Adler, 265 Agre, 49; 221; 226; 804 Aho, 144; 189 Aiello, 215 Alien, 54; 316; 566; 576; 585- 598 Ally, 321 Anderson, 54; IX; 230; 26S; 467; 431; 524; 805; 807 Andews, 103 Appelt, 86 Arbib, 509 Asbly, 299 Auer, 432 Austin, 39; 805 в Baker, 45 Ballard, 481; 807 Balzer, 215 Bareiss, 299 Barker, 200 Barkow. 790 Barr, 54; 322 Ьап\щ,237;800 Bano, 427; 429;431;432 Bateson, 54 Bechtel, 808 Benson, 316; 322; 511; 516; 802 Berger, 591 Bernard, 296 Bcnsekas, 432 Birmingham, 264 Bishop, 482 Bledsoe, 54; 528; 557; 558 Bobrow, 226; 268 Bond, 266 Boole, 33 Bower, 230; 268 Boyer. 44; 54; 559 Brachman, 104; 233; 268; 803 Brooks. 49; 54; 220; 221; 226; 255; 256; 258; 263; 269; 435; 510,802; 804; SO8 Brown, 293; 322; 415 Brownston, 210; 215 Buchanan, 45; 321; 341; 348; 406 Bundy, 44; 104; 553; 559 Burks, 509; 516 Burmeister. 265 Burstall, 35 Bunon, 322 Busuoic, 265 Buttler, 30 c Cahill, 794 Cart»neU,3O3;452 Cardie. 597 Carlson, 787 Ceccato, 230 Chang, 103; 531; 539; 559 Chapman. 49-, 221; 226:804 Chamiak, 146; 241;34i;599 Chen, 265 Chomsky. 574 Chorafas, 321 Chung. 264 Church, 607; 803 Cl anej. 293 C\arC,220; 222; 268; 802; 808 Gocksin, 607; 610; 680 Codd. 509 Colby, 54; 233 Cole. 599 Collms, 227; 268 Colmeraucr. 606; 680 Conway, 484; 505; 516 Coombs, 321 Cooper, 355 Corera.264 CorkilJ.2/3.2/5 Cormen, 145 Cosmidcs, 790 Cotron. 50; 416 Criscuolo, 331.366 Crutchfield, 485; 511; 513 Cutosky. 264
P Dahl.^ Darlington. J5 Dechter. 365 ЙЙ* 222;26S; 51b №! *» №7 Dem, 269-. 522 Devore. 509 Vtett.erich,4ll;432 Dologite, 32) Domingue, 773 Doorenbos, 265 Doyle, 329; 332; 334; 366 Dreyfus, 39,804 Druzdel, 364; 366 Duda, 45; 357 Durfee, 263 Durkin, 45; 54; 321 E too, 805 Шпал, 790; 804 Ъ\п\зл,481;807 Engelmore. 215 &твп,213;215 522; 526; 784 Euler, 32 Evans, 259 F Falkenhainer. 413 Fass, 599 Feigenbaum, 54; 322; 371; 432; 559; 793 Feldman, 432; 559; 793 Fikes, 311 ;407;52S Fillmore, 233 Fischer, 265 Fisher, 300; 420; 432 Яогк, 39,S4-, 58; 599; 804- 806- W7 Fodor, 789,790 Forbus, 55; 773 Ford. 37; 54; 55 ^,291,301 Кхку,587 Forrest, 5/5 Franklin, 481; 807 Freeman,4e/;796 Frege, 34 ^,482 Frieder, 793 G GaJlier. 103 Ganzinger, 559 Garey, 150; 181 Gasser, 266 Gaiter, 599; 680 Gazzaniga, 787; 794 Genesereth, 104; 338; 366; 55g Gennari.427 Gentner, 413 Giamxar\£i,32l Gilbert, 794 Ginsburg, 366 Glasgow, 598 Glymour, 354 Goldberg. 494; 515 Goodwin, 333 GouM. 506; 516 Graham, 265; 773 Grice, 39; 341; 805 Griffiths, 265 Grossberg, 459; 481 Grosz, 805 H Hall. 412 Hammond, 303 Hamscher, 293; 322 Hanson, 513 Harbison-Briggs, 321 Hannon, 54; 228; 321 Harris, 599 Hasemer, 773 Haugeland, 54; 268; 807 Haussler, 405 Hayes, 37; 54; 308; 366; 607 Hayes-Roth, 54;215; 265;321;516 Hebb, 437; 439; 462; 481 Hecht-Nielsen, 436; 456; 459; 477; 481 Heidegger, 39; 806 Heidom, 576 Helman, 145 Hempel, 808 Henrion, 365 Hightower, 509; 516 Hill, 680 Hillis, 52 Hinton, 481 Hobbs, 366 Hodges, 54 Hoff, 446 Hofstadter, 259 7)N Holland, 259; 485; 492; 494; 497; 499; 515; / Holowczak, 598 Holyoak, 432 Алфавитный указатеЛЬ fl
Hopcroft, 574; 599 Hopfield, 437; 472; 481 Horowitz, H7; 145 Hume, 401 Husserl. 39; 806 I fgruzio, Ivry, 794 J Jeannerod, 481; 807 Jennings, 221; 226; 262; 264; 266 Johnson. 39; 54; 150; 181; 226; 321- 785- 791- 802-804- 808 ’ ' ’ ' Johnson-Laird, 804 Jordan, 482 Josephson, 366 Jurafsky. 47; 54; 585; 588; 592; 599 к Karmiloff-Smith, 788; 791; 795 Kaufmaan, 559 Kautz, 265 Kedar-Cabelli, 412; 432; 668 Keravnou, 321 King, 54; 228; 680 Klahr, 199, 215; 32J-.432 Klein, 49; 264; 318; 511; 802 Knight, 310 Kohonen, 436; 455; 457; 467; 481 Koller, 365 Kolmogorov, 799 Kolodner, 24Г.301.303; 321 Kondratoff, 55; 432 Korf, 131; 181 Kosko, 472; 481 Kosoresow, 365 Kosslyn, 787; 794 Koton. 299 Kowalski, 528; 547; 549; 606; 680 Koza. 485; 500; 501 ; 504.515 Krulwich, 265 Kuhl, 794 Kuhn, 807; 80S Kulikowski, 432 L Lakatos, 808 Lakoff, 39; 54; 226;417; 457; 785; 791; 802; 808 Langeland-Knudsen, 321 Langley, 4/6; 432 Langton, 55; 485; 509. 516; 802 Larkin,/99 Laskey, 365 Lauritzen, 363 Lave, 805 Leake, 302; 321 LeeJ03;53l;539.559 Leibniz, 32 Leiscrson, 145 Lenat, 50; 415; 416 Lesser, 2/3; 215;263 Levesque, 104; 268; 269; 339; 803 Lewis, 49; 54; 226; 261; 262; 510; 785; 802 Lieberman, 265 Lifschitz, 337; 338; 366 Lindsay, 45; 322 Ljunberg, 264 Lloyd, 559, 607 Lovelace, 33 Loveland. 559 Lucas. 264; 680 Luck, 794 Luger, 25; 48; 49.54; 198; 215; 226; 261; 262; 269.296; 300; 302; 322; 432; 510.524; 785; 789. 792; 802; 804; 807 M Machley, 58 Macready, 798 5\3£f>,265; 269; 516 Magerman, 591 Mahoney, 365 Maier. 680 Malpas,640:680 Manna. 79; 103; 319 Manning, 47; 591;592; 599 Marcus, 47 Markov, 198 Marshall, 267 Manin, 47; 54; 405; 432; 585; 588; 592; 599 Martins, 333; 335; 366 Masterman, 230 McAllester, 333; 366; 559 McCarthy, S6; 308; 337; 366,607; 647 McCarty, 668 McCord, 680 McCorduck, 371 McCulloch, 438; 481 McDermott, 61; 146; 200; 322; 329 McGaugh. 794 McGonigle, 802; 808 McGraw, 321 Mead, 481 Mellish. 599.607; 610.680 Merieau-Ponty, 39 Michalski. 55; 418; 432; 500 Michie, 432 Алфавитный указатель авторов 843
Perriolat, 264 ж244- 789'790 Pcita, 265 Pfeffer, 365 ^^^9;268;38O-,381;3^^I1; 432; 485; 494; 504; 5/1; 513; 5/5,669; 798 Mithen, 790; 791 Mockler, 321 Mooney, 51; 341; 407; 409; 598 Moore, 44; 54; 330; 366; 524,559 Morel, 181 Morgan, 215 Momson, 33 Mycroft, 640; 643; 680 Piaget, 800 Pitts, 438; 481 Pless, 365 Polya, 149 Popper, 805; 808 Posner, 804; 807 Post, 198 Poundstone, 484; 507 Prerau, 321 Pylyshyn, 54; 804; 807 N Q Nadathur, 680 Nahm, 598 Nash-Webber, 233 Nayak, 296,298; 318; 322 Necht-Nielsen, 796; 799 Negoita, 321 Neves, 640 Newell, 42; 43; 52; 54; 71; 77; 145; 175; 199; 212; 215; 515; 522; 524; 525; 526; 604; 778; 784; 793; 795; 807 Ng. 341 Nn,2l5 Nilsson, 49; 54; 164; 136; 145; 174; 177; 181; 200; 310; 311; 316; 338; 366; 440;510,511; 528; 545; 553; Quan, 264 Quillian, 227; 230; 268 Quine, 808 Quinlan, 50; 392; 398; 399; 432; 439 R Raphael, 230 Reddy, 213; 215 Reggia, 339 Reinfrank, 334; 366 Reiter, 329; 330; 366 Reitman, 230; 259 Rich, 310 558; 559; 802 Nishibe, 265 Nordhausen, 417 Norman, 230; 233; 807 Norvig, 314; 322 Noyes, 773 Rieger, 234 P\kYxx^241;599 Riley, 321 Rissland, 299 Rivest, 145 Roberts, 230 Robinson, 528; 540; 606 0 O'Connor, 200 O'Keefe, 640; 643; 680 O’Leary, 795 Oliveira, 264 Oliver, 490 Rochester, 439 Rosch, 420; 457 Rosenberg, 452 Rosenblatt, 439; 481 Rosenbloom, 575 Ross, 345; 349; 366; 680 Roussel, 606 P Papert, 278; 440 Parra, 794 174. т .355-.359,364 424 Pearlmutier, 794 °*’ Peirse, 805 Penrose, 782; 804 Penueli, 319 Pereira, 680 Perl, 361 Р»К 338; 366 Rumelhart, 233; 446; 481 Russell, 34; 65; 77; 220; 314; 322; 412; 522; 523 s Sacerdottl, 322; 528 Sagi, 794 Sahni, 117; 145 Samuel, 300; 302 Scapura, 796 Schank. 54; 233; 238; 239; 241; 599 Schoonderwoerd, 265 Schrooten, 265 844 ’ — Алфавитный указатель a0
Schutze, 47; 591; 592; 599 SchwuOke, 264 Searle, 59,58; 599; 785; 804 Seboek,805 Sedgewick, 145 Sejnowski, 452 Selfridge, 481 Selman, 340 Selz, 230; 268 Shafer, 366 Shannon, 396; 481 Shapiro, 55; 181; 322; 333; 366; 504; 549; 560; 680 Shavlik, 432; 453 Shephard, 787; 794 Shimony, 341 Shortliffe, 45; 321; 341; 348 Shrager, 416; 432 Shrobe, 294 Sidner, 805 Siegelman, 799 Siekmann, 559 Simmons, 230; 233 Simon, 38; 42; 43; 52; 54; 71; 77; 145; 175; 198 ; 215 ; 219; 372; 522; 525; 778; 784; 793; 795; 807 Sims, 416 Skapura, 481 Skinner, 215; 300; 322 Smart, 52/ Smith, 45; 221; 599; 807 Smoliar, 322 Soderland, 598 Soloway, 200 Somogyi, 680 Sontag, 799 Sowa, 230; 245; 254; 268; 576; 583; 594; 599; 680 Spiegelhalter, 363 Squire, 787; 794 Steele, 756; 761; 773 Stem, 258; 269 Stepp, 418 Sterling, 680 Stem, 296, 300; 302 Stubblefield, 300; 302; 416; 432 Stytz, 793 Suchman, 801 Sussman, 51; 773 Sutton, 425; 427; 429; 431; 432 Sycara, 262; 264 T Takahashi, 265 Tang, 794 Tammoto, 773 Tanne, 794 Tarski, 35 Tesauro, 429; 431 Tha&ad,432 Tong, 680 Tooby, 790 Touretzky, 55/; 566; 773 Trappl, 265 Triesman, 794 Tsitsiklis, 432 Turing, 36; 54; 803 Turner, 253; 366 u Ullman, 144; 189; 574,593; 594; 599 Urey, 504 Utgoff, 402 V Valiant, 404 van de Velde, 265 van der Gaag, 366 van Emden, 547; 549 VanLe, 680 VanLehn, 322 Varela, 804 Veloco, 262; 265 Veroff, 44; 54; 104; 145; 559 Viterbi, 587 von Glasesfeld, 800 w Waldinger, 79; 103 Walker, 680 "Waned, 607; 680 Waterman, 45; 54; 215; 274; 321 Watkins, 431; 432 Wavish, 265 Weiss, 432 Weizeubaum, 54; 804; 806 Weld, 269; 316 Weyhrauch, 366 Whitebead, 34; 65; 77; 22&. 522; 523 Widrow, 446 Wilks, 54; 230; 599 Williams, 296; 298; 318; 322 Winograd, 39; 47; 54; 58:268; 563; 585; 598,804; 806; 807 Winston, .S?; 146; 376; 407; 797 Wirth. 105 Wittgenstein, 39; 420; 457 Wotpert,798 Wolstencroft, 412 Woods, 237 845 Алфавитный указатель авторов
W«, Я. /<*: 52/; Ж Я2; 545; 556.555 Wnftasoci. 559 Wu.264 Y Yager, 366 Young. 55 X z Zadeh, 257; 344, 366 Xiang. 565; 566 Zurada, 44S; 456‘. 459; 43/; 796 846 Алфавитный указатель
Предметный указатель А Abductive inference, 72; 552 Abstract data type, 609 Abstraction, 58 д В STRIPS, 527 Absurd type, 249 Action potential, 787 Activation record, 189 Admissibility, 784 Agglomerative clustering, 417 a-list, 723 AM, программа, 415 Anonymous variable, 617 Answer extraction, 535 Antecedent, 74 ART, 750 Artificial life, 485 Association list, 723 Associationist theory, 227 ATN, 575 Atom, 636 Atomic sentence, 30 Attractor, 472 network, 437 Attribute, 593 Augmentation of logic grammar, 576 Augmented phrase structure, 576 transition network, 569; 575; 576 Autoassociative memory, 437; 468 Autoepistemic logic, 330 Automated reasoning, 520; 522 Autonomous system, 263 В Backpropagalion, 436 Backtracking, 121 В ACON, программа, 416 Base-level category, 420 Bayesian belief network, 359 Beam search, 180 Belief network, 71;327 Best first search, 750 Bigram, 589 Binary resolution, 529 Binding problem, 794 Bound variable, 702 Branching factor, 208 Breadth-first search, 124 Bucket brigade algorithm, 495 c C++, 608; 750 C4.5, алгоритм, 399; 598 Candidate elimination, 381 Candide, программа, 59/ Canonical formation rule, 252 Case frame, 233; 581 Case-based reasoning, 415; 784 Category formation, 373 utility, 421 cdr-рекурсия, 698 Cellular automata, 505 Certainty factor, 164; 342 Chomsky hierarchy, 574 Clashing, 529 Class, 750 precedence, 755 Classifier system, 485; 495 Clause form, 528 CLOS, 750 Closed world assumption, 547; 551; 612 CLUSTER/2, система, 373; 401; 418; 457 Clustering problem, 417 COB-WEB, система, 373; 420 Cognitive science, 524; 792 Competitive learning. 436 Complete proof procedure, 90 Concept, 375 learning, 373 Conceptual clustering. 373; 417; 418 graph, 245 Condition/action pair, 692 Conditional evaluation, 694 probability, 356 Confidence measure, 162 Conflict resolution, 197 set, 197 Conjunction of disjuncts, 530
Conjunctive bias, 402 Connectionist network, 372 Context-free grammar, 573 language, 574 Context-sensitive language, 574 Cbunterpropagationnetwork,^ - C-PROLOG, 610 Credit assignment, 390 Crossover, 457; 503 D Data flow diagram, 594 Data-driven search, 118 Decision tree, 392,403 Declarative language, 655 semantics, 6(79 Deductive closure, 411 Default logic, 330 Definite clause grammar, 650 Delayed evaluation, 736 Delta rule, 436; 446 Demodulation, 556 Demodulator, 556 Demon, 244 DENDRAL, система, 45; 406 Depth-fist search, 124 Detachment, 522 Difference list,(M5 table, 522 Directed acyclic graph, 114 Discrimination net, 432 Dotted pair, 723 DYNA-Q, алгоритм, 425 d-отделение, 367 E EBL, 411 Elman, 788 Embedded particle a, 514 Empiricist’s dilemma, 795 Encapsulation, 750 Encoding scheme, 438 Entity-relationship diagram, 594 Evaluation, 79 Evolutionary learning, 372 programming, 509 EVR1SKO, программа, 416 Exhaustive search, 69 Explanation structure, 409 Explanation-based learning, 373; 405; 407; 661 F Fact, 548; 612 Factor, 536 Family resemblance theory, 420 Feasibility test, 526 Feature vector, 403; 662 Feedback network, 472 Feedforward network, 471 FIFO, структура данных, 624; 714 Filter, 711; 729 First-order predicate calculus, 86 Fitness function, 484 proportionate selection, 486 Flat Concurrent PROLOG, 560 Flavors, 750 Flexible agent, 263 F-MRI, 793 Form, 687 FORTRAN, 678 Forward chaining, 118 Frame, 241; 639 Free variable, 702 Function closure, 736 grammar, 598 Functional language, 685 magnetic resonance imaging, 793 Fuzzy associative matrix, 346 set, 345 theory, 344 G General Problem Solver, 44; 198; 220; 522; 526; 784 Generalized delta-rule, 441 Generator, 729 Generic function, 750 Genetic algorithm, 485 epistemology, 800 learning, 372 Glider, 507 Goal regression, 408 Goal-directed strategy, 135 GOFA1, система, 40 Gradient descent learning, 446 Grammatical marker, 598 trigram, 591 Gray coding, 492 Ground expression, 85 848 Предметный указатель
н Hamming distance, 468 HEARSAY-П, 213 Heteroassociative memory, 437; 468 Heuristics, 69 Hierarchical abstraction, 604 problem decomposition, 48 Higher-order function, 7/7 Hili climbing, 153 Hom clause, 403; 547; 612 calculus, 612 Hyperresolution, 536; 555 I ЮЗ, алгоритм, 373; 387; 392; 394; 398;401;453- 591- 598; 761; 797 ' ’ IDA*, алгоритм, 181 IL, программа, 416 Imperative language, 685 Improper symbol, 78 Incremental parsing, 566 Induction, 372 Inductive bias, 372; 400; 795 Inference rule, 70; 89 Information extraction system, 596 processing psychology, 524 Informedness, 784 Inheritance, 750 Interpolative memory, 468 Interpretation, 75 J JASS, 276 Java, 50; 608; 750 Justification based truth maintenance system, 332 К КЕЕ, 750 Knowledge representation hypothesis, 221 к-коннектор, 134 L Lambda-calculus, 713 Lambda-PROLOG, 680 Learning algorithm, 438 LEX, 388; 402; 411 Lexical closure, 712 Lexicon, 567 LIFO, структура данных, 622 Limitation on the number of disjuncts, 402 Linear associator, 437; 467 Link grammar, 591 LISP, 50; 276; 396; 416; 501; 606; 607; 685 логическая операция, 694 связывание переменных, 701 символьные вычисления, 694 List, 186; 615; 686 Literal, 529 Logic program, 547 programming, 542; 547 Logical inference, 89 Logistic function, 445 M Macro, 738 Macro-expansion, 738 Magnetoencephalography, 793 Majority vote, 512 Map. 711 function, 729 Marker, 247 Markov assumption, 587 chain, 564 Matching process, 523 Maximally specific generalization, 383 Maximum likelihood density estimation, 417 Means-aids analysis, 220 Means-ends analysis, 522; 784 Mercury, 680 Meta-DENDRAL, 797 Meta-interpreter, 609; 646; 690 Meta-linguistic abstraction, 647; 727 Metamorphosis grammar, 680 Meta-predicate, 609; 639 Modal logic, 253 Model-based reasoning, 784 Modus tollens, 91 Monotonicity, 784 Monte-Carlo, 486 Morphology. 564 Multiple draft theory of consciousness, 791 Mutation, 487; 503 Mutual information clustering, 589 MYCIN, система, 45; 650 N NASA, 318 Natural deduction system, 557 NETtalk, система, 452 Network topology, 438 Neural network, 372 Neuroscience, 786 Neurotransmitter, 787 Предметный указатель 849
Nuclear magneoc reson Nucleus, 555 Numeric taxonomy, 4/ О Occurs check, 722 Operations research, 704 Operator table, 527 Order crossover, 490 Outstar, 459 P РАС- нзучаемость, 404 обучение, 404 Paramodulation, 555 Parse tree, 568 Parsing, 565 Pascal, язык, 64]; 705 Pattern, 58 Perceptron, 436; 439 Permutation, 503 Phonology, 564 Phrase structure, 568 Physical symbol system, 782 hypothesis, 58 Planning, 527 Polymorphism, 750 Positive literal, 612 Positron emission tomography, 793 Posterior probability, 356 Pragmatics, 564 Predicate, 62; 692 calculus, 62 Predictability, 421 Predictiveness, 421 Prenex normal form, 532 Prior probability, 355 Priority queue, 155; 609; 624 Probability density function, 352 Probahly approximately correct learning, 404 Procedural attachment, 543 semantics, 547 Production, 197 system, 196 PROLOG, 50; 87; 276; 383; 520; 528; 606; 706 абстрактный тип данных, 622 множество, 625 очередь, 624 приоритетная очередь, 624 стек, 622 проверка соответствия типов, 642 реализация обучения на основе пояснения 668 семантических сетей, 657 создание метаинтерпретаторов, 646 семантических сетей, 639 типы данных, 640 Property list, 747 PROSPECTOR, программа, 45 Q Queue, 609; 624 Q-обучение, 431 R Raw fitness, 503 Read-eval-print loop, 687 Reasoning over minimum mode), J36 Recursively enumerable language, 574 Reduce, 557 Refraction, 211 Refutation, 528 complete, 539 Regular language, 574 Reinforcement learning, 71; 373 Relational database, 593 Replacement, 522 Representation language, 783 Reproduction, 503 Resolution, 77; 90; 92; 95; 606 inference rule, 91 proof procedure, 528 refutation, 533 system, 606 theorem prover, 522 Resolvent, 534 Reward function, 426 Rewrite rule, 567 Roulette wheel, 486 s Satellite, 555 SCAVENGER, система, 416 Schema, 494 Schemata, 800 SCHEME, 608 Scheme, язык, 803 Science of intelligent systems, 780; 792 Script, 238 Self-organizing network, 458 Semantic grammar, 598 interpretation, 565 network, 64; 229; 639 preference theory, 599 Предметный УкаэаТ 850
Semantics, 564 Sentential form, 567 3e^625 of support, 522 s-exprcssion, 686 SHRDLU, 563 Sigmoid, 445 Similarity-based learning, 373; 405 Skolem constant, 532 function, 93 Skolemizaiion, 93; 532 Smalltalk, 750 Speech act theory, 39 Split, 557 SQL, 593 Stack, 609 Standard ML, язык, 803 State space graph, 32 search, 32; 108 Step-size parameter, 427 Stream, 729 STRIPS. 407; 528 Strong method, 784 Structure mapping theory, 413 Subproblem list, 523 Substitution, 522 Subsumption architecttire, 222; 255; 510 Supervised learning, 373; 381.415 Surface structure, 599 Symbol-based learning, 784 Symbolic expression, 686 Syntax, 564 Systematic i(y, 413 principle, 414 Systran, программа, 59] s-выраженне, 501; 686; 689 nil, 686 T Table of connections, 526 Tai) resursion, 698 Target, 375 Temporal difference learning, 426 rule. 428 Terminal, /42; 567 Theorem proving, 522 of reference, 35 Top-down derivation, 568 parser, SM Transformational grammar. 598 Transition network, 569 Tree, 11 ] Tngram, 588 u Unconditional probability 355 Unit clause, 541 preference, 522 Universal type, 249 Unsupervised learning, 373; 415 V Value function, 426 Variable quantifier, 81 Verb phrase, 142 Version space, 381 search, 373; 380; 661 Viterbi algorithm, 587 w Weak method, 520; 784 problem solver, 226 Well-formed formula, 74 William of Occam, 394 A А’, алгоритм, 493 Абдуктивные рассуждения, 7]; 326.338 Абдуктивный вывод, 327; 552 Абдукция на основе стоимости, 341 Абстрактный класс, 751 таи данных, 609. 622; 696 Абстракция, 53 данных, 30 металингвистическая, 647; 727 Абсурдный тип. 249 Автоассоиизтивная память, 437; 468; 477 Автомат, конечный, 574 Автоматические рассуждения, 519, 522; 559 Автоматическое доказательство теорем, 43; 369 программирование, 504 Автономная система, 263 Агент, 40, 49,222 гибкий. 263 интеллектуальный, 37/ Агентная архитектура. 792 модель, 791 Адаптивное планирование. 3/0 Аксиома границ. ЗЮ Аксон. 51 Активационная функция, 445 Алгебра ограничений. 337 Предметный указатель 851
АЛГОрПЫ А, 165 Д’, /65; 493 С45, 399 CLUSTER/?, 373 COB-WEB, 373 DYNA-Q-425 FBL. 407' 412 392; 394; 398; 453; 588; 591; 761; 797 IDA*, 181 LEX, 411 Mela-DENDRAL, 406 RETE, 291; 301 Binep6n, 587 возврата, 331 генетический, 481; 485; 786 двухуровневого минимакса, 174 нндукпии, 395 исключения кандидата, 381; 385; 391; 661; 666 исходящей звезды, 459 Кохонена,457 Маркова, 198 обобщения на основе объяснения, 407 обратного распространения, 448 обучения, 438 на основе подобия, 373 на основе пояснения, 668 персептрона, 441 с учителем Гроссберга, 456 Хебба без учителя, 463 Хебба с учителем, 466 отбора пропорционально критерию качества, 486 победитель забирает все, 455 пожарной цепочки, 495 поиска в пространстве версий, 373 в ширину, 714 допустимый, 165 жадный, 717 построения дерева решений (ЮЗ), 392 унификации, ЮЗ; 724 устранения противоречий, 335 хронологических возвратов, 331 Альфа-бета-усечение, 175 Анализ естественного языка, 592. лингвистический, 585 синтаксический, 564 целей и средств, 220; 522; 526; 784 Анализатор на основе сети переходов, 573 сверху вниз, 568 Аналогия, 375; 412 Анонимная переменная, 617 Антецедент, 74 Апостериорная вероятность, 35б Априорная вероятность, 355 Арность, 79 Архитектура Copycat, 255; 259 гибридная, 306 категориальная, 222; 255 категоризации, 510 классной доски, 213 а-список, 723 Ассоциативный список, 723; 724 Атом, 609; 686; 689 Атомарное высказывание, 80 Атрибут, 593 Аттрактор, 436; 437; 472; 513 Аттракторная сеть, 437 Аттракторный радиус, 471; 472 Ациклический направленный граф, 360 ориентированный граф, 114 Б База знаний, 275 Базовая категория, 420 Байесовская сеть доверия, 327; 359 Байесовский анализ, 355 подход, 520 Безусловная вероятность, 355 Биграмма, 589 Бинарная резолюция, 529; 555 Бритва Оккама, 394 В Вектор весовых коэффициентов, 436 признаков, 403; 662 Вероятностная семантика, 341 функция чувствительности, 352 Вершины-братья, 111 Весовой коэффициент, 438 Включение процедур, 543 Внедренная частица а, 514 Возврат с учетом зависимостей, 331 Воспроизводство, 503 Временная логика, 365 разность, 426 Встроенный тип данных, 705 Входной сигнал, 437 Выбор свойств на основе теории информации* Выражение k-CNF, 405 единичное, 541 Предметный указав 852
замкнутое, 85 категоризированное, 543 КНФ, 488 конъюнктивное, 728 символьное, 686 функциональное, 79 хорновское, 547; 727 Высказывание, атомарное, 80 Вычислимость по Тьюрингу, 58 Вычислительная эффективность, 265 Г Генератор, 729 Генерация языковых конструкций, 584 Генетическая эпистемология, 800 Генетический алгоритм, 52; 481; 484; 485; 786 оператор, 487 инвертирования, 488 мутации, 487 обмена, 488 упорядоченного скрещивания, 490 Генетическое обучение, 372 программирование, 484; 501 Гетероассоциативная память, 437; 468 Гибкая сеть, 260 Гибкий агент, 263 Гибридная система, 303; 306 Гиперграф, 134 Гипердуга, 134 Г нперплоскость, 441 Гиперрезолюция, 536; 555 Гипотеза, 555 Андерсона, 805 о представлении знаний, 221 о физической символьной системе, 52; 58; 778; 782 Черча-Тьюринга, 789; 805 Глагольная конструкция, 142; 568 Головоломка 15,114 3,200 Грамматика, 574 контекстно-независимая, 575 метаморфоз, 680 определенных дизъюнктов, 680 падежная, 598 преобразований, 585; 598 связей, 591 семантическая, 598 фразовая структура, 568 функциональная, 598 Грамматическая триграмма, 591 Грамматический маркер, 598 Грамматическое правило, 570 Граф, 64 ^Циклический направленный, 360 ориентированный 114 И/ИЛИ, 133; 285 и-вершина, 142 и-узел, 133 концептуальный, 222; 245; 581; 594 ориентированный, 110 отношения между вершинами, 111 поведения задачи, 198 поиска, 285 пространства состояний, 66; 108 размеченный, 110 состояний, 32 д Двоичная арифметика, 34 Двунаправленная ассоциативная память (ДАЛ), 472 Двунаправленный поиск, 585 Дедуктивное замыкание, 411 Дедукция, 522 Декларативная семантика, 609 Декларативное программирование, 522 Декларативность, 685 Дельта-правило, 436; 446; 449 обобщенное, 441 Демодулятор, 556 Демодуляция, 556 Демон, 244 Дендрит, 51 Дерево, 111 грамматического разбора. 568; 573; 580 разбора, 565 решений, 392; 403 построение сверху вниз, 394 Диагностика, 274 Диаграмма потоков данных. 594 сущность-связь. 594 Дизъюнкт, 74 Дизъюнктивная форма, 528 хорновская, 612 74 Дилемма эмпирика, 795; 798 Динамическое программирование. 429; 587 Дискриминантная сеть, 452 функция, 442 Добавление повторяющихся элементов, 400 Доказательство на основе опровержения. 612 теорем, 520; 522; 528 Допустимая эвристика, 164 Допустимость, 784 Допустимый 853 Предметный указатель
алгоритм поиска, 165 путь, АОЛ Доступ к компонентам списка, 6УО Е Единичное выражение, 54} предпочтение, 522 Естественная дедуктивная система, 557 Естественный язык, 579; 561 Ж Жадный алгоритм поиска, /55; 160; 634 3 Задача анализа естественного языка, 592 генерации языковых конструкций, 584 диагностики автомобиля, 287 из мира блоков, 637 индуктивных порогов, 403 индукции,372;401 интересной жизни, 537; 540 исключающего ИЛИ, 440; 454 классификации, 442 битовых строк, 400 эндшпилей, 398 кластеризации, 417; 459 коммивояжера, 113; 116; 437; 489 о кенигсбергских мостах, 52; 108 о кувшинах с водой, 681 о миссионерах и каннибалах, 336; 68} обработки естественного языка, 671 обучения классификации, 441 определения частей речи, 585 оценки кредитного риска, 392 перевозки человека, волка, козы и капусты, 626; 706 планирования, 308;311 размещения костей домино, 783 смертной собаки, 530 счастливого студента, 536 управления перевернутым маятником 345 финансового советника, 100; 139; 163 ханойских башен, 526 хода конем, 202; 618 Закон де Моргана, 220; 548 исключения третьего 344 Замена, 522 Замкнутостъ предметной области, 337 Замыкание функции, 756 Запись активации, 189 Запрос SQL, 595 И и-вершина, 138 Игра "Жизнь", 505; 506 "крестики-нолики", 113; 150,427 “ним", 170 “пятнашки", 114 Иерархическая абстракция, 604 декомпозиция задачи, 48 Иерархия обобщения понятий, 391 Хомского, 574; 599 Извлечение знаний, 279 ответа, 535 Изучаемость, 404 Изучение понятий, 373 Именная конструкция, 142; 568 Императивность, 685 Импликация, 74; 523; 728 Индуктивное обучение, 373 Индуктивный порог, 370; 372; 373; 39}; 400; 436 457; 795; 797 Индукция, 372; 373; 395 Инкапсуляция, 750 Инкрементальный алгоритм обучения, 387 синтаксический разбор, 566 Интеллектуальный агент, 371; 373 Интер полятивиая память, 468 Интерпретатор, 726 метауровия, 727 семантический, 580 Интерпретация, 75; 84; 274 Интерфейс взаимодействия с базой данных, 592 Инфиксный интерпретатор, 690; 726 Искусственная жизнь, 485; 508 Искусственный интеллект, 27; 42; 781 распределенный, 262 нейрон,572;437 Исследование операций, 784 Исходящая звезда, 459 Исчерпывающий поиск, 69 Исчисление высказываний, 73; 522 символы, 74 предикатов, 62; 73; 77; 103; 727 алфавит, 78 первого порядка, 34; 86 символы, 80 пропозициональное, 296 Итерационное заглубление, 131 1ТеЛЬ
к Каноническая форма, 237 Каноническое правило формирования, 252 Категориальная архитектура, 222; 255 трехуровневая, 256 Категоризация, 417 Категоризированное выражение, 543 Категория базового уровня, 420 Квантификация переменных, 85 Квантор всеобщности, 81; 85 переменных, 81 существования, 81; 85 Китайская комната, 785 Класс, 750 NP-сложных задач, 181 абстрактный, 751 регулярных языков, 574 Классификатор, 400; 515 Классификация, 436 по минимальному расстоянию, 443 Классная доска, 213 Кластеризация взаимной информации, 589 Клеточный автомат, 48Г, 484; 505; 512 Ключ, 723; 752 КНФ, 488 Когнитология, 524; 792 Кодирование Грея, 492 сжимающее, 453 Композиция, 94 Конечный автомат, 574 Конкурентное обучение, 455 Конкурентный метод обучения, 436 Коннекционнстская модель, 780 Конструктор, 705 Контекстно-зависимый язык, 574 Контекстно-независимая грамматика. 573; 575 Контекстно-независимое правило, 598 Контекстно-независимый язык, 574 Концевая вершина, 112 Концептуальная Кластеризация, 373; 417; 418 модель, 280 Концептуальное отношение, 245 синтаксическое правило, 234 Концептуальный граф, 222; 230; 245; 581; 594 обобщение и специализация, 250 тип, 247 Концепция d-отделения, 360 Конъюнкт, 74; 729 Конъюнктивная нормальная форма. 488 Конъюнктивное выражение, 728 Конъюнктивный порог, 402 Конъюнкция, 74 Дизъюнктов, 53Q Корень графа, 1Ю Корневой граф, 1 ю Корректность понятия,^ Коэффициент скорости обучения, 448 Критерий отбора, 484 Кусочно-линейная биполярная пороговая функция, Л Лексикон, 567 Лексическое замыкание, 712 Лингвистический анализ, 585 Линейная ассоциативная память, 437 входная форма, 551 Линейный ассоциатор, 467 критерий качества, 502 Литерал, 529 положительный, 672 Логика умолчания, 330 хорновских дизъюнктов, 612 Логистическая функция, 445,449 Логическая операция. 694 программа, 548; 606 система поддержки истинности, 335 Логический вывод, 89 Логическое исчисление Буля, 34 программирование, 542; 547; 609, 727 следствие, 74 Лучевой поиск, 780 Лямбда-выражение, 77.? м Магнитная энцефалография. 793 Мажоритарное голосование. 512 Макрорасширение, 738 Макрос, 738 defclass, 751 Максимально конкретное обобщение, 385 общее понятие, 385 Максимальное правдоподобие, 417 Максимальный общий подпит, ^-49 Маркер. 247 *,248 Марковская модель, 588 цепь, 564 855 Предметный указатель
оджокжос предположение, 587 Масси», 70S Математическая модель аналогии, Машина Тьюринга, 448; 509; 803 Машинное обучение, 373; 391; 431 Медиатор. 787 Мера доверия, 162; 364; 350 неопределенности, 326 правдоподобия, 350 Метазнание, 65 Метаинтерпретатор, 609; 646; 690 для LISP, 647 Металингвистическая абстракция, 647; 727 Мегаплаиирование, 322 Мегалредикэт, 669; 639 Метод Q-обучеяия, 45/ ветвей и границ, 117 временных разностей, 426 встречной? распространения, 457 градиентного спуска, 446; 449 грамматических триграмм, 59] дефаззификацнн, 349 динамического программирования, 429 добавления повторяющихся элементов, 400 максимального правдоподобия, 4]7 минииакса, 370 Монте-Карло. 429; 431; 486 неточных рассуждений на основе фактора уверенности. 652 обратного распространения ошибки, 449 обучения по методу обратного распространения 44] основанный на знаниях, 273 поиска экстремума, 784 редукции целей, 3J7 сильный, 784 слабый, 784 Триангуляции дерева клик, 364 центра тяжести, 349 цепочки, 523 Методология классной доски, 2/2 Механизм вывода, 275 рассуждений на основе множественной достоверности Д Д->; 366 на основе опыта, 300 Минимальная модель мира, 337 Минимальный ейщкй супертип, 249 многозначная логика, 365- 612 Многослойный персептрон, 444) ™рия сознания, 79] и*™5™™1* Следование, 755 Множество, 622; 625; 705 поддержки, 522; 540 856 -----------------------— Модальная логика, 253; 365 Модель, 336 автоассоцизтивной памяти, 477 агентная, 791 внешней среды, 426 Гроссберга, 459 искусственной жизни, 437 классной доски, 186 коняекнноннстская, 780 концептуальная, 280 концептуальной зависимости, 257 марковская, 564; 5338 минимальная, 336 неирогюдобная, 435 обоснования по аналогии, 412 обучения с подкреплением, 437 рассуждения, 325 стохастическая, 585 триграмм, 588 физиологическая, 481 Хебба, 437; 799 эмерджентная, 370; 484 Модификатор отношений, 236 Моноид, 237 Монотонность, 784 Морфема, 564 Морфология, 564 Мультиагентнал система, 262 Мутация, 487; 503 н Наиболее общий унификатор, 95 Накопительная кластеризация, 417 Наследование, 64; 750 множественное, 755 Научная деятельность, 416 Начальное состояние, 112 Нейрон, 51; 372; 435 искусственный, 437 Мак- Калл ока-Питса, 436; 438 Нейронная вычислительная модель, 51 сеть, 372; 435; 786 Нейрон-победитель, 437; 456 Нейроподобная модель, 435 Нейро-символьная гибридная система, 481 Немонотонная система, 328 Немонотонные рассуждения, 327 Несобственный символ, 78 Нетерминальный символ, 573 Неточный вывод на основе фактора уверенности, 32 Нечеткая ассоциативная матрица, 346 Нечеткое множество, 344 Нормализованный критерий качества, 50- ! Нормальная дизъюнктивная форма, 529 Предметный Указа
о Обобщение, 370; 377; 380 максимально конкретное, 383 на основе объяснения, 497 Обобщенное дельта-правило, 44/ Обобщенный граф, 377 Оболочка CUPS, 276 cxshell, 650 Обоснование на основе опыта, 415 по аналогии, 4/2 Обработка естественного языка, 67/ Обратная цепочка, 118 Обратное распространение ошибки, 436 Обучение, 50; 37/ без учителя, 373; 415; 456 генетическое, 372 индуктивное, 373 конкурентное, 455 машинное, 373; 391; 43/ на основе временных разностей, 426; 428 обратного распространения ошибки, 436 объяснения, 373; 374; 405; 44)7 подобия, 373; 405 поиска, 39), 400 пояснения, 661; 668 на уровне знаний, 411 по аналогии, 303 по методу градиентного спуска, 446 обратного распространения. 441; 448 с подкреплением, 71; 373; 424 4 ?7 496 с учителем, 373; 381; 415 синхронное. 463 эволюционное, 372 Общая стратегия вывода, 522 Общий подтип, 249 Объект. 750 Объектно-ориентированное моделирование, 686 программирование. 749 Ограничение на количество дизъюнктов, 462 Однослойная нейронная сеть, 439 Оператор cut, 549 unless, 329 тактический, 52 отсечения, 609. 620 разрешения, 52/ Операция, 388 К 74 Опорный объект, 418 Оппортунистический поиск, 269 Оппортунистическое планирование, 322 Опровержение, 528 разрешения, 528; 533 Оптимизация, 436 ?Р“ейпФоваяный граф, / /О Ортхяормальносп, векторов, 469 Осведамлеиностъ. 784 Осиовное выражение, 85 Открепление, 522 Отношение коиияпуаяьное, 245 концептуальной зависимости, 234 МЮМУ вершинами графа, /// Отображение, 7/7 Оценивание с задержкой, 736 функции, 79 Оценка плотности по методу максимального правдоподобия, 417 Очередь, 125; 180.609,622; 714 приоритетная, 155;624 п Падежная грамматика, 55® Падежный фрейм. 233;58/;67/ Пакет организации памяти,237 Пара условие-действие, 692 Параметр качества. 498 совестя,456 шага, 427 Парамолутяния, 555 Парсинг, 744 Переменная, анонимная, 617 Перестановка, 503 Персептрон, 436; 439,798 многослойный, 440 Нтанер, 507 Планирование, 274; 527 адаптивное, 316 Планировщик. 2/4; 307 STRIPS, 263 Поведение, 750 Поверхностная структу^я. 599 Поверхность япнбки, 446 Пограюгчяи частила, 5/4 Подсистема объяснений. 275 Подстановка. 94; 522 Подтип, 249 MtcmnaaojBA общий. 249 Пслхоа Демпстера-Шафера, 350 Псдатронная змиссяииая то**ярафия. 793 Поиск 42; 783 в Web, 592 в глубину, 121; 124; 130,61 /;63/. 706 прежлипа глубже. 131 с возврвтом- 631 857 Предметный указатель
В пространстве 716 двунаправленный, 385 лучевой. 180 методом полного перебора, 69 на графе И/ИЛИ, 134 на основе данных, 118; 206 образна, 2/2 цели, 287 оппортунистический, 289 от общего к частному, 383; 406; 665 отцепи, 118 от частного к общему. 382 по ключевым словам в Web, 596 с возвратом,95; 121 эвристический, 163 экстремума, 153 Полезность категории, 421 Полиморфюм, 750 Полиморфная функция, 750 Политика л, 426 Полный байесовский анализ, 355 Положительный литерал, 612 Помеха, 474 Понимание естественного языка, 369; 519; 561 языка на основе шаблонов, 585 Понятие -кандидат, 376 максимально общее, 383 Порог индуктивный, 372; 400 конъюнктивный, 402 синтаксический, 402 Пороговая функция, 438 Построение дерева решений сверху вниз, 394 опровержений, 528 списков, 697 Потенциал возбуждения, 787 Паты, 729 Правило, 197;612 Meta-DENDRAL, 797 Видроу-Хоффа, 446 временных разностей, 429 ^^70-,89;521;5б7;574 Демпстера, 351 если..., то..., 275; 500 контекстно-независимое, 595 копирования, 250 логического вывода, 495 мажоритарного голосования, 5/2 модус поненс, 31; 77; 90 модус толленс, 91 обучения Кохонена, 456 на основе временных разностей, 428 объединения, 250 отделения, 107; 523; 529 перехода, 485 преобразования, 599 продукционное, 282; 574; 784 резолюции, 77; 91; 92 рулетки,486 специализации, 250 Правильно построенная формула, 74 Прагматика, 564 Предваренная нормальная форма, 532 Предикат, 62; 79; 685; 692 assert, 614 bagof, 633 consult, 614 eq. 708 member, 6/6:697 retract, 614 Предиктивность, 421 Предложение, 81; 568 Предположение о замкнутости мира, 296; 328; 336; 547 пространства, 551 Предпосылка, 74 Предсказуемость, 421 Представление знаний, 42 иерархических, 559 Пренексная нормальная форма, 532 Приведение, 557 Принцип бритвы Оккама, 340 Вильяма из Оккама, 394 Дарвина, 370 минимизации энергии, 477 обучения без учителя, 456 понимания языка на основе шаблонов, 585 разделения переменных, 614 резолюции, 90; 528; 534 систематичности, 414 Приоритет операций, 726 Приоритетная очередь, 155; 186; 609; 622; 624 Приоритетность классов, 755 Проблема выделения кредита, 390 границ, 267; 308 исследования представления знаний, - линейной разделимости, 436; 441 машинного обучения, 37/ обобщения, 370 обоснования, 794 понимания естественного языка, 561 представления знания и поиска,-’_____ Предметный указ®,вЛ 858
связывания, 794 формализации метазнаний, 65 эпистемологического доступа, 80/ Проверка вхождения, 94; 722 соответствия типов, 706; 750 шаблонам, 718 Прогнозирование, 274; 436 Программа ДМ,4/5 BACON, 416 Candide, 591 DENDRAL, 120; 406 Dipmeter Advisor, 45 EVR1SKO, 416 Hacker, 50 IL, 416 INTERNIST, 45 LEX, 388; 402 компоненты, 390 Logic Theorist (LT), 219; 522 PROSPECTOR, 45 SHRDLU, 47 STRIPS, 407 Systran, 591 WEBMATE, 265 XCON, 45 AM, 50 игры в шашки, 173; 300 логическая, 548; 606 на языке PROLOG, 611 Программирование автомапгческое, 504 генетическое, 484 декларативное, 522 динамическое, 587 логическое, 542; 547; 609; 727 объектно-ориентированное, 749 функциональное, 607; 685 эволюционное, 509 Продукционная память, 497 система, 144; 186; 196; 282; 511; 708 на языке PROLOG, 626 Продукционное правило, 197; 574; 784 Продукция, 197 Проект NASA, 318 Проектирование, 274 Пропозициональное исчисление, 296 Просодия, 564 Пространство версий, 381 возможных действий, 308 понятий, 376 состояний, 112 задачи, 42 Прототип, 278 Процедура альфа-бета-усечення, /75 гилеррсзолюцин. 536 Доказательства теорем, разрешающая. 528 минимакса, 173 полного доказательства, 90 Процедурная семантика, 547 Процедурный метод интерпретации правил, 290 язык, 678 Процесс извлечения знаний, 279 проверки соответствия, 523 сколемизации, 552 триангуляции, 363 уменьшения различий, 526 Прямая цепочка, 118 Прямой процесс рассуждения, 282 Психология обработки Информации 524 Путь допустимый, 113 на графе, ПО Р Разбор предложений. 568 на естественном языке. 598 Разделение переменных, 614 Различия между декларативным и процедурным стилями программирования, 711 Размеченный граф, ПО Разностный список, 645 Распознавание образов, 436 Распределенная система, 435 Распределенный искусственный интеллект, 262 Рассуждения абдуктивные, 338 байесовские, 355 на митптмальных моделях, 336 на основе модели. 292; 305; 784 проект NASA, 296; 318 опыта, 299; 305 правил, 304 немонотонные, 327 Расширение логических грамматик. 576 Расширенная грамхгатика фразовой структуры, 576 сеть переходов, 569 Расщепление, 557 Ршкоишмянюгтескаа программа» система. 40 Реализация памяти, 436 Регрессия цели.408 Регулярный язык, 574 Редактор базы знаний, 276 Редукция нетей. 317 859 Предметный указатель
?,-л?.-<да.77;528;Л* ’.-<->s.'k73.534 Гл>7<'4®ям фогвддак.^® фчшзва.б&5 ^инфмипип. ДО Pajp^KHW™™»* ‘“1574 Рсжчрсввяый мажятор.672 m основе саяитячеож сетей. 675 поиск. 186;187; 618 Ранрсяя, 186:615 car-crir.699 Режиюшм бия JVKBJS. 593 Рефраявв.2/7 Рашт» задач на основе авбых «годов. 220 Решеетечэаждат, 4>. 485 Решетка заввсимостей предпосылок. .U? Разовая ф)нпш. 75ft 753 Роль. 233. 24-3 C++. 50 Самоеост^юкзаддстао. 5ft? Самоорганкмтвя сета. 458 Самарешнкаакя. 484 Сиеявг.555 Свойство ортоеормавностн, 477 Свячвлнне. 94 п^аяяха.701 Семантика. 564 Вфоагаостная. 341 Сеаштичеаая гркмыкпва.5$8 аатерфепаа. 565 сета. 64:229.377.5Э> 6?9.6S& 746 Vruu ятяФт*0 567 Сета ХЕПаЬ. 453 «ссатмтаясобратньддаддд^ 477 расцюстранеянж. 456; 4 ^9 гибпя,26О Яжрп.71;327;355 KoxoBEsa.457 веч»вви. 372; 786 с®рвтаоП)РасЧ’острваеяия,799 °4«“>3».569.574 Сигмондатьная функция. 445 Сильный метод. 273 решения проблем. 220 Символ. 752 гктинностн. 79 несобственный, 78 нетерминальный. 573 Символьная модель, 436 Снмвошюе выражение. 686 исчисление, 30 сбученпе, 784 представление, 435 Символьные вычжжяия, 694 Символьный аналв. 564 Сяшк,51;439 Синтаксический анализ. 144;564; 567 порог. 402 раэбор. 565 Синхронное обучение. 463 Система Burton. 321 C-kSEW 299 CLUSTBRC. 4/8; 457; 798 COB-WEB. 420 DEXDRAL. 45 Dipmeter. 120 exshdl. 650 Genoa! Problem Sober. 522 HEARSAY-П. 213 HEARSAY-Ш. 215 Livingstone, 296; 318 Logic Theorist 43 NLACS'i’M.A. 135 Meo-DENDRAL, 5ft 322 MYCIN. 45:263; 292; 321; 650 NETtalk. 452 PROSPECTOR, 120.357 PROTOS. 299 ROBOCUP. 263 SCAVENGER, 476 SHRDLU. 563 STRIPS, 311; 528 Teiresias,50 автоматической квэссяфнкапин юрна**®*1 документов, 598 автономная. 263 анализа медицинских карточек папна**06-* гибридная, 306 , Доказательства на основе резолюш*»- - извлечения информации. 596 классйфигацни. 485; 495 логического вывода. 496 м}пъ тиагегпная. 262 на основе модели, 293 нейро-символьная гибридная. 481 _ Предметный У*838 860
немонотонная, 325 объсттно-орнкгп глава моче 294 ПК^ГООбжж——_ ссяоваюки на знаниях. 326 Согааряа.гд^*” параллельно" распределенной сбрабопа. як роль, 240 поддержки истинности. 328; 33] J* с учетом обоснования, 332 поддержки страхования жизни. ^98 т продукционная, /96; 5] 1; 626- 708 прямого поиска. 289 Табжщ решения общих задач GPS *26 пствдаостн, 76 с сильными методами. 303 ®*ратай,527 формальная, 783 <лзичий,522 формальной логики, 32 связей, 526 экспертная, 37; 273; ТЛ7 треугольная. 3/2 Систематичность, 4/3 Скатемнзаштя. 93; 53/ T^r™80'™"w,riJ" Скоэемовская константа, 532 обеадигавысыретад функция, 93 Т«ри Скрещивание. 487- V)? к^явояистазя, 227 Скрытый слой. 453 Байеса. 71; 355 Стэбый метод. 734 вероятностей, 344; 34 решета задач. 220- “'Зро’исго действ. 302 Слон нейронов. 43 ' возможных вфов, 785 Создание вычисзнмасти. Зб конфликта. 529 локальных переменных, “>? ЦЯф®.32;Ю8 Демпстера-Шафера. 326 Составной терм 7^7 интеллектуальных смета*. 730:792 Состояние, 108’ '®форв1Ж1.39б-,591 Спеииалнзаша *77- 180 клеточных автоматов. 484 Список. 607; 6/5; 686- 689 ^пш^пяяоб завдавмета. 234; 233 open. 186 яоппелтуальяьа графе*. 250 вхоалгтнвгыЬ. 723 зспяеапго акя>->та ДО »«з«вств.За?:4/5 подзадач. 523 жйроняайсеяепвяс 790 приоритетно. ,н массив. Л\*> вафонвд сетей. 437.786 разностный. 645 нечетеях множеств. Л« свойств. 747 Способность к обучению, 369 сбосяоваяа Дощстера-Шафзв, 5>; обучена Хебба. 462 Срсднеквадра-ппеекаж ошнбга. 447 Стек, 609- б'1'1 Пирса, 230 пжка в тфостранстъе сосгояЖ /08 □osvTKpxjsa. 406 аршины графа. Л*э Гфеэватаа. 6S7 подобия. АХ? Стохэгппкская модель. 5SS престо пфяжа. 521; 606; 612; 67] прябжженэо кеджктясго с высокой Стратегу вфоятвостък» РАС । ют 4М поиска реяураоагх фхиажй. 607.685 от цели. /35 речи. 39 экстремума, /д? аемыпнчеяахо гфеаичлдт. 5W ирогж^фования n-го стоя, 17/ семейнип? сходства. 4.V шг кнд)хгнвный парат. 457 С тр\-ктура. ЛК сетей связей. 437 ссылсж. 35 объяснения. А» стр\ттурното отображения. 4/3 Лэндфордскэд терркл фатзра уверенности. 3-С Супертнп. 249 схематического Нфжэоак. 2Л> фактора хаереяжктж. 342 „ ЦннкмадьиыЙ общий 249 фСрМХТЪНЫХ КЗЫЯЖ .' /4 <хемэ Терм. коэфсваым. 4.АУ лхтмак»< . Предметный указатель 861
дар"а ра3бора’Ж Терминальны» j ^приия»»»"1-®5 Тьюрни^ -?й Ти1 дамки. 247 впроояьЛР® определение, 76/ универсальный, 249 Тоаакпасети,4^ Точечная пара, 723 Т-пространство, 303 T(Z*JP>«™»mM аналогуЮЗ Траи*р«аши сверху а™.от Третий закон Kem<pa,5« треугольна» таблица, 312 Триангуляция, 363 Триграмма, 5SS грамматическая, 591 Тьюринг, 36 У Универсальная машина Тьюринга, 509 Универсальное инстанцирование, 91 Универсальный тип, 249 Уникальность имен, 337 Унификация, 93; 94; 139; 530; 642; 644; 687; 701 Упорядоченное скрещивание, 490 Уровень активашо! нейрона, 438; 445 Ускорение обучения, 411 Условная вероятность, 356 оценка, 694 Ф Факт, 548; 612 Фактор, 536 ветвления, 121 пространства, 178 достоверности, 740 момента, 448 Уверенности, 164; 326; 342 Факторизация выражений, 536 Феноменология, 39 ®ю"“опи««я модель,«/ Фильтрация, 436 шума, 407 Фонема, 452 Фонология, 564 Форма, 687;б89 ^,693 система, 783 ие категорий, 373 формула, атомарная, 80 Фразовая структура грамматик фрейм. 241; 576; 639; 659; 685- 705 падежный. 581; 671 функциональная грамматика, 598 функциональное выражение, 79 магнитно-резонансное сканировав, программирование, 607; 685 793 функция defun, 691 eval, 690 let, 703 list, 688 quote, 689 set, 701 setf, 695 вознаграждения, 426 высшего порядка, 711 дискриминантная, 442 доступа к компонентам списка, 696 отображения, 713; 729 полиморфная, 750 построения списков, 697 предикат, 692 принадлежности, 345 рекурсивная, 685 родовая, 750; 753 стоимости, 426 унификации, 721 фильтр, 711 ценности, 427 энергии, 437 сети, 472 X Хвостовая рекурсия, 698 Хебб,460 Хеммингов вектор, 468 Хорновская дизъюнктивная форма, 612 Хорновский дизъюнкт, 612 Хорновское выражение, 403; 521; 54/. Хронологический возврат к предыДУ1це состоянию, 331 Хэш-таблица, 705 ц Целевое условие, 112 Цикл, 693 чгения-оценки-печати, 687 ч Числовая таксономия, 417
ш Шаблон, 58; 7И; 718 предложений, 584 условий,498 Шаговый множитель, 427 э Эволюционная модель обучения, 437 Эволюционное обучение, 372 программирование, 509 Эвристика, 43; 69; 149; 301; 784 допустимая, 164 Эвристический поиск, 153; 163; 181; 376 Эдинбургский синтаксис, 607 Эквивалентность, 74 Экспертная система, 37; 45; 273; 520, 526 MYCIN.292 общие задачи, 274 основанная на правилах, 282 основные модули, 275 подсистема объяснений, 275 Эмерджентная модель, 370,484 Эмерджентное поведение, 485 решение задач, 221 Эмерджентность. 258 Эмердженгные вычисления, 512 Эмпирическая дилемма, 370 Эффект горизонта. 174 я Ядерный магнитный резонанс, 793 Ящро,315;555 Язык C++, 608; 750 Common LISP, 608; 685; 690; 697 встроенные типы данных, 705 встроенные функции, 690 глобальные переменные, 715 основные свойства, 706 C-PROLOG, 610 FORTRAN. 678 Goedel, 660 Java, 750 KL-ONE.268 KRL.266 Lambda-PROLOG, 680 LISP, 396.416; 501; 607; 685 LOGO, 278 Mercury. 680 OPS, 200 Pascal, 641; 705 PROLOG, 186; 383; 528; 606; 706 Scheme, 803 Smalltalk, 608 SQL, 593 SWM*. 335 естественный. 519; 561 инфиксной арифметики, 726 контекстно-зависимый, 574 контекстно-независимый, 574 представления, 783 процедурный. 678 регулярный, 574 рекурсивно-перечислимый. 574 Фреге, 34 Предметный указатель 863
Научно-популярное издание Джордж Ф. Люгер Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание Литературный редактор О.Ю. Белозовская Верстка О.В. Линник Художественный редактор С.А. Чернокозинский ГлппвкиМ Корректоры Л.А. Гордиенко, Т.А. Корзун, О.В.Мишутина.Л.В.4^^ Издательский дом “Вильямс”. 101509, Москва, ул. Лесная, д. 43, стр. 1. Изд. лиц. ЛР №090230 от 23.06.99 Госкомитета РФ по печати. Подписано в печать 23.06.2003. Формат70X100/16. Гарнитура Times. Печать офсетная- Усл. печ. л. 69,66. Уч.-изд. л. 58,9. Тираж 3500 экэ. Заказ № 289. Отпечатано с диапозитивов в ФГУП "Печатный двор Министерства РФ по делам печати, телерадиовещания и средств массовых коммуниКацИ**' 197110, Санкт-Петербург, Чкаловский пр., 1^-