Текст
                    Стюарт Искусственный интеллект

Рассел	Современный подход

Питер	Четвертое издание

Норвиг

Том I

Решение проблем: знания и рассуждения

Искусственный интеллект Современный подход Четвертое издание Том I. Решение проблем: знания и рассуждения
АгНбсга! 1п1еШ§епсе А Мо(1егп Арргоаск Роиг1к ЕсННоп Н1иаг1 .1. Ки8§е1 апд Ре1ег \ог\11>' Реагзоп
Искусственный интеллект Современный подход Четвертое издание Том I. Решение проблем: знания и рассуждения С. Рассел, П. Норвиг Москва • Санкт-Петербург 2021
ББК 32.813 Р24 УДК 004.8 ООО “Диалектика” Перевод с английского и редакция А.В. Слепцова По общим вопросам обращайтесь в издательство “Диалектика” по адресу: тГо.Фа1ек11ка@^паЯ.сот, ИПр:/Луту.с11а1екбка.сот Рассел, Стюарт, Норвиг, Питер. Р24 Искусственный интеллект: современный подход, 4-е изд., том 1. Решение проблем: знания и рассуждения.: Пер. с англ. — СПб.: ООО “Диалектика”, 2021. — 704 с. — Парал. тит. англ. 18ВИ 978-5-907365-25-4 (рус., том 1) 18ВИ 978-5-907365-24-7 (рус., многотом.) ББК 32.813 Все названия программных продуктов являются зарегистрированными торговыми марками соответ- ствующих фирм. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства Реагеоп Едисабоп, 1пс. Соруп^Ы © 2021 Ьу О1а1екПка СошрШег РиЫкЬ1п§. Отц»ша1 Еп&НзЬ едШоп Соруп^Ы © 2021 Ьу Реагзоп ЕёисаЬоп, 1пс. АП п^Ыз гезегуед 1пс1ид1п^ (Ье оГ гергодисбоп 1п ууЬо1е ог 1п ран 1п алу Топп. ТЫз (галзЫюп 18 риЬЕзЬед Ьу агтал^ешепС той) Реагзоп Еёисабоп, 1пс. Научно-популярное издание Стюарт Рассел, Питер Норвиг Искусственный интеллект: современный подход 4-е издание, том 1 Решение проблем: знания и рассуждения Подписано в печать 24.03.2021. Формат 70x100/16 Усл. печ. л. 56,8. Уч.-изд. л. 53,3 Тираж 500 эю. Заказ № 2850. Отпечатано в АО “Первая Образцовая типография” Филиал “Чеховский Печатный Двор” 142300, Московская область, г. Чехов, ул. Полиграфистов, д. 1 Сайг: \улууу.с11рб.ги, Е-шаП: 8а1е8@сЬрб.ги, тел. 8 (499) 270-73-59 ООО “Диалектика”, 195027, Санкт-Петербург, Магнитогорская ул., д. 30, лит. А, пом. 848 18ВЫ 978-5-907365-25-4 (рус., том 1) © ООО “Диалектика”, 2021, перевод, 18ВЫ 978-5-907365-24-7 (рус., многотом.) оформление, макетирование 18В1Ч 978-0-13-461099-3 (англ.) © 2021,2010,2003 Ьу Реагзоп Еёисабоп, 1пс.
Оглавление Предисловие 13 Об авторах 19 Часть I. ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ, ОСНОВЫ Глава 1. Введение 23 Глава 2. Интеллектуальные агенты 81 Часть II. РЕШЕНИЕ ЗАДАЧ Глава 3. Решение задач посредством поиска 125 Глава 4. Поиск в сложных средах 205 Глава 5. Поиск в условиях противодействия и игры 261 Глава 6. Задачи удовлетворения ограничений 319 Часть III. ЗНАНИЯ, РАССУЖДЕНИЯ И ПЛАНИРОВАНИЕ Глава 7. Логические агенты 369 Глава 8. Логика первого порядка 441 Глава 9. Логический вывод в логике первого порядка 493 Глава 10. Представление знаний 551 Глава 11. Автоматизированное планирование 603 Приложение А. Математические основы 673 Приложение Б. Сведения о языках и алгоритмах, используемых в книге 684 Предметный указатель 689
Содержание Предисловие 13 Новое в этом издании 13 Общий обзор книги 14 Ресурсы в Интернете 16 Обложка книги 16 Благодарности 17 Об авторах 19 Ждем ваших отзывов! 20 Часть I. ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ, ОСНОВЫ Глава 1.Введение 23 1.1. Что такое ИИ 24 1.2 Истоки искусственного интеллекта 30 1.3. История искусственного интеллекта 48 1.4. Современное состояние исследований 63 1.5. Риски и преимущества искусственного интеллекта 69 Резюме 75 Библиографические и исторические заметки 76 Упражнения 77 Глава 2. Интеллектуальные агенты 81 2.1. Агенты и среды 81 2.2. Лучшее поведение: концепция рациональности 85 2.3. Свойства окружающей среды 90 2.4. Структура агентов 97 Резюме 116 Библиографические и исторические заметки 117 Упражнения 119 Часть II. РЕШЕНИЕ ЗАДАЧ Глава 3. Решение задач посредством поиска 125 3.1. Агенты, решающие задачи 125 3.2. Примеры задач 130 3.3. Алгоритмы поиска 137
3.4. Стратегии неинформированного поиска 144 3.5. Стратегии информированного (эвристического) поиска 155 3.6. Эвристические функции 176 Резюме 187 Библиографические и исторические заметки 189 Упражнения 194 Глава 4. Поиск в сложных средах 205 4.1. Локальный поиск и задачи оптимизации 205 4.2. Локальный поиск в непрерывных пространствах 218 4.3. Поиск с недетерминированными действиями 222 4.4. Поиск в частично наблюдаемых средах 228 4.5. Поисковые агенты, действующие в оперативном режиме, и неизвестные варианты среды 240 Резюме 250 Библиографические и исторические заметки 251 Упражнения 256 Глава 5. Поиск в условиях противодействия и игры 261 5.1. Теория игр 261 5.2. Принятие оптимальных решений в играх 265 5.3. Эвристический альфа-бета-поиск по дереву 275 5.4. Поиск по дереву методом Монте-Карло 283 5.5. Игры с элементами случайности 289 5.6. Частично наблюдаемые игры 293 5.7. Ограничения игровых алгоритмов поиска 300 Резюме 302 Библиографические и исторические заметки 304 Упражнения 311 Глава 6. Задачи удовлетворения ограничений 319 6.1. Определение задач удовлетворения ограничений 320 6.2. Распространение ограничений: логический вывод в С8Р 328 6.3. Поиск с возвратами в задачах удовлетворения ограничений 337 6.4. Локальный поиск в задачах удовлетворения ограничений 346 6.5. Структура задач 349 Резюме 356 Библиографические и исторические заметки 357 Упражнения 362
Часть III. ЗНАНИЯ, РАССУЖДЕНИЯ И ПЛАНИРОВАНИЕ Глава 7. Логические агенты 369 7.1. Агенты, основанные на знаниях 370 7.2. Мир вампуса 373 7.3. Логика 377 7.4. Логика высказываний: очень простая логика 382 7.5. Доказательство теорем логики высказываний 390 7.6. Эффективный пропозициональный логический вывод 406 7.7. Агенты, основанные на логике высказываний 414 Резюме 428 Библиографические и исторические заметки 429 Упражнения 434 Глава 8. Логика первого порядка 441 8.1. Еще раз о представлении 441 8.2. Синтаксис и семантика логики первого порядка 449 8.3. Использование логики первого порядка 463 8.4. Инженерия знаний на основе логики первого порядка 472 Резюме 481 Библиографические и исторические заметки 482 Упражнения 484 Глава 9. Логический вывод в логике первого порядка 493 9.1. Логический вывод в логике высказываний и логике первого порядка 493 9.2. Унификация и логический вывод в логике первого порядка 496 9.3. Прямой логический вывод 503 9.4. Обратный логический вывод 513 9.5. Резолюция 521 Резюме 538 Библиографические и исторические заметки 539 Упражнения 544 Глава 10. Представление знаний 551 10.1. Онтологическая инженерия 551 10.2. Категории и объекты 555 10.3. События 564 10.4. Ментальные объекты и модальная логика 569 10.5. Системы рассуждений о категориях 573
10.6. Рассуждения при наличии информации по умолчанию 579 Резюме 586 Библиографические и исторические заметки 587 Упражнения 595 Глава 11. Автоматизированное планирование 603 11.1. Определение классической задачи планирования 603 11.2. Алгоритмы классического планирования 609 11.3. Эвристики для задач планирования 616 11.4. Иерархическое планирование 621 11.5. Планирование и действие в недетерминированных проблемных областях 634 11.6. Время, расписания и ресурсы 648 11.7. Анализ различных подходов к планированию 654 Резюме 655 Библиографические и исторические заметки 656 Упражнения 664 Приложение А. Математические основы 673 А.1. Анализ сложности и нотация О() 673 А.2. Векторы, матрицы и линейная алгебра 677 А.З. Распределения вероятностей 679 Библиографические и исторические заметки 683 Приложение Б. Сведения о языках и алгоритмах, используемых в книге 684 Б.1. Определение языков с помощью формы Бэкуса-Наура 684 Б.2. Описание алгоритмов с помощью псевдокода 685 Б.З. Дополнительный материал в Интернете 687 Предметный указатель 689
I
Посвящается Лой, Гордону, Люси, Джорджу и Исааку. С.Дж. Рассел Посвящается Крис, Изабелле и Джульетте. 77. Норвиг

Предисловие Искусственный интеллект (ИИ) — чрезвычайно широкая область знаний, и именно поэтому данная книга имеет такой большой объем. Авторы описали эту область во всей ее широте, включая математическую логику, теорию вероятностей и теорию непрерывных функций. Они раскрыли суть таких понятий, как воспри- ятие, рассуждение, обучение и действие, обсудили важные социальные аспекты (справедливость, доверие, общественное благо и безопасность), а также описали использование достижений в этой области в самом широком диапазоне, начиная с микроэлектронных устройств и заканчивая роботизированными средствами иссле- дования других планет и глобальными интерактивными системами информацион- ного обслуживания миллионов пользователей. Подзаголовок этой книги — “Современный подход”. Это означает, что авто- ры решили освещать историю проводившихся исследований с современной точки зрения, синтезируя то, что известно сейчас, в общие рамки и пересматривая ран- ние работы с использованием идей и терминологии, общепринятой в наши дни. Авторы приносят свои извинения представителям тех направлений, которые по этой причине стали выглядеть не столь значимыми. Новое в этом издании________________________________________ В этом, четвертом, издании книги отражены те изменения в области искус- ственного интеллекта, которые произошли со времени выпуска предыдущего, третьего, издания книги в 2010 году. • Теперь мы в большей степени ориентируемся на машинное обучение, чем на подготовку знаний вручную, что вызвано существенно возросшей доступно- стью данных и вычислительных ресурсов, а также появлением новых алго- ритмов. • Глубокое обучение, вероятностное программирование и многоагентные си- стемы теперь рассматриваются более широко — каждой из этих областей ИИ посвящена отдельная глава. • Подход к изложению тем понимания естественного языка, робототехники и компьютерного зрения был существенно пересмотрен с целью отразить вли- яние последних достижений в области глубокого обучения. • В главу о робототехнике добавлены разделы о роботах, взаимодействующих с людьми, и применении к роботам методов обучения с подкреплением. • Ранее целью ИИ полагалось создание систем, направленных на максимиза- цию их полезности, причем конкретная информация о самой этой полезно- сти —т.е. цель — предоставлялась человеком, создававшим систему. Теперь
авторы больше не предполагают, что цель всегда заранее установлена и из- вестна системе ИИ. Вместо этого допускается, что система может не иметь уверенности в истинных целях тех людей, от имени которых она действу- ет. Ей потребуется выяснить, что необходимо максимизировать, а затем она должна будет функционировать соответствующим образом, даже если у нее не будет полной уверенности в конечной цели. • Расширен охват анализа влияния ИИ на общество, включая жизненно важ- ные вопросы этики, справедливости, доверия и безопасности. • В оригинальном англоязычном издании авторы перенесли упражнения из конца каждой главы на специально созданный веб-сайт, чтобы получить воз- можность постоянно добавлять, обновлять и улучшать упражнения, стре- мясь удовлетворять меняющиеся потребности преподавателей и полнее отражать достижения в области ИИ и в связанных с ней инструментах про- граммного обеспечения. В этом русскоязычном издании имеется ссылка на данный англоязычный сайт, а те упражнения, которые на нем присутствовали на момент перево- да книги, также были переведены и включены в нее на прежнем месте — в конце каждой главы. Это было сделано для удобства русскоязычных чита- телей книги. Те же из них, кто в достаточной степени владеет английским языком, имеют возможность в любой момент обратиться к сайту авторов и воспользоваться новым материалом, который будет на нем появляться с те- чением времени. • В целом можно сказать, что в этом издании примерно 25% материала книги совершенно новые. Остальные 75% были в значительной степени перера- ботаны с целью представить читателю более цельную, единообразную кар- тину всей охватываемой в ней области знаний. Также отметим, что 22% ци- тат, приведенных в этом издании, взяты из работ, опубликованных уже после 2010 года. Общий обзор книги____________________________________________________ Главной объединяющей темой этой книги является идея интеллектуального агента. Авторы определяют искусственный интеллект как науку об агентах, ко- торые получают результаты актов восприятия из окружающей среды и выполня- ют действия. Каждый такой агент реализует функцию, которая отображает после- довательности актов восприятия в действия, и в данной книге рассматриваются различные средства представления этих функций, такие как реактивные агенты, планировщики в реальном масштабе времени, системы, действующие на осно- ве теории принятия решений, и системы глубокого обучения. Авторы трактуют обучение и как метод создания компетентных систем, и как способ расширения пределов досягаемости разработчика в неизвестной среде. Кроме того, авторы
рассматривают робототехнику и системы искусственного зрения не как незави- симо определяемые научные направления, а как области знаний, позволяющие обеспечить более успешное достижение целей, стоящих перед агентами, и под- черкивают важность учета особенностей окружающей среды при определении со- ответствующей конструкции агента. Наша главная цель — изложить идеи, которые были сформулированы в ис- следованиях по искусственному интеллекту, проводившихся в течение последних семидесяти лет, а также собраны на протяжении последних двух тысячелетий в смежных областях знаний. Мы старались избегать чрезмерного формализма при изложении этих идей и при этом сохранять необходимую точность. Чтобы кон- кретизировать излагаемые идеи, в текст были включены математические форму- лы и алгоритмы на псевдокоде. Необходимые сведения об основных математи- ческих концепциях и принятых соглашениях в отношении нотации приводятся в приложении А. Особенности используемого в книге псевдокода описываются в приложении Б. Эта книга, в первую очередь, предназначена для использования в курсе или се- рии курсов бакалавриата. Она включает 28 глав,1 на каждую из которых потребу- ется выделить около недели лекций, поэтому проработка всего материала книги предполагает не менее двух семестров. В курсах, рассчитанных на один семестр, возможно использование лишь части всех глав, отобранных так, чтобы удовлетво- рить интересы преподавателя и студентов. Книга также может послужить основой курса для выпускников (возможно, с добавлением некоторых первоисточников, предлагаемых в библиографии) либо использоваться для самостоятельного изуче- ния или же в качестве справочного пособия. Везде в книге -► важные замечания отмечены данным значком в виде стрелки и выделены особым курсивным написанием. Также в тех местах, где дается опре- деление ► нового термина, перед ним ставится значок в виде треугольника, а сам этот термин выделяется полужирным написанием. Впоследствии там, где упоми- нание этого термина также будет иметь важное значение, он будет выделен по- лужирным написанием, но треугольного значка перед ним уже не будет. В книгу включен предметный указатель со ссылками на все важные определения и терми- ны, приводимые в книге, а во втором томе представлен обширный список допол- нительной литературы. Для работы с книгой единственным необходимым условием является знаком- ство с основными понятиями компьютерных наук (алгоритм, структура данных, сложность) на уровне студента-второкурсника. Для некоторых тем также полезно владеть основами интегрального и дифференциального исчисления и линейной алгебры на уровне студента первого курса. 1 В русскоязычном издании они распределены по трем томам: том I — главы 1-11, том II — главы 12-18, том III — главы 19-28. Библиография оформлена в виде отдель- ного файла, размещенного на сайте издательства по адресу: ИЪЪр: //^.иНИашз- риЬИзМпд. сот/Воокз/978-5-907365-25-4 . Ыип1.
Ресурсы в Интернете_____________________________________________ Интерактивные ресурсы книги доступны через сайт издательства Реагзоп по адресу: реагзопЫдкегес!. сот/сз-гезоигсез либо непосредственно на веб-сайте книги, расположенном по адресу: анпа.сз.ЬегкеХеу.еди Там вы найдете следующее. • Упражнения, программные проекты и исследовательские проекты. Как уже упоминалось, в англоязычном оригинале книги упражнений в конце каждой главы больше нет — в этом издании они доступны только на веб-сайте кни- ги. В русском переводе книги они получены с этого сайта в том виде, в кото- ром находились на нем в момент перевода, и помещены, как обычно, в кон- це соответствующей главы. • Реализации всех приведенных в книге алгоритмов на Руйюп, Зауа и некото- рых других языках программирования. (В настоящее время эти программ- ные коды доступны на сайте дПзНиЬ. сот/аттасоде.) • Список более чем из 1400 учебных заведений, в которых использовалась данная книга. Во многих случаях предоставляются ссылки на материалы и программы собственных интерактивных курсов. • Дополнительные материалы и ссылки для студентов и преподавателей. • Инструкции о том, как сообщать об ошибках, обнаруженных в книге, если они будут найдены. Обложка книги На обложке представлена финальная позиция шестой, и решающей, игры шахматного матча 1997 года, в котором программа Веер В1ие победила Гарри Каспарова (он играл черными). В этом матче компьютер впервые добился побе- ды над чемпионом мира в шахматном матче. Фото Каспарова находится на об- ложке вверху справа. Там же показана ключевая позиция во второй игре исто- рического матча по игре в го между бывшим чемпионом мира Ли Седолом и программой Веер Мтд’з АЬРНА ОО. Ход 37 программы АЬРНАОО нарушил вековые ортодоксальные традиции игры в го и немедленно был воспринят экс- пертами-людьми как досадная ошибка, но именно он оказался решающим в до- стижении выигрыша. Вверху слева находится фото Атласа — человекоподоб- ного робота, созданного компанией Воз1оп Вупапмсз. Изображение автомобиля с автоматическим управлением, анализирующего окружающую среду, размеще- но между портретом Ады Лавлейс, первого в мире программиста, и фотогра- фией Алана Тьюринга, фундаментальная работа которого стала краеугольным
камнем в теории искусственного интеллекта. В нижней части шахматной доски находятся фото робота-планетохода Магз Ехр1огаНоп Коуег и бюста Аристотеля, который первым начал изучать логику. Под шахматной доской помещен код ве- роятностной модели программирования, используемой Организацией договора о всеобъемлющем запрещении ядерных испытаний при ООН для обнаружения ядерных взрывов по сейсмическим сигналам. Благодарности________________________________________________________ Чтобы выпустить в свет эту книгу, потребовалась помощь множества людей по всему миру. Более 600 человек прочитали отдельные фрагменты книги и пре- доставили авторам свои предложения по их улучшению. Полный список всех на- ших помощников можно найти по адресу а!та. сз.Ьегке1еу. ес1и/аск. Ылп!. Мы глубоко благодарны им всем. Здесь у нас есть место лишь для того, чтобы упомянуть только некоторых из них, тех, чей вклад был особенно важен для нас. Сначала упомянем авторов отдельных разделов. • Джуди Перл (Дидеа Реаг1) — раздел 13.5, Каузальные сети. • Викаш Мансингха (У1казЬ Мапз1п§Ька) раздел 15.4, Программы как вероят- ностные модели. • Майкл Уолдридж (М1сЬае1 ХУооИпд^е) — глава 18, Принятие решений при наличии нескольких агентов. • Ян Гудфеллоу (1ап Соос1Ге11о\у) — глава 21, Глубокое обучение. • Джейкоб Девлин (ЗасоЬ ОеуНп) и Мей-Вин Чанг (Ме1-\У1п§ СЬап§) — гла- ва 24, Глубокое обучение при обработке естественного языка. • Джитендра Малик (Л1епдга МаНк) и Дэвид Форсайт (ВаУ1д Еогзу1й) — гла- ва 25, Компьютерное зрение. • Анка Драган (Апса Ога^ап) — глава 26, Робототехника. А теперь упомянем тех, кто сыграл в создании этой книги ключевую роль. • Синтия Юнг (СуЩЫа Уеип§) и Малика Кантор (МаНка Сапки) — управле- ние проектом. • Джулия Суссман (Зике Зиззтап) и Том Галлоуэй (Тот ОаПодуау) — набор и редактирование текста. • Омари Стивенс (Отап 81ерЬепз) — иллюстрации. • Трейси Джонсон (Тгасу ЗоЬпзоп) — выпускающий редактор. • Эрин Олт (Епп Айк) и Роуз Кернан (Козе Кегпап) — обложка и цветоделение. • Налин Чиббер (ИаНп СЬЫЬЬег), Сэм Гото (8ат Оо1о), Раймон де Лаказ (Каутопд де Ьасахе), Рави Мохан (КаУ1 МоЬап), Кьяран О'Рейли (С1агап О’КеП1у), Амит Патель (Атк Ра1е1), Драгомир Радив (Ога^оти КасНу) и
Самагра Шарма (8ата§га 8Ьагта) — интерактивная разработка кода и на- ставничество. • Студенты курса 6оо§1е 8иттег оГ Соде — интерактивная разработка кода. Стюарт хотел бы поблагодарить свою жену, Лой Шефлотт (Ьоу 8Ьейой), за бесконечное терпение и безграничную мудрость. Он надеется, что Гордон, Люси, Джордж и Исаак со временем прочтут эту книгу, простив его за столь долгую ра- боту над ней. И как всегда, исключительно полезной для него была работа с КП68 (КиззеП’з Ппизиа! Огоир оГ 81идеп1з — необыкновенная группа студентов Рассела). Питер хотел бы поблагодарить своих родителей, Торстена и Герду, за по- мощь на первых порах, свою жену, Крис, детей Беллу и Джульетту, коллег, друзей и руководство за то, что подбадривали его и проявляли понимание и терпение в те долгие часы, когда он писал и переписывал эту книгу.
Об авторах Стюарт Рассел родился в 1962 году в г. Портсмут, Англия. Он получил степень бакалавра по физике с наградами первой степени в Оксфордском университете в 1982 году и степень доктора философии по компьютерным наукам в Стэнфорд- ском университете в 1986 году. Затем он перешел на факультет Калифорнийско- го университета в г. Беркли, где занял должность профессора на кафедре компью- терных наук, которую возглавлял некоторое время, а также директора центра “ИИ, совместимый с человеком” и заведующего кафедрой инженерного искусства Сми- та-Задэ. В 1990 году он получил Президентскую премию молодых исследовате- лей Национального научного фонда, а в 1995 стал лауреатом премии “Компьютеры и мышление”. Рассел является членом Американской ассоциации искусственно- го интеллекта, Ассоциации вычислительной техники и Американской ассоциации развития науки, почетным членом Вадхам-колледжа в Оксфорде и членом Обще- ства Эндрю Карнеги, занимал почетное кресло Блеза Паскаля в Париже с 2012 по 2014 год. Стюарт опубликовал более 300 статей по широкому кругу тем в обла- сти искусственного интеллекта. Среди прочих написанных им книг можно упо- мянуть Тке Узе о/Кпо^1е(1^е /л Апа1о%у ап<11пс1исИоп, Оо 1ке Кл&кс Тк1п&: 81исНез т 1лтИес1 КаНопаЮу (в соавторстве с Эриком Вифольдом) и Нитап СотраНЫе: АгИ/1с1а11п1е1Н%епсе апс! 1ке РгоЫет о/ Соп1го1. Питер Норвиг в настоящее время является директором по исследованиям в компании Соо§1е, 1пс., а ранее занимал в ней пост директора подразделения, от- вечающего за основные алгоритмы веб-поиска. Он был одним из преподавате- лей в интерактивном курсе ИИ, на который подписалось более 160 тысяч студен- тов, и помогал начать текущий раунд массовых открытых интерактивных курсов. В свое время он был руководителем отдела вычислительных наук в Исследователь- ском центре Эймса, НАСА, где курировал исследования и разработки в области искусственного интеллекта и робототехники. Норвиг получил степень бакалавра прикладной математики в Университете Брауна и степень доктора философии в области компьютерных наук в Беркли. Он был профессором в Университете Юж- ной Калифорнии и членом совета факультета в Беркли и Станфорде. Питер Нор- виг является членом Американской ассоциации искусственного интеллекта, Ас- социации вычислительной техники, Американской академии искусств и наук и Калифорнийской академии наук. Кроме того, он является автором книг РагасИ%тз о/А1 Рго%гатпйп§: Сазе 8(исНез т Соттоп Ызр, УегЬтоЫ!: А Тгапз1аНоп 8уз(ет/ог Расе-1 о-Расе О1а1о% и 1те11щеШ Не1р 8уз(етз /ог 1ЛУ1Х. Два автора этой книги разделили первую награду ААА1/ЕАА1 “Выдающийся педагог” в 2016 году.
Ждем ваших отзывов!_________________________________________________ Вы, читатель этой книги, и есть главный ее критик. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что еще вы хотели бы увидеть изданным нами. Нам интересны любые ваши заме- чания в наш адрес. Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам электронное письмо либо просто посетить наш веб-сайт и оставить свои замеча- ния там. Одним словом, любым удобным для вас способом дайте нам знать, нра- вится ли вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более интересными для вас. Отправляя письмо или сообщение, не забудьте указать название книги и ее ав- торов, а также свой обратный адрес. Мы внимательно ознакомимся с вашим мне- нием и обязательно учтем его при отборе и подготовке к изданию новых книг. Наши электронные адреса: Е-таП: . сИа1ек!11ка@дта11. сот //\<ш^.с11а1ек1:1ка.сот
Часть I Искусственный интеллект, основы Введение 23 Интеллектуальные агенты 81

ГЛАВА 1 Введение В этой главе авторы предпринимают попытку объяснить, почему они рас- сматривают искусственный интеллект как предмет, в наибольшей степе- ни заслуживающий изучения, а также определить, в чем именно он заклю- чается, — это необходимо сделать до того, как можно будет отправиться дальше. Мы называем себя Ното §артеп$ — человек разумный, — потому что наш ► ин- теллект, наши умственные способности столь для нас важны. На протяжении тыся- челетий люди пытались понять, как мы думаем и действуем, т.е. разобраться в том, как наш мозг, всего лишь небольшая горсточка материи, может ощущать, понимать, предсказывать и манипулировать миром, который несравнимо больше в размерах и сложнее, чем он сам. Область к искусственного интеллекта, или ИИ, охватывает не только понимание всего того, о чем говорилось выше, но и создание интеллекту- альных сущностей — машин, которые будут способны вычислять, как им действо- вать эффективно и безопасно в самых разнообразных, в том числе незнакомых им, ситуациях. Регулярно проводимые исследования свидетельствуют о том, что область ИИ расценивается как одна из самых интересных и наиболее быстро развивающихся областей науки и техники. Ул® сейчас она приносит годовой доход размером более триллиона долларов. Эксперт по искусственному интеллекту Кай-Фу Ли предска- зывает, что ее влияние будет “больше, чем что-либо иное в истории человечества”. Более того, интеллектуальные границы ИИ широко открыты. В то время как студен- ты, изучающие традиционные науки, такие как физика, могут полагать, что лучшие идеи в этой области уже были выдвинуты Галилеем, Ньютоном, Кюри, Эйнштей- ном и другими, они осознают, что в области ИИ еще достаточно простора для выда- ющихся открытий. Тематика области искусственного интеллекта в настоящее время охватывает огромный перечень научных направлений, от задач самого общего характера (об- учение, рассуждение, восприятие и т.д.) и до таких конкретных задач, как игра в шахматы, доказательство математических теорем, сочинение стихов, вождение ав- томобиля или диагностика заболеваний. Достижения в области ИИ могут найти себе применение при решении любой интеллектуальной задачи, — это универсальная на- учная область.
1.1 . Что такое ИИ Выше мы уже заявили, что область ИИ вызывает большой интерес, но пока еще не пояснили, что же она собой представляет. Исторически сложилось так, что ис- следователи рассматривали несколько различных версий ИИ. Одни давали опре- деление интеллекту с точки зрения соответствия поведению человека, в то время как другие предпочитали использовать абстрактное, формальное определение ин- теллекта, получившее название ► рациональность — в широком смысле это спо- собность “поступать правильно”. Сам предмет также воспринимается по-разному: одни считают, что интеллект является свойством внутренних мыслительных про- цессов и рассуждений, в то время как другие фокусируются на интеллектуальном поведении, т.е. на внешней характеристике.1 Из этих двух противопоставлений — человекоподобностъ-рационалъностъ2 и мышление-поведение можно вывести четыре различные попарные комбинации, и у каждой из них будут свои приверженцы и соответствующие исследовательские программы. Используемые в них методы были по необходимости различными: по- иски человекоподобного интеллекта должны были проводиться в рамках эмпири- ческих наук, связанных с психологией, включая наблюдение и гипотезы о факти- ческом человеческом поведении и мыслительных процессах. С другой стороны, рационалистический подход предполагает некий синтез математики и техники, с привлечением статистики, теории управления и экономики. Группы исследова- телей, следовавшие различными путями, могли как проявлять пренебрежение, так и помогать друг другу. Давайте рассмотрим все четыре подхода более подробно. 1.1.1. Действуя, как человек: подход на основе теста Тьюринга ► Тест Тьюринга, предложенный Аланом Тьюрингом в 1950 году, был разра- ботан как мысленный эксперимент, который позволил бы обойти философскую неясность вопроса “Может ли машина мыслить?” Компьютер пройдет этот тест, если человек-испытатель, направив ему несколько письменных вопросов, в ко- нечном итоге не сможет определить, от кого исходят полученные им письмен- ные ответы — от человека или от компьютера. В главе 27 подробно обсуждается этот тест и рассматривается вопрос о том, действительно ли можно считать ин- теллектуальным компьютер, который успешно прошел подобный тест. На данный 1 Не следует смешивать понятия “искусственный интеллект” и “машинное обучение”. Машинное обучение — это область ИИ, в которой изучается способность улучшать свои навыки на основе опыта. В одних системах искусственного интеллекта используются ме- тоды машинного обучения для достижения необходимого уровня знаний, а в других этот подход не используется. 2 Мы не предполагаем, что люди “иррациональны” в буквальном смысле этого слова, т.е. “лишены нормальной ясности ума”. Мы просто допускаем, что человеческие реше- ния не всегда безупречны с точки зрения математики.
момент просто отметим, что программирование компьютера для прохождения это- го теста в строгом соответствии с исходными требованиями потребует очень боль- шого объема работы. Запрограммированный таким образом компьютер должен об- ладать всеми перечисленными ниже возможностями. • ► Обработка естественного языка для успешного общения с человеком на его языке. • ► Представление знаний для успешного сохранения того, что он узнает или услышит. • ►Автоматические рассуждения для ответа на вопросы и вывода новых за- ключений. • ►Машинное обучение для адаптации к новым обстоятельствам, а также для выявления и экстраполяции моделей. Сам Тьюринг полагал, что для демонстрации искусственного интеллекта нет необходимости в физической имитации человека. Однако другие исследователи с этим не согласились и предложили ►общий тест Тьюринга, для прохождения ко- торого необходимо продемонстрировать взаимодействие с объектами и людьми в реальном мире. Чтобы пройти полный тест Тьюринга, роботу дополнительно по- надобятся следующие способности. • ►Компьютерное зрение и распознавание речи для восприятия реального мира. • ►Робототехника для манипулирования объектами и перемещения в про- странстве. Эти шесть перечисленных выше направлений составляют основную часть об- ласти исследований ИИ. Тем не менее исследователи искусственного интеллекта практически не занимаются решением задачи прохождения теста Тьюринга, счи- тая, что гораздо важнее изучить основополагающие принципы интеллекта. И дей- ствительно, проблему “искусственного полета” удалось успешно решить лишь по- сле того, как инженеры и изобретатели перестали имитировать птиц и приступили к изучению аэродинамики. В научных и технических работах по воздухоплаванию цель этой области знаний не определяется как “создание машин, которые в своем полете настолько напоминают голубей, что даже могут обмануть настоящих птиц этого вида”. 1.1.2. Думая, как человек: подход когнитивного моделирования Чтобы сказать, что программа мыслит, как человек, мы должны знать, как люди думают. Мы можем изучать человеческое мышление тремя способами. • ►Самоанализ — попытки поймать наши собственные мысли, когда они приходят в наше сознание.
• ►Психологические эксперименты — наблюдение за человеком в дей- ствии. • ►Визуализация работы мозга — наблюдение за мозгом в действии. Если у нас появится достаточно точная теория работы сознания, станет воз- можным выразить эту теорию в виде компьютерной программы. Если поведение системы ввода-вывода программы соответствует действительному поведению че- ловека, это свидетельствует о том, что и некоторые механизмы программы могут работать, как у людей. Например, Аллен Ньюэлл (АПеп Ие^еП) и Герберт Саймон (НегЬеП 81топ), которые разработали программу 6Р8 (бепега! РгоЫет 8оКег — универсальный решатель задач) ([1668], 1961), не стремились лишь к тому, чтобы эта програм- ма правильно решала поставленные задачи. Они в большей степени заботились о том, чтобы запись этапов проводимых ею рассуждений совпадала с регистраци- ей рассуждений людей, решающих такие же задачи. Междисциплинарная область ► когнитивной науки объединяет компьютерные модели из ИИ и эксперимен- тальные методы из психологии для построения точных, позволяющих выполнить их проверку теорий человеческого разума. Когнитивная наука сама по себе является увлекательной областью, достойной нескольких учебников и по крайней мере одной энциклопедии ([2354], 1999). Вре- мя от времени мы будем комментировать сходства или различия между методами искусственного интеллекта и человеческим познанием. Однако реальная когни- тивная наука по необходимости строится на основе экспериментальных исследо- ваний реальных людей или животных. Мы оставим обсуждение этого аспекта для других книг, поскольку предполагаем, что для проведения экспериментов читатель располагает только компьютером. На ранних этапах исследований ИИ часто возникала путаница между разными подходами. Автор мог утверждать, что алгоритм хорошо справляется с заданием и, следовательно, является хорошей моделью человеческой деятельности, или на- оборот. Современные авторы разделяют эти два вида претензий; это различение позволяет как ИИ, так и когнитивной науке развиваться более быстрыми темпами. Эти две области исследований часто оплодотворяют друг друга, что наиболее за- метно в компьютерном зрении, где результаты нейрофизиологических исследова- ний используются при построении вычислительных моделей. В последнее время комбинирование методов нейровизуализации с технологиями машинного обуче- ния с целью анализа собираемых данных уже привело к появлению возможности “читать мысли”, т.е. к возможности определения семантического содержания мыс- лей в сознании человека. Эта способность, в свою очередь, могла бы пролить до- полнительный свет на то, как работает человеческое познание.
1.1.3. Думая рационально: подход на основе "законов мышления" Древнегреческий философ Аристотель был одним из первых, кто попытался определить законы “правильного мышления”, т.е. процессы формирования не- опровержимых рассуждений. Его ► силлогизмы стали образцом для создания процедур доказательства, которые всегда позволяют прийти к правильным заклю- чениям, если даны правильные предпосылки. Вот канонический пример таких рассуждений: “Сократ — человек; все люди смертны; следовательно, Сократ смер- тен”. (Этот пример, вероятно, скорее связан с Секстом Эмпириком, чем с Аристо- телем.) Предполагалось, что эти законы мышления управляют работой ума; их ис- следование положило начало научному направлению, называемому логикой. В XIX веке ученые-логики создали точную систему логических обозначений для утверждений о предметах любого рода, встречающихся в мире, и об отноше- ниях между ними. (Сравните это с обычной системой арифметических обозначе- ний, которая предназначена в основном для формирования утверждений о равен- стве и неравенстве чисел.) К 1965 году уже были разработаны программы, которые в принципе могли решить любую разрешимую проблему, описанную в системе ло- гических обозначений. Исследователи в области искусственного интеллекта, при- держивающиеся так называемых традиций к логицизма, надеются, что им удаст- ся создать интеллектуальные системы на основе подобных программ. Логика, как она обычно понимается, требует, чтобы знания о мире, которыми она оперирует, были точными — условие, которое в действительности редко до- стижимо. Мы просто не знаем правил, которые действуют, скажем, в политике или на войне, с той же степенью достоверности, как правила арифметики или игры в шахматы. ► Теория вероятности заполняет этот пробел, позволяя проводить строгие рассуждения с неточной информацией. В принципе, это позволяет постро- ить всеобъемлющую модель рационального мышления, которая обеспечит пере- ход от необработанной субъективно воспринимаемой информации к пониманию того, как устроен мир и даже к предсказаниям о будущем. Но этой модели все же недостаточно для генерирования разумного поведения. Для этого нам потребует- ся еще и теория рационального действия — рационального мышления самого по себе нам будет недостаточно. 1.1.4. Действуя рационально: подход с использованием рационального агента ► Агент — это просто что-то, что действует (слово агент произошло от ла- тинского слова а%еге — “действовать”). Конечно, все компьютерные программы что-то делают, но ожидается, что компьютерные агенты будут делать больше: ра- ботать автономно, воспринимать окружающую среду, сохранять свое существо- вание в течение длительного периода времени, приспосабливаться к изменениям,
устанавливать и преследовать определенные цели. ►Рациональным агентом на- зывается агент, действующий таким образом, чтобы достичь наилучшего резуль- тата или, если он находится в условиях неопределенности, наилучшего ожидаемо- го результата. В подходе к созданию ИИ на основе “законов мышления” акцент был сделан на формировании правильных логических выводов. Безусловно, иногда формирова- ние правильных логических выводов становится частью функционирования и ра- ционального агента, поскольку один из способов рациональной организации сво- их действий состоит в том, чтобы логическим путем прийти к заключению, что данное конкретное действие позволяет достичь указанных целей, а затем действо- вать в соответствии с принятым решением. С другой стороны, существуют спо- собы действовать рационально, о которых нельзя сказать, что они предполагают логический вывод. Например, отдергивание пальца от горячей печи — это рефлек- торное действие, которое обычно является более успешным в сравнении с более медленным действием, предпринятым после тщательного обдумывания ситуации. Все навыки, необходимые для теста Тьюринга, также позволяют агенту дей- ствовать рационально. Представление знаний и рассуждения обеспечат агенту воз- можность принимать правильные решения. Мы должны быть в состоянии гене- рировать понятные фразы на естественном языке, чтобы войти в состав сложного социума. Нам нужно учиться не только для эрудиции, но и для развития способно- сти генерировать эффективное поведение, особенно в новых условиях. Подход к созданию ИИ с использованием рациональных агентов имеет два важных преимущества в сравнении с другими подходами. Во-первых, он более общий, чем подход на основе “законов мышления”, — правильный вывод является лишь одним из нескольких возможных механизмов достижения рациональности. Во-вторых, он лучше поддается научному развитию. Стандарт рациональности в самом общем виде хорошо определен математически. Во многих случаях можно исходить из этой спецификации, чтобы получить проект агента, который доказуе- мо достигнет цели, что почти невозможно, если цель состоит в том, чтобы имити- ровать человеческое поведение или процессы мышления. По этим причинам подход к созданию ИИ с использованием рациональных аген- тов преобладал на протяжении большей части истории проведения исследований в этой области. В первые десятилетия рациональные агенты строились на логических основах и формировали определенные планы для достижения конкретных целей. Позже методы, основанные на теории вероятностей и технологии машинного обу- чения, позволили создавать агентов, которые были способны принимать решения в условиях неопределенности, имея целью достижение наилучшего ожидаемого ре- зультата. Сказанное можно обобщить следующим образом: большинство работ в области ИИ фокусировалось, прежде всего, на изучении и создании агентов, способных ^по- ступать правильно. Что считать правильным, определялось целью, которая стави- лась перед агентом. Эта общая парадигма настолько распространена, что ее вполне правомерно назвать ►стандартной моделью. Она превалирует не только в области
ИИ, но и в теории управления, где регулятор минимизирует стоимостную функцию, в исследовании операций, где линия поведения максимизирует целевую функцию, в статистике, где правило принятия решения минимизирует функцию потерь, и в эко- номике, где лицо, принимающее решения, максимизирует полезность или некоторую меру социального обеспечения. В отношении стандартной модели необходимо сделать одно важное уточнение: следует учесть тот факт, что идеальная рациональность — всегда выбирать имен- но оптимальное действие — не всегда достижима в сложных условиях. Напри- мер, требования к вычислительным ресурсам могут оказаться слишком высокими. В главах 5 и 17 будет обсуждаться вопрос ► ограниченной рациональности — как поступить надлежащим образом, если не хватает времени на проведение всех необходимых вычислений. Тем не менее идеальная рациональность часто остается хорошей отправной точкой для проведения теоретического анализа. 1.1.5. Полезные машины Стандартная модель была полезным ориентиром для исследований в области ИИ с самого начала, но в долгосрочной перспективе она, вероятно, уже не будет настолько подходящей. Причина в том, что стандартная модель предполагает, что машине всегда ставится точно определенная цель. Для искусственно определенных задач, таких как игра в шахматы или нахожде- ние кратчайшего пути, задача формулируется с изначально определенной конкрет- ной целью, поэтому стандартная модель здесь будет вполне применима. Однако по мере приближения к реальному миру становится все труднее и труднее определить конечную цель точно и полностью. Например, при проектировании самоуправ- ляемого автомобиля изначально можно полагать, что цель состоит лишь в том, чтобы безопасно достичь пункта назначения. Однако движение по любой дороге сопряжено с риском получения травмы из-за других движущихся по ней автомо- билей, отказа оборудования и т.д. В результате жестко заданная цель обеспечения полной безопасности приводит к единственному оптимальному решению: просто оставаться в гараже. Необходим некий компромисс между требованием достиже- ния прогресса в отношении приближения к месту назначения и риском получить при этом травму. Как можно достичь такого компромисса? Пойдем дальше: в ка- кой степени мы можем позволить самоуправляемой машине совершать действия, которые будут раздражать других водителей? В какой степени автомобиль должен смягчать ускорение, крутизну поворотов и резкость торможения, чтобы исключить неприятные ощущения у пассажира? На такие вопросы сложно ответить априори. Эти и другие подобные аспекты создают множество проблем во всей области вза- имодействия человека и робота, где самоуправляемый автомобиль является лишь одним из примеров. Проблема достижения согласия между нашими истинными предпочтения- ми и той целью, которую мы ставим перед машиной, называется ► проблемой
выравнивания ценностей: ценности или цели, передаваемые машине, должны быть согласованы с ценностями человека. Если система искусственного интел- лекта разрабатывается в лаборатории или в симуляторе — как это и было раньше в большинстве исследований в данной области, — будет очень просто исправить неверно выбранную цель: сбросить систему, откорректировать цель и попробовать еще раз. Но по мере того, как исследования в этой области проводятся со все более и более сложными и умными интеллектуальными системами, развертываемыми в реальном мире, такой подход становится нежизнеспособным. Развертывание си- стемы с неверно заданной целью неизбежно будет иметь негативные последствия. Более того, чем более интеллектуальной будет такая система, тем более отрица- тельными будут последствия. Возвращаясь к явно беспроблемному примеру игры в шахматы, рассмотрим, что произойдет, если машина будет достаточно умна, чтобы рассуждать и действо- вать и за пределами шахматной доски. В этом случае она может попытаться увели- чить свои шансы на победу, используя такие хитрости, как использование гипноза или шантаж своего оппонента, либо даже подкуп аудитории, чтобы она шумела в то время, когда противник будет размышлять над очередным ходом.3 Она даже мо- жет попытаться захватить для себя дополнительные вычислительные мощности. Такое поведение не является "неразумным" или "безумным", в действительности оно является логическим следствием определения победы как единственной цели машины. Невозможно противодействовать всем способам неправильного поведения ма- шины, преследующей фиксированную цель. И это весомая причина, чтобы при- йти к заключению, что стандартная модель является неадекватной. Мы не хотим машин, которые будут интеллектуальными в смысле преследования их целей; мы хотим, чтобы они преследовали наши цели. Если мы не можем точно передать эти цели машине, то нам нужна новая формулировка — такая, согласно которой маши- на преследует наши цели, но обязательно не имеет полной уверенности в том, ка- ковы они. Когда машина знает, что ей не известны цели во всей их полноте, у нее будет стимул действовать осторожно, просить разрешения на те или иные действия, чтобы узнать больше о наших предпочтениях посредством наблюдения, и считать- ся с контролем со стороны человека. В конечном счете мы хотим агентов, которые будут ► доказуемо полезны человеку. Мы вернемся к этой теме в разделе 1.5. 1.2 Истоки искусственного интеллекта В этом разделе кратко описана история развития научных дисциплин, которые внесли свой вклад в область ИИ в виде конкретных идей, воззрений и методов. Как и в любом историческом очерке, поневоле приходится ограничиваться опи- санием небольшого круга людей, событий и открытий, игнорируя все остальные 3 В одной из первых книг по шахматам Руи Лопес (1561) писал: “Всегда ставьте доску так, чтобы солнце светило в глаза вашему противнику”.
факты, которые также были важны. Авторы построили этот исторический экскурс вокруг ограниченного круга вопросов. Безусловно, они не хотели бы, чтобы у чи- тателя создалось такое впечатление, будто эти вопросы являются единственными, которые рассматриваются в указанных научных дисциплинах, или что сами эти дисциплины развивались исключительно ради того, чтобы их конечным итогом стало создание искусственного интеллекта. 1.2.1. Философия • Можно ли использовать формальные правила для получения обоснованных заключений? • Как мысль возникает в физическом мозге? • Откуда приходят знания? • Каким образом знание ведет к действию? Аристотель (384-322 до н.э.) был первым, кто сформулировал точный свод за- конов, регулирующих рациональную часть нашего мышления. Он разработал не- формальную систему силлогизмов, предназначенную для проведения правильных рассуждений, которая в принципе позволяла любому делать выводы механически, лишь на основании начальных предпосылок. Раймон Луллий (ок. 1232-1315) разработал систему рассуждений, опублико- ванную им под названием Аг5 Ма^па, или Великое искусство ([1438], 1305). Лул- лий даже предпринял попытку реализовать свою систему в виде механического устройства: набора бумажных колец, которые можно было поворачивать, получая разные перестановки. Около 1500 года Леонардо да Винчи (1452-1519) спроектировал, но не постро- ил механический калькулятор. Недавние реконструкции этого устройства пока- зали, что оно вполне работоспособно. Первая известная машина для выполне- ния расчетов была создана примерно в 1623 году немецким ученым Вильгельмом Шиккардом (1592-1635). В 1642 году Блез Паскаль (1623-1662) построил ариф- метическую машину “Паскалин”. Он писал, что она “производит эффект, который кажется более близким к мышлению по сравнению с любыми действиями живот- ных”. Готфрид Вильгельм Лейбниц (1646-1716) создал механическое устройство, предназначенное для выполнения операций над концепциями, а не числами, но об- ласть его применения была довольно ограниченной. В своей книге Левиафан, вы- шедшей в 1651 году, Томас Гоббс (1588-1679) выдвинул идею создания думающей машины, “искусственного животного”, как он ее называл. По его словам, “Вместо сердца у нее будет пружина, вместо нервов — пучок струн, а вместо суставов — множество колес”. Он также предположил, что рассуждение подобно числовым расчетам: “Ведь «суждение»... это не что иное, как «подведение итогов», в ходе которого мы складываем и вычитаем”. Одно дело — сказать, что сознание функционирует, по крайней мере частич- но, в соответствии с логическими или числовыми правилами, а затем построить
физические системы, которые имитируют некоторые из этих правил. Совсем дру- гое дело — сказать, что сознание само по себе является такой физической систе- мой. Рене Декарт (1596-1650) впервые опубликовал строгое обсуждение различий между разумом и материей. Он отметил, что чисто физическая концепция ума, по- хоже, оставляет мало места для свободной воли. Если сознание регулируется ис- ключительно физическими законами, то оно имеет не больше свободной воли, чем скала, “решившая” рухнуть вниз. Декарт был сторонником > дуализма. Он счи- тал, что есть часть человеческого сознания (или душа либо дух), которая находится за пределами естества и не подчиняется физическим законам. Животные, с другой стороны, не обладают таким дуалистическим свойством, поэтому их можно рас- сматривать как машины. Альтернативой дуализму является материализм, утверждающий, что сознание складывается из операций, выполняемых мозгом в соответствии с законами фи- зики. Свободная воля — это просто форма, которую принимает восприятие нашим существом доступных вариантов в процессе выбора. Для описания подобного представления, исключающего любую возможность существования сверхъесте- ственного, также используются термины физикализм и натурализм. Если полагать, что знаниями манипулирует физический разум, то возникает следующая проблема — установить источник знаний. Такое научное направле- ние, как ► эмпиризм, родоначальником которого был Френсис Бекон (1561-1626), автор Нового Органона* можно охарактеризовать высказыванием Джона Локка (1632-1704): “В человеческом понимании нет ничего, что не проявлялось бы пре- жде всего в ощущениях”. Дэвид Юм (1711-1776) в своей книге Трактат о человеческой природе ([1095], 1739) предложил метод, известный теперь под названием > принцип индук- ции, — общие правила вырабатываются путем изучения повторяющихся ассоциа- ций между элементами, которые рассматриваются в этих правилах. Основываясь на работе Людвига Виттгенштейна (1889-1951) и Бертрана Рас- села (1872-1970), знаменитый Венский кружок, группа философов и математиков, собиравшихся в Вене в 1920-1930-е годы, разработал доктрину ► логического позитивизма. Согласно этой доктрине все знания могут быть охарактеризованы с помощью логических теорий, связанных в конечном итоге с ► протокольными предложениями, которые соответствуют наблюдаемым фактам. Таким образом, логический позитивизм объединяет рационализм и эмпиризм. В ► теории подтверждения Рудольфа Карнапа (1891-1970) и Карла Хемпеля (1905-1997) была предпринята попытка понять, как знания могут быть приобре- тены из опыта посредством количественной оценки степени доверия, присваива- емой логическим предложениям на основе сопоставления с наблюдениями, под- тверждающими или опровергающими их. В книге Карнапа Логическая структура 4 Книга Новый органон была создана как новая версия труда Аристотеля Органон (ин- струмент мышления).
мира ([372], 1928) была сформулирована, по-видимому, первая теория мышления как вычислительного процесса. Последним элементом в философской картине разума является связь между знанием и действием. Этот вопрос является жизненно важным для искусственно- го интеллекта, поскольку интеллектуальность требует не только рассуждений, но и действий. Более того, только понимая, как обосновать предпринимаемые дей- ствия, можно понять, как создать агент, действия которого будут обоснованы (или рациональны). Аристотель утверждал (в Эе МоШ АттаПит), что действия обосновываются логической связью между целями и знанием о результатах этих действий. Но почему происходит так, что размышления иногда сопровождаются действием, а иногда — нет, иногда за ними следует движение, а иногда — нет? Создается впечат- ление, что почти то же самое происходит и в случае построения рассуждений и фор- мирования выводов о неизменных объектах. Но в таком случае целью умственной деятельности оказывается умозрительное суждение... тогда как заключением, кото- рое следует из данных двух предпосылок, является действие... Мне нужна защита от дождя; защитой может послужить плащ. Мне нужен плащ. Я должен изготовить то, в чем нуждаюсь; я нуждаюсь в плаще. Я должен изготовить плащ. И заключение “я должен изготовить плащ” становится действием. В книге Никомахова этика (том III. 3, 1112Ь) Аристотель дополнительно развива- ет эту тему, предлагая следующий алгоритм. Мы размышляем не о конечных целях, а о средствах. Врач не обдумывает, должен ли он лечить, а оратор — должен ли он убедить... Они уже установили конечную цель и рассматривают, как и за счет чего она достигается, и если окажется несколько средств, то определяют, какое из них самое простое и наилучшее; если же достиже- нию цели служит одно средство, думают, как ее достичь при помощи этого средства и что будет средством для этого средства, пока не дойдут до первой причины, кото- рую находят последней... и то, что является последним в порядке анализа, окажется ^первым в порядке выполнения. А если мы сталкиваемся с невозможностью, то пре- кращаем поиск — например, если нам нужны деньги, а их нельзя получить, — но если что-то кажется возможным, мы пытаемся это сделать. Алгоритм Аристотеля был реализован через 2300 лет Ньюэллом и Саймоном в их программе Сепега! РгоЫеш 8окег (6Р8). Теперь то, что создано на его базе, принято называть системой жадного регрессивного планирования (см. главу 11). Методы, основанные на логическом планировании для достижения определенных целей, доминировали в первые несколько десятилетий теоретических исследова- ний в области ИИ. Анализ исключительно с точки зрения действий по достижению цели часто является полезным, но иногда оказывается неприменимым. Например, если к цели ведет несколько вариантов действий, необходимо иметь какой-то способ вы- бирать среди них. Еще важнее то, что иногда может не быть полной уверенно- сти в возможности достижения цели, но некоторые действия все же следовало бы
предпринять. Как в таких ситуациях следует поступать? Антуан Арно ([74], 1662), анализируя идею принятия рациональных решений в азартных играх, предложил количественную формулу максимизации ожидаемого конечного денежного резуль- тата. Позже Даниэль Бернулли ([191], 1738) ввел более общее понятие ► полезно- сти для фиксации внутренней, субъективной ценности результата. Современное понятие рационального принятия решений в условиях неопределенности предпо- лагает максимизацию ожидаемой полезности, как это описывается в главе 16. В вопросах этики и государственной политики лицо, принимающее решения, должно учитывать интересы множества людей. Джереми Бентам ([176], 1823) и Джон Стюарт Милль ([1576], 1863) поддерживали идею ► утилитаризма: раци- ональное принятие решений на основе максимизации полезности должно при- меняться во всех сферах человеческой деятельности, в том числе в области го- сударственных политических решений, принимаемых от имени многих людей. Утилитаризм является одной из форм ► консеквенциализма, основная идея ко- торого такова: что считать правильным или неправильным, определяется ожидае- мыми результатами действия. В противоположность этому Иммануил Кант в 1875 году предложил свою те- орию кдеонтологической этики, базирующейся на системе установленных пра- вил. Согласно ее положениям правильность действия определяется не по резуль- татам, а по соответствию универсальным социальным законам, регулирующим допустимость действий, таким как “не лги” или “не убивай”. Таким образом, по- следователь утилитаризма имеет право на “белую” ложь, если ее ожидаемые хоро- шие следствия перевешивают плохие, тогда как для приверженца этики Канта это недопустимо, поскольку ложь в самой своей сути является действием неправиль- ным. Милль признавал значение правил, но понимал их как эффективные процеду- ры принятия решений, составленные на результатах первичных рассуждений о по- следствиях. Во многих современных системах ИИ применяется именно этот подход. 1.2.2. Математика • Каковы формальные правила формирования правильных заключений? • Что может быть вычислено? • Как проводить рассуждения на основе недостоверной информации? Философы сформулировали наиболее важные идеи искусственного интеллек- та, но для его преобразования в формальную науку потребовалось достичь опре- деленного уровня математической формализации в области логики, теории веро- ятности и разработки новой ветви математики: теории вычислений. Истоки идей ► формальной логики можно найти уже в работах философов Древней Греции, Индии и Китая, но ее становление как математической дисципли- ны фактически началась с трудов Джорджа Буля (1815-1864), который детально разработал логику высказываний, или булеву логику. В 1879 году Готтлоб Фреге (1848-1925) расширил булеву логику для включения в нее объектов и отношений
[775], создав логику первого порядка, которая в настоящее время используется как наиболее фундаментальная система представления знаний.5 Помимо своей цен- тральной роли в ранний период исследований в области ИИ, логика первого по- рядка мотивировала работы Гёделя и Тьюринга, которые заложили теоретические основы вычислительной техники, как это будет объяснено ниже. ► Теорию вероятности можно рассматривать как обобщение логики на ситу- ации с неопределенной информацией — весьма важный вклад в теорию искус- ственного интеллекта. Итальянский математик Джероламо Кардано (1501-1576) первым сформулировал идею вероятности, описывая ее в терминах результатов событий с несколькими исходами, возникающих в азартных играх. В 1654 году Блез Паскаль (1623-1662), в письме Пьеру Ферма (1601-1665), показал, как мож- но предсказать будущее в бесконечной азартной игре и распределить средний вы- игрыш между игроками. Вероятность быстро стала неотъемлемой частью всех количественных наук, помогая справляться с неточностью измерений и незавер- шенностью теорий. Якоб Бернулли (1654-1705, дядя Даниила Бернулли), Пьер Ла- плас (1749-1827), и другие внесли большой вклад в эту теорию и ввели новые статистические методы. Томас Байес (1702-1761) предложил правило обновления вероятностей с учетом новых фактов. Правило Байеса и возникшее на его основе научное направление, называемое байесовским анализом, являются важными ин- струментами для систем ИИ. Формализации вероятности, в сочетании с доступностью данных, привели к появлению ►статистики как нового поля научных исследований. Одним из пер- вых достижений в этой области стал выполненный Джоном Граунтом анализ дан- ных переписи населения Лондона 1662 года. Первым современным статистиком считается Рональд Фишер. Он объединил идеи вероятности, планирования экспе- римента, анализа данных и вычислений. В 1919 году он настаивал на том, что не смог бы выполнять свою работу без механического калькулятора под названием М1ЕЕЮКА1КЕ (первый арифмометр, позволявший выполнять операцию умноже- ния), даже несмотря на то, что стоимость этого калькулятора была больше, чем его годовая зарплата. История вычислений так же стара, как история чисел, но первым нетривиаль- ным ► алгоритмом считается алгоритм вычисления наибольшего общего знаме- нателя, предложенный Евклидом. Само слово “алгоритм” пришлом к нам от Му- хаммеда ибн Мусы аль-Хорезми, среднеазиатского математика IX столетия, чьи труды также познакомили Европу с арабскими цифрами и алгеброй. Буль и другие ученые широко обсуждали алгоритмы логического вывода, а к концу XIX столе- тия даже предпринимались усилия по формализации общих принципов проведе- ния математических рассуждений как логического вывода. 5 Предложенная Готтлобом Фреге система обозначений для логики первого порядка, представлявшая собой загадочную комбинацию из текстовых и геометрических элемен- тов, так и не нашла широкого распространения.
Курт Гёдель (1906—1978) показал, что существует эффективная процедура до- казательства любого истинного высказывания в логике первого порядка Фреге и Рассела, но при этом логика первого порядка не позволяет выразить принцип математической индукции, необходимый для представления натуральных чисел. В 1931 году Гёдель показал, что действительно существуют реальные пределы вы- числимости. Предложенная им ► теорема о неполноте показывает, что в любой теории, достаточно выразительной для описания свойств арифметики Пеано (эле- ментарной теории назуральных чисел), существуют истинные высказывания, ко- торые являются недоказуемыми в рамках этой теории. Этот фундаментальный результат также может быть интерпретирован как де- монстрация того, что некоторые функции на целых числах не могут быть представ- лены с помощью какого-либо алгоритма, т.е. они не могут быть вычислены. Это побудило Алана Тьюринга (1912-1954) попытаться точно охарактеризовать, какие функции являются ► вычислимыми, т.е. могут быть вычислены с использовани- ем некоторой эффективной процедуры. Тезис Черча-Тьюринга предлагает отожде- ствить общее понятие вычислимости с функциями, вычисляемыми машиной Тью- ринга. Тьюринг также показал, что существуют некоторые функции, которые ни одна машина Тьюринга не может вычислить. Например, никакая машина не сможет в общем случае определить, будет ли указанная программа возвращать результат и прекращать работу при указанных данных или будет работать бесконечно. Хотя понятие вычислимости очень важно для понимания возможностей вы- числения, гораздо большее влияние на развитие искусственного интеллекта ока- зало понятие ► разрешимости. Грубо говоря, задача называется неразрешимой, если время, требуемое для решения отдельных примеров этой задачи, растет экс- поненциально с увеличением размеров этих примеров. Различие между полино- миальным и экспоненциальным ростом сложности было впервые подчеркнуто в середине 1960-х годов в работах Кобхэма и Эдмондса. Это важно, потому что экс- поненциальный рост сложности означает, что даже умеренно большие примеры могут оказаться неразрешимыми за какое-либо разумное время. Теория ►^Р-полноты, впервые предложенная Стивеном Куком и Ричардом Карпом, предоставляет необходимую основу для анализа разрешимости задач: любой класс задач, к которому может быть сведен класс ИР-полных задач, явля- ется, по-видимому, неразрешимым. (Хотя еще не было доказано, что ИР-полные задачи обязательно являются неразрешимыми, большинство теоретиков счита- ют, что дело обстоит именно так.) Эти результаты контрастируют с тем оптимиз- мом, с которым в популярных периодических изданиях приветствовалось появле- ние первых компьютеров под такими заголовками, как “Электронные супермозги”, которые думают “быстрее Эйнштейна!” Несмотря на постоянное повышение бы- стродействия компьютеров, экономное использование ресурсов и вынужденное несовершенство являются характерными особенностями интеллектуальных си- стем. Грубо говоря, наш мир — это чрезвычайно крупный экземпляр задачи.
1.2.3. Экономика • Как нам следует принимать решения в соответствии с нашими предпочте- ниями? • Как это следует делать, когда другие могут препятствовать нам? • Как действовать в таких случаях, когда вознаграждение может быть получе- но лишь в отдаленном будущем? Экономика как наука возникла в 1776 году, когда шотландский философ Адам Смит (1723-1790) опубликовал свою книгу Исследование о природе и причинах богатства народов. Смит предложил рассматривать экономику как состоящую из множества индивидуальных агентов, стремящихся к достижению собственных ин- тересов. Смит, однако, не рассматривал стремление к финансовому обогащению как основную моральную установку: свою раннюю книгу Теория моральных от- ношений (VI59) он начал с указания, что беспокойство о благополучии других яв- ляется важным компонентом интересов каждого индивида. Большинство людей считают, что экономика имеет дело исключительно с день- гами, и действительно, первый математический анализ принятия решений в усло- виях неопределенности — формула максимальной ожидаемой стоимости Арноль- да — имел отношение к денежной стоимости ставок. Даниил Бернулли отметил, что эта формула, похоже, плохо работает в случае больших денежных сумм, на- пример инвестиций в морские торговые экспедиции. Вместо нее он предложил принцип, построенный на максимизации ожидаемой полезности, и объяснил вы- бор инвестиций людьми исходя из предположения, что минимальная полезность дополнительного количества денег уменьшается, когда человек получает больше денег. Леон Вальрас дал более общую математическую трактовку теории полезно- сти в терминах предпочтений между азартными играми на любые результаты (не только денежные). Эта теория была улучшена Фрэнком Рамсеем, а затем усовер- шенствована Джоном фон Нейманом и Оскаром Моргенштерном в книге Теория игр и экономического поведения ([2282], 1944). Сейчас экономика уже не рассма- тривается как наука о деньгах — скорее, это изучение намерений и предпочтений людей. ► Теория принятия решений, объединяющая в себе теорию вероятностей и теорию полезности, предоставляет формальную и полную инфраструктуру для принятия решений (в области экономики или в другой области) в условиях не- определенности, т.е. в тех случаях, когда среда, в которой действует лицо, прини- мающее решение, наиболее адекватно может быть представлена лишь с помощью вероятностных описаний. Она хорошо подходит для “крупных” экономических образований, где каждый агент не обязан учитывать действия других агентов как индивидуумов. Однако в “небольших” экономических образованиях ситуация в большей степени напоминает игру, поскольку действия одного игрока могут су- щественно повлиять на полезность действий другого (или положительно, или
отрицательно). Теория игр, разработанная фон Нейманом и Моргенштерном, по- зволяет сделать неожиданный вывод: в некоторых играх рациональный агент дол- жен действовать случайным образом или по крайней мере таким образом, который кажется случайным для соперников. В отличие от теории принятия решений, тео- рия игр не предлагает однозначного рецепта для выбора действий. В области ис- следований искусственного интеллекта решения с участием нескольких агентов исследуются под заголовком мультиагентные системы (глава 18). Экономисты за немногими исключениями не стремятся найти ответ на тре- тий вопрос, приведенный в начале раздела, т.е. не предпринимают попыток вы- работать способ принятия рациональных решений в таких условиях, когда воз- награждение в ответ на определенные действия не предоставляется немедленно, а становится результатом нескольких действий, выполненных в определенной последовательности. Изучению этой темы посвящена область ► исследования операций, которая возникла во время второй мировой войны в результате уси- лий, предпринятых в Великобритании в отношении оптимизации работы радар- ных установок, а в дальнейшем нашла применение и в гражданском обществе при выработке сложных управленческих решений. В работе Ричарда Беллмана ([169], 1957) формализован определенный класс последовательных задач выра- ботки решений, называемых марковскими процессами принятия решений, ко- торые рассматриваются в главе 17, а под названием обучение с подкреплени- ем — в главе 22. Работы в области экономики и исследования операций оказали большое вли- яние на сформулированное в этой книге понятие рациональных агентов, однако в течение многих лет исследования в области искусственного интеллекта прово- дились совсем по другим направлениям. Одной из причин этого была кажущаяся сложность задачи выработки рациональных решений. Тем не менее один из пер- вых исследователей в области искусственного интеллекта, Герберт Саймон (1916- 2001), получил в 1978 году Нобелевскую премию по экономике за свои ранние работы, в которых показал, что модели, основанные на ► разумной достаточно- сти (т.е. на принятии решений, которые являются “достаточно приемлемыми”, вместо проведения трудоемких расчетов с целью нахождения оптимального реше- ния), дают лучшее описание фактического поведения человека. С 1990-х годов от- мечается возрождение интереса к использованию методов теории принятия реше- ний в применении к системам искусственного интеллекта. 1.2.4. Нейронауки • Как информация обрабатывается в мозгу? ►Нейронауки —это область научных исследований, посвященная изучению нервной системы, в особенности мозга. Хотя точный способ, посредством кото- рого мозг реализует мышление, все еще является одной из самых больших тайн в науке, тот факт, что он действительно обеспечивает мышление, был известен
в течение тысяч лет, поскольку существовали свидетельства, что сильные уда- ры по голове могут привести к умственной недееспособности. Также давно было известно, что человеческий мозг чем-то отличается от мозга других живых су- ществ, — примерно в 335 г., до н.э. Аристотель писал: “Из всех животных у чело- века самый большой мозг в отношении к его размерам”.6 Тем не менее широкое признание того, что мозг является вместилищем сознания, пришло только в сере- дине XVIII столетия. До этого времени в качестве возможных источников созна- ния рассматривались сердце и селезенка. Поль Брока (1824-1880) в 1861 году провел исследования афазии (нарушения речи) у пациентов с повреждением мозга, которые стали отправной точкой для проведения исследований функциональной организации мозга, благодаря выявле- нию определенной области в левом полушарии — теперь ее называют зоной Бро- ка, — которая отвечает за организацию речевой активности.7 К тому времени уже было известно, что мозг состоит из нервных клеток, или ► нейронов, но только в 1873 году Камилло Гольджи (1843-1926) сумел разработать надежный метод, по- зволяющий наблюдать за отдельными нейронами в мозгу (рис. 1.1). Именно этот метод использовал Сантьяго Рамон-и-Кахаль (1852-1934) в своих пионерских ис- следованиях нейронных структур мозга.8 В настоящее время общепризнано, что когнитивные функции являются результатом электрохимического воздействия этих структур. То есть ^совокупность простых клеток может привести к мыш- лению, действию и пониманию. По содержательным словам Джона Сирла ([2025], 1992), мозг является причиной разума. Теперь ученые располагают некоторыми данными о том, как связаны между со- бой отдельные области мозга и те части тела, которыми они управляют или от ко- торых получают сенсорные данные. Удивительно, что подобная привязка может коренным образом измениться в течение нескольких недель, а у некоторых жи- вотных, по-видимому, имеется несколько вариантов такой привязки. Более того, еще не совсем понятно, как другие области могут взять на себя функции повре- жденных областей. К тому же почти полностью отсутствуют обоснованные тео- рии того, как осуществляется хранение информации в памяти индивидуума или как работают высокоуровневые когнитивные функции. 6 С течением времени было обнаружено, что у землеройки и некоторых видов птиц соотношение веса мозга и тела превышает таковое у человека. 7 В качестве возможного более раннего источника многие цитируют работу Алексан- дра Гуда (1824). 8 Гольджи упорно отстаивал свое мнение, что функции мозга осуществляются в ос- новном непрерывной средой, в которую включены нейроны, тогда как Кахаль предла- гал “нейронную доктрину”. Эти ученые совместно получили Нобелевскую премию в 1906 году, но в роли лауреатов произнесли речи, содержащие взаимные антагонистичные выпады.
Рис. 1.1. Части нервной клетки, или нейрона. Каждый нейрон состоит из тела клет- ки (или сомы), которое содержит ядро клетки. От тела клетки ответвляется множе- ство коротких волокон, называемых дендритами, и одно длинное волокно, называ- емое аксоном. Аксон растягивается на большое расстояние, намного превышающее то, что показано в масштабе этого рисунка. Обычно аксоны имеют длину 1 см (что в 100 раз больше диаметра тела клетки), но могут достигать 1 метра. Нейрон соединя- ется с другими нейронами, количество которых может составлять от 10 до 100 000 в точках соединения, называемых синапсами. Сигналы распространяются от одно- го нейрона к другому с помощью сложной электрохимической реакции. Эти сигна- лы управляют активностью мозга в течение короткого интервала времени, а также вызывают долговременные изменения состояния самих нейронов и их соединений. Считается, что именно эти механизмы служат в мозгу основой для обучения. Об- работка информации происходит главным образом в коре головного мозга, кото- рая представляет собой внешний слой нейронов мозга. По-видимому, основной ее структурной единицей является колонка ткани или модуль, имеющий диаметр око- ло 0,5 мм и протяженность на всю глубину коры, толщина которой в человеческом мозгу составляет около 4 мм. Каждый модуль содержит примерно 20 000 нейронов Первые измерения активности неповрежденного мозга начали проводить в 1929 году с изобретением Гансом Бергером элекгроэнцефалографа (ЭЭГ). Разра- ботки в области получения изображений на основе функционального магнитного резонанса (МРТ) позволили нейрологам получать исключительно подробные изо- бражения активности мозга, что обеспечило возможность проведения измерений, связанных с происходящими познавательными процессами различными интерес- ными способами. Эти возможности постоянно расширяются благодаря прогрес- су в области регистрации нейронной активности отдельной клетки и в методах ► оптогенетики, позволяющих как измерять, так и управлять активностью от- дельных нейронов, модифицированных таким образом, чтобы сделать их чувстви- тельными к свету.
Разработка ► интерфейсов “мозг-машина” (Лебедев и Николелис [1369], 2006) для сенсорного и двигательного управления не только обещает получить средства восстановления функциональных возможностей людей с ограниченны- ми возможностями, но также проливает свет на многие аспекты нейронных си- стем. Замечательный вывод этой работы состоит в том, что мозг способен настро- ить себя на успешное взаимодействие с внешним устройством, рассматривая его в действии как еще один орган чувств или конечность. Мозг и цифровые компьютеры имеют несколько различающиеся свойства. На рис. 1.2 показано, что продолжительность рабочего цикла современного ком- пьютера в миллион раз меньше, чем мозга. Мозг компенсирует эту разницу за счет гораздо большего объема памяти и количества взаимосвязей в сравнении с персо- нальным компьютером даже самого высокого класса, хотя крупнейшие суперком- пьютеры по некоторым показателям уже соответствуют нашему мозгу. Футуристы придают большое значение этим показателям, указывая на приближение ► особо- го момента, когда компьютеры достигнут сверхчеловеческого уровня производи- тельности (Винге [2272], 1993; Курцвейл [1330], 2005; Докторов и Стросс [629], 2012), а затем стремительно улучшат себя в еще большей степени. Однако сравне- ние самих числовых значений недостаточно информативно. Даже в случае созда- ния компьютера с практически неограниченной мощностью, нам по-прежнему по- требуются дальнейшие концептуальные прорывы в нашем понимании интеллекта (см. главу 28). Грубо говоря, без наличия правильной теории более быстрые маши- ны будут просто быстрее давать нам неправильные ответы. Суперкомпьютер Персональный компьютер Мозг человека Вычислительные модули 106ГП + ЦП 8-ядерный ЦП 10 6 колонок 1015 транзисторов 1010 транзисторов 1011 нейронов Модули памяти 1016 байтОП 1017 байтДП 1010 байтОП 1012 байтДП 1011 нейронов 1014 синапсов Цикл обработки Операций в секунду 10"’ секунды 1018 10 секунды 10’° 10"3 секунды 1017 Рис. 1.2. Грубое сравнение характеристик лидирующего суперкомпьютера 8шптй (Фельд- ман [719], 2017), типичного персонального компьютера образца 2019 года, и человеческо- го мозга. (Здесь ГП — графический процессор, ЦП — центральный процессор, ОП — опе- ративная память, ДП — дисковая память.) Мощность человеческого мозга не изменялась сколько-нибудь значительно на протяжении тысяч лет, тогда как мощность суперкомпью- теров возросла от мегафлопсов в 1960-х до гигафлопсов в 1980-х, терафлопсов в 1990-х, петафлопсов в 2008 году и эксафлопсов в 2018 году (1 эксафлопс= 1018 операций с плава- ющей точкой в секунду)
1.2.5. Психология • Как люди и животные думают и действуют? Истоки научной психологии обычно прослеживаются до работ немецкого фи- зика Германа фон Гельмгольца (1821-1894) и его студента Вильгельма Вундта (1832-1920). Гельмгольц применил научный метод для изучения зрения человека. Выпущенная им книга Справочник по физиологической оптике даже в наши дни ха- рактеризуется как “непревзойденный по своей важности вклад в изучение физики и физиологии зрения человека” (Нальва [1655], 1993). В 1879 году Вундт открыл пер- вую лабораторию по экспериментальной психологии в Лейпцигском университете. Он настаивал на проведении тщательно контролируемых экспериментов, в кото- рых его сотрудники выполняли задачи по восприятию или формированию ассоци- аций, проводя интроспективные наблюдения за своими мыслительными процес- сами. Тщательный контроль позволил ему сделать очень многое для превращения психологии в науку, но субъективный характер делал маловероятным, что экспери- ментаторы когда-либо будут опровергать их собственными теориями. С другой стороны, биологам, изучающим поведение животных, интроспектив- ные данные недоступны, поэтому они разработали объективную методологию, которую Г.С. Дженнингс описал в своей нашумевшей работе Поведение низших организмов ([1133], 1906). Распространив этот подход на людей, сторонники дви- жения, возглавляемого Джоном Уотсоном (1878-1958) и получившего название ►бихевиоризм, отвергали любую теорию, учитывающую мыслительные процес- сы, на том основании, что интроспекция не может предоставлять надежные сви- детельства. Бихевиористы настаивали на изучении только объективных мер вос- приятия (или стимулов)^ предъявленных животному, и их вытекающих из этого действий (или откликов). Бихевиоризм позволил многое узнать о крысах и голу- бях, но оказался менее успешным при изучении поведения человека. Взгляды, согласно которым мозг рассматривается как устройство обработки ин- формации, характерны для представителей ► когнитивной психологии и просле- живаются по крайней мере до работ Уильяма Джеймса (1842-1910). Гельмгольц также настаивал на том, что восприятие связано с определенной формой подсозна- тельного логического вывода. В Соединенных Штатах такой подход к изучению познавательных процессов был в основном отвергнут из-за широкого распростра- нения бихевиористских взглядов, но на факультете прикладной психологии Кем- бриджского университета, возглавляемом Фредериком Бартлеттом (1886-1969), когнитивное моделирование активно поддерживалось. В книге Природа объясне- ния ([491], 1943) ученик и последователь Бартлетта Кеннет Крэйк привел весомые доводы в пользу допустимости применения таких “мыслительных” терминов, как “убеждения” и “цели”, доказав, что они являются не менее научными, чем, ска- жем, такие термины, применяемые в рассуждениях о газах, как “давление” и “тем- пература”, несмотря на то что речь в них идет о молекулах, которые сами не обла- дают этими характеристиками.
Крэйк обозначил следующие три этапа деятельности агента, основанного на знаниях: во-первых, действующий стимул должен быть преобразован во внутрен- нее представление, во-вторых, с этим представлением должны быть выполнены манипуляции с помощью познавательных процессов для выработки новых вну- тренних представлений и, в-третьих, они должны быть, в свою очередь, снова пре- образованы в действия. Он наглядно объяснил, почему такой проект является при- емлемым для любого агента. Если живой организм несет в своей голове “модель в уменьшенном масштабе” внешней реальности и своих возможных действий, то он способен проверять раз- личные альтернативы, делать заключение, какая из них является наилучшей для него, реагировать на будущие ситуации, прежде чем они возникнут, использовать знания о прошлых событиях, сталкиваясь с настоящим и будущим, и во всех отно- шениях реагировать на опасности, встречаясь с ними, гораздо полнее, безопаснее и более компетентно (Крейк [491], 1943). В 1945 году, после смерти Крэйка в результате аварии во время поездки на ве- лосипеде, его работа была продолжена Дональдом Броудбентом, чья книга Вос- приятие и коммуникация ([310], 1958) была одной из первых работ по моделиро- ванию психологических явлений как процессов обработки информации. Между тем в Соединенных Штатах работы в области компьютерного моделирования привели к созданию такого научного направления, как ► когнитивная наука (или когнитивистика). Зарождение этого направления исследований произошло на одном из семинаров в Массачусетсском технологическом институте в сентя- бре 1956 года. (Ниже будет показано, что это событие произошло всего лишь че- рез два месяца после проведения конференции, на которой “родился” сам искус- ственный интеллект.) На этом семинаре Джордж Миллер представил доклад Волшебное число “семь ”, Ноам Хомский прочитал доклад Три модели языка, а Аллен Ньюэлл и Гер- берт Саймон представили свою работу Машина теории логики. В этих трех ра- ботах, получивших широкое признание, было показано, как можно использовать компьютерные модели для решения задач в области психологии памяти, обработ- ки естественного языка и логического мышления соответственно. В настоящее время среди психологов находит широкое признание (хотя и не является универ- сальным) взгляд, что “любая теория познания должна быть подобна компьютер- ной программе” (Андерсон [47], 1980), т.е. должна описывать работу любой позна- вательной функции в терминах обработки информации. Исходя из целей данного обзора, мы не будем рассматривать область взаимо- действия человека с компьютером как раздел психологии. Дуг Энгельбарт, один из пионеров в этой области, отстаивал идею ► усиления интеллекта (УИ) вме- сто ИИ. Он считал, что компьютеры должны расширять человеческие способно- сти, а не автоматизировать решение задач человека. В 1968 году Энгельбарт в сво- ем выступлении на компьютерной конференции (позднее его окрестили как “Мать всех демонстраций”) впервые продемонстрировал такие невероятные на то время
новшества, как компьютерная мышь, оконный компьютерный интерфейс, гипер- текстовый документ и даже проведение видеоконференции с коллективной рабо- той над одним документом. Все это имело единственную цель — продемонстри- ровать, чего способны коллективно достичь занятые умственным трудом люди с помощью различных средств, отвечающих концепции усиления интеллекта. Сегодня мы склонны рассматривать концепции УИ и ИИ как две стороны од- ной медали, делая акцент в первом случае на контроле со стороны человека, а во втором — на интеллектуальном поведении со стороны машины. И то, и другое не- обходимо, чтобы машины были полезны людям. 1.2.6. Компьютерная техника • Как можно создать эффективный компьютер? Современный цифровой электронный компьютер был изобретен независимо и почти одновременно учеными трех стран, сражавшихся во второй мировой войне. Первым действующим компьютером был электромеханический компьютер “Хит Робинсон”,9 построенный в 1943 году командой Алана Тьюринга с единствен- ной целью: расшифровка перехваченных сообщений немецких войск Позднее в том же 1943 году эта же группа разработала Со1о88Н8 — мощную машину уни- версального назначения на основе электронных ламп.10 Первым работающим про- граммируемым компьютером был 2-3, изобретенный Конрадом Цузе в Германии в 1941 году. Цузе также изобрел способ представления чисел с плавающей точкой и первый язык программирования высокого уровня, Р1апка1кй1. Первый электрон- ный компьютер, АВС, был собран Джоном Атанасовым и его студентом Клиффор- дом Берри между 1940 и 1942 годами в Университете штата Айова. Работа Ата- насова не получила необходимой поддержки или признания в отличие от проекта ЕМАС — компьютера, созданного в рамках засекреченного военного проекта в Университете штата Пенсильвания командой разработчиков, включавшей Джона Мокли и Дж. Преспера Эккерта. Именно этот проект оказался самым влиятельным предтечей современных компьютеров. С тех пор появление нового поколения компьютерной техники всегда сопрово- ждалось увеличением скорости процессоров и емкости памяти с одновременным снижением стоимости — тенденция, зафиксированная в ►законе Мура. Соглас- но этому закону производительность компьютеров удваивается каждые 18 месяцев или около того. Так продолжалось до 2005 года, когда проблема отвода тепла вы- нудила производителей обратиться к увеличению количества ядер в процессорах 9 Сложная машина, названная в честь британского карикатуриста, изображавшего причудливые и нелепо сложные способы решения повседневных задач, например приго- товления тостов. 10 В послевоенный период Тьюринг хотел использовать эти компьютеры для исследо- ваний в области ИИ, например он создал схему первой шахматной программы (Тьюринг и др. [2236] 1953), но британское правительство запретило проведение этих исследований.
вместо повышения их тактовой частоты. В настоящее время ожидается, что даль- нейшее увеличение функциональности будет достигаться за счет интенсивного распараллеливания вычислительных процессов — здесь просматривается любо- пытная схожесть со свойствами мозга. Также можно отметить новые аппаратные разработки, основанные на идее, что, имея дело с неопределенным миром, нам не требуется числовая точность, обеспечиваемая форматом слова в 64 бита. Вполне достаточно будет всего 16 бит (как в формате ЬПоаИ 6) или даже 8 бит, что суще- ственно ускорит обработку. Мы лишь совсем недавно смогли увидеть компьютерное оборудование, специ- ально предназначенное для применения в области искусственного интеллекта. Это, например, графические процессоры (ГПУ), тензорные процессоры (ТПУ) и суперпроцессор параллельной обработки ХУаГег 8са1е Еп^те (АУ8Е). В период с 1960-х до 2012 года объем вычислительной мощности, используемой для обу- чения высокопроизводительных машин, соответствовал закону Мура. Начиная с 2012 года ситуация изменилась: с 2012 по 2018 год суммарные показатели вырос- ли в 300 000 раз (!), что соответствует их удваиванию каждые 100 дней или око- ло того (Амодей и Эрнандес [44], 2018). Модель машинного обучения, которая в 2014 году требовала на выполнение полного рабочего дня, в 2018 году выполня- лась всего за две минуты (Йинг и др. [2404], 2018). Хотя ► квантовые вычисле- ния пока еще не достигли уровня практического применения, этот подход обеща- ет гораздо большее ускорение для некоторых важных подклассов алгоритмов ИИ. Безусловно, вычислительные устройства существовали и до появления элек- тронного компьютера. Первые автоматизированные устройства, появившиеся еще в XVII столетии, уже упоминались в разделе 1.2.1. Первым программируе- мым устройством был ткацкий станок, изобретенный в 1805 году Жозефом Мари- ей Жаккардом (1752-1834), в котором для хранения инструкций по плетению узо- ров ткани использовались перфокарты. В середине XIX века Чарльз Бэббидж (1792-1871) разработал две вычислитель- ные машины, ни одну из которых он так и не завершил. Его дифференциальная ма- шина была предназначена для вычисления математических таблиц для инженер- ных и научных расчетов. Значительно позднее, уже в 1991 году, она все же была построена, а ее работоспособность наглядно продемонстрирована (Свейд [2160], 2000). Вторая, аналитическая, машина Бэббиджа была гораздо более амбициоз- ной: она включала адресацию памяти, сохраненные программы на перфорирован- ных картах Жаккарда, команды условных переходов. Это была первая машина, способная выполнять универсальные вычисления. Коллега Бэббиджа Ада Лавлейс, дочь поэта лорда Байрона, осознала потенци- ал этого устройства, описав его как “мыслящая или... рассуждающая машина”, способная рассуждать обо “всех предметах во Вселенной” (Лавлейс [1447], 1843). Она также предвидела возможность шумихи вокруг ИИ, написав, что “желательно защититься от возможности появления преувеличенных идей, которые могут воз- никнуть в отношении мощности аналитической машины”. К сожалению, машины Бэббиджа и идеи Ады Лавлейс были в значительной степени забыты.
Искусственный интеллект во многом обязан также тем направлениям компью- терных наук, которые связаны с созданием операционных систем, языков про- граммирования и прочих инструментальные средств, необходимых для написа- ния современных программ (и статей о них). Но эта область научной деятельности является также одной из тех, в которых искусственный интеллект в полной мере возмещает свои долги: работы в области искусственного интеллекта стали источ- ником многих идей, которые затем были воплощены в основных направлениях развития компьютерных наук, включая разделение времени, интерактивные интер- претаторы, персональные компьютеры с оконными интерфейсами и поддержкой позиционирующих устройств, применение эффективных сред разработки, созда- ние типов данных в виде связных списков, автоматическое управление памятью и ключевые концепции символического, функционального, декларативного и обьек- тно-ориентированного программирования. 1.2.7. Теория управления и кибернетика • Как артефакты могут работать под собственным управлением? Ктесибий из Александрии (ок. 250 до н.э.) построил первую самоуправляемую машину: водяные часы с регулятором, поддерживающим постоянную скорость по- тока. Это изобретение изменило определение того, что может делать артефакт. Ра- нее только живые существа могли изменять свое поведение в ответ на изменения в окружающей среде. Другие примеры саморегулирующихся систем управления с обратной связью включают регулятор парового двигателя, созданный Джеймсом Уаттом (1736-1819), и термостат, изобретенный Корнелисом Дреббелем (1572- 1633), который также изобрел подводную лодку. Джеймс Клерк Максвелл ([1518], 1868) положил начало математической теории систем управления. В послевоенный период центральной фигурой в разработке ► теории управ- ления, был Норберт Винер (1894-1964). Винер был блестящим математиком, ко- торый работал со многими учеными, включая Бертрана Рассела, прежде чем у него появился интерес к изучению биологических и механических систем управ- ления и их связи с познанием. Как и Крэйк (который также использовал системы управления в качестве психологических моделей), Винер и его коллеги Артуро Розенблют и Джулиан Бигелоу бросили вызов ортодоксальным бихевиористским взглядам ([1914], 1943). Они рассматривали целенаправленное поведение как об- условленное действием некого регуляторного механизма, пытающего минимизи- ровать “ошибку” — различие между текущим и целевым состояниями. В конце 1940-х годов Винер совместно с Уорреном Мак-Каллоком, Уолтером Питтсом и Джоном фон Нейманом организовал ряд влиятельных конференций, на которых рассматривались новые математические и вычислительные модели познания. Кни- га Винера ^Кибернетика ([2339], 1948) стала бестселлером и убедила широкие круги общественности в том, что мечта о создании машин, обладающих искус- ственным интеллектом, воплотилась в реальность.
Между тем в Великобритании У. Росс Эшби впервые применил подобные идеи (Эшби [82], 1940). Эшби, Алан Тьюринг, Грей Уолтер и другие сформиро- вали “Кабо С1иЬ” для “тех, кто разделял идеи Винера до появления книги Вине- ра”. В книге Дизайн для мозга ([83], 1948; [84], 1952) Эшби разрабатывал свою идею о том, что разум может быть создан при использовании ► гомеостатических устройств, содержащих соответствующие петли обратной связи, обеспечивающие достижение стабильного адаптивного поведения. Современная теория управления, особенно ее ветвь с названием стохастиче- ское оптимальное управление, ставит своей целью проектирование систем, кото- рые максимизируют ► целевую функцию во времени. Эго примерно соответству- ет представлению авторов настоящей книги об искусственном интеллекте как о проектировании систем, которые действуют оптимальным образом. Почему же в таком случае искусственный интеллект и теория управления рассматриваются как две разные научные области, особенно если учесть, какие тесные взаимоотноше- ния связывали их основателей? Ответ на этот вопрос состоит в том, что существу- ет также тесная связь между математическими методами, которые были знакомы участникам этих разработок, и соответствующими множествами задач, которые были охвачены в каждом из этих подходов к описанию мира. Дифференциальное и интегральное исчисление, а также матричная алгебра, являющиеся инструмен- тами теории управления, в наибольшей степени подходят для анализа систем, ко- торые могут быть описаны с помощью фиксированных множеств непрерывно из- меняющихся переменных, тогда как сама область исследований ИИ была отчасти основана как способ избежать этих ограничений математических средств. Такие инструменты, как логический вывод и вычисления, позволили исследователям ис- кусственного интеллекта успешно рассматривать некоторые проблемы, такие как понимание естественного языка, зрение и символическое планирование, полно- стью выходящие за рамки исследований, предпринимавшихся теоретиками в об- ласти теории управления. 1.2.8. Лингвистика • Каким образом язык связан с мышлением? В 1957 году Б.Ф. Скиннер опубликовал свою книгу Вербальное поведение. Это был всеобъемлющий, подробный отчет о результатах исследований по изучению языка, проведенных в рамках бихевиористского подхода, написанный наиболее выдающимся экспертом в этой области. Но весьма любопытно то, что рецензия к этой книге стала не менее известной, чем сама книга, и послужила причиной почти полного исчезновения интереса к бихевиоризму. Автором этой рецензии был Ноам Хомский, который сам только что опубликовал книгу Синтаксические структуры ([422], 1957) с изложением собственной теории. Хомский показал, что бихевиористская теория не позволяет понять истоки творческой деятельности, осуществляемой с помощью языка, — она не объясняет, почему ребенок способен
понимать и складывать предложения, которые он до сих пор никогда еще не слы- шал. Теория Хомского, основанная на синтаксических моделях, восходящих к ра- ботам древнеиндийского лингвиста Панини (примерно 350 год до н.э.), позволяла объяснить этот феномен и, в отличие от предыдущих теорий, оказалась достаточно формальной для того, чтобы ее можно было реализовать в виде программ. Таким образом, современная лингвистика и искусственный интеллект, которые “родились” примерно в одно и то же время и продолжают расти вместе, пересека- ются в гибридной области, называемой ► вычислительная лингвистика или об- работка естественного языка. Со временем было обнаружено, что проблема по- нимания языка является гораздо более сложной, чем это казалось в 1957 году. Для понимания языка требуется понимание предмета и контекста речи, а не только анализ структуры предложений. Это утверждение теперь кажется очевидным, но сам данный факт не был широко признан до 1960-х годов. Основная часть ранних работ в области представления знаний (науки о том, как преобразовать знания в такую форму, которой может оперировать компьютер) была привязана к языку и подпитывалась исследованиями в области лингвистики, которые, в свою очередь, основывались на результатах философского анализа языка, проводившегося в те- чение многих десятков лет. 1.3. История искусственного интеллекта Один из быстрых способов подвести итог вехам в истории ИИ состоит в том, чтобы перечислить некоторых лауреатов премии Тьюринга: Марвин Мински (1969) и Джон Мак-Карти (1971) — за формирование основ этого научного на- правления, построенных на представлении и рассуждении; Эдвард Фейгенбаум и Радж Редди (1994) — за разработку экспертных систем, кодирующих знания че- ловека для решения реальных проблем; Джуди Перл (2011) — за разработку веро- ятностных методов рассуждения, которые принципиальным образом решают про- блему неопределенности; и наконец, Йэшуа Бегио, Джеффри Хинтон и Янн ЛеКун (2019) — за разработку концепции “глубокого обучения” (многослойные нейрон- ные сети), критически важной составляющей современной вычислительной тех- нологии. В остальной части этого раздела каждая фаза истории ИИ описывается более подробно. 1.3.1. Начальный этап развития искусственного интеллекта (1943-1956) Первая работа, которую сейчас по общему признанию относят к искусствен- ному интеллекту, была выполнена Уорреном Мак-Каллоком и Уолтером Питтсом ([1537], 1943). Вдохновленные работой по математическому моделированию совет- ника Питтса Николаса Рашевского, они опирались на три источника: знание основ физиологии и функции нейронов мозга; формальный анализ логики высказываний,
взятый из работ Рассела и Уайтхеда, и теорию вычислений Тьюринга. Мак-Каллок и Питтс предложили модель из искусственных нейронов, в которой каждый ней- рон мог находиться в состоянии “включено” или “выключено” и переход в состоя- ние “включено” происходил в ответ на стимуляцию со стороны достаточного коли- чества соседних нейронов. Состояние нейрона рассматривалось как “фактически эквивалентное высказыванию, в котором предлагается адекватное количество сти- мулов”. В своей работе они показали, что любая вычислимая функция может быть вычислена с помощью некоторой сети из соединенных нейронов и что все логи- ческие связки (“И”, “ИЛИ”, “НЕ” и т.д.) могут быть реализованы с помощью про- стых сетевых структур. Кроме того, Мак-Каллок и Питтс выдвинули предположе- ние, что структурированные соответствующим образом сети способны к обучению. Дональд Хебб ([997], 1949) продемонстрировал простое правило обновления для модификации количества соединений между нейронами. Предложенное им прави- ло, называемое теперь правилом ► хеббовского обучения, продолжает служить ос- новой для моделей, широко используемых и в наши дни. Два студента Гарварда, Марвин Мински и Дин Эдмондс, в 1950 году созда- ли первый компьютер на основе нейронной сети. В этом компьютере, получив- шем название 8ИАКС, для моделирования сети из 40 нейронов использовалось 3000 электронных ламп плюс механизм автопилота с бомбардировщика В-24. Поз- же, в Принстоне, Мински изучал возможности выполнения универсальных вычис- лений в нейронных сетях. Когда он защищал диссертацию доктора философии, аттестационная комиссия выразила сомнение, может ли работа такого рода рассма- триваться как математическая, на что фон Нейман, по словам современников, воз- разил: “Сегодня — нет, но когда-то будет”. Существует большое количество примеров других ранних работ, которые мож- но охарактеризовать как относящиеся к искусственному интеллекту, в том чис- ле две программы игры в шашки, разработанные независимо одна от другой в 1952 году Кристофером Стрейчем в Университете Манчестера и Артуром Сэмю- элом в 1ВМ. Однако решающим оказалось мнение Алана Тьюринга. Начиная с 1947 года он читал лекции по этому вопросу в Лондонском математическом обще- стве и сформулировал убедительную программу исследований в статье Вычисли- тельные машины и интеллект [2235], опубликованной в 1950 году. В этой статье он описал тест Тьюринга, принципы машинного обучения, генетические алгорит- мы и обучение с подкреплением. Он рассмотрел многие возражения в отношении возможностей ИИ, как это описано в главе 27. Он также предположил, что создать ИИ на уровне человеческого интеллекта будет проще путем разработки алгорит- мов обучения, с последующим обучением машины, а не прямым программирова- нием ее интеллекта вручную. В последующих лекциях он предупреждал, что до- стижение этой цели может быть не самым лучшим решением для человечества. В 1955 году Джон Маккарти уговорил Марвина Мински, Клода Шеннона и Натаниэля Рочестера помочь ему собрать всех американских исследователей, проявляющих интерес к теории автоматов, нейронным сетям и исследованиям
интеллекта. В конечном итоге они организовали двухмесячный семинар в Дартму- те летом 1956 года. Всего на нем присутствовало 10 участников, включая Аллена Ньюэлла и Герберта Саймона из Института Карнеги,” Тренчарда Мура из Прин- стона, Артура Сэмюэла из компании 1ВМ, а также Рея Соломонова и Оливера Сел- фриджа из Массачусетсского технологического института. В приглашении гово- рилось следующее.11 12 Мы предлагаем провести двухмесячное исследование искусственного интеллек- та для 10 человек летом 1956 года в Дартмутском колледже в Ганновере, штат Нью-Гемпшир. Исследование будет проводиться на основании предположения, что каждый аспект обучения или любой другой функции интеллекта в принци- пе может быть описан настолько точно, что это позволит создать машину, спо- собную его имитировать. Будут предприняты попытки выяснить, как разраба- тывать машины, способные использовать язык, формулировать абстракции и концепции, решать различные задачи, в настоящее время доступные только лю- дям, а также улучшать самих себя. Мы считаем, что можно добиться значитель- ного прогресса в одном или нескольких из указанных направлений, если тщатель- но отобранная группа ученых будет совместно работать над этим в течение лета. Несмотря на этот оптимистический прогноз, дартмутский семинар не привел к появлению каких-либо новых крупных открытий. Ньюэл и Саймон представили, вероятно, наиболее зрелую работу, систему доказательства математических теорем под названием Ьо§1с ТЬеопз! (ЬТ). Саймон заявил: “Мы изобрели компьютерную программу, способную мыслить не численно, и тем самым решили освященную веками проблему разума и тела”.13 Вскоре после семинара эта программа смогла доказать большинство теорем из второй главы книги Принципы математики Рас- села и Уайтхеда ([2331], 1910). Как говорили, Рассел был в восторге, когда ему сказали, что для одной из теорем ЬТ смогла найти доказательство, которое оказа- лось короче, чем приведенное в его книге. Однако редактора журнала Лита! о/ ЗутЬоИс Ьо&с оказались менее впечатленными и отклонили статью, авторами ко- торой были указаны Ньюэлл, Саймон и программа Ьо§1с ТЬеопзГ 11 Теперь это учебное заведение называется “Университет Карнеги-Меллона” (Сагпе- §1е-Ме11оп Ьтуегзйу — СМЬ). 12 Это было первое официальное использование принадлежащего Маккарти термина “искусственный интеллект”. Может быть, вариант “вычислительная рациональность” был бы более точным и менее пугающим, но “ИИ” с тех пор прочно вошел в обиход. На 50-ле- тии Дартмутской конференции Маккарти заявил, что он избегал терминов “компьютер” и “вычислительный” в знак уважения к Норберту Винеру, который в то время пропаганди- ровал аналоговые кибернетические устройства, а не цифровые компьютеры. 13 В процессе создания программы ЬТ Ньюэлл и Саймон разработали также язык об- работки списков 1РЬ. У них не было компилятора, поэтому ученые переводили програм- мы со своего языка в машинный код вручную. Чтобы избежать ошибок, они работали параллельно, называя друг другу двоичные числа после записи каждой команды, чтобы убедиться в том, что они совпадают.
1.3.2. Ранний энтузиазм, большие ожидания (1952-1969) Интеллектуальный истеблишмент в 1950-х годах в своем большинстве продол- жал считать, что “ни одна машина не сможет выполнить действие X”. (Длинный список таких X, собранный Тьюрингом, приведен в главе 27.) Исследователи в области искусственного интеллекта, естественно, отвечали на это, демонстрируя способность машин решать одну задачу X за другой. Чаще всего они обращались к задачам, которые принято считать свидетельством интеллектуальности челове- ка, — играм, головоломкам, математике, тестам 1(). Позднее Джон Маккарти на- звал этот период эпохой “Смотри, мама, что я умею!” За первой успешной разработкой Ньюэлла и Саймона, программой ГТ, после- довало создание программы общего решателя задач (Оепега! РгоЫеш 8оКег — 6Р8). В отличие от программы Ьо^с ТЬеопз!, эта программа с самого начала была предназначена для моделирования процедуры решения задач человеком. Как ока- залось, в пределах того ограниченного класса головоломок, которые была способ- на решать эта программа, порядок, в котором она рассматривала подцели и воз- можные действия, был аналогичен тому подходу, который применяется людьми для решения таких же проблем. Поэтому программа 6Р8 была, по-видимому, пер- вой программой, в которой был воплощен подход к “организации мышления по такому же принципу, как и у человека”. Результаты успешного применения 6Р8 и последующих программ в качестве модели познания позволили сформулиро- вать знаменитую гипотезу ► физической символической системы, в которой утверждается, что существует “физическая символическая система, которая име- ет необходимые и достаточные средства для интеллектуальных действий общего вида”. Под этим подразумевается, что любая система, проявляющая интеллект (че- ловек или машина), должна действовать по принципу манипулирования структу- рами данных, состоящими из символов. Ниже будет показано, что эта гипотеза во многих отношениях оказалась уязвимой для критики. В компании 1ВМ Натаниэль Рочестер и его коллеги создают некоторые из пер- вых ИИ-программ. Герберт Гелернтер ([828], 1959) создал программу Оеотейу ТЬеогет Ргоуег, которая была в состоянии доказать такие геометрические теоре- мы, которые многие студенты-математики сочли бы достаточно сложными. Эта работа стала предшественницей современных систем доказательства математиче- ских теорем. Из всех исследовательских работ, проделанных за этот период, возможно, са- мой влиятельной в долгосрочной перспективе стала разработка Артура Сэмюэла по игре в шашки. Благодаря использованию методов, которые мы сейчас называем обучением с подкреплением (см. главу 22), программы Сэмюэла в конечном итоге научились играть на уровне хорошо подготовленного любителя. Тем самым Сэмю- эл опроверг утверждение, что компьютеры способны выполнять только то, чему их учили: одна из его программ быстро научилась играть лучше, чем ее создатель. Работа этой программы была показана на телевидении в 1956 году и произвела
очень сильное впечатление на зрителей. Как и Тьюринг, Сэмюэл с трудом находил машинное время. Работая по ночам, он использовал компьютеры, которые все еще находились на испытательной площадке производственного предприятия компа- нии 1ВМ. Программа Сэмюэла стала предшественницей более поздних систем, та- ких как ТВ-Оаммон (Тезауро [2192], 1992), прочно утвердившейся среди лучших игроков в нарды в мире, и АьрнаОо (Сильвер и др. [2063], 2016), потрясшей мир тем, что победила человека, чемпиона мира по игре в го (см. главу 5). В 1958 году Джон Маккарти внес два важных вклада в развитие искусственно- го интеллекта. В документе М1Т А1 ЬаЬ Мето Ко. 1 он привел определение ново- го языка высокого уровня кЬЬр, которому суждено было стать доминирующим языком программирования для искусственного интеллекта в ближайшие 30 лет. В статье под названием Программы со здравым смыслом ([1529], 1958) он вы- двинул концептуальное предложение о разработке систем искусственного интел- лекта, основанных на знаниях и рассуждении. В этой статье он описал гипотети- ческую программу А<1у1се Такег, способную воплощать общие знания о мире, а затем использовать их для выработки плана действий. Концепция была проиллю- стрирована с помощью простых логических аксиом, которых было достаточно для разработки плана проезда в аэропорт. Также программа была задумана таким об- разом, чтобы принимать новые аксиомы в процессе работы, что позволяло ей до- стигать нужного уровня компетентности в других областях без перепрограммиро- вания. Следовательно, в программе АсМсе Такег были воплощены центральные принципы представления знаний и проведения рассуждений: необходимо иметь формальное, детализированное представление о мире и его функционировании и уметь манипулировать этим представлением с помощью дедуктивных процедур. Данная статья оказала большое влияние на всю область ИИ, оставаясь вполне ак- туальной и сегодня. Все тот же 1958 год также стал годом, когда Марвин Мински перешел в Масса- чусетсский технологический институт (МТИ). Но успешное его сотрудничество с Маккарти продолжалось недолго. Маккарти делал акцент на способах представле- ния и проведении рассуждений в формальной логике, тогда как Мински в большей степени интересовался тем, как заставить программы работать, и в конечном итоге у него сформировалось отрицательное отношение к логике. В 1963 году Маккар- ти основал лабораторию искусственного интеллекта в Стандфордском универси- тете. Разработанный им план использования логики для создания окончательной версии программы АсМсе Такег выполнялся быстрее, чем было задумано, благо- даря открытию Дж. А. Робинсоном метода резолюции (полного алгоритма доказа- тельства теорем для логики первого порядка; см. главу 9). Работы, выполненные в Стандфордском университете, подчеркнули важность применения методов общего назначения для проведения логических рассуждений. В число логических прило- жений вошли системы формирования ответов на вопросы и планирования Кордел- ла Грина ([920], 1969), а также робототехнический проект 8Ьакеу, разрабатывав- шийся в Стандфордском научно-исследовательском институте (81апГог<1 КезеагсЬ
1п8ЙШ1е — 8К1). Последний проект, который подробно рассматривается в главе 26, впервые продемонстрировал полную интеграцию логических рассуждений и фи- зической активности. В МТИ Мински руководил работой ряда студентов, выбравших для себя не- большие задачи, для решения которых, как тогда казалось, требовалась интеллек- туальность. Эти ограниченные проблемные области получили название ► микро- миры. Программа 8а1ЫТ Джеймса Слэгла ([2083], 1963) была способна решать задачи интегрирования в закрытом исчислении, типичные для первых курсов кол- леджей. Программа Анаьооу Тома Эванса ([707], 1968) решала задачи выявления геометрических аналогий, используемые в тестах !(}. Программа 8тшемг Дэниэ- ла Боброва ([237], 1967) решала изложенные в виде рассказа алгебраические зада- чи, подобные приведенной ниже. Если количество заказов, полученных Томом, вдвое превышает квадратный ко- рень из 20% опубликованных им рекламных объявлений, а количество этих ре- кламных объявлений равно 45, то каково количество заказов, полученных Томом? Самым известным примером микромира был >мир блоков, состоящий из множества цельных блоков, размещенных на поверхности стола (или, чаще, ими- тации стола), как показано на рис. 1.3. Типичной задачей в этом мире является из- менение расположения блоков определенным образом с использованием манипу- лятора-робота, который в каждый момент может захватывать только один блок. Мир блоков стал основой для проекта системы технического зрения Дэвида Хаф- фмена ([1091], 1971), работы по изучению зрения и удовлетворения ограничений Дэвида Уолтса ([2291], 1975), теории обучения Патрика Уинстона ([2362], 1970), программы понимания естественного языка Тэрри Винограда ([2361], 1972) и пла- нировщика в мире блоков (Скотта Фалмана [709], 1974). Рис. 1.3. Сцена из мира блоков. Программа 8НКПШ Тэрри Винограда [2361] толь- ко что завершила выполнение команды “Найти блок, более высокий по сравнению с тем, который находится в манипуляторе, и поместить его в ящик”
Активно продвигались также исследования, основанные на ранних работах по созданию нейронных сетей Мак-Каллока и Питтса. В работе Шмуэля Винограда и Коуэна ([2360], 1963) было показано, как большое количество элементов в сво- ей совокупности может представить отдельную концепцию с соответствующим увеличением надежности и степени распараллеливания. Методы обучения Хебба были усовершенствованы в работах Берни Видроу ([2335], 1960), ([2334], 1962), который называл свои сети адалинами, а также Френка Розенблатта ([1912], 1962), создателя перцептронов. Розенблатт доказал теорему сходимости пер- цептрона, которая подтверждает, что предложенный им алгоритм обучения по- зволяет корректировать количество соединений перцептрона в соответствии с лю- быми входными данными при условии, что такое соответствие существует. 1.3.3. Столкновение с реальностью (1966-1973) С самого начала исследователи ИИ не стеснялись делать прогнозы в отноше- нии своих будущих успехов. Так, в свое время часто цитировалось приведенное ниже предсказание Герберта Саймона, опубликованное им в 1957 году. Я не ставлю перед собой задачу удивить или шокировать вас, но проще всего я могу подвести итог, сказав, что теперь мы живем в мире машин, которые думают, учатся и создают. Более того, их способность выполнять эти действия будет продолжать бы- стро расти до тех пор, пока — в обозримом будущем — круг проблем, с которыми они смогут справиться, можно будет сопоставить с кругом проблем, в которых до сих пор был нужен человеческий интеллект. Такое выражение, как “обозримое будущее”, довольно расплывчато, но Саймон сделал также более конкретные прогнозы, что через десять лет компьютер станет чемпионом мира по шахматам и что машиной будет доказана важная математиче- ская теорема. Эти предсказания сбылись (или почти сбылись), но не через десять, а через сорок лет. Излишняя самоуверенность Саймона была обусловлена тем, что первые системы искусственного интеллекта демонстрировали многообещаю- щую производительность, хотя и на простых примерах. Однако эти ранние систе- мы почти всегда терпели поражение, сталкиваясь с более трудными проблемами. У этих неудач были две основные причины. Первая заключалась в том, что многие ранние системы ИИ были основаны главным образом на “информирован- ном самоанализе” относительно того, как люди решают задачу, а не на тщательном анализе самой задачи и выяснении, что означает решить ее и что должен делать алгоритм, чтобы с большой вероятностью привести к такому решению. Вторая причина неудач — отсутствие правильной оценки сложности для ма- шинной обработки многих задач, которые пытались решить с помощью ИИ. Боль- шинство ранних систем решения проблем работали по методу проверки различ- ных комбинаций возможных шагов, пока решение не будет найдено. Сначала эта стратегия успешно работала, поскольку микромиры содержали очень мало объек- тов, а следовательно, количество возможных действий было невелико и к решению
приводили относительно короткие их последовательности. До того, как была раз- работана теория вычислительной сложности, господствовало представление, что для больших проблем “масштабирование вверх” было просто вопросом повыше- ния быстродействия оборудования и увеличения объема доступной памяти. На- пример, оптимизм, сопровождавший разработку систем доказательства теорем, очень быстро улетучился, когда исследователям не удалось добиться доказатель- ства теорем, включающих более нескольких десятков фактов. ^Тот факт, что программа может найти решение в принципе, вовсе не означает, что эта программа уже содержит все механизмы, необходимые для его поиска на практике. Иллюзия неограниченности вычислительной мощности касалась не только программ решения задач. Ранние эксперименты в области ► машинной эволю- ции (теперь она называется генетическое программирование) строились на, несомненно, правильном убеждении, что внесение соответствующего ряда не- больших изменений в машинный код программы позволит создать эффективную программу решения любой конкретной задачи. Общая идея состояла в том, что необходимо проверять случайные мутации (изменения в коде) с отбором для со- хранения мутаций, которые кажутся полезными. Несмотря на тысячи часов потра- ченного процессорного времени, почти никаких признаков прогресса не было про- демонстрировано. Неспособность справиться с “комбинаторным взрывом” стала одним из ос- новных критических замечаний в адрес ИИ, содержащихся в отчете Лайтхилла ([1412], 1973), что послужило основанием для британского правительства принять решение о прекращении поддержки исследований в области искусственного ин- теллекта во всех университетах, кроме двух. (Устная традиция рисует в отноше- нии этого решения несколько иную и более красочную картину, с политическими амбициями и личной неприязнью, описание которых выходит за рамки данного курса.) Третий вид затруднений возник в связи с некоторыми фундаментальными огра- ничениями базовых структур, использовавшихся в процедурах выработки ин- теллектуального поведения. Например, Мински и Паперт в книге Перцептроны ([1585], 1969) доказали, что перцептроны (простая форма нейронной сети) мо- гут продемонстрировать способность изучить все, что возможно представить с их помощью, но, к сожалению, они позволяют представить лишь очень немногое. В частности, перцептрон с двумя входами не может быть обучен распознавать си- туацию, когда на два его входа поданы разные сигналы. Хотя полученные ими ре- зультаты не применимы к более сложным, многослойным сетям, финансирование исследований в области нейронных сетей вскоре сократилось почти до нуля. Как это ни странно, но те новые алгоритмы обучения путем обратного распростране- ния для многослойных сетей, которые стали причиной возрождения необычайного интереса к исследованиям в области нейронных сетей в конце 1980-х годов, фак- тически впервые были открыты (но в другом контексте) уже в начале 1960-х годов (Келли [1214], 1960; Брайсон [334], 1962).
1.3.4. Экспертные системы (1969-1986) Основная методология решения проблем, выработанная в течение первого де- сятилетия исследований в области ИИ, заключалась в использовании поискового механизма общего назначения, посредством которого предпринимались попытки связать воедино элементарные рассуждения так, чтобы отыскать полные решения. Такие подходы получили название ► слабые методы, поскольку, даже будучи до- статочно общими, они не масштабируются до уровня больших или сложных про- блем. Альтернативой слабых методов является использование более содержатель- ных, предметно-ориентированных знаний, что позволяет строить более длинные цепочки рассуждений и дает возможность проще справиться с теми проблемными ситуациями, которые обычно возникают в специализированных областях знаний. Можно сказать, что для решения сложной проблемы требуется уже почти знать полный ответ. Одним из первых примеров реализации такого подхода была программа Оешкаь ([339], 1969), разработанная в Стандфордском университете группой ученых, в которую вошли Эд Фейгенбаум (бывший студент Герберта Саймона), Брюс Бьюкенен (философ, который сменил специальность и стал заниматься ком- пьютерными науками) и Джошуа Ледерберг (лауреат Нобелевской премии в обла- сти генетики). Эта группа занималась решением проблемы определения структу- ры молекул на основе информации, полученной от масс-спектрометра Вход этой программы состоял из химической формулы соединения (например, С6Н13МО2) и спектра масс, позволяющего определять массы различных фрагментов молекулы, который формировался при бомбардировке молекулы потоком электронов. Напри- мер, спектр масс может содержать пик в точке т= 15, соответствующий массе ме- тилового фрагмента (СН3). Первая, простейшая версия этой программы предусматривала генерацию всех возможных структур, совместимых с данной формулой, после чего предсказыва- ла, какой спектр масс должен наблюдаться для каждой из этих структур, сравнивая его с фактическим спектром. Вполне можно ожидать, что такая задача примени- тельно к молекулам более крупных размеров становится практически неразреши- мой. Поэтому разработчики программы Пекокае проконсультировались с химика- ми-аналитиками и пришли к выводу, что следует попытаться организовать работу по принципу поиска широко известных картин расположения пиков в спектре, ко- торые указывают на наличие общих подструктур в молекуле. Например, для рас- познавания кетоновых подгрупп (>С=О) с атомной массой 28 имеем следующее. ИМ— масса всей молекулы, и есть два пика в х, и х2, таких, что (а) X] + х2 = М + 28; (Ь) Х| - 28 высокий пик; (с) х2 - 28 высокий пик; и (ф по крайней мере один из х, и х2 высокий Шеп это подгруппа кетона. Выяснение того, что молекула содержит определенную подструктуру, чрезвы- чайно сокращает число возможных кандидатов. По мнению авторов, программа
□екокаь стала мощным инструментом, поскольку в нее встроены соответству- ющие знания, полученные средствами масс-спектроскопии, но не в форме базо- вых принципов, а в виде эффективных “кулинарных рецептов” (Фейгенбаум и др. [716], 1971). Значение программы Вешкаь определялось тем, что это была пер- вая успешная система с интенсивным использованием знаний: ее анализ был по- строен на использовании большого количества специальных правил. В 1971 году Фейгенбаум и его коллеги в Станфорде приступили к новому проекту эвристиче- ского программирования с целью исследования, в какой степени их новая методо- логия построения ► экспертных систем может применяться в других областях. Следующей крупной попыткой стала разработка системы МУСШ для диагно- стики инфекции в крови. Исходя из примерно 450 правил, программа Муспч ока- залась способной решать поставленную задачу на уровне некоторых экспертов и заметно лучше молодых врачей. Но у нее было два больших отличия от системы Веквкаь. Во-первых, в отличие от правил Оекокаь, не существует общей теоре- тической модели, из которой можно было бы вывести правила для МУС1Ы. Их мож- но было выделить только из результатов обширного опроса экспертов. Во-вторых, правила должны были отражать неопределенность, связанную с медицинскими знаниями. В Мусгы были включены подпрограммы вычисления неопределенно- сти, называемой к факторами уверенности (см. главу 13), которые, как казалось на то время, хорошо согласуются с тем, как врачи оценивали влияние отдельных показателей на окончательный диагноз. Первая успешная коммерческая экспертная система, К.1, была развернута в ком- пании ВЕС (Оц>ка1 ЕцшртеШ Согрогабоп) ([ 1546], 1982). Эта программа помогала составлять конфигурации для выполнения заказов на новые компьютерные систе- мы. К 1986 году она обеспечивала компании ВЕС экономию примерно 40 милли- онов долларов в год. К 1988 году группой искусственного интеллекта компании ВЕС было развернуто 40 экспертных систем, а в дальнейшем предусматривалось развернуть еще больше. В компании ВиРоп! применялось 100 систем, а в разра- ботке находилось еще 500. Почти в каждой крупной корпорации США была созда- на собственная группа искусственного интеллекта и экспертные системы либо ис- пользовались, либо исследовались. Важность знания предметной области была также совершенно очевидна в обла- сти понимания естественного языка. Несмотря на успех системы 8нкош Виногра- да, ее методы нельзя было распространить на более общие задачи. Для решения таких проблем, как разрешение неоднозначности, в ней использовались совсем простые правила, которых, тем не менее, было вполне достаточно для крошечных пределов мира блоков. Ряд исследователей, в том числе Юджин Чарняк в МТИ и Роджер Шенк в Йель- ском университете, выдвинули предположение, что уверенное понимание язы- ка потребует общих знаний о мире и некоторого общего метода использования этих знаний. (Шенк пошел дальше, заявив, что “Синтаксиса не существует”, и это огорчило многих лингвистов, но послужило началом полезного обсуждения.)
Шенк и его студенты создали серию программ (1978-1981), предназначенных для решения одной и той же задачи — понимания естественного языка. Однако боль- ше внимания при этом уделялось не собственно языку, а проблемам представления знаний и рассуждений, необходимых для его понимания. Быстро возрастающее количество коммерческих приложений, предназначен- ных для решения практических задач, потребовало разработки широкого диапазо- на инструментальных средств представления знаний и рассуждений. Одни из них были основаны на логике, например язык Рго1о§, ставший популярным в Европе и Японии, или пакет Рьа>пчек в США. В других, следуя идее Мински о ► фреймах ([1582], 1975), был принят более структурированный подход, предполагающий сбор фактов о конкретных типах объектов и событий, с последующим упорядо- чиванием типов в большую таксономическую иерархию, аналогичную биологи- ческой таксономии. В 1981 году правительство Японии объявило о развертывании проекта “Пя- тое поколение” — 10-летнего плана по созданию интеллектуальных компьютеров с массовым параллелизмом, работающих под управлением языка Рго1о§. Бюджет проекта предполагался в размере более 1,3 млрд, долларов по сегодняшнему кур- су. В ответ Соединенные Штаты создали корпорацию по микроэлектронике и ком- пьютерным технологиям (МСС) — консорциум, призванный обеспечить стране национальную конкурентоспособность. В обоих случаях область ИИ была частью широкого спектра направлений, включавшего разработку микросхем и исследова- ние интерфейса “человек-машина”. В Великобритании Олви в своем отчете по- требовал восстановления финансирования тех направлений, финансирование ко- торых было прекращено на основании отчета Лайтхилла. Однако ни один из этих проектов так и не достиг своих амбициозных целей как с точки зрения новых воз- можностей ИИ, так и с точки зрения экономического эффекта. В целом в индустрии искусственного интеллекта наблюдался бурный рост, на- чиная с нескольких миллионов долларов в 1980 году и до миллиарда долларов в 1988 году. Были созданы сотни компаний, разрабатывавших экспертные системы, системы технического видения, роботов, а также специализированное программ- ное обеспечение и аппаратные средства для этих целей. Однако вскоре после этого наступил период, получивший название “зима ис- кусственного интеллекта”, когда многие вновь созданные компании сильно по- страдали, поскольку не сумели выполнить свои заманчивые обещания. Оказалось, что создание и поддержка экспертных систем в сложных предметных областях — задача очень сложная, отчасти потому, что используемые в этих системах методы рассуждения отказывали в условиях неопределенности, а отчасти потому, что эти системы были неспособны извлекать уроки из накопленного опыта. 1.3.5. Возвращение к нейронным сетям (1986-настоящее время) К середине 1980-х годов по меньшей мере четыре разные группы исследовате- лей независимо заново открыли алгоритм обучения путем обратного распростра-
нения, впервые предложенный в начале 1960-х. Этот алгоритм был применен для решения многих проблем обучения в компьютерных науках и психологии, а после публикации результатов его использования в сборнике статей Распределенная па- раллельная обработка ([1933], 1986) привлек всеобщее внимание. Эти так называемые ► коннекционистские (основанные на соединениях) мо- дели рассматривались многими как непосредственно конкурирующие и с симво- лическими моделями, продвигаемыми Ньюэллом и Саймоном, и с логицистским подходом, предложенным Маккарти и др. Кажется вполне очевидным, что на ка- ком-то уровне мышления люди манипулируют символами. И действительно, ан- трополог Терренс Дикон в своей книге под названием Символические виды ([563], 1997) указал, что это определяющая характеристика человека. В противовес это- му Джефф Хинтон, ведущий деятель в возрождении нейронных сетей в 1980- и 2010-х годах, назвал символы “светоносным эфиром искусственного интеллек- та” — метафорически ссылаясь на несуществующую физическую среду, по кото- рой якобы распространяются электромагнитные волны в представлении физиков начала XIX века. Безусловно, многие концепции, которые можно выделить в язы- ке, при ближайшем рассмотрении не обладают теми или иными логически опре- деленными необходимыми и достаточными состояниями, которые первые иссле- дователи ИИ предполагали сформулировать в аксиоматической форме. Возможно, коннекционистские модели формируют внутренние концепции более гибким и не- точным образом, что лучше подходят для беспорядочности реального мира. Они также способны учиться на примерах, сравнивая прогнозируемое ими значение выходного сигнала с истинным значением в решаемой задаче, и изменять свои па- раметры так, чтобы уменьшить различие, таким образом делая более вероятным получение лучших решений для будущих примеров. 1.3.6. Вероятностные рассуждения и машинное обучение (1987-настоящее время) Хрупкость создаваемых экспертных систем привела к использованию нового, более широкого научного подхода, включающего вероятности вместо чистой буле- вой логики, машинное обучение вместо ручного кодирования и эксперименталь- ные результаты вместо философских рассуждений.14 Теперь обычной практикой стало использование уже существующих теорий вместо предложения совершенно новых, построение вновь выдвигаемых положений на строгих теоремах или твер- дой экспериментальной методологии, а не на интуиции, и демонстрация приложе- ний, актуальных для реального мира, вместо игрушечных примеров. м Некоторые характеризуют это изменение как победу “чистюль” — тех, кто считает, что теории искусственного интеллекта должны основываться на математической строго- сти, — над “неряхами” — теми, кто предпочел бы опробовать множество идей, написать несколько программ, а затем оценить то, что кажется работающим. Оба подхода важны. Сдвиг в сторону математической точности подразумевает, что область исследований до- стигла уровня стабильности и зрелости. Нынешний акцент на глубоком обучении может представлять собой возрождение значимости экспериментаторов.
Совместно используемые эталонные наборы задач стали нормой для демон- страции достигнутого прогресса. Среди них — репозиторий 11С 1гу1пе для наборов данных машинного обучения, набор ЫегпаНопа! Р1апп1п§ СотреШюп для провер- ки алгоритмов планирования, корпус 1лЬп8реесЬ для задач распознавания речи, набор данных МЫ18Т для распознавания рукописных цифр, наборы 1та§еКе1 и СОСО для распознавания изображений объектов, набор 8С?иАО для ответов на вопросы на естественном языке, комплект \УМТ для машинного перевода и на- бор ЫегпаНопа! 8АТ СотреННопз для проверки выполнимости булевых формул. В свое время область ИИ появилась отчасти как протест против ограничений в таких уже существовавших областях исследований, как теория управления и ста- тистика. Но в этот период искусственный интеллект включил в себя и положитель- ные результаты из этих областей. Вот что сказал Дэвид Макаллестер ([ 1523], 1998). В ранний период развития ИИ казалось вполне вероятным, что новые формы сим- волических вычислений, например фреймы и семантические сети, сделают основ- ную часть классической теории устаревшей. Это привело к определенной форме са- моизоляции, отчего искусственный интеллект в значительной степени отделился от остальной части компьютерных наук. В настоящее время этот изоляционизм преодо- лен. Появилось признание того, что машинное обучение не следует отделять от тео- рии информации, что проведение рассуждений в условиях неопределенности нельзя изолировать от стохастического моделирования, что поиск не следует рассматривать отдельно от классической оптимизации и управления и что автоматические рассуж- дения нельзя отделять от формальных методов и статистического анализа. Эту тенденцию особенно хорошо иллюстрирует область распознавания речи. В 1970-е годы было опробовано большое разнообразие различных архитектур и подходов. Многие из них оказались узко специализированными, надуманными и работали только на нескольких специально отобранных примерах. В 1980-е годы доминирующие позиции в этой области заняли подходы, основанные на использо- вании ► скрытых марковских моделей (ЬПсИеп Магкоу Моде1 — НММ). Реша- ющую роль здесь сыграли две их особенности. Во-первых, эти модели основаны на строгой математической теории, и это позволило исследователям речи опереть- ся на математические результаты, накопленные в других областях за несколько де- сятилетий. Во-вторых, они генерируются в процессе обучения программ на круп- ном массиве реальных речевых данных. Это гарантирует достижение надежных показателей производительности, а в строгих слепых испытаниях модели НММ неизменно улучшают свои показатели. В результате технологии обработки речи и связанная с ними область распознавания рукописных символов смогли совер- шить переход к широко распространенным промышленным и массовым потреби- тельским приложениям. Обратите внимание, что прежде не было никаких научных утверждений о том, что люди используют НММ для распознавания речи. Эти мо- дели лишь предоставляли математической основу для понимания и решения задач. Однако в разделе 1.3.8 будет показано, что методы глубокого обучения способны в скором времени нарушить эту идиллическую картину.
Год 1988 стал важным годом в отношении установления связей между ИИ и другими научными областями, в том числе статистикой, исследованием опера- ции, теорией принятия решений и теорией управления, методами изучения байе- совских сетей и связанных с ними моделей на основе данных. Книга Джуды Пер- ла Вероятностные рассуждения в интеллектуальных системах ([1755], 1988) послужила толчком к признанию важности теории вероятностей и теории при- нятия решений для области искусственного интеллекта. Перл разработал новый подход — модель ► байесовских сетей, обеспечивающей строгий и эффектив- ный формальный подход к представлению нечетко определенных знаний, а так- же практический алгоритм для вероятностных рассуждений. Эти темы подробно рассматриваются в главах 12-16 вместе с результатами более поздних разработок, позволивших существенно увеличить выразительную мощь вероятностных мето- дов. В главе 20 описываются методы обучения байесовских сетей и связанные с ними модели данных. Вторым важным итогом 1988 года стала работа Рича Саттона, связавшая метод обучения с подкреплением — этот подход уже использовался в 1950-х годах Ар- туром Сэмюэлом в его программе игры в шашки — с марковским процессом при- нятия решений (Магкоу Оес1зюп Ргосеззез — МОР), разработанным ранее в рам- ках теории исследования операций. Последовал целый поток работ по связыванию исследований по планированию ИИ с МОР. С другой стороны, методы обучения с подкреплением нашли применение в области робототехники и управления процес- сами, одновременно получив глубокое теоретическое обоснование. Одним из последствий переоценки в области ИИ значения данных, статисти- ческого моделирования, оптимизации и машинного обучения стало постепенное воссоединение с такими подобластями, как компьютерное зрение, робототехника, распознавание речи, многоагентные системы и обработка естественного языка, ко- торые к этому времени уже успели несколько отдалиться от основного ядра обла- сти искусственного интеллекта. Процесс реинтеграции дал существенное преиму- щество как в отношении приложений — например, развертывание новых работ по практическому созданию роботов значительно возросло за этот период, — так и в отношении углубления теоретического понимании основных проблем ИИ. 1.3.7. Большие данные (2001-настоящее время) Замечательные достижения в области увеличения вычислительной мощности и создание Всемирной паутины, \УогМ \УИе \УеЬ, способствовали созданию очень больших наборов данных — явление, сейчас известное, как ► большие данные. Эти наборы данных включают в себя триллионы слов текста, миллиарды изобра- жений и миллиарды часов записей речи и видео, а также колоссальное количество геномных данных, сведений по отслеживанию транспортных средств, информа- ции о посещениях веб-страниц, данных социальных сетей и т.д. Все это требовало разработки обучающих алгоритмов, специально предна- значенных для извлечения преимуществ, даваемых очень большими наборами
данных. Очень часто подавляющее большинство экземпляров данных в таких на- борах никак не помечены. Например, в своей известной работе по многозначно- сти слов Яровский ([2400], 1995) указывает, что отдельные вхождения слов, таких как “лист”, обычно никак не маркированы, чтобы указать, относятся они к флоре, книгоиздательству или материаловедению. Однако при достаточно больших на- борах данных подходящие алгоритмы обучения позволяют достичь правильных решений в 96% процентах случаев, исходя из того, какой смысл имеет предложе- ние в целом. Более того, Банко и Брилл ([122], 2001) утверждают, что улучшение в производительности, полученное от увеличения набора данных в размере на два или три порядка по величине перевешивает какие-либо улучшения, которые могут быть получены в результате тонкой настройки алгоритма. Аналогичный феномен, кажется, имеет место в некоторых задачах компьютер- ного зрения, таких как заполнение в фотографиях пустых мест, вызванных либо случайными повреждениями, либо такими действиями, как “удаление” бывших друзей. Хейс и Эфрос ([993], 2007) разработали более умный способ достичь этой цели посредством наложения пикселей из аналогичных изображений. Они обна- ружили, что этот метод плохо работал на базе данных из нескольких тысяч изо- бражений, но позволял достичь нужного качества при работе с миллионами изо- бражений. Вскоре после появления в базе данных 1та@еНе1 десятков миллионов изображений в области компьютерного зрения произошла настоящая революция (Денг и др. [602], 2009). Доступность больших данных и переход к машинному обучению способствова- ли восстановлению коммерческого интереса к области искусственного интеллекта (Хавенстейн [986], 2005; Галеви и др. [950], 2009). Большие данные стали реша- ющим фактором, когда в 2011 году система 5Уа18оп компании 1ВМ добилась побе- ды на людьми — чемпионами викторины Зеорагду! Это событие оказало большое влияние на восприятие искусственного интеллекта широкой публикой. 1.3.8. Глубокое обучение (2011 -настоящее время) Термин ► глубокое обучение относится к машинному обучению с использо- ванием нескольких слоев из простых, регулируемых вычислительных элементов. Эксперименты с такими сетями проводились еще в 1970-х годах, и в форме свер- точных нейронных сетей они имели некоторый успех в распознавании рукопис- ных цифр в 1990-х годах (ЛеКун и др. [1373], 1995). Однако только в 2011 году методы глубокого обучения действительно получили признание. Сначала это про- изошло в области распознавания речи, а затем и в области распознавания визуаль- ных объектов. В 2012 году на конкурсе 1та§еЫе1, где требуется классифицировать предлага- емые изображения в одну из тысяч категорий (броненосцы, книжная полка, што- пор и т.д.), система глубокого обучения, созданная группой Джеффри Хинтона в Университете в Торонто (Крижевски и др. [1313], 2013) продемонстрировала
значительное улучшение в сравнении с предыдущими системами, построенными главным образом на написанных вручную функциях. С тех пор системы глубокого обучения смогли превзойти возможности человека в решении некоторых визуаль- ных задач (но пока отстают в решении некоторых других задач). Подобные успехи были отмечены и в областях распознавания речи, машинного перевода, постанов- ки медицинского диагноза и компьютерных игр. Использование сети глубокого об- учения для представления функции оценки внесло свой вклад в победу программы АьрнаОо над ведущими игроками в го со всего мира (Сильвер и др. [2063-2065], 2016-2018). Эти замечательные успехи привели к возрождению интереса к искусственному интеллекту среди студентов, компаний, инвесторов, правительств, средств массо- вой информации и широкой общественности. Складывается впечатление, что поч- ти каждую неделю появляются сообщения о том, что очередное новое приложе- ние ИИ смогло приблизиться к человеческим способностям или даже превзойти их. Все это обычно сопровождается очередными спекуляциями либо о безудерж- ном росте достижений, либо о приближении новой зимы ИИ. Глубокое обучение в значительной степени зависит от мощного оборудования. Если стандартный процессор персонального компьютера способен выполнять от 109 до 1010 операций в секунду, алгоритм глубокого обучения, работающий на специализированном оборудовании (таком, как ОРИ, ТРИ или РРОА), может тре- бовать выполнения от 1014 до 1017 операций в секунду, в основном в виде сильно распараллеленных матричных или векторных операций. Конечно, глубокое изуче- ние также зависит от доступности в необходимом (большом) количестве данных для обучения, а кроме того, от нескольких алгоритмических трюков (см. главу 21). 1.4. Современное состояние исследований Проект Стандфордского университета Опе Нипдгед Теаг 81иду оп А1 (также из- вестный как А1100) предусматривает регулярный созыв групп экспертов с целью предоставления докладов о текущем состоянии дел в области искусственного ин- теллекта. В отчете за 2016 год [2338] был сделан вывод, что “можно ожидать су- щественного увеличения применения приложений ИИ в ближайшем будущем, включая самоуправляемые автомобили, медицинские системы диагностики и тар- гентной терапии, а также средства оказания физической поддержки в уходе за пре- старелыми” и что “общество в настоящее время переживает решающий момент в определении того, как развертывать технологии искусственного интеллекта таким образом, чтобы способствовать, а не препятствовать демократическим ценностям, таким как свобода, равенство и прозрачность”. В рамках проекта АП 00 на сайте аНпйех. огд также ведется ► Индекс ИИ (А11пс1ех) с целью помочь отслежи- вать прогресс в этой области. Ниже приведены некоторые основные моменты из отчетов за 2018 и 2019 годы (в сравнении с уровнем 2000 года, принятым как ис- ходный, если не указано иное).
• Публикации. Количество публикаций в области ИИ за период с 2010 по 2019 год увеличилось в 20 раз и составило около 20 тысяч в год. Самой попу- лярной категорией было машинное обучение. (На сайте агХту.огдв 2009- 2017 годы количество статей на тему машинного обучения ежегодно удваива- лось.) Следующим по популярности были категории компьютерного зрения и обработки естественных языков. • Отношение. Около 70% новых статей по ИИ имеют нейтральный тон, но ко- личество статей с положительным тоном увеличилось с 12% в 2016 году до 30% в 2018. В большинстве случаев вызывающие беспокойство проблемы носят этический характер: конфиденциальность данных и необъективность алгоритмов. • Количество студентов. В сравнении 2010 годом количество зачисленных на курсы ИИ увеличилось в 5 раз в США и в 16 раз в масштабе всего мира. В настоящее время ИИ — самая популярная специализация в области ком- пьютерных наук. • Соотношение полов. В масштабе всего мира среди профессоров ИИ около 80% мужчин и 20% женщин. Аналогичные цифры имеют место для научных работников, студентов и наемных работников в данной отрасли. • Конференции. С 2012 года посещаемость конференций Кеиг!Р8 увеличилась на 800% и достигла уровня 13 500 человек. Для других конференций в обла- сти ИИ наблюдается ежегодный рост количества участников — около 30%. • Промышленность. В США количество стартапов в области ИИ выросло в 20 раз, их общее число уже превысило 800. • Интернационализация. В Китае за год публикуется больше статей, чем в США, и примерно столько же, сколько во всей Европе. Однако при оцен- ке публикаций посредством взвешенного показателя цитируемости влияние американских авторов на 50% больше, чем китайских. Сингапур, Бразилия, Австралия, Канада и Индия демонстрируют наиболее быстрый рост количе- ства наемных работников в области ИИ. • Компьютерное зрение. Показатель количества ошибок в распознавании объектов (по результатам конкурса 1та§е\е1 ЬЗУКС) улучшился с 28% в 2010 году до 2% в 2017 году, превысив возможности человека. Точность ответов в тестах с открытыми визуальными вопросами (Ушиа! Риезбоп Апз\уепп§ — УрА) с 2015 года улучшилась с 55% до 68%, но пока еще от- стает от эффективности работы человека — 83%. • Скорость работы. Время обучения для задачи распознавания изображений сократилось в 100 раз за последние два года. Количество вычислительной мощности, используемой в лучших приложениях ИИ, удваивается каждые 3,4 месяца. • Обработка языка. За период с 2015 по 2019 год точность и полнота отве- тов на вопросы, измеренная в показателях Г1 на основании набора данных
81апГогд РиезНоп Ап8\уепп§ ОаЩзе! (8()иА0), увеличилась от 60 до 95. На наборе тестовых данных 8()11АВ2 прогресс оказался больше, с 62 до 90 все- го за один год. Оба показателя превышают показатели человеческого уровня. • Сравнение с возможностями человека. Как сообщается, к концу 2019 года системы искусственного интеллекта достигнут или превысят возможности человека по игре в шахматы, го, покер и компьютерную игру РасМап, в вик- торине 1еораг<1у! и выполнении тестов 1та§е1Че1 по распознаванию объек- тов, в способности распознавания речи в ограниченных областях и перевода с китайского языка на английский в ограниченных областях, в компьютер- ных играх ()иаке III, Оо1а 2, 81агСгай II, различных играх игровой пристав- ки А1ап, в диагностике рака кожи и простаты, диагностике проблем со сво- рачиванием белка и диабетической ретинопатии. Когда (если когда-либо) системы ИИ достигнут производительности на уровне человека при решении широкого круга задач? В проведенных в 2018 году интер- вью с экспертами в области ИИ был предложен широкий диапазон прогнозируе- мых дат — от 2029 до 2200 года со средним значением 2099. В аналогичном опро- се, проведенном в 2017 году, 50% респондентов считали, что это может произойти к 2066 году, хотя 10% полагали, что это может произойти уже в 2025 году, а неко- торые даже ответили “никогда”. Мнения экспертов также разделились в отноше- нии того, потребуются ли нам новые фундаментальные прорывы или будет доста- точно лишь простого уточнения и развития уже существующих подходов. Однако не следует принимать эти предсказания слишком серьезно, — как показал в своей работе Филипп Тетлок ([2195], 2017), в области прогнозирования мировых собы- тий эксперты ничем не лучше, чем просто любители. Как будут работать будущие системы ИИ? Мы пока не можем этого сказать. Как подробно говорилось в этом разделе, в данной научной области за время ее развития сменилось несколько ведущих концепций: в основу была положена сме- лая мысль, что создать машинный интеллект вообще возможно, при этом прини- малось, что поставленная цель может быть достигнута путем кодирования экс- пертных знаний в логические построения. На смену этому пришла уверенность, что главным инструментом могли бы стать вероятностные модели мира, уступив- шие в последние годы свои позиции убежденности, что машинное обучение по- зволяет получать такие модели, которые вообще не могут быть созданы на ос- новании любой хорошо изученной теории. Будущее покажет, какая модель будет следующей. Что ИИ может делать сегодня? Возможно, не так много, как пытались нас убе- дить авторы некоторых из наиболее оптимистичных статей в СМИ, но все же очень многое. Вот некоторые примеры. Роботизированные транспортные средства. Отсчет истории роботизиро- ванных средств передвижения следует начинать с радиоуправляемых автомо- билей 1920-х годов, но первые демонстрации автономного движения по дороге
без специальных направляющих имели место лишь в 1980-х годах (Кенаде и др. [1177], 1986; Дикмане и Зэпп [618], 1987). После успешных демонстраций во- ждения по грунтовым дорогам на 132-мильном ралли ВАКРА Огапд СйаПеп^е в 2005 году (Трун [2212], 2006) и на улицах с дорожным движением в рамках ралли 11гЬап СЬа11еп§е 2007 года началась настоящая гонка по разработке самоуправля- ющихся автомобилей. В 2018 году тестовые автомобили компании ХУауто прео- долели рубеж в 10 миллионов миль езды на дорогах общего пользования без се- рьезных аварий, при этом человеку-наблюдателю приходилось брать управление на себя только один раз за каждые 6000 миль. Вскоре после этого компания начала предлагать коммерческие услуги роботизированного такси. В воздухе автономные беспилотники с неподвижным крылом использовались в Руанде для доставки крови через всю страну начиная с 2016 года. Квадрокоптеры автономно выполняли примечательные акробатические маневры, исследуя здания в процессе создания 3-0 карт, и самостоятельно собирались в автономные группы. Перемещение на ногах. Четвероногий робот В1§Оо§, созданный Райбергом и др. ([ 1846], 2008), перевернул наши представления о том, как роботы могут дви- гаться, — это уже не походка роботов из голливудских фильмов (медленно, на нег- нущихся ногах, раскачиваясь из стороны в сторону), а что-то очень похожее на движение животного, способного восстановить равновесие и продолжить движе- ние после толчка или поскользнувшись на замерзшей луже. Атлас, человекоподоб- ный робот, может не только совершать прогулки по неровной местности, но и за- прыгивать на ящики и даже делать сальто (Акерман и Джиццо [11], 2016). Автономное планирование и составление расписаний. Работающая на уда- лении в сотни миллионов километров от Земли программа КепкНе А§егП агент- ства 14 АЗА стала первой бортовой автономной программой планирования, пред- назначенной для управления процессами составления расписания операций для космического аппарата (Джонсон и др. [1148], 2000). Программа КетоГе А§епг вы- рабатывала планы на основе целей высокого уровня, задаваемых с Земли, а также контролировала работу космического аппарата в ходе выполнения этих планов — обнаруживала, диагностировала и устраняла проблемы по мере их возникнове- ния. Сегодня инструментарий планирования ЕйКОРА (Беррейро и др. [133], 2012) используется для планирования рядовых операций марсоходов НАСА, а система Зехтаыт (Винтерниц [2364], 2017) обеспечивает автономную навигацию в глубо- ком космосе, за пределами действия глобальной ОРЗ-системы. Во время кризиса в Персидском заливе в 1991 году американские войска раз- вернули систему динамического анализа и перепланирования Пакт (Кросс и Уолкер [503], 1994) с целью автоматизации планирования перевозок и графиков движения для транспорта. Она обрабатывала данные примерно о 50 тысячах ав- томобилей, единиц грузов и людей одновременно, принимая во внимание их от- правные точки, места назначения, маршруты, любые транспортные мощности, возможности портов и аэродромов, разрешая возникающие конфликты по всем параметрам. Управление оборонных проектов США (ВеГепзе Адуапсед КезеагсЬ
А§епсу Рго]ес1 — В АКР А) впоследствии заявило, что одно это приложение с из- бытком окупило все инвестиции этого ведомства в ИИ за 30 лет. Ежедневно компании по перевозкам пассажиров и грузов, подобные ОЬег, и картографические сервисы, такие как Сюо§1е Маре, обеспечивают эффективный проезд к заданному пункту назначения сотням миллионов пользователей, быстро прокладывая оптимальный маршрут с учетом текущего и прогнозируемого трафи- ка по всему пути движения. Машинный перевод. В настоящее время интерактивные системы машинного перевода позволяют работать с документами более чем на ста языках, в число ко- торых входят родные языки более чем 99% населения Земли. Они переводят сот- ни миллиардов слов в день для сотен миллионов пользователей. Хотя работа этих систем еще не совсем доскональна, в целом предоставляемый ими перевод впол- не адекватен для понимания. Для близкородственных языков (таких, как француз- ский и английский) и при довольно большом объеме обучающих данных перевод в достаточно узкой области приближается к уровню перевода человеком (Ву и др. [2392], 2016). Распознавание речи. В 2017 году компания Мюгояой показала, что ее систе- ма распознавания разговорной речи достигла уровня ошибок в словах в пределах 5,1%, что соответствует результатам обычного человека при выполнении тестовой задачи 8\уксЬЬоагд, заключающейся в расшифровке телефонных разговоров (Си- онг и др. [2394], 2017). Около трети всех компьютерных коммуникаций во всем мире в настоящее время ведется голосовыми данными, а не текстовыми сообще- ниями, набираемыми с помощью клавиатуры. Приложение 8куре обеспечивает пе- ревод речи в режиме реального времени на десять языков. Компании А1еха, 81Н, СоЛапа и Ооо§1е предлагают программных виртуальных помощников, способных огвечать на вопросы и выполнять поставленные пользователем задания. Напри- мер, служба 6оо§1е Оир1ех использует средства распознавания и синтеза речи для выполнения бронирования мест в ресторанах по запросу пользователей, обеспечи- вая поддержку необходимых переговоров от их имени. Рекомендации, целевая реклама. Такие компании, как Атахоп, ЕасеЬоок, ИеЙНх, 8ро1йу, УоиТиЬе, \Уа1таг1 и другие, используют машинное обучение, что- бы предоставить пользователю информацию о том, что ему может понравиться, исходя из его прошлого опьгга и опыта других, подобных ему. Сегмент таких си- стем имеет долгую историю (Резник и Варян [1874], 1997), но сейчас быстро ме- няется благодаря новым методам глубокого обучения, обеспечивающим анализ со- держания (текста, музыки, видео) наряду с историей поиска и метаданными (Ван ден Орд и др. [2250], 2014; Жанг и др. [2433], 2017). Фильтрацию спама также можно рассматривать как форму рекомендации (или не рекомендации), — совре- менные методы искусственного интеллекта позволяют отфильтровывать более 99,9% спама, а почтовые службы также могут рекомендовать потенциальных по- лучателей наряду с текстом возможного ответа.
Ведение игр. Когда программа Е)еер В1ие компании 1ВМ победила чемпиона мира Гарри Каспарова в матче 1977 года, апологеты человеческого превосходства возложили свои надежды на игру го. Пнет Хут, астрофизик и энтузиаст го, предска- зал, что пройдет “сто лет, прежде чем компьютер побьет людей в игре в го, — воз- можно, даже дольше”. Но всего лишь 20 лет спустя программа АьрнаОО превзош- ла всех людей-игроков (Сильвер и др. [2065], 2017). Ке Цзе, чемпион мира, сказал: “В прошлом году программа еще была похожа на человека в своей игре. Но в этом году она предстала как бог го”. Программа АьрнаОо получила преимущество за счет изучения сотен тысяч игр, сыгранных в прошлом игроками-людьми, а также за счет дистилляции знаний опытных игроков го, работавших в команде. Следующая программа, Аьрна/еко, уже не использовала никаких входных данных от человека (за исключением правил игры, конечно же), но оказалась в со- стоянии на играх с самой собой научиться играть в такой степени, что смогла по- бедить всех противников, и людей, и машин, играя в го, шахматы и сёги (Сильвер и др. [2064], 2018). Как бы там ни было, чемпионы-люди были побеждены систе- мами ИИ в играх столь разнообразных, как викторина Деорагду! (Ферруччи и др. [736], 2010), покер (Боулинг и др. [272], 2015; Моравчик и др. [1619], 2017; Бра- ун и Сэндхом [321], 2019), а также в видеоиграх ВОТА 2 (Фернандес и Молменн [733], 2018), БХагСгай II (Винялс и др. [2273], 2019) и Оиаке III (Ядерберг и др. [1121], 2019). Распознавание изображении. Не удовольствовавшись превосходством, до- стигнутым над человеком в точности распознавания объектов в сложном тесте 1та§е№1, исследователи в области компьютерного зрения переключились на бо- лее сложную задачу генерации субтитров к изображению. Вот некоторые впечат- ляющие примеры: “Человек, едущий на мотоцикле по грунтовой дороге”, “Две пиццы на верхней плите кухонной печи” и “Группа молодых людей, играющих в фрисби” (Винялс и др. [2275], 2017). Однако нынешние системы все еще далеки от совершенства: “Холодильник, заполненный большим количеством еды и напит- ков” оказывается табличкой, запрещающей парковку, частично залепленной мно- жеством маленьких наклеек. Медицина. Результаты работы алгоритмов ИИ в настоящее время сравнимы или даже превышают результаты врачей — экспертов в диагностике по многим симптомам, особенно когда диагноз ставится на основании изображений. При- меры включают болезнь Альцгеймера (Динг и др. [622], 2018), метастазы рака (Лиу и др. [1433], 2017; Эстева и др. [698], 2017), офтальмологические заболева- ния (Гульшан и др. [934], 2016) и кожные заболевания (Лиу и др., 2019). Систе- матический обзор и метаанализ (Лиу и др. [1432], 2019) показали, что производи- тельность программ ИИ в среднем была эквивалентна таковой для специалистов в области здравоохранения. В настоящее время акцент на применении ИИ в ме- дицине часто делается на содействии партнерству между человеком и машиной. Например, система Ьттча в диагностике метастатического рака молочной желе- зы достигает общей точности на уровне 99,6% — лучше, чем эксперт-медик без
посторонней помощи, но их комбинация работает еще лучше (Лиу и др. [1434], 2018; Штейнер и др. [2126], 2018). В настоящее время широкое применение подобных методов ограничивается не их диагностической точностью, а необходимостью продемонстрировать достиг- нутое улучшение в клинических результатах и необходимостью обеспечения про- зрачности, отсутствия предвзятости и сохранения конфиденциальности данных (Топол [2221], 2019). В 2017 году администрация США по продуктам питания и лекарственным средствам (ГОА) одобрила только два медицинских приложения ИИ, но в 2018 году их число увеличилось до 12 и продолжает расти. Климатология. В 2018 году команда ученых получила премию Гордона Бел- ла за создание модели глубокого обучения, способной выявить детальную инфор- мацию об экстремальных погодных явлениях, которая ранее была захоронена в огромных массивах климатических данных. Прежде чем программа машинного обучения смогла сделать это, им потребовалось превысить уровень быстродей- ствия в 1018 операций в секунду, для чего пришлось использовать суперкомпью- тер со специализированным графическим процессором (Курт и др. [1329], 2018). В 2019 году Ролник и его соавторы [1906] представили 60-страничный каталог способов, которыми методы машинного обучения могут быть использованы для отслеживания климатических изменений. Все сказанное выше — это всего лишь несколько примеров использования си- стем искусственного интеллекта, которые уже существуют на сегодняшний день. И это не магия или научная фантастика, а наука, инженерия и математика, введе- нием в которые и является эта книга. 1.5. Риски и преимущества искусственного интеллекта Философ Фрэнсис Бэкон, которому приписывается создание научного метода, в своей книге Мудрость древних ([105], 1609) отметил, что “механические искус- ства можно использовать двояко, они одинаково хороши как для причинения вре- да, так и для исцеления”. Поскольку ИИ играет все более важную роль в экономи- ческой, социальной, научной, медицинской, финансовой и военной сферах, будет полезно рассмотреть его способности “причинения вреда” и “исцеления”, на со- временном языке — те риски и преимущества, которые он способен принести. Здесь дается лишь общее представление по этому вопросу, более подробно он ана- лизируется в главах 27 и 28. Чтобы начать обсуждение преимуществ, сначала просто напомним, что вся наша цивилизация является продуктом интеллекта человека. Если мы получим доступ к существенно большему машинному интеллекту, потолок наших амби- ций также существенно поднимется. Потенциал искусственного интеллекта и ро- бототехники в освобождении человечества от монотонной тяжелой работы и рез- ком увеличении производства товаров и услуг может предвещать наступление эры
мира и изобилия. Возможное ускорение научных исследований может иметь след- ствием, например, нахождение средств излечения различных заболеваний, реше- ния проблемы климатических изменений и дефицита ресурсов. Как сказал Демис Хассабис, генеральный директор компании 6оо§1е ВеерМтд, “Сначала решите проблему ИИ, а затем используйте ИИ для решения всех остальных проблем”. Однако задолго до того, как нам представится возможность “решить проблему ИИ”, мы будем подвержены рискам его неправильного использования, — возмож- но, непреднамеренного либо наоборот. Одни из этих рисков уже вполне очевид- ны, тогда как другие пока кажутся лишь весьма вероятными, исходя из существу- ющих тенденций. • Смертельное автономное оружие. По решению Организации Объединен- ных Наций в эту категорию попадает любое оружие, способное самосто- ятельно определить местонахождение, выбрать и устранить человеческие цели без вмешательства человека-оператора. Основная проблема с таким оружием заключается в его масштабируемости: отсутствие в виде обя- зательного требования надзора со стороны человека означает, что неболь- шая группа может развернуть сколь угодно большое количество такого ору- жия, направив его на людей, определяемых по любому выполнимому этим устройством критерию распознавания. Технологии, необходимые для созда- ния автономного оружия, аналогичны тем, которые требуются для создания автомобилей с автоматическим управлением. В 2014 году в ООН начались неофициальные обсуждения с экспертами потенциальных рисков смертель- ного автономного оружия, после чего в 2017 году группа правительственных экспертов перешла к официальной стадии, предшествующей заключению соответствующего договора. • Наблюдение и убеждение. В то время как контролировать телефонные ли- нии, каналы видеокамер, электронную почту и другие каналы передачи со- общений людьми дорого, утомительно, а иногда и юридически сомнитель- но для безопасности персонала, вполне возможно использовать системы ИИ (распознавание речи, компьютерное зрение, обработка естественного язы- ка) в виде масштабируемых приложений для выполнения массового наблю- дения за людьми и выявления их деятельности по интересам. Путем адапта- ции информационных потоков через социальные сети к отдельным лицам на основе использования методов машинного обучения их политическое пове- дение можно в определенной степени менять и контролировать — пробле- ма, которая стала очевидна на выборах, проходивших в США в 2016 году. • Предвзятость принимаемых решений. Небрежное или преднамеренно не- правильное использование алгоритмов машинного обучения для таких за- дач, как оценка возможности условно-досрочного освобождения или ана- лиз кредитных заявок, может привести к принятию системой ИИ таких решений, которые будут предвзятыми по признаку расы, пола или других
защищенных категорий. Часто данные для обучения сами по себе уже так или иначе отражают господствующие в обществе предубеждения. • Влияние на занятость. Проблема машин, использование которых приводит к сокращению рабочих мест, имеет многовековую историю. История эта ни- когда не была простой: машины выполняют некоторые из тех операций, ко- торые в противном случае выполняли бы люди, но они также делают лю- дей более продуктивными и, следовательно, дают им больше возможностей для трудоустройства, а компании делают более прибыльными и способными платить более высокую заработную плату. Они также могут сделать некото- рые виды деятельности экономически жизнеспособными, тогда как в про- тивном случае они были бы непрактичны. Использование машин в конеч- ном счете приводит к увеличению богатства, но, как правило, способствует смещению этого богатства от труда к капиталу, в еще большей степени усу- губляя рост общественного неравенства. Предыдущие достижения в обла- сти технологии, такие как изобретение механических ткацких станков, име- ли следствием серьезные проблемы в области занятости, но в конце концов люди все же находили для себя новые виды работ. С другой стороны, вполне возможно, что со временем системы ИИ будут выполнять и эти новые виды работ. Эта тема быстро становится основным фокусом сосредоточения вни- мания для экономистов и правительств во всем в мире. • Приложения, критические с точки зрения безопасности. По мере своего развития технологии ИИ все чаще используются в приложениях с “высоки- ми ставками”, надежность которых критически важна для безопасности лю- дей, таких как вождение автомобилей или управление водоснабжением го- родов. Аварии со смертельным исходом уже имели место, и это высветило трудности формальной верификации и статистического анализа риска для систем ИИ, разработанных с использованием методов машинного обучения. Область ИИ действительно нуждается в разработке технических и этиче- ских стандартов, по крайней мере сопоставимых с теми, которые приняты в других инженерных и медицинских дисциплинах, где на карту ставится жизнь людей. • Кибербезопасность. Методы искусственного интеллекта полезны для за- щиты от кибератак, например, путем обнаружения необычных моделей по- ведения, но они также могут способствовать повышению устойчивости вредоносных программ, повышению их выживаемости и дальнейшему рас- пространению. Например, методы обучения с подкреплением уже были ис- пользованы для создания высокоэффективных инструментов проведения ав- томатизированного персонифицированного шантажа и фишинговых атак. Более подробно эти темы рассматриваются в разделе 27.3. По мере того как си- стемы ИИ будут становиться все более умелыми, они будут выполнять в обществе все большее количество обязанностей, которые ранее выполняли люди. И подобно
тому как люди, которые ранее выполняли эти обязанности, могли совершать зло- намеренные действия, можно ожидать, что в новых условиях люди смогут злона- меренно использовать системы искусственного интеллекта, выполняющие эти обя- занности, для причинения еще большего вреда. Все приведенные выше примеры указывают на важность управления и в конечном счете регулирования систем ИИ. В настоящее время исследовательское сообщество и основные корпорации, вовле- ченные в исследования в области ИИ, разработали принципы добровольного са- моуправления для деятельности, связанной с ИИ (см. раздел 27.3). Правительства и международные организации создают консультативные органы для разработки соответствующих правил для каждого конкретного случая использования ИИ, для подготовки к возможным экономическим и социальным последствиям и для извле- чения всех преимуществ из использования возможностей ИИ в решении основных социальных проблем. Что можно сказать о долгосрочной перспективе? Достигнем ли мы давней цели: создания интеллекта, сравнимого или даже более одаренного, чем человече- ский интеллект? И если мы это сделаем, то что тогда? На протяжении большей части истории искусственного интеллекта эти вопро- сы находились в тени текущей рутинной работы по созданию систем ИИ, способ- ных сделать что-нибудь, хотя бы отдаленно свидетельствующее о разумности. Как и в любой иной достаточно широкой дисциплине, большая часть исследователей в области ИИ специализировалась в определенных направлениях, таких как различ- ные игры, представление знаний, компьютерное зрение или понимание естествен- ного языка, часто исходя из предположения, что прогресс в этим направлении бу- дет способствовать достижению главных целей всей области ИИ. Нильс Нильссон ([1690], 1995), один из первых руководителей проекта 8Ьакеу в 8К1, напоминал о широте поля этих целей и предупреждал, что каждое из более узких направле- ний находится в опасности замкнуться на собственных задачах. Позже некоторые влиятельные основатели ИИ, в том числе Джон Маккарти ([1533], 2007), Марвин Мински ([1584], 2007) и Патрик Уинстон (Бил и Уинстон [149], 2009), согласились с предупреждениями Нильссона, предложив исследователям в области ИИ вме- сто фокусировки на измеримой производительности конкретных приложений об- ратить взор к истокам и поставить конечной целью своих исследований, как вы- разился Херб Саймон, создание “машин, которые думают, учатся и создают”. Они назвали эту конечную цель >ИИ на уровне человека (Ншпап-Ьеуе! А1, НЬА1) — машина должна научиться делать все, что может сделать человек. Первый симпо- зиум этого направления состоялся в 2004 году (Мински и др. [1587], 2004). Еще одна попытка создать новое движение в ИИ с аналогичными целями была опре- делена как ► общий искусственный интеллект (АгбГкла! Сепега! 1п1е1 Ньепсе — АС1) (Гортцел и Пенначин [876], 2007), в его рамках в 2008 году была проведена первая конференция и организован йоитсй о/АгИЦсгсй Селегей 1п1еШ%епсе. Примерно в то же время были высказаны опасения, что создание ►искус- ственного суперинтеллекта (АгННсха! 8ирег1п(е1 Ньепсе — А81) — интеллекта,
который намного превосходит человеческие способности — может быть плохой идеей (Юдковски [2416], 2008; Омохундро [1713], 2008). Сам Тьюринг ([2238], 1996) высказал то же самое предположение в лекции, прочитанной им в Манче- стере в 1951 году, опираясь на более ранние идеи Сэмюэля Батлера ([353], 1863).15 Кажется вполне вероятным, что после того, как метод машинного мышления бу- дет реализован, ему не понадобится много времени, чтобы превзойти наши сла- бые силы... Поэтому на каком-то этапе мы должны ожидать, что машины получат контроль — таким способом, который был описан в утопическом романе “Эревон” Сэмюэля Батлера. В связи с последними достижениями в области глубокого обучения подобные мне- ния получили еще большее распространение, о чем свидетельствуют публикации книг, таких как Суперинтеллект Ника Бострома ([260], 2014), и публичные заявле- ния Стивена Хокинга, Билла Гейтса, Мартина Риза и Илона Маска. Вполне естественно испытывать общее чувство беспокойства в отношении идеи создания сверхинтеллектуальных машин. Эту ситуацию можно охаракте- ризовать как ► проблема гориллы: около семи миллионов лет назад появился вымерший примат, от которого одна ветвь дальнейшего развития ведет к гориллам, а другая — к людям. Сегодня гориллы не слишком счастливы от сосуществования с ветвью человека и по сути не имеют контроля над своим будущим. Если таким же окажется конечный результат достижения успеха в создании сверхчеловеческо- го ИИ — т.е. люди уступят ему контроль над своим будущим, — то, возможно, мы должны будем прекратить работу над ИИ и как следствие отказаться от выгод, ко- торые он может принести. В этом суть предупреждения Тьюринга: вовсе не оче- видно, что мы сможем управлять машинами, которые будут умнее нас. Если бы сверхчеловеческий ИИ представлял собой черный ящик, который при- был к нам из космоса, то на самом деле было бы вполне разумно проявлять осто- рожность в отношении его открытия. Однако это не так: мы разрабатываем систе- мы ИИ, поэтому, если в конечном счете они действительно “захватят контроль”, как предполагал Тьюринг, то это может быть только результатом неудачного про- ектирования. Чтобы избежать такого результата, прежде всего необходимо понять возмож- ные причины потенциальной неудачи. Ноберт Винер ([2341], 1960), который заду- мался над отдаленным будущим искусственного интеллекта, увидев, как програм- ма игры в шашки Артура Сэмюэла научилась обыгрывать своего создателя, сказал по этому поводу следующее. 15 Еще раньше, в 1847 году, Ричард Торнтон, редактор журнала РгМИхге Ехроипдег, протестовал против механических тепломеров: “Ум... обгоняет сам себя и покончил с необходимостью собственного существования, изобретая машины, мыслящие вместо него... Но кто может знать, что такие машины, достигнув большего совершенства, не за- думаются о планах исправления всех своих недостатков, а затем, напрягшись, не выдви- нут идеи, выходящие за пределы доступного смертному уму!”
Если, чтобы достичь наших целей, мы используем механическое устройство, в ра- боту которого мы не можем эффективно вмешиваться... нам будет лучше иметь пол- ную уверенность, что цель, поставленная перед машиной, является той, которой мы действительно хотим достичь. Во многих культурах есть мифы о людях, которые о чем-то просят богов, гени- ев, магов или дьяволов. В этих историях они неизменно получают то, о чем проси- ли, причем буквально, а затем сожалеют об этом. Третье желание, если оно есть, всегда состоит в том, чтобы отменить первые два. Можно назвать это ► пробле- мой царя Мидаса: Мидас, легендарный царь в греческой мифологии, попросил богов, чтобы все, к чему он прикоснется, превращалось в золото, но быстро пожа- лел об этой просьбе, коснувшись своей еды, питья и членов семьи.16 Мы упоминали об этой проблеме в разделе 1.1.5, где было указано на необхо- димость существенной модификации стандартной модели ввода фиксированных целей в машину. Устранение затруднений Винера состоит в том, чтобы вообще не иметь определенной “цели, поставленной перед машиной”. Вместо этого нам нуж- ны машины, которые стремятся к достижению целей человека, но знают., что они не имеют полной определенности в том, каковы именно эти цели. Как ни жаль, почти все исследования ИИ до настоящего времени проводились в рамках стандартной модели, а это означает, что почти весь технический матери- ал в данном издании отражает именно эти интеллектуальные рамки. Есть, одна- ко, некоторые первые результаты и в рамках новых положений. В главе 16 пока- зано, что машина имеет положительный стимул для того, чтобы позволить себе отключиться тогда и только тогда, когда она не уверена в отношении цели челове- ка. В главе 18 были сформулированы и рассмотрены ► игры-помощники, мате- матически описывающие ситуацию, в которой человек имеет цель, и машина пы- тается ее достичь, но изначально не знает, что она собой представляет. В главе 22 объясняются методы ► инвертированного обучения с подкреплением, позволя- ющие машинам больше узнать о предпочтениях человека, наблюдая за вариантами выбора, осуществляемого людьми. А в главе 27 исследуются две основные труд- ности новых концепций: во-первых, наш выбор зависит от наших предпочтений через очень сложную когнитивную архитектуру, которую трудно инвертировать, а во-вторых, мы, люди, можем не ставить постоянные предпочтения на первое ме- сто — индивидуально либо как группа, — поэтому может быть неясно, что систе- мы ИИ должны делать для нас. 16 Мидас мог поступить лучше, если бы последовал основным принципам безопасно- сти и включил в свою просьбу кнопку “Отменить” и кнопку “Пауза”.
Резюме В данной главе дается определение искусственного интеллекта и описывается исторический контекст, в котором развивалась эта область исследований. Некото- рые важные моменты приведены ниже. • Взгляды ученых на искусственный интеллект могут различаться. Вот два важных вопроса, на которые каждый должен дать ответ: “Вас больше инте- ресует мышление или поведение?” и “Вы намерены моделировать качества человека или просто стремитесь достичь наилучших результатов?” • В соответствии с тем, что сейчас называют стандартной моделью, ИИ на- целен в основном на рациональное действие. Идеальный интеллектуаль- ный агент выбирает наилучшее возможное действие в каждой ситуации. В этой книге задача создания интеллектуальных агентов рассматривается именно в этом смысле. • К этой простой идее необходимо добавить два уточнения. Во-первых, спо- собность любого агента, человека или нет, выбирать рациональные дей- ствия ограничена вычислительной сложностью выполнения этого. Во-вто- рых, концепцию машины, которая преследует определенные цели, следует заменить концепцией машины, преследующей цели, полезные человеку, но не имеющей точного представления о том, что именно они собой представ- ляют. • Философы (начиная с 400 года до н.э.) обосновали возможность ИИ, выдви- нув предположение, что сознание в некотором отношении напоминает ма- шину, оперирующую знаниями, закодированными на каком-то внутреннем языке, и что мышление может использоваться для выбора, какие действия следует предпринять. • Математики предоставили инструментальные средства для манипулирова- ния высказываниями, обладающими логической достоверностью, а также недостоверными вероятностными высказываниями. Кроме того, они зало- жили основу не только понимания того, что представляют собой вычисле- ния, но и формирования рассуждений об алгоритмах. • Экономисты формализовали проблему принятия решений, максимизирую- щих ожидаемую полезность для лица, принимающего решение. • Нейробиологи установили некоторые факты о том, как мозг работает и в чем он похож, а чем отличается от компьютеров. • Психологи подтвердили идею, что люди и животные могут рассматриваться как машины обработки информации. Лингвисты показали, что процессы ис- пользования естественного языка вписываются в эту модель. • Компьютерные инженеры предоставляли все более и более мощные маши- ны, что в конечном счете позволило реализовать самые разные приложения
ИИ, а инженеры-программисты позаботились о том, чтобы они были более удобными для пользователей. • Теория управления описывает способы разработки таких устройств, кото- рые действуют оптимально на основе обратной связи с окружающей средой. Изначально математические инструментальные средства теории управления весьма отличались от применяемых в области искусственного интеллекта, но эти научные области все больше сближаются. • История искусственного интеллекта циклична и включает периоды успеха и неоправданного оптимизма, за которыми неизбежно следовали снижение энтузиазма и сокращение финансирования. В ней также были периоды появ- ления новых творческих подходов, лучшие из которых затем неуклонно со- вершенствовались. • Область ИИ значительно укрепилась в сравнении с первыми десятилетия- ми, — как теоретически, так и методологически. Поскольку проблемы, с ко- торыми имел дело ИИ, становились все более сложными, потребовался пе- реход от булевой логики к вероятностной логике, от ручного кодирования знаний к машинному обучению на основе имеющихся данных. Все это уже привело к существенному повышению возможностей реальных систем и бо- лее тесной интеграции с другими дисциплинами. • Поскольку системы ИИ уже нашли себе широкое применение в реальном мире, возникла насущная необходимость рассмотреть широкий диапазон связанных с этим рисков и этических последствий. • В долгосрочной перспективе мы столкнулись с трудной проблемой контроля над системами искусственного суперинтеллекта, способными развиваться в непредсказуемых направлениях. Решение этой проблемы, похоже, потребу- ет изменения самой концепции искусственного интеллекта. Библиографические и исторические заметки Исчерпывающую историю ИИ дал Нильс Нильссон ([1691], 2009), один из пи- онеров в этой области. Педро Домингос ([633], 2015) и Мелани Митчелл ([1593], 2019) дали обзор машинного обучения, доступный для широкой аудитории, а Кай- фу Ли ([1376], 2018) описал гонку за международное лидерство в области искус- ственного интеллекта. Мартин Форд ([757], 2018) взял интервью у 23 ведущих ис- следователей ИИ. Основными профессиональными сообществами по ИИ являются Ассоциация развития искусственного интеллекта (Аязоаабоп Гог Же АдуапсетеШ оГ АгНГкиа! 1п1е1Н§епсе —ААА1), группа 8рес1а11п1егек1 Огоир т АгПНаа!1п1еШ§епсе (81ОА1, ранее — 816АКТ) в рамках Ассоциации вычислительной техники (АСМ), Ев- ропейская ассоциация искусственного интеллекта и Общество искусственно- го интеллекта и моделирования поведения (8ос1е1у Гог АгбПс1а11п1е111§епсе апд
81ти1айоп оГВеЬауюиг— А18В). Партнерство по ИИ объединяет многие коммер- ческие и некоммерческие организации, заинтересованные в этических и социаль- ных последствиях внедрения систем ИИ. В журнале А1 Ма^агте, выпускаемом ААА1, публикуется множество тематических и учебных статей, а веб-сайт этой ас- социации, аааз.. огд, предлагает посетителям новости, учебные пособия и спра- вочную информацию. Результаты новейших работ публикуются в трудах основных конференций по ИИ: Международной объединенной конференции по ИИ (1п1егпайопа11о1п1 СопГегепсе оп А1 — ПСА1), ежегодной Европейской конференции по ИИ (Еигореап СопГегепсе оп А1 — ЕСА1) и конференции Найопа! СопГегепсе оп А1, чаще упоми- наемой под названием ААА1 (так сокращенно называется организация Атепсап Аззос1аиоп (ог А1, под эгидой которой проводится эта конференция). Машинное обучение освещается в рамках Международной конференции по машинному об- учению (1п1егпа1юпа1 СопГегепсе оп МасЫпе Ьеагптз) и конференции по систе- мам обработки нейронной информации (№ига11пГогша1юп Ргосе881п§ 8у81еш5 — Кеиг1Р8). Крупнейшими журналами в области общего ИИ являются АгН^асй 1п1еШ%епсе, Сотри(аНопа11п1еШ%епсе, ШЕЕ ТгапзасИопз оп РаИегп Апа!уяз апс! МасЫпе 1п1еШ^епсе, ШЕЕ 1п1еШ%еп1 8у$1ет$ и Аоигпа1 о/АгН/1с1а11п1е1И%епсе КезеагсИ. Имеется также много конференций и журналов, посвященных отдель- ным областям исследований, которые будут указаны в соответствующих главах. Упражнения______________________________________________________________ Эти упражнения предназначены для стимулирования дискуссий, а некоторые могут быть использованы как учебные проекты с установленными сроками. Альтернативный подход — предварительные решения могут быть представлены сейчас, но рассматривать- ся будут уже после завершения всего курса, построенного на базе этой книги. 1.1. Дайте определения своими словами следующим понятиям: а) интеллект, б) искус- ственный интеллект, в) агент, г) рациональность, д) логические рассуждения. 1.2. Прочитайте оригинальную статью Тьюринга по искусственному интеллекту (Тью- ринг [2235], 1950). В этой статье он обсуждает несколько потенциальных возраже- ний против предложенного им подхода и теста на интеллектуальность. Какие из этих возражений все еще остаются весомыми в определенной степени? Являются ли при- веденные им опровержения правильными? Можете ли вы выдвинуть новые возра- жения, которые следуют из событий, происшедших с тех пор, как Тьюринг написал свою статью? В этой статье он предсказал, что к 2000 году компьютер с вероятностью 30% будет успешно проходить пятиминутный тест Тьюринга с участием слабо подго- товленного экспериментатора. Какие шансы, по вашему мнению, имел бы компьютер сегодня? Еще через 50 лет? 1.3. Каждый год премия Лёбнера присуждается программе, наиболее близкой к прохо- ждению определенной версии теста Тьюринга. Проведите исследование и сообщите о последнем лауреате премии Лёбнера. Какие методы используются в этой програм- ме? Какой вклад внесла эта программа в развитие искусственного интеллекта?
1.4. Рациональны ли рефлекторные действия (например, отдергивание руки при прикос- новении к горячей печи)? Можно ли считать их интеллектуальными? 1.5. Существуют хорошо известные классы проблем, трудноразрешимых для компьюте- ров, а также другие классы, для которых доказана их неразрешимость. Означает ли это, что создание искусственного интеллекта невозможно? 1.6. Предположим, мы расширили программу Эванса 8У8ТЕМ так, чтобы она могла на- брать 200 баллов на стандартном тесте проверки интеллекта (19). Можно ли в этом случае считать, что программа стала более интеллектуальной, чем обычный человек? Объясните. 1.7. Нейронная структура морского слизняка аплазии (ар1у81а) была широко изучена (пер- вым был нобелевский лауреат Эрик Кандел), — просто потому., что у него всего око- ло 20 000 нейронов, большинство из которых крупные и легко доступные для мани- пуляций. Предположив, что время цикла нейрона аплизии примерно такое же, как и у нейрона человека, сравните вычислительную мощность нейронной структуры жи- вотного, выраженную в количестве обновлений памяти в секунду, в сравнении с вы- сокопроизводительным компьютером, данные которого приведены на рис. 1.3. 1.8. Почему интроспекция (т.е. самоанализ — составление отчета о собственных мыслях) может оказаться неточной? Может ли человек ошибаться в отношении того, что он думает? Обоснуйте свой ответ. 1.9. В какой степени следующие компьютерные системы можно считать системами ис- кусственного интеллекта: а) сканеры штрих-кода в супермаркетах; б) поисковые системы Интернета; в) голосовое меню телефона; г) алгоритмы интернет-маршрутизации, динамически реагирующие на состояние сети. 1.10. В какой степени следующие компьютерные системы можно считать системами ис- кусственного интеллекта: а) сканеры штрих-кода в супермаркетах; б) голосовое меню телефона; в) функции проверки правописания и коррекции грамматики в Мгсгозой \Уогс1; г) алгоритмы интернет-маршрутизации, динамически реагирующие на состояние сети. 1.11. Многие из предложенных вычислительных моделей когнитивной деятельности вклю- чают в себя довольно сложные математические операции, такие как свертка изобра- жения с использованием функции Гаусса или поиск минимума функции энтропии. Большинство людей (и конечно, все животные) вообще никогда не изучают подобную математику, почти никто не изучает ее перед поступлением в колледж и почти никто не может вычислить свертку функции с использованием функции Гаусса в уме. Какой смысл в том, чтобы говорить, что “система компьютерного зрения” выполняет подоб- ный тип математических расчетов, тогда как реальный человек не имеет представле- ния о том, как это делается? 1.12. Некоторые авторы утверждают, что самой важной частью интеллекта служат сенсор- ные способности и моторные навыки, а “высокоуровневые” возможности по сути яв- ляются паразитическими, — они просто надстройки над этими основным возмож- ностям. Не вызывает сомнения, что большая часть эволюции и значительная часть
мозга были связаны с развитием восприятия и моторных навыков, в то время как ис- кусственный интеллект сосредоточился на таких задачах, как ведение игр и формиро- вание логического вывода, которые во многом оказались значительно более просты- ми по сравнению с восприятием и осуществлением действий в реальном мире. Счи- таете ли вы, что традиционная направленность искусственного интеллекта на изуче- ние высокоуровневых познавательных способностей является неверной? 1.13. Почему результатом эволюции обычно становится появление систем, которые действу- ют рационально? Для достижения каких целей предназначены подобные системы? 1.14. Искусственный интеллект — это наука или инженерная дисциплина? Или ни то, ни другое? Поясните свой ответ. 1.15. “Безусловно, компьютеры не могут быть интеллектуальными, ведь они способны вы- полнять только то, что указали им программисты”. Является ли последнее утвержде- ние истинным и следует ли из него первое? 1.16. “Безусловно, животные не могут быть интеллектуальными, ведь они способны вы- полнять только то, что диктуют им гены”. Является ли последнее утверждение истин- ным и следует ли из него первое? 1.17. “Безусловно, животные, люди и компьютеры не могут быть разумными, ведь они спо- собны выполнять только то, что диктуют законы физики тем атомам, из которых они состоят”. Является ли последнее утверждение истинным и следует ли из него первое? 1.18. Изучите литературу по искусственному интеллекту и определите, могут ли в настоя- щее время компьютеры решать следующие задачи. а) Игра в настольный теннис (пинг-понг) на достаточно высоком уровне. б) Вождение автомобиля в центре Каира, Египет. г) Вождение автомобиля в Викторвилле, Калифорния. д) Покупка недельного запаса продуктов в супермаркете. е) Покупка недельного запаса продуктов в интернет-магазине. ж) Участие в карточной игре бридж на конкурентоспособном уровне. з) Открытие и доказательство новых математических теорем. и) Написание рассказа, который непременно должен быть смешным. к) Предоставление компетентных юридических консультаций в специализированной области права. л) Перевод разговорной речи в режиме реального времени с английского языка на шведский. м) Выполнение сложной хирургической операции. 1.19. В отношении тех задач из упражнения 1.18, которые в настоящее время являются неосуществимыми, попытайтесь понять, в чем заключаются основные трудности, и предсказать, когда они будут преодолены (и произойдет ли это вообще). 1.20. Уже давно в различных подобластях ИИ проводятся конкурсы в виде постановки стандартной задачи и предложения исследователям сделать все возможное для на- хождения наилучшего ее решения. Примерами могут служить соревнование ОАКРА Сгапд СЬаПеп^е для роботизированных автомобилей, международный турнир по пла- нированию, роботизированная футбольная лига КоЬосир, конкурс ТКЕС по извлече- нию информации и соревнования по машинному переводу и распознаванию речи. Изучите материалы пяти из этих конкурсов и опишите прогресс, достигнутый за по- следние годы. В какой степени эти конкурсы способствовали продвижению к со- временному состоянию исследований в области ИИ? В какой степени они наносят ущерб этой области, отнимая возможности реализации у новых идей?

ГЛАВА 2 Интеллектуальные агенты В этой главе обсуждаются основные свойства агентов, идеальных или нет, разнообразие вариантов окружающей среды и вытекающее из этого много- образие типов агентов. В главе 1 понятие рационального агента было определено как центральная концепция в выбранном авторами данной книги подходе к искусственному интел- лекту. В этой главе указанное понятие раскрывается более подробно. В ней показа- но, что концепция рациональности может применяться к самым различным аген- там, действующим в любой среде, которую только можно себе представить. В этой книге намерение авторов состоит в том, чтобы использовать эту концепцию для разработки небольшого набора принципов проектирования для создания успешно действующих агентов — систем, которые вполне обоснованно можно было бы на- звать интеллектуальными. Мы начнем с изучения агентов, вариантов среды и связей между ними. Тот факт, что одни агенты действуют лучше, чем другие, естественным образом при- водит к идее рационального агента — такого, который действует настолько успеш- но, насколько это вообще возможно. Насколько успешно может действовать агент, зависит от природы окружающей его среды, — одни варианты будут более слож- ными, чем другие. В этой главе представлена грубая классификация вариантов среды и показано, как ее свойства влияют на проектирование агентов, наиболее подходящих именно для нее. Здесь описан ряд основных, “скелетных”, проектов агентов, которые затем будут необходимым образом детализированы в остальной части книги. 2.1. Агенты и среды_________________________________ Агент — это все что угодно, что может рассматриваться как имеющее способ- ность воспринимать ► окружающую среду с помощью Сдатчиков и воздейство- вать на эту среду с помощью ► исполнительных механизмов. Эта простая идея представлена на рис. 2.1. Человек, если рассматривать его в качестве агента, име- ет глаза, уши и другие органы чувств в качестве датчиков, а его исполнительными
механизмами являются руки, ноги, речевой аппарат и т.д. Агент-робот в качестве датчиков может иметь видеокамеры и инфракрасные дальномеры, а исполнитель- ными механизмами для него могут служить различные двигатели. Компьютерная программа, рассматриваемая как агент, получает в качестве сенсорных данных со- держимое файлов, сетевые пакеты, вводимую человеком информацию (клавиату- ра, мышь, сенсорный экран, голос), а ее воздействие на окружающую среду осу- ществляется посредством записи файлов, отправки сетевых пакетов, отображения информации или генерации звука. Мы принимаем общее допущение, что каждый агент может воспринимать собственные действия (но не всегда их результаты). Теоретически окружающей средой может быть что угодно — в пределе это вся Вселенная! На практике это просто та часть Вселенной, состояние которой мы принимаем во внимание, создавая некоторый агент. Иначе говоря, это та ее часть, которая вмещает все, что агент сможет воспринять и на что сможет повлиять сво- ими действиями. Рис. 2.1. Агенты взаимодействуют с окружающей средой посредством датчиков и исполнительных механизмов Мы используем термин ► восприятие для обозначения контента, восприни- маемого сенсорами агента. ► Последовательностью восприятия агента называ- ется полная история всего, что когда-либо было им воспринято. Вообще говоря, выбор агентом действия в любой конкретный момент может зависеть от его встроенных знаний и всей последовательности восприятия, накопленной к данному мо- менту, но никогда от чего-либо, чего агент не воспринимал. Определив, какое действие будет выбрано агентом в ответ на любую возможную последовательность воспри- ятия, можно получить о нем более-менее полную информацию. Говоря языком ма- тематики, можно утверждать, что поведение любого агента может быть описано с помощью ► функции агента, отображающей любую заданную последователь- ность восприятия на некоторое действие.
Функцию агента можно представить в виде таблицы, описывающей поведение любого заданного агента, но для большинства из них это была бы очень большая таблица — фактически бесконечная, если только не установить предельную дли- ну рассматриваемой последовательности восприятия. Проводя эксперименты с не- которым агентом, такую таблицу, в принципе, можно построить, проверяя все воз- можные последовательности актов восприятия и регистрируя ответные действия агента.1 Такая таблица, безусловно, является внешним описанием агента. Внутрен- няя функция агента для некоторого искусственного агента реализуется с помощью ► программы агента. Важно различать два этих понятия. Функция агента пред- ставляет собой абстрактное математическое описание, а программа агента — это конкретная реализация, действующая в рамках некоторой физической системы. Чтобы проиллюстрировать эти идеи, воспользуемся очень простым примером: рассмотрим мир пылесоса, представленный на рис. 2.2. Этот мир, в котором дей- ствует агент в виде робота-пылесоса, состоит всего из нескольких квадратов, ко- торые могут быть либо чистыми, либо грязными. На рис. 2.2 представлен вариант всего с двумя квадратами, А и В. Робот-пылесос, выполняющий роль агента, вос- принимает, в каком квадрате он находится и есть ли в этом квадрате мусор. Исход- но он находится в квадрате А. Его возможными действиями являются: перейти в квадрат справа, перейти в квадрат слева, убрать мусор или бездействовать.2 Одна из очень простых функций агента состоит в следующем: если в текущем квадра- те имеется мусор, то убрать его, иначе — перейти в другой квадрат. Часть табли- цы для данной функции агента показана на рис. 2.3, а реализующая ее программа агента приведена ниже в этой главе, на рис. 2.8. Глядя на рис. 2.3, можно прийти к заключению, что в мире пылесоса можно определять различные агенты, просто заполняя разными способами правый стол- бец таблицы функций. Но здесь возникает очевидный вопрос: Какой способ за- полнения этой таблицы следует считать правильным? Иными словами, что делает агента хорошим или плохим, интеллектуальным или наоборот? Ответ на этот во- прос приведен в следующем разделе. Прежде чем завершить этот раздел, необходимо отметить, что понятие агента здесь рассматривается лишь как инструмент анализа систем, а не как абсолютная характеристика, в соответствии с которой мир делится на агентов и неагентов. На- пример, в качестве агента вполне можно рассматривать карманный калькулятор, 1 Если агент для выбора своих действий использует определенную рандомизацию, то может потребоваться проверить каждую последовательность многократно, чтобы опреде- лить вероятность каждого действия. Можно предположить, что выбор действий случай- ным образом является довольно неразумным подходом, однако ниже в этой главе будет показано, что такое поведение может оказаться весьма интеллектуальным. 2 В реальном роботе-пылесосе едва ли будут реализованы такие действия, как “дви- гаться вправо” и “двигаться влево”. Скорее его возможными действиями будут “вращать колеса вперед” и “вращать колеса назад”. В нашем примере мы выбрали такие действия, которые проще отслеживать на рисунке, не заботясь о простоте их реализации в реаль- ном роботе.
выбирающий действие “отобразить число 4” после получения последовательно- сти восприятия “2+2=”, но подобный анализ вряд ли поможет кому-либо понять принципы работы калькулятора. В широком смысле целью любой области тех- ники можно считать создание артефактов, так или иначе взаимодействующих с окружающим миром. При таком подходе область ИИ связана (по мнению авто- ров) с наиболее интересной частью этого обширного спектра, где артефакты име- ют значительные вычислительные ресурсы и действуют в среде, требующей при- нятия нетривиальных решений. Рис. 2.2. Мир пылесоса, в котором всего два помещения, представленных квадрата- ми Л и В. Каждый квадрат может быть чистым или грязным, а агент может переме- щаться в левый или правый квадрат и выполнять в нем уборку. В различных верси- ях мира пылесоса могут действовать разные правила в отношении того, что может воспринимать агент, всегда ли его действия будут успешны и т.д. Последовательность восприятия Действие [А, Чисто ] Вправо [А, Грязно] Убрать [В, Чисто ] Влево [В, Грязно] Убрать [А, Чисто ], [А, Чисто ] Вправо [А, Чисто ], [А, Грязно] Убрать [А, Чисто ], [А, Чисто ], [А, Чисто ] Вправо [А, Чисто ], [А, Чисто 1 [А, Грязно] Убрать Рис. 2.3. Часть таблицы функции простого агента в мире пылесоса, представлен- ном на рис. 2.2. Агент убирает текущий квадрат, если в нем грязно, а в противном случае перемешается в другой квадрат. Обратите внимание, что эта таблица будет иметь бесконечно большой размер, если нет ограничений на длину допустимых по- следовательностей восприятия
2.2. Лучшее поведение: концепция рациональности ► Рациональным агентом является такой агент, который выполняет правиль- ные действия. Очевидно, что выполнение правильных действий лучше, чем вы- полнение неправильных, но что же понимается под выражением “выполнение пра- вильных действий”? 2.2.1. Показатели производительности Философия морали выработала несколько различных определений “правиль- ной вещи”, но в области ИИ, как правило, придерживаются лишь одного из них, получившего название ► консеквенциализм: поведение агента оценивается по его последствиям. Когда агент помещается в некоторую среду, он генерирует по- следовательность своих действий в соответствии с потоком получаемых им вос- приятий. Последовательность действий агента заставляет среду пройти через определенную последовательность ее состояний. Если эта последовательность со- стояний среды является желательной, агент действовал хорошо. Само понятие же- лательности фиксируется ►показателями производительности, с помощью ко- торой оценивается любая заданная последовательность состояний среды. У человека всегда имеются собственные желания и предпочтения, поэтому по- нятие рациональности применительно к людям имеет отношение к их успеху в выборе действий, имеющих следствием последовательность состояний окружаю- щей среды, желательную с их собственной точки зрения. С другой стороны, ма- шины не имеют собственных желаний и предпочтений; поэтому показатели про- изводительности, по крайней мере изначально, существуют лишь в уме создателя машины или в представлении тех пользователей, для которых эта машина пред- назначена. Вы увидите, что одним конструкциям агентов свойственно точное представление (версия) показателей производительности, тогда как в других кон- струкциях показатели производительности полностью скрыты — агент может со- вершать правильные действия, но не знает, почему. Вспомнив предупреждение Норберта Винера о том, что “цель, поставленная перед машиной, должна являться той, которой мы действительно хотим достичь” (см. раздел. 1.5), следует подчеркнуть, что в реальной действительности может быть достаточно сложно правильно сформулировать показатели эффективности. Вернемся, например, к агенту-пылесосу из предыдущего раздела. В этом случае можно предложить измерять производительность по количеству мусора, убран- ного за одну восьмичасовую смену, однако следует учитывать, что в случае ра- ционального агента что вы попросите, то и получите. Так, рациональный агент может максимизировать этот показатель производительности, выполнив уборку, а затем вытряхнув мусор на пол, чтобы убрать его вновь, и т.д. Более подходящим показателем производительности будет вознаграждение агента за поддержание пола чистым. Например, можно присуждать одно очко за каждый чистый квадрат
на каждом заданном временном отрезке (возможно, с штрафом за потребленную электроэнергию и произведенный шум). ^Какобщееправилолучшевыбиратьпока- затели производительности в соответствии с тем, чего на самом деле требуется до- стичь в данной среде, а не в соответствии с тем, как, по мнению проектировщика, дол- жен вести себя агент. Даже если удастся избежать подобных очевидных просчетов, некоторые узло- вые проблемы могут все еще оставаться нерешенными. Например, понятие “чи- стый пол” из предыдущего абзаца базируется на средней чистоте во времени. Но одна и та же средняя чистота может быть достигнута с помощью двух различных агентов, один из которых медленно выполняет свои обязанности, но действует не- прерывно, тогда как другой убирает исключительно быстро, но требует больших перерывов в работе. То, что здесь является предпочтительным, может показаться тонким аспектом науки о проведении уборки, но на самом деле это глубокий фи- лософский вопрос с далеко идущими последствиями. Что лучше — безрассудная жизнь взлетов и падений или безопасное, но однообразное существование? Что лучше — экономика, при которой каждый живет в умеренной бедности, или иной вариант, когда немногие купаются в изобилии, тогда как остальные живут в край- ней нищете? Мы оставляем поиск ответов на эти вопросы в качестве упражнения для прилежного читателя. В этой книге мы обычно будем предполагать, что показатели эффективности могут быть определены правильно. Однако вследствие приведенных выше при- чин мы должны допускать возможность того, что указанные машине цели дей- ствительно могут быть поставлены неверно, подобно проблеме царя Мидаса, упо- минавшейся в разделе 1.5. Более того, при разработке компонента программного обеспечения, копии которого будут предоставлены разным пользователям, невоз- можно точно предвидеть предпочтения каждого из них в отдельности. Следова- тельно, нам, возможно, потребуется создать агентов, которые исходно будут в не- определенности в отношении истинных показателей своей производительности, но смогут узнать о них больше с течением времени. Такие агенты будут обсуж- даться в главах 16, 18 и 22. 2.2.2. Рациональность В любой момент времени оценка рациональности действий агента определяет- ся с учетом четырех перечисленных ниже факторов. • Показатели производительности, которые определяют критерии успеха. • Знания агента о среде, приобретенные ранее. • Действия, которые могут быть выполнены агентом. • Последовательность восприятия агента на текущий момент. С учетом этих факторов можно сформулировать следующее ► определение ра- ционального агента.
^Для каждой возможной последовательности восприятия рациональный агент должен выбрать действие, которое, как ожидается, максимизирует его показатели производительности с учетом фактов, предоставленных данной последовательностью актов восприятия и всех встроенных зна- ний, которыми обладает агент. Рассмотрим пример простого агента-пылесоса, который убирает квадрат, если в нем имеется мусор, либо переходит в другой квадрат, если мусора в нем нет. (Часть таблицы функции такого агента приведена на рис. 2.3.) Является ли этот агент рациональным? Ответ на этот вопрос может быть разным! Прежде необхо- димо указать, каковы его показатели производительности, что известно о среде и какими датчиками и исполнительными механизмами он располагает. Примем пе- речисленные ниже предположения. • Используемый показатель производительности предполагает вознагражде- ние в одно очко за каждый чистый квадрат в каждом интервале времени в течение “времени жизни” агента, состоящего из 1 000 интервалов времени. • “География” среды известна заранее (см. рис. 2.2), но распределение мусо- ра и первоначальное расположение агента не определены. Чистые квадраты остаются чистыми, а действие 8иск заключается в уборке мусора и приво- дит к очистке текущего квадрата. Действия Ьер и приводят к переме- щению агента соответственно влево и вправо, за исключением тех случаев, когда они могли бы вывести агента за пределы среды, и в этих случаях агент остается там, где он находится. • Единственными возможными для агента действиями являются Ье/Ц К1&к1 и 8иск. • Агент правильно определяет свое местонахождение и правильно восприни- мает информацию о наличии мусора в данном помещении. При этих условиях этот агент действительно является рациональным; его ожи- даемая производительность по крайней мере так же хороша, как и производитель- ность любого другого агента. Однако можно легко убедиться, что при других обстоятельствах тот же самый агент может стать нерациональным. Например, после того как весь мусор будет убран, агент станет совершать постоянные бесполезные перемещения вправо-вле- во, и если показатели производительности будут предусматривать штраф в одно очко за каждое передвижение в том или ином направлении, то агент не сможет достичь удовлетворительных результатов. В таких условиях лучший агент дол- жен ничего не делать до тех пор, пока он уверен в том, что все квадраты остают- ся чистыми. Если чистые квадраты могут снова стать грязными, то агент должен время от времени проводить проверку и снова убирать их по мере необходимо- сти. А если география среды неизвестна, то агенту потребуется ее исследовать. В упражнении 2.13 предлагается спроектировать агентов для подобных случаев.
2.2.3. Всезнание, обучение и автономность Необходимо четко понимать различие между рациональностью и ► всезнани- ем. Всезнающий агент знает фактический результат любых своих действий и всег- да может действовать соответствующим образом, но в действительности всезнание недостижимо. Рассмотрим следующий пример: в один из дней некто гуляет в Пари- же по Елисейским полям и видит на другой стороне улицы давнего приятеля. Вбли- зи нет никаких машин, он никуда не спешит и поэтому, будучи рациональным аген- том, решает перейти на другую сторону улицы. Между тем на высоте 10 ООО метров у пролетающего самолета отваливается дверь грузового отсека3 и, прежде чем этот господин успевает пересечь улицу, расплющивает его в лепешку. Было ли нерацио- нальным решение этого господина перейти улицу? Очень маловероятно, что в его некрологе напишут: “Пал жертвой глупой попытки перейти улицу”. Этот пример показывает, что рациональность вовсе не равнозначна совершен- ству. Рациональность — это максимизация ожидаемой производительности, а со- вершенство — максимизация фактической производительности. Отказ от требо- вания совершенства агентов — это не только проявление справедливости. Дело в том, что если от агента ожидают, что он будет выполнять действия, которые можно будет полагать наилучшими уже после их совершения, то задача проектирования агента, отвечающего этой спецификации, становится невыполнимой — по край- ней мере до тех пор, пока эффективность машин времени или хрустальных шаров провидцев не будет повышена в достаточной степени. Поэтому наше определение рациональности не требует всезнания, ведь раци- ональный выбор зависит только от последовательности восприятия, сформиро- ванной к данному моменту. Также необходимо гарантировать, чтобы агенту не- преднамеренно не было позволено принимать участие в действиях, безусловно, не являющихся интеллектуальными. Например, если агент не посмотрит влево и вправо, прежде чем решит пересечь дорогу с интенсивным движением, то полу- ченная им до сих пор последовательность восприятия не сможет подсказать, что к нему на большой скорости приближается тяжелый грузовик. Указывает ли наше определение рациональности, что в этом случае агент может перейти через доро- гу? Вовсе нет! Во-первых, нельзя считать рациональным решение перейти дорогу, исходя из настолько неинформативной последовательности восприятия: риск несчастно- го случая при попытке пересечения дороги, не взглянув по сторонам, слишком велик. Во-вторых, рациональный агент должен выбрать действие “оглянуться”, прежде чем ступить на дорогу, поскольку оно позволяет максимизировать ожи- даемую производительность. Выполнение действий с целью изменения последу- ющих восприятий — иногда это называют ► сбором информации — составля- ет важную часть рациональности и подробно рассматривается в главе 16. Другим 3 См. заметку Н. Гендерсона “На дверях аэробусов Воет§ 747 необходимо срочно установить новые замки”. — Газета “Вашингтон пост” от 24 августа 1989 года.
примером сбора информации является исследование, которое должен предпри- нять агент-пылесос, оказавшись в среде, изначально ему неизвестной. Наше определение требует, чтобы рациональный агент не только собирал ин- формацию, но также ► обучался в максимально возможной степени на тех дан- ных, которые он воспринимает. Исходная конфигурация агента может отражать некоторые предварительные знания о среде, но по мере приобретения агентом опыта эти знания могут модифицироваться и пополняться. Существуют крайние случаи, в которых среда известна изначально и полностью предсказуема. В таких случаях агенту не требуется воспринимать информацию или обучаться; он просто действует правильно. Безусловно, такие агенты являются весьма уязвимыми. В качестве примера об- ратимся к скромному навозному жуку. Выкопав гнездо и отложив яйца, он скаты- вает шарик навоза у ближайшей навозной кучи и доставляет его к гнезду, чтобы заткнуть вход. Если по пути шарик навоза удалить из его захвата, жук продолжит “манипулировать” им и разыграет целую пантомиму, “затыкая” гнездо несуще- ствующим шариком и вовсе не замечая, что в действительности заветный шарик отсутствует. В процессе эволюции поведение этого жука сформировалось на ос- новании предположения о наличии шарика, и если это предположение нарушает- ся, поведение жука становится неправильным. Немного более интеллектуальными являются осы-сфексы. Самка сфекса выка- пывает норку, вылетает из нее, находит и жалит гусеницу, а затем приносит ее к норе. Затем она снова заползает в норку, чтобы проверить, все ли в порядке, зата- скивает внутрь гусеницу и откладывает на нее яйца. Гусеница послужит источни- ком пищи для личинок, которые вылупятся из яиц. До сих пор все идет хорошо, но если энтомолог переместит гусеницу на несколько сантиметров в сторону, пока оса проверяет состояние своей норы, насекомое, не обнаружив гусеницы на ме- сте, вновь возвращается к этапу поиска и перетаскивания гусеницы и продолжает выполнять свой план без изменений даже после десятков вмешательств в проце- дуру помещения гусеницы в нору. Оса-сфекс не способна обучиться тому, что ее врожденный план не срабатывает, и поэтому не пытается его изменить. Если степень, в которой агент полагается на априорные знания своего проек- тировщика, а не на свои собственные восприятия и процессы обучения, высока, о таком агенте говорят, что ему не хватает ► автономности. Рациональный агент должен быть автономным — он должен обучаться всему, что может освоить, для компенсации неполных или неправильных исходно заложенных в него знаний. На- пример, агент-пылесос, который обучается прогнозированию, где и когда появится новый мусор, безусловно, будет лучше, агента, который на это не способен. С точки зрения практики к агенту редко предъявляется требование, чтобы он с самого начала был полностью автономным: если агент имеет мало опыта или не имеет его вообще, он будет вынужден действовать случайным образом, если толь- ко проектировщик не оказал ему определенную помощь. Подобно тому, как эво- люция предоставляет животным необходимое количество врожденных рефлексов,
чтобы после рождения они прожили достаточно долго и успели обучиться осталь- ному самостоятельно, так и искусственному интеллектуальному агенту будет раз- умно предоставить некоторые начальные знания, а не только наделить его спо- собностью обучаться. После достаточного опыта существования в своей среде поведение рационального агента может, по сути, стать независимым от его началь- ных знаний. Следовательно, включение в проект способности к обучению позво- ляет проектировать унифицированных рациональных агентов, которые будут спо- собны успешно действовать в исключительно разнообразных вариантах среды. 2.3. Свойства окружающей среды Теперь, когда у нас есть определение рациональности, почти все готово к тому, чтобы приступить к созданию рациональных агентов. Однако сначала следует вни- мательнее рассмотреть понятие ► проблемной среды, по сути представляющей собой “проблему”, для которой рациональный агент служит “решением”. Начнем с демонстрации того, как определить среду задачи, и проиллюстрируем этот про- цесс на ряде примеров. Затем будет показано, что проблемная среда может иметь целый ряд разновидностей. Свойства окружающей среды непосредственно влия- ют на выбор проектного решения в отношении программы агента. 2.3.1. Определение проблемной среды Выше, при обсуждении рациональности простого агента-пылесоса, нам потре- бовалось определить показатели производительности, среду, а также исполнитель- ные механизмы и датчики этого агента. Все это можно объединить под заголовком проблемная среда. Для тех, кто любит аббревиатуры, можно привести соответ- ствующее сокращение: кРЕАЗ (РегГогшапсе, Епу1гоптеп1, АсШа^огз, 8еп8ог8 — производительность, среда, исполнительные механизмы, датчики). При разработке любого агента первый этап всегда должен заключаться в определении проблемной среды с наибольшей возможной полнотой. Мир пылесоса — это очень простой пример, поэтому давайте рассмотрим бо- лее сложную задачу: автоматизированный водитель такси. На рис. 2.4 представле- но общее описание РЕА8 для такого такси. Ниже каждый элемент этого описания будет рассмотрен более подробно. Итак, какими могут быть показатели производительности, к которым дол- жен будет стремиться наш автоматизированный водитель? Желательные качества включают успешное достижение пункта назначения; минимизацию расхода топли- ва и износа автомобиля; минимизацию времени поездки или ее стоимости; мини- мизацию нарушений правил дорожного движения и числа помех, создаваемых для других водителей; максимизацию безопасности и комфорта пассажиров; максими- зацию прибыли. Очевидно, что некоторые из этих целей противоречат друг другу, поэтому потребуется найти некий компромисс.
Тип агента Показатели производительности Среда Исполнительные механизмы Датчики Водитель Безопасная, быстрая и Дороги, Рулевое управление, Видеокамеры, такси комфортная езда с соблюдением правил дорожного движения, максимизация прибыли, минимизация влияния на других участников дорожного движения различные транспортные средства, полиция, пешеходы, клиенты, погода акселератор, тормоза, клаксон, световые указатели, дисплей, речь дальномер, спидометр, одометр, акселерометр, датчик 6Р$, датчики двигателя, микрофоны, сенсорный экран Рис. 2.4. РЕА8-описание проблемной среды для автоматизированного водителя такси Далее, что представляет собой дорожная среда, в которой будет функциониро- вать водитель такси? Любому водителю такси приходится иметь дело с различными дорогами, начиная от сельских улочек и городских переулков до 12-полосных ав- тострад. На любых дорогах может присутствовать другой движущийся транспорт, пешеходы и бездомные животные, могут проводиться дорожные работы, встречать- ся полицейские машины, попадаться лужи и выбоины. Таксист также должен вза- имодействовать с потенциальными и действительными пассажирами. Существуют и некоторые дополнительные аспекты. Так, для такси в Южной Калифорнии снег редко бывает проблемой, тогда как на Аляске будет меньше дней, когда его нет. Движение на дорогах может быть правосторонним или левосторонним, поэтому придется учитывать этот факт, если требуется, чтобы агент был более гибким и мог успешно функционировать и в Великобритании, Таиланде или Японии. Очевидно, что чем более ограничена среда, тем проще задача проектирования. В число исполнительных механизмов автоматизированного такси обязатель- но войдут все механизмы, доступные водителю-человеку, управление двигателем посредством педали акселератора, ручное и ножное управление тормозами и ру- левое управление. Кроме того, понадобятся средства вывода на экран дисплея или синтезатор голоса, чтобы общаться с пассажирами, и, возможно, какие-то меха- низмы общениями с другими транспортными средствами, вежливо или наоборот. Главные датчики агента — водителя такси должны включать одну или более видеокамер, чтобы можно было наблюдать за происходящим, а также лидар и уль- тразвуковые датчики для определения расстояния до других машин и препятствий. Чтобы избежать штрафов за превышение скорости, в такси должен быть спидо- метр, а для правильного управления машиной, особенно на поворотах, в ней дол- жен быть установлен акселерометр. Для определения текущего состояния обо- рудования автомобиля достаточно будет обычного набора датчиков в двигателе, топливной и электрической системе. Как и многие люди-водители, агент-таксист может нуждаться в доступе к системе ОРЗ, чтобы не потеряться в пути. И наконец, для получения от пассажира информации о требуемом пункте назначения потребу- ется сенсорный экран или система голосового ввода.
На рис. 2.5 в общих чертах приведены основные элементы РЕА8 для целого ряда прочих типов агентов. Дополнительные примеры приведены в упражнени- ях 2.4 и 2.5. Эти примеры включают как физические, так и виртуальные проблем- ные среды. Обратите внимание, что виртуальные проблемные среды могут быть такими же сложными, как и “реальный” мир, например ► программный агент (или программный робот либо ► программный бот), который проводит аукцион и перепродает веб-сайты, имеет дело с миллионами других пользователей и мил- лиардами объектов, многие из которых имеют реальное отображение. Тип агента Показатели производительности Среда Исполнительные механизмы Датчики Медицинская диагностическая система Выздоровление пациентов, снижение стоимости Пациенты, больница, персонал Дисплей вопросов, анализы, диагнозы, лечение, уход Сенсорный экран, голосовой ввод, система поиска Система анализа изображений, полученных со спутника Корректировка, категоризация объектов, территория Спутник на орбите, система связи, погодные условия Отображение изображений, категоризация Цифровая камера с высоким разрешением Робот- сортировщик деталей Процент деталей в контейнере годных Лента конвейера, детали на ленте, контейнеры Манипулятор с шарнирами, захват Видеокамера, датчик касания, датчики угла в шарнирах Контроллер очистительной установки Степень очистки, производительность, безопасность Очистительная установка, входное сырье, операторы Вентили,насосы, нагреватели, смесители, дисплеи Датчики температуры, давления, потока, химические сенсоры Интерактивная система обучения английскому языку Оценки учащихся при прохождении тестов Группа учащихся, агентство тестирования Дисплей упражнений, обратная связь, речевой вывод Ввод с клавиатуры, голосовой ввод Рис. 2.5. Примеры типов агентов и описания их РЕА8 2.3.2. Свойства проблемной среды Очевидно, что разнообразие вариантов проблемной среды, которые могут воз- никать в приложениях ИИ, огромно. Тем не менее существует возможность опре- делить относительно небольшое количество измерений, по которым варианты проблемной среды можно будет классифицировать. Эти измерения в значитель- ной степени определяют наиболее подходящую конструкцию агента и примени- мость каждого из основных семейств методов для его реализации. В этом разделе сначала будет приведен список предлагаемых измерений, а затем проанализиро- вано несколько вариантов проблемной среды для иллюстрации этих идей. Приве- денные здесь определения являются неформальными; более точные определения и примеры вариантов среды каждого типа будут описаны в последующих главах.
►Полностью наблюдаемая или ► частично наблюдаемая среда. Если дат- чики агента обеспечивают ему доступ к полной информации о состоянии среды в каждый момент времени, такая проблемная среда называется полностью наблю- даемой. Фактически проблемная среда будет полностью наблюдаемой, если дат- чики анализируют все ее аспекты, релевантные для выбора агентом действия; при этом релевантность, в свою очередь, зависит от показателей производительности. Полностью наблюдаемые среды очень удобны, поскольку агенту не требуется под- держивать какое-либо внутреннее состояние для того, чтобы быть в курсе все- го происходящего в его мире. Среда может оказаться частично наблюдаемой из- за шума и неточных датчиков или из-за того, что отдельные характеристики ее состояния просто отсутствуют в информации, поступающей от датчиков. Напри- мер, агент-пылесос, в котором имеется только локальный датчик мусора, не может определить, есть ли мусор в других квадратах, а автоматизированный водитель такси не имеет сведений о том, какие маневры намереваются выполнить на дороге другие водители. Если агент вообще не имеет датчиков, то среда является ► нена- блюдаемой. Можно подумать, что в таких случаях положение агента безнадежно, но, как будет показано в главе 4, цели агента все еще могут оказаться достижимы- ми, иногда с уверенностью. ►Одноагентная или ► мультнагентная среда. Различие между одноагентны- ми и мультиагентными средами, на первый взгляд, может показаться достаточно простым. Например, очевидно, что агент, самостоятельно решающий кроссворд, находится в одноагентной среде, а агент, играющий в шахматы, действует в дву- хагентной среде. Однако здесь имеется несколько тонких нюансов. Во-первых, выше было указано, на каком основании некоторая сущность может рассматри- ваться как агент, но не было пояснено, какие сущности должны рассматриваться как агенты. Должен ли агент А (например, водитель такси) считать агентом объ- ект В (другой автомобиль), или он может относиться к нему просто как к объекту, поведение которого определяется законами физики, подобно волнам, набегающим на берег, или листьям, трепещущим на ветру? Ключевое различие состоит в том, следует или не следует описывать поведение объекта В как направленное на мак- симизацию его собственных показателей производительности, величина которых зависит от поведения агента А. Например, в шахматах соперничающая сущность В пытается максимизировать свои показатели производительности, а по правилам шахмат это ведет к миними- зации показателей производительности агента А. Следовательно, шахматы — это ► конкурентная мультнагентная среда. С другой стороны, в проблемной среде агента — водителя такси предотвращение столкновений максимизирует показа- тели производительности всех агентов, поэтому она может служить примером ча- стично ► кооперативной мультиагентной среды. Она также является частично конкурентной, поскольку, например, каждую парковочную площадку может занять только один автомобиль.
Проблемы проектирования агентов, действующих в мультиагентной среде, ча- сто совершенно отличаются от проблем агентов, с которыми приходится иметь дело в одноагентных проблемных средах. Например, в мультиагентной среде од- ним из признаков рационального поведения часто бывает поддержка коммуника- ции между агентами, а в некоторых вариантах частично наблюдаемых конкурент- ных сред рациональным будет стохастическое, случайное поведение, поскольку оно позволяет избежать ловушек предсказуемости. ►Детерминированная или ►недетерминированная среда. Если следующее состояние среды полностью определяется текущим состоянием и действием, вы- полненным агентом, то такая среда называется детерминированной; в противном случае она является недетерминированной. В принципе, в полностью наблюдае- мой детерминированной среде агенту не приходится действовать в условиях нео- пределенности. Но если среда — частично наблюдаемая, то может создаться впе- чатление, что она является недетерминированной. Большинство реальных ситуаций являются настолько сложными, что просто невозможно отслеживать историю всех их ненаблюдаемых аспектов, и из практи- ческих соображений их следует рассматривать как недетерминированные. В этом смысле проблемная среда агента — водителя такси, очевидно, будет недетермини- рованной, поскольку никто не может точно предсказать поведение других участ- ников движения. Более того, даже в собственном автомобиле неожиданно может произойти прокол шины или его двигатель откажет без какого-либо предупрежде- ния. Мир пылесоса в том виде, в каком он был описан выше, является детермини- рованным, но другие варианты этой среды могут включать недетерминированные элементы, такие как случайное появление мусора и ненадежная работа механизма всасывания пылесоса (см. упражнение 2.15). И еще одно, последнее, замечание: в отношении свойств среды многие исполь- зуют слово ►стохастическая как синононим слова “недетерминированная”, но авторы данной книги проводят различие между этими двумя терминами. Мы гово- рим, что модель среды является стохастической, если в ее определении явно при- сутствуют вероятности (например, “завтра возможен дождь с вероятностью 25%”) и недетерминированной, если потенциальные возможности перечисляются без ко- личественного определения (например, “завтра есть вероятность дождя”). ► Эпизодическая или ► последовательная среда. В эпизодической проблем- ной среде опыт агента состоит из неразрывных эпизодов. Каждый эпизод вклю- чает в себя сначала восприятие среды агентом, а затем выполнение одного дей- ствия. При этом очень важно то, что следующий эпизод не зависит от действий, предпринятых в предыдущих эпизодах. Эпизодическими являются многие зада- чи классификации. Например, агент, который должен распознавать дефектные де- тали на сборочной линии, формирует каждое решение применительно к текущей детали независимо от предыдущих решений; более того, от текущего решения не зависит то, будет ли определена как дефектная следующая деталь. С другой сторо- ны, в последовательных средах текущее решение может повлиять на все будущие
решения.4 Последовательными являются такие задачи, как игра в шахматы и во- ждение такси: в обоих случаях кратковременные действия агента могут иметь дол- говременные последствия. Эпизодические среды намного проще последователь- ных, поскольку в них агенту не нужно думать наперед. ► Статическая или ► динамическая среда. Если среда может измениться за то время, пока агент выбирает очередное действие, то такая среда называется ди- намической для данного агента. В противном случае она является статической. Действовать в условиях статической среды проще, поскольку агенту не требуется наблюдать за миром в процессе выработки решения в отношении очередного дей- ствия, к тому же нет необходимости беспокоиться о затраченном на это времени. С другой стороны, динамическая среда как бы непрерывно спрашивает у агента, что он собирается делать, и если он еще ничего не решил, то это воспринимается как решение ничего не делать. Если сама среда с течением времени не изменяется, а изменяются лишь показатели производительности агента, то такую среду приня- то называть ► полудинамической. Очевидно, что среда вождения такси является динамической, поскольку другие автомобили и само такси продолжают движение в то время, когда алгоритм вождения определяет, что делать дальше. Игра в шах- маты с контролем времени является полудинамической, а задача решения крос- сворда — статической. ►Дискретная или ►непрерывная среда. Различие между дискретным и не- прерывным типами среды может относиться к состоянию среды, способу учета времени, а также к восприятию и действию агента. Например, среда игры в шах- маты имеет конечное количество различных состояний (без учета времени). Так- же игра в шахматы связана с дискретным множеством восприятий и действий. Вождение такси — это проблемная среда с непрерывно меняющимся состояни- ем и непрерывно текущим временем, поскольку скорость и местонахождение са- мого такси и других транспортных средств изменяются в определенном диапазо- не непрерывных значений, причем эти изменения происходят во времени плавно. Действия по вождению такси также являются непрерывными (непрерывная регу- лировка угла поворота руля и т.д.). Строго говоря, входные данные от цифровых видеокамер поступают дискретно, но обычно рассматриваются как представляю- щие непрерывно изменяющиеся интенсивности и положения. ► Известная и ►неизвестная среда. Строго говоря, это различие относится не к окружающей среде самой по себе, а к состоянию знаний агента (или его раз- работчика) о действующих в ней “законах физики”. В известной среде результаты (или вероятности исхода, если среда является недетерминированной) определены для всех действий. Очевидно, что, если среда неизвестна, агент должен будет изу- чить, как она функционирует, чтобы принимать правильные решения. 4 Термин “последовательный” используется также в компьютерных науках как анто- ним термина “параллельный”. Эти два толкования одного термина никак не связаны одно с другим.
Различие между известными и неизвестными средами вовсе не такое, как меж- ду полностью наблюдаемой и частично наблюдаемой средами. Вполне возмож- но, что известная среда может быть частично наблюдаемой, например в карточ- ном пасьянсе игроку известны все правила, но он еще не видит карт, которые пока не были перевернуты. И наоборот, неизвестная среда может быть полностью на- блюдаемой, — в новой видеоигре ее интерфейс может быть представлен на экра- не полностью, но назначение отдельных его элементов будет неизвестно, пока они не будут опробованы. Как было отмечено в разделе 2.2.1, сам показатель производительности может быть пока неизвестен: либо потому, что разработчик не знает, как правильно его описать, либо потому, что конечный пользователь — чьи предпочтения наиболее важны — пока неизвестен. Например, водитель такси обычно не знает, что пред- почитает новый пассажир: неторопливую или достаточно быструю езду, осторож- ный или агрессивный стиль вождения. Виртуальный личный помощник начина- ет свою работу, ничего не зная о личных предпочтениях своего нового владельца, В подобных случаях агент может узнать больше о требуемых показателях произво- дительности, лишь исходя из последующих взаимодействий с разработчиком или пользователем. Такой подход, в свою очередь, предполагает, что проблемная среда обязательно должна рассматриваться как мультнагентная. Наиболее сложный вариант среды — это частично наблюдаемая, мультиа- гентная. недетерминированная, последовательная, динамическая, непрерывная и неизвестная среда. Задача вождения такси является сложной во всех этих смыс- лах, за исключением того, что эта проблемная среда водителю в основном извест- на. Вождение взятого напрокат автомобиля в новой стране с незнакомой геогра- фией, иными правилами дорожного движения и при наличии нервных пассажиров является задачей, намного более впечатляющей. На рис. 2.6 перечислены свойства ряда знакомых сред. Обратите внимание, что в отдельных случаях приведенные в ней описания являются слишком краткими и сухими. Например, задача медицинской диагностики указана как одноагентная, поскольку ход болезни пациента нецелесообразно моделировать как агента, одна- ко в действительности медицинская диагностическая система вполне может иметь дело с отказывающимися подчиняться пациентами либо со скептицизмом меди- цинского персонала, в результате чего эта среда может приобретать свойства муль- тиагентной. Кроме того, задача медицинской диагностики будет иметь эпизоди- ческий характер, если ее назначение заключается лишь в постановке диагноза по заданному перечню симптомов, но она будет последовательной, если предусма- тривается выполнение серии анализов, оценка прогресса в ходе лечения, работа с группой пациентов и т.д. На рис. 2.6 нет столбца “Известная/неизвестная”, поскольку, как уже объясня- лось выше, эта характеристика не определяется исключительно самой проблемной средой. Для некоторых сред, таких как шахматы или покер, будет довольно просто предоставить агенту полные знания о действующих в них правилах, тем не менее
было бы интересно посмотреть, как агент сможет научиться играть в эти игры без этих знаний. Репозиторий кода, относящийся к данной книге (атта.сз.Ьегке1еу. ес1и), включает реализации нескольких вариантов проблемных сред, а также имитатор среды общего назначения, предназначенные для оценки производительности аген- та. Такие эксперименты часто выполняются применительно не к одной среде, а ко многим ее вариантам, выбранным из некоторого ► класса вариантов среды. Например, чтобы оценить действия водителя такси в моделируемой ситуации до- рожного движения, может потребоваться провести много сеансов моделирования с различными условиями трафика, освещения и погоды. В конечном счете нас бу- дут интересовать средние показатели производительности агента для выбранного класса вариантов сред. Среда проблемы Наблюда- емость Агенты Тип Повторяемость Статичность Дискретность Решение кроссворда Полная Один Детерми- нированная Последовательная Статическая Дискретная Игра в шахматы с контролем времени Полная Много Детерми- нированная Эпизодическая Полудинами- ческая Дискретная Игра в покер Частичная Много Недетерми- нированная Последовательная Статическая Дискретная Игра в нарды Полная Много Недетерми- нированная Последовательная Статическая Дискретная Вождение такси Частичная Много Недетерми- нированная Последовательная Динамическая Непрерывная Медицинская диагностика Частичная Один Недетерми- нированная Последовательная Динамическая Непрерывная Анализ изображений Полная Один Детерми- нированная Эпизодическая Полудинами- ческая Непрерывная Робот—сборщик деталей Частичная Один Недетерми- нированная Эпизодическая Динамическая Непрерывная Система контроля очистки Частичная Один Недетерми- нированная Последовательная Динамическая Непрерывная Система обучения английскому языку Частичная Много Недетерми- нированная Последовательная Динамическая Дискретная Рис. 2.6. Примеры проблемных сред и их характеристики 2.4. Структура агентов________________________________________ До сих пор обсуждение агентов проводилось посредством анализа их поведе- ния — действий, выполняемых агентом после получения любой заданной после- довательности восприятия. Теперь нам поневоле придется сменить тему и перей- ти к обсуждению того, как организовано их внутреннее функционирование. Задача искусственного интеллекта состоит в разработке ► программы агента, реали- зующей функцию агента, т.е. отображающей последовательность восприятия на
действия. Будем предполагать, что эта программа должна работать в своего рода вычислительном устройстве с физическими датчиками и исполнительными ме- ханизмами. В целом совокупность этих компонентов именуется в данной книге ► архитектурой агента. Таким образом, структуру агента можно представить следующей формулой: а%еп1 = агскНесШге + рго^гагп. Очевидно, что выбранная программа должна быть подходящей для существу- ющей архитектуры. Так, если в программе предполагается выдача таких указаний, как №а!к (идти), то в архитектуре следует предусмотреть наличие ног. Архитекту- ра может представлять собой обычный персональный компьютер или же может быть реализована в виде роботизированного автомобиля с несколькими бортовыми компьютерами, видеокамерами и другими датчиками. В общем случае архитектура должна обеспечить передачу в программу результатов восприятия, поступающих отдатчиков, выполнение самой программы агента и передачу исполнительным ме- ханизмам выбранных программой вариантов действий по мере их генерации. Ос- новная часть данной книги посвящена проектированию программ агентов, и только главы 24 и 25 касаются непосредственно датчиков и исполнительных механизмов. 2.4.1. Программы агентов Все программы агентов, которые будут разработаны в этой книге, имеют одну и ту же структуру: они принимают от датчиков в качестве входных данных результа- ты текущего восприятия и возвращают исполнительным механизмам выбранный вариант действия.5 Необходимо указать на различие между программой агента, которая принимает в качестве входных данных текущие восприятия, и функцией агента, которая принимает на входе всю историю восприятия. Программа агента получает в качестве входных данных только результаты текущего восприятия, по- скольку больше ничего не может узнать из своей среды; если действия агента за- висят от всей последовательности актов восприятия, то агент должен сам запоми- нать результаты этих актов восприятия. Для описания программ агентов будет использоваться простой язык псевдо- кода, определенный в приложении Б. (Интерактивный репозиторий кода содер- жит реализации программ на реальных языках программирования.) Например, на рис. 2.7 представлена довольно простая программа агента, которая регистри- рует последовательность восприятия, а затем использует полученную последо- вательность для доступа по индексу к таблице действий с целью определения, что нужно сделать. Таблица — в данном случае из примера для мира пылесоса, 5 Существуют и другие варианты структуры программы агента, например можно было бы использовать в виде программ агентов сопроцедуры, которые асинхронно взаимодей- ствуют со средой. Каждая такая сопроцедура имеет входной и выходной порты, а ее ра- бота организована в виде цикла, в котором из входного порта считываются результаты восприятий, а в выходной порт записываются варианты действий.
представленного на рис. 2.3 — явно представляет функцию агента, воплощаемую данной программой агента. Чтобы создать рационального агента таким способом, проектировщики должны сформировать таблицу, которая содержит подходящее действие для любой возможной последовательности актов восприятия. ГипсНоп ТАВЕЕ-ВК1УЕМ-АСЕМТ(регсерО геСигпз действие асИоп рег$1$(еп<: регсерК, последовательность восприятия, исходно пустая 1аЫе, таблица действий, индексированная по последовательностям восприятия, исходно полностью определенная добавить результат воспрятия регсер! в конец последовательности регсер1$ асИоп <— ЬООКЫР (регсер{8,1аЫё) геЩгп асИоп Рис. 2.7. Программа ТАВЬЕ-ОШУЕМ-АОЕМТ вызывается для каждого нового воспри- ятия и каждый раз возвращает действие. Она сохраняет полную последовательность восприятия в памяти Поучительно разобраться в том, почему табличный подход к конструированию агента неизбежно обречен на провал. Пусть V— набор всех возможных восприя- тий и пусть Т — срок существования агента (общее количество актов восприятия, которое он может получить). В этом случае таблица поиска будет содержать 2^7=1|7?|/ записей. Рассмотрим случай автоматизированного такси: визуальные входные данные с одной видеокамеры (обычно их восемь) поступают со скоростью примерно 70 Мбайт/с (30 кадров в секунду, в кадре 1080 х 720 пикселей с 24 бита- ми цветовой информации). На один час езды потребуется справочная таблица более чем с 10 записей! Даже для игры в шахматы (крошечного, хорошо изучен- ного фрагмента реального мира) поисковая таблица должна содержать не менее 1О150 записей. Для сравнения, количество атомов в наблюдаемой части Вселенной оценивается менее чем в 1080. Ошеломляющий размер этих таблиц означает, что: а) ни один физический агент в этой Вселенной не будет иметь достаточно места для хранения подобной таблицы; б) любому проектировщику просто не хватит вре- мени для ее создания; и в) ни один агент не сможет обучиться всему, что содержит- ся во всех правильных записях таблицы на собственном опыте. Однако, несмотря на все сказанное выше, программа Тавье-Омуем-Асемт дей- ствительно делает то, что мы хотели (при условии, что таблица заполнена пра- вильно): реализует желаемую функцию агента. Ключевая задача ИИ заключается в выяснении того, как создавать про- граммы, которые в рамках возможного обеспечивают рациональное пове- дение агента с использованием небольшого объема программного кода, а не обширных таблиц с множеством записей.
Существует много примеров, свидетельствующих о том, что подобную зада- чу можно успешно решить в других областях. Например, огромные таблицы ква- дратных корней, которыми пользовались инженеры и школьники до 1970-х годов, теперь заменены программой из пяти строк, работающей в электронных кальку- ляторах, — для выполнения расчетов в ней применяется метод Ньютона. Вопрос заключается в том, могут ли достигнутые в области ИИ результаты предоставить для интеллектуального поведения в целом то, что Ньютон сделал для упрощения вычисления квадратных корней? Авторы данной книги полагают, что ответ на этот вопрос является положительным. В остальной части этого раздела обсуждаются четыре основных вида программ агентов, воплощающих принципы, лежащие в основе почти всех интеллектуаль- ных систем. • Агенты с простым рефлекторным поведением • Агенты с поведением, основанным на модели • Агенты, действующие на основе цели • Агенты, действующие на основе полезности В агентской программе каждого вида комбинируются определенные компонен- ты, в частности способы генерации действий. В разделе 2.4.6 в общих словах объ- ясняется, как преобразовать агентов всех этих типов в обучающихся агентов, спо- собных повысить производительность своих компонентов, чтобы генерировать лучшие действия. И наконец, в разделе 2.4.7 описываются различные способы, по- зволяющие представить сами компоненты и их работу в агенте. Все это разнообра- зие обусловливает основной принцип организации как области исследований ИИ, так и самой этой книги. 2.4.2. Агенты с простым рефлекторным поведением Простейшим видом агента является ► простой рефлекторный агент. Такие агенты выбирают действия на основе текущего восприятия, игнорируя всю осталь- ную историю восприятия. Например, агент-пылесос, таблица функций которого представлена на рис. 2.3, является простым рефлекторным агентом, поскольку его решения основаны только на информации о текущем местоположении и о том, со- держит ли оно мусор. Программа для данного агента приведена на рис. 2.8. Обратите внимание, что программа агента-пылесоса действительно очень не- велика в сравнении с таблицей функций этого агента. Наиболее очевидное сокра- щение произошло в результате игнорирования истории восприятия, что позволи- ло уменьшить количество анализируемых последовательностей восприятия с 4Г до просто 4. Еще одно небольшое уменьшение связано с тем фактом, что, когда в те- кущем квадрате есть мусор, выбираемое действие не зависит от местоположения. Хотя программа агента была записана с использованием операторов И-(Ьеп-е1$е, она достаточно проста, чтобы ее можно было реализовать в виде логической схемы.
ГипсНоп КЕЕЕЕХ-УАсиим-АбЕЬГГ([/осай*ол, геСигпз действие асйоп И 81а1из = О1г1у 1Ьеп геСигп 8иск е!$е И 1осаИоп = А 1Ьеп геСигп Нл&Ы е!$е И 1осаИоп = В 1Ьеп геСигп Ье/1 Рис. 2.8. Программа агента для простого рефлекторного агента в мире пылесоса с двумя помещениями. Эта программа реализует функцию агента, представленную на рис. 2.3 Простое рефлекторное поведение встречается и в более сложных средах. Пред- ставьте себя в качестве водителя автоматизированного такси. Если автомобиль пе- ред вами стал тормозить и его стоп-сигналы засветились, вы должны заметить это и также немедленно начать торможение. Другими словами, необходима опреде- ленная обработка визуальных сигналов для выявления ситуации, которую мы обо- значим как “саг-1п-/гоп1-18-Ьгак1п^ — автомобиль впереди тормозит. Ее обнаруже- ние инициирует в программе агента некоторую связь с действием 1пШа1е~Ъгаклп^ т.е. начать торможение. Подобную связь называют ► правилом “условие-дей- ствие”,6 которое можно сформулировать как 1Г саг-1п-/гоп1-18-Ьгак1п^ 1Ьеп МИа1е-Ьгак1п^, Люди также обладают большим количеством таких связей, причем одни из них представляют собой сложные реакции, освоенные в результате обучения (как при вождении автомобиля), а другие являются врожденными рефлексами (например, моргание при приближении к глазу постороннего предмета). В последующих гла- вах этой книги будет представлено несколько различных способов, с помощью ко- торых можно организовать обучение агента и реализацию таких связей. Программа, приведенная на рис. 2.8, предназначена для одной конкретной сре- ды мира пылесоса. Более общий и гибкий подход состоит в том, чтобы вначале со- здать интерпретатор общего назначения для правил “условие-действие”, а затем определить наборы правил для конкретной проблемной среды. На рис. 2.9 приве- дена структура такой общей программы в схематической форме и показано, каким образом правила “условие-действие” позволяют агенту создать связь от восприя- тия к действию. (Не следует беспокоиться, если такой способ покажется тривиаль- ным; вскоре он обнаружит намного более интересные возможности.) Программа агента, представленного на рис. 2.9, приведена на рис. 2.10. Функ- ция 1ыТЕКРКЕТ-^рит вырабатывает абстрагированное описание текущего со- стояния по результатам восприятия, а функция Ячье-Матсн возвращает первое правило из общего набора правил, соответствующее заданному описанию состоя- ния. Обратите внимание, что приведенное здесь описание в терминах “правил” и 6 Эти связи также могут называться правилами ситуация-действие, продукциями или правилами И-Сйеп.
“соответствия” является чисто концептуальным. Как уже отмечалось выше, дей- ствительные реализации могут быть такими же простыми, как и совокупность ло- гических элементов, реализующих логическую схему. В качестве альтернативы может быть использована “нейронная” схема, в которой логические элементы за- менены нелинейными элементами искусственных нейронных сетей (см. главу 21). Рис. 2.9. Схематическое представление простого рефлекторного агента. Здесь пря- моугольники использованы для обозначения текущего внутреннего состояния про- цесса принятия решения агентом, а овалы — для представления фоновой информа- ции, используемой в этом процессе Простые рефлекторные агенты имеют замечательное свойство быть действи- тельно очень простыми, но при этом обладают ограниченным интеллектом. Агент, программа которого приведена на рис. 2.10, будет работать, Столько если пра- вильное решение может быть принято на основе исключительно текущего восприятия, т.е. только в том случае, когда среда является полностью наблюдаемой. ГипсНоп 81МРЕЕ-ЯЕРЕЕХ-АСЕКТ(регсерО ге<игп$ действие асИоп рег$1$1еп<: ги1е$, множество правил “условие-действие” 8!а!е <— 1ытЕКРКЕТ-1нРЕТ(регсер/) ги1е КЕЕЕ-МАТСН(5/а/е, ги1ез) асИоп гм/е.Астюк ге!игп асИоп Рис. 2.10. Простой рефлекторный агент. Он действует в соответствии с правилом, условие которого соответствует текущему состоянию, определяемому восприятием Внесение даже небольшой доли ненаблюдаемости может вызвать серьез- ное нарушение в работе такого агента. Например, в приведенном выше правиле
торможения принято предположение, что условие саг4п-^оп1-18-Ьгакт§ может быть определено из текущего восприятия (единственного кадра видеоизображе- ния). Эго возможно, если стоп-сигналы у движущегося впереди автомобиля распо- ложены некоторым стандартным образам (а значит, однозначно идентифицируют- ся). К сожалению, очень часто более старые модели имеют другие конфигурации расположения габаритных огней, сигналов поворота и стоп-сигналов, поэтому не всегда по единственному изображению можно с уверенностью определить, тормо- зит этот автомобиль или нет. Простой рефлекторный агент, ведущий автомобиль вслед за таким автомобилем, либо будет часто тормозить без какой-либо необходи- мости, либо, что еще хуже, вообще не станет тормозить. Появление подобной проблемы можно отметить и в мире пылесоса. Предполо- жим, что у простого рефлекторного агента-пылесоса отказал датчик местонахож- дения и работает только датчик мусора. Такому агенту будут доступны только два возможных восприятия: [Р/г/у] и [С1еап\. Он может выполнить действие 8иск в от- вет на восприятие [2)/пу], но что он должен делать в ответ на восприятие [С/еал]? Выполнение действия Ье/1 приведет к отказу (и надолго), если окажется, что он предпринял это действие в квадрате А, а действие приведет к таким же ре- зультатам, если будет выполняться в квадрате В. Для простых рефлекторных аген- тов, действующих в частично наблюдаемых средах, часто неизбежно попадание в бесконечные циклы. Выход из бесконечных циклов становится возможным, если агент обладает спо- собностью ► рандомизировать свои действия, т.е. вводить в них элемент случай- ности. Например, если агент-пылесос получает результат восприятия [С/еап], то может подбросить монету, чтобы выбрать между действиями Ье/1 и Легко по- казать, что агент достигнет другого квадрата в среднем за два этапа. Затем, если в этом квадрате имеется мусор, пылесос его уберет, и задача очистки будет выпол- нена. Поэтому рандомизированный простой рефлекторный агент может превзойти по своей производительности детерминированного простого рефлекторного агента. Выше (в разделе 2.3) отмечалось, что в некоторых мультиагентных вариантах среды может оказаться рациональным рандомизированное поведение подходящего типа, тогда как в одноагентных вариантах среды рандомизация обычно не являет- ся рациональной. Это лишь полезный прием, который может помочь простому реф- лекторному агенту в некоторых особых ситуациях. В большинстве случаев добить- ся гораздо большего можно с помощью более сложных детерминированных агентов. 2.4.3. Агенты с поведением, основанным на модели Наиболее эффективный способ действия агента в условиях частичной наблю- даемости — отслеживать ту часть мира, которую он в данный момент не ви- дит. Это означает, что агент должен поддерживать некоторого рода ► внутрен- нее состояние, которое будет зависеть от истории восприятия и поэтому отражать по крайней мере некоторые ненаблюдаемые аспекты текущего состояния. Для проблемы торможения поддержка внутреннего состояния не требует слишком
больших затрат — достаточно лишь сохранить предыдущий кадр, отснятый виде- окамерой. Это позволит агенту определять моменты, когда два красных световых сигнала с обеих сторон идущего впереди автомобиля одновременно загораются или гаснут. Для решения других задач вождения, таких как переход с одной поло- сы движения на другую, агент должен следить за тем, где находятся другие авто- мобили, если он не может видеть все эти автомобили одновременно. А для того, чтобы вождение было вообще возможно, агенту необходимо отслеживать, где на- ходятся ключи от его автомобиля. Для обновления этой внутренней информации о состоянии во времени требует- ся, чтобы в программе агента в некоторой форме были закодированы знания двух видов. Во-первых, нужна определенная информация о том, как мир изменяется во времени, которую можно разделить примерно на две части: результаты действий агента и как мир изменяется независимо от агента. Например, когда агент пово- рачивает рулевое колесо по часовой стрелке, автомобиль поворачивает направо, а когда идет дождь, видеокамеры автомобиля могут быть забрызганы. Подобные знания о том, “как работает мир”, реализованные в виде простых логических схем или сложных научных теорий, называются ► моделью мира. Во-вторых, нам нужна информация о том, как состояние мира отражается в восприятии агента. Например, если автомобиль впереди начинает торможение, на изображении с видеокамеры, обращенной вперед, появляются одна или больше подсвеченных красных областей, а если любая видеокамера забрызгана, на полу- ченном с нее изображении появляются каплеобразные объекты, частично закрыва- ющие дорогу. Этот вид знаний называют ► моделью сенсоров. Используемые совместно, модель мира и модель сенсоров позволяют агенту сохранить необходимую ему историю состояния мира, насколько это возможно с учетом ограничений, налагаемых его датчиками. Агент, действия которого опреде- ляются с использованием подобных моделей, называется ► агентом с поведени- ем, основанным на модели. На рис. 2.11 приведена структура рефлекторного агента с поведением, основан- ным на модели, действующего с учетом внутреннего состояния, и показано, как текущее восприятие комбинируется с прежним внутренним состоянием для вы- работки обновленного описания текущего состояния на основании модели мира агента. Программа такого агента приведена на рис. 2.12. Особый интерес в ней представляет функция 1)роате-8тате, отвечающая за создание нового описания внутреннего состояния. Детали того, как представляются модели и состояния, ва- рьируются в широких пределах в зависимости от типа среды и конкретной техно- логии, используемой при разработке агента. Вне зависимости от вида используемого представления, агенту редко удает- ся точно определить текущее состояние частично наблюдаемой среды. Поэтому прямоугольник с надписью “Как сейчас выглядит мир” (см. рис. 2.11) в действи- тельности содержит “лучшее предположение” агента об этом (или иногда “луч- шие предположения”, если агент способен поддерживать несколько возможных
вариантов). Например, автоматизированное такси может оказаться не в состоянии увидеть, что происходит за большим грузовиком, который остановился перед ним, и может только гадать о том, что могло послужить причиной задержки. Таким об- разом, может оказаться просто невозможно избежать неопределенности в отноше- нии текущего состояния среды, но агент все равно должен принять решение. Рис. 2.11. Структура рефлекторного агента с поведением, основанным на модели ГипсНоп МооЕЕ-ВА8ЕО-КЕРЕЕХ-АСЕКТ(регсер0 ге1игп8 действие асйоп рег$1$1еп<: $1а1е, представление агента о текущем состоянии мира 1гап8Шоп_гпос1е1, описание, как следующее состояние мира зависит от его текущего состояния и действия хепхогтодеЦ описание, как текущее состояние мира отражается в восприятии агента ги1е$, множество правил “условие-действие” асйоп, последнее по времени действие; исходно не определено 81а1е ирОАТЕ-$ТАТЕ(5/а/е, асйоп, регсерЦ {гапзйюпгподеЦ зепзогтосИе!) ги1е <— КЕ1ЕЕ-МАТСН($йЯе, ги1ез) Рис. 2.12. Рефлекторный агент с поведением, основанным на модели. Он отслежи- вает текущее состояние мира, используя внутреннюю модель, а затем выбирает дей- ствие таким же образом, как и простой рефлекторный агент
2.4.4. Агенты, действующие на основе цели Просто знания чего-либо о текущем состоянии среды не всегда может быть до- статочно для принятия решения о том, что делать. Например, на перекрестке такси может повернуть налево, повернуть направо или поехать прямо. Правильное ре- шение зависит от того, куда это такси должно добраться. Иными словами, агенту требуется не только описание текущего состояния среды, но и информация о цели, представленная тем или иным образом и описывающая желаемые ситуации, на- пример доставку пассажира в место назначения. Программа агента может ком- бинировать эти сведения с информацией о результатах возможных действий (та- кой же, как и та, которая использовалась при обновлении внутреннего состояния рефлекторного агента) для выбора действий, позволяющих достичь данной цели. Структура агента, действующего на основе цели, или, как еще говорят, целена- правленного, показана на рис. 2.13. (Состояние ( Как изменяется мир Датчики _____4_______ Как сейчас выглядит мир ^Сак повлияют мои действия о 2 Что будет, если я выполню действие А ( Цели Какое действие теперь выполнить Агент Исполнительные механизмы Рис. 2.13. Агент, действующий на основе модели и цели. Он следит за состоянием мира, а также за поставленными перед ним целями, которых он пытается достичь, и выбирает действие, позволяющее (в конечном итоге) добиться достижения этих целей Иногда выбор целевого действия является простым, например когда цель до- стигается сразу, после единственного действия. А иногда он сложнее, например когда агенту приходится рассматривать длинную последовательность возмож- ных действий и необходимых условий, чтобы найти способ достижения цели. Для решения столь сложных задач агенту приходится применять различные методы ► поиска и ► планирования — подобластей ИИ, подробно обсуждаемых в гла- вах 3-6 и 11-12 соответственно.
Обратите внимание, что процедура принятия решений такого рода в корне от- личается от описанной выше процедуры применения правил “условие-действие”. В этом случае агенту приходится размышлять о будущем: “Что произойдет, если я сделаю то-то и то-то?” и “Позволит ли это мне достичь успеха?” В конструкции рефлекторных агентов такая информация не представлена явно, поскольку встро- енные правила устанавливают непосредственное соответствие между восприятия- ми и действиями. Обнаружив сигналы торможения движущегося впереди автомо- биля, рефлекторный агент тормозит, и точка. У него нет никакого представления о том, почему он это делает. Целенаправленный агент, увидев стоп-сигналы, тормо- зит потому, что это единственное действие, которое, как он предполагает, позво- лит ему достичь одной из своих целей — избежать столкновения с другими авто- мобилями. Хотя, на первый взгляд, целенаправленный агент выглядит менее эффектив- ным, он более гибок, поскольку знания, на которые опираются его решения, пред- ставлены явно и могут быть модифицированы. Например, поведение целенаправ- ленного агента может легко быть изменено, — чтобы отправить его в другое место назначения, достаточно просто указать его в качестве конечной цели. Правила рефлекторного агента, определяющие, где и в какую сторону он должен поворачи- вать, а когда необходимо следовать прямо, будут применимыми только для одного пункта назначения; чтобы отправить агента в какое-то другое место, все эти пра- вила придется заменить. 2.4.5. Агенты, действующие на основе полезности В большинстве сред для выработки качественного поведения одних только це- лей недостаточно. Например, множество последовательностей действий обеспе- чат прибытие такси к месту назначения (и тем самым достижение поставленной цели), но одни из них позволят сделать это быстрее, безопаснее, надежнее или де- шевле, чем другие. Цели сами по себе позволяют провести лишь простейшее би- нарное различие между состояниями “хорошо” и “не хорошо”. Более общий по- казатель производительности должен допускать сравнение различных состояний мира в соответствии с тем, насколько хороши они будут для агента. Поскольку определение “хорошо” звучит не очень научно, экономисты и специалисты по ком- пьютерным наукам используют вместо него термин ► полезность.7 Выше уже применялся прием, в котором показатель производительности пред- усматривал начисление баллов в соответствии с любой заданной последователь- ностью состояний среды. Такой подход позволяет легко различать более и ме- нее желательные варианты, например, достижения автоматизированным такси пункта назначения. ► Функция полезности агента, по сути, представляет собой 7 Термину “полезность” соответствует англоязычный эквивалент "иШйу”, который в данном контексте обозначает “свойство быть полезным”, а не какое-то иное значение из числа тех, которые приведены для него в англо-русских словарях.
внутреннее отображение его показателей производительности. В тех случаях, ког- да внутренняя функция полезности и внешние показатели производительности согласованы между собой, агент, выбирающий действия исходя из максимизации своей функции полезности, будет проявлять рациональное поведение и в соответ- ствии с его внешними показателями производительности. Следует еще раз подчеркнуть, что это вовсе не единственно возможный спо- соб достижения рациональности, — выше уже была представлена рациональная программа агента для мира пылесоса (см. рис. 2.8). Однако агент, действующий на основе полезности (или, как еще говорят, практичный агент), как и целенаправ- ленный агент, имеет много преимуществ с точки зрения гибкости и возможности обучения. Кроме того, в двух особых ситуациях, когда цели неоднозначны, прак- тичный агент все же сможет принимать рациональные решения. Первый случай: поставленные цели противоречивы, и только некоторые из них могут быть достиг- нуты в ущерб другим (например, скорость и безопасность), — функция полез- ности позволяет найти необходимый компромисс. Второй случай: есть несколь- ко целей, к которым агент может стремиться, но ни одной из них нельзя достичь с уверенностью, — полезность предоставляет возможность сопоставить вероят- ность успеха с важностью целей. В реальном мире частичная наблюдаемость и недетерминированность вездесу- щи и неизбежны, следовательно, принимать решения приходится в условиях нео- пределенности. Технически говоря, рациональный агент, действующий на основе полезности, будет выбирать действие, максимизирующее Дожидаемую полез- ность результатов действия, т.е. полезность, которую он ожидает получить в сред- нем, учитывая вероятности и полезности каждого результата. (В приложении А приведено более точное определение ожидания.) В главе 16 будет показано, что любой рациональный агент должен вести себя так, как если бы он обладал функ- цией полезности, ожидаемое значение которой он пытается максимизировать. По- этому агент, обладающий явно заданной функцией полезности, имеет возможность принимать рациональные решения и способен делать это с помощью алгоритма общего назначения, не зависящего от конкретной максимизируемой функции по- лезности. Благодаря этому “глобальное” определение рациональности (согласно которому рациональными считаются функции агента, имеющие наивысшую про- изводительность) преобразуется в “локальное” ограничение на конструкцию ра- циональных агентов, которое может быть выражено в виде простой программы. Структура агента, действующего на основе полезности (или, иначе говоря, практичного агента), показана на рис. 2.14. Программы агентов, действующих с учетом полезности, приведены в главах 16 и 17, где обсуждается проектирование принимающих решения агентов, способных учитывать неопределенность, свой- ственную недетерминированным и частично наблюдаемым вариантам среды. При- нятие решений в мультиагентной среде также рассматривается в рамках теории полезности, — подробно об этом говорится в главе 18.
Рис. 2.14. Структура агента, действующего на основе модели и полезности. В нем модель мира используется наряду с функцией полезности, оценивающей предпочте- ния агента применительно к состояниям мира. Затем агент выбирает действие, кото- рое ведет к наилучшей ожидаемой полезности. Для вычисления ожидаемой полез- ности выполняется усреднение по всем возможным результирующим состояниям с учетом коэффициента, определяющего вероятность каждого результата В этот момент читатель может задаться вопросом “Это так просто? Мы всего лишь создаем агентов, которые максимизируют ожидаемую полезность... И это все?” Нет сомнения, что такие агенты были бы интеллектуальны, но это совсем непросто. Практичный агент должен моделировать и отслеживать окружающую среду — задачи, решение которых потребовало проведения большого количества исследований в областях восприятия, представления, рассуждения и обучения. Ре- зультаты этих исследований определили содержание многих глав данной книги. Выбор курса на максимизацию полезности действий также является трудной за- дачей, требующей использования хитроумных алгоритмов, описание которых со- ставляет содержание еще нескольких глав. Но даже при использовании этих алго- ритмов идеальная рациональность обычно недостижима на практике по причине их вычислительной сложности, как это отмечалось в главе 1. Следует также заме- тить, что не у всех агентов, действующих на основе полезности, поведение опре- деляется на основе модели. В главах 22 и 26 будет показано, что кбезмодельный агент может посредством обучения выяснить, какое действие будет наилучшим в определенной ситуации, даже не определив точно, какие изменения это действие вызывает в окружающей среде. И наконец, все сказанное выше предполагает, что разработчик агента, безус- ловно, может корректно определить его функцию полезности. В главах 17, 18 и 22 проблема неизвестных функций полезности рассматривается более подробно.
2.4.6. Обучающиеся агенты Выше были описаны программы агентов, в которых применялись различные методы выбора действий. Но до сих пор еще не рассматривался вопрос о том, как создаются программы агентов. В своей знаменитой ранней статье Тьюринг ([2235], 1950) проанализировал идею о том, как фактически должно осущест- вляться программирование предложенных им интеллектуальных машин вручную. Он оценил объем работы, который для этого потребуется, и пришел к такому выво- ду: “Желательно было бы иметь какой-то более продуктивный метод”. Предложен- ный им метод заключался в том, что необходимо создавать обучающиеся машины, а затем проводить их обучение. Сейчас этот метод стал доминирующим при соз- дании наиболее современных систем во многих областях искусственного интел- лекта. Любой тип агента (действующий на основании модели, целенаправленный, практичный и т.д.) может быть создан как обучающийся агент (или нет). Как отмечалось выше, обучение имеет еще одно преимущество: позволяет агенту функционировать в первоначально неизвестной ему среде и становиться более компетентным в сравнении с тем, что обеспечивали лишь его начальные знания. В данном разделе кратко представлены основные сведения об обучающих- ся агентах. Существующие возможности и методы обучения агентов конкретных типов рассматриваются во многих главах данной книги, а в главах 19-22 более подробно описываются сами алгоритмы обучения. Как показано на рис. 2.15, в структуре обучающегося агента можно выде- лить четыре концептуальных компонента. Наиболее важное различие наблюдает- ся между ► обучающим компонентом, отвечающим за внесение улучшений, и ► действующим компонентом, обеспечивающим выбор внешних действий. Дей- ствующим компонентом в этом агенте является то, что до сих пор в данной книге рассматривалось в качестве всего агента в целом: он получает данные восприятия и принимает решение о выполняемом действии. Обучающий компонент исполь- зует информацию обратной связи от ► критика, оценивающего, как действует агент, и определяет, каким образом должен быть модифицирован действующий компонент, чтобы он успешнее действовал в будущем. Конструкция обучающего компонента во многом зависит от конструкции дей- ствующего компонента. Предпринимая попытку спроектировать агента, который будет обучаться определенным способностям, прежде всего необходимо найти от- вет на вопрос “Действующий компонент какого рода потребуется агенту после того, как он будет обучен эффективно выполнять свои функции?” Будет ошибкой поставить во главу угла вопрос “Как можно решить задачу обучения агента выпол- нению требуемых функций?” Только после того как сам агент будет спроектиро- ван, имеет смысл приступать к разработке обучающих механизмов, позволяющих усовершенствовать любую часть этого агента. Компонент “Критик” сообщает обучающему компоненту, насколько хорошо действует агент с учетом установленного стандарта производительности. Этот компонент необходим, поскольку сами результаты восприятия не дают никакой
информации о том, успешно ли действует агент. Например, шахматная програм- ма может получить результаты восприятия, указывающие на то, что она постави- ла мат своему противнику, но ей требуется стандарт производительности, который позволил бы определить, что это — хороший результат; сами данные восприятия ничего об этом не говорят. Важно, чтобы стандарт производительности был посто- янным. В принципе, этот стандарт следует рассматривать как полностью внешний по отношению к агенту, поскольку агент не должен иметь возможности его моди- фицировать так, чтобы он в большей степени соответствовал его собственному по- ведению. Рис. 2.15. Общая структура обучающегося агента. Прямоугольник “Действующий компонент” представляет то, что выше рассматривалось как программа агента в це- лом. Прямоугольник “Обучающий компонент” имеет возможность модифицировать ее с целью повышения производительности агента Последним компонентом обучающегося агента является ► генератор про- блем. Его задача заключается в том, чтобы предлагать действия, которые долж- ны привести к получению нового, информативного опыта. Дело в том, что если действующий компонент будет предоставлен самому себе, он будет продолжать выполнять действия, которые являются наилучшими с точки зрения того, что он уже знает. Но если агент готов к тому, чтобы немного поэкспериментировать и в кратковременной перспективе выполнять действия, которые, возможно, окажутся не совсем оптимальными, он получает возможность обнаружить гораздо лучшие действия с точки зрения долговременной перспективы. Генератор проблем пред- назначен именно для того, чтобы предлагать такие исследовательские действия. Именно этим занимаются ученые, проводя эксперименты. Галилей не считал, что
сбрасывание камней с вершины Пизанской башни является самоцелью. Он не ста- вил задачи просто разбить эти булыжники вдребезги или вправить ими мозги не- удачливым прохожим. Его замысел состоял в том, чтобы изменить взгляды, сло- жившиеся в его собственной голове, сформулировав лучшую теорию движения объектов. Обучающий компонент может вносить изменения в любой из компонентов “знаний”, присутствующих на схемах структуры агентов (см. рис. 2.9, 2.11, 2.13 и 2.14). В простейших случаях обучение будет осуществляться непосредственно на основании последовательности актов восприятия. Наблюдение за парами последо- вательных состояний среды может позволить агенту получить информацию о том, “какое влияние оказывают мои действия” и “как изменяется мир” в ответ на эти действия. Например, после того как водитель автоматизированного такси приме- нит определенное тормозное давление во время езды по мокрой дороге, он сможет узнать, какое снижение скорости при этом фактически было достигнуто и наблю- далось ли скольжение по дороге. На основании полученных результатов генератор проблем может идентифицировать определенные части модели, нуждающиеся в улучшении, и предложить серию экспериментов в виде испытания действия тор- мозов на разных дорожных покрытиях и в разных погодных условиях. Для агента, действующего на основе модели, улучшение ее компонентов таким образом, чтобы они точнее соответствовали реальности, почти всегда является хо- рошей идеей и не зависит от внешнего стандарта производительности. (Иногда с вычислительной точки зрения лучше иметь простую, слегка неточную модель, чем совершенную, но невероятно сложную.) Информация из внешнего стандарта потребуется вам лишь при необходимости обучения рефлексного компонента или функции полезности. Например, предположим, что агент — водитель такси, не получает чаевые о тех пассажиров, которые после поездки чувствовали себя утомленными и полно- стью разбитыми. Внешний стандарт производительности должен информировать агента, что отсутствие чаевых — это отрицательный вклад в его общую произво- дительность. В этом случае в результате обучения агент получает возможность усвоить, что грубые маневры, раздражающие и утомляющие пассажиров, не по- зволяют повысить оценку его собственной функции полезности. В этом смысле стандарт производительности позволяет выделить определенную часть входных результатов восприятия как ► вознаграждение (или ► штраф), непосредственно предоставляющее обратную связь в отношении качества поведения агента. Имен- но с этой точки зрения в жизни животных можно рассматривать такие жестко за- крепленные стандарты производительности, как боль или голод. В более общем смысле выбор человека также может предоставлять информа- цию о его предпочтениях. Например, предположим, что агент — водитель такси не имел сведений о том, что людям обычно не нравятся громкие звуки, и остано- вился на идее непрерывно нажимать на клаксон, чтобы предупреждать пешеходов о своем приближении. Последующее за этим поведение пассажиров — затыкание
ушей, использование ненормативной лексики и, возможно, обрыв проводов, иду- щих к клаксону — предоставит агенту возможность успешно обновить свою функ- цию полезности. Этот вопрос более подробно обсуждается в главе 22. Подводя итог, отметим, что агенты имеют множество компонентов, а сами эти компоненты могут быть представлены в программе агента многими способами, поэтому создается впечатление, что существует большое разнообразие методов об- учения. Однако у всех этих методов есть один объединяющий аспект. Процесс об- учения в интеллектуальных агентах в целом можно охарактеризовать как процесс модификации каждого компонента агента с целью более точного соответствия этих компонентов доступной информации обратной связи и тем самым улучше- ния общей производительности агента. 2.4.7. Как работают компоненты агентских программ Выше программы агентов были описаны (в терминах самого высокого уровня) как состоящие из различных компонентов, функции которых заключаются в пре- доставлении ответов на определенные вопросы: “Как сейчас вы глядит мир?”, “Ка- кое действие я должен сейчас предпринять?”, “Что произойдет в результате моих действий?” Следующий вопрос, неизбежно возникающий у читателя, — “А как вообще эти компоненты работают?” Чтобы дать хоть сколько-нибудь правиль- ный ответ на такой вопрос, потребуются тысячи страниц. Поэтому здесь мы хо- тим лишь обратить внимание читателя на некоторые основные различия в спосо- бах, которыми эти компоненты могут представлять окружающую среду, в которой находится агент. Грубо говоря, можно разместить представления вдоль оси в порядке увеличе- ния сложности и степени выразительности — атомарное, развернутое и струк- турное. Чтобы проиллюстрировать эту идею, полезно будет рассмотреть опре- деленный компонент агента, например тот, который дает ответ на вопрос “Что произойдет в результате моих действий?” Этот компонент описывает изменения, которые могут произойти в среде в результате выполнения действия. На рис. 2.16 схематически показано, как эти изменения могут быть представлены. В ► атомарном представлении каждое состояние мира неделимо — оно не имеет внутренней структуры. Рассмотрим задачу о нахождении маршрута поездки из одного конца страны в другой как некоторой последовательности проезжаемых городов (подобная задача представлена на рис. 3.1). Для ее решения может быть вполне достаточно свести состояние мира просто к названию очередного города, в котором находится агент, — единственного атома знаний, “черного ящика”, един- ственным различимым свойством которого является быть идентичным или отли- чаться от другого черного ящика. Все стандартные алгоритмы, лежащие в основе процедур поиска и игровых процессов (главы 3-5), скрытых марковских моделей (глава 14), а также марковских процессов принятия решений (глава 17), работают с атомарными представлениями.
Рис. 2.16. Три способа представления состояний и переходы между ними, а) Ато- марное представление: любое состояние (например, В или С) является черным ящи- ком, не имеющим какой-либо внутренней структуры, б) Развернутое представле- ние: состояние представлено как вектор значений атрибутов, которые могут быть логическими, действительными числами или некоторым символом из фиксирован- ного набора, в) Структурное представление: состояние включает объекты, каждый из которых может иметь собственные атрибуты, а также связи с другими объектами В ►развернутом представлении каждое состояние раскладывается в фик- сированный набор ►переменных или ►атрибутов, каждый из которых может иметь определенное ►значение. Рассмотрим описание той же задачи определе- ния маршрута, но выполненное уже с большей точностью. Теперь нас интересу- ет не только неделимое местонахождение в том или ином городе, но и количество бензина в баке, текущие 6Р8-координаты, светится ли индикатор уровня машин- ного масла, сколько денег потрачено на дорожные сборы, какая радиостанция сейчас в пределах досягаемости и т.д. В то время как два различных атомарных состояния не имеют ничего общего между собой — это просто два разных чер- ных ящика, — два разных развернутых состояния могут иметь одинаковые значе- ния некоторых атрибутов (например, одни и те же 6Р8-координаты), но значения остальных будут различаться (например, бензина в баке много или нет вовсе). Та- кое представление намного упрощает выработку решения, как перейти из одно- го состояния в другое. Многие важные области ИИ предполагают использование развернутого представления состояний, включая алгоритмы удовлетворения огра- ничений (глава 6), логику высказываний (глава 7), планирование (глава 11), байе- совские сети (главы 12-16), а также различные алгоритмы машинного обучения. Во многих случаях нам необходимо представлять мир как присутствующие в нем предметы или сущности, имеющие те или иные отношения или связи меж- ду собой, а не только переменные с определенными значениями. Например, во время поездки через всю страну мы можем обнаружить, что прямо перед нами большой грузовик начал поворачивать на подъездную дорогу к молочной ферме,
но ленивая корова блокирует ему путь. Развернутое представление вряд ли будет предусмотрительно включать атрибут ТгискАкеа(1Васк1п^1п1оПа1гуРагтПг1уе^ау- В1оскес1Ву1оо8еСоуу со значением 1гие или/а1$е. В данном случае нам удобнее бу- дет работать со структурным представлением состояний, в котором такие объекты, как коровы и грузовики со своими атрибутами, а также различными отношения- ми между ними, могут быть описаны в явном виде (см. рис. 2.16, в). Структурные представления лежат в основе реляционных баз данных и логики первого поряд- ка (главы 8-10), вероятностных моделей первого порядка (глава 15) и большей ча- сти методов обработки естественного языка (главы 23 и 24). В действительности многое из того, что люди выражают на естественном языке, касается именно объ- ектов и их отношений. Как уже указывалось выше, ось, вдоль которой мы расположили атомарное, развернутое и структурное представления на рис. 2.16, является осью повышения ► выразительности представления. Грубо говоря, более выразительное представ- ление может включать, по крайней мере в сжатой форме, все то, что включает ме- нее выразительное, плюс еще кое-что. Часто более выразительный язык является гораздо более лаконичным. Например, правила игры в шахматы могут быть запи- саны на одной-двух страницах на языке, использующем структурное представле- ние, таком как логика первого порядка, но потребуются тысячи страниц, если за- писать их на языке, использующем развернутое представление, таком как логика высказывании, и около 10 страниц, если воспользоваться языком с атомарным представлением, таким как язык конечных автоматов. С другой стороны, с ростом выразительности представлений выполнение рассуждений и процессы обучения становятся более сложными. Для того чтобы получить преимущества от вырази- тельных представлений и одновременно избежать свойственных им недостатков, интеллектуальным системам в реальном мире может потребоваться работать во всех точках вдоль оси выразительности одновременно. Другая ось для представлений предполагает отображение концепций на опре- деленное место в физической памяти, будь то память компьютера или мозг. Если между понятиями и ячейками памяти имеет место отображение “один-к-одному”, мы называем эту ситуацию ► локализованным представлением. С другой сто- роны, если представление концепции распределено по многим ячейкам памяти и каждая ячейка памяти используется как часть представления нескольких различ- ных концепций, такая ситуация называется ►распределенным представлением. Распределенные представления являются более надежными в отношении шума и потери информации. При локализованном представлении отображение концепции на ячейки памяти является произвольным, и если в результате ошибки при пере- даче информации будет искажено значение всего нескольких битов, понятие мир может быть спутано с несвязанным понятием тир. Но в случае распределенного представления каждую концепцию можно представить себе как точку в многомер- ном пространстве, и если несколько битов исказятся в этом случае, то обращение произойдет к другой, достаточно близкой точке в этом пространстве, которое бу- дет иметь достаточно близкое значение.
Резюме Эту главу можно сравнить с головокружительным полетом над обширным ландшафтом области искусственного интеллекта, которую мы рассматриваем как науку проектирования агентов. Ниже кратко перечислены основные идеи, рассмо- тренные в данной главе. • Агент — это нечто воспринимающее и действующее в определенной среде. Функция агента определяет действие, предпринимаемое агентом в ответ на любую последовательность его восприятия. • Показатель производительности оценивает поведение агента в среде. Ра- циональный агент действует так, чтобы максимизировать ожидаемое значе- ние своего показателя производительности, исходя из последовательности восприятия, полученной агентом к данному моменту. • Спецификация проблемной среды включает определение показателей про- изводительности, внешней среды, исполнительных механизмов и датчиков. Первым этапом проектирования агента всегда должно быть определение проблемной среды с наибольшей возможной полнотой. • Варианты проблемной среды классифицируются по нескольким важным аспектам. Они могут быть полностью или частично наблюдаемыми, детер- минированными или недетерминированными, эпизодическими или после- довательными, статическими или динамическими, дискретными или непре- рывными, а также одноагентными или мультиагентными. • Если показатель производительности неизвестен или его трудно правильно определить, есть значительный риск, что агент будет оптимизировать про- цесс достижения ошибочной цели. В таких случаях конструкция агента должна отражать некоторую неопределенность относительно истинной цели. • Программа агента реализует функцию агента. Существует целый ряд ос- новных проектов программ агента, соответствующих характеру явно вос- принимаемой информации, которая используется в процессе принятия ре- шения. Разные проекты характеризуются различной эффективностью, компактностью и гибкостью. Выбор наиболее подходящей структуры про- граммы агента зависит от характера среды. • Простые рефлекторные агенты прямо отвечают на полученные воспри- ятия, тогда как рефлекторные агенты с поведением, основанным на мо- дели, поддерживают внутреннее состояние, прослеживая те аспекты среды, которые не наблюдаются в текущем акте восприятия. Агенты, действую- щие на основе цели, организуют свои действия так, чтобы достигнуть сво- их целей, а агенты, действующие с учетом полезности, пытаются макси- мизировать собственную ожидаемую “удовлетворенность”. • Все агенты способны улучшать свои показатели производительности за счет обучения.
Библиографические и исторические заметки Истоки представлений о центральной роли действий в интеллекте (в виде поня- тия практических рассуждений) прослеживаются до Никамаховой этики Аристо- теля. Практические рассуждения были также темой влиятельной статьи Маккарти Программы со здравым смыслом ([ 1529], 1958). Такие области науки, как робоп> техника и теория управления, по самому своему характеру преимущественно каса- ются проблем конструирования физических агентов. Понятие ► контроллера в те- ории управления идентично понятию агента в искусственном интеллекте. И хотя это может показаться удивительным, но на протяжении большей части истории раз- вития искусственного интеллекта основные усилия в этой области были сосредо- точены на исследовании отдельных компонентов агентов — систем поиска ответов на вопросы, программ автоматического доказательства теорем, систем техническо- го зрения и так далее, а не самих агентов, рассматриваемых как единое целое. Важ- ным исключением из этого правила, оказавшим значительное влияние на дальней- шее развитие данной области, стало обсуждение проблематики агентов в работе Генезерета и Нильссона ([836], 1987). В настоящее время подход, основанный на изучении всего агента в целом, уже широко применяется и является центральной темой в новейших учебниках ([1721], 2004; [1147], 2007; [ 1810], 2017). В главе 1 корни концепции рациональности прослеживаются в философии и экономике. В искусственном интеллекте это понятие не вызывало значительного интереса до тех пор, пока в середине 1980-х годов не началось широкое обсужде- ние проблемы создания подходящих теоретических основ данной области. В ста- тье Джона Дойла ([646], 1983) было предсказано, что со временем проектирование рациональных агентов станет рассматриваться в качестве основного назначения искусственного интеллекта, в то время как другие популярные на тот момент темы исследований послужат основой формирования новых дисциплин. Стремление к тщательному изучению свойств среды и их влияния на выбор самого подходящего проекта рационального агента наиболее ярко проявляется в традиционных областях теории управления; например, в исследованиях по клас- сическим системам управления ([637], 2004 и [1229], 2004) рассматриваются пол- ностью наблюдаемые, детерминированные варианты среды; темой работ по сто- хастическому оптимальному управлению ([1325], 1986 и [203], 2007) являются частично наблюдаемые, стохастические варианты среды; а работы по гибридному управлению ([1012], 1998 и [379], 2006) касаются таких вариантов среды, которые содержат и дискретные, и непрерывные элементы. Описание различий между пол- ностью и частично наблюдаемыми вариантами среды является также центральной темой работ по динамическому программированию, проводимых в области иссле- дования операций ([1827], 1994), которая будет обсуждаться в главе 17. Хотя рефлекторные агенты были основной моделью в бихевиористской психо- логии (см. главу 1), в большинстве работ по искусственному интеллеюу их рас- сматривали как слишком простых для достижения значительных успехов. Однако
в работах Розеншайна ([1916], 1985) и Брукса ([312], 1986) это предположение было поставлено под сомнение (см. главу 26). В начале 2000-х годов значительная часть работ была посвящена поиску эффективных алгоритмов слежения за слож- ными вариантами среды ([130], 2001; [425], 2005; [2069], 2006), в большинстве случаев в вероятностной обстановке. Понимание необходимости создания агентов, действующих на основе цели можно проследить во всем, начиная с введенного Аристотелем определения прак- тического рассуждения и заканчивая ранними статьями Маккарти по логическому искусственному интеллекту. Робот БЬакеу ([738], 1971; [1688], 1984) был первым воплощением логического агента на основе цели, реализованным в виде автома- тизированного устройства. Полный логический анализ агентов, действующих на основе цели, приведен в книге Генезерета и Нильссона ([836], 1987), а методоло- гия программирования на основе цели, получившая название “агентно-ориентиро- ванное программирование”, была разработана Шохемом ([2052], 1993). Агентный подход в настоящее время чрезвычайно популярен в разработке программного обеспечения ([440], 2001). Он также проник в область создания операционных си- стем, где понятие ► автономных вычислений определяет компьютерные систе- мы и сети, которые контролируют сами себя и управляют сами собой, используя циклы “восприятие-действие” и методы машинного обучения ([1217], 2003). Ис- ходя из наблюдения, что совокупность агентских программ, разработанных для совместной работы в истинной мультиагентной среде, обязательно демонстриру- ет модульность, — программы не имеют общего разделяемого элемента внутрен- него состояния и могут общаться друг с другом только через окружающую сре- ду, — сейчас в области ► мультиагентных систем общепринято проектировать программу агента даже отдельного агента как совокупность автономных субаген- тов. В некоторых случаях можно даже доказать, что полученная система дает те же оптимальные решения, что и вариант с цельной конструкцией. Кроме того, начиная с книги Решение проблем человеком Ньюэлла и Саймона ([1669], 1972), оказавшей чрезвычайно большое влияние на ход дальнейших ис- следований в области когнитивной психологии, посвященной изучению процедур решения различных задач человеком, ведущее место во взглядах на агентов за- нял подход, основанный на понятии цели. На этом подходе построены также все последующие работы Ньюэлла ([1665], 1990). Цели, дополнительно подразделяе- мые на желания (общие замыслы) и намерения (преследуемые в настоящее вре- мя), также являются основой признанной теории агентов, разработанной Майклом Братманом ([294], 1987). Как отмечалось в главе 1, развитие теории полезности как основы рациональ- ного поведения насчитывает уже сотни лет. Однако в ранних исследованиях в области ИИ полезности избегали в пользу целей, за некоторыми исключениями (Фельдман и Спроул [717], 1977). Возрождение интереса к вероятностным ме- тодам в 1980-х годах привело к принятию максимизации ожидаемой полезности в качестве наиболее общей основы для принятия решений (Горвиц и др. [1068],
1988). Книга Перла ([1755], 1988) была первой работой в области искусственного интеллекта, в которой был дан глубокий анализ проблем применения теории ве- роятности и теории полезности, и, вероятно, послужила наиболее важной причи- ной быстрой смены направления исследований в 1990-х годах (см. главу 16). Фор- мализация обучения с подкреплением в рамках теории принятия решений также внесла свой вклад в этот сдвиг (Саттон [2156], 1988). Довольно примечателен тот факт, что почти во всех исследованиях в области ИИ до самого недавнего времени предполагалось, что показатели производительности могут быть точно и правиль- но определены в форме функции полезности или функции вознаграждения (Хад- фильд-Менелл и др. [942], 2017; Рассел [1942], 2019). Общая структура обучающегося агента, приведенная на рис. 2.15, является классическим образцом такого проекта в литературе по машинному обучению ([337], 1978 и [1595], 1997). Среди первых примеров использования этой структу- ры в программах можно упомянуть обучающуюся программу игры в шашки Арту- ра Самюэла ([1969], 1959 и [1970], 1967). Обучающиеся агенты подробно рассма- триваются в главах 19-22. Некоторые ранние работы по агентному подходу представлены в сборниках Ханса и Сингха ([1094], 1998) и Вулдриджа и Рао ([2378], 1999). К учебной лите- ратуре по мультиагентным системам, предлагающей отличное введение во мно- гие аспекты проектирования агентов, можно отнести [2305] (2000) и [2377] (2009). К числу конференций, посвященных агентам, относятся [пТегпаТюпа! ^огкзЬор оп А§епТ ТЬеопез, АгсЬкесТигез, апд Ьап^иа^ез (АТАЬ), [гПегпаТюпа! СопГегепсе оп АЩопопгоиз А^епТз (АСЕМТ8) и 1п1ета1юпа1 СопГегепсе оп Ми1и-А§еп( БузТетз (1СМА8). В 2002 году эти три конференции объединились в одно целое под на- званием 1п1ета11опа1 Дот! СопГегепсе оп АЩопотоиз А^егПз апд МиК1-А§еп1: 8у81ет8 (ААМА8). С 2000 по 2012 год также проводились ежегодные конферен- ции А^еЩ-ОпеЩес! 8ок\уаге Еп§теепп§ (АО8Е). В 1998 году был основан журнал АиЮпотоиз А^еп1з апс! МиША%еп18у$1ет8. И наконец отметим, что в книге Оип% Вее(1е Есо1о§у ([962], 1991) приведен большой объем интересной информации о поведении навозных жуков (о котором упоминалось в данной главе). Также на сай- те УоиТиЬе можно найти несколько впечатляющих видеороликов на эту тему. Упражнения_____________________________________________________________ 2.1. Предположим, что показатель производительности агента имеет отношение только к первым Т периодам времени его действия в среде, а все последующее игнорируется. Покажите, что действия рационального агента могут зависеть не только от состояния окружающей среды, но и от достигнутого им периода времени. 2.2. Давайте рассмотрим рациональность различных функций пылесоса. а) Покажите, что простая функция агента-пылесоса, представленная на рис. 2.3, дей- ствительно рациональна при предположениях, перечисленных на этой странице.
б) Опишите функцию рационального агента для случая, когда каждое его перемеще- ние стоит одно очко. Требует ли соответствующая агентская программа внутрен- него состояния? в) Обсудите возможные конструкции агентов для случаев, когда чистые квадраты могут стать грязными, а география окружающей среды неизвестна. Имеет ли в этих случаях смысл агенту учиться на своем опыте? Если да, то чему он должен учиться? Если нет, то почему? 2.3. Напишите эссе о связи между эволюцией и одним или несколькими способностями из числа автономности, интеллектуальности или обучения. 2.4. Для каждого из следующих утверждений укажите, является оно истинным или ложным, и подкрепите свой ответ примерами или контрпримерами, где это будет необходимо, а) Агент, воспринимающий только частичную информацию о состоянии, не может быть полностью рациональным. б) Существуют проблемные среды, в которых ни один чисто рефлекторный агент не сможет вести себя рационально. в) Существует проблемная среда, в которой любой агент является рациональным. г) Входные данные для программы агента совпадают с входными данными для функции агента. д) Любая функция агента реализуема с помощью некоторой комбинации программы и машины. е) Предположим, что агент случайным образом выбирает свое действие из множе- ства возможных действий. Существует детерминированная проблемная среда, в которой этот агент является рациональным. ж) Определенный агент может быть полностью рациональным в двух разных про- блемных средах. з) Любой агент является рациональным в ненаблюдаемой среде. и) Полностью рациональный агент, играющий в покер, никогда не проигрывает. 2.5. Для каждого из приведенных ниже действий дайте РЕАЗ-описание проблемной сре- ды и охарактеризуйте ее в терминах свойств, перечисленных в разделе 2.3.1. а) Игра в футбол. б) Изучение подземных океанов Титана. в) Покупка подержанных книг по искусственному интеллекту в Интернете. г) Теннисный матч. д) Отработка теннисных ударов у стены. е) Выполнение прыжка в высоту. ж) Вязание свитера. з) Торги на предмет, выставленный на аукцион. 2.6. Для каждого из приведенных ниже действий дайте РЕАЗ-описание проблемной сре- ды и охарактеризуйте ее в терминах свойств, перечисленных в разделе 2.3.1. а) Выполнение гимнастических упражнений на полу. б) Изучение подземных океанов Титана. в) Игра в футбол. г) Покупка подержанных книг по искусственному интеллекту в Интернете. д) Отработка теннисных ударов у стены. е) Выполнение прыжка в высоту. ж) Торги на предмет, выставленный на аукцион.
2.7. Дайте собственные определения следующих понятий: агент; функция агента; про- грамма агента; рациональность; автономность; рефлекторный агент; агент, основан- ный на модели; целенаправленный агент; агент, действующий на основе полезности; обучающийся агент. 2.8. В этом упражнении исследуются различия между функциями агентов и программами агентов. а) Может ли существовать больше чем одна программа агента, которая реализует данную функцию агента? Приведите пример, подтверждающий положительный ответ, или покажите, почему такая ситуация невозможна. б) Есть ли такие функции агента, которые не могут быть реализованы никакими про- граммами агента? в) Верно ли, что каждая программа агента реализует точно одну функцию агента, если считать, что архитектура вычислительной машины остается неизменной? г) Если в архитектуре предусмотрено и битов памяти, то сколько различных возмож- ных программ агента может быть реализовано с ее помощью? д) Предположим, что мы сохраним программу агента неизменной, но ускорим маши- ну в два раза. Изменит ли это функцию агента? 2.9. Напишите на псевдокоде программы агента для: агента, действующего на основе цели; агента, действующего на основе полезности. 2.10. Рассмотрим простой термостат, который включает подогрев, когда температура по крайней мере на 3 градуса ниже заданного значения, и отключает подогрев, когда температура по крайней мере на 3 градуса выше заданного значения. Является ли этот термостат экземпляром простого рефлекторного агента, рефлекторного агента на основе модели или целенаправленного агента? Все приведенные ниже упражнения касаются реализации вариантов среды и агентов для мира пылесоса. 2.11. Реализуйте имитатор среды измерения производительности в мире пылесоса, кото- рый изображен на рис. 2.2 и определен в разделе 2.2.1. Ваша реализация должна быть модульной, чтобы можно было легко заменять датчики, исполнительные механизмы и модифицировать характеристики окружающей среды (размер, форма, размещение мусора и т.д.). Примечание. В интерактивном репозитории кода этой книги уже име- ются подобные реализации для некоторых сочетаний языка программирования и опе- рационной системы. 2.12. Реализуйте простого рефлекторного агента для среды пылесоса, которая рассматри- вается в упражнении 2.11. Вызовите на выполнение имитатор среды с этим агентом для всех возможных начальных конфигураций мусора и местоположений агента. За- пишите оценки производительности работы агента для каждой конфигурации и опре- делите его общую среднюю оценку. 2.13. Рассмотрите модифицированную версию среды пылесоса из упражнения 2.11, в ко- торой агенту назначается штраф в один балл за каждое перемещение. а) Может ли простой рефлекторный агент быть полностью рациональным для этой среды? Обоснуйте свой ответ. б) А что можно сказать о рефлекторном агенте с внутренним состоянием? Спроекти- руйте такого агента. в) Как изменятся приведенные вами ответы на вопросы а и б, если восприятие аген- та позволяет ему иметь информацию о том, является ли чистым или грязным каж- дый квадрат в этой среде?
2.14. Рассмотрите модифицированную версию среды пылесоса из упражнения 2.11, в кото- рой география среды (ее протяженность, границы и препятствия) заранее неизвестна, как и начальная конфигурация расположения мусора. (Агент может совершать дви- жения Ье/1 и а также 1}р и Оохмп.) а) Может ли простой рефлекторный агент быть полностью рациональным для этой проблемной среды? Обоснуйте свой ответ. б) Может ли простой рефлекторный агент с рандомизированной функцией агента превзойти по своей производительности простого рефлекторного агента? Спро- ектируйте такого агента и измерьте его производительность в нескольких вариан- тах среды. в) Можете ли вы спроектировать среду, в которой предложенный вами рандомизи- рованный агент будет показывать очень низкую производительность? Продемон- стрируйте полученные вами результаты. г) Может ли рефлекторный агент с поддержкой внутреннего состояния превзойти по своей производительности простого рефлекторного агента? Спроектируйте такого агента и измерьте его производительность в нескольких вариантах среды. Можете ли вы спроектировать рационального агента этого типа? 2.15. Повторите упражнение 2.14 для такого случая, в котором датчик местоположения за- менен датчиком “удара”, позволяющим обнаруживать попытки агента пройти сквозь препятствие или выйти за границы проблемной среды. Предположим, что датчик уда- ра перестал работать. Как должен действовать агент? 2.16. Все варианты проблемной среды мира пылесоса, рассматриваемые в предыдущих упражнениях, были детерминированными. Обсудите возможные программы агента для каждого из следующих недетерминированных вариантов. а) Закон Мэрфи. В течение 25% времени применение действия 8иск не позволяет очистить пол, когда он грязный, и приводит к выбросу мусора на пол, когда он чи- стый. Как эти обстоятельства отразятся на предложенной вами программе агента, если датчик мусора будет давать неправильный ответ в течение 10% времени? б) Маленькие дети. В каждом интервале времени каждый чистый квадрат имеет 10%-ную вероятность стать грязным. Можете ли вы предложить проект рацио- нального агента для этого случая?
Часть II Решение задач Решение задач посредством поиска 125 Поиск в сложных средах 205 Поиск в условиях противодействия и игры 261 Задачи удовлетворения ограничений 319

ГЛАВА 3 Решение задач посредством поиска В этой главе показано, каким образом агент может найти последователь- ность действий, позволяющую достичь его целей Когда правильное действие, которое следует предпринять, не вполне очевидно, агенту может потребоваться разработать план наперед', определить такую после- довательность действий, которая обеспечит достижение целевого состояния. Та- кой агент называется ► агентом, решающим задачи, а вычислительный процесс, который он при этом выполняет, называется ► поиском. Агенты, решающие задачи, используют атомарные представления, которые подробно обсуждались в разделе 2.4.7, — в этом случае состояния мира рассма- триваются как нечто цельное, не имеющее внутренней структуры, видимой для алгоритма решения задачи. Агенты, использующие развернутые или структур- ные представления состояний, называются агентами планирования и обсужда- ются в главах 7 и 11. Мы рассмотрим несколько алгоритмов поиска. В этой главе будут рассмотрены только самые простые среды: эпизодические, одноагентные, полностью наблюда- емые, детерминированные, статические, дискретные и известные. Мы проведем различие между информированными алгоритмами, когда агент имеет возмож- ность оценить, насколько далеко еще до цели, и неинформированными алгорит- мами, в которых такая оценка недоступна. В главе 4 столь строгие ограничения в отношении среды будут сняты, а в главе 5 будут рассмотрены среды с нескольки- ми агентами. В данной главе используются понятия об асимптотической сложности, т.е. о си- стеме обозначений О(п) и ИР-полноте из области анализа алгоритмов. Читателям, не знакомым с этими понятиями, следует обратиться к приложению А. 3.1. Агенты, решающие задачи Представьте себе, что некоторый агент проводит свой отпуск в Румынии в качестве туриста. Он хочет осмотреть достопримечательности, улучшить свой
румынский язык, насладиться ночной жизнью, избежать неприятностей и т.д. Все это уже представляет собой непростую задачу. Далее предположим, что агент в настоящее время находится в городе Арад и что у него есть билет на вылет из Бухареста на следующий день, который нельзя сдать или обменять. Агент видит дорожный указатель, на котором указано, что из Арада ведут три дороги: одна — в сторону Сибиу, одна — в Тимишоару и одна — в Зеринд. Ни один из этих насе- ленных пунктов не является целью агента, поэтому, если он не знаком с географи- ей Румынии, не будет знать, по какому пути следовать.1 Если агент не имеет никакой дополнительной информации, т.е. среда являет- ся неизвестной, то он не сможет сделать ничего лучшего, чем выбрать одно из на- правлений в случайном порядке. Эта печальная ситуация обсуждается в главе 4. В этой же главе предполагается, что агенты всегда имеют доступ к информации о мире, — в данном случае это будет карта, представленная на рис. 3.1. Располагая этой информацией, наш агент сможет реализовать процесс решения задачи, вклю- чающий четыре этапа. • ► Выбор цели. Агент ставит своей целью добраться до Бухареста. Цели ор- ганизуют поведение, ограничивая условия задачи, и как следствие — дей- ствия, которые следует рассматривать. • ►Формулировка задачи. Агент разрабатывает описание состояний и дей- ствий, необходимых для достижения цели, — абстрактную модель соответ- ствующей части мира. Для нашего агента одной из подходящих моделей будет рассмотрение действий переезда от одного населенного пункта к со- седнему, а значит, единственным фактом, описывающим изменение состо- яние мира в результате некоторого действия, будет название достигнутого города. • ► Поиск. Прежде чем предпринимать какие-либо действия в реальном мире, агент моделирует последовательность действий в своей модели, вы- полняя поиск решения до тех пор, пока не обнаружит последовательность действий, позволяющую достичь требуемой цели. Такая последователь- ность действий называется ►решением. Возможно, агенту придется смо- делировать несколько последовательностей, не позволяющих достичь цели, но в конце концов он найдет решение (например, переезд из Арада в Сибиу, затем — в Фэгэраш и наконец — в Бухарест) или установит, что решения поставленной задачи не существует. • ►Выполнение. Теперь агент может последовательно выполнять действия, предусмотренные решением, по одному за раз. 1 Авторы предполагают, что большинство читателей в подобной ситуации окажутся в таком же положении и вполне смогут представить себя такими же беспомощными, как наш агент. Приносим свои извинения румынским читателям, которые не смогут восполь- зоваться преимуществами использованного здесь педагогического приема.
Рис. 3.1. Упрощенная дорожная карта части Румынии с расстояниями в милях Следует отметить важное свойство: в полностью наблюдаемой, детерминиро- ванной, известной среде ^решениелюбой проблемы представляет собой фиксиро- ванную последовательность действий: переезд в Сибиу, затем — в Фэгэраш, а за- тем — в Бухарест. Если модель верна, то после того, как агент найдет решение, он сможет игнорировать свое восприятие по ходу выполнения требуемых дей- ствий — закрыть глаза, если можно так выразиться, — поскольку найденное ре- шение гарантированно приведет его к цели. В теории управления эту ситуацию называют системой кбез обратной связи: игнорирование восприятия разрыва- ет петлю связи между агентом и средой. Однако если существует вероятность, что модель неверна или среда недетерминирована, то агент будет в большей безопас- ности, используя подход >с обратной связью, предполагающий контроль вос- приятия (см. раздел 4.4). В частично наблюдаемых или недетерминированных средах решением может быть разветвляющаяся стратегия, предусматривающая в перспективе различные действия в зависимости от тех данных, которые будут получены от датчиков. На- пример, агент может планировать переезд из Арада в Сибиу, но иметь план и на случай непредвиденных обстоятельств, если случайно окажется в Зеринде или по пути в Сибиу неожиданно обнаружит табличку с надписью “Отит 1псЬ18”(дорога закрыта).
3.1.1. Поисковые задачи и решения Формальное определение поисковой ► задачи включает следующее. • Множество возможных ► состояний, в которых может находиться среда. Это множество в дальнейшем мы будем называть ► пространством со- стояний. • ► Начальное состояние, в котором агент начинает действовать. Например, пребывание в Араде, которое можно обозначить как АгасГ • Набор из одного или нескольких ► целевых состояний. Иногда суще- ствует одно целевое состояние (например, Бухарест — ВискагеМ), ино- гда — небольшой набор альтернативных целевых состояний, а иногда цель определяется свойством, которое применимо ко многим состояниям (по- тенциально — к бесконечному числу). Например, в мире пылесоса целью может быть отсутствие мусора в любом местоположении, независимо от каких-либо иных фактов о состоянии среды. Можно учесть все эти три воз- можности, просто определив для задачи метод 18-Ооаь. В этой главе для упрощения речь иногда будет идти об отдельной “цели”, но то, что будет сказано, с тем же результатом можно будет применить и к “любому из воз- можных целевых состояний”. • ► Действия, доступные агенту. При заданном состоянии 5 функция Астюн8($) возвращает конечный2 набор из действий, которые могут быть вы- полнены в состоянии 5. В этом случае говорят, что каждое из этих действий ► применимо в (состоянии) 5, например: АсТ1ОЫ8(Яня7) = {ТоВПпи, ТоТшйзоага, ТоХегМ}. • ► Функция определения преемника, описывающая, что именно выполня- ет каждое действие. Функция КЕ8иьт($, а) возвращает состояние, которое яв- ляется результатом выполнения действия а в состоянии 5, например: КЕ8иьт(Яга7, То2еппс[) = 2еппс1. • ► Функция стоимости действия, — обозначается как Астюм-СО8Т($, а, ) при программировании или как с(з, а, $') в математических выкладках — возвращает числовое значение стоимости применения действия а в состо- янии 5 для достижения состояния Агент, решающий задачу, должен ис- пользовать функцию стоимости, отражающую его собственный показатель производительности. Так, для агентов, осуществляющих поиск маршрута движения, стоимостью действия может быть расстояние между пунктами, выраженное в милях (как показано на рис. 3.1), или это может быть время, необходимое для совершения данного действия в полном объеме. 2 Для задач с бесконечным количеством действий нам понадобятся методы, выходя- щие за рамки тематики этой главы.
Последовательность действий образует ► путь, а ► решение — это путь от на- чального состояния к целевому состоянию. Предполагается, что затраты на дей- ствия являются аддитивными, т.е. общая стоимость пути представляет собой сум- му стоимостей образующих его действий. ► Оптимальное решение имеет самую низкую стоимость пути среди всех существующих решений. В этой главе предпо- лагается, что стоимости всех действий выражены положительными числами, а это позволяет избежать определенных осложнений.3 Пространство состояний можно представить в виде ► графа, в котором вер- шины являются состояниями, а направленные ребра между ними — действиями. Карта Румынии, представленная на рис. 3.1, является таким графом, на котором каждая дорога представляет два действия, по одному в каждом направлении дви- жения. 3.1.2. Формулировка задачи Наша формулировка задачи “добраться из Арада в Бухарест” представляет со- бой модель — абстрактное математическое описание, а не что-то реальное. Срав- ните простое атомарное описание состояния Агас1 с действительным путешестви- ем по стране, в котором состояние мира должно учитывать так много факторов: попутчиков, текущие радиопередачи, вид из окна, наличие поблизости предста- вителей сил правопорядка, расстояние до ближайшей остановки на отдых, состо- яние дороги, погоду, встречный транспорт и т.д. Все эти соображения исключены из нашей модели, поскольку они не имеют отношения к задаче поиска маршрута в Бухарест. Процесс удаления деталей из представления называется ► абстракцией. Хоро- шая формулировка задачи должна иметь правильный уровень детализации. Если эти действия будут определяться на уровне “продвинуть правую ногу вперед на 3 В любой задаче с циклами, имеющими суммарную отрицательную стоимость, опти- мальным по стоимости решением будет бесконечное повторение этого цикла. Алгоритмы Беллмана-Форда и Флойда-Уоршалла (здесь не рассматриваются) корректно работают с действиями, имеющими отрицательную стоимость, но только в случае, если нет отрица- тельных циклов. Также можно без затруднений работать с действиями с нулевой стоимо- стью, когда количество последовательно выполняемых действий с нулевой стоимостью ограничено. Например, можно представить робота, для которого установлена определен- ная стоимость перемещений, а стоимость поворота на 90° считается нулевой. Алгоритмы, обсуждаемые в этой главе, могут справиться с этим, если будет разрешено не более трех последовательных поворотов на 90°. Также существуют сложности с задачами, имеющи- ми бесконечное количество сколь угодно малых затрат на действие. Рассмотрим версию парадокса Зенона, в которой действие продвижения на половину оставшегося до цели пути будет иметь стоимость, равную половине стоимости предыдущего действия. Эта за- дача не имеет решения при конечном числе действий, но чтобы предотвратить принятие алгоритмом поиска неограниченного количества действий в попытках достижения конеч- ной цели, можно потребовать, чтобы стоимость любого действия была не меньше е — некоторого небольшого положительного значения.
сантиметр” или “повернуть рулевое колесо на один градус влево”, агент, вероят- но, не сможет даже выехать со стоянки, не говоря уже о том, чтобы добраться до Бухареста. Можно ли достичь большей точности определения приемлемого ► уровня аб- стракции? Просто рассматривайте те абстрактные состояния и действия, которые были выбраны, как соответствующие большие множества более детализирован- ных состояний мира и последовательностей действий. Давайте рассмотрим кон- кретное решение абстрактной задачи, например путь от Арада до Бухареста через города Сибиу, Рымнику-Вылча и Питешти. Это абстрактное решение соответству- ет большому количеству более детализированных путей. Например, можно вести автомобиль между городами Сибиу и Рымнику-Вылча с включенным радиоприем- ником, а затем выключить его на всю оставшуюся часть путешествия. Абстракция является действительной, если мы можем преобразовать любое аб- страктное решение в такое решение, которое подходит для более детально описан- ного мира. Достаточным условием является то, что для любого детализированного состояния, которое представляет собой “пребывание в городе Арад”, существует детализированный путь в некоторое состояние, соответствующее “пребыванию в городе Сибиу”,4 и т.д. Абстракция будет полезной, если осуществление каждого из действий, предусмотренных в решении, становится проще по сравнению с перво- начальной задачей. В нашем случае действие “проехать из Арада в Сибиу” явля- ется достаточно простым для того, чтобы оно могло быть выполнено без дальней- шего поиска или планирования водителем средней квалификации. Поэтому выбор хорошей абстракции сводится к исключению максимально возможного количества подробностей при обязательном сохранении ее способности оставаться действи- тельной и гарантирующей легкую осуществимость соответствующих абстрактных действий. Если бы не было возможности создавать полезные абстракции, то ин- теллектуальные агенты не могли бы успешно действовать в реальном мире. 3.2. Примеры задач_________________________________________________ Предложенный выше подход к решению задач был применен в очень многих вариантах экспериментальной среды. В этом разделе перечислены некоторые из наиболее известных примеров решения задач, которые подразделяются на два типа — стандартизированные и реальные задачи. ► Стандартизированная зада- ча предназначена для иллюстрации или проверки различных методов решения за- дач. Ей может быть дано краткое, точное описание, а это означает, что такая задача может использоваться разными исследователями для сравнения производитель- ности алгоритмов. ► Реальной задачей, такой как проблема ориентации робота, называется задача, решение которой действительно требуется людям. Формули- ровка таких задач, как правило, строго индивидуальна и не стандартизирована, 4 См. раздел 11.4.
например потому, каждый робот имеет свой набор датчиков, которые предостав- ляют ему уникальный набор данных. 3.2.1. Стандартизированные задачи Среда задач ► клеточного мира (#ги7 ууог1с[) представляет собой двухмерный прямоугольный массив из квадратных ячеек, в котором агенты могут перемещать- ся из клетки в клетку. Как правило, агент может перейти в любую соседнюю клет- ку, если на его пути нет препятствий, — по горизонтали, по вертикали, а в неко- торых задачах и по диагонали. Клетки могут содержать объекты, которые агент может подбирать, толкать или воздействовать на них иным образом. Стена или другое непреодолимое препятствие в клетке препятствует проникновению в нее агента. Мир пылесоса из раздела 2.1 может быть определен как задача клеточно- го мира следующим образом. • Состояния. Состояние мира определяет, какие объекты в нем присутствуют и в каких клетках они находятся. Для мира пылесоса объектами являются агент и любой мусор. В самом простом варианте с двумя клетками агент мо- жет находиться в любой из них, при этом каждая из клеток может содержать мусор или нет. Исходя из этого можно определить, что в этом мире возмож- ны всего 2x2x2=8 состояний, как показано на рис. 3.2. В общем случае мир пылесоса с п клетками будет иметь п х 2п состояний. Рис. 3.2. Граф пространства состояний для мира пылесоса с двумя клетками. В нем имеется 8 состояний и по три действия для каждого состояния: Ь = Ье/Ц К = 8 = 8иск
• Начальное состояние. В качестве начального состояния может быть назна- чено любое состояние мира. • Действия. В мире пылесоса с двумя клетками были определены три воз- можных действия: убрать мусор (8иск), переместиться влево (Ье/1) и пе- реместиться вправо В произвольном двухмерном многоклеточном мире агенту потребуется больше движений. Можно было бы добавить дей- ствия переместиться вверх (Црмгап/) и переместиться вниз (Оом'ли'апТ), что дало бы агенту четыре абсолютных действия перемещения, или же можно было бы перейти к эгоцентричным действиям, определяемым относитель- но направления взгляда агента, например двигаться вперед (Рогаст!), назад (Васкмап!), повернуть направо (ТитШ^Ы) и повернуть налево (ТитЬе/1). • Функция определения преемника. Действие 8иск удаляет мусор в клет- ке, где находится агент. Действие Рогн>агс1 вызывает перемещение агента на одну клетку вперед, т.е. в том направлении, куда он направлен, если только он не упрется в стену — в этом случае действие не имеет никакого эффекта. Действие Васкнагс! вызывает перемещение агента в противоположном на- правлении, в то время как действия ТитШ§1и и ТитЬе# изменяют направле- ние на 90° вправо и влево соответственно. • Целевое состояние. Состояние, в котором мусор отсутствует во всех клет- ках мира. • Функция стоимости. Каждое действие стоит 1 балл. Другим типом клеточного мира является головоломка Сокобан, в которой цель агента состоит в том, чтобы поместить фишки, изначально произвольно размещен- ные в клетках мира, на отведенные им места. В каждой клетке может быть не бо- лее одной фишки. Когда агент перемещается вперед в клетку с фишкой, сразу за которой находится пустое место, то вперед перемещаются и агент, и фишка. Агент не может переместить фишку в клетку, где уже находится другая фишка, или же вытолкнуть ее за стену. В таком мире, имеющем п свободных клеток и Ъ фишек, будет ихп\/(Ь\(п-Ъ)\) состояний; например, в мире с 8x8 клетками и 12 фишками будет более 200000 000 000 000 состояний! В ► головоломках с перемещением плиток количество плиток в коробке мо- жет быть разным, но всегда есть одно или более пустых мест, что позволяет пере- мещать плитки на пустое пространство. Одним из известных вариантов является головоломка “Час пик”, в которой автомобили и грузовики перемещаются по доске размером 6x6 ячеек с целью освободить заданный автомобиль из пробки. Возмож- но, наиболее известным вариантом такого мира является головоломка Восемь (рис. 3.3), состоящая из коробки 3x3 квадрата с восемью пронумерованными плит- ками и одним пустым пространством, а также подобная ей головоломка Пятнад- цать с коробкой 4 х4 квадрата и 15-тью плитками. Цель в каждом случае состоит в том, чтобы достичь определенного целевого состояния, например такого, как пока- зано на рис. 3.3, справа. Стандартная формулировка этой задачи приведена ниже.
Целевое состояние Начальное состояние Рис. 3.3. Типичный пример головоломки Восемь • Состояния. Описание состояния определяет местонахождение каждой из восьми плиток и пустого участка на игральной доске из девяти квадратов. • Начальное состояние. В качестве начального может быть определено лю- бое состояние. Обратите внимание, что в этом мире свойство четности делит пространство состояний на две части: любая заданная цель может быть до- стигнута точно из половины возможных начальных состояний (см. упр. 3.6). • Действия. В то время как в физическом мире головоломка состоит из пли- ток, перемещаемых в пределах границ головоломки, простейший способ из описания действий в соответствующем клеточном мире — представить, что перемещается пустое поле. Соответствующие этому случаю действия вполне типичны: Ье/1 (влево), (вправо), 1]р (вверх) и Поучи (вниз). Если пустое поле окажется на краю сетки или в углу, не все действия бу- дут применимы. • Функция определения преемники. Отображает состояния и действия в результирующие состояния. Например, если выполнить действие Ье/1 в на- чальном состоянии мира, представленном на рис. 3.3, пустое место и плит- ка 5 поменяются местами. • Целевое состояние. Хотя в этом мире любое состояние может быть выбра- но как целевое, в данной головоломке ее решение определено как состоя- ние, когда все плитки расположены по возрастанию их номеров, как показа- но рис. 3.3, справа. • Функция стоимости. Каждое перемещение плитки стоит 1 балл. Обратите внимание, что каждая формулировка задачи включает в себя неко- торые абстракции. Какие абстракции предусмотрены в этом примере? В голово- ломке Восемь мы абстрагируемся до уровня указания ее начального и конечного состояний, при этом все промежуточные состояния, достигаемые по ходу пере- мещения плиток, игнорируются. Из абстрактного описания также исключены та- кие действия, как встряхивание коробочки, позволяющее передвинуть застряв- шую плитку, или извлечение плиток с помощью ножа и повторное укладывание
их в коробку. Исключено также описание правил игры, что позволило обойтись без подробных обсуждений физических манипуляций. И последняя стандартизированная задача, которую мы рассмотрим, была раз- работана Дональдом Кнутом ([ 1244], 1964). Она иллюстрирует, как в задаче может возникнуть бесконечное пространство состояний. Кнут высказал предположение, что начиная с числа 4 последовательность операций извлечения квадратного кор- ня, округления до ближайшего меньшего целого и взятия факториала позволяет получить любое желаемое положительное целое число. Например, получить 5 из 4 можно следующим образом: Формулировка этой задачи очень проста. • Состояния. Положительные действительные числа. • Начальное состояние. 4. • Действия. Применение математических операций извлечения квадратно- го корня, округления до ближайшего меньшего целого и взятия факториала (только для целых чисел). • Функция определения преемника. Соответствует математическому опре- делению указанных операций. • Целевое состояние. Заданное положительное целое число. • Функция стоимости. Каждая выполненная операция стоит 1 балл. Пространство состояний этой задачи является бесконечным: для любого целого числа больше 2 операция взятия факториала дает в результате большее целое число. Эта задача интересна тем, что в ней необходимо манипулировать очень большими числами: кратчайший путь к 5 проходит через (4!)! = 620448401 733239439360000. Бесконечные пространства состояний часто возникают в задачах, связанных с гене- рацией математических выражений, электронных схем, доказательств, программ и других рекурсивно определяемых объектов. 3.2.2. Реальные задачи Выше уже было показано, как задачу поиска маршрута можно определить в терминах заданных местонахождений и переходов по связям между ними. Ал- горитмы поиска маршрута используются в самых разных приложениях. Некото- рые из них, такие веб-сайты и автомобильные системы навигации, предоставля- ющие водителям информацию о направлении движения, являются относительно простыми расширениями нашего примера о поездке в Румынии. (Основные слож- ности в них связаны с различными издержками, связанными с задержками из-за непредсказуемости трафика, а также изменением маршрутов в связи с закрыти- ем отдельных участков дорог.) К другим приложениям, таким как маршрутизация
видеопотоков в компьютерных сетях, системы планирования военных операций или авиаперевозок, предъявляются намного более сложные требования. Рассмо- трим спецификацию задачи создания системы планирования авиапутешествий, ко- торая будет работать на соответствующем веб-сайте. • Состояния. Очевидно, что каждое состояние должно включать местополо- жение (например, аэропорт) и текущее время. Кроме того, поскольку стои- мость действия (перелета) может зависеть от предыдущих этапов полета, их тарифных баз и их статуса (внутреннего — международного), в состоянии должна регистрироваться дополнительная информация об этих “историче- ских” аспектах. • Начальное состояние. Аэропорт вылета клиента. • Действия. Выполнение любого перелета из текущего местоположения, в любом классе посадочных мест, с вылетом позднее текущего момента вре- мени с учетом дополнительного времени для трансфера в пределах аэропор- та, если это требуется. • Функция определения преемника. Возвращает состояние, достигнутое в результате выполнения перелета, в котором местоположением является его аэропорт назначения, а момент прибытия — новой отметкой времени. • Целевое состояние. Место назначения. Иногда цель может быть более сложной, например “прибыть в место назначения беспосадочным рейсом”. • Функция стоимости. Комбинация из денежных затрат, времени ожидания, времени полета, таможенных и иммиграционных процедур, категории поса- дочного места, времени суток, типа самолета, поощрительных баллов и т.д. В коммерческих системах консультирования по вопросам планирования путе- шествий используется подобная формулировка задачи, включающая множество дополнительных усложнений, необходимых, например, для успешной обработки запутанных схем тарификации авиакомпаний. Однако любой опытный путеше- ственник знает, что не все авиапутешествия проходят согласно плану. Действи- тельно хорошая система должна предусматривать и планы действий в непредви- денных ситуациях — что предпринять, если вылет задержат и стыковочный рейс будет пропущен? В ►задачах планирования обхода вместо единственного пункта назначения предполагается посещение заданного множества мест. ► Задача коммивояжера (1гауеИп§ 8а1езрег8оп ргоЫет — Т8Р) представляет собой такую задачу планирова- ния обхода, в которой требуется посетить каждый город, имеющийся на карте. Це- лью является отыскание маршрута со стоимостью < С (или в качестве задачи оп- тимизации — поиск пути с минимально возможной стоимостью). На улучшение возможностей Т8Р-алгоритмов было потрачено огромное количество усилий. Эти алгоритмы также могут быть расширены для управления флотами или автомо- бильными перевозками. Например, разработка алгоритма поиска и оптимизации маршрутов школьных автобусов в Бостоне позволила получить годовую экономию
в 5 млн долл., снизить интенсивность трафика и уменьшить загрязнение окружаю- щей среды, а также обеспечила экономию времени водителям и учащимся ([204], 2019). Помимо планирования маршрутов транспорта, алгоритмы планирования обхода использовались для решения таких задач, как планирование перемещений головки автоматической дрели при изготовлении печатных плат и определении оп- тимальных маршрутов доставки материалов к станкам в цехах. ► Задача компоновки СБИС требует позиционирования миллионов компонен- тов и соответствующей разводки соединений на кристалле для минимизации пло- щади, схемных задержек, паразитных емкостей и максимизации выхода готовой продукции. Задача компоновки следует за этапом логического проектирования и обычно подразделяется на две части: компоновка ячеек и разводка соединений. При компоновке ячеек простейшие компоненты схемы группируются по ячейкам, каждая из которых выполняет некоторую конкретную функцию. Каждая ячейка имеет постоянную форму (размеры и площадь) и требует создания определенно- го количества соединений с каждой из остальных ячеек. Целью является размеще- ние ячеек на кристалле таким образом, чтобы они не перекрывались и оставалось достаточно места для размещения соединительных проводников между ячейками. При разводке соединений осуществляется поиск конкретного маршрута для каждо- го проводника через зазоры между ячейками. Эти задачи поиска являются чрезвы- чайно сложными, но затраты на их решение, безусловно, оправдываются. ► Задача навигации робота представляет собой обобщение описанной выше задачи поиска маршрута. Вместо следования по отдельным путям (таким, как до- роги в Румынии) робот может двигаться в любом направлении, по сути проклады- вая собственный путь. Для робота, движущегося на колесах и перемещающегося по плоской поверхности, окружающее пространство фактически является двух- мерным. Если робот имеет верхние и нижние конечности, которыми также необ- ходимо управлять, то пространство поиска становится многомерным — по одно- му измерению на каждое угловое соединение. Даже для того чтобы сделать это пространство поиска конечным, требуются весьма развитые методы (см. главу 26). Реальные роботы, помимо изначальной сложности задачи, должны справляться с ошибками в показаниях своих датчиков и в управлении двигателями, с частичной наблюдаемостью среды и возможным наличием других роботов, способных изме- нять состояние среды. ► Автоматическая конвейерная сборка сложных объектов (таких, как элек- трические двигатели) с помощью в роботов стала стандартной практикой в про- мышленности уже с 1970-х годов. Сначала были найдены алгоритмы выполнимой последовательности сборки, а затем проведена работа по оптимизации процесса. Минимизация количества ручного человеческого труда на конвейере позволяет до- биться значительной экономии времени и затрат. В задачах сборки цель состоит в том, чтобы определить порядок сборки деталей какого-либо объекта. Если следо- вать неверному порядку, может оказаться, что поместить на свое место очередную часть будет невозможно без того, чтобы не снять некоторую уже установленную
ранее часть. Проверка действий в последовательности на выполнимость является задачей сложного геометрического поиска, тесно связанной с задачей навигации робота. В результате генерация допустимой последовательности действий ста- новится самым “дорогостоящим” элементом задачи конвейерной сборки. Любой практически применимый алгоритм должен предотвращать необходимость поис- ка во всем пространстве состояний, за исключением крошечной его части. Одной из важных задач сборки также является ► конструирование белка, цель которо- го состоит в том, чтобы найти последовательность аминокислот., которую можно будет сложить в трехмерную структуру белка с правильными свойствами, предна- значенного для лечения некоторых заболеваний. 3.3. Алгоритмы поиска____________________________________________ ► Алгоритм поиска в качестве входных данных принимает задачу поиска и возвращает ее решение либо сообщает о неудаче. В этой главе мы рассмотрим ал- горитмы, в которых на граф пространства состояний накладывается дерево по- иска, представляющее различные пути из начального состояния, выбранные в поисках пути, ведущего к целевому состоянию. Каждый ►узел в дереве поиска соответствует некоторому состоянию в пространстве состояний, а соединяющие узлы линии представляют действия. Корень дерева поиска соответствует началь- ному состоянию задачи. Важно понимать различие между пространством состояний и деревом поис- ка Пространство состояний описывает (возможно, бесконечный) набор состояний мира и те действия, которые позволяют переходить из одного состояния в другое. Дерево поиска описывает пути между теми состояниями, которые будут достигну- ты в поисках цели. Дерево поиска может иметь несколько путей (проходящих через несколько разных узлов) к любому заданному состоянию, но каждый узел в дереве имеет уникальный путь в обратном направлении к корню (как и у всех деревьев). На рис. 3.4 показаны первые несколько этапов поиска пути из Арада в Буха- рест. Корневой узел дерева поиска соответствует начальному состоянию, Агас1. Мы можем ► развернуть этот узел, рассмотрев все доступные для его состояния действия (Астюкз) и воспользовавшись функцией Не8иег, чтобы увидеть, куда эти действия приводят. Для каждого из полученных новых состояний ► форми- руется новый узел (называемый ►дочерним узлом или ►преемником либо по- томком). Для каждого сформированного дочернего узла узел Агад выступает в ка- честве ► родительского узла. Теперь нужно определить, какой из сформированных трех дочерних узлов рас- смотреть следующим. В этом и заключается суть поиска: сначала проверить один вариант, отложив другие в сторону для последующего анализа, если он потребу- ется. Предположим, решено сначала развернуть узел Сибиу, — результат показан на рис. 3.4, внизу: у нас есть набор из шести пока еще не развернутых узлов (на рисунке они выделены светло-серым фоном). Совокупность этих узлов называют
Рис. 3.4. Три частично развернутых дерева поиска, полученных при определении маршрута из Арада в Бухарест. Узлы, которые были развернуты, выделены темно-серым цветом и по- лужирным шрифтом. Периферийные узлы, которые были сформированы, но еще не развер- нуты, выделены светло-серым цветом. Множество состояний, соответствующих этим двум типам узлов, называют достигнутыми состояниями. Узлы, которые могут быть сформиро- ваны на следующем этапе, обозначены тонкими пунктирными линиями. Обратите внима- ние, что в нижнем дереве есть цикл: из Арада в Сибиу и обратно в Арад. Понятно, что та- кой путь не может быть оптимальным, поэтому поиск не должен следовать по этому пути периферией поискового дерева, а сами эти узлы — ► листовыми, поскольку в де- реве у них нет преемников. Также говорят, что любое состояние, для которого уже был сформирован узел в дереве поиска, было ►достигнуто (независимо от того, развернут этот узел или нет).5 На рис. 3.5 показано дерево поиска, наложенное на граф пространства состояний. 5 Некоторые авторы называют границу открытым списком, что как географически является менее наглядным, так и с вычислительной точки зрения менее целесообраз- но, поскольку для представления этой структуры эффективнее использовать очередь, а не список. Эти авторы также используют термин закрытый список в отношении
Рис. 3.5. Последовательность поисковых деревьев, развернутых на графе дорог в Румынии, представленных на рис. 3.1. На каждом этапе каждый узел на периферии был развернут по всем путям со всеми применимыми действиями, за исключением тех, которые приводят к состоянию, уже достигнутому ранее. Обратите внимание, что на третьем этапе первый сверху город (Орадя) имеет всего два преемника, оба из которых уже были достигнуты с помощью других путей, так что никакие пути из Оради уже не развертывались Обратите внимание, что периферия как совокупность листовых узлов ► разде- ляет граф пространства состояний на две области: внутреннюю, где каждое состо- яние уже было развернуто, и внешнюю, включающую все состояния, которые еще не были достигнуты. Это свойство проиллюстрировано на рис. 3.6. Рис. 3.6. Свойство разделения пространства состояния удобно демонстрировать на графе задачи клеточного мира. Образующие периферию листовые узлы (светло-серо- го цвета) отделяют внутреннюю область (узлы темно-серого цвета) от внешней обла- сти (пунктирные узлы). Периферия представляет собой множество узлов (и соответ- ствующих состояний), которые уже были достигнуты, но еще не были развернуты. Внутренняя область представляет собой множество узлов (и соответствующих со- стояний), которые уже были развернуты, а внешняя область — это набор состояний, которые еще не были достигнуты. На рис. а развернут только корень дерева, на рис. б дополнительно развернут верхний граничный узел, а на рис. с все остальные преем- ники корневого узла были развернуты при их обходе по часовой стрелке множества ранее развернутых узлов, что в нашей терминологии можно определить как достигнутые узлы без граничных узлов.
3.3.1. Поиск по первому наилучшему совпадению Как решить, какой узел периферии развертывать следующим? Самый общий подход называется ► поиском по первому наилучшему совпадению, при ко- тором следующим развертывается узел п с минимальным значением некоторой ► функции оценки /(л). На рис. 3.7 приведен соответствующий алгоритм. Здесь на каждой итерации из периферии выбирается узел с минимальным значением функции /(л), который возвращается как результат, если это состояние является целевым. В противном случае для формирования его дочерних узлов применяет- ся функция Ехраыо. Каждый дочерний узел добавляется в периферию, если это состояние не было достигнуто ранее, или еще раз добавляется к ней, если теперь оно достигается по пути, стоимость которого ниже, чем стоимость любого преды- дущего пути к этому состоянию. Алгоритм возвращает либо сообщение о неуда- че, либо узел, представляющий путь к цели. Используя различные функции /(л), можно получить различные конкретные алгоритмы, которые будут рассмотрены в этой главе. ГипсНоп ВЕ8Т-р1К8Т-$ЕАКСН(рго6/ет,/) геСигпз искомый узел или/аИиге пос1е <- Ыоое(8тате = рго/>/ет.11Ч1Т1АЕ) /гопИег <— очередь с приоритетом, упорядоченная по/, и элементом пос!е геаскес! <— таблица поиска с одной записью с ключом ргой/ети.11Ч1Т1АЕ и значением пос1е 1уЬ11е по! 18-ЕМРТУ(/гои//ег) до пос1е <— Рор(}гопНег) 1Грго6/ет.18-6ОАЬ(иоб/е.8тАТЕ) Шеп геШгп пос1е Гог еасЬ скИс1 ш ЕхРАМО(рго6/ет, пос1ё) до 8 <— с/н7с7.8тате И8 отсутствует в геаскес! ъг сЛЯ</.РАТН-СО8Т < геасйе<7[$].РАТН-С08Т Шеп геаскес^з] <— скИс! адд скИс! № /гопИег геСигп /аИиге ГипсНоп ЕхРАМО(рго6/ет, пос1ё) у 1е1дв узлы 8 <— ИОб/е.$ТАТЕ Гог еасЬ асИоп ш ргоЫетЛстюм$(8) до 8' <— ргоЫет.РЕЗицт(8, асИоп) со81 <— иоб/е.РАТН-Созт + ргой/ет.Астюк-Со8Т(5, асИоп, 8') у1е!д Ыоое(8тате = 8', Ракеыт = пос1е9 Асткж = асИоп, Ратн-Со8Т= сс>81) Рис. 3.7. Алгоритм поиска по первому наилучшему совпадению и функция развер- тывания узла. Используемые здесь структуры данных описаны в разделе 3.3.2. Для справок в отношении оператора уже1д обратитесь к приложению Б
3.3.2. Структуры данных при поиске Для применения алгоритмов поиска необходимы структуры данных, позволяю- щие сохранять сведения о пути в дереве поиска. Для представления отдельного узла дерева мы будем использовать структуру данных поде с четырьмя компонентами. • ло</е.8ТАТЕ: состояние в пространстве состояний, которому соответствует данный узел. • ло<7е.РлКЕНТ: узел в дереве поиска, применявшийся для формирования дан- ного узла (родительский узел). • иоб/е.Астюм: действие, которое было применено к родительскому узлу для формирования данного узла. • /ии&.Ратн-Созт: общая стоимость пути от начального состояния до данного узла. В математических формулах запись %(тюде) будет использоваться как синоним для РАТН-СО8Т. Следование из узла в обратном направлении по указателям Ракемт позволяет восстановить состояния и действия по пути, ведущему к этому узлу. Выполнение этой процедуры из целевого узла представляет собой искомое решение. Некоторая структура данных, назовем ее/гопИег, необходима и для хранения информации о периферии дерева. Наилучшим выбором будет ► очередь того или иного типа, что позволит выполнять с образующими ее листовыми узлами следу- ющие операции. • 1$-ЕмРТУ(/галГ/ег). Возвращает значение (гие (истина), если в очереди боль- ше нет элементов. • РорЦгопНег). Возвращает первый элемент в очереди и удаляет его из нее. • ТОРЦгопНег). Возвращает первый элемент в очереди, не удаляя его. • Ат(поде,)гопИег). Вставляет узел в надлежащее для него место в очереди. В алгоритмах поиска используются три типа очередей. • ► Очередь с приоритетом. В начало очереди помещается элемент с мини- мальной стоимостью, определяемой в соответствии с некоторой функцией оценки/. Такая очередь используется в поиске по первому наилучшему со- впадению. • ► Очередь типа Г1ГО. Очередь функционирует по приципу “первым во- шел — первым вышел”, т.е. первым из нее будет извлечен тот элемент, ко- торый был помещен в нее первым. Такая очередь используется при поиске в ширину. • ► Очередь типа ЫГО. Очередь функционирует по принципу “первым во- шел — последним вышел”, т.е. первым из нее будет извлечен элемент, ко- торый был помещен в нее последним. (Этот тип очереди также называют ► стеком.) Такая очередь используется при поиске в грубину.
Достигнутые состояния могут быть сохранены в структуре геаскес!, представ- ленной в виде таблицы поиска (например, хэш-таблицы), где ключом поиска явля- ется состояние, а каждое значение представляет узел для этого состояния. 3.3.3. Избыточные пути Дерево поиска, показанное на рис. 3.4, внизу, содержит путь из Арада до Си- биу и обратно, из Сибиу в Арад. В этом случае говорят, что Ага<1 является ►по- вторяющимся состоянием в поисковом дереве, образованным в данном случае из-за наличия ► цикла (или петли). Поэтому несмотря даже на то, что простран- ство состояний включает всего 20 состояний, дерево поиска в этом пространстве может включать бесконечное количество узлов, поскольку нет никаких ограниче- ний на количество прохождений любого из возможных в нем циклов. Цикл является особым случаем ►избыточного пути. Например, из Арада в Сибиу можно попасть по прямому пути (140 миль) или добраться по маршруту Арад-Зеринд-Орадя-Сибиу (297 миль). Этот второй путь избыточен, поскольку это просто худший способ перейти в то же состояние, что и в предыдущем слу- чае, поэтому этот путь не следует рассматривать при поиске оптимальных путей. Пусть агент в клеточном мире размером 10x10 имеет возможность переме- ститься в любой из 8 соседних квадратов. Если препятствий нет, агент может до- стичь любой из 100 клеток мира за 9 ходов или меньше. Но общее число путей длиной 9 будет почти 89 (чуть меньше из-за наличия краев мира) или более 100 миллионов. Другими словами, в общем случае любая ячейка может быть до- стигнута более чем миллионом избыточных путей длиной 9, и если исключить из рассмотрения все избыточные пути, поиск можно будет выполнить примерно в миллион раз быстрее. Перефразируя известное выражение, можно сказать: алгоритмы, которые не помнят прошлого, обречены повторять его. Существует три подхода к решению этого вопроса Во-первых, можно запоминать все уже достигнутые состояния (что и делается в алгоритме поиска по первому наилучшему совпадению), это позволит сразу вы- являть все избыточные пути и хранить только наилучший путь к каждому состоя- нию. Такой способ подходит для пространств состояний с большим количеством избыточных путей и будет предпочтительным выбором, когда таблица достигну- тых состояний помещается в памяти. Во-вторых, можно просто не беспокоиться о “повторении прошлого”. Суще- ствуют некоторые формулировки задач, в которых наличие двух путей, ведущих к одному и тому же состоянию маловероятно или невозможно. Примером может быть задача сборки, в которой при каждом действии к изделию добавляются дета- ли, причем в определенном порядке, так что можно добавить А, а затем В, но нель- зя добавить В, а затем А. Для подобных проблем можно сэкономить место в памя- ти, если вовсе не отслеживать достигнутые состояния и не проверять избыточные пути. Алгоритм поиска принято называть ►поиском в графе, если проверка
избыточных путей выполняется, и ►поиском по дереву,6 если она не выполня- ется. Алгоритм ВЕ8Т-Р1К8Т-8ЕАКСН на рис. 3.7 — это алгоритм поиска в графе, но если в нем удалить все ссылки на таблицу геаскесЦ он превратится в алгоритм по- иска по дереву, использующий меньше памяти, но проверяющий избыточные пути к одному и тому же состоянию, а значит, работающий медленнее. В-третьих, можно пойти на компромисс и проверять только на наличие циклов, а не вообще всех избыточных путей. Поскольку каждый узел имеет цепочку ука- зателей на родительские узлы, можно выявлять циклы и без использования до- полнительной памяти, просто проверяя цепочку родительских узлов на наличие в ней добавляемого конечного узла. В одних реализациях эта цепочка анализирует- ся полностью, и таким образом устраняются все циклы, тогда как в других реали- зациях проверяется только несколько первых ссылок (например, родитель, роди- тель родителя и родитель родителя родителя), причем на проверку затрачивается постоянное количество времени и устраняются все короткие циклы (и использу- ются другие механизмы для работы с длинными циклами). 3.3.4. Измерение производительности решения задачи Прежде чем приступить к анализу принципов работы различных алгоритмов поиска, будет полезно обсудить те критерии, которые используются при их выбо- ре. Оценить производительность алгоритма можно с помощью следующих четы- рех показателей. • ►Полнота. Гарантирует ли алгоритм нахождение решения, если оно имеет- ся, и корректное сообщение об ошибке, если решения не существует? • ►Оптимальность затрат. Обеспечивает ли алгоритм нахождение решения с минимальной стоимостью пути из числа всех возможных решений?7 • ►Временная сложность. За какое время алгоритм находит решение? Этот показатель можно измерять в секундах или более абстрактно — по количе- ству рассматриваемых состояний и действий. • ►Пространственная сложность. Какой объем памяти необходим для вы- полнения поиска? Чтобы понять смысл показателя полноты алгоритма, рассмотрим задачу поис- ка единственной цели. Искомая цель может находиться в любом месте простран- ства состояний, поэтому полный алгоритм должен быть способен систематиче- ски проанализировать каждое состояние, достижимое из начального состояния. 6 Мы говорим “поиск по дереву44, потому что пространство состояний остается тем же графом независимо от того, как выполняется поиск; мы просто рассматриваем его так, как если бы оно было деревом, только с одним путем от каждого узла до корня. 7 Одни авторы используют термин “приемлемость” для свойства поиска решения с наименьшими затратами, а другие это свойство определяют как просто “оптималь- ность”, но в этом случае его можно спутать с другими типами оптимальности.
В конечных пространствах достичь этого достаточно просто: если сохранять дан- ные о пройденных путях и отсекать циклы (например, Арад-Сибиу-Арад), в конце концов будут достигнуты все состояния, достижимые из начального. В бесконечных пространствах состояний требуется больше внимания. Напри- мер, алгоритм, многократно применяющий операцию получения факториала в за- даче “4” Кнута, будет следовать по бесконечному пути от 4 к 4! к (4!)! и т.д. Точно так же в бесконечном клеточном мире без препятствий повторение перемеще- ния вперед по прямой линии приведет к бесконечному пути из новых состояний. В обоих случаях алгоритм никогда не возвращается в состояние, которого он до- стиг ранее, но является неполным, поскольку обширные участки пространства со- стояний так никогда и не будут достигнуты. Чтобы быть полным, алгоритм поиска должен быть ► систематическим в от- ношении того способа, которым он исследует бесконечное пространство состо- яний, что позволит иметь уверенность в том, что в конечном итоге может быть достигнуто любое состояние, достижимое из начального состояния. Например, в бесконечном клеточном мире одним из видов систематического поиска явля- ется движение по спирали, охватывающее все клетки, находящиеся на расстоя- нии 5 этапов от отправного состояния, прежде чем переместиться к клеткам, на- ходящимся на расстоянии 5 + 1 этапов. К сожалению, в бесконечном пространстве состояний не содержащих решения, полный алгоритм будет продолжать поиск вечно; он не сможет закончить работу, потому что не может знать, будет ли следу- ющее состояние искомой целью. Временная и пространственная сложность всегда анализируются с учетом определенного критерия измерения сложности задачи. В теории компьютерных наук типичным критерием является размер графа пространства состояний, | Г| +|2Г|, где | Р| — число вершин (узлов состояний) графа, а |2?| — количество ребер (от- дельные пары “состояние/действие”). Это уместно, когда граф рассматривается как явно заданная структура данных, например карта дорог Румынии. Однако во многих задачах искусственного интеллекта граф представлен лишь неявно с по- мощью начального состояния, действий и функции определения преемника. При неявном задании пространства состояний сложность может быть измерена в тер- минах <7 — ► глубины или количества действий в оптимальном решении, т — максимального количества действий в любом пути и Ь — ► коэффициента вет- вления или числа преемников узла, которые необходимо учитывать. 3.4. Стратегии неинформированного поиска Неинформированный алгоритм поиска не имеет представления о том, насколь- ко близко любое состояние находится к цели (целям). Например, рассмотрим на- шего агента в городе Арад, цель которого — добраться до Бухареста. Неинформи- рованный агент без знания географии Румынии не может определить, какой город лучше выбрать на первом этапе — Зеринд или Сибиу. В противоположность этому
информированный агент (см. раздел 3.5), знающий о географическом расположе- нии каждого города, понимает, что Сибиу гораздо ближе к Бухаресту чем Зеринд, и следовательно, с большей вероятностью находится на кратчайшем пути к цели. 3.4.1. Поиск в ширину Когда все действия имеют одну и ту же стоимость, соответствующая страте- гия поиска называется ► поиском в ширину. Это простая стратегия, в которой первым развертывается корневой узел, далее развертываются все преемники кор- невого узла, затем — все преемники этих преемников и т.д. Это систематическая стратегия поиска, и следовательно, она будет полной даже в бесконечных про- странствах состояний. Можно реализовать стратегию поиска в ширину посред- ством вызова функции Ве8Т-Р1К8Т-5еаксн, если используемая функция оценки /(л) будет возвращать глубину узла, т.е. количество действий, необходимое для до- стижения этого узла. Эффективность этой стратегии можно повысить с помощью нескольких прие- мов. Во-первых, последовательная очередь типа ПРО (первым пришел — первым вышел) работает быстрее приоритетной и при этом автоматически обеспечивает правильный порядок развертывания узлов: новые узлы (которые всегда находятся уровнем ниже, чем их родители) помещаются в конец очереди, а ранее добавлен- ные в нее узлы, расположенные на более высоких уровнях, находятся в начале и будут развернуты первыми. Во-вторых, множество геаскес! теперь может представ- лять собой множество состояний, а не отображений состояний на узлы, поскольку, если состояние было достигнуто, мы можем уже не найти к нему лучшего пути. А это также означает, что появляется возможность выполнять ► раннюю провер- ку достижения цели, проверяя, является ли узел искомым решением, непосред- ственно при его формировании, отказавшись от ► поздней проверки достиже- ния цели, используемой в алгоритме поиска по первому наилучшему совпадению и заключающейся в проверке узла только тогда, когда он извлекается из очереди. На рис. 3.8 показан ход поиска в ширину в двоичном дереве, а на рис. 3.9 пред- ставлены соответствующие алгоритмы, построенные с учетом упомянутых выше возможностей повышения эффективности его работы. Рис. 3.8. Поиск в ширину в простом двоичном дереве. На каждом этапе узел, кото- рый будет развернут следующим, отмечен треугольным маркером
Поиск в ширину всегда находит решение с минимальным количеством дей- ствий, поскольку, когда формируется узел на глубине <7, все узлы на глубине <7 - 1 уже сформированы, а значит, если бы один из них был решением, он был бы уже найден. Это означает, что найденное решение будет оптимальным по затратам для тех задач, в которых все действия имеют одинаковую стоимость, но не для задач, в которых такого свойства нет. Поиск будет полным в любом случае. В отношении оценки затрат времени и пространства представим, что поисковое дерево унифи- цировано и каждое состояние имеет Ь преемников. При поиске из корневого узла формируется Ь узлов, при развертывании каждого из которых формируется еще по Ъ узлов, т.е. всего Ь2 узлов на втором уровне. При развертывании каждого из них формируется еще по Ъ узлов, в результате чего на третьем уровне будет Ь3 узлов, и т.д. Теперь предположим, что решение находится на глубине с1. Тогда общее ко- личество сформированных узлов составит 1+/> + /»2 + />3 + ...+^ = О(^). ГипсНоп ВкЕАОТН-р1К8Т-8ЕАКСН(ргой/ет) ге!игп$ искомый узел или/аИиге пос!е <— ЫООЕ(рго67е>и.1м1Т1АЕ) ИргоЬ1етЛ$-СоАЕ(по<Зе.$'ТА'ТЕ) !Ьеп геШгп пос1е /гопИег <— очередь типа ПРО с элементом пос1е геаскес/ <— {рго6/ет.11Ч1Т1АЕ} 1уЫ1е по! 18-Емрту(/гоиЦ'ег) до пос1е <— РОР(/гопНег) Гог еасЬ скИсГхп Ъхрм^{ргоЫет, пос1ё) до 8 <- бЛЗТАТЕ Ирго6/е>и.18-6ОАЕ($) Шеп геШгп скИс1 И 8 отсутствует в геаскес! Шеп добавить 8 в геаскес! добавить скИс1 в /гопИег геШгп /аИиге ГипсНоп Пм1ЕОКМ-Со8Т-$ЕАКСН(рго6/е>и) ге!игп$ искомый узел или /аИиге геШгп ВЕ8Т-р1К8Т-8ЕАКСН(^Г0б/ет, РАТН-СО8Т) Рис. 3.9. Алгоритм поиска в ширину и функция поиска по критерию стоимости Все сформированные узлы остаются в памяти, поэтому как временная, так и пространственная сложность этого алгоритма оценивается как О(Ьа). Экспоненци- альный рост сложности пугает. В качестве типичного примера из реального мира рассмотрим, например, задачу с фактором ветвления 6=10, скоростью обработки 1 млн узлов/с и требованиями к памяти на уровне 1 Кбайт/узел. Поиск с глубиной <7= 10 потребует чуть меньше 3 ч машинного времени, но также около 10 Тбайт памяти. ^Для поиска в ширину требования к памяти представляют существенно большую проблему чем время выполнения. Но время, тем не менее, также является
важным фактором. При глубине <Л= 14, даже при наличии бесконечно большой па- мяти поиск занял бы 3,5 года. В общем случае ^задачи поиска с экспоненциальной сложностью невозможно решить с использованием неинформированного поиска для всех случаев, кроме самых небольших экземпляров. 3.4.2. Алгоритм Дейкстры или поиск по критерию стоимости Когда действия имеют разные стоимости, очевидным выбором является ис- пользование поиска по первому наилучшему совпадению, где функция оценки — это стоимость пути от корневого узла до текущего узла. Этот алгоритм называется алгоритмом Дейкстры в сообществе теоретиков компьютерных наук и ► поиском по критерию стоимости — в сообществе специалистов ИИ. Идея состоит в том, что если поиск в ширину распространяется в пространстве состояний волнами одинаковой глубины (сначала — на глубину 1, затем — на глубину 2 и т.д.), то по- иск по критерию стоимости распространяется волнами по критерию стоимости пути поиска. Алгоритм может быть реализован как вызов функции ВЕ8Т-Е1К8Т- Зеаксн с использованием функции РАТН-СО8Т в качестве функции оценки, как по- казано на рис. 3.9. Рассмотрим рис. 3.10, на котором представлена часть схемы дорог Румынии для участка от Сибиу до Бухареста. Преемниками узла Сибиу являются Рымнику Вылча и Фэгэраш, стоимость пути до которых составляет 80 и 99 миль соответ- ственно. Следующим развертывается узел с меньшими затратами, Рымнику Выл- ча, добавляя в маршрут узел Питешти с общей стоимостью пути 80 + 97 = 177. Те- перь наименьшей стоимостью пути обладает узел Фэгэраш (99), поэтому он будет развернут следующим, добавляя в маршрут Бухарест с общей стоимостью пути 99 + 211 =310. Рис. 3.10. Часть пространства состояний Румынии, выбранная для иллюстрации поиска по критерию стоимости Бухарест (ВисИагеМ)
Бухарест является целью поиска, но в этом алгоритме проверка на достижение цели проводится только тогда, когда узел развертывается, а не когда формирует- ся как узел, так что тот факт, что путь к конечной цели найден, пока еще алгорит- мом не обнаружен. Алгоритм продолжает работать, выбирая следующим для развертывания узел Питешти, и добавляет в дерево второй маршрут к Бухаресту с ценой пути 80 + 97+101 =278. Этот путь имеет меньшую стоимость, и поэтому данный узел заменяет предыдущий в таблице геаскес! (достигнутые) и добавляется в очередь /гопНег (периферия). Далее выясняется, что теперь этот узел имеет наименьшую стоимость и, следовательно, выбирается для развертывания. Вот теперь, наконец, определяется, что он является целевым узлом и функция возвращает его в каче- стве результата своей работы. Обратите внимание, что если бы проверка дости- жения цели была проведена при создании узла, а не его развертывании как узла с наименьшей стоимостью пути, то функция вернула бы в качестве результата путь с более высокой стоимостью, — через Фэгэраш. Сложность поиска по критерию стоимости характеризуется в терминах С*, т.е. стоимости оптимального решения,8 и с, нижней границы стоимости каждого действия, при с>0. Тогда временная и пространственная сложность алгоритма в самом худшем случае может быть оценена как что может быть боль- ше, чем Ь?. Так происходит потому, что поиск по критерию стоимости может ис- следовать обширные деревья из действий с низкой стоимостью, прежде чем добе- рется до анализа путей, включающих пути с высокой стоимостью и, возможно, более полезные действия. Когда стоимость всех действий одинакова, пре- вращается в Ьа+' и поиск по критерию стоимости работает как поиск в ширину. Поиск по критерию стоимости является полным и оптимальным по затра- там, потому что первое найденное им решение будет иметь стоимость, которая по меньшей мере так же мала, как и стоимость любого другого узла в периферии. В поиске по критерию стоимости все пути рассматриваются систематически в по- рядке возрастания их стоимости и исключается попадание в бесконечные циклы (при условии, что стоимость любого действия будет >о0). 3.4.3. Поиск в глубину и проблема памяти При ► поиске в глубину всегда развертывается самый глубокий узел в теку- щей периферии дерева поиска. Такой поиск можно реализовать как вызов функ- ции Ве8Т-Р1К8Т-8еаясн с функцией оценки/ возвращающей глубину узла со зна- ком “минус”. Однако этот тип поиска обычно реализуется не как поиск в графе, а как поиск по дереву без сохранения таблицы достигнутых состояний. Ход такого поиска показан на рис. 3.11. Поиск сразу же начинает уходить в глубину, пока не 8 Здесь и далее во всей книге “звездочка” в обозначении С* означает, что это опти- мальное значение С.
достигнет самого глубокого уровня дерева поиска, на котором узлы не имеют пре- емников. По мере того как узлы на этом уровне развертываются, они удаляются из периферии и после их исчерпания поиск "возобновляется” со следующего само- го глубокого узла, который все еще имеет неисследованных преемников. Поиск в глубину не оптимален по затратам и возвращает первое же решение, которое будет найдено, даже если оно не является оптимальным по затратам. Рис. 3.11. Двенадцать первых этапов (слева направо, сверху вниз) работы алгоритма поис- ка в глубину в двоичном дереве от начального состояния А до целевого состояния М. Пе- риферия дерева выделена темно-серым цветом, а треугольный маркер указывает на узел, который будет развернут следующим. Уже развернутые узлы имеют светло-серую залив- ку, а те, которые еще могут быть достигнуты в будущем, представлены тонким пунктиром. Уже развернутые узлы, не имеющие преемников в периферии и уже отброшенные, пред- ставлены бледными размытыми очертаниями Для конечных пространств состояний, которые являются деревьями, этот тип поиска является эффективным и полным; для пространств состояний без циклов
он может закончиться многократным развертыванием того же самого состояния много раз через разные пути, но (в конечном счете) систематически исследует все пространство. В пространствах состояний с циклами этот алгоритм может попадать в бес- конечный цикл, поэтому некоторые реализации поиска в глубину включают про- верку каждого нового узла на наличие циклов. И наконец, в бесконечных про- странствах состояний алгоритм поиска в глубину не является систематическим: он может “застрять” в непрерывном движении вниз по бесконечному пути, даже если в самом пространстве состояний циклических переходов нет. Следовательно, ал- горитм поиска в глубину является неполным. Почему, учитывая все упомянутые выше недостатки, кто-то все же может ре- шить применить именно поиск в глубину, а не в ширину или по первому наилуч- шему совпадению? Ответ прост: для тех задач, в которых возможно построение дерева поиска, метод поиска в глубину имеет намного меньшие потребности в памяти. Нет необходимости хранить полную таблицу всех достигнутых узлов, а количество узлов в периферии относительно невелико: если совокупность пери- ферийных узлов при поиске в ширину можно представить себе как поверхность непрерывно расширяющейся сферы, образованной всеми достигнутыми узлами, то при поиске в глубину периферия будет представлять собой всего лишь радиус этой сферы. Для конечного древовидного пространства состояний, подобного представлен- ному на рис. 3.11, затраты времени при использовании алгоритма поиска в глуби- ну пропорциональны количеству состояний, а потребность в памяти оценивается как О(Ьт\ где Ь — это фактор ветвления, а т — максимальная глубина дерева. Не- которые задачи, для решения которых по алгоритму поиска в ширину потребуют- ся экзабайты памяти, при применении поиска в глубину можно решить, используя лишь килобайты памяти. Именно по причине его скромных потребностей в памя- ти поиск в глубину широко использовался в качестве основной рабочей лошадки во многих областях ИИ, в том числе в областях удовлетворения ограничений (гла- ва 6), проблемы выполнимости булевых формул (глава 7) и в логическом програм- мировании (глава 9). Существует вариант поиска в глубину, называемый ► поиском с возвратами, в котором используется еще меньше памяти (подробнее о нем — в главе 6). При поиске с возвратами каждый раз формируется только один преемник, а не все пре- емники, и в каждом частично развернутом узле запоминается информация о том, какой преемник должен быть сформирован следующим. В дополнение при форми- ровании преемника модифицируется само уже существующее описание текущего состояния, без выделения памяти для размещения нового. При этом потребность в памяти сокращается до объема, необходимого для хранения только одного описа- ния состояния и О(т) действий, — существенное сокращение в сравнении с О(Ьт) состояний для классического поиска в глубину. При поиске с возвратами также по- является возможность использовать более эффективную структуру набора данных
для состояний в текущем пути, что позволяет проверять наличие циклических пу- тей за время 0(1) вместо О(т). Однако для успешного применения этого типа по- иска нужно иметь возможность отменять каждую модификацию при возврате, выполняемом для формирования следующего преемника. Использование метода поиска с возвратами может оказаться важнейшим фактором достижения успеха при решении задач с объемными описаниями состояния, таких как роботизиро- ванная сборка. 3.4.4. Поиск с ограничением глубины и поиск в глубину с итеративным углублением Чтобы предотвратить зацикливание алгоритма поиска в глубину на бесконеч- ном спуске, можно прибегнуть к ► поиску с ограничением глубины — варианту классического алгоритма, в котором установлен лимит максимальной допустимой глубины /, т.е. все узлы на глубине / рассматриваются как не имеющие преемни- ков (рис. 3.12). Временная сложность этого алгоритма — О(Ь\ а пространствен- ная сложность — К сожалению, если в любом конкретном случае неудачно выбрать значение/, алгоритм не сможет достичь искомого решения, что, опять-та- ки, делает его неполным. Поскольку поиск в глубину является древовидным поиском, в общем случае мы не можем не позволить ему тратить время на проверку избыточных путей, но можем исключить циклы за счет дополнительных расходов времени на вычисле- ния. Если в родительской цепи проверять на цикличность лишь несколько ссылок вверх, можно выявить большинство имеющихся циклов, а более длинные циклы будут устранены за счет задания предельной глубины. Иногда хороший лимит глубины можно выбрать, основываясь на знании про- блемы. Например, на карте Румынии (см. рис. 3.1) имеется 20 городов, поэтому /= 19 является максимальным допустимым лимитом. Но если внимательно изу- чить эту карту, то можно обнаружить, что любой город может быть достигнут из любого другого города в пределах 9 этапов. Это число, известное как ► диаметр графа пространства состояний, дает лучший лимит глубины, что ведет к повыше- нию эффективности поиска с ограничением глубины. Однако для большинства за- дач мы не сможем установить хороший лимит глубины, пока она не будет решена. ► Поиск в глубину с итеративным углублением решает проблему выбора хо- рошего значения для лимита глубины / посредством проверки всех его значений в порядке увеличения (сначала — 0, затем —1, потом — 2 и т.д.) — пока либо не будет найдено решение, либо функция поиска с ограничением глубины не вернет значение/аИиге вместо си1о$. Данный алгоритм представлен на рис. 3.12. Итера- тивный поиск в глубину сочетает в себе многие преимущества и поиска в глубину, и поиска в ширину. Как и поиск в глубину, он предъявляет скромные требования к памяти: О(Ь(1), если решение существует, и О(Ьт) — для границы пространства со- стояний, если решение отсутствует. Как и в случае поиска в ширину, итеративный
поиск в глубину является оптимальным для задач, у которых все действия имеют одну и ту же цену, и полным для конечных пространств состояний без циклов или любых конечных пространств состояний в случае проверки на наличие цикла всех узлов, находящихся на пути вверх. ГипсНоп 1ТЕЕАТ1УЕ-ВЕЕРЕМ1МС-8ЕАКСН(ргой/ет) ге!игп$ искомый узел или/аИиге Гог (1ер1к = 0 1о оо до ге$ик <- ОЕРТН-1лМ1ТЕО-$ЕАКСН(рго6/ет, кер1к) И гезиИ си1о$ Шеп геШгп гезик ГипсНоп ВЕРТН-Ь1М1ТЕО-8ЕАКСН(рго5/ет, /) геШгпз узел или/аИиге или си1о$ /гопИег <— очередь типа ЫРО (стек) с элементом ЫооЕ(рго6/е>и.1м1Т1АЕ) гезик <— /аИиге 1уЬ11е по! 18-ЕмРТТ(/гои//ег) до пос1е <— РорЦгопкег) Иргой/ет.18-СОАЕ(лоб7е.8тАТЕ) Шеп ге!игп пос1е ИВЕРТН(иобУе) > / Шеп гезик <— си1о// е!$е 1Г по! 18-СтсьЕ(иоб7е) до Гог еасЬ скИсГхп ЕхРМАЪ^ргоЫет, пос1ё) до добавить сЫШ в /гопкег ге!игп гезик Рис. 3.12. Поиск по дереву в глубину с итеративным углублением и с ограничением глубины. Функция итеративного углубления многократно обращается к функции по- иска с ограничением глубины с возрастающим лимитом глубины. Она возвращает зна- чение одного из трех возможных типов: либо искомый узел, либо значение/аИиге, ког- да проверены все узлы и доказано, что среди них нет искомого на любой глубине, либо значение указывающее, что искомый узел может находиться на глубине, боль- шей, чем /. Данный алгоритм поиска по дереву не требует хранения всех достигнутых состояний, и следовательно, использует гораздо меньше памяти, чем алгоритм поис- ка по первому наилучшему совпадению, но допускает возможность многократного по- сещения одного и того же узла по разным путям. Кроме того, если проверке 18-СУСЬЕ будут подвергнуты не все циклы, этот алгоритм может попасть в бесконечный цикл. Временная сложность алгоритма составляет О(Ъа) при наличии решения и О(Ьт) — при его отсутствии. На каждой итерации алгоритма поиска с итератив- ным углублением генерируется новый уровень узлов, — точно так, как при поис- ке в ширину, но при поиске в ширину это делается с последующим сохранением всех сформированных узлов в памяти, тогда как при итеративном поиске каждый уровень повторно использует один и тот же участок памяти, обеспечивая тем са- мым ее экономию за счет дополнительных затрат времени. На рис. 3.13 показаны первые четыре итерации работы алгоритма поиска с итеративным углублением на дереве двоичного поиска, в котором решение находится на четвертой итерации.
Лимит: 0 Рис. 3.13. Четыре итерации поиска в глубину с итеративным углублением целевого узла М в двоичном дереве с изменением лимита глубины / от 0 до 3. Обратите внимание, что вну- тренние узлы образуют единственный путь. На рисунке треугольным маркером отмечает- ся узел, который будет развернут следующим; узлы с темно-серой заливкой образуют пе- риферию; а светло-серым показаны узлы, которые уже отброшены и не могут быть частью решения при заданном лимите глубины Поиск с итеративным углублением может показаться расточительным, посколь- ку все узлы в верхней части дерева поиска повторно формируются на каждой ите- рации. Но во многих пространствах состояний большинство узлов находится на нижнем уровне, поэтому не имеет большого значения, что верхние уровни фор- мируются повторно. При поиске в глубину с итеративным углублением узлы на
нижнем уровне (глубина с!) формируются один раз, узлы, которые находятся на предыдущем по отношению к нижнему уровне, формируются два раза, и так далее вплоть до дочерних узлов корневого узла, которые формируются с! раз. Следова- тельно, общее количество формируемых узлов в самом худшем случае составляет =(фь' + (<7- 1 )Ь2 + (<7- 2)Ь3 ...+Ъа, что дает временную сложность О(Ьа) — асимптотически такую же, как и при по- иске в ширину. Например, если Ъ = 10 и <7= 5, то соответствующие значения наи- большего количества узлов будут равны ^08 = 50 + 400 + 3000 + 20 000 + 100 000 =123 450> ЛГ_„ = 10+100+ 1000+10 000+ 100 000= 111 ПО. ОГО Если повторное формирование узлов действительно вызывает беспокойство, можно использовать гибридный подход: поиск в ширину выполняется вплоть до момента, когда будет использована вся доступная память, после чего для всех уз- лов, находящихся в этот момент в периферии, выполняется поиск в глубину с ите- ративным углублением. -► В общем случае поиск в глубину с итеративным углубле- нием — это предпочтительный метод неинформированного поиска при условиях, когда пространство поиска велико, а глубина решения неизвестна. 3.4.5. Двунаправленный поиск Алгоритмы, рассматривавшиеся до этого момента, начинают свою работу из начального состояния и способны достичь любого из нескольких возможных це- левых состояний. Альтернативный подход, называемый ► двунаправленным по- иском, предполагает одновременное выполнение поиска в прямом направлении из начального состояния и в обратном направлении от целевого состояния (или состояний) в надежде, что два этих поиска встретятся. Идея состоит в том, что Ь^+Ь^2 гораздо меньше, чем Ьа (например, в 50000 раз меньше, если Ь=с1= 10). Для реализации этой идеи необходимо отслеживать две периферии и хранить две таблицы достигнутых состояний, а также иметь возможность рассуждать в об- ратном направлении: если состояние 5'является преемником состояния 5 в прямом направлении, то теперь нам необходимо знать, что состояние 5 является преемни- ком состояния 5' в обратном направлении. Решение будет найдено, когда две пери- ферии столкнутся.9 9 В нашей реализации структура данных таблицы геаскес! поддерживает запрос о том, входит ли в нее некоторое заданное состояние, а структура данных УгопНег (очередь с приоритетом) не поддерживает. Поэтому для проверки наличия столкновения у нас ис- пользуются структуры геаскес! — достигнутые узлы, хотя концептуально речь идет о столкновении границ, т.е. периферии каждого поиска. Предлагаемая реализация может быть расширена для обработки нескольких целевых состояний путем формирования уз- лов для каждого целевого состояния в периферии и таблице достигнутых узлов обратно- го поиска.
Существует много различных версий двунаправленного поиска — просто пото- му, что имеется много различных алгоритмов однонаправленного поиска. В этом разделе рассматривается двунаправленный поиск по первому наилучшему совпа- дению. Хотя в этом случае есть две независимые периферии, следующий узел, который должен быть развернут, всегда будет один — с минимальным значени- ем функции оценки, в пределах любой из двух периферий. Если функция оцен- ки представляет собой стоимость пути, мы получаем двунаправленный поиск по критерию стоимости, при этом если стоимость оптимального пути равна С*, то ни один узел со стоимостью > С*/2 не будет развернут. Такой подход может привести к значительному ускорению работы алгоритма. Общий алгоритм двунаправленного поиска по первому наилучшему совпаде- нию представлен на рис. 3.14. На входе функции передаются по две версии задачи и функции оценки, первая версия для прямого направления (индекс Т7), а вторая — для обратного (индекс В). Известно, что когда функция оценки является стоимо- стью пути, первое найденное решение будет оптимальным решением, но при на- личии двух различных функций оценки это утверждение не всегда справедливо. Следовательно, необходимо сохранять последовательность найденных на данный момент наилучших решений, и, возможно, потребуется несколько раз его обно- вить, пока тест Текмпчатео не докажет, что возможных лучших решений больше не осталось. 3.4.6. Сравнение алгоритмов неинформированного поиска На рис. 3.15 приведены результаты сравнения рассмотренных выше алгоритмов неинформированного поиска в терминах четырех критериев оценки, сформулиро- ванных в разделе 3.3.4. Это сравнение проведено для версий древовидного поис- ка, не проверяющих наличия повторяющихся состояний. При реализации поиска в графе с выполнением такой проверки основные различия будут состоять в том, что поиск в глубину будет полным для конечных пространств состояний, а простран- ственная и временная сложность ограничены размерами пространства состояний (количество вершин и ребер, | У\ + |Л|). 3.5. Стратегии информированного (эвристического) поиска________________________________________ В данном разделе показано, как стратегия ► информированного поиска (та- кая, в которой, кроме определения самой задачи, используются знания, относящи- еся к данной конкретной проблемной области) позволяет находить решения более эффективно, чем стратегия неинформированного поиска. Необходимые подсказки поступают от ► эвристической функции, обозначаемой как Л(и):10 10 Может показаться странным, что эвристическая функция работает с узлом, когда нам в действительности нужно лишь состояние узла. Это просто традиция — использовать
к(п) = оценка стоимости самого дешевого пути от состояния в узле п до целевого состояния. Например, в задаче поиска маршрута в Румынии можно было бы оценивать дистанцию от текущего узла до целевого, вычисляя по карте расстояние по пря- мой линии между этими двумя точками. В разделе 3.6 будет подробнее рассказано об эвристиках и способах их отыскания. ГипсНоп В1ВР-8ЕАКСН(ргой/ет/7,/7,ргой/етл,7л) геСигпз искомый узел или/аИиге поде? <— №оЕ(рго67е>И/7.11Ч1Т1АЕ) И Узел для исходного состояния по<1ев <— ЫооЕ(рго57е>Ил.11Ч1Т1АЕ) // Узел для целевого состояния /гопИегр^- очередь с приоритетом, упорядоченная по и элементом поде? /гопйегв <— очередь с приоритетом, упорядоченная по/в, и элементом пос1ев геаске^р <— таблица поиска с одним ключом иоб7е/7.$ТАТЕ и значением поде? геаске<1в <— таблица поиска с одним ключом ио^вд.ЗтАТЕ и значением пос1ев 8о1иИоп <— /аИиге 1уЬ11е по! ТЕКМПМАТЕО(5о/мЦ'ол,^*олЦ'ег/7,^ропИегв) <1о И /е^О^/гопИсгеУ) < /в(ТОР(УгопИегв)) Шеп 8о1иНоп <— РРОСЕЕ^(Р,ргоЫетг,/гопИегг, геаскес!?, геаскес1в, 8о1иНоп) еке 8о1иНоп <— РКОСЕЕЭ(В, ргоЫетв,/гопИегв, геаскес^ геаскес!?, 8о1иНоп) геСигп 8о1иИоп ГипсНоп Ркосеев(сИг, ргоЫет,/гопИег, геаскесЦ геаскеск, 8о1иИоп) геСигпз решение И Разворачивает узел в периферии} сравнивает с другой периферией в геаскес^. И Переменная “сИг” определяет направление поиска: Р — вперед, В — назад. пос1е <— РОР(/гоиЦ'ег) Гог еасЬ скИсГхп Ехршъ^ргоЫет, пос1е) до 8 <- с/н’И.ЗТАТЕ И 8 по! ш геаскес!от Ратн-СО8Т(сЛ#У) < РАТН-СО8Т(геасйеб7[$]) Шеп геаскес1[8]<^- скМ добавить скИс1 в /гопНег И 5 18 ш геаскеск Шеп 8о1иНопг <— Д01М-?400Е8(бйг, скИск геаскес^з])) И Ратн-Со8т($о7мц'ои2) < Ркт-Со^х(8о1иИоп) Шеп 8о1иИоп <— 8о1иИоП1 геСигп 8о1иИоп Рис. 3.14. Двунаправленный поиск по первому наилучшему совпадению поддерживает две очереди периферии/гопИег^ и две таблицы достигнутых состояний геаскес!^. Когда путь в одной из периферий достигает состояния, которое уже было достигнуто в другой половине поиска, эти два пути объединяются (функция ДОПЧ-КОВЕ8) для формирования решения. Пер- вое решение, которое будет найдено, не обязательно будет оптимальным, — для определения, когда можно будет прекратить поиск новых решений, используется функция ТЕКМПЧАТЕВ функцию к(п) вместо функции к($) для поддержания соответствия с функцией оценки /(п) и функцией стоимости пути %(п).
Характеристика Поиск в ширину Поиск по критерию стоимости Поиск в глубину Поиск с ограни- чением глубины Поиске итератив- ным углуб- лением Двунаправ- ленный поиск (если применим) Полнота Да’ Да’'6 Нет Нет Да’ Да’’г Оптимальность Да’ Да Нет Нет Да’ Да‘,г Временная сложность О(^ 0(^4^ 0(Ът) О(Ь() 0(Ьаг) Пространственная сложность <>№ 0(Ьт) 0(М) 0(М 0(*й-) Рис. 3.15. Оценка алгоритмов неинформированного поиска. Здесь Ь — коэффициент вет- вления; т — максимальная глубина дерева поиска; с1 — глубина решения с наименьшей глубиной и будет равно т, если решения нет; / — лимит глубины поиска. Буквенные ин- дексы имеют следующее значение: а — полный, если Ь конечно, а пространство состояний либо содержит решение, либо конечно; б — полный, если стоимость всех действий > г>0; в — оптимальный по затратам, если стоимость всех действий одинакова; г — если в обоих направлениях выполняется поиск в ширину или по критерию стоимости 3.5.1. Жадный поиск по первому наилучшему совпадению ►Жадный поиск по первому наилучшему совпадению — это форма поис- ка по первому наилучшему совпадению, в которой первым развертывается узел с наименьшим значением Л(л), т.е. узел, который кажется наиболее близким к цели, исходя из предположения, что это может быстрее привести к цели. Поэтому функ- цией оценки в данном случае будет/(п)=И(п). Давайте посмотрим, как эта стратегия работает на примере задачи поиска маршрута в Румынии. Будем использовать эвристику ►расстояние по прямой (81га1§1п Ыпе О181апсе — 8ЬП), для которой примем обозначение Л5ЛО. Если целью является Бухарест, то необходимо знать расстояния по прямой от него до каждо- го города, приведенного на рис. 3.1, — эти данные приведены на рис. 3.16. Напри- мер, Л5ЛО(ЯниТ)=366. Обратите внимание, что значения функции не могут быть вычислены на основании описания самой задачи (т.е. функций Астю№ и Везеет). Более того, здесь также нужны определенные знания о мире, чтобы понять, как значения функции кзьо связаны с действительными дорожными расстояниями и, следовательно, могут л и они являться полезной эвристикой. На рис. 3.17 показан процесс выполнения жадного поиска по первому наилуч- шему совпадению с использованием значений эвристики к8Ы) для определения пути от Арада до Бухареста. Первым узлом, подлежащим развертыванию после узла Ага<1, является узел 81Ыи, поскольку город Сибиу находится ближе к Буха- ресту, чем города Зеринд или Тимишоара. Следующим узлом, подлежащим раз- вертыванию, является узел Ра^агаз, поскольку теперь ближайшим к Бухаресту является город Фэгэраш. Узел Ра%агаз, в свою очередь, обеспечивает формирова- ние узла Вискагез!, который и является целевым. Применение в процессе решения
данной конкретной задачи алгоритма жадного поиска по первому наилучшему со- впадению с использованием эвристической функции к8ь[) позволило найти реше- ние без развертывания какого-либо узла, не находящегося на пути решения. Одна- ко найденное решение не является оптимальным: путь до Бухареста через города Сибиу и Фэгэраш на 32 мили длиннее, чем путь через города Сибиу, Рымнику Вылча и Питешти. Вот почему данный алгоритм называется “жадным”: на каждом этапе он пытается подойти к цели как можно ближе (фигурально выражаясь, “за- хватить как можно больше”), однако жадность может привести к худшим резуль- татам в сравнении с внимательностью. Обозначение узла Город Расстояние по прямой до Бухареста Обозначение узла Город Расстояние по прямой до Бухареста Агад Арад 366 МекасНа Мэхадия 241 Вискагез! Бухарест 0 ЫеатТ Нямц 234 Сга'юна Крайова 160 Огадеа Орадя 380 ОгоЬеЬа Дробета 242 РПезИ Питешти 100 Е/опе Эфорие 161 Штпки \Лкеа Рымнику Вылча 193 Еадагаз Фэгэраш 176 З’/Ыи Сибиу 253 С/игд/и Джуржду 77 Пт/зоага Тимишоара 329 Н1гзома Хыршова 151 ипкеп/ Урэичени 80 1аз1 Яссы 226 \/аз1ш Васлуй 199 Ьидо] Лугож 244 Хеппд Зеринд 374 Рис. 3.16. Значения функции к8Ы) — расстояния по прямой линии до Бухареста Жадный поиск по первому наилучшему совпадению является полным только в конечных пространствах состояний и не является таковым в бесконечных. В наи- худшем случае временная и пространственная сложность этого алгоритма оцени- вается как О(| Г|). Однако с хорошей эвристической функцией его сложность может быть существенно уменьшена и для некоторых задач достигать О(Ьт). 3.5.2. Поиск А* Наиболее распространенный алгоритм информированного поиска носит назва- ние ► поиск А* (произносится “поиск А-звездочка”). Это алгоритм поиска по пер- вому наилучшему совпадению, использующий функцию оценки /(л) = «(л) + А(и), где — это стоимость пути от начального состояния до узла п, а к(п) — это рас- четная стоимость кратчайшего пути от узла п до целевого состояния, поэтому мы имеем /(п) = оценочная стоимость наилучшего пути, который идет через узел п к цели.
Рис. 3.17. Этапы выполнения жадного поиска по первому наилучшему совпадению с ис- пользованием эвристической функции И8Ы) — расстояния до Бухареста по прямой линии. На рисунке для всех узлов приведено их Л-значение На рис. 3.18 представлены этапы поиска по алгоритму А* с целью попасть из Арада в Бухарест. Значения функции % вычисляются на основании стоимости дей- ствий, как показано на рис. 3.1, а значения функции к8Ы) приведены на рис. 3.16. Обратите внимание, что узел Вискаге$1 впервые появляется в периферии на эта- пе д, но в этом случае он не выбирается для развертывания (и поэтому не об- наруживается как целевой узел), так как при значении/=450 он не является уз- лом с наименьшей стоимостью в пределах периферии, поскольку в ней есть узел РИезИ с /=417. Иначе можно сказать, что так происходит потому, что может
Рис. 3.18. Этапы выполнения алгоритма поиска А* для определения оптимального пути в Бухарест. Для всех узлов указаны значения функции /=#+й. Значения к — это расстояния по прямой до Бухареста, представленные на рис. 3.16
существовать решение, проходящее через Питешты, стоимость которого — всего лишь 417, так что алгоритм не будет полагаться на другое решение, стоимость ко- торого составляет 450. На этапе д выбирается другой путь к Бухаресту, который второй раз появляется в периферии, и теперь этот узел является самым дешевым при/=418. Именно поэтому он выбирается следующим для развертывания и об- наруживается как оптимальное решение. ПоискА* является полным.11 Будет ли поискА* оптимальным по затратам, за- висит от определенных свойств выбранной эвристики. Ключевым свойством в данном случае является допустимость: ► допустимой эвристикой является такая эвристика, которая никогда не переоценивает стоимость достижения цели. (Сле- довательно, допустимая эвристика является оптимистической} При применении допустимой эвристики алгоритм поиска А* является оптимальным по затратам, что можно доказать методом от противного. Предположим, что оптимальный путь имеет стоимость С *, но алгоритм при выполнении возвращает путь стоимостью С > С*. Тогда должен существовать какой-то узел п, который находится на опти- мальном пути и является неразвернутым (потому, что если все узлы на оптималь- ном пути были развернуты, то должен был возвращен этот оптимальный путь). Поэтому, используя нотацию % *(и) для обозначения стоимости оптимального пути из исходного узла до узла п и нотацию Л *(и) для обозначения стоимости опти- мального пути от узла п до ближайшей цели, мы имеем: /(и)>С* /(и) = Я(и) + Л(и) /(и) = Я*(») + А(и) /(«)<&*(«) + Л*(и) /(л)* С* (иначе узел п был бы развернут) (по определению) (поскольку п находится на оптимальном пути) (по свойству допустимости Л(л) < Л*(и)) (по определению С * = # *(и) + Ь *(«)) Первая и последняя строки противоречат одна другой, поэтому предположение о том, что алгоритм может возвращать неоптимальный путь, следует считать не- верным, — значит, можно утверждать, что поискА* возвращает только оптималь- ные по затратам пути. Немного более строгое свойство эвристики называется ► преемственностью или монотонностью. Эвристика Л(л) является преемственной, если для любого узла п и его преемника п', формируемого действием а, мы имеем И(п)<с(п, а,п') + Ып'). Это требование является одной из форм ► неравенства треугольника, посту- лирующего требование о том, что любая из сторон треугольника не может быть больше, чем сумма двух других его сторон (рис. 3.19). Примером преемственной эвристики является расстояние по прямой линии И811), — ее мы использовали, что- бы найти путь до Бухареста. 11 Опять же, предполагая, что стоимости всех действий >е>0 и пространство состоя- ний либо содержит решение, либо является конечным.
Рис. 3.19. Неравенство треугольника: если эвристика И является преемственной (или монотонной), то значение к(п) всегда будет меньше, чем сумма стоимости с(и, а, п') действия от узла п к узлу п' и эвристической оценки к(п') Каждая преемственная эвристика является допустимой (но не наоборот), так что при использовании преемственной эвристики алгоритм поиска А* является оптимальным по затратам. Кроме того, при преемственной эвристике в первый же раз, когда некоторое состояние достигается, оно будет находиться на оптимальном пути, поэтому больше не потребуется еще раз добавлять его в периферию и изме- нять запись в таблице геаскес! (достигнутые). С другой стороны, при использова- нии немонотонной эвристики поиск может закончиться с несколькими путями, ве- дущими к одному и тому же состоянию, и если каждый новый путь будет иметь более низкую стоимость, чем предыдущий, то в конечном итоге поиск закончится с несколькими узлами в периферии для одного и того же состояния, на что будет затрачено дополнительное время и память. По этой причине в некоторых реали- зациях алгоритма поиска А* позаботились о том, чтобы каждое состояние могло войти в периферию только один раз, и если к состоянию найден лучший путь, все преемники этого состояния будут обновлены (такой подход требует, чтобы узлы содержали указатели на узлы-потомки и родительские узлы). Подобные осложне- ния вынудили многих реализаторов избегать немонотонных эвристик, но Фель- нер и др. ([725], 2011) утверждают, что худшие последствия редко имеют место на практике, а значит, не следует бояться использовать немонотонные эвристики. При недопустимой эвристике алгоритм поиска А* может быть или не быть оп- тимальным по затратам. Вот два случая, когда это имеет место. Во-первых, если есть хотя бы один оптимальный по затратам путь, на котором функция к(п) явля- ется допустимой для всех узлов п в пути, то этот путь будет найден независимо от того, что эвристики говорят в отношении состояний на этом пути. Во-вторых, если оптимальное решение имеет стоимость С *, а второй из лучших путей имеет сто- имость С2 и если функция к(п) переоценивает некоторые стоимости, но всегда не больше, чем С2 - С*, то алгоритм поиска А* гарантированно вернет оптимальное по затратам решение. 3.5.3. Контуры поиска Полезный способ визуализации процесса поиска состоит в том, чтобы рисовать ► контуры в пространстве состояний, подобно контурам равных высот на
топографической карте. На рис. 3.20 представлен соответствующий пример. Вну- три контура, помеченного цифрой 400, все узлы имеют/(«)=&(«) + к(п) < 400 и т.д. Далее, поскольку в поиске А* всегда развертывается периферийный узел с мини- мальной /-стоимостью, можно заметить, что поиск распространяется из начально- го узла, добавляя новые узлы в виде концентрических полос с возрастающей /стоимостью. При поиске по критерию стоимости также можно построить контуры, но уже по ^-стоимости, а не по значению %+И. В этом случае контуры будут представлять собой концентрические кольца с центром в начальном состоянии, равномерно рас- пространяющиеся во всех направлениях, без предпочтения в отношении направ- ления к цели. Если использовать более точные эвристические функции, полосы будут вытягиваться в направлении целевого состояния, теснее охватывая опти- мальный путь, как показано на рис. 3.20. Рис. 3.20. Карта дорог Румынии, на которую нанесены контуры, соответствующие /=380,/= 400 и/=420, с городом Арад в качестве начального состояния. Узлы вну- три каждого такого контура имеют стоимость/= % + к, меньшую или равную значе- нию контура Должно быть очевидно, что при развертывании пути функция ^-стоимости яв- ляется ► монотонной: при движении по пути стоимость пути постоянно увеличи- вается, поскольку стоимость любого действия всегда положительна.12 В результате образуются концентрические линии контуров, не пересекающиеся между собой, 12 Если говорить точнее, для функции затрат, значения которой непрерывно увеличи- ваются, используется термин “строго монотонная”, а термин “монотонная” предназначен для функции затрат, значения которой никогда не уменьшаются, но могут оставаться не- изменными.
и если наносить эти линии достаточно тонкими, то их всегда можно будет прове- сти между любыми двумя узлами на любом пути. Однако не всегда очевидно, будет ли монотонно возрастать функция стоимости /=&+Л. При расширении пути от л к л' стоимость меняется от #(и) + Л(и) к #(п) + + с(л,а, и')+Л(и')- Отбрасывая общий член #(и), видим, что стоимость пути будет монотонно возрастать тогда и только тогда, когда Л(и) < с(и, а, п')+к(п'), — други- ми словами, тогда и только тогда, когда эвристика является преемственной.13 Но обратите внимание, что путь может включать несколько узлов, образующих ряд с одним и тем же значением суммы #(и) + Л(и). Эта ситуация будет иметь место всякий раз, когда уменьшение значения к будет в точности равно стоимости вы- полняемого действия, например в клеточном мире, когда узел п находится в той же строке, что и целевой узел, и предпринимается переход в направлении к цели, зна- чение % увеличивается на 1, а значение к уменьшается на 1. Если С * — стоимость пути оптимального решения, то мы можем сказать следующее. • В поиске А* развертываются все узлы, которые могут быть достигнуты из начального состояния на пути, где каждый его узел имеет/(и)<С*. Говорят, что это ► обязательно развертываемые узлы. • В поиске А* перед выбором целевого узла могут также развертываться узлы, находящиеся непосредственно на “целевом контуре” (т.е. где/(и)=С*). • В поиске А* не развертываются узлы с/(и)>С*. Можно утверждать, что алгоритм поиска А* ► оптимально эффективен в том смысле, что любой алгоритм, который начинает поиск пути из начального состоя- ния и использует ту же самую эвристическую информацию, должен будет развер- нуть не меньше узлов, чем при поиске по алгоритму А* (потому что любой из них мог бы оказаться частью пути к оптимальному решению). Один алгоритм может действовать более удачно и из узлов с/(и)=С* выбрать оптимальный первым, тог- да как другой алгоритм в этом отношении может оказаться менее удачливым, — в определении оптимальной эффективности эти различия не учитываются. Алгоритм поиска А* является эффективным потому, что в дереве поиска ►отсекаются все узлы, которые не потребуются в дальнейшем поиске оптималь- ного решения. На рис. 3.18, б видно, что узел Титзоага имеет/=447, а узел Хе- гии!—/=449. Хотя эти узлы и являются дочерними для корневого узла дерева и должны были бы находиться в числе первых узлов, развернутых при поиске по критерию стоимости или при поиске в ширину, они никогда не будут развернуты при поиске А*, потому что уже было найдено решение с/=418. Концепция от- сечения — исключения из рассмотрения вариантов без необходимости их изуче- ния — очень важна для многих областей ИИ. 13 В действительности термин “монотонная эвристика” является синонимом термина “последовательная эвристика”. Эти две идеи были разработаны независимо одна от дру- гой, но позднее было доказано, что они эквивалентны ([1751], 1984).
Тот факт, что поиск А* является полным, оптимальным по затратам и опти- мально эффективным среди всех подобных алгоритмов, оставляет очень прият- ное впечатление. К сожалению, это не означает, что поиск А* является ответом на все возможные потребности выполнения поиска. Основной недостаток состоит в том, что для многих задач число развернутых этим алгоритмом узлов может расти экспоненциально с увеличением длины решения. Например, рассмотрим вариант мира пылесоса с супермощным пылесосом, способным убрать одну любую клет- ку при стоимости 1 даже без необходимости посещения этого квадрата, — в этом сценарии квадраты можно убирать в любом порядке. Если изначально имеется ДГ квадратов с мусором, то существует 2 состояния, когда некоторое их подмноже- ство уже было убрано. Все эти состояния находятся на оптимальном пути реше- ния и, следовательно, удовлетворяют требованиюДи)<С*, поэтому все они будут посещены при поиске А*. 3.5.4. Приближенный поиск: недопустимые эвристики и поиск А* с весовым коэффициентом Поиск А* характеризуется множеством хороших качеств, но, отыскивая опти- мальный путь, он развертывает слишком много узлов. Можно исследовать меньше узлов (что потребует меньше времени и пространства), если согласиться принять решение, которое не будет оптимальным, но будет “достаточно хорошим” — то, что принято называть ► близким к оптимальному или ► субоптимальным ре- шением. Если в поиске А* позволить использовать недопустимую эвристику — т.е. такую, которая может переоценивать стоимость достижения цели, — то появ- ляется риск не найти оптимальное решение, но потенциально эта эвристика может оказаться более точной, уменьшая тем самым количество развертываемых узлов. Так, например, дорожные инженеры используют понятие ► индекс объезда, пред- ставляющий собой множитель, применяемый к расстоянию по прямой для вычис- ления стандартного показателя извилистости дорог. Значение индекса объезда, равное 1,3, означает, что если расстояние по прямой между двумя населенными пунктами равно 10 км, то хорошая оценка оптимального пути между ними соста- вит 13 км. Для большинства населенных пунктов индекс объезда находится в пре- делах от 1,2 до 1,6. Эту идею можно применить к любой задаче, а не только к тем, которые связаны с дорогами, — такой подход называется ► поиском А* с весовым коэффициен- том, где эвристической оценке придается больший вес за счет использования ве- сового коэффициента И7, а функция оценки приобретает следующий вид: /(п)=%(п)+ Кп) для некоторого 1Г> 1. На рис. 3.21 представлена задача поиска в клеточном мире. На рис. 3.21, а вы- полнение поиска А*, позволило найти оптимальное решение, но для этого потребо- валось исследовать большую часть пространства состояний. На рис. 3.21, б исполь- зование поиска А* с весовым коэффициентом позволило найти субоптимальное
решение, немного превышающее оптимальное, но этот результат был достигнут на- много быстрее. Можно видеть, что при поиске А* с весовым коэффициентом кон- тур достигнутых состояний фокусируется на достижении цели. Это означает, что будет проанализировано меньшее количество состояний, но если оптимальный путь в какой-то момент выйдет за пределы контура поиска А* с весовым коэффици- ентом (что и произошло в данном случае), то оптимальный путь так и не будет най- ден. В общем случае, если оптимальное решение имеет стоимость С*, алгоритм поиска А* с весовым коэффициентом сможет найти решение со стоимостью в диа- пазоне от С* до 1ГхС*. Однако на практике обычно получают результаты, которые гораздо ближе к С*, чем к С*. Рис. 3.21. Два варианта поиска в одном и том же клеточном мире: а) поиск А* и б) поиск А* с весовым коэффициентом РГ =2. Серые полосы представляют препят- ствия, а темная линия — путь от начального состояния (слева) к целевому состо- янию (справа). Маленькие серые точки — это достигнутые состояния в каждом поиске. В этой конкретной задаче при поиске по алгоритму А* с весовым коэффи- циентом было проверено в 7 раз меньше состояний и найден путь к цели стоимо- стью, которая на 5% больше стоимости оптимального пути Итак, выше обсуждались варианты поиска, в которых оценка состояния прово- дилась на основе различных комбинаций значений функций # и Л. Поиск А* с ве- совым коэффициентом можно рассматривать как обобщение их всех. ПоискА*: ё(п)+Л(п) (^=1) Поиск по критерию стоимости: $(”) (^=0) Жадный поиск по первому Кп) (^=00) наилучшему совпадению: Поиск А* с весовым (1 <|Г<оо) коэффициентом:
Можно было бы назвать поиск А* с весовым коэффициентом “немного жадным поиском”: как и жадный поиск по первому наилучшему совпадению, он фоку- сирует ход поиска на цели, однако стоимость пути также не полностью игнори- руется, — путь, который дает небольшой прогресс при больших затратах, будет отброшен. Существует большое разнообразие приближенных алгоритмов поиска, кото- рые можно характеризовать по критериям того, что считается “близким к опти- мальному”. При ► приближенном поиске с ограничениями выполняется по- иск решения, которое гарантированно будет находиться в пределах, определяемых оптимальной стоимостью с учетом некоторого постоянного коэффициента И'. По- иск А* с весовым коэффициентом обеспечивает такую гарантию. В случае ►поис- ка с ограниченной стоимостью выполняется поиск решения, стоимость которого будет меньше некоторой заданной величины С. При ► поиске с неограниченной стоимостью будет принято решение с любой стоимостью, если только удастся найти его достаточно быстро. Алгоритм поиска с неограниченной стоимостью является примером ►быстро- го поиска и представляет собой версию жадного поиска по первому наилучшему совпадению, в котором в качестве эвристики используется оценка числа действий, необходимых для достижения цели, независимо от стоимости этих действий. Сле- довательно, для задач, в которых все действия с имеют одну и ту же стоимость, это будет все тот же жадный поиск по первому наилучшему совпадению, но если дей- ствия будут иметь разную стоимость, такой подход позволит быстрее найти реше- ние, пусть даже оно будет иметь более высокую стоимость. 3.5.5. Поиске ограничением объема памяти Основная проблема поиска А* заключается использовании им больших объе- мов памяти. В этом разделе будут рассмотрены особые приемы реализации стан- дартного алгоритма поиска А*, обеспечивающие более экономный расход памяти при работе, а затем некоторые совершенно новые алгоритмы, способные извлекать максимальные преимущества из доступного пространства. В алгоритме А* память разделена между периферией (ропНег) и достигнуты- ми состояниями (геаскеф. В нашей реализации поиска по первому наилучшему совпадению информация о тех состояниях, которые относятся к периферии, хра- нятся в двух местах: в виде узла в структуре периферии (что позволяет быстро принимать решение, какой узел следует развертывать следующим) и как запись в таблице достигнутых состояний (что позволяет сохранить информацию о том, что это состояние уже анализировалось). Для многих задач (таких, как исследова- ние клеточного мира) это дублирование не является проблемой, поскольку размер периферии всегда намного меньше, чем количество достигнутых состояний, так что дублирование сведений о состояниях в периферии требует сравнительно не- значительных дополнительных объемов памяти. Однако в некоторых реализациях
сведения о состояниях хранятся только в одном из этих двух мест, обеспечивая этим некоторую экономию пространства за счет усложнения (и, возможно, замед- ления работы) алгоритма. Еще одна возможность — удалять состояния из таблицы достигнутых, когда можно доказать, что они больше не потребуются. В некоторых задачах для этой цели можно воспользоваться свойством разделения (см. рис. 3.6) наряду с запретом выбо- ра действий в обратном направлении, что гарантирует, что все действия направлены либо наружу относительно периферии, либо на другое состояние в пределах пери- ферии. В этом случае необходимо будет лишь проверять периферию на наличие из- быточных путей, а таблицу достигнутых узлов можно просто аннулировать. Что касается других проблем, то можно хранить для состояния ► счетчик ссы- лок, указывающий сколько раз оно было достигнуто, и удалять его из таблицы достигнутых, когда больше не останется способов достичь этого состояния. На- пример, в клеточном мире каждое состояние может быть достигнуто только из че- тырех его соседей, поэтому, когда счетчик ссылок состояния станет равен четы- рем, оно уже будет достигнуто всеми возможными способами и его можно будет удалить из таблицы. А теперь обратимся к новым алгоритмам, которые были специально разработа- ны с целью сокращения расходов доступной памяти. Алгоритм ► поиска по лучу предполагает ограничение размера периферии. Самый простой подход — оставить только к узлов с лучшими значениями функ- ции /, отбрасывая любые другие развернутые узлы. Подобное решение, конечно, делает поиск неполным и неоптимальным, но позволяет выбрать такое значение к, которое обеспечит эффективное использование доступной памяти, а алгоритм бу- дет выполняться быстрее, поскольку он развертывает меньше узлов. Для многих задач этот алгоритм позволяет найти хорошие, почти оптимальные решения. Мож- но представить себе поиск по критерию стоимости или поиск А* как расширяю- щие исследуемую область равномерно во всех направлениях, в виде концентри- ческих контуров, тогда как поиск по лучу расширяется сфокусированно, исследуя только ту часть этих контуров, которая содержит к лучших кандидатов. Альтернативная версия поиска по лучу не предусматривает задания строгого ограничения на размер периферии, но вместо этого сохраняет каждый узел, зна- чение функции / которого находится в пределах 8 лучших значений функции /. В этом варианте, когда имеется лишь несколько узлов с весомыми значениями функции/ расход памяти будет незначителен, но если таких узлов в периферии нет, потребуется много памяти, пока они не появятся. Алгоритм ► поиска А* с итеративным углублением (ЮА*) представляет со- бой алгоритм А*, в котором используется идея итеративного поиска в глубину. Ал- горитм ЮА* обеспечивает все преимущества поиска А* без необходимости со- хранять все достигнутые состояния в памяти по причине возможного посещения некоторых состояний несколько раз. Это очень важный и часто используемый ал- горитм для задач, которые не помещаются в доступной памяти.
В стандартном алгоритме итеративного углубления вводятся ограничения по глубине, которая увеличивается с каждой итерацией. В алгоритме ЮА* услови- ем прекращения развертывания узлов является /-стоимость (&+Л). На каждой ите- рации пределом будет наименьшая/стоимость любого узла, которая превосходит предельное ограничение на предыдущей итерации. Другими словами, на каждой итерации исчерпывающе исследуется очередной/контур и отыскивается узел сра- зу за этим контуром,/стоимость которого будет использоваться как ограничение в следующем контуре. Для таких задач, как головоломка Восемь, где /стоимость каждого пути является целым числом, этот алгоритм работает очень хорошо, до- биваясь неуклонного прогресса в достижении цели на каждой итерации. Если оп- тимальное решение имеет стоимость С *, то итераций не может быть больше, чем С * (например, не более 31 итерации для самых трудных раскладов в головоломке Восемь). Но для задач, в которых каждый узел имеет разную/стоимость, каждый новый контур может состоять только из одного нового узла, а количество итераций может оказаться равным числу состояний в задаче. Алгоритм ► рекурсивного поиска по первому наилучшему совпадению (Ке- сиг81Уе Ьея1-Г1Г81 веагсЬ — КВР8)— это простой рекурсивный алгоритм (рис. 3.22), в котором предпринята попытка имитировать работу стандартного алгоритма по- иска по первому наилучшему совпадению, но с использованием только линейного пространства. Алгоритм КВР8 напоминает рекурсивный поиск в глубину, но вме- сто бесконечного следования вниз по текущему пути данный алгоритм использу- ет переменную/_//»и7, чтобы отслеживать/значение наилучшего альтернативно- го пути, доступного из любого предка текущего узла. Если /значение очередного узла превышает данный предел, то текущий этап рекурсии отменяется до альтер- нативного пути, и рекурсия продолжается уже с него. В процессе отмены рекурсии алгоритм КВР8 заменяет/значение каждого узла вдоль пути резервной копией — лучшим /значением его дочернего узла. Благодаря этому в алгоритме КВР8 запо- минается/значение наилучшего листового узла из забытого поддерева, и поэтому в некоторый последующий момент времени может быть принято решение о том, стоит ли снова развертывать это поддерево. На рис. 3.23 показано, как происходит поиск пути в Бухарест при использовании алгоритма КВР8. Алгоритм КВР8 несколько более эффективен, чем ЮА*, но все еще страдает от слишком частого повторного формирования узлов. В примере, приведенном на рис. 3.23, алгоритм КВР8 вначале следует по пути через узел КпптсиУИсеа, затем “меняет решение” и пытается пройти через узел Еа%агаз, после чего сно- ва возвращается к отвергнутому ранее решению. Такие смены решения происхо- дят в связи с тем, что при каждом развертывании текущего наилучшего пути ве- лика вероятность того, что его /значение увеличится, поскольку функция И часто становится менее оптимистической для узлов, более близких к цели. Когда это происходит, путь, который был вторым после наилучшего, может теперь стать наилучшим путем, поэтому в алгоритме поиска приходится выполнять возврат,
чтобы проследовать по нему. Каждое изменение решения соответствует одной итерации алгоритма ЮА* и может потребовать многих повторных развертыва- ний забытых узлов для воссоздания наилучшего пути и развертывания пути еще на один узел. ГипсНоп ЕЕСик81УЕ-ВЕ8Т-р1К8Т-8ЕАКСН(рго67е>и) геСигпз решение или/аИиге зо1икоп,/_уа1ие <— ВВР8(ргой/ет, №оЕ(рго67ет.11ЧПТАЕ), оо) геСигп зо1икоп ГипсНоп ВВР8(рго5/ет, по(1е9/_Ит1) геСигпз решение или/аИиге и новый предел /-стоимости Иргой/ет.18-СОАЕ(лоб7е.8ТАТЕ) 1Ьеп геСигп поде 5ЫССе55ОГ5 <— Ь18Т(ЕХРАКО(лОб/в)) И зиссеззогз 18 етр1у Шеп геСигп/аИиге, оо Гог еасЬ 5 ш зиссеззогз до // обновление /-стоимости значением из предыдущего поиска з./<- тах($.Рлтн-Со8Т + Л($), пос1е./)) луЬПе 1гие до Ье$1 <— узел из зиссеззогз с самым низким значением /-стоимости И Ьез1./ > /_НтИ Шеп геШгп/аИиге, Ьез1./ акетакуе <— второй из узлов с самым низким значением /-стоимости из зиссеззогз гезик, Ье$1./ <— КВР8(ргой/ет, Ье$1, т1п(/_Итк, акета1п>е)) И гезик //аИиге Шеп геШгп гезик, Ье$1./ Рис. 3.22. Алгоритм рекурсивного поиска по первому наилучшему совпадению Алгоритм ВВР8 будет оптимальным, если эвристическая функция к(п) допу- стима. Его пространственная сложность линейна пропорционально глубине са- мого глубокого оптимального решения — а вот временную его сложность охарактеризовать довольно трудно: она зависит как от точности эвристической функции, так и от того, как часто будет изменяться лучший путь по мере разверты- вания узлов. Алгоритм развертывает узлы в порядке увеличения значения функ- ции /, даже если эта функция будет немонотонной. Алгоритмы ЮА* и КВР8 страдают от того, что в них используется слишком мало памяти. Между итерациями алгоритм ЮА* сохраняет только единственное число — текущий предел /-стоимости. Алгоритм ВВР8 сохраняет в памяти боль- ше информации, но количество используемой в нем памяти с усложнением за- дачи возрастает линейно и характеризуется как О(Ьс1)\ даже если будет доступно больше памяти, алгоритм ВВР8 будет не способен ею воспользоваться. Посколь- ку эти алгоритмы забывают большую часть информации, которую уже получи- ли, оба они в конечном итоге могут многократно заново исследовать одни и те же состояния.
Ааа в) После переключения снова на узел Ппптси УИсеа и развертывания узла РИезИ РИеШ 418 615 607 Рис. 3.23. Этапы поиска кратчайшего маршрута в Бухарест с использованием алгоритма КВР8. Значение переменной/^Л’т/7 для каждого рекурсивного вызова приведено над каж- дым текущим узлом, а под каждым узлом указана его /-стоимость, а) Путь через узел Кгт- тсиУИсеа, ведущий до текущего наилучшего листового узла (РИезН\ имеет /значение, худшее по сравнению с наилучшим альтернативным путем (Га^агоз). б) Рекурсия отменя- ется и наилучшая /стоимость листового узла забытого поддерева (417) сохраняется в узле Кмптси УИсеа. Далее развертывается узел Еа^агаз и открывается наилучшее значение ли- стового узла, равное 450. в) Рекурсия отменяется и значение наилучшего листового узла забытого поддерева (450) сохраняется в узле Гамаках, затем снова развертывается узел ЕгттсиУИсеа. На этот раз развертывание продолжается в сторону Бухареста, поскольку наилучший альтернативный путь (через узел Типгзоага) стоит по меньшей мере 447
Поэтому представляется разумным определить, сколько памяти доступно, и позволить алгоритму использовать ее всю. Двумя алгоритмами, в которых это требование реализуется, являются ► поиск А* с ограничением памяти (Ме- тогу-Ьоипдед А* — ►МА*) и ►упрощенный поиск МА* (БппрПЛед МА* — ► 8МА*). Алгоритм 8МА* проще, поэтому в этом разделе будет рассмотрен имен- но он. Алгоритм 8МА* действует полностью аналогично поиску А*, развертывая наилучшие листовые узлы до тех пор, пока будет исчерпана доступная память. С этого момента он не может добавить новый узел к дереву поиска, не уничтожив старый. В алгоритме 8МА* всегда уничтожается наихудший листовой узел (тот, который имеет наибольшее /-значение). После этого, как и в алгоритме КВГ8, в алгоритме 8МА*/-значение забытого (уничтоженного) узла резервируется в его родительском узле. В результате предок забытого поддерева позволяет определить качество наилучшего пути в этом поддереве. Благодаря этому в алгоритме 8МА* поддерево восстанавливается только тогда, когда обнаруживается, что все другие пути выглядят менее многообещающими по сравнению с забытым путем. Иными словами, если все потомки узла п забыты, то неизвестно, каким путем можно сле- довать от п, но все еще можно получить представление о том, насколько целесоо- бразно следовать куда-либо от п. Полный алгоритм описан в интерактивном репозитории кода, прилагаемом к этой книге. Однако есть один нюанс, который стоит упомянуть. Выше было сказа- но, что алгоритм 8МА* развертывает лучший листовой узел и удаляет худший лист. Но что делать, если все листовые узлы имеют одно и то же /значение? Чтобы из- бежать выбора одного и того же узла и для удаления, и развертывания, в алгоритме 8МА* развертывается самый новый лучший лист и удаляется самый старый худ- ший лист. Они совпадают, только если имеется лишь один лист, но в этом случае текущее дерево поиска должно представлять единственный путь от корня до листо- вого узла, заполняющий всю память. И если этот лист не является целевым узлом, то решение при доступном объеме памяти недостижимо, даже если этот узел на- ходится в оптимальном пути решения. Следовательно, такой узел может быть от- брошен точно так же, как и в том случае, если он не имеет преемников. Алгоритм 8МА* является полным, если существует какое-либо достижимое решение, иными словами, если <7, глубина самого поверхностного целевого узла, меньше, чем объем памяти (выраженный в хранимых узлах). Этот алгоритм опти- мален, если достижимо какое-либо оптимальное решение; в противном случае он возвращает наилучшее достижимое решение. С точки зрения практики алгоритм 8МА* вполне можно считать отличным выбором для поиска оптимальных реше- ний, особенно если пространство состояний представляет собой граф, стоимости этапов не одинаковы, а операция формирования узлов является более дорогосто- ящей в сравнении с дополнительными издержками сопровождения периферии и множества достигнутых узлов. Однако при решении очень сложных задач часто возникают ситуации, ког- да алгоритм 8МА* вынужден постоянно переключаться с одного пути решения
на другой в пределах множества возможных путей решения, из которых только небольшое их подмножество может поместиться в памяти. (Такая ситуация на- поминают проблему ► пробуксовки в системах подкачки страниц с жесткого диска.) В таком случае на повторное формирование одних и тех узлов затрачи- вается дополнительное время, а это означает, что задачи, которые были бы фак- тически разрешимыми с помощью поиска А* при наличии неограниченной па- мяти, становятся трудноразрешимыми для алгоритма 8МА*. Иными словами, из-за ограничений в объеме доступной памяти некоторые задачи могут становить- ся трудноразрешимыми с точки зрения времени вычисления. Хотя отсутствует теория, позволяющая найти компромисс между затратами времени и памяти, создается впечатление, что зачастую избежать возникновения этой проблемы невозможно. Единственным способом преодоления такой ситуации становится частичный от- каз от требований к оптимальности решения. 3.5.6. Двунаправленный эвристический поиск Для однонаправленного поиска по первому наилучшему совпадению было по- казано, что при использовании функции оценки вида/(л)=#(л)+/г(л) мы получаем поиск А*, гарантированно дающий оптимальные по затратам решения (при усло- вии допустимости функции/) и одновременно оптимально эффективный по коли- честву развертываемых узлов. Для двунаправленного поиска по первому наилучшему совпадению можно было бы также попытаться использовать функцию оценки/(п)=^[п)+И(п), но, к со- жалению, нет никаких гарантий, что это приведет к нахождению решения, опти- мального по затратами, или что поиск в этом случае будет оптимально эффектив- ным, даже с допустимой эвристикой. При двунаправленном поиске оказывается, что обоснованно выбирать для развертывания каждый раз требуется уже не один узел, а пару узлов, по одному из каждой периферии, поэтому в любом доказатель- стве эффективности алгоритма необходимо рассматривать именно пары узлов (Экерле и др. [673], 2017). Начнем с введения некоторой новой нотации. Будем использовать функцию оценки/^.(и)=#г(и) + ИР(и) для узлов, исследуемых в прямом направлении (с кор- нем дерева поиска в начальном состоянии), и/В(п)=^в(п)+Ив(п) для узлов, иссле- дуемых в обратном направлении (с корнем дерева поиска в целевом состоянии). Хотя и прямой, и обратный поиск выполняются для нахождения решения одной и той же задачи, у них будут разные функции оценки, хотя бы потому, что их эври- стики, например, будут различаться в зависимости от того, куда необходимо по- пасть — в целевой узел или в исходный. Мы будем считать, что обе эти эвристики являются допустимыми. Рассмотрим путь в прямом направлении (от начального состояния к узлу т) и путь в обратном направлении (от целевого состояния к узлу и). Можно опреде- лить нижнюю границу стоимости решения, которое включает путь из начального
состояния до узла /и, затем каким-то образом попадает в узел л, от которого следу- ет по известному нам пути к целевому узлу, как 1Ъ(т, п)=тах(^ (т)+ёв(п),/р(т),/в (п)). Другими словами, стоимость такого пути должна быть по крайней мере не меньше суммы стоимости его двух известных нам частей (поскольку оставшийся участок пути между этими двумя частями должен иметь неотрицательную стои- мость), а также эта стоимость пути должна быть по крайней мере не меньше рас- четной /-стоимости любой его части (поскольку эвристические оценки оптими- стичны). Учитывая сказанное, можно предложить теорему, что для любой пары узлов т, п с 1Ъ(т, п) меньше, чем оптимальная стоимость С*, мы должны развер- нуть либо узел т, либо узел п, потому что путь, который проходит через оба этих узла, является потенциально оптимальным решением. Трудность здесь состоит в том, что нет четкой уверенности в том, какой именно узел лучше развернуть, а сле- довательно, нет алгоритма двунаправленного поиска, который будет гарантирован- но оптимально эффективным, — любой алгоритм может развернуть до удвоенно- го минимально необходимого количества узлов, если постоянно будет ошибаться в выборе члена пары, развертываемого в первую очередь. Некоторые алгоритмы двунаправленного эвристического поиска специальным образом управляют очере- дью из пар (т, и), но мы будем придерживаться алгоритма двунаправленного жад- ного поиска по первому наилучшему совпадению (рис. 3.14), предусматривающе- го две очереди с приоритетом для каждой из периферий, и дадим ему функцию оценки, имитирующую /6-критерий: /(«)=тах(2#(л), %(п) + Л(л)). Следующим всегда будет развертываться узел, минимизирующий значение функции/, причем этот узел может быть взят из любой периферии. Такая функ- ция/ гарантирует, что мы никогда не развернем узел (из любой периферии) со значением функции #(и)>С*/2. Можно сказать, что две половины поиска “встреча- ются посередине” в том смысле, что, когда две периферии соприкасаются, ни один узел внутри любой периферии не имеет стоимости пути, превышающей ограни- чение С*/2. На рис. 3.24 показан пример выполнения двунаправленного поиска. Выше описан подход, когда эвристика ИР оценивает расстояние до цели (если задача имеет несколько целевых состояний, то до ближайшей цели), а эвристика Ив оценивает расстояние до начального состояния. Такой подход называется по- иском ► спереди назад (ГгопМо-епд). В альтернативном варианте, называемом поиском ► спереди на передний план (1топ1-1о-1топ1), предпринимается попыт- ка оценить расстояние до другой периферии. Очевидно, что если периферия име- ет миллионы узлов, будет неэффективно применять эвристическую функцию к каждому из них, а затем выбирать минимальное значение. Но этот подход может сработать в применении к выборке из нескольких узлов периферии. В некоторых специфических проблемных областях вполне возможно так или иначе обобщить
характеристики периферии, например в клеточном мире можно пошагово вычис- лять для периферии ограничительную рамку, а затем использовать в качестве эв- ристики расстояния от узла до этой рамки. /=8=7+1 /=8=6+2 /=9=7+2 /=9=8+1 /2=14 /2=12 /2=14 /2=16 Рис. 3.24. Двунаправленный поиск поддерживает две периферии: слева узлы А и В являются преемниками состояния Старт, а справа узел Р является обратным преем- ником состояния Цель. Для каждого узла указаны значения функции/= #+ й и функ- ции^ = шах(2#, #+й). (Значения # представляют собой сумму стоимостей действий, указанных для каждой стрелки, тогда как значения Л являются произвольными и не могут быть выведены из чего-либо, приведенного на рисунке.) Оптимальное реше- ние Старт-А-Р-Цель имеет стоимость С* = 4 + 2 + 4=10, и это означает, что двуна- правленный алгоритм до встречи посередине не должен развернуть ни один узел с #>С*/2 = 5. И действительно, следующим узлом, который будет развернут, может быть А или Р (каждый с #=4), что ведет к оптимальному решению. Если же первым развертывать узел с наименьшим значением функции стоимости/, то первыми на очереди будут узлы В и С, а узлы Б и Е окажутся связанными с А, но все они име- ют значение функции #>С*/2 и, следовательно, никогда не будут развернуты, если в качестве функции оценки будет использоваться^ Двунаправленный поиск в одних ситуациях эффективнее однонаправленно- го, а в других — нет. В общем случае, если используется очень хорошая эври- стика, в ходе поиска А* создаются контуры поиска, хорошо ориентированные на цель, и добавление двунаправленного поиска дает незначительные результаты. При среднем качестве эвристики двунаправленный поиск, обеспечивающий встре- чу посередине пути, имеет тенденцию развертывать меньшее количество узлов и является предпочтительным. В худшем случае плохой эвристики контуры поиска уже не сфокусированы на цели, а двунаправленный поиск имеет ту же асимпто- тическую сложность, что и простой поискА*. Однако в любом случае двунаправ- ленный поиск с функцией оценки/2 и допустимой эвристикой к является полным и оптимальным.
3.6. Эвристические функции В этом разделе анализируется, как точность эвристики влияет на производи- тельность поиска, а также рассматривается вопрос о том, как вообще можно при- думать эвристику. В качестве главного примера будет использоваться головоломка Восемь, уже упоминавшаяся в разделе 3.2. Эта головоломка была одной из пер- вых задач эвристического поиска. В ходе ее решения требуется передвигать плит- ки по горизонтали или по вертикали на пустой участок до тех пор, пока получен- ная конфигурация будет соответствовать целевой конфигурации, представленной на рис. 3.25. Начальное состояние Целевое состояние Рис. 3.25. Типичный пример головоломки Восемь, Самое короткое решение насчи- тывает 26 действий Для этой головоломки существует 9!/2 = 181400 достижимых состояний, поэто- му в процессе поиска все они легко могут быть размещены в памяти компьюте- ра. Однако для ее старшей сестры, головоломки Пятнадцать, число допустимых состояний составит уже 16!/2 — более 10 триллионов, а значит, для поиска реше- ния в этом пространстве состояний требуется использовать хорошую допустимую эвристическую функцию. Существует долгая история поиска таких эвристик. Вот два чаще всего используемых кандидата. • кх = количество плиток, стоящих не на своем месте (пустое место не вклю- чается). На рис. 3.25 все восемь плиток стоят не на своих местах, поэтому показанное слева начальное состояние имеет эвристическую оценку Л1 = 8. Эвристическая функция Л1 является допустимой, поскольку очевидно, что каждую плитку, находящуюся не на своем месте, необходимо переместить по меньшей мере один раз. • Л2= сумма расстояний всех плиток от их целевых позиций. Поскольку плит- ки не могут передвигаться по диагонали, это расстояние представляет собой сумму горизонтальных и вертикальных расстояний. Такое расстояние ино- гда называют > расстоянием, измеряемым в городских кварталах или
► манхэттенским расстоянием. Эвристическая функция к2 также являет- ся допустимой, поскольку все, что может быть сделано в одном ходе, заклю- чается лишь в перемещении одной плитки на один этап ближе к цели. Все плитки в начальном состоянии, представленном на рис. 3.25, дают следую- щее значение манхэттенского расстояния: й2 = 3+1+2 + 2+2 + 3 + 3 + 2= 18. Как и следовало ожидать, ни одна из этих функций не переоценивает истинную стоимость решения, равную 26. 3.6.1. Влияние точности эвристической функции на производительность поиска Одним из способов охарактеризовать качество эвристической функции явля- ется определение ее ► эффективного коэффициента ветвления Ь*. Если общее количество узлов, формируемых алгоритмом поиска А* в процессе решения неко- торой задачи, равно К, а глубина решения равна (I, то Ь* представляет собой ко- эффициент ветвления, который должно иметь однородное дерево глубиной <1 для того, чтобы в нем содержалось М+ 1 узлов. ^\ = \+Ь* + (Ь*)2+... + (Ь*)‘1 Например, если алгоритм А* находит решение на глубине 5, используя 52 узла, то его эффективный коэффициент ветвления равен 1,92. Эффективный коэффи- циент ветвления может изменяться от одного экземпляра одной и той же зада- чи к другому, но для определенного класса задач (подобных головоломке Восемь) остается относительно постоянным для всех ее нетривиальных вариантов. Поэто- му экспериментальные измерения коэффициента на небольшом множестве раз- личных экземпляров задачи могут служить хорошим критерием общей полезности рассматриваемой эвристической функции. Хорошо спроектированная эвристиче- ская функция должна иметь значение Ь*, близкое к 1, что позволит решать доволь- но большие задачи с разумными вычислительными издержками. В своей работе Корф и Рейд ([1292], 1998) утверждают, что лучший способ охарактеризовать эффект обрезки, выполняемой алгоритмом поиска А* с задан- ной эвристикой к, состоит в том, что он уменьшает ► эффективную глубину на постоянную кк в сравнении с истинной глубиной. Это означает, что общая стои- мость поиска составит О(Ьа~к,г) в сравнении с О(Ьа) для неинформированного поис- ка Их эксперименты с кубиком Рубика и головоломками №плиток показывают, что эта формула давала точные прогнозы общей стоимости поиска для выборки вариантов задач в широком диапазоне длины решений, по крайней мере для дли- ны решений, большей кк. На рис. 3.26 представлены результаты экспериментов со сгенерированными случайным образом вариантами головоломки Восемь. Эти задачи решались с ис- пользованием трех алгоритмов: неинформированного жадного поиска по первому
наилучшему совпадению (ВР8) и информированного поиска А* с эвристиками Л1 и Л2. Приведены значения стоимости поиска, выраженной в количестве сформиро- ванных узлов, и эффективного коэффициента ветвления для решений с разной глу- биной б7. Полученные результаты свидетельствуют, что эвристика Л2 дает лучшие результаты в сравнении с и обе они превосходят неинформированный поиск. <7 Стоимость поиска Эффективный коэффициент ветвления ВГ8 А*(Л|) а*(й2) ВЕЗ А*(Л.) А*(Л2) 6 128 24 24 2,01 1,42 1,34 8 368 48 48 1,91 1,40 1,30 10 1033 116 116 1,85 1,43 1,27 12 2672 279 279 1,80 1,45 1,28 14 6783 678 678 1,77 1,47 1,31 16 17270 1683 1683 1,74 1,48 1,32 18 41558 4102 4102 1,72 1,49 1,34 20 91493 9905 9905 1,69 1,50 1,34 22 175921 22955 22955 1,66 1,50 1,34 24 290082 53039 53039 1,62 1,50 1,36 26 395355 110372 110372 1,58 1,50 1,35 28 463234 202565 202565 1,53 1,49 1,36 Рис. 3.26. Сравнение стоимости поиска (в сформированных узлах) и эффективных коэф- фициентов ветвления для нескольких вариантов задач головоломки Восемь, решаемых с использованием жадного поиска по первому наилучшему совпадению и поиска А* с эв- ристиками Л1 (количество плиток не на месте) и й2 (манхэттенское расстояние). Данные усреднены по результатам выполнения более 100 примеров головоломки для каждой глу- бины решения от 6 до 28 Интерес представляет вопрос, всегда ли эвристическая функция Л2 лучше, чем Лг Ответ — “Как правило, да”. На основании определений этих двух эври- стических функций можно легко прийти к выводу, что для любого узла п будет справедливо выражение И2(п)>И{(п). Следовательно, можно сказать, что эвристи- ка И2 ►доминирует над Лг Доминирование напрямую связано с эффективностью: при поиске А* с использованием эвристики Л2 никогда не происходит развертыва- ние большего количества узлов, чем при поиске А* с использованием эвристики Л1 (возможно, за исключением нескольких случаев неудачного расположения пли- ток). Доказать это утверждение несложно. Напомним приведенное в разделе 3.5.3 замечание, что каждый узел со значением/(и)<С* наверняка будет развернут. Это аналогично утверждению, что наверняка будет развернут каждый узел со значе- нием Л(и)<С* -#(и). Но поскольку для всех узлов значение Л2 по крайней мере не меньше значения то каждый узел, который должен быть наверняка развернут в поиске А* с эвристикой Л2, также будет наверняка развернут при поиске с эври- стикой а применение эвристической функции Л1 может дополнительно вызвать
развертывание и других узлов. Поэтому всегда лучше использовать эвристиче- скую функцию с более высокими значениями, при главном условии, что эта функ- ция не переоценивает длину пути решения и что время вычисления этой эвристи- ческой функции не слишком велико. 3.6.2. Генерация эвристик из ослабленных задач Выше было показано, что эвристические функции Л, (количество плиток не на месте) и Л2 (манхэттенское расстояние) являются довольно неплохими эвристика- ми для задач головоломки Восемь и что из них функция Л2 — лучшая. Но на осно- вании чего была предложена функция Л2? Возможно ли, чтобы компьютер мог со- здать подобную эвристическую функцию механически? Эвристические функции Л| и й2 представляют собой оценки оставшейся длины пути для задач головоломки Восемь, но они, кроме того, представляют собой со- вершенно точные значения длины пути для упрощенных версий этой головоломки. Если правила головоломки Восемь изменить таким образом, чтобы любую плитку можно было передвигать куда угодно, а не только на соседний пустой квадрат, то эвристическая функция возвращала бы точное количество этапов в кратчайшем решении. Аналогичным образом, если бы любую плитку можно было перемещать на один квадрат в любом направлении, даже на занятый квадрат, то точное коли- чество этапов в кратчайшем решении возвращала бы эвристическая функция Л2. Задача с меньшим количеством ограничений на возможные действия называется ► ослабленной задачей. Граф пространства состояний ослабленной задачи явля- ется суперграфом исходного пространства состояний, поскольку снятие ограниче- ний создает дополнительные ребра в исходном графе. Поскольку ослабленная задача добавляет ребра в граф пространства состоя- ний, любое оптимальное решение в исходной задаче по определению также будет решением в ослабленной задаче, но последняя также может иметь лучшие реше- ния, если добавленные ребра обеспечивают сокращенные пути. Следовательно, стоимость оптимального решения ослабленной задачи является допустимой эв- ристикой для исходной задачи. Более того, поскольку производная эвристика явля- ется точной стоимостью для ослабленной задачи, она должна подчиняться нера- венству треугольника и поэтому является преемственной (см. раздел 3.5.2). Стоимость оптимального решения ослабленной задачи представляет собой до- пустимую эвристику для первоначальной задачи. Такая эвристическая функция является допустимой, поскольку оптимальное решение первоначальной задачи по определению служит также решением ослабленной задачи и поэтому должно быть по меньшей мере таким же дорогостоящим, как и оптимальное решение ослаблен- ной задачи. Поскольку значение производной эвристической функции представ- ляет собой точную стоимость решения ослабленной задачи, эта функция долж- на подчиняться неравенству треугольника и поэтому должна быть преемственной (см. раздел 3.5.2).
Если определение задачи записано на формальном языке, то существует воз- можность создавать ослабленные задачи автоматически.14 Например, если дей- ствия в головоломке Восемь описать как Плитку можно переместить из квадрата X в квадрат V, если квадрат X смежный с У и квадрат V пуст, то могут быть созданы три ослабленные задачи путем удаления одного или обоих приведенных выше условий. а) Плитку можно переместить из квадрата X в квадрат V, если квадрат X смежный с V. б) Плитку можно переместить из квадрата X в квадратУ, если квадрат V пуст. в) Плитку можно переместить из квадрата X в квадрат V. Из ослабленной задачи а можно вывести функцию Л2 (манхэттенское рассто- яние). Обоснование этого утверждения состоит в том, что эвристика Л2 должна представлять собой правильную оценку, если каждая плитка передвигается к ме- сту своего назначения по очереди. Эвристическая функция, полученная на осно- вании ослабленной задачи б, обсуждается в упр. 3.39. На основании ослабленной задачи в можно получить эвристическую функцию Л, (плитки не на своих местах), поскольку эта оценка была бы правильной, если бы плитки можно было передви- гать в предназначенное для них место за один этап. Обратите внимание: крайне важно, чтобы ослабленные задачи, создаваемые этим методом, можно было ре- шить, по существу, без поиска. В данном примере это требование соблюдается, по- скольку ослабленные правила позволяют разложить исходную проблему на восемь независимых подзадач. Если ослабленную задачу решить сложно, то получать зна- чения соответствующей эвристики будет дорого. Программа под названием Авзоьуек позволяет автоматически генерировать эвристики из определения задачи, используя метод “ослабленной задачи” и раз- личные другие методы ([1823], 1993). Программа Авзоьуек создала новую эв- ристику для головоломки Восемь, которая оказалась лучше, чем любая уже су- ществовавшая до этого, и нашла первую полезную эвристику для знаменитого кубика Рубика. Если для решения какой-либо задачи может использоваться целая коллекция допустимых эвристических функций Лг.. кт и ни одна из них явным образом не превосходит другие, то какая из этих функций должна быть выбрана? Оказалось, что такой выбор делать не требуется, поскольку можно взять от них всех самое лучшее, определив такой критерий выбора: й(л)=тах{Л|(л),..., Л4(и)}. 14 В главах 8 и 11 описываются формальные языки, подходящие для этой цели. С по- мощью формальных описаний, которыми можно манипулировать, процедуру создания ослабленных задач можно автоматизировать. В данном случае используется русский язык.
Эта составная эвристика выбирает какую угодно функцию, являющуюся наи- более точной в рассматриваемом узле. Поскольку компоненты /г допустимы, функция к также допустима (и если все Л. преемственны, функция к также пре- емственна). Более того, функция к будет доминировать над всеми образующими ее эвристиками. Единственный недостаток в этом случае состоит в том, что полу- чение значений к(п) требует больше времени для вычислений. Если это является проблемой, альтернативой может быть случайный выбор одной из эвристик при каждой оценке или использование машинного обучения алгоритма, чтобы научить его предсказывать, какая из эвристик будет лучше в каждом конкретном случае. Такой подход может привести к получению эвристики, которая окажется непре- емственной (даже если каждая из к{ является преемственной), но на практике это обычно приводит к более быстрому решению задач. З.б.З. Генерация эвристик из подзадач: базы данных с шаблонами Допустимые эвристические функции могут быть также получены на основании стоимости решения подзадачи данной задачи. Например, на рис. 3.27 представле- на подзадача для примера головоломки Восемь, приведенного на рис. 3.25. Эта подзадача предусматривает перемещение плиток 1, 2, 3, 4 в их правильные пози- ции. Очевидно, что стоимость оптимального решения этой подзадачи представля- ет собой нижнюю границу стоимости решения полной задачи. Как оказалось, та- кая оценка в некоторых случаях является намного более точной по сравнению с манхэттенским расстоянием. Рис. 3.27. Подзадача для примера головоломки Восемь, показанного на рис. 3.25. Задание заключается в том, чтобы передвинуть плитки 1, 2, 3 и 4 в их правильные позиции, не беспокоясь о том, что произойдет с другими плитками Идея >баз данных с шаблонами состоит в том, чтобы хранить эти точные стоимости решения для каждого возможного экземпляра подзадачи; в нашем при- мере — каждой возможной конфигурации из четырех плиток и пустой ячейки.
(В базе данных будет 9x8x7x6x5=15120 шаблонов. Расположение остальных че- тырех плиток не нужно принимать во внимание, но ходы с этими плитками следу- ет учитывать в стоимости решения.) После этого допустимая эвристическая функ- ция квв для каждого состояния головоломки, встретившегося в процессе поиска, вычисляется путем выборки данных для соответствующей конфигурации подзада- чи из базы данных. Сама база данных создается путем поиска от целевого состоя- ния и записи в нее стоимости каждого нового обнаруженного шаблона.15 Затраты на этот поиск будут погашены за счет решения последующих экземпляров задачи, и поэтому создавать базу данных с шаблонами имеет смысл, только если ожидает- ся, что такая потребность возникнет. Выбор плиток 1-2-3-4 и пустой ячейки является довольно произвольным; мож- но было бы также создать базы данных для плиток 5-6-7-8, 2-Д-6-8 и т.д. Каждая такая база данных обеспечивает допустимую эвристику, и все эти эвристики мож- но объединить в общую эвристическую функцию, как предлагалось ранее, прини- мая максимальное значение. Составная эвристическая функция такого вида явля- ется намного более точной в сравнении с манхэттенским расстоянием: количество узлов, формируемых при решении образованных случайным образом экземпляров задачи головоломки Пятнадцать, может быть уменьшено примерно в 1 000 раз. Однако с каждой дополнительной базой данных уменьшается отдача и увеличива- ются затраты памяти и времени вычислений. Довольно интересен вопрос, можно ли сложить эвристики, полученные из баз данных 1-2-3-4 и 5-6-7-8, так как две эти подзадачи, похоже, не перекрываются. Бу- дет ли это по-прежнему допустимая эвристика? Ответ — нет, поскольку решения подзадачи 1-2-3-4 и подзадачи 5-6-7-8 для данного состояния почти наверняка раз- делят некоторые этапы, ведь маловероятно, что плитки 1-2-3-4 можно перемещать на их место, не трогая плиток 5-6-7-8, и наоборот. Но что будет, если не учиты- вать эти ходы? Иными словами, допустим, что регистрируется не общая стоимость решения подзадачи 1-2-3-4, а только количество ходов, в которых затрагиваются плитки 1-2-3-4. В таком случае можно легко определить, что сумма этих двух сто- имостей все еще представляет собой нижнюю границу стоимости решения всей задачи. Именно эта идея лежит в основе построения >баз данных с непересека- ющимися шаблонами. Использование таких баз данных позволяет решать случай- но выбранные экземпляры задачи головоломки Пятнадцать за несколько милли- секунд — количество формируемых узлов сокращается примерно в 10 000 раз по сравнению с использованием манхэттенского расстояния. А для задачи головолом- ки Двадцать четыре может быть достигнуто ускорение приблизительно в милли- он раз. Базы данных с непересекающимися шаблонами так хорошо работают для задач головоломок с перемещающимися плитками потому, что исходная задача мо- жет быть разделена таким образом, что каждый этап будет затрагивать только одну подзадачу, поскольку на каждом этапе перемещается только одна плитка. 15 Работая в обратном направлении от целевого состояния, можно сразу получить точ- ную стоимость решения для каждого обнаруженного экземпляра. Это пример динамиче- ского программирования, речь о котором пойдет в главе 17.
3.6.4. Создание эвристик с ориентирами В Сети есть интерактивные сервисы, содержащие географические карты с десятками миллионов пунктов и позволяющие найти оптимальные по издерж- кам маршруты поездки между ними за миллисекунды (рис. 3.28). Как им удает- ся это делать, если даже лучшие алгоритмы поиска, рассмотренные нами выше, работают примерно в миллион раз медленнее? Для достижения таких результа- тов используется много различных приемов, но наиболее важным из них является ► предвычисление стоимостей некоторых оптимальных путей. Хотя предвычис- ление может потребовать значительных затрат машинного времени, достаточно сделать это только один раз, а затем компенсировать издержки за счет миллиардов поисковых запросов пользователей. 7М/П1Ш (57Вкт) Рис. 3.28. Веб-сервис, предоставляющий маршруты проезда, рассчитанные с использова- нием алгоритмов поиска Можно разработать более совершенные эвристики за счет предвычисления и сохранения стоимости оптимальных путей между каждой парой пунктов. Это потребует пространственных затрат порядка О(| Г]2) и временных затрат порядка О(|^|3), что будет приемлемо для графов с 10 тысячами вершин, но не с 10 милли- онами. Лучший подход — выбрать из всех вершин графа несколько (возможно, 10 или 20) ► опорных точек,16 а затем для каждой опорной точки Ь и каждой другой вершины у в графе вычислить и сохранить С*(у, Е) — точную стоимость оптимального пути от у до Л (Также может потребоваться рассчитать значение С*(1, у), поскольку толь- ко на неориентированном графе оно такое же, как и С*(у, /.)*, тогда как на ориенти- рованном графе — например, при наличии улиц с односторонним движением — это 16 Опорные точки иногда называют ориентирами или якорями.
значение потребуется вычислять отдельно). При наличии подобных сохраняемых та- блиц С* можно легко создать эффективную (хотя и недопустимую) эвристику: стои- мость пути от исходного узла до той опорной точки Ь, для которой это значение ми- нимально среди всего множества опорных точек {Ь}, плюс стоимость пути от этой опорной точки до цели %оа1, кАп)= шт С*(и, Ь) + С\Ь, %оа1) Если оптимальный путь проходит через опорную точку, эта эвристика будет точной; а если нет, то она будет недопустимой, поскольку переоценивает стои- мость цели. При использовании поиска А*, если имеются точные эвристики, как только поиск достигнет узла, находящегося на оптимальном пути, все последую- щие развертываемые узлы также будут находиться на оптимальном пути. Пред- ставьте, что линии контуров поиска будут расширяться непосредственно вдоль оптимального пути. Поиск будет следовать по оптимальному пути, на каждой ите- рации добавляя действие стоимостью с, чтобы получить результирующее состо- яние с Л-значением, меньшим с, означающим, что общее значение/=#+Л будет оставаться неизменным на уровне С* по всему пути. Некоторые алгоритмы поиска маршрута экономят еще больше времени, добав- ляя ► кратчайшие пути — искусственные ребра на графе, определяющие оп- тимальный маршрут из нескольких действий. Например, если имеются заранее определенные кратчайшие пути между всеми 100 крупнейшими городами США и требуется определить оптимальный маршрут из кампуса в городе Беркли в Кали- форнии до университета в Нью-Йорке, можно воспользоваться кратчайшим путем от Сакраменто до Манхеттена и этим покрыть 90% пути в одном действии. Эвристика ЛА(и) является эффективной, но не является допустимой. Однако если чуть постараться, то можно придумать эвристику, которая будет одновремен- но и эффективной, и допустимой: ЛП1(л)= шш |С*(и, 1)-С*(%оа1, 1)|. Этот вариант называется ► разностной эвристикой (из-за вычитания). Пред- ставьте себе это как ситуацию, когда опорная точка находится за целью. Если пове- зет и цель окажется на оптимальном пути от п к опорной точке, то это выражение означает “рассматриваем весь путь от п до Д а затем вычитаем из него конечный участок от цели к что в результате дает точную стоимость пути от п до цели”. В случае, когда цель находится немного в стороне от оптимального пути к опорной точке, эвристика будет неточной, но по-прежнему допустимой. Все опорные точки, которые находятся в пределах контура поиска цели, в данном случае будут беспо- лезны. Так, опорная точка, расположенная точно на полпути до цели, даст значение ЛПА=0, не имеющее никакого смысла. Существует несколько способов выбора опорных точек. Выбор точек случай- ным образом выполняется быстро, но можно получить лучшие результаты, если постараться распределить опорные точки так, чтобы они находились не слишком
близко одна к другой. “Жадный” подход состоит в том, чтобы выбрать первую опорную точку наугад, а затем найти точку, наиболее удаленную от нее, добавить ее к множеству опорных точек и продолжать действовать, на каждой итерации до- бавляя точку с максимальным расстоянием до ближайшей опорной точки. Если имеется журнал прошлых поисковых запросов пользователей, то в качестве опор- ных точек можно выбрать пункты, чаще всего упоминаемые в этих запросах. При использовании разностной эвристики имеет смысл расположить опорные точки по периметру графа. Следовательно, в этом случае полезным решением будет найти центральный узел графа и разделить весь граф на к секторов, сходящихся в цен- тральном узле, а затем в каждом секторе выбрать опорную точку, максимально удаленную от центра. Метод опорных точек особенно хорошо работает для задач поиска маршрута также благодаря способу, которым в реальном мире прокладывается большинство дорог. Большая часть дорожного трафика имеет место между определенными пун- ктами, и инженеры дорожных служб прокладывают самые широкие и скоростные трассы именно между ними. Если выбрать эти пункты в качестве опорных точек, то инструменты поиска маршрутов, использующие эти точки, будут направлять пользователей именно на эти скоростные трассы. 3.6.5. Учимся искать лучше Выше было представлено несколько стратегий поиска (поиск в ширину, жад- ный поиск по первому наилучшему совпадению и т.д.), которые были разработаны учеными и специалистами по компьютерным наукам. Но может ли сам агент обу- чаться лучшим способам поиска? Ответ на этот вопрос является положительным, а применяемый метод обучения опирается на важную концепцию, называемую ► метауровневым пространством состояний. Каждое состояние в метауровне- вом пространстве состояний отражает внутреннее (вычислительное) состояние программы, выполняющей поиск в обычном пространстве состояний, таком как карта Румынии. (Чтобы различать эти две концепции, мы будем называть карту Румынии ► пространством состояний объектного уровня.) Например, внутрен- нее состояние алгоритма поиска А* включает в себя текущее дерево поиска. Ка- ждое действие в метауровневом пространстве состояний представляет собой этап вычислений, изменяющий внутреннее состояние, например на каждом этапе вы- числений в процессе поиска А* развертывается один из листовых узлов, а его пре- емники добавляются к дереву. Поэтому рис. 3.18, на котором представлена после- довательность все больших и больших деревьев поиска, может рассматриваться как отображение пути в метауровневом пространстве состояний, где каждое со- стояние в пути является объекгно-уровневым деревом поиска. Итак, путь, показанный на рис. 3.18, содержит пять этапов, включая один этап (развертывание узла Еа%ага$\ который нельзя считать особенно полезным. Для более сложных задач можно ожидать, что количество подобных ненужных этапов
будет намного больше, и алгоритм ► метауровневого обучения может изучать этот опыт, чтобы в дальнейшем научиться избегать исследования бесперспектив- ных поддеревьев. Методы, используемые при обучении такого рода, описаны в главе 22. Целью обучения являются минимизация суммарной стоимости решения задач, а также поиск компромисса между вычислительными издержками и стои- мостью пути. З.б.б. Изучение эвристик на основе опыта Выше уже было показано, что один из способов построения эвристики состо- ит в разработке ослабленной задачи, найти оптимальное решение которой будет несложно. Альтернативным подходом является изучение полученного опыта. Под словом “опыт” здесь понимается, например, решение большого количества экзем- пляров головоломки Восемь. Каждое оптимальное решение задачи головоломки Восемь предоставляет отдельный пример — цель и путь. На основе данных при- меров с помощью алгоритма обучения может быть сформирована некоторая функ- ция й(л), способная (если повезет) предсказывать истинные стоимости решений для других состояний, которые возникают во время поиска. В большинстве таких случаев обучение дает несовершенное приближение к эвристической функции, и следовательно, есть риск ее недопустимости. В результате неизбежен компромисс между временем обучения, временем выполнения поиска и стоимостью решения. Методы машинного обучения обсуждаются в главе 19. Методы обучения с подкре- плением, описываемые в главе 22, также применимы к поиску. Некоторые методы машинного обучения работают лучше, когда в них учитыва- ются ► характеристики состояния, релевантные для оценки эвристической стои- мости этого состояния, а не просто его общее описание. Например, в головоломке Восемь характеристика “количество плиток не на своем месте” может быть полез- ной при предсказании фактического удаления некоторого состояния от цели. На- зовем эту характеристику х}(п). Можно взять 100 сформированных случайным об- разом конфигураций головоломки Восемь и собрать статистические данные об их фактических стоимостях решений. Допустим, это позволит обнаружить, что при хх(п), равном 5, средняя стоимость решения будет около 14, и т.д. Безусловно, мож- но использовать сразу несколько характеристик. Второй характеристикой, х2(и), может быть “количество пар смежных плиток, которые не являются смежными в целевом состоянии”. Каким образом можно скомбинировать значения *,(«) и х2(п) для предсказания значения Л(л)? Общепринятый подход состоит в использовании линейной комбинации, как показано ниже. Л(и) = с^Си) + с^с2(п) Константы С] и с2 корректируются для достижения наилучшего соответствия фактическим данным о стоимостях решений для случайным образом сгенериро- ванных конфигураций задачи. Можно ожидать, что константы с, и с2 будут по- ложительными, поскольку плитки не на месте и неправильные соседние пары
затрудняют решение задачи. Обратите внимание, что эта эвристика удовлетворяет условию Л(и) = 0 для целевых состояний, но не обязательно является допустимой или преемственной. Резюме В настоящей главе представлены поисковые алгоритмы, которые агент может использовать для выбора последовательности действий в самых различных вари- антах среды, — при условии, что она является эпизодической, одноагентной, пол- ностью наблюдаемой, детерминированной, статической, дискретной и полностью известной. Необходимо принять определенный компромисс между количеством времени, которое потребуется для выполнения поиска, количеством доступной памяти и качеством найденного решения. Действия будут более эффективными при наличии определенных знаний в отношении окружения, представленных в виде функции эвристики, позволяющей оценить, насколько далеко целевое состо- яние от текущего, или если будут проведены предвычисления частичных решений, включая шаблоны или опорные точки. • Прежде чем агент сможет начать поиск, необходимо сформулировать четко определенную задачу. • Формулировка задачи включает пять частей: начальное состояние, набор действий, функция определения приемника, описывающая результаты этих действий, набор целевых состояний и функция стоимости пути. • Среда задачи представляется в виде графа пространства состояний. Путь через пространство состояний (последовательность действий) от начально- го состояния к целевому состоянию является решением. • Алгоритмы поиска в общем случае рассматривают состояния и действия как атомарные, не имеющие какой-либо структуры (хотя позднее нами будут введены функции состояний, когда придет время заняться обучением). • Алгоритмы поиска оцениваются на основе полноты, оптимальности по за- тратам, временной сложности и пространственной сложности. • Методы неинформированного поиска имеют доступ только к определению задачи. Алгоритмы строят дерево поиска в попытке найти решение. Алго- ритмы различаются в зависимости от того, какой узел они развертывают первым. - При поиске по первому наилучшему совпадению узлы для развертыва- ния выбираются с использованием функции оценки. - При поиске в ширину для развертывания выбирается самый поверх- ностный неразвернутый узел, поиск является полным, оптимальным при единичных стоимостях этапов, но имеет экспоненциальную простран- ственную сложность.
- Поиск по критерию стоимости первым развертывает узел с самой низ- кой стоимостью пути, $п) и является оптимальным по затратам. - При поиске в глубину для развертывания выбирается самый глубокий неразвернутый узел. Этот поиск не является ни полным, ни оптималь- ным, но имеет линейную пространственную сложность. В поиске с огра- ничением глубины дополнительно устанавливается предел глубины де- рева поиска. - При поиске с итеративным углублением циклически вызывается поиск в глубину с возрастающим пределом глубины — до тех пор, пока цель не будет найдена. Этот поиск будет полным при выполнении полного цикла проверок и оптимальным — при единичных стоимостях этапов. Он ха- рактеризуется временной сложностью, сравнимой с поиском в ширину, и имеет линейную пространственную сложность. - Двунаправленный поиск расширяет две периферии: одну — от началь- ного состояния, и одну — от целевого состояния; он завершается, когда эти две периферии встречаются. • Методы информированного поиска имеют доступ к функции эвристи- ки Л(и), оценивающей стоимость решения от узла п. Они также могут иметь доступ к дополнительной информации, такой как базы данных с шаблонами, для которых известны стоимости решения. - При жадном поиске по первому наилучшему совпадению развертыва- ются узлы с минимальным значением Л(и). Этот поиск не оптимален, но часто бывает эффективным. - При поиске А* развертываются узлы с минимальным значением функ- ции^) =#(и) + Л(л)« Алгоритм А* является полным и оптимальным при условии, что функция к(п) допустима. Пространственная сложность ал- горитма А* все еще остается слишком высокой. - Двунаправленный поиск А* иногда бывает эффективнее поиска А*. - Алгоритм ША* (поиск А* с итеративным углублением) является итера- тивно углубляющейся версией поиска А*, а значит, ориентирован, пре- жде всего, на решение проблем с пространственной сложностью. - Алгоритмы КВГ8 (рекурсивный поиск по первому наилучшему совпаде- нию) и 8МА* (упрощенный поиск А* с ограничением памяти) являются надежными, оптимальными алгоритмами поиска, использующими огра- ниченный объем памяти; при достаточном количестве времени они мо- гут решить проблемы, при решении которых поиск А* останавливается из-за нехватки памяти. - Алгоритм поиска по лучу накладывает ограничение на размер перифе- рии, что делает его неполным и неоптимальным, но часто находит до- статочно хорошие решения и работает быстрее, чем алгоритмы полно- го поиска.
- Алгоритм поиска А* с весовым коэффициентом фокусирует поиск в на- правлении цели, развертывая меньше узлов, но при этом жертвуя опти- мальностью. • Производительность алгоритмов эвристического поиска зависит от качества эвристической функции. Иногда хорошие эвристические функции можно составить путем ослабления определения задачи, предварительного вычис- ления стоимости решения подзадач с сохранением этой информации в базе данных шаблонов, определения опорных точек или обучения на основе опы- та решения данного класса задач. Библиографические и исторические заметки Тема поиска в пространстве состояний возникла в самый ранний период ИИ. Работа Ньюэлла и Саймона над программами Ьо§1с ТЬеопв! ([1667], 1957) и ОРЗ ([1668], 1961) привела к принятию алгоритмов поиска в качестве основного ин- струмента для исследователей искусственного интеллекта 1960-х годов, а сами процессы решения задач стали рассматриваться в качестве канонической пробле- мы искусственного интеллекта Работа по исследованию операций, проведенная Ричардом Беллманом ([167], 1957), показала важность аддитивных стоимостей путей в упрощении алгоритмов оптимизации. Статья Нильса Нильссона ([1687], 1971) поставила эту область на твердую теоретическую основу. Головоломка Восемь — это “младшая сестра” головоломки Пятнадцать, история которой подробно описана Слокумом и Сонневельдом ([2086], 2006). К 1880 году головоломка Пятнадцать привлекла широкое внимание обществен- ности и математиков ([1141], 1879и [2170], 1880). РедакторыАтепсап<1оита1 о/ МсМкетаНсз заявили: “Головоломка Пятнадцать в последние несколько недель занимает все внимание американской публики, и можно с уверенностью сказать, что ею интересуются девять из десяти людей всех полов и возрастов и всех обще- ственных положений”, а в газете \Уеек1у №гг$-Оетосга1, Эмпория, шт. Канзас, от 12 марта 1880 года писали: “Это стало уже буквально эпидемией по всей стране”. Известный американский разработчик игр Сэм Лойд ложно утверждал, что это он изобрел головоломку Пятнадцать ([1554], 1959), но на самом деле она была изобретена Нойесом Чепменом, почтмейстером из Канастоты, шг. Нью-Йорк, в се- редине 1870-х годов (хотя общий патент, охватывающий игры со скользящими плитками, был выдан Эрнесту Кинси в 1878 году). Ратнер и Уормут([ 1861], 1986) показали, что общая версия игры (не 15 х 15, а п х п) принадлежит к классу ЫР-пол- ных задач. Кубик Рубика, без сомнений, был изобретен в 1974 году Эрнё Рубиком, кото- рый также изобрел для него алгоритм поиска хороших, но не оптимальных реше- ний. Корф ([1291], 1997) нашел оптимальные решения для некоторых случайных задач, используя базы данных с шаблонами и поиск ЮА*. Рокицки и соавторы ([1904], 2014) доказали, что любой вариант задачи может быть решен за 26 ходов,
если рассматривать поворот на 180° как два хода, и за 20 ходов, если рассматри- вать такой поворот как один ход. Доказательство потребовало 35 процессорных лет вычислений и не привело к немедленному получению эффективного алгорит- ма. Агостинелли и соавторы ([22], 2019) использовали обучение с подкреплением, сети с глубоким обучением и дерево поиска Монте-Карло, чтобы обучить гораздо более эффективный решатель для кубика Рубика. Он не обязательно находит опти- мальное по затратам решение, но получает его примерно в 60% случаев, а типич- ное время нахождения решения у него меньше секунды. Каждая из реальных задач поиска, перечисленных в данной главе, была предме- том значительных усилий исследователей. Методы выбора оптимальных расписа- ний авиаперелетов по большей части остаются недоступными для общего пользо- вания (закрытыми), но Карл де Маркен (Саг1 бе Магскеп) сведением к диофантовым проблемам решения показал, что схемы формирования цен на авиабилеты и свя- занные с ними ограничения стали настолько запутанными, что задача выбора оп- тимального маршрута полета является формально неразрешимой ([1901], 2002). Задача коммивояжера (ТгауеНщ» 8а1е$рег8оп РгоЫет — Т8Р) — это стандартная комбинаторная проблема в теоретических компьютерных науках ([1364], 1992). Карп ([1189], 1972) доказал, что задача Т8Р является ИР-трудной, но для нее были разработаны эффективные методы эвристической аппроксимации ([1415], 1973). Арора ([76], 1998) разработал полностью полиномиальную схему аппроксимации для евклидовых вариантов задачи Т8Р. Методы компоновки СБИС исследовались Ла-По ([1352], 2010), а в журналах по сверхбольшим интегральным микросхемам появилось много статей, посвященных оптимизации компоновки. Задачи робото- технической навигации обсуждаются в главе 26. Последовательная автоматическая сборка впервые была продемонстрирована роботом РЯБОВУ ([1564], 1972), а все- объемлющий обзор этой темы был дан в [110] (2016). Алгоритмы неинформированного поиска являются центральной темой компью- терных наук ([479], 2009) и исследования операций ([655], 1969). Метод поиска в ширину применительно к решению задач с лабиринтами был сформулирован Му- ром ([1615], 1959). Метод динамического программирования ([169], 1957 и [168], 1962), в котором предусматривается систематическая регистрация решений для всех подзадач с возрастающей длиной, может рассматриваться как форма поиска в ширину в графах. Алгоритм Дейкстры в том виде, в котором он обычно представляется ([620], 1959), применим к явным конечным графам. Нильссон ([ 1687], 1971) представил версию ал- горитма Дейкстры, которую он назвал ит/огт-соМ зеагск (в буквальном переводе — метод равных цен, но в русскоязычной литературе его называют поиском по кри- терию стоимости), поскольку алгоритм “распространялся вдоль контуров с равной стоимостью пути”), которую можно было применять к неявно определенным, беско- нечным графам. В этой работе Нильссона также были введены понятия открытого (периферия) и закрытого (достигнутые) списков, а также термин “поиск по графу”. Название алгоритма “Поиск по первому наилучшему совпадению” было введено в
Справочнике по искусственному интеллекту ([132], 1981). Алгоритмы Флойда-Уор- шелла ([748], 1962) и Беллмана-Форда ([164], 1958 и [755], 1956) допускают отрица- тельные стоимости действий (если нет отрицательных циклов). Одна из версий алгоритма поиска с итеративным углублением, предназначен- ная для эффективного ведения игры в шахматы с контролем времени, была впер- вые применена Слейтом и Аткином ([2084], 1977) в программе ведения шахмат- ной игры СНЕ88 4.5. Алгоритм В Мартелли также включал аспект итеративного поиска в глубину. Поиск с итеративным углублением был предложен Бертрамом Рафаэлем ([1851], 1976), но широкое признание получил благодаря работе Корфа ([1283], 1985). Впервые использование эвристической информации при решении задач упоми- нается в одной из ранних статей Саймона и Ньюэлла ([2072], 1958), но само вы- ражение “эвристический поиск” и обоснование применения эвристических функ- ций, которые оценивают расстояние до цели, появились немного позже ([1666], 1965 и [1414], 1965). Доран и Мичи ([636], 1966) провели обширные эксперимен- тальные исследования в области эвристического поиска. Хотя они анализировали длину пути и “проникновение” (репе1гапсе — отношения длины пути к общему количеству узлов, исследованных к данному моменту) в процессе эвристического поиска, они, видимо, игнорировали информацию, предоставляемую стоимостью пути $п). Алгоритм поиска А*, включающий текущую стоимость пути в эвристи- ческий поиск, был разработан Хартом, Нильссоном и Рафаэлем ([972], 1968), с не- которыми дальнейшими поправками [624]. Декстер и Перл ([581], 1985) изучили условия, при которых алгоритм А* оптимально эффективен (по количеству развер- нутых узлов). В оригинальной статье Харта и других об алгоритме поиска А* ([972], 1968) было введено условие преемственности эвристических функций. В качестве его более простой замены Полом ([1803], 1977) было введено условие монотонности, но через несколько лет Перл ([1751], 1984) показал, что эти два условия эквива- лентны. Пол также впервые изучил связь между ошибками в эвристических функциях и временной сложностью алгоритма А* ([1803], 1977). Основные результаты были получены для древовидного поиска с единичной стоимостью действий и одним целевым состоянием ([1803], 1977; [816], 1979; [1107], 1980; [1751], 1984) и с не- сколькими целевыми состояниями ([623], 2007). Корф и Рейд ([1292], 1998) пока- зали, как предсказать точное количество развернутых узлов (а не просто асимпто- тическое приближение), в различных актуальных проблемных областях. Понятие “эффективный коэффициент ветвления” было предложено Нильссоном ([1687], 1971) в качестве эмпирической меры эффективности. В отношении поиска в гра- фах Хельмерт и Реджер ([ 1008], 2008) отметили, что несколько хорошо известных задач, содержащих экспоненциально возрастающее количество узлов в путях оп- тимального решения, подразумевают и экспоненциальную временную сложность для алгоритма поиска А*.
Существует много вариантов алгоритма поиска А*. Пол ([1804], 1970) ввел по- иск А* с весовым коэффициентом, а затем предложил его динамическую версию ([1902], 1973), в которой весовые коэффициенты изменяются в зависимости от глу- бины дерева поиска. Эбендт и Дрехслер ([672], 2009) обобщили результаты исполь- зования этой версии и рассмотрели некоторые возможные приложения. Хатем и Румл ([983], 2014) предложили упрощенную и улучшенную версию поиска А* с ве- совыми коэффициентами, которую проще реализовать. Уилт и Румл ([2356], 2014) ввели как альтернативу жадному поиску быстрый поиск, фокусирующийся на све- дении к минимуму времени поиска, а затем в работе [2357] (2016) показали, что лучшие эвристики для удовлетворительного поиска отличаются от лучших эври- стик для оптимального поиска. В [347] (2012) предлагаются некоторые приемы ре- ализации для написания кода быстрого поиска, а в [723] (2018) рассматривается, как реализация меняется при использовании ранней проверки достижения цели. Впервые двунаправленный поиск предложил Пол ([1801], 1971), а в [1052] (2016) описывается версия двунаправленного поиска, в которой два направления гарантированно встречаются в середине, обеспечивая ему более широкое приме- нение. В [673] (2017) обсуждается множество обязательно развертываемых пар узлов и показано, что двунаправленный поиск не может быть оптимально эффек- тивным. В алгоритме ИВ8 ([411 ], 2017) использование очереди пар узлов разрабо- тано детально. Для эффективного поиска маршрутов движения в интерактивном картографи- ческом сервисе Мюгозой используется комбинация двунаправленного поиска А* и известных опорных точек ([879], 2006). После кэширования множества путей между опорными точками алгоритм способен найти оптимальный по затратам путь между любой парой точек в Соединенных Штатах, просмотрев менее 0,1% из 24 миллионов таких точек, определенных в графе. Корф ([1285], 1987) показал, как использовать подцели, макрооператоры и абстракцию для достижения значитель- ного ускорения по сравнению с предыдущими методами. В [598] (2009) описыва- ется, как для определения маршрутов движения автотранспорта можно использо- вать двунаправленный поиск, опорные точки, иерархическую структуру и другие приемы. В [49] (2008) описывается связанный подход, называемый ► иерархиче- ским поиском, который может рассматриваться как определение ориентиров на различных иерархических уровнях абстракции. Корф ([1287], 1987) описывает ус- ловие, при котором иерархический поиск обеспечивает экспоненциальное ускоре- ние. Кноблок ([ 1243], 1991) приводит экспериментальные результаты и анализ для количественной оценки преимуществ иерархического поиска. Алгоритм поиска А* и другие алгоритмы поиска в пространстве состояний тесно связаны с методами ► ветвей и границ, широко используемыми в области исследо- вания операций ([1366], 1966и[1863], 1996). Кумар и Канал ([1327], 1988) предпри- няли попытку “великой унификации” методов эвристического поиска, динамическо- го программирования, а также методов ветвей и границ под общим названием СОР (Сотрозйе Оес1зюп Ргосезз — комплексный процесс принятия решений).
Поскольку большинство компьютеров в 1960-х годах имели только несколько тысяч слов основной памяти, темой ранних исследовательских работ часто слу- жил эвристический поиск с ограничением памяти. Одна из первых поисковых программ, ОгарЬ Тгауегзег ([636], 1966), фиксировала свои результаты после вы- полнения поиска по первому наилучшему совпадению вплоть до установленного лимита памяти. Алгоритм ГОА* ([1284], 1985) стал одним из первых широко при- меняемых оптимальных алгоритмов эвристического поиска с ограничением памя- ти, после чего было разработано большое количество его вариантов. Анализ эф- фективности алгоритма ГОА* и сложностей, возникающих при его применении с эвристическими функциями, которые встречаются в реальных задачах, приведен в [1744] (1992). Оригинальная версия алгоритма КВР8 ([1287], 1993) была фактически несколь- ко более сложной, чем алгоритм, представленный на рис. 3.22, который на самом деле ближе к независимо разработанному алгоритму с названием ► итеративное развертывание или 1Е ([1939], 1992). В алгоритме КВР8 используется не толь- ко верхняя, но и нижняя граница; эти два алгоритма при использовании допусти- мых эвристических функций ведут себя одинаково, но КВР8 развертывает узлы в порядке первого наилучшего совпадения даже при наличии недопустимой эври- стической функции. Идея отслеживания наилучшего альтернативного пути появи- лась еще раньше в изящной реализации алгоритма А* на языке Рго1о§, предложен- ной Братко ([293], 2009), и в алгоритме ОТА* ([1947], 1991). В последней работе обсуждаются также метауровневые пространства состояний и метауровневое об- учение. Алгоритм МА* впервые опубликован в [384] (1989). Появление алгоритма 8МА*, или упрощенного (81трПйес1) МА*, стало результатом попытки реализо- вать МА* ([1939], 1992). Кайндл и Корсанд ([1174], 1994) применили алгоритм 8МА* для создания алгоритма двунаправленного поиска, который был значитель- но быстрее по сравнению с предшествующими алгоритмами. В [1290] (2000) опи- сан подход по принципу “разделяй и властвуй”, а Чжоу и Хансен в [2438] (2002) представили алгоритм поиска А* в графе с ограничением памяти и стратегию пе- рехода к поиску в ширину, чтобы повысить эффективность использования памя- ти в [2439] (2006). Идея о том, что допустимые эвристические функции могут быть получены с помощью ослабления условий задачи, впервые опубликована в оригинальной ста- тье ([1005], 1970), авторы которой использовали эвристику на основе минималь- ного связующего дерева для решения задачи Т8Р (см. упр. 3.38). Автоматизация процесса ослабления была успешно реализована Приедитисом ([1823], 1993). По- стоянно появляются все новые публикации по применению машинного обучения для обнаружения эвристических функций ([1966], 2008; [67], 2010; [2199], 2011; [1382], 2012). Использование баз данных шаблонов для получения допустимой эвристи- ки было предложено в [817] (1995); [505] (1996); [506] (1998). Базы данных
непересекающихся шаблонов описаны Корфом и Фельнером ([1289], 2002), а по- хожий метод с использованием символических шаблонов разработал Эделькамп ([675], 2009). В [724] (2007) показано, как можно сжать базу данных с шаблонами для сохранения пространства. Вероятностная интерпретация эвристик исследова- лась Перлом ([1751], 1984), а также Ханссоном и Майером ([963], 1989). Признанными учебниками по поиску являются НеипзНсз Перла (1984) и НеипзНс 8еагск Эделькампа и Шрёдля. Статьи о новых алгоритмах поиска пу- бликуются в материалах Международного симпозиума по комбинаторному по- иску (1п1ета11опа1 Зутрозшт оп СотЫпа<опа1 ЗеагсЬ — 8оС8) и Международ- ной конференции по автоматическому планированию и составлению расписаний (1п1етаНопа1 СопГегепсе оп АиЮта1ед Р1аппт§ апд 8сЬеди1т§ — 1САР8), а так- же общих конференций по ИИ, таких как ААА1 и ПСА1, и в журналах, таких как АгИ/гасй 1п1е1П%епсе и Лигпа1 о/ 1ке АСМ. Уп ражнен ия_____________________________________________________________ 3.1. Объясните, почему формулировка задачи должна выполняться после формулировки цели. 3.2. Составьте полную формулировку задачи для каждой из следующих проблем. Подбе- рите формулировку, которая будет достаточно точной для реализации. а) Шесть стеклянных запертых на замок шкатулок стоят в один ряд. В пяти первых шкатулках лежат ключи, открывающие следующую шкатулку в ряду, а в послед- ней лежит банан. У вас есть ключ к первой шкатулке, и вы хотите банан. б) Исходно у вас есть последовательность букв АВАВАЕССЕС или вообще любая последовательность, состоящая из букв А, В, С и Е. Исходную последователь- ность можно преобразовать, используя следующие равенства: АС = Е, АВ = ВС, ВВ = Е и Ех=х для любого х. Например, последовательность АВВС может быть преобразована в АЕС, затем — в АС, а затем — в Е. Ваша цель — из исходной по- следовательности получить последовательность Е. в) Дана сетка из квадратов размером и х и, каждый из которых изначально представ- ляет собой либо неокрашенный пол, либо бездонную яму. Исходно вы начинаете в квадрате с неокрашенным полом и можете либо покрасить пол в том квадрате, в котором находитесь, либо перейти в любой соседний квадрат с неокрашенным полом. Ваша задача — покрасить весь пол в сетке. г) В порту находится контейнеровоз, загруженный контейнерами. На нем имеется 13 вертикальных рядов контейнеров, каждый по 13 контейнеров в длину и 5 кон- тейнеров в высоту. Вы управляете краном, который может переместиться в любое место над кораблем, поднять контейнер под собой и доставить его на причал. Тре- буется полностью разгрузить корабль. 3.3. Ваша цель — вывести робота из лабиринта. Робот начинает движение, стоя в центре лабиринта и глядя на север. Можно повернуть робота на север, восток, юг или запад и можно направить робота двигаться вперед (т.е. туда, куда он смотрит) на определен- ное расстояние, но он остановится, если достигнет стены до завершения задания. Сформулируйте эту задачу. Насколько велико будет пространство состояний?
а) При навигации по лабиринту единственное место, где нужно будет поворачи- вать, — это пересечение двух или более коридоров. Переформулируйте эту зада- чу, опираясь на данное наблюдение. Насколько велико будет пространство состо- яний в этом случае? б) Из каждой точки лабиринта можно двигаться в любом из четырех направлений, пока не будет достигнута точка поворота, и поворот будет единственным действи- ем, которое нужно будет выполнить. Переформулируйте проблему, используя эти действия. Нужно ли теперь отслеживать ориентацию робота? в) В первоначальном описании задачи мы уже абстрагировались от реального мира, ограничив возможные действия и устранив детали. Назовите три упрощения из числа тех, которые были нами сделаны. 3.4. Имеется сетка из квадратов 9x9, каждый из которых может быть окрашен в красный или синий цвет. Изначально сетка окрашена в синий цвет, но цвет любого квадрата можно изменить любое количество раз. Представим исходную сетку как разделенную на девять субквадратов размером 3 х 3 и поставим задачу закрасить каждый субква- драт одним цветом, причем все его соседние субквадраты должны быть окрашены другим цветом. а) Сформулируйте эту задачу самым очевидным способом. Рассчитайте размер ее пространства состояний. б) Допустим, что каждый квадрат разрешается покрасить только один раз. Перефор- мулируйте задачу и вычислите размер ее пространства состояний. Будет ли поиск в ширину в этом варианте задачи работать быстрее, чем в варианте из пункта а! А что можно сказать в отношении поиска с итеративным углублением? в) Учитывая цель, необходимо рассмотреть лишь варианты окраски, в которых каж- дый субквадрат окрашен равномерно. Переформулируйте задачу и вычислите раз- мер пространства состояний. г) Сколько решений у этой задачи? д) В пунктах бив последовательно абстрагируется исходная задача из пункта а. Мо- жете ли вы дать перевод решения задачи в в решение задачи б, а затем — решения задачи б в решение задачи сП 3.5. Предположим, что два друга живут в разных городах на карте, например такой, как карта Румынии на рис. 3.1. На каждом этапе можно одновременно переместить каж- дого из друзей в соседний город на карте. Время, необходимое для перемещения из города / в соседний город у, равно длине дороги б/(/,у) между городами, но на каждом этапе друг, который прибывает первым, должен ждать, пока второй достигнет своего города (и позвонит первому на его мобильный телефон), чтобы можно было начать следующий этап. Наша цель — обеспечить, чтобы два друга встретились как можно быстрее. а) Запишите подробную формулировку этой задачи поиска. (Здесь будет полезно определить некоторые формальные обозначения.) б) Пусть IX/, у) — расстояние по прямой между городами / и у. Какие из следующих эвристических функций будут допустимыми: 1) IX/,у); п) 21Х/,у); ш) 1Х/,у)/2? в) Существуют ли полностью связные карты, для которых не существует решения? г) Существуют ли карты, на которых все решения требуют, чтобы один друг дважды посетил один и тот же город?
3.6. Покажите, что в задаче головоломки Восемь состояния подразделяются на два не- пересекающихся множества, таких, что ни одно состояние из первого множества не может быть преобразовано в состояние из второго множества, даже с примене- нием сколь угодно большого количества ходов. (Подсказка: см. ВеНекатр Е.К., Соп\уау 1.Н., Оиу К.К. Фауз, Рог Уоиг Ма1кетаИса1 Р1ау$. (1982) Асадетю Рге88, Уогк.) Разработайте процедуру, позволяющую узнать, к какому множеству относится данное состояние, и объясните, для чего нужно иметь под рукой такую процедуру, формируя состояния случайным образом. 3.7. Рассмотрите задачу с п ферзями, цель которой состоит в размещении ферзей на шах- матной доске таким образом, чтобы ни один ферзь не нападал на любого другого (ферзь атакует любую фигуру, находящуюся на одной и той же с ним горизонтали, вертикали или диагонали), используя операторы, которые дополняют описание состо- яния начиная с пустого состояния, и каждое действие приводит к добавлению к это- му состоянию еще одного ферзя. Объясните, почему размер пространства состояний задачи равен по меньшей мере , и оцените наибольшее значение л, для которого является осуществимым исчерпывающее исследование. (Подсказка: определите ниж- нюю границу коэффициента ветвления, рассматривая максимальное количество кле- ток, которые ферзь может атаковать в любом столбце.) 3.8. Для каждой из следующих задач дайте ее полную формулировку, выбрав такую, ко- торая будет достаточно точной, чтобы ее можно было успешно реализовать. а) Необходимо раскрасить плоскую карту, используя только четыре цвета, причем таким образом, чтобы никакие два смежных региона не имели один и тот же цвет. б) Обезьяна, имеющая рост 3 фута, находится в комнате, где под потолком на высоте 8 футов подвешено несколько бананов. Обезьяна хочет достать бананы. В комнате находятся две проволочные корзины высотой по 3 фута, которые можно передви- гать, ставить друг на друга и на которые можно залезать. в) Программа выводит сообщение “недопустимая входная запись” после передачи ей некоторого файла с входными записями. Известно, что обработка каждой запи- си происходит независимо от других записей. Требуется обнаружить, какая запись является недопустимой. г) Имеются три кувшина, емкостью 12,8 и 3 галлона, а также водопроводный кран. Кувшины можно заполнять или опорожнять, выливая воду из одного кувшина в другой или на землю. Необходимо отмерить ровно один галлон. 3.9. Рассмотрите задачу определения кратчайшего пути между двумя точками на плоско- сти, на которой имеются препятствия в виде выпуклых многоугольников, как показа- но на рис. 3.29. Это — идеализация задачи, которую должен решать робот, проклады- вая свой путь через среду, в которой мало свободного места. а) Предположим, что пространство состояний состоит из всех позиций (х,у) на пло- скости. Каково количество состояний в этом пространстве? Каково в нем количе- ство путей к цели? б) Кратко поясните, почему в этой двухмерной сцене кратчайший путь от одной вер- шины многоугольника до любой другой должен состоять из прямолинейных от- резков, соединяющих некоторые вершины многоугольников. А теперь определите более приемлемое пространство состояний. Насколько велико это пространство состояний?
в) Определите функции, необходимые для реализации решения этой задачи поиска, включая функцию определения преемника, которая принимает в качестве входных данных координаты любой из вершин и возвращает множество вершин, достижи- мых по прямой линии от данной вершины. (Не забывайте при этом о соседних вершинах того же многоугольника.) Используйте в качестве значения эвристиче- ской функции расстояние по прямой между указанными точками. г) Примените один или несколько алгоритмов, представленных в настоящей главе, для решения ряда задач из этой области и прокомментируйте данные об их произ- водительности. Рис. 3.29. Плоскость с многоугольными препятствиями 3.10. В разделе 3.1.1 было указано, что мы не будем принимать во внимание задачи с отри- цательными значениями стоимости пути. В данном упражнении эта тема рассматри- вается немного более подробно. а) Предположим, что действия могут иметь произвольно большие отрицательные стоимости; объясните, почему такая ситуация может вынудить любой оптималь- ный алгоритм исследовать полное пространство состояний. б) Удастся ли выйти из этого положения, потребовав, чтобы стоимости этапов были больше или равны некоторой отрицательной константе с? Рассмотрите и деревья, и графы. в) Предположим, что имеется множество операторов, образующих цикл, так что выполнение операторов этого множества в определенном порядке не приводит к какому-либо чистому изменению состояния. Если все эти операторы имеют от- рицательную стоимость, то какие выводы из этого следуют применительно к оп- тимальному поведению агента в такой среде? г) Можно легко представить себе, что операторы с высокой отрицательной стои- мостью имеются даже в таких проблемных областях, как поиск маршрута. На- пример, некоторые участки дороги могут оказаться настолько живописными, что стремление ознакомиться с ними намного перевесит обычные здравые рассужде- ния о стоимости, измеряемой в терминах затрат времени и топлива. Объясните, применяя точные термины, принятые в контексте поиска в пространстве состоя- ний, почему все же люди не ведут свои автомобили неопределенно долго по жи- вописным циклическим участкам пути, и укажите, каким образом нужно опре- делить пространство состояний и операторы для задачи поиска маршрута, чтобы агенты с искусственным интеллектом также могли избежать попадания в цикл.
д) Можете ли вы придумать пример такой реальной проблемной области, в которой стоимости этапов таковы, что могут вызвать возникновение цикла? 3.11. Задача обычно формулируется следующим образом. Три миссионера и три каннибала находятся на одной стороне реки, где также находится лодка, которая может выдер- жать одного или двух человек. Найдите способ перевезти всех на другой берег реки, никогда не оставляя где-либо группу миссионеров, которую превосходила бы по чис- ленности группа каннибалов. Это известная задача в искусственном интеллекте, по- скольку она была темой первой статьи, в которой был применен подход к формули- ровке проблемы с аналитической точки зрения ([40], 1968). а) Точно сформулируйте эту задачу, определяя только те различия, которые необхо- димы для обеспечения правильного решения. Нарисуйте схему ее полного про- странства состояний. б) Реализуйте и решите эту задачу оптимальным образом, используя соответствующий алгоритм поиска. Имеет ли смысл проверять наличие повторяющихся состояний? в) Почему, по вашему мнению, люди сталкиваются с затруднениями при решении этой головоломки, несмотря на то, что пространство ее состояний является чрез- вычайно простым? 3.12. Самостоятельно сформулируйте определения следующих понятий: состояние, про- странство состояний, дерево поиска, поисковый узел, цель, действие, функция опре- деления преемника и коэффициент ветвления. 3.13. В чем состоит различие между состоянием мира, описанием состояния и поисковым узлом? Почему это различие полезно? 3.14. Некоторые действия на самом деле могут состоять из длинной последовательности более мелких операций: включить мотор автомобиля, отпустить тормоз, начать дви- жение вперед и т.д. Наличие составных действий такого рода уменьшает количество шагов в последовательности решения, тем самым сокращая время поиска. Предполо- жим, мы довели этот подход до логического предела, создав сверхсоставные действия из всех возможных последовательностей действий. Тогда каждый экземпляр задачи будет решаться одним суперсоставным действием подобного толка. Объясните, как поиск мог бы работать при такой формулировке задачи. Будет ли такой подход прак- тичным с точки зрения ускорения решения задач? 3.15. Всегда ли конечное пространство состояний приводит к конечному дереву поиска? А что можно сказать в отношении конечного пространства состояний, которое явля- ется деревом? Можете ли вы более точно указать, какие типы пространств состояний всегда приводят к конечным деревьям поиска? 3.16. Покажите, что удовлетворяет свойству разделения графов, показанному на рис. 3.6. (Подсказка, начните с демонстрации, что это свойство выполняется в начале, а затем покажите, что если оно выполняется до начала очередной итерации алгоритма, то оно выполняется и после ее завершения.) Опишите алгоритм поиска, который нарушает это свойство. 3.17. Какие из следующих утверждений истинны, а какие ложны? Поясните свой ответ. а) Поиск в глубину всегда развертывает по крайней мере столько узлов, сколько по- иск с допустимой эвристикой. б) И(п)=0 — допустимая эвристика для головоломки Восемь. в) Поиск А* бесполезен в робототехнике, поскольку восприятия, состояния и дей- ствия в ней непрерывны.
г) Поиск в ширину является полным, даже если допустимы нулевые стоимости путей, д) Допустим, что ладья может перемещаться по шахматной доске на любое количе- ство квадратов по прямой линии, вертикальной или горизонтальной, но не может перепрыгивать через другие фигуры. В этом случае манхэттенское расстояние яв- ляется допустимой эвристикой для задачи перемещения ладьи из квадрата А в квадрат В за наименьшее количество ходов. 3.18. Рассмотрим пространство состояний, в котором начальным состоянием является чис- ло 1 и у каждого состояния к есть два преемника: числа 2к и 2Л+ 1. а) Нарисуйте часть пространства состояний для состояний от 1 до 15. б) Предположим, что целевое состояние равно И. Перечислите порядок посещения узлов при поиске в ширину, поиске с ограничением глубины с лимитом 3 и при итеративном поиске с углублением. в) Насколько хорошо двунаправленный поиск будет работать в этой задаче? Каков будет фактор ветвления в каждом направлении двунаправленного поиска? г) Предлагает ли ответ на задание в такую переформулировку задачи, которая позво- ляет решить задачу перехода из состояния 1 в заданное целевое состояние прак- тически без поиска? д) Назовите действие, ведущее от к к 2к слева, и действие, ведущее к 2к+ 1 справа. Можете ли вы найти алгоритм, который выводит решение этой задачи без како- го-либо поиска вообще? 3.19. Простой деревянный железнодорожный конструктор содержит части, показанные на рис. 3.30. Задача состоит в том, чтобы соединить эти части в замкнутый железнодо- рожный путь, в котором не будет перекрывающихся путей и свободных концов, где поезд мог бы сойти с рельсов. а) Предположим, что все части соединяются точно, без зазоров. Дайте точную фор- мулировку задания как поисковой задачи. б) Укажите подходящий неинформированный алгоритм поиска для этой задачи и по- ясните свой выбор. в) Объясните, почему удаление какой-либо одной развилки сделает задачу неразре- шимой. г) Укажите верхнюю границу общего размера пространства состояний, определен- ного вашей формулировкой задачи. (Подсказка. Подумайте о максимальном ко- эффициенте ветвления для процесса строительства и максимальной глубине, игнорируя проблему перекрывающихся путей и свободных концов. Начните с предположения, что каждый элемент конструктора уникален.) Рис. 3.30. Комплект элементов пути игрушечной железной дороги
3.20. Реализуйте следующие две версии функции определения преемника для задачи голо- воломки Восемь. Первая должна копировать и редактировать структуру данных ро- дительского узла 5, а вторая должна прямо модифицировать родительское состояние (отменяя эти модификации в случае необходимости). Напишите версии процедуры поиска в глубину с итеративным углублением, в которых используются эти функции, и сравните данные об их производительности. 3.21. Если в поиске с итеративным углублением вместо увеличивающихся пределов глуби- ны использовать увеличивающиеся пределы стоимости пути, то это будет алгоритм, получивший название поиск с итеративным удлинением — итеративный аналог по- иска по критерию стоимости. Его основная идея состоит в том, что при поиске следу- ет использовать увеличивающиеся пределы стоимости пути. Если сформирован узел, стоимость пути которого превышает текущий предел, этот узел немедленно отбрасы- вается. При каждой новой итерации предел устанавливается равным самому низкому значению стоимости пути для любого узла, отвергнутого в предыдущей итерации. а) Покажите, что этот алгоритм оптимален в отношении общих методов определе- ния стоимости пути. б) Рассмотрим однородное дерево с коэффициентом ветвления Ь, глубиной реше- ния <7 и единичными стоимостями этапов. Сколько итераций потребуется при ис- пользовании алгоритма итеративного удлинения? в) Теперь рассмотрите стоимости этапов, взятые из непрерывного диапазона [е, 1], где 0 < с < 1. Сколько итераций требуется в худшем случае? в) Реализуйте этот алгоритм и примените его к экземплярам задачи головоломки Во- семь и задачи коммивояжера. Сравните производительность этого алгоритма с производительностью алгоритма поиска по критерию стоимости и прокомменти- руйте полученные результаты. 3.22. Опишите пространство состояний, в котором поиск с итеративным углублением вы- полняется намного хуже, чем поиск в глубину (например, О(п) вместо О(п)). 3.23. Напишите программу, которая будет принимать в качестве входных данных два ОКЬ-адреса веб-страниц и находить путь из ссылок от одной к другой. Какая стра- тегия поиска будет подходящей в этом случае? Является ли двунаправленный поиск хорошей идеей? Можно ли использовать поисковую систему в качестве реализации функции определения предшественника? 3.24. Рассмотрим задачу мира пылесоса, определенную в разделе 2.1 (см. рис. 2.2). а) Какой из алгоритмов, определенных в этой главе, подойдет для решения этой за- дачи? Алгоритм должен использовать поиск по дереву или поиск по графу? б) Примените выбранный алгоритм для вычисления оптимальной последовательно- сти действий для мира 3 х 3, в начальном состоянии которого мусор находится в трех верхних квадратах, а агент находится в центре. в) Сконструируйте агента, выполняющего поиск в подобном мире пылесоса и оце- ните его производительность в множестве миров 3 х 3 с вероятностью присут- ствия мусора в каждом квадрате, равной 0,2. Включите в показатель эффективно- сти стоимость поиска, а также стоимость пути, используя разумный для данного случая “курс обмена”. г) Сравните вашего лучшего поискового агента с простым рандомизированным реф- лекторным агентом, который убирает мусор, если он имеется, или случайным об- разом перемещается в противном случае.
д) Оцените, что произойдет, если этот мир пылесоса будет увеличен до размеров п х п. Как производительность поискового агента и рефлекторного агента зависит от зна- чения л? 3.25. Докажите каждое из следующих утверждений или приведите контрпример. а) Поиск в ширину — это особый случай поиска по критерию стоимости. б) Поиск в глубину — это особый случай жадного поиска по первому наилучшему совпадению по дереву. в) Поиск по критерию стоимости является частным случаем поиска А*. 3.26. Сравните производительность алгоритмов поиска А* и КВР8 на множестве случайно сгенерированных экземпляров задач в проблемных областях задачи головоломки Во- семь (с манхэттенским расстоянием) и задачи Т8Р (с М8Т — см. упражнение 3.38). Обсудите полученные результаты. Как изменится производительность алгоритма КВР8 после добавления небольшого случайного числа к эвристическим значениям в проблемной области задачи головоломки Восемь! 3.27. Выполните трассировку работы алгоритма поиска А* применительно к задаче поис- ка оптимального пути до Бухареста из города Лугож, используя эвристику расстояния по прямой линии. Иными словами, запишите последовательность узлов, которые бу- дет рассматривать этот алгоритм, и дайте значения оценок/ & и Л для каждого из них. 3.28. Иногда для некоторой задачи нет хорошей функции оценки, но есть хороший метод сравнения: способ определения, будет ли один узел лучше, чем другой, без присво- ения им числовых значений. Покажите, что этого будет достаточно для выполнения поиска по первому наилучшему совпадению. Существует ли соответствующий ана- лог для алгоритма поиска А*? 3.29. Предложите пространство состояний, в котором применение поиска А* будет давать субоптимальное решение при использовании функции Л(л), являющейся допустимой, но непреемственной. 3.30. Точная эвристика не обязательно сокращает время поиска в худшем случае. Для лю- бой глубины <7 определите задачу поиска с целевым узлом на глубине <7 и напишите эвристическую функцию так, чтобы |Л(и)-Л*(и)|<О0°ё^*(л))> но ПРИ этом алго- ритм А* развертывал все узлы глубиной меньше (1. 3.31. Эвристический алгоритм поиска пути ([1803], 1977) представляет собой алгоритм поиска по первому наилучшему совпадению, в котором функция оценки имеет вид /(и) = (2 - и^(и) + и'Л(и). Для каких значений м этот алгоритм будет полным? Для ка- ких значений он будет оптимальным, если предположить, что функция Л является допустимой? Какой вид поиска выполняется в этом алгоритме при и>=0, и> = 1 и и>=2? 3.32. Рассмотрим неограниченную версию регулярного двухмерного клеточного мира. На- чальное состояние находится в начале координат (0,0), а целевое состояние имеет ко- ординаты (х,у). а) Каков фактор ветвления Ь в этом пространстве состояний? б) Сколько различных состояний существует на глубине к (для к> 0)? в) Какое максимальное количество узлов развертывается при древовидном поиске в ширину? г) Какое максимальное количество узлов развертывается при поиске в ширину по графу? д) Является ли Л=|и-х| + ^-^1 допустимой эвристикой для состояния (к, V)? Поясните.
е) Сколько узлов развертывается при поиске А* по графу с использованием эври- стики Л? ж) Останется ли функция Л допустимой, если некоторые связи будут удалены? з) Останется ли функция Л допустимой, если будут добавлены связи между некото- рыми несмежными состояниями? 3.33. В клеточном мире размерностью п х п автомобили в количестве п единиц занимают квадраты от (1,1) до (и, 1), т.е. весь нижний ряд. Все автомобили следует переместить в верхний ряд мира, но в обратном порядке. Иначе говоря, автомобиль /, который на- чинает движение из клетки (/, 1), должен закончить свой путь в клетке (и-/+ 1,и). На каждом этапе передвижения каждый из п автомобилей может переместиться на одну клетку вверх, вниз, влево или вправо или остаться на месте, и если автомобиль остался на месте, другой соседний автомобиль (но не более одного) может перепры- гнуть через него. Два автомобиля не могут занимать один и тот же квадрат. а) Определите размер пространства состояний задачи как функцию от п. б) Рассчитайте коэффициент ветвления как функцию от п. в) Предположим, что автомобиль / находится в точке (х.,^). Запишите нетривиаль- ную допустимую эвристику Л. для количества ходов, которые потребуются для до- стижения его целевого состояния (и - / +1, и), в предположении, что в этом клеточ- ном мире нет других автомобилей. г) Какие из следующих эвристик допустимы для задачи перемещения всех п автомо- билей к месту назначения? Поясните свой ответ. -2. шах Ир..., йл. -3. т1пЛр..., кп. 3.34. Рассмотрим задачу перемещения к коней из к исходных квадратов $р..., хк в к целе- вых квадратов на неограниченной шахматной доске при условии, что ника- кие два коня не могут одновременно оказаться на одной и той же клетке. Каждое дей- ствие состоит в одновременном перемещении всех к коней. Цель — завершить пере- мещение за наименьшее количество действий. а) Каков будет максимальный коэффициент ветвления в этом пространстве состоя- ний, выраженный в виде функции от к! б) Предположим, что Л — это допустимая эвристика для задачи перемещения коня / в целевое состояние &Какие из следующих эвристик будут допустимы для зада- чи с к конями? Какая из них будет лучшей? -1. ттЛр..., Ьк. -2. тахЛр..., Лг в) Выполните задание б для случая, когда будет разрешено перемещать только одно- го коня за ход. 3.35. В разделе 3.5.1 было показано, что применение эвристической функции определения расстояния прямой линии приводит к тому, что жадный поиск по первому наилучше- му совпадению безвозвратно углубляется в дерево поиска при решении задачи поис- ка пути из города Яссы в город Фэгэраш. Однако эта эвристика отлично работает при решении противоположной задачи — поиска пути от Фэгэраша до Ясс. Существуют ли такие задачи, в которых эта эвристическая функция не позволяет успешно выпол- нить поиск пути в обоих направлениях?
3.36. Придумайте эвристическую функцию для головоломки Восемь, которая иногда допу- скает переоценку, и покажите, каким образом это может привести к получению неоп- тимального решения некоторых конкретных экземпляров задачи. (Для упрощения ра- боты при выполнении упражнения можете использовать компьютер.) Докажите, что если функция Л никогда не переоценивает больше чем на с, то алгоритм поиска А*, использующий функцию Л, всегда возвращает решение, стоимость которого превы- шает стоимость оптимального решения не более чем на с. 3.37. Докажите, что если эвристическая функция является преемственной, то она должна быть допустимой. Предложите допустимую эвристическую функцию, которая не яв- ляется преемственной. 3.38. Задача коммивояжера (Т8Р) может быть решена с помощью эвристической функции, основанной на определении минимального связующего дерева (Мтппшп 8раппт§ Тгее — М8Т), которая используется для оценки стоимости завершения обхода, при условии, что уже был сформирован частичный путь обхода. Стоимость М8Т для мно- жества городов представляет собой минимальную сумму стоимостей соединений в любом дереве, которое связывает все города. а) Покажите, как эта эвристика может быть получена из упрощенной версии Т8Р. б) Покажите, что эвристика М8Т доминирует над эвристической функцией расстоя- ния по прямой. в) Напишите генератор задач для создания экземпляров задачи Т8Р, в которых горо- да представлены случайно выбранными точками в единичном квадрате. г) Найдите в литературе эффективный алгоритм построения М8Т и используйте его с поиском по графу для решения экземпляров задач Т8Р. 3.39. В разделе 3.6.2 был определен ослабленный вариант головоломки Восемь, в которой любая плитка может перемещаться из квадрата А в квадрат В, если квадрат В пуст. Точное решение этой проблемы определяет эвристику Гашнига ([816], 1979). Объ- ясните, почему эвристика Гашнига является по меньшей мере такой же точной, как функция Л] (плитки не на месте), и продемонстрируйте случаи, когда она более точ- на, чем функции Л1 и Л2 (манхэттенское расстояние). Предложите эффективный спо- соб вычисления эвристической функции Гашнига. 3.40. В этой главе для головоломки Восемь были предложены две простые эвристические функции: “манхэттенское расстояние” и “плитки не на месте”. В литературе было предложено несколько других эвристических функций в качестве их улучшенной за- мены, например см. Напздоп О., Мауег А., Уип§ М. “СгШс1хт§ 8о1ийоп5 1о ге!ахед тодек угеИз роууегйг! адпнззгЫе ЬеипзНсз”. 1п/огтаНоп Заепсез, 63(3), р. 207-227. 1992; Л., РпеЛШз А.Е. Огзсоуепп^ аДпнззНЯе кеинзИсз Ьу аЬз1гасИп% апс1 орИтатк А 1гапз/огтаИопа1 арргоаск. 1п Ргосеедт§5 оГ (Не Е1еуеп01 1п1етайопа1 Дот! СопГегепсе оп АгбГкла! 1п1е1Н§епсе (ПСА1 89), Уо1. 1, р. 701-707, 1989, ВеИок. Мог§ап Каи&папп.; №1$$оп 1\.Л. РгоЫет Зо1у1п%Ме1ко(181пАг1трс1а11п1еШ§епсе. 1971. Мсбгаху Н111, Иеху Уогк. Проверьте обоснованность этих претензий, реализовав соот- ветствующие эвристические функции и сравнив производительность полученных ал- горитмов.

ГЛАВА 4 Поиск в сложных средах В этой главе будут ослаблены упрощающие предположения, принятые в пре- дыдущей главе, что позволит приблизиться к реальности. В главе 3 рассматривались задачи поиска только для полностью наблюдаемых, детерминированных, статических, известных сред, в которых решение представ- ляет собой некоторую последовательность действий. В этой главе данные ограни- чения будут ослаблены. Мы начнем с задачи нахождения хорошего состояния, не беспокоясь о пути к нему, включив в рассмотрение как дискретные (раздел 4.1), так и непрерывные (раздел 4.2) пространства состояний. Затем будет ослаблено предположение как о детерминированности (раздел 4.3), так и о наблюдаемости (раздел 4.4) среды. В случае недетерминированного мира агенту понадобится ус- ловный план и придется выполнять различные действия в зависимости от того, что он будет наблюдать в своем окружении, например останавливаться, если свет светофора красный, и двигаться без остановки, если свет зеленый. При условии частичной наблюдаемости среды агенту также потребуется отслеживать различ- ные возможные состояния, в которых он может оказаться. Наконец, в разделе 4.5 обсуждается поведение агента в неизвестном ему пространстве, которое ему при- дется изучать по мере продвижения в нем, используя поиск в оперативном ре- жиме. 4.1. Локальный поиск и задачи оптимизации В поисковых задачах, обсуждавшихся в главе 3, требовалось найти путь в за- данном поисковом пространстве, например выяснить, как добраться из Арада до Бухареста. Но при решении многих задач имеет значение только достижение ко- нечного состояния, а путь к цели не представляет интереса. Например, в задаче с восемью ферзями (рис. 4.3) для нас важна лишь окончательная конфигурация фер- зей, а не порядок, в котором они расставляются на доске. К этому классу также от- носится множество важных приложений, таких как проектирование интегральных схем, размещение оборудования в цехах, составление производственных графиков, автоматическое программирование, оптимизация телекоммуникационных сетей, разработка плана уборки урожая или управление портфелем акций.
Алгоритмы ► локального поиска действуют лишь с учетом текущего состо- яния, предусматривая переход в какое-то одно из состояний из числа соседних по отношению к текущему. Они не отслеживают ни пути, ни набора состояний, которые уже были достигнуты. Это означает, что они не являются систематиче- скими, т.е. не обеспечивают полное исследование той части пространства поиска, где может находиться решение. Тем не менее они обладают двумя важными пре- имуществами: во-первых, в них используется очень небольшой объем памяти и, во-вторых, они часто позволяют находить приемлемые решения в больших или бесконечных (непрерывных) пространствах состояний, для которых систематиче- ские алгоритмы не применимы. Локальные поисковые алгоритмы могут также использоваться для решения ► задач оптимизации, в которых цель заключается в поиске состояния, наилуч- шего с точки зрения ► целевой функции. Чтобы лучше понять суть локального поиска, обратимся к представлению со- стояний некоторой задачи в виде ► ландшафта пространства состояний, как по- казано на рис. 4.1. Каждая точка (состояние) в ландшафте характеризуется “возвы- шением”, определяемым значением целевой функции (другой вариант—функции стоимости). Если возвышение каждой точки (состояния) соответствует целевой функции, то наша задача заключается в поиске самого высокого пика — ►гло- бального максимума, — и тогда этот процесс называют восхождением к вер- шине. Если же возвышение соответствует значению функции стоимости для состояния, то наша задача заключается в поиске самой глубокой долины — ►гло- бального минимума, — и тогда этот процесс называют градиентным спуском. Рис. 4.1. Ландшафт одномерного пространства состояний, в котором возвышение соответствует целевой функции. Задача состоит в поиске глобального максимума
4.1.1. Поиск восхождением к вершине Алгоритм поиска ► восхождением к вершине приведен на рис. 4.2. В нем от- слеживается единственное текущее состояние и на каждой итерации выполняет- ся переход в соседнее состояние с наибольшим значением целевой функции, т.е. движение осуществляется в направлении, обеспечивающем ► наиболее крутой подъем. Работа этого алгоритма заканчивается после достижения “пика”, когда ни одно из соседних состояний не имеет большего значения целевой функции. По- иск восхождением к вершине не предусматривает анализ состояний за пределами круга ближайших соседей текущего состояния. Все это похоже на попытку альпи- ниста, страдающего амнезией, найти вершину горы Эверест в густом тумане. Об- ратите внимание, что одним из вариантов применения метода поиска восхождени- ем к вершине является использование в качестве целевой функции эвристической стоимости со значениями, взятыми с обратным знаком, что приведет к локально- му подъему до состояния с наименьшим значением эвристического расстояния до цели. ГипсНоп Н1ЕЬ-С1ЛМВ1Кб(рго6/е>и) геСигпз состояние, представляющее собой локальный максимум сиггеп1 <— рго6/ет.11Ч1Т1А1, луЬПе 1гие до пе^кЬог <— преемник состояния сиггеп! с наивысшим значением целевой функции Уаше И УМА)Е(пе1^кЬог) < УАЬиЕ(смггеи/) (Ьеп геСигп сиггеп! сиггеп1 <— пе^кЬог Рис. 4.2. Алгоритм поиска восхождением к вершине, являющийся фундаменталь- ным методом локального поиска. На каждом этапе текущий узел заменяется наи- лучшим соседним узлом Для иллюстрации работы поиска восхождением к вершине воспользуемся ►за- дачей о восьми ферзях, представленной на рис. 4.3. В этом примере будет исполь- зоваться ► формулировка полного состояния, в которой в каждом состоянии на доске имеются все восемь ферзей, по одному ферзю в каждом столбце, но не обя- зательно в нужной позиции. Начальное состояние выбирается случайным образом, и его преемниками являются все возможные состояния, достигаемые посредством перемещения одного из ферзей на соседнюю клетку в том же самом столбце (в этом случае каждое состояние имеет 8 х 7 = 56 преемников). Эвристическая функция стоимости к определяет количество пар ферзей, которые атакуют друг друга прямо или косвенно, т.е. когда на одной линии находится больше двух фер- зей и атака засчитывается через промежуточные фигуры. Глобальный минимум этой функции будет равен нулю, и это состояние соответствует идеальному
решению. На рис. 4.3, б показаны состояние со значением функции к = 17, а также значения этой функции для всех возможных состояний-преемников. а) Рис. 4.3. Задача о 8 ферзях: на шахматной доске разместите 8 ферзей так, чтобы ни один из них не нападал на другой (ферзь атакует любую фигуру в той же строке, столбце или диагонали), а) Эта позиция является почти решением, за исключением двух ферзей в четвертом и седьмом столбцах, которые атакуют друг друга по диаго- нали. б) Состояние задачи о 8 ферзях с эвристической оценкой стоимости к = 17. На доске также показано значение функции к для каждого возможного преемника, до- стигаемого путем перемещения ферзя в пределах своего столбца, и отмечено 8 хо- дов, дающих наилучший результат с к = 12. Алгоритм поиска восхождением к вер- шине выберет один из них б) Метод поиска восхождением к вершине иногда называют ► жадным локаль- ным поиском, поскольку в нем предусматривается переход в самое хорошее со- седнее состояние без предварительных рассуждений о том, куда лучше отправить- ся дальше. Хотя жадность считается одним из семи смертных грехов, практика показала, что жадные алгоритмы часто демонстрируют достаточно высокую про- изводительность. Поиск восхождением к вершине обычно позволяет получить бы- строе продвижение в сторону решения, поскольку улучшить начальное плохое со- стояние чаще всего достаточно просто. Например, в состоянии, представленном на рис. 4.3, б, достаточно сделать лишь пять ходов, чтобы достичь состояния, пока- занного на рис. 4.3 с оценкой к = 1 и находящегося очень близко к одному из воз- можных решений. К сожалению, поиск восхождением к вершине часто заходит в тупик по любой из следующих причин. • ► Локальные максимумы. Локальный максимум представляет собой пик, более высокий по сравнению с каждым из его соседних состояний, но более
низкий, чем глобальный максимум. Алгоритмы поиска восхождением к вер- шине, достигнув окрестностей локального максимума, обеспечивают уве- ренное продвижение вверх, к вершине этого пика, но в конечном счете за- ходят в тупик, из которого для них нет выхода. Такая задача схематически показана на рис. 4.1. Более конкретный пример состоит в том, что состоя- ние, показанное на рис. 4.3, а, фактически представляет собой локальный максимум (т.е. локальный минимум для оценки стоимости Л); задача еще не решена, но при любом передвижении отдельно взятого ферзя ситуация ста- новится только хуже. • ► Хребты. На рис. 4.4 представлен типичный пример хребта, представляю- щего собой последовательность локальных максимумов, задача прохожде- ния которых для жадных алгоритмов является очень трудной. • ►Плато. Это такая область в ландшафте пространства состояний, где функ- ция оценки является плоской. Она может представлять собой плоский ло- кальный максимум, из которого не существует выхода вверх, либо иметь вид ►уступа, из которого теоретически возможно дальнейшее успешное про- движение (см. рис. 4.1). Алгоритм поиска восхождением к вершине может оказаться неспособным выйти за пределы плато. Рис. 4.4. Иллюстрация того, почему хребты вызывают сложности для алгоритмов поиска восхождением к вершине. На хребет, повышающийся в направлении слева направо, наложена решетка состояний (темные дуги), образующая последователь- ность локальных максимумов, не связанных напрямую друг с другом. В любом из локальных максимумов все доступные действия направлены вниз. Подобные топо- логии распространены в низкоразмерных пространствах состояний, таких как точ- ки в двухмерной плоскости. Но в пространствах состояний с сотнями или тысячами измерений эта наглядная картина не применима, и обычно есть по крайней мере не- сколько измерений, которые позволят алгоритму покинуть гребни или плато
В каждом из этих случаев рассматриваемый алгоритм достигает такой точки, из которой дальнейшее успешное продвижение невозможно. Так, начиная со слу- чайно сформированного состояния задачи о восьми ферзях, алгоритм поиска вос- хождением к вершине по самому крутому подъему заходит в тупик в 86% случа- ев, успешно справляясь лишь с 14% экземпляров этой задачи. Однако он работает очень быстро, выполняя в среднем только 4 этапа в случае успешного завершения и 3 этапа, если заходит в тупик. Это неплохой результат для пространства состоя- ний с 88 « 17 миллионами состояний. Как можно добиться успешного решения большего числа задач? Один из отве- тов — продолжать движение до тех пор, когда будет достигнуто плато, т.е. разре- шить ► перемещение в сторону в надежде на то, что плато действительно явля- ется уступом, как показано на рис. 4.1. Однако, если на самом деле будет найден плоский локальный максимум, может возникнуть бесконечный цикл и алгоритм застрянет на плато навсегда. Тогда возможный вариант — ограничить количество последовательных движений в сторону, прекращая работу алгоритма после, ска- жем, 100 переходов на плато. Это позволяет увеличить процент успешно решае- мых методом восхождения к вершине экземпляров задач с 14% до 94%. Однако за такой успех приходится платить: алгоритм в среднем выполняет примерно 21 этап при каждом успешном решении экземпляра задачи и 64 этапа в случае неудачи. Было разработано немало вариантов поиска восхождением к вершине. При по- иске ► стохастическим восхождением к вершине случайным образом осущест- вляется выбор одного из возможных перемещений вверх; при этом вероятность такого выбора может зависеть от крутизны движения вверх. Как правило, этот ал- горитм сходится медленнее по сравнению с вариантом, предусматривающим наи- более крутой подъем, но в некоторых ландшафтах состояний он уверенно находит лучшие решения. При поиске ► восхождением к вершине с выбором первого варианта реализуется стохастический поиск восхождением к вершине путем вы- бора преемников случайным образом до тех пор, пока не будет найден преемник, лучший по сравнению с текущим состоянием. Это хорошая стратегия, если любое состояние имеет большое количество преемников (например, тысячи). Еще один вариант — это ► поиск восхождением к вершине со случайным перезапуском следует широко известной рекомендации: “Если первая попытка была неудачной, пробуйте снова и снова”. В этом варианте серия поисков из раз- личных начальных состояний, сформированных случайным образом, выполняет- ся, пока цель не будет достигнута. Он является полным с вероятностью, достига- ющей 1, даже по той тривиальной причине, что в нем в конечном итоге в качестве начального состояния формируется одно из целевых состояний. Если вероятность успеха каждого поиска восхождением к вершине равна р, то ожидаемое количе- ство требуемых перезапусков составляет 1/р. Для экземпляров задачи с восемью ферзями, если не разрешено движение в сторону,,/? ~ 0,14, поэтому для нахожде- ния цели требуется приблизительно 7 итераций (6 неудачных и 1 успешная). Ожи- даемое количество этапов решения равно стоимости одной успешной итерации,
которая складывается с увеличенной в (1 - р)/р раз стоимостью неудачи, или со- ставляет приблизительно 22 этапа. Если разрешено движение в сторону, то в сред- нем требуется 1/0,94 ~ 1,06 итераций и (1 х 21) + (0,06/0,94) х 64 ~ 25 этапов. По- этому алгоритм поиска восхождением к вершине со случайным перезапуском действительно является очень эффективным применительно к задаче с восемью ферзями. Даже для варианта с тремя миллионами ферзей этот подход позволяет находить решения меньше чем за минуту.1 Успех алгоритма поиска восхождением к вершине в значительной степени зави- сит от формы ландшафта пространства состояний: если в нем есть лишь несколько локальных максимумов и плато, то метод поиска восхождением к вершине со слу- чайным перезапуском позволяет очень быстро найти хорошее решение. С другой стороны, многие реальные задачи имеют ландшафт, который больше напоминает семейство дикобразов на плоском полу, и на вершине иглы каждого дикобраза жи- вут другие миниатюрные дикобразы, и так до бесконечности. КР-трудные задачи (см. приложение А) обычно имеют экспоненциальное количество локальных мак- симумов, способных завести алгоритм в тупик. Несмотря на это часто существует возможность найти достаточно хороший локальный максимум после небольшого количества перезапусков. 4.1.2. Имитация отжига Алгоритм поиска восхождением к вершине, исключающий возможность дви- жения “вниз по склону” к состояниям с более низкой оценкой (или более высокой стоимостью), всегда подвержен риску зайти в тупик, достигнув локального мак- симума. В отличие от этого алгоритм с чисто случайным блужданием, предпола- гающий произвольный выбор преемника, не принимая во внимание его оценку, в конечном счете натолкнется на глобальный максимум, но является крайне неэф- фективным. Поэтому представляется разумной попытка каким-то образом скомби- нировать восхождение к вершине со случайным блужданием, что позволит обеспе- чить и эффективность, и полноту. Одним из решений является алгоритм, получивший название ► имитация отжига. В металлургии отжигом называют процесс отпуска металла или стек- ла путем нагревания этих материалов до высокой температуры с последующим постепенным охлаждением, что позволяет перевести обрабатываемый материал в низкоэнергетическое кристаллическое состояние. Чтобы пояснить суть имита- ции отжига, вместо восхождения к вершине обратимся к градиентному спуску (т.е. к минимизации затрат) и представим себе, что задача состоит в том, чтобы на очень неровной поверхности загнать маленький шарик в самую глубокую лунку. 1 В [1459] (1993) предполагается, что в некоторых случаях лучше выполнять переза- пуск рандомизированного алгоритма по выполнении фиксированного числа этапов, и по- казано, что такой подход может оказаться гораздо более эффективным по сравнению с тем, когда разрешено каждый поиск продолжать до бесконечности.
Если позволить шарику просто катиться под уклон, он быстро остановится в бли- жайшем углублении — локальном минимуме. Но если теперь встряхнуть нашу поверхность, шарик может выскочить из локального минимума и, возможно, зака- тится в более глубокое углубление, откуда вытряхнуть его будет сложнее. Идея со- стоит в том, чтобы встряхивать поверхность достаточно сильно, чтобы шарик мог выскочить из локальных минимумов, но не настолько сильно, чтобы он вылетел и из глобального минимума. Поэтому в алгоритме имитации отжига предполага- ется, что вначале происходит достаточно интенсивное встряхивание (аналогичное нагреву до высокой температуры), а затем интенсивность встряхиваний постепен- но уменьшается (что можно сравнить с понижением температуры). Общая структура алгоритма имитации отжига (рис. 4.5) аналогична структуре алгоритма поиска восхождением к вершине. Однако вместо наилучшего хода в нем выбирается случайный ход. Если он улучшает ситуацию, то всегда принимается, а если нет, то алгоритм принимает его с некоторой вероятностью, меньшей 1. Эта вероятность экспоненциально убывает с учетом “ухудшения” хода — в зависимо- сти от величины ЛЕ, на которую ухудшается его оценка. Вероятность также умень- шается по мере понижения “температуры” Т: “плохие” ходы с большей вероятно- стью могут быть разрешены в начале, когда температура высока, но становятся менее вероятными по мере снижения Г. Если график понижения Г до 0 предусма- тривает достаточно медленное ее снижение, то по свойству распределения Больц- мана е^: т вся вероятность концентрируется на глобальном максимуме, который ал- горитм найдет с вероятностью, приближающейся к 1. Гипсйоп $1миЕАТЕВ-АммЕАимо(рго/>/ет, зскеМё) геСигпв состояние решения сиггеп! <— рго/>/ет.1мТ1АЕ Гог I = Ио оо до Т <— зскесЫеЦ) 1Г Т = 0 СЬеп геСигп сиггеп! пех! <— случайно выбранный преемник узла сиггеп! АЕ <— УАЕ0Е(сштеи/) - УАЬ0Е(иех/) 1Г ДЕ > 0 СЬеп сиггеп! <— пех! еке сиггеп! <— пех!, но только с вероятностью е~^Е1Т Рис. 4.5. Алгоритм имитации отжига: версия стохастического поиска восхождени- ем на вершину, в которой разрешаются некоторые ходы вниз. Входная переменная 5скеЛл1е определяет значение “температуры44 Т как функции времени Алгоритм поиска имитацией отжига широко использовался для решения за- дач компоновки СБИС уже с начала 1980-х годов. Кроме того, этот алгоритм на- шел широкое применение при решении задач планирования производства и дру- гих крупномасштабных задач оптимизации.
4.1.3. Локальный поиск по лучу Хранение в памяти только одного узла может показаться слишком радикальной реакцией на проблему ограничения памяти. Алгоритм ► локального поиска по лучу отслеживает к состояний вместо одного. Работа этого алгоритма начинается с генерации к состояний, выбранных случайным образом. Далее на каждом этапе формируются все преемники всех к состояний и, если любой из них соответствует целевому состоянию, алгоритм завершает работу. В противном случае из общего списка выбираются к лучших преемников и цикл повторяется. На первый взгляд, локальный поиск по лучу с к состояниями представляет со- бой не более чем выполнение к случайных перезапусков, но не последовательно, а параллельно. Однако в действительности эти два подхода совершенно разные. При случайном перезапуске поиска каждый процесс поиска выполняется неза- висимо от других. -► При локальном поиске по лучу полезная информация передает- ся между всеми параллельными поисковыми потоками, Это подобно тому, как если бы состояния, имеющие лучших преемников, сообщали остальным: “Идите все сюда, здесь трава зеленее!” В результате алгоритм быстро прекращает неэффективные поиски и перемещает свои ресурсы туда, где был достигнут наибольший прогресс. Локальный поиск по лучу может страдать от отсутствия разнообразия между к состояниями, если все они сосредоточатся в небольшой области пространства состояний. В результате поиск по лучу превратится в чуть более чем в к раз бо- лее медленный вариант поиска восхождением к вершине. Вариант с названием ►стохастический поиск по лучу, аналогичный стохастическому поиску восхож- дением к вершине, позволяет решить эту проблему. В этом случае вместо выбора Л лучших преемников все преемники выбираются из общего пула с вероятностью, пропорциональной значению этого преемника, что увеличивает разнообразие. 4.1.4. Эволюционные алгоритмы ► Эволюционные алгоритмы можно рассматривать как варианты стохастиче- ского поиска по лучу, разработка которых очевидным образом была мотивирована концепцией естественного отбора в биологии. Здесь также имеется популяция из особей (состояния), в которой наиболее приспособленные особи (наибольшее зна- чение) производят потомство (преемники состояния), образующее следующее по- коление популяции, посредством процесса, называемого ► рекомбинацией. Су- ществует бесконечное число форм эволюционных алгоритмов, различающихся следующими характеристиками. • Размер популяции. • Представление отдельной особи. В ► генетических алгоритмах каждая особь является строкой элементов из конечного алфавита (часто это битовая строка), так же, как молекула ДНК представляет собой строку элементов из алфавита А, С, 6 и Т. В ► эволюционных стратегиях особи представляют
собой последовательность действительных чисел, а в ► генетическом про- граммировании особь — это компьютерная программа. • Показатель смешивания р, определяющий число родителей, которые собира- ются вместе, чтобы сформировать потомство. Наиболее распространенным случаем является р = 2: два родителя объединяют свои “гены” (части свое- го представления), чтобы сформировать потомство. При р = 1 мы получим стохастический поиск по лучу (который можно рассматривать как беспо- лое размножение). Вполне возможно задать р > 2, что в природе встречается крайне редко, но достаточно легко моделируется на компьютерах. • Процесс ► выбора для рекомбинации особей, которые будут родителями для следующего поколения: один из вариантов состоит в выборе из попу- ляции р особей с вероятностью, пропорциональной их функции приспо- собленности. Другой вариант — случайным образом выбрать в популяции п особей (п > р), а затем отобрать из них в качестве родителей р особей с наибольшей приспособленностью. • Процедура рекомбинации. Наиболее общий подход (при условии р = 2) со- стоит в случайном выборе точки пересечения (►кроссинговер), используе- мой для разделения каждой из родительских строк на две части, а затем объ- единения этих частей с целью формирования двух потомков. При этом один будет состоять из первой части родителя 1 и второй части родителя 2, а дру- гой — из первой части родителя 2 и второй части родителя 1. • ►Частота мутации, которая определяет, как часто у потомков будут иметь место случайные мутации в их представлении. После того как потомок уже будет создан, каждый бит в его составе инвертируется с вероятностью, рав- ной частоте мутации. • Состав следующего поколения. В новое поколение может входить только вновь образованное потомство, либо оно может включать несколько родите- лей с наилучшей приспособленностью из предыдущего поколения (на прак- тике этот механизм называют ► элитарностью, гарантирующей, что для популяции ее общая приспособленность никогда не будет уменьшаться со временем). Практика ►отбраковки, когда все особи с приспособленностью ниже установленного порога отбрасываются, может способствовать ускоре- нию работы алгоритма (Баум и др. [141 ], 1995). На рис. 4.6, а приведена совокупность из четырех 8-значных строк, каждая из которых представляет состояние в задаче с 8 ферзями: с-я цифра определяет номер строки с ферзем в столбце с. На рис. 4.10, б каждое состояние оценивается с ис- пользованием функции приспособленности. Более высокие значения приспосо- бленности лучше, поэтому в этом примере для задачи о 8 ферзях в качестве крите- рия используется количество неатакующих друг друга пар ферзей, которое в любом решении будет равно 8 х 7 /2 = 28. Значения этой функции для четырех при- веденных на рисунке состояний равны 24, 23, 20 и И. Далее оценка
приспособленности нормализуется к вероятности выбора — на рис. 4.6, б полу- ченные значения приведены рядом с соответствующими оценками. 32748052 2475241Т 32052124 24415410 а) б) в) г) Исходная Функция Отбор Рекомбинация популяция приспособленности и кроссинговер Д) Мутация Рис. 4.6. Работа генетического алгоритма иллюстрируется с помощью цифровых строк, представляющих состояния в задаче с 8 ферзями. Начальная популяция а ранжируется по функции приспособленности б, после чего отбираются пары для скрещивания в. Эти пары производят потомство г, которое затем подвергается му- тации д На рис. 4.6, в из всей исходной популяции выбираются две пары родителей в соответствии с вероятностями в б. Обратите внимание, что одна особь выбирается дважды, а другая — не выбирается вовсе. К каждой выбранной паре применяется кроссинговер — случайным образом выбирается точка пересечения (пунктирная линия). На рис. 4.6, г для генерации потомков применяется рекомбинация: роди- тельские строки обмениваются фрагментами, определяемыми точками пересече- ния. Например, первый потомок первой пары получает три первые цифры (327) от первого родителя, а остальные цифры (48552) — от второго родителя. Состояния задачи о 8 ферзях, образованные на этапе рекомбинации для первой пары родите- лей, показаны на рис. 4.7. Наконец, на рис. 4.6, д каждый элемент в каждой строке подвергается случай- ной мутации с небольшой независимой вероятностью. В результате мутировало по одной цифре в первом, третьем и четвертом потомках. Для задачи о 8 ферзях подобная мутация означает случайный выбор ферзя на доске и его перемещение в случайно выбранную клетку того же столбца. Чаще всего на ранних этапах про- цесса популяция оказывается очень разнообразной, и процедура кроссинговера часто позволяет делать значительные перемещения в пространстве состояний в начале поиска (как в алгоритме имитации отжига). После селекции многих по- колений в сторону повышения приспособленности популяция становится менее разнообразной, и типичными будут уже небольшие перемещения. На рис. 4.8 при- веден алгоритм, реализующий выполнение всех описанных выше этапов.
рис. 4.6, в и их потомку на рис. 4.6, г. Темные столбцы теряются на этапе кроссин- говера, а светлые сохраняются в потомке. (Для правильной интерпретации чисел на рис. 4.6 уточним, что строка 1 —это нижний ряд, а строка 8 — верхний.) ГипсНоп ОЕКЕТ1С-АЕСОЕ1ТНМ(рорм/аП*ол, Р1ТКЕ88) геСигпз особь гереа! <— XVеюнтео-Ву(рори1аИоп, Е1ТКЕ88) рори1аИоп2 <— пустой список Гог / = 1 <о $12Е(рори1а1юп) до рагеп11,рагеп12 <— \УЕЮНТЕ1>КАКООМ-Сно1СЕ8(рорм7аП*ол, юецгкк, 2) ^ЕРЕОтСЕ{рагеп11 ,рагеп12) 1Г (небольшое случайно выбранное значение вероятности) 1Ьеп сИНс1<- МитАТЕ(с/п7ф аск! сЫ1<11о рори1аНоп2 рори1аНоп <— рори1аНоп2 шНП некоторый индивидуум не станет достаточно пригодным или не истечет установленное количество времени геСигп наилучшая особь в популяции рори1аИоп, выбранная в соответствии со значением определяемым функцией Егпче88 ГипсНоп ХЕРКОъиСЕ(рагепи, рагеп12) ге1игп$ особь п <— Ьек6ТН(/юп?и/7) с <— случайно выбранное число в диапазоне от 1 до л ге!игп АррЕКО($ив8ТК1Кб(рягеиГ7,1, с), (8ив8ТК1Кб(рягеиГ2, с + 1, и)) Рис. 4.8. Генетический алгоритм. В этой функции популяция представлена как упо- рядоченный список особей рори1аНоп, переменная — это список соответ- ствующих показателей приспособленности для каждой особи, а приспособленность определяется функцией Г1ТИЕ88, вычисляющей эти значения
Эволюция И ПОИСК Теория эволюции была разработана Чарльзом Дарвином и представлена в его книге Про- исхождение видов путем естественного отбора ([527], 1859) независимо от Альфреда Рассела Уоллеса ([2288], 1858). Основная идея этой теории проста: при воспроизводстве возникают вариации, которые сохраняются в последующих поколениях приблизительно пропорционально их влиянию на способность носителей к воспроизводству. Дарвин разрабатывал свою теорию, не зная о том, как те или иные свойства организ- ма могут быть унаследованы и модифицированы. Вероятностные законы, управляющие этими процессами, были открыты Грегором Менделем ([1557], 1866), монахом, прово- дившим эксперименты со сладким горошком. Гораздо позже Уотсон и Крик ([2300], 1953) выявили структуру молекулы ДНК и ее алфавит "АГТЦ" (аминокислоты аденин, гуанин, тимин, цитозин). В предложенной ими стандартной модели вариации возникают и в результате точечных мутаций в последовательности этих аминокислот, и в результате "кроссинговера"(при котором ДНК потомка формируется путем объединения длинных секций ДНК от каждого из родителей). Аналогия между этим процессом и алгоритмами локального поиска была описана выше; принципиальное различие между стохастическим поиском по лучу и эволюцией состо- ит в использовании полового воспроизводства, в котором потомки формируются с уча- стием нескольких особей, а не только одного. Однако фактически механизмы эволюции намного богаче по сравнению с тем, что допускает большинство генетических алгорит- мов. Например, мутации могут быть связаны с обращением, дублированием и переме- щением больших фрагментов ДНК; некоторые вирусы заимствуют ДНК из одного орга- низма и вставляют в другой; кроме того, существуют взаимозаменяемые гены, которые лишь копируют самих себя в геноме много тысяч раз. Есть даже такие гены, которые отравляют клетки потенциальных родителей, не несущие ген этого типа, повышая тем самым шансы на собственное воспроизводство. Наиболее важным является тот факт, что гены сами кодируют те механизмы, с помощью которых геном воспроизводится и транслируется в организме. В генетических алгоритмах такие механизмы представляют собой отдельную программу, не закодированную в строках, с которыми осуществляются манипуляции. Дарвиновская эволюция может показаться неэффективной, поскольку на Земле она вслепую породила примерно 10 или около того организмов и при этом ни на йоту не улучшила свою поисковую эвристику. Но обучение все же играет определенную роль в эволюции. Хотя великий во всем остальном французский натуралист Жан Ламарк ([1347], 1809) и ошибался, предположив, что признаки, приобретенные путем адапта- ции на протяжении жизни организма, будут переданы потомству, внешне похожая тео- рия Джеймса Болдуина ([118], 1896) оказалась правильной: обучение может эффектив- но сглаживать кривую функции приспособленности, способствуя повышению скорости эволюции. Организм, имеющий особенность, не вполне соответствующую его среде обитания, сможет передать эту особенность потомкам, если он также обладает доста- точной пластичностью, чтобы научиться адаптироваться к окружающей среде подхо- дящим способом. Компьютерное моделирование (Хинтон и Ноулан [1026], 1987) под- твердило, что эффект Болдуина имеет место в реальности и что как следствие то, чему трудно научиться, попадает в геном, а то, чему научиться легко, не должно в нем фикси- роваться (Морган и Гриффитс [1624], 2015).
Генетические алгоритмы в целом похожи на стохастический поиск по лучу, но с добавлением операции кроссинговера. Она дает преимущества, если в состояни- ях есть блоки элементов, определяющие выполнение полезных функций. Напри- мер, в задаче о 8 ферзях может быть полезно, чтобы в первых трех столбцах фер- зи находились в строках 2, 4 и 6 (где они не нападают друг на друга), — это будет полезный блок, который для получения решения может быть объединен с иными полезными блоками, присутствующими в других особях. Можно показать матема- тически, что если блоки элементов не служат полезной цели, например если пози- ции генетического кода просто переставляются случайным образом, использова- ние кроссинговера не дает никаких преимуществ. Теория генетических алгоритмов объясняет, как это работает, используя идею ► схемы, которая представляет собой строку, в которой некоторые позиции могут оставаться неопределенными. Например, схема 246***** описывает все состояния задачи о 8 ферзях, в которых первые три ферзя находятся в позициях 2, 4 и 6 соот- ветственно. Строки, которые соответствуют схеме (например, 24613578), называ- ются ► примерами схемы. Можно показать, что если средняя пригодность при- меров схемы выше среднего, то число примеров схемы со временем будет расти. Очевидно, что данный эффект вряд ли окажется существенным, если смежные биты абсолютно не связаны друг с другом, поскольку в таком случае будет суще- ствовать мало непрерывных блоков, предоставляющих какое-либо постоянное пре- имущество. Генетические алгоритмы работают лучше всего в сочетании со схемами, соответствующими осмысленным компонентам решения. Например, если стро- ка представляет какую-либо радиотехническую антенну, то схемы могут соответ- ствовать компонентам этой антенны, таким как рефлекторы и дефлекторы. Хороший компонент, по всей вероятности, будет оставаться хорошим во многих разных про- ектах. Из этого следует, что для успешного использования генетических алгоритмов требуются тщательное обдумывание и проработка представления задачи. На практике генетические алгоритмы нашли свое место в широком спектре ме- тодов оптимизации (Марлер и Арора [1495], 2004), особенно в случае достаточ- но сложных структурированных задач, таких как компоновка интегральных схем или планирование работы магазина, а в последнее время и в развитии архитек- туры глубоких нейронных сетей (Миккулайнен и др. [1567], 2019). Пока не ясно, насколько привлекательность генетических алгоритмов обусловлена их превос- ходством в решении определенных классов задач, а насколько — подкупающей метафорой эволюции. 4.2. Локальный поиск в непрерывных пространствах В главе 2 мы объяснили различие между дискретной и непрерывной средами, указав, что большинство реальных сред являются непрерывными. Непрерывное пространство действий имеет бесконечно большой коэффициент ветвления, а сле- довательно, действовать в ней не способен ни один из уже рассмотренных ранее
алгоритмов (за исключением алгоритмов поиска восхождением к вершине с выбо- ром первого варианта и имитации отжига). В этом разделе дано очень краткое введение в некоторые методы локального поиска в непрерывных пространствах. Литература по этой теме обширна; многие из этих основных методов были созданы еще в XVII веке после разработки первых математических исчислений Ньютоном и Лейбницем.2 Применение этих методов обсуждается в нескольких главах данной книги, включая главы, касающиеся обу- чения, машинного зрения и робототехники. Начнем с рассмотрения примера. Предположим, что в Румынии требуется най- ти место для размещения трех новых аэропортов, причем таким образом, чтобы сумма квадратов расстояний от каждого города на карте (см. рис. 3.1) до ближай- шего к нему аэропорта была минимальной. В этой задаче пространство состоя- ний определяется координатами трех аэропортов, (хр у,), (х2, у2) и (х3, у3), и являет- ся шестимерным, а следовательно, каждое состояние будет определяться шестью ► переменными. В общем случае состояния определяются и-мерным вектором из переменных, х. Перемещение в этом пространстве соответствует перемещению одного или более из трех рассматриваемых аэропортов на карте Румынии. Для любого конкретного состояния вычислить целевую функцию/(х) = /(х}, у , х2, у, х3, у3) будет относительно легко, как только будут определены ближайшие города. Пусть С( будет множеством городов, для которых ближайшим аэропортом (в со- стоянии х) является аэропорт /. Тогда мы имеем следующее: /(х) =/(хру,,х2,у2,х3,У3) = 2 Е(х- “хс)2 “Ус)2 • (4.1) /=1 сеС/ Это уравнение верно не только для состояния х, но и для состояний в локальной окрестности х. Тем не менее оно не будет корректным глобально: если удалиться от состояния х слишком далеко, значительно изменив расположение одного или более аэропортов, то множество ближайших городов для этих аэропортов может измениться, и потребуется пересчитать значения Сг Один из способов устранения необходимости иметь дело с непрерывными про- странствами состояний состоит в их ► дискретизации. Например, вместо того чтобы позволить местоположению (хр у) быть любой точкой в непрерывном двух- мерном пространстве, можно ограничить их значения отдельными точками, обра- зующими прямоугольную решетку с шагом 8 (дельта). Тогда вместо бесконечного числа преемников каждое состояние в пространстве будет иметь только 12 преем- ников, каждый из которых соответствует приращению одной из 6 переменных на ± 8. В результате появляется возможность использовать в подобном дискретном пространстве любой из алгоритмов локального поиска, описанных выше. Дру- гой подход — сделать коэффициент ветвления конечным путем случайной выбор- ки состояний-преемников, перемещаясь в случайном направлении на небольшую 2 Для этого раздела необходимо как минимум знакомство с векторами, матрицами и производными (см. приложение А).
величину 8. Методы, в которых прогресс определяется по изменению значения це- левой функции между двумя соседними точками, называются методами ►эмпи- рического градиента. Поиск по эмпирическому градиенту — это то же самое, что и поиск восхождением к вершине по самому крутому склону в дискретизирован- ном пространстве состояний. Уменьшая значение 8 с течением времени, можно получить более точное решение, но при этом схождение к глобальному оптимуму в пределе не гарантируется. Если есть целевая функция, выраженная в математической форме, то можно по- пробовать решить проблему аналитически, а не эмпирически. Существует много методов, предполагающих использование для поиска максимума ► градиента ландшафта. Градиент целевой функции представляет собой вектор V/, позволяю- щий определить величину и направление наиболее крутого склона. Для рассма- триваемой задачи справедливо следующее соотношение: у/ = р/ 5/5/ 5/5/ д/' дх} ’ 5у, ’ дх2 ’ ду2' дх2 ’ 5р3, В некоторых случаях можно найти максимум, решая уравнение У/= 0, но во многих случаях это уравнение не может быть решено в замкнутой форме. Напри- мер, при наличии трех аэропортов выражение для градиента зависит от того, какие города являются ближайшими к каждому аэропорту в текущем состоянии. Это оз- начает, что мы можем вычислить этот градиент локально, но не глобально, напри- мер с помощью следующей формулы: ^ = 2^(х,-хс). (4.2) 0*1 сеС] Имея локально правильное выражение для градиента, можно воспользоваться методом восхождения на вершину по самому крутому склону посредством обнов- ления текущего состояния в соответствии с формулой х <— х +а У/(х), где а (альфа) — небольшая константа, часто называемая ► размером шага. Су- ществует огромное разнообразие методов подбора величины а. Основная пробле- ма состоит в том, что, если значение ос будет слишком мало, потребуется слишком много этапов; а если значение а будет слишком велико, поиск может “перепры- гнуть” через максимум. Попытка преодолеть эту дилемму предпринимается в ме- тоде ►линейного поиска, предусматривающем продолжение поиска в направле- нии текущего градиента (обычно путем многократного удвоения) до тех пор, пока целевая функция/не начнет вновь уменьшаться. Точка, в которой это происходит, становится новым текущим состоянием. Сформировалось несколько научных школ, в которых доминируют разные взгляды на то, каким образом в этой точке следует выбирать новое направление.
Для многих задач наиболее эффективным алгоритмом является почтенный ме- тод ►Ньютона-Рафеона. Это общий метод поиска корней функций, т.е. метод ре- шения уравнений в форме %(х) = 0. Этот алгоритм действует посредством вычис- ления новой оценки для корня х в соответствии с формулой Ньютона: х <- х-%(хУ8'(х). Чтобы найти максимум или минимум/ необходимо найти такое значение х, для которого градиент равен нулевому вектору (т.е. У/(х) = 0). Поэтому функция %(х) в формуле Ньютона принимает вид У/(х) и уравнение обновления состояния мо- жет быть записано в матрично-векторной форме следующим образом: X <- X- Н}'(х)У/(х), где Ну(х) представляет собой ► гессиан (матрицу вторых производных), элементы которогозадаются выражением б2/7бх йх. Например, из уравнения (4.2) для на- шего аэропорта мы можем видеть, что гессиан Н^х) является относительно про- стым: его недиагональные элементы являются нулями, а диагональные элементы для аэропорта / — это просто удвоенное число городов в С/. Расчет момента пока- зывает, что один этап обновления перемещает аэропорт / непосредственно в центр тяжести С, который является минимумом локального выражения для/из уравне- ния (4.1 ).3 Однако для задач большой размерности вычисление п элементов гесси- ана и его инвертирование могут оказаться дорогостоящими, поэтому было разра- ботано множество приближенных версий метода Ньютона-Рафсона. Локальные максимумы, хребты и плато создают затруднения в работе методов локального поиска не только в дискретных, но и в непрерывных пространствах со- стояний. Для преодоления этих затруднений могут применяться алгоритмы с пе- резапуском случайным образом и имитации отжига, которые часто оказываются достаточно полезными. Тем не менее многомерные непрерывные пространства ха- рактеризуются очень большим объемом, в котором легко потеряться. Последней темой является ► оптимизация при ограничениях. Задача опти- мизации называется задачей оптимизации при ограничениях, если ее решения должны удовлетворять некоторым жестким ограничениям на значения каждой пе- ременной. Например, в рассматриваемой задаче с размещением аэропортов можно ввести ограничения, чтобы места для аэропортов находились в пределах Румынии, причем на суше (а не, допустим, в середине озера). Сложность задач оптимиза- ции при ограничениях зависит от характера ограничений и от целевой функции. Наиболее широко известной категорией таких задач являются задачи ► линей- ного программирования, в которых ограничения должны представлять собой 3 В общем случае обновление по методу Ньютона-Рафсона можно рассматривать как подгонку квадратичной поверхности к функции/в точке х, а затем как перемещение не- посредственно к минимуму этой поверхности, что также является минимумом для/, если функция / квадратична.
линейные неравенства, образующие ► выпуклое множество,4 а целевая функция также является линейной. Задачи линейного программирования могут быть реше- ны за время, полиномиально зависящее от количества переменных. Линейное программирование, вероятно, является наиболее широко изученным и наиболее полезным методом оптимизации. Оно является особым случаем в бо- лее общей задаче ► выпуклой оптимизации, в которой ограничивающая область может быть любой выпуклой областью, а целевая функция может быть любой об- ластью, являющейся выпуклой в пределах области ограничений. При определен- ных условиях задачи выпуклой оптимизации также разрешимы за полиномиаль- ное время и на практике могут допускать наличие тысяч переменных. Несколько важных задач в теории машинного обучения и управления могут быть сформули- рованы как задачи выпуклой оптимизации (см. главу 20). 4.3. Поиск с недетерминироваиными действиями В главе 3 проблемная среда предполагалась полностью наблюдаемой, детерми- нированной и известной. В такой среде агент может воспринять и изучить исход- ное состояние, вычислить последовательность действий, приводящих к цели, а за- тем выполнять эти действия с “закрытыми глазами”, больше не пользуясь своим восприятием. Однако, когда среда лишь частично наблюдаема, агент не знает наверняка, в ка- ком состоянии он находится; а если среда еще и недетерминированная, агент не знает и того, в какое состояние он перейдет после выполнения некоторого дей- ствия. Это означает, что вместо того, чтобы утверждать: “я нахожусь в состоянии 5р и если я выполню действие а, то окажусь в состоянии $2”, агент теперь будет вынужден полагать: “я в состоянии либо либо 5 , и если я выполню действие а, я окажусь в состоянии $2,54 или 55”. Назовем множество физических состояний, ко- торые, по мнению агента, являются возможными, ► доверительным состоянием. В частично наблюдаемых и недетерминированных средах решение задачи не является больше некоторой последовательностью действий; скорее это ►услов- ный план (иногда называемый планом действий в непредвиденных обстоятель- ствах или стратегией), который определяет, что следует делать в зависимости от того, какие восприятия поступают агенту во время выполнения плана. В этом раз- деле будет рассмотрено поведение агента в недетерминированной среде, а в следу- ющем — в частично наблюдаемой. 4 Множество точек 5 является выпуклым, если линии, соединяющие его любые две точки, также содержится в 5. Выпуклая функция является такой функцией, для которой пространство “над” ней образует выпуклое множество. По определению выпуклые функ- ции не имеют локальных (в отличие от глобальных) минимумов.
4.3.1. Непредсказуемый мир пылесоса Мир пылесоса, рассматривавшийся в главе 2, имел восемь возможных состо- яний, как показано на рис. 4.9. В нем возможны три действия — Ш^к1 (вправо), Ьер (влево) и 8иск (убрать), — а целью является уборка всего мусора (состояния 7 и 8). Если среда полностью наблюдаема, детерминирована и известна, то задача легко решается с помощью любого из алгоритмов, обсуждавшихся в главе 3, и ре- шение представляет собой четкую последовательность действий. Например, если исходным является состояние 1, то выполнение последовательности действий \8иск. 8иск] приведет мир в целевое состояние 8. Теперь предположим, что пылесос в этом мире стал более мощным, но при этом иногда может вести себя неожиданным образом, создавая непредвиденные ситуации, а значит, этот мир стал недетерминированным. В непредсказуемом мире пылесоса действие 8иск работает следующим образом. • При выполнении в квадрате с мусором это действие убирает мусор в данном квадрате, а иногда еще и в соседнем. • При выполнении в чистом квадрате после этого действия на ковре иногда остается немного мусора.5 Рис. 4.9. Восемь возможных состояний мира пылесоса, где состояния 7 и 8 являются целевыми 5 Авторы предполагают, что большинство читателей сталкивались с подобными про- блемами и могут посочувствовать нашему агенту. Они приносят свои извинения тем вла- дельцам современных и эффективных чистящих приборов, которые не могут оценить преимуществ использования этого педагогического устройства.
Для того чтобы предоставить более точную формулировку этой задачи, необ- ходимо обобщить понятие функции определения преемника из главы 3. Вместо определения этого понятия как функции КЕ81ЛТ, всегда возвращающей одно ре- зультирующее состояние, мы теперь определим его как функцию КЕ81Л.Т8, возвра- щающую множество возможных результирующих состояний. Например, в мире непредсказуемого пылесоса действие 8иск в состоянии 1 может убрать мусор либо только в текущем местоположении, либо сразу в обоих местоположениях: Кезеегз (1,8иск) ={5,7}. Таким образом, если исходным является состояние 1, нет единственной фиксиро- ванной последовательности действий, позволяющей решить задачу, но следую- щий условный план позволяет это сделать: \8иск, И8(а1е = 5 (Ьеп [№%№, 8иск\ е!яе [ ]]. (4.3) Отсюда видно, что условный план может содержать этапы И-Леп-еке; а это означает, что решения являются деревьями, а не последовательностями. В этом случае условие в операторе И предназначено для проверки, каким является теку- щее состояние, оно должно представлять собой что-то, что агент может наблюдать во время выполнения плана, но еще не знал при его составлении. В качестве аль- тернативы можно предложить формулировку, использующую проверку восприя- тия агента, а не состояния. Многие задачи в реальном, физическом мире явля- ются задачами, предполагающими непредвиденные ситуации, поскольку точное предсказание будущего просто невозможно. Именно поэтому многие люди даже во время прогулки внимательно следят за происходящим вокруг. 4.3.2. Деревья поиска И-ИЛИ Как же найти эти условные решения недетерминированных задач? Как и в гла- ве 3, начнем с создания деревьев поиска, но в этом случае деревья имеют иной характер. В детерминированной среде ветвление происходит только в результате собственного выбора агента в каждом состоянии: “Я могу выполнить это или то действие”. Назовем такие узлы ►ИЛИ-узлами. Например, в мире пылесоса агент в ИЛИ-узле выбирает между действиями Ье/( или №%№, или 8иск. В недетерми- нированной среде ветвление также возникает в результате выбора, но теперь уже выбора результата каждого действия окружающей средой. Назовем такие узлы ► И-узлами. Например, выполнение действия 8иск в состоянии 1 дает результат в виде доверительного состояния {5, 7}, поэтому агент должен сформировать ус- ловный план для состояний 5 и 7. Эти два вида узлов чередуются, приводя к обра- зованию ► И-ИЛИ-дерева, как показано на рис. 4.10. Решением задачи поиска в дереве И-ИЛИ является такое поддерево в полном дереве поиска, в котором 1) каждый лист является целевым узлом; 2) выбирается одно действие в каждом из его ИЛИ-узлов; и 3) включена каждая исходящая ветвь
во всех его И-узлах. Решение, представленное на рис. 4.10 утолщенными линиями, соответствует плану, приведенному в уравнении (4.3). Рис. 4.10. Первые два уровня дерева поиска для непредсказуемого мира пылесоса. Узлы состояния являются ИЛИ-узлами, в которых агент должен выбрать какое-то действие. В И-узлах, показанных на рисунке в виде кружков, каждый возможный результат действия должен быть обработан, что подчеркивается дугами, соединя- ющими исходящие их этих узлов ветви. Пути к решению показаны утолщенными линиями На рис. 4.11 представлен рекурсивный алгоритм поиска в глубину, реализую- щий поиск по графу И-ИЛИ. Ключевым аспектом этого алгоритма является спо- соб, используемый для работы с циклами, часто возникающими в недетермини- рованных задачах (например, если действие иногда не дает никакого результата или если непреднамеренно полученный эффект может быть исправлен). Если те- кущее состояние идентично некоторому состоянию на пути к нему от корня, то алгоритм возвращает ошибку. Это не означает, что для текущего состояния не су- ществует решения; это лишь означает, что если нециклическое решение суще- ствует, оно должно быть достижимо из предыдущего воплощения текущего со- стояния, а значит, его новое воплощение может быть отброшено. Благодаря этой
проверке можно гарантировать, что алгоритм обязательно завершит свою работу в любом конечном пространстве состояний, поскольку каждый путь должен либо достичь цели, либо привести в тупик, либо вернуться к уже пройденному состо- янию. Обратите внимание, что алгоритм не проверяет, является ли текущее со- стояние повторением состояния на каком-то ином пути от корня, что очень важно для его эффективности. ГипсНоп Амо-Ок-8ЕАКСН(ргой/ет) геГигпз условный план или/аПиге геСигп Ок-8ЕАЯСН(ргой/ет,ргой/ет.1м1Т1АЕ, []) ГипсНоп Ок-8ЕАКСН(рго5/ет, $1а1е,ра1к) геГигпз условный план или/аПиге КргоЫетЛ$-Соль(Ма1е) 1Ьеп геШгп пустой план И 18-СтсьЕ(ра/й) Шеп геШгп/аПиге Гог еасЬ асПоп шргоЫетЛСТ1О№(з1а1е) до р1ап <— Амо-$ЕАКСН(рго67ет, КЕ8иьт8(5/а/е, асНоп), [Ма!е] + ра!к]) Ир1ап Ф /аПиге Шеп геШгп [асНоп] + р1ап\ геШгп /аПиге ГипсНоп Амо-8ЕАКСН(рго5/ет, $1а1е$,ра1к) геГигпз условный план или/аПиге Гог еасЬ 5,ш з1а1ез до р1аП} <— Оя-8ЕАКСН(ргой/ет, $},ра1к) 1Гр1ап, =/аПиге Шеп геГигп/аПиге геШгп рГ51 Шепр1ап\ еке И52 Шепр1ап2 еке ... 1Г5„_ 1 Шепр1апп_\ екер1апД Рис. 4.11. Алгоритм поиска в графах И-ИЛИ, генерируемых в недетерминирован- ных средах. Решение представляет собой условный план, учитывающий каждый не- детерминированный результат и включающий план для каждого из них Для поиска в графах И-ИЛИ могут также использоваться алгоритмы поиска в ширину и жадного поиска по первому наилучшему совпадению. Что касается кон- цепции эвристической функции, то ее потребуется модифицировать так, чтобы она оценивала стоимость условного решения, а не последовательности действий, но при этом требование о ее допустимости сохраняет свою силу. Отметим, что суще- ствует аналог алгоритма поиска А*, позволяющий находить оптимальные решения (см. библиографические примечания в конце главы). 4.3.3. Попробуйте, попробуйте и еще раз попробуйте Рассмотрим ненадежный мир пылесоса, который ничем не отличается от обыч- ного (не непредсказуемого) мира пылесоса за исключением того, что действия пе- ремещения иногда терпят неудачу и агент остается на том же месте. В таком мире, например, действие в состоянии 1 приводит к доверительному состоянию
{1,2}. На рис. 4.12 показана часть графа поиска для этого мира. Очевидно, что в этом случае больше нет никаких нециклических решений из состояния 1, а сле- довательно, И-ИЛИ-поиск никогда не завершится успешно. Существует, однако, ► циклическое решение, которое заключается в том, чтобы продолжать попытки выполнить действие Ш^к^ пока оно не сработает. Это можно выразить с помощью новой конструкции чфЪПе: [8иск, тсЬНе 81а1е = 5 до Ш^к1.8иск\ или добавив метку для обозначения некоторой части плана, а затем сославшись на эту метку: [8иск, Ьх: И81а1е = 5 Леи Ьх еке 8иск\. Рис. 4.12. Часть поискового графа для ненадежного мира пылесоса, на которой наглядно представлены (некоторые) возможные циклы. Все решения этой задачи — циклические планы, поскольку надежного пути в этом мире не существует Когда циклический план является решением? Минимальное условие состоит в том, что каждый листовой узел дерева поиска должен представлять целевое состо- яние и при этом должен быть достижимым из любой точки в плане. В дополнение к этому следует рассмотреть причину недетерминированности среды. Если это ус- ловие возникает из-за того, что механизм передвижения робота-пылесоса боль- шую часть времени успешно работает, но иногда случайным образом и по незави- сящей от робота причине проскальзывает, то агент может быть уверен, что если повторять действие достаточное число раз, то в конце концов оно сработает и план
будет выполнен. Но если недетерминированность возникает из-за какого-то нена- блюдаемого события в окружающей робота среде, — например, лопнул ремень привода и робот вообще утратил возможность перемещаться, — то простое повто- рение действия ему уже не поможет. Один из вариантов пояснить последнее утверждение — указать на то, что в этой ситуации от исходной формулировки задачи (полностью наблюдаемая, не- детерминированная) приходится отказаться в пользу другой формулировки (ча- стично наблюдаемая, детерминированная), при которой провал циклического пла- на приписывается ненаблюдаемому свойству приводного ремня. В главе 12 мы обсудим, как прийти к заключению, какая из нескольких неопределенных возмож- ностей более вероятна. 4,4. Поиск в частично наблюдаемых средах Теперь мы обратимся к задачам с частичной наблюдаемостью, когда восприя- тия агента недостаточно, чтобы получить точное представление о состоянии. Для нас это означает, что некоторые действия агента будут направлены на уменьшение неопределенности в отношении текущего состояния. 4.4.1. Поиск без наблюдения Когда восприятие агента вообще не предоставляет ему информации, мы ока- зываемся в ситуации, которая называется ► бессенсорной задачей (или задачей ► соответствия). На первый взгляд может показаться, что у бессенсорного агента нет шансов найти решение поставленной ему задачи, если он не имеет представ- ления о том, в каком состоянии начинает действовать, тем не менее бессенсорные решения на удивление распространены и полезны, в первую очередь потому, что они не полагаются на правильно работающие датчики. Например, в промышлен- ных системах разработано множество изобретательных методов правильной ори- ентации деталей из неизвестной начальной позиции посредством использования некоторой последовательности действий вообще без какого-либо контроля. Ино- гда бессенсорный план оказывается лучше даже при наличии условного плана и возможности анализа ситуации. Например, врачи часто назначают пациентам ан- тибиотик широкого спектра действия вместо условного плана, предусматриваю- щего взятие анализа крови, ожидание его результатов и последующее назначение антибиотика направленного действия. Бессенсорный план экономит время и день- ги, а также снижает риск ухудшения состояния больного, пока будут доступны ре- зультаты анализов. Рассмотрим бессенсорную версию (детерминированного) мира пылесоса. Предположим, что агент знает географию мира, но не имеет сведений о своем ме- стоположении и распределении в нем мусора. В этом случае его начальное дове- рительное состояние будет {1, 2, 3, 4, 5, 6, 7, 8} (см. рис. 4.9). Теперь, если агент
выполнит действие он окажется в одном из состояний {2, 4, 6, 8}, — как ви- дите, агент получил некоторую информацию без восприятия чего-либо! Выполнив последовательность действий 8иск], агент всегда будет находиться в одном из состояний {4, 8}. И наконец, выполнив последовательность действий 8иск, Ье/1, 8иск}, он гарантированно достигнет целевого состояния 7 независимо от его начального состояния. В этом случае говорят, что агент может ► принуди- тельно перевести мир в состояние 7. Для бессенсорной задачи решение представляет собой последовательность дей- ствий, а не условный план (ведь у агента нет ничего воспринимающего), но поиск проводится в пространстве доверительных, а не физических состояний.6 В про- странстве доверительных состояний задача полностью наблюдаема, поскольку агент всегда знает свое доверительное состояние. Более того, для бессенсорной задачи решение (если таковое имеется) будет представлять собой последователь- ность действий. Так происходит потому, что, как и в обычных задачах из главы 3, восприятие, полученное после каждого действия, будет полностью предсказуе- мым — оно всегда будет пустым! Следовательно, оно свободно от любых непред- виденных обстоятельств, которые необходимо учитывать в плане. И это справед- ливо, даже если среда является недетерминированной. Можно было бы разработать новые алгоритмы специально для бессенсорных задач поиска Тем не менее вполне возможно использовать и существующие алго- ритмы, обсуждавшиеся в главе 3, если трансформировать лежащую в их основе физическую задачу в задачу доверительных состояний, когда поиск ведется сре- ди доверительных, а не физических состояний. Если физическая задача (обозна- чим ее как Р) имела такие компоненты, как действия Ас1юп8р, результаты Кези11р и другие, то задача доверительных состояний будет иметь следующие компоненты. • Состояния. Пространство доверительных состояний содержит все возмож- ные подмножества существующих физических состояний. Если задача Р имеет состояний, то задача доверительных состояний будет иметь 1" до- верительных состояний, хотя многие из них могут оказаться недоступными из исходного состояния. • Начальное состояние. Как правило, в начальном состоянии доверительное состояние будет включать все возможные состояния задачи Р, хотя в некого рых случаях агент может иметь больше знаний, чем в простейшем случае. • Действия. Здесь все сложнее. Предположим, что агент находится в довери- тельном состоянии Ь = {$р 52}, но АСТЮКЗ/^) ф АСТЮМ8Р(52). Тогда агент не знает, какое из действий будет допустимым. Если предположить, что недо пустимые действия не оказывают влияния на окружающую среду, то будет 6 В полностью наблюдаемой среде каждое доверительное состояние содержит одно физическое состояние. Следовательно, алгоритмы из главы 3 можно рассматривать как поиск в пространстве доверительных состояний, образованных из одноэлементных дове- рительных состояний.
безопасно взять объединение всех действий в любом из физических состоя- ний в текущем доверительном состоянии Ь: АСТЮ№ (Ь) = Ц1 АсПОМЗр (5). зеЬ С другой стороны, если недопустимое действие может привести к катастро- фе, то безопаснее разрешить только пересечение, т.е. набор действий, до- пустимых во всех состояниях. Для мира пылесоса каждое состояние имеет одинаковый набор допустимых действий, поэтому оба эти метода дают один и тот же результат. • Функция определения преемника. Для действий в детерминированной среде новое доверительное состояние будет включать по одному результи- рующему состоянию для каждого из состояний, возможных на текущий мо- мент (хотя некоторые результирующие состояния могут оказаться одними и теми же): У = КеЗЦЬТ (Ь, а) = {§': з' = КЕЗиьтДл, а) и з 6 Ь}. (4.4) В недетерминированной среде новое доверительное состояние включает все возможные результаты применения действия к любому из состояний в теку- щем доверительном состоянии: У = КЕ81ЛТ(/>, а) = {§': з' е КЕ8иьт8р(5, а) и з е Ь} = - КЕ8ЦЬТ8р(5,а). зеЬ Для действий в детерминированной среде новое доверительное состояние У по размеру будет таким же или меньше, чем Ь, но может оказаться больше Ь для действий в недетерминированной среде (рис. 4.13). • Проверка цели. Агент, возможно, достигает цели, если некоторое состо- яние 5 в доверительном состоянии дает удовлетворительный результат при выполнении проверки достижения целевого состояния основной задачи, 18- ОоаьДл). Агент обязательно достигает цели, если каждое состояние удов- летворяет 18-6оаьр(5). Мы стремимся обязательно достичь цели. • Стоимость действия. Это тоже непростой вопрос. Если одно и то же дей- ствие может иметь разную стоимость в разных состояниях, то стоимость выполнения действия в заданном доверительном состоянии может иметь несколько разных значений. (Это порождает новый класс задач, который рассматривается в упражнении 4.7.) Пока мы будем полагать, что стоимость действия является одной и той же во всех состояниях и поэтому может быть взята непосредственно из базовой физической задачи. На рис. 4.14 показано пространство достижимых доверительных состояний для детерминированного бессенсорного мира пылесоса. Существует только 12 дости- жимых доверительных состояний из 28 = 256 возможных доверительных состояний.
Рис. 4.13. а) Прогноз следующего доверительного состояния для бессенсорного мира пылесоса при выборе детерминированного действия б) Прогноз для того же самого доверительного состояния и действия в ненадежном бессенсорном мире пылесоса Предыдущие определения позволяют автоматически строить формулировку задачи доверительных состояний из определения лежащей в основе физической задачи. Как только это будет сделано, мы сможем решать бессенсорные задачи с помощью любого из обычных алгоритмов поиска, обсуждавшихся в главе 3. При обычном поиске по графу вновь достигнутые состояния проверяются, что- бы определить, были ли они достигнуты ранее. Это правило работает и в случае доверительных состояний. Например, на рис. 4.14 последовательность действий [8иск, Ье/1, 8иск], выполненная из начального состояния, приводит к тому же до- верительному состоянию, что и последовательность Ье/1,8иск], а именно {5, 7}. А теперь рассмотрим доверительное состояние, достигаемое после выпол- нения действия а именно {1, 3, 5, 7}. Очевидно, что оно не идентично со- стоянию {5, 7}, но это его надмножество. Мы можем отбросить (обрезать) любое такое доверительное состояние-надмножество. Почему? Потому что решение, до- стигнутое из состояния {1, 3, 5, 7}, должно быть решением и для каждого из от- дельных состояний 1, 3, 5 или 7, а значит, оно является решением и для любой комбинации этих отдельных состояний, например {5,7}. Для нас это означает, что нет необходимости пытаться решить задачу для доверительного состояния {1,3, 5, 7} и можно сосредоточиться на попытке решить задачу для существенно более простого доверительного состояния {5, 7}. И наоборот, если доверительное состояние {1, 3, 5, 7} уже было сгенерировано и признано разрешимым, то любое подмножество его элементов, например {5,7}, также гарантированно будет разрешимым. (Если есть решение, применимое для состояния, вызвавшего у меня значительное беспокойство, оно будет применимо и для состояний, вызывающих меньшее беспокойство.) Такой дополнительный
уровень обрезки может существенно повысить эффективность решения бессен- сорной задачи. Рис. 4.14. Достижимая часть пространства доверительных состояний для детер- минированного бессенсорного мира пылесоса. Каждый темно-серый прямоуголь- ник представляет одно из доверительных состояний, а входящие в него физические состояния представлены светлыми прямоугольниками. В любой заданный момент агент находится в известном ему доверительном состоянии, но не знает, в каком из образующих его физических. Начальное доверительное состояние (полная неиз- вестность) — центральный прямоугольник в верхнем ряду Однако даже с подобным улучшением решение бессенсорных задач в том виде, в каком мы его описали, редко осуществимо на практике. Одна из проблем состо- ит в обширности пространства доверительных состояний — в предыдущей главе было показано, что часто пространство поиска размером оказывается слишком большим, а в данном случае мы имеем дело с поиском в пространстве размером 2Л/.
Более того, каждый элемент в этом пространстве поиска представляет собой мно- жество компонентов размерностью до IV. Поэтому при больших значениях мо- жет оказаться просто невозможно представить даже одно доверительное состоя- ние без выхода за пределы доступной памяти. Одно из решений состоит в том, чтобы представить доверительное состояние как можно более компактным описанием. Говоря обычным языком, можно было бы, например, выбрать следующие формулировки: в начальном состоянии о своем состоянии агент не знает “Ничего”; после выполнения действия Ье/1 он уже может утверждать, что находится “Не в правом столбце”, и т.д. Как сделать это согласно формальной схеме представления, рассказывается в главе 7. Другой подход состоит в том, чтобы отказаться от стандартных алгоритмов поиска, рассматривающих доверительные состояния как черные ящики, подоб- но любому другому состоянию задачи. Вместо этого можно заглянуть внутрь до- верительных состояний и разработать алгоритмы ► инкрементного поиска в доверительных состояниях, которые строят решение по одному физическому состоянию за раз. Так, например, в бессенсорном мире пылесоса начальное до- верительное состояние — {1, 2, 3, 4, 5, 6, 7, 8} и требуется найти последователь- ность действий, которая будет работать во всех восьми его физических состояни- ях. Можно достичь этой цели, сначала отыскав решение для первого состояния, а затем проверить, будет ли оно работать для второго. Если нет, то нужно будет вернуться и найти другое решение для состояния 1 и т.д. Подобно тому, как в случае И-ИЛИ-поиска требуется найти решение для ка- ждой ветви, исходящей из И-узла, этот алгоритм должен отыскать решение для каждого состояния в доверительном состоянии. Разница лишь в том, что при И- ИЛИ-поиске допускается находить разные решения для каждой из ветвей, а при инкрементном поиске в доверительных состояниях необходимо найти одно реше- ние, которое будет работать для всех состояний. Основное преимущество инкрементного подхода заключается в том, что чаще всего обнаружить отсутствие решения можно достаточно быстро: если довери- тельное состояние неразрешимо, обычно имеет место ситуация, когда небольшое подмножество из нескольких его первых исследованных состояний также оказыва- ется неразрешимым. В некоторых случаях это приводит к ускорению, пропорцио- нальному размеру доверительных состояний, которые сами по себе могут быть та- кими же обширными, как и пространство физических состояний. 4.4.2. Поиск в частично наблюдаемых средах Многие задачи невозможно решить без какого-либо восприятия. Например, бессенсорный вариант головоломки Восемь невозможен. С другой стороны, вос- приятие даже небольшого объема информации может оказать большое влияние на результат, головоломку Восемь можно решить, если видеть только плитку в верх- нем левом углу. Решение заключается в перемещении каждой плитки по очереди
в видимый квадрат с последующим отслеживанием ее местоположения начиная с этого момента. Для задач в частично наблюдаемой среде цель спецификации состоит в опре- делении функции РЕКСЕРТ(л), возвращающей восприятие, получаемое агентом в данном состоянии. Если восприятие не является полностью детерминированным, можно использовать функцию РЕКСЕРТ8, возвращающую множество возможных восприятий. Для задач в полностью наблюдаемых средах Рексерт(л) = 5 для любо- го состояния 5, а для бессенсорных задач Рексерт($) = пи11. Рассмотрим мир пылесоса с локальным восприятием, в котором агент имеет датчик положения, возвращающий восприятие Ь в левом квадрате и К — в правом, а также датчик мусора, возвращающий восприятие Э1г1у при наличии мусора и С1еап, если в квадрате чисто. Таким образом, функция Рексерт в состоянии 1 воз- вращает значение Э1г1у]. В случае частично наблюдаемых сред обычно быва- ет так, что в нескольких состояниях восприятие будет одним и тем же, например в состоянии 3 восприятие также будет [Ь, Э1г1у]. Следовательно, при наличии тако- го начального восприятия начальное доверительное состояние агента будет {1,3}. В частично наблюдаемых средах функцию определения преемника в пространстве доверительных состояний можно представить как выполняющуюся в три этапа, как показано на рис. 4.15. • На этапе прогнозирования вычисляется доверительное состояние, достига- емое в результате выполнения действия, КЕ8иьт(/>, а), — точно так, как это делается при решении бессенсорных задач. Чтобы подчеркнуть, что резуль- тат этих вычислений является лишь прогнозом, оценкой, будем использо- вать обозначение Ь = КЕ8иьт(/>, а), где “шапочка” над Ь означает “оценка”, а также воспользуемся записью РКЕО1СТ(/>, а) как синонимом для КЕ8иьт(/>, а). • На этапе определения возможного восприятия вычисляется множество ва- риантов восприятия, которые могут быть наблюдаемы в прогнозируемом до- верительном состоянии (для представления восприятия будем использовать обозначение о): Р0881ВЬЕ-Рексерт8(2> ) = {о : о = РексертС?) и 5 е Ъ}. • На этапе обновления для каждого возможного восприятия вычисляется доверительное состояние, определяемое этим восприятием. Обновленное доверительное состояние Ъо представляет собой множество состояний в Ъ, в которых может быть получено это восприятие: Ьо = 11роате(/) , о) = {5 : о = Рексерт(л) и $ е Ъ}. При планировании агенту приходится иметь дело с возможными восприя- тиями, поскольку он не знает, каким будет реальное восприятие, пока не вы- полнит план. Обратите внимание, что недетерминированность физической среды приводит к увеличению размера доверительного состояния на этапе
прогнозирования, но каждое обновленное доверительное состояние Ъо всег- да будет не больше прогнозируемого доверительного состояния 8, посколь- ку наблюдение может лишь уменьшить неопределенность. Более того, в де- терминированной среде доверительные состояния для разных восприятий не пересекаются, образуя независимые сегменты в исходном прогнозируе- мом доверительном состоянии. Рис. 4.15. Два примера переходов в мире пылесоса с локальным восприятием, а) В детерминированном варианте такого мира в начальном доверительном состоя- нии выполняется действие что приводит к новому прогнозируемому довери- тельному состоянию из двух возможных физических состояний; для этих состояний возможными вариантами восприятия являются [Я, Пгг1у] и [Я, С1еап], что опреде- ляет два новых доверительных состояния, каждое из которых включает по одному физическому, б) В ненадежном мире пылесоса при выполнении в начальном дове- рительном состоянии действия новое прогнозируемое доверительное состоя- ние будет включать четыре физических состояния; для этих доверительных состоя- ний возможными вариантами восприятия являются [Ц Ои1у\, [Я, Ои1у\ и [Я, С1еап\, что приводит к трем новым доверительным состояниям, как показано на рисунке
Собрав все три этапа в одно целое, можно, исходя из заданного действия, опре- делить возможное доверительное состояние и возможные результирующие вос- приятия: КЕ811ЕТ8(Л, а) = {Ьо I Ьо = иРОАТЕ(РКЕО1СТ(Л, а), о) И О € РО881ВЬЕ-РЕКСЕРТ8(РКЕО1СТ(Л, а))}. (4.5) 4.4.3. Решение задач в частично наблюдаемой среде В предыдущем разделе было показано, как вывести функцию КЕ81ЛТ8 для до- верительного состояния недетерминированной задачи из той физической задачи, на которой она основана, при заданной функции Рексерт. Если воспользоваться этой формулировкой, алгоритм поиска И-ИЛИ, представленный на рис. 4.11, мо- жет быть применен непосредственно для получения решения. На рис. 4.16 по- казана часть дерева поиска для частично наблюдаемого мира пылесоса в пред- положении, что начальное восприятие — [А, Э1г1у\. Решение представляет собой условный план: [$иск, 1ГВ$1а1е = {6} €Ьеп 8иск еке [ ]]. Обратите внимание: поскольку алгоритму поиска И-ИЛИ была передана задача, сформулированная в доверительных состояниях, он вернул условный план, также проверяющий доверительное, а не действительное состояние. Так и должно быть: в частично наблюдаемой среде агент не будет знать, что представляет собой фак- тическое состояние. Рис. 4.16. Первый уровень дерева И-ИЛИ-поиска для задачи в частично наблюдае- мом мире пылесоса; первое действие в решении — 8иск
Как и в случае применения стандартных алгоритмов поиска для решения бес- сенсорных задач, алгоритм И-ИЛИ-поиска воспринимает доверительные состо- яния как черные ящики, — как и любые другие состояния. Можно улучшить эту ситуацию, проверяя, являются ли ранее сформированные доверительные состоя- ния подмножествами или надмножествами для текущего состояния, так же как и в случае бессенсорных задач. Можно также вывести алгоритмы инкрементного поиска, аналогичные описанным выше для бессенсорных задач и обеспечиваю- щие существенное ускорение расчетов в сравнении с вариантом работы с черны- ми ящиками. 4.4.4. Агент для частично наблюдаемых сред Агент для частично наблюдаемых сред формулирует задачу, применяет алго- ритм поиска (такой, как И-ИЛИ-поиск) для ее решения и выполняет найденное решение. Между этим агентом и агентом для полностью наблюдаемых детерми- нированных сред имеются два основных различия. Во-первых, решение будет представлять собой условный план, а не последовательность конкретных дей- ствий, и чтобы выполнить входящие в него //-/Леи-е/$е-выражения, агенту потре- буется проверять текущее состояние и выполнять соответствующую ветвь усло- вия. Во-вторых, агенту необходимо поддерживать свое доверительное состояние, пока он выполняет действия и получает восприятия. Этот процесс напоминает процедуру прогнозирования-наблюдения-обновления в уравнении (4.5), но на са- мом деле он проще, так как восприятие будет определяться окружающей средой, а не рассчитываться агентом. При начальном доверительном состоянии 6, дей- ствии а и восприятии о новое доверительное состояние определяется так: Ь' = 11Р0АТЕ(РКЕ01СТ(й, а), о). (4.6) Рассмотрим вариант мира пылесоса в детском саду, в котором агенты воспри- нимают состояние только своего текущего квадрата и мусор в каждом квадрате может появиться когда угодно, если только агент не чистит его непосредственно в этот момент.7 На рис. 4.17 показано доверительное состояние, которое поддержи- вается в этой среде. В частично наблюдаемых средах, к которым относится абсолютное большин- ство сред в реальном мире, поддержание своего доверительного состояния явля- ется основной функцией любой интеллектуальной системы. Этой функции можно давать различные названия: ► мониторинг, ► фильтрация или ► оценка состоя- ния, но суть остается неизменной. Уравнение (4.6) называют формулой рекурсив- ной оценки состояния, поскольку новое доверительное состояние в нем вычисля- ется на основе предыдущего вместо анализа всей последовательности восприятий. Чтобы агент не отставал от происходящего, вычисления должны выполняться как 7 Как обычно, приносим извинения тем, кто не знаком с влиянием маленьких детей на окружающую среду.
минимум с той же скоростью, с которой поступают данные восприятия. По мере усложнения среды у агента может оказаться достаточно времени только на то, что- бы лишь приблизительно просчитать доверительное состояние, возможно, сфо- кусировав все внимание исключительно на результатах восприятия тех аспектов среды, которые интересуют его в данный момент. Большая часть работы по этой проблеме была проведена для стохастических, непрерывных сред с использовани- ем тех средств теории вероятности, которые обсуждаются в главе 14. Рис. 4.17. Два цикла прогнозирования-обновления с локальным восприятием для поддержания доверительного состояния в мире пылесоса в детском саду В этом разделе рассматривается пример функционирования агента в дискрет- ной среде с детерминированными датчиками и недетерминированными действи- ями. Речь пойдет о роботе с конкретной задачей оценки состояния, называемой ► локализация, т.е. определение того, где он находится, при наличии карты мира и известной ему последовательности восприятий и действий. Итак, робот нахо- дится в среде, представляющей собой лабиринт, показанный на рис. 4.18. Он осна- щен четырьмя сонарными датчиками, сообщающими, есть ли перед ними препят- ствие — внешняя стена или темный квадрат (см. рисунок), — в каждом из четырех географических направлений. Восприятие представляется в форме вектора из че- тырех битов, по одному для каждого из направлений (север, восток, юг и запад), расположенных в указанном порядке. Следовательно, восприятие 1011 означает, что имеются препятствия на севере, юге и западе, а на востоке их нет. Предполагается, что датчики предоставляют корректные данные и что робот имеет правильную карту окружающей среды. Но, к сожалению, навигационная си- стема робота сломана, поэтому, выполняя действие (вправо), он случайным образом перемещается на один из соседних квадратов. Задача робота — опреде- лить его текущее местоположение. Предположим, что робот был только что включен и абсолютно не знает, где он находится, поэтому его начальное доверительное состояние представляет собой множество всех местоположений на карте. Далее робот получает восприятие 1011
и выполняет обновление, воспользовавшись уравнением Ьо = иР0АТЕ(Ю11), полу- чив в результате 4 местоположения, показанные на рис. 4.18, а. Советуем вам вни- мательно осмотреть лабиринт и убедиться, что в нем есть всего четыре местопо- ложения, позволяющие получить восприятие 1011. а) Возможные местоположения робота после получения восприятия Е] = 1011 б) Возможные местоположения робота после получения восприятий Еч = 1011, Е2 = 1010 Рис. 4.18. Большими кружками указаны возможные местоположения робота: а) после получения первого восприятия, Ех = 1011, и б) после его перемещения на один ква- драт и получения второго восприятия, Е2 = 1010. Если датчики надежны и функция определения преемника точна, существует только одно местоположение, в котором может оказаться робот в соответствии с этой последовательностью двух восприятий Затем робот выполняет действие однако результат его выполнения яв- ляется недетерминированным, поэтому новое доверительное состояние, Ъа = Ркев1СТ(6о, включает все те местоположения, которые находятся на рассто- янии одного шага в любую сторону от местоположения в Ьо. Получив второе вос- приятие, 1010, робот просчитывает функцию 11рвате(/>о, 1010) и обнаруживает, что доверительное состояние свернулось до единственного местоположения, показан- ного на рис. 4.18, б. В данном лабиринте это единственное местоположение, кото- рое может быть обнаружено в результате вычисления функции иРВАТЕ(РКЕВ1СТ(иРВАТЕ(/>, 1011), 1010).
При недетерминированности действий функция РКЕО1СТ на этапе прогнози- рования расширяет доверительное состояние, однако функция Проате на этапе обновления вновь сокращает его — до тех пор, пока восприятия предоставляют некоторую полезную для идентификации местоположения информацию. В некото- рых случаях восприятия могут предоставлять недостаточно данных для эффектив- ной локализации. Если в лабиринте имеется один или более коридоров, вытянутых в направлении “восток-запад”, то робот может получать длинную последователь- ность восприятий 1010, не позволяющую уточнить, где именно он находится в та- ком коридоре (а если их несколько, то и в каком из них). Но для сред с разумными изменениями в географии процессы локализации часто быстро сходятся к един- ственной точке, даже если действия робота будут недетерминированными. А что произойдет, если неисправными будут и датчики? Если рассуждать, используя только булеву логику, то в этой ситуации необходимо рассматривать каждый бит восприятия либо как правильный, либо как неправильный, что в ко- нечном счете то же самое, что вообще не получать какой-либо информации вос- приятия. Однако в главе 12 будет показано, что вероятностные рассуждения позволяют извлечь полезную информацию и из данных, поступающих от неис- правного датчика, по крайней мере до тех пор, пока он ошибается менее чем в половине случаев. 4.5. Поисковые агенты, действующие в оперативном режиме, и неизвестные варианты среды До сих пор речь шла только о таких агентах, в которых использовались алго- ритмы ► поиска в автономном режиме. Эти агенты вычисляют полное решение, прежде чем предпринять первое действие. В противоположность этому агент, вы- полняющий ► поиск в оперативном режиме, функционирует по методу чередо- вания вычислений и действий: вначале предпринимает действие, а затем анали- зирует состояние среды и вычисляет следующее действие. Поиск в оперативном режиме целесообразно применять в динамических или полудинамических средах, где есть возможность получения штрафа за то, что агент ведет себя пассивно и вы- числяет свои действия слишком долго. Поиск в оперативном режиме также будет полезен в недетерминированных средах, поскольку это позволит агенту сосредо- точить свои вычислительные усилия на непредвиденных обстоятельствах, кото- рые действительно имеют место, а не на тех, которые могут произойти, но, веро- ятно, не произойдут. Конечно, здесь необходим компромисс: чем больше агент планирует наперед, тем реже он будет попадать в затруднительное положение. В неизвестном окруже- нии, когда агент не знает, какие состояния среды существуют и к чему могут при- вести его действия, он должен воспринимать свои действия как эксперименты, на- правленные на изучение окружающей среды.
Каноническим примером применения поиска в оперативном режиме может служить ► задача отображения: робот находится в неизвестном здании и должен его исследовать, чтобы составить карту, которую затем сможет использовать для перемещения из точки А в точку В. Методы выхода из лабиринтов (необходимые знания для отважных героев древности) также могут быть приведены в качестве примеров такого поиска. Однако исследование пространства — это не единствен- ная форма познания окружающего мира. Приведем в пример поведение новорож- денного ребенка: в его распоряжении есть много возможных действий, но он еще не знает, к чему они приведут, и испытывает лишь немногие возможные состояния из числа тех, которые может выполнить. 4.5.1. Задачи поиска в оперативном режиме Любая задача поиска в оперативном режиме решается посредством чередова- ния вычислений, восприятия и действия. Начнем обсуждение с предположения, что среда детерминирована и полностью наблюдаема (в главе 17 эти предположе- ния будут ослаблены), и условимся, что агенту известно только следующее. • Функция АстЮ№($), определяющая список действий, допустимых в состо- янии 5. • Функция стоимости этапа с($, а, $')> определяющая стоимость выполнения действия а в состоянии 5 с целью перехода в состояние 5'. Она не может ис- пользоваться, пока агент не узнает, что результатом действия а является со- стояние 5'. • Функция 18-6оаь($), проверяющая достижение целевого состояния. Обратите внимание, в частности, на то, что агент не может определить значе- ние функции Ке8СЬТ(5, а) за исключением тех случаев, когда он действительно на- ходится в состоянии 5 и выполняет действие а. Например, в задаче с лабиринтом, представленной на рис. 4.19, агент не знает, что выполнение действия 1}р в состо- янии (1,1) приведет его в состояние (1,2); как не знает и того, что после его выпол- нения он сможет выполнить действие Эоумп и вернется в состояние (1,1). Такая степень неведения в некоторых приложениях может быть уменьшена, — напри- мер, робот-исследователь может знать, как работают его действия по передвиже- нию, и оставаться в неведении лишь в отношении местонахождения препятствий. И наконец, агент может иметь доступ к допустимой эвристической функции Л($), предоставляющей оценку расстояния до целевого состояния от текущего. На- пример, на рис. 4.19 агент может знать местоположение цели и быть в состоянии использовать эвристику манхэттенского расстояния до нее (см. раздел 3.6). Как правило, задача агента состоит в том, чтобы достичь целевого состояния при минимальных затратах. (Другая возможная цель — просто исследовать всю среду.) Стоимость — это общая стоимость пути, который агент пройдет в поисках цели. Обычно эту стоимость сравнивают со стоимостью того пути, который агент
выбрал бы, заранее зная пространство поиска, т.е. оптимального пути в извест- ной среде. В терминологии алгоритмов оперативного поиска это соотношение на- зывается ► коэффициентом конкурентоспособности, — желательно, чтобы этот коэффициент был как можно меньше. Рис. 4.19. Простая задача с лабиринтом. Агент начинает движение в квадрате 8 и должен достичь квадрата О, но ничего не знает об окружающей среде Исследования, проводимые в оперативном режиме, часто подвержены попада- нию в ► тупик, т.е. в такое состояние, из которого целевого состояния достичь не- возможно. Если агент не знает, к чему приводит каждое действие, он может вы- полнить действие “прыгнуть в бездонную яму” и, таким образом, уже никогда не достигнуть цели. В целом -► ни один алгоритм не позволяет избежать тупиков во всех пространствах состояний. Рассмотрим два тупиковых пространства состоя- ний, показанных на рис. 4.20, а. Алгоритм поиска в оперативном режиме, кото- рый последовательно посетил состояния 5 и А, не сможет определить, находится он в верхнем варианте лабиринта или в нижнем, — они выглядят совершенно оди- наково, исходя из того, что видел агент. Следовательно, у него не было возможно- сти узнать, как выбрать правильное действие в каждой ситуации, и он должен при- нять одинаковое решение в обоих вариантах среды, а значит, в одном из вариантов он потерпит неудачу. Это один из примеров ► аргумента противника (аскегзагу аг^итеп!): можно представить, как противник формирует пространство состояний в ходе того, как это пространство исследуется агентом, и может размещать цели и тупики везде, где пожелает, как на рис. 4.20, б. Тупики представляют собой реальную трудность для исследования роботов: лестницы, рампы, обрывы, улицы с односторонним движением — все это приме- ры состояний, в которых возможны ► необратимые действия, после выполнения которых уже не будет возможности вернуться в предыдущее состояние. Алгоритм исследования, который будет представлен ниже, гарантированно работает лишь в пространствах состояний, являющихся ► безопасно исследуемыми, т.е. неко- торое целевое состояние в них является достижимым из каждого достижимого
состояния. Пространства состояний с обратимыми действиями, такие как лаби- ринты и головоломка Восемь, очевидно, являются безопасно исследуемыми (если для них вообще существует какое-либо решение). Более подробно тема безопасно- го исследования рассматривается в разделе 22.3.2. Рис. 4.20. а) Два пространства состояний, способные завести агента, выполняюще- го поиск в оперативном режиме, в тупик. Любой такой агент потерпит неудачу по меньшей мере в одном из двух вариантов этих пространств, б) Двухмерная среда, которая может вынудить агента, выполняющего поиск в оперативном режиме, сле- довать к цели, по сколь угодно неэффективному маршруту. Какой бы выбор агент ни сделал, противник блокирует его маршрут еще одной длинной и тонкой стеной, чтобы путь, по которому следует агент, стал намного длиннее по сравнению с наи- лучшим возможным путем Но даже в безопасно исследуемых вариантах среды нельзя гарантировать до- стижение какого-либо ограниченного значения коэффициента конкурентоспо- собности, если в них имеются маршруты с неограниченной стоимостью. Это утверждение легко доказать применительно к вариантам среды с необратимыми действиями, но фактически оно остается истинным и для случая с обратимыми действиями (см. рис. 4.20, б). По этой причине обычно принято характеризовать производительность алгоритмов поиска в оперативном режиме с учетом размеров всего пространства состояний, а не только глубины самой поверхностной цели. 4.5.2. Агенты, выполняющие поиск в оперативном режиме После каждого действия агент, выполняющий поиск в оперативном режиме в наблюдаемой среде, получает восприятие, сообщающее ему, в каком состоянии он находится. Исходя из этой информации он может дополнить свою карту окружа- ющей среды, а затем обновленная карта используется им для планирования, куда идти дальше. Такое чередование этапов планирования и действия означает, что
алгоритмы поиска в оперативном режиме довольно сильно отличаются от алгорит- мов поиска в автономном режиме, которые рассматривались выше. В последних исследуется их модель пространства состояний, тогда как алгоритмы поиска в опе- ративном режиме исследуют реальный мир. Например, алгоритм поиска А* может развернуть узел в одной части пространства состояний, а следующим развернуть узел в иной, отдаленной его части, поскольку процедура развертывания узла вклю- чает моделируемые, а не реальные действия. С другой стороны, любой алгоритм поиска в оперативном режиме позволяет агенту развертывать только тот узел, который он физически занимает. Для предот- вращения необходимости путешествовать через все дерево, чтобы развернуть сле- дующий узел, представляется более удобным развертывание узлов в локальном порядке. Именно таким свойством обладает поиск в глубину, поскольку (за исклю- чением операции возврата) следующий развертываемый узел является дочерним узлом ранее развернутого узла. Алгоритм агента, выполняющего поиск в глубину в оперативном режиме, при- веден на рис. 4.21. Агент хранит составленную им карту в таблице гези11[ъ а], в ко- торой регистрируются состояния, явившиеся следствием выполнения действия а в состоянии 5. (Для недетерминированных действий агент может записывать в эту таблицу множество состояний как элемент таблицы а].) Всякий раз, когда текущее состояние имеет еще непроверенные действия, этот агент предпринимает попытку выполнения одного из них. Сложности возникают после того, как агент опробовал все действия в некотором состоянии. При поиске в глубину в автоном- ном режиме это состояние просто удаляется из очереди, тогда как при поиске в оперативном режиме агент должен выполнить возврат физически. При поиске в глубину это равносильно возврату в последнее по времени состояние, из которого агент перешел в текущее состояние. Чтобы реализовать это требование, в алгорит- ме предусматривается ведение еще одной таблицы, в которой для каждого состо- яния перечисляются состояния-предшественники, к которым агент еще не выпол- нял возврат. Если агент исчерпал список состояний, к которым может выполнить возврат, это означает, что проведенный агентом поиск является полным. Читателю рекомендуется выполнить трассировку выполнения процедуры Омыые-ВР8-А6ЕЫТ применительно к лабиринту, показанному на рис. 4.19. Можно довольно легко убедиться в том, что в наихудшем случае агент в конечном итоге пройдет по каждой связи в данном пространстве состояний точно два раза. Для за- дач исследования пространства такая организация работы является оптимальной; а вот для задач поиска целевого состояния коэффициент конкурентоспособности может оказаться сколь угодно плохим, если агент отправится в длительную экс- курсию, когда целевое состояние находится непосредственно рядом с начальным. Такая задача успешно решается с использованием варианта метода итеративного углубления для работы в оперативном режиме, — если среда задачи представляет собой однородное дерево, коэффициент конкурентоспособности подобного аген- та будет небольшой константой.
ГипсНоп Омыке-ВЕЗ-АОЕЫТ(ргоЫет, У) геСигпв действие асйоп 8, а, предыдущие состояние и действие, первоначально неопределенные рег$1$<еп<: гезик, таблица, отображающая (5, а) в з', первоначально пустая ип1г1&1, таблица, отображающая 5 в список неопробованных действий ипЬаск1гаскес1, таблица, отображающая 5 в список состояний, к которым еще не было возвратов 1ГргоЫетХз-Сом^) 1Ьеп геСигп зЮр 1Г з* есть новое состояние (отсутствующее в таблице ипйчесГ) 1Ьеп ип1г1ес1[з'] <— рл9Й/ет.АстюМ8(/) И 5 не является неопределенным 1Ьеп гезик[з, а] <— з' добавить 5 в начало таблицы ипЬаск1гаскей[з'] И элемент ип1пес1[з'] пуст 1Ьеп 1Г элемент ипЪаск&аскес^з1] пуст 1Ьеп геСигп зЮр еке а <— действие Ь такое, что гезик\з?, 5] = Рор^ипЬаскГгаскей^]) еке а <— Рор(ип1пес1[з']) з <— з' геСигп а Рис. 4.21. Агент, выполняющий поиск в оперативном режиме и использующий для проведения исследования алгоритм поиска в глубину. Этот агент может безопасно исследовать только те пространства состояний, в которых каждое действие может быть “отменено” каким-либо другим действием Из-за применения метода с возвратами алгоритм ОмимЕ-ОР8-АбЕЫТ будет ра- ботать только в пространствах состояний, где все действия обратимы. Существуют также немного более сложные алгоритмы, применимые в пространствах состоя- ний общего вида, но ни один из них не имеет ограниченного коэффициента кон- курентоспособности. 4.5.3. Локальный поиск в оперативном режиме Как и поиск в глубину, поиск восхождением к вершине обладает свойством локализации в отношении его операции развертывания узлов. В действительности уже сам поиск восхождением к вершине можно считать алгоритмом поиска в опе- ративном режиме, поскольку он предусматривает хранение в памяти только одно- го текущего состояния! К сожалению, в своей простейшей форме этот алгоритм не очень полезен, так как оставляет агента в таком положении, что он не может поки- нуть локальный максимум и отправиться куда-то еще. Более того, в этом алгорит- ме не может использоваться перезапуск случайным образом, поскольку агент не способен перенести самого себя в новое состояние.
Вместо перезапуска случайным образом для исследования среды может быть предусмотрено использование ►случайного блуждания (галиот \ма1к\ В методе случайного блуждания просто случайным образом выбирается одно из действий, доступных из текущего состояния, причем предпочтение отдается действиям, ко- торые еще не были опробованы. Легко доказать, что метод случайного блуждания позволяет агенту в конечном итоге найти цель или выполнить свою задачу иссле- дования при условии, что пространство является конечным и безопасно исследу- емым.8 С другой стороны, процесс поиска может оказаться очень медленным. На рис. 4.22 показана среда, в которой поиск цели с помощью метода случайного блу- ждания потребует экспоненциально возрастающего количества этапов, поскольку в каждом состоянии верхнего ряда (за исключением состояния 5) вероятность вы- полнения шага назад вдвое превышает вероятность выполнения шага вперед. Без- условно, данный пример является надуманным, но существует много реальных пространств состояний, топология которых способствует возникновению “лову- шек” такого рода при случайном блуждании. Рис. 4.22. Среда, в которой применение метода случайного блуждания для поис- ка цели потребует выполнения экспоненциально возрастающего количества этапов Более эффективным подходом оказалось расширение метода поиска восхожде- нием к вершине способностью запоминать, а не выбирать следующее действие случайным образом. Основная идея состоит в том, что необходимо хранить в па- мяти “текущую наилучшую оценку” Н(з) стоимости достижения цели из каждого состояния, которое уже было посещено. В начале работы Н(з) представляет собой просто эвристическую оценку Л($), которая обновляется по мере того, как агент на- капливает опыт, исследуя пространство состояний. На рис. 4.23 приведен простой пример одномерного пространства состояний. На рис. 4.23, а показано, что агент, по-видимому, зашел в тупик, попав в плоский локальный минимум, соответствующий затененному состоянию. Вместо того что- бы оставаться там, где находится, агент должен последовать по тому пути, кото- рый может рассматриваться как наилучший путь к цели согласно текущим оцен- кам стоимостей для соседних состояний. Оценка стоимости достижения цели через соседнее состояние з' равна оценке стоимости достижения плюс оценка 8 Случайные блуждания конечны на бесконечных одно- и двухмерных сетках. На трехмерной сетке вероятность того, что случайно блуждающий агент когда-либо вернет- ся в начальную точку, составляет всего лишь приблизительно 0,3405 (Хьюз [1092], 1995).
стоимости достижения цели из т.е. равна с($, а, $') +//($'). В данном примере агенту доступны два действия с оценками стоимости, 1+9 и 1+2, поэтому, по всей видимости, лучше всего двигаться вправо. Рис. 4.23. Пять итераций алгоритма ЬКТА* в одномерном пространстве состояний. Каждое состояние обозначено значением Н(х), текущей оценкой стоимости дости- жения цели, а каждая дуга обозначена соответствующей ей стоимостью этапа. За- тененное состояние показывает местонахождение агента, а значения, обновленные после каждой итерации, обозначаются двойным кружком На следующем этапе (рис. 4.23, б) становится очевидно, что оценка стоимо- сти для этого затененного состояния, равная 2, была слишком оптимистичной. Поскольку стоимость наилучшего хода равна 1 и он ведет в состояние, которое находится по меньшей мере на расстоянии 2 шагов от цели, то затененное состоя- ние должно находиться по меньшей мере на расстоянии 3 шагов от цели, поэтому его оценка Я должна быть обновлена соответствующим образом, что и показано на рисунке. Продолжая этот процесс, агент перейдет вперед и назад еще дважды, каждый раз обновляя оценку Н и “сглаживая” локальный минимум до тех пор, пока не вырвется из него вправо (рис. 4.23, б). Агент, в котором реализован этот алгоритм, получивший название поиска А* в реальном времени с обучением (►ЬКТА* — Беатш^ Кеа1-Т1те А*), приведен на рис. 4.24. Как и в алгоритме Омьпче-ОР8-А6ЕЫТ, в данном алгоритме составляет- ся карта среды с использованием таблицы ге$и11. Этот алгоритм обновляет оцен- ку стоимости для состояния, которое он только что оставил, а затем выбирает ход, “который представляется наилучшим” в соответствии с его текущими оценками
стоимости. Следует отметить одну важную деталь: действия, которые еще не были опробованы в состоянии 5, всегда рассматриваются как ведущие непосредствен- но к цели с наименьшей возможной стоимостью, а именно — Л($). Такой ► опти- мизм в отношении неопределенности побуждает агента исследовать новые пути, которые могут действительно оказаться перспективными. ГипсНоп ЬКТА*-АбЕ1Чт(рго6/е>и, 5', И) геСигпз действие а 5, а, предыдущие состояние и действие, первоначально неопределенные рег$1$1еп1: гезик, таблица, отображающая (5, а) в 5', первоначально пустая 2/, таблица, отображающая 5 в оценку стоимости, первоначально пустая И 18-6оаь(У) 1Ьеп геШгп зЮр И У является новым состоянием (отсутствует в Н) 1Ьеп //[5'] <— Л(/) И 5 не пи11 Шеп а] <— з' //[5] <— шт ЬКТА*-СО8Т(5, Ь, гезик[з, 6], Н) Ь е Аспон8(5) а <— ь аг^пмп^ ЬКТА*-СО8Т(рго6/ет, 5', Ь, гезик^з*, 5], Н) 8 <—8' геСигп а ГипсНоп ЬКТА*-СО8т(рго6/е?и, 5, а, з\ Н) геСигпз оценка стоимости И з' является неопределенным Шеп геСигп И(з) е!$е геСигп ргоЫетАст\ОМ-Со$т(з, а, з') + //[5'] Рис. 4.24. Функция ЬКТА*-АСЕНТ выбирает действие в соответствии со значения- ми соседних состояний, которые обновляются по мере того, как агент передвигает- ся в пространстве состояний Агент ЬКТА* гарантированно найдет цель в любой конечной, безопасно ис- следуемой среде. Однако, в отличие от алгоритма поиска А*, в бесконечных про- странствах состояний применяемый в этом агенте алгоритм становится неполным, поскольку в некоторых случаях он может вовлечь агента в бесконечные блужда- ния. В наихудшем случае данный алгоритм позволяет исследовать среду с п состо- яниями за О(п) этапов, но чаще всего он действует намного лучше. Агент ЬКТА* представляет собой лишь один пример из большого семейства агентов, выполня- ющих поиск в оперативном режиме, которые могут быть определены путем зада- ния правила выбора действия и правила обновления различными способами. Это семейство агентов, первоначально разработанное для стохастических вариантов среды, рассматривается в главе 22.
4.5.4. Обучение при поиске в оперативном режиме То, что агенты, выполняющие поиск в оперативном режиме, изначально на- ходятся в полном неведении, открывает некоторые возможности для обучения. Во-первых, агенты изучают “карту” своей среды (а точнее, результаты каждого действия в каждом состоянии), просто регистрируя результаты каждого из своих опытов. Во-вторых, агенты, выполняющие локальный поиск, получают все более точные оценки значения каждого состояния, используя локальные правила обнов- ления, которые сходятся к точным значениям для каждого состояния, при условии, что агент исследует пространство состояний правильным способом. Как только точные значения станут известны, оптимальные решения могут быть реализованы просто посредством перемещения к преемнику с наименьшей стоимостью, т.е. оп- тимальной стратегией в этом случае становится метод поиска восхождением к вер- шине в чистом виде. Если читатель выполнил рекомендацию провести трассировку поведения алго- ритма О1ЧЫНЕ-ОР8-А6ЕМТ в среде, приведенной на рис. 4.19, то должен был заме- тить, что этот агент не слишком умен. Например, после того как агент обнаружил, что действие 17р ведет из пункта (1,1) в пункт (1,2), он еще не знает, что действие Ооууп возвратит его назад, в пункт (1,1), или что следующее действие 1]р приведет его из пункта (2,1) в пункт (2,2), из пункта (2,2) в пункт (2,3) и т.д. Вообще гово- ря, было бы желательно, чтобы агент освоил в результате обучения, что действие 1}р приводит к увеличению координаты у, если на этом пути нет стены, а действие Ооууп приводит к уменьшению этой координаты, и т.д. Для того чтобы это произошло, требуются две вещи. Во-первых, необходимо формальное и явно манипулируемое представление общих правил такого рода. До сих пор эта информация скрывалась внутри “черного ящика”, называемого функ- цией определения преемника Кезчет. Данному вопросу посвящены главы 8-11 этой книги. Во-вторых, нужны алгоритмы, позволяющие формировать подходя- щие общие правила из конкретных наблюдений, сделанных агентом. Эта тема рас- сматривается в главе 19. Если ожидается, что в будущем потребуется решать множество подобных за- дач, имеет смысл потратить время (и память), чтобы облегчить такие поиски. Су- ществует несколько способов сделать это, и все они подпадают под заголовок ► инкрементный поиск. Можно хранить дерево поиска в памяти и многократно использовать те его части, которые остаются неизменными в новой задаче. Мож- но хранить значения эвристической функции к и обновлять их при поступлении новой информации — либо потому, что мир изменился, либо потому, что были вычислены лучшие оценки. Или можно хранить значения функции наилучшего пути используя их для объединения в новое решение, и обеспечить их обновле- ние, когда мир меняется.
Резюме В этой главе рассматривались алгоритмы поиска для задач в частично наблюда- емых, недетерминированных, неизвестных и непрерывных средах. • Такие методы локального поиска, как поиск восхождением к вершине, со- храняют в памяти только небольшое количество состояний. Они применя- лись к задачам оптимизации, суть которых заключалась в том, чтобы найти достаточно хорошее состояние, не заботясь о пути к нему. Также было раз- работано несколько стохастических алгоритмов локального поиска, включая поиск имитацией отжига, возвращающий оптимальное решение при нали- чии подходящего графика “охлаждения”. • Многие локальные методы поиска применимы также к задачам в непрерыв- ных средах. Задачи линейного программирования и выпуклой оптими- зации накладывают определенные ограничения на форму пространства со- стояний и характер целевой функции, но используемые в них алгоритмы характеризуются полиномиальным временем выполнения, что на практи- ке часто обеспечивает им чрезвычайно высокую эффективность. Для не- которых математически правильно сформулированных задач можно найти максимум, просто рассчитав, где градиент обращается в нуль, а в других задачах потребуется воспользоваться эмпирическим градиентом, характери- зующим разницу в пригодности между двумя соседними точками. • Эволюционный алгоритм представляет собой стохастической поиск вос- хождением к вершине, в котором поддерживается популяция состояний, именуемых особями. Новые особи генерируются из пар особей предыду- щего поколения с использованием механизмов мутаций и кроссинговера. • В недетерминированных средах, агенты могут использовать И-ИЛИ-по- иск для генерации условных планов, что позволяет достичь цели независи- мо от того, какие именно результаты действий будут иметь место во время его выполнения. • Когда среда частично наблюдаема, доверительное состояние представля- ет собой множество возможных состояний, в которых агент, по его мнению, может оказаться. • Бессенсорные задачи можно решать, применяя стандартные алгоритмы поиска непосредственно к пространству доверительных состояний, а метод И-ИЛИ-поиска в пространстве доверительных состояний позволяет решить прочие типы задач в частично наблюдаемой среде. Инкрементные алгорит- мы, образующие целевые состояния в пределах доверительного состояния, часто оказываются более эффективными. • Задачи исследования возникают, кода агент не имеет представления о том, каковы состояния и действия в окружающей его среде. В безопасно ис- следуемых вариантах среды агенты, выполняющие поиск в оперативном
режиме, могут составить карту и отыскать цель, если она существует. Эф- фективным методом выхода из локальных минимумов является обновление эвристических оценок на основе получаемого агентом опыта. Библиографические и исторические заметки Методы локального поиска имеют долгую историю в математике и компьютер- ных науках. Безусловно, метод Ньютона-Рафсона (Ньютон [1671], 1671; Рафсон [ 1852], 1690) может рассматриваться как очень эффективный метод локального по- иска в непрерывных пространствах, в которых доступна информация о градиен- те. Книга Брента ([3012], 1973) представляет собой классический справочник по алгоритмам оптимизации, для которых такая информация не требуется. Алгоритм поиска по лучу, представленный в данной книге как алгоритм локального поиска, впервые появился в виде одного из вариантов методов динамического программи- рования с ограничением по ширине, предназначенного для распознавания речи, в системе Наиру ([1452], 1976). Еще один алгоритм подобного типа был глубоко проанализирован Перлом ([1751], 1984, глава 5). Интерес к теме локального поиска вновь пробудился в начале 1990-х годов под влиянием на удивление хороших результатов, полученных при решении та- ких крупных задач удовлетворения ограничений, как задача с и-ферзями (Минтон и др. [1588], 1992) и задача формирования логических рассуждений (Селман и др. [2025], 1992), а также под влиянием успешного включения в алгоритмы методов рандомизации, методов множественного одновременного поиска и других усовер- шенствований. Это возрождение интереса к алгоритмам, названным Кристосом Пападимитриу алгоритмами “новой эры”, вызвало также повышенный интерес те- оретиков в области компьютерных наук ([1293], 1992; [28], 1994). В области исследования операций широкую популярность завоевал один из ва- риантов поиска восхождением к вершине, получивший название ► поиска с за- претами (Гловер и Лагуна [870], 1997). Этот алгоритм предусматривает формиро- вание и поддержку списка из к ранее посещенных узлов, которые не могут быть вновь посещены, — помимо повышения эффективности поиска по графу, этот список способствует выходу алгоритма из некоторых локальных минимумов. Еще одним полезным усовершенствованием алгоритма поиска восхождени- ем к вершине является алгоритм 8та6Е (Боян и Мур [278], 1998). Идея состоит в том, чтобы использовать локальные максимумы, найденные при выполнении по- иска восхождения к вершине со случайным перезапуском, для получения обще- го представления о форме ландшафта. Алгоритм подгоняет гладкую квадратич- ную поверхность к множеству обнаруженных локальных максимумов, а затем аналитическим путем вычисляет глобальный максимум этой поверхности. Этот глобальный максимум становится новой точкой перезапуска. В работе Гомеса и др. [889] (1998) показано, что время выполнения алгоритмов с возвратами часто
характеризуется ► распределением с тяжелым хвостом (ЬеаууЧаПед (Н&пЬибоп). Это означает, что вероятность очень длительного времени выполнения выше, чем можно было бы предположить в случае нормального распределения значений вре- мени выполнения. Когда время выполнения подчиняется распределению с тяже- лым хвостом, алгоритм со случайным перезапуском в среднем будет находить ре- шение быстрее, чем единственный прогон, выполняемый до нахождения решения. Хуз и Стюцле посвятили этой теме отдельную книгу ([ 1056], 2004). Алгоритм поиска имитацией отжига был впервые описан Кирпатриком и соав- торами ([1230], 1983), заимствовавшими эту идею непосредственно из алгоритма Метрополиса (этот алгоритм применялся для эмуляции сложных систем в физи- ке ([1560], 1953) и предположительно был изобретен на одном из званых обедов в Лос-Аламосе). Методы поиска имитацией отжига теперь лежат в основе отдельно- го научного направления, в котором ежегодно публикуются сотни статей. Поиск оптимальных решений в непрерывных пространствах является предме- том исследований в нескольких научных областях, включая теорию оптимиза- ции, теорию оптимального управления и вариационное исчисление. Базовые методы хорошо описываются в работе Бишопа [221 ] (1995), а в книге Пресса и др. [1821] (2007) охватывается широкий спектр алгоритмов и предоставляется рабо- тающее программное обеспечение. Разрабатывая алгоритмы поиска и оптимизации, исследователи черпали вдох- новение в самом широком спектре областей человеческой деятельности: метал- лургия (имитация отжига); биология (генетические алгоритмы); нейробиология (нейронные сети); альпинизм (восхождение к вершине); экономика (рыночные ал- горитмы (Диас и др. [617], 2006)); физика (рои частиц (Ли и Яо [1406], 2012) и спиновые стекла (Мецард и др. [1562], 1987)); поведение животных (обучение с подкреплением, алгоритм стаи волков (Мирджалили и Льюис [1589], 2014)); ор- нитология (поиск кукушки (Янг и Деб [2398], 2014)); энтомология (колония мура- вьев (Дориго и др. [638], 2008), пчелиная семья (Карабога и Бастурк [1186], 2007), алгоритм светлячка (Янг [2397], 2009) и оптимизация роем светлячков (Кришна- нанд и Гхош, 2009)) и пр. Первые систематические исследования в области линейного программирова- ния (ЛП) провел Леонид Канторович ([1184], 1939). Одним из первых приложе- ний для компьютеров была реализация относящегося к этой области симплексно- го алгоритма (Данциг [523], 1949), который до сих пор используется, несмотря на то что в наихудшем случае он характеризуется экспоненциальной сложностью. Позднее Кармаркар ([1188], 1984) разработал гораздо более эффективное семей- ство алгоритмов внутренней точки, которые, как было показано в [ 1663] (1994), имеют полиномиальную временную сложность при решении более общего клас- са задач выпуклой оптимизации. Отличное введение в методы выпуклой оптими- зации можно найти книгах Бен-Таля и Немировского ([170], 2001), а также Бойда и Ванденберге ([279], 2004).
Важной работой, предшествующей разработке генетических алгоритмов, была публикация Сьюэлла Райта ([2388], 1931), посвященная концепции ландшафта приспособленности. В 1950-х годах некоторые специалисты в области статисти- ки, включая Бокса ([275], 1957) и Фридмана ([786], 1959), использовали эволю- ционные методы для решения задач оптимизации, но популярность этот подход приобрел только после того, как Рехенберг ([1867], 1965) предложил использо- вать эволюционные стратегии для решения задач оптимизации аэродинамиче- ских профилей. В 1960- и 1970-х годах Джон Холланд пропагандировал генетиче- ские алгоритмы как полезный инструмент оптимизации и как способ расширения нашего понимания адаптации (Холланд [1050], 1975). Сторонники движения искусственной жизни (Лэнгтон [1351], 1995) раз- вили эту идею на один шаг, рассматривая плоды работы генетических алгорит- мов как организмы, а не как решения задач. Эффект Болдуина, обсуждавшийся в этой главе, был предложен примерно одновременно Конви Ллойдом Морганом ([1623], 1896) и Джеймсом Болдуином ([118], 1896), а компьютерное моделирова- ние уже в наше время помогло прояснить его последствия ([1026], 1987; [13], 1991; [1624], 2015). Для ознакомления с общими сведениями об эволюции авторы реко- мендуют книги [2096] (1999), [1880] (2004) и [386] (2007). Сравнение генетических алгоритмов с другими подходами (особенно с алго- ритмом стохастического поиска восхождением к вершине) чаще всего показыва- ет, что генетические алгоритмы сходятся медленнее ([1716], 1994; [1594], 1996; [1157], 1996; [120], 1997). Такие исследования не находят полного признания в сообществе приверженцев генетических алгоритмов, но недавние попытки пред- ставителей этого сообщества трактовать поиск на основе популяций как прибли- женный аналог байесовского обучения (см. главу 20) могут способствовать пре- одолению разногласий между представителями этой области и ее критиками ([1768], 1999). Для анализа производительности генетических алгоритмов может также применяться теория квадратичных динамических систем ([1839], 1998). Есть несколько впечатляющих практических примеров применения генетиче- ских алгоритмов в самых различных областях, таких как проектирование антенн ([1440], 2001), системы компьютерного проектирования ([1872], 2003), моделиро- вание климата ([2124], 2015), медицина ([843], 2015) и разработка глубоких ней- ронных сетей ([1567], 2019). Генетическое программирование является одним из разделов области гене- тических алгоритмов, в которых представителями-особями являются программы, а не строки битов. Программы в этом случае представляются в виде деревьев выра- жений, которые могут быть сформированы либо на стандартном языке программи- рования, либо в специально разработанных форматах для представления электрон- ных схем, контроллеров роботов и т.д. Кроссинговер предусматривает соединение поддеревьев друг с другом таким образом, что бы потомство гарантированно пред- ставляло собой правильно построенные выражения.
Интерес к генетическому программированию был стимулирован работами Джона Козы ([1299], 1992; [1300], 1994), но исследования в этой области проводи- лись уже давно, начиная с экспериментов с машинным кодом ([784], 1958) и с ко- нечными автоматами ([749], 1966). Как и в отношении генетических алгоритмов, споры по поводу эффективности этой методологии еще не прекратились. В рабо- те Джона Козы [1301] (1999) приведены результаты экспериментов по использова- нию генетического программирования для автоматизированного проектирования схемотехнических устройств. Работы в области эволюционных алгоритмов публикуются в журналах Еуо1иИопагу Сотри1аИоп и 1ЕЕЕ ТгапзасНопз оп Еуо1иНопагу Сотри1аПоп, статьи на эти темы можно также найти в журналах Сотр1ех 8у$1ет$, Ас1арИуе ВеЫтог и АгП/1с1а1 Ы/е. Основной конференцией в этом направлении является ОепеИс апс! Еуо1иНопагу Сотри1аНоп Соп/егепсе. Хорошими обзорными учебниками по гене- тическим алгоритмам являются книги Мелани Митчелл ([1592], 1996), Ленгдона и Поли ([1805], 2008). Непредсказуемость и частичная наблюдаемость в реальных условиях были признаны уже на ранней стадии робототехнических проектов, в которых использо- вались методы планирования, включая проекты Знакеу (Файке и др. [737], 1972) и Рябову (Мичи [1564], 1972). Этим проблемам стало уделяться больше внимания после публикации влиятельной статьи Макдермотта ([1541], 1978) Планирование и действие. Первой работой, в которой явно использовались И-ИЛИ-деревья, похоже, была программа символического интегрирования Запчт (Слэгл [2083], 1963), упоминае- мая в главе 1. Амарел ([39], 1967) применил эту идею к доказательству теорем вы- сказываний (эта тема обсуждается в главе 7) и ввел алгоритм поиска, аналогичный И-ИЛИ-поиску по графу. Затем этот алгоритм был развит Нильссоном ([1687], 1971), который также описал алгоритм АО*, который, как следует из названия, на- ходит оптимальные решения. Алгоритм АО* был дополнительно улучшен Мар- телли и Монтанари ([1502], 1973). Алгоритм АО* работает в направлении сверху вниз, тогда как в направле- нии снизу вверх работает обобщение алгоритма А* — А* ЬО, сокращение от А* ЩЫез! Оепуабоп ([726], 2007). Интерес к И-ИЛИ-поиску вновь возродился в на- чале 2000-х годов благодаря появлению новых алгоритмов поиска циклических решений (Хименес и Торрес [1138], 2000; Хансен и Зильберштейн [960], 2001) и новых методов, вдохновленных идеями динамического программирования (Бонет и Геффнер [249], 2005). Идея преобразования частично наблюдаемых задач в задачи доверительных со- стояний возникла у Астрома ([87], 1965) для гораздо более сложного случая ве- роятностной неопределенности (см. главу 17). Эрдман и Мейсон ([691], 1988) изучали проблему роботизированной манипуляции без датчиков, используя не- прерывную форму поиска в пространстве доверительных состояний. Они пока- зали, что возможно правильно сориентировать деталь на столе из произвольного
начального положения с помощью хорошо продуманной последовательности по- ворачивающих ее действий. В более утилитарных методах, основанных на приме- нении серии точно ориентированных диагональных барьеров на конвейерной лен- те, использованы те же алгоритмические идеи ([2337], 1996). Подход с использованием доверительных состояний был заново изобретен в кон- тексте бессенсорных и частично наблюдаемых поисковых задач Генесеретом и Нур- бакшем ([837], 1993). Дополнительная работа по бессенсорным задачам была про- ведена в сообществе логического планирования ([882], 1996; [2092], 1998). В этой работе был сделан акцент на кратком представлении доверительных состояний, как объясняется в главе 11. Бонет и Геффнер ([248], 2000) ввели первые эффективные эвристики для поиска в пространстве доверительных состояний, которые позднее были уточнены Брайсом и др. ([329], 2006). Инкрементный подход к поиску в про- странстве доверительных состояний, при котором решения образуются пошагово для подмножества состояний в пределах каждого доверительного состояния, был изучен в работе ([1328], 2002). Рассел и Вольф ([1948], 2005) предложили несколь- ко новых инкрементных алгоритмов для недетерминированных, частично наблюда- емых задач. Дополнительные ссылки на литературу по вопросу планирования в сто- хастических, частично наблюдаемых средах будут приведены в главе 17. Алгоритмы исследования неизвестных пространств состояний привлекали ин- терес ученых в течение многих столетий. Поиск в глубину в лабиринте, допускаю- щем возвраты, можно осуществить, постоянно держась левой рукой за стену; ци- клов можно избежать, отмечая каждую развилку. Более общая задача исследования ► графов Эйлера (т.е. графов, в которых каждый узел имеет одинаковое число входящих и исходящих ребер) была решена с помощью алгоритма, предложенно- го Хирхольцером ([1020], 1873). Первое исчерпывающее описание алгоритмов решения задачи исследования для произвольных графов было приведено в [605] (1990); авторы этой работы предложили абсолютно общий алгоритм, но показали, что для задачи исследова- ния графа общего вида невозможно определить ограниченный коэффициент кон- курентоспособности. В [1728] (1991) приведены результаты исследования зада- чи поиска путей к цели в геометрических вариантах среды планирования пути (где все действия являются обратимыми). Эти результаты показывают, что достичь того, чтобы коэффициент конкурентоспособности оставался небольшим, можно лишь при наличии квадратных препятствий, а когда препятствия имеют произ- вольную прямоугольную форму, невозможно добиться, чтобы значения коэффици- ента конкурентоспособности оставались ограниченными (см. рис. 4.20). В динамичной среде состояние мира может самопроизвольно меняться без ка- ких-либо действий со стороны агента. Например, агент может спланировать опти- мальный маршрут проезда от А до В, но авария или необычно плотный трафик в час пик может помешать выполнению его плана. Алгоритмы инкрементного поис- ка, такие как ЬРА* ([1261], 2004) и В* Ьйе ([1260], 2002), позволяют справиться с подобной ситуацией.
Алгоритм ЬКТА* был разработан Корфом ([1286], 1990) в ходе исследований в области поиска в реальном времени для вариантов среды, в которых агент дол- жен совершить действие после проведения поиска лишь в течение ограниченно- го времени (эта ситуация встречается гораздо чаще в играх с двумя участниками). По сути, алгоритм ЬКТА* представляет собой частный случай алгоритмов обуче- ния с подкреплением для стохастических вариантов среды ([138], 1995). Применя- емый в нем принцип оптимистического отношения к неопределенности — всегда направляться к ближайшему непосещенному состоянию — может в случае отсут- ствия информации о среде привести к формированию такого подхода к исследо- ванию, который является менее эффективным по сравнению с простым поиском в глубину ([1258], 2000). В [528] (1994) показано, что поиске итеративным углубле- нием в оперативном режиме обладает оптимальной эффективностью поиска цели в однородном дереве при отсутствии эвристической информации. В сочетании с различными методами поиска и обновления в известной части графа было разработано несколько вариантов алгоритма ЬКТА*, предусматриваю- щих использование информации о среде ([1769], 1992). Тем не менее еще нет пол- ного понимания того, как следует находить цели с оптимальной эффективностью при использовании эвристической информации. В [2145] (2016) предлагается ана- лиз некоторых подводных камней, возникающих на практике. Уп ражнен ия_______________________________________________________________ 4.1. Укажите имя алгоритма, который будет получен в каждом из следующих особых слу- чаев. а) Локальный поиск по лучу с к = 1. б) Локальный поиск по лучу с одним начальным состоянием и без ограничения ко- личества хранимых состояний. в) Поиск имитацией отжига с фиксированным Т= 0 (и без проверки завершения), г) Поиск имитацией отжига с фиксированным Т = оо. д) Генетический алгоритм с размером популяции = 1 4.2. В упражнении 3.19 рассматривается задача сборки игрушечных железнодорожных путей в предположении, что соединяемые части подходят точно, без зазоров и ис- кривлений. А теперь обратимся к реальной задаче, в которой части подходят не абсо- лютно точно и допускается отклонение до 10° в любую сторону от правильного на- правления. Объясните, как сформулировать подобную задачу сборки, чтобы ее мож- но было решить методом поиска имитацией отжига. 4.3. В этом упражнении рассматривается использование локальных методов поиска для решения задач Т8Р такого типа, который определен в упражнении 3.38. а) Предложите, реализуйте и протестируйте подход к решению задач Т8Р методом поиска восхождением к вершине. Сравните полученные результаты с оптималь- ными решениями, полученными на основе алгоритма А* с эвристической функ- цией М8Т (упражнение 3.38). б) Повторите задание из варианта а, используя генетический алгоритм вместо поис- ка восхождением к вершине..
4.4. Сформируйте большое количество экземпляров головоломки Восемь и задачи о вось- ми ферзях, а затем найдите их решения (где это возможно) с помощью поиска вос- хождением к вершине (в варианте подъема по самому крутому склону и в варианте поиска по первому наилучшему совпадению), затем — с помощью поиска восхожде- нием к вершине со случайным перезапуском и поиска имитацией отжига. Измерьте стоимость поиска и процентное соотношение решенных задач, а затем нанесите эти данные на график и сопоставьте их с данными об оптимальной стоимости решения. Прокомментируйте полученные вами результаты. 4.5. В алгоритме поиска в графах И-ИЛИ, представленном на рис. 4.11, появление повто- ряющихся узлов проверяется только на пути от корня до текущего состояния. Пред- положим, что, кроме этого, алгоритм должен хранить сведения о каждом посещен- ном узле и сверяться с этим списком (пример см. на рис. 3.9). Определите информа- цию, которая должна храниться в таком списке, и то, как алгоритм будет ее исполь- зовать при обнаружении повторяющегося узла. (Подсказка: необходимо по крайней мере отличать узлы, для которых ранее был создан успешный подплан, от узлов, для которых найти подплан невозможно.) Объясните, как можно использовать метки (см. раздел 4.3.3), чтобы избежать хранения нескольких копий подпланов. 4.6. Дайте точные пояснения, как можно изменить алгоритм поиска в графах И-ИЛИ та- ким образом, чтобы он генерировал циклический план, если плана без циклов не су- ществует. Вам потребуется решить три проблемы. Во-первых, пометить этапы пла- на так, чтобы циклический план мог ссылаться на предшествующие части плана. Во-вторых, модифицировать функцию ИЛИ-поиска так, чтобы она продолжила по- иск ациклических планов после нахождения циклического плана. В-третьих, расши- рить представление плана таким образом, чтобы можно было указать, является ли план циклическим. Продемонстрируйте, как модифицированный алгоритм будет ра- ботать в а) ненадежном мире пылесоса, б) в ненадежном и непредсказуемом мире пы- лесоса. Возможно, потребуется использовать компьютерную реализацию для провер- ки полученных результатов. 4.7. В разделе 4.3 для решения бессенсорных задач было введено понятие доверительного состояния. Последовательность действий решает бессенсорную задачу, если она отоб- ражает каждое физическое состояние в начальном доверительном состоянии Ь в целе- вое состояние. Предположим, что агент знает й*($) — истинную оптимальную стои- мость решения для физического состояния 8 в полностью наблюдаемой задаче — для каждого состояния 8 в начальном доверительном состоянии Ь. Найдите допустимую эв- ристику Л(6) для бессенсорной задачи в терминах этих стоимостей и докажите ее допу- стимость. Прокомментируйте точность этой эвристики на примере бессенсорной задачи в мире пылесоса, представленного на рис. 4.14. Насколько хорошо работает поиск А*? 4.8. В этом упражнении исследуются отношения “подмножество-надмножество” между доверительными состояниями в бессенсорных или частично наблюдаемых средах. а) Докажите, что если последовательность действий является решением для довери- тельного состояния Ь, то она также будет решением для любого подмножества Ь. Можно ли что-нибудь сказать о надмножествах Ы б) Подробно объясните, как изменить граф поиска бессенсорной задачи, чтобы вос- пользоваться преимуществами, определяемыми ответами на вариант а. в) Подробно объясните, как можно модифицировать алгоритм И-ИЛИ-поиска для частично наблюдаемых задач, помимо изменений, предложенных в варианте б.
4.9. В разделе 4.4.1 предполагалось, что некоторое действие будет иметь одну и ту же стоимость при выполнении в любом физическом состоянии в пределах данного дове- рительного состояния. (В результате получается задача поиска в пространстве до- верительных состояний с четко определенными затратами на этап.) Теперь рассмо- трим, что произойдет, если это предположение не выполняется. Понятие оптималь- ности в этом контексте все еще имеет смысл или требует модификации? Рассмотрите различные возможные определения “стоимости” выполнения действия в доверитель- ном состоянии. Например, можно использовать минимальное значение физических затрат или максимальное либо интервал затрат с нижней границей, определяемой ми- нимальной стоимостью и верхней границей, определяемой максимальной; либо про- сто сохранить весь набор всех возможных затрат для данного действия. Для каждого из этих вариантов выясните, будет ли поиск А* (с модификациями при необходимо- сти) возвращать оптимальные решения. 4.10. Рассмотрите бессенсорную версию непредсказуемого мира пылесоса. Нарисуйте пространство доверительных состояний, достижимых из исходного доверительного состояния {1, 2, 3, 4, 5, 6, 7, 8}, и объясните, почему задача неразрешима. 4.11. Рассмотрите бессенсорную версию непредсказуемого мира пылесоса. Нарисуйте пространство доверительных состояний, достижимых из исходного доверительного состояния {1, 3, 5, 7}, и объясните, почему задача неразрешима. 4.12. Задачу навигации в упражнении 3.9 можно превратить в среду следующим образом. - Восприятие будет списком позиций видимых вершин относительно агента. При этом оно не должно включать положение робота! Роботу потребуется самостоятель- но определять свою позицию на карте. На данный момент достаточно предположить, что каждое местоположение имеет свой, отличный от других “вид”. - Каждое действие будет представлено вектором, описывающим прямой путь, по ко- торому робот будет следовать. Если на пути нет препятствий, действие завершается успешно, в противном случае робот останавливается в точке, где его путь впервые перекрывается препятствием. Если агент возвращает нулевой вектор движения и на- ходится у цели (которая является фиксированной и известной), то среда телепортиру- ет агента в случайно выбранное место (не внутри препятствия). - Показатель эффективности взимает с агента 1 балл за каждую пройденную единицу пути и присуждает 1000 баллов при каждом достижении цели. а) Реализуйте эту среду и агента для решения задач в ней. После каждой телепорта- ции агент должен будет сформулировать новую задачу, которая должна включать и проблему определения его текущего местоположения. б) Обеспечьте документирование данных об эффективности вашего агента (заставив агента генерировать подходящие комментарии по мере его движения) и составьте отчет о его эффективности более чем в 100 проходах. в) Измените среду так, чтобы агент 30% времени оказывался в непредусмотренном месте назначения (выбирается случайным образом из других видимых вершин, если таковые имеются; в противном случае агент вообще не перемещается). Это грубая модель ошибок движения реального робота. Измените агента таким об- разом, чтобы при обнаружении подобной ошибки он знал, где оказался, а затем создавал план, чтобы вернуться туда, где был, и возобновить выполнение преж- него плана. Не забывайте, что иногда попытка возвращения на прежнее место также может оказаться неудачной! Приведите пример того, как агент успешно
преодолел две последовательные ошибки в движении и в конечном счете достиг цели. г) Теперь попробуйте две разные схемы восстановления после ошибки. 1) Найдите ближайшую вершину на исходном маршруте и отправьте робота к ней. 2) Пере- планируйте маршрут к цели из нового местоположения. Сравните производитель- ность трех схем восстановления. Повлияет ли включение затрат на поиск на ре- зультаты этого сравнения? д) Теперь предположим, что в среде есть местоположения, в которых “вид” иденти- чен. (Например, предположим, что данный мир — это сетка с квадратными пре- пятствиями.) С какой проблемой в этом случае сталкивается агент? Как выглядят решения? 4.13. Предположим, что агент находится в среде лабиринта 3x3, представленного на рис. 4.19. Агенту известно, что его первоначальным местонахождением является ква- драт (1,1), что цель находится в квадрате (3,3) и что четыре действия, 1}р (вверх), Оомт (вниз), Ье/1 (влево) и К1$й (вправо), приводят к своим обычным последствиям, если не заблокированы стеной. Однако агент не знает, где находятся внутренние сте- ны. В любом конкретном состоянии агент воспринимает информацию о множестве допустимых действий. Он также может определить, является ли данное состояние тем, которое он посещал ранее, или он оказался в новом состоянии. а) Объясните, каким образом к этой задаче поиска в оперативном режиме можно применить такую трактовку, чтобы она могла рассматриваться как поиск в авто- номном режиме в пространстве доверительных состояний, где первоначальное доверительное состояние включает все возможные конфигурации среды. Насколь- ко велико это первоначальное доверительное состояние? Насколько велико все пространство доверительных состояний? б) Сколько различных вариантов восприятия возможно в первоначальном состоянии? в) Опишите первые несколько ветвей плана действий в непредвиденных ситуациях для этой задачи. Насколько велик (приблизительно) этот план в полном объеме? Обратите внимание на то, что этот план действий в непредвиденных ситуациях явля- ется решением для любой возможной среды, соответствующей данному описанию. Поэтому чередование поиска и выполнения не будет строго необходимо даже в неиз- вестных вариантах среды. 4.14. Предположим, что агент находится в среде лабиринта 3x3, представленного на рис. 4.19. Агенту известно, что его первоначальным местонахождением является ква- драт (3,3), что цель находится в квадрате (1,1) и что четыре действия, 1!р (вверх), Ооумп (вниз), Ье/1 (влево) и Нл&И (вправо), приводят к своим обычным последствиям, если не заблокированы стеной. Однако агент не знает, где находятся внутренние сте- ны. В любом конкретном состоянии агент воспринимает информацию о множестве допустимых действий. Он также может определить, является ли данное состояние тем, которое он уже посещал ранее, или он оказался в новом состоянии. а) Объясните, каким образом к этой задаче поиска в оперативном режиме можно применить такую трактовку, чтобы она могла рассматриваться как поиск в авто- номном режиме в пространстве доверительных состояний, где первоначальное доверительное состояние включает все возможные конфигурации среды. Насколь- ко велико это первоначальное доверительное состояние? Насколько велико все пространство доверительных состояний?
б) Сколько различных вариантов восприятия возможно в первоначальном состоянии? в) Опишите первые несколько ветвей плана действий в непредвиденных ситуациях для этой задачи. Насколько велик (приблизительно) этот план в полном объеме? Обратите внимание на то, что этот план действий в непредвиденных ситуациях явля- ется решением для любой возможной среды, соответствующей данному описанию. Поэтому чередование поиска и выполнения не будет строго необходимо даже в неиз- вестных вариантах среды. 4.15. В данном упражнении исследуется применение поиска восхождением к вершине в контексте навигации робота с использованием среды, показанной на рис. 3.29. а) Повторите упражнение 4.12 с использованием поиска восхождением к вершине. Зашел ли когда-либо предложенный вами агент в тупик в локальном минимуме? Возможно ли, чтобы он зашел в тупик при наличии выпуклых препятствий? б) Постройте среду с препятствиями в виде невыпуклых многоугольников, в которой агент может оказаться в тупике. в) Модифицируйте алгоритм поиска восхождением к вершине таким образом, чтобы вместо выполнения поиска на глубину 1 при принятии решения о том, куда дви- гаться дальше, агент предпринимал поиск на глубину к. Он должен найти наилуч- ший путь, состоящий из к этапов, пройти по нему один этап, а затем повторить весь процесс. г) Существует ли такое значение к, при котором новый алгоритм гарантирует вы- ход из локальных минимумов? д) Объясните, благодаря чему алгоритм ЬКТА* позволяет агенту выходить из ло- кальных минимумов в таких ситуациях. 4.16. Как и алгоритм ОГ8, вариант алгоритма ОГ8 для поиска в оперативном режиме явля- ется неполным для обратимых пространств состояний с бесконечными путями. На- пример, предположим, что состояния — это точки на бесконечной двухмерной сетке, а действия представляют собой единичные векторы (1,0), (0,1), (-1, 0), (0, -1), про- веряемые в этом порядке. Покажите, что алгоритм ОГ8 при поиске в оперативном ре- жиме, начав выполнение в состоянии (0, 0), никогда не достигнет состояния (1,-1). Теперь предположим, что агент может наблюдать в дополнение к своему текущему состоянию все состояния-преемники и действия, которые к ним приведут. Напишите алгоритм, который будет полным даже для двунаправленных пространств состояний с бесконечными путями. Какие состояния этот алгоритм посетит при достижении со- стояния (1, -1)? 4.17. Определите соотношение временной сложности алгоритма ЬКТА* с его простран- ственной сложностью.
ГЛАВА 5 Поиск в условиях противодействия и игры В этой главе рассматриваются среды, в которых противоборствующие аген- ты составляют планы, направленные против нас. В этой главе обсуждаются конкурентные среды, в которых два или более агентов имеют противоположные цели, что ведет к возникновению задач ► по- иска в условиях противодействия. Однако вместо того, чтобы разбираться в хаосе противоречий и противостояний реального мира, мы сосредоточимся на играх, таких как шахматы, го и покер. Для исследователей в области ИИ упро- щенная природа этих игр является большим плюсом: состояние игры достаточ- но легко представить, а агенты обычно ограничены небольшим количеством возможных действий, последствия которых определены точными правилами. Физические игры, такие как крокет или хоккей на льду, имеют более сложные описания, более широкий диапазон возможных действий и довольно неточные правила, определяющие допустимость действий. За исключением футбола робо- тов, различные физические игры никогда не вызывали особого интереса в сооб- ществе исследователей ИИ. 5.1. Теория игр_______________________________________ Имеется как минимум три положения, которые могут быть приняты в отноше- нии многоагентных сред. Первое положение, подходящее для ситуации, когда в среде действует очень большое количество агентов, заключается в том, чтобы рас- сматривать их в совокупности как ► экономику, а не игру, что позволит, напри- мер, предсказывать, что увеличение спроса приведет к росту цен, без необходимо- сти прогнозировать действие любого отдельного агента. Согласно второму положению противоборствующих агентов можно рассматри- вать просто как часть среды, что делает ее недетерминированной. Однако если смоделировать противников таким же образом, как, скажем, выпадение дождя, ко- торый иногда идет, а иногда нет, то будет упущена важная идея, что противники
любого агента активно пытаются его победить, тогда как дождь, предположитель- но, не имеет такого намерения. Третье положение состоит в том, чтобы явно моделировать противоборству- ющих агентов с помощью методов состязательного поиска по игровому дереву. И это именно то, о чем пойдет речь в данной главе. Мы начнем обсуждение с ограниченного класса игр, понятия оптимального хода и некоторых алгоритмов его поиска: минимаксный поиск и обобщенный И-ИЛИ-поиск (см. рис. 4.11). За- тем будет показано, что ► отсечение делает поиск более эффективным за счет иг- норирования тех частей дерева поиска, которые не оказывают влияния на оконча- тельный выбор. В случае нетривиальных игр участники обычно не располагают достаточным количеством времени, чтобы искать гарантированно оптимальный ход (даже с отсечением), поэтому в какой-то момент им приходится просто пре- кращать поиск. Для каждого состояния, в котором было решено прекратить поиск, следует по- ставить вопрос, кто выигрывает. Чтобы получить на него ответ, можно либо вос- пользоваться эвристической функцией оценки того, кто окажется в выигрыше, исходя из особенностей данного состояния (раздел 5.3), либо усреднить результа- ты многократного быстрого моделирования хода игры из этого состояния по всем путям до конечного (раздел 5.4). В разделе 5.5 рассматриваются игры, включающие элемент случайности (за счет бросания костей или перетасовки колоды карт), а в разделе 5.6 — игры с ► неполной информацией (такие, как покер и бридж, в которых не все карты вид- ны всем игрокам). 5.1.1. Игры с нулевой суммой для двух игроков Те игры, которые чаще всего изучаются в исследованиях в области ИИ (на- пример, шахматы или го), теоретики называют детерминированными, с двумя игроками, с последовательными ходами, >с полной информацией и ► нулевой суммой. Термин “полная информация” — это синоним понятия “полностью на- блюдаемая”,1 а “нулевая сумма” означает, что то, что хорошо для одного игрока, обязательно будет плохо для других, в таких играх нет “беспроигрышного” резуль- тата. Говоря об играх, мы часто будем использовать слово ►ход как синоним для понятия “действие”, а слово ► позиция как синоним для понятия “состояние”. Обсуждая такие игры, будем называть двух игроков МАХ и МГМ по причинам, ко- торые вскоре станут очевидными. Первым всегда ходит МАХ, а затем игроки ходят 1 Некоторые авторы делают здесь различие, используя термин “игры с неполной ин- формацией” для игр типа покера, в которых игроки имеют конфиденциальную инфор- мацию о картах у себя на руках, которой другие игроки не имеют, и термин “частично наблюдаемые игры” для игр типа 81агСгай II, в которых каждый игрок может видеть про- исходящее в его ближайшем окружении, но не видит прочих удаленных участков игровой среды.
по очереди, пока игра не закончится. В конце игры выигравшему игроку начис- ляются очки, а на проигравшего налагается штраф. Формально игра может быть определена следующими элементами. • 50. Начальное состояние, определяющее стартовую позицию игры. • То-Моуе(л). Функция, определяющая игрока, которому принадлежит право совершить ход в состоянии 5. • АСТЮ№($). Функция, определяющая множество допустимых ходов в состо- янии 5. • Ке81Л_т($, а). ► Функция определения преемника, возвращающая резуль- тирующее состояние после выполнения действия а в состоянии 5. • 18-Текм№АЕ($). Функция ► проверки терминального состояния, возвра- щающая значение 1гие, если игра окончена, и/а!$е в противном случае. Со- стояния, в которых игра закончена, называются ► терминальными состо- яниями. • 1)Т1ИТУ($,р). ► Функция полезности (также называемая целевой функцией или функцией вознаграждения), определяющая итоговое числовое значение для игрока р, когда игра заканчивается в терминальном состоянии 5. В шах- матах результатом может быть выигрыш, проигрыш или ничья с числовыми значениями 1,0 или 1/2 соответственно.2 Некоторые игры имеют более ши- рокий диапазон возможных результатов, например в нардах количество оч- ков может иметь любое значение в диапазоне от 0 до 192. Как и в главе 3, начальное состояние, функция АСТЮЫ8 и функция КЕ81ЛТ опре- деляют ► граф пространства состояний — граф, в котором вершины представ- ляют состояния, ребра соответствуют действиям и какое-либо состояние может быть достигнуто по нескольким путям. Как и в главе 3, чтобы определить, ка- кой ход следует сделать, на часть этого графа можно наложить ► дерево поиска. Определим полное ► дерево игры как дерево поиска, которое фиксирует любую последовательность ходов вплоть до терминального состояния. Дерево игры мо- жет быть бесконечным, если пространство состояний само по себе является не- ограниченным или если правила игры допускают бесконечно повторяющиеся по- зиции. На рис. 5.1 представлена часть дерева игры в крестики-нолики. В начальном состо- янии игроку мах доступно девять возможных ходов. Ходы игроков чередуются, при- чем при каждом ходе МАХ ставит значок “X”, а М1И —значок “О”. Игра продолжается до тех пор, пока будут достигнуты листовые узлы, соответствующие терминальным 2 Шахматы считаются игрой “с нулевой суммой” несмотря даже на то, что сумма ре- зультатов для двух игроков в каждой (турнирной) игре равна +1, а не нулю. В этом случае более удачным термином было бы “с постоянной суммой”, однако традиционным явля- ется первый вариант и он даже может иметь смысл, если представить, что перед началом игры каждый игрок делает начальный взнос в размере 1/2.
состояниям, в которых один из игроков поставил три своих значка в один ряд или все клетки поля уже заполнены. Число под каждым листовым узлом указывает значение функции полезности для этого терминального состояния с точки зрения игрока МАХ. Предполагается, что высокие значения благоприятны для игрока МАХ и неблагоприят- ны для игрока мпч (вот почему в теории этим игрокам присвоены такие имена). МАХ (х) М1Ы (о) МАХ (х) М1Ы (о) Терминальные состояния Полезность яелз ВНП Рис. 5.1. (Частичное) дерево поиска для игры “крестики-нолики”. Верхний узел представляет собой начальное состояние, первым ходит игрок МАХ, ставя значок X в любой пустой клетке. На этом рисунке показана часть дерева поиска, в которой демонстрируются чередующиеся ходы игроков МПЧ (значок О) и МАХ (значок X). Ходы выполняются до тех пор, пока в конечном итоге будет достигнуто одно из тер- минальных состояний, которым могут быть назначены данные о полезности в соот- ветствии с правилами игры Для игры в крестики-нолики дерево игры будет относительно небольшим — в нем меньше чем 9! = 362 880 терминальных узлов (из них только 5478 представ- ляют различные состояния). Но для шахмат существует более 1О40 узлов, так что в этом случае дерево игры лучше понимать как сугубо теоретическую конструк- цию, которую невозможно реализовать в физическом мире.
5.2. Принятие оптимальных решений в играх Игрок мах хочет найти последовательность действий, ведущих к победе, но игроку М1Ы также есть что сказать по этому поводу. А это означает, что стратегия игрока мах должна представлять собой условный план — зависящую от обсто- ятельств стратегию, определяющую ответ на любой из возможных ходов игро- ка мпч. В играх, которые имеют бинарный результат (выигрыш или проигрыш), для генерации условного плана можно использовать И-ИЛИ-поиск (раздел 4.3.2). Фактически для таких игр определение выигрышной стратегии идентично отыска- нию решения задачи планирования в недетерминированной среде: в обоих случа- ях желаемый результат должен быть гарантирован независимо от того, что делает “другая сторона”. Дия игр со многими возможными значениями результата необ- ходимо использовать более общий алгоритм, носящий название ► минимаксный поиск. Рассмотрим простейшую игру, представленную на рис. 5.2. Возможные ходы игрока мах из корневого узла обозначены как а2 и ау Возможными ответными ходами на ход ах для игрока мпч являются Ьх, Ь2, Ь3 и т.д. Данная конкретная игра заканчивается после того, как каждый игрок, мах и мпч, делают по одному ходу. (Согласно терминологии теории игр, это дерево имеет глубину в один ход, кото- рый состоит из ходов, сделанных двумя участниками, каждый из которых называ- ется ► полуходом и вызывает переход на один уровень ниже в дереве игры.) По- лезности терминальных состояний в этой игре меняются в пределах от 2 до 14. Рис. 5.2. Дерево игры с двумя игроками. Узлы в виде светлых треугольников вер- шиной вверх представляют право хода игрока МАХ, а узлы в виде темных треуголь- ников вершиной вниз — право хода игрока М1Ы. Для терминальных узлов в нижнем ряду приведены значения полезности для игрока МАХ, а для остальных узлов — их минимаксные значения. Для игрока МАХ лучший ход в корневом узле — ах, по- скольку он ведет к состоянию с наивысшим минимаксным значением. Лучшим от- ветным ходом игрока М1Ы в этом случае будет Ьу так как он приводит к состоянию с наименьшим минимаксным значением
При наличии дерева игры оптимальную стратегию можно определить, иссле- дуя ► минимаксное значение каждого узла в дереве, которое можно записать как М1М1МАХ(з). Минимаксным значением узла является полезность (для игрока мах) пребывания в данном состоянии при условии, что оба игрока делают ходы оп- тимальным образом от этого узла и до конца игры. Понятно, что минимаксным значением терминального состояния является просто его полезность. В нетерми- нальном состоянии игроку мах следует выбирать ход, ведущий в состояние с мак- симальным значением, а игроку М1Ы — ведущий в состояние с минимальным зна- чением (т.е. с минимальным значением для МАХ, а значит, с максимальным для М1М). Таким образом, имеет место следующее соотношение. М1ММАХ(л) = иТ1ЬГГУ(5,МАХ) если < тахО6яс/юл5(5)М1К1МАх(КЕ8иЕт(5,а)) если тапаеЛс/юм,) Мпч1МАх(КЕ8иЕт(5, а)) если 18-ТеКМПЧАЕ($) То-Моуе($)=мах То-Моуе($)= мпч Применим эти определения к дереву игры, показанному на рис. 5.2. Для тер- минальных узлов на нижнем уровне уже приведены числовые значения, опреде- ляющие их полезность. Первый узел игрока мим, обозначенный как В, имеет трех преемников со значениями 3, 12 и 8, поэтому его минимаксное значение равно 3. Аналогичным образом другие два узла игрока мпч имеют минимаксное значение, равное 2. Корневым узлом является узел игрока мах; его преемники имеют мини- максные значения 3, 2 и 2, поэтому сам корневой узел имеет минимаксное значе- ние 3. Можно также определить понятие ► минимаксного решения, принимае- мого в корне дерева: действие является оптимальным выбором для игрока мах, поскольку ведет к преемнику с наивысшим минимаксным значением. Однако это вовсе не означает, что всегда лучше выбирать оптимальные мини- максные ходы при игре с противником, действующим неоптимально. Рассмотрим сизуацию, когда оптимальная игра с обеих сторон приводит к ничьей, но есть один рискованный ход для игрока мах, приводящий к состоянию, в котором имеется 10 возможных ответных ходов игрока мш, все из которых кажутся разумными, но 9 из них ведут к потерям для мпч и только один — к потерям для мах. Если мах полагает, что М1Ы не имеет необходимой вычислительной мощности для обнаруже- ния единственного оптимального хода, он, возможно, решится на рискованный шаг на том основании, что шанс 9/10 на выигрыш — это лучше, чем неизбежная ничья. 5.2.1. Минимаксный алгоритм поиска Теперь, когда функция М1ММАХ(з) определена, можно использовать ее для построения алгоритма поиска, определяющего лучший ход для игрока мах, про- веряя все возможные действия и выбрав из них то, которое приводит к состоя- нию с максимальным значением Мгммах. На рис. 5.3 приведен такой алгоритм.
Это рекурсивный алгоритм, который проходит весь путь до листовых узлов де- рева игры, а затем минимаксные значения просчитываются и ►резервируют- ся при движении в обратном направлении по всему дереву по мере поэтапного свертывания рекурсии. Например, для дерева, показанного на рис. 5.2, алгоритм вначале выполнил рекурсию с переходом на нижние уровни до трех нижних ле- вых узлов и применил к ним функцию полезности Члыту, чтобы определить, что значения полезности этих узлов равны 3, 12 и 8 соответственно. Затем алго- ритм определил минимальное из этих значений, 3, и возвратил его в качестве за- резервированного значения узла В. Аналогичный процесс позволяет получить зарезервированные значения 2 для узла С и 2 — для узла О. Наконец, берется максимальное из значений 3, 2 и 2 для получения зарезервированного значения 3 корневого узла. ГипсНоп М1М1МАХ-8ЕАКСН(#а?ие, з1а1ё) геШгпз действие асИоп р1ауег <— #ате.То-МоУЕ($/а/е) уа1ие, тоуе <— МАХ-УА1Д]Е(#а>ие, 81а1ё) геШгп томе ГипсНоп МАХ-УАШЕ(#а>ие, з1а1ё) геШгпз пара значений (иИШу, тоуе) 1Г #ате.18-ТЕКМ1МАЕ($/а/е) Шеп геШгп #шие.ит1иту($/а/е, р1ауег\ пи11 V <— -00 Гог еасЬ а 1п #ате.Астюм8($/а/е) до у2, а2 <— Мпч-УА1Л1Е(#ате, #ате.КЕ8ЦЬТ($/а/е, а)) И у2 > V Шеп V, тоуе <— у2, а геШгп V, тоуе ГипсНоп М1М-УАЫ1Е(#а/ие, $1а1ё) ге1игп§ пара значений (иИШу, точё) 1Г^аше.18-ТЕКМПЧАЬ(5/а/е) Шеп геШгп %ате)^\ич\(81а1е,р1ауег\ пи И V <----ЬОО Гог еасЬ а 1пдоие.АстЮ№(5/а/е) до у2, а2 <— МАХ-УАШЕ(#а>ие, #ате.КЕ8иьт($/а/е, а)) И у2 < V Шеп V, тоуе <— у2, а геШгп V, точе Рис. 5.3. Алгоритм расчета оптимального хода с использованием минимаксных зна- чений: выбирается ход, ведущий к терминальному состоянию с наивысшей полез- ностью в предположении, что противник стремится минимизировать эту полезность. Функции МАХ-УАЫЗЕ и МПМ-УАШЕ используются для прохождения через все де- рево игры вплоть до листовых узлов, чтобы определить зарезервированное значение состояния и ведущего к нему хода.
Этот минимаксный алгоритм выполняет полное исследование дерева игры по методу поиска в глубину. Если максимальная глубина дерева равна /пив каждом состоянии имеются Ь допустимых ходов, то временная сложность этого мини- максного алгоритма составляет О(Ьт). Для алгоритма, который формирует сразу всех преемников, пространственная сложность будет равна Офт), а для алгорит- ма, который формирует преемников по одному, — О(т) (см. раздел 3.4.3). Экс- поненциальная временная сложность делает использование алгоритма Мгммах для достаточно сложных игр непрактичным. Например, для шахмат фактор вет- вления Ь равен приблизительно 35, а средняя игра имеет глубину т около 80 по- луходов, а значит, будет абсолютно невозможно провести поиск по 3580 10123 состояниям. Тем не менее алгоритм МШ1МАХ широко используется в качестве основы математического анализа игр. Также, аппроксимируя минимаксный ана- лиз различными способами, можно получить значительно более практичные ал- горитмы. 5.2.2. Оптимальные решения в играх с несколькими игроками Многие популярные игры допускают наличие больше чем двух игроков. Рас- смотрим, как можно распространить идею минимаксного алгоритма на игры с несколькими игроками. С точки зрения технической реализации это сделать не- сложно, но при этом возникают некоторые новые и интересные концептуальные проблемы. Вначале необходимо заменить единственное значение для каждого узла век- тором значений. Например, в игре с тремя игроками, в которой участвуют игро- ки Л, В и С, с каждым узлом ассоциируется вектор (^,гд,гс). Для терминальных состояний этот вектор задает полезность данного состояния с точки зрения каж- дого игрока. (В играх с двумя игроками и нулевой суммой двухэлементный век- тор может быть сокращен до единственного значения, поскольку значения в нем всегда противоположны.) Простейшим способом реализации такого подхода яв- ляется применение функции 11Т1ЫТУ, которая возвращает вектор значений по- лезности. Теперь необходимо рассмотреть нетерминальные состояния. Рассмотрим узел, который в дереве игры, показанном на рис. 5.4, отмечен символом X. В этом состоянии игрок С выбирает, что ему делать. Два возможных варианта ведут к терминальным состояниям с векторами полезности (уА = 1,гд = 2,гс = 6) и (у4 = 4,уд = 2,ус = 3). Поскольку 6 больше, чем 3, игрок С должен выбрать первый ход. Это означает, что если достигнуто состояние X, то дальнейшая игра приведет к терминальному состоянию с полезностями {уа = 1,гв = 2,гс = 6). Следовательно, зарезервированным значением для узла X является этот вектор. Вообще говоря, зарезервированное значение узла п представляет собой вектор полезности тако- го узла-преемника, который имеет наивысшее значение для игрока, выбирающе- го ход в узле п.
Любой, кто играет в игры с несколькими игроками, такие как “Дипломатия” или “Колонизаторы”, быстро осознает, что в них происходит гораздо больше собы- тий, чем в играх с двумя игроками. В играх с несколькими игроками между участ- никами обычно возникают ► альянсы, формальные или неформальные. По ходу игры они могут как создаваться, так и разрушаться. Как нам следует понимать та- кое поведение? Являются ли альянсы естественным следствием выбора оптималь- ных стратегий каждым из участников в играх с несколькими игроками? Как оказа- лось, они действительно могут стать таким следствием. Например, предположим, что игроки Л и В имеют слабые позиции, а игрок С — более сильную позицию. В таком случае и для Д и для В часто оптималь- ным оказывается решение атаковать игрока С, а не друг друга, поскольку ина- че С ликвидирует каждого из них по отдельности. Таким образом, сотрудни- чество двух игроков становится следствием их чисто эгоистичного поведения. Понятно, что как только под совместным натиском противников игрок С осла- беет, альянс потеряет свой смысл и соглашение может нарушить либо игрок Д либо игрок В. Рис. 5.4. Первые три полухода дерева игры с тремя игроками (Л, В, С). Каждый узел обозначен значениями, достигаемыми с точки зрения каждого игрока. Наилучший ход из корня обозначен стрелкой В одних случаях распад альянсов оказывается просто конкретным выражени- ем того, что и так бы произошло. В других случаях попытка нарушить альянс мо- жет вызвать общественное осуждение, а значит, игрокам приходится делать выбор между немедленно достигаемой выгодой от нарушения альянса и потенциальным долговременным ущербом от того, что их будут считать не заслуживающими до- верия. Дополнительная информация об этих сложностях в игре приведена в раз- деле 18.2. Если игра не является игрой с нулевой суммой, то сотрудничество может возникать и при наличии всего двух игроков. Допустим, что в игре имеется
терминальное состояние с полезностями (уА = 1000,ув= 1000) и что 1000 — макси- мальная возможная полезность для каждого игрока В таком случае оптимальная стратегия для обоих игроков заключается в том, чтобы делать все возможное для достижения этого состояния, и это означает, что игроки автоматически вступают в сотрудничество для достижения обоюдно желаемой цели. 5.2.3. Альфа-бета-отсечение Количество игровых состояний экспоненциально зависит от глубины дерева игры. Ни один алгоритм не может полностью исключить эту экспоненциальность, но иногда можно сократить дерево почти наполовину, вычислив правильное ми- нимаксное решение даже без проверки каждого его узла благодаря отсечению (см. раздел 3.5.3) больших частей дерева, узлы в которых не оказывают никакого влияния на конечный результат. Конкретный метод, который будет рассмотрен в этом разделе, называется ►альфа-бета-отсечением. Давайте вновь обратимся к дереву игры с двумя полуходами (см. рис. 5.2) и еще раз проведем расчет оптимального решения, но на этот раз обращая особое внима- ние на то, что известно на каждом этапе этого процесса. Все пояснения к выполня- емым вычислениям приведены на рис. 5.5. Результат наших действий заключается в том, что можно найти минимаксное решение, даже не приступая к вычислению значений двух листовых узлов. Этот подход может также рассматриваться иначе — как упрощение формулы для получения значения М1Ы1МАХ. Допустим, что два преемника узла С на рис. 5.5, не обработанные в процессе вычисления, имеют значения х и у, и предположим, что г — минимальное значение среди х и у. В таком случае значение корневого узла можно найти следующим образом: М1ММАХ(гоо/) = тах(тт(3, 12, 8), т1п(2,х,у), тт(14, 5, 2)) = тах(3, тт(2, х, у), 2) = тах(3, г, 2) где г = тт(2, х, у) 2 = 3. Другими словами, значение корневого узла, а следовательно, и минимаксное решение не зависит от значений отсеченных листовых узлов х и у. Альфа-бета-отсечение может применяться к деревьям любой глубины; к тому же часто возникает возможность отсекать целые поддеревья, а не про- сто листья. Общий принцип состоит в следующем: рассмотрим узел п, находя- щийся где-либо в дереве (рис. 5.6), такой, что участник игры с нашей стороны (назовем его Игрок) имеет возможность выбрать ход, ведущий к этому узлу. Но если Игрок имеет лучший выбор т либо в родительском узле узла п, либо в лю- бой другой точке выбора, находящейся еще выше в дереве, то узел п никогда не будет достигнут в игре, происходящей в действительности. Поэтому, получив
Рис. 5.5. Этапы вычисления оптимального решения для дерева игры, показанного на рис. 5.2. В каждой точке показан ряд возможных значений для каждого узла, а) Пер- вый лист, расположенный ниже узла В, имеет значение 3; следовательно, узел В, ко- торый является узлом игрока МИЧ, имеет, самое большее, значение 3. б) Второй лист, расположенный ниже узла В, имеет значение 12, и игрок МИЧ должен избегать этого хода, поэтому значение В, все еще самое большее, равно 3. в) Третий лист, располо- женный ниже узла В, имеет значение 8, — теперь проверены все преемники узла В и можно сделать вывод, что значение В в точности равно 3. Также теперь можно сде- лать вывод, что значение корневого узла, самое меньшее, равно 3, поскольку у игро- ка МАХ здесь есть выбор со значением 3. г) Первый лист, находящийся ниже узла С, имеет значение 2, следовательно, С, являющийся узлом МИЧ, имеет, самое большее, значение 2. Но уже известно, что узел В позволяет игроку МАХ достичь значения 3, поэтому он не станет выбирать узел С. Это означает, что алгоритму не имеет смысла проверять остальных преемников узла С—пример того, что называют альфа-бета-от- сечением. д) Первый лист расположен ниже узла й и имеет значение 14, поэтому й имеет, самое большее, значение 14, и оно выше, чем наилучшая известная нам альтер- натива для игрока МАХ (т.е. 3). Следовательно, необходимо продолжить исследование преемников узла О. Отметим также, что теперь определены предельные значения всех преемников корневого узла, поэтому его значение также равно, самое большее, 14. е) Второй преемник узла И имеет значение 5, поэтому исследование придется продол- жить. Значение третьего преемника равно 2; следовательно, значение Э точно равно 2, а это значит, что в корневом узле игрок МАХ должен принять решение сделать ход, ве- дущий к узлу В, что позволит ему получить результирующее значение 3
достаточно информации об узле п (путем исследования некоторых из его по- томков), чтобы прийти к такому заключению, можно с уверенностью выпол- нить его отсечение. Напомним, что минимаксный поиск осуществляется в глубину, поэтому в лю- бой момент времени достаточно рассматривать узлы вдоль единственного пути в дереве. Алгоритм альфа-бета-отсечения получил свое название по двум своим дополнительным параметрам в функции МАХ-УАШЕ($йЯе, а, 0), представляющим пределы в зарезервированных значениях, присутствующих во всех узлах вдоль этого пути. а = значение наилучшего варианта (т.е. самое высокое значение), который был до сих пор найден в любой точке выбора вдоль пути для игрока мах. Считайте: а = “по крайней мере”. 0 = значение наилучшего варианта (т.е. самое низкое значение), который был до сих пор найден в любой точке выбора вдоль пути для игрока мты. Считайте: 0 = “не больше чем”. Рис. 5.6. Альфа-бета-отсечение: общий случай. Если для Игрока узел т лучше, чем л, то в игре он никогда не выберет узел л В процессе работы алгоритм альфа-бета-поиска обновляет значения а и 0 и от- секает оставшиеся в узле ветви (т.е. прекращает рекурсивные вызовы), как только становится известно, что значение текущего узла хуже по сравнению с текущим значением а или 0 для игрока мах или мпч соответственно. Полный алгоритм приведен на рис. 5.7. На рис. 5.5 приведена трассировка работы этого алгоритма применительно к дереву игры, показанному на рис. 5.2.
ГипсНоп АьРНА-ВЕТА-$ЕАКСн(#а>ие, з1а1ё) геШгп$ действие асИоп р1ауег«— #ате.То-МоУЕ($/а/е) уа1ие, тоуе «— МАХ-УАШЕ(#ате, з1а1е9 -оо, +оо) геШгп тоуе ГипсНоп МАХ-УА1Л1Е(#ате, $1а1е, а, 0) геШгп$ пара значений (иНШу, тоуе) М#ате.18-ТЕКМ1МАЕ($/а/е) Шеп геШгп %ате13т1иТУ(Ма?е, р1ауег\ пи11 V 4— -00 Гог еасЬ а 1п #ате.Астюм8($/а/е) до у2, а2 <— М1М-УАЕиЕ(#а>ие, #ате.КЕ80ЕТ($/а/е, а), а, (3) И у2 > V Шеп V, точе 4— у2, а а 4— МАХ(а, у) И V > Р Шеп геШгп V, точе геШгп V, точе ШпсНоп Мич-УАЫ1Е(#а>ие, $1а1е, а, 0) геШгп$ пара значений (иНШу9 точе) И #ате.18-ТЕКМ1МАЕ($/а/е) Шеп геШгп ^ате.\Зт1ИТУ(81а1е, р1ауег), пи11 V 4— 4-00 Гог еасЬ а 1п #ате.Астюм8($/а/е) до у2, а2 4— МАХ-УАШЕ(#ате, #ате.КЕ8иьт($/а/е, а), а, (3) И ч2 < V Шеп V, точе 4— у2, а Р 4—Мпч(Р, у) И V < а Шеп геШгп V, точе геШгп V, точе Рис. 5.7. Алгоритм альфа-бета-поиска. Обратите внимание, что используемые здесь функции остались такими же, как и функции алгоритма М1ММАХ-8ЕАКСН, приве- денного на рис. 5.3, за исключением того, что границы в этом случае сохраняют- ся в переменных а и Р, которые затем используются для отсечения ветвей поиска, если рассматриваемое значение находится вне задаваемого ими диапазона 5.2.4. Упорядочивание ходов Эффективность алгоритма альфа-бета-отсечения в большой степени зависит от того, в каком порядке происходит проверка преемников. Например, на рис. 5.5, д, е невозможно было бы вообще выполнить отсечение каких-либо преемников узла I), поскольку в первую очередь были бы сформированы наихудшие преемники (с точ- ки зрения игрока мпч). А если бы в первую очередь был сформирован третий пре- емник со значением 2, то появилась бы возможность отсечь двух остальных. На основании этого можно сделать вывод, что имеет смысл стремиться исследо- вать первыми таких преемников, которые, вероятно, могут оказаться наилучшими.
Если бы это можно было сделать идеально, то для определения наилучшего хода алгоритму альфа-бета-отсечения достаточно было бы исследовать только О(Ът12) узлов вместо О(Ът) узлов, как при использовании минимаксного алгоритма. А это означает, что эффективный коэффициент ветвления становится равным Л, а не Ь, например для шахмат он равен 6, а не 35. Иными словами, за такое же вре- мя альфа-бета-поиск при правильном выборе ходов позволяет проанализировать дерево игры примерно в два раза глубже по сравнению с минимаксным поиском. Если же исследование преемников будет выполняться в случайном порядке, а не по принципу первоочередного выбора наилучших вариантов, то при умеренных значениях Ь общее количество исследованных узлов будет составлять примерно О(/>3т/4). Теперь становится очевидным, что мы не можем достичь точного упоря- дочивания ходов — в этом случае функцию упорядочения можно было бы исполь- зовать, чтобы сыграть идеальную игру! Однако часто к этой цели можно подо- браться достаточно близко. В случае шахмат применение довольно простой функции упорядочения (например, сначала рассматриваются взятия фигур, за- тем — угрозы, далее — ходы вперед, а после этого — ходы назад) позволяет оста- ваться в пределах, не превышающих удвоенное значение результата при наилуч- шем упорядочивании О(Ьт12), Добавление динамических схем упорядочения ходов, в частности таких, в ко- торых в первую очередь проверяются ходы, обозначенные как наилучшие на пре- дыдущем этапе, позволяет подойти совсем близко к этому теоретическому преде- лу. Как прошлое может рассматриваться предыдущий этап — часто сохраняются одни и те же угрозы — или сведения о прошлом могут поступать из предыдущего исследования текущего хода через процедуру итеративного углубления (см. раз- дел 3.4.4). Сначала поиск ведется в пределах одного полухода и составляется рей- тинг ходов на основе полученных оценок. Затем поиск смещается на один полуход глубже и проводится с использованием ранее составленного рейтинга для упоря- дочивания анализируемых ходов и т.д. Увеличение времени поиска за счет итера- тивного углубления может оказаться больше, чем в случае простого упорядочи- вания ходов. Найденные лучшие ходы называют ► ходами-убийцами, а тактика проверять их в первую очередь называется эвристикой убийцы. Как было отмечено в разделе 3.3.3, наличие в дереве поиска избыточных путей к повторяющимся состояниям может вызвать экспоненциальное увеличение стои- мости поиска. Чтобы справиться с этой проблемой, необходимо хранить таблицу ранее достигнутых состояний. При поиске по дереву игры повторяющиеся состо- яния появляются вследствие возникновения ► перестановок — различных пере- становок в последовательности ходов, оканчивающихся в одной и той же позиции. Эту проблему можно устранить созданием ► таблицы перестановок, в которой кешируются эвристические значения состояний. Например, пусть в шахматной партии белые имеют в своем распоряжении ход м'р на который черные могут ответить ходом а также еще один не связан- ный с ним ход м>2 на другой стороне доски, на который может быть дан ответ Ь2,
при этом последовательность ходов [и^, />р и>2, Ь^\ приводит игру к состоянию 5. После исследования большого поддерева ниже состояния 5 для него было найде- но зарезервированное значение, которое было сохранено в таблице перестановок. Далее, в процессе анализа последовательности ходов [м'2, Ь2, и»,, ^>(] выяснилось, что она также приводит к состоянию 5, но теперь вместо повторного выполнения поиска можно просто выбрать зарезервированное значение из таблицы перестано- вок. В шахматах использование таблиц перестановок оказалось очень эффектив- ным приемом, часто позволяющим за то же самое время исследовать дерево игры на вдвое большую глубину. Однако даже при использовании алгоритма альфа-бета-отсечения с разумным упорядочиванием ходов метод минимакса неэффективен для таких игр, как шахма- ты или го, поскольку за доступное время все еще потребуется исследовать слиш- ком много состояний. В первой статье, посвященной игровым компьютерным про- граммам, Программирование компьютера для игры в шахматы ([2040], 1950), Клод Шеннон признал эту проблему и предложили две стратегии. В ► стратегии типа А рассматриваются все возможные ходы на определенную глубину в дереве поиска, а затем эвристическая функция используется для оценки полезности со- стояний на этой глубине. В этом случае дерево игры исследуется широко, но не- глубоко. В ►стратегии типа В игнорируются ходы, которые выглядят слабыми, и анализ ведется исключительно вдоль перспективных направлений “настолько да- леко, насколько это возможно”. Дерево игры исследуется глубоко, но узко. Исторически сложилось так, что большинство шахматных программ принадле- жали к типу А (он будет подробно обсуждаться в следующем разделе), в то время как программы игры в го по большей части относились к типу В (рассматривает- ся в разделе 5.4), поскольку коэффициент ветвления в игре го значительно выше, чем в шахматах. В последнее время программы, принадлежащие к типу В, проде- монстрировали игру на уровне чемпионов мира во многих играх, включая шахма- ты (Сильвер и др. [2064], 2018). 5.3. Эвристический альфа-бета-поиск по дереву Чтобы уложиться в рамки ограниченного времени вычислений, можно раньше времени прекратить поиск и применить эвристическую функцию оценки к до- стигнутым состояниям, продуктивно обрабатывая нетерминальные узлы так, как если бы они были терминальными. Другими словами, идея состоит в замене функ- ции Шилу функцией Будь, оценивающей полезность состояния. Также проверка терминального состояния заменяется ►тестом останова, возвращающего значе- ние 1гие (истина) для терминальных состояний, а в противном случае — прини- мающее решение, когда остановить поиск, исходя из заданной глубины поиска и любого свойства состояния, которое было выбрано для анализа. Это дает нам фор- мулу Н-М1ММАХ($, (I) для определения эвристического минимаксного значения со- стояния 5 на глубине поиска <7.
Н-М1М1МАХ(.У, </) = Еуаь(л,мах) тахоеле^и) Н-М1Н1МАх(КЕ8иьт(5,а),</ +1) пшъеле/юлки) Н-М|ммлх(КЕ8иьт(5,а), б/ +1) если 1з-Ситогр(5,</) если То-Моуе(5)=мах если То-Моуе($)=мпч 5.3.1. Функции оценки Эвристическая функция оценки ЕуаЦл, р) возвращает оценку ожидаемой по- лезности игры из состояния я для игрокар по аналогии с тем, как эвристические функции, описанные в главе 3, возвращают оценку расстояния до цели. Для терми- нальных состояний должно выполняться равенство Еуаь(л, р) = 1Гпиту($, р), а для нетерминальных состояний оценка должна быть где-то между проигрышем и выи- грышем'. НТ1ЫТУ(/о55,р) ЕУАЬ(5, р) 11Т1ЫТУ(м'Ш, р). Помимо этих требований, что делает функцию оценки хорошей? Во-первых, ее вычисление не должно требовать слишком много времени! (Наша конечная цель — сделать поиск более быстрым.) Во-вторых, функция оценки должна быть тесно связана с реальными шансами на победу. Можно поинтересоваться: а что означа- ет выражение “шансы на победу”? В конце концов, игра в шахматы не предполагает случайных элементов: о ее текущем состоянии известно абсолютно все и с полной уверенностью, бросание костей не предусмотрено и, если игрок сделает ошибку, ре- зультат заранее предопределен. Но если поиск должен останавливаться в нетерми- нальных состояниях, то алгоритм неизбежно не будет иметь точных сведений об окончательных исходах этих состояний (хотя теоретически эта неопределенность может быть устранена при наличии бесконечных вычислительных ресурсов). Давайте сделаем эту идею более конкретной. Большинство функций оценки работает путем вычисления различных ► характеристик состояния, например в шахматах можно рассматривать как характеристики количество на доске белых пе- шек, черных пешек, белых ферзей, черных ферзей и т.д. Подобные характеристики, рассматриваемые совместно, могут определять различные категории или классы эквивалентности состояний: состояния в каждой категории будут иметь одинако- вые значения всех принимаемых во внимание характеристик. Например, одна кате- гория может включать все эндшпили с двумя пешками против одной пешки. Любая заданная категория будет включать некоторые состояния, приводящие (при пра- вильной игре) к победе, другие — к ничьей, а остальные — к проигрышу. Функция оценки не позволяет определить, какие состояния приводят к тому или иному результату, но способна вернуть единственное значение, оценивающее процентное соотношение состояний с каждым результатом. Например, предполо- жим, что имеющийся опыт указывает, что 82% состояний, относящихся к катего- рии эндшпилей с двумя пешками против одной пешки, приводят к победе (полез- ность +1); 2% — к проигрышу (0) и 16% — к ничьей (1/2). Тогда разумная оценка для состояний этой категории будет иметь дожидаемое значение: (0,82х+1) +
(0,02x0) + (0,16 х 1/2) = 0,90. В принципе, ожидаемое значение можно определить для каждой категории состояний, получив в итоге функцию оценки, применимую для любого состояния. На практике такого рода анализ требует слишком много категорий, а следова- тельно, потребуется слишком много практического опыта, чтобы достоверно оце- нить все вероятности. Вместо этого в большинстве функций оценки вычисляются отдельные представленные в числовом виде значения вклада, зависящего от ка- ждой характеристики, после чего эти значения комбинируются для поиска сум- марного значения. За прошедшие века шахматисты выработали способы оценки стоимости позиции, следуя почти той же самой идее. Например, в любом учебни- ке по шахматам для начинающих можно найти приближенные оценки ► стоимо- сти материала для каждой фигуры: пешка имеет стоимость 1, конь или слон — 3, ладья — 5, а ферзь — 9. Другие характеристики, такие как “хорошая пешечная структура” и “безопасность короля”, могут оцениваться как равные, скажем, поло- вине стоимости пешки. Чтобы получить оценку позиции, стоимости таких харак- теристик просто складываются. В математике функция оценки такого типа называется ► взвешенной линей- ной функцией, поскольку она может быть представлена в следующем виде: ЕУАЬ(5) = М'|/1($) + +... + М'/Да) = X» /=| где каждая функция^ оценивает некоторую характеристику позиции (такую, как количество белых слонов), а каждый коэффициент представляет собой вес (ука- зывает, насколько важна эта характеристика). Эти веса должны быть нормализова- ны таким образом, чтобы сумма всегда находилась в диапазоне от проигрыша (0) до победы (+1). Надежное преимущество, эквивалентное стоимости пешки, дает существенную вероятность выигрыша, а надежное преимущество, эквивалентное трем пешкам, почти определенно приводит к победе, как показано на рис. 5.8, а. Выше было сказано, что функция оценки должна сильно коррелировать с реаль- ными шансами на победу, но эта корреляция вовсе не должна быть линейной: если состояние 5 имеет в два раза больше шансов на победу, чем состояние 5', то со- всем не требуется, чтобы значение ЕуаЦл) было точно в два раза больше значения ЕУАф'); вполне достаточно, чтобы Еуаь($) > ЕуаЦл'). На первый взгляд, метод вычисления суммы стоимостей характеристик может показаться приемлемым, но в действительности он основан на очень радикальном допущении, что вклад каждой характеристики не зависит от стоимости других ха- рактеристик. По этой причине в современных программах игры в шахматы и дру- гие игры используются также нелинейные комбинации характеристик. Например, пара слонов может стоить больше удвоенной стоимости одного слона, а слон в конце игры стоит больше, чем в ее начале — когда характеристика номер хода до- статочно велика или значение характеристики количество оставшихся фигур уже невелико.
Рис. 5.8. Две шахматные позиции, различающиеся только позицией одной белой ладьи внизу справа, а) Черные имеют преимущество в одного коня и две пешки и должны выиграть партию, б) Белые берут ферзя и получают преимущество, кото- рого должно быть достаточно для победы а) Ход белых б) Ход белых А откуда появились характеристики и их веса? Они не являются частью правил игры в шахматы и были выработаны в течение столетий на основе опыта игры лю- дей в шахматы. В играх, для которых опыт такого рода недоступен, веса в функ- ции оценки могут быть оценены с помощью методов машинного обучения, обсуж- даемых в главе 22. Применение этих методов к шахматам подтвердило, что слон действительно стоит примерно трех пешек, и, похоже, многовековой человеческий опыт может быть воспроизведен всего за несколько часов машинного обучения. 5.3.2. Останов поиска Следующий этап состоит в модификации алгоритма Аьрна-Вета-8еаксн таким образом, чтобы он вызывал эвристическую функцию Буль, когда возникает подхо- дящая ситуация, чтобы остановить поиск. С точки зрения реализации потребуется лишь заменить две строки в алгоритме на рис. 5.7, в которых упоминается функ- ция 18-Текмпчаь, следующей строкой. И #ате.18-СЦТОГР($^е, с!ер1к) Шеп геШгп %ате.ЕУАк(Ма(е, р!ауег\ пи11 Также необходимо предусмотреть выполнение определенных регистрирующих операций, чтобы текущее значение глубины с1ер1к наращивалось при каждом ре- курсивном вызове. Наиболее прямолинейный подход к управлению объемом поис- ковых операций состоит в задании фиксированной глубины поиска, когда функция 18-СиТ0РР($/а/е, с1ер1к) возвращает значение 1гие для всех значений с1ер1к, превы-
шающих некоторую заданную величину с1 (а также для всех терминальных состоя- ний). Глубина <7 выбирается таким образом, чтобы ход выбирался в пределах уста- новленного интервала времени. Более надежный подход состоит в использовании метода итеративного углубления (см. главу 3). По истечении отведенного на рас- четы времени программа возвращает ход, выбранный по итогам наиболее глубо- кого завершенного поиска. Возможны и дополнительные преимущества: если в ка- ждом раунде итеративного углубления сохранять данные в таблице перестановок, последующие раунды будут выполняться быстрее за счет использования этих оце- нок для упорядочивания ходов. Однако подобные простые подходы могут приводить к ошибкам из-за прибли- зительного характера функции оценки. Еще раз рассмотрим простую функцию оценки для шахмат, основанную на учете преимущества в материале. Предполо- жим, что программа, выполняя поиск с заданным пределом глубины, достигла по- зиции, приведенной на рис. 5.8, б, в которой черные имеют перевес в одного коня и две пешки. Она расценила бы это как достаточное основание для определения эвристической оценки данного состояния, объявив тем самым, что это состояние, по всей вероятности, приведет к победе черных. Но на следующем ходу белые бе- рут ферзя черных без компенсации, и в действительности данная позиция являет- ся выигрышной для белых, но об этом можно было бы узнать, только заглянув впе- ред еще на один полуход. Функция оценки должна применяться только к таким позициям, которые мож- но считать ► спокойными, т.е. такими, в которых нет возможных ходов, ведущих к резким изменениям ситуации (таких, как взятие ферзя). В неспокойных позици- ях функция Е-Сбторр должна возвращать значение/а1$е и поиск должен продол- жаться до достижения спокойной позиции. Этот дополнительный ► поиск спо- койных позиций иногда ограничивается анализом лишь определенных типов ходов, например взятие фигур, быстро устраняющих состояние неопределенно- сти в данной позиции. Устранение ► эффекта горизонта является более сложной задачей. Подобный эффект возникает, когда программа сталкивается с ходом противника, причиняю- щим серьезный ущерб и в конечном счете неизбежным, но который можно вре- менно отложить, используя тактику задержки. Рассмотрим шахматную позицию, приведенную на рис. 5.9. Очевидно, что невозможно избежать потери черного сло- на. Например, ладья белых может взять его, переместившись на Ы, затем — на а1, а затем — на а2 (взятие находится на расстоянии 6 полуходов). Но у черных есть последовательность ходов, при которой взятие слона вытал- кивается “за горизонт” выполняемого анализа. Предположим, что черные ведут поиск на глубину 8 полуходов. Большинство ходов черных ведет к возможному взятию их слона, а значит, они будут отмечены как “плохие” ходы. Но в ходе ана- лиза черные также будут проверять и последовательность ходов, начинающуюся с объявления шаха пешкой, склоняя белого короля к тому., чтобы взять ее. Затем черные могут повторить тот же сценарий со второй пешкой, и вся эта процедура
потребует такого количества ходов, что ситуацию взятия слона уже нельзя будет обнаружить в оставшейся части их поиска. В результате черные приходят к выво- ду, что в этой линии игры удается спасти слона, жертвуя две пешки, тогда как на самом деле все, что будет достигнуто, — это бесполезная потеря двух пешек и вы- талкивание по-прежнему неизбежной потери слона за горизонт, в пределах кото- рого черные могут видеть. Рис. 5.9. Пример эффекта горизонта. При ходе черных их слон, безусловно, обречен. Но черные могут задержать это событие, сделав ход пешкой и объявив шах белому королю, что должно побудить короля взять эту пешку. Это выталкивает неизбежную потерю слона за горизонт, и потому жертва пешки рассматривается поисковым алго- ритмом как хороший ход, а не как плохой Одна из возможных стратегий ослабления эффекта горизонта заключается в разрешении ► выборочных продлений — ходов, которые “очевидно лучше”, чем все остальные ходы в данной позиции, даже тогда, когда в нормальной ситуации поиск в этой точке должен быть уже остановлен. В нашем примере ранее прове- денный поиск уже покажет, что три хода белой ладьи (с Ь2 на Ы, потом — с на а1 и затем — взятие слона с а1 на а2) являются, каждый в свою очередь, оче- видно лучшими ходами. Поэтому, даже если последовательность ходов пешками подталкивает нас к горизонту, этим очевидно лучшим ходам будет предоставлен шанс продолжить поиск. В результате дерево поиска станет более глубоким, но, поскольку обычно имеется лишь небольшое количество выборочных продлений, эта стратегия не приводит к добавлению к дереву множества общих узлов и уже доказала свою эффективность на практике.
5.3.3. Прямое отсечение Если метод альфа-бета-отсечения предполагает отбрасывание тех ветвей дерева поиска, которые не могут повлиять на окончательную оценку, то метод ► прямого отсечения предусматривает отбрасывание ветвей, которые кажутся плохими, но, вероятно, могут оказаться и хорошими. Следовательно, такая стратегия экономит время вычислений, рискуя допустить ошибку. Согласно классификации Шеннона, эта стратегия относится к типу В. Очевидно, что большинство людей, играющих в шахматы, рассматривают лишь несколько ходов из каждой позиции (по крайней мере, сознательно). Одним из подходов в методике прямого отсечения является поиск по лучу (см. раздел 4.1.3): для каждого полухода из всех возможных ходов анализируется только узкий “луч” из п лучших ходов (в соответствии с функцией оценки). К со- жалению, этот подход является довольно опасным, поскольку нет никакой гаран- тии, что лучший ход не будет отброшен еще до того, как появится возможность его обнаружить. Алгоритм РковСит, или “вероятностное отсечение” (Буро, [395], 1995), являет- ся версией альфа-бета-поиска с прямым отсечением. В нем для уменьшения шанса отсечения лучшего хода используется статистическая информация, полученная из предыдущего опыта. Алгоритм альфа-бета-отсечения отбрасывает любой узел, ко- торый доказуемо не попадает в текущий диапазон (а, 3), а алгоритм РковСит от- секает узлы, которые, вероятно, находятся вне этого диапазона. Эта вероятность вычисляется путем выполнения неглубокого поиска для определения резервиру- емого значения V узла, а затем прошлый опыт используется для оценки, насколь- ко вероятно, что резервируемое значение V на глубине <7 в дереве может оказаться вне диапазона (а, 3). Буро применил этот метод в своей программе игры в реверси, ЬобКТЕЬЬО, и установил, что версия его программы с использованием алгоритма РковСчт превосходила обычную версию в 64% случаев, даже когда обычной вер- сии предоставлялось вдвое больше времени. Другой метод, ► сокращение последних ходов, строится на предположении, что упорядочение ходов было выполнено корректно, и поэтому те из них, которые оказались в конце списка возможных ходов, с меньшей вероятностью окажутся хо- рошими. Но вместо того, чтобы полностью их обрезать, алгоритм просто умень- шает глубину, до которой эти ходы анализируются, чем и достигается экономия времени. Если сокращенный поиск возвращает значение выше текущего значе- ния а, можно повторно запустить его, но уже на полную глубину. В результате совместного использования всех описанных выше методов мож- но создать программу, которая будет неплохо играть в шахматы (или другие игры). Предположим, что реализована функция оценки для шахмат и предусмотрена раз- умная проверка останова в сочетании с поиском спокойной позиции. Кроме того, предположим, что, затратив месяцы на скрупулезную разработку программ, мани- пулирующих данными на уровне битов, мы получили возможность формировать
и оценивать примерно миллион узлов в секунду на новейшем ПК. Коэффициент ветвления для шахмат составляет в среднем около 35, а 355 равно приблизитель- но 50 миллионам, поэтому при использовании минимаксного поиска мы полу- чим возможность заглядывать вперед примерно лишь на пять полуходов в минуту, и правила проведения соревнований предоставляли бы нам недостаточно време- ни, чтобы вести поиск на глубину шести полуходов. У такой программы, хотя и не совсем некомпетентной, легко сможет выиграть любой любитель шахмат средне- го уровня, который часто способен планировать на шесть или даже восемь полу- ходов вперед. Альфа-бета-поиск и достаточно большая таблица перестановок позволяют до- стичь глубины приблизительно в 14 полуходов, что приводит к усилению игры до уровня мастера. Если заменить обычный ПК рабочей станцией с 8-ю графи- ческими процессорами, то это позволит программе анализировать более милли- арда узлов в секунду, но для достижения уровня гроссмейстера дополнительно потребуется тщательно настроенная функция оценки и большая база данных с за- писями оптимальных ходов в эндшпиле. Лучшие шахматные программы, такие как 8ТОСКР18Н, имеют все это и часто достигают глубины 30 и даже более полу- ходов в дереве поиска, благодаря чему намного превосходят возможности любого игрока-человека. 5.3.4. Поиск или просмотр таблицы Для программы игры в шахматы кажется как-то чрезмерным начинать игру с анализа дерева из миллиарда игровых состояний только для того, чтобы прийти к решению сделать ход пешкой е2 на е4 (самый популярный первый ход). Книги, описывающие хорошую игру в шахматы в начале партии и эндшпиле, доступны уже более ста лет (Таттерсалл [2184], 1911). Поэтому не удивительно, что многие игровые программы в начале и конце игры вместо поиска по дереву используют просмотр таблицы. В начале игры компьютерные программы в основном полагаются на опыт че- ловека. Самые лучшие советы от людей-экспертов в отношении того, как начинать каждую игру, могут быть взяты из книг и занесены в таблицы для использования компьютерами. Кроме того, компьютеры могут получать статистическую инфор- мацию из базы данных ранее сыгранных игр с целью установить, какая последо- вательность ходов в начале игры чаще всего приводит к выигрышу. Для первых нескольких ходов возможностей немного, и большинство позиций будут присут- ствовать в таблице. Обычно после примерно 10 или 15 ходов игра приходит в со- стояние, которое встречается уже нечасто, и программе необходимо перейти от просмотра поисковой таблицы к поиску по дереву игры. Ближе к концу игры возможных позиций вновь становится меньше, а следо- вательно, просматривать таблицу вновь становится проще. Но здесь в качестве экспертов выступают уже компьютеры: возможности компьютерного анализа в
эндшпиле выходят далеко за пределы человеческих возможностей. Игроки-нович- ки могут выиграть эндшпиль с королем и ладьей против одного короля, просто следуя нескольким правилам. Другие окончания, такие как король, слон и конь против одного короля, будут достаточно сложными и для мастера, для них не су- ществует достаточно краткого описания оптимальной стратегии. С другой стороны, компьютерная программа может полностью решить энд- шпиль, рассчитав стратегию, которая будет представлять собой отображение каж- дого возможного состояния в лучший ход в этом состоянии. В результате компью- тер сможет демонстрировать превосходную игру, просто отыскивая правильный ход в этой таблице. Такая таблица создается с помощью ► обратного минимакс- ного поиска: сначала рассматриваются все способы размещения имеющихся фи- гур на доске (например, белого короля, слона и коня и черного короля). Некоторые из таких возможных позиций окажутся позициями выигрыша белых, — отметим их как таковые. Затем меняем правила шахмат на обратные, чтобы можно было де- лать обратные, а не обычные ходы. Любой ход белых, который, независимо от лю- бого возможного ответного хода черных, приводит к позиции, отмеченной как вы- игрышная, также должен приводить к выигрышу. Подобный поиск продолжается, пока все возможные позиции не будут определены как выигрышные, проигрыш- ные или ничейные, в результате чего будет создана безошибочная таблица поиска для всех эндшпилей с этими фигурами. Такие расчеты были проведены не толь- ко для окончаний с королем, конем и слоном против одного короля, но и для всех эндшпилей с семью или менее фигурами. Созданные в результате таблицы содер- жат 400 триллионов позиций. Отметим, что анализ эндшпиля с 8-ю фигурами по- требует создания таблицы с 40 квадриллионами позиций. 5.4. Поиск по дереву методом Монте-Карло Игра го хорошо иллюстрирует два основных недостатка эвристического аль- фа-бета-поиска по дереву. Первый состоит в том, что для го коэффициент ветвле- ния в начале игры достигает 361, а это означает, что возможности альфа-бета-по- иска будут ограничены лишь 4 или 5 полуходами. Второй состоит в том, что для игры го очень трудно отыскать хорошую функцию оценки, поскольку стоимость материала в этой игре не является сильным показателем, а большинство позиций находятся в движении до самого конца игры. Из-за этих двух проблем современ- ные разработчики программ игры в го отказались от альфа-бета-поиска и вместо него используют стратегию, получившую название ► поиск по дереву методом Монте-Карло (Моп1е Саг1о 1гее зеагск — МСТ8)? Базовая стратегия МСТ8 не использует эвристическую функцию оценки. Вместо этого значение состояния оценивается как средняя полезность по ряду 3 Алгоритмы Монте-Карло — это рандомизированные алгоритмы, получившие свое название в честь казино “Монте-Карло” в Монако.
► симуляций завершенных игр, начиная с данного состояния. При симуляции (ее также называют ► прогоном или ► прокачкой) по очереди выбираются ходы сна- чала для одного игрока, затем — для другого, пока не будет достигнуто терминаль- ное состояние. На этом этапе по правилам игры (а не по подверженным ошибкам эвристическим оценкам) определяется, кто выиграл или проиграл и с каким сче- том. Для игр, в которых единственным результатом является выигрыш или прои- грыш, “средняя полезность” совпадает с “процентом побед”. Как же можно выбрать, какой ход сделать при прогоне? Если просто выбирать очередной ход случайным образом, то после нескольких симуляций мы получим ответ на вопрос “Какой ход является лучшим, если оба игрока играют случайным образом?” Для некоторых простых игр это одновременно будет ответом и на во- прос “Какой ход является лучшим, если оба игрока играют правильно?”, но для большинства игр это будет не так. Чтобы получить полезную информацию от про- гонов, необходимо иметь ► стратегию прогонов, которая смещает выбор ходов в сторону хороших. В игре го и других играх стратегия прогонов была успешно из- учена при игре компьютеров с самим собой с использованием нейронных сетей. Иногда используются специфические для игры эвристики, такие как “рассмотреть ходы взятия” в шахматах или “захватить угловой квадрат” в реверси. Имея стратегию прогонов, далее нужно принять два решения: с каких позиций игра будет начинаться и сколько прогонов выделяется для каждой позиции? Са- мый простой ответ, называемый ► чистым поиском по методу Монте-Карло, со- стоит в том, чтобы выполнить симуляций, начиная с текущего состояния игры, и проследить, какой из возможных ходов с текущей позиции будет иметь самый высокий процент побед. Для некоторых стохастических игр этот алгоритм сходится к оптимальной игре по мере увеличения значения IV, но для большинства игр этого будет недо- статочно — дополнительно потребуется ► стратегия выбора, выборочно фоку- сирующая вычислительные ресурсы на важных частях дерева игры. Ее назначе- ние — сбалансировать два фактора: ► исследование состояний, для которых было выполнено мало прогонов, и ► использование тех состояний, которые хорошо себя показали в прошлых прогонах, чтобы получить более точную оценку их сто- имости. (Подробнее о компромиссе исследования/использования читайте в разде- ле 17.3.) В поиске по дереву методом Монте-Карло это делается посредством со- хранения дерева поиска и его расширения после каждой итерации, включающей следующие четыре этапа, как показано на рис. 5.10. • Выбор. Начиная с корня дерева поиска, выбираем ход (руководствуясь стра- тегией выбора), ведущий к узлу-преемнику, и повторяем этот процесс, пере- мещаясь вниз по дереву до листовых узлов. На рис. 5.10, а показано дерево поиска, корень которого представляет состояние, в которое белые только что переместились и в котором (на данный момент) белые выиграли 37 из 100 си- мулированных игр. Утолщенная стрелка показывает выбор очередного хода
черными, ведущий к узлу, из которого черные уже выиграли 60 из 79 симу- ляций. Это наилучший процент побед для трех доступных ходов, так что данный выбор является примером использования. Однако также было бы разумно выбрать и узел 2/11 — в целях его дополнительного исследования, поскольку при только 11 выполненных с его использованием прогонах этот узел все еще характеризуется значительной неопределенностью в оценке, которая в конечном итоге может оказаться значительно лучше, если собрать больше информации. Далее этап выбора подобным образом продолжается вплоть до достижения листового узла с оценкой 27/35. • Расширение. Дерево поиска расширяется — для выбранного узла генериру- ется новый дочерний узел с нулевыми результатами. На рис. 5.10, б этот но- вый узел помечен как 0/0. (В некоторых версиях на этом этапе генерируется более одного дочернего узла.) • Симуляция. Из нового дочернего узла проводится симуляция дальнейшей игры вплоть до чьей-либо победы, при этом ходы обоих игроков выбирают- ся в соответствии со стратегией прогонов. Эти ходы не записываются в де- рево поиска. На рисунке симуляция приводит к победе черных. • Обратное распространение. Теперь полученный результат симуляции ис- пользуется для обновления всех пройденных на этапе выбора узлов поиско- вого дерева вплоть до его корня. Так как прогон выиграли черные, в узлах черных увеличиваются на единицу как счетчик побед, так и счетчик прого- нов, так что значение 27/35 заменяется значением 28/36, а значение 60/79 — значением 61/80. Поскольку белые проиграли, в узлах белых будет увеличен на единицу только счетчик прогонов, поэтому значение 16/53 заменяется значением 16/54, а значение 37/100 в корневом узле заменяется значением 37/101. Выполнение цикла из этих четырех этапов повторяется либо заданное количе- ство раз, либо до истечения отведенного для этого времени, а затем возвращается ход с наибольшим количеством прогонов. Одна очень эффективная стратегия выбора называется “верхние границы до- стоверности, применяемые к деревьям” или кЧСТ (1}ррег Соп/1<1епсе Ьоипск аррИе<11о Тгеез). Она предусматривает ранжирование каждого возможного хода на основе формулы “верхней границы уверенности 1, применяемой к деревьям” и обычно называемой ►11СВ1 (подробнее читайте в разделе 17.3.3). Для некото- рого узла и эта формула выглядит следующим образом. 11СВ\(п) — 4“ С х \ #(л) Здесь Цл) является общей полезностью всех прогонов, прошедших через узел п, 1У(п) является количеством этих прогонов, а Ракемт(л) определяет родительский
узел для узла л в дереве. Таким образом, первый компонент и(п)/М(п) представ- ляет в формуле использование и является средней полезностью узла п. Выражение под квадратным корнем представляет исследование: в его знаменателе стоит Мл), а это означает, что оно будет иметь большее значение для узлов, которые исследо- вались лишь несколько раз. В числителе этого выражения стоит логарифм от об- щего количества прогонов, выполненных для узла, являющегося родительским для узла л. Это означает, что если процент выбора узла л при прогонах отличен от нуля, то весь второй компонент формулы, представляющий исследование, будет стремиться к нулю по мере увеличения этого процента, и в конечном итоге в про- гонах предпочтение будет отдаваться узлам с наибольшей средней полезностью. Черные выигрывают Рис. 5.10. Одна итерация процесса выбора хода по алгоритму поиска по дереву ме- тодом Монте-Карло (МСТ8) с использованием стратегии верхних границ достовер- ности, применяемых к деревьям (ЛСТ), выполняемая после того, как 100 подобных итераций уже были выполнены, а) В направлении вниз по дереву выбирается после- довательность ходов вплоть до листового узла с отметкой 27/35 (27 побед черных из 35 прогонов), б) Выбранный узел расширяется, и выполняется симуляция (прогон), заканчивающаяся победой черных, в) Результат симуляции распространяется в об- ратном направлении вверх по дереву Коэффициент С является константой, определяющей баланс между двумя ком- понентами формулы, представляющими использование и исследование. Теорети- чески он должен иметь значение, равное \/2 , но на практике создатели игровых программ проверяют несколько различных значений С и выбирают то, которое дает наилучшие результаты. (В некоторых программах используются слегка разли- чающиеся формулы, например в программе АьрнаХеко добавлен компонент для представления вероятности хода, который вычисляется нейронной сетью, обучен- ной на результатах прошлых игр программы с самой собой.) Для дерева на
рис. 5.10 при С = 1,4 наивысшую оценку ЬСВ1 будет иметь узел 60/79, но при С = 1,5 это будет уже узел 2/11. На рис. 5.11 представлен полный алгоритм 11СТ МСТ8. Когда итерации закан- чиваются, возвращается ход с наибольшим количеством прогонов. Можно поду- мать, что было бы лучше вернуть узел с самой высокой средней полезностью, но сама идея метода состоит в том, что узел с 65/100 выигрышами будет лучше, чем узел с 2/3 выигрышами, поскольку для последнего имеет место значительная не- определенность в возможных результатах. В любом случае формула 1/СВ1 гаран- тирует, что узел с наибольшим количеством прогонов почти всегда будет узлом и с самым высоким процентом выигрышей, поскольку процесс выбора способствует росту процента выигрышей по мере увеличения количества прогонов. ГипсНоп МонтЕ-САКЬО-ТкЕЕ-8ЕАКСН(ЛаГе) геТигпх действие асИоп 1гее«— МоОЕ(.?/а/е) нЫ1е 18-Т1ме-Кема1Ы1ыо() до 1еа/ <— 8ЕЬЕСТ(/гее) сЫШ«— ЕхрАКО(/еа/) гезик <— 81М11ЬАТЕ(с/н7</) ВАСК-РЕОРАОАТЕ(леж/г, с/п7<7) геШгп ход из Астюы8(5/а/е), узел которого имеет наибольшее число прогонов Рис. 5.11. Алгоритм поиска по дереву методом Монте-Карло. Дерево игры, (гее, инициализируется, а затем цикл 8ЕЕЕСТ/ЕХРАМО/81М11ЕАТЕ/ВАСК-РН.ОРАОАТЕ по- вторяется до тех пор, пока не закончится отведенное на его выполнение время, по- сле чего возвращается ход, ведущий к узлу с наибольшим количеством прогонов С увеличением глубины дерева игры время просчета прогонов увеличивает- ся линейно, а не экспоненциально, поскольку в каждой точке выбора реализуется только один ход. А значит, у нас имеется достаточно времени для выполнения мно- жества прогонов. Например, рассмотрим игру с коэффициентом ветвления 32 и средней продолжительностью партии в 100 полуходов. При наличии вычислитель- ной мощности, достаточной для проведения анализа миллиарда игровых состоя- ний до выполнения хода, минимаксный алгоритм позволит полностью исследовать до 6 полуходов, алгоритм альфа-бета-отсечения с правильным упорядочиванием ходов — до 12 полуходов, а алгоритм поиска по дереву по методу Монте-Карло сможет выполнить до 10 миллионов прогонов. Какой подход лучше? Все зависит от точности эвристической функции в сравнении с эффективностью стратегий вы- бора и прогона. Накопленный практический опыт показывает, что поиск по методу Монте-Кар- ло имеет преимущество над альфа-бета-поиском для таких игр, как го, у кото- рых коэффициент ветвления очень высок (а значит, альфа-бета-поиск не сможет вести анализ достаточно глубоко), или когда имеются трудности в отыскании
эффективной функции оценки. Суть альфа-бета-поиска — в выборе пути к узлу, имеющему самое высокое значение функции оценки с учетом того, что противник будет пытаться минимизировать данное значение. А это означает, что если функ- ция оценки является неточной, то и альфа-бета будет работать неточно. Ошибоч- ная оценка для одного из узлов может привести альфа-бета-поиск к ошибочному выбору (или к отказу от выбора) пути к этому узлу. Однако поиск по методу Мон- те-Карло полагается на общий результат множества выполненных прогонов, а зна- чит, он гораздо менее уязвим для одиночных ошибок. Можно объединить преи- мущества метода МСТ8 и функции оценки, выполнив прогон для определенного количества узлов с последующим отсечением и использованием функции оценки. Также возможно комбинировать определенные аспекты альфа-бета-поиска и поиска по методу Монте-Карло. Например, в играх, которые могут длиться мно- го ходов, можно использовать ► раннее завершение прогона, когда выполнение прогона принудительно завершается после выполнения в нем слишком большого количества ходов, а затем либо он оценивается с использованием эвристической функции оценки, либо просто объявляется о проигрыше. Поиск по методу Монте-Карло может быть применен к совершенно новым играм, для которых накоплено еще недостаточно опыта для нахождения эффек- тивных функций оценки. Если правила игры известны, выполнение поиска по ме- тоду Монте-Карло не требует никакой дополнительной информации. В стратегиях выбора и прогона могут эффективно использоваться экспертные знания, собран- ные вручную, если они доступны, но хорошие стратегии можно также найти, ис- пользуя обучение нейронных сетей, играющих сами с собой. Поиск по методу Монте-Карло имеет один недостаток: если есть вероятность, что единственный ход может радикально изменить всю игру, то по самой сути сво- его стохастического характера поиск по методу Монте-Карло может просто слу- чайно не суметь его обнаружить. Другими словами, использование в поиске по методу Монте-Карло отсечки типа В может привести к тому, что жизненно важ- ная линия игры может оказаться просто неисследованной. Поиск по методу Мон- те-Карло также испытывает затруднения, когда в игре имеются состояния, являю- щиеся “очевидно” выигрышными для одной или другой стороны (в соответствии с имеющимися у нас знаниями и результатами функции оценки), но требующие вы- полнения еще множества ходов при прогоне, пока победитель будет установлен. Долгое время считали, что альфа-бета-поиск лучше подходит для таких игр, как шахматы, — с низким коэффициентом ветвления и хорошими функциями оценки. Однако в последнее время подход с использованием метода Монте-Карло проде- монстрировал значительный успех шахматах, и в других играх. Общая идея симуляции будущих ходов с наблюдением результатов и использо- ванием их для определения, какие ходы являются хорошими, — это один из видов обучения с подкреплением, которое подробно обсуждается в главе 22.
5.5. Игры с элементами случайности ► Стохастические игры (или игры с элементами случайности) подводят нас немного ближе к непредсказуемости реальной жизни за счет включения в игровой процесс некоторых случайных элементов, таких как бросание костей. Нарды — это типичная стохастическая игра, сочетающая в себе удачу и умение. В позиции игры в нарды, показанной на рис. 5.12, белые бросили кости с результатом 6-5 и теперь имеют четыре возможных варианта хода (в каждом из них одна фишка пе- ремещается вперед — против часовой стрелки — на 5 позиций, а затем еще одна вперед на 6 позиций). Рис. 5.12. Типичная позиция игры в нарды. Цель игры состоит в том, чтобы переве- сти все свои фишки в определенный угол доски, а затем снять их. Белые ходят про- тив часовой стрелки от поля 1 к полю 25, а черные — по часовой стрелке от поля 24 к полю 0. Фишка может переходить на любое поле, если на нем нет несколько фи- шек противника; если же на этом поле есть только одна фишка противника, она по- падает в плен и должна начать свое движение с самого начала. В показанной здесь позиции белые сделали бросок с результатом 6-5 и теперь должны сделать выбор среди четырех допустимых ходов: (5-11,5-10), (5-11, 19-24), (5-10,10-16) и (5-11, 11-16), где запись (5-11, 11-16) означает, что одна фишка перемещается с пози- ции 5 на позицию 11, а затем эта же фишка перемещается с позиции 11 на позицию 16
Хотя белым известно, каковы их допустимые ходы, они не знают, какие очки принесет бросание костей черным, и поэтому не могут определить, какими будут допустимые ходы черных. Это означает, что белые не имеют возможности сфор- мировать стандартное дерево игры такого типа, которое встретилось нам в шахма- тах или крестиках-ноликах. Дерево игры в нарды, показанное на рис. 5.13, кроме узлов мах и М1Ы, должно включать кузлы жеребьевки, — такие узлы на рисун- ке представлены кружками (СНА1ЧСЕ). Ветви, ведущие от каждого узла жеребьевки, обозначают возможные результаты метания жребия, поэтому каждая из них отме- чена надписью с указанием количества очков и вероятности, с которой могут быть получены эти очки. Существует 36 возможных сочетаний очков на двух кубиках, и все они являются равновероятными; но поскольку такие сочетания очков, как 6-5 и 5-6, для игры являются одинаковыми, имеется только 21 различное сочетание очков. Поэтому вероятность появления шести дублей (от 1-1 до 6-6) равна 1/36, а каждое из 15 остальных различных сочетаний очков имеет вероятность 1/18. Рис. 5.13. Схематическое изображение дерева игры для одной из позиций игры в нарды Следующий этап состоит в том, чтобы понять, как следует принимать правиль- ные решения. Безусловно, и в этом случае требуется найти такой ход, который ведет к наилучшей позиции. Однако результирующие позиции не имеют опреде- ленных минимаксных значений. Вместо этого существует возможность вычислить
только дожидаемое значение, в котором ожидаемый результат устанавливается с учетом всех возможных выпадений жребия, которые могут произойти. Эго приводит к обобщению минимаксного значения для детерминированных игр до дожидаемого минимаксного значения (ехресИтттах усйиё) для игр с узла- ми жеребьевки. Терминальные узлы и узлы мах и мпч работают точно так же, как и раньше (с оговоркой, что допустимые ходы для мах и мпч будут зависеть от исхода броска костей в предыдущем узле жеребьевки). Для узлов жеребьевки ожидаемое значение вычисляется как сумма значений, полученных в результате всех возмож- ных выпадений жребия, взвешенных по вероятности каждого случайного действия. ЕХРЕСТ1М1ММАХ(5) = Египту($, мах) если тахо Ехрест1М1ммах(Ке$иет(.у, а)) если ] тта Ехреспм1ММах(Ке8ИЕт(5, а)) если Р(г)ЕхРЕСТ1МПЧ1МАх(КЕ8ИЬТ(5, г)) если 18-Тек.мпчае($) То-Моуе($) = мах То-Моуе(л) = мпч То-Моуе(л) = СНАИСЕ Здесь г представляет возможный бросок костей (или другое случайное событие), а КЕ8ИЕГ(5, г) является тем же состоянием 5, но с дополнительным обстоятельством, что результатом броска костей является г. 5.5.1. Функции оценки в играх с узлами жеребьевки По аналогии с минимаксными значениями очевидный подход к использованию ожидаемых минимаксных значений состоит в том, чтобы останавливать поиск в некоторой точке и применять функцию оценки к каждому листу. На первый взгляд может показаться, что функции оценки для таких игр, как нарды, должны быть полностью подобны функциям оценки для шахмат, — они просто должны присва- ивать более высокие значения полезности лучшим позициям. Но в действительно- сти наличие узлов жеребьевки означает, что потребуется более тщательный анализ смысла таких оценочных значений. На рис. 5.14 показано, что происходит в стохастических играх: если функция оценки присваивает листовым узлам значения [1, 2, 3, 4], то наилучшим является ход а если она присваивает значения [1, 20, 30, 400], то наилучшим становится ход а2. В результате программа ведет себя совершенно по-разному, если вносятся изменения в шкалу некоторых оценочных значений, даже если порядок предпочте- ния узлов остается тем же. Как оказалось, чтобы избежать этой проблемы, функция оценки должна возвра- щать значения, представляющие собой положительное линейное преобразование вероятности выигрыша (или ожидаемой полезности для игр, допускающих иные результаты, помимо победы/проигрыша). Подобная связь с вероятностью являет- ся важным и общим свойством ситуаций, предполагающих наличие неопределен- ности, и оно детально обсуждается в главе 16.
Рис. 5.14. При трансформации оценочных значений листовых узлов, даже с сохра- нением их упорядоченности, наилучший ход может измениться Если бы программе были заранее известны все результаты жеребьевки, кото- рые должны произойти в течение оставшейся части игры, то поиск решения в сто- хастической игре был бы полностью аналогичен поиску решения в игре без же- ребьевки, который выполняется минимаксным алгоритмом поиска за время О(Ьт)9 где Ь является коэффициентом ветвления, а т — максимальной глубиной дерева игры. Но поскольку в алгоритме, использующем ожидаемые минимаксные значе- ния, рассматриваются все возможные последовательности результатов жеребьев- ки, его выполнение потребует времени О(Ьтп \ где п — количество различных ва- риантов результатов жеребьевки. Даже если глубина поиска ограничена некоторой небольшой величиной е7, из- за таких дополнительных затрат времени по сравнению с минимаксным алгорит- мом в большинстве стохастических игр стремление заглянуть в дерево поиска на очень большую глубину будет неосуществимым. В нардах п равно 21, а Ь обычно принимается равным около 20, но в некоторых ситуациях этот коэффициент может достигать 4000, — при выбрасывании игроком серии дублей. По-видимому, все, на что в этой игре можно рассчитывать, — это заглянуть вперед на три полухода. Другой вариант подхода к этой проблеме состоит в следующем: преимуще- ством альфа-бета-поиска является то, что в нем игнорируются те будущие направ- ления развития игры, которые не должны быть реализованы, если в игре всегда выбирается наилучший ход. В результате появляется возможность сосредоточить- ся лишь на перспективных, многообещающих событиях. Но в играх, включаю- щих бросание костей перед каждым ходом, нет перспективных последователь- ностей ходов, — даже наиболее многообещающий ход будет иметь место только в 2/36 случаях, поскольку для его выполнения необходимо, чтобы результаты пред- шествующего броска сделали данный ход допустимым. И это общая проблема,
возникающая в любой ситуации, допускающей наличие неопределенности: коли- чество вариантов дальнейших действий возрастает в огромной степени, а постро ение подробных планов действий становится бессмысленным, поскольку мир, ско- рее всего, не станет нам подыгрывать. Видимо, вам уже пришла в голову мысль, что к деревьям игр с узлами жере- бьевки можно попробовать применить какой-то метод, подобный альфа-бета-от- сечению. Как оказалась, такая возможность действительно существует. Анализ узлов мш и мах остается неизменным, но можно также реализовать отсечение уз- лов жеребьевки с использованием некоторой доли изобретательности. Рассмотрим узел жеребьевки С на рис. 5.13 и попробуем определить, что будет происходить с его значением по мере исследования и оценки его дочерних узлов. Можно ли найти верхний предел значения С до того, как будут проверены все его дочерние узлы? (Напомним, что именно это требуется в альфа-бета-поиске для того, чтобы можно было выполнить отсечение узла и его поддерева.) На первый взгляд это может показаться невозможным, поскольку значение узла С представляет собой среднее значение его дочерних узлов, а для того, что- бы вычислить среднее значение нескольких чисел, необходимо знать все эти чис- ла. Тем не менее, если установить пределы допустимых значений функции полез- ности, то можно будет прийти и к пределам для среднего значения, не зная всех числовых значений. Например, пусть все значения полезности находятся в преде- лах от -2 до +2, тогда значения листовых узлов являются ограниченными, а это, в свою очередь, позволяет установить верхний предел значения узла жеребьевки, не рассматривая все его дочерние узлы. В играх, в которых коэффициент ветвления узлов жеребьевки очень высок — как в игре “Яцзы” (покер на кубиках), в которой при каждом ходе бросается пять кубиков, — можно попробовать проанализировать прямое отсечение, когда для анализа выбирается лишь небольшое количество возможных результатов жере- бьевки. Или же можно вообще отказаться от использования функции оценки и об- ратиться к поиску по дереву методом Монте-Карло, при котором каждый прогон будет включать и случайные броски костей. 5.6. Частично наблюдаемые игры Бобби Фишер заявил, что “шахматы — это война”, тем не менее в шахматах от- сутствует по крайней мере одна важная характеристика реальных войн, а имен- но — ►частичная наблюдаемость. В “тумане войны” истинное местопребыва- ние вражеских подразделений часто неизвестно, пока оно не будет установлено при непосредственном контакте. Как результат любые войны обязательно включают в себя действия разведчиков и шпионов, направленные на сбор информации, а так- же использование маскировки и ложных целей для введения врага в заблуждение. Частично наблюдаемые игры разделяют все эти характеристики, а значит, ка- чественно отличаются от тех игр, которые обсуждались в предыдущих разделах.
Такие видеоигры, как 81агСгай, являются особенно сложными, поскольку их сле- дует классифицировать как частично наблюдаемые, мультиагентные, недетерми- нированные, динамические с неизвестной средой. В детерминированных частично наблюдаемых играх неопределенность относи- тельно состояния игрового поля возникает всецело по причине отсутствия досту- па к выбору, сделанному противником. Этот класс включает в себя многие детские игры, такие как “Морской бой” (корабли каждого игрока расположены в местах, скрытых от противника) или “Стратего” (места фигур известны, но типы фигур скрыты). В этом разделе речь пойдет об игре ► “Кригшпиль”, частично наблюда- емой версии шахмат, в которой фигуры игрока полностью невидимы для против- ника. Многие другие игры также имеют частично наблюдаемые версии: “фантом- ные го”, “фантомные крестики-нолики”, “экранные сёги”. 5.6.1. Кригшпиль: частично наблюдаемые шахматы Правила игры кригшпиль следующие: белые и черные видят доски, содержа- щие только их собственные фигуры. Арбитр, который может видеть все фигуры, выступает в игре в качестве судьи и периодически делает объявления, которые слышат оба игрока. Сначала белые предлагают арбитру ход, который был бы до- пустимым, если бы на доске не было черных фигур. Если расположение черных фигур препятствует этому ходу, арбитр объявляет “недопустимо” и белые продол- жают предлагать ходы, пока не будет найден допустимый, — по ходу дела собирая информацию о местонахождении черных фигур. Как только игрок предлагает допустимый ход, арбитр делает одно из следую- щих объявлений: “Взятие на квадрате А”, если была взята одна из фигур против- ника, или “Шах 2>”, если черному королю угрожает взятие, где О определяет вари- ант нападения и выбирается из следующих фраз: “конем”, “по горизонтали”, “по вертикали”, “по длинной диагонали” или “по короткой диагонали”. Если черным поставлен мат или они попали в патовое положение, арбитр объявляет об этом, — в противном случае право хода передается черным. Кригшпиль может показаться игрой сложной до невозможности, но люди справ- ляются с ней довольно хорошо, да и компьютерные программы начинают набирать обороты. Полезно будет вспомнить о понятии доверительного состояния, как оно было определено в разделе 4.4 и проиллюстрировано на рис. 4.14, — это набор всех логически возможных состояний на доске с учетом полной истории восприятий на текущий момент. Исходно доверительное состояние белых включает единствен- ную позицию, поскольку фигуры черных еще не совершали каких-либо ходов. По- сле того как белые сделают первый ход и черные ответят, доверительное состояние белых будет включать 20 позиций, потому что у черных имеется 20 вариантов от- вета на любой начальный ход белых. Отслеживание содержимого доверительно- го состояния по ходу игры в точности представляет собой задачу оценки состоя- ния, для которой этап обновления был дан в уравнении (4.6) в разделе 4.4.4. Можно
отобразить оценку состояния игры кригшпиль непосредственно на частично на- блюдаемую, недетерминированную рабочую среду из раздела 4.4, если рассматри- вать противника как источник недетерминизма. В этом случае функция КЕ81ЛТ8 для хода белых будет включать (предсказуемый) результат их собственного хода и не- предсказуемый результат ожидаемого ответного хода черных.4 Учитывая текущее доверительное состояние, белые могут поставить вопрос “Есть ли возможность выиграть игру?” Для частично наблюдаемой игры понятие стратегии меняется: вместо определения хода, который следует сделать в ответ на каждый возможный ход противника, необходимо определить ход для каждой веро- ятной последовательности восприятий, которая может быть получена. Для кригшпиля выигрышной стратегией или ► гарантированным матом бу- дет такая стратегия, которая для каждой возможной последовательности восприя- тий приведет к фактическому объявлению мата для любого возможного состояния на доске в текущем доверительном состоянии независимо от того, как будет хо- дить оппонент. При таком определении доверительное состояние противника уже не имеет никакого значения, эта стратегия должна работать, даже если противник сможет увидеть все фигуры. Такой подход значительно упрощает необходимые вычисления. На рис. 5.15 представлена часть стратегии гарантированного мата для эндшпиля с королем и ладьей против короля. В этом случае у черных только одна фигура (король), поэтому доверительное состояние белых может быть представ- лено в виде одной доски, на которой отмечена каждая позиция, которую может за- нимать черный король. Для поиска гарантированных матов к пространству доверительных состояний можно применить общий алгоритм И-ИЛИ-поиска, описанный в разделе 4.4. Ал- горитм инкрементного поиска в доверительных состояниях, упоминавшийся в раз- деле 4.4.2, часто позволяет найти матовые ситуации в середине игры вплоть до глубины 9 — далеко за пределами возможностей большинства игроков-людей. В дополнение к гарантированным матам в кригшпиле присутствует совершен- но новая концепция, не имеющая смысла в полностью наблюдаемых играх: ► ве- роятностный мат. Такие матовые состояния также требуют работы с каждым состоянием игры в доверительном состоянии; они являются вероятностными в от- ношении рандомизации ходов победившего игрока. Чтобы понять основную идею, рассмотрим задачу поиска одинокого черного короля, используя только белого ко- роля. Просто перемещаясь случайным образом, белый король в конечном итоге столкнется с черным королем, даже если последний попытается избежать этой участи, поскольку черные не могут угадывать правильные уклоняющиеся ходы бесконечно. Согласно терминологии теории вероятностей, обнаружение происхо- дит с вероятностью 1. 4 Иногда доверительное состояние может стать слишком большим, чтобы его было удобно представлять просто как список состояний на доске, но пока мы будем игнориро- вать эту проблему. В главах 7 и 8 предлагаются методы компактного представления для любых, в том числе очень больших, доверительных состояний.
Рис. 5.15. Часть стратегии гарантированного мата в эндшпиле с королем и ладьей против одного короля, представленная на уменьшенной доске. В начальном дове- рительном состоянии черный король находится в одном из трех возможных мест на доске. За счет выполнения комбинации пробных ходов стратегия сводит возможное положение к единственному возможному месту. Завершение игры до объявления мата оставляется читателю в качестве упражнения В этом смысле эндшпиль с королем, слоном и конем против одного короля яв- ляется выигрышным. Белые возьмут черного короля на прицел с помощью беско- нечной последовательности случайных ходов, один из которых черные рано или поздно угадают неправильно и тем раскроют свою позицию, что неизбежно при- ведет к мату. С другой стороны, эндшпиль с королем и двумя слонами против ко- роля белые выигрывают с вероятностью 1 - с. В этом случае белые могут добиться победы, только оставив одного из своих слонов незащищенным на один ход. Если черным повезет оказаться в нужном месте и взять этого слона (недопустимый ход в случае, если слон защищен), то игра будет закончена вничью. Белые могут решиться сделать этот рискованный ход в некоторой случайно выбранной точке
посреди очень длинной последовательности ходов и, таким образом, уменьшить е до сколь угодно малой величины, но никогда не смогут уменьшить е до нуля. Иногда стратегия объявления мата работает лишь для некоторых состояний на доске в текущем доверительном состоянии, но не для остальных. Попытка при- менения такой стратегии может быть успешной, что приведет к ► случайному мату — случайному в том смысле, что белые не могут знать, что это будет мат, — если фигуры черных оказались в нужных местах. (Большинство матов в играх между людьми носят именно такой случайный характер.) Эта идея естественным образом приводит к вопросу о том, насколько вероятно, что данная стратегия бу- дет выигрышной, что, в свою очередь, поднимает вопрос о том, насколько вероят- но, что каждое состояние на доске в текущем доверительном состоянии является истинным состоянием на доске. Можно предположить, что все состояния на доске в текущем доверительном состоянии одинаково вероятны, но это неверно. Рассмотрим, например, довери- тельное состояние белых после первого хода черных в игре. По определению (в предположении, что черные играют оптимальным образом) черные должны сде- лать оптимальный ход, поэтому всем состояниям на доске, достигаемым в резуль- тате неоптимальных ходов черных, должны быть назначены нулевые вероятности. Однако этот аргумент также не совсем верен, поскольку цель каждого игро- ка состоит не только в том, чтобы перемещать фигуры в правильные квадраты, но и в том, чтобы минимизировать имеющуюся у противника информацию об их местопо- ложении. Разыгрывание любой предсказуемой “оптимальной” стратегии дает про- тивнику некоторую информацию. Следовательно, оптимальная игра в частично наблюдаемых играх требует готовности играть до некоторой степени случайно. (Вот почему инспекторы санитарной службы выполняют инспекционные посеще- ния ресторанов случайным образом.) Это означает, что иногда выбирается ход, ко- торый может показаться слабым “по своей сущности”, но его непредсказуемость придает ему дополнительную силу, поскольку противник вряд ли предусмотрел какую-то защиту от него. Из приведенных выше соображений может показаться, что такие вероятно- сти, связанные с состояниями на доске в текущем доверительном состоянии, мо- гут быть рассчитаны только с учетом оптимальной рандомизированной страте- гии. В свою очередь, вычисление такой стратегии, как кажется, требует знания вероятностей всех тех различных состояний на доске, которые могут иметь ме- сто. Эту головоломку можно решить посредством принятия на вооружение суще- ствующего в теории игр понятия равновесия решений, которое подробно анали- зируется в главе 18. Равновесие определяет оптимальную рандомизированную стратегию для каждого игрока. Для кригшпиля вычисление равновесия являет- ся слишком дорогостоящей процедурой. В настоящее время разработка эффек- тивных алгоритмов для обычной игры в кригшпиль является открытой темой ис- следований. Большинство систем выполняют ограниченный по глубине прогноз в
собственном пространстве доверительных состояний, игнорируя доверительное состояние противника. Функции оценки напоминают функции для полностью на- блюдаемой игры, но дополнительно включают компонент для определения разме- ра доверительного состояния, — чем меньше, тем лучше! Мы вернемся к теме ча- стично наблюдаемых игр при обсуждении теории игр в разделе 18.2. 5.6.2. Карточные игры Карточные игры, такие как бридж, вист, червы и покер, имеют стохастиче- скую частичную наблюдаемость, т.е. недостающая информация генерируется за счет случайной раздачи карт. На первый взгляд может показаться, что карточные игры аналогичны играм с бросанием костей: раздача карт происходит случайным образом, а сами карты определяют, какие ходы могут быть сделаны каждым игроком. Однако в картах вся жеребьевка происходит с самого начала! Хотя эта аналогия и является некоррект- ной, она предлагает некий алгоритм: принять начало игры как узел жеребьевки с каждой возможной раздачей как одним из возможных результатов, а затем вос- пользоваться формулой ЕХРЕСТ1М1ММАХ, чтобы выбрать наилучший ход. Обрати- те внимание, что при таком подходе единственный узел жеребьевки является кор- невым узлом дерева, после чего игра становится полностью наблюдаемой. Такой подход иногда называют усреднением по ясновидению, поскольку он предполагает, что после того, как раздача была выполнена, игра становится полностью наблюда- емой для обоих игроков. Несмотря на свою интуитивную привлекательность, эта стратегия может сбить с толку. Рассмотрим следующую историю. День первый. Дорога Л ведет к горшку с золотыми монетами; дорога В ведет к развилке. Можно видеть, что если от развилки пойти налево, то дорога приве- дет к двум горшкам с золотом, а если пойти направо, то попадешь под автобус. День второй. Дорога А ведет к горшку с золотыми монетами; дорога В ведет к развилке. Можно видеть, что если от развилки пойти направо, то дорога приве- дет к двум горшкам с золотом, а если пойти налево, то попадешь под автобус. День третий. Дорога Л ведет к горшку с золотыми монетами; дорога В ведет к развилке. Если от развилки выбрать правильное направление, то найдешь два горшка с золотом, а если неправильное, то попадешь под автобус. К сожалению, остается неизвестным, какое из двух направлений правильное. Метод усреднения по ясновидению приводит к следующим рассуждениям. В день первый правильным выбором является дорога В, в день второй дорога В также является правильным выбором, в день третий ситуация такая же, как в день первый или день второй, поэтому дорога В все равно должна быть правильным выбором. Теперь можно понять, как усреднение по ясновидению терпит неудачу: оно не учитывает того доверительного состояния, в котором окажется агент после
выполнения действия. Полное игнорирование доверительного состояния нежела- тельно, особенно когда одна из возможностей представляет собой верную гибель. Поскольку предполагается, что каждое будущее состояние автоматически будет одним из точно известных, в методе усреднения по ясновидению никогда не вы- бираются действия, которые собирают информацию (например, первый этап на рис. 5.15), а также действия, которые скрывают информацию от оппонента или предоставляют информацию партнеру, поскольку предполагается, что эта инфор- мация им уже известна. В покере этот метод полностью исключает ►блеф,5 исхо- дя из убеждения, что противник может видеть все карты. В главе 17 показано, как создавать алгоритмы, которые делают все это в силу решения задач действительно частично наблюдаемых решений, имеющих результатом стратегию оптимального равновесия (см. раздел 18.2). Несмотря на указанные недостатки, усреднение по ясновидению может быть достаточно эффективной стратегией, особенно с некоторыми хитростями, позво- ляющими заставить ее работать лучше. В большинстве карточных игр количество возможных раздач является довольно большим. Например, в игре в бридж каждый игрок видит только две из четырех рук, т.е. есть две невидимые ему руки по 13 карт в каждой, поэтому количество раздач составляет ) = 10 400 600. Поиск решения даже для одной раздачи — задача довольно сложная, поэтому поиск ре- шения для 10 миллионов раздач просто не обсуждается. Один из способов спра- виться с этим огромным числом является абстракция, т.е. расценивание анало- гичных рук как идентичных. Например, очень важно, какие в руке есть тузы и короли, тогда как наличие в руке четверок или пятерок не столь важно и от этого можно абстрагироваться. Другим способом справиться с большим количеством вариантов является пря- мое отсечение: рассматривается только небольшая случайная выборка из раздач и снова рассчитывается оценка Ехрест1МПЧ1МАХ. Даже при достаточно малом — скажем, от 100 до 1000 — этот метод дает хорошее приближение. Его вполне можно применять и к детерминированным играм, таким как кригшпиль, анализируя лишь некоторую выборку возможных состояний игры вместо всех возможных вариантов, если только существует некоторый способ оценить, насколько вероятно каждое из возможных состояний. Также может оказаться полезным выполнять эвристический поиск лишь на определенную глубину вместо поиска по всему дереву игры. До сих пор предполагалось, что каждая раздача одинаково вероятна. Это имеет смысл для таких игр, как вист и черви. Однако в бридже началу игры предшеству- ет этап торгов, на котором каждая команда указывает, сколько взяток она ожидает взять. Поскольку игроки делают заявки на основании имеющихся у них карт, дру- гие игроки получают некоторую информацию о вероятности Р(з) каждой раздачи. Принять это во внимание при поиске решения о том, как разыграть собственную 5 Блеф — решение делать ставки так, как будто у вас хорошая рука, даже если на са- мом деле это не так — является основной частью стратегии покера.
руку, достаточно сложно по причинам, указанным в приведенном выше обсужде- нии игры кригшпиль: игроки могут вести торг таким образом, чтобы свести к ми- нимуму информацию, передаваемую их оппонентам. Компьютеры уже достигли сверхчеловеческого уровня эффективности игры в покер. Программа игры в покер МЬгаШз приняла участие в 20-дневном безлимит- ном турнире по Техасскому холдему с четырьмя лучшими игроками в покер в мире и решительно победила их всех. Поскольку в покере очень много возможных со- стояний, в программе МЬгайю для сокращения пространства состояний использу- ется абстракция: две руки ААА72 и ААА64 считаются эквивалентными (это “три туза и несколько младших карт”), а также ставки в 200 долларов и 201 доллар мо- гут рассматриваться как одинаковые. Более того, программа ЫЬгайБ вела наблю- дение за другими игроками и после каждого матча по ночам анализировала стра- тегию оппонентов и вносила необходимые изменения в собственную стратегию, стремясь закрыть обнаруженные бреши. В целом, чтобы добиться победы, на раз- работку и обучение этой программы было использовано около 25 миллионов часов работы суперкомпьютера. Огромные затраты вычислительных мощностей на подготовку программы 1лЬгай18 (и аналогичные затраты для программ АьрнаХеяо и других подобных си- стем) позволяют предположить, что игра на уровне чемпиона мира может оказать- ся недостижимой для исследователей с ограниченным бюджетом. В какой-то степе- ни это так: точно так же, как не следует ожидать, что вам удастся собрать гоночную машину, способную победить в чемпионате Формулы-1, из запасных частей в сво- ем гараже, несомненное преимущество всегда будет у тех, у кого есть доступ к суперкомпьютерам или специальному оборудованию, такому как тензорный про- цессор. Эго особенно верно при обучении системы, но обучение можно успешно проводить и с помощью краудсорсинга. Например, система ЬееьаХеко с открытым исходным кодом представляет собой повторную реализацию системы АьрнаХеко, которая обучается посредством игры с самой собой на компьютерах участников-до- бровольцев. После обучения вычислительные требования к ведению реальных игр в турнирах становятся более скромными. Программа АернаБтая выигрывает игры 81агСгай II, работая на скромном настольном ПК с одним графическим процессо- ром, а программу АьрнаХеко также можно запустить в этом режиме. 5.7, Ограничения игровых алгоритмов поиска Поскольку вычисление оптимальных решений в сложных играх часто являет- ся просто неосуществимым, во всех алгоритмах приходится использовать неко- торые предположения и приблизительные оценки. В альфа-бета-поиске для при- близительной оценки используется эвристическая функция оценки, а в поиске по методу Монте-Карло вычисляется приблизительное среднее по результатам серии прогонов, выполняемых в случайном режиме. Выбор используемого алгоритма
в определенной степени зависит от особенностей каждой игры: если коэффици- ент ветвления велик или сложно подобрать эффективную функцию оценки, пред- почтение следует отдать поиску по методу Монте-Карло. Тем не менее оба упомя- нутых алгоритма страдают от фундаментальных ограничений. Одно важное ограничение альфа-бета-поиска заключается в его уязвимости к ошибкам эвристической функции оценки. На рис. 5.16 показано дерево игры с дву- мя полуходами. Минимаксный поиск предлагает выбрать правую ветвь, поскольку 100 > 99. Этот выбор будет правильным, если все оценки являются действитель- но точными. Но предположим, что оценка каждого узла делается с ошибкой, ко- торая не зависит от других узлов и подчиняется нормальному распределению со стандартным отклонением о. Тогда в действительности левая ветвь будет лучше в 71% случаев, когда о = 5, и в 58% случаев, когда о = 2 (потому что один из четырех листьев правой ветви в этом случае, вероятно, станет меньше 99). Если ошибки функции оценки не являются независимыми, то вероятность ошибки еще больше возрастает. Этот факт трудно компенсировать, потому что у нас нет хорошей моде- ли зависимости между значениями узлов, имеющих общего родителя. Рис. 5.16. Дерево игры с двумя полуходами, для которого минимаксный поиск с ис- пользованием эвристической функции оценки может делать ошибки Вторым ограничением как для альфа-бета-поиска, так и для поиска по методу Монте-Карло, является то, что они предназначены для расчета (предела) значений допустимых ходов. Но иногда существует один ход, который очевидно лучший (например, когда вообще есть только один допустимый ход), и в этом случае нет смысла тратить вычислительные ресурсы на выяснение его полезности, — лучше просто выбрать этот ход. Хороший алгоритм поиска должен использовать идею полезности развертывания узла, выбирая для развертывания только те узлы, кото- рые, вероятно, приведут к открытию значительно лучших ходов. Если нет вариан- тов развертывания узлов, полезность которых превышает стоимость этой процеду- ры (в отношении затрат времени), то алгоритм должен прекратить поиск и просто выбрать ход. Это замечание касается не только ситуаций с явными фаворитами, но
и тех случаев, когда имеются симметричные ходы, для которых сколь угодно боль- шой объем поиска не позволит показать, что один ход лучше другого. Данный тип рассуждений о том, какие вычисления следует выполнять, называ- ется ► метарассуждениями (рассуждениями о рассуждениях). Этот подход рас- пространяется не только на ведение игр, но и на рассуждения любого рода в це- лом. Все вычисления выполняются для того, чтобы выработать лучшие решения, все они имеют стоимость и характеризуются определенной вероятностью дости- жения конкретного улучшения качества решения. Алгоритм поиска по методу Монте-Карло действительно предусматривает проведение метарассуждений в от- ношении предоставления вычислительных ресурсов наиболее важным частям де- рева, но делает это не оптимальным образом. Альфа-бета-поиск представляет собой реализацию метарассуждений простей- шего вида, а именно — теоремы о том, что некоторые ветви дерева можно игно- рировать без ущерба для всей игры. Но такие метарассуждения могут проводить- ся гораздо лучше. В главе 16 будет показано, как сделать изложенные идеи более точными и реализуемыми. Третье ограничение состоит в том, что как в алгоритме альфа-бета-поиска, так и в алгоритме поиска по методу Монте-Карло все рассуждения выполняются на уровне отдельных ходов. Очевидно, что люди играют в игры иначе: они могут рассуждать на более абстрактном уровне, преследуя цель более высокого уров- ня, например поимку ферзя противника, и используя эту цель для избирательной выработки правдоподобных планов. В главе 11 будет обсуждаться этот тип плани- рования, а в разделе 11.4 будет показано, как планировать при наличии иерархии представлений от абстрактных до конкретных. Четвертая проблема заключается в возможности включения машинного обуче- ния в процесс игрового поиска. Ранние игровые программы полагались исключи- тельно на опыт человека в отыскании эффективных функций оценки, выборе по- исковых стратегий и приемов повышения эффективности. Лишь совсем недавно появились такие программы, как АьрнаХеко (Сильвер и др. [2064], 2018), которые полагаются на машинное обучение в процессе игры с самой собой вместо исполь- зования экспертных знаний человека в отношении отдельных игр. Тема машинного обучения подробно обсуждается в нескольких главах этой книги начиная с главы 19. Резюме В этой главе было рассмотрено несколько разных игр с целью установить, что означает понятие “оптимальная игра”, а также разобраться в том, как должен дей- ствовать агент в состязательной среде любого типа. • Любая игра может быть определена с помощью начального состоя- ния (вид игрового поля, подготовленного к игре), допустимых действий в каждом состоянии, результатов каждого действия, функции проверки
терминального состояния (позволяющей определить, когда игра оконче- на) и функции полезности, применяемой к терминальным состояниям и указывающей, кто выиграл и каков финальный счет. • В играх с двумя игроками, дискретных, детерминированных, пошаговых, с полной информацией и нулевой суммой для выбора оптимальных ходов может использоваться алгоритм минимаксного поиска с перебором узлов в глубину. • Алгоритм альфа-бета-поиска вычисляет такие же оптимальные ходы, как и алгоритм минимаксного поиска, но позволяет достичь гораздо большей эф- фективности, исключая из рассмотрения поддеревья, которые, по всей веро- ятности, не нужны для нахождения решения. • Обычно не представляется возможным рассмотреть все дерево игры (даже с помощью альфа-бета-поиска), поэтому необходимо в какой-то точке оста- навливать поиск и применять функцию оценки, определяющую прибли- женное значение полезности достигнутого состояния. • Альтернативный вариант — поиск по дереву методом Монте-Карло (МСТ8) — оценивает состояния не с помощью эвристической функции, а посредством симуляции хода игры от текущего узла до терминального со- стояния с использованием правил игры для определения победителя. По- скольку ходы, выбранные во время прогона, не обязательно будут оптималь- ными, процесс симуляции повторяется несколько раз, а оценка определяется усреднением полученных результатов. • Во многих игровых программах используются таблицы предварительно вы- численных лучших ходов для начала и завершения игры, что позволяет вме- сто поиска использовать простой просмотр таблицы. • Ведение игр с элементами случайности можно осуществить с помощью алго- ритма ЕХРЕСТ1М1Ы1МАХ — расширения алгоритма минимаксного поиска, в ко- тором узлы жеребьевки оцениваются посредством определения средней по- лезности всех их дочерних узлов с учетом вероятности каждого дочернего узла. • В играх с неполной информацией, таких как кригшпиль, ведение опти- мальной игры требует рассуждений о текущем и будущем доверительных состояниях для каждого игрока. Одна из простых аппроксимаций может быть получена путем усреднения значения данного действия по всем воз- можным конфигурациям недостающей информации. • Программы уже продемонстрировали свою способность победить в турни- рах лучших игроков-людей в таких играх, как шахматы, шашки, червы, го, покер и многих других. Человек еще удерживает свои позиции лишь в не- скольких играх с неполной информацией, таких как бридж и кригшпиль. В видеоиграх, таких как 81агСгай и Оо1а 2, программы соревнуются с экс- пертами-людьми, однако часть их успеха можно связать со способностью программ выполнять многие действия очень быстро.
Библиографические и исторические заметки В 1846 году Чарльз Бэббидж принял участие в дискуссии о возможности ком- пьютерных шахмат и шашек ([1626], 1961). Он, не имея представления об экспо- ненциальной сложности деревьев поиска, утверждал, что “комбинации, обеспе- чиваемые его аналитической машиной, с лихвой покрывают любые потребности даже при игре в шахматы”. Бэббидж также спроектировал, но не построил машину специального назначения для игры в крестики-нолики. Первая реальная маши- на для ведения игры была построена в 1890 году испанским инженером Леонардо Торресом и Кеведо. Она была предназначена для разыгрывания шахматного энд- шпиля в конфигурации “король и ладья против короля” и гарантировала победу из любой начальной позиции в игре с этими фигурами. Упоминание минимаксного алгоритма можно найти уже в 1912 году в статьях Эрнста Цермела, создателя со- временной теории множеств. Ведение игр было одной из первых задач, анализировавшихся в исследованиях в области ИИ усилиями таких пионеров, как Конрад Цузе ([2454], 1945), Норберт Винер в его книге “Кибернетика” ([2339], 1948) и Алан Тьюринг ([2236], 1953). Но именно Клод Шеннон в статье “Программирование компьютера для игры в шахма- ты” ([2040], 1950) изложил основные принципы создания современных программ ведения игр: представление позиций на игровом поле, функция оценки, понятие спо- койной позиции и некоторые идеи для селективного поиска по дереву игры. Слей- тер ([2085], 1950) выдвинул идею представления функции оценки как линейной ком- бинации функций, подчеркивая важность изменчивости этой функции в шахматах. Джон Маккарти сформулировал идею альфа-бета-поиска в 1956 году, но опу- бликовал свое открытие позднее (Харт и Эдвадс [973], 1961). Кнут и Мур ([1245], 1975) доказали правильность альфа-бета-алгоритма и проанализировали его вре- менную сложность, в то время как Перл [1187] показал, что альфа-бета-поиск яв- ляется асимптотически оптимальным среди всех алгоритмов поиска в дереве игры на постоянную глубину. В работе Берлинера [185] (1979) представлен алгоритм эвристического поиска В*, в котором поддерживается интервал возможной оценки стоимости узла в дере- ве игры вместо присваивания ему одноточечной оценки. Дэвид Макаллестер в ста- тье [1522] (1988) предложил метод поиска “заветных чисел” (сопзрЬгасу питЬег), предполагающего развертывание тех листовых узлов, изменение значения кото- рых может заставить программу предпочесть новый ход в корне дерева В алгорит- ме МО88* ([1946], 1989) теория принятия решений, рассматриваемая в главе 16, используется для оценки ценности развертывания каждого листа с точки зрения ожидаемого улучшения качества решения в корне. Алгоритм 888* (Штокман [2132], 1979), который можно рассматривать как вер- сию алгоритма А* для двух игроков, никогда не развертывает больше узлов, чем альфа-бета-алгоритм, но высокие требования к памяти делают его непрактичным. Позднее Корф и Чикеринг ([1288], 1996) разработали на основе алгоритма КВР8
новую версию 888* с линейно возрастающими потребностями в пространстве. Баум и Смит ([142], 1997) предложили заменить алгоритм минимаксного поис- ка алгоритмом, основанным на учете вероятностей, и показали, что он приводит к осуществлению лучших вариантов выбора в некоторых играх. Алгоритм поиска на основе ожидаемого минимаксного значения был предложен Дональдом Мичи ([1563], 1966). Брюс Боллард ([119], 1983) распространил метод альфа-бета-отсе- чения на деревья с узлами жеребьевки. В книге Перла “Эвристика” ([1751], 1984) тщательно анализируются многие игровые алгоритмы. Симуляция по методу Монте-Карло была впервые предложена Метрополи- сом и Уламом ([1561], 1949) для расчетов, связанных с разработкой атомной бом- бы. Алгоритм поиска по дереву методом Монте-Карло (МСТ8) был представлен Абрамсоном ([7], 1987). Тесауро и Гальперин ([2194], 1997) показали, как поиск по дереву методом Монте-Карло можно комбинировать с функцией оценки в игре в нарды. Метод раннего завершения прогона изучался Лоренцем ([1444], 2015). В программе АьрнаОо успешно реализовано раннее завершение прогонов и при- менение функции оценки (Сильвер и др. [2063], 2016). Подход с использованием стратегии выбора “Верхние границы доверия, применяемые к деревьям” был усо- вершенствован Коксисом и Сепесвари ([1251], 2006). В работе [400] (2008) показа- но, как алгоритм МСТ8 может быть применен к различным играм, а в [324] (2012) дан соответствующий обзор. Коллер и Пфеффер в статье [1264] (1997) описали систему для полного реше- ния частично наблюдаемых игр. Она могла работать с большими играми, чем предыдущие системы, но все же не с полной версией сложных игр, таких как по- кер или бридж. Фрэнк и др. в [771] (1998) описывают несколько вариантов алго- ритма поиска по дереву в Монте-Карло для частично наблюдаемых игр, в том чис- ле тот, в котором игрок М1К обладает полной информацией, а игрок мах — нет. Шофильд и Тилыпер в [ 1997] (2015) сообщают, что они адаптировали общую си- стему ведения игр к частично наблюдаемым играм. Фергюсон вручную разработал рандомизированные стратегии победы в энд- шпиле кригшпиля для короля со слоном и конем ([728], 1992) или короля с двумя слонами ([729], 1995) против одного короля. Первые программы игры в кригшпиль сосредоточивались на отыскании мата в эндшпиле и выполняли И-ИЛИ поиск в пространстве доверительных состояний ([1964], 2002 и [242], 2003). Алгоритмы ин- крементного поиска в пространстве доверительных состояний позволили находить гораздо более сложные матовые решения в середине игры (Рассел и Вольф [1948], 2005; Вольф и Рассел [2371], 2007), но рациональная оценка состояний оставалась главным препятствием для эффективного общего ведения игры (Паркер и др. [ 1733], 2005). Цианкарини и Фавини сообщили в [439] (2010) об успешном применении в кригшпиле алгоритма МСТ8, а в статье [2294] (2018) описывается версия алгоритма МСТ8 для поиска в пространстве доверительных состояний при игре в “фантом го”. В шахматах главные достижения отмечались регулярным определением по- бедителей в конкурсе на получение премии Фредкина: программа Веьье (Кондон
и Томпсон [467], 1982) была первой программой, добившейся статуса гроссмей- стера. Программа Пеер Тноионт (Су [1081], 1990) первой получила статус грос- смейстера международного класса, а программа Пеер Вше (Кэмпбелл и др. [361], 2002; Су [1080], 2004) смогла победить чемпиона мира Гарри Каспарова в показа- тельном матче 1997 года. В программе Пеер Вше альфа-бета-поиск выполнялся со скоростью более 100 миллионов позиций в секунду и мог генерировать единичные расширения, которые иногда достигали глубины 40 полуходов. Сегодня лучшие шахматные программы (например, 8ТОСКП8Н, КОМООО, НО1Ю1К1) намного превосходят любого игрока-человека. Они уже достигли эффек- тивного фактора ветвления менее чем 3 (по сравнении с действительным факто- ром ветвления на уровне 35) и осуществляют поиск на примерно 20 полуходов со скоростью около одного миллиона узлов в секунду на стандартном одноядерном компьютере. Они используют такие методы отсечения, как ► эвристика пустого хода, позволяющая генерировать хорошую нижнюю границу стоимости состоя- ния за счет использования ограниченного поиска, при котором оппоненту сначала предоставляется возможность сделать два хода. Также важным методом являет- ся ► отсечение бесполезных вариантов, помогающее заранее определить, какие ходы приведут к бета-отсечению в узлах-преемниках. Программа 81ЛЧГ18Н пред- ставляет собой упрощенную шахматную программу для учебных целей, ядро ко- торой включает менее 200 строк кода на языке РМЬоп. Идея использования ретроградного анализа для вычисления эндшпильных та- блиц принадлежит Беллману ([166], 1965). Воспользовавшись этой идеей, Кен Томпсон ([2205], 1986; [2206], 1996) и Льюис Стиллер ([2130], 1992; [2131],1996) решили все шахматные эндшпили для пяти фигур. Стиллер обнаружил один случай, когда возможность достижения неизбежного матового состояния суще- ствовала, но на это требовалось 262 хода, что вызвало некоторые опасения, по- скольку шахматные правила требуют, чтобы взятие или ход пешкой обязательно имел место в интервале в 50 ходов, иначе партия объявляется законченной вни- чью. В 2012 году Владимир Махнычев и Виктор Захаров вычислили Ломоносов- скую табличную базу эндшпиля, в которой были решены все позиции в эндшпиле вплоть до семи фигур — в некоторых случаях требуется более 500 ходов без взя- тия. Размер такой таблицы для семи фигур достигает 140 терабайтов, а для восьми фигур подобная таблица будет иметь размер в 100 раз больше. В 2017 году программа Аьрна2еко (Сильвер и др. [2064], 2018) нанесла пораже- ние программе 8ТОСКН8Н (чемпион ТСЕС по компьютерным шахматам 2017 года) в матче из 1000 игр со 155 победами и 6 проигрышами. Дополнительные матчи так- же окончились решительными победами Аьрна2еко, — даже тогда, когда этой про- грамме предоставлялась лишь 1/10 времени, отведенного программе 8ТОСКН8Н. Гроссмейстер Ларри Кауфман был удивлен успехами этой программы, постро- енной на использовании алгоритма поиска в дереве игры по методу Монте-Карло, и отметил, что “Возможно, это хорошо, что текущему доминированию минимакс- ных движков шахматных программ приходит конец, но еще рано утверждать это”.
Гарри Каспаров дал такой комментарий: “Это замечательное достижение, даже если его следовало ожидать после появления АьрнаОо. Эго приближение машин- ных шахмат к человеческому подходу типа В, о котором мечтали Клод Шеннон и Алан Тьюринг, заменяющее собой методы грубой силы”. Он продолжил предска- занием: “Шахматный мир уже потрясен программой АьрнаХекодо самых корней, но это лишь крошечный пример того, что ждет нас впереди. Такие закоснелые в своих методах дисциплины, как медицина и образование, также будут потрясены” (Сэдлер и Риган [1959], 2019). Шашки были первой из классических игр, в которые играл компьютер (Стрей- чи [2142], 1952). Артур Самуэль ([1969], 1959; [1970], 1967) разработал програм- му игры в шашки, внутренняя функция оценки которой обучалась в процессе игры с самой собой с помощью определенной формы обучения с подкреплени- ем. Можно считать невероятным достижением то, что Самуэль сумел создать про- грамму, которая играла в шашки лучше него самого на компьютере 1ВМ 704 со всего лишь 10000 слов памяти и процессором с тактовой частотой 0,000001 ГГц. Меыасе, МасЫпе Е<1исаЫе 1Уои&Ы8 Апс! Сптез Еп&те, машина для обучения игре в крестики-нолики с помощью машинного обучения (Михи, [1566], 1963), также использовала методы обучения с подкреплением, чтобы стать компетентным игро- ком в крестики-нолики. Ее процессор был еще медленнее: набор из 304 игровых полей с цветными бусинами, предназначенными для представления лучших изу- ченных ходов в каждой позиции. В 1992 году программа игры в шашки Снпчоок Джонатана Шеффера бросила вызов легендарному Мариону Тинсли, который был чемпионом мира более 20 лет. Тинсли выиграл этот матч, но все же проиграл две партии — это были четвертый и пятый проигрыши за всю его карьеру. После того как Тинсли вышел на пенсию по состоянию здоровья, корона чемпиона перешла к программе Снпчоок. Вся эта история была описана Шеффером в [1987] (2008). В 2007 году Шеффер и его команда полностью “решили” шашки ([1988], 2007): эту игру всегда можно свести к ничьей при идеальной игре. Ричард Белл- ман ([166], 1965) в свое время предсказал это: “В шашках число возможных ходов в любой заданной ситуации настолько невелико, что для нее можно с уверенно- стью ожидать нахождение полного цифрового компьютерного решения задачи оп- тимальной игры”. Следует отметить, что Беллман неверно оценил масштабы не- обходимых усилий: таблица эндшпиля с 10 шашками насчитывает 39 триллионов записей. Принимая во внимание размер этой таблицы, не удивительно, что для на- хождения полного решения этой игры потребовалось 18 лет работы процессора, выполняющего альфа-бета-поиск. И.Дж. Гуд, который учил игре в го Алана Тьюринга, написал в [892] (1965): “Я думаю, что запрограммировать компьютер так, чтобы он разумно играл в го, бу- дет еще труднее, чем в шахматы”. И он был прав: до 2015 года программы игры в го не поднялись в игре выше уровня любителя. Первые публикации на эту тему были обобщены в статьях Боузи и Казенаве ([271 ], 2001), а также Мюллера ([1633], 2002).
Зобрист в [251] (1970) в качестве многообещающего метода для игры в го пред- ложил визуальное распознавание, в то время Шраудольф и соавт. ([2001], 1994) проанализировали возможности использования обучения с подкреплением. Люб- берц и Миккулайнен в [1458] (2001) рекомендовали обратиться к нейронным се- тям, а Брюгманн ([327], 1993) применил к игре в го алгоритм поиска в дереве игры по методу Монте-Карло. В программе АьрнаОо (Сильвер и др. [2063], 2016) все эти четыре идеи были объединены в одно целое, что позволило победить игро- ков-профессионалов высшего уровня Ли Седола (со счетом 4:1 в 2015 году) и Ке Джи (со счетом 3:0 в 2016 году). Ке Джи заметил: “После того как человечество потратило тысячи лет на улуч- шение нашей тактики, компьютеры показали, что люди полностью заблуждались. Я даже готов пойти так далеко, чтобы открыто заявить, что ни один человек еще даже не прикоснулся к краю истинных знаний о го”. Ли Седол удалился от игры в го, сокрушаясь: “Даже если бы я стал номером один, есть сущность, которую по- бедить невозможно”. В 2018 году программа Аьрна2еко превзошла АьрнаОо в игре в го, а также победила лучшие программы игры в шахматы и сёги, обучившись этим играм за счет самостоятельной игры с самой собой без доступа к каким-либо экспертным человеческим знаниям или информации о каких-либо прошлых играх. (Безуслов- но, она полностью полагалась на людей в определении базовой архитектуры по- иска в дереве игры по методу Монте-Карло и глубоких нейронных сетей, а так- же в обучении с подкреплением и кодировании правил игры.) Успех Аьрна/еко вызвал повышенный интерес к обучению с подкреплением как ключевому ком- поненту общего ИИ (см. главу 22). Продвинувшись еще на шаг дальше, система Мы2еко работает, даже будучи не поставленной в известность о правилах игры, в которую она играет, — она должна самостоятельно их выяснить, просто играя в эту игру. Система Мы2еко достигла уровня самых современных результатов в играх Расшап, шахматы, го и в 75 играх Атари (Шритгвейзер и др. [2002], 2019). Система научилась обобщать; например, играя в Расшап, она выучила, что дей- ствие “вверх” перемещает игрока вверх на один квадрат (если этому не препят- ствует стена) даже несмотря на то, что возможность наблюдать результат действия “вверх” она могла лишь в небольшом проценте положений на игровой доске. Игра реверси, также называемая “Отелло”, имеет меньшее пространство поис- ка, чем шахматы, но определение для нее функции оценки является сложной зада- чей, поскольку преимущество в материале в этой игре не столь важно, как мобиль- ность. Соответствующие программы показали уровень игры выше человеческого уже в 1997 году (Буро [349], 2002). Нарды, игра с бросанием костей, математически была проанализирована еще Джероламо Кардано ([370], 1663), но впервые реализована в качестве компьютер- ной игры только в программе ВКО (Берлинер [187], 1980), в которой автор при- менил очень сложную, сконструированную им вручную функцию оценки и по- иск только на глубину 1. Это была первая программа, которая смогла победить
человека со званием чемпиона мира в одной из основных классических игр (Бер- линер [186], 1980), хотя по окончании турнира ее создатель сразу же заявил, ВКО очень повезло с бросанием костей. Программа Герри Тезауро ([2193], 1995) ТП- бАММОК построила свою функцию оценки за счет обучения с использованием нейронных сетей при игре с самой собой. Она неизменно играла на уровне чемпи- онов мира и заставила аналитиков-людей изменить свое мнение о лучшем началь- ном ходе для нескольких результатов бросков костей. В игре в покер, как и в го, в последние годы наблюдаются удивительные успе- хи. Боулинг и соавт. ([272], 2015) использовали теорию игр (см. раздел 18.2) для определения точной оптимальной стратегии для версии покера только с двумя игроками и фиксированным числом поднятий с фиксированным размером став- ки. В 2017 году впервые игроки уровня чемпионов были побеждены в игре один на один (два игрока) в безлимитный Техасский холдем в двух независимых мат- чах с программой Ьшкатоз (Браун и Сэндхолм [320], 2017) и ОеерЗтаск (Морав- чик и др. [1619], 2017). В 2019 году программа Ры)К1В1)8 (Браун и Сэндхолм [321], 2019) победила профессиональных игроков-людей высшего ранга в турнире из се- рии игр в Техасский холдем с шестью игроками. В многопользовательских играх дополнительно возникают некоторые стратегические проблемы, которые обсужда- ются в главе 18. Петоса и Балх ([1782], 2019) реализовали многопользовательскую версию программы АернаХеко. Бридж. Смит и соавт. в [2100] (1998) сообщают о том, как программа ВкгобЕ Вакой выиграла чемпионат по компьютерному бриджу 1998 года, используя ие- рархические планы (см. главу 11) и действия высокого уровня, такие как импас и сквиз, знакомые игрокам в бридж. Гинзберг ([862], 2001) описывает, как его про- грамма О1В, построенная на симуляциях по методу Монте-Карло (впервые этот подход для бриджа предложил Леви ([1396], 1989)), выиграла очередной ком- пьютерный чемпионат и на удивление хорошо показала себя в игре против игро- ков-людей уровня экспертов. В XXI веке в компьютерных чемпионатах по бриджу доминировали уже две коммерческие программы — Ласк и АУвких;е5. Ни одна из них не была описана в опубликованных статьях, но, как полагают, в обеих исполь- зуется метод поиска по методу Монте-Карло. В целом программы игры в бридж играют на уровне людей-чемпионов, когда они, собственно, разыгрывают руки, но заметно отстают в фазе торгов, поскольку не полностью понимают те условные соглашения, которые люди используют при общении со своими партнерами. Про- граммисты, пишущие программы игры в бридж, в большей степени заинтересова- ны в создании полезных, образовательных программ, побуждающих людей начать игру и не имеющих цели побеждать чемпионов. Эрудит представляет собой игру, в которой игроки-люди любительского уров- ня испытывают значительные трудности, придумывая слова с высокой оценкой, но для программы очень легко найти максимально возможное количество очков для игрока в любой позиции (Гордон [906], 1994). Для нее самая сложная часть игрово- го процесса—это планирование наперед в частично наблюдаемой стохастической
игре. Тем не менее в 2006 году программа (^часкье победила бывшего чемпио- на мира Дэвида Бойса со счетом 3:2. Бойс воспринял это хорошо, заявив: “Луч- ше быть человеком, чем компьютером”. Хорошее описание одной из лучших про- грамм, Мауем, было дано Шеппардом в [2047] (2002). Видеоигры, такие как §1агСгай II, включают сотни частично наблюдаемых юнитов, перемещающихся в режиме реального времени с весьма объемными, почти непрерывными восприятиями6 и пространствами действий со сложными правилами. Ориол Виньяльс, бывший в возрасте 15 лет чемпионом Испании по игре в 81агСгаЙ, описал, как видеоигра может стать испытательным полигоном и серьезной проверкой для методов обучения с подкреплением (Виньяльс и др. [2274], 2017). В 2019 году Виньяльс и команда ВеерМшд представили програм- му АьрнаБтак, построенную на глубоком обучении и обучении с подкреплением, в конечном итоге победившую опытных игроков-людей со счетом 10:1 и уверен- но занявшую лидирующие позиции среди игроков-людей, получивших официаль- но присвоенный ранг (Виньяльс и др. [2273], 2019). В программе АьрнаЗтак были приняты меры для ограничения количества действий в минуту, которые она может выполнять в критически важных рывках, — в ответ на критику со стороны оппо- нентов, ощущавших, что у программы здесь было несправедливое преимущество. Компьютеры уже победили ведущих игроков-людей и в других популярных ви- деоиграх, таких как Бирег БтазЬ Вгоз ([743], 2017), Оиаке III ([1121], 2019) и Во1а 2 ([733], 2018), — во всех случаях за счет использования методов глубокого обучения. Физические игры, такие как футбол роботов (Виссер и др. [2277], 2008; Бар- ретт и Стоун [135], 2015), бильярд (Лэм и Гринспен [1346], 2008; Арчибальд и др. [66], 2009), а также настольный теннис (Сильва и др. [2061], 2015), привлекали некоторое внимание исследователей в области ИИ. В них все те сложности, кото- рые имеют место в видеоиграх, сочетаются с беспорядочностью реального мира. Соревнования по компьютерным играм происходят ежегодно, в том чис- ле Компьютерные олимпиады, начиная с 1989 года. В Конкурсе универсальных игр (Сепега! Сате СотреННоп) (Лоув и др. [1445], 2006) тестируются програм- мы, которые должны научиться играть в неизвестную игру, представленную толь- ко в виде логического описания ее правил. Международная ассоциация компью- терных игр (1п1етаНопа1 СотрШег Оатея АяяоыаНоп — 1СОА) публикует журнал 1СОА Зоигпа! и проводит две чередующиеся двухгодичные конференции, Меж- дународную конференцию по компьютерам и играм (Г/» 1п1етаНопа1 Соп/егепсе оп Сотри(егя апЛ Оатея — 1ССО или СО) и Международную конференцию по достижениям в компьютерных играх (1п1егпаИопа1 Соп/егепсе оп Аскапсея т СотрШег Оатея — АСО). Ассоциация ШЕЕ публикует журнал 1ЕЕЕ ТгапяасНопя оп Оатея и проводит ежегодную Конференцию по вычислительной разведке и играм (Соп/егепсе оп СотрШаИопа! 1п1е1П$епсе апс! Оатея). 6 Для человека-игрока объекты движутся непрерывно, но на самом деле они дискрет- ны на уровне пикселя на экране.
Упражнения_______________________________________________________________ 5.1. Предположим, у вас есть оракул, ОМ(з\ который правильно предсказывает ходы про- тивника в любом состоянии. Используя это, сформулируйте определение игры как за- дачи поиска (с одним агентом). Опишите алгоритм нахождения оптимального хода. 5.2. Рассмотрим задачу одновременного решения двух головоломок Восьмерка. а) Дайте полную формулировку задачи в стиле главы 3. б) Насколько велико достижимое пространство состояний? Дайте точное числовое выражение. в) Предположим, что задача преобразуется в многоагентную следующим образом: два игрока ходят по очереди и, чтобы определить головоломку, в которой игроку в этот раз предстоит сделать ход, подбрасывается монета. Побеждает тот, кто пер- вым решит любую из двух головоломок. Какой алгоритм можно использовать для выбора хода в данных условиях? г) Будет ли игра в конечном счете завершена при условии строго оптимальных дей- ствий игроков? Объясните. 53. Представим, что в этом упражнении один из двух друзей хочет избежать встречи с другим, — в этом случае задача превращается в игру с двумя игроками. Далее пред- положим, что игроки ходят по очереди и игра заканчивается, когда игроки оказыва- ются в одном узле. Конечная стоимость игры для преследователя — общее затрачен- ное время, взятое с обратным знаком. (Преследуемый “выиграет”, если встреча ни- когда не состоится.) Возможный вариант игры приведен на рис. 5.17. Рис. 5.17. а) Карта, на которой стоимость каждого ребра равна 1. Исходно пресле- дователь Р находится в узле Ь, а преследуемый Е — в узле <7. б) Часть дерева игры для этой карты, на которой каждый узел помечен соответственными позициями Р и Е (две буквы). Преследователь Р начинает движение первым. Ветви, отмеченные знаком “?”, еще предстоит исследовать
а) Скопируйте дерево игры и отметьте значения его терминальных узлов. б) Рядом с каждым внутренним узлом напишите свое наиболее вероятное предполо- жение о его значении (конкретное число, одно или более неравенств, таких как “>14” или “?”). в) Под каждым вопросительным знаком проставьте метку узла, достигаемого по этой ветке. г) Объясните, как оценка значения узлов, добавленных в п. в, может быть получена из рассмотрения длины кратчайшего пути на карте, а затем выведите такие оцен- ки для этих узлов. Держите в памяти стоимость пути к каждому листу, а также стоимость их решения. д) Теперь предположим, что данное дерево с граничными оценками листьев, полу- ченных в п. г, оценивается слева направо. Обведите те узлы с пометкой “?”, кото- рые не потребуется разворачивать в дальнейшем с учетом границ, полученных в п. г, и вычеркните те узлы, которые вообще не нужно рассматривать. е) Можете ли вы доказать что-нибудь в общем случае относительно того, кто вы- игрывает в этой игре на карте, представляющей собой дерево? 5.4. Опишите и реализуйте описания состояний, генераторы ходов, проверки терминаль- ных состояний, функции полезности и функции оценки для одной или нескольких из следующих стохастических игр: монополия, эрудит, бридж (собственно игра после завершения торгов) и покер в версии Техасский холдем. 5.5. Опишите и реализуйте игровую среду для игры в реальном времени с несколькими игроками, в которой время является частью состояния среды, а игрокам выделяются фиксированные промежутки времени. 5.6. Обсудите, насколько успешно может применяться стандартный подход к ведению игры компьютером в таких играх, как теннис, бильярд и крокет, происходящих в не- прерывном физическом пространстве состояний. 5.7. Докажите следующее утверждение: для каждого дерева игры значение полезности, полученное игроком МАХ с использованием минимаксных решений в игре против неоптимально действующего игрока МПЧ, никогда не будет ниже значения полезно- сти, полученной в игре против оптимально действующего игрока М1Ы. Можете ли вы предложить дерево игры, в котором игрок МАХ может действовать еще лучше, используя неоптимальную стратегию против неоптимально действующего игрока М1К? 5.8. Рассмотрим игру с двумя игроками, представленную на рис. 5.18. а) Нарисуйте полное дерево игры с использованием следующих соглашений: - запишите каждое состояние как (зА, где зА и зв обозначают местонахождения фишек; - обведите каждое терминальное состояние квадратом и напишите его значение в кружке; - циклические состояния (те, которые уже появлялись на пути к корню) обведите двойными квадратами и, поскольку пока непонятно, как присваивать значения таким циклическим состояниям, обозначьте каждое из них знаком “?” в кружке. б) Теперь обозначьте каждый узел его зарезервированным минимаксным значением (также в кружке). Объясните, как вы учитывали значения “?” и почему. в) Объясните, почему стандартный алгоритм минимаксного поиска в этом дере- ве игры потерпит неудачу, и вкратце опишите, каким образом вы могли бы его
исправить, исходя из вашего ответа в п. б. Приведет ли модифицированный вами алгоритм к получению оптимальных решений для всех игр с циклами? г) Эту игру с четырьмя квадратами можно обобщить до п квадратов для любого п > 2. Докажите, что игрок А побеждает, если число п четное, и проигрывает, если число п нечетное. 12 3 4 Рис. 5.18. Начальная позиция простой игры. Игрок А ходит первым. Два игрока ходят по очереди, и каждый игрок должен переместить свою фишку в свободный смежный квадрат в любом направлении. Если противник занимает смежный ква- драт, то игрок может перенести свою фишку через фишку противника на следую- щий свободный квадрат, если таковой имеется. (Например, если фишка А стоит в квадрате 3, а фишка В — в квадрате 2, то А снова может перейти в квадрат 1.) Игра заканчивается после того, как один из игроков достигает противоположного конца доски. Если игрок А достигает квадрата 4 первым, то значение этой игры для А рав- но +1; если игрок В достигает квадрата 1 первым, то значение этой игры для игро- ка А равно-1 5.9. В этой задаче рассматриваются основные концепции ведения игр с использовани- ем в качестве примера игры в крестики-нолики. Определим Хп как количество строк, столбцов или диагоналей, в которых находится точно п значков X и ни одного знач- ка О. Аналогичным образом Оп — это количество строк, столбцов или диагоналей, в которых находятся только п значков О. Функция полезности присваивает +1 любой позиции с Х3 = 1 и -1 — любой позиции с О3 = 1. Все остальные терминальные пози- ции имеют полезность 0. Для нетерминальных позиций используется линейная функ- ция оценки, определенная как ЕчаЦз)=ЗХ2(з)+Х/л)- (ЗО2($) + 0^$)). а) Сколько приблизительно существует возможных вариантов игры в крестики-но- лики? б) Представьте полное дерево игры, начиная от пустой доски вплоть до глубины 2 (т.е. когда на доске имеется один значок X и один значок О), учитывая симметрию позиций. в) Проставьте в этом дереве оценки всех позиций на глубине 2. г) Используя алгоритм минимаксного поиска, проставьте в дереве зарезервирован- ные значения для позиций на глубине 1 и 0, а затем воспользуйтесь этими значе- ниями для выбора наилучшего начального хода. д) Обведите кружками узлы на глубине 2, которые не оценивались бы в случае при- менения альфа-бета-отсечения, исходя из предположения, что эти узлы генериру- ются в порядке, оптимальном для альфа-бета-отсечения. 5.10. Рассмотрите семейство обобщенных игр в крестики-нолики, определяемых следую- щим образом. Каждая конкретная игра задается набором квадратов 8 и коллекцией
выигрышных позиций IV. Каждая выигрышная позиция является подмножеством 5. Например, в стандартной игре в крестики-нолики 5 — это множество из 9 квадра- тов, а IV — это набор из 8 подмножеств в IV: три строки, три столбца и две диагона- ли. В остальном игра идентична стандартным крестикам-ноликам. Начиная с пустого поля, игроки поочередно размещают свои метки на свободном квадрате. Выигрывает игру тот игрок, который первым отметил каждый квадрат в некоторой выигрышной позиции. Ничья объявляется в том случае, когда все квадраты помечены, но ни один из игроков не выиграл. а) Пусть |5|, т.е. количеству квадратов. Определите верхнюю границу количества узлов в полном дереве игры для обобщенной игры в крестики-нолики как функ- цию отЛС б) Определите нижнюю границу размера дерева игры для худшего случая, где IV =. в) Предложите приемлемую функцию оценки, которую можно будет использовать для любого экземпляра обобщенной игры в крестики-нолики. Функция может за- висеть от 5 и 17. г) Предположим, что можно сгенерировать новую позицию на игровом поле и про- верить, является ли она выигрышной при выполнении до ЮО# машинных команд, принимая, что для расчетов используется процессор с тактовой частотой 2 ГГц, а любые ограничения памяти игнорируются. Воспользовавшись своей оценкой из п. а, приблизительно оцените, насколько большое игровое дерево может быть полностью решено с использованием альфа-бета-поиска за секунду процессорно- го времени. А за минуту? За час? 5.11. Разработайте общую игровую программу, способную играть в различные игры. а) Реализуйте генераторы хода и функции оценки для одной или нескольких из сле- дующих игр: калах, реверси, шашки и шахматы. б) Сконструируйте агента общего назначения для ведения игры на основе альфа-бе- та-поиска. в) Сравните эффект от увеличения глубины поиска, усовершенствования способа упорядочения ходов и улучшения функции оценки. Насколько близко приближа- ется полученный вами эффективный коэффициент ветвления к идеальному слу- чаю самого совершенного упорядочения ходов? г) Реализуйте алгоритм выборочного поиска, такой как В* ([185], 1979), поиск “за- ветных чисел” ([1522], 1988) или алгоритм М688* ([1946], 1989), и сравните его производительность с производительностью алгоритма А*. 5.12. Опишите, как изменятся алгоритмы минимаксного и альфа-бета-поиска для игр с двумя игроками с ненулевой суммой, в которых у каждого игрока есть собственная функция полезности и обе эти функции известны обоим игрокам. Если нет никаких ограничений на две терминальные полезности, возможно ли, чтобы какой-либо узел был отсечен алгоритмом альфа-бета-поиска? Что если функции полезности игроков в любом состоянии различаются не более чем на константу к, что делает игру почти кооперативной? 5.13. Опишите, как изменятся алгоритмы минимаксного и альфа-бета-поиска для игр с двумя игроками с ненулевой суммой, в которых у каждого игрока есть собственная функция полезности, и обе эти функции известны обоим игрокам. Если нет никаких ограничений на две терминальные полезности, возможно ли, чтобы какой-либо узел был отсечен алгоритмом альфа-бета-поиска? Что если функции полезности игроков
в любом состоянии при суммировании дают число между константами -ки к, что де- лает игру почти игрой с нулевой суммой? 5.14. Разработайте формальное доказательство правильности алгоритма альфа-бета-отсе- чения. Для этого рассмотрите ситуацию, показанную на рис. 5.19. Вопрос заключает- ся в том, следует ли выполнять отсечение в узле и, который представляет собой узел игрока МАХ и является одним из потомков узла пх. Основная идея такова, что отсече- ние должно выполняться тогда и только тогда, когда можно показать, что минимакс- ное значение п1 не зависит от значения и.. а) Значение узла пх определяется как минимальное значение из значений его дочер- них узлов: = тш(л2, п2 р ..., ). Найдите аналогичное выражение для узла и2, а отсюда выражение для узла пх в терминах значений узла и. б) Допустим, что / — минимальное (или максимальное) значение узлов слева от узла п. на глубине /, минимаксное значение которого уже известно. Аналогичным образом допустим, что г. — минимальное (или максимальное) значение неиссле- дованных узлов справа от п. на глубине /. Перепишите свое выражение для узла пх в терминах значений / и г. в) Теперь переформулируйте это выражение так, чтобы показать, что значение узла п не должно превышать некоторый предел, полученный на основе значе- ний для того, чтобы оно могло повлиять на значение узла иг г) Повторите этот процесс для случая, когда п является узлом игрока М1К Рис. 5.19. Ситуация, возникающая при определении, следует ли отсекать узел п 5.15. Докажите, что алгоритм альфа-бета-отсечения требует времени О(6ш/2) при оптималь- ном порядке выполнения ходов, где т — максимальная глубина дерева игры. 5.16. Предположим, что имеется шахматная программа, способная оценивать 5 миллио- нов узлов в секунду. Выберите компактное представление состояния игры для хра- нения в таблице транспозиций. Сколько примерно записей удастся вам поместить в таблицу размером 1 Гбайт, находящуюся в памяти? Будет ли этого достаточно для поиска в течение трех минут, отведенных на один ход? Сколько операций поиска в таблице можно выполнить за время, необходимое для одной оценки? Теперь пред- положим, что таблица транспозиций сохранена на жестком диске. Сколько при- мерно оценок можно будет сделать за время, необходимое для выполнения одного
поиска на диске с использованием стандартного аппаратного обеспечения жесткого диска? 5.17. Предположим, что имеется шахматная программа, способная оценивать 10 миллио- нов узлов в секунду. Выберите компактное представление состояния игры для хране- ния в таблице транспозиций. Сколько примерно записей удастся вам поместить в та- блицу размером 2 Гбайт, находящуюся в памяти? Будет ли этого достаточно для по- иска в течение трех минут, отведенных на один ход? Сколько операций поиска в та- блице можно выполнить за время, необходимое для одной оценки? Теперь предполо- жим, что таблица транспозиций сохранена на жестком диске. Сколько примерно оце- нок можно будет сделать за время, необходимое для выполнения одного поиска на диске с использованием стандартного аппаратного обеспечения жесткого диска? 5.18. В этом упражнении рассматривается отсечение в играх с узлами жеребьевки. На рис. 5.20 показано полное дерево игры для некоторой тривиальной игры. Предполо- жим, что листовые узлы должны оцениваться в порядке слева направо и что до того, как листовой узел будет оценен, мы ничего не знаем о его значении — диапазон воз- можных значений составляет от -сю до сю. а) Скопируйте рисунок, проставьте значения всех внутренних узлов и укажите стрелкой лучший ход в корне дерева. б) Зная значения первых шести листьев, есть ли необходимость оценивать также седьмой и восьмой листовые узлы? Зная значения первых семи листовых узлов, нужно ли оценивать еще и восьмой узел? Поясните свои ответы. в) Предположим, что нам известно, что значения листовых узлов лежат в диапазоне от -2 до +2 включительно. После оценки первых двух листовых узлов каков будет диапазон значений для левого узла жеребьевки? г) Обведите все листовые узлы, которые не нужно оценивать, исходя из предположе- ния, сделанного в п. в. Рис. 5.20. Полное дерево игры для тривиальной игры с узлами жеребьевки 5.19. Реализуйте алгоритм поиска по ожидаемому минимаксному значению и алгоритм *-альфа-бета-поиска, предложенный Баллардом в [119] (1983), для отсечения беспо- лезных ветвей в деревьях игры с узлами жеребьевки. Опробуйте их работу на такой игре, как нарды, и оцените эффективность отсечения в *-альфа-бета-поиске. 5.20. Докажите, что после положительной линейной трансформации листовых значений (т.е. трансформации значения х в ах+Ь, где а>0) выбор хода в дереве игры остается неизменным, даже если в нем имеются узлы жеребьевки.
5.21. Рассмотрите описанную ниже процедуру выбора ходов в играх с узлами жеребьевки, а) Сгенерируйте некоторую последовательность серий бросков костей (скажем, 50) вплоть до подходящей для этого глубины (скажем, 8). б) Как только результаты бросков костей становятся известны, дерево игры преоб- разуется в детерминированное. Для каждой последовательности бросков костей найдите решение получившегося детерминированного дерева игры с помощью альфа-бета-поиска. в) Используйте полученные результаты для оценки значения каждого хода и выбери- те наилучший. Будет ли эта процедура работать правильно? Почему да (или почему нет)? 5.22. Ниже полагается, что дерево “шах” состоит только из узлов МАХ, тогда как дерево “ехресИтах” состоит из узла МАХ в корне с чередующимися ниже слоями узлов же- ребьевки и узлов МАХ. В узлах жеребьевки вероятности всех исходов отличны от нуля. Цель состоит в том, чтобы найти значение корня с помощью поиска с заданным пределом глубины. Для каждого из пп. а-е приведите соответствующий пример или объясните, почему это невозможно. а) Если предположить, что значения листовых узлов конечны, но не ограничены, возможно ли когда-либо в дереве тах отсечение (как при альфа-бета-отсече- нии)? б) При тех же условиях возможно ли когда-либо отсечение в дереве ехресИтах? в) Если все листовые значения неотрицательны, возможно ли когда-либо отсечение в дереве тах? Приведите пример или объясните, почему нет. г) Если все листовые значения неотрицательны, возможно ли когда-либо отсечение в дереве ехресИтах? Приведите пример или объясните, почему нет. д) Если все листовые значения находятся в диапазоне [0,1 ], возможно ли когда-либо отсечение в дереве тах? Приведите пример или объясните, почему нет. е) Если все листовые значения находятся в диапазоне [0,1 ], возможно ли когда-либо отсечение в дереве ехресИтах? ж) Рассмотрим результаты узла жеребьевки в дереве ехресИтах. Какой из следую- щих порядков оценки, вероятнее всего, предоставит возможность выполнить от- сечение? - Первым —узел с наименьшей вероятностью и дальше в порядке возрастания ве- роятности. - Первым — узел с наибольшей вероятностью и дальше в порядке уменьшения ве- роятности. - Вероятность не имеет никакого значения 5.23. Ниже полагается, что дерево “шах” состоит только из узлов МАХ, тогда как дерево “ехресИтах” состоит из узла МАХ в корне с чередующимися ниже слоями узлов же- ребьевки и узлов МАХ. В узлах жеребьевки вероятности всех исходов отличны от нуля. Цель состоит в том, чтобы найти значение корня с помощью поиска с заданным пределом глубины. а) Если предположить, что значения листовых узлов конечны, но не ограничены, возможно ли когда-либо в дереве тах отсечение (как при альфа-бета-отсечении)? Приведите пример или объясните, почему нет. б) При тех же условиях возможно ли когда-либо отсечение в дереве ехресИтах? При- ведите пример или объясните, почему нет.
в) Если все листовые значения находятся в диапазоне [0,1 ], возможно ли когда-либо отсечение в дереве тах? Приведите пример или объясните, почему нет. г) Если все листовые значения находятся в диапазоне [0,1 ], возможно ли когда-либо отсечение в дереве ехресвтах! Приведите пример (качественно отличающийся от вашего примера в следующем пункте, если таковой есть) или объясните, поче- му нет. д) Если все листовые значения неотрицательны, возможно ли когда-либо отсечение в дереве тах? Приведите пример или объясните, почему нет. е) Если все листовые значения неотрицательны, возможно ли когда-либо отсечение в дереве ехресйтах! Приведите пример или объясните, почему нет. ж) Рассмотрим результаты узла жеребьевки в дереве ехресНтах. Какой из следую- щих порядков оценки, вероятнее всего, предоставит возможность выполнить от- сечение? - Первым — узел с наименьшей вероятностью и дальше в порядке возрастания ве- роятности. - Первым — узел с наибольшей вероятностью и дальше в порядке уменьшения ве- роятности. - Вероятность не имеет никакого значения 5.24. Какие из следующих утверждений истинны, а какие ложны? Дайте краткое объясне- ние. а) В полностью наблюдаемой игре с чередованием ходов и нулевым итогом меж- ду двумя совершенно рациональными игроками первому игроку не поможет зна- ние того, какую стратегию использует второй игрок, т.е. какой ход сделает второй игрок после хода первого игрока. б) В частично наблюдаемой игре с чередованием ходов и нулевым итогом между двумя совершенно рациональными игроками первому игроку не поможет знание того, какой ход сделает второй игрок после определенного хода первого игрока. в) Совершенно рациональный агент для игры в нарды никогда не проигрывает. 5.25. Тщательно продумайте взаимодействие случайных событий и частичной информа- ции в каждой из игр в упражнении 5.4. а) Для каких игр подходит стандартная модель ожидаемого минимаксного значения? Реализуйте алгоритм и запустите его в своем игровом агенте с соответствующими изменениями в игровой среде. б) Для какой игры подойдет схема, описанная в упражнении 5.21? в) Обсудите, как можно справиться с тем фактом, что в некоторых играх игроки не имеют одинаковых знаний о текущем состоянии.
ГЛАВА Задачи удовлетворения ограничений В этой главе показано, каким образом, трактуя состояния как нечто большее, чем просто маленькие “черные ящики можно прийти к новым методам по- иска и более глубокому пониманию структуры задачи. В основу глав 3 и 4 была положена идея, что задачи можно решать, выполняя поиск в пространстве состояний, представленном в виде графа, в котором узлы соответствуют состояниям, а соединяющие их ребра — действиям. Было показа- но, что для оценки стоимости достижения цели из данного состояния можно ис- пользовать эвристические функции, специфические для конкретной проблемной среды. С точки зрения таких алгоритмов поиска каждое состояние является ато- марным, неделимым — черный ящик без какой-либо внутренней структуры. В ре- зультате для каждой задачи требовался код, специфический для ее проблемной среды, предназначенный для описания переходов между состояниями. В этой главе черные ящики будут раскрыты и их содержимое будет представле- но явным образом с использованием развернутого представления каждого состо- яния: в виде набора переменных, каждая из которых имеет некоторое значение. Задача будет решена, когда каждая переменная будет иметь значение, удовлетво- ряющее всем наложенным на нее ограничениям. Задачи, описанные подобным образом, называют ► задачами удовлетворения ограничений (УО) или С8Р — Сопз1га1п1 8аИз/асИоп РгоЫет. Алгоритмы поиска задач удовлетворения ограничений используют преимуще- ство знания структуры состояний, позволяющее применять общие, а не специфи- ческие для проблемной среды эвристики, что дает возможность решать сложные задачи. Основная идея состоит в одновременном исключении многих больших ча- стей пространства поиска посредством выявления комбинаций “переменная/зна- чение”, нарушающих заданные ограничения. Задачи УО имеют дополнительное преимущество в том, что действия и модель перехода могут быть выведены непо- средственно из описания задачи.
6.1. Определение задач удовлетворения ограничений______________________________________________ Определение задачи удовлетворения ограничений включает три компонента: X, Т> и С\ X — множество переменных, {X*, Хп}; V — множество областей определения, {/),, ..., Оп}, по одной для каждой переменной; С — множество ограничений, определяющих допустимые комбинации значений. Область определения (или домен) Т>1 состоит из множества допустимых значе- ний {тр ..., уД для переменной Хг. Например, булева переменная будет иметь об- ласть определения {(гие,/аке). Различные переменные могут иметь разные обла- сти определения разных размеров. Каждое ограничение С состоит из пары (зсоре, ге1), где хсоре является некоторым подмножеством (или кортежем) переменных, которые принимают участие в ограничении, а ге1 является таблицей (или ► отно- шением), определяющей, какие значения могут принимать эти переменные. Отно- шение может быть представлено как явно заданное множество всех кортежей зна- чений, которые удовлетворяют ограничению, или как функция, вычислив которую, можно установить, является ли кортеж членом отношения. Например, если две пе- ременные, и Х2, имеют одинаковую область определения {1, 2,3}, то ограниче- ние, требующее, чтобы значение переменной Х{ всегда было больше значения пе- ременной Х2, можно записать как ((Ар Х2), {(3, 1), (3, 2), (2, 1)}) или как ((Хр Х2), \>Х2)). Задачи УО имеют дело с ► присваиваниями значений переменным, {А^у, Х = у, ...}. Присваивание, которое не нарушает никаких ограничений, называется ► совместимым или допустимым присваиванием. ► Полным называется такое присваивание, в котором значение получает каждая переменная, а решением зада- чи УО является полное присваивание, удовлетворяющее всем ограничениям. В ► частичном присваивании одна или более переменных не имеют значения, а ► частичное решение является частичным присваиванием, которое является со- вместимым. В общем случае поиск решения С8Р является ЫР-полной задачей, хотя существуют важные подклассы задач удовлетворения ограничений, которые могут быть решены весьма эффективно. 6.1.1. Пример задачи: раскрашивание карты Предположим, что устав от Румынии, мы обратились к карте Австралии, на ко- торой показаны все ее штаты и территории (рис. 6.1, а). Наше задание состоит в том, чтобы раскрасить каждый регион на карте в красный, зеленый или синий цвет
таким образом, чтобы ни одна пара соседних регионов не имела одинакового цве- та. Чтобы определить это задание в виде задачи УО, в качестве переменных вве- дем сокращенные названия всех имеющихся на карте регионов: Х= {ПА, КГ, V, 8А, Т}. Западная Австралия (\УА) Северная территория (ИТ) Южная Австралия (8А) Новый Южный1 Тасмания (Т) Рис. 6.1. Основные штаты и территории Австралии, а) Раскрашивание этой карты может рассматриваться как задача удовлетворения ограничений (УО). Задание со- стоит в том, чтобы назначить цвет каждому региону таким образом, чтобы ни одна пара соседних регионов не имела одинакового цвета, б) Задача раскрашивания кар- ты, представленная в виде графа ограничений Область определения каждой переменной будет представлять собой множество из трех наименований цвета: 1>(= {гес/, %гееп, Ыие}, т.е. красный, зеленый, синий. Ограничения требуют, чтобы все пары соседних регионов имели разные цвета. Поскольку на карте девять различных участков границ, соответствующих разным парам соседствующих территорий, необходимо ввести девять ограничений: С={8А* ИА, 8А *КГ,8А* д,8А * №И\ 8А *У, ИА;* КГ, КГ №И\ Ш * V}. В этой записи были использованы определенные сокращения, например 8А ИА является сокращением для ИА), 8А ИА), где ограничение 8А ИА, в свою очередь, может быть полностью перечислено как {(гес/^гееп), (гес1,Ыие), (%гееп,гес1), (%гееп,Ыие), (Ыие,гесГ), (Ыие,&гееп)}. Существует много возможных решений этой задачи, например такое: {ИА=гес1, КГ=%гееп, ^=^ес^, К81У=%гееп, У=гес1,8А=Ыие, Т=гес1}.
Задачу УО можно представить и визуально, в виде к графа ограничений, как показано на рис. 6.1, б. Вершины этого графа соответствуют переменным задачи, а ребра — ограничениям. Зачем формулировать задачу как С8Р? Одна из причин заключается в том, что задачи УО позволяют естественным образом представить широкой спектр задач и часто их очень легко сформулировать как С8Р. Другая состоит в том, многолет- ние исследования в этой области позволили отыскать способы решать задачи УО быстро и эффективно. Третья причина в том, что методы С8Р позволяют быстро обрезать большие участки пространства поиска, чего невозможно достичь, рабо- тая с состояниями в атомарном представлении. Например, в задаче раскрашива- ния карты Австралии, выбрав вариант {8А=Ыие}, можно сразу сделать вывод, что в этом случае ни одна из пяти переменных, представляющих соседние террито- рии, не может иметь значения Ыие. Процедура поиска, в которой не используют- ся ограничения, должна рассмотреть 35 = 243 варианта присвоения значений этим пяти переменным, тогда как с учетом установленных ограничений достаточно бу- дет проверить только 25 = 32 варианта, — сокращение объема работы на 87%. При поиске в пространстве состояний с атомарным представлением можно за- дать только один вопрос: является ли это конкретное состояние целевым? Нет? А вот это? В задачах УО, как только будет установлено, что некоторое частичное присваивание нарушает ограничение, можно немедленно отказаться от дальней- шей его обработки. Более того, можно даже будет понять, почему это присваива- ние не является решением — известно, какие переменные нарушают ограниче- ние, — и поэтому далее сосредоточить внимание только на значимых переменных. В результате многие задачи, неразрешимые в случае поиска в пространстве ато- марных состояний, могут быть быстро решены, если сформулировать их как зада- чи удовлетворения ограничений. 6.1.2. Пример задачи: планирование работы цеха Заводы сталкиваются с серьезными проблемами в планировании производ- ственных процессов, поскольку это связано с учетом множества ограничений. На практике многие из подобных проблем могут эффективно решаться благо- даря использованию методов С8Р. Рассмотрим задачу планирования процесса сборки автомобиля. Представим весь процесс как серию заданий, каждое из ко- торых в нашей модели будет представлено отдельной переменной, значением которой будет время начала выполнения этого задания, выраженное в виде це- лого числа минут, прошедших от начала сборки. Ограничения могут указывать, что выполнение одного задания должно завершиться до начала выполнения другого, например колесо должно быть установлено до того, как на него мож- но будет надеть колпак, или же определять, что лишь столько-то заданий может выполняться одновременно. Ограничения могут также задавать продолжитель- ность выполнения заданий.
В этом примере рассматривается небольшая часть полного процесса сборки ав- томобиля, состоящая из 15 заданий: установка осей (передней и задней), закрепле- ние на них всех четырех колес (правых и левых, передних и задних), затягивание гаек на каждом колесе, установка четырех колпаков и финальный осмотр резуль- татов сборки. Отдельные задания будут представлены 15 переменными (здесь ах1е — ось, нАгее1 — колесо, пин — гайки, сар — колпак, тзреа — осмотр, Р — передний, В — задний, К — правый, Ь — левый): Х= {Ах!е., Ах1е„ №Ъее1 Шгее1,., ^'Иее1кн, \Ркее1,..,1Уи18.,^ 4 г В Кг Ьг КГг Цу Кг К?и1з и1з ьв> СаРкр Сар1Р Саркн, Сарьв> 1парес(]. Далее, представляем ► ограничения предшествования между отдельными за- даниями. Всякий раз, когда задание Тх должно быть выполнено до начала зада- ния Тг и задание Тх имеет продолжительность с1х, вводится дополнительное ариф- метическое ограничение вида Т| + ^,< Г2. В нашем примере перед установкой колес оси должны быть уже на месте, при этом установка оси занимает 10 минут, поэтому можно записать так: Ах1е,.+ 10 < И'ЛееЛ • Ах1е..+ 10 < Ц'кееГ г Кг' г Ьг' Ах1е„ + 10 < И'йее/^; Ах1е„ + 10 < И'йее/,.. в К/1 в Ьо Далее принимается такая последовательность действий: необходимо каждое ко- лесо закрепить на оси (что требует 1 минуты), затем затянуть крепежные гайки (2 минуты) и, наконец, укрепить на нем колпак (1 минута, но она пока не представ- лена в следующих выражениях): И'Лее/„.+ 1 < Ыи13- Кг Кг №Иее1и. 4- 1 < Мкее1кп 4- 1 < Ко Ко' \УИее1 + 1 < №йз‘9 14143^ +2 < Сар^ + 2 < Сар,' Ми^пв “* ~ СаРж Ми*8ьв + — Сар^, Предположим, что для установки колес выделено четыре рабочих, но им при- ходится использовать один общий инструмент, необходимый для установки оси на место. Следовательно, нужно ввести разделительное или ►дизъюнктивное огра- ничение, определяющее, что задания Ах1ер и Ах1ев не должны перекрываться во времени — первым выполняется либо одно, либо другое: (Ах1еР+ 10 < Ах1е^ или (Ах1ев 4-10 < Ах1вр), Это ограничение выглядит более сложным, сочетающим арифметику и логику. Но оно все еще сводится к набору пар значений, которые могут принимать перемен- ные Ах1е^ и Ах1ев. Также необходимо определить, что задание осмотра результатов сборки выпол- няется в последнюю очередь и занимает 3 минуты. С этой целью для каждой
переменной, кроме 1п8рес19 добавляется ограничение вида Х+с1х < 1п$рес1. И нако- нец, предположим, что имеется еще одно требование: вся процедура сборки долж- на быть выполнена в пределах 30 минут. Это требование можно учесть, ограничив область определения для всех переменных: Я = {0, 1,2, 3,...,30}. Решение данной конкретной задачи можно считать тривиальным, но методы С8Р давно и успешно применяются на практике к подобным проблемам планиро- вания работы цехов с тысячами переменных. 6.1.3. Варианты математического представления задач удовлетворения ограничений В задачах УО простейшего вида используются переменные, имеющие ►дис- кретные и ►конечные области определения. Именно к такому виду относятся задачи раскрашивания карты и составления графиков с ограничением по времени. Задача с восемью ферзями (см. рис. 4.3) также может рассматриваться как С8Р с конечной областью определения, где переменные <2^ • представляют собой позиции каждого ферзя в столбцах от 1 до 8 и каждая переменная имеет область определения {1,2,3,4,5,6,7,8}. Ограничения в этой задаче состоят в том, что ника- ких два ферзя не могут находиться в одном и том же ряду или диагонали. Дискретная область определения может быть и ►бесконечной, такой, напри- мер, как множество целых чисел или множество всех строк. (Если в задаче состав- ления графика работ не установить ограничение по времени выполнения, то в ней будет бесконечное количество допустимых моментов начала выполнения задания для каждой переменной.) В случае бесконечной области определения вместо явно заданных кортежей значений переменных придется использовать неявные ограни- чения, подобные Тх + < Т2. Существуют специальные алгоритмы поиска реше- ния (которые здесь не обсуждаются) для случая ►линейных ограничений, на- кладываемых на целочисленные переменные, т.е. ограничений, подобных только что приведенному, в которых каждая переменная появляется только в линейной форме. Можно показать, что не существует алгоритма решения задач общего вида с ►нелинейными ограничениями, накладываемыми на целочисленные пере- менные, — эта задача является неразрешимой. В реальном мире обычны задачи удовлетворения ограничений с ►непрерыв- ными областями определения, — изучение таких задач является основной те- мой в области исследования операций. Например, для планирования наблюдений на космическом телескопе Хаббл требовалась очень точная их привязка по време- ни; начало и конец каждого наблюдения и каждого маневра представляли собой переменные с непрерывной областью определения, подчиняющиеся всевозмож- ным ограничениям — астрономическим, в отношении очередности, по энергети- ческим затратам. Самой известной категорией задач удовлетворения ограничений
с непрерывной областью определения являются задачи клиненного програм- мирования, в которых ограничения должны быть представлены линейными ра- венствами или неравенствами. Задачи линейного программирования могут быть решены за время, полиномиально зависящее от количества переменных. Также проводились исследования в области задач с другими типами ограничений и це- левых функций — задач квадратичного программирования, конического програм- мирования второго порядка и т.д. Эти области исследования представляют собой важное направление в прикладной математике. Помимо исследования типов переменных, которые могут присутствовать в за- дачах УО, полезно будет заняться также изучением типов ограничений. Простей- шим их типом является к унарное ограничение, ограничивающее значение един- ственной переменной. Например, в задаче раскрашивания карты Австралии может оказаться, что жители штата Южная Австралия очень не любят зеленый цвет, что можно представить унарным ограничением {(8А), 8А %гееп). (Первоначальная спецификация области определения переменной также может рассматриваться как унарное ограничение.) к Бинарное ограничение связывает между собой две переменные. Например, ограничение 8А^Х81У является бинарным, к Бинарной задачей УО называет- ся задача, в которой имеют место только унарные и бинарные ограничения; она может быть представлена в виде графа ограничений, подобного приведенному на рис. 6.1, б. Можно также определить ограничения высшего порядка. Так, троичное огра- ничение между переменными (X, У, 7), например, может быть определено как ((X У, 2), Х< У< г или Х> У> 2). Ограничение, включающее произвольное количество переменных, называется к глобальным ограничением. (Эго название является традиционным, но может вводить в заблуждение, поскольку глобальное ограничение не обязательно должно включать все переменные в задаче.) Одним из наиболее распространенных гло- бальных ограничений является А11сН$, требующее, чтобы все включенные в него переменные обязательно имели разные значения. В задачах судоку (см. раз- дел 6.2.6) все переменные в строке, в столбце или блоке 3x3 должны удовлетво- рять ограничению А1кН$. Другим примером таких задач являются к криптоарифметические голово- ломки, иначе называемые числовыми ребусами (рис. 6.2, а). Обычно каждая бук- ва в такой головоломке представляет отдельную цифру. В случае задачи, показан- ной на рис. 6.2, а, такое требование может быть выражено с помощью глобального ограничения АПсНДХЕ, Г, (7,^, Л, О). Ограничения по правилам сложения для че- тырех столбцов этой головоломки могут быть записаны как л-арные ограничения в таком виде: О + О = К+ЮС1 (?, + №+№=&+ 10 С2
С2 + Т+Т=О+ 10 с3 С3=г, где Ср С2 и С3 являются вспомогательными переменными, представляющими циф- ру (0 или 1), которая переносится в следующий столбец десятков, сотен или ты- сяч. Такие ограничения могут быть представлены в виде ► гиперграфа ограни- чений, как показано на рис. 6.2, б. Гиперграф состоит из обычных вершин (на рисунке они представлены кружками) и гипервершин (квадраты), представляю- щих и-арные ограничения, т.е. ограничения, включающие п переменных. Т № О + Т IV О РОУК а) Рис. 6.2. а) Пример криптоарифметической задачи: каждая буква обозначает отдель- ную цифру, и суть задания — найти такую замену букв цифрами, чтобы результи- рующее выражение суммирования было арифметически правильным, но с допол- нительным ограничением (наличие ведущих нулей не допускается), б) Гиперграф ограничений для этой криптоарифметической задачи, на котором показано ограни- чение АИсИ#(квадрат в верхней части рисунка), а также ограничения сложения по столбцам (четыре квадрата в среднем ряду). Переменные Ср С2 и С3 представляют цифры переноса справа налево для трех столбцов В качестве альтернативы можно доказать (см. упражнение 6.6), что любое огра- ничение в конечной области определения может быть сведено к множеству би- нарных ограничений, если ввести достаточное количество вспомогательных пе- ременных. Эго означает, что любую задачу УО можно трансформировать в задачу, включающую только бинарные ограничения, что, безусловно, делает жизнь раз- работчиков алгоритмов проще. Другой способ преобразования и-арной С8Р в би- нарную строится на преобразовании ее графа в ► двойственный граф: создается новый граф, в котором будет по одной переменной для каждого ограничения в ис- ходном графе и одно бинарное ограничение для каждой пары ограничений в исход- ном графе, имеющих общие переменные.
Например, рассмотрим задачу УО с переменными Х= {Л, У, 2}, каждая из кото- рых имеет область определения {1,2,3,4,5}, и двумя ограничениями С\: {(Х9 У, 2), Х+ 7=2) и С2: ((Л, У), Х+ 1 = У). Тогда двойственный граф будет иметь перемен- ные Х= {Ср С2}, где область определения переменной С1 в двойственном графе представляет собой множество кортежей {(х^у^ гк)} в соответствии с ограничени- ем С1 в исходной задаче, и аналогично область определения переменной С2 пред- ставляет собой множество кортежей {(х, у.)} в соответствии с ограничением С2 в исходной задаче. Двойственный граф имеет бинарное ограничение ((СрС2), К}), где является новым отношением, определяющим ограничения между перемен- ными С! и С2, — в данном случае оно будет иметь вид = {((1,2,3), (1,2)), ((2,3,5), (2,3))}. Однако имеется две причины, по которым можно предпочесть глобальное огра- ничение, такое как А11сН$, набору бинарных ограничений. Во-первых, будет проще и с меньшей вероятностью совершить ошибку дать описание задачи с помощью ограничения А11сП$. Во-вторых, вполне возможно разработать специализирован- ный алгоритм логического вывода для глобальных ограничений, который будет эффективнее манипулирования примитивными ограничениями. Подобные алго- ритмы логического вывода обсуждаются в разделе 6.2.5. Все ограничения, рассматривавшиеся до сих пор, были абсолютными ограни- чениями, нарушение которых исключает потенциальное решение. Однако многие реальные задачи УО включают ► ограничения предпочтения, указывающие, ка- кие решения являются более предпочтительными. Например, в задаче составления расписания занятий в университете есть абсолютное ограничение, утверждающее, что ни один профессор не может проводить занятия в двух классах одновременно. Но в ней могут присутствовать и ограничения предпочтения, например такое, что профессор К предпочитает проводить занятия по утрам, тогда как профессор К — после полудня. Вариант расписания занятий, в котором профессор К по средам проводит занятия в 14:00, может рассматриваться как допустимое решение (если только он не должен в это же время председательствовать на заседании кафедры), но не будет оптимальным. Ограничения предпочтения часто можно закодировать как стоимости присваи- ваний отдельных переменных; например, за назначение профессору К занятий во второй половине дня придется заплатить 2 пункта, которые будут учтены в сум- марном значении целевой функции, в то время назначение ему занятий в первой половине дня будет иметь стоимость 1 пункт. При использовании такой формули- ровки задачи УО с предпочтениями можно решать, используя методы либо поиска с оптимизацией, либо основанные на поиске пути, либо локальные. Подобный тип задач мы будем называть ► задачами оптимизации при ограничениях, одним из важных классов которых являются задачи линейного программирования.
6.2. Распространение ограничений: логический вывод в С5Р____________________________________________________ Алгоритм поиска в пространстве атомарных состояний продвигается только од- ним способом: развертывая узел с целью посещения его преемников. У алгоритмов С8Р здесь есть выбор. Они могут генерировать преемников, выбирая новое значе- ние переменной с учетом ограничений. Именно этот подход реализуется в особом типе логического вывода, называемом ► распространением ограничений, — здесь ограничения используются для уменьшения количества допустимых значений пере- менной, что, в свою очередь, может привести к сокращению допустимых значений для другой переменной, и т.д. Идея состоит в том, что такой подход оставляет мень- ше вариантов, которые потребуется рассмотреть, выполняя следующий выбор при присваивании переменной. Распространение ограничений может быть вплетено не- посредственно в процесс поиска или может выполняться как этап предварительной обработки перед началом поиска. Иногда такая предварительная обработка позволя- ет решить всю задачу, и в результате поиск вообще не потребуется. Ключевая идея этого метода— к локальная совместимость. Если каждую пе- ременную рассматривать как вершину в графе (см. рис. 6.1, б), а каждое бинарное ограничение — как его дугу, то процесс обеспечения локальной совместимости в каждой части графа приводит к тому, что несовместимые значения удаляются по всему графу. Существуют различные типы локальной совместимости, которые рассматриваются в последующих подразделах. 6.2.1. Вершинная совместимость Некоторая переменная (соответствующая вершине в графе задачи УО) явля- ется к вершинно совместимой, если все значения в области определения этой переменной удовлетворяют ее унарным ограничениям. Например, в том вариан- те задачи раскрашивания карты Австралии (см. рис. 6.1), где жители штата Юж- ная Австралия не любят зеленый цвет, переменная ЗА, исходно имеющая область определения {гес1, %гееп, Ыие}, станет вершинно совместимой, если удалить из ее области определения значение %гееп, оставив переменную ЗА с уменьшенной об- ластью определения {гес1, Ыие}. Говорят, что граф вершинно совместим, если ка- ждая переменная в графе вершинно совместима. В задаче УО можно легко исключить все унарные ограничения, просто умень- шив в соответствии с ними области определения переменных в самом начале про- цесса решения задачи. Как было отмечено ранее, также возможно преобразовать все и-арные ограничения в бинарные. Именно по этой причине многие программы решения С8Р работают только с бинарными ограничениями, возлагая на пользо- вателя задачу предварительного исключения из задачи всех иных типов ограниче- ний. В дальнейшем в этой главе мы также будем придерживаться этого предполо- жения, если не указано обратное.
6.2.2. Дуговая совместимость В С8Р переменная обладает ►дуговой совместимостью,1 если каждое значе- ние в ее области определения удовлетворяет всем бинарным ограничениям пере- менной. Более формально переменная Х1 обладает дуговой совместимостью (или дугосовместима) по отношению к другой переменной Х^ если для каждого зна- чения в текущей области определения 2) имеется некоторое значение в области определения В , удовлетворяющее бинарному ограничению по дуге (Хр Хр. Граф является дугосовместимым, если каждая переменная является дугосовместимой с любой другой переменной. Например, рассмотрим ограничение У=Х2, где область определения обеих переменных X и У представляет собой множество десятичных цифр. Тогда это ограничение в явном виде можно записать как «ХП,{(0, 0),(1, 1),(2,4),(3,9)}). Чтобы сделать переменную X дугосовместимой с переменной У, достаточно уменьшить область определения переменной У до {0, 1, 2, 3}. Если также необхо- димо, чтобы и переменная У была дугосовместимой с переменной X, то область определения У должна быть сокращена до {0, 1, 4, 9}, и тогда вся эта задача УО станет дугосовместимой. С другой стороны, дуговая совместимость ничем не мо- жет нам помочь в решении задачи раскрашивания карты Австралии. Рассмотрим следующие ограничения-неравенства, наложенные на переменные (8А, 1УА): {(гее!, %гееп),(ге(1, Ыие),(%гееп, гес1),(%гееп, Ыие),(Ыие, гес1),(Ыие, %гееп)}. Независимо от того, какое значение вы выбираете для 8А (или для 1УА), для другой переменной есть допустимое значение. В результате применение правила дуговой совместимости не оказывает влияния на область определения любой переменной. Наиболее популярным алгоритмом обеспечения дугосовместимости является АС-3 (рис. 6.3). Чтобы сделать каждую переменную в задаче дугосовместимой, алгоритм АС-3 использует очередь, содержащую все дуги, которые необходимо проверить. Первоначально создается очередь, включающая все дуги в данной за- даче. (Каждое бинарное ограничение представляется двумя дугами, по одной в каждом направлении.) Затем алгоритм АС-3 извлекает из очереди произвольно выбранную дугу (X? X) и проверяет переменную Х) на дугосовместимость с пе- ременной Х^ Если это требование соблюдается, то алгоритм просто переходит к следующей дуге в очереди. Если это не так, то область определения ^корректиру- ется (уменьшается посредством отбрасывания нарушающего совместимость зна- чения), а затем в очередь добавляются все дуги (Хк, X), где вершины Хк являют- ся соседями ХГ Это необходимо сделать, поскольку сокращение области 2), может вызвать дальнейшие сокращения в областях Ок, даже если дуги от Хк уже были ' Выше в этой главе использовался термин “ребро”, а не “дуга”, поэтому было бы бо- лее разумно называть это “реберной совместимостью”, но именно название “дуговая со- вместимость” является исторически сложившимся.
рассмотрены ранее. Если область определения^ при очередном уменьшении ока- зывается пустой, то это означает, что вся задача УО не имеет совместимого реше- ния и алгоритм АС-3 немедленно возвращает значение/а1$е. В противном случае проверка дуг продолжается (при необходимости с удалением значений из обла- стей определения переменных) до тех пор, пока очередь не опустеет. На этот мо- мент у нас есть определение задачи УО, эквивалентной исходной задаче, — они обе будут иметь одно и то же решение, — но поиск в дугосовместимом варианте будет выполняться быстрее, поскольку его переменные имеют меньшие области определения. В одних случаях можно даже получить готовое решение (когда об- ласть определения каждой переменной содержит лишь одно значение), а в других будет доказано, что решения не существует (размер некоторой области определе- ния уменьшился до нуля). ГипсНоп АС-З(сзр) геШгп$ /а1зе если обнаружена дуговая несовместимость или определение исходной задачи, возможно, с меньшими областями определения переменных диеие«— очередь дуг, первоначально содержит все дуги в сзр ууЬПе ^иеие не пуста <1о (X, X)«— РОР(^меме) И КЕУ18Е(С5р, X, X) ^еп И размер области определения Р, = 0 Шеп геШгп /а1хе Гог еасЬ Хк ш Х-№ЮНВОК8 - {Х^ до добавить (Хк, X,) к очереди диеие геШгп 1гие ГппсНоп КЕУ18Е(с5р, Хь X]) геШгпз 1гие если область определения X успешно прошла проверку геу1$ес1<— /а1хе Гог еасЬ х т Р, до И в нет значения у, обеспечивающего для (х, у) удовлетворение ограничения между X и Х] Шеп удалить х из Р, гекиес!«— 1гие геШгп геукес! Рис. 6.3. Алгоритм обеспечения дуговой совместимости АС-3. После применения этого алгоритма либо каждая дуга будет дугосовместимой, либо некоторая перемен- ная будет иметь пустую область определения, указывая на то, что эта задача УО не имеет решения. Название “АС-3” было предложено разработчиком данного алго- ритма ([1474], 1977), поскольку это третья версия, представленная в его статье
Сложность алгоритма АС-3 можно проанализировать следующим образом. Предположим, что задача УО содержит п переменных, каждая из которых име- ет размер области определения не более (1 с бинарными ограничениями (дугами). Каждая дуга (Хк, X) может быть вставлена в очередь только (1 раз, поскольку пере- менная % имеет не более с1 значений, которые можно было бы удалить. Проверка дуговой совместимости может быть выполнена за время поэтому для наи- худшего случая общее время выполнения можно оценить как О(с</). 6.2.3. Путевая совместимость Предположим, нам нужно раскрасить карту Австралии всего двумя цветами: красным и синим. Дуговая совместимость в этом случае нам ничем не поможет, поскольку каждое ограничение по отдельности легко удовлетворяется простым размещением красного цвета на одном конце и синего — на другом. Однако оче- видно, что в действительности решения задачи не существует, поскольку три шта- та (Западная Австралия, Северные территории и Южная Австралия) граничат друг с другом и необходимо по крайней мере три цвета, чтобы каждый получил свой. Дуговая совместимость ограничивает области определения переменных (унар- ные ограничения), используя дуги (бинарные ограничения). Чтобы добиться про- гресса в таких задачах, как раскрашивание карты, необходимо использовать более строгое определение понятия совместимости. ► Путевая совместимость допол- нительно ужесточает бинарные ограничения за счет использования неявных огра- ничений, которые выводятся в результате анализа троек переменных. Множество двух переменных {%, %} будет путесовместимо по отношению к третьей переменной Хт, если для каждого присваивания {Х = а, Х^Ь}, совмести- мого с ограничениями (если таковые имеются) на значения {%, %}, существует присваивание Хт, удовлетворяющее ограничениям на {%, Хт} и {Хт, %}. Название этой характеристики определяется требованием общей совместимости дуг на пути от % до % с в середине. Давайте посмотрим, можно ли достичь путесовместимости в задаче раскра- шивания карты Австралии двумя цветами. Сделаем множество {ИС4, &4} путе- совместимым относительно переменной ЛТ. Начнем с перечисления совмести- мых присваиваний для множества. В этой задаче их имеется только два: {ИА =гес1, 8А = Ыие} и {ИА = Ыие, 8А=гес1}. Очевидно, что для обоих этих присваиваний зна- чение переменной ХТ не может быть ни гес1, ни Ыие, поскольку они будут кон- фликтовать либо со значением переменной ИА, либо со значением переменной 8А. Так как допустимого варианта значения переменной УТ не найдено, оба присваи- вания исключаются из числа допустимых, а значит, допустимых присваиваний для множества {ИА, 8А} у нас нет. Следовательно, можно сделать обоснованный вы- вод, что эта задача решения не имеет.
6.2.4. ^-совместимость Более строгие формы распространения ограничения можно определить с помо- щью понятия ► ^-совместимости. Задача УО является ^-совместимой, если для любого множества к-1 переменных и для любого совместимого присваивания значений этим переменным любой к-й переменной всегда можно присвоить неко- торое совместимое значение. Например, 1-совместимость означает, что при задан- ном пустом множестве можно считать любое множество из одной переменной со- вместимым с ним, — это понятие называют также вершинной совместимостью. Далее, 2-совместимость — то же, что и дуговая совместимость. Для графов би- нарных ограничений 3-совместимость — это то же, что и путевая совместимость. Задача У О является ► строго ^-совместимой, если она является ^-совместимой, а также (к-1 ^совместимой, (к-2)-совместимой и так далее вплоть до 1 -совмести- мой. Теперь предположим, что имеется некоторая задача УО с п узлами, которую мы сделали строго «-совместимой (т.е. строго ^-совместимой для к=п). Тогда эту задачу можно решить следующим образом. Вначале выбираем совместимое значе- ние для Хг В таком случае существует гарантия, что мы сможем выбрать значение для Х2, поскольку граф является 2-совместимым, для Х3, поскольку он 3-совмести- мый, и т.д. Для каждой переменной X. необходимо выполнить поиск только среди А значений в ее области определения, чтобы найти значение, совместимое с X,, •, Х_г Это означает, что гарантируется нахождение решения за время О(п2А). Безусловно, бесплатных пирожков не бывает и за такую возможность также приходится платить: задача удовлетворения ограничений в общем случае являет- ся ЫР-полной и любой алгоритм обеспечения «-совместимости в наихудшем слу- чае должен требовать времени, экспоненциально зависящего от «. Еще хуже то, что достижение «-совместимости также требует дополнительного объема памяти, экспоненциально зависящего от «. На практике определение подходящего уров- ня проверки совместимости в основном относится к области эмпирических мето- дов. Вычисление 2-совместимости встречается достаточно часто, а вот вычисле- ние 3-совместимости распространено значительно меньше. 6.2.5. Глобальные ограничения Вспомним, что глобальным ограничением называют ограничение, в котором используется произвольное количество переменных (но не обязательно все). Гло- бальные ограничения часто встречаются в реальных задачах и могут быть обрабо- таны с помощью специальных алгоритмов, которые более эффективны, чем уни- версальные методы, обсуждавшиеся до сих пор. Например, ограничение АИсП# указывает, что все задействованные в нем переменные должны иметь разные зна- чения (как в криптоарифметической задаче выше или головоломке судоку, речь о которой пойдет ниже). Одна простая форма обнаружения несоответствия для ограничений А1ки$работает следующим образом: если ограничение включает т
переменных и если для всех них имеется п возможных разных значений, то при т>п это ограничение не может быть выполнено. Отсюда можно вывести следующий простой алгоритм. Сначала удаляем из рассмотрения любую переменную в ограничении, имеющую одноэлементную об- ласть определения, а затем удаляем значение этой переменной из областей опре- деления оставшихся переменных. Далее повторяем эту процедуру до тех пор, пока имеются переменные с одноэлементными областями определения. Если в ка- кой-то момент времени будет обнаружена пустая область определения или оста- нется больше переменных, чем областей определения, это означает, что имеет ме- сто несовместимость. Этот метод можно применить для обнаружения несовместимости в частичном присваивании {ИА=гес19 №1У=гес1} на рис. 6.1. Обратите внимание на то, что пе- ременные ЛТ и О фактически связаны ограничением А11сН$9 поскольку каждая пара соответствующих регионов должна быть раскрашена различными цветами. После применения алгоритма АС-3 в сочетании с этим частичным присваиванием область определения каждой переменной сокращается до {^гееи, Ыие}. Это озна- чает, что имеются три переменные и только два цвета, поэтому ограничение АПсИ^ нарушается. Таким образом, иногда простая процедура проверки совместимости для ограничения более высокого порядка оказывается эффективнее в сравнении с процедурой проверки совместимости дуг, применяемой к эквивалентному множе- ству бинарных ограничений. Возможно, более важным ограничением высокого порядка является ►ресурс- ное ограничение, иногда называемое ограничением а1тоз1 (самое большее). На- пример, допустим, что в задаче составления графика переменные ., Р4 обозна- чают количество персонала, назначенного для выполнения каждого из четырех заданий. Ограничение, согласно которому всего к работам может быть привлечено не более 10 человек, записывается как а1то81(\Ъ, Рг, Р2, Р3, Р*). Несовместимость в этом случае можно обнаружить, проверяя сумму минимальных значений текущих областей определения переменных Рп. Например, если каждая переменная имеет область определения {3,4,5,6}, то ограничение а1гпо81 не может быть удовлетворе- но. Кроме того, можно принудительно добиться совместимости, удаляя максималь- ное значение из любой области определения, если оно не совместимо с минималь- ными значениями в других областях определения. Следовательно, если каждая переменная в данном примере исходно будет иметь область определения {2,3,4,5,6}, то из каждой области определения можно сразу же удалить значения 5 и 6. При решении крупных задач проверки ресурсных ограничений с целочислен- ными значениями (таких, как задачи снабжения, в которых предусматривается пе- ремещение тысяч людей в сотнях транспортных средств) обычно нецелесообразно представить область определения каждой переменной в виде большого множества целых чисел, а затем постепенно сокращать это множество с применением методов проверки совместимости. Вместо этого области определения представляются в виде верхнего и нижнего пределов и согласуются с помощью метода ►распространения
пределов. Например, в задаче составления графика авиарейсов предположим, что имеются два рейса, Рх и Р2, которые выполняют самолеты вместимостью 165 и 385 пассажиров соответственно. Тогда исходно области определения количества пассажиров в каждом рейсе можно описать следующим образом: 7)1 = [0,165] и Д2= [0,385]. Теперь предположим, что имеется дополнительное ограничение, согласно кото- рому этими двумя рейсами необходимо перевести 420 человек: Р} + Р2 = 420. Вос- пользовавшись методом распространения пределов, можно сократить области определения для каждой переменной: ^ = [35, 165] и Д2 = [255, 385]. Задача УО называется ► совместимой с пределами (Ьоипск-сопзШеп!), если для каждой переменной X и одновременно для нижнего и верхнего предельных значений X существует некоторое значение переменной У, удовлетворяющее за- данному ограничению между Хи У для каждой переменной У. Такого рода рас- пространение пределов широко используется в практических задачах с ограниче- ниями. б.2.б. Головоломка судоку Популярная головоломка ► судоку познакомила миллионы людей с проблемой удовлетворения ограничений, хотя они, возможно, этого и не осознавали. Класси- ческая головоломка судоку представляет собой квадратное игровое поле, разделен- ное на 81 квадрат, 9 рядов х 9 столбцов, часть из которых первоначально заполне- ны цифрами от 1 до 9. Задача состоит в том, чтобы поместить во все свободные квадраты цифры от 1 до 9 таким образом, чтобы ни одна цифра не появлялась дважды в любой строке, любом столбце или любом из вложенных малых квадра- тов 3x3 игрового поля (рис. 6.4). В этой головоломке строку, столбец или мень- ший квадрат Зх3 принято называть Яблоком. Головоломки судоку, которые печатают в газетах или сборниках головоломок, обладают тем свойством, что для них существует ровно одно решение. Хотя не- которые из них могут быть достаточно сложными, чтобы на их решение вручную уходили часы, любой решатель С8Р способен обрабатывать тысячи головоломок в секунду. Головоломку судоку можно считать задачей УО с 81 переменной, по одной на каждый квадрат. Здесь мы будем именовать эти переменные как Л 7 -А9 для верх- него ряда (слева направо) и вниз до II -19 для нижнего ряда. Все пустые квадраты имеют область определения {1,2,3,4,5,6,7,8,9}, а исходно заполненные квадра- ты имеют область определения, состоящую из единственного значения, которое в них указано. Кроме того, в задаче есть 27 различных ограничений АИсИ^ по од- ному для каждого блока (т.е. для каждой строки, столбца и поля из 9 квадратов).
А11сН#(А1, А2, АЗ, А4, А5, Аб, А7, А8, А9) АИсП&ф!, В2, ВЗ, В4, В5, Вб, В7, В8, В9) А11сН#(А1, В1,С1, О1, Е1, Р1, <31, Н1, II) А1кН#(А2, В2,С2, 02, Е2, Е2, 02, Н2,12) А11<Н$\А1,А2,АЗ, В1, В2, ВЗ,С1,С2,СЗ) А11<1&(А4, А5, Аб, В4, В5, Вб,С4,С5,С6) Рис. 6.4. а) Пример головоломки судоку, б) Решение этого примера Давайте посмотрим, насколько нам может помочь в решении задачи метод обе- спечения дуговой совместимости. Предположим, что ограничения АИсИ^были расширены до бинарных ограничений (например, таких, как А1 ^А2), и теперь мы можем прямо применить к задаче алгоритм АС-3. Рассмотрим переменную Еб (см. рис. 6.4, а) — это пустой квадрат, расположенный между значениями 2 и 8 в центральном квадратном блоке 3x3. Исходя из ограничений для этого блока, из области определения переменной Еб можно удалить значения 1, 2, 7 и 8. В соот- ветствии с ограничениями ее столбца из области определения также следует ис- ключить значения 5, 6, 2, 8, 9 и 3 (хотя значения 2 и 8 уже были удалены). В ре- зультате в области определения переменной Еб остается единственное значение {4}\ иначе говоря, получен ответ для этой переменной (он не противоре- чит и существующим ограничениям ее строки). Теперь рассмотрим перемен- ную 16—квадрат в нижнем блоке 3x3 среднего столбца, — окруженный значени-
ями 1, 3 и 3. Применение метода дуговой совместимости для столбца позволяет удалить из области определения 16 значения 5, 6,2,4 (уже известно, что значением переменной Е6 должно быть 4), 8, 9 и 3. Значение 1 следует исключить по дуговой совместимости с соседней переменной 15, и в результате в области определения переменной 16 остается единственное значение 7. Теперь в столбце 6 есть восемь известных значений, поэтому в соответствии с требованиями дуговой совместимо- сти переменная А6 должна иметь значение 1. Придерживаясь той же методики вы- вода, алгоритм АС-3 в конечном счете позволит решить всю головоломку — обла- сти определения всех переменных будут сведены к единственному значению, как показано на рис. 6.4, б. Конечно, интерес к головоломке судоку был бы утрачен очень быстро, если бы любой ее экземпляр можно было решить посредством механического примене- ния алгоритма АС-3. В действительности этот алгоритм работает только для са- мых простых вариантов головоломки судоку. Алгоритм РС-2, работающий по ме- тоду путевой совместимости, позволяет решить более сложные варианты задачи, но с большими вычислительными затратами: в головоломке судоку нужно учиты- вать 255 960 различных ограничений пути. Однако, чтобы решить самые сложные экземпляры головоломки и добиться прогресса в эффективности, необходимо дей- ствовать умнее. На самом деле привлекательность головоломки судоку для решающего ее чело- века заключается, прежде всего, в необходимости искать более сложные стратегии логического вывода. Поклонники дают им красочные имена, такие как “голые тройки”. Эта стратегия работает следующим образом: в любом блоке (строка, столбец или квадрат 3x3) ищем три квадрата, у каждого из которых область опре- деления состоит из трех одинаковых чисел или подмножества этих чисел. Напри- мер, тремя такими областями определения могут быть {1,8}, {3,8} и {1,3,8}. Этой информации недостаточно, чтобы установить, какой именно квадрат содержит 1, 3 или 8, но она позволяет утверждать, что эти три числа должны быть распределе- ны между данными тремя квадратами. А значит, можно удалить 1, 3 и 8 из обла- стей определения всех остальных квадратов в блоке. Интересно выяснить, как далеко можно зайти, не используя ничего из того, что является специфическим именно для судоку. Безусловно, следует сказать, что в за- даче имеется 81 переменная, области определения которых могут включать лю- бое подмножество цифр от 1 до 9, а также что присутствует 27 ограничений типа А11сН$. Однако за рамками этого определения все использованные нами страте- гии — дуговая совместимость, путевая совместимость и так далее — в общем случае применимы ко всем задачам удовлетворения ограничений, а не только к су- доку. Даже метод “голых троек” в действительности является стратегией для обе- спечения совместимости ограничений Л/йй^и отнюдь не является специфическим для судоку как такового. Эго сила формального подхода к С8Р: для каждой новой проблемной области достаточно лишь определить задачу в терминах ограничений, а все остальное возьмут на себя общие механизмы решения задач УО.
6.3. Поиск с возвратами в задачах удовлетворения о граничени й___________________________________________________ Иногда может оказаться, что процесс распространения ограничений уже завер- шился, а в задаче по-прежнему имеются переменные с несколькими возможными значениями. В этом случае для нахождения окончательного решения необходимо выполнить поиск. В данном разделе рассматриваются алгоритмы поиска с возвра- тами, работающие на частичных присваиваниях, в следующем — алгоритмы ло- кального поиска по полным присваиваниям. Рассмотрим, как стандартный поиск с ограничением глубины (из главы 3) можно применить для решения задач УО. Здесь состоянием будет частичное присваивание, а действием — расширение присваивания за счет добавления нового значения, например М81Р=ге(] или 8А = Ыие для задачи раскрашива- ния карты Австралии. Для задач УО с п переменными с областью определения размером (1 в конечном счете может быть построено дерево поиска, в котором все полные присваивания (а следовательно, и все решения) являются листовы- ми узлами на глубине п. При этом отметим, что фактор ветвления на верхнем уровне должен быть пс1, поскольку любое из <1 значений может быть присвоено любой из п переменных. На следующем уровне коэффициент ветвления будет равен (п— 1)б/ и так далее для всех п уровней. В результате дерево будет иметь п\<Г листовых узлов, хотя в задаче существует только <Г возможных полных присваиваний! Однако можно избавиться от этого пугающего коэффициента и!, если учесть важное свойство задач УО: ► коммутативность. Задача является коммутативной, если порядок применения любого заданного множества действий в процессе ее ре- шения не влияет на результат. В задаче УО безразлично, какая переменная получит значение первой: будет это №)У=гес1, а затем 8А=Ыие или наоборот. Следователь- но, в каждом узле дерева поиска необходимо рассматривать только одну перемен- ную. В корне дерева можно сделать выбор между 8А=гес1,8А = %гееп и 8А =Ыие, но никогда не следует делать выбор между №\У=гес1 и 8А = Ыие. При таком условии количество листьев в дереве сокращается до к чему мы и стремились. На ка- ждом уровне дерева необходимо выбрать, с какой переменной работать, и никогда не изменять этого выбора. На рис. 6.5 представлена процедура поиска с возвратами для задач удовлетво- рения ограничений (С8Р). При работе он последовательно выбирает еще не на- значенные переменные, а затем по очереди пробует все значения в области опре- деления этой переменной, предпринимая попытки расширить каждое из них до решения посредством рекурсивного вызова. Если вызов завершается успешно, возвращается решение задачи, а если возвращается отказ, присваивание восста- навливается до предыдущего состояния, и проверяется следующее значение. Если все значения приводят к ошибке, алгоритм возвращает отказ. Часть дерева поиска
для задачи раскрашивания карты Австралии показана на рис. 6.6, где значения пе- ременным присваивались в порядке Ж4, ГипсНоп Васкткаск1КО-8еаксн(с5/)) геСигпз решение или индикатор отказа/аИиге геШгп ВАСКТКАСК(сзр, {}) ГипсНоп Васкткаск (сзр, аз$1%птепГ) геШгпз решение или индикатор отказа/ш/ыге И азз1%птеп! является полным Шеп геШгп азм^птеп! уаг<— 8ЕЬЕСТ-имА88ЮМЕО-УАК1АВЬЕ(с5р, азз1%птеп1) Гог еасЬ уа1ие вп ОкоЕК-ВомА1К-УАЬОЕ8(с5р, уаг, азз^птеп!) до И значение \>а1ие является совместимым с присваиванием азз1%птеп1 Шеп добавить \уаг = уа1ие} к присваиванию азм^птеп! т/егепсез «— 1МЕЕКЕМСЕ(с5р, уаг, азы^птеп!) И т/егепсез /аИиге Шеп добавить 1п/егепсез к решению сзр гезик <— ВАСКТКАСК(сзр, азз1%птеп1) И гезик /аИиге Шеп геШгп гезик удалить т/егепсез из решения сзр удалить {уаг = уа1ие} из присваивания азз1%птеп1 геШгп /аИиге Рис. 6.5. Простой алгоритм поиска с возвратами для решения задач удовлетворе- ния ограничений. Этот алгоритм составлен по принципу рекурсивного поиска в глубину, описанного в главе 3. Функции 8ЕЬЕСТ-иКА881СКЕВ-УАК1АВЬЕ и ОКВЕК- ВОМА1М-УА1Л1Е8 реализуют эвристические функции общего назначения, рассма- триваемые в разделе 6.3.1. Функция ШЕЕКЕЫСЕ может на выбор обеспечивать ду- говую, путевую или ^-совместимость, если это необходимо. Если выбор значения приводит к невыполнимости условий (обнаруженной либо функцией ШЕЕКЕЫСЕ, либо функцией ВАСКТКАСК), то присваивания значений (включая те, которые были выполнены функцией ШРЕКЕИСЕ) отменяются и проверяется новое значение Обратите внимание, что функция Васкткаскшс-8еаксн сохраняет только единственное представление состояния (присваивание) и изменяет это представ- ление, а не создает новые (см. раздел 3.4.4). Хотя алгоритмы неинформированного поиска из главы 3 можно улучшить только за счет использования в них эвристических функций, соответствующих данной проблемной области, было установлено, что работу алгоритма поиска с возвратами можно улучшить с помощью предметно-независимой эвристики, в ко- торой используются преимущества разложенного представления задачи УО. В сле- дующих четырех разделах будет показано, как это делается. • (6.3.1) Какой переменной должно быть присвоено значение в следую- щую очередь (функция 8ЕЬЕСТ-иКА881СКЕО-УАК1АВЬЕ) и в каком порядке
необходимо проверять ее допустимые значения (функция Окоек-Помаш- УАШЕ8)? • (6.3.2) Какие логические выводы следует выполнять на каждом этапе поис- ка (функция 1НГЕЯЕЫСЕ)? • (6.3.3) Можно ли вернуться (функция Васкткаск) больше чем на один этап поиска, если это потребуется? • (6.3.4) Можно ли сохранить и повторно использовать частичные результаты уже выполненного поиска? Рис. 6.6. Часть дерева поиска для задачи раскрашивания карты, представленной на рис. 6.1 6.3.1. Упорядочение переменных и значений Приведенный на рис. 6.5 алгоритм поиска с возвратами содержит следующую строку: уаг*— 8ЕЕЕСТ-иКА8816КЕО-УАЯ1АВЕЕ(сзр, азы^птеШ). Простейшей стратегией для функции 8ееест-11ма8816МЕО-Уак1АВЕЕ является использование заданной статической упорядоченности: переменные выбираются в порядке {Х{,Х2,...}. Другим простым вариантом является выбор переменных случайным образом. Ни одна из этих стратегий не является оптимальной. Напри- мер, на рис. 6.6 после присваивания значений переменным 1РА = гес1 и ХТ=^гееп есть только это одно возможное значение для переменной 8А, так что имеет смысл на следующем этапе выполнить присваивание 8А=Ыие, а не присваивать значение переменной О. В действительности после присваивания значения переменной 8А все варианты выбора значений для переменных <0, Х8\У и Vстановятся вынужден- ными.
Эта довольно очевидная идея выбора в первую очередь переменной с наимень- шим количеством “допустимых” значений называется эвристикой >с минималь- ным количеством оставшихся значений (Мтппит Кетатт% Уа1иез — МКУ). Ее также часто называют эвристикой с “переменной, на которую наложено наибольшее количество ограничений” или эвристикой “первого неудачного завершения”, — по- следнее название применяется потому, что эта эвристическая функция предусматри- вает выбор переменной, с наибольшей вероятностью приводящей к скорой неудаче, усекая тем самым дерево поиска. Если есть переменная Л, уже не имеющая остав- шихся допустимых значений, эвристическая функция МКУ первой выберет именно ее, и неудача будет обнаружена немедленно, что позволит избежать бессмысленных поисков среди других переменных, которые в любом случае закончатся неудачей по- сле того, как в конечном итоге будет выбрана переменная X,. Эвристика МКУ обычно работает лучше, чем случайное или статическое упорядочение, иногда на порядок или более, хотя результаты варьируют в зависимости от задачи. Однако эвристика МКУ ничем не поможет в выборе окраски первого регио- на в задаче раскрашивания карты Австралии, поскольку изначально у каждого ре- гиона есть три допустимых цвета. В этом случае более полезной и удобной будет ► степенная эвристика. В ней предпринимается попытка уменьшить коэффици- ент ветвления в будущих вариантах за счет выбора переменной, которая участвует в наибольшем количестве ограничений на другие переменные с неприсвоенными значениями. На рис. 6.1 переменной с наибольшей степенью, равной 5, является переменная 8А, — все остальные переменные имеют степень 2 или 3, за исклю- чением Г, которая имеет степень 0. В действительности после выбора перемен- ной 8А применение степенной эвристики позволяет решить задачу без каких-ли- бо неудачных этапов: теперь можно просто выбирать любой совместимый цвет в каждой точке выбора и все равно прийти к решению без поиска с возвратами. Эв- ристика с минимальным количеством оставшихся значений (МКУ) обычно обе- спечивает более мощное руководство, но степенная эвристика может оказаться по- лезной в качестве средства разрешения неопределенных ситуаций. Как только переменная будет выбрана, алгоритм должен принять решение, в ка- ком порядке будут анализироваться ее значения. В этом случае эффективной будет эвристика >с наименее ограничительным значением. В ней предпочтение от- дается значению, при котором из рассмотрения исключается наименьшее количе- ство вариантов выбора значений для соседних переменных в графе ограничений. Например, предположим, что на рис. 6.1 уже сформировано частичное присваива- ние с 1УА=гес1 и №Г=%гееп и что следующей для проверки выбрана переменная Выбрать для нее синий цвет будет плохим решением, поскольку это исключит по- следнее допустимое значение в области определения переменной непосред- ственно соседствующей с Именно поэтому эвристика с наименее ограничитель- ным значением предпочтет выбрать значение гес19 а не Ыие. Вообще говоря, в этой эвристике предпринимается попытка сохранить максимальную гибкость для по- следующих присваиваний значений переменным.
Почему выбор переменной должен выполняться в порядке “худшая — первой”, а выбор ее значений в порядке “худшее — последним”? Каждая переменная в ко- нечном итоге должна быть выбрана, поэтому, выбирая те, которые могут привести к неудаче в первую очередь, у нас будет в среднем меньше выполненных успеш- ных назначений, которые затем придется отбрасывать при возврате. При упорядо- чивании выбора значений хитрость состоит в том, что в этот раз нам нужно только одно успешное решение; поэтому имеет смысл первыми анализировать наибо- лее вероятные значения. Если бы требовалось найти все возможные решения, а не просто первое попавшееся, то порядок выбора анализируемых значений был бы нам безразличен. 6.3.2. Чередование поиска и логического вывода Выше было показано, как алгоритм АС-3 позволяет сократить области опреде- ления переменных прежде, чем начнется поиск. Но логический вывод может ока- заться даже более мощным, выполняя то же самое непосредственно в процессе поиска: при каждом выборе значения для переменной появляется новый шанс при- йти к заключению о возможности дополнительного сокращения областей опреде- ления для соседних переменных. Одна из простейших форм логического вывода носит название ► предвари- тельная проверка (/огхкагс! скескт%). При каждом присваивании значения пере- менной X процесс предварительной проверки обеспечивает для нее дуговую со- вместимость: анализируется каждая переменная У с неприсвоенным значением, связанная с X некоторым ограничением, и из области определения переменной У удаляется любое значение, несовместимое с новым значением, выбранным для X. На рис. 6.7 показан ход поиска с возвратами при решении задачи раскрашива- ния карты Австралии с использованием предварительной проверки. Из этого при- мера можно сделать два важных вывода. Во-первых, обратите внимание, что после присваивания 1УА=гес1 и (2=%гееп области определения переменных ЛТ и 8А сокра- щаются до единственного значения, а значит, все ветвление, связанное с поиском значений для этих переменных, полностью устраняется за счет распространения ин- формации, касающейся переменных ^VАи^. Во-вторых, заслуживает внимания тот факт, что после присваивания У=Ыие область определения переменной 8А оказалась пустой. Следовательно, предварительная проверка позволила обнаружить, что ча- стичное присваивание {1УА=гес1, в=%гееп, У=Ыие} является несовместимым с огра- ничениями этой задачи, а значит, алгоритм немедленно выполняет возврат. Для многих задач поиск будет более эффективным, если объединить эвристику МКУ с предварительной проверкой. Обратите внимание на ситуацию на рис. 6.7 после выполнения присваивания {ИА=гес1}. Вполне очевидно, что это присваива- ние ограничивает возможные назначения для соседних переменных, УТ и 8А. по- этому есть смысл продолжить обработку этих переменных, и тогда все остальные переменные станут на свои места. Именно это и происходит при использовании
эвристики МКУ: каждая из переменных АТ и &4 имеет два значения, поэтому одна из них выбирается первой, затем — следующая, затем — МНР и К в указанном порядке. Наконец, переменная Т все так же имеет три допустимых значения, и ни- что не мешает выбрать любое из них. Предварительную проверку можно рассма- тривать как эффективный способ пошагового вычисления информации, которая нужна эвристике МКУ для выполнения своей работы. Рис. 6.7. Ход поиска в задаче раскрашивания карты Австралии с использованием предварительной проверки. Присваивание \УА =гес! выполняется первым, а затем предварительная проверка приводит к удалению значения гес1 из областей опреде- ления соседних переменных 1УТ и 8А. После присваивания (*)=%гееп значение %гееп удаляется из областей определения переменных УГ, 8А и ММ. После присваивания V = Ыие из областей определения ММ и 8А удаляется значение Ыие, в результате чего переменная 5А остается без допустимых значений Хотя предварительная проверка обнаруживает много несовместимостей, она не позволяет обнаружить их все. Например, рассмотрим третью строку на рис. 6.7, которая соответствует состоянию после присваивания ()=§гееп. Переменные и уже приведены к состоянию дуговой совместимости, однако переменные УТ и 8А остались с единственным значением Ыие в области определения, а это недо- пустимо, поскольку их регионы смежные. Алгоритм ► поддержки дуговой совместимости, или, иначе говоря, МАС (Мат1атт% Аге СопзгМепсу), обнаруживает несоответствия, подобные этому По- сле того как переменной % присваивается значение, процедура 1кгекеысе вызыва- ет АС-3, но вместо передачи ему очереди из всех дуг в С8Р, он запускается толь- ко с дугами (ЛГ,Х) для всех переменных Хг которым еще не присвоено значение и которые являются соседями От этой начальной точки алгоритм АС-3 выполня- ет распространение ограничения обычным способом, и если у любой переменной окажется пустая область определения, вызов АС-3 завершается неудачей, и это вы- зывает немедленный возврат. Очевидно, что алгоритм МАС является более мощ- ным, чем метод предварительной проверки, поскольку последний делает то же са- мое, что и МАС на начальных дугах в очереди МАС; но в отличие от МАС метод предварительной проверки не выполняет рекурсивного распространения ограни- чений, когда в области определения переменных вносятся изменения.
б.З.З. Интеллектуальный поиск с возвратами: поиск в обратном направлении В алгоритме Васкткаск1КО-8еаксн, приведенном на рис. 6.5, применялось очень простое правило в отношении того, что делать, если какая-то ветвь поиска оканчивается неудачей: просто вернуться к предыдущей переменной и проверить для нее другое значение. Такой метод называется ► хронологическим поиском с возвратами, поскольку повторно посещается тот пункт, в котором было принято последнее по времени решение. В данном подразделе рассматриваются лучшие ва- рианты поиска с возвратами. Рассмотрим, что произойдет при применения простого поиска с возвратами в задаче, показанной на рис. 6.1, при условии фиксированного упорядочивания пе- ременных: (*). Л\$ТГ, К, Г, ИХ ТУТ. Предположим, что уже сформировано ча- стичное присваивание ^=ге(ЦХ81У=%гееп9 У-Ыие, Т=гес1}. Но после попытки присвоить значение следующей переменной, &4, обнаруживается, что любое зна- чение нарушает какое-либо ограничение. Осуществляется возврат вверх к пере- менной Т, чтобы назначить новый цвет для Тасмании! Очевидно, что это не име- ет смысла — любое изменение цвета для Тасмании не поможет решить проблему с Южной Австралией. Более разумный подход заключается в возврате к переменной, которая позво- лит решить возникшую проблему, — к переменной, ответственной за то, что все оставшиеся значения у переменной 8А стали недопустимыми. Для этого попро- буем отследить множество присваиваний, которые находятся в конфликте с ка- ким-либо значением переменной 8А. Такое множество (в данном случае это ^=гес!,№;1Р=8гееп, У=Ыие,}) называют ► конфликтным набором для перемен- ной 8А. Метод ► обратного перехода выполняет возврат к переменной с послед- ним по времени присвоенным значением из конфликтного множества; в нашем примере обратный переход “перепрыгнет” через узел Тасмании и попробует при- своить новое значение переменной У. Этот метод легко реализуется за счет моди- фикации функции Васкткаск таким образом, что она будет накапливать множе- ство данных о конфликтах при проверке значений, допустимых для присваивания. Если допустимых значений не будет найдено, алгоритм должен вернуть данные о последнем добавленном элементе из множества конфликтов вместе с индикато- ром неудачи. Внимательный читатель уже должен был заметить, что предварительная про- верка позволяет определить конфликтное множество без дополнительной работы, поскольку каждый раз, когда процедура предварительной проверки, основанная на присваивании переменной Х=х, удаляет некоторое значение из области опре- деления переменной У, она должна добавить Х=х к конфликтному множеству пе- ременной У. Кроме того, каждый раз, когда это последнее значение удаляется из области определения У, переменные из конфликтного множества У добавляются к конфликтному множеству переменной X. В этом случае после перехода к У можно
будет сразу же установить, куда должен быть выполнен обратный переход в случае необходимости. То есть нам теперь известно, что Х-х приводит к противоречию (в У), и следовательно, для X необходимо проверить другое присваивание. Проницательный читатель уже должен был заметить нечто странное: обратный переход происходит, когда каждое значение в некоторой области определения кон- фликтует с текущим присваиванием, но предварительная проверка обнаруживает этот случай и вообще исключает возможность достижения такого узла! В действи- тельности можно показать, что каждая ветвь, отсекаемая с помощью обратного пе- рехода, отсекается также с помощью предварительной проверки. Поэтому простой поиск с обратным переходом в сочетании с поиском с предварительной проверкой становится избыточным, и в действительности, когда в поиске используется более строгая проверка совместимости, такая как МАС, необходимо и достаточно вы- полнить либо одно, либо другое. Несмотря на замечания, сделанные в предыдущем абзаце, идея, лежащая в осно- ве обратного перехода, остается перспективной, если возврат осуществляется с уче- том причин неудачи. При обратном переходе неудача обнаруживается после того, как область определения некоторой переменной становится пустой, но во многих случаях какая-то ветвь поиска становится бесперспективной задолго до того, как это происходит. Еще раз рассмотрим частичное присваивание {1РА=гес1,Х81Р=гес1} (которое согласно приведенному выше описанию является несовместимым). Пред- положим, что на следующем этапе предпринимается попытка присваивания Т=гв(1, а затем осуществляется присваивание значений переменным АТ, <2, V, 8А. Извест- но, что ни одно присваивание не применимо для этих последних четырех перемен- ных, поэтому в конечном итоге не остается доступных значений, которые можно было бы попытаться присвоить переменной ХТ. Теперь возникает вопрос, куда вы- полнить возврат? Обратный переход не может применяться, поскольку в области определения переменной ХТ имеются значения, совместимые со значениями, ра- нее присвоенными переменным, — переменная ХТ не имеет полного конфликтного множества из переменных с ранее присвоенными значениями, которое вызвало бы неудачу при попытке присваивания ей значения. Однако известно, что неудачу вы- зывают четыре переменные, ХТ, ^,Vи 8А, взятые вместе, поскольку во множестве переменных с ранее присвоенными значениями должны существовать такие пере- менные, которые непосредственно конфликтуют с этими четырьмя. Эти рассуждения приводят к созданию другого, более глубокого определения понятия конфликтного множества для такой переменной, как АГ: конфликтным множеством называется множество переменных с ранее присвоенными значени- ями, которые наряду со всеми переменными со значениями, присваиваемыми в дальнейшем, становятся причиной того, что для ХТ не существует совместимо- го решения. В таком случае конфликтное множество состоит из переменных и Х81У, поэтому алгоритм должен выполнить возврат к Х8№ и пропустить перемен- ную, соответствующую Тасмании. Алгоритм обратного перехода, в котором ис- пользуются конфликтные множества, определенный таким образом, называется
алгоритмом ► обратного перехода, управляемого конфликтами (соп/11с1-сНгес1ес1 Ьаск]итр1п§). Теперь необходимо объяснить, как вычисляются эти новые конфликтные мно- жества. Применяемый для этого метод фактически очень прост. “Окончательная” неудача в какой-то ветви поиска всегда возникает из-за того, что область опре- деления некоторой переменной становится пустой; эта переменная имеет типич- ное конфликтное множество. В нашем примере неудача возникает при присваи- вании значения переменной ЗА, а ее конфликтным множеством является, скажем, {1УА,ХТ,()}. Выполняется обратный переход к переменной <2, и эта переменная поглощает конфликтное множество, полученное от ЗА (после исключения из него самой переменной (2), объединяя его со своим прямым конфликтным множеством, представляющим собой {ЛТ, Х31У}. В результате новым конфликтным множе- ством становится {1УА,МТ,Х31У}. Это означает, что, продолжая поиск от <2, нель- зя найти решение при наличии ранее выполненного присваивания переменным {\УА,ХТ,Х31У}. Поэтому обратный переход выполняется к переменной ЛТ, присва- ивание значения которой выполнено последним по времени по сравнению с дру- гими этими переменными. Переменная ХТпоглощает множество {\УА,ХТ,ХЗ\У} - {ХТ}, объединяя его с собственным прямым конфликтным множеством {(УА), что приводит к получению множества {11А,Х31У} (как было указано в предыду- щем абзаце). Теперь алгоритм осуществляет обратный переход к Х31У, как и пред- полагалось. Подведем итог: допустим, что Х] — текущая переменная, а соп/{Х^ — ее конфликтное множество. Если все попытки присваивания каждого возможного значения переменной Х) оканчиваются неудачей, то необходимо выполнить воз- врат к переменной Х) с последним по времени присвоенным значением во множе- стве соп/(Х^) и установить соп/(Х)<-соп/(Х) О сои/(У)- {X). 6.3.4. Определение ограничений с помощью обучения Если поиск обнаруживает противоречие, обратный переход может указать нам, как далеко нужно вернуться назад, что позволяет не тратить время на проверку значений переменных, бесполезных с точки зрения поиска решения задачи. Но также было бы неплохо избежать повторного попадания в ту же самую ситуацию. Когда поиск приводит к противоречию, нам известно, что возникновение этой про- блемы связано с некоторым подмножеством конфликтного множества. ► Опреде- ление ограничений с помощью обучения (соп5(га1п! 1еагп1п%) — это идея оты- скать минимальный набор переменных из конфликтного множества, вызывающего проблему. Подобный набор переменных вместе с соответствующими их значения- ми называется ► тупиком (по-§оо(1). Затем информация о найденном тупике фик- сируется либо добавлением в С8Р нового ограничения, впредь запрещающего эту комбинацию присваиваний, либо ее сохранением в отдельном кеше тупиков.
Например, рассмотрим состояние {1РА=гес1,№Т=%гееп, ()=Ыие}, показанное в нижнем ряду на рис. 6.6. Предварительная проверка может показать, что это состо- яние представляет собой тупик, поскольку в нем отсутствует допустимое значение для присваивания переменной 8А. В данном конкретном случае запоминание све- дений о найденном тупике ничем нам не поможет, поскольку, как только эта ветвь будет удалена из дерева поиска, тупиковая комбинация уже никогда не встретит- ся. Но если предположить, что дерево поиска на рис. 6.6 на самом деле является частью более крупного дерева поиска, которое начинается с присваивания первых значений переменным Ии Т, то в этом случае будет целесообразно зафиксировать, что состояние {1РА = гес1,№Г=%гееп, () = Ыие} является тупиком, поскольку поиск будет сталкиваться с этой проблемой вновь и вновь для каждой возможной комби- нации присваиваний V и Т. Тупики могут эффективно использоваться в алгоритмах предварительной про- верки или обратного перехода. Метод определения ограничений с помощью обу- чения является одним из наиболее важных методов, используемых в современных решателях С8Р для достижения высокой эффективности при решении сложных задач. 6.4. Локальный поиск в задачах удовлетворения ограничений________________________________________________________ Было установлено, что алгоритмы локального поиска (см. раздел 4.1) являют- ся очень эффективными средствами решения многих задач УО. В них использу- ется следующая формулировка с полным состоянием (как она была введена в раз- деле 4.1): в каждом состоянии присваивается значение каждой переменной, а при поиске за один раз изменяется значение одной переменной. В качестве примера будет использоваться задача с восемью ферзями, которая была определена как за- дача удовлетворения ограничений в разделе 6.1.3. На рис. 6.8 слева представлена начальная позиция с полным присваиванием произвольных значений всем восьми переменным, — как правило, в этом случае нарушается сразу несколько ограни- чений. Далее случайным образом выбирается конфликтная переменная (в нашем случае это переменная <2^, представляющая крайний справа столбец). Желательно изменить ее значение таким образом, чтобы это приблизило нас к решению. Наи- более очевидным подходом является выбор такого значения, которое приведет нас к минимальному количеству конфликтов с другими переменными — это эвристи- ка ► минимальных конфликтов. На рисунке (позиция слева) имеются две строки, в которых нарушается только одно ограничение. Случайным образом выбираем присваивание (?8=3 (т.е. переме- щаем ферзя в столбце 8 в ряд 3). На следующей итерации (на рисунке в средине) выбираем для изменения переменную ^6, обратив внимание на то, что после пере- мещения ферзя в нижнюю, восьмую, строку с этой переменной больше не будут
связаны какие-либо конфликты. Поскольку в этой позиции (на рисунке справа) больше нет конфликтующих переменных, можно заключить, что найдено решение задачи. Этот алгоритм представлен на рис. 6.9.2 Рис. 6.8. Двухэтапный процесс решения задачи с восемью ферзями на основе эври- стики минимальных конфликтов. На каждом этапе выбирается ферзь для повтор- ного назначения ему места в том же столбце. Количество конфликтов (в данном случае — количество атакующих ферзей) показано в каждой клетке. Применяемый алгоритм предусматривает перемещение ферзя в клетку с минимальными конфлик- тами, разрешая неопределенность посредством случайного выбора Алгоритм минимальных конфликтов показал себя невероятно эффективным при решении многих задач СЗР. Удивляет тот факт, что при решении задачи с п ферзями время выполнения алгоритма минимальных конфликтов (если не учи- тывать затрат времени на первоначальную расстановку ферзей) оказывается почти независимым от размера задачи. Этот алгоритм (после начального присваивания) решает задачу даже с миллионом ферзей в среднем за 50 этапов. Это замечатель- ное достижение стало стимулом, побудившим к проведению значительной части исследований по локальному поиску в 1990-х годах, а также позволило уточнить различие между легкими и трудными задачами, которое дополнительно будет рас- сматриваться в разделе 7.6.3. Грубо говоря, задача с п ферзями является легкой для локального поиска, поскольку решения плотно распределены по всему простран- ству состояний. Алгоритм минимальных конфликтов также успешно работает и при решении трудных задач. Например, он использовался для планирования на- блюдений на космическом телескопе Хаббл, что позволило сократить затраты вре- мени на планирование расписания наблюдений на неделю с трех недель (!) при- мерно до 10 минут. 2 Локальный поиск может быть легко расширен до оптимизационных задач с ограни- чениями (СОР). В этом случае для оптимизации целевой функции могут применяться все методы поиска восхождением на вершину и имитации отжига.
ГипсНоп М1Ь1-Соь1НЛСТ8(сур, тах_$1ерз) геСигпз решение сиггеп! или индикатор неудачи /аИиге 1приС$: С5*р, определение задачи удовлетворения ограничений тахер5, количество этапов, которые разрешено выполнить, прежде чем отказаться от дальнейших попыток сиггеп! <— исходное полное присваивание для сзр Гог / = 1 1о тах_$1ер5 до И сиггеп! является решением для задачи с$р СИеп геСигп сиггеп! уаг <— конфликтующая переменная, выбранная случайным образом ИЗ С8р.УАК1АВЕЕ8 уа1ие «— значение V для переменной уаг, минимизирующее значение Соышст8(сур, уаг, V, сиггепГ) присвоить у аг = уа1ие в решении сиггеп! геСигп /аИиге Рис. 6.9. Алгоритм локального поиска М1Ы-СОКГЫСТ8, предназначенный для реше- ния задач С8Р. Начальное состояние может быть выбрано случайным образом или с помощью процесса жадного присваивания, в котором для каждой переменной по очереди выбирается значение с минимальными конфликтами. Функция СОКРЫСТ8 подсчитывает количество ограничений, нарушенных данным конкретным значени- ем, с учетом остальной части текущего присваивания Все методы локального поиска, упоминаемые в разделе 4.1, можно считать кан- дидатами для применения при решении задач УО, причем некоторые из них ока- зались особенно эффективными. Ландшафт пространства состояний задач УО при применении эвристики минимальных конфликтов обычно имеет ряд плато. Мо- гут существовать миллионы присваиваний значений переменным, находящихся на расстоянии всего одного конфликта от решения. Поиск на плато — разреше- ние перемещения в сторону, т.е. перехода к состояниям с тем же значением функ- ции оценки — может помочь локальному поиску быстрее выбраться за его преде- лы. Подобные блуждания по плато могут контролироваться с помощью метода, получившего название поиска с запретами: в этом случае сохраняется небольшой список недавно посещенных состояний, возвращаться в которые алгоритму запре- щено. Алгоритм имитации отжига также может быть успешно использован для выхода за пределы плато. Другой метод, называемый ► взвешиванием ограничений, направлен на то, чтобы сосредоточить поиск на важных ограничениях. Каждому ограниче- нию присваивается числовой весовой показатель, и изначально все веса равны 1. На каждом этапе поиска алгоритм выбирает для изменения ту пару “перемен- ная/значение”, которая обеспечивает самый низкий общий вес всех нарушенных ограничений. Далее эти веса регулируются посредством увеличения веса каждо- го ограничения, нарушаемого в текущем присваивании. Такой подход дает два
преимущества: на плато формируется определенный рельеф, укрепляя уверен- ность, что есть возможность достичь улучшений из текущего состояния, а также обеспечивается некоторое “обучение”: со временем трудные ограничения получа- ют все более высокие веса. Еще одним преимуществом локального поиска является то, что он может ис- пользоваться для оперативной корректировки (см. раздел 4.5) в случае измене- ния условий задачи. Рассмотрим задачу составления еженедельного расписания полетов. Это расписание может включать тысячи рейсов и десятки тысяч персо- нальных назначений, но из-за плохой погоды в одном аэропорту весь этот гра- фик может стать невыполнимым. Поэтому желательно иметь возможность от- корректировать график с минимальным количеством изменений. Такую задачу легко выполнить с помощью алгоритма локального поиска, начинающего свою работу с текущего графика. Поиск с возвратами, выполняемый с учетом нового множества ограничений, обычно требует гораздо больше времени и может най- ти менее удачное решение, требующее внесения в текущий график множества изменений. 6.5. Структура задач________________________________________________ В данном разделе рассматриваются способы, позволяющие использовать для быстрого поиска решений структуру самой задачи, представленную в виде графа ограничений. Большинство описанных здесь подходов являются достаточно общи- ми и применимы для решения других задач, помимо С8Р, например задач вероят- ностного формирования рассуждений. Единственный способ, дающий нам надежду успешно справиться с задачами огромного реального мира, состоит в том, чтобы разложить их на множество под- задач. Еще раз обратимся к графу ограничений задачи раскрашивания карты Ав- стралии (рис. 6.1, б или 6.12, а). На нем можно отметить один важный факт: Та- смания не связана с материком.3 Становится понятно, что задачи раскрашивания Тасмании и раскрашивания материка представляют собой ► независимые подза- дачи — любое решение для материка в сочетании с любым решением для Тасма- нии дает допустимое решение для всей карты. Независимость подзадач можно установить, выделив к связные компоненты графа ограничений. Каждый компонент соответствует одной подзадаче С8Р,. Если присваивание 8, является решением С8Р., то Ц5. является решением и<С8Рг Поче- му это так важно? Предположим, что каждая подзадача С8Р1 имеет с переменных из общего количества п переменных, где с — константа. В таком случае должно быть п/с подзадач, и для решения каждой из них потребуется самое большее объем 3 Аккуратный картограф или патриот Тасмании может возразить, что Тасмания не должна быть окрашена так же, как ближайший к ней штат на материке, чтобы не сложи- лось впечатление, что она является частью этого штата.
работы сГ, где с1— размер области определения. Следовательно, общий объем ра- боты можно оценить как О(сГп/с\ и он линейно зависит от п. Без декомпозиции на подзадачи общий объем работы оценивается как О(бГ) и экспоненциально зависит от п. Приведем более конкретный пример: разделение булевой задачи С8Р с п= 100 на четыре подзадачи с с = 25 сокращает продолжительность поиска решения в на- ихудшем случае от величины, сравнимой со временем существования Вселенной, до величины, меньшей одной секунды. Наличие в задаче полностью независимых подзадач весьма привлекательно, но редко встречается на практике. К счастью, некоторые другие структуры графов также позволяют легко находить решение. Например, граф ограничений представ- ляет собой дерево, когда любые две переменные связаны только одним путем. Ниже будет показано, что любая задача У О с древовидной структурой может быть решена за время, линейно зависящее от количества ее переменных.4 Ключевым аспек- том здесь является новая категория совместимости, называемая ► направленной дуговой совместимостью или ВАС (Р1гесИопа1 Аге СопзШепсу). Задача УО явля- ется направленно-дугосовместимой по упорядочению переменных^, %2, ..., Хп тогда и только тогда, когда каждая переменная % дугосовместима с каждой пере- менной % для у > /. Чтобы найти решение задачи УО с древовидной структурой, сначала надо вы- брать переменную, которая будет представлять корень дерева, а затем обеспе- чить такое упорядочение переменных, когда каждая переменная будет следовать за ее родительской переменной в дереве. Такое упорядочение переменных на- зывается ► топологической сортировкой. На рис. 6.10, а приведен пример де- рева, а на рис. 6.10, б представлен один из возможных вариантов его упорядо- чения. Любое дерево с п узлами имеет п - 1 ребер, поэтому такой граф можно сделать направленно-дугосовместимым за О(п) этапов, на каждом из которых по- требуется сравнивать до с1 возможных значений из области определения для двух переменных за общее время О(п(?). Когда дуговая совместимость графа будет обеспечена, появится возможность просто просматривать список переменных и выбирать для них любое из оставшихся допустимых значений. Поскольку ка- ждое ребро от родительского узла к дочернему является дугосовместимым, мож- но утверждать, что для любого значения, выбранного для родительского узла, среди оставшихся значений всегда можно будет выбрать допустимое для его до- чернего узла. А это означает, что в процессе поиска возвратов не потребуется и он будет линейно проходить по всему множеству переменных. Полный алгоритм представлен на рис. 6.11. Теперь, когда у нас есть эффективный алгоритм для деревьев, имеет смысл рас- смотреть вопрос о том, можно ли каким-то образом приводить к древовидным 4 К сожалению, очень немногие регионы мира имеют карты с древовидной структу- рой, хотя административная структура острова Сулавеси в Индонезии почти соответству- ет этому определению.
структурам более общие графы ограничений. Существует два основных способа решения этой задачи: один построен на удалении узлов (раздел 6.5.1), а другой — их слиянии друг с другом (раздел 6.5.2). Рис. 6.10. а) Граф ограничений задачи УО с древовидной структурой, б) Линейное упорядочение переменных, совместимое с деревом, корнем которого является пе- ременная А. Этот тип представления называют топологической сортировкой пере- менных ГипсНоп Твее-С8Р-8оьуев(с5р) ге1игп$ решение азз^птеп! или индикатор отказа /аИиге три!$: сзр, задача удовлетворения ограничений с компонентами X (перечень переменных), О (область определения), С (ограничения) п«— количество переменных в X азз1%птеп1«— пустое присваивание гоо!«— любая переменная в X X <- ТОРОЬО61САЬ8ОВТ(Х, ГОО1) Гог у = п дотуп 1о 2 до Маке-Авс-Сок818тект(Равект(А}),А/) И достичь совместимости невозможно Шеп геШгп/аИиге Гог / = Ио п до азз1%птеп1\Х^ <— любое допустимое значение из О, И допустимое значение отсутствует Шеп геШгп /аИиге геШгп азз1§птеп1 Рис. 6.11. Алгоритм ТКЕЕ-С8Р-8ОЬУЕК для решения задач УО с древовидной струк- турой. Если задача имеет решение, оно будет найдено за линейное время, а если нет, будет обнаружена несовместимость ограничений
6.5.1. Метод разрыва цикла Первый способ приведения графа ограничений к древовидной структуре пред- полагает присваивание значений некоторым переменным таким образом, что в результате все остальные переменные образуют дерево. Рассмотрим граф огра- ничений для задачи раскрашивания карты Австралии, который еще раз показан на рис. 6.12, а. Если из этого графа можно было бы удалить узел 8А, соответ- ствующий Южной Австралии, то граф превратился бы в дерево, как показано на рис. 6.12, б. К счастью, это можно сделать (в графе, разумеется, а не на самом кон- тиненте), зафиксировав для переменной 8А некоторое значение и удалив из обла- стей определения остальных переменных любые значения, несовместимые со зна- чением, выбранным для 8А. Рис. 6.12. а) Исходный граф ограничений, ранее приведенный на рис. 6.1. б) После удаления узла 8 А этот граф ограничений превращается в лес из двух деревьев Теперь, после удаления узла 8А и связанных с ним ограничений, любое реше- ние данной задачи УО будет совместимым со значением, выбранным для 8А. (Та- кой способ удобен при решении бинарных задач УО; при наличии ограничений более высокого порядка ситуация усложняется.) Следовательно, для оставшего- ся дерева можно найти решение с помощью приведенного выше алгоритма, а зна- чит, получить решение и для всей исходной задачи. Безусловно, в общем случае (в отличие от задачи раскрашивания карты) значение, выбранное для узла 8А, мо- жет оказаться неподходящим, поэтому придется проверить каждое из его возмож- ных значений. Общий алгоритм поиска решения указанным способом будет сле- дующим. 1. Выбираем подмножество 8 из множества переменных задачи СЗР, такое, что после удаления 8 граф ограничений задачи становится деревом. Подмноже- ство 8 называется к множеством разрыва цикла (сус1е си1зе1).
2. Для каждого возможного присваивания переменным в 5, которое удовлетво- ряет всем ограничениям в 5, выполняем следующее: а) удаляем из областей определения оставшихся переменных любые значе- ния, несовместимые с данным присваиванием для 5; б) если оставшаяся задача С8Р имеет решение, вернуть это решение вме- сте с присваиванием для 5. Если множество разрыва цикла имеет размер с, то общее время выполнения ал- горитма можно оценить как О(сГ • (п-с)с12): необходимо проверить каждую из сГ комбинаций значений для переменных в 5 и для каждой из этих комбинации найти решение задачи с древовидной структурой размером п-с. Если исходный граф по своей форме является “почти деревом”, то множество с будет небольшим, а эконо- мия времени по сравнению с прямым поиском с возвратами окажется огромной — для задачи со 100 булевыми переменными, если удастся найти множество разрыва цикла размером с = 20, это позволит сократить время поиска решения от порядка времени существования Вселенной до нескольких минут. Но в наихудшем случае значение с может достигать (п-2). Задача поиска наименьшего множества разры- ва цикла является КР-трудной, но известно несколько эффективных алгоритмов ее решения. В целом данный алгоритмический подход носит название ► опреде- ление условий выбора множества разрыва цикла (си1зе1 соп(ИИоп1п^)\ мы вер- немся к нему в главе 13, где он используется при формировании рассуждений о ве- роятностях. 6.5.2. Древовидная декомпозиция Второй способ приведения графа ограничений к древовидной структуре ос- нован на построении ► древовидной декомпозиции (1гее ЛесотрозШоп) графа ограничений. В этом случае исходный граф преобразуется в дерево, каждый узел которого состоит из набора переменных, как показано на рис. 6.13. Древовидная декомпозиция должна удовлетворять следующим трем требованиям. • Каждая переменная из исходной задачи появляется по меньшей мере в од- ном из узлов дерева. • Если в исходной задаче две переменные связаны ограничением, то они должны появиться вместе (и с этим ограничением) по меньшей мере в од- ном из узлов дерева. • Если какая-то переменная появляется в двух узлах дерева, то она должна по- являться в каждом узле вдоль пути, соединяющего эти узлы. Первые два условия гарантируют, что в древовидной декомпозиции будут пред- ставлены все переменные и ограничения. Третье условие, на первый взгляд, ка- жется довольно формальным, но на самом деле оно представляет требование, что любая переменная должна иметь одно и то же значение везде, где она появляется:
ограничения в дереве указывают, что переменная в одном узле дерева должна иметь то же значение, что и соответствующая переменная в соседнем узле де- рева. Например, переменная 8А появляется во всех четырех связанных узлах на рис. 6.13, поэтому каждое ребро в древовидной декомпозиции должно включать ограничение, указывающее, что значение переменной 8А в одном узле должно быть таким же, как значение переменной 8А в следующем. На основании рис. 6.13 можно убедиться, что эта декомпозиция имеет смысл. Рис. 6.13. Древовидная декомпозиция графа ограничений, показанного на рис. 6.12, а Сформировав древовидный граф, можно применить к нему алгоритм Ткее- С8Р-8оьуек и получить решение за время О(п^\ где п — количество узлов дере- ва, а б/— размер наибольшей области определения. Но обратите внимание на то, что в этом дереве область определения представляет собой множество кортежей значений, а не просто отдельных значений. Например, на рис. 6.13 крайняя слева подзадача на уровне исходной задачи представляет собой подзадачу с переменными {1УА,1У7\8А), областью определе- ния {гес1, %гееп, Ыие} и ограничениями МА 8А 8А. На уровне дерева данный узел представляет единственная переменная, которой можно дать имя, скажем, 8АМТИ'ГА и значением которой должен быть кортеж из трех цветов, например (га/, %гееп, Ыие), но не (га/, гес1, Ыие), поскольку в этом случае наруша- ется ограничение 8А?^Тисходной задачи. От этого узла можно перейти к сосед- нему, переменной которого можно дать имя 8АШ^, и при этом обнаружить, что есть только один кортеж, (гес1, %гееп, Ыие), который является совместимым с тем выбором, который был сделан для переменной 8АУТЯА. Точно такой же процесс
повторяется для следующих двух узлов, а в завершение можно произвольным об- разом выбрать значение для переменной Т. Используя алгоритм Ткее-С8Р-8оьуек, любую задачу древовидной декомпози- ции можно решить за время О(пс12), что можно полагать эффективным, пока име- ет небольшое значение. Возвращаясь к нашему примеру со 100 булевыми пере- менными, если каждый узел будет включать 10 переменных, то <1=210 и эту задачу можно будет решить за секунды. Однако если в задаче будет присутствовать узел с 30 переменными, на ее решение уйдут столетия. Любой конкретный граф ограничений допускает много древовидных декомпо- зиций, и при выборе декомпозиции нужно стремиться к тому, чтобы подзадачи были как можно меньше. ► Ширина дерева древовидной декомпозиции графа на единицу меньше размера наибольшей подзадачи, при этом ширина дерева самого графа определяется как минимальная ширина дерева среди всех его древовидных декомпозиций. Если граф имеет ширину дерева и' и дана соответствующая дре- вовидная декомпозиция, то данная задача может быть решена за время О(л4/и+|). А это означает, что->- задачи УО с графами ограничений, имеющими конечную ширину дерева, могут быть решены за полиномиальное время. Что лучше: декомпозиция графа ограничений методом разрыва цикла с време- нем выполнения О(^с • (п-с)^2) или древовидная декомпозиция графа с временем выполнения О(«^*+1)? Всякий раз, когда граф имеет множество разрыва цикла раз- мером с, он также обладает шириной дерева размером и,<с+1, и в некоторых слу- чаях она может быть намного меньше. Поэтому с точки зрения расхода времени предпочтение следует отдать методу древовидной декомпозиции, однако у метода разрыва цикла есть свое преимущество — его потребности в памяти возрастают по линейному закону, тогда как при древовидной декомпозиции потребности в па- мяти растут экспоненциально по и'. 6.5.3. Симметрия значений До сих пор здесь рассматривались структурные особенности исключительно графа ограничений. Однако важные структурные особенности могут присутство- вать и в значениях переменных или в структуре самих отношений ограничений. Рассмотрим задачу раскрашивания карты в (1 цветов. Для каждого совместимого решения существует набор из Л решений, образуемых перестановкой названий цветов. Например, в отношении карты Австралии нам известно, что переменные ИА, №Ги ЗА должны иметь разные цвета, но при этом существует 3! = 6 спосо- бов присвоить три цвета трем областям. Это называется ► симметрией значе- ний. Было бы желательно уменьшить пространство поиска в <7! раз, избавившись от симметрии в значениях переменных. Добиться этого можно за счет введения ► ограничений, нарушающих симметрию. В примере с картой Австралии мож- но, например, наложить ограничение упорядоченности №<8А < ИС4, которое тре- бует, чтобы значения этих трех переменных обязательно следовали в указанном
алфавитном порядке. Данное ограничение гарантирует, что допустимым будет только одно из (1\ возможных решений: {КГ = Ыие. 8А=%гееп. 1РА=гес1}. Как видите, для задачи раскрашивания карты было совсем несложно найти ограничение, устраняющее симметрию значений. Хотя в общем случае задача устранения всей симметрии значений является ИР-сложной, было показано, что нарушение симметрии значений является важным и эффективным приемом для широкого спектра задач. Резюме • В задачах удовлетворения ограничений (УО или СЗР) состояния пред- ставляются в виде множества пар “переменная/значение”, а условия допу- стимости решения представляются в виде множества ограничений, налага- емых на переменные. Многие важные задачи реального мира могут быть описаны в виде задач УО. • В ряде методов логического вывода ограничения используются для исклю- чения определенных значений переменных. К ним относятся методы обе- спечения вершинной, дуговой, путевой и ^-совместимости. • Для решения задач УО обычно применяется поиск с возвратами — одна из форм поиска в глубину. С поиском могут тесно переплетаться методы логи- ческого вывода. • Эвристика определения минимального количества оставшихся значе- ний и степенная эвристика являются независимыми от области опреде- ления методами выявления того, какая переменная должна быть выбрана следующей в ходе поиска с возвратами. Эвристика с наименее ограничи- тельным значением будет полезна при определении, какие значения вы- бранной переменной следует проверять в первую очередь. Возврат происхо- дит в том случае, когда для переменной больше не удается найти допустимое присваивание. При использовании метода обратного перехода, управляе- мого конфликтами, возврат происходит непосредственно к источнику про- блемы, возникшей в процессе поиска. Метод определения ограничений с помощью обучения предполагает запоминание информации о конфликтах по мере их выявления с целью избежать тех же самых конфликтов в даль- нейшем поиске. • Также для решения задач с ограничениями с большим успехом применяется локальный поиск с использованием эвристики минимальных конфликтов. • Сложность решения задач УО в значительной степени зависит от структуры ее графа ограничений. Задачи с древовидной структурой могут быть реше- ны за линейное время. Метод определения множества разрыва цикла по- зволяет преобразовать задачу УО общего вида в задачу с древовидной струк- турой и является очень эффективным (потребность в памяти возрастает
линейно), если удается найти множество разрыва цикла, небольшое по раз- меру. Метод древовидной декомпозиции предусматривает преобразование задачи УО в дерево подзадач и является эффективным, если ширина дере- ва графа ограничений невелика, однако его потребность в памяти возраста- ет экспоненциально с увеличением ширины дерева графа ограничений. Ком- бинирование методов определения множества разрыва цикла и древовидной декомпозиции позволяет добиться необходимого компромисса между затра- тами времени и потребностью в памяти. Библиографические и исторические заметки Греческий математик Диофант (ок. 200-284) предложил задачу, включающую алгебраические ограничения на уравнения, и нашел способ ее решения, хотя и не разработал общей методологии. В его честь уравнения с целочисленными обла- стями определения сейчас называют ►диофантовыми уравнениями. Индийский математик Брахмагупта (ок. 650) первым представил общее решение для уравне- ний вида ах+ Ьу=с с целочисленными областями определения. Систематические методы решения линейных уравнений путем исключения переменных исследова- лись Гауссом ([822], 1829); первые попытки решения ограничений с линейными неравенствами можно найти в работах Фурье ([764], 1827). Задачи удовлетворения ограничений с конечными областями определения так- же имеют долгую историю. Например, одной из старых задач в математике являет- ся раскрашивание графа (раскрашивание карты — частный случай данной зада- чи). Гипотезу о четырех цветах (утверждающую, что любой плоский граф можно раскрасить с помощью четырех или менее цветов) впервые выдвинул Френсис Гу- три, студент де Моргана, в 1852 году. Эта задача не поддавалась решению — не- смотря на то, что в некоторых публикациях утверждалось обратное — до тех пор, пока доказательство не было получено с помощью компьютера Аппелем и Хаке- ном ([60], 1977) (см. книгу Роиг Со1огз Зифсе (ХУПзоп, 2004)). Пуристы были ра- зочарованы тем, что разработка части доказательства была возложена на компью- тер, поэтому Жорж Гонти ([890], 2008), применив средство доказательства теорем С(Х), получил формальное доказательство того, что программа Аппеля и Хакена, использованная ими для вывода доказательства, была правильной. Специальные классы задач удовлетворения ограничений рассматривались на протяжении всей истории развития компьютерных наук. Одним из самых зна- чимых первых примеров решения таких задач была система Зкетснраэ (Сутер- ленд [2153], 1963), которая решала геометрические ограничения на чертежах и была предшественником современных программ рисования и инструменталь- ных средств САПР. Определение задач УО как общего класса задач принадле- жит У го Монтанари ([1608], 1974). Первые попытки приведения задач УО высоко- го порядка к чисто бинарным задачам с помощью вспомогательных переменных
(см. упр. 6.6) были предприняты в XIX веке логиком Чарльзом Сандерсом Пир- сом. Его методы были введены в тематику С8Р Риной Дехтер ([579], 1990) и до- работаны Бакусом и ван Биком ([100], 1998). Задачи УО с предпочтениями меж- ду решениями широко изучались в исследованиях по оптимизации, а обобщение инфраструктуры С8Р, позволяющее использовать предпочтения, было приведено в [224] (1997). Расширению популярности методов распространения ограничений способство- вало успешное решение Вальцем ([2291], 1975) задач полиэдральной линейной разметки для систем компьютерного зрения. Вальц показал, что применение ме- тодов распространения ограничений при решении многих задач позволяет полно- стью исключить необходимость в использовании возвратов. Монтанари ([1608], 1974) ввел понятие графов ограничений и предложил метод распространения ограничений на основе понятия путевой совместимости. Алан Макворт ([1474], 1977) предложил алгоритм АС-3 для обеспечения дуговой совместимости, а также выдвинул общую идею о том, что поиск с возвратами необходимо сочетать с обе- спечением совместимости некоторой степени. Более эффективный алгоритм обе- спечения совместимости дуг, АС-4, разработанный Мором и Хендерсоном ([1605], 1986), в худшем случае выполняется за время СИсс]2), но для средних задач он ра- ботает медленнее, чем АС-3. Алгоритм РС-2 (Макворт [1474], 1977) достигает пу- тевой совместимости во многом таким же способом, как в алгоритме АС-3 дости- гается дуговая совместимость. Вскоре после появления статьи Макворта исследователи приступили к экспери- ментам в области поиска компромисса между затратами на обеспечение совмести- мости и достигаемыми за счет этого преимуществами с точки зрения сокращения объема поиска. Харалик и Эллиот ([964], 1980) предпочли алгоритм минималь- ной предварительной проверки, описанный Макгрегором ([1548], 1979), тогда как Гашниг ([815], 1979) предложил применять полную проверку дуговой совмести- мости после присваивания значения каждой переменной, — алгоритм, позднее получивший название “МАС” в работе Сабина и Фрейдера ([1952], 1994). В по- следней статье представлены некоторые убедительные свидетельства того, что при решении более трудных задач УО полная проверка дуговой совместимости вполне окупается. Фрейдер ([777], 1978; [778], 1982) исследовал понятие ^-совместимости и ее связи со сложностью решения задач УО. Апт ([62], 1999) описал универсаль- ную алгоритмическую инфраструктуру, в рамках которой можно проанализиро- вать алгоритмы распространения совместимости, а соответствующие обзоры были представлены Бессьером ([207], 2006) и позднее Бартоком и соавт. ([136], 2010). Специальные методы обработки ограничений более высокого порядка и гло- бальных ограничений впервые были разработаны в контексте Алогическо- го программирования в ограничениях. Превосходный обзор исследований в этой области приведен в [1500] (1998). Ограничение А //(/(^исследовалось Рент- ном ([1866], 1994), Стергиу и Уолшем ([2128], 1999), а также ван Хуве ([2256], 2001). Для ограничения А1кН$существуют более сложные алгоритмы логического
вывода (см. ван Хуве и Катриель [2257], 2006), в которых распространяется боль- ше ограничений, но ценой больших вычислительных затрат. Ограничения с преде- лами были включены в тематику логического программирования в ограничениях ван Хентенриком и соавт. ([2255], 1998). Общий обзор по теме глобальных ограни- чений представлен ван Хуве и Катриелем ([2257], 2006). Головоломка судоку уже приобрела широкую известность как задача УО и в этом свете была описана, например, в работе Симонис ([2074], 2005). Агербек и Хансен в [17] (2008) описали некоторые стратегии и показали, что судоку на поле л2 х л2 относится к классу ^-трудных задач. В 1850 году Карл Гаусс описал алгоритм рекурсивного поиска с возвратами для решения задачи восьми ферзей, который ранее был опубликован в немецком шах- матном журнале ЗсИаскгеИип§ в 1848 году. Гаусс назвал этот метод Та1оптгеп — производное от французского слова 1а1оппег, означающего “ощупывать все вокруг, когда находишься в темноте”. По словам Дональда Кнута (в личном общении), Р.Дж. Уокер ввел термин “воз- врат” (Ъаск1гаск) еще в 1950-х годах, а в [2287] (1960) Уокер описал основной ал- горитм поиска с возвратами и его использование для поиска всех решений задачи с 13 ферзями. Голомб и Баумерт в [884] (1965) сформулировали на примерах опреде- ление общего класса комбинаторных задач, к которым применимы методы поиска с возвратами, и ввели то, что мы сейчас называем эвристикой МКУ. В [225] (1975) Битнер и Рейнгольд представили исчерпывающий обзор методов поиска с возвра- тами. Брелаз ([300], 1979) использовал степенную эвристику для устранения нео- пределенности, возникающей после применения эвристики МКУ, — полученный в итоге алгоритм, несмотря на его простоту, все еще остается наилучшим методом раскрашивания произвольных графов в Аг-цветов. Харалик и Эллиот ([964], 1980) предложили эвристику с наименее ограничительным значением. Основной метод обратного перехода был разработан Джоном Гашнигом ([815], 1977; [816], 1979). Кондрак и ван Бик ([1275], 1997) показали, что этот алгоритм по сути перекрывается алгоритмом предварительной проверки. Обратный пере- ход, управляемый конфликтами, был предложен Проссером ([1824], 1993). Дехтер ([578], 1990) представил метод обратного перехода, основанный на графе, который ограничивает сложность алгоритмов на основе обратного перехода как функцию графа ограничений (Дехтер и Фрост [587], 2002). Наиболее общая форма интеллектуального поиска с возвратами была разрабо- тана уже довольно давно Столлманом и Зюссманом ([2122], 1977). В предложен- ном ими методе ► поиска с возвратами, управляемого зависимостями, комби- нируются метод обратного перехода и запоминание тупиков. Этот метод привел к разработке систем обеспечения истинности (Дойл [645], 1979), которые будут рассматриваться в разделе 10.6.2. Связь между этими двумя научными областями проанализирована в [558] (1989). В указанной выше работе Столлмана и Зюссмана была также предложена идея определения ограничений с помощью обучения, в соответствии с которой
частичные результаты, полученные в ходе поиска, можно сохранять и повторно использовать на последующих этапах этого поиска. Данная идея была формали- зована Риной Дехтер ([578], 1990). Особенно простым методом является простав- ление обратных отметок (Гашниг [816], 1979), в котором для предотвращения повторной проверки ограничений сохраняются и используются совместимые и несовместимые попарные присваивания. Проставление обратных отметок можно комбинировать с обратным переходом, управляемым конфликтами. Кондрак и ван Бик ([1275], 1997) представили гибридный алгоритм, который превосходит любой из этих методов, взятых по отдельности. В методе динамического поиска с возвратами (Гинзберг [861], 1993) сохра- няются успешные частичные присваивания из полученных позднее подмножеств переменных при поиске с возвратами по предыдущему варианту, которые не вли- яют на дальнейший успех. Москевич и соавт. ([1627], 2001) показали, как эти и другие методы использовались для создания эффективного решателя БАТ. Эмпи- рические исследования нескольких рандомизированных методов обратного отсле- живания были проведены Гомесом и соавт. ([886], 2000; [888], 2001). Ван Бик в [2246] (2006) представил обзор различных вариантов поиска с возвратами. Применение локального поиска при решении задач удовлетворения ограниче- ний стало популярным после публикации работы Киркпатрика и соавт. ([1230], 1983) с описанием метода эмуляции отжига (см. главу 4), который широко исполь- зуется для решения задач проектирования СБИС и планирования. Бек и соавт. в [153] (2011) предоставили обзор последних работ по составлению графиков работы цехов и предприятий. Эвристика минимальных конфликтов впервые была предло- жена Гу в [928] (1989) и независимо разработана Минтоном и соавт. ([1588], 1992). В [2110] (1994) показано, как эта эвристика может использоваться для решения за- дачи с 3 000 000 ферзями меньше чем за минуту. Этот поразительный успех локаль- ного поиска на основе эвристики минимальных конфликтов при решении задачи с п ферзями привел к переоценке природы и распространения “легких” и “трудных” задач. Питер Чизмен и соавт. ([407], 1991) исследовали сложность случайно сге- нерированных задач УО и обнаружили, что почти все такие задачи являются либо тривиально легкими, либо не имеют решений. “Трудные” экземпляры задач встре- чаются только в том случае, если параметры генератора задач устанавливаются в некотором узком диапазоне, в пределах которого лишь примерно половина задач является разрешимой. Этот феномен рассматривается дополнительно в главе 7. Конолиге ([1280], 1994) показал, что локальный поиск уступает поиску с воз- вратами при решении задач с локальной структурой определенного типа. Эго при- вело к появлению работ, сочетающих в себе локальный поиск и логический вывод, таких как [1792] (1995). Хуз и Цанг в [1057] (2006) предложили обзор методов ло- кального поиска, а соответствующие учебники были предоставлены Хузом и Стю- цле ([1056], 2004), а также Аартсом и Ленстрой ([2], 2003). Исследования, касающиеся структуры и сложности задач СЗР, начались с работ [779] (1985) и [1475] (1985), в которых было показано, что поиск в
дугосовместимых деревьях выполняется без каких-либо возвратов. Аналогичные результаты применительно к ациклическим гиперграфам были получены в обла- сти теории баз данных (Бири и др. [155], 1983). Баярдо и Миранкер ([146], 1994) предложили алгоритм для задач УО с древовидной струюурой, который выполня- ется за линейное время без какой-либо предварительной обработки. В [578] (1990) Рина Дехтер описывает подход с использованием метода разрыва цикла. Со времени публикации этих статей был достигнут значительный прогресс в отношении получения более общих результатов, касающихся связи между слож- ностью решения задачи УО и струюурой ее графа ограничений. Понятие шири- ны дерева было введено специалистами по теории графов Робертсоном и Сейму- ром ([1896], 1986). Дехтер и Перл ([582], 1987; [583], 1989), основываясь на работе Фрейдера, применяли по сути то же самое понятие (названное ими индуцирован- ной шириной) к задачам удовлетворения ограничений и разработали подход дре- вовидной декомпозиции, кратко описанный в разделе 6.5. Опираясь на эту работу и на результаты из области теории баз данных, Готлобб и др. ([911], 1999; [912], 1999) разработали понятие ширины гнпердерева, кото- рое основано на методе характеризации задачи УО как гиперграфа. Они не только показали, что любую задачу УО с шириной гипердерева и' можно решить за вре- мя О(«“ и1о§п), но и обосновали утверждение, что критерий ширины гипердерева превосходит все ранее предложенные критерии “ширины” в том смысле, что в не- которых случаях ширина гипердерева является конечной, тогда как ширина, опре- деляемая другими критериями, является неограниченной. Для алгоритма К.ЕБ8АТ Баярда и Шрата ([147], 1997), в котором комбинируют- ся методы определения ограничений с помощью обучения и обратного перехода, было показано, что он превосходит многие другие алгоритмы в отношении вре- мени выполнения. Это привело к разработке алгоритмов И-ИЛИ-поиска, приме- нимых как к С8Р, так и к вероятностным рассуждениям ([588], 2007). Браун и со- авт. ([318], 1988) предложили идею разрыва симметрии в задачах УО, а Гент и др. ([839], 2006) дали соответствующий обзор. Тематику задач удовлетворения распределенных ограничений можно пред- ставить как решение задач УО при наличии совокупности агентов, каждый из ко- торых контролирует некоторое подмножество переменных, на которые наложены ограничения. Ежегодные семинары по этому классу задач проводятся начиная с 2000 года, а хорошее освещение состояния дел можно найти в работах Коллин и др. [462] и Пирс и др. [1748] (2008). Сравнение алгоритмов решения задач УО является преимущественно эмпири- ческой наукой: лишь несколько теоретических результатов показывают, что один алгоритм доминирует над другим по всем задачам, поэтому необходимо прово- дить соответствующие эксперименты, чтобы понять, какие алгоритмы работают лучше в типичных классах задач. Как указывает Хукер ([1055], 1995), необходи- мо проявлять определенную осторожность, чтобы различить конкурентное тести- рование (как это происходит в соревнованиях среди алгоритмов, построенных на
оценке времени выполнения) и научное тестирование, целью которого является выявление свойств алгоритма, определяющих его эффективность для некоторого класса задач. Учебники Апта ([63], 2003), Дехтер ([585], 2003), Цанга ([227], 1993) и Ле- котра ([1370], 2009), а также сборник Росси и соавт. ([1920], 2006) являются от- личными ресурсами по работе с ограничениями. Имеется несколько хороших об- зоров, включая работы Дехтер и Фрост [587] (2002) и Бартак и др. [136] (2010). В Карбоннел и Купер [369], (2016) дан обзор легко разрешимых классов задач УО. В работе [1997] (1997) приведен аналитический обзор алгоритмов поиска с воз- вратами, а в работе [101] (1995) приведен обзор, характеризующийся большей практической направленностью. Программирование в ограничениях рассматри- вается в книге Апта ([63], 2003), а также Фрювирта и Абденнадхера ([794], 2003). Статьи на тему удовлетворения ограничений регулярно публикуются в журнале Аг(/1с1а11п(е1И§епсе и в специализированном журнале СопМгсйпК. Последние вер- сии решателей БАТ описываются в материалах ежегодного конкурса 1п1егпаИопа1 8АТ СотреННоп. Основным местом встречи специалистов в этой области явля- ется конференция 1п1егпаИопа1 Соп/егепсе оп Рппс1р1е$ апс/ РгасНсе о/Сопз^гшШ Рго%гаттт&, часто называемая просто СР. Упражнения_______________________________________________________________ 6.1. Сколько решений имеет задача раскрашивания карты, показанная на рис. 6.1? Сколь- ко будет решений, если использовать четыре краски? А если две? 6.2. Рассмотрим задачу размещения к слонов на шахматной доске размером п х п так, что на доске не будет двух слонов, атакующих друг друга, при условии, что к задано и к<п. а) Выберите формулировку данной задачи У О. Что в вашей формулировке будет яв- ляться переменными? б) Каковы возможные значения каждой переменной? в) Какие множества переменных в задаче ограничены и как? г) Теперь рассмотрим задачу размещения на доске как можно большего количества коней без каких-либо атак. Объясните, как решить эту задачу с помощью локаль- ного поиска, определив соответствующие функции АСТЮЫ8 и КЕ8ЫЕТ и разум- ную целевую функцию. 6.3. Рассмотрите задачу составления (а не решения) кроссвордов: подбора слов, которые укладываются в прямоугольную сетку. Эта сетка, которая задается как часть задачи, определяет, какие квадраты будут пустыми, а какие затененными. Предположим, что предоставлен список слов (т.е. словарь) и задача состоит в том, чтобы заполнить пу- стые квадраты с использованием любого подмножества из этого списка. Точно сфор- мулируйте эту задачу следующими двумя способами. а) Как общую задачу поиска. Выберите соответствующий алгоритм поиска и опре- делите эвристическую функцию. Как лучше заполнять пустые квадраты: одновре- менно по одной букве или по одному слову?
б) Как задачу удовлетворения ограничений. Переменные должны представлять сло- ва или буквы? Какая формулировка, по вашему мнению, является лучшей? Объясните, почему? 6.4. Дайте точные формулировки каждой из перечисленных ниже задач в виде задач удов- летворения ограничений. а) Планирование покрытия пола прямоугольниками. Найти в большом прямоуголь- нике неперекрывающиеся места для размещения меньших прямоугольников. б) Составление расписания занятий. Исходные данные: фиксированное количество преподавателей и классов, список предлагаемых занятий и список возможных временных интервалов для занятий. С каждым преподавателем связано множе- ство занятий, которые он может проводить. в) Гамильтонов тур: задана сеть городов, соединенных дорогами. Выберите порядок посещения всех этих городов, не допуская их повторного посещения. 6.5. Вручную решите криптоарифметическую задачу, приведенную на рис. 6.2, используя метод поиска с возвратами с предварительной проверкой и эвристики МКУ и наиме- нее ограничительного значения. 6.6. Покажите, как можно преобразовать одно тернарное ограничение типа “Я + В = С” в три бинарных ограничения с использованием вспомогательной переменной. Може- те принять допущение о конечных областях определения. (Подсказка. Рассмотрите использование новой переменной, которая принимает значения, являющиеся парами других значений, и примените такие ограничения, как“Хявляется первым элементом пары У”.) Затем покажите, как аналогичным образом можно трактовать ограничения больше чем с тремя переменными. Наконец, покажите, как можно устранить унар- ные ограничения путем модификации области определения переменных. На этом бу- дет завершена демонстрация того, что любую задачу УО можно преобразовать в за- дачу УО только с бинарными ограничениями. 6.7. Рассмотрите следующую логическую головоломку. В пяти домах, окрашенных в раз- ные цвета, живут представители пяти национальностей, которые предпочитают раз- ные сорта сладких батончиков, пьют разные напитки и держат разных домашних пи- томцев. На основе приведенных ниже фактов найдите ответ на вопрос “В каком доме держат зебру и в каком доме пьют воду?” Англичанин живет в доме красного цвета. Испанец имеет собаку. Норвежец живет в первом доме слева. Зеленый дом находится непосредственно справа от дома цвета слоновой кости. Человек, который любит батончики Негзкеу, живет в доме, расположенном рядом с домом человека, который держит лису. Батончики КИКа! предпочитают в доме желтого цвета. Норвежец живет в доме, расположенном рядом с домом синего цвета. Любитель батончиков 8таП держит улиток. Тот, кто предпочитает батончики Згпскегз, пьет апельсиновый сок. Украинец пьет чай. Японец ест батончики МИку Мау. Батончики КНКа1 едят в доме, расположенном рядом с домом, где держат лошадь. Кофе пьют в доме зеленого цвета. Молоко пьют в среднем доме.
Обсудите различные представления этой задачи в виде задачи УО. По каким причи- нам можно предпочесть одно представление другому? 6.8. Рассмотрим граф с 8 узлами: А2, А3, А4, Я, Т, Р}, Рг Узлы Я соединены с узла- ми Я/+1 для всех /, каждый узел А. соединен с узлом Я, узел Я соединен с узлом Т, а узел Т соединен с каждым узлом Р. Вручную найдите вариант трехцветной раскра- ски этого графа, используя стратегию поиска с возвратами с обратным переходом, управляемым конфликтами, при следующем упорядочивании: переменные — Ар Н, Л4, Рр А2, Р2, А3, Т; значения переменных — К, С, В. 6.9. Объясните, почему при поиске решения задачи УО хорошая эвристика — выбирать переменную, которая является наиболее ограниченной, но при этом выбирать наиме- нее ограничительное значение. 6.10. Создайте случайные примеры задачи раскрашивания карты, формируемые следую- щим способом: разбросайте п точек на единичном квадрате; случайным образом вы- берите точку X и соедините ее прямой линией с ближайшей точкой X, которая еще не соединена с X, причем эта соединительная линия не должна пересекать какую-либо другую линию. Повторяйте эти действия до тех пор, пока есть возможность прово- дить дальнейшие соединения. Точки представляют регионы на карте, а линии опре- деляют их соседей. Теперь попробуйте найти Л-цветные раскраски для каждой кар- ты при к = 3 и к=4, используя методы минимальных конфликтов, поиска с возврата- ми, поиска с возвратами с предварительной проверкой и поиска с возвратами с эври- стикой МАС. Составьте таблицу среднего времени выполнения для каждого алгорит- ма для различных значений п вплоть до максимального, с которым вам удастся спра- виться. Прокомментируйте полученные результаты. 6.11. Используйте алгоритм АС-3, чтобы показать, что дуговая совместимость позволяет обнаружить несовместимость частичного присваивания {ИА =$гееп, У=ге<1} для за- дачи, приведенной на рис. 6.1. 6.12. Используйте алгоритм АС-3, чтобы показать, что дуговая совместимость позволяет обнаружить несовместимость частичного присваивания {ИА=гес1, У=Ыие} для зада- чи, приведенной на рис. 6.1. 6.13. Какова в наихудшем случае временная сложность алгоритма АС-3 для задачи УО с древовидной структурой? 6.14. Алгоритм АС-3 помещает обратно в очередь каждую дугу (ХкУХ) каждый раз, когда любое значение удаляется из области определения X, даже если каждое значение Хк совместимо с несколькими оставшимися значениями X. Предположим, что для ка- ждой дуги (Хк9Х) отслеживается количество оставшихся значений X, которые явля- ются совместимыми с каждым значением Хк. Объясните, как эффективно обновлять эти числа, и тем самым покажите, что дуговую совместимость можно обеспечить за суммарное времяО(пс?). 6.15. Алгоритм ТКЕЕ-С8Р-8ОЕУЕК (рис. 6.10) обеспечивает дуговую совместимость, начи- ная с листовых узлов и перемещаясь обратно к корню дерева. Почему это так? Что будет, если он будет двигаться в противоположном направлении? 6.16. В этой главе головоломка судоку была представлена как задача УО, которую следу- ет решать посредством поиска по частичным присваиваниям, потому что именно так люди обычно приступают к решению этих головоломок. Но, безусловно, решать эти задачи можно и методом локального поиска по полным присваиваниям. Насколько
хорошо доступный вам решатель, использующий эвристику минимальных конфлик- тов, покажет себя при решении задач судоку? 6.17. Своими словами дайте определение терминам ограничение, поиск с возвратами, ду- говая совместимость, обратный переход, минимальные конфликты и множество разрыва цикла. 6.18. Своими словами дайте определение терминам ограничение, коммутативность, дуго- вая совместимость, обратный переход, минимальные конфликты и множество раз- рыва цикла. 6.19. Предположим, нам известно, что граф имеет множество разрыва цикла, содержащее не больше к узлов. Опишите простой алгоритм поиска минимального множества раз- рыва цикла, время прогона которого ненамного превышает О(пк) для задачи УО с п переменными. Найдите в литературе методы обнаружения приближенно минималь- ных множеств разрыва цикла за время, которое полиномиально зависит от размера множества разрыва. Обеспечивает ли наличие таких алгоритмов практическую при- менимость метода разрыва цикла? 6.20. Рассмотрим задачу мозаичного покрытия поверхности (накрывая ее полностью и точ- но) с использованием п костей домино (прямоугольников размером 2x1). Поверх- ность представляет собой произвольно соединенную сторонами (т.е. примыкающими друг к другу на длину всей стороны) совокупность из 2п квадратов размером 1 х 1 (например, это может быть шахматная доска, шахматная доска с некоторыми отсут- ствующими квадратами, ряд из квадратов размером Юх 1 и т.д.). а) Сформулируйте эту задачу в точности как задачу У О, в которой кости домино яв- ляются переменными. б) Сформулируйте эту задачу в точности как задачу УО, в которой квадраты являют- ся переменными, сохраняя ее пространство состояний как можно меньшим. {Под- сказка'. имеет ли значение, какая именно кость домино накрывает данную пару квадратов?) в) Постройте состоящую из 6 квадратов поверхность таким образом, чтобы для нее ваша формулировка задачи УО из задания б имела древовидный граф ограниче- ний. г) Точно опишите множество разрешимых экземпляров задачи, которые имеют дре- вовидный граф ограничений.
I
Часть III Знания, рассуждения И ПЛАНИРОВАНИЕ Логические агенты 369 Логика первого порядка 441 Логический вывод в логике первого порядка 493 Представление знаний 551 Автоматизированное планирование 603

ГЛАВА Логические агенты В этой главе обсуждается проектирование агентов, способных формировать собственные представления о сложном мире, использовать процесс логиче- ского вывода для получения новых представлений о мире, а также применять эти новые представления для определения того, что следует делать. Совершенно очевидно, что люди обладают знаниями и именно эти знания дают им возможность действовать. Это правило можно распространить и на область ис- кусственного интеллекта: ► агенты, основанные на знаниях, используют про- цесс ► рассуждения на основе внутреннего ► представления знаний, чтобы при- нять решение, какие действия предпринять. Агенты, решающие задачи, обсуждавшиеся в главах 3 и 4, также обладают не- которыми знаниями, но только в очень ограниченном, негибком представлении. Они знают, какие действия им доступны и каким будет результат выполнения кон- кретного действия в конкретном состоянии, но они не знают общих фактов. Агент, прокладывающий маршрут, не знает, что участок дороги не может иметь длины, выраженной отрицательным числом километров. Агент, решающий головоломку Восемь, не знает, что две плитки не могут одновременно находиться в одном и том же квадрате игрового поля. Знания, которые имеют эти агенты, очень полез- ны для нахождения пути от начального до целевого состояния, но больше ни для чего другого. Атомарные представления, используемые агентами, решающими задачи, так- же очень ограничены. Например, в частично наблюдаемой среде у агента, решаю- щего задачи, единственным доступным вариантом представления того, что он зна- ет о текущем состоянии, является список всех возможных конкретных состояний. Перед человеком можно поставить цель отправиться в любой город США с насе- лением менее 10 тыс. человек, но если потребуется сказать то же самое агенту, ре- шающему задачи, формально описать эту цель можно будет только как явное мно- жество примерно из 16 тыс. городов, удовлетворяющих заданному условию. В главе 6 мы впервые обратились к развернутому представлению состояний, когда они задаются как присваивания определенных значений переменным, и это шаг в правильном направлении, позволяющий некоторым элементам агента ра- ботать независимо от области определения задачи и использовать более эффек-
тивные алгоритмы. В этой главе подобный шаг предпринимается в отношении логического вывода, — мы, так сказать, разработаем логику как общий класс представлений для поддержки агентов, основанных на знаниях. В результате эти агенты обретут способность комбинировать и рекомбинировать информацию для достижения множества целей. И эта цель может быть весьма далека от текущих потребностей момента, — как в том случае, когда математик доказывает теорему или астроном вычисляет ожидаемую продолжительность существования нашей планеты. Агенты, основанные на знаниях, могут принимать новые задачи в форме явно описанных целей; они могут быстро достичь компетентности, когда им сооб- щают новые знания об окружающей среде или обучают их. И они могут успешно адаптироваться к изменениям в окружающей среде посредством обновления соот- ветствующих знаний. В разделе 7.1 обсуждается общий проект подобного агента. В разделе 7.2 пред- ставляется новая простая окружающая среда — вымышленный мир вампуса — и иллюстрируется работа агента, основанного на знаниях, без привлечения ка- кой-либо технической детализации. Далее, в разделе 7.3 объясняются общие принципы логики, а в разделе 7.4 дается формальное определение логики вы- сказываний. Логика высказываний (или иначе — пропозициональная логика, от лат. ргорозШо — “высказывание”) — это раздел логики, изучающий сложные вы- сказывания, образованные из простых. И хотя она менее выразительна по сравне- нию с логикой первого порядка (глава 8), являющейся каноническим структури- рованным представлением, в логике высказываний иллюстрируются все основные понятия логики. В ней также имеется хорошо разработанная технология форми- рования рассуждений, обсуждаемая в разделах 7.5 и 7.6. И наконец в разделе 7.7 рассматривается сочетание концепции агентов, основанных на знаниях, с метода- ми логики высказываний, что позволяет создать некоторых простых агентов, спо- собных успешно действовать в мире вампуса. 7.1. Агенты, основанные на знаниях Центральным компонентом любого агента, основанного на знаниях, является его кбаза знаний, или сокращенно КВ (Кпо^1е(1^е Вазе). База знаний представ- ляет собой множество ► высказываний. (Здесь слово “высказывание” исполь- зуется как формальный термин, смысл которого близок, но не идентичен поня- тию высказывания в русском, английском или любом другом естественном языке.) В базе знаний каждое высказывание выражено на языке, называемом ► языком представления знаний, и представляет некоторое утверждение о мире. Если вы- сказывание принято как данное изначально, без вывода из какого-либо другого высказывания, его принято называть ► аксиомой. Должен существовать некоторый способ добавления к базе знаний новых вы- сказываний, а также способ извлечения из нее того, что уже известно. Стандарт-
ними названиями для этих операций являются соответственно Теьь и А$к. Обе такие операции могут быть связаны с проведением Алогического вывода, т.е. могут потребовать получения новых высказываний из старых. Логический вывод должен подчиняться требованию, что ответ на любой запрос А$к к базе знаний должен следовать исключительно из того, что на данный момент уже было введе- но в нее посредством операции Теьь. Ниже будет дано более точное определение важного понятия “логического следствия”. А пока будем считать, что процесс ло- гического вывода не должен включать операций, не подчиняющихся строгим пра- вилам. На рис. 7.1 показана общая структура программы агента, основанной на зна- ниях. Как и все агенты, описанные в данной книге, этот агент принимает на входе результаты акта восприятия регсер! и возвращает действие асНоп. Агент поддер- живает базу знаний, КВ, которая может изначально содержать некоторые А фоно- вые знания. ГипсСюп КВ-АОЕЫТ(регсер/) геСигпз действие асНоп рег$1$СепС: КВ, база знаний I, счетчик, обозначающий время, изначально равен О ТЕЬЬ(О, МАКЕ-РЕКСЕРТ-8ЕМТЕМСЕ(регсер/, /)) асНоп <- АзкСО, МАКЕ-Астюм-риЕКУ(/)) ТеЩО, Маке-Аст1О1Ч-8е1ЧТЕ1ЧСЕ(яс//ои, /)) /«-/+1 геШгп асНоп Рис. 7.1. Универсальный агент, основанный на знаниях. Получив восприятие рег- сер1, агент добавляет его в свою базу знаний, запрашивает базу знаний о наилуч- шем действии асНоп и сообщает базе знаний, что он действительно совершил это действие При каждом вызове программа агента выполняется в три этапа. Во-первых, с помощью операции Теьь программа вводит в базу знаний результаты акта воспри- ятия. Во-вторых, с помощью операции А$к она передает в базу знаний запрос о том, какое действие следует предпринять. В процессе поиска ответа на этот запрос могут быть проведены всесторонние рассуждения о текущем состояния мира, о результатах возможных последовательностей действий и т.д. В-третьих, с помо- щью операции Теьь программа агента регистрирует в базе знаний свой выбор и возвращает действие в таком виде, чтобы его можно было выполнить. Подробные сведения о языке представления скрыты в трех функциях, которые реализуют интерфейс между датчиками и исполнительными механизмами с одной стороны и между основным представлением и системой формирования рассуж- дений — с другой. Функция Маке-Рексерт-8ектексе формирует высказывание,
подтверждающее, что агент получил результаты данного акта восприятия в дан- ный момент времени. Функция Маке-Астюн-Рпеку формирует высказывание, запрашивающее о том, какое действие следует выполнить в текущий момент. Наконец, функция Маке-Астюьь8ектенсе формирует высказывание, подтвержда- ющее, что выбранное действие было выполнено. Подробные сведения о механиз- ме логического вывода скрыты внутри функций Теьь и А$к и будут представлены в следующих разделах. Программа агента, приведенная на рис. 7.1, внешне очень похожа на програм- мы агентов с поддержкой внутреннего состояния, описанные в главе 2. Однако в силу приведенных выше определений операций Теьь и А$к программу агента, основанного на знаниях, уже нельзя рассматривать как произвольную програм- му для вычисления действий. Она теперь больше подходит для описания на таком ► уровне знаний, на котором для определения поведения агента требуется указать лишь то, что ему известно и каковы его цели. Например, агенту, управляющему автоматизированным такси, может быть по- ставлена цель доставить пассажира из города Сан-Франциско в округ Марин и он может знать, что мост “Золотые ворота” является единственным возможным свя- зующим звеном между пунктом отправления и пунктом назначения. В таком слу- чае можно ожидать, что агент — водитель такси поедет через мост “Золотые во- рота”, поскольку ему известно, что именно так можно достичь цели. Обратите внимание: этот анализ не зависит от того, как агент — водитель такси действует на ► уровне реализации. Не имеет значения, как реализованы его знания о гео- графии (в виде связных списков или в виде растровых изображений карт), а также проводит ли он рассуждения, манипулируя строками символов, сохраненными в регистрах, или распространяя зашумленные сигналы в нейронной сети. Агент, основанный на знаниях, может быть создан просто путем передачи ему с помощью операции Теьь всего того, что ему требуется знать. Начав с пустой базы знаний, разработчик агента может сообщать ему высказывания по одному, пока агент не получит полные знания о том, как действовать в окружающей его сре- де. Этот вариант называется ► декларативным подходом к построению системы. В противоположность этому при ► процедурном подходе разработчик кодирует желаемое поведение агента непосредственно в его программном коде. В 1970- и 1980-х годах между сторонниками этих двух подходов не прекращались острые дискуссии. Однако сейчас уже не вызывает сомнения, что в конструкции успеш- ного агента должны сочетаться и декларативные, и процедурные элементы и что декларативные знания часто можно скомпилировать в более эффективный проце- дурный код. Агента, основанного на знаниях, также можно обеспечить такими механизма- ми, которые позволят ему обучать самого себя. Подобные механизмы, подробно обсуждаемые в главе 19, создают общие знания об окружающей среде из серии восприятий. Самообучающийся агент может быть полностью автономным.
7.2. Мир вампуса__________________________________________________ В этом разделе описывается простейшая среда, в которой агенты, основанные на знаниях, смогут наглядно продемонстрировать свою ценность. ► Мир вампу- са — это пещера, состоящая из залов, соединенных проходами. Где-то в этой пе- щере притаился ужасный вампус — чудовище, пожирающее всех, кто входит в зал, где он находится. Агент может убить вампуса стрелой, но она у него только одна. В некоторых залах есть бездонные ямы, в которые упадет любой, кто в них зайдет (кроме вампуса, который слишком велик для того, чтобы в них провалить- ся). Единственное, что скрашивает этот мрачный мир, — это возможность найти кучу золота. Хотя мир вампуса является довольно скромным с точки зрения совре- менных стандартов компьютерных игр, он позволяет проиллюстрировать некото- рые важные моменты, касающиеся интеллектуальных агентов. Пример мира вампуса приведен на рис. 7.2. Точное определение среды этой за- дачи, соответствующее требованиям, которые приведены в разделе 2.3, дано с по- мощью следующего описания РЕА8. • Показатели производительности. За то, что агент находит золото, он по- лучает +1000 очков, за то, что агент попадает в яму или его съедает вампус, ему назначается -1000 очков, он платит -1 очко за каждое выполненное дей- ствие и -10 очков за использование стрелы. Игра заканчивается либо когда агент умирает, либо когда он выбирается из пещеры. Рис. 7.2. Типичный пример мира вампуса. Агент находится в нижнем левом углу, лицом к востоку (смотрит вправо) • Среда. Залы в пещере образуют квадратную решетку 4x4. Агент всегда на- чинает движение с квадрата, обозначенного как [1,1], и смотрит вправо.
Местонахождения золота и вампуса выбираются случайным образом с рав- номерным распределением из числа квадратов, отличных от начального ква- драта. Кроме того, в каждом квадрате, отличном от начального, с вероятно- стью 0,2 может находиться яма. • Исполнительные механизмы. Агент может двигаться вперед (действие РогмапГ), поворачиваться влево (ТигпЕеф и вправо {ТитК^Ы) на 90°. Агент погибает жалкой смертью, если входит в квадрат, где имеется яма или живой вампус. (Входить в квадрат с мертвым вампусом безопасно, но при этом ни- куда не деться от неприятного запаха.) Попытка продвижения вперед остает- ся безрезультатной, если перед агентом находится стена. Чтобы поднять зо- лото, лежащее в том квадрате, где находится агент, можно воспользоваться действием СгаЬ. С помощью действия 8коо( можно пустить стрелу по пря- мой линии в том направлении, куда смотрит агент. Стрела продолжает дви- жение до тех пор, пока она либо не попадет в вампуса (и убьет его), либо не ударится в стену. У агента имеется только одна стрела, поэтому какого-либо эффекта можно достичь лишь при первом выполнении действия 8коо1. И на- конец действие СИтЪ позволяет агенту выбраться из пещеры, но только если он находится в квадрате [1,1]. • Датчики. У агента есть пять датчиков, каждый из которых предоставляет ему только один вид информации. - В квадратах, непосредственно (не по диагонали) смежных с тем, где на- ходится вампус, агент чувствует неприятный запах (восприятие 8(епск\' - В квадратах, непосредственно (не по диагонали) смежных с тем, где на- ходится яма, агент будет чувствовать ветерок (восприятие Вгеехе). - В квадрате, где находится золото, агент замечает блеск (восприятие ОННег). - Когда агент наталкивается на стену, он чувствует глухой удар (восприя- тие Витр). - Перед тем как умереть, пораженный стрелой вампус издает жалобный крик, который разносится по всей пещере (восприятие 8сгеат). Результаты восприятия передаются агенту в форме списка из пяти символов. Например, если есть неприятный запах и ветерок, но нет блеска, удара и крика, программе агента будет передан список [8(епск, Вгееге, Мопе, Ыопе, ЛГоле]. Данную среду мира вампуса можно классифицировать в соответствии с харак- теристиками, определенными в главе 2. Очевидно, что она является детермини- рованной, дискретной, статической и одноагентной. (К счастью, вампус по пеще- ре не перемещается.) Она является последовательной, потому что вознаграждение 1 Предположительно в квадрате, содержащем вампуса, также присутствует неприят- ный запах, но любой агент, входящий в этот квадрат, будет съеден до того, как сможет что-либо почувствовать.
может быть получено только после выполнения многих действий. Она частично наблюдаемая, поскольку нельзя непосредственно воспринять некоторые аспекты ее состояния: местоположение агента, жив или мертв вампус, имеется ли в нали- чии стрела. Что касается расположения ям и местонахождения вампуса, то можно рассматривать эти аспекты среды как ненаблюдаемые элементы ее состояния, — в этом случае модель перехода для окружающей среды будет полностью известна, а поиск опасных мест будет пополнять знания агента о состоянии. С другой сто- роны, можно считать, что неизвестна сама модель переходов, поскольку агент не знает, какое именно действие Гогмагс! окажется фатальными. В этом случае обна- ружение мест расположения ям и вампуса будет дополнять знания агента о моде- ли перехода. Для агента в такой ситуации главная проблема состоит в его первоначальном неведении в отношении конфигурации окружающей среды, и преодоление этого незнания, видимо, требует выполнения логических рассуждений. В большинстве случайных реализаций мира вампуса у агента есть возможность безопасно добыть золото, но иногда агенту приходится выбирать: вернуться ли домой с пустыми руками или рисковать жизнью, чтобы найти золото. Около 21% вариантов среды являются совершенно неблагоприятными, поскольку золото находится в яме или окружено ямами. Давайте посмотрим, как агент, основанный на знаниях, будет действовать, ис- следуя мир вампуса, изображенный на рис. 7.2. Воспользуемся неформальным языком представления знаний, заключающимся в записи специальных символов в сетке квадратов 4x4 (как показано на рис. 7.3 и 7.4). Исходная база знаний агента содержит все действующие в окружающей среде правила, которые были описаны выше. В частности, агент знает, что находится в квадрате [1,1] и что квадрат [1,1] является безопасным. Эти знания представлены на рис. 7.3, а как символы А и ОК соответственно, помещенные в квадрат [1,1]. Первым восприятием является [Ыопе,Ыопе,Ыопе,\опе, Моле], на основании ко- торого агент может сделать вывод, что соседние квадраты, [1,2] и [2,1], являются безопасными, т.е. их можно пометить символами ОК. На рис. 7.3, а показано со- стояние знаний агента на данный момент. Осторожный агент переходит только в такой квадрат, который, как ему извест- но, имеет отметку ОК. Предположим, что агент решил переместиться вперед, в квадрат [2,1]. Здесь его датчики сообщают о наличии ветерка (квадрат получает отметку В), и это означает, что в одном из соседних квадратов должна быть яма. В квадрате [1,1] ямы нет, поэтому она должна быть либо в квадрате [2,2], либо в квадрате [3,1], либо и в том, и в другом. На рис. 7.3, б на возможность наличия ямы в этих квадратах указывает отметка Р? в этих квадратах. На данный момент агенту известен только один квадрат с отметкой ОК, который еще не был посе- щен. Поэтому агент благоразумно поворачивается кругом и возвращается в ква- драт [1,1], а затем переходит в квадрат [1,2].
1,4 24 3,4 44 [а| —агент В — ветерок С — блеск, золото ОК — безопасный квадрат Р —яма 8 —запах V — посещенный квадрат УУ —вампус 14 2,4 3,4 4,4 13 2,3 3,3 4,3 1,3 2,3 3,3 4,3 1,2 ОК 2,2 з,2 4,2 1,2 ОК 2,2 р? 3,2 4,2 1,1 □ ок 2,1 ОК 3,1 4,1 1,1 V ОК 2/1 [А] в ОК 3,1 р? 4,1 а) б) Рис. 7.3. Первое действие, выполненное агентом в мире вампуса. а) Исходная ситу- ация — агент получил восприятие №опе^опе,Мопе^опе,1Уопё\. б) Ситуация по- сле перемещения в квадрат [2,1], в котором агент получил восприятие [1Чопе,Вгееге, Мопе, Мопе, Мопе\ Здесь агент воспринимает неприятный запах и квадрат [1,2] получает отметку 8, — новое состояние знаний агента показано на рис. 7.4, а. Наличие неприятного запаха в этом квадрате означает, что где-то рядом находится вампус. Но вампус не может находиться в квадрате [1,1] по правилам игры и его нет в квадрате [2,2] (по- скольку агент обнаружил бы неприятный запах, когда находился в квадрате [2,1]). Следовательно, агент с уверенностью может сделать вывод, что вампус находится в квадрате [1,3], на что и указывает отметка XV! в этом квадрате. Кроме того, отсут- ствие ветерка в квадрате [1,2] означает, что в соседнем квадрате [2,2] ямы нет. По- скольку ранее агент уже сделал вывод, что яма должна быть в квадрате [2,2] или [3,1], это означает, что в действительности она присутствует в квадрате [3,1]. Это довольно сложный логический вывод, поскольку он объединяет знания, получен- ные в разное время в разных местах, и полагается на отсутствие восприятия, что- бы принять ответственное решение. Теперь агент доказал сам себе, что в квадрате [2,2] нет ни ямы, ни вампуса, по- этому можно удалить для него отметку Р! и взамен поставить отметку ОК, а за- тем безопасно перейти туда. Мы не будем обсуждать состояние знаний агента в квадрате [2,2], а просто предположим, что агент повернулся и перешел в квадрат [2,3], — новое состояние его знаний показано на рис. 7.4, б. В квадрате [2,3] агент обнаруживает блеск, поэтому он должен схватить золото и вернуться в исходную точку,, тем самым закончив игру. Обратите внимание, что в каждом конкретном случае, когда агент делает за- ключение на основании имеющейся у него информации, оно гарантированно
1,4 2,4 3,4 4,4 [а] —агент В —ветерок С — блеск, золото ОК — безопасный квадрат Р —яма 8 —запах V — посещенный квадрат XV — вампус М зд 4,4 1,3 IV! 23 33 43 1.3 ун —0 га » —1^ ч 33 р? 43 $ ок 2.2 ОК 3,2 42 '2. V ОК и V ОК 3,2 4,2 Ы V ОК 2,1 в V ОК 3,1 Р! 4,1 1,1 V ОК в V ОК 31 у, 4,1 а) б) Рис. 7.4. Два более поздних этапа деятельности агента, а) После возврата в [1,1], а затем перехода в [1,2], где было получено восприятие [$1епск,Мопе,Мопе, №>пе,№>пё]. б) После перехода в [2,2], а затем в [2,3], где было получено восприя- тие [Мепск, Вгеехе, СПНег, Мопе, Ноле] будет правильным, если эта информация верна. Это фундаментальное свойство логических рассуждений. В оставшейся части данной главы будет показано, как создавать логических агентов, которые могут представлять информацию и делать выводы, подобные приведенным выше в этом разделе. 7.3. Логика В этом разделе приведен краткий обзор основных понятий логического пред- ставления и рассуждения. Эти прекрасные идеи не зависят от какой-либо опреде- ленной формы логики, поэтому описание любых технических деталей этих форм откладывается до следующего раздела. Вместо них в данном разделе используют- ся знакомые всем примеры из области обычной арифметики. В разделе 7.1 было указано, что базы знаний состоят из высказываний. Эти вы- сказывания выражаются в соответствии с ►синтаксисом языка представления, определяющего форму всех правильно сформированных высказываний. Понятие синтаксиса можно вполне очевидно проиллюстрировать примерами из обычной арифметики: “х+у=4” — правильно построенное высказывание, а “х2у+=” — нет. Логика должна также определять ►семантику языка или, иначе, “смысл” вы- сказываний. Семантика языка определяет ►истинность каждого высказывания от- носительно каждого из ►возможных миров. Например, семантика в арифметике определяет, что высказывание “х+у=4” истинно в мире, где х равно 2 и у равно 2, но ложно в мире, где х равно 1, а у также равно 1. В стандартной логике каждое вы-
сказывание должно быть либо истинным, либо ложным в каждом из возможных ми- ров — в ней не может быть каких-либо “промежуточных” состояний.2 В дальнейшем, когда потребуется уточнить какое-либо определение, вместо вы- ражения “один из возможных миров” будет использоваться термин ► модель. В то время как возможные миры можно рассматривать как (потенциально) реальные варианты среды, в которых агент может находиться или не находиться, модели яв- ляются математическими абстракциями, каждая из которых устанавливает значе- ние истинности (истина или ложь) для каждого высказывания, соответствующего данной модели. Неформально модель можно понимать как возможный мир, на- пример рассматривать х и у как количество мужчин и женщин, сидящих за столом для игры в бридж; тогда высказывание х+у=4 становится истинным, когда общее количество игроков равно четырем. Формально допустимыми моделями являют- ся просто все возможные присваивания переменным х и у неотрицательных цело- численных значений. Каждое такое присваивание определяет истинность любого высказывания в арифметике, переменными которого являются хи у. Если выска- зывание а является истинным в модели /и, то говорят, что т ► удовлетворяет а или иногда что т является моделью для а. Мы будем использовать обозначение Л/(а) для обозначения множества всех моделей для а. Теперь, сформулировав определение понятия истинности, можно перейти к обсуждению темы логических рассуждений. Для этого сначала необходимо вве- сти понятие логического ► следствия между высказываниями — идею о том, что одно высказывание может логически следовать из другого. В математических обо- значениях это выглядит следующим образом: а НЗ- Эта запись означает, что высказывание а влечет за собой высказывание 0. Фор- мальное определение логического следствия является таковым: а |= 0 тогда и только тогда, когда в любой модели, в которой а является истинным, высказыва- ние 3 также будет истинным. Воспользовавшись только что введенным обозначе- нием, можно записать а |= 0 тогда и только тогда, когда Л/(а) С Л/(0). (Обратите внимание на направление здесь операции С: если а |= 0, то а явля- ется более сильным утверждением, чем 0: оно исключает больше возможных ми- ров.) Понятие следствия применимо и в арифметике: вполне понятно, что из вы- сказывания х=0 следует высказывание ху=0. Очевидно, что в любой модели, где х равно нулю, абсолютно неизбежно, что ху также будет равно нулю (независимо от значения у). Анализ такого же типа можно применить и к примеру рассуждений о мире вам- пуса, приведенному в предыдущем разделе. Рассмотрим ситуацию, показанную 2 Нечеткая логика, обсуждаемая в главе 13, допускает разные степени истинности.
на рис. 7.3, а: агент ничего не обнаружил в квадрате [1,1], а в квадрате [2,1] почув- ствовал ветерок. Эти восприятия в сочетании со знаниями агента о правилах, дей- ствующих в мире вампуса (описание РЕА8 в разделе 7.2), составляют его базу зна- ний. Агенту необходимо узнать, имеются ли ямы в соседних квадратах, [1,2], [2,2] и [3,1]. В каждом из этих трех квадратов может находиться или не находиться яма, поэтому (в данном конкретном примере) существует 23 = 8 возможных моделей. Все они представлены на рис. 7.5.3 Рис. 7.5. Возможные модели, описывающие наличие ям в квадратах [1,2], [2,2] и [3,1]. База знаний, соответствующая наблюдениям, что в квадрате [1,1] нет ничего, а в квадрате [2,1] чувствуется ветерок, обведена сплошной линией, а) Пунктирной линией обведены модели, удовлетворяющие высказыванию а! (в квадрате [1,2] нет ямы), б) Пунктирной линией обведены модели, удовлетворяющие высказыванию (в квадрате [2,2] нет ямы) б) Базу знаний можно рассматривать как набор высказываний или как одно выска- зывание, утверждающее все отдельные высказывания. База знаний будет ложной в моделях, противоречащих тому, что знает агент, например база данных будет лож- ной в любой модели, в которой квадрат [1,2] содержит яму, потому что в квадрате [1,1] не ощущается ветерок. Фактически существуют только три модели, в кото- рых база знаний (или КВ) является истинной, — на рис. 7.5 они окружены сплош- ной линией. Теперь рассмотрим два возможных вывода: ОЦ = “В квадрате [1,2] нет ямы.” = “В квадрате [2,2] нет ямы.” 3 Хотя на данном рисунке модели показаны как фрагменты мира вампуса, в действи- тельности они представляют собой не что иное, как варианты присваивания значений 1гие и/а1зе высказываниям “в квадрате [1,2] имеется яма” и т.д. Для определения модели, в математическом смысле этого понятия, не нужно описывать в ней “страшных, покры- тых шерстью” вампусов.
Модели, удовлетворяющие высказываниям а1 и с^, окружены пунктирными ли- ниями на рис. 7.5, а и 7.5, б соответственно. Проанализировав ситуацию, можно установить следующее: в каждой модели, в которой КВ истинна, высказывание а1 также истинно. Следовательно, КВ |= оц: в квадрате [ 1,2] нет ямы. Также можно увидеть следующее: в некоторых моделях, в которых КВ истинна, высказывание является ложным. Следовательно, из КВ не следует высказывание с^: агент не может прийти к заклю- чению, что в [2,2] нет ямы. (Также он не может сделать вывод, что в [2,2] есть яма.)4 В предыдущем примере не только проиллюстрирован процесс формирования логических следствий, но и показано, как определение логического следствия можно применять для получения заключений, т.е. для проведения Алогического вывода. Алгоритм логического вывода, проиллюстрированный на рис. 7.5, назы- вается А проверкой по моделям, поскольку в нем осуществляется перебор всех возможных моделей для проверки того, что высказывание а является истинным во всех моделях, в которых КВ истинна, т.е. М(КВ) С Л/(а). Чтобы лучше понять, что такое логическое следствие и логический вывод, можно представить себе, что множество всех логических следствий из КВ — это стог сена, а высказывание а — это иголка. Логическое следствие подобно утверж- дению о том, что в стоге сена есть иголка, а логический вывод можно сравнить с ее поиском. Это различие отражено и в формальных обозначениях: если некото- рый алгоритм логического вывода / позволяет логическим путем вывести выска- зывание а из базы знаний КВ, то можно записать следующее: что произносится как “а логически выводится из КВ с помощью алгоритма Г или “алгоритм / позволяет логически вывести а из КВ”. Алгоритм логического вывода, позволяющий получить только такие выска- зывания, которые действительно следуют из базы знаний, называется ► непро- тиворечивым или А сохраняющим истинность. Непротиворечивость — это в высшей степени желательное свойство. Противоречивая процедура логического вывода в ходе своей работы, по сути, создает то, чего нет на самом деле: объявля- ет об обнаружении несуществующих иголок. Можно легко показать, что алгоритм проверки по моделям, если он применим,5 является непротиворечивым. 4 Агент может лишь вычислить вероятность того, что в квадрате [2,2] есть яма; в гла- ве 12 показано, как это сделать. 5 Алгоритм проверки по моделям может применяться, если пространство моделей является конечным, например в мирах вампуса с фиксированными размерами. С другой стороны, в арифметике пространство моделей является бесконечным: даже если мы огра- ничимся целыми числами, то количество пар значений для х и у в выражении х+у = 4 является бесконечным.
Желательным является также свойство ► полноты: алгоритм логического вы- вода называется полным, если позволяет вывести любое высказывание, которое следует из базы знаний. Когда речь идет о настоящих стогах сена, имеющих ко- нечный объем, то представляется вполне очевидным, что систематическое иссле- дование всегда позволяет определить, есть ли иголка в данном стоге сена. Но со многими базами знаний связан бесконечно большой стог сена, состоящий из след- ствий, поэтому обеспечение полноты становится важной проблемой.6 К счастью, существуют полные процедуры логического вывода для многих форм логики, яв- ляющиеся достаточно выразительными для того, чтобы справиться со многими базами знаний. Выше фактически был описан процесс формирования рассуждений, выводы которого гарантированно являются истинными в любом мире, в котором истин- ны предпосылки; в частности, если база знаний является истинной в реальном мире, то любое высказывание, полученное логическим путем из этой базы знаний с помо- щью непротиворечивой процедуры логического вывода, также является истинным в ре- альном мире. Поэтому, несмотря на то, что процесс логического вывода опериру- ет “синтаксисом” (внутренними физическими конфигурациями, такими как биты в регистрах, или схемами электрических возбуждений в мозговых структурах), этот процесс соответствует связям реального мира, согласно которым некото- рые аспекты реального мира имеют место благодаря тому, что имеют место дру- гие аспекты реального мира.7 Это соответствие между миром и его представлени- ем продемонстрировано на рис. 7.6. Высказывания —-------------► Высказывания п । Влечет за собой п ! Представление $ । । -----------------5 1___________________________Л__________________________ '___________________________________________________хП_х-1- Мир | I 2И Аспекты ------------** Аспекты реального мира Следует реального мира Рис. 7.6. Высказывания представляют собой элементы физической конфигурации агента, а формирование рассуждений — это процесс создания новых элементов фи- зической конфигурации из уже существующих. Процесс формирования логических рассуждений должен гарантировать, что новые элементы конфигурации будут пред- ставлять те аспекты мира, которые действительно следуют из аспектов, представ- ленных уже существующими элементами конфигурации 6 Сравните эту ситуацию со случаем бесконечных пространств поиска, описанным в главе 3, где поиск в глубину является неполным. 7 Как писал Виттгенштейн ([2368], 1922) в своем знаменитом Трактате, “Мир — это все, что имеет место”.
Последний вопрос, который необходимо рассмотреть, — это проблема ► обос- нования: установления связи между процессами логических рассуждений и ре- альной средой, в которой существует агент. В частности, это вопрос о том, ^как узнать, что база знаний является истинной в реальном мире? (В конце концов, база знаний КВ — это просто “синтаксические конструкции” в голове агента.) Это фи- лософская проблема, которой посвящено очень много книг (см. главу 27). Простой ответ состоит в том, что указанная связь создается с помощью датчиков агента. На- пример, наш агент для мира вампуса имеет датчик запаха. Обнаружив неприятный запах, программа агента создает соответствующее высказывание в базе данных. Следовательно, всякий раз, когда данное высказывание находится в базе знаний, оно является истинным и в реальном мире. Поэтому смысл и истинность выска- зываний, в которых выражаются результаты восприятий, определяются с помо- щью процессов формирования ощущений и составления высказываний, которые ими порождаются. А что можно сказать об остальных знаниях агента, таких как его уверенность, что местонахождение вампусов выдает наличие неприятного за- паха в соседних квадратах? Это не прямое представление единственного акта вос- приятия, а общее правило, которое, возможно, было выведено из опыта восприя- тий, но не идентично высказываниям об этом опыте. Выработка подобных общих правил в процессе формирования высказываний называется обучением и является темой части V данной книги. Обучение чревато ошибками. Может оказаться, что вампусы распространяют неприятный запах во все дни, кроме 29 февраля високос- ного года, поскольку в эти дни они принимают ванну. Поэтому в реальном мире база знаний может оказаться не истинной, но при правильной процедуре обучения у агента есть повод для оптимизма. 7.4. Логика высказываний: очень простая логика В этом разделе будет представлена очень простая логика, называемая ►логи- кой высказываний или исчислением высказываний. Здесь рассматриваются ее синтаксис (структура высказываний) и семантика (способ определения истинно- сти высказываний). Из этого выводится простой синтаксический алгоритм логиче- ского вывода, реализующий семантическое понятие логического следствия. Безус- ловно, все это рассматривается в применении к миру вампуса. 7.4.1. Синтаксис Синтаксис логики высказываний определяет допустимые высказывания. ► Атомарные высказывания (неделимые синтаксические элементы) состоят из одного ►пропозиционального символа (пропозициональной переменной). Каждый такой символ (переменная) обозначает высказывание, которое может быть либо истинным, либо ложным. Для их обозначения будем использовать име- на, начинающиеся с прописной буквы и, возможно, включающие другие буквы
или индексы: Р, (), К, 1?13 или Раст^Еаз!. Эти имена произвольны, но часто вы- бирались так, чтобы иметь какое-то мнемоническое значение. Например, символ 3 может использоваться для обозначения высказывания, согласно которому вам- пус находится в квадрате [1,3]. (Напомним, что символы, подобные И\3, являют- ся атомарными, т.е. элементы И7, 1 и 3 не следует воспринимать как осмысленные части этого символа.) Существуют два пропозициональных символа, имеющих постоянный смысл: Тгие — высказывание, которое всегда истинно, и Ра1зе — вы- сказывание, которое всегда ложно. А Сложные высказывания строятся из более простых высказываний с помощью Алогических связок, к которым относятся скобки и логические операторы. Широко применяются пять описанных ниже ло- гических связок. -> (нет). Такое высказывание, как -<^г1г3, называется А отрицанием вы- сказывания ^ 3. А Литерал представляет собой либо атомарное вы- сказывание (положительный литерал), либо отрицаемое атомарное высказывание (отрицательный литерал). А (и). Высказывание, основной связкой которого является А, такое как ГЦЛ Р3}, называется А конъюнкцией, а его части называются А конъюнктами. (Символ А напоминает букву “А” в слове “АпсГ — англ. “И”.) V (или). Высказывание, в котором используется связка V, такое как (Г1>3 А Р3 V 1Г2 2, называется А дизъюнкцией, а его части дизъюн- ктами, — в данном примере это (^13 А Р3,) и М22. => (влечет за собой). Такое высказывание, как (1К1>3 А Р31) => ->^2>2, на- зывается А импликацией (или следованием). Его А посылкой, или антецедентом, является (И7,3 А Р33), а его А следствием, или кон- секвентом, является -АУ2<2- Импликации называют также связкой или А правилом И-4Ьеп (если-то). В других книгах символ импли- кации иногда записывается как Э или о (тогда и только тогда). Высказывание вида И7,^ о -И/2 2 называется Адвухсторонней импликацией (или эквивалентностью). Это вы- сказывание будет истинным тогда и только тогда, когда либо обе его части истинны, либо обе его части ложны. В других книгах символ двухсторонней импликации иногда записывается как <-> или =. Формальная грамматика логики высказываний приведена на рис. 7.7. (Нотация ВИР объясняется в приложении Б.) Эта грамматика дополнена списком, определя- ющим порядок выполнения операторов и позволяющим устранить неопределен- ность при наличии в выражении нескольких операций. Оператор “нет” (->) имеет самый высокий приоритет, и это означает, что в выражении вида -А А В связка -> имеет высший приоритет и все выражение следует понимать как (~>А) А В, а не как
-(Я Л В). (Порядок следования обычных арифметических операций аналогичен: -2+4 равно 2, а не -6.) При необходимости для уточнения действительной струк- туры высказывания и упрощения его понимания можно также использовать кру- глые скобки, а если их недостаточно, то и квадратные скобки. Высказывание —> АтомарноеВысказывание | Сложное Высказывание АтомарноеВысказывание —► Истина | Ложь | Р | 0 | Я | ... Сложное Высказывание —> {Высказывание) | ^Высказывание | Высказывание Л Высказывание | Высказывание V Высказывание | Высказывание => Высказывание | Высказывание <=> Высказывание Порядок выполнения операций : Л, V, =>, <=> Рис. 7.7. Грамматика высказываний в логике высказываний в форме ВМГ {Васкиз- Иаиг Вогт — форма Бэкуса-Наура) наряду с порядком выполнения операторов от высшего приоритета к низшему 7.4.2. Семантика Определив синтаксис пропозициональной логики, можно приступить к опре- делению ее семантики. Семантика задает правила определения истинности выска- зывания по отношению к конкретной модели. В логике высказываний любая мо- дель просто фиксирует ► истинностное значение — (гие или/а1зе — для каждого пропозиционального символа. Например, если в высказываниях некоторой базы знаний используются пропозициональные символы Р12, Р22 и Р3 (, то одной из воз- можных моделей будет т\ = {Л,2 = /Же, Л,2 = /Же, Р31 = (гие}. При наличии трех пропозициональных символов существует 23 = 8 возможных моделей; именно столько моделей показано на рис. 7.5. Однако следует отметить, что с тех пор, как мы определили синтаксис, модели стали чисто математически- ми объектами, которые не обязательно должны быть связаны с миром вампуса. Например, Р| 2 — это просто символ; он может означать, что “в квадрате [1,2] есть яма” или “я буду в Париже сегодня и завтра”. Семантика пропозициональной логики должна определять, как следует вычис- лять истинностное значение любого высказывания при наличии модели. Эта про- цедура выполняется рекурсивно. Все высказывания формируются из атомарных
высказываний и пяти связок, поэтому необходимо сначала указать, как следует вы- числять истинность атомарных высказываний, а затем — как вычислять истинность высказываний, сформированных с помощью каждой из этих пяти связок Задача вы- числения истинности атомарных высказываний, как показано ниже, очень проста • Высказывание Тгие истинно в любой модели, а высказывание Еа1зе ложно в любой модели. • Истинностное значение любого другого пропозиционального символа долж- но быть указано непосредственно в модели. Например, в приведенной выше модели т, высказывание РУ 2 является ложным. Для сложных высказываний существует пять правил, которые справедливы для любых входящих в них высказываний Р ^2 (атомарных или сложных) в любой модели т. • ~Р истинно тогда и только тогда, когда Р ложно в т. • Р !\<2 истинно тогда и только тогда, когда и Р, и (7 истинны в т. • Р V 2 истинно тогда и только тогда, когда либо Р, либо 2 истинны в т. • Р => 2 истинно за исключением случая, когда Р истинно, а 2 ложно в т. • Р о (7 истинно тогда и только тогда, когда Р и (7 оба истинны или оба лож- ны в т. Эти правила также могут быть выражены с помощью ► таблиц истинности, определяющих значение истинности сложного высказывания для каждого возмож- ного присваивания значений истинности его компонентам. Истинностные табли- цы для рассматриваемых пяти логических связок приведены на рис. 7.8. На осно- вании этих таблиц истинность любого высказывания 5 может быть вычислена по отношению к любой модели т посредством простой рекурсивной оценки. Напри- мер, высказывание ->Р12 А (Р2 2 V Р31), оцениваемое в модели т{, вычисляется как 1гие А (/а1зе V 1гие) = (гие А (гие = 1гие. В упражнении 7.3 вам будет предложено на- писать алгоритм РЬ-Т1ШЕ?($, т), обеспечивающий в логике высказываний вычис- ление истинностного значения любого высказывания 5 в модели т. Истинностные таблицы для связок “И”, “Или” и “Нет” почти полностью соот- ветствуют интуитивным представлениям о смысле таких же слов естественного языка. Основным источником возможной путаницы является то, что высказыва- ние Р V 2 истинно, если истинным является Р или (? или оба эти высказывания. Имеется другая связка, называемая “исключающее ИЛИ” (сокращенно “ХОК” — Ехс1ийуе ОК), принимающая ложное значение, если оба дизъюнкта являются ис- тинными.8 В отношении того, какое обозначение следует применять для связки “исключающее ИЛИ”, нет общего согласия: возможными вариантами являются V, =#,ф. 8 В латинском языке для обычного, “включающего ИЛИ” используется слово “уе1”, тогда как для понятия “исключающего ИЛИ” имеется отдельное слово, “аЩ”.
р 0. ^Р рлд Р=^0 Ро0 /а1зе /а1зе (гие /а1зе /а1зе (гие (гие /а1зе (гие (гие /а1зе (гие (гие /а1зе (гие /а1зе /а1зе /а1зе (гие /а1зе /а1зе (гие (гие /а1зе (гие (гие (гие (гие Рис. 7.8. Истинностные таблицы для пяти логических связок. Чтобы воспользовать- ся этой таблицей, например для вычисления значения Р V 2, когда Р является истин- ным, а 2 — ложным, вначале необходимо найти в левой части таблицы строку, в ко- торой Р имеет значение (гие, а — /а1зе (третья строка). Затем нужно искать запись в этой строке, соответствующую столбцу Р V чтобы определить результат — (гие Истинностная таблица для связки => на первый взгляд может показаться оза- дачивающей, поскольку не совсем соответствует интуитивному пониманию вы- ражений “Р влечет за собой О” и “если Р, то 0”. Прежде всего необходимо отме- тить, что пропозициональная логика не требует, чтобы между высказываниями Р и <2 устанавливались какие-либо причинно-следственные отношения или отноше- ния, определяющие их релевантность применительно к друг другу. Так, выска- зывание “то, что число 5 нечетное, влечет за собой то, что Токио — столица Япо- нии” в логике высказываний является истинным (при обычной интерпретации), даже несмотря на то, что в естественном языке оно, определенно, кажется стран- ным. Еще один источник путаницы состоит в том, что любая импликация явля- ется истинной, если ее антецедент ложен. Например, высказывание “то, что чис- ло 5 четное, влечет за собой то, что Сэм умен” является истинным независимо от того, умен Сэм или нет. Это может показаться странным, но приобретает смысл, если рассматривать высказывание вада “Р => как утверждение: “Если Р истин- но, то я утверждаю, что истинно. В противном случае я не высказываю никаких утверждений”. Единственный вариант, при котором это высказывание может при- нять значение/а1зе, — когда высказывание Р является истинным, — ложным. Высказывание с двухсторонней импликацией, Р 4> будет истинным, если ис- тинны оба высказывания Р => Р.Ъ словесной форме соответствующее высказывание часто записывают следующим образом: “Р (истинно) тогда и толь- ко тогда, когда (истинно) О”. Многие правила для мира вампуса лучше всего запи- сывать с помощью связки 4^. Например, в некотором квадрате чувствуется вете- рок, если в соседнем квадрате имеется яма, а ветерок в некотором квадрате может чувствоваться, только если в одном из соседних квадратов имеется яма. Поэтому здесь нам необходима двухсторонняя импликация где Вх, означает, что в квадрате [1,1] чувствуется ветерок.
7.4.3. Простая база знаний Теперь, после определения семантики логики высказываний, можно сформи- ровать базу знаний для мира вампуса. В этом разделе для упрощения будут рас- сматриваться только неизменяемые аспекты этого мира, а к тем аспектам, которые могут изменяться, мы вернемся в последующих разделах. На данный момент для каждого квадрата [х, у] нам потребуются следующие пропозициональные символы. Высказывание Рх^ является истинным, если в квадрате [х, у] есть яма. Высказывание Появляется истинным, если в квадрате [х,у] есть вампус, мертвый или живой. Высказывание является истинным, если в квадрате [х,у] есть ветерок. Высказывание 5^, является истинным, если в квадрате [х, у] есть неприят- ный запах. Высказывание Ьху является истинным, если в квадрате [х, у] находится агент. Высказываний, которые мы поместим в базу знаний, будет достаточно, что- бы вывести высказывания типа ->Рц (в квадрате [1,2] нет ямы), как это было не- формально сделано в разделе 7.3. Каждое из этих высказываний мы пометим как Р,, чтобы на них можно было ссылаться. • В квадрате [1,1] ямы нет: -,РМ. • В квадрате чувствуется ветерок тогда и только тогда, когда в соседнем ква- драте имеется яма. Такое высказывание должно быть сформулировано для каждого квадрата, но на данный момент в рассмотрение включены только непосредственно интересующие нас квадраты: ^2 * ^1,1 (^1,2 V ^2,|)’ Лз : ^2,1 (^1,1 V Р2,2 V • Приведенные выше высказывания будут истинными во всех экземплярах мира вампуса. Теперь добавим данные о восприятии ветерка для первых двух квадратов, которые были посещены агентом в том конкретном мире, где он находится, — это приведет нас к ситуации, показанной на рис. 7.3, б: ^4 : “'^1,19 /?5: В2 Р Таким образом, на текущий момент база знаний состоит из высказываний К -К5 и все отдельно взятые высказывания в ней являются истинными.
7.4.4. Простая процедура логического вывода Напомним, что сейчас наша цель — установить, будет ли КВ |= а для некоторого высказывания а. Например, следует ли из базы знаний высказывание -Рх 2? Первый алгоритм логического вывода, рассматриваемый в этом разделе, представляет собой непосредственную реализацию определения логического следствия: перебрать (пе- речислить) все модели и проверить, является ли высказывание а истинным в каждой модели, в которой база знаний КВ является истинной. Дия логики высказываний мо- дели представляют собой варианты присваивания значений 1гие или /а1$е каждому пропозициональному символу. Для нашего примера с миром вампуса соответствую- щими пропозициональными символами являются Вх 19 В2 „ Рх,, 2, Р2,19 Л,2и Лл- Д1™ семи символов может существовать 27= 128 возможных моделей и только в трех из них база знаний КВ является истинной (рис. 7.9). В этих трех моделях также истин- ным является высказывание -&х# а это значит, что в квадрате [1,2] ямы нет. С другой стороны, высказывание Р^2 истинно в двух из этих трех моделей и ложно в одной из них, поэтому мы пока не можем определить, имеется ли яма в квадрате [2,2]. ВУ,У В2,У РУ.У Рул Р2.1 Р12 Рз,у Ру &2 вз Л, Л5 КВ /аке /аке /аке /аке /аке /аке /аке 1гие 1гие 1гие !гие /аке /аке /аке /аке /аке /аке /аке /аке 1гие 1гие 1гие /аке 1гие /аке /аке /аке 1гие /аке /аке /аке /аке /аке 1гие 1гие /аке 1гие 1гие /аке /аке 1гие /аке /аке /аке /аке 1гие 1гие 1гие 1гие 1гие 1гие _1гие /аке 1гие /аке /аке /аке 1гие /аке 1гие 1гие 1гие 1гие 1гие 1гие /аке 1гие /аке /аке /аке 1гие 1гие 1гие 1гие 1гие (гие 1гие 1гие /аке 1гие /аке /аке 1гие /аке /аке 1гие /аке /аке 1гие 1гие /аке 1гие 1гие 1гие !гие 1гие 1гие 1гие /аке 1гие 1гие /аке 1гие /аке Рис. 7.9. Истинностная таблица, сформированная для базы знаний, определенной в тексте раздела. База знаний КВ является истинной, если истинны высказывания Кх- /?5, а это имеет место только в 3 из 128 строк (подчеркнуты в крайнем справа столб- це). Во всех этих трех строках высказывание РХ 2 ложно, поэтому в квадрате [1,2] ямы нет. С другой стороны, яма в квадрате [2,2] может быть (или не быть) На рис. 7.9 в более точной форме воспроизведен процесс формирования рас- суждений, проиллюстрированный на рис. 7.5. Общий алгоритм определения логи- ческого следствия в логике высказываний приведен на рис. 7.10. Как и в алгоритме Васкткаск1Н6-8еаксн, приведенном на рис. 6.5, функция ТТ-Еыташз? осущест- вляет рекурсивный перебор конечного пространства вариантов присваивания
значений переменным. Этот алгоритм является непротиворечивым, поскольку он непосредственно реализует определение логического следствия, и полным, по- скольку может применяться для любой базы знаний КВ и любого высказывания а и всегда заканчивает свою работу, — при условии, что количество моделей, подле- жащих проверке, является конечным. ГипсСюп ТТ-Екта1Ь8?(О, о) геСигпз значение 1гие или/а1зе 1приС$: КВ, база знаний, высказывание в логике высказываний о, запрос, высказывание в логике высказываний зутЬо1з «— список пропозициональных символов в КВ и о геШгп ТТ-Снеск-АЩ/СВ, а, зутЬо1$, {}) ГипсНоп ТТ-Снеск-Аьь(О, а, зутЬокз, тос1еГ) геШгпз значение Тгие или /а!зе 1Г Емрту?(5,у^/>о/.5) Шеп И РЬ-Ткее?(/СВ, тос1е1) Шеп геШгп РЬ-ТкиЕ?(а, тос1е1) еке геШгп 1гие И Если КВ ложна, всегда возвращается значение Ггие е1$е Р«— Р\КЗТ(зутЬо1з) ге$1«— КЕ8Т(5у^о/.5) геШгп (ТТ-Снеск-АЩО, о, ге$1, тос1е1 и {Р = 1гие}) апд ТТ-Снеск-Аьь(/СВ, о, гем, тос1е1 и {Р =/а1зе})) Рис. 7.10. Алгоритм перебора истинностной таблицы для получения пропозици- ональных логических следствий. (Здесь ТТ представляет истинностную таблицу.) Функция РЬ-ТКЫЕ? возвращает значение 1гие, если некоторое высказывание являет- ся истинным в рамках некоторой модели. Переменная тос1е1 представляет частично заданную модель — присваивание только некоторых переменных. В этом алгорит- ме ключевое слово апс! является обозначением инфиксной функции языка псевдо- кода, а не оператором логики высказываний. Эта функция принимает два аргумента и возвращает значение 1гие или/а1зе Безусловно, выражение “является конечным” не всегда означает то же, что и выражение “является небольшим”. Если КВ и а содержат в целом п символов, то количество моделей будет равно 2я. Таким образом, временная сложность этого ал- горитма составляет О(2Я). (Пространственная сложность составляет только О(п), поскольку перебор вариантов присваивания происходит по принципу поиска в глу- бину.) Ниже будут приведены алгоритмы, гораздо более эффективные на практике. К сожалению, логический вывод высказываний является со-КР-сложной задачей (т.е. вероятно, не проще КР-сложных задач; см. приложение А),^поэтомулюбой известный алгоритм логического вывода для логики высказываний в худшем случае име- ет сложность, экспоненциально зависящую от размера ввода.
7.5. Доказательство теорем логики высказываний На данный момент уже было показано, как определить логическое следствие посредством проверки моделей-, последовательно перебирая модели и показывая, что высказывание должно присутствовать во всех моделях. В этом разделе будет показано, как логическое следствие может быть сделано посредством ►доказа- тельства теоремы — применяя правила логического вывода непосредственно к высказываниям в базе данных с целью построения доказательства истинности тре- буемого высказывания без обращения к моделям. Если число моделей велико, а длина доказательства ограничена, то доказательство теоремы может оказаться бо- лее эффективным методом в сравнении с проверкой моделей. Прежде чем углубиться в детали алгоритмов доказательства теорем, необ- ходимо ввести некоторые дополнительные концепции, касающиеся логическо- го следствия. Первой из них является понятие ►логической эквивалентно- сти: два высказывания, а и 3, являются логически эквивалентными, если они истинны в одном и том же множестве моделей. Это утверждение записывается как а = 3- (Обратите внимание, что знак = будет использоваться для утверж- дений в отношении высказываний, в то время как знак <=> будет использовать- ся только для частей высказываний.) Например, можно легко показать (с по- мощью истинностных таблиц), что высказывания Р н Р логически эквивалентны. Другие стандартные эквивалентности приведены на рис. 7.11. В логике они играют практически такую же роль, какую арифметические ра- венства играют в обычной математике. Альтернативное определение эквива- лентности является следующим: любые два высказывания а и 3 являются эк- вивалентными тогда и только тогда, когда каждое из них является логическим следствием другого: а = 3 тогда и только тогда, когда а |= 3 и 3 |= <х Вторым понятием, которое нам потребуется, является ►допустимость. Вы- сказывание допустимо, если оно истинно во всех моделях. Например, высказыва- ние Р V -Р является допустимым. Допустимые высказывания известны также под названием ►тавтологий — они обязательно истинны. Поскольку высказывание Тгие является истинным во всех моделях, то любое допустимое высказывание ло- гически эквивалентно Тгие. Для чего могут применяться допустимые высказыва- ния? Из определения логического следствия можно вывести ►теорему дедукции, которая была известна еще в Древней Греции: Для любых высказываний а и 3, а |= 3, если и только если высказывание (а => 3) является допустимым. (В упражнении 7.6 предлагается доказать эту теорему.) Следовательно, мож- но определить, будет ли а |= 3, как посредством проверки, что (а => 3) истин- но в любой модели (именно это выполняется в алгоритме логического вывода,
приведенном на рис. 7.10), так и доказав, что (а => 0) эквивалентно Тгие. И наобо- рот, теорема дедукции утверждает, что каждое допустимое высказывание в форме импликации описывает приемлемый вариант логического вывода. (а А 0) = (0 А а) коммутативность связки А (а V Р) = (Р V а) коммутативность связки V ((а А Р) А ^) = (а А (Р А ч)) ассоциативность связки А ((о V Р) V ч) = (а V (Р V ^)) ассоциативность связки V = о устранение двойного отрицания (о => Р) = (-1Р => ->о) контрапозиция (о => Р) = (чех V Р) устранение импликации (о <=> Р) = ((а => р) А (Р => а)) устранение двухсторонней импликации -1(о А Р) = (-ю V -1р) правило де Моргана -1(0 V Р) = (-1О А ->Р) правило де Моргана (о А (Р V ч)) = ((а А Р) V (а А ч)) дистрибутивность связки А по V (а V (Р А ч)) = ((а V Р) V (а А ^)) дистрибутивность связки V по А Рис. 7.11. Стандартные логические эквивалентности. Символы а, 3 и ч обозначают произвольные высказывания логики высказываний Последним понятием, которое нам потребуется, является ► выполнимость. Некоторое высказывание выполнимо тогда и только тогда, когда оно истинно в не- которой модели. Например, приведенная выше база знаний, (Т?1 А7?2А7?3Л7?4Л7?5), выполнима, поскольку существует даже не одна, а три модели, в которых она ис- тинна (см. рис. 7.9). Выполнимость можно проверить, перебирая все возможные модели до тех пор, пока не будет найдена хотя бы одна из них, которая выполняет данное высказывание. Задача определения выполнимости высказываний в пропо- зициональной логике — ► задача 8АТ — была первой задачей, для которой было доказано, что она является ^-полной. Многие задачи в компьютерных науках в действительности представляют собой задачи определения выполнимости. Напри- мер, во всех задачах удовлетворения ограничений, приведенных в главе 6, по сути, требовалось найти ответ на вопрос о том, выполнимы ли данные ограничения при некотором присваивании. Безусловно, понятия допустимости и выполнимости связаны друг с другом: вы- сказывание а является допустимым тогда и только тогда, когда высказывание “1а невыполнимо, и наоборот, высказывание а является выполнимым тогда и только тогда, когда высказывание “1а недопустимо. На этом основании можно также по- лучить следующий полезный результат: а |= 3 тогда и только тогда, когда высказывание (а Л ->3) невыполнимо. Доказательство истинности высказывания 3 на основании истинности высказы- вания а путем проверки невыполнимости выражения (а Л -<3) точно соответствует
стандартному математическому методу доказательства путем приведения к абсур- ду (буквально “доведение до абсурда” — гес!исИо ас! аЬзигдит). Его также назы- вают доказательством путем ► опровержения или доказательством с помощью ► выявления противоречия. В этом методе доказательства принимается предпо- ложение, что высказывание 0 ложно, и демонстрируется, что такое предположение приводит к противоречию с известными аксиомами а. Подобное противоречие точно соответствует тому, что подразумевается под утверждением, что выражение (а Л -0) невыполнимо. 7.5.1. Логический вывод и доказательства В данном разделе рассматриваются стандартные ► правила логического вы- вода, которые могут применяться для формирования ► доказательства — цепоч- ки заключений, ведущих к желаемой цели. Наиболее широко известное правило называется ► правилом отделения (на латыни Мос!из Ропепз — “модус поненс”) и записывается следующим образом: а => 3, а 0 ’ Эта запись означает, что если даны любые высказывания в форме а => 3 и а, то из них можно вывести высказывание 3. Например, если дано (ФитризАкеас!Л 1Уит- ризАНуе) => 8коо1 и (МитризАкеас! Л 1РитризА1п>е), то можно вывести высказы- вание 8коо(. Еще одним полезным правилом логического вывода является правило ►удале- ния связки “И”, в котором утверждается, что из конъюнкции можно вывести лю- бой из ее конъюнктов: аЛ0 а Например, из высказывания (ФитризАкеас! Л 1?итризА1г\>е) можно вывести выска- зывание 1?итризА1л>е. Рассматривая возможные истинностные значения а и 0, можно легко пока- зать, что правило отделения и правило удаления связки “И” являются непротиво- речивыми не только применительно к данным примерам, но и ко всем возможным высказываниям. Это значит, что данные правила могут использоваться в любых конкретных случаях, где они применимы, для выработки непротиворечивых логи- ческих выводов без необходимости перебора всех моделей. В качестве правил логического вывода можно также применять все логические эквивалентности, приведенные на рис. 7.11. Например, из эквивалентности устра- нения двухсторонней импликации можно получить следующие два правила логи- ческого вывода:
а О 3 (а => 3) А (3 => а) (а => |3) А (3 => с\) а 4=> 3 Однако не все правила логического вывода действуют в обоих направлениях, как это. Например, нельзя применить правило отделения в противоположном на- правлении, чтобы получить высказывания а => 3 и а из высказывания 3- Давайте посмотрим, как правила логического вывода и эквивалентности могут быть использованы в мире вампуса. Начнем с базы знаний, содержащей высказы- вания К-К59 и покажем, как доказать высказывание т.е. утверждение, что в квадрате [1,2] нет ямы. 1. Вначале применим правило устранения двухсторонней импликации к выска- зыванию К29 чтобы получить следующее: ^6 • С®1,1 (^1,2 V ?2,1)) ((^1,2 V ^2.1) ^1,1)' 2. Затем применим к высказыванию К6 правило удаления связки “И” и полу- чим ^7 ' ((^ 1,2 V ^2,1) ^1,1)' 3. Из логической эквивалентности отрицаний следует : (~|В11 => -|(Р 12 V Р2,1))' 4. Теперь можно применить правило отделения к высказыванию Я8 и к выска- зыванию Т?4 с данными восприятия (т.е. ->В1 л), чтобы получить следующее: /?9 : “4^12 V ^2,1)' 5. Наконец, применим правило де Моргана, позволяющее получить такое за- ключение: Лю *. ~'^>1,2 ~'^>2,Г Это означает, что ни в квадрате [1,2], ни в квадрате [2,1] ямы нет. Любой из алгоритмов поиска, рассматривавшихся в главе 3, можно использовать для поиска последовательности шагов, составляющих подобное доказательство. До- статочно будет просто определить задачу доказательства следующим образом. • 1мт1АЬ 8тате — исходная база знаний. • АстЮ№ — множество действий состоит из всех правил вывода, применяе- мых ко всем высказываниям, которые соответствуют верхней половине пра- вила логического вывода. • Кезглт — результатом некоторого действия является добавление высказыва- ния в нижнюю половину правила вывода. • Соль — целью является состояние, содержащее высказывание, которое предполагается доказать.
Таким образом, поиск доказательств можно рассматривать как альтернативу пе- ребору всех моделей. Во многих практических случаяхпоиск доказательства может оказаться более эффективным методом, поскольку в доказательстве можно игнорировать нерелевантные высказывания независимо от того, как много их имеет- ся. Например, в приведенном выше доказательстве, ведущем к высказыванию -пР12 Л ->Р2,19 не упоминались высказывания В219 Р22 и Л.р Их можно было не рассматривать, поскольку целевое высказывание, Рх 2 присутствует только в вы- сказывании Т?4, а остальные высказывания из состава Т?4 присутствуют только в Т?4 и Т?2, поэтому высказывания 7?3 и Т?5 не имеют никакого отношения к доказа- тельству. Те же рассуждения останутся справедливыми и в том случае, если в базу знаний будет введено на миллион больше высказываний, тогда как простой алго- ритм перебора строк в истинностной таблице в такой ситуации был бы буквально раздавлен из-за экспоненциального увеличения количества просматриваемых мо- делей. Последним фундаментальным свойством логических систем является ►мо- нотонность, согласно которому, множество высказываний, которые могут быть получены посредством логического вывода, будет увеличиваться лишь по мере добавления к базе знаний новой информации.9 Для любых высказываний а и 3 справедливо следующее: если КВ |= а, то КВ Л (3 |= а. Например, предположим, что база знаний содержит дополнительное утвержде- ние 3, согласно которому в этом экземпляре мира вампуса имеется точно восемь ям. Эти знания могут помочь агенту прийти к дополнительным заключениям, но не способны поставить под сомнение какое-либо уже сделанное заключение а, такое как вывод о том, что в квадрате [1,2] нет ямы. Монотонность означает, что правила логического вывода могут применяться каждый раз, когда в базе знаний обнаружи- ваются подходящие предпосылки, — полученное заключение будет следствием из данного правила, независимо от того, что еще находится в базе знаний. 7.5.2. Доказательство методом резолюций Выше было показано, что все рассматривавшиеся до сих пор правила логи- ческого вывода являются непротиворечивыми, но вопрос об их полноте приме- нительно к алгоритмам логического вывода, в которых они используются, еще не обсуждался. Алгоритмы поиска, такие как поиск с итеративным углублени- ем (раздел 3.4.4), являются полными в том смысле, что позволяют найти любую достижимую цель, но если доступные правила логического вывода неадекватны, то цель становится недостижимой, — не существует доказательства, в котором 9 Немонотонные логики, в которых нарушается свойство монотонности, отражают ти- пичную черту человеческого мышления — способность менять свое мнение. Эти вариан- ты логики рассматриваются в разделе 10.6.
могли бы применяться только эти правила логического вывода. Например, если мы откажемся от использования правила удаления двухсторонней импликации, то не сможем довести до конца доказательство, изложенное в предыдущем разделе. В этом разделе будет представлено единственное правило логического вывода, правило резолюций, позволяющее получить алгоритм логического вывода, кото- рый становится полным в сочетании с любым полным алгоритмом поиска. Начнем с использования простой версии правила резолюций в мире вампуса. Рассмотрим этапы, ведущие вверх на рис. 7.4, а: агент возвращается из квадрата [2,1] в квадрат [1,1], а затем переходит в квадрат [1,2], где его восприятие обнару- живает неприятный запах, но не отмечает ветерка. Введем в базу знаний следую- щие дополнительные факты: • -^1,29 ^12 ' Р 1,2 (^1,1 V ^2,2 ^\з)* С помощью того же процесса, который привел к получению высказывания 7?10, приведенного выше, мы теперь можем сделать заключение об отсутствии ям в ква- дратах [2,2] и [1,3] (напомним, что в отношении квадрата [1,1] уже известно, что ямы в нем нет): *13 : ^2,29 ^14 : “Аз* Кроме того, можно применить к высказыванию К3 правило удаления двухсто- ронней импликации, после чего применить к полученному результату в сочетании с высказыванием К5 правило отделения, чтобы установить тот факт, что по мень- шей мере в одном из квадратов [1,1], [2,2] и [3,1] яма есть: ^15 : Л,1 V ^2,2 V Р33. Теперь у нас появилась первая возможность воспользоваться правилом резолю- ций (правилом устранения противоречия): литерал ~^Р2д в высказывании 7?13, про- тивоположный литералу Р22 в высказывании Т?15, устраняется, что приводит к по- лучению следующей ► резольвенты: ^16: На обычном языке выразить ход этих рассуждений можно следующим образом: если по меньшей мере в одном из квадратов [1,1], [2,2] и [3,1] имеется яма, но ее нет в квадрате [2,2], то яма должна быть в квадрате [1,1] или [3,1]. Аналогичным образом устраняется литерал -Р,, в высказывании Я1? противоположный литералу Р,, в высказывании К]б, что приводит к получению высказывания ^17: Л.Р Словами ход этих рассуждений можно выразить так: если в одном из квадратов [1,1] и [3,1] есть яма, но ее нет в квадрате [1,1], то она находится в квадрате [3,1].
Эти два последних этапа логического вывода представляют собой примеры прави- ла логического вывода, называемого ► единичной резолюцией: 1,У---У1,, т ^У-^^У^У-У^’ где каждое из выражений I представляет собой литерал, а выражения и т явля- ются ► взаимно обратными литералами (т.е. один из них является отрицанием другого). Таким образом, в правиле единичной резолюции берется ► выражение (дизъюнкция литералов) и еще один литерал, после чего формируется новое вы- ражение. Обратите внимание, что этот единственный литерал может рассматри- ваться как дизъюнкция из одного литерала, называемая также ► единичным вы- ражением. Правило единичной резолюции может быть также обобщено до полного ►пра- вила резолюций: __________1,У-У1„ ^У-Уот„_______________ У^У-У^Ущ.У-.Ут^У^У-У^ ’ где С, нт, — взаимно обратные литералы. Это означает, что в правиле резолюций берутся два выражения и вырабатывается новое выражение, содержащее все лите- ралы двух первоначальных выражений, кроме двух взаимно обратных литералов. Например, может иметь место такой логический вывод: ^1,1 V ^3.1 V За один раз можно устранить только одну пару взаимно обратных литералов. На- пример, можно устранить Р и ->Р, чтобы вывести РУ-фУК, ^Р^<2 но невозможно одновременно устранить и Р, и 2, чтобы вывести К. Примене- ние правила резолюций предполагает выполнение еще одного формального тре- бования: результирующее высказывание должно содержать только по одной копии каждого литерала.10 Операция удаления дополнительных копий литералов называ- ется ► факторизацией. Например, после удаления взаимно обратных литералов в выражениях (А V В) и (А V -,В) будет получено выражение (А V А), которое следу- ет сократить до А посредством факторизации. 10 Если некоторое выражение рассматривается как множество литералов, то такое пра- вило сокращения применяется автоматически. Использование для логических выраже- ний системы обозначений в виде множеств позволяет сделать правило резолюций более понятным, но за счет введения дополнительных обозначений.
Непротиворечивость правила резолюции можно легко доказать, рассматривая литерал взаимно обратный литералу т] в другом выражении. Если литерал I, яв- ляется истинным, то литерал л», является ложным, и поэтому выражение тх V • • V /л,., V ш,+| V • • • V т„ должно быть истинным, поскольку дано, что выражение тх V • • V т„ истинно. Если литерал является ложным, то должно быть истин- ным выражение V • • • V V ^,+| V • • • V поскольку дано, что истинно выраже- ние 1Х V • • • V Значит, литерал I, является либо истинным, либо ложным, поэтому справедливо одно или второе из этих заключений, — именно это и утверждается в правиле резолюции. Еще более удивительное свойство правила резолюции состоит в том, что оно образует основу для семейства полных процедур логического вывода. Любой ал- горитм доказательства теорем, основанный на правиле резолюции, позволяет опреде- лить для любых высказываний а и 0 пропозициональной логики истинность утвержде- ния а (= 0. В следующих двух подразделах описано, как правило резолюций может использоваться для этой цели. Конъюнктивная нормальная форма Правило резолюций применяется только к выражениям (т.е. к дизъюнкци- ям литералов), поэтому на первый взгляд оно применимо только к базам зна- ний и запросам, состоящим из таких дизъюнкций. На каком же основании мы утверждаем, что это правило может служить основой процедуры полного логи- ческого вывода для всей логики высказываний? Ответ на этот вопрос состоит в том, что каждое высказывание логики высказываний логически эквивалентно конъ- юнкции выражений. Любое высказывание, представленное как конъюнкция выражений (т.е. дизъ- юнкций литералов), называется высказыванием в ► конъюнктивной нормаль- ной форме, КНФ (рис. 7.12) или ►С1ЧЕ (СощипсПуе Иогта! Рогт). Опишем простую процедуру подобного преобразования, для чего проиллюстрируем ее на преобразовании высказывания Вх | <=> (РХ2 V Р2,) в форму КНФ. Ниже описаны со- ответствующие этапы. 1. Исключаем связку <=>, заменив высказывание а # 0 высказыванием ((а => 0) А (0 =>а): (^1,1 1,2 7,21)) А ((/*! 2 V /*2,1) 2. Исключаем связку =>, заменив высказывание а => 0 высказыванием ->а V 0: (~'5|д V Р| 2 V Р2Х) А (—'(Р| 2 V Р2Х) V Вх (). 3. Конъюнктивная нормальная форма требует, чтобы связка -1 появлялась толь- ко перед литералами, поэтому, как принято называть эту операцию, “введем связку -1 внутрь выражения”, применив, где необходимо, следующие экви- валентности, приведенные на рис. 7.11:
= а (устранение двойного отрицания) -(а Л 3) = V ->(3) (правило де Моргана) -•(а V 3) = (~>а Л -»3) (правило де Моргана) 4. В данном примере требуется применение только одного, последнего, пра- вила: (“•В1 д V РХ 2 V ^2,1) Л ((“|7> 1,2 А “^2,1) V ^1,1)’ 5. В результате получено высказывание, содержащее вложенные связки Л и V, которые применяются к литералам. Используем закон дистрибутивности, приведенный на рис. 7.11, распределив связки V по связкам Л везде, где это возможно: (“1®1,1 V Р 1,2 V Р2>1) Л (“>Р 1>2 V ^1,1) (“^2,1 V ^1,1)' Теперь первоначальное высказывание представлено в форме КНФ как конъюнк- ция трех выражений. Это высказывание стало более сложным для чтения, но зато его можно использовать в качестве входных данных для процедуры резолюции. СКР8еп1епсе —► С1аи$е\ Л • • • Л С1аи$еп С1аи$е —► ЬНегаЦ V • • • V ЬИега1т Рас! —► 8утЬо1 ЬНега1 —► 8утЬо1 | -^8утЬо1 8утЬо1 — Р | 2 | К | ... НогпС1аи8еРогт —► Пе/1пИеС1аи8еРогт | СоаКУаизеРогт Пе/гпИеС1аизеРопп —► Рас! | (8утЬо1\ Л • • • Л 8утЬо1!) => 8утЬо1 Соа1С1аи$еРогт —► (8утЬо1х Л • • • Л ВутЬоЦ) => Ра1$е Рис. 7.12. Грамматика конъюнктивной нормальной формы, выражений Хорна и определенных выражений. Выражение в СКР, такое как -Л V V С, может быть записано в форме определенного выражения в виде А /\ В => С Алгоритм резолюции Процедуры логического вывода, основанные на правиле резолюции, действу- ют с использованием принципа доказательства путем установления противоре- чия, который описывался в начале раздела 7.5. Таким образом, чтобы показать, что КВ |= а, мы покажем, что высказывание (КВ Л -»а) является невыполнимым. Это можно сделать, доказав, что имеет место противоречие. Алгоритм резолюции приведен на рис. 7.13. Вначале высказывание (КВ Л ->а) преобразуется в КНФ, а затем к полученным выражениям применяется правило резолюций. В каждой паре выражений, содержащих взаимно противоположные
литералы, происходит удаление этих противоположных друг другу литералов для получения нового выражения, которое добавляется к множеству существующих выражений, если в этом множестве еще нет такого выражения. Указанный процесс продолжается до тех пор, пока не происходит одно из следующих двух событий: • больше не вырабатываются какие-либо новые выражения, которые можно было бы добавить к имеющимся, и в этом случае из базы знаний КВ не сле- дует высказывание а; • резолюция двух выражений приводит к получению пустого выражения, и в этом случае из базы знаний КВ следует высказывание а. Гипсйоп РЬ-КЕ80ьит101ч(О, а) геСигпз значение 1гие или /а1зе 1приС$: КВ. база знаний, представляет собой высказывание в логике высказываний а, запрос, представляет собой высказывание в логике высказываний с1аше$«— множество выражений, полученное после преобразования высказывания КВ /\ “•о в форму КНФ пехк <— {} луйПе 1гие <1о Гог еасЬ пары выражений С/, С7 ш с1аше$ <1о ге$о1уеп1$ <— РЬ-Ке8ОЬУЕ(С/, С7) И гезЫуеп1з содержит пустое выражение Шеп геШгп 1гие пеху <— пеху Ш гезо1уеп1з И пеху С с1аизез Шеп геШгп /а1зе с1аи$е8 <— с1аизез Ш пеху Рис. 7.13. Простой алгоритм резолюции для логики высказываний. Функция РЬ- КЕ8ОЕУЕ возвращает множество всех возможных выражений, полученных путем устранения противоположных друг другу литералов из двух высказываний, пере- данных ей на входе Пустое выражение (дизъюнкция без дизъюнктов) эквивалентно высказыванию Раке, поскольку дизъюнкция является истинной, только если истинен по мень- шей мере один из ее дизъюнктов. Кроме того, пустое выражение возникает толь- ко после устранения двух взаимно противоположных единичных выражений, та- ких как Р и ->Р. Эту процедуру резолюции можно применить для формирования очень простого логического вывода в мире вампуса. Когда агент находится в квадрате [1,1], он не чувствует ветерка, поэтому в соседних квадратах не может быть ям. Соответству- ющая база знаний имеет следующий вид: КВ = К2 Л К4 = (В1 л о (Р, 2 V Р2>1)) Л и требуется доказать высказывание а, которое, скажем, имеет вид После пре- образования высказывания (КВ Л ->а) в форму КНФ, мы получим все выражения,
показанные в верхней части рис. 7.14. В нижней части этого рисунка показаны выражения, полученные путем устранения противоположных друг другу литера- лов из всех пар выражений, приведенных в верхнем ряду. В конечном счете по- сле резолюции литерала Р12 и противоположного литерала ->Р1 2 будет получено пустое выражение, представленное в виде небольшого пустого квадрата. Анализ рис. 7.14, показывает, что многие этапы резолюции были бессмысленными. На- пример, выражение В, (V -|ДМ V Р12 эквивалентно выражению Тгие V Р12, которое эквивалентно Тгие. Логический вывод, согласно которому выражение Тгие являет- ся истинным, не очень полезен. Поэтому любое выражение, в котором присутству- ют два взаимно дополнительных литерала, может быть отброшено. Рис. 7.14. Частичное применение функции РЬ-КЕ8ОШПОК для формирования про- стого логического вывода в мире вампуса с целью доказательства запроса -Р1>2. Ка- ждое из четырех выражений слева в верхней строке образует пару с каждым из трех оставшихся, и к ним применятся правило резолюций, — результаты представлены в нижней строке. Можно видеть, что пара из третьего и четвертого выражений из верхнего ряда в результате дает выражение 2, которое затем подвергается резо- люции с выражением давая в результате пустое выражение, а это означает, что истинность запроса доказана Полнота резолюции В завершение обсуждения правила резолюции покажем, почему алгоритм РЬ- КЕ8ОШТЮН является полным. Для этого целесообразно ввести понятие ► резолю- циониого замыкания КС(8) множества выражений представляющего собой множество всех выражений, которые могут быть получены путем повторного при- менения правила резолюции к выражениям из множества 8 или к их производным. Резолюционным замыканием является множество выражений, которое вычисляет- ся алгоритмом РЬ-Кезоштюк в качестве окончательного значения переменной сЬаизез. Можно легко показать, что множество КС(8) должно быть конечным, по- скольку, благодаря этапу факторизации, на котором уничтожаются дополнитель- ные копии литералов, количество различных выражений, которые могут быть сформированы из символов Р15..., присутствующих в 5, является конечным. Поэтому алгоритм РЬ-КЕ8ОИ)ТЮН всегда завершает свою работу.
Теорема полноты для правила резолюции в логике высказываний называется ► основной теоремой резолюции: Если множество выражений является невыполнимым, то резолюционное за- мыкание этих выражений содержит пустое выражение. Докажем эту теорему, показав, что справедливо противоположное ей утверждение: если замыкание ЛС(8) не содержит пустое выражение, то множество 8 выполни- мо. В действительности для множества 5 можно создать модель с подходящими истинностными значениями для ..., Рк. Процедура создания такой модели сле- дующая. Для / от 1 до к. - если выражение в множестве РС(8) содержит литерал —•/*, и все другие его литералы являются ложными при данном присваивании, выбранном для Р„..., /\, то литералу Р, присваиваем значение/аке, - в противном случае присваиваем литералу Р, значение 1гие. Эго присваивание Рь--.,Рк является моделью для множества8. Чтобы показать это, предположим обратное — что на каком-то этапе / в процессе выполнения при- сваивание значения Р, приводит к тому, что некоторое выражение С получает зна- чение /аке. Это может произойти, только если все остальные литералы в С уже также получили значение/аке в присваиваниях Р},..., Рь1. Следовательно, выра- жение С должно в этом случае выглядеть либо как (/аке V /аке V • • • /аке V Р,), либо как (/аке V /аке V • • • /аке V ->Р,). Если хотя бы одно из этих двух выраже- ний присутствует в замыкании РС(5), то алгоритм присвоит соответствующее зна- чение 1ги(к для Р„ чтобы С стало истинным, поэтому С может получить значение /аке, только если оба эти выражения присутствуют в КС(8). Теперь, поскольку ЛС(8) является резолюционным замыканием, оно будет со- держать резольвенту этих двух выражений, и у этой резольвенты все литералы уже будут иметь значения/аке после присваиваний Р„..., Р,_р А это противоречит нашему исходному предположению, что первое выражение со значением /аке по- является на этапе I. Таким образом, мы доказали, что предложенное построение не приведет к появлению выражения со значением/аке в замыкании РС(8), т.е. оно создает модель для КС(8). И наконец, поскольку множество 5 содержится в замы- кании КС(8), любая модель для КС(8) представляет собой модель и для собствен- но 5. 7.5.3. Хорновские выражения и определенные выражения Благодаря своему свойству полноты метод резолюции становится очень важ- ным методом логического вывода. Однако во многих практических ситуациях вся мощь правила резолюции не требуется. Некоторые реальные базы знаний содер- жат высказывания, форма которых отвечает определенным ограничениям, что
позволяет использовать для них более строгие и эффективные алгоритмы логиче- ского вывода. Одной из таких ограниченных форм является ► определенное выражение, со- стоящее из нескольких литералов, среди которых точно один является положи- тельным. Например, выражение д V ^Вгееге V Вхх) является определенным выражением, в то время как (-ьй,, V Рх 2 V Р2>1) — нет, потому в нем присутствуют два положительных выражения. Чуть более общим является ► хорновское выражение, которое представляет собой дизъюнкцию литералов, среди которых положительным является не больше чем один. Таким образом, все определенные выражения являются хорновскими выражениями, как и выражения без положительных литералов; это так называе- мые ► выражения без заголовка. Хорновские выражения являются резолюцион- но замкнутыми: если применить резолюцию к двум хорновским выражениям, бу- дет получено также хорновское выражение. Еще одним классом являются А:-СКР высказывания, представляющие собой высказывания в форме КНФ, в которых ка- ждое выражение имеет не более к литералов. Базы знаний, содержащие только определенные выражения, интересны по трем причинам. 1. Каждое определенное выражение может быть записано как импликация, предпосылкой которой является конъюнкция положительных литералов, а заключением — один положительный литерал (см. упр. 7.16). Например, определенное выражение (—V ^Вгееге V Вхх) может быть записано как импликация (Ьхх Л Вгеехё) Вхх. В этой последней форме данное выска- зывание становится более легким для чтения: в нем утверждается, что если агент находится в квадрате [1,1] и чувствует ветерок, то ветерок чувствует- ся в квадрате [1,1]. В хорновском выражении предпосылку называют ► те- лом выражения, а заключение (положительный литерал)— ► головой. Вы- сказывание, состоящее из одного положительного литерала, такого как Ьх „ называют ► фактом. Его также можно записать в форме импликации как Тгие => ЬХЛ, но проще написать просто Ьхх. 2. Логический вывод с использованием хорновских выражений может осу- ществляться с помощью алгоритма Упрямого логического вывода и ► об- ратного логического вывода, которые рассматриваются ниже. Оба эти алгоритма являются очень естественными в том смысле, что этапы логиче- ского вывода являются для людей очевидными и за ними можно легко про- следить. Этот тип логического вывода является основой для логического программирования, которое будет обсуждаться в главе 9. 3. Получение логических следствий с помощью хорновских выражений может осуществляться за время, линейно зависящее от размера базы знаний. Этот последний факт является особенно приятным сюрпризом.
7.5.4. Прямой и обратный логический вывод Алгоритм прямого логического вывода РЬ-РС-Ента1Е8?(АБ, (?) определяет, сле- дует ли единственный пропозициональный символ д — запрос — из базы знаний, представленной в форме определенных выражений. Он начинает работу с извест- ных фактов (положительных литералов) в базе знаний. Если известны все предпо- сылки некоторой импликации, то ее заключение добавляется к множеству извест- ных фактов. Например, если известны факты Ьхх и Вгеехе. а в базе знаний имеется выражение (Ьх 1А Вгеехе) => Вх „ то к ней можно добавить факт Вх Р Этот процесс продолжается до тех пор, пока запрос д не будет добавлен к базе знаний или осу- ществление дальнейшего логического вывода станется невозможным. Этот алго- ритм приведен на рис. 7.15, и главное, что следует о нем помнить, — это то, что он выполняется за время, определяемое линейной зависимостью. Лучший способ понять этот алгоритм — рассмотреть пример и иллюстра- цию. На рис. 7.16, а показана простая база знаний из хорновских выражений, со- держащая выражения А и В как известные факты. На рис. 7.16, б приведена та же база знаний, изображенная в виде графа И-ИЛИ (см. раздел 4.3.2). В графах И-ИЛИ несколько ребер, соединенных отрезком дуги, обозначают конъюнкцию (в них необходимо доказать истинность каждого ребра), а несколько ребер, не соединенных друг с другом, обозначают дизъюнкцию (достаточно доказать ис- тинность любого из этих ребер). На этом графе очень просто проанализировать, как действует алгоритм прямого логического вывода. Сначала устанавливаются значения известных листовых узлов (в данном случае это А и В), а затем процесс логического вывода распространяется вверх по графу до тех пор, пока это воз- можно. При появлении любой конъюнкции процесс распространения останав- ливается и ожидает до тех пор, пока все конъюнкты не становятся известными, и только после этого продолжается. Рекомендуем читателю подробно прорабо- тать этот пример. Легко убедиться, что алгоритм прямого логического вывода является непро- тиворечивым: каждый этап логического вывода по сути представляет собой при- менение правила отделения. Кроме того, алгоритм прямого логического вывода является полным: в нем может быть получено каждое атомарное высказывание, которое следует из базы знаний. Проще всего в этом можно убедиться, рассмотрев заключительное состояние таблицы т/еггес! (после того, как этот алгоритм достиг- нет фиксированной точки, в которой становятся невозможными какие-либо новые этапы логического вывода). Эта таблица содержит значение 1гие для каждого сим- вола, выведенного логическим путем в течение этого процесса, и/а1зе — для всех других символов. Эта таблица может рассматриваться как логическая модель; бо- лее того, каждое определенное выражение в первоначальной базе знаний КВ являет- ся истинным в данной модели.
ГипсСюп РЕ-ЕС-ЕЫТЛ1Ь8?(^, д) геШгпз значение 1гие или/а1$е 1приС$: КВ, база знаний, множество определенных пропозициональных выражений д, запрос, пропозициональный символ соип1«— таблица, где соии![с] исходно является количеством символов в предпосылке выражения с 1п/егге<1^- таблица, где 1п/еггед[з} исходно имеет значение /а1зе д ля всех символов диеие«— очередь из символов, исходно содержит все символы в КВ, о которых известно, что они истинны чуЫ1е диеие не пуста до р«— Рор(^1/еие) 1Гр = Шеп геШгп 1гие И т/егге<1[р] = /а1зе Шеп т/егтес1[р]«— 1гие Гог еасЬ выражения с в КВ, где предпосылка р присутствует В С.РКЕМ18Е до уменьшить на единицу согм[с] И соип1[с] = 0 Шеп добавить с.Сомсьшюы 1о диеие геШгп /аЬе Рис. 7.15. Алгоритм прямого логического вывода для логики высказываний. В оче- реди диеие хранятся сведения о символах, в отношении которых известно, что они истинны, но которые еще не “обработаны”. В таблице соип1 отслеживается инфор- мация о том, какое количество предпосылок каждой импликации еще не проверено. Каждый раз, когда обрабатывается новый символ р из очереди символов диеие, ко- личество предпосылок в таблице соип! сокращается на единицу для каждой импли- кации, в которой появляется предпосылка р. (Такие импликации могут обнаружи- ваться за постоянное время, если индексация базы знаний КВ выполнена должным образом.) Если счетчик обнуляется, все предпосылки для некоторой импликации оказываются известными, поэтому заключение этой импликации может быть до- бавлено в очередь диеие. И наконец, необходимо следить за тем, какие символы уже были обработаны: символ, выведенный логическим путем, не следует еще раз до- бавлять в очередь диеие, если он уже был обработан. Это позволяет избежать из- лишней работы, а также предотвращает возникновение бесконечных циклов, кото- рые могут быть вызваны наличием таких импликаций, как Р => 0, и 0, => Р Чтобы убедиться в этом, предположим обратное, а именно — что некоторое выражение а{/\ • • Ла* => Ь из базы знаний является ложным в этой модели. Тогда в этой модели выражение а у • • \/ак должно быть истинным и в ней же выраже- ние Ь должно быть ложным. Но это противоречит нашему предположению о том, что алгоритм достиг фиксированной точки! Поэтому можно сделать вывод, что множество атомарных высказываний, полученное логическим путем к моменту
достижения фиксированной точки, определяет модель первоначальной базы зна- ний КВ. Более того, любое атомарное высказывание <?, которое следует из базы знаний КВ, должно быть истинным во всех ее моделях, а также, в частности, в данной модели. Итак, любое высказывание д, которое следует из базы знаний, должно быть выведено логически данным алгоритмом. Р в ьлм => Р в\ь^ м А\Р => 1 А А В => Ь А В а) Рис. 7.16. а) Множество хорновских выражений, б) Соответствующий И-ИЛИ-граф Прямой логический вывод представляет собой пример применения общего по- нятия логических ► рассуждений, управляемых данными, т.е. рассуждений, в которых внимание вначале сосредоточено на известных данных. Прямой логи- ческий вывод может использоваться в любом агенте для получения заключений на основе поступающих результатов восприятия, часто даже без учета какого-ли- бо конкретного запроса. Например, агент для мира вампуса может сообщать с по- мощью операции Теьь результаты своих восприятий базе знаний с использова- нием инкрементного алгоритма прямого логического вывода, в котором новые факты могут добавляться в очередь диеие для инициализации новых процессов логического вывода. У людей формирование рассуждений, управляемых данными, в определенной степени происходит по мере поступления новой информации. На- пример, находясь дома и услышав, что пошел дождь, человек, который собирался на пикник, может прийти к заключению, что его придется отменить. Но такое ре- шение вряд ли будет принято, если он узнает лишь то, что семнадцатый лепесток самой крупной розы в саду его соседа оказался мокрым; люди держат процессы прямого логического вывода под тщательным контролем, поскольку в противном случае их просто затопил бы поток несущественных, не относящихся к делу логи- ческих заключений.
Алгоритм обратного логического вывода, как указывает само его название, действует в обратном направлении от запроса. Если окажется возможным сразу же узнать, что высказывание в запросе д истинно, то никакой работы выполнять не потребуется. В противном случае алгоритм находит те импликации в базе зна- ний, из которых следует д. Если можно доказать, что все предпосылки одной из этих импликаций являются истинными (с помощью обратного логического вы- вода), то высказывание д также будет истинным. Будучи примененным к запро- су 0, показанному на рис. 7.16, этот алгоритм будет проходить вниз по графу до тех пор, пока не достигнет множества известных фактов, А и В, образующих ос- нову для доказательства. Этот алгоритм по существу идентичен алгоритму Аю- Ок-6карн-8еаксн (см. рис. 4.11). Как и в случае алгоритма прямого логическо- го вывода, эффективная реализация этого алгоритма выполняет свою работу за линейное время. Обратный логический вывод представляет собой одну из форм ► рассужде- ний, направляемых целями. Такая форма будет полезна при получении ответов на конкретные вопросы, подобные следующим: “Что я сейчас должен сделать?” и “Где находятся мои ключи?” Зачастую стоимость обратного логического выво- да намного меньше по сравнению со стоимостью, линейно зависящей от размера базы знаний, поскольку в этом процессе затрагиваются только факты, непосред- ственно относящиеся к делу. 7.6. Эффективный пропозициональный логический вывод_______________________________________________ В этом разделе рассматриваются два семейства эффективных алгоритмов ло- гического вывода, построенных на проверке пропозициональной модели: один подход основан на поиске с возвратами, а другой — на поиске восхождением к вершине. Эти алгоритмы входят в состав основного “инструментария” логики вы- сказываний. Данный раздел может быть пропущен при первом чтении этой главы. Рассматриваемые здесь алгоритмы предназначены для проверки выполнимо- сти — это так называемые задачи 8 АТ. (Как отмечалось в разделе 7.5, проверка логического следствия а |= 3 может быть проведена посредством проверки не- выполнимости высказывания а Л -10.) Выше уже отмечалась связь между поис- ком модели, обеспечивающей выполнимость логического высказывания, и поис- ком решения задачи удовлетворения ограничения, поэтому, вероятно, нет ничего удивительного в том, что эти два семейства алгоритмов весьма напоминают ал- горитмы поиска с возвратами, описанные в разделе 6.3, и алгоритмы локаль- ного поиска, которые представлены в разделе 6.4. Тем не менее приведенные здесь алгоритмы являются чрезвычайно важными сами по себе, поскольку в ком- пьютерных науках существует очень много комбинаторных задач, которые мож- но свести к проверке выполнимости пропозиционального высказывания. Любое
усовершенствование алгоритмов проверки выполнимости будет иметь очень се- рьезные последствия в отношении повышения нашей способности справляться со сложностью в целом. 7.6.1. Полный алгоритм поиска с возвратами Первый рассматриваемый здесь алгоритм часто называют ► алгоритмом Дэ- виса-Патнема в честь авторов известной статьи, в которой он был опубликован, Мартина Дэвиса и Хилари Патнема ([544], 1960). Затем этот алгоритм фактически стал одной из версий, описанных Дэвисом, Логеманом и Лавлендом ([543], 1962), поэтому мы будем называть его ПРЬЬ по первым буквам фамилий всех четырех авторов. Алгоритм ОРЬЬ принимает на входе некоторое высказывание в конъюн- ктивной нормальной форме — высказывание, представленное как множество вы- ражений. Как и алгоритмы Васктваскичо-8еаксн и ТТ-Еыта1Е8?, он фактически выполняет рекурсивный перебор в глубину всех возможных моделей. В этом алго- ритме реализованы три описанных ниже усовершенствования, и этим он отлича- ется от простой схемы, применяемой в алгоритме ТТ-Емта1Ь8?. • Раннее завершение. Алгоритм обнаруживает, должно ли данное высказы- вание быть истинным или ложным, даже с помощью частично завершен- ной модели. Выражение является истинным, если истинен любой его лите- рал, — даже в том случае, когда для других литералов еще не определены истинностные значения. Поэтому об истинности всего высказывания в це- лом можно судить еще до того, как модель будет составлена полностью. Например, высказывание (А V В) Л (А V С) является истинным, если исти- нен литерал А, независимо от значений литералов В и С. Аналогичным об- разом высказывание является ложным, если ложно любое его выражение, а это происходит, если каждый литерал этого выражения является ложным. Опять-таки, такая ситуация может возникнуть задолго до того, как модель будет полностью составлена. Раннее завершение позволяет обойтись без ис- следования целых поддеревьев в пространстве поиска. • Эвристика чистого символа. ► Чистым символом называется символ, ко- торый всегда появляется с одним и тем же “знаком” во всех выражениях. Например, в трех выражениях, (А V ->В), (~>В V тС) и (С V А), символ А яв- ляется чистым, поскольку он появляется только в виде положительных лите- ралов. Чистым также можно считать символ В, который появляется только в виде отрицательных литералов, а символ С считается нечистым. Можно лег- ко показать, что если некоторое высказывание имеет модель, то это модель с чистыми символами, значения которым присвоены так, чтобы их литералы приняли значение 1гие, поскольку при таком условии ни одно выражение не может стать ложным. Следует отметить, что при определении чистоты сим- вола алгоритм может игнорировать выражения, в отношении которых уже
известно, что они истинны в модели, составленной до сих пор. Например, если модель содержит присваивание В = /а1зе, то выражение (->/? V ->С) уже является истинным, поэтому в оставшемся выражении (С V А) символ С, присутствующий в нем как положительный, воспринимается как чистый. • Эвристика единичного выражения. Единичное выражение было определе- но ранее как выражение только с одним литералом. В контексте алгоритма □РЬЬ это определение также относится к выражениям, для которых в дан- ной модели всем их литералам, кроме одного, уже было присвоено значение /а1зе. Например, если модель содержит присваивание В=1гие, то выражение (->В V ~>С) воспринимается как единичное выражение, поскольку оно экви- валентно выражению -С. Очевидно, для того, чтобы это выражение приня- ло истинное значение, литералу С должно быть присвоено значение /а1зе. Эвристика единичного выражения предусматривает присваивание значений всем таким символам до того, как происходит переход к обработке остав- шейся части высказывания. Одним из важных следствий из этой эвристи- ки является то, что любая попытка доказать (путем опровержения) истин- ность литерала, который уже находится в базе знаний, немедленно приводит к успеху (см. упр. 7.29). Следует также отметить, что присваивание значе- ния одному единичному выражению может привести к созданию еще одного единичного выражения; например, после присваивания символу С значения /а1зе единичным становится выражение (С V А), что влечет за собой при- сваивание истинного значения символу А. Такое “каскадное” распростра- нение форсированных присваиваний называется к распространением еди- ничных выражений. Оно напоминает процесс прямого логического вывода с применением определенных выражений, и в действительности, если рас- сматриваемое высказывание в конъюнктивной нормальной форме содержит только определенные выражения, то алгоритм ОРЬЬ, по сути, сводится к ал- горитму прямого логического вывода (см. упражнение 7.30). Алгоритм ВРЬЬ, приведенный на рис. 7.17, представляет лишь основной меха- низм процесса поиска, без уточнения деталей реализации. На рис. 7.17 не представлены все хитрости, которые позволяют решателям 8АТ успешно справляться с большими задачами. Интересно, что большинство из этих хитростей на самом деле носят довольно общий характер и мы уже встречались с ними раньше в других ипостасях. 1. Выделение компонентов (как в случае с Тасманией в задаче УО). Когда алгоритм ОРЕХ присваивает истинностные значения переменным, множе- ство выражений может оказаться разделенным на непересекающиеся под- множества, называемые компонентами, не имеющими общих неназначен- ных переменных. При наличии эффективного способа выявления подобных ситуаций решатель может получить значительный выигрыш в скорости, об- рабатывая каждый компонент независимо от других.
ГипсНоп ВРЬЬ-8ат18Р1АВЬЕ?(5) геШгпз значение 1гие или/а!зе вприЬ: 5, высказывание пропозициональной логики с1аизез <— множество выражений высказывания 5, преобразованного в форму представления СЫГ зутЬо1з <— список пропозициональных символов в высказывании 5 геШгп ВРЬЬ(с/ам5е5, зутЬо1з, {}) ГипсНоп ВРЬЬ(с/ам5в5, зутЬо1з, то<1еГ) геШгпз значение 1гие или /а1зе И каждое выражение в множестве с1аизез имеет значение 1гие в модели тос1е1 Шеп геШгп 1гие И какое-то выражение в множестве с1аизез имеет значение/а1зе в модели тос1е1 Шеп геШгп/а1зе Р, уа1ие <— Г1ЫО-РикЕ-8умвоь(5у^о/5, с1аизез, тос1е1) 1Г значение Р не является пустым Шеп геШгп ВРЬЬ(с/ам5е5, зутЬо1з - Р, то<1е1 Ш {Р = уа1ие}) Р, уа1ие <— Р1НО-ик1Т-СьАи8Е(с/ам5е5, то<1еГ) И значение Р не является пустым Шеп геШгп ВРЬЬ(с/ам5е5, зутЬо1з -Р, тос1е1 Ш {Р = уа1ие}) Р <— ^\К8Т(зутЬо1з); гез1 <— КЕ&Т^зутЬок) геШгп ВРЬЬ(с/ам5е5, гез1, тос1е1 Ш {Р = 1гие}) ог ВРЬЬ(с/ам5е5, ге$1, то<1е1 Ш {Р = /а1зе})) Рис. 7.17. Алгоритм ОРЬЬ для проверки выполнимости высказывания в логике вы- сказываний. Принципы работы функций Р1КО-РиКЕ-8УМВОЬ и Р1КО-имТ-СЬА118Е описаны в тексте; каждая из них возвращает символ (или пустое значение), а также истинностное значение, которое должно быть присвоено этому символу. Как и ал- горитм ТТ-ЕЫТА1Е8?, этот алгоритм работает с частично составленными моделями 2. Упорядочение переменных и значений (как это делалось в отношении за- дач УО). В нашей простой реализации алгоритма ВРЬЬ переменные выби- раются в произвольном порядке и значение 1гие всегда проверяется перед значением/а1зе. Степенная эвристика (см. раздел 6.3.1) предлагает выби- рать переменную, которая чаще других появляется во всех оставшихся вы- ражениях. 3. Интеллектуальный поиск с возвратами (см. раздел 6.3.3 применительно к задачам УО). Многие задачи, которые часами не удается решить с исполь- зованием алгоритмов с хронологическим возвратом, могут быть решены за считанные секунды методом интеллектуального поиска с возвратами, вы- полняющего откат вплоть до релевантной точки конфликта. Все решатели 8АТ, применяющие интеллектуальный поиск с возвратами, используют ту или иную форму определения конфликтных выражений с помощью обу- чения для запоминания сведений о конфликтах, что позволяет избежать их
повторения и необходимости отката в последующем поиске. Обычно сохра- няется ограниченное количество записей о конфликтах, и те из них, которые используются редко, со временем отбрасываются. 4. Случайный перезапуск (см. раздел 4.1.1 применительно к поиску восхож- дением к вершине). Иногда ход расчетов не дает необходимого прогресса и в этом случае может оказаться полезнее начать поиск заново, вернувшись к вершине поискового дерева, а не продолжать попытки достичь результатов из текущей позиции. После перезапуска выполняются другие случайные вы- боры (в отношении переменной и значения). Выражения, которые уже были изучены при первом прогоне, сохраняются и после перезапуска, посколь- ку могут оказаться полезными для отсечения ветвей в пространстве поиска. Перезапуск не гарантирует, что решение будет найдено быстрее, но позволя- ет уменьшить разброс времени выполнения поиска решения. 5. Разумное индексирование (применяется во многих алгоритмах). Методы ускорения, используемые в самом алгоритме ОРЬЬ, как и упомянутые выше приемы, используемые в современных решателях, требуют быстрого поис- ка, а значит, эффективной индексации таких вещей, как “множество выра- жений, в которых переменная Х{ выглядит как положительный литерал”. Эта задача усложняется тем фактом, что алгоритмам нужны лишь те выражения, которые еще не были удовлетворены предыдущими присваиваниями пере- менных, а это значит, что индексируемые структуры должны позволять ди- намическое обновление по ходу выполнения расчетов. С помощью этих улучшений современные решатели могут успешно работать с задачами, включающими десятки миллионов переменных. Их появление имело следствием настоящую революцию в таких областях, как верификация аппаратных средств и проверка протоколов безопасности, которые ранее требовали трудоем- ких ручных доказательств. 7.6.2. Алгоритмы локального поиска В данной книге уже было представлено несколько алгоритмов локального по- иска, включая алгоритмы Н1ьь-Сымв1кс (раздел 4.1.1) и 81миЕАТЕО-АННЕАЬ^с (раздел 4.1.2). Эти алгоритмы могут непосредственно применяться для решения задач проверки выполнимости, при условии, что будет выбрана правильная функ- ция оценки. Поскольку цель состоит в том, чтобы найти присваивание, обеспе- чивающее выполнение каждого выражения, для этой цели может использовать- ся любая функция оценки, которая подсчитывает количество невыполненных выражений. Фактически именно этот критерий и применяется в алгоритме Мпч- Соигыстз для задач УО (раздел 6.4). Все эти алгоритмы выполняются в простран- стве полных присваиваний, на каждом этапе меняя на противоположное (инверти- руя) истинностное значение одного символа. Это пространство обычно содержит
много локальных минимумов, для выхода из которых требуются различные фор- мы рандомизации. В последние годы было проведено множество экспериментов с тем, чтобы можно было найти приемлемый компромисс между стремлением к “жадному” выбору наилучшего преемника и необходимостью случайного выбора очередного преемника Одним из простейших и наиболее эффективных алгоритмов, которые были созданы в результате всей этой работы, является алгоритм, получивший название \Уаьк8АТ (рис. 7.18). При каждой итерации этот алгоритм выбирает одно невы- полненное выражение, а затем в этом выражении выбирается один символ для инвертирования. При этом алгоритм случайным образом переключается между двумя способами выбора символа для инвертирования: первый — это вариант с “минимизацией конфликтов”, в котором минимизируется количество невыполнен- ных выражений в новом состоянии, а второй — вариант “случайного перехода”, в котором один из символов выбирается случайным образом. ГипсНоп \Ульк8АТ(с/ам5е5,р, тах^Ирз) геСигпз модель то<1еЦ выполняющую высказывание, или значение /аИиге 1приС$: сГаизез, множество выражений пропозициональной логики р, вероятность выбора для этапа варианта “случайного перехода”, обычно около 0,5 тах^Нрз, количество инверсий, которые допускается выполнить, прежде чем отказаться от дальнейших попыток тос1е1«— случайно выбранное присваивание значений 1гие//а1зе символам в множестве с1аизез Гог еасЬ / = 1 Со тах_/Ирз до И при модели то<1е1 множество с1аизез выполняется СЬеп геСигп то<1е1 с1аизе <— выбранное случайным образом из множества с1аизез выражение, имеющее значение /а1зе в модели тос1е1 ИКамоом(0, 1) < р СЬеп в модели то<1е1 инвертировать значение символа, случайным образом выбранного в множестве с1аизе е!$е в множестве сГаизе инвертировать значение того символа, при выборе которого максимизируется количество выполненных выражений геШгп /аИиге Рис. 7.18. Алгоритм \УАЬК$АТ для проверки выполнимости путем инвертирова- ния случайным образом значений переменных. Существует много версий этого ал- горитма Когда алгоритм \Уа1к8АТ, возвращает некоторую модель, то входное высказы- вание действительно является выполнимым. Однако, когда он возвращает
индикатор неудачи/аИиге, у этого могут быть две причины: либо высказывание невыполнимо, либо алгоритму требуется больше времени, чтобы добиться успеха. Если задать тах_уНрз =°° ир>0, алгоритм УУаькЗАТ в конечном итоге вернет ка- кую-то модель (если она существует), поскольку на этапах случайного перемеще- ния рано или поздно произойдет попадание в решение. К сожалению, если пара- метр тах_уИр$ имеет бесконечно большое значение, а высказывание является невыполнимым, этот алгоритм никогда не закончит своей работы! По этой причине алгоритм УУаькЗАТ является наиболее полезным, когда мож- но с уверенностью полагать, что решение существует, например задачи, рассма- тривавшиеся в главах 3 и 6, как правило, имеют решения. С другой стороны, ал- горитм УУаькЗАТ не всегда может обнаружить невыполнимость, а именно это и требуется, когда задача заключается в определении, следует ли какое-то высказы- вание из базы знаний. Например, агент не может надежно использовать алгоритм \Уаьк8АТ для доказательства, что некоторый квадрат в мире вампуса является без- опасным. Вместо этого он может лишь утверждать: “Я размышлял об этом в те- чение часа, но так и не смог найти хотя бы один из возможных миров, в котором данный квадрат нельзя считать безопасным”. Это можно считать хорошим эмпи- рическим показателем безопасности данного квадрата, но все же это не является доказательством. 7.6.3. Трудные задачи определения выполнимости Одни задачи 8АТ сложнее, чем другие, и именно они представляют наиболь- ший интерес, поскольку легкие могут быть решены с помощью любого старого ал- горитма. Однако нам уже известно, что задачи 8АТ относятся к классу КР-полных, и по крайней мере некоторые их экземпляры должны требовать экспоненциально- го времени выполнения. В главе 6 говорилось о некоторых удивительных откры- тиях в области решения задач определенного типа. Так, задача с п ферзями, кото- рая воспринималась как весьма сложная при ее решении с помощью алгоритмов поиска с возвратами, оказалась тривиально простой для методов локального по- иска, таких как метод минимальных конфликтов. Это связано с тем, что решения этой задачи распределены в пространстве присваиваний очень плотно и для любо- го начального присваивания гарантируется, что решение находится где-то рядом. Таким образом, задача с п ферзями является простой потому, что она ►недоста- точно ограниченна. Если говорить о решении задач проверки выполнимости, представленных в конъюнктивной нормальной форме, то среди них недостаточно ограниченными можно считать такие задачи, которые содержат относительно немного выражений, ограничивающих значения переменных. Например, ниже представлено сформи- рованное случайным образом высказывание в форме 3-СКР с пятью символами и пятью выражениями:
(-Р V V С) А (В V V ->С) А (~>С V -<В V Е) /\ (Е V V В)/\ (В V Е V ~>С). Моделями этого высказывания являются 16 из 32 возможных вариантов при- сваивания, поэтому в среднем для поиска модели потребуются только две слу- чайно выбранные гипотезы. Эго пример легко решаемой задачи проверки выпол- нимости, какими является большинство подобных недостаточно ограниченных задач. С другой стороны, чрезмерно ограниченные задачи содержат много выраже- ний по отношению к количеству переменных и с большой вероятностью не имеют решений. Чрезмерно ограниченные задачи также часто решаются очень легко, по- скольку избыток ограничений либо быстро приводит алгоритм к решению, либо заводит его в тупик, из которого нет выхода. Чтобы выйти за рамки этих основных интуитивных представлений, необходи- мо точно определить, как генерируются случайные высказывания. Введем обозна- чение СМЕк(т, п), определяющее высказывание в форме к-С№ с т выражениями и п символами, где выражения выбираются единообразно, независимо друг от друга и без замены из числа всех выражений с к различными литералами, которые слу- чайным образом будут определены как положительные или отрицательные. (Лю- бой символ не может дважды появляться в выражении, также как и любое выраже- ние не может дважды появляться в высказывании.) После определения подобным образом источника случайных высказываний появляется возможность измерить вероятность их выполнимости. На рис. 7.19, а представлена вероятность того, что случайно сформированное высказывание в форме С№3(т, 50) является выполнимым как функция от отношения “выраже- ние/символ”, т/п, при постоянном значении п, равном 50, и выражениях из трех литералов. Как и следовало ожидать, при малых значениях т/п эта вероятность близка к 1, а при больших значениях т/п вероятность близка к 0. На кривой веро- ятности довольно резкий спад начинается приблизительно после достижения зна- чения ш/л=4,3. Эмпирически было обнаружено, что по мере увеличения значения п этот “крутой обрыв” остается примерно на том же месте (для к = 3) и становит- ся все круче с ростом п. Теоретически ► теорема критической точки выполнимости утверждает, что для любых к^З существует пороговое значение отношения такое, что по мере увеличения значения п в пределе до бесконечности вероятность того, что высказы- вание СЕ/Ек(т, п) будет выполнимым, стремится к 1 для всех значений г ниже это- го порогового значения и стремится к 0 для всех значений г выше его. Эта гипоте- за остается недоказанной даже для особых случаев, таких как к= 3. Но независимо от того, можно ли считать это утверждение теоремой, данный вид порогового эф- фекта, безусловно, является распространенным явлением как для задач выполни- мости, так и для других типов ЫР-сложных задач.
Рис. 7.19. а) График вероятности того, что случайно сформированное высказыва- ние в форме 3-СКР с количеством символов п=50 окажется выполнимым как функ- ция от отношения “выражения/символы”, т!п. б) График усредненного времени выполнения (измеряемого в количестве итераций) алгоритмов ОРЬЬ и \УАЕК$АТ для сформированных случайным образом высказываний в форме 3-СКЕ Наиболее сложные задачи имеют отношение “выражения/символы” в районе значения 4,3 Отношение “выражения/символы”, т/п б) Теперь, когда у нас есть хорошая идея, где находятся выполнимые и невыпол- нимые задачи, возникает следующий вопрос: а где искать трудные проблемы? Оказывается, что они также часто находятся вблизи критической точки выполни- мости. На рис. 7.19, б показано, что задачи с 50 символами и значением г в райо- не порогового значения 4,3 решить примерно в 20 раз труднее, чем те, у которых соотношение г равно 3,3. Недостаточно ограниченные задачи решить проще все- го (потому что очень легко просто угадать решение); чрезмерно ограниченные за- дачи решаются не так легко, как недостаточно ограниченные, но все же намного легче тех, которые имеют показатель г в непосредственной близости к критиче- ской точке. 7.7. Агенты, основанные на логике высказываний В данном разделе собирается воедино все, что было описано до сих пор с це- лью разработки агентов для мира вампуса, действующих с использованием логи- ки высказываний. На первом этапе агент получит способность делать выводы о состоянии мира, — насколько это возможно, исходя из истории его восприятий. Это потребует записи полной логической модели результатов действий агента. Да- лее будет показано, как агент может использовать логический вывод в мире вам- пуса, а также как он может эффективно хранить информацию о своих действиях в этом мире, не возвращаясь к полной истории восприятий при каждом выводе.
В завершение будет показано, как агент может использовать логический вывод для разработки планов, гарантирующих достижение его целей при условии, что его база знаний верна по отношению к реальному миру. 7.7.1. Определение текущего состояния мира Как указывалось в начале главы, логический агент действует, принимая реше- ние о том, как ему поступить, посредством логического вывода из базы знаний, состоящей из высказываний о состоянии мира. База знаний включает аксиомы — общие знания о том, как устроен мир — и высказывания о восприятии, сформиро- ванные на основании опыта агента в данном конкретном мире. В этом разделе мы сосредоточимся на задаче определения текущего состояния мира вампуса — где я нахожусь, безопасен ли данный квадрат и т.д. Начнем с набора аксиом, определенных в разделе 7.4.3. Агент знает, что в квад- рате [1,1] нет ямы (-л?!л) или вампуса Также он знает, что ветерок в квадра- те может ощущаться тогда и только тогда, когда в соседнем квадрате есть яма, а неприятный запах в квадрате может быть тогда и только тогда, когда в соседнем квадрате находится вампус. Следовательно, в базу также нужно включить большое множество высказываний следующего вида: В\ 1 о (Р\>2 V Р2)); Агент также знает, что в мире вампуса существует точно один вампус. Соответ- ствующее высказывание состоит из двух частей. Прежде всего необходимо ука- зать, что имеется самое меньшее один вампус: Далее необходимо указать, что существует самое большее один вампус. Для этого для каждой пары квадратов в базу добавляется высказывание о том, что хотя бы один из них обязательно должен быть без вампуса: -^1,1 V -^4.3 V -И\4. Пока все хорошо. Теперь давайте рассмотрим восприятие агента. Для указания на наличие неприятного запаха в квадрате [1,1] выше использовалось высказы- вание 5,но можно ли для этой цели воспользоваться единственным высказыва- нием о чистом восприятии 81епсИ, означающем, что агент воспринимает непри- ятный запах? К сожалению, это невозможно: если на предыдущем по времени этапе восприятие неприятного запаха отсутствовало, то это уже было бы отмечено
утверждением -Меиск и новое утверждение 8(епск просто привело бы к противо- речию. Эту проблему можно устранить, если прийти к заключению, что восприя- тие утверждает что-то только о текущем моменте времени. Следовательно, если данный момент является четвертым интервалом времени, то в базу данных можно добавить утверждение 81епск\ а не просто 81епск (как и реализовано в функции Маке-Рексерт-Зеытеысе на рис. 7.1), что позволит ловко избежать какого-либо противоречия с утверждением -81епск\ Тот же самый подход можно использовать в отношении восприятия ветерка, удара, блеска и крика. Идею связать высказывания с моментами времени можно распространить на любой аспект мира, который изменяется во времени. Например, база знаний в ис- ходном состоянии должна включать высказывания А,, — агент находится в ква- драте [1,1] в момент времени 0, — а также Еас1п%Еа$1й, НачеАггом* и Фшприз- А1п>е°. Ниже для ссылок на аспекты мира, которые изменяются во времени, мы будем использовать слово ► флюента (от лат./7иеш — текущий, изменчивый). Здесь “флюента” — это синоним понятия “переменная состояния” в том смысле, как оно было определено при обсуждении особенностей развернутого представле- ния состояний в разделе 2.4.7. Символы, связанные с постоянными аспектами мира, не нуждаются в дополнительном верхнем индексе, определяющем конкрет- ный момент времени, поэтому иногда их называют ► вневременными перемен- ными. Теперь прямые восприятия Ьгееге и з1епск можно связать непосредственно со свойствами тех квадратов, где они будут иметь место." Для любого момента вре- мени / и любого квадрата [х, у] можно утверждать следующее: ^ху => (Вгееге 44 5^); А,> => (81епск1 44 8Х^. Теперь, конечно же, нам нужны аксиомы, которые позволят агенту отслеживать значения флюент, таких как Их у. Все эти флюенты изменяют свои значения в ре- зультате действий, предпринятых агентом, поэтому, в терминологии главы 3, нам необходимо записать функцию определения преемника в мире вампуса, пред- ставленную в виде множества логических высказываний. Прежде всего нам потребуются препозиционные символы для представления выполняемых действий. Как и в случае с восприятием, эти символы должны ин- дексироваться по времени, поэтому утверждение Гогмапс? будет означать, что агент выполнил действие Еогучагс! в момент времени 0. По соглашению на опреде- ленном временном этапе сначала происходит восприятие, затем выполняется дей- ствие этого этапа, после чего осуществляется переход к следующему временному этапу. 11 В разделе 7.4.3 нам было удобнее умолчать об этих требованиях.
Чтобы описать, как меняется мир, можно попробовать записать ► аксиомы эф- фектов, которые будут определять результат некоторого действия для следующего момента времени. Например, если в момент времени 0 агент находится в квадрате [1,1], смотрит в восточном направлении и выполняет действие Рогл>ап1 (идти впе- ред), то в результате его выполнения агент будет находиться в квадрате [2,1] и боль- ше не будет находиться в квадрате [1,1]. Эго можно выразить следующим образом. I?! А Раст^ЕазТ0 А РогыапР =$ (1'21 А -> 1\ ।) (7.1) Нам потребуется по одному подобному высказыванию для каждого возможного момента времени, для каждого из 16 квадратов и для каждой из четырех возмож- ных ориентаций агента в квадрате. Аналогичные высказывания нужно будет пре- доставить и для других действий: ОгаЬ, 8коо1, СИтЬ, Тит1е/( и ТигпШ^к. Предположим, что в момент времени 0 агент принял решение выполнить дей- ствие Рогмагс! и должен отметить этот факт в своей базе знаний. Воспользовав- шись аксиомой эффекта из уравнения (7.1) в сочетании с исходными утверждения- ми о своем состоянии в момент времени 0, агент может сделать вывод, что теперь он находится в квадрате [2, 1]. Это значит, что на соответствующий запрос к базе данных будет получен такой ответ: А8К(О, ।) = Тгие. Пока все хорошо. Но, к со- жалению, на запрос А§к(О, НагеАггоуг') база данных даст ответ/а1зе, т.е. агент не сможет подтвердить ни то, что у него все еще есть стрела, ни то, что у него уже нет стрелы! Информация о стреле была утрачена потому, что аксиома эффекта не может указать, что ее флюента остается неизменной в результате выполнения опре- деленного действия. Необходимость сделать это приводит нас к ► проблеме фреймов фате ргоЫет).п Одно возможное решение проблемы фреймов заклю- чается в добавлении в базу данных ► аксиом фреймов, явно определяющих все высказывания, которые остаются неизменными при переходе к следующему этапу. Например, для каждого момента времени I можно записать следующее: Рогмагс!' => (На»еАггом' 7/дггеЛггом''+|); РогыапР => ЦРитринАПуе' <=> И'итризАЦуе1+[') Здесь явно упоминается каждое высказывание, которое остается неизменным при переходе от момента времени I к моменту 1 + 1 после выполнения действия Рог- уу>аг(Т. Хотя агент теперь знает, что после перемещения вперед у него по-прежне- му есть стрела и что вампус все еще жив или вновь ожил, стремительное уве- личение количества аксиом фреймов кажется крайне неэффективным. В мире с т различными действиями и п флюентами множество аксиом фреймов будет 12 Название “проблема фреймов” выбрано по аналогии с английским физическим тер- мином /гате о/ ге/егепсе, обозначающим стационарный фон, относительно которого из- меряется движение. Можно также провести аналогию с кадрами кинофильма, в которых обычно большая часть фона остается неизменной, а все изменения происходят лишь на переднем плане.
иметь размер О(тп). Эту специфическую особенность проблемы фреймов иногда называют к проблемой представления фреймов. Данная проблема играет значи- тельную роль в истории ИИ; подробнее о ней речь пойдет в разделе “Библиогра- фические и исторические заметки” в конце главы. Проблема представления фреймов является существенной, потому что в реаль- ном мире имеется, мягко говоря, очень много флюент. К счастью для нас, людей, каждое действие обычно изменяет значение не более какого-то небольшого коли- чества к этих флюент (так мир проявляет свою локальность). Значит, решение про- блемы представления фреймов требует определения функции определения пре- емника с набором аксиом размера О(тк), а не размера О(тп). Существует также ► проблема логического фрейма: проблема прогнозирования результатов /-этапа плана действий во времени О(к1\ а не О(и/). Решение проблемы предусматривает смещение фокуса с написания аксиом о действиях на написание аксиом о флюентах. А именно, для каждой флюенты Р необходимо предоставить аксиому, определяющую истинностное значение Р'1 в терминах флюент (включая саму флюенту Р) в момент времени / и действий, кото- рые могут произойти в момент времени /. Теперь истинностное значение флюен- ты Рм может быть установлено одним из двух способов: либо действие в момент времени / приводит к тому, что флюента Р в момент времени /+ 1 получает значе- ние 1гие, либо флюента Р в момент времени / уже имела значение 1гие и действие в момент времени / не изменило ее значения на/а1$е. Аксиома такой формы называ- ется ► аксиомой определения преемника и имеет следующий вид: Р,+х & АсНопСаизезР1 V (Р1 Л -АсИопСаиьехРсЯР1). Одной из простейших аксиом определения преемника является На\>еАггом>. По- скольку нет никаких действий, позволяющих вернуть ей значение 1гие, часть акси- омы АсИопСаизезР1 просто отсутствует и у нас остается лишь следующее. Нсп>еАггом>'+1 о (НачеАггою' Л -ЗкооР) (7.2) Что касается расположения агента, то аксиомы определения преемника в этом случае будут более сложными. Например, высказывание будет истинным в двух случаях: во-первых, когда агент выполнил действие Рогмап!, находясь в ква- драте [1,2] и глядя на юг либо находясь в квадрате [2,1] и глядя на запад, и во-вто- рых, когда высказывание л уже является истинным и выполненное действие не вызывает перемещения агента (либо потому, что выполненное действие отлично от Рог^ап!, либо потому, что при выполнении действия Рогмапс! агент стукнулся о стену). Сформулировав все это в логике высказываний, мы получим следующее. & (^-1,! Л (-РопуагсГ V Витр,+[)) V (^1,2 Л (Раст%8ои1к' Л Рогл>агс1')) V (Л'21 Л (Растлен1 /\ РопмагсР)) (7.3)
В упражнении 7.34 вам будет предложено записать аксиомы для всех остальных флюент мира вампуса. Имея полный набор аксиом определения преемника и других аксиом, перечис- ленных в начале этого раздела, агент получит возможность направлять запросы базе знаний и получать ответы на любой важный для него вопрос о текущем со- стоянии мира. Например, в разделе 7.2 исходная последовательность восприятий и действий была следующей. ~81епскй А ^Вгееге* А ~^31Шегй А -Литр** А -Зсгеат* ; РогмагсР ~^81епскх А Вгееге' А -С1Шегх Л -Литр' А ~8сгеатп ; ТигпШ^Ы' -8(епск2 А Вгееге2 А -СПие^ А -Литр2 А -8сгеап? ; ТитШ^кГ2 -8(епск2 А Вгееге3 А -*СИНег3 Л ->Витр2 А -8сгеап? ; Рогмап? -&1епск4 Л -Лгееге4 А -^СНйег4 А -Литр4 А ~^8сгеат4 ; ТитВИ%к14 -8(епск5 А -Лгееге5 А -^(ЗННег5 А -Литр5 А ~8сгеат5 ; Рогхмагс? 8(епс1/ А -Лгеегеь А ->ОИиег6 А ~^Витрь А ~^8сгеать На этом этапе агент получает ответ на запрос А8К(О, ^б2) = (гие и поэтому знает, где находится. Более того, ответы на запросы к8К(КЛ, И', 3) = 1гие и Азк(О, Р3 () = 1гие говорят ему о том, что он обнаружил местонахождение вампуса и убе- дился, что в соседнем квадрате находится яма. Но самый важный вопрос для аген- та иной: можно ли перейти в определенный квадрат, т.е. отсутствует ли в нем яма или живой вампус. Для этого будет удобно добавить в базу знаний еще несколько аксиом, имеющих следующий вид: ОК‘ху <4 -|Рх>у А А И^итризАПге ). Теперь агент сможет получить ответ на запрос Азк(О, ОК22) = 1гие и будет уверен, что квадрат [2,2] можно использовать как цель перехода. На самом деле при наличии непротиворечивого и полного алгоритма логического вывода, такого как ОРЬЬ, агент сможет получить ответ на любой столь важный для него вопрос “Какие квадраты являются безопасными?” и сделать это за несколько миллисекунд для любых версий мира вампуса от малых до средних размеров. Решение проблем представления и логического вывода фреймов является большим шагом вперед, но одна пагубная проблема все же остается: необхо- димость найти подтверждение, что все необходимые предпосылки для любо- го действия учтены, поскольку только так можно достичь ожидаемого эффек- та. Мы утверждали, что действие Рогууагс! вызовет перемещение агента вперед, если только на его пути нет стены, но существует много других необычных, ред- ких исключений, которые могут привести к тому, что это действие не будет вы- полнено: агент может споткнуться и упасть, у него может случиться сердечный приступ, его может утащить гигантская летучая мышь и т.д. Определение всех подобных исключений называется ► проблемой квалификации. В логике для нее нет полного решения, — разработчики систем должны использовать здравый смысл, принимая решения о том, насколько подробно они хотят описать свою
модель и какие детали они намерены опустить. В главе 12 будет показано, что теория вероятностей позволяет обобщить и учесть все возможные исключения без явного их именования. 7.7.2. Гибридный агент Способность к логическому выводу различных аспектов состояния мира мож- но довольно просто скомбинировать с правилами “условие-действие” (см. раз- дел 2.4.2) и алгоритмами решения задач из глав 3 и 4, что позволит создать ► гиб- ридного агента для мира вампуса. На рис. 7.20 представлен один из возможных способов сделать это. Программа агента поддерживает и обновляет базу знаний, а также текущий план. Исходная база знаний содержит вневременные аксиомы — те, которые не зависят от момента времени /, как, например, аксиома, связывающая присутствие в квадрате ветерка с наличием ямы поблизости. На каждом времен- ном этапе в базу знаний добавляется высказывание о текущем восприятии вместе со всеми аксиомами, зависящими от момента времени /, такими как аксиомы опре- деления преемника. (В следующем разделе объясняется, почему агент не нуждает- ся в таких аксиомах для будущих моментов времени.) Затем агент использует ло- гический вывод, направляя запросы А$КО в базу знаний, чтобы выяснить, какие квадраты являются безопасными и какие еще требуется посетить. Основная часть программы агента строит план, исходя из нескольких возмож- ных целей со снижающимся приоритетом. Первая, с наивысшим приоритетом, — если в квадрате замечен блеск, то надо схватить золото, проложить маршрут об- ратно в исходное положение и вылезть из пещеры. В противном случае, если текущего плана нет, программа создает план перехода в ближайший безопасный квадрат, где агент еще не побывал, прокладывая маршрут только по безопасным квадратам. Планирование маршрута выполняется с помощью алгоритма поиска А*, а не выдачей запросов А$к в базу данных. Если безопасных квадратов для исследова- ния нет, то следующая цель — если у агента все еще есть стрела — попытаться со- здать безопасный квадрат, выстрелив в один из тех, в которых может находиться вампус. Последние определяются как те, в которых результатом запроса А8К(ХБ, -.^) будет/а1зе, т.е. для которых пока неизвестно, что в них нет вампуса. Функ- ция Рьан-8нот (на рисунке не представлена) использует функцию РьАН-КоитЕ для планирования последовательности действий, которые приведут к этому выстрелу. Если достичь этой цели не удается, программа переходит к другой цели — ищет квадрат, который еще не исследован и для которого пока не доказано, что он таит опасность, т.е. квадрат, для которого запрос А$К(О, -• ОК1Х у) = /а1$е. Если такого квадрата нет, то завершение миссии невозможно и агент отступает к квадрату [1,1] и вылезает из пещеры.
ШпсНоп НУВКЮ-\Уимри8-АОЕМТ(регсер/) геШгпз действие асИоп 1приС$: регсер!, список результатов восприятия [МепсИ, Ьгееге, §Паег, Ьитр, зсгеат] рег$1$СепС: КВ, база знаний, первоначально содержащая лишь определения “законов функционирования” мира вампуса /, счетчик, исходно равен 0, определяет время р1ап, намеченная последовательность действий, первоначально пустая Теьь(АД МАКЕ-РЕКСЕРТ-$ЕМТЕМСЕ(релсер/, /)) // Запись в базу знаний КВ И высказывания о текущей “физике ” для времени I ха/е {[х, у]: А8К(О, ОК^У) = (гие} И А8К(О, СИие^) = 1гие СЬеп р1ап«— [<3га1>] + РьАК-КоитЕ(сштеи/, {[1, 1]}, за/е) + [СПтб] Ир1ап пуст СЬеп ипуш1е<1 <— {[х,у] : А8К(АД Ь‘х,у) =/а1зе для всех !'<(} р1ап«— РьАН-К.оиТЕ (сштелГ, итпзИесМУ за/е, за/е) Ир1ап пуст и А8К(ХВ, НачеАггоум1) = 1гие Шеп розмЫеуюитриъ «— {[х, у]: А8К(ХВ, =/аЬе} р1ап <— РЬАМ-8нот(смггел/,ро8мЫе_\митри$, ха/е) Ир1ап пуст Шеп // Ничего больше не остается, как рискнуть по1_ита/е <— {[х, у]: А8К(КВ, ~^ОК1ху) =/а!зе} р1ап«— РЬАМ-КоиТЕ(сы>теи/, ипУ15Нес1Г\по1_ип5а/е, за/е) Ир1ап пуст Шеп р1ап«— РьАМ-КоитЕ(смггелГ, {[1, 1]}, за/е) + [СПтЬ] асИоп«— РОР(р1ап) Теьь(О, МАКЕ-Астюм-$ЕЭТЕ^Е(асНол, 0) /«-/+ 1 геШгп действие асИоп ГипсНоп РьАМ-КоиТЕ(сыгге>Ц, %оа1з, аНоумеф геШгпз последовательность действий 1приС$: сигнет, текущее местонахождение агента %оа1з, множество квадратов; попробовать спланировать маршрут к одному из них а11о\мес1, множество квадратов, через которые может проходить маршрут ргоЫет <— КоиТЕ-РковьЕМ(сштел/, %оа1з, аНспмес!) геШгп 8ЕАКСН(ргай/етл) /./ Любой алгоритм поиска из главы 3 Рис. 7.20. Программа гибридного агента для мира вампуса. Для логического вывода состояния мира в ней используется пропозициональная база знаний, а для выбора действий — комбинация решения задач поиском и кода, специфического для данной
среды. Каждый раз, когда вызывается функция НУВНЮ-ХУимРЫЗ-АСЕКТ, она добав- ляет в базу знаний высказывание о текущем восприятии, а затем либо использует ранее созданный план, либо создает новый и выбирает первый этап этого плана в качестве действия, которое будет выполнено следующим 7.7.3. Оценка логического состояния Программа агента, приведенная на рис. 7.20, работает довольно хорошо, но у нее есть один существенный недостаток: по мере того, как значение счетчика времени увеличивается, вычислительные затраты на выполнение запросов А$к неуклонно возрастают. Это происходит главным образом потому, что с ростом количества этапов при логическом выводе приходится возвращаться все дальше и дальше назад и обрабатывать все больше и больше пропозициональных сим- волов. Очевидно, что это положение неприемлемо — нельзя полагаться на аген- тов, у которых затраты времени на обработку каждого очередного восприятия возрастают пропорционально продолжительности его жизни! В действительно- сти нам нужно постоянное время обработки, не зависящее от /. Очевидным ре- шением является сохранение или ► кеширование результатов логического вы- вода, благодаря чему процедура логического вывода на следующем этапе может основываться на результатах предыдущих этапов вместо того, чтобы вновь на- чинать все с нуля. Как было показано в разделе 4.4, историю восприятий и всех их последствий можно успешно заменить доверительным состоянием, т.е. некоторым представ- лением множества всех возможных текущих состояний мира.13 Процесс обновле- ния доверительного состояния по мере поступления новых восприятий называют ►оценкой состояния (см. раздел 4.4.4). В то время как в разделе 4.4 доверитель- ное состояние представляло собой определенный список состояний, здесь его можно представить как логическое высказывание, включающее пропозициональ- ные символы, связанные с текущим моментом времени, а также вневременные символы. Например, логическое высказывание №итри$А11уех Л л Л В2Л Л (Р31 V Р2 2) (7.4) представляет множество всех состояний в момент времени 1, в котором вампус жив, агент находится в квадрате [2,1], в котором ощущается ветерок, и, следова- тельно, имеется яма в квадрате [3,1] или [2,2] или в обоих одновременно. Однако выяснилось, что поддержание точного доверительного состояния в виде логической формулы — задача не из простых. Если имеется п символов флю- ент для момента времени /, то для них имеется 2я возможных состояний, т.е. 13 Можно и саму историю восприятия понимать как некоторое представление довери- тельного состояния, но такое, которое делает логический вывод все более и более дорого- стоящим по мере того, как история становится длиннее.
различных присваиваний истинностных значений этим символам. Далее, множе- ство доверительных состояний представляет собой надмножество (множество из всех подмножеств) множества физических состояний. Имеется 2" физических со- стояний и, следовательно, 22” доверительных состояний. Даже если использовать наиболее компактную из всех возможных форм кодирования логических формул, где каждое доверительное состояние представляется уникальным двоичным чис- лом, для представления текущего доверительного состояния понадобятся числа из 1ое2 (22" ) = 2п бит. Иначе говоря, для точной оценки состояния могут потребовать- ся логические формулы, размер которых будет экспоненциально возрастать с уве- личением количества символов. Одной очень распространенной и естественной схемой для приближенной оценки состояния является представление доверительных состояний в виде конъ- юнкции литералов, т.е. 1-СКР-формул. Чтобы получить это, программа агента просто пытается доказатьX1 и -X1 для каждого символаX1 (также, как и для каж- дого вневременного символа, истинностное значение которого пока не известно), учитывая доверительное состояние на этапе I- 1. Конъюнкция доказуемых лите- ралов становится новым доверительным состоянием, а предыдущее доверитель- ное состояние отбрасывается. Важно понимать, что с течением времени эта схема может терять некоторую информацию. Например, если высказывание в уравнении (7.4) считать истин- ным доверительным состоянием, то литералы Р33 и Р2 2 будут недоказуемы по от- дельности и ни один из них не появился бы в доверительном состоянии в форме 1-СКР. (В упражнении 7.35 исследуется одно возможное решение этой пробле- мы.) С другой стороны, поскольку каждый литерал в доверительном состоянии в форме 1-СКР доказывается на основании предыдущего доверительного состоя- ния, а исходное состояние убеждения является истинным утверждением, мы зна- ем, что все доверительное состояние в форме 1-СКР должно быть истинным. Та- ким образом, "► множество возможных состояний, представленное доверительным состоянием в форме 7-СЛ/Г, включает все состояния, которые действительно возмож- ны с учетом всей истории восприятия. Как показано на рис. 7.21, доверительное состояние в форме 1-СКР действует как простая внешняя оболочка, или ► пер- вое приближение, вокруг точного доверительного состояния. Подобную идею первых приближений к сложным множествам периодически можно обнаружить во многих областях ИИ.
Рис. 7.21. Представление доверительного состояния в форме 1-СИГ (сплошной кон- тур) как легко представимого первого приближения к точному (сложной формы) до- верительному состоянию (темно-серая область с пунктирным контуром). Каждый возможный мир представлен кружком, при этом кружки с темной заливкой отмеча- ют те миры, которые совместимы со всей историей восприятия 7.7.4. Составление планов с использованием пропозиционального логического вывода В программе агента на рис. 7.20 логический вывод используется только для определения, какие квадраты являются безопасными, а для составления планов используется поиск по алгоритму А*. В этом разделе показано, как можно состав- лять планы с помощью логического вывода. Основная идея очень проста. 1. Постройте высказывание, которое будет включать следующее: 1) 1пИй, набор утверждений о начальном состоянии; 2) ТгапйИоп ,..., ТгапйПоп, аксиомы определения преемника для всех воз- можных действий в каждый момент времени вплоть до максимально до- пустимого момента времени /; 3) утверждение, что цель достигнута в момент времени I: НауеСоШ' Л СИтЬесЮш'. 2. Представьте полное высказывание в решатель 8АТ. Если решатель найдет модель, удовлетворяющую высказыванию, то цель является достижимой; если высказывание окажется невыполнимым, то задача неразрешима. 3. Если модель была найдена, извлеките из нее те переменные, которые пред- ставляют действия и которым было присвоено значение 1гие. В своей сово- купности они будут представлять план достижения цели. На рис. 7.22 представлена функция пропозиционального планирования ЗАТРьам. В ней реализована основная идея, только что предложенная выше, но
с одним изменением. Поскольку агент не знает, сколько этапов ему потребуется выполнить для достижения цели, алгоритм пробует каждое возможное число эта- пов /, вплоть до некоторой максимально возможной длины плана Т^. Таким обра- зом, эта функция позволяет гарантированно найти кратчайший план, если таковой существует. По причине выбранного способа поиска решения функцию ЗАТРьаы нельзя использовать в частично наблюдаемых средах, — функция ЗАТРьаы про- сто присвоит ненаблюдаемым переменным те значения, которые ей потребуются для создания решения. ГипсНоп 8АТРьаы(/ш7, 1гапм!юп, %оа1, Ттах) геСигпз решение или индикатор отказа /аПиге 1приС$: /ш7,1гап$И1оп, %оа1, высказывания, в совокупности образующие описание задачи Ттах, определяет верхний предел размера плана Гог I = 0 Со Тщах ЙО сп/«— Ткам8ЬАТЕ-То-$АТ(/ш7, 1гапзШоп, %оа1,1) тос1е1«— 8АТ-8оьуек(с«/) И тос1е1 не пуста Шеп геШгп Ехткаст-8оштюм(7иоЛ?/) геШгп /аПиге Рис. 7.22. Алгоритм 8АТРЕА1Ч. Задача планирования представляется в виде выска- зывания СИР, в котором утверждается, что цель достигнута на заданном этапе вре- мени г, и в которое включены аксиомы для каждого этапа вплоть до /. Если алгоритм выполнимости найдет модель для этого высказывания, то план будет извлечен из нее за счет отбора тех пропозициональных символов, которые относятся к действи- ям и которым в модели назначены значения 1гие. Если модели не существует, то про- цесс будет повторен с перемещением момента достижения цели на один этап позже Ключевым шагом в использовании функции ЗАТРьан является построение базы знаний. На первый взгляд может показаться, что аксиом описания мира вам- пуса, предложенных в разделе 7.7.1, будет достаточно для выполнения пп. 1, а и 1, б из приведенной выше схемы реализации плана. Существуют, однако, значи- тельные различия между требованиями, выдвигаемыми для осуществления логи- ческого вывода (как в функции запроса А$к) и выдвигаемыми для обеспечения проверки выполнимости. Рассмотрим, например, описание местоположения агента, первоначально нахо- дящегося в квадрате [1,1], и предположим, что перед агентом поставлена скромная цель — оказаться в квадрате [2,1] в момент времени 1. Исходная база знаний со- держит литералы стартового местонахождения I?л и цели Ё2 (. Воспользовавшись запросом Азк, можно доказать Т?23, если утверждается РопчагсР, и, конечно же,
нельзя доказать ।, если вместо этого утверждается, скажем, 8Иоо?. Итак, алго- ритм ЗАТРьак найдет план [7ч>ги,ап/)]; пока все идет нормально. К сожалению, алгоритм 8АТРьаи найдет и план [5/юо?]. Как такое может про- изойти? Чтобы это выяснить, проверим модель, которую создаст 8АТР1Л1Ч. И вот сюрприз: она включает в себя присваивание 2^,, т.е. агент может находиться в [2,1] в момент времени 1, будучи там в момент времени 0 и стреляя! Может воз- никнуть вопрос “Разве не было сказано, что в момент времени 0 агент находится в квадрате [1,1]?” Да, это было сказано, но агенту не было сказано, что он не может находиться в двух местах одновременно! Процессу логического вывода присваива- ние />2,1 неизвестно и поэтому оно не может быть использовано в доказательстве. С другой стороны, процессу поиска модели присваивание /°,1 также неизвестно и, следовательно, ему можно присвоить любое значение, которое поможет сделать литерал достижения цели истинным. Алгоритм 8АТРБАН представляет собой отличный инструмент для отладки баз знаний, поскольку указывает на те места, где знания отсутствуют. В данном конкрет- ном случае можно исправить базу знаний, добавив утверждение, что на каждом вре- менном этапе агент может находиться точно в одном месте, воспользовавшись для этого полным набором высказываний, аналогичных тем, которые были использова- ны для утверждения о существовании ровно одного вампуса В качестве альтернати- вы можно добавить утверждения —> для всех квадратов, кроме [1,1], а аксиома выбора преемника для местоположения агента позаботится обо всех последующих моментах времени. Те же самые исправления сработают и для обеспечения гаран- тии, что на каждом этапе агент может иметь одну и только одну ориентацию. Однако алгоритм ЗАТРьак содержит в себе больше сюрпризов. Во-первых, он находит модели с невозможными действиями, такими как стрельба без стрелы. Чтобы понять, почему, нужно внимательнее взглянуть на то, что аксиомы выбо- ра преемника (такие, как в уравнении (7.3)) говорят о действиях, предварительные условия которых будут неудовлетворены. Эти аксиомы правильно предсказывают, что ничего не будет происходить, когда такое действие будет выполнено (см. упру- пражнение 7.19), но они ничего не говорят о том, что такое действие не может быть выполнено! Для того чтобы избежать генерации планов с недопустимыми действи- ями, необходимо добавить ► аксиомы предусловий, утверждающие, что выполне- ние некоторого действия требует удовлетворения определенных предварительных условий.14 Например, для каждого момента времени I следует сказать, что 8коо(' => НахгеАггомг Эго будет гарантировать, что если в любой момент времени в плане выбирается действие 8коо(, то, чтобы это было возможно, у агента в этот момент должна быть стрела. 14 Отметим, что добавление аксиом предусловий означает, что уже не нужно включать эти предварительные условия для действий в аксиомы выбора преемника.
Во-вторых, очередным сюрпризом алгоритма 8АТР1.ЛК является создание пла- нов с несколькими одновременными действиями. Например, он может предложить модель, в которой значения Еогмагс1й и 8коо1й оба имеют значение 1гие, что недо- пустимо. Чтобы устранить эту проблему, вводятся ► аксиомы исключения дей- ствия: для каждой пары действий Д' и А‘} добавляется аксиома -4' Можно отметить, что идти вперед и одновременно стрелять — это не так уж и сложно, тогда как, скажем, стрелять и одновременно хватать — довольно непрак- тично. Накладывая аксиомы исключения действия только на те пары действий, ко- торые действительно мешают выполнению друг друга, можно разрешить постро- ение планов, включающих в себя несколько одновременных действий, и тогда, поскольку алгоритм ЗАТРьаы всегда находит самый короткий допустимый план, можно не сомневаться, что он этой возможностью обязательно воспользуется. Подводя итог, можно сказать, что алгоритм 8АТР1ЛК находит модели для вы- сказывания, содержащего исходное состояние, цель, аксиомы выбора преемни- ка, аксиомы предусловий и аксиомы исключения действия. Можно показать, что этот набор аксиом достаточен в том смысле, что алгоритм больше не будет вы- рабатывать никаких ложных “решений”. Любая модель, удовлетворяющая про- позициональному высказыванию, будет представлять собой допустимый план решения исходной задачи. Современная технология решателей 8АТ делает этот подход довольно практичным. Например, решатель ВРЬЬ-типа не испытывает затруднений в выработке решений для экземпляра мира вампуса, приведенно- го на рис. 7.2. В этом разделе был описан декларативный подход к конструированию агента: агент работает, комбинируя утверждение высказываний в базе знаний с выполне- нием логического вывода. У этого подхода есть некоторые недостатки, скрытые в таких фразах, как “для каждого момента времени Г и “для каждого квадрата [х, у]”. Для любого практического агента эти фразы должны быть реализованы с помощью кода, который автоматически, исходя из общей схемы, генерирует экзем- пляры высказываний, предназначенных для вставки в базу знаний. Для мира вам- пуса разумного размера, сопоставимого с размерами наименьшей компьютерной игры, возможно, потребуется поле 100* 100 квадратов и до 1000 временных эта- пов, что приводит к базе знаний с десятками или даже сотнями миллионов выска- зываний. Мало того что этот подход оказывается довольно непрактичным, он также вскрывает более глубокую проблему: хотя мы знаем кое-что важное о мире вампу- са — а именно, что “физика” в нем работает одинаково во всех квадратах и во все моменты времени, — мы не можем выразить это знание непосредственно на язы- ке логики высказываний. Чтобы решить данную проблему, необходим более выра- зительный язык — такой, в котором фразы, подобные утверждениям “для каждо- го времени Г и “для каждого квадрата [х, у]”, могут быть записаны естественным
образом. Логика первого порядка, обсуждаемая в главе 8, как раз и является таким языком. В логике первого порядка мир вампуса любого размера и с любым до- пустимым количеством этапов может быть описан примерно десятью логически- ми выражениями вместо десяти миллионов или десяти триллионов высказываний пропозиционной логики. Резюме В этой главе были представлены агенты, основанные на знаниях, и показано, как можно определить логику, с помощью которой такие агенты будут способны формировать рассуждения о мире, в котором они существуют. Основные идеи этой главы перечислены ниже. • Интеллектуальным агентам требуются знания о мире для того, чтобы они могли находить хорошие решения. • Знания представлены в агентах в форме высказываний на языке пред- ставления знаний, хранящихся в базе знаний. • Агент, основанный на знаниях, состоит из базы знаний и механизма логиче- ского вывода. Он действует путем сохранения высказываний о мире в своей базе знаний, использования механизма логического вывода для получения новых высказываний и применения этих высказываний для принятия реше- ния о том, какое действие следует предпринять. • Язык представления знаний определяется с помощью синтаксиса, устанав- ливающего структуру высказываний, и семантики, определяющей истин- ность каждого высказывания в каждом из возможных миров или модель этого высказывания. • Для понимания процесса формирования логических рассуждений крайне важным является отношение следования между высказываниями. Из выска- зывания а следует другое высказывание, 3, если 0 является истинным во всех мирах, где истинно а. Эквивалентные определения включают понятия до- пустимости высказывания а => |3 и невыполнимости высказывания а А -10. • Логический вывод — это процесс получения новых высказываний из ста- рых. Непротиворечивые алгоритмы логического вывода обеспечивают по- лучение только таких высказываний, которые являются логическими след- ствиями; полные алгоритмы обеспечивают получение всех высказываний, являющихся логическими следствиями. • Логика высказываний — это очень простой язык, состоящий из пропози- циональных символов и логических связок. Этот язык позволяет рассма- тривать высказывания, о которых известно, являются ли они истинными, являются ли они ложными или имеют полностью неизвестное логическое значение.
• При наличии постоянного словаря пропозициональных символов множе- ство возможных моделей является конечным, поэтому логическое следствие можно проверить, просто перебирая модели. Эффективные алгоритмы ло- гического вывода на основе проверки модели для логики высказываний включают методы поиска с возвратами и локального поиска и часто позво- ляют очень быстро решать крупные задачи. • Правила логического вывода представляют собой шаблоны непротиворе- чивого логического вывода, которые могут использоваться для поиска до- казательств. Правило резолюций позволяет создать полный алгоритм логи- ческого вывода для баз знаний, которые представлены в конъюнктивной нормальной форме. Прямой логический вывод и обратный логический вывод — это алгоритмы логического вывода, которые чрезвычайно есте- ственно подходят для баз знаний, представленных в форме хорновских вы- ражений. • Методы локального поиска, такие как алгоритм \Уаьк8АТ, могут исполь- зоваться для поиска решений. Подобные алгоритмы являются непротиворе- чивыми, но не являются полными. • Логическая оценка состояния предполагает создание и поддержку логиче- ского высказывания, описывающего множество возможных состояний в со- ответствии с историей восприятий. Каждый новый этап требует выполнения логического вывода с использованием модели мира окружающей среды, по- строенной на основании аксиом выбора преемника, определяющих, как изменяется каждая флюента. • Логический агент может принимать решения посредством решения задач определения выполнимости высказываний (задач 8АТ): отыскивая возмож- ные модели для определения последовательности будущих действий, приво- дящих к достижению цели. Такой подход работает только для полностью на- блюдаемых или бессенсорных сред. • Логика высказываний не может применяться к средам неограниченного раз- мера, потому что ей не хватает выразительной силы для достаточно лако- ничного представления времени, пространства и универсальных шаблонов отношений между объектами. Библиографические и исторические заметки В статье Джона Маккарти “Рго§гатз Соттоп Зепзе” ([1529], 1958; [1531], 1968) было впервые выдвинуто понятие агента, использующего логические рас- суждения для установления связи между восприятиями и действиями. Также Мак- карти стал основоположником декларативного подхода, указав, что способ соз- дания программного обеспечения, предполагающий передачу агенту указаний о том, что он должен знать, является весьма изящным. В статье Аллена Ньюэлла
“ТЬе Кпо\у1ес1§е ЬеуеГ ([1664], 1982) подчеркнуто, что рациональные агенты мо- гут быть описаны и проанализированы на абстрактном уровне, определяемом зна- ниями, которыми они обладают, а не программами, которые в них выполняются. Сама логика имеет свои истоки в древнегреческой философии и математике. Платон рассматривал синтаксическую структуру высказываний, их истинность или ложность, их смысл и допустимость доводов. Первое известное систематиче- ское исследование логики было опубликовано в трактате Аристотеля Органон. Его к силлогизмы представляли собой то, что мы теперь называем правилами логи- ческого вывода, хотя им недоставало композиционности наших нынешних правил. В V веке до н.э. мегарская и стоическая школы начали систематические иссле- дования основных логических связок Применение истинностных таблиц впервые предложил Филон из Мегары. Стоики приняли использование пяти основных пра- вил логического вывода как допустимое без доказательства, в том числе прави- ло, которое теперь принято называть правилом отделения (Мойиз Ропепз). Из этих пяти правил они вывели множество других правил, используя, среди прочих прин- ципов, теорему дедукции (раздел 7.5), и имели гораздо более четкое представле- ние о самом понятии доказательства, чем Аристотель (Мэйтс [1515], 1953). Идея сведения логического вывода к чисто механическому процессу принадле- жит Вильгельму Лейбницу (1646-1716). Джордж Буль ([250], 1847) впервые пред- ставил полную и работоспособную систему формальной логики в своей книге ТИе Ма(кетаНса1 Апа1у818 о/Ьо%1с. Логика Буля была почти полностью промоделиро- вана на основе обычной алгебры действительных чисел, и в качестве основного метода логического вывода в ней использовалась подстановка логически эквива- лентных выражений. Хотя систему Буля еще нельзя было считать полной логи- кой высказываний, другие математики сумели быстро заполнить все недостающие элементы. В 1877 году Шрёдер [2003] описал конъюнктивную нормальную фор- му, тогда как хорновская форма была введена намного позднее Альфредом Хорном ([1059], 1951). Первое полное описание современной логики высказываний (и ло- гики первого порядка) можно найти в книге Ве^г^зскп^ (“Система обозначения понятий”) Готтлоба Фреге ([775], 1879). Первым механическим устройством для формирования логических выво- дов была машина Оетоп81га(ог, сконструированная третьим графом Стенхоупом (1753-1816). Уильям Стэнли Джевоне, один из математиков, расширивших резуль- таты Буля, в 1869 году сконструировал “логическое фортепьяно”, предназначен- ное для формирования логических выводов в булевой логике. Занимательная исто- рия этих и других ранних механических устройств логического вывода описана Мартином Гарднером ([813], 1968). Первыми компьютерными программами для формирования логического вывода были программа доказательств в арифметике Пресбургера(Дэвис [542], 1957) и программаторе ТкеопМ, разработанная Ньюэл- лом, Шоу и Саймоном ([1667], 1957). Эмиль Пост ([1815], 1921) и Людвиг Виттгенштейн ([2368], 1922) первыми независимо друг от друга использовали таблицы истинности в качестве метода
проверки правильности логических высказываний. Алгоритм Дэвиса-Патнема ([544], 1960) был первым эффективным алгоритмом резолюции в логике выска- зываний, но улучшенный алгоритм поиска с возвратами ОРЬЬ (Дэвис и др. [543], 1962), оказался более эффективным. Полное правило резолюций и доказательство его полноты были опубликованы в полной всеобщности для логики первого по- рядка Дж.Э. Робинсоном ([1900], 1965). Стивен Кук ([472], 1971) показал, что задача определения выполнимости выска- зывания в логике высказываний (задача 8АТ) является ЫР-полной. Тем не менее известны многие подмножества логики высказываний, для которых задача про- верки выполнимости решается за полиномиальное время; одним из таких подмно- жеств являются хорновские выражения. Ранние исследования показали, что алгоритм ПРЬЬ имеет полиномиальную сложность в среднем случае для некоторых естественных распределений задач. Лучше того Франко и Полл ([769], 1983) показали, что одни и те же проблемы мо- гут быть решены за постоянное время простым угадыванием случайных присваи- ваний. Мотивированные эмпирическими успехами локального поиска, Котсупиас и Пападимитриу ([1293], 1992) показали, что простой алгоритм поиска восхожде- нием к вершине может решить почти все экземпляры задачи выполнимости очень быстро, и предположили, что трудные задачи встречаются относительно редко. Шёнинг ([1999], 1999) продемонстрировал рандомизированный алгоритм поиска восхождением к вершине, для которого наихудшим ожидаемым временем выпол- нения для задач 3-8АТ является 0(1,333") — зависимость все еще экспоненциаль- ная, но в значительной степени лучше, чем в предыдущих оценках для наихудшего случая. Текущим рекордом является 0(1,32216") (Рольф [1905], 2006). Эффективность работы пропозициональных решателей быстро возрастала. Имея в своем распоряжении десять минут вычислительного времени, оригиналь- ный алгоритм ПРЬЬ на оборудовании 1962 года был способен решать лишь зада- чи с 10-15 переменными (на ноутбуке выпуска 2019 года он смог бы решать зада- чи примерно с 30-ю переменными). В 1995 году решатель 8АТ2 (Ли и Энбулаган, 1997) был способен обрабатывать до 1000 переменных — благодаря оптимизиро- ванным структурам данных для их индексации. Двумя важными вкладами стали метод ► наблюдаемого литерала — технология индексирования Чжана и Сти- кела ([2430], 1996), резко повышающая эффективность распространения единич- ных выражений, и введение выражения (т.е. ограничение) — технология обучения Байярдо и Шрега ([147], 1997). Используя эти идеи, вдохновленные перспективой решения проблем верификации цепей промышленного масштаба, Москевич и со- авт. ([1627], 2001) разработали решатель Снарр, способный справиться с задачами с миллионами переменных. Начиная с 2002 года проводятся ежегодные 8АТ-кон- курсы и большинство их победителей являлись различными вариантами Снар. По- дробный обзор решателей 8АТ можно найти в работе Гомеса и соавт. ([887], 2008). Алгоритмы локального поиска для определения выполнимости были опро- бованы различными авторами в течение 1980-х годов и строились на идее
минимизации числа неудовлетворенных выражений (Хансен и Жомар [961], 1990). Особенно эффективный алгоритм был разработан Гу ([928], 1989) и независимо от него Селманом и соавт. ([2025], 1992), который назвал его 08АТ и показал, что он был способен на решение широкого спектра очень трудных задач за очень малое время. Алгоритм \Удьк8АТ, описанный в этой главе, был предложен Селманом и соавт. ([2023], 1996). “Фазовый переход” в отношении определения выполнимости сформирован- ных случайным образом задач Л-8АТ впервые был отмечен Саймоном и Дюбуа ([2073], 1989) и дал начало множеству теоретических и эмпирических исследова- ний, частично в связи с явлениями фазовых переходов в статистической физике. Кроуфорд и Отон ([494], 1993) обнаружили такой переход для задач 3-8АТ, когда их значение отношения “высказывания/переменные” находится вблизи 4,26, за- метив этот факт как резкий пик во времени выполнения их решателя 8АТ. Кук и Митчелл ([473], 1997) составили превосходный обзор ранней литературы по этой теме. Алгоритмы, такие как к обзорное распространение (зигх’еу ргора^аИоп) ([1731], 2002; [1482], 2007), используют преимущества особых свойств случай- ных экземпляров 8АТ в районе порога определения выполнимости и значитель- но превосходят обычные решатели 8АТ для экземпляров задач такого типа. Теку- щее состояние теоретического понимания данной проблемы обобщил Ахлиоптас в [10] (2009). Хорошими источниками информации о выполнимости как в теоретическом, так и в практическом плане можно считать справочник Напс1Ьоок о/ЗаИз/шЪИНу (Бье- ре и др. [212], 2009), статью Дональда Кнута ([1246], 2015) и материалы Регуляр- ной международной конференции по теории и приложениям тестирования вы- полнимости (1п1етаНопа1 Соп/егепсе8 оп ТИеогу апд АррПсаНопз о/8аИз/1аЫШу ТезНщ), известной как 8АТ. Идею о построении агентов, использующих логику высказываний, можно про- следить до оригинальной статьи Мак-Каллока и Питтса ([1537], 1943), которая, как известно, послужила началом исследований в области нейронных сетей, но в действительности фокусировалась на реализации проекта агента с мозгом на основе логических схем. Стен Розеншайн ([1916], 1985; [1166], 1990) разработал способы компиляции агентов на основе логических схем из декларативных опи- саний проблемной среды. Род Брукс ([312], 1986; [313], 1989) продемонстрировал эффективность использования проектов на основе логической схемы для управ- ления роботами. Брукс утверждал ([314], 1991), что для искусственного интеллек- та проекты на основе логических схем — это все, что необходимо, а методы пред- ставления и формирования логических рассуждений громоздки, дорогостоящи и излишни. Но, по мнению авторов, необходимы как рассуждения, так и логические цепи. Вильямс и соавт. ([2349], 2003) описывает гибридного агента — не слишком отличающегося от нашего агента для мира вампуса, — который управляет косми- ческим аппаратом НАСА, выполняет планирование последовательности действий, а также диагностирует и устраняет неисправности.
Общая проблема слежения за частично наблюдаемой средой была введена с ее представлением на основе состояний в главе 4. Ее реализация для пропозицио- нальных представлений была изучена Амиром и Расселом ([42], 2003), определив- шими несколько классов сред, допускающих эффективное применение алгорит- мов оценки состояния и показавшими, что для некоторых других классов сред эта задача неразрешима. Задачу ► временной проекции, включающую определение, какие высказывания остались истинными после выполнения последовательности действий, можно рассматривать как специальный случай оценки состояния с пу- стым восприятием. Многие авторы уже изучали эту проблему по причине ее важ- ности для процесса планирования, и уже были получены некоторые важные и на- дежные результаты ([1410], 1997). Идея представления доверительного состояния с помощью высказываний пропозициональной логики может быть прослежена до работы Витггенштейна ([2368], 1922). Подход к оценке логического состояния с использованием временных индек- сов для пропозициональных переменных был предложен Каутцем и Сельманом ([1201], 1992). В более поздних поколениях решателей ЗАТРьан удалось реализо- вать преимущества от достижений, достигнутых в решателях 8АТ, и они сохрани- ли свои позиции среди наиболее эффективных способов решения сложных задач планирования (Каутц [1199], 2006). Проблема фреймов впервые была признана Маккарти и Хейсом ([1529], 1969). Многие исследователи считали ее неразрешимой без использования логики пер- вого порядка, и это стимулировало большое количество исследований в области немонотонной логики. Философы от Дрейфуса ([651], 1972) до Крокетта ([501], 1994) назвали проблему фреймов одним из симптомов неизбежного краха всего предприятия ИИ. Решение проблемы фреймов с помощью аксиом определения преемника принадлежит Рею Рейтеру ([1870], 1991). Тильшер([2202], 1999) иден- тифицирует проблему представления фреймов как независимую идею и предлага- ет ее решение. Оглядываясь назад, можно видеть, что агенты Розеншайна ([1916], 1985) использовали схемы, в которых были реализованы аксиомы определения преемника, но Розеншайн не заметил, что проблема фрейма была тем самым в зна- чительной степени решена. Современные пропозициональные решатели нашли себе множество примене- ний в различных отраслях промышленности, например в таких, как синтез ком- пьютерного аппаратного обеспечения (Новик и др. [1702], 1993). Контроллер выполнимости 8АТМС использовался для обнаружения ранее неизвестных уяз- вимостей в протоколе единого входа в веб-браузерах (Армандо и др. [72], 2008). Мир вампуса был придуман Грегори Йобом ([2407], 1975). Любопытно то, что Йоб разработал этот мир, поскольку ему надоели игры, которые проходили в мире, представленном в виде квадратной решетки: топология его первоначального мира вампуса представляла собой додекаэдр, а мы снова поместили вампуса в старую скучную квадратную решетку. Майкл Генезерет первым предложил использовать мир вампуса как испытательную площадку для агентов.
Упражнения_________________________________________________________________ 7.1. Предположим, что агент достиг пункта, показанного на рис. 7.4, а, получив такие ре- зультаты восприятия: в квадрате [1,1] — ничего, в квадрате [2,1] — ветерок, а в ква- драте [1,2] — неприятный запах. В настоящий момент агента интересует содержи- мое квадратов [1,3], [2,2] и [3,1]. Каждый из них может содержать яму, и самое боль- шее в одном из них может находиться вампус. На основе примера, приведенного на рис. 7.5, сконструируйте множество возможных миров. (Должно быть найдено 32 та- ких мира.) Отметьте миры, в которых существующая база знаний является истинной, а также те, в которых истинным является каждое из следующих высказываний: а2 = “В квадрате [2,2] нет ямы.” о3 = “В квадрате [1,3] есть вампус.” На основании этого покажите, что КВ [= о2 и КВ [= 7.2. На основании приведенных ниже рассуждений сможете ли вы доказать, что едино- рог — мифическое существо? А как насчет того, что это волшебное существо? Суще- ство, вооруженное рогом? Если единорог — это мифическое существо, то он бессмертен, а если не мифи- ческое, то он — смертное млекопитающее. Если единорог либо бессмертен, либо является млекопитающим, то он вооружен рогом. Единорог является волшебным существом, если он вооружен рогом. 7.3. Рассмотрите задачу определения, является ли некоторое высказывание пропозицио- нальной логики истинным в данной модели. Напишите рекурсивный алгоритм РЬ-Т1ШЕ?($, т), который возвращает значение 1гие тогда и только тогда, когда высказывание 5 является истинным в модели т (где т присваивает истинностное значение каждому символу в 5). Этот алгоритм должен заканчивать свою работу за время, линейно зависящее от размера высказывания. (Еще один вариант состоит в том, чтобы воспользоваться версией этой функции из оперативного репозитария кода.) а) Приведите три примера высказываний, в отношении которых можно определить, являются ли они истинными или ложными, в частичной модели, в которой не за- даны истинностные значения для некоторых символов. б) Покажите, что в общем случае в частичной модели истинностное значение выска- зывания (если оно имеется) эффективно определить невозможно. в) Доработайте свой алгоритм РЕ-ТК11Е? так, чтобы он иногда позволял судить об истинностном значении по частичным моделям, сохраняя вместе с тем свою ре- курсивную структуру и линейную зависимость времени прогона от размера вы- сказывания. Приведите три примера высказываний, истинность которых в частич- ной модели не обнаруживается вашим алгоритмом. г) Проведите исследование, позволяет ли этот модифицированный алгоритм повы- сить эффективность алгоритма ТТ-ЕЫТАШЗ?. 7.4. Какие из следующих выражений являются правильными? а) Раке [= Тгие. б) Тгие |= Раке. в) (ЯлВ)(=(ЛоВ). г) А \/В. д) А <=>В|= -уА ЧВ.
е) (ЯАВ)=>СНЛ=>С)7(В=>С). ж) (СУ(^АЛ^В)) = ((А^С)Л(В=>С)). з) (АУВ)/\(Ч2уЧ)УЕ)^(АУВ)Л(-^ОУЕ). и) (А V В) А ->(Я => В) выполнимо. к) (А<=> В) А (->А V В) выполнимо. л) (А <=> В) <=> С имеет такое же количество моделей, как и (А <=> В) для любого фикси- рованного множества пропозиционных символов, включающего Я, В, С. 7.5. Какие из следующих выражений являются правильными? а) Гаке [= Тгие. б) Тгие [= Рейхе. в) (ЯлВ)[=(ЯоВ). г) А^В\=АУВ. д) Л<=>В[=^ЯУВ. е) (А УВ)Л(-<СУ->ОУЕ)1=(АУВУС)Л(ВлСЛО=>Е). ж) (А У В) Л(->СУ->1)У Е)^=(АУ В) Л(->1)У Е). з) (АУ В) Л ->(А => В) выполнимо. и) (ЯАВ)=>С[=(Я=>С)У(В=>С). к) (СУ(-ЯА-В)) = ((Я=>С)Л(В=>С)). л) (А О В) Л (-А V В) выполнимо. м) (А <=> В) <=> С имеет такое же количество моделей, как и (А <=> В) для любого фикси- рованного множества пропозиционных символов, включающего Я, В, С. 7.6. Докажите каждое из приведенных ниже утверждений. а) Высказывание а является допустимым тогда и только тогда, когда 1гие [= а. б) Для любого высказывания а истинно, что/ейхе [= а. в) а |= р тогда и только тогда, когда высказывание (а => (3) допустимо. г) а = (3 тогда и только тогда, когда высказывание (а <=> (3) допустимо. д) а [= (3 тогда и только тогда, когда высказывание (а Л -<(3) невыполнимо. 7.7. Докажите или найдите контрпример для каждого из приведенных ниже утверждений. а) Если а (= ч или (3 [= ч (или и то, и другое), то (а Л 0) (= б) Если (аЛ(3) |=% то а|=ч или (3 (или и то, и другое). в) Если а |= ((3 V ч), то а [= (3 или а (или и то, и другое). 7.8. Докажите или найдите контрпример для каждого из приведенных ниже утверждений. а) Если о. [= ч или (3 [= ч (или и то, и другое), то (а Л (3) [= б) Если а [= ([3 Лч), то а |= (3 и а |= ч- в) Ес ли (р V ч), тоа[=(3 или а [= ч (и ли и то, и другое). 7.9. Рассмотрите словарь, состоящий только из четырех высказываний, Я, В, С и О. Сколь- ко существует моделей для каждого из следующих высказываний? а) ВУС б) -пАУ-ЪУ-СУ4) в) (А=>В)ЛАЛ->ВЛСЛВ 7.10. В этой главе были определены четыре бинарные логические связки. а) Есть ли какие-то иные логические связки, которые могут быть полезны? б) Сколько бинарных связок может быть определено? в) Почему некоторые из них не очень полезны? 7.11. Используя метод по своему выбору, проверьте каждую из эквивалентностей, приве- денных в таблице на рис. 7.11.
7.12. Определите, является ли каждое из приведенных ниже высказываний допустимым, не- выполнимым или ни тем, ни другим. Проверьте полученные результаты с помощью та- блиц истинности или правил эквивалентности, приведенных в таблице на рис. 7.11. а) 8токе=>8токе б) 8токе=> Р1ге в) (8токе => Ргге) => (~^8токе => ^Р1ге) г) 8токе\/ Р1ге\/ ^Р1ге д) ((8токе Л Неа1) => Рп-е) <=> ((8токе => Рп-е) V (Неси => Ргге)) е) (8токе => Ргге) => ((8токе Л Неа1) => Рггё) ж) Вг% V ОитЬ V {Вг% => ОитЬ) 7.13. Определите, является ли каждое из приведенных ниже высказываний допустимым, невыполнимым или ни тем, ни другим. Проверьте полученные результаты с помо- щью таблиц истинности или правил эквивалентности, приведенных в таблице на рис. 7.11. а) 8токе^8токе б) 8токе=>Р1ге в) {8токе=> Р1ге)=>(-8токе^ ^Р1ге) г) 8токе\/ Р1ге\/ ^Р1ге д) {{8токе Л Неси) => Рп-е) <=> ((8токе => Рп-е) V {Неси => Ргге)) е) ОитЬ V (В1%=> ОитЬ) ж) (В1% Л ОитЬ) V -ОитЬ 7.14. Любое высказывание логики высказываний логически эквивалентно утверждению, что любой возможный мир, в котором это высказывание было бы ложным, не име- ет места. На основании этого наблюдения докажите, что любое высказывание может быть записано в конъюнктивной нормальной форме. 7.15. Методом резолюции докажите высказывание -^А /\ -^В на основании выражений, при- веденных в упр. 7.25. 7.16. В этом упражнении рассматривается связь между выражениями и импликативными высказываниями. а) Покажите, что выражение {-Рх V ... V ->Рт V 0 логически эквивалентно импли- кативному высказыванию (Р, А... А Рт) => б) Покажите, что каждое выражение (независимо от количества положительных ли- тералов) может быть записано в форме (Р, А ... А Рт) => (0 V ... V 0), где Р и (2 — пропозициональные символы. База знаний, состоящая из таких высказыва- ний, находится в импликативной нормальной форме или в форме Ковальского (Ковальски [1296], 1979). в) Составьте полное правило резолюций для высказываний в импликативной нор- мальной форме. 7.17. Согласно некоторым политическим экспертам, человек, который является радикалом (Я), может быть избран (Е), если он (или она) консервативен (С); в противном случае он избран быть не может. а) Что из приведенного ниже является правильным представлением этого утверждения? 1) (ЯАЕ)оС 2) Я=>(Е<=>0 3) Я=>((С=>Е)У-Е)
б) Какое из высказываний в п. а может быть представлено в форме хорновского вы- ражения? 7.18. В этом упражнении рассматривается представление задач определения выполнимо- сти (8АТ) в виде задач УО. а) Нарисуйте граф ограничений, соответствующий задаче 8АТ (-V Х2) А (~Х2 М Х3)А ... А(-’А'л_1\/Агя) для частного случая п=5. б) Сколько решений существует для этой общей задачи 8АТ в зависимости от значе- ния и? в) Предположим, что алгоритм поиска с возвратами используется для того, чтобы найти все решения для задачи 8АТ в виде задачи УО, приведенной в п. а. (Для того чтобы найти все решения задачи УО, достаточно модифицировать базовый алгоритм так, чтобы он продолжал поиск и после того, как очередное решение бу- дет найдено.) Предположим, что переменные упорядочены в видеX,, ..., Хп и значения/а1зе следуют перед значениями 1гие. Сколько времени потребуется алго- ритму для завершения работы? (Запишите выражение О( ) как функцию от л.) г) Мы знаем, что задачи 8АТ в форме хорновских выражений могут быть решены за линейное время с помощью прямого логического вывода (распространение еди- ничных выражений). Мы также знаем, что каждая бинарная задача УО с древо- видной структурой и конечной дискретной областью определения может быть решена за время, линейное по отношению к числу переменных. Эти два факта связаны? Поясните свой ответ. 7.19. В этом упражнении рассматривается представление задач определения выполнимо- сти (8АТ) в виде задач УО. а) Нарисуйте граф ограничений, соответствующий задаче 8АТ (~^Хх V Х2) А (-Х2 V Х3) А ... А (-•Ап_1 V Хя) для частного случая п=4. б) Сколько решений существует для этой общей задачи 8АТ в зависимости от значе- ния и? в) Предположим, что алгоритм поиска с возвратами используется для того, чтобы найти все решения для задачи 8АТ в виде задачи УО, приведенной в п. а. (Для того чтобы найти все решения задачи УО, достаточно модифицировать базовый алгоритм так, чтобы он продолжал поиск и после того, как очередное решение бу- дет найдено.) Предположим, что переменные упорядочены в виде Х]9..., Хп и зна- чения /а1зе следуют перед значениями 1гие. Сколько времени потребуется алгорит- му для завершения работы? (Запишите выражение 00 как функцию от и.) г) Мы знаем, что задачи 8АТ в форме хорновских выражений могут быть решены за линейное время с помощью прямого логического вывода (распространение еди- ничных выражений). Мы также знаем, что каждая бинарная задача УО с древо- видной структурой и конечной дискретной областью определения может быть решена за время, линейное по отношению к числу переменных. Эти два факта связаны? Поясните свой ответ. 7.20. Объясните, почему каждое непустое пропозициональное выражение само по себе вы- полнимо. Докажите строго, что любое множество из пяти выражений 3-8АТ является выполнимым при условии, что в каждом выражении упоминаются ровно три различ- ные переменные. Каково наименьшее множество подобных выражений, которое бу- дет невыполнимым? Постройте такое множество.
7.21. Пропозициональное выражение 2-СИР представляет собой совокупность выраже- ний, каждое из которых содержит ровно 2 литерала, например (АУ В) Л (-А V С) Л (-пВ V О) Л (-.С V в) Л (->/) V О). а) Используя резолюцию, докажите, что из приведенного выше выражения следу- ет О. б) Два выражения семантически различны, если они не являются логически эквива- лентными. Сколько семантически различных выражений 2-СИР может быть по- строено из п препозиционных символов? в) Используя свой ответ из п. б, докажите, что пропозициональная резолюция всег- да заканчивается за время, полиномиально зависящее от и, если высказывание в форме 2-СНР содержит не более п различных символов. г) Поясните, почему ваша аргументация в п. в неприменима к высказываниям в фор- ме 3-СНЕ 7.22. Докажите каждое из приведенных ниже утверждений. а) Каждая пара пропозициональных выражений либо не имеет резольвент, либо все их резольвенты являются логически эквивалентными. б) Не существует выражения, которое при резолюции с самим собой дает (после факторизации) выражение (~^РУ -,0. в) Если пропозициональное выражение С может быть подвергнуто резолюции со своей копией, то оно должно быть логически эквивалентно Тгие. 7.23. Рассмотрим следующее высказывание: [(Роос! => Раг1у) V (Иппкз => Раг1у)\ => [(Роос! /\ Оппкз) => Раг1у]. а) Определите, используя перечисление, является ли это высказывание выполнимым (но не допустимым) или невыполнимым. б) Преобразуйте левую и правую части основной импликации в форму СИР, пись- менно фиксируя каждый этап своих действий, и объясните, как полученные ре- зультаты подтверждают ваш ответ из п. а. Докажите свой ответ на п. а, используя резолюцию. 7.24. Высказывание находится в дизъюнктивной нормальной форме (О№), если оно пред- ставляет собой дизъюнкцию конъюнкций литералов. Например, высказывание (Я Л В Л ->С) V (-1А Л С) V (В Л -<7) представлено в ОКЕ а) Любое высказывание пропозициональной логики логически эквивалентно утверждению, что существует некоторый возможный мир, в котором оно было бы верно. Исходя из этого наблюдения, докажите, что любое высказывание может быть написано в форме ОИР. б) Разработайте алгоритм, преобразующий любое высказывание логики высказыва- ний в форму ОИР. (Подсказка', этот алгоритм аналогичен алгоритму преобразова- ния в СИР.) в) Разработайте простой алгоритм, на вход которого в качестве входных данных пе- редаются высказывания в форме ОИР и который возвращает выполняющее при- сваивание, если оно будет найдено, либо сообщает, что выполняющего присваи- вания не существует. г) Примените алгоритмы из пп. 6 и в к следующему множеству высказываний. А=>В В^С С=>А
д) Хотя алгоритм в п. б очень похож на алгоритм преобразования в СИР, а алгоритм в п. в намного проще, чем любой алгоритм для решения множества высказываний в форме СИР, почему эти методы не используются в автоматизированных рассуж- дениях? 7.25. Преобразуйте высказывания в следующем множестве в форму выражений. 8 2 Е=> О 53: С /\Г=> ~^В 54: Е^В $5: В^Е 56: В=>С Проследите за выполнением алгоритма ОРЬЬ на конъюнкции этих выражений. 7.26. Преобразуйте высказывания в следующем множестве в форму выражений. 5^ А о (С V Е) 8 2 Е=> О 83: ВЕЕ^~С 84: Е^С 55: С^Е 86: С=>В Проследите за выполнением алгоритма ОРЬЬ на конъюнкции этих выражений. 121. Является ли случайно сгенерированное высказывание в форме 4-СИР с п символами и т выражениями с большей или меньшей вероятностью разрешимым, чем случай- но сгенерированное высказывание в форме 3-СИР с п символами и т выражениями? Поясните свой ответ. 7.28. Популярная компьютерная игра Сапер (Мтезюеерег) близко соотносится с миром вампуса. Мир сапера—это прямоугольная сетка из X квадратов с Мневидимыми ми- нами, разбросанными среди них. Агент может исследовать любой квадрат, и, если он содержит мину, мгновенная гибель неизбежна. Игра указывает на наличие мин выво- дом подсказки для каждого проверенного квадрата о количестве мин, которые нахо- дятся непосредственно рядом с ним или по диагонали. Цель состоит в том, чтобы ис- следовать каждый свободный от мин квадрат. а) Пусть высказывание Х^ является истинным тогда, когда в квадрате [/,у] нахо- дится мина. Составьте утверждение, согласно которому в квадратах, соседних по отношению к квадрату [1,1], имеются точно две мины, построив его в виде высказывания, включающего определенную логическую комбинацию высказы- ваний Х^. б) Обобщите свое утверждение, составленное при выполнении п. а, и объясните, как следует формировать высказывание в форме СИР, утверждающее, что к из п со- седних квадратов содержат мины. в) Точно объясните, как агент может использовать алгоритм ОРЬЬ для доказатель- ства того, что данный квадрат содержит (или не содержит) мину, игнорируя гло- бальное ограничение, согласно которому всего имеется точно М мин. г) Предположим, что глобальное ограничение конструируется с помощью мето- да, созданного вами в п. б. Как зависит количество выражений в этом ограниче- нии от М и Л? Предложите способ осуществления такой модификации алгоритма ОРЬЬ, чтобы в нем не требовалось явно представлять это глобальное ограничение.
д) Становятся ли недействительными какие-либо выводы, полученные при создании метода в п. в, если учитывается это глобальное ограничение? е) Приведите примеры конфигураций проверочных значений, которые порождают такие далеко идущие зависимости, что содержимое любого непроверенного ква- драта может предоставить информацию о содержимом какого-то далеко отстояще- го от него квадрата. (Подсказка, рассмотрите доску размером Ух 1.) 7.29. Сколько времени потребуется, чтобы доказать высказывание КВ |= а с помощью ал- горитма ОРЬЬ, если а — литерал, который уже содержится в базе знаний КВ? Пояс- ните свой ответ. 7.30. Проследите за поведением алгоритма ОРЬЬ при обработке приведенной на рис. 7.16 базы знаний в попытке доказать высказывание О и сравните это поведение с тем, ко- торое демонстрируется алгоритмом прямого логического вывода. 7.31. Напишите аксиому выбора преемника для предиката Ьоскес1, который применяется к дверям, при условии, что доступны только действия Ьоск и 1}п1оск. 7.32. Обсудите понятие оптимального поведения в мире вампуса. Покажите, что приведен- ное в этой главе определение алгоритма НУВКЮ-\УиМРи8-АСЕИТ не является опти- мальным, и предложите способы его усовершенствования. 7.33. Предположим, что агент обитает в мире с двумя состояниями, $ и -У, и может выпол- нять только одно из двух действий, а или Ь. Действие а — это ничего не делать, а дей- ствие Ъ переводит агента из одного состояния в другое. Пусть $ будет утверждением, что агент находится в состоянии 5 в момент времени г, и пусть а будет утверждени- ем, что агент выполняет действие а в момент времени / (аналогично для Ь1). а) Напишите аксиому выбора преемника для б) Преобразуйте высказывание из п. а в форму СИР. в) Приведите доказательство (приведением к противоречию) того, что если агент на- ходится в состоянии в момент времени I и выполняет действие а, он все равно будет находиться в состоянии в момент / +1. 7.34. В разделе 7.7.1 приводятся некоторые аксиомы выбора преемника, необходимые для мира вампуса. Запишите аксиомы выбора преемника для всех оставшихся символов флюент в этом мире. 7.35. Измените алгоритм НУВКЮ-АУиМРиз-АОЕИТ таким образом, чтобы использовать ме- тод оценки логического состояния 1-СИР, описанный в разделе 7.7.3. Там было от- мечено, что такой агент не сможет приобретать, поддерживать и использовать более сложные доверительные состояния, такие как дизъюнкция Р3 } V Р2 2. Предложите ме- тод преодоления этой проблемы посредством определения дополнительных пропози- циональных символов, и опробуйте его в мире вампуса. Улучшит ли такое решение производительность агента?
ГЛАВА 8 Логика первого порядка В этой главе мы обращаем внимание на то, что мир наполнен множеством объектов, одни из которых связаны с другими объектами, а также пытаемся рассуждать об этих объектах. Логика высказываний вполне позволяет проиллюстрировать основные понятия логики и логического вывода, а также принципы функционирования агентов, ос- нованных на знаниях. Но, к сожалению, язык этой логики слишком ограничен и недостаточно выразителен. В настоящей главе речь пойдет о ► логике первого по- рядка,1 позволяющей в сжатом виде представить гораздо больше. Изложение этой темы начнем с описания в разделе 8.1 всех языков представления в целом; в разде- ле 8.2 рассматриваются синтаксис и семантика логики первого порядка, а в разде- лах 8.3 и 8.4 иллюстрируется использование логики первого порядка для простых представлений. 8.1. Еще раз о представлении В этом разделе обсуждается общая природа языков представления. Языки про- граммирования (такие, как С++, 5ауа или Ру1Ьоп) являются самым большим клас- сом формальных языков из числа получивших широкое распространение. Для представления фактов в программах могут быть использованы структуры данных, например массив 4x4 может использоваться в программе для представления со- держимого мира вампуса. Так, оператор языка программирования ИЬг/б/[2,2] <— РН можно считать вполне естественным средством объявления, что в квадрате [2,2] есть яма. Если строки с подобными операторами собрать вместе, этого будет до- статочно для выполнения имитации мира вампуса. Чего не хватает языкам программирования, так это общего механизма вывода фактов из других фактов: любое обновление структуры данных выполняется с по- мощью процедур, специфических для проблемной области задачи, детали кото- рых определяются программистом на основании его собственных знаний об этой 1 Логику первого порядка также иногда называют ► исчислением предикатов перво- го порядка и сокращенно обозначают как ЕОЬ — Пгй-ОгНег Ьо&с или ГОРС — Пгй- Огс1ег РгесИса!е Са1си1и5.
области. Такой процедурный подход может быть противопоставлен декларатив- ной природе логики высказываний, в которой знания и методы логического выво- да не смешиваются и логический вывод выполняется совершенно независимо от проблемной области задачи. Сочетание декларативных и процедурных знаний ис- пользуется в базах данных Другим недостатком структур данных в программах (и базах данных) является отсутствие какого-либо простого способа сделать, например, такое утверждение: “В квадрате [2,2] или [3,1] имеется яма” или “Если вампус находится в квадрате [1,1], то его нет в квадрате [2,2]”. Программы позволяют хранить для каждой пе- ременной лишь единственное значение, и хотя некоторые системы допускают ис- пользование “неопределенных” значений, им не хватает выразительности, необхо- димой для обработки частичной информации. Логика высказываний — это декларативный язык, поскольку ее семантика ос- нована на истинностных отношениях между высказываниями и возможными ми- рами. Кроме того, она имеет достаточную выразительную мощь для того, чтобы с ее помощью можно было обрабатывать частично заданную информацию с ис- пользованием дизъюнкции и отрицания. Логика высказываний обладает еще од- ним свойством, которое является желательным для языков представления, а имен- но ► композициональностью. В композициональном языке смысл высказывания представляет собой функцию от смысла его частей. Например, смысл высказы- вания “5^ А 5'12” связан со смыслом высказываний и Было бы очень странно, если бы и5'14” означало, что в квадрате [1,4] чувствуется неприятный за- пах, а “5,2” — что неприятный запах чувствуется в квадрате [1,2], и при этом вы- ражение “5, 4 Л 2” означало бы, что квалификационный матч по хоккею с шай- бой между Францией и Польшей, проходивший на прошлой неделе, закончился со счетом 1:1. Однако логике высказываний как факторизованному представлению не хватает выразительной силы, которая позволяла бы кратко описывать среду со многими объектами. Например, мы были вынуждены записывать отдельное правило, свя- зывающее между собой присутствие ветерка и наличие ям, для каждого квадрата, скажем, таким образом: ^1,1 (^1,2 V ^2,1)* На естественном языке, русском или английском, кажется, совсем несложно раз и навсегда сформулировать утверждение: “В квадратах, непосредственно примы- кающих к ямам, чувствуется ветерок”. Синтаксис и семантика естественного язы- ка позволяют кратко описать эту среду: естественные языки, как и логика первого порядка, являются структурированным представлением.
8.1.1. Язык мышления Естественные языки (такие, как русский, английский или испанский) действи- тельно очень выразительны. Нам удалось написать почти всю эту книгу на есте- ственном языке, лишь изредка обращаясь к формальным языкам (в основном к математическим и к диаграммам). В лингвистике и философии языка давно суще- ствует традиция, в которой естественный язык рассматривается как декларатив- ный язык представления знаний. Если бы удалось раскрыть правила естественного языка, можно было бы использовать их в системах представления и рассуждения и получить пользу от миллиардов страниц, уже написанных на естественном языке. Современный взгляд на естественный язык состоит в том, что он служит сред- ством общения, а не чистого представления. Когда говорящий указывает куда-то и говорит “Смотри!”, слушатель в конечном счете может узнать, что Супермен, на- конец-то, появился над крышами домов. Тем не менее нельзя утверждать, что вы- сказывание “Смотри!” представляет именно этот факт. Скорее смысл этого вы- сказывания зависит как от самого высказывания, так и от контекста, в котором оно было произнесено. Очевидно, что в базе знаний невозможно сохранить такое высказывание, как “Смотри!”, и ожидать, что удастся восстановить его точный смысл, если в базе знаний не будет также представлен соответствующий контекст, из чего следует вопрос “А как можно представить сам этот контекст?” Также естественные языки страдают от неоднозначности, что может стать про- блемой для языка представления. Пинкер ([1793], 1995) выразил эту мысль таким образом: “Когда люди думают о косе, то их, безусловно, не затрудняет определе- ние того, идет ли речь о женской прическе, о сельскохозяйственном инвентаре или о чем-то другом, — если одно и то же слово может соответствовать нескольким понятиям, сами понятия не могут быть словами”. Знаменитая гипотеза Сепира-Уорфа (Уорф [2333], 1956) утверждает, что наше понимание мира сильно зависит от языка, на котором мы говорим. Безусловно верно, что различные речевые сообщества видят мир и выделяют его элементы по-разному. У говорящих на английском языке есть два слова, “аиШтп” и “ГаП”, для понятия, которое носители русского языка обозначают одним: “осень”. Но го- ворящие на русском языке могут легко распознать категорию /а11 и дать ей соб- ственное имя (дословно — “период листопада”), так язык ли в действительности вызывает различия? Уорф в основном полагался на интуицию и предположения, и его идеи были в основном отвергнуты, но в последующие годы были получены реальные данные в результате проведенных антропологических, психологических и неврологических исследований. Например, кто из вас сейчас может вспомнить, с какой именно из следующих двух фраз начинался раздел 8.1? “В этом разделе обсуждается общая природа языков представления...” “В данном разделе рассматривается тема представления знаний в языках.
Ваннер ([2295], 1974) провел аналогичный эксперимент и обнаружил, что ис- пытуемые делали правильный выбор на уровне случайности — примерно в 50% случаев, — но помнили содержание прочитанного с точностью, превышающей 90%. Эти данные свидетельствуют о том, что люди воспринимают слова, которые читают, а затем формируют своего рода несловесное представление, в котором точ- ные слова уже не имеют значения. Более интересным является случай, когда концепция полностью отсутствует в языке. Говорящие на языке аборигенов Австралии “гуугу йимитир” не имеют ни одного слова для обозначения относительных (или эгоцентрических) направ- лений, таких как спереди, сзади, справа или слева. Вместо этого они используют абсолютные направления, говоря, например, что-то вроде “у меня болит северная рука”. Это различие в языке приводит и к определенным различиям в поведении: говорящие на гуугу йимитир лучше ориентируются на открытых просторах, в то время как говорящие на английском лучше ориентируются, когда их просят поло- жить вилку справа от тарелки. Похоже, что язык также оказывает влияние на мышление через такие, казалось бы, произвольные грамматические функции, как род существительных. Например, слово “мост” в испанском языке мужского рода, а в немецком — женского. Боро- дицкий ([256], 2003) попросил испытуемых выбрать английские прилагательные для описания фотографии определенного моста. Говорящие на испанском выбрали слова Ы% (большой), (Лап^егоих (опасный), 81гоп% (прочный) и 1оугег1п% (высокий), в то время как говорящие на немецком выбрали эпитеты Ьеаи(г/и1 (прекрасный), е1е%ап1 (элегантный),/га^Ие (хрупкий) и з1еп(1ег (стройный). Слова могут служить опорными точками, влияющими на то, как мы воспри- нимаем мир. Лофтус и Палмер ([1439], 1974) показали участникам эксперимен- та фильм об автомобильной аварии. Испытуемые, которых спросили “Насколько быстро двигались машины, когда они вошли в контакт друг с другом?”, в среднем давали оценку 70 км/ч, в то время как те, которым был задан тот же вопрос, но со словом “врезались” вместо слов “вошли в контакт”, оценили скорость в 80 км/ч для тех же автомобилей в том же фильме. В целом действительно имеют место измеримые, но небольшие по величине различия в когнитивных процессах у лю- дей, говорящих на разных языках, но нет убедительных доказательств того, что это приводит к существенным различиям в восприятии мира. В системе логического рассуждения, использующей конъюнктивную нор- мальную форму (СКР), легко увидеть, что лингвистические формы “~>(А V В)" и Л -«В” одинаковы, поскольку можно заглянуть внутрь системы и увидеть, что эти два высказывания хранятся в одной и той же канонической форме СКР. В по- следнее время становится возможным сделать что-то подобное и с человеческим мозгом. Митчелл и соавт. ([1599], 2008) в своем эксперименте помещали испытуе- мых в аппарат функциональной магнитно-резонансной томографии (фМРТ), пока- зывали им такие слова, как “сельдерей”, и фиксировали изображение состояния их мозга. Система машинного обучения, обучаемая на парах “слово, изображение",
в конечном счете оказалась способной в 77% случаев дать правильный ответ в за- дачах бинарного выбора (например, между словами “сельдерей” и “самолет”). Си- стема оказалась способной даже успешно прогнозировать на уровне выше обыч- ного вероятности и в случае слов, для которых ей ранее никогда не представляли изображение фМРТ (анализируя изображения связанных слов), и в отношении людей, томограммы которых она никогда не видела раньше (что доказывает, что фМРТ вскрывает некоторый уровень общего представления для всех людей). Этот тип исследований все еще находится в младенческом состоянии, но фМРТ и дру- гие технологии визуализации, такие как внутричерепная электрофизиология (Са- хин и др. [1963], (2009)), обещают дать гораздо более конкретные идеи о том, на что похоже представление знаний у человека. С точки зрения формальной логики представление одного и того же знания дву- мя различными способами не имеет абсолютно никакого значения, — одни и те же факты можно будет вывести из любого представления. Однако на практике для по- лучения результата одно представление может потребовать выполнения меньшего количества этапов, чем другое, а это означает, что при наличии ограниченных ре- сурсов рассуждающий сможет получить результат, лишь используя первое пред- ставление, но не второе. Для недедуктивных задач, таких как обучение на основе накопления опыта, результаты обязательно зависят от используемой формы пред- ставления. В главе 19 будет показано, что, когда обучаемая программа рассматри- вает две возможные теории мира, обе из которых полностью согласуются со все- ми имеющимися данными, общепринятый подход решения этой дилеммы состоит в выборе наиболее лаконичной теории, — а это, в свою очередь, зависит от язы- ка, использованного для представления теорий. Таким образом, влияние языка на мышление неизбежно для любого агента, который обучается. 8.1.2. Комбинирование лучших черт формальных и естественных языков Принятый авторами подход состоит в принятии основ логики высказываний — декларативной, композиционной семантики, независимой от контекста и непроти- воречивой — и построении на этой основе более выразительной логики, заимствуя идеи представления из естественного языка, но при этом избегая его недостатков. Изучение синтаксиса естественного языка показывает, что наиболее очевидны- ми его элементами являются существительные и именные конструкции, которые обозначают к объекты (квадраты, ямы, вампусы), а также глаголы и глагольные конструкции, включающие также прилагательные и наречия, обозначающие ►от- ношения между объектами (чувствовать ветерок, быть соседним, стрелять). Не- которые из этих отношений являются ► функциями, т.е. отношениями, в которых имеется только одно “значение”, выдаваемое в ответ на определенный “входной сигнал”. Такой подход позволяет сразу же приступить к составлению перечня при- меров объектов, отношений и функций, как показано ниже.
• Объекты: люди, дома, числа, теории, Рональд Макдональд, цвета, бейсболь- ные матчи, войны, столетия... • Отношения: могут быть унарными отношениями или ► свойствами, таки- ми как красный, круглый, поддельный, первичный, многоэтажный... или бо- лее общими и-арными отношениями, такими как “быть братьями”, “быть больше”, “находиться внутри”, “входить в состав”, “иметь цвет”, “произой- ти позже”, “владеть”, “находиться между”... • Функции: “быть отцом”, “быть лучшим другом”, “быть третьей подачей мяча”, “быть на единицу больше”, “быть началом”... Безусловно, почти каждое утверждение может рассматриваться как обознача- ющее объекты, а также их свойства или отношения. Ниже приведены некоторые примеры. • “Один плюс два равняется трем”. Объекты: один, два, три, один плюс два; отношение: равняется; функция: плюс. (“Один плюс два” представляет собой название объекта, полученно- го путем применения функции “плюс” к объектам “один” и “два”. “Три” — другое название для этого объекта.) • “В квадратах, соседних с тем, где находится вампус, есть неприятный за- пах”. Объекты: вампус, квадраты; свойство: неприятный запах; отношение: быть соседним. • “Злой король Джон правил Англией в 1200 году”. Объекты: Джон, Англия, 1200 год; отношение: правил; свойства: злой, ко- роль. Язык логики первого порядка, синтаксис и семантика которого будут опреде- лены в следующем разделе, основан на понятиях объектов и отношений. Он стал чрезвычайно важным для математики, философии и искусственного интеллекта именно потому, что эти области знаний — а фактически основная часть повсед- невного человеческого существования — могут достаточно продуктивно рассма- триваться как касающиеся объектов и отношений между ними. Логика первого порядка позволяет также выражать факты о некоторых или обо всех объектах во Вселенной. Именно это качество обеспечивает ей возможность представлять об- щие законы или правила, например такие, как следующее утверждение: “В квадра- тах, соседних с тем, где находится вампус, есть неприятный запах”. Основное различие между логикой высказываний и логикой первого порядка заключается в различном ► онтологическом вкладе каждого из этих языков, т.е. они по-разному представляют сущность действительности. Математически это обязательство выражается через основные свойства формальных моделей, по от- ношению к которым определяется истинность высказываний. Например, в логи- ке высказываний предполагается, что существуют лишь факты, которые относятся
или не относятся к данному миру. Каждый факт может находиться в одном из двух состояний (быть истинным или ложным), и в каждой модели значения 1гие и/аЬе присваиваются каждому пропозициональному символу (см. раздел 7.4.2). В логи- ке первого порядка приняты более широкие предположения, а именно — что мир состоит из объектов с определенными отношениями между ними, которые могут существовать или не существовать (рис. 8.1). Эти формальные модели являются, соответственно, более сложными, чем модели логики высказываний. Язык Онтологический вклад (что существует в мире) Эпистемологический вклад (степень доверия, выражаемая агентом в отношении фактов) Логика высказываний Факты Истинно/ложно/неизвестно Логика первого порядка Факты, объекты, отношения Истинно/ложно/неизвестно Временная логика Факты, объекты, отношения, интервалы времени Истинно/ложно/неизвестно Теория вероятностей Факты Степень доверия е [0,1] Нечеткая логика Факты со степенью истинности е [0,1] Известное интервальное значение Рис. 8.1. Формальные языки и их онтологический и эпистемологический вклад Этот онтологический вклад есть сильнейшая сторона логики (как пропозици- ональной, так и первого порядка), поскольку позволяет нам начинать с истинных утверждений и выводить из них другие истинные утверждения. Особенно ярко эта сильная сторона проявляется в областях, где каждое суждение имеет четкие гра- ницы, например в математике или в мире вампуса, где любой квадрат либо содер- жит, либо не содержит ямы и абсолютно невозможно существование квадрата с неопределенным углублением, напоминающим яму. Однако в реальном мире мно- гие суждения имеют нечеткие границы: “Вена большой город?”, “В этом рестора- не подают вкусные блюда?”, “Этот человек высокий?” Все зависит от того, кого вы спрашиваете, и полученный ответ может быть таким: “Как будто”. Один из вариантов реакции на это — уточнить представление: если грубое раз- деление городов на “большие” и “небольшие” оставляет слишком много неопре- деленности для рассматриваемого приложения, то можно увеличить количество категорий размеров городов или использовать символ функции Рори1аИоп (насе- ление). Другое возможное решение предлагает ► нечеткая логика, в которой вво- дится онтологическое расширение, допускающее, что любые утверждения могут иметь ► степень истинности в пределах от 0 до 1. Например, утверждение “Вена является большим городом” в нечеткой логике может иметь степень истинно- сти 0,8, тогда как утверждение “Париж является большим городом” может иметь степень истинности 0,9. Подобный подход больше соответствует нашим интуи- тивным представлениям о мире, но одновременно делает логический вывод более
сложным: вместо одного правила определения истинности высказывания А /\В не- четкая логика предполагает использование разных правил в зависимости от про- блемной области задачи. Еще одна возможность, рассматриваемая в разделе 24.1, заключается в связывании каждой концепции с точкой в многомерном простран- стве с последующим измерением расстояния между концепцией “большой город” и концепциями “Вена” или “Париж”. Различные логики специального назначения дают еще больше онтологических расширений. Например, во ► временной логике предполагается, что факты име- ют место в определенное время и что эти моменты времени (которые могут быть представлены точными значениями или интервалами) упорядочены. Таким обра- зом, в разных вариантах логики специального назначения некоторым видам объ- ектов особого рода (и аксиомам об этих объектах) придается статус “первого клас- са”, вместо того чтобы просто ввести их определения в базу знаний. В ► логике высшего порядка как объекты трактуются и сами отношения и функции, как они определяются в логике первого порядка. Это позволяет формировать утверждения обо всех отношениях, например если потребуется точно определить, что означает понятие транзитивного отношения. В отличие от большинства логик специально- го назначения, логика высшего порядка является строго более выразительной, чем логика первого порядка, в том смысле, что некоторые высказывания логики выс- шего порядка не могут быть выражены с помощью любого конечного количества высказываний логики первого порядка. Логику можно также охарактеризовать по ее ► эпистемологическому вкла- ду, — под этим подразумеваются возможные состояния знания, которые она по- зволяет выразить в отношении каждого факта. И в логике высказываний, и в ло- гике первого порядка любое высказывание представляет собой факт, и агент либо доверяет утверждению, что это высказывание истинно, либо доверяет утвержде- нию, что оно ложно, либо не имеет мнения на этот счет. Поэтому в таких вариан- тах логики имеются три возможных состояния знания в отношении любого выска- зывания. С другой стороны, в системах, где используется теория вероятностей, может иметь место любая степень доверия (или субъективная вероятность), начиная от 0 (полное неверие) и заканчивая 1 (полное доверие). Важно не путать степень доверия в теории вероятностей со степенью истинности в нечеткой логике, хотя, конечно, некоторые нечеткие системы допускают неопределенность (степень до- верия) в отношении степени истинности. Например, в вероятностном мире вам- пуса агент может доверять утверждению о том, что вампус находится в квадрате [1,3], с вероятностью 0,75 и с вероятностью 0,25 доверять утверждению, что он находится в квадрате [2,3] (хотя вампус, безусловно, находится в одном конкрет- ном квадрате).
8.2. Синтаксис и семантика логики первого порядка_ Этот раздел мы начнем с более точного определения способа, посредством ко- торого возможные миры логики первого порядка отражают ее онтологический вклад в познание объектов и отношений. Затем будут представлены различные элементы языка этой логики, с объяснением по ходу дела их семантики. Основной акцент будет сделан на том, как язык способствует сжатым представлениям и как его семантика приводит к непротиворечивым процедурам рассуждения. 8.2.1. Модели для логики первого порядка В главе 7 было сказано, что моделями в любом логическом языке служат фор- мальные структуры, представляющие возможные рассматриваемые миры. Каждая модель связывает словарь логических высказываний с элементами возможного мира, что позволяет определить истинность любого высказывания. Следователь- но, модели для логики высказываний связывают пропозициональные символы с предопределенными значениями истинности. Модели для логики первого порядка гораздо интереснее. Прежде всего, в них имеются объекты! ► Проблемной областью модели является множество объектов или ► элементов проблемной области, как их иногда называют, которые эта об- ласть содержит. Проблемная область обязательно должна быть не пустой — каж- дый возможный мир должен содержать по меньшей мере один объект. (В упраж- нении 8.8 обсуждается возможность допущения пустых миров.) С математической точки зрения не имеет значения, что эти объекты собой представляют (все, что имеет значение, — это лишь сколько их в каждой конкретной модели), но исхо- дя из педагогических соображений в дальнейшем обсуждении мы будем исполь- зовать конкретный пример. На рис. 8.2 представлена модель с пятью объектами: Ричард Львиное Сердце, король Англии, который правил с 1189 по 1199 годы; его младший брат, злой король Джон, который правил с 1199 по 1215 год; левые ноги Ричарда и Джона; а также корона. Отношения между объектами в этой модели могут быть определены различ- ными способами. На данном рисунке показано, что Ричард и Джон — братья. Вы- ражаясь формально, отношение — это просто множество ► кортежей объектов, связанных друг с другом. (Кортеж — это коллекция объектов, упорядоченных в установленном порядке и записанных в угловых скобках (), окружающих эти объ- екты.) Таким образом, отношение братства в этой модели представляет собой сле- дующее множество: {(Ричард Львиное Сердце, король Джон), (король Джон, Ричард Львиное Сердце)}. (8.1) (Здесь эти объекты были указаны на естественном языке, но читатель при жела- нии может мысленно вставить вместо имен этих королей их портреты.) Корона
находится на голове короля Джона, поэтому отношение “быть на голове” содержит только один кортеж, (корона, король Джон). Отношения “быть братом” и “быть на голове” являются бинарными, т.е. они устанавливают связь между парами объек- тов. Эта модель также содержит унарные отношения, или свойства: свойство “быть человеком” является истинным и для Ричарда, и для Джона; свойство “быть коро- лем” истинно только для Джона (предположительно потому, что к этому момен- ту Ричард уже был мертв); а свойство “быть короной” истинно только для короны. Рис. 8.2. Модель, состоящая из пяти объектов: двух бинарных отношений (“быть братом” и “быть на голове”), трех унарных отношений (“быть человеком”, “быть ко- роной”, “быть королем”) и одной унарной функции (“быть левой ногой”) Некоторые виды отношений удобнее рассматривать как функции, в том смысле, что указанным способом данный объект должен быть связан только с одним объ- ектом. Например, каждый человек имеет только одну левую ногу, поэтому в дан- ной модели имеется унарная функция “быть левой ногой”, которая включает сле- дующие отображения: (Ричард Львиное Сердце) -> левая нога Ричарда, (король Джон) -> левая нога Джона. (8.2) Строго говоря, модели в логике первого порядка требуют ► полностью опре- деленных функций, т.е. в них должно быть предусмотрено значение для каждого входного кортежа. Таким образом, левую ногу должна иметь и корона, и, безуслов- но, каждая из левых ног. Имеется некоторое формальное решение этой неприятной
проблемы, касающейся дополнительного “невидимого” объекта, представляюще- го левую ногу у всего, что не имеет левой ноги, включая и саму левую ногу. К сча- стью, пока никто не делает утверждений о левых ногах объектов, не имеющих ле- вой ноги, применять эти формальные решения необязательно. До сих пор мы обсуждали лишь элементы, заполняющие модели для логики первого порядка. Другой существенной частью таких моделей также является связь между этими элементами и лексикой логических высказываний, которая бу- дет обсуждаться в следующем разделе. 8.2.2. Символы и интерпретации Вернемся к синтаксису логики первого порядка. Нетерпеливый читатель может найти полное описание формальной грамматики логики первого порядка на рис. 8.3. Основными синтаксическими элементами логики первого порядка являют- ся символы, которые обозначают объекты, отношения и функции. Поэтому сами символы подразделяются натри типа: ► символы констант, которые обозначают объекты; ► символы предикатов, которые обозначают отношения, и ►симво- лы функций, обозначающие функции. Примем соглашение, что имена этих сим- волов будут начинаться с прописных букв. Например, могут использоваться сим- волы констант Кгскагс! и Лкп\ символы предикатов Вго1кег, ОпНеасЦ Регзоп, Клп& и Сгоууп и символ функции Как и в случае пропозициональных символов, выбор имен полностью предоставляется пользователю. Каждый символ предика- та и функции характеризуется ►арностью, определяющей количество его фор- мальных параметров. Каждая модель должна обеспечивать всю информацию, необходимую для опре- деления, каким является любое заданное предложение: истинным или ложным. Поэтому в дополнение к объектам, отношениям и функциям каждая модель вклю- чает в себя ►интерпретацию, точно определяющую, на какие именно объек- ты, отношения и функции ссылается каждый из символов констант, предикатов и функций. Для рассматриваемого примера одна из возможных интерпретаций — которую будет логично назвать ► предполагаемой интерпретацией — состоит в следующем. • Символ Кгскагс! обозначает Ричарда Львиное Сердце, а символ Зокп — зло- го короля Джона. • Символ Вго1кег обозначает отношение родства между братьями, т.е. мно- жество кортежей объектов, приведенное в уравнении 8.1; символ ОпНеас! обозначает отношение “быть на голове”, установленное между короной и королем Джоном; символы Регзоп, Клп% и Сгоууп относятся к унарным отно- шениям, определяющим людей, королей и короны. • Символ Ье/1Ье% относится к функции “быть левой ногой”, определенной в уравнении 8.2.
Высказывание —► АтомарноеВысказывание | СложноеВысказывание АтомарноеВысказывание —► Предикат | Предикат {Терм,...} | Терм = Терм СложноеВысказывание —► (Высказывание) | -^Высказывание | Высказывание /\ Высказывание | Высказывание V Высказывание | Высказывание => Высказывание | Высказывание <=> Высказывание | Квантор Переменная,... Высказывание Терм —► Функция(Терм,...) | Константа | Переменная Квантор —► V | 3 Константа —► А | X] | </оЛи | ... Переменная —► а | х | 5 |... Предикат —► Тгие | Раке | А/1ег | Ьочез | Катт§ | ... Функция —► Мо1кег | Ье/1Ье% | ... Порядок выполнения операций =, Л, V, =>, о Рис. 83 Синтаксис логики первого порядка с оператором равенства, заданный в форме Бэкуса-Наура (см. раздел I в приложении Б). Приоритеты операторов указа- ны слева направо от самого высокого до самого низкого. Приоритет кванторов та- ков, что квантор содержит все, что находится справа от него Безусловно, также может существовать много других возможных интерпрета- ций. Например, в одной интерпретации символ Влскагс! отображается на корону, а символ Зокп — на левую ногу короля Джона. В данной модели имеется пять объектов, поэтому существует 25 возможных интерпретаций только для символов констант Влскагс! и Зокп. Обратите внимание на то, что не все объекты имеют имя, например в нашей предполагаемой интерпретации не предусмотрены имена для короны или ноги. Также допустимо, чтобы один объект имел несколько имен — возможна интерпретация, в которой и символ Влскагс!, и символ <!окп определя- ют корону.2 Если читатель полагает, что такая возможность приводит к путанице, 2 Ниже, в разделе 8.2.8, рассматривается семантика, в которой каждый объект должен иметь точно одно имя.
напомним, что в логике высказываний вполне допустимо иметь модель, в которой высказывания С1оис1у (пасмурно) и 8иппу (солнечно) одновременно являются ис- тинными; задача исключения из рассмотрения моделей, несовместимых с нашими знаниями, возлагается на базу знаний. Итак, можно обобщить, что модель в логике первого порядка состоит из мно- жества объектов и некоторой интерпретации, отображающей символы констант на объекты, символы функций на функции над этими объектам и символы преди- катов на отношения между объектами. Как и в случае логики высказываний, ло- гическое следствие, допустимость и так далее определяются в терминах всех воз- можных моделей. Получить представление о том, как выглядит множество всех возможных моделей, можно, взглянув на рис. 8.4, наглядно демонстрирующий, что модели могут различаться как количеством объектов, которые они содержат— от одного до бесконечности, — так и способом, которым символы констант отобра- жаются на объекты. Рис. 8.4. Некоторые члены множества всех моделей для языка с двумя символами констант, К и Л, и одного символа бинарного отношения. Интерпретация каждого символа константы показана серой стрелкой. В пределах каждой модели связанные объекты соединены тонкими темными стрелками Поскольку число моделей первого порядка не ограничено, мы не можем про- верить выполнение простым перебором их всех (как это делалось для логики вы- сказываний). Даже если количество объектов ограничено, количество комбинаций может быть очень большим (см. упр. 8.6). Для примера на рис. 8.4 существует 137 506194466 моделей с шестью или менее объектами. 8.2.3. Термы ►Терм — это логическое выражение, относящееся к некоторому объекту. Сим- волы констант также являются термами, однако не всегда удобно иметь отдель- ный символ для именования каждого объекта. Например, в русском языке можно воспользоваться обозначением “левая нога короля Джона”, а не присваивать ноге короля собственное имя. Именно для этого и нужны функциональные символы:
вместо использования специального символа константы можно просто записать Ье^Ье^окп)? В общем случае сложный терм формируется с помощью символа функции, за которым следует заключенный в круглые скобки список формальных параметров для данного символа функции. Важно помнить, что любой сложный терм — это просто некоторый вид имени, выраженный в сложной форме. Это не “вызов про- цедуры”, которая “возвращает значение”. Не существует такой процедуры Ье]1Ье& которая принимает на входе какого-то человека и возвращает его левую ногу. Мы можем рассуждать о левых ногах (например, сформулировать общее правило, что каждый человек имеет таковую, и на основании этого сделать вывод, что Джон также должен иметь ее), даже не представив определение символа Это не- что, что нельзя выполнить с помощью процедур в языках программирования. Формальное определение семантики термов является несложным. Рассмотрим терм/„). Символ функции/относится к некоторой функции в модели (назо- вем ее Т7); термы с обозначением формальных параметров относятся к объектам данной проблемной области (назовем их ..., б/„); а сам терм в целом относится к объекту, представляющему собой значение функции У7, применяемой к объектам ., с1п. Например, предположим, что функциональный символ относит- ся к функции, показанной в уравнении 8.2, а символ Зокп относится к королю Джону; в таком случае Ье^Ье^окп) относится к левой ноге короля Джона. Таким образом, интерпретация определяет для каждого терма соответствующий рефе- рент (объект, к которому относится данный терм). 8.2.4. Атомарные высказывания Теперь, когда у нас есть определение терма для обозначения объектов и сим- вола предиката для обозначения отношений, можно объединить их для создания ► атомарных высказываний, констатирующих факты. Атомарное высказывание (или катом для краткости) формируется из символа предиката, за которым сле- дует (но необязательно) заключенный в круглые скобки список термов, как пока- зано ниже. Вго1кег(К1скагсЦ Лкп) В соответствии с предполагаемой интерпретацией, приведенной выше, это ато- марное высказывание констатирует тот факт, что Ричард Львиное Сердце — брат 3 Х-выражения представляют собой удобные обозначения, позволяющие формиро- вать новые функциональные символы “динамически”. Например, функция, возводящая в квадрат свой аргумент, может быть записана как (X х :ххх) и применяться к формальным параметрам точно так же, как и любой другой символ функции. Также Х-выражение, мо- жет быть преобразовано путем “вставки” в него соответствующих формальных параме- тров для получения эквивалентного высказывания.
короля Джона.4 В качестве фактических параметров атомарные высказывания мо- гут включать и сложные термы. Поэтому в высказывании Магнес! (Ра1кег{В1скаг<1), Мо1кег{Лкп)) утверждается, что отец Ричарда Львиное Сердце был женат на матери короля Джо- на (опять-таки, при использовании подходящей интерпретации).5 Любое атомарное высказывание является истинным в данной конкретной моде- ли при данной конкретной интерпретации, если отношение, на которое ссылается его символ предиката, соблюдается среди объектов, на которые ссылаются его параметры. 8.2.5. Сложные высказывания Для формирования более сложных высказываний могут использоваться логи- ческие связки — с теми же синтаксисом и семантикой, что и в логике высказыва- ний. Ниже приведены четыре высказывания, которые являются истинными в мо- дели, представленной на рис. 8.2, при использовании принятой предполагаемой интерпретации. ->Вго1кег{Ье/1Ье^В1скаг(1), УоЛл) Вго1кег(К1скс1гс1, .1окп) А Вго1кег(Локп, В1скагс1) Кт^Шскаг^) V Кт^окп) -^Кт^Шскагс!) => Ктд&окп) 8.2.6. Кванторы После определения логики, допускающей использование объектов, вполне естественным будет стремление получить возможность выражать свойства целых коллекций объектов, вместо того чтобы перебирать эти объекты по именам. Сде- лать это позволяют ► кванторы. Логика первого порядка включает два стандарт- ных квантора, называемых кванторами всеобщности и существования. Квантор всеобщности (V) Вспомните, с какими трудностями мы сталкивались в главе 7 при попытках вы- разить общие правила в логике высказываний. В логике первого порядка выра- зить такие правила, как “В квадратах, соседних с тем, в котором находится вампус, ощущается неприятный запах” и “Все короли являются людьми” проще просто- го. Первое из этих правил будет рассматриваться в разделе 8.3, а второе правило, 4 Как правило, мы будем придерживаться такого соглашения об упорядочении параме- тров, что Р(х,у) интерпретируется как “х представляет собой Р от у”. 5 Эта онтология распознает только одного отца и одну мать для каждого человека. Бо- лее сложная онтология может распознавать биологическую мать, крестную мать, прием- ную мать и тд.
“Все короли являются людьми”, записывается в логике первого порядка следую- щим образом: V х Кт^х) =} Рег5оп(х). ► Квантор всеобщности V обычно читается как “для всех...” (Запомните, что перевернутая буква “А” здесь обозначает “а11” — все.) Таким образом, в этом высказывании утверждается следующее: “Для всех х, если х — король, то х — че- ловек”. Символ х называется ► переменной. В соответствии с общепринятым со- глашением для обозначения переменных используются строчные буквы. Пере- менная сама по себе является термом и как таковая может также служить параметром функции, например Ье/1Ье^{х). Терм без переменных называется ► базовым термом. Интуитивно понятно, что высказывание V х Р, где Р — любое логическое выра- жение, утверждает, что Р является истинным для каждого объектах. Точнее, выска- зывание V х Р истинно в данной модели при данной интерпретации, если выраже- ние Р истинно при всех возможных ►расширенных интерпретациях, сформированных из данной интерпретации, где каждая расширенная интерпрета- ция задает элемент проблемной области, на которую ссылается объект х. Это определение может показаться сложным, но фактически оно представляет собой лишь формальное определение интуитивного смысла применения квантора всеобщности. Рассмотрим модель, показанную на рис. 8.2, и предполагаемую ин- терпретацию, которая ее сопровождает. Эту интерпретацию можно расширить сле- дующими пятью способами. х —> Ричард Львиное Сердце х ->корольДжон х -> левая нога Ричарда х -> левая нога Джона х ->корона Высказывание с квантором всеобщности V х Кт%Цх) => Регзоп(х) является ис- тинным в исходной модели, если высказывание Кт^х) => Регзоп(х) истинно в каж- дой из пяти расширенных интерпретаций. Это означает, что данное высказывание с квантором всеобщности эквивалентно утверждению об истинности следующих пяти высказываний. Ричард Львиное Сердце — король => Ричард Львиное Сердце — человек король Джон — король => король Джон — человек левая нога Ричарда — король => левая нога Ричарда — человек левая нога Джона — король => левая нога Джона — человек корона — король => корона — человек Давайте внимательно рассмотрим это множество утверждений. Посколь- ку в нашей модели единственным королем является король Джон, то во втором
высказывании утверждается, что он — человек, как и следовало ожидать. А что можно сказать о других четырех высказываниях, в частности о тех, в которых приведены утверждения о ногах и коронах? Являются ли они частью смысла утверждения “Все короли являются людьми”? Действительно, остальные четыре утверждения истинны в данной модели, но не позволяют судить о том, можно ли считать людьми ноги, короны или даже Ричарда. Причина в том, что ни один из этих объектов не является королем. Рассматривая истинностную таблицу для связ- ки => (см. рис. 7.8), можно убедиться в том, что импликация истинна, даже если ее предпосылка ложна, независимо от того, является ли истинным заключение. Та- ким образом, утверждая истинность высказывания с квантором всеобщности, что эквивалентно утверждению об истинности целого списка отдельных импликаций, мы в конечном итоге утверждаем об истинности правила, выраженного в виде это- го высказывания, но только для тех объектов, для которых предпосылка является истинной, и вообще ничего не говорим о тех объектах, для которых предпосылка ложна. Поэтому элементы истинностной таблицы, относящиеся к связке =>, ока- зались идеальным средством формулирования общих правил с кванторами все- общности. Распространенная ошибка, которую часто допускают даже прилежные читате- ли, несколько раз прочитавшие предыдущий абзац, состоит в использовании конъ- юнкции вместо импликации. Тогда высказывание V х Клп%(х) Л Регзоп(х) становится эквивалентным таким утверждениям: Ричард Львиное Сердце — король А Ричард Львиное Сердце — человек, король Джон — король А король Джон — человек, левая нога Ричарда— король А левая нога Ричарда— человек и т.д. Очевидно, что такой ряд утверждений не передает желаемый смысл. Квантор существования (3) Квантор всеобщности позволяет формировать утверждения о каждом объек- те. Аналогичным образом можно создать утверждение о некотором объекте без его именования, использовав ► квантор существования. Например, чтобы выра- зить мысль, что на голову короля Джона возложена корона, можно записать сле- дующее: 3 х Сгоууи(х) А ОпНеасЦх, Зокп). Выражение 3 х читается как “Существует х, такой, что...” или “Для некоторо- го х...” Интуитивно понятно, что в высказывании 3 х Р утверждается, что Р истин- но по меньшей мере для одного объекта х. Если говорить точнее, то высказыва- ние 3 х Р истинно в данной модели, если выражение Р истинно по меньшей мере
в одной расширенной интерпретации, в которой переменной х присваивается один из элементов проблемной области. Следовательно, по меньшей мере одно из при- веденных ниже утверждений должно быть истинным. Ричард Львиное Сердце — корона А Ричард Львиное Сердце находится на голове Джона король Джон — корона А король Джон находится на голове Джона левая нога Ричарда — корона А левая нога Ричарда находится на голове Джона левая нога Джона — корона А левая нога Джона находится на голове Джона корона — корона А корона находится на голове Джона В нашей модели истинно пятое утверждение, поэтому в ней является истин- ным и само первоначальное утверждение с квантором существования. Обратите внимание на то, что в соответствии с приведенным выше определением кванто- ра существования это высказывание будет истинным и в такой модели, в которой на голову короля Джона возложены две короны. Такая ситуация является полно- стью совместимой с первоначальным высказыванием: “На голове короля Джона есть корона”.6 Аналогично тому, что логическую связку => можно считать наиболее подходя- щей для использования с квантором V, логическую связку А следует считать наи- более подходящей для использования с квантором 3. В примере из предыдущего раздела использование А в качестве основной связки в сочетании с квантором V приводило к формированию слишком сильного утверждения. В свою очередь, ис- пользование связки => в сочетании с квантором 3 обычно приводит к формирова- нию слишком слабых утверждений. Рассмотрим следующее высказывание: Зх Сгоюп(х) => ОпНесиКх,Лкп). На первый взгляд может показаться, что оно вполне успешно передает мысль о том, что на голове короля Джона есть корона. Так, применив соответствующее определение семантики, можно убедиться в том, что данное высказывание декла- рирует истинность по меньшей мере одного из следующих утверждений: Ричард Львиное Сердце — корона => Ричард Львиное Сердце находится на голове Джона, король Джон — корона => король Джон находится на голове Джона, левая нога Ричарда — корона => левая нога Ричарда находится на голове Джона и т.д. Итак, импликация истинна, если и предпосылка, и заключение являют- ся истинными или если ложна ее предпосылка. Поэтому, если Ричард Львиное 6 Применяется также определенный вариант квантора существования, обычно запи- сываемый как З1 или 3!, означающий “Существует только один...” Однако тот же смысл можно выразить и с использованием утверждений, содержащих знак равенства.
Сердце — не корона, то первое утверждение истинно и высказывание с квантором существования выполняется. Таким образом, высказывание в форме импликации с квантором существования истинно в любой модели, содержащей объект, для ко- торого предпосылка импликации является ложной, поэтому подобные высказыва- ния фактически не несут почти никакой информации. Вложенные кванторы Часто необходимо сформировать более сложные высказывания с использова- нием нескольких кванторов. Самый простой случай — когда кванторы относят- ся к одному и тому же типу. Например, утверждение “Братья — это люди, связан- ные братскими родственными узами”, может быть записано следующим образом: VхЧу Вго1кег(х,у) => 81ЬНп^(х,у). Последовательно применяемые кванторы могут быть записаны как один квантор с несколькими переменными. Например, чтобы выразить мысль о том, что род- ственные отношения между людьми, связанными братскими узами, являются сим- метричными, можно составить следующее высказывание: V х, у 81Ыт^(х,у) <=> 8Мт^у,х). В других случаях возникает необходимость в использовании сочетания разных кванторов. Например, строка из песни “Еуе!уЬо<1у 1оуез зотеЬоду” (Каждый ко- го-то любит) означает, что для каждого человека существует кто-то, кого этот че- ловек любит: V х 3 у Ьоке8(х, у). С другой стороны, чтобы сформулировать утверждение “ТЬеге 18 зотеопе \уЬо 18 1оуед Ьу еуегуопе” (Есть некто, кого любят все), можно записать следующее: 3 у V х Ьоуез(х,у). Следовательно, порядок расположения кванторов очень важен. Он становится очевиднее после вставки круглых скобок. В высказывании V х (3 у Ьо\'еа(х, у)) утверждается, что каждый имеет определенное свойство, а именно — то свой- ство, что он кого-то любит. С другой стороны, в высказывании 3 у (V х 1оуех(х, у)) утверждается, что кто-то в мире имеет определенное свойство, а именно — свой- ство быть любимым всеми. Может возникнуть некоторая путаница, когда два квантора используются с од- ним и тем же именем переменной. Рассмотрим следующее высказывание: V х (Сгоът(х) V (3 х Вго(кег (ШскапЛ, х))). Здесь к переменной х в атомарном высказывании Вго1кег(К1скаг(1, х) применя- ется квантор существования. Общее правило состоит в том, что переменная при- надлежит к самому внутреннему квантору, в котором она упоминается, и это
означает, что такая переменная не может стать субъектом действия любого друго- го квантора. Еще один способ анализа приведенного выше высказывания состоит в следующем: 3 х Вго1кег(Влскагс1, х) — это высказывание о Ричарде (о том, что у него есть брат), а не о переменной х, поэтому размещение квантора V х за преде- лами данного высказывания не оказывает на него никакого действия и оно может быть равным образом записано как 3 г Вго1кег(Влскагс1, г). Поскольку такая ситуа- ция может стать источником путаницы, в выражениях с вложенными кванторами мы всегда будем использовать разные переменные. Связь между кванторами V и 3 Два квантора, V и 3, в действительности тесно связаны друг с другом через от- рицание. Утверждение о том, что никто не любит пастернак (рагзтйр), равносиль- но утверждению о том, что не существует никого, кто бы его любил, и наоборот: V х ^1лке$(х, Рагмпр) эквивалентно ->3 х Ыкез(х, Рагзтр). Можем пойти и на один шаг дальше, сформировав более сложную конструк- цию: выражение “Все любят мороженое (ТсеСгеат)” означает, что нет никого, кто не любил бы мороженое: V х 1лкез(х, кеСгеат) эквивалентно -3 х -1лке8(х, кеСгеат). Поскольку в универсуме объектов квантор''/ фактически определяет конъюнк- цию, а квантор 3 — дизъюнкцию, нет ничего удивительного в том, что они подчи- няются правилам де Моргана. Правила де Моргана для высказываний с квантора- ми и без кванторов выглядят следующим образом. -ЗхР = Ух-Р -УхР = Зх-Р УхР = -Зх-Р ЗхР = -Ух-Р -(РУ0 = -(рл0 = -ру-е р л е = -\-р у -0 р у е = л-0 Таким образом, в действительности нет особой необходимости иметь одновре- менно два квантора, У и 3, так же как фактически не нужны обе связки, Л и V. Тем не менее удобство чтения важнее, чем экономия выразительных средств, поэтому мы будем пользоваться обоими этими кванторами. 8.2.7. Равенство Логика первого порядка включает еще один способ составления атомарных вы- сказываний, отличный от использования символов предикатов и термов, как было описано выше. Для указания на то, что два терма ссылаются на один и тот же объ- ект, может использоваться ► символ равенства. Например, утверждение Ра1кег{Лкп) = Непгу
говорит о том, что объект, на который ссылается высказывание Ра(кег Уокп), и объект, указанный под именем Непгу, — это в действительности один и тот же объект. Поскольку в любой интерпретации за каждым термом закрепляется рефе- рент, т.е. объект, на который он ссылается, определение истинности любого выска- зывания с символом равенства сводится к проверке того, представляют ли собой референты двух термов, соединенных символом равенства, один и тот же объект. Символ равенства может использоваться для констатации фактов, касающихся данной конкретной функции, как было только что сделано применительно к функ- циональному символу Ра1кег. Он может также применяться с отрицанием как ука- зание на то, что два терма не представляют собой один и тот же объект. Чтобы выразить мысль о том, что Ричард имеет по меньшей мере двух братьев, можно за- писать следующее: 3 х,у Вго1кег(х, Клскагс!) А Вго1кег(у, Влскагс!) А -1(х =>’). Тогда как высказывание 3 х, у Вго1кег(х, ШскагсТ) А Вго1кег(у, №скаг<1) не имеет подобного, нужного нам смысла. В частности, оно истинно в модели, приведенной на рис. 8.2, где у Ричарда имеется только один брат. Чтобы убедиться в этом, рассмотрим расширенную интерпретацию, в которой обеим переменным, хи у, присваивается один и тот же объект, король Джон, — в результате добавле- ния выражения -<х=у) такие модели становятся недействительными. В качестве сокращения для записи -1(х=у) иногда используется обозначение х у. 8.2.8. Семантика базы данных Продолжим пользоваться примером из предыдущего раздела и предположим, что на самом деле у Ричарда есть два брата, Джон и Джеффри.7 Тогда можно было бы записать следующее: Вго1кег^окп, Шскагс!) Л Вго1кег((3ео$геу, Вгскагс/). (8.3) Однако эта запись не полностью отражает состояние дел. Во-первых, это утверж- дение является истинным в модели, где Ричард имеет только одного брата — нуж- но добавить еще и Джона, поскольку Зокп ОеоЦгеу. Во-вторых, это высказы- вание не исключает те модели, в которых Ричард имеет еще множество братьев, помимо Джона и Джеффри. Следовательно, правильный перевод утверждения “Братья Ричарда — это Джон и Джеффри” на язык логики будет выглядеть следующим образом: Вго1кег(Лкп, Клскагс!) А Вго1кег(Сео^геу, ШскагсТ) А Лкп Сео^геу А V х Вго1кег(х, Влскагс!) => (х = Мп V х = Сео^геу). 7 На самом деле братьев было четверо, двух остальных звали Уильям и Генри.
Это логическое высказывание кажется гораздо более громоздким, чем соответ- ствующее предложение на русском языке. Однако нужно принять во внимание, что, если перевод с русского языка на язык логики будет неправильным, система логического мышления будет делать ошибки. А нельзя ли разработать семантику, позволяющую записывать те же логические высказывания в более простом виде? Одно предложение, которое очень популярно в системах баз данных, работает следующим образом. Во-первых, введем требование, что каждый символ констан- ты должен ссылаться на отдельный, отличный от других объект — ►допущение об уникальности имен. Во-вторых, будем предполагать, что атомарные высказы- вания, об истинности которых нам ничего не известно, в действительности явля- ются ложными— ►допущение о замкнутости мира. И наконец, в-третьих, вве- дем правило ►замыкания проблемной области, означающее, что каждая модель содержит не больше элементов проблемной области, чем имеется элементов, име- нованных символами констант.. Исходя из предложенной выше семантики, уравнение (8.3) действительно утверждает, что у Ричарда ровно два брата, Джон и Джеффри. Назовем эти допу- щения ►семантикой базы данных, что позволит отличать ее от стандартной се- мантики логики первого порядка. Эта же семантика базы данных будет использо- ваться и при обсуждении логического программирования в разделе 9.4.4. Будет поучительно, следуя семантике базы данных, рассмотреть множество всех возможных моделей для того случая, который был представлен выше, на рис. 8.4. На рис. 8.5 показаны некоторые из моделей в диапазоне от модели без кортежей, удовлетворяющих отношению, до модели со всеми возможными кортежами, удов- летворяющих отношению. При наличии двух объектов возможны четыре двухэле- ментных кортежа, поэтому существует 24 = 16 различных подмножеств кортежей, удовлетворяющих отношению. Таким образом, всего имеется 16 возможных моде- лей — несравненно меньшее количество в сравнении с бесконечным их числом для стандартной семантики логики первого порядка. С другой стороны, использование семантики базы данных требует определенных знаний о том, что содержит мир. Рис. 8.5. Некоторые члены множества всех моделей для языка с двумя символами констант, К и У, и одним бинарным символом отношения при использовании семан- тики базы данных. Интерпретация символов констант фиксирована, и для каждого из них имеется отдельный объект
Этот пример подчеркивает один важный момент: для логики не существует ни- какой “правильной” семантики. Полезность любой предлагаемой семантики за- висит от того, насколько кратко и интуитивно понятно она позволяет выразить тот тип знаний, который требуется описать, и насколько просто и естественно бу- дет разработать для нее соответствующие правила логического вывода. Семантика базы данных наиболее полезна, когда мы уверены в идентичности всех объектов, описываемых в базе знаний, и когда у нас в руках имеются все необходимые фак- ты. В иных ситуациях эта семантика может оказаться неудобной. В остальной ча- сти этой главы предполагается использование стандартной семантики, а те случаи, когда это приводит к громоздким выражениям, будут отмечаться особо. 83. Использование логики первого порядка Теперь, после того как выразительный логический язык был определен, мож- но приступить к изучению способов его использования. В этом разделе будут при- ведены примеры высказываний в некоторых простых ► проблемных областях. Когда речь идет о представлении знаний, проблемная область — это просто часть мира, в отношении которой необходимо выразить некоторые знания. Начнем с краткого описания интерфейса Теьь/Азк для базы знаний в логике первого порядка. Затем рассмотрим несколько проблемных областей — семейные отношения, числа, множества и списки, а также мир вампуса. В разделе 8.4.2 при- веден более развернутый пример (электронные схемы), а в главе 10 рассматрива- ется все, что касается данной области науки. 8.3.1. Утверждения и запросы в логике первого порядка Высказывания вводятся в базу знаний с помощью операции Теьь, точно так же, как и в случае логики высказываний. Такие высказывания называются ► утвер- ждениями. Например, можно ввести в базу знаний утверждения, что Джон — ко- роль, Ричард — человек и что все короли — люди: Теьь(О, Кт^окп)), Теьь(О, Регзоп^Кгскан!)), Теьь(О, Ух Юп^(х) =*> Регзоп(х)). Используя операцию Азк, можно задавать вопросы о содержимом базы знаний. Например, на вопрос Азк(О, Кт^Зокп)) будет возвращено значение 1гие. Вопросы, задаваемые с помощью операции Азк, называются запросами или целями. Вообще говоря, на любой запрос, который логически следует из базы знаний, должен быть получен утвердительный ответ. Например, если в ней содержатся три утверждения, приведенные выше, то запрос
А8К(О, Регзог^окп)) также должен вернуть значение 1гие. Кроме того, можно выдавать запросы с кван- торами, такие как А8К(КВ, 3 х Регзоп(х)). Ответом будет /гие, но этот ответ, вероятно, будет не столь полезен, как хотелось бы. Это примерно то же самое, что в ответ на вопрос “Вы можете сказать, который час?” получить ответ “Да”. Если требуется узнать, какое значение х делает некото- рое высказывание истинным, то необходимо использовать другую функцию, кото- рую мы назовем А$кУак8: А8кУак8(О, Регзоп(х)) и которая возвратит поток ответов. В данном случае будет выдано два ответа: {х/Лкп} и {х/ К1скап1}. Подобный ответ называют к подстановкой или ► спи- ском связывания. Функция А8КУАК8 обычно резервируется для баз знаний, со- стоящих исключительно из хорновских выражений, поскольку в таких базах зна- ний любой способ приведения запроса к значению 1гие предполагает связывание переменных с конкретными значениями. Но это замечание вовсе не относится к логике первого порядка: в базе данных КВ, в которую было помещено единствен- ное высказывание КтцМокп) V К1п%(Влскагс1\ нет ни одной связки с х, делающей запрос 3 х Кт$Цх) истинным, хотя этот запрос действительно возвращает значе- ние 1г ие. 8.3.2. Проблемная область родства В качестве первого примера рассмотрим проблемную область семейных отно- шений, или родства. Эта проблемная область включает такие факты, как “Элиза- бет — мать Чарльза” и “Чарльз — отец Уильяма”, и правила наподобие “Чья-то ба- бушка — это мать одного из родителей этого человека”. Очевидно, что объектами в этой проблемной области являются люди. Прежде всего, в ней будут применяться два унарных предиката, Ма1е (Мужчина) и Ре- пине (Женщина). Отношения родства (связи между родителями и детьми, брать- ями и сестрами, мужем и женой и т.д.) будут представлены с помощью бинарных предикатов: Рагеп! (родитель), 81Ыт§ (брат или сестра), Вго(Иег (брат), 81з(ег (сестра), СЫ1с1 (ребенок), Оаи^Ыег (дочь), 8оп (сын), 8роизе (супруг или супру- га), Ш/е (жена), НизЬапс! (муж), Сгапс1рагеп1 (дедушка или бабушка), Сгапс1скИс1 (внук или внучка), Соизт (двоюродный брат или двоюродная сестра), Аип1 (тетя) и 1}пс1е (дядя). В качестве предикатов МоСкег (мать) и Ра(кег (отец) мы будем ис- пользовать функции, поскольку каждый человек имеет по одному из этих объ- ектов в соответствии с законами природы, хотя при необходимости можно было бы ввести дополнительные функции для приемных матерей, суррогатных мате- рей и т.д.
Рассмотрим каждую из этих функций и предикатов, записывая все, что мы знаем о них, в терминах других символов. Например, мать — это родитель женского пола: V т, с Мо(Иег(с) = т Еета1е(т) А РагепЦт, с). Муж — это супруг мужского пола: V и», Л НизЬапсКк, и») 44 Ма1е(к) Л 8рои$е(к, и'). Отношения между родителями и детьми являются взаимно противоположными: V р, с РагепЦр,с) 44 СкИсЦс,р). Дедушка или бабушка — это родитель родителя: V с Огагк1рагет(^, с) 44 3 р Рагепг(&,р) Л РагепЦр, с). Брат или сестра — это еще один ребенок тех же родителей: Vх,у 81ЬНпу,(х,у) 44 х^у Л 3 /> РагепЦр,х) Л РагепЦр,у). Формулируя подобные сведения, можно заполнить еще несколько страниц, и в упражнении 8.17 предлагается сделать именно это. Каждое из этих высказываний может рассматриваться как одна из аксиом в про- блемной области родства. Аксиомы обычно принято связывать с чисто математиче- скими проблемными областями (и мы вскоре рассмотрим некоторые аксиомы для чи- сел), но они нужны во всех проблемных областях. Аксиомы предоставляют основную фактическую информацию, на основании которой логическим путем могут быть по- лучены полезные заключения. Кроме того, приведенные выше аксиомы родства также имеют ► определения; последние представлены в форме Чх, у Р(х, у) 44 ... Аксиомы определяют функцию Мо1кег и предикаты НизЬапсГ, Ма1е, РагепЦ ОгапД- рагеп! и 8Ыту в терминах других предикатов. Но приведенные выше определения можно “свести” к базовому множеству предикатов (СЫШ, Рета1е и тд.), в терминах которых в конечном итоге определяются все остальные предикаты. Эго очень естественный способ, с помощью которого создается представление некоторой проблемной области, и он аналогичен способу, применяемому при соз- дании пакетов программного обеспечения путем последовательного определения процедур из примитивных библиотечных функций. Обратите внимание на то, что множество примитивных базовых предикатов не обязательно должно быть уни- кальным; с таким же успехом можно использовать множество Рагеп1 вместо СЫН. Как будет показано ниже, в некоторых проблемных областях нельзя найти четко определимое базовое множество. Не все логические высказывания о некоторой проблемной области являются аксиомами. Некоторые из них представляют собой ► теоремы, т.е. следуют из ак- сиом. Например, рассмотрим утверждение, что родственные отношения между братьями и сестрами являются симметричными: Ч х, у 81ЬИп$х,у) 44 81Ыт^у,х).
Что это — аксиома или теорема? В действительности это теорема, которая логи- чески следует из аксиомы, определяющей понятие родственных отношений меж- ду братьями и сестрами. Если в базу знаний с помощью функции А$к будет введен запрос в виде этого высказывания, то в ответ должно быть получено значение 1гие. С чисто логической точки зрения в базе знаний должны содержаться только ак- сиомы, но не теоремы, поскольку теоремы не увеличивают множество заключе- ний, которые следуют из базы знаний. Но с практической точки зрения важным свойством теорем является то, что они уменьшают вычислительные издержки на логический вывод новых высказываний. Без них системе формирования рассужде- ний пришлось бы всякий раз начинать логический вывод с самых фундаменталь- ных принципов, — как если бы математику необходимо было каждый раз заново выводить правила исчисления, приступая к решению новой задачи. Не все аксиомы имеют определения. Некоторые из них предоставляют более общую информацию об определенных предикатах без формулировки определе- ний. И действительно, некоторые предикаты не имеют полного определения, по- скольку мы не знаем достаточно для того, чтобы полностью их охарактеризовать. Например, нельзя найти очевидного способа закончить следующее высказывание с определением понятия “человек”: V х Регзоп(х) 4> ... К счастью, логика первого порядка позволяет использовать предикат Регзоп, не определяя его полностью. Вместо этого можно записывать частичные специфика- ции свойств, которыми обладает каждый человек, и свойств, которые идентифици- руют некоторый объект как человека: Ух Регзоп(х) => ... V х ... => Регзоп^х). Аксиомы также могут представлять собой “просто факты”, такие как Ма1е(Лт) или 8роизе(Лт, Ьаига). Подобные факты формируют описания конкретных экзем- пляров задачи, что позволяет находить ответы на конкретные вопросы. Ответы на эти вопросы представляют собой теоремы, которые следуют из аксиом. Однако иногда выясняется, что ожидаемые ответы получить не удает- ся, например можно ожидать (в соответствии с законами многих стран), что из аксиомы 8роизе(Лт, Ьаига) удастся логическим путем вывести факт -^8роизе(Сеог%е, Ьаига), но этот факт не следует как теорема из приведенных выше аксиом, даже если добавить к ним аксиому Лт Оеог^е, как это было предложе- но в разделе 8.2.8. Такая ситуация свидетельствует о том, что в базе знаний не хва- тает какой-то аксиомы. В упражнении 8.9 предлагается предоставить эту аксиому.
8.3.3. Числа, множества и списки По-видимому, числа представляют собой наиболее яркий пример того, как крупная теория может быть построена из крошечного ядра аксиом. В этом разделе будет описана теория ► натуральных чисел, или неотрицательных целых чисел. Для этого потребуется предикат №1№ит, который будет принимать истинное зна- чение при использовании параметра, представляющего собой натуральное число. Кроме того, требуется один константный символ, 0, и один функциональный сим- вол, 8 (зиссемог— преемник). ► Аксиомы Пеано определяют натуральные числа и операцию сложения.8 Натуральные числа определяются рекурсивно: V п №Жит(п) => Ы<иЫит(8(п)). Это означает, что 0 — натуральное число и для каждого обьекта п, если п — нату- ральное число, 8(п) — натуральное число. Поэтому натуральными числами явля- ются 0, 5(0), 5(5(0)) и т.д. Необходимы также аксиомы для ограничения действия функции определения преемника: V п 0 5(и); V т,п т^п => 8(т) 8(п). Теперь мы можем определить операцию сложения в терминах функции определе- ния преемника: V т ^Мит(т) => + (0, т) = т\ У т,п КТа1^ит(т) А =» + (5(от), п) = 5(+ (т, и)). В первой из этих аксиом утверждается, что сложение числа 0 с любым нату- ральным числом т приводит к получению самого числа т. Обратите внимание на использование бинарного функционального символа “+” в терме + (0, /и): в обыч- ной математике такой терм принято записывать в виде 0 + т с использованием к инфиксной системы обозначений. (Система обозначений, которая использует- ся в этом разделе для логики первого порядка, называется ► префиксной.) Чтобы было удобнее читать высказывания, касающиеся чисел, в этом разделе будет также разрешено использовать инфиксные обозначения. Кроме того, мы можем записы- вать 5(л) как п +1, в результате вторая аксиома принимает следующий вид: V т,п Ыа1Ыит(т) А ^11Уит(п) => (т + 1) + п = (т + п) + 1. Эта аксиома сводит сложение к повторному применению функции определения преемника. 8 Аксиомы Пеано включают также принцип индукции, который представляет собой высказывание логики второго порядка, а не логики первого порядка. Важность этого раз- личия объясняется в главе 9.
Такое использование инфиксных обозначений представляет собой пример применения ►синтаксического упрощения, т.е. расширения или сокращения стандартного синтаксиса, при котором семантика не изменяется. Любое выска- зывание, в котором используются такие сокращения, может быть “разупрощено” для получения эквивалентного высказывания в обычной логике первого порядка. Другим примером является использование квадратных скобок вместо обычных круглых, чтобы было проще увидеть, какая именно левая скобка соответствует правой. Еще один пример — сворачивание кванторов: замена V х V у Р(х, у) на V х, у Р(х,у). После определения понятия сложения становится простой задача определения умножения как повторного сложения, возведения в степень как повторного умно- жения, целочисленного деления и определения остатков от деления, формулиров- ки понятия простых чисел и т.д. Таким образом, вся теория чисел (включая та- кие ее приложения, как криптография) может быть сформирована на основе одной константы, одной функции, одного предиката и четырех аксиом. Проблемная область ► множеств также является фундаментальной как для ма- тематики, так и для рассуждений на уровне здравого смысла. (В действительности теория чисел может быть построена и на основе теории множеств.) Необходимо иметь возможность представлять отдельные множества, включая пустое множе- ство. Также потребуется способ составления множеств из элементов или примене- ния операции к другим множествам. Помимо этого, нужны способ выяснения, вхо- дит ли некоторый элемент в состав множества, и возможность отличать множества от объектов, не являющихся множествами. В качестве синтаксического упрощения будем использовать обычный словарь теории множеств. Пустое множество представляет собой константу, которая запи- сывается как {}. Имеется также один унарный предикат, 8е(, который принимает истинное значение, если его фактическим параметром является множество. Би- нарными предикатами являются х € 8 (х — элемент множества 8) и 8, С з2 (8, — подмножество, не обязательно строгое, множества 82). В качестве бинарных функ- ций используются 8| А $2 (пересечение множеств), 8, и х2 (объединение множеств) и А&Цх, х) (множество, полученное в результате присоединения элементах к мно- жеству 8). Один из возможных наборов аксиом приведен ниже. 1. Единственными множествами являются пустое множество и множества, по- лученные путем присоединения некоторого элемента к множеству: V 8 44 (8 ={}) V (3 х, 82 8е1 (8^ А 8 = АскЦх, 82)). 2. Пустое множество не имеет присоединенных к нему элементов, иными сло- вами, не существует способа разложения множества {} на меньшее множе- ство и еще один элемент: >3 X, 8 АМ(х,з)= {}.
3. Присоединение к множеству элемента, уже имеющегося в этом множестве, не оказывает никакого эффекта: Ух, $ х € $ # = Аск1(х9 5). 4. Единственными элементами множества являются элементы, которые были к нему присоединены. Мы выразим эту мысль рекурсивно, утверждая, что х — элемент множества 5 тогда и только тогда, когда 5 эквивалентно не- которому множеству 52, к которому присоединен некоторый элементу, где либо у совпадает с х, либо х является элементом 52: Ух, 5 х € 5 <=> Зу, 52 (5=АМ(у, 5г) А (х = у \/х € $2)). 5. Множество является подмножеством другого множества тогда и только тог- да, когда все элементы первого множества являются элементами второго множества: V % $2 5, с $2 & ( X X € 5, =► X € $2). 6. Два множества равны тогда и только тогда, когда каждое из них является подмножеством другого: У 52 (5, = $2) <=> 01 С 52 А 52 с $]). 7. Некоторый обьект принадлежит к пересечению двух множеств тогда и толь- ко тогда, когда он является элементом обоих этих множеств: У X, 519 52 X € ($! А $2) <=> (X € 5! А X € 52). 8. Некоторый обьект принадлежит к обьединению двух множеств тогда и толь- ко тогда, когда он является элементом любого из этих двух множеств: У х, $!, 52 х € ($! и $2) (х € V х € 52). ► Списки подобны множествам. Различия между ними состоят в том, что спи- ски упорядочены и один и тот же элемент может появляться в списке несколь- ко раз. Для списков может использоваться словарь ключевых слов языка 1л$р: М/ — это список-константа без элементов; Сопя, АррепсЦ Р1г$1 и Кез!— функции, а Р1пс1— предикат, выполняющий для списков те же функции, что МетЪег выпол- няет для множеств. Ыз!— предикат; принимающий истинное значение только при получении параметра, представляющего собой список. Как и в случае множеств, принято использовать некоторые синтаксические упрощения в тех логических вы- сказываниях, в которых применяются списки. Пустой список обозначается как []. Терм Сои$(х, МТ) (т.е. список, содержащий только элемент х) записывается как [х]. Список из нескольких элементов, такой как [А, В, С], соответствует вложенному терму Сопз(А, Сопз(В9 Сопз(С9 ^^^))). В упражнении 8.20 предлагается составить необходимый набор аксиом для списков.
8.3.4. Мир вампуса Некоторые аксиомы логики высказываний для мира вампуса были приведены в главе 7. Аксиомы логики первого порядка, рассматриваемые в этом разделе, яв- ляются гораздо более краткими и совершенно естественным способом выражают именно то, что требуется описать в этом мире. Напомним, что в мире вампуса агент получает вектор восприятий с пятью эле- ментами. Соответствующее высказывание в логике первого порядка, хранящее- ся в базе знаний, должно включать данные о результатах восприятия и о времени, в которое они были получены; в противном случае у агента возникнет путаница в отношении того, когда и что он воспринимал. Для обозначения моментов време- ни будут использоваться целые числа. Типичным высказыванием с данными о вос- приятии является следующее: Регсер1([8(епск, Вгееге, ОПиег, Мопе, М>пе], 5), где Регсер1 — бинарный предикат; 81епск и т.д. — константы, помещенные в спи- сок. Действия в мире вампуса могут быть представлены с помощью логических термов следующим образом: Тит(К1%к1\ Тит(Ье/1), РогууогсГ, 8коо1, ОгаЬ, СНтЬ. Чтобы определить, какое действие является наилучшим, программа агента со- ставляет примерно такой запрос: А8кУак8(.О, ВеМАсПоп(а, 5)), который возвращает список связывания, такой как {а/ОгаЬ}. В результате програм- ма агента может вернуть ОгаЬ как действие, которое должно быть выполнено. Из исходных данных о восприятии следуют некоторые факты о текущем состоянии, например: V /, 5, %, И", с V /, 5, %, УУ, с V I, 8, Ъ, УУ, с V I, 5, Ь, УУ, с Регсер1([з,Вгееге,%,уу,с],1) => Вгееге(1), Регсер1([$, 18опе, %, уу, с], I) => ~Вгееге(1), РегсерК[5, Ь, ОПиег, уу, с], I) => ОПиегЦ), Регсер1([з, Ь, Ыопе, уу, с], 0 => ~^ОПиег{1) и т.д. Эти правила являются проявлением простейшей формы процесса формиро- вания рассуждений, называемого восприятием, который будет подробно рассма- триваться в главе 25. Обратите внимание на то, что квантификация происходит по переменной I, определяющей момент времени. В логике высказываний приходи- лось создавать копии каждого высказывания для каждого момента времени. Также в этой логике могут быть реализованы простые “рефлекторные” вариан- ты поведения с помощью импликационных высказываний с кванторами. Напри- мер, можно предусмотреть следующее правило: VI О1Шег(!) => ВеМАсПоп(ОгаЬ, I).
При наличии результатов восприятия и правил, приведенных в предыдущих абза- цах, применение данного правила привело бы к желаемому заключению Вез1Ас- Иоп(ОгаЪ9 5), т.е. в данный момент следует выполнить действие СтгаЬ. Выше были представлены восприятия и действия агента, а теперь пора пред- ставить описание самой среды. Начнем с объектов. Очевидными кандидатами яв- ляются квадраты, ямы и вампус. Можно было бы присвоить имя каждому квадра- ту (8с[иагех2 и т.д.), но тогда тот факт, что 8срлагеХ2 и 8диагех 3 являются соседними, пришлось бы оформить как “дополнительный” факт и потребовалось бы по одно- му такому факту для каждой пары квадратов. Поэтому лучше использовать слож- ный терм, в котором строка и столбец показаны в виде целых чисел, например списковый терм [1,2]. В таком случае определение понятия соседства любых двух квадратов можно представить следующим образом: V х, у, а, Ь Ас1]асеп1([х9у]9 [а, />]) <=> (х = аЛ(у = Ь-1 \/у = 6+1))\/(у = 6Л(х = а-1 V х = а + 1)). Далее, можно было бы присвоить имя каждой яме, но такое решение является неподходящим по другой причине: нет никакого смысла проводить различия меж- ду ямами.9 Гораздо проще использовать унарный предикат /77, который принима- ет истинное значение в квадратах, содержащих ямы. Наконец, поскольку имеется точно один вампус, для его представления равным образом подходят и константа 1Уитриз9 и унарный предикат (с точки зрения вампуса последний способ обозна- чения может оказаться даже более почетным). Местонахождение агента меняется со временем, поэтому будет удобнее приме- нить запись А1(А%еп19 5, /) для указания на то, что агент находится в квадрате з в момент времени Л Связать вампуса с конкретным местоположением, в котором он находится постоянно, можно с помощью высказывания VI АЦФитриз, [1,3], /)• Теперь следует указать, что в каждый момент времени любые объекты могут нахо- диться только в одном местоположении: V х, 519 з29 I А1(х9 зХ9 I) Л А1(х9 з29 I) => зх = з2. Зная свое текущее местонахождение, агент посредством логического вывода может выявлять свойства определенного квадрата на основании его текущего вос- приятия. Например, если агент находится в некотором квадрате и чувствует вете- рок, то в этом квадрате присутствует ветерок: V з91 А1(А%еп19 з91) Л Вгееге(1) => Вгеегу(з). 9 Аналогичным образом большинство из нас не присваивают имя каждой птице, кото- рая пролетает у нас над головой или переселяется в теплые края на зиму. С другой сторо- ны, орнитологи, желающие изучить пути миграции, показатели выживания и так далее, присваивают имя каждой отловленной птице, закрепив кольцо на ее ноге, поскольку им приходится следить за отдельными птицами.
Агенту важнее знать не то, что он вообще чувствует ветерок, а то, что ветерок чувствуется в определенном квадрате, поскольку ему известно, что ямы не меня- ют своего местоположения. Обратите внимание на то, что предикат Вгеегу (в ква- драте есть ветерок) не имеет параметра, определяющего момент времени. Обнаружив, в каких местах чувствуется ветерок (или неприятный запах), а так- же, что очень важно, в каких местах не чувствуется ветерок (или неприятный за- пах), агент получает возможность логическим путем определять, где расположены ямы (и где находится вампус). В то время как в логике высказываний необходимо было задавать отдельную аксиому для каждого квадрата (см. высказывания К2 и К3 в разделе 7.4.3) и приходилось создавать различные наборы таких аксиом для каж- дого экземпляра мира с иной географией, в логике первого порядка нам потребу- ется только одна аксиома: Вгеегу(к) <=> 3 г Ас1]асеп1(г. $) Л А7(г). (8.4) Аналогичным образом, поскольку в логике первого порядка можно количе- ственно оценивать ход времени, для каждого предиката потребуется только одна аксиома определения преемника вместо новой копии такой аксиомы для каждого временного этапа. Например, аксиома для стрелы (уравнение (7.2) в разделе 7.7.1) приобретает вид VI НачеАггоуу(1 + 1) (НачеАггоуу(1) Л -^АсИоп(8коо1. /))• Из этих двух примеров высказываний очевидно, что формулировка описания среды в логике первого порядка не менее лаконична, чем ее исходное описание на русском языке, приведенное в главе 7. Читателю предлагается построить анало- гичные аксиомы для определения местоположения и ориентации агента, — в этом случае в аксиомах потребуется количественно оценивать и время, и пространство. Как и в случае оценки состояния в логике высказываний, агент на основании ак- сиом этого типа сможет использовать логический вывод для отслеживания тех аспектов мира, которые не может наблюдать непосредственно. В главе 11 аксиомы выбора преемника в логике первого порядка рассматриваются глубже, а затем об- суждается возможность их использования для построения планов. 8.4. Инженерия знаний на основе логики первого порядка________________________________________________________ В предыдущем разделе иллюстрировалось использование логики первого по- рядка для представления знаний в трех простых проблемных областях. В этом разделе рассматривается общий процесс конструирования базы знаний, называ- емый ► инженерией знаний. Инженером по знаниям называется специалист, ко- торый исследует конкретную проблемную область, определяет, какие понятия в ней важны, и создает формальное представление объектов и отношений в этой
проблемной области. В этом разделе процесс инженерии знаний будет проиллю- стрирован на проблемной области проектирования электронных схем. Применяе- мый в этом разделе подход будет подходящим для разработки баз знаний специаль- ного назначения, проблемная область которых тщательно очерчена и круг запросов известен заранее. Базы знаний общего назначения, которые предназначены для поддержки запросов, касающихся широкого диапазона человеческих знаний, об- суждаются в главе 10. 8.4.1. Процесс инженерии знаний Отдельные проекты в области инженерии знаний значительно отличаются друг от друга по содержанию, охвату темы и сложности, однако все они включают пе- речисленные ниже этапы. 1. Определение задания. Инженер по знаниям должен очертить круг вопросов, которые будет поддерживать база знаний, а также виды фактов, которые бу- дут доступны каждой конкретной реализации задачи. Например, должна ли база знаний о вампусе предоставлять возможность выбирать действия или от нее требуется только давать ответы на вопросы о содержимом окружаю- щей среды? Должны ли факты, полученные от датчиков, включать сведения о текущем местонахождении? Само задание определяет, какие знания долж- ны быть представлены в базе, чтобы можно было связать определенные ре- ализации задачи с ответами. Этот этап аналогичен процессу РЕАБ проекти- рования агентов, описанному в главе 2. 2. Сбор относящихся к делу знаний. Инженер по знаниям может уже быть экс- пертом в рассматриваемой проблемной области или же ему может потре- боваться общаться с настоящими экспертами для выявления всего, что они знают — этот процесс называется к приобретением знаний. На этом эта- пе знания еще не представлены формально. Его назначение состоит в том, чтобы понять, каким должен быть диапазон знаний в базе знаний, определя- емый самим заданием, а также разобраться в том, как фактически функцио- нирует рассматриваемая проблемная область. Для мира вампуса, определенного с помощью искусственного набора пра- вил, относящиеся к делу (релевантные) знания выявить несложно. (Однако следует отметить, что определение понятия соседства квадратов не форму- лировалось явно в правилах функционирования мира вампуса.) Для реаль- ных проблемных областей задача выявления релевантных знаний может оказаться весьма сложной, например система для эмуляции работы спроек- тированных СБИС может требовать или не требовать учета паразитных ем- костей и поверхностных эффектов. 3. Определение словаря предикатов, функций и констант. Иначе говоря, это перевод всех важных концепций уровня проблемной области в уровень
логических имен. При этом потребуется найти ответы на многие вопросы о стиле инженерии знаний. Как и от стиля программирования, от выбран- ных решений может существенным образом зависеть окончательный успех проекта. Например, должны ли ямы быть представлены с помощью объек- тов или с помощью унарного предиката, определенного на квадратах? Долж- на ли ориентация агента быть задана в виде функции или в виде предика- та? Должно ли местонахождение вампуса зависеть от времени? Когда все необходимые решения будут приняты, конечным результатом этих усилий будет словарь, который принято называть ► онтологией проблемной обла- сти. Само слово онтология означает определенную теорию бытия или суще- ствования. Онтология проблемной области определяет, какого рода объекты в ней существуют, но не определяет их конкретных свойств и взаимосвязей. 4. Кодирование общих знаний о проблемной области. Инженер по знаниям за- писывает аксиомы для всех термов словаря. Тем самым он закрепляет (на- сколько это возможно) смысл этих термов, позволяя экспертам проверить их содержание. На этом этапе часто обнаруживаются неправильные трак- товки или пропуски в словаре, которые необходимо исправить, возвратив- шись на этап 3 и вновь пройти данную итерацию в текущем процессе про- ектирования. 5. Кодирование описания экземпляра задачи. Если онтология хорошо продума- на, этот этап будет несложным. Он сводится к написанию простых атомар- ных высказываний об отдельных образцах понятий, которые уже являются частью онтологии. Для логического агента сведения об отдельных реализа- циях задачи предоставляются датчиками, а сама “бестелесная” база знаний снабжается дополнительными высказываниями таким же образом, как тра- диционные программы снабжаются входными данными. 6. Передача запросов процедуре логического вывода и получение ответов. Именно здесь нас ожидает награда: теперь можно применить процедуру ло- гического вывода к аксиомам и фактам о конкретной задаче для получения фактов, которые нам интересно узнать. В результате становится возможным избавиться от необходимости написания алгоритма решения для конкретно- го приложения. 7. Отладка и оценка базы знаний. К сожалению, ответы на запросы редко ока- зываются правильными уже с первой попытки. Точнее, ответы будут пра- вильными для базы знаний в том виде, в каком она написана, при условии, что процедура логического вывода является непротиворечивой, но они мо- гут оказаться не совсем такими, каких ожидает пользователь. Например, если недостает какой-то аксиомы, то найти ответ на некоторые запросы в данной базе знаний будет невозможно. В результате потребуется провести продуманный процесс отладки. Недостающие или слишком слабые аксио- мы могут быть легко выявлены путем обнаружения участков, на которых
неожиданно обрывается цепочка этапов логического вывода. Например, если база знаний содержит следующую диагностическую аксиому (см. упражнение 8.16) для обнаружения вампуса: V л 8те11у(з) => А<^асеп1(Ноте(\Уитри8), 5) вместо аксиомы с двумя условиями, то агент никогда не сможет доказать отсутствие вампусов. Неправильные аксиомы можно выявить при отладке потому, что они являются ложными утверждениями о мире. Например, ак- сиома V х 1\1итО/Ье%8(х, 4) => МаттаЦх) является ложной, поскольку относит к млекопитающим рептилий, амфибий и, что еще важнее, столы с четырьмя ножками. Ложность этого высказыва- ния может быть определена независимо от остальной части базы знаний. В про- тивоположность этому типичная ошибка в программе выглядит примерно так: оГГзе! = розШоп + 1. Глядя на эту строку, невозможно сказать, следует ли переменной о^зе! присвоить значение роз!Ноп или розШоп + 1, без понимания окружаю- щего ее контекста. Достигнув состояния, когда очевидных ошибок в базе знаний уже не осталось, заманчиво немедленно объявить об успехе. Но на самом деле, когда явных оши- бок уже нет, самое время формально оценить созданную систему, запустив ее на тестовом наборе запросов и определив, насколько правильным будет полученный результат. Без объективного измерения, слишком легко убедить себя, что работа действительно завершена. Чтобы лучше понять этот процесс, состоящий из семи этапов, ниже мы применим его к расширенному примеру — к проблемной обла- сти электронных схем. 8.4.2. Проблемная область электронных схем В этом примере мы разработаем онтологию и базу знаний, позволяющую рас- суждать о цифровых электронных схемах такого типа, как показано на рис. 8.6, и будем руководствоваться описанным выше семиэтапным процессом инженерии знаний. Определение задания С цифровыми схемами связано много задач, требующих логических рассуж- дений. На самом высоком уровне требуется проанализировать функциональное назначение схемы. Например, действительно ли приведенная на рис. 8.6 схема выполняет сложение должным образом? Если на все входы подается высокий по- тенциал, то каким будет потенциал, на выходе логического элемента А2? Интерес
представляют также вопросы о структуре схемы. Например, что представляют со- бой все логические элементы, подключенные к первой входной клемме? Содержит ли эта схема петли обратной связи? В этом и заключаются задачи, рассматривае- мые в данном разделе. Существуют также более детализированные уровни анали- за, включая те, которые относятся к определению продолжительности задержек, площади схемы, потреблению энергии, стоимости производства и т.д. Для каждо- го из этих уровней могут потребоваться дополнительные знания. Рис. 8.6. Цифровая схема С19 предназначенная для использования в качестве одно- битового полного сумматора. На первые два входа подаются два бита, подлежащие сложению, а на третий вход подается бит переноса. На первом выходе находится сумма, а на втором — бит переноса для следующего сумматора. Схема включает два логических элемента Исключающее ИЛИ (Хх, Х2), два логических элемента И (А19 А2) и один логический элемент ИЛИ (С^) Сбор относящихся к делу знаний Что мы знаем о цифровых схемах? Для наших целей достаточно знать, что они состоят из проводов и логических элементов. Сигналы распространяются по про- водам к входным клеммам логических элементов, а каждый логический элемент вырабатывает на выходной клемме сигнал, который распространяется по другому проводу. Чтобы определить, какими должны быть эти сигналы, нам необходимо знать, как логические элементы преобразуют свои входные сигналы. Существует четыре основных типа логических элементов: логические элементы АКО (И), ОК (ИЛИ) и ХОК (Исключающее ИЛИ) имеют по две входные клеммы, а логический элемент КОТ (НЕ) имеет одну входную клемму. Все логические элементы имеют одну выходную клемму. Схемы, как и логические элементы, имеют входные и вы- ходные клеммы. Чтобы рассуждать о функциональных назначениях и связях в электронной схеме, не нужно вести речь о самих проводах, о путях, по которым они проло- жены, или о соединениях, в которых они встречаются. Имеют значение только
соединения между клеммами — можно утверждать, что одна выходная клемма со- единена с другой, входной клеммой, не упоминая о том, как и чем они фактически связаны. В этой проблемной области имеется также множество других факторов, не имеющих отношения к нашему анализу, таких как размеры, форма, цвет или стоимость различных компонентов. Если бы нашей целью было что-то иное, а не просто проверка схемы на уровне логических элементов, то онтология была бы другой. Например, если бы нас инте- ресовала отладка неисправных электронных схем, то, по-видимому, целесообраз- но было бы включить в онтологию провода, поскольку неисправный провод может исказить проходящий по нему сигнал. С другой стороны, для устранения ошибок синхронизации потребовалось бы включить в рассмотрение задержки логических элементов. А если бы мы были заинтересованы в проектировании продукта, кото- рый должен быть прибыльным, то для нас имели бы значение такие данные, как стоимость производства электронной схемы или ее быстродействие в сравнении с другими продуктами на рынке. Определение словаря Теперь нам известно, что речь пойдет о схемах, клеммах, сигналах и логи- ческих элементах. На данном этапе необходимо выбрать функции, предикаты и константы для их представления. Прежде всего необходимо иметь возможность отличать один логический элемент от других логических элементов. Каждый ло- гический элемент будет представлен объектом, именованным константой, посред- ством которой мы будем утверждать, что это элемент, скажем, Оа1е(Х^. Поведение каждого элемента определяется его типом, определяемым одной из констант ЯМ), (97?, ХОК и ХОТ. Поскольку каждый логический элемент имеет точно один тип, можно воспользоваться соответствующей функцией: Туре(Х^ = ХОК. Схемы, как и логические элементы, будут идентифицироваться предикатом: С1гсиИ(Сх). Далее рассмотрим клеммы, которые будут идентифицироваться предикатом Тег- тта1(х). Схема может иметь одну или несколько входных клемм и одну или не- сколько выходных клемм. Будем использовать функцию 7и(1, Хх) для обозначения первой входной клеммы логического элемента^. Аналогичная функция Ои1(п, с) будет использоваться для выходных клемм. Функция Ан1у(с,1,/) указывает на то, что схема с имеет / входных и у выходных клемм. Связь между логическими элементами может быть представлена с помощью предиката СоппеаесЦ который принимает в ка- честве параметров имена двух клемм, как, например, Соппес1ес1(Ои1(\, Х^ 1п(1, X?)). И наконец, необходимо знать, включен или выключен сигнал на клемме. Одна из возможностей состоит в использовании унарного предиката Оп(1\ который при- нимает истинное значение, когда сигнал на клемме I включен. Однако при этом затрудняется постановка таких вопросов, как “Каковы возможные значения сиг- налов на выходных клеммах схемы С^” Поэтому введем в качестве объектов два значения сигнала, 1 (включено) и 0 (выключено), и функцию 81%па1(1\ которая определяет значение сигнала для клеммы I.
Кодирование общих знаний о проблемной области Одним из признаков наличия хорошей онтологии является то, что при ее исполь- зовании требуется определить очень немного общих правил, которые могут быть сформулированы четко и кратко. Вот все аксиомы, которые будут нам необходимы. 1. Если две клеммы соединены, то на них присутствует один и тот же сигнал: V /2 Тегпипа1(1^ Л Тегтта1(1^ Л Соппес1ес1(1х, /2) => 5/^иа/(О = ^а/а2). 2. Сигнал на каждой клемме равен либо 1, либо 0: V/ Тегт1па1Ц) => 81%па1(!)=\ V 81$па!(1) = 0. 3. Предикат Соппеаес! является коммутативным: V /„ (2 Соппес1е<1(1^ 12) Соппес1ес1(12, /,). 4. Существует четыре типа элементов: Оа1е(%) /\к=Туре(%) => к = АХО\/ к= ОК\/ к=ХОК\/ к = ХОТ. 5. На выходе логического элемента АХО присутствует 0 тогда и только тогда, когда на любом из его входов присутствует 0: V % (Аа1е(%) Л Туре(%) = АХО => 81%па1 (Ои1 (1, &)) = 0 <=> Зп 81%па1 (1п(п, §)) = 0. 6. На выходе логического элемента ОК присутствует 1 тогда и только тогда, когда на любом из его входов присутствует 1: V % Оа1е(%) Л Туре(%) = ОК => 81%па1 &)) = 1 <=> Эл 81%па1 (1п(п,%)) = 1. 7. На выходе логического элемента ХОК присутствует 1 тогда и только тогда, когда на его входах присутствуют разные сигналы: V # <3а1е(%) Л Туре[%) = ХОК => 81^па1 (Ои1(\, $)) = 1 81%па1 я)) * 8цгпа1 (1п(2, &)). 8. Выход логического элемента ХОТ противоположен его входу: V % 6а1е(%) Л Туре(%) = ХОТ => 81%па1 (Ои1 (1, %)) * 81%па1 (1п( 1, %). 9. Логические элементы (кроме ХОТ) имеют два входа и один выход: V % Сга1е(%) Л Туре(%) = ХОТ => Ап1у(%, 1,1), V% (За1е(%) /\к = Туре(%) Л (к = АХО V к= ОК V к = ХОК) => АгИу(&2, 1). 10. Логический элемент имеет клеммы, количество которых определяется его входной и выходной арностью, и ничем, кроме арности:
V с, /,/ С1гсиН(с) А АгНу(с, I,/) => V п (п<1 => Тегт1па1 (1п(п, с))) А (п > / => 1п(п, с) = /\ V л (п <У => Тегт1па1(Ои((п, с))) А (л >/ => Ои1(п, с) = 1№Ып%). 11. Логические элементы, клеммы и сигналы являются различными объектами: V 1,5 (За1е(%) Л Тегпйпа1(1) Л 81%па1 ($) => 8^1 А 5 /\1 5. 12. Логические элементы — это цепи: V § Са1е(у;) => агсиН(%). Кодирование описания экземпляра задачи Схема, показанная на рис. 8.6, представлена как схема С\ со следующим описа- нием. Прежде всего определим типы всех логических элементов. С1гсиН(С\) А Лг//у(С|, 3, 2) (1а1е(Х}) А Туре{Хх) = ХОК Оа1е(Х2) А Туре(Х^ = ХОК Оа^А,) А Туре(А1) = АХО (За1е(А2) А Туре(А2) = А№ (За1е(О\) А Туре(Ох) = ОК Теперь определим связи между ними. Соппес1е<1(Ои1 (1, Х^, 1п{ 1, X)) Соппес1е<1(Ои1(\, X,), 1п(2, А2)) Соппес1есКОи1(\, А2), 1п( 1, О])) Соппес1ес1(Ои1(\, Ах), 1п(2, О()) Соппес1ес1(Ои1 (1, Х^, Ои1 (1, С1)) Соппес1ес1(Ои1(\, О,), Ои1(2, С,)) Соппес1е<1(1п(\, С,), /л( 1, А-!)) Соппес1ес1(1п(\, С(), /л(1, А ()) Соппес1ес1(1п(2, С,), /л(2, У,)) Соппес1ес1(1п(2, С(), 1п(2, А,)) Соппес1ес1(1п(3, С,), /л(2, Х2)) Соппес1есЦ1п(3, С,), /л(1, Л2)) Передача запросов процедуре логического вывода Какая комбинация входных сигналов вызовет появление 0 на первом выходе схемы С, (бит суммы) и появление 1 на втором выходе схемы С, (бит переноса)? 3 /„ /2, /3 Кг^па!(1п( 1, С])) = /( А 81упа1 (1п(2, Сх)) = /2 А 81%па1 (1п(3, С,)) = /3 А 81ёпа1(Ои1{\, С,)) = О А Кг^паКОиК?., С,)) = 1. Ответами являются такие подстановки значений для переменных /„ /2 и /3, что ре- зультирующее высказывание следует из базы знаний. Функция АзкУдкз вернет три такие подстановки: {/71, /2/1, /3/0} {/,/1, /2/о, /3/1} {/(/о, /2/1, /3/1}.
Каковы возможные множества значений сигналов на всех клеммах этой схемы сумматора? 3 /2, /3,0], о2 81%па1(1п(\, СХУ) = Л 81%па!(/п(2, С,)) = /2 Л 81%па1(1п{3, С,)) = /3 Л $1%па1(Ои({\, С,)) = о, Л 81^па1(Ои1(2, С\)) = о2 Этот последний запрос должен вернуть полную таблицу входов и выходов для данного устройства, которая может использоваться для проверки того, действи- тельно ли эта схема правильно суммирует входные данные. Это простой пример ► проверки схемы. Можно применять приведенное здесь определение данной схемы и для создания более крупных цифровых систем, для которых также может осуществляться процедура проверки такого же рода (см. упр. 8.33). Для структу- рированной разработки базы знаний такого же рода подходят многие проблемные области, в которых более сложные понятия определяются на основе более про- стых понятий. Отладка базы знаний В процессе отладки эту базу знаний можно тем или иным способом нару- шить — для определения того, какие виды ошибочного поведения будут с этим связаны. Например, предположим, что раздел 8.2.8 не был прочитан и в результа- те оказалось пропущенным утверждение, что 1 * 0. В результате система внезап- но потеряла способность доказывать наличие каких-либо выходных сигналов для данной схемы, за исключением тех случаев, когда на вход поданы сигналы ООО и 110. Наличие этой проблемы можно выявить, запрашивая выходные сигналы каж- дого логического элемента. Например, можно ввести запрос 3 /], /2, о 81&ю1(1иЦ\, С,)) = /, Л С,)) = /2 Л 81%па1(Ои1(\, А”])) = о, который позволит обнаружить, что выходные значения элемента Х1 становятся не- известными в случае подачи на его вход сигналов 10 и 01. Теперь рассмотрим ак- сиому для логических элементов ХОК применительно к У,: 81%па1(Ои1 (1, X,)) = 1 81^па1(1п( 1, X,)) = 81^га1(1п(2, X,)). Если известно, что на вход поданы сигналы, скажем, 1 и 0, то эта аксиома сводит- ся к следующей: 8црга1(Ои1(\,Х^)= I 4^1*0. Теперь проблема становится очевидной: система неспособна вывести логиче- ское заключение, что 81^па1(Ои1 (1, X,)) = 1, поэтому ей необходимо сообщить, что 1^0.
Резюме В этой главе приведены вводные сведения о логике первого порядка — язы- ке представления, гораздо более мощном по сравнению с логикой высказываний. Ниже перечислены наиболее важные понятия, представленные в данной главе. • Языки представления знаний должны быть декларативными, композицион- ными, выразительными, независимыми от контекста и непротиворечивыми. • Различные варианты логики отличаются друг от друга по своему онтологи- ческому вкладу и эпистемологическому вкладу. Вклад логики высказы- ваний состоит только в сведениях о существовании фактов, тогда как логика первого порядка дополнительно охватывает сведения о существовании объ- ектов и их отношениях, что повышает ее выразительную мощь до уровня, необходимого для таких проблемных областей, как мир вампуса или элек- тронные схемы. • Как логика высказываний, так и логика первого порядка испытывают за- труднения в представлении неопределенных высказываний. Эти затрудне- ния ограничивают возможность их применения в тех проблемных областях, в которых обязательно присутствуют личные суждения, таких как полити- ка или кухня. • Синтаксис логики первого порядка построен на синтаксисе логики высказы- ваний. К последнему добавлены лишь термы для представления объектов и два квантора — квантор всеобщности и квантор существования, — необхо- димые для построения утверждений обо всех или только о некоторых воз- можных значениях количественных переменных. • Для логики первого порядка возможный мир или модель включает множе- ство объектов и интерпретацию, отображающую символы констант на объ- екты, символы предикатов на отношения между объектами и символы функ- ций на те функции, которые могут применяться к объектам. • Атомарное высказывание будет истинным только тогда, когда обозначенное предикатом отношение действительно имеет место между объектами, обо- значенными входящими в это высказывание термами. Расширенные ин- терпретации, отображающие переменные кванторов на объекты в модели, определяют истинность высказываний в кванторах. • Разработка базы знаний в логике первого порядка требует проведения тща- тельного анализа проблемной области, выбора словаря и составления акси- ом, необходимых для под держки желаемых процедур логического вывода.
Библиографические и исторические заметки Хотя первые попытки применять обобщения к объектам предпринимались уже в логике Аристотеля, им было еще очень далеко до выразительной силы логики первого порядка. Основное препятствие в их дальнейшей разработке заключалось в концентрации лишь на одноместных предикатах и исключении из рассмотрения многоместных предикатов отношений. Первый систематический анализ отноше- ний был проведен Аугустусом Де Морганом ([561], 1864), который привел сле- дующий пример с целью продемонстрировать тот тип логического вывода, спра- виться с которым логика Аристотеля была неспособна: “Все лошади — животные, следовательно, голова лошади — это голова животного”. Подобный вывод недо- ступен логике Аристотеля, потому что в любом допустимом правиле, способном обеспечить этот логический вывод, сначала следует проанализировать высказы- вание, используя двухместный предикат “х является головой у”. Логика отноше- ний глубоко исследовалась Чарльзом Сандерсом Пирсом (Пирс [1764], 1870; Ми- сак [1590], 2004). Появление подлинной логики первого порядка датируется введением кванто- ров Готглобом Фреге в его книге Ве&г$8скг{(1 (“Система обозначения понятий”) ([775], 1879). Пирс ([1765], 1883) также разработал логику первого порядка, при- чем независимо от Фреге, но сделал это немного позже. Предложенная Фреге воз- можность вкладывать кванторы была большим шагом вперед, но он использовал слишком громоздкую систему обозначений. Современная система обозначений для логики первого порядка появилась в основном благодаря Джузеппе Пеано ([1747], 1889), но ее семантика практически идентична семантике, предложенной в работе Фреге. Хотя сейчас это кажется довольно странным, аксиомы Пеано в значительной степени обязаны своим появлением работе Грассмана ([916], 1861) и публикации Дедекинда ([590], 1888). Леопольд Лёвенхейм ([1451], 1915) дал систематическую трактовку теории мо- делей для логики первого порядка. Также в его статье символ равенства рассма- тривался как неотъемлемая часть логики. Результаты Лёвенхейма были дополни- тельно расширены Торальфом Сколемом ([2081], 1920). Альфред Тареки ([2174], 1935; [2176], 1956) дал явное определение понятий истинности и модельно-тео- ретического выполнения в логике первого порядка с использованием теории мно- жеств. Первым, кто предложил использовать логику первого порядка в качестве ин- струмента для создания систем искусственного интеллекта, был Джон Маккар- ти ([1529], 1958). Перспективы искусственного интеллекта на основе логики зна- чительно расширились в результате разработки Робинсоном резолюции ([ 1900], 1965) — полной процедуры вывода для логики первого порядка. Подход, позднее получивший название логицистского, зародился в Станфордском университете. Корделл Грин ([919], 1969; [920], 1969) разработал первую систему формирова- ния рассуждений в логике первого порядка, РАЗ, что привело к первым попыткам
создания логического робота в институте 8К1 (Файке и Нильссон [738], 1971). Логика первого порядка была применена Зохаром Манна и Ричардом Валдинге- ром ([1483], 1971) для формирования рассуждений о программах, а позднее — Майклом Генезеретом ([835], 1984) для формирования рассуждений об электрон- ных схемах. В Европе для использования в лингвистическом анализе ([466], 1973) и для создания общих декларативных систем ([1295], 1974) было разработано ло- гическое программирование (ограниченная форма проведения рассуждений в логике первого порядка). Кроме того, в ходе разработки проекта ЬСР (Ьо§1с Гог СотрЩаЫе Рипсйопз) в Эдинбурге (Гордон и др. [905], 1979) был внесен большой вклад в вычислительную логику. Подробнее история этих разработок будет описа- на в главах 9 и 10. Практические приложения, построенные с использованием логики первого по- рядка, включают систему оценки производственных требований для продуктов электроники (Мэннион [1488], 2002), систему рассуждений о политике доступа к файлам и управления цифровыми правами (Гальперн и Вайсман [953], 2008), а также систему автоматизированного составления веб-сервисов (МакИлрайт и Цзэн[1549], 2001). Комментарии к гипотезе Уорфа ([2333], 1956) и проблеме языка и мышления в целом встречаются в нескольких книгах (Пуллум [1825], 1991; Пинкер [1794], 2003), включая статьи с, казалось бы, противоположными названиями: “Почему мир выглядит иным на других языках” (Детчер [613], 2010) и “Почему мир вы- глядит одинаково на любом языке” (МакУотер [1554], 2014), хотя оба автора со- гласны, что различия есть и эти различия невелики. В теории “Теория” (Гопник и Глимо [902], 2002; Тененбаум и др. [2190], 2007) процесс изучения мира ребенком воспринимается как аналогичный процессу создания научных теорий. Точно так же, как оценки и заключения системы машинного обучения сильно зависят от сло- варя, на основе которого выполнялось ее обучение, так же и формулировки теорий ребенка будут зависеть от языковой среды, в которой происходит его обучение. Существует целый ряд хороших вводных учебников по логике первого поряд- ка, в том числе созданных некоторыми из ведущих фигур в истории логики: Аль- фред Тарский ([2175], 1941), Алонзо Черч ([432], 1956) и У.В. Квайн ([1833], 1982) (один из наиболее популярных). В книге Эндертона [688] (1972) материал в боль- шей степени ориентирован на математику. В высшей степени формальная трактов- ка логики первого порядка, наряду с описанием более сложных тем логики, предо- ставлена в учебнике Белла и Макховера ([159], 1977). Позднее Манна и Уолдингер ([1484], 1985) предоставили удобное для восприятия введение в логику с точки зрения компьютерных наук, тогда как Хут и Райан ([1103], 2004) в значительно большей степени сконцентрировались на верификации программ. В книге Бар- вайза и Этченменди [140] (2002) принят подход, во многом подобный тому, кото- рый использован здесь. Смаллиан ([2104], 1995) представляет результаты кратко, используя формат таблицы, а Галлье ([807], 1986) дает чрезвычайно строгое мате- матическое описание логики первого порядка наряду со значительным объемом
материала, который может использоваться в области автоматического формирова- ния рассуждений. В книге Генезерета и Нильссона Ьо^1са1Роип<1аИоп8 о/АгН/1с1а1 1п1е1Н%епсе (Логические основы искусственного интеллекта) ([836], 1987) приве- дено не только солидное введение в логику, но и первое систематическое описание логических агентов с восприятиями и действиями. Также имеются два хороших справочника: ван Бенты и тер Мюле ([249], 1997), а также Робинсона и Воронко- ва ([1899], 2001). Журналом, публикующим материалы в области чистой матема- тической логики, является Аоита! о/8утЬоПс Ьо$1с, тогда как }оигпа1 о/АррНес! Ьо§1С в большей степени ориентирован на интересы из области искусственного интеллекта. Упражнения_________________________________________________________________ 8.1. Логическая база знаний представляет мир с использованием множества высказыва- ний без явной структуры. С другой стороны, аналогическое представление имеет физическую структуру, которая непосредственно соответствует структуре представ- ляемого объекта. Взгляните на карту дорог своей страны как на образец аналогиче- ского представления фактов о стране — она представляет эти факты на языке карт. Двухмерная структура карты соответствует двухмерной поверхности региона. а) Приведите пять примеров символов на языке карт. б) Явным высказыванием называется высказывание, формулируемое самим разра- ботчиком представления. Неявным высказыванием называется высказывание, ко- торое следует из явных высказываний в соответствии со свойствами аналогиче- ского представления. Приведите по три примера неявных и явных высказываний на языке карт. в) Приведите три примера сведений о физической структуре территории вашей стра- ны, которые не могут быть представлены на языке карт. г) Приведите два примера фактов, которые гораздо легче выразить на языке карт, чем на языке логики первого порядка. д) Приведите еще два примера полезных аналогических представлений. Каковы пре- имущества и недостатки каждого из этих языков, логического и аналогического? 8.2. Рассмотрите базу знаний, содержащую только два высказывания: Р(а) и Р(Ь). Следу- ет ли из этой базы знаний высказывание V х Р(хУ? Объясните свой ответ в терминах моделей. 8.3. Является ли допустимым высказывание 3 х,у х=у! Объясните, почему. 8.4. Напишите такое логическое высказывание, что каждый мир, в котором оно является истинным, содержит точно один объект. 8.5. Напишите такое логическое высказывание, что каждый мир, в котором оно является истинным, содержит точно два объекта. 8.6. Рассмотрите словарь символов, содержащий с символов констант, рк символов пре- дикатов, каждый с арностью к, и /к символов функций, каждый с арностью к, где 1 < к < А. Допустим, что размер проблемной области ограничен значением 2). Для каждой конкретной модели каждый символ предиката или функции отображает- ся соответственно на отношение или функцию с той же арностью. Можно принять
предположение, что функции в этой модели допускают, чтобы некоторые входные кортежи не имели значения для этой функции (т.е. чтобы значение было невидимым объектом). Выведите формулу определения количества возможных моделей для про- блемной области с О элементами. Не беспокойтесь об устранении избыточных ком- бинаций. 8.7. Какие из следующих высказываний являются допустимыми (обязательно истинными)? а) (Зхх=х)=>(Уу Вг у=г) б) УхР(х)7-Р(х) в) V х ВтаН(х) V (х=х) 8.8. Рассмотрите вариант семантики для логики первого порядка, в которой допускаются модели с пустыми проблемными областями. Приведите по меньшей мере два приме- ра высказываний, которые будут допустимыми в соответствии со стандартной семан- тикой, но не будут таковыми в соответствии с новой семантикой. Обсудите, какой ре- зультат имеет больший интуитивный смысл для ваших примеров. 8.9. Является ли факт -уВроизе(Сеог^е, Ьаига) логическим следствием из фактов Лт Сеог^е и 8рои$е(Лт, Ьаига)! Если это так, то приведите доказательство, а если нет, то предоставьте необходимые дополнительные аксиомы. Что произойдет, если ис- пользовать Вроизе как символ унарной функции, а не как символ бинарного предиката? 8.10. В этом упражнении используются функция МарСо1ог и предикаты 1п(х,у), Вог<1ег8(х, у) и Соип1гу(х), аргументами которых являются географические регионы, наряду с символами констант для разных регионов. В каждом из следующих пунктов приве- дены предложение на естественном языке и ряд возможных логических выражений. Для каждого из этих логических выражений укажите, является ли оно 1) точно отра- жающим смысл исходного предложения; 2) синтаксически неверным и потому бес- смысленным; 3) синтаксически правильным, но не отражающим смысл исходного предложения. а) И Париж, и Марсель находятся во Франции. 1.1 г^Раг18 А МагзеШез, Ргапсе) 2.1 п(Раг1з, Ргапсе) А 1п(МагзеИ1ез, Ргапсе) 3.1 п(Рапз, Ргапсе) V 1п^МагзеП1е8, Ргапсе) б) Существует страна, граничащая и с Ираком, и с Пакистаном. 1. 3 с Соип1гу(с) А Вогс1ег(с, 1гад) А Вог<1ег(с, Рак1з1ап) 2. 3 с Соип1гу(с) => [Вог(1ег(с, 1гад) А Вог(1ег(с, Ра1аз1ап)] 3. [3 с Соип1гу(с)] => [Вон1ег(с, 1гад) А Вогс1ег(с, Рак1з1ап)] 4. 3 с Вогс1ег(Соип{гу(с), 1гад А Ракгз1ап) в) Все страны, которые граничат с Эквадором, находятся в Южной Америке. 1. V с Соип1гу(с) А Вог(1ег(сч Есиадог) => 1п(с,8ои(кАтепса) 2 V с Соип1гу(с) => [Вогс1ег(с, Есиадог) => /и(с, Вои(кАтепса)] 3. V с \Соип(гу(с) => Вогс1ег(с, Есиас1ог)] => /и(с, ВоШкАтепса) 4. V с Соип1гу(с) А Вог(1ег(с, Есиадог) А /л(с, ВоШкАтепса) г) Ни один регион в Южной Америке не граничит с регионом в Европе. 1. ->[3 с, (11п(с, Вои(кАтепса) А /л(б7, Еигоре) А Вог(1егз(сч б7)] 2 V с, (1 [/и(с, ВоШкАтепса) А 1п(с1, Еигоре)] => ^Вогс1егз(с, б7)] 3. -• V с /и(с, ВоШкАтепса) => 3 (1 1п(Вч Еигоре) А -Вог(1егз(сь с1) 4. V с 1п(с, ВоШкАтепса) => V <1 Еигоре) => ~^Вогс1ег8(су с!)
д) Нет двух соседних стран, имеющих одинаковый цвет на карте. 1. У х, у ^Соип1гу(х) V ^Соип1гу(у) V ->ВогАегз(х, у) V -у(МарСо1ог(х) = МарСо1ог(у)) 2. V х, у (Соип1гу(х) Л Соип1гу(у) Л Вог^егз(х9у) Л -(х =у)) => -у(МарСо1ог(х) = МарСо1ог(у)) 3. У х, у Соип1гу(х) Л СоиЯгу(у) Л Вог(1егз(х9у) Л -\МарСо1ог{х) = МарСо1ог(у)) 4. V х, у (Соип1гу(х) Л Соип1гу(у) Л Вогс1ег8(х, у)) => МарСо1ог(х у) 8.11. Рассмотрите словарь со следующими символами. Оссира1юп(р, д)\ предикат. Человек р имеет профессию о. С1Шотег(рХ9р^)\ предикат. Человекрх является клиентом человекар2. Возз(рх,р2): предикат. Человекрх является начальником человекар2. Помог, Зиг^еоп, Ьсглуег, Асюг. константы, определяющие профессии. ЕтИу, Зое\ константы, определяющие людей. Используйте эти символы для записи следующих утверждений в логике первого порядка, а) Эмили — или хирург, или юрист. б) Джо — актер, но у него есть и другая работа. в) Все хирурги — врачи. г) У Джо нет адвоката (т.е. он не является клиентом какого-либо адвоката). д) У Эмили есть начальник, юрист. е) Существует адвокат., все клиенты которого являются врачами. ж) У каждого хирурга есть адвокат. 8.12. В каждом из следующих пунктов приведены предложение на естественном языке и ряд возможных логических выражений. Для каждого из этих логических выраже- ний укажите, является ли оно 1) точно отражающим смысл исходного предложения; 2) синтаксически неверным и потому бессмысленным; 3) синтаксически правиль- ным, но не отражающим смысл исходного предложения. а) Каждый кот любит свою мать или отца. 1. V х Са/(х) => Ъоуез(х, Мо1кег(х) V Ра1кег(х)) 2 У х -<Са/(х) V Ьоуез(х9 Мо1кег(хУ) \/ Ьоуез(х9 Ра1кег(хУ) 3. У х Са/(х) Л (Ьоуез(х9 Мо1кег(х)) V Ьоуез(х9 Ра1кег{х))) б) Каждая собака, которая любит одного из своих братьев, счастлива. 1. Ух Оо^х) Л (Зу Вго1кег(у9х) Моуез(х9уУ) => Нарру(х) 2. У х, у Оо^х) Л Вго1кег(у9 х) Л Ьоуез(х9 у) => Нарру{х) 3. Ух Ро$(х)Л [Уу Вго1кег(у9х) О 1оуе$(х,у)] => Нарру(х) в) Ни одна собака не кусает ребенка своего хозяина. 1. Ух 2)о$(х) => ^Вкез(х9 Скг1(1{О^пег\х)У) 2. ^3 х,у Оо&х) Л СШу, О\упег(х)) Л Вкез(х9у) 3. Ух Оо%(х) => (Уу СкП(1(у9 Скупег(х)) => ->В/7е$(х,у)) 4. -'Зх Оо%(х) => (Зу СкИ(1(у9 О\упег(хУ) /\ Вкез(х,у)) г) Каждый почтовый индекс в пределах штата имеет одну и ту же первую цифру. 1. У х, 5, 2) [5ка1е(з) Л Ыуез1п(х, 5) Л 7/р(х) = => [У у, 22 Ыуез1п(у9 5) Л %1р(у) = 22 => Р/^//(1,21) = Р/^7(1,22)] 2. У х, 5 \81а1е(з) Л Ыуез1п(х, з) Л 3 21 7/р(х) = гх] => [ У у, 22 Ыуе81п(у, 5) Л %р(у) -22\ 1,^1) = 1, ^2)]
3. \/х,у, 5 81а1е(з) /\ Ьгчейп^х, 5) А ЬУе$1п(у, 5) => 2)/&/7(1, 2ф(х) = 7/р(у)) 4. V х, у, $ 5/а/е($) А 1/ге5/л(х, 5) А Ыуе$1п(у, 5) => О&й( 1, 2гр(х)) = О1§П( 1,21р(уУ) 8.13. Выполните следующие задания в отношении приведенных логических высказыва- ний. а) Выполните перевод на нормальный, естественный язык (без “иксов” и “игреков!). (Здесь ВреакзЬап^иа^е — говорит на языке, а УпЗег^апск — понимает язык.) V х, у, I 8реак$кап&ш&е(х, I) 8реак5Ьап^иа^е(у, I) => 11т1ег81ап(18(х,у) /\ Упс1ег$1ап(1$(у, х) б) Объясните, почему данное высказывание имеет следствием указанное высказы- вание. V х, у, I 8реак$Ьапкиа%е(х, /) А 8реакзЬап^иа^е(у, Г) => 11п(1ег81ап(18(х, у) в) Переведите в высказывания логики первого порядка следующие предложения. 1. Понимание ведет к дружбе. 2. Дружба является переходящей. Не забудьте определить все предикаты, функции и константы, которые будете ис- пользовать. 8.14. Приведенные ниже утверждения истинны или ложны? Поясните свой ответ. а) 3 х х = КитреЬйкзкт — это допустимое (обязательно истинное) высказывание логики первого порядка. б) В логике первого порядка каждое высказывание с квантором существования ис- тинно в любой модели, содержащей ровно один объект. в) Высказывание V х,у х-у выполнимо. 8.15. Перепишите первые две аксиомы Пеано из раздела 8.3.3 как одну аксиому, опреде- ляющую№г№^?(х) таким образом, чтобы исключалась возможность существования натуральных чисел, кроме тех, которые генерируются функцией-преемником. 8.16. Уравнение 8.4 в разделе 8.34 определяет условия, при которых в квадрате ощущается ветерок. Здесь мы рассмотрим два других способа описания этого аспекта мира вам- пуса. а) Можно написать диагностическое правило, приводящее от наблюдаемых эффек- тов к их скрытым причинам. Очевидные диагностические правила для обнару- жения ям гласят, что если в квадрате ощущается ветерок, то в каком-то соседнем квадрате должна быть яма, и наоборот, если ветерка в квадрате нет, то ни один из соседних квадратов не содержит ямы. Запишите эти два правила языком логики первого порядка и покажите, что их конъюнкция логически эквивалентна уравне- нию 8.4. б) Можно написать “причинное” правило, ведущее от причины к следствию. Одно очевидное причинное правило состоит в том, что наличие в квадрате ямы вызы- вает ощущение ветерка во всех соседних с ним квадратах. Запишите это правило языком логики первого порядка, поясните, почему оно является неполным в срав- нении с уравнением 8.4, и предоставьте недостающую аксиому. 8.17. Составьте аксиомы с описанием предикатов Сгапс1СкНс1 (внук или внучка), Сгеа1- Огап(1рагеп1 (прадедушка или прабабушка), Апсейог (предок), Вго1кег (брат), 8Ыег (сестра), Оаи&Нег (дочь), 8оп (сын), РггйСоимп (двоюродный брат или двоюродная сестра), Вго1кег1пЬа\м (брат мужа или жены), 8Ыег1пЬа^ (сестра мужа или жены),
Аиш (тетя) и 11пс1е (дядя). Найдите правильное определение ти-го кузена или кузи- ны в и-м колене и запишите это определение в логике первого порядка. Теперь запи- шите основные факты, представленные в генеалогическом дереве, приведенном на рис. 8.7. Используя подходящую систему формирования логических рассуждений, введите в базу знаний с помощью операции ТЕЬЬ все записанные вами высказыва- ния, а затем с помощью операции А8К определите, кто является внуками или внучка- ми Элизабет (ЕИгаЬак), братьями мужа Дианы (Р1апа\ прадедушкой и прабабушкой Зары (2ага\ а также предками Евгении (Еи^ете). Рис. 8.7. Типичное генеалогическое дерево некоторой семьи. Символ х соединяет супругов, а стрелки указывают на детей 8.18. Запишите высказывание с утверждением, что функция + является коммутативной. Следует ли это высказывание из аксиом Пеано? В случае положительного ответа объ- ясните, почему, а в случае отрицательного ответа приведите модель, в которой эти ак- сиомы являются истинными, а ваше высказывание — ложным. 8.19. Объясните, в чем ошибка в следующем предлагаемом определении предиката член- ства в множестве е: V X, 3 хе {х|$} \/х, 5Хб5=>\/ухе {у|$}. 8.20. Используя в качестве примеров аксиомы множества, запишите аксиомы для проблем- ной области списков, включая все константы, функции и предикаты, упомянутые в данной главе. 8.21. Объясните, в чем ошибка в следующем предлагаемом определении соседних квадра- тов в мире вампуса: V х, у Афасеп1([х, у], [х + 1, у]) Л Афасеп1(\х, у], [х, у + 1 ]). 8.22. Запишите аксиомы, необходимые для формирования рассуждений о местонахожде- нии вампуса, с использованием символа константы ТУитриз и бинарного предиката А1(^Уитриз, ЬосаПоп). Не забудьте, что существует только один вампус. 8.23. Предположим, что определены предикаты Рагеп1(р, д) (родитель) и Рета1е(р) (жен- щина), а также константы Зоап и Кеут с очевидными значениями. Представьте ка- ждое из следующих предложений в виде высказывания логики первого порядка. (Мо- жете использовать сокращение Э1 для обозначения “существует ровно один”.) а) У Джоан есть дочь (возможно, больше одной, а возможно, и сыновья). б) У Джоан есть одна дочь (но могут быть и сыновья).
в) У Джоан есть один ребенок, дочь. г) У Джоан и Кевина есть один общий ребенок. д) У Джоан есть по крайней мере один ребенок от Кевина и нет детей ни от кого дру- гого. 8.24. Арифметические утверждения могут быть записаны в логике первого порядка с ис- пользованием символа предиката с, символов двух функций, + и х, и двух символов констант, 0 и 1. При необходимости также могут быть определены дополнительные предикаты с двумя условиями. а) Представьте в логике первого порядка свойство “х — четное число”. б) Представьте в логике первого порядка свойство “х — простое число”. в) В гипотезе Гольдбаха (пока недоказанной) утверждается, что каждое четное чис- ло равно сумме двух простых чисел. Представьте эту гипотезу как логическое вы- сказывание. 8.25. В главе 6 мы использовали равенство, чтобы указать связь между переменной и ее значением. Например, мы написали ИА = ге<1, чтобы указать, что на карте Австра- лии территория штата Западная Австралия окрашена в красный цвет. Чтобы пред- ставить это в логике первого порядка, необходима более многословная запись: Со1о- гО/(ИА) = геск Какой неверный логический вывод может быть сделан, если записать это высказывание просто в виде логического утверждения ИА = гесР. 8.26. В логике первого порядка напишите утверждение о том, что каждый ключ и по край- ней мере один из каждой пары носков будут в конечном итоге потеряны навсегда, используя только следующий словарь: Кеу(х\ гдех — ключ; 8оск(х\ где х — носок; Ршг(х9у)9 где х и у — пара; АШ — текущее время; Ве/оге(1х, /2), где 1Х — момент вре- мени, предшествующий моменту времени /2; Ьо$1(х, — объект х был потерян в мо- мент времени I. 8.27. Для каждого из приведенных ниже предложений на естественном языке определите, является ли предложенное высказывание логики первого порядка хорошим его пере- водом. Если нет, объясните, почему, и исправьте ошибку. (Некоторые высказывания могут содержать более одной ошибки!) а) Нет двух людей с одним и тем же номером социального страхования: х, у, п Регзоп(х) А Регзог^у) => [Яоу^#(х, п) А Наз88#(у, л)]. б) Номер социального страхования Джона такой же, как у Мэри: 3 п НазЗЗ^оИп, п) А Наз88#(Магу, и). в) Каждый номер социального страхования имеет девять цифр: V х, п Рег$оп(х) => [Яоу55#(х, л) А 2)/#/7$(л, 9)]. г) Перепишите каждое из приведенных выше (неисправленных) предложений, ис- пользуя символ функции {55#} вместо предиката {Наз88#}. 8.28. Переведите в высказывание логики первого порядка фразу “ДНК каждого человека уникальна и получена из ДНК его родителей44. Необходимо указать точное предпола- гаемое значение терминов словаря. (Подсказка, не используйте предикат 1Мдие(х)9 поскольку уникальность на самом деле не является свойством самого объекта!) 8.29. Для каждого из приведенных ниже предложений на естественном языке определите, является ли предложенное высказывание логики первого порядка хорошим его пере- водом. Если нет, объясните, почему, и исправьте ошибку. а) За любую квартиру в Лондоне просят меньшую арендную плату, чем за некото- рые квартиры в Париже:
Ух [Ар1(х) Л/п(х, 1оп4оп)] => Зу ([Ар1(у) Л 1п(у, Рат)] => (Реп^х) < Кеп1(у))). б) В Париже ровно одна квартира с арендой платой меньше 1000 долларов: 3 х Ар1(х) Л 1п(х, Раш) Л V у [Ар1(у) Л /л(у, Рат) Л (Кеп1(у) < 0о11агх(\000))] => (у = х). в) Если квартира дороже всех квартир в Лондоне, она должна быть в Москве: V х Ар1(х) Л [ V у Ар1(у) Л /и(у, Ьопс1оп) Л (Кеп1(х) > Кеп1(у))] => 1п(х, Мозсоуу), 8.30. Представьте следующие предложения в виде высказываний логики первого порядка, используя совместимый словарь (который вы должны определить). а) Некоторые студенты выбрали изучение французского языка весной 2001 года б) Каждый студент, выбравший изучение французского языка, успешно сдает соот- ветствующий экзамен. в) Только один студент выбрал изучение греческого языка весной 2001 года. г) Лучшая оценка по греческому всегда выше, чем лучшая оценка по французскому. д) Каждый человек, который покупает страховой полис, умен. е) Ни один человек не покупает дорогой страховой полис. ж) Существует агент, который продает страховые полисы только тем людям, которые не застрахованы. з) Есть парикмахер, который бреет всех мужчин в городе, которые не бреются сами. и) Любой человек, рожденный в Великобритании, каждый из родителей которого яв- ляется гражданином Великобритании или ее резидентом, является гражданином этой страны по рождению. к) Любой человек, рожденный вне Великобритании, один из родителей которого яв- ляется гражданином Великобритании по рождению, является гражданином этой страны по происхождению. л) Политические деятели могут постоянно вводить некоторых людей в заблуждение, они также могут вводить в заблуждение всех людей на некоторое время, но не мо- гут постоянно вводить в заблуждение всех людей. м) Все греки говорят на одном языке. (Используйте запись 8реакз(х, I), чтобы ука- зать, что человек х говорит на языке /.) 8.31. Представьте следующие предложения в виде высказываний логики первого порядка, используя совместимый словарь (который вы должны определить). а) Некоторые студенты выбрали изучение французского языка весной 2000 года. б) Каждый студент, выбравший изучение французского языка, успешно сдает соот- ветствующий экзамен. в) Только один студент выбрал изучение греческого языка весной 2009 года. г) Лучшая оценка по греческому всегда ниже, чем лучшая оценка по французскому. д) Каждый человек, который покупает страховой полис, умен. е) Существует агент, который продает страховые полисы только тем людям, которые не застрахованы. ж) Есть парикмахер, который бреет всех мужчин в городе, которые не бреются сами. з) Любой человек, рожденный в Великобритании, каждый из родителей которого яв- ляется гражданином Великобритании или ее резидентом, является гражданином этой страны по рождению.
и) Любой человек, рожденный вне Великобритании, один из родителей которого яв- ляется гражданином Великобритании по рождению, является гражданином этой страны по происхождению. к) Политические деятели могут постоянно вводить некоторых людей в заблуждение, они также могут вводить в заблуждение всех людей на некоторое время, но они не могут постоянно вводить в заблуждение всех людей. л) Все греки говорят на одном языке. (Используйте запись 8реакз(х, /), чтобы ука- зать, что человек х говорит на языке /.) 8.32. Напишите общее множество фактов и аксиом, необходимых для представления утверждения “Веллингтон слышал о смерти Наполеона” и выдачи правильного отве- та на запрос “Слышал ли Наполеон о смерти Веллингтона?” 8.33. Расширьте словарь, приведенный в разделе 8.4, с целью определения правил сложе- ния для «-битовых двоичных чисел. Затем сформулируйте описание четырехбитового сумматора, представленного на рис. 8.8, и составьте запросы, необходимые для про- верки того, что это описание действительно правильно. *0 *0 *2 У2 Х3 Х2 X) Хо * Уз Ъ Ъ 74 73 72 *3 Уз Рис. 8.8. Четырехбитовый сумматор. Каждый элемент /Ц является однобитовым сумматором, представленным на рис. 4.6. 8.34. Представление электронной схемы, приведенное в этой главе, является более подроб- ным, чем это необходимо, если нас интересуют только функциональные возможно- сти этой схемы. В более простой формулировке рассматриваются любые логические элементы или цифровые схемы с т входами и п выходами с использованием предика- та, имеющего т + п параметров, такого, что предикат принимает истинное значение тогда и только тогда, когда входы и выходы согласованы. Например, логические эле- менты ЮТ могут быть описаны с помощью бинарного предиката МОТ(1, о), для ко- торого известны значения 1ЮТ(0, 1) и АГ0Д1, 0). Композиции логических элементов определяются с помощью конъюнкций предикатов логических элементов, в которых наличие разделяемых переменных указывает на прямые соединения. Например, схе- ма КАЮ может состоять из элементов ЛУО и МИ: V /„ /2, оа, о /2, оо) А о) => /2, о).
Используя это представление, определите однобитовый сумматор, приведенный на рис. 8.6, и четырехбитовый сумматор, приведенный на рис. 8.8, и объясните, какими запросами вы бы воспользовались для проверки этих проектов. Какого рода запросы, поддерживаемые представлением, описанным в разделе 8.4, не поддерживаются дан- ным представлением? 8.35. Получите бланк заявки на оформление паспорта гражданина своей страны, выясни- те, какие правила определяют права человека на получение паспорта, и переведите эти правила на язык логики первого порядка в соответствии с этапами, описанными в разделе 8.4. 8.36. Рассмотрите базу знаний, представленную в логике первого порядка, описывающую миры, содержащие людей, песни, альбомы (например, “Мее! 1Ье ВеаНез”) и диски (т.е. конкретные физические экземпляры компакт-дисков). Ее словарь содержит сле- дующие символы. СоруОДс1, а): предикат. Диск 3 является копией альбома а. Оуупз(р, с1): предикат. Человекр владеет диском б/. 8т^(р, 5, а): альбом а включает запись песни 5, исполняемой человеком р. УУго1е{р, 5): человек р написал песню 5. МсСаПпеу, Сегзкнпп, ВНоИЗау, Зое, Е1еапогКг^Ьу, ТИеМап1Ьоуе, Кеуо1уег. константы с очевидным значением. Выразите следующие утверждения в логике первого порядка. а) Гершвин написал песню “ТЬе Мап I Ьоуе”. б) Гершвин не написал песню “Е1еапог Кл§Ьу”. в) Либо Гершвин, либо Маккартни написали песню “ТЬе Мап I Ьоуе”. г) Джо написал хотя бы одну песню. д) Джо владеет копией альбома “Кеуо1уег”. ж) Каждая песня, которую Маккартни исполняет в альбоме “Кеуо1уег”, была написа- на Маккартни. з) Гершвин не написал ни одной из песен в альбоме “Кеуо1уег”. и) Каждая песня, которую написал Гершвин, записана в каком-то альбоме. (Возмож- но, разные песни записаны в разных альбомах.) к) Есть один альбом, который содержит каждую песню, написанную Джо. л) Джо владеет копией альбома, в котором песню “ТЬе Мап I Ьоуе” исполняет Билли Холидей. м) Джо владеет копией каждого альбома, в котором есть песня в исполнении Мак- картни. (Безусловно, каждый отдельный альбом записан на собственном физиче- ском компакт-диске.) н) Джо владеет копией каждого альбома, на котором все песни поет Билли Холидей.
ГЛАВА 9 Логический вывод в логике первого порядка В этой главе определяются эффективные процедуры получения ответов на вопросы, сформулированные в логике первого порядка. В данной главе рассматриваются алгоритмы, позволяющие получить ответ на любой вопрос, сформулированный в логике первого порядка, для которого ответ существует. В разделе 9.1 представлены правила логического вывода для кван- торов и показано, как можно свести вывод в логике первого порядка к выводу в пропозициональной логике, хотя и за счет значительных издержек. В разделе 9.2 описывается, как унификацию можно использовать для формирования правил ло- гического вывода, применяемых непосредственно к высказываниям логики пер- вого порядка. Далее рассматриваются три основных семейства алгоритмов выво- да в логике первого порядка: прямой логический вывод (раздел 9.3), обратный логический вывод (раздел 9.4) и доказательство теорем на основе резолюции (раздел 9.5). 9.1. Логический вывод в логике высказываний и логике первого порядка Одним из способов логического вывода в логике первого порядка является пре- образование высказываний, хранящихся в базе знаний логики первого порядка, в высказывания логики высказываний и применения к ним пропозиционального логического вывода, — о том, как это делается, говорилось в предыдущих главах. Первым шагом на этом пути является устранение универсальных кванторов. На- пример, предположим, что база знаний содержит следующую стандартную аксио- му, отражающую известную из многих сказок мысль о том, что все жадные коро- ли — злые: V х К1п%(х) А Сгеес1у(х) =Ф Из этой аксиомы можно вывести любое из следующих высказываний:
Кт^окп) Л (ЗгеесМ^оИп) => ЕуЩЛкп), Кт&Шскан!) /\ С}гее(1у(К1скагс1) => Е\’П(КлсИагс1), Кт^Ра1кег(}окпУ) Л 6геес1у(Ра1кег(.к>кп')) => ЕуЦ(Ра1кег{Локп)). В общем случае, согласно правилу к конкретизации высказывания кванто- ра всеобщности (или Ш — Е/гтегза! 1пз1апНаИоп), можно логическим путем вы- вести любое высказывание, получаемое в результате подстановки базового терма (т.е. терма без переменных) вместо переменной в кванторе всеобщности.1 Чтобы формально записать это правило логического вывода, воспользуемся понятием подстановки, введенным в разделе 8.3. Пусть 811В8Т(9, а) обозначает результат применения подстановки терма 0 к высказыванию а. В таком случае данное правило для любой переменной V и базового терма % можно записать сле- дующим образом: V V а 8цВ8Т({у/#}, а) ’ Например, три высказывания, приведенные выше, получены с помощью подстано- вок {хМокп}, {х/К1скаг(1} и {х/Ра1кег^окп)}. В соответствии с правилом ► конкретизации высказывания квантора суще- ствования (или Е1 — Ех1з1еп(1а11пз1апИаИоп) переменная в кванторе существования заменяется одним новым символом константы. Формально это высказывание опре- деляется следующим образом: для любого высказывания а, переменной V и символа константы к, который не появляется где-либо в базе знаний, имеет место следующее: Зг а 8цВ8Т({у/Л}, а) ’ Например, из высказывания 3 х Сгом>п(х) Л ОпНеасКх, Лкп) можно вывести высказывание Сго^п(С{) Л ОпНеа<1(С\, .1окп) при условии, что символ константы С] не появляется где-либо в базе знаний. По сути, в первом высказывании с квантором существования утверждается, что суще- ствует некоторый объект, удовлетворяющий определенному условию, а в результа- те конкретизации этому объекту просто присваивается имя. Естественно, что это 1 Эти подстановки не следует путать с расширенными интерпретациями, которые ис- пользовались для определения семантики кванторов в разделе 8.2.6. В подстановке пере- менная заменяется термом (синтаксической конструкцией) для получения нового выска- зывания, тогда как любая интерпретация отображает некоторую переменную на объект в проблемной области.
имя не должно уже принадлежать другому объекту. В математике есть прекрас- ный пример: предположим, мы открыли, что имеется некоторое число, которое не- много больше, чем 2,71828 и которое удовлетворяет уравнению = х‘ для х. Этому числу можно присвоить новое имя, такое как е, но было бы ошибкой при- сваивать ему имя существующего объекта, допустим, л. В логике такое новое имя называется ксколемовской константой. В то время как конкретизация высказывания с квантором всеобщности может выполняться многократно с целью получения многих разных заключений, конкре- тизацию высказывания с квантором существования можно выполнить только один раз, а затем это высказывание с квантором существования следует просто отбро- сить. Например, исходное высказывание 3 х КШ(х, НсИт) становится уже ненуж- ным после добавления в базу знаний высказывания КШ(Мигс1егег, НсНт). (В пере- воде с английского кИ1—убить, г1сИт — жертва, тигс/егег — убийца.) 9.1.1. Приведение к пропозициональному логическому выводу Теперь покажем, как любая база знаний логики первого порядка может быть преобразована в базу знаний логики высказываний. Первая идея состоит в следую- щем: по аналогии с тем, как высказывание с квантором существования может быть заменено одной конкретизацией, высказывание с квантором всеобщности может быть заменено множеством всех возможных конкретизаций. Например, предполо- жим, что исходная база знаний содержит только следующие четыре высказывания V х КтяЦх) А (лгеес1у(х) => Ех'П(х) Кт^окп) (хгеес}у(^окп) Вго1кег{Шскаг(1, Мп} (9.1) и что единственными объектами в ней являются Зокп и Шскагс1. Применим прави- ло конкретизации высказывания с квантором всеобщности к первому высказыва- нию, используя все возможные подстановки базовых термов из словаря этой базы знаний, в данном случае— {хМокп} и {х/К1скагс1}. Будут получены следующие вы- сказывания: Кт^/окп) А Огеес^окп) =» ЕуЩ^оНп), Кт&(&скагс1) А Сгее<1у(К1скагс1) =$> ЕуИ(Шскагс1). А теперь отбросим высказывание с квантором всеобщности и заменим базовые атомарные высказывания, такие как Кт^окп), пропозициональными символами, такими как .Еокп1зКт%. Наконец, применим любой из алгоритмов полного пропо- зиционального вывода из главы 7 для получения таких заключений, как .1окп1зЕуЦ, являющееся эквивалентным высказыванию ЕуП(^окп). Как показано в разделе 9.5, такой метод ► пропозиционализации (пре- образования в высказывания логики высказываний) может стать полностью
обобщенным. Однако здесь имеет место серьезная проблема: если база знаний ло- гики первого порядка включает символ функции, то множество возможных под- становок базовых термов становится бесконечным! Например, если в базе знаний упоминается символ Ра1кег, то существует возможность сформировать бесконечно большое количество вложенных термов, таких кзк Еа(кег{Еа(кег{Еа(кег{.]окп))). К счастью, существует знаменитая теорема, предложенная Жаком Эрбраном ([1013], 1930), согласно которой, если некоторое высказывание следует из перво- начальной базы знаний в логике первого порядка, то существует доказательство, которое включает лишь конечное подмножество этой пропозиционализированной базы знаний. Поскольку любое такое подмножество имеет максимальную глуби- ну вложения среди его базовых термов, это подмножество можно найти, форми- руя вначале все конкретизации с символами констант (Юскагс! и Лойи), затем — все термы с глубиной 1 (р<мкег(1Искагс1) и Ракег^окп}}, после этого — все термы с глубиной 2 и так до тех пор, пока есть возможность составить пропозициональ- ное доказательство высказывания, выведенного из базы знаний. Выше был кратко описан один из подходов к организации вывода в логике пер- вого порядка с помощью пропозиционализации, который является полным, т.е. позволяет доказать любое высказывание, которое следует из базы знаний. Это — важное достижение, если учесть, что пространство возможных моделей является бесконечным. С другой стороны, до тех пор, пока это доказательство не составле- но, мы не знаем, следует ли данное высказывание из базы знаний! Что произой- дет, если это высказывание из нее не следует? Можем ли мы это определить? Как оказалось, для логики первого порядка это действительно невозможно. Наша про- цедура доказательства может продолжаться и продолжаться, вырабатывая все бо- лее и более глубоко вложенные термы, а мы не будем знать, вошла ли она в без- надежный цикл или до получения доказательства остался только один шаг. Такая проблема весьма напоминает проблему останова машин Тьюринга. Алан Тьюринг ([2233], 1936) и Алонсо Черч ([431], 1936) доказали неизбежность такого состоя- ния дел, хотя и весьма различными способами. Вопрос о следствии для логики первого порядка является полуразрешимым; это означает, что существуют алгорит- мы, позволяющие найти доказательство для любого высказывания, которое следует из базы знаний, но нет алгоритмов, позволяющих также определить, что не существует доказательства для каждого высказывания, которое не следует из базы знаний. 9.2. Унификация и логический вывод в логике первого порядка_______________________________________________ Внимательный читатель должен был заметить, что подход на основе пропо- зиционализации порождает множество ненужных конкретизаций высказыва- ний с кванторами всеобщности и, следовательно, является довольно неэффек- тивным. Удобнее было бы иметь подход, в котором используется только одно
правило, — следуя рассуждению, что подстановка {х/Лкп} позволяет получить ответ на запрос ЕуИ(х) следующим образом: приняв во внимание правило, что жадные короли являются злыми, найти некоторыйх, такой, чтох — король их — жадный, а затем вывести, что х — злой. В более общем случае это можно сфор- мулировать так: если существует некоторая подстановка 0, делающая каждый из конъюнктов предпосылки импликации идентичным высказываниям, которые уже находятся в базе знаний, то можно утверждать об истинности заключения этой импликации после применения 0. В данном случае такой цели достигает подста- новка {хМокп}. Теперь предположим, что нам известно не то, что жаден Джон — Сгеес1у(3окп\ а что жадными являются все: V у Огеес1у(у). (9.2) Но и в этом случае нам все равно хотелось бы иметь возможность получить за- ключение, что Джон зол, ЕуЦ(Л)кп)9 поскольку нам известно, что Джон — король (это дано) и Джон жаден (так как жадными являются все). Для того чтобы подоб- ный метод мог работать, нужно найти подстановку как для переменных в выска- зывании с импликацией, так и для переменных в высказываниях, которые имеют- ся в базе данных. В данном случае в результате применения подстановки {х/Локп, уМокп} к предпосылкам импликации Кт^Цх) и С}геес1у(х), а также к высказывани- ям в базе знаний Кт^окп) и 6геес1у(у) эти высказывания становятся идентичны- ми. Таким образом, теперь можно вывести заключение импликации. Такой процесс логического вывода может бьггь представлен с помощью един- ственного правила логического вывода, которое будем называть ► обобщенным правилом отделения (СепегаНгес! Москлз Ропепз)? для атомарных высказыва- ний р,, р' и <?, если существует подстановка 0, такая, что 8ив8Т(0, д') = 8ив8Т(0, р)9 то для всех / имеет место следующее: Ри Р2, Р'„, (Р1Лр2А...Аря=>17) 8ивзт(0, д) В этом правиле имеется и+1 предпосылка: п атомарных высказываний р\ и одна импликация. Заключение становится результатом применения подстановки к след- ствию д. В данном примере имеет место следующее. р\ — это Кт^окп) р2 — это Сгеес1у(у) 0 — это {хМокп, уМокп} 8ив8Т(0, д) — это ЕуИ^окп) рх — это КтдЦх) р2 — это бгеес1у(х) д — это ЕуИ(х) 2 Обобщенное правило отделения является более общим, чем правило Москлз Ропепз (см. раздел 7.5.1), в том смысле, что известные факты и предпосылки импликации долж- ны соответствовать только в пределах подстановки, а не точно. С другой стороны, само правило Моди$ Ропепз в качестве предпосылки допускает любое предложение а, а не только конъюнкцию атомарных высказываний.
Можно легко показать, что обобщенное правило отделения — непротиворе- чивое правило логического вывода. Прежде всего отметим, что для любого вы- сказывания р (в отношении которого предполагается, что на его переменные рас- пространяется квантор всеобщности) и для любой подстановки 9 справедливо следующее правило: р |= 811В8Т(9,р). Оно выполняется по правилу конкретизации высказывания с квантором всеобщ- ности, в частности в любой подстановке 9, которая удовлетворяет условиям обоб- щенного правила отделения. Поэтому из р{, ..., р'„ можно вывести следующее: 8ш8т(9, Р]')л ... л8ив8Т(9, р'„), а из импликации р, Л ..., Л рп => д можно вывести 8ив8Т(9,р,)Л ... Л 8ив8т(9,р„) => 8ов8Т(9,9). Теперь подстановка 9 в обобщенном правиле отделения определена так, что 81)В8Т(9, Р() = 81/В8Т(9, р() для всех /, следовательно, первое из этих двух выска- зываний точно совпадает с предпосылкой второго высказывания. Таким образом, выражение 811В8Т(0, р) следует из правила отделения. Обобщенное правило отделения принято называть ► поднятой версией пра- вила отделения — оно поднимает правило отделения от базового уровня (не име- ющего переменных) логики высказываний до уровня логики первого порядка. В оставшейся части этой главы будет показано, что могут быть разработаны под- нятые версии представленных в главе 7 алгоритмов прямого логического вывода, обратного логического вывода и резолюции. Основным преимуществом примене- ния поднятых правил логического вывода по сравнению с пропозиционализаци- ей является то, что в них предусмотрены только те подстановки, которые требу- ются для обеспечения дальнейшего выполнения конкретных логических выводов. 9.2.1. Унификация Применение поднятых правил логического вывода связано с необходимо- стью поиска подстановок, в результате которых различные логические выраже- ния становятся идентичными. Этот процесс называется ► унификацией и являет- ся ключевым компонентом любых алгоритмов вывода в логике первого порядка. Алгоритм Умру принимает на входе два высказывания и возвращает для них ►унификатор, если таковой существует: имру(р, (?) = 0, где 8ив$т(0,р) = 8ив$т(0, <?). Давайте рассмотрим несколько примеров того, как должен действовать алго- ритм 11Н1РУ. Предположим, имеется запрос АзкУагз^Кпоукз^окп, х)) — кого зна- ет Джон? Некоторые ответы на этот запрос можно найти, отыскивая все выска-
зывания в базе знаний, которые унифицируются с высказыванием Кпо^а(./окп, х). Ниже приведены результаты унификации с четырьмя различными высказывания- ми, которые могут находиться в базе знаний: \5^Х(Кпомз(Иокп, х), Кпомз(Иокп, Иапе)) = {Мапе}, им!РУ(Ал<жз(Иокп, х), Кпомз(у, ВИ1)) = {х/ВИ1,уМокп}, \]^№У(Кпом8(Иокп, х), Кпом>з(у, Мо1кег(у))) = {у/Иокп, х/Мо1кег(Зокп}}, \У№\(Кпомз(.к)кп, х), Кпомз(х, ЕНгаЬе1кУ) = /аИиге. Последняя попытка унификации заканчивается неудачей (/аИиге), поскольку переменная х не может одновременно принимать значения Иокп и ЕИгаЬе1к. Те- перь вспомним, что высказывание Кпом$(х, ЕПгаЬеЛ) означает “Все знают Элиза- бет”, поэтому мы обязаны иметь возможность вывести логически, что Джон зна- ет Элизабет. Проблема возникает только потому, что в этих двух высказываниях, как оказалось, используется одно и то же имя переменной, х. Возникновения этой проблемы можно избежать, к стандартизируя отличие (зЮпНагсИгт^ араг() од- ного из этих двух унифицируемых высказываний. Это означает использование в высказываниях переименования переменных для предотвращения коллизий имен. Например, переменную х в высказывании Кпомз(х, ЕНгаЪак) можно переимено- вать в х17 (новое имя переменной), не меняя смысл этого высказывания. После это- го унификация выполняется успешно: \)^\У\(Кпомз(Иокп, х), Кпомз(хг, ЕНхаЬеМ)) = {х/ЕНгаЬе1к, х/Иокп}. С дополнительными сведениями о том, с чем еще связана необходимость в стан- дартизации отличия, речь пойдет в упражнении 9.15. Возникает еще одна сложность: выше было сказано, что алгоритм 1)Ы1РУ должен возвращать такую подстановку (или унификатор), в результате кото- рой два параметра становятся одинаковыми. Но количество таких унификато- ров может быть больше одного. Например, при следующем вызове алгоритма \)ълру(Кпомз(Иокп, х), Кпомз(у, г)) может быть возвращено {уМокп, х/г} или {у] Иокп, хМокп, гМокп}. Первый унификатор позволяет получить в качестве резуль- тата унификации выражение Кпомз(Иокп, г), а второй дает Кпомз(Иокп, Иокп). Но второй результат может быть получен из первого с помощью дополнительной под- становки {гМокп}', в таком случае принято считать, что первый унификатор явля- ется более общим по сравнению со вторым, поскольку налагает меньше ограниче- ний на значения переменных. Для любой унифицируемой пары выражений существует единственный ► наи- более общий унификатор (Моз1 Сепега! Упфег — МС11), который является уни- кальным вплоть до переименования и подстановки переменных. Например, эк- вивалентными полагаются подстановки {х/Иокп} и {уМокп}, так же как {хМокп, уМокп} и [х/Иокп, у/х}. Алгоритм вычисления наиболее общих унификаторов приведен на рис. 9.1. Процесс его работы очень прост: рекурсивно исследовать два выражения одно-
временно, “бок о бок”, наряду с этим формируя унификатор, но фиксировать си- туацию неудачного завершения, если две соответствующие точки в полученных таким образом структурах не совпадают. В этом процессе существует один доро- гостоящий этап: если переменная согласуется со сложным термом, необходимо провести проверку того, встречается ли сама эта переменная внутри терма; в слу- чае положительного ответа на данный вопрос согласование заканчивается неуда- чей, поскольку невозможно сформировать какой-либо совместимый унификатор. Например, 5(х) невозможно унифицировать с З'СЗ'СО). Из-за этой так называемой ► проверки вхождения (рссиг сИеск) сложность всего алгоритма становится ква- дратично зависимой от размера унифицируемых выражений. В одних системах, включая многие системы логического программирования, такая проверка вхожде- ния просто исключается и обязанность исключения противоречивых логических выводов из результатов возлагается на пользователя. В других системах использу- ются более сложные алгоритмы со сложностью, линейно зависящей от времени. Гипсйоп ИмгУ(х,у, 0 = етр1у) геШгпз подстановка, позволяющая сделать х иу идентичными, или индикатор отказа /аПиге И 0 = /аПиге Шеп геШгп /аПиге еке И х = у Шеп геШгп 0 еке И УАК1АВЬЕ?(х) Шеп геШгп 1)МЕУ-УАК(х,у, 0) еке ИУАК.1АВЬЕ?(у) Шеп геШгп им1ГУ-Уля(у, х, 0) екеИСомРОЦМО?(х) апд Сомрснжо?(у) Шеп геШгп имЕУ(Акб$(х), Акб8(у), Имеу(Ор(х), Ор(у), 0)) еке И Ь18Т?(х) ап<1 Ь18Т?(у) Шеп геШгп иМГУ(КЕ8Т(х), КЕ8Т(у), иМГУ(Е1К8Т(х), Р1К8Т(у), 0)) еке геШгп /аПиге ШпсШэп имгу-УАЯ(уаг, х, 0) геШпм подстановка Г {уяг/уд/} € 0 для некоторого уд/ Шеп геШгп Ш1ЕУ(уя/, х, 0) еке И {х/уа/} € 0 для некоторого уд/ Шеп геШгп 1)МЕУ(уаг, уа1, 0) еке И Оссш-СНЕСК?(уаг, х) Шеп геШгп /аПиге еке геШгп подстановка 0 с добавленной к ней парой {уаг/х} Рис. 9.1. Алгоритм унификации. Аргументы х иу могут быть любыми выражени- ями: константой или переменной, составным выражением, таким как сложное вы- сказывание или терм, либо списком выражений. Аргумент 0 представляет собой подстановку, исходно пустую, в которую добавляются пары {удг/уд/} в процессе рекурсивного просмотра входных параметров и их поэлементного сравнения. В со- ставном выражении, таком как Г(Л, В\ функция ОР(х) выбирает функциональный символ Г, а функция АЯ68 выбирает список параметров (А, В)
9.2.2. Хранение и выборка В основе функций Теьь, Азк и АзкУакз, применяемых для ввода информа- ции и передачи запросов в базу знаний, лежат более примитивные функции 8г(ЖЕ и Еетсн. Функция 8тсже($) сохраняет высказывание 5 в базе знаний, а функция Ретсн(^) возвращает все унификаторы, такие, что запрос д унифицируется с неко- торым высказыванием из базы знаний. Описанная выше задача, предназначенная для иллюстрации процесса унификации — поиск всех фактов, которые унифици- руются с высказыванием Кпоыз^оИп, л)), — представляет собой пример примене- ния функции Еетсн. Самый простой способ реализации функций 8тоее и Еетсн предполагает хра- нение всех фактов базы знаний в виде одного длинного списка и унифицирование каждого запроса с каждым элементом этого списка. Такой метод является неэф- фективным, но он работает. В оставшейся части данного раздела описаны спосо- бы, позволяющие обеспечить более эффективную выборку. Функцию Еетсн можно сделать более эффективной, обеспечив, чтобы попыт- ки унификации применялись только к тем высказываниям, которые имеют опре- деленный шанс на унификацию. Например, нет смысла пытаться унифицировать Кпо^з^окп, л) и Вго(Ъег(К1сЪап1, Мп). Такой унификации можно избежать, ► ин- дексируя факты в базе знаний. Самая простая схема, называемая ► индексацией по предикатам, предусматривает размещение всех фактов Кпомз в одном сегмен- те, а всех фактов Вго(Иег — в другом. Сами сегменты для повышения эффективно- сти доступа можно хранить в хеш-таблице. Индексация по предикатам будет удобна, если имеется очень много предикат- ных символов, но лишь небольшое количество выражений в расчете на каждый символ. Однако иногда на некоторый предикатный символ приходится очень мно- го выражений. Например, предположим, что налоговые органы желают следить за тем, кто кого нанимает, с использованием предиката Етр1оу$(х, у). Такой сегмент будет очень большим и может включать миллионы нанимателей и десятки милли- онов наемных работников. В этом случае при использовании индексации по пре- дикатам для поиска ответа на запрос Етр1оу$(х, ВлсИагЛ), т.е. “Кто является нани- мателем Ричарда?”, потребовался бы просмотр всего сегмента. Для данного конкретного запроса поиск будет проще при использовании индек- сации фактов и по предикату, и по второму параметру, возможно, с использовани- ем комбинированного ключа хеш-таблицы. В таком случае существовала бы воз- можность просто формировать ключ из запроса и осуществлять выборку именно тех фактов, которые унифицируются с этим запросом. В свою очередь, для поис- ка ответа на другие запросы, такие как Етр1оуа(1ВМ, у), было бы полезно проин- дексировать факты, комбинируя предикат с первым параметром. Следовательно, факты имеет смысл хранить под разными индексными ключами, что позволит мо- ментально сделать их доступными для разных запросов, с которыми они могли бы унифицироваться.
Имея некоторое высказывание, подлежащее хранению, можно построить ин- дексы для всех возможных запросов, которые с ним унифицируются. Так, для фак- та Етр1оух(1ВМ, Шскап!) такими запросами будут следующие. Етр1оуа(1ВМ, ВлскагВ) Етр1оуз(х, &скаг<1) Етр1оуз(1ВМ, у) Етр1оуз(х, у) Корпорация 1ВМ является нанимателем Ричарда? Кто является нанимателем Ричарда? Для кого корпорация 1ВМ является нанимателем? Кто для кого является нанимателем? Эти запросы образуют к решетку обобщения, представленную на рис. 9.2, а. Подобные решетки обладают некоторыми интересными свойствами. Так, дочер- ний узел любого узла в этой решетке получен из его родительского узла с помо- щью единственной подстановки, а “наивысший” общий потомок любых двух уз- лов является результатом применения наиболее общего унификатора для этих узлов. Высказывание с повторяющимися константами имеет несколько иную ре- шетку, показанную на рис. 9.2, б. Хотя на этом рисунке функциональные символы не показаны, они также могут быть включены в структуру решетки. Етр1оуз (х, у) Етр1оуз (х, у) Етр1оуз(х,1ИсИагс1) Етр1оуз(1ВМ, у) Етр1оуз(х,Мп) Етр1оуз(х,у) Етрк>уз(Мп,у) Етр1оуз(1ВМ, ШсИагВ) Етр1оуз(Мп, Мп) а) б) Рис. 9.2. а) Решетка обобщения, самым нижним узлом которой является выска- зывание Етр1оуз(!ВМ, ШсИагВ). б) Решетка обобщения для высказывания Епг- р1оуз^оИп, УоЛи) Для предикатов с небольшим числом аргументов хорошим компромиссом бу- дет создание индекса для каждого узла в решетке обобщения. Такой подход тре- бует немного больших затрат времени при сохранении данных, но существенно ускоряет их поиск. Однако для предиката с п аргументами решетка содержит 0(2") узлов. Если будут разрешены символы функций, число узлов решетки будет так- же экспоненциально зависимым от размера термов в высказывании, подлежащем сохранению. Все это может потребовать создания огромного количества индексов. Необходимо каким-то образом ограничить набор создаваемых индексов лишь теми, которые могут часто использоваться в запросах. В противном случае больше времени будет тратиться на создание и поддержку индексов, чем экономиться за счет их использования. Можно принять какую-то строгую политику, например соз- давать индексы только для ключей, состоящих из предиката плюс один аргумент. Или можно разработать некую адаптивную политику, согласно которой создание
индексов предусматривается лишь в соответствии с потребностями в поиске отве- тов на запросы тех типов, которые встречаются чаще всего. Для коммерческих баз данных, количество фактов в которых исчисляется миллиардами, эта проблема яв- ляется предметом интенсивного изучения, продуктивных технологических разра- боток и постоянной оптимизации. 9.3. Прямой логический вывод В разделе 7.5 был приведен алгоритм прямого логического вывода для баз дан- ных из пропозициональных определенных выражений. В данном разделе эта идея расширяется с целью охвата определенных выражений в логике первого порядка. Безусловно, существуют некоторые логические высказывания, которые не мо- гут быть сформулированы как определенные выражения, а следовательно, их нельзя будет обрабатывать при данном подходе. Однако правил в форме Посыл- ка => Следствие будет достаточно для успешной реализации широкого диапазона интересных реальных систем. 9.3.1. Определенные выражения в логике первого порядка Определенные выражения в логике первого порядка представляют собой дизъ- юнкции литералов, среди которых положительным является один и только один. Это означает, что определенное выражение либо является атомарным, либо пред- ставляет собой импликацию, посылкой (антецедентом) которой служит конъюнк- ция положительных литералов, а следствием (консеквентом) — единственный по- ложительный литерал. Кванторы существования не допускаются, а кванторы всеобщности неявно присутствуют слева: если в определенном выражении при- сутствует л, то это означает неявное наличие в нем квантора V л. Типичное опре- деленное выражение в логике первого порядка выглядят следующим образом: Кт^х) А <3гее^у(х) => ЕуИ(х), но литералы Кт^/окп) и Сгеес1у(у) также можно рассматривать как определенные выражения. Литералы логики первого порядка могут включать переменные, по- этому литерал Огеес1у(у) интерпретируется как “все являются жадными” (неявный квантор всеобщности). Рассмотрим использование определенных выражений на примере следующей задачи. Закон гласит, что продажа оружия недружественным странам, осуществляемая любым американским гражданином, является преступлением. В государстве Ноу- ноу, враждебном по отношению к Америке, имеются некоторые ракеты, и все ракеты этого государства были проданы ему полковником Вестом, являющимся американским гражданином.
Требуется доказать, что полковник Вест совершил преступление. Прежде всего, представим все имеющиеся факты в виде определенных выражений логики пер- вого порядка. — “продажа оружия недружественным странам, осуществляемая любым амери- канским гражданином, является преступлением”: Атенсап(х) Л 1?еароп(у) Л 8е11з(х,у, г) Л НозШе^г) => СппйпаЦх). (9.3) — “В государстве Ноуноу... имеются некоторые ракеты”. Соответствующее вы- сказывание В х Ом>пз(Нопо, х) Л Л7ш/7е(х) преобразуется в два определенных вы- ражения посредством устранения квантора существования с введением новой кон- станты Л/,: Омпз(Иопо, М{), (9.4) Л/ш/7е(Л/,). (9.5) — “все ракеты этого государства были проданы ему полковником Вестом”: М1ззНе(х) Л Омпз(Иопо, х) => 8е11з0Уез1, х, Иопо). (9.6) Нам необходимо также знать, что ракеты — это оружие: М1зз11е(х) => №ароп(х). (9.7) Кроме того, нам необходимо знать, что государство, враждебное по отношению к Америке, рассматривается как “недружественное”: Епету(х, Атенса) => Ноз1Пе(х). (9.8) — “полковникам Вестом, являющимся американским гражданином” : Атенсап^ез!). (9.9) — “В государстве Ноуноу, враждебном по отношению к Америке”: Епету(Нопо, Атенса). (9.10) Эта база знаний может служить примером баз знаний на языке ►Ва^акщ: она состоит из определенных выражений логики первого порядка, не содержащих функциональных символов. Язык Оа1а1о§ получил свое название благодаря тому, что позволяет удобно представлять тот тип операторов, которые обычно применя- ются в реляционных базах данных. При отсутствии функциональных символов ло- гический вывод значительно упрощается. 9.3.2. Простой алгоритм прямого логического вывода На рис. 9.3 представлен очень простой алгоритм прямого логического выво- да. Начиная с известных фактов, он активизирует все правила, предпосылки кото- рых выполняются, и добавляет их заключения к известным фактам. Этот процесс
продолжается до тех пор, пока не будет найден ответ на запрос (при условии, что требуется только один ответ) или добавления новых фактов больше не происхо- дит. Следует отметить, что факт не является “новым”, если он представляет собой ► переименование известного факта: одно высказывание является переименова- нием другого, если оба эти высказывания идентичны во всем, кроме имен пере- менных. Например, высказывания Икез(х9кеСгеат) и Ыкез(у, 1сеСгеат) по отно- шению друг к другу представляют собой переименования, поскольку оба имеют один и тот же смысл — “все любят мороженое”. ГипсСвоп РОЬ-РС-А8К(ХБ, о) геСигпз подстановка или значение /а1зе вприСз: КВ, база знаний — множество определенных выражений логики первого порядка о, запрос — атомарное высказывание ууЫ1е 1гие до пеху«— {} // Множество новых высказываний, логически // выведенных на каждой итерации Гог еасЬ гик ш КВ до (/>1 А ... Ар„ => (?) <— 8ТАМОАКО12Е-УАК1АВЬЕ8(п//е) Гог еасЬ подстановки0,такой, что 8БВ8Т(0,рх Л...Лрп) = $ив8Т(0,р\ А ... Арп) для некоторыхр\,...,р'п в базе знаний КВ д' <- $ив8Т(0, д) И выражение д' не является переименованием некоторого высказывания, которое уже находится в базе знаний КВ или является элементом множества пеху СЬеп добавить <?' к множеству пеху ф <- а) 1Г значение ф не представляет собой /аИиге СЬеп геСпгп ф 1Г пеху = {} СЬеп геСпгп /а1зе добавить множество пеху к базе знаний КВ Рис. 9.3. Концептуально простой, но неэффективный алгоритм прямого логиче- ского вывода. На каждой итерации к базе знаний КВ добавляются все атомарные высказывания, которые могут быть выведены за один этап из тех импликацион- ных и атомарных высказываний, которые уже находятся в базе знаний. Функция 8ТАКОАКО12Е-УАК1АВЕЕ8 заменяет все переменные в своих аргументах новыми, которые еще не использовались ранее Для иллюстрации работы алгоритма РОЬ-РС-Азк воспользуемся описанной выше задачей доказательства преступления. Импликационными высказываниями являются высказывания, приведенные в уравнениях 9.3,9.6-9.8. Требуются следу- ющие две итерации.
• На первой итерации правило 9.3 имеет невыполненные предпосылки. Пра- вило 9.6 выполняется с подстановкой {х/Мх} и добавляется высказывание 8е1к(1Ме819 Мх, 1^оп6). Правило 9.7 выполняется с подстановкой {х/Мх} и до- бавляется высказывание ^еароп(Мх). Правило 9.8 выполняется с подстанов- кой {х/1Уопо} и добавляется высказывание НойНефопо). • На второй итерации правило 9.3 выполняется с подстановкой {х№е8Ц у!Мхь г/Ыопо} и добавляется высказывание СгШпа1(ЛУе81\ На рис. 9.4 приведено сформированное дерево доказательства. Обратите вни- мание, что в этот момент невозможны какие-либо новые логические выводы, по- скольку каждое высказывание, заключение которого можно было бы найти с помо- щью прямого логического вывода, уже явно содержится в базе знаний КВ. Такое состояние базы знаний называется ► фиксированной точкой {/гхес!ротГ) в про- цессе логического вывода. Фиксированные точки, достигаемые при прямом логи- ческом выводе с использованием определенных выражений логики первого поряд- ка, аналогичны фиксированным точкам, возникающим при пропозициональном прямом логическом выводе (см. раздел 7.5.4); основное различие состоит в том, что фиксированная точка в логике первого порядка может включать атомарные вы- сказывания с квантором всеобщности. Рис. 9.4. Дерево доказательства, сформированное путем прямого логического выво- да для примера с доказательством совершения преступления. Первоначальные фак- ты показаны на нижнем уровне, факты, выведенные логическим путем в первой итерации, — на среднем уровне, а факт, логически выведенный во второй итера- ции, — на верхнем уровне Свойства алгоритма РОЬ-РС-Азк проанализировать несложно. Во-первых, он является непротиворечивым, поскольку каждый этап логического вывода пред- ставляет собой применение обобщенного правила отделения, которое само явля- ется непротиворечивым. Во-вторых, он является полным применительно к базам знаний с определенными выражениями, — это означает, что он позволяет ответить
на любой запрос, ответы на который следуют из базы знаний с определенными вы- ражениями. Для баз знаний на языке Оа<а1о@, не содержащих функциональных символов, доказательство полноты является довольно простым. Начнем с подсчета количе- ства возможных фактов, которые могут быть добавлены, определяющего макси- мальное количество итераций. Допустим, что к — максимальная арность (количе- ство параметров) любого предиката, р — количество предикатов ил — количество символов констант. Очевидно, что может быть не больше чем рп различных ба- зовых фактов, поэтому алгоритм должен достичь фиксированной точки именно после стольких итераций. В таком случае можно применить обоснование приве- денного выше утверждения, аналогичное доказательству полноты пропозицио- нального прямого логического вывода (см. раздел 7.5.4). Подробные сведения о том, как осуществить переход от пропозициональной полноты к полноте логики первого порядка, приведены применительно к алгоритму резолюции в разделе 9.5. При применении к более общим определенным выражениям с функциональ- ными символами алгоритм РОЬ-РС-Азк может вырабатывать бесконечно большое количество новых фактов, поэтому требуется соблюдать осторожность. Для того случая, в котором из базы знаний следует ответ на высказывание запроса д, необ- ходимо прибегать к использованию теоремы Эрбрана (раздел 9.1.1) для обеспече- ния того, чтобы алгоритм мог найти доказательство (случай, касающийся резолю- ции, описан в разделе 9.5). А если запрос не имеет ответа, то в некоторых случаях может оказаться, что не удается нормально завершить работу данного алгоритма. Например, если база знаний включает аксиомы Пеано Ма11Чит(0) V п => ИаМит(8(п)), то в результате прямого логического вывода в нее будут добавлены факты №1- !Уит(8(0)), №Мит(8(8(0))), №1Ыип^8(8(8(0)))) и т.д. Вообще говоря, избежать этой проблемы невозможно. Как и в общем случае логики первого порядка, задача вы- полнения логического вывода с использованием определенных выражений явля- ется полуразрешимой. 9.3.3. Эффективный прямой логический вывод Алгоритм прямого логического вывода, приведенный на рис. 9.3, был спроек- тирован с целью упрощения понимания основной идеи метода, а не обеспечения его эффективной работы. Существуют три возможных источника неэффективно- сти. Во-первых, внутренний цикл этого алгоритма пытается сопоставить все пра- вила с каждым фактом в базе данных. Во-вторых, алгоритм предусматривает по- вторную проверку каждого правила на каждой итерации, даже если в базу знаний было внесено очень мало дополнений. В-третьих, этот алгоритм может вырабаты- вать множество фактов, которые не имеют отношения к текущей цели. Устраним каждый из этих источников неэффективности по очереди.
Согласование правил с известными фактами Проблема согласования предпосылки правила с фактами, хранящимися в базе знаний, может показаться достаточно простой. Например, предположим, что тре- буется применить следующее правило: МквИе^х) => 1?еароп(х). Для этого необходимо найти все факты, которые согласуются с выражением Л/й- зИе(х). В базе знаний, проиндексированной необходимым образом, это можно вы- полнить за постоянное время в расчете на каждый факт. А теперь рассмотрим пра- вило, подобное следующему: М15зИе(х) Л Опп$(№>по, х) => ЗеИз^еа, х, №>по). И вновь, найти все объекты, принадлежащие государству Ноуноу, можно за по- стоянное время в расчете на каждый объект, а затем можно применить к каждо- му объекту проверку, является ли он ракетой. Однако если в базе знаний содер- жится много сведений об объектах, принадлежащих государству Ноуноу, и лишь немного сведений о ракетах, то лучше было бы сначала найти все ракеты, а за- тем проверить, какие из них принадлежат Ноуноу. Эго — проблема ►упорядоче- ния конъюнктов: отыскание упорядочения, позволяющего решать конъюнкты в предпосылке правила таким образом, чтобы общая стоимость решения была ми- нимальной. Как оказалось, задача поиска оптимального упорядочения является МР-трудной, но для нее имеются хорошие эвристики. Например, эвристика с ми- нимальным количеством оставшихся значений (МКУ), применявшаяся при решении задач УО в главе 6, подсказывает, что необходимо упорядочить конъюн- кты так, чтобы вначале проводился поиск ракет, если количество ракет меньше по сравнению с количеством всех известных объектов, принадлежащих государству Ноуноу. Между процедурами ►согласования с шаблоном и удовлетворения ограни- чений действительно существует очень тесная связь. Каждый конъюнкт может рассматриваться как ограничение на содержащиеся в нем переменные; например, Л/й$//е(х) — это унарное ограничение на х. Развивая эту идею, можно прийти к выводу, что существует возможность представить любую задачу УО с конечной областью определения как единственное определенное выражение наряду с некоторы- ми касающимися ее базовыми фактами. Рассмотрим приведенную на рис. 6.1 зада- чу раскраски карты Австралии, которая вновь приведена на рис. 9.5, а. Эквива- лентная формулировка в виде одного определенного выражения представлена на рис. 9.5, б. Очевидно, что заключение Со1огаЫе0 можно вывести из этой базы зна- ний, только если данная задача УО имеет решение. А поскольку задачи УО в це- лом включают задачи 8АТ (выполнимости булевых формул) как частный случай, можно сделать вывод, что задача согласования определенного выражения с множе- ством фактов является ИР-трудной.
7)/^(ию, п1) А 7)/^ (ию, за) А 7)/#(и/, я) А В1Д\п1, за) А ВЦ?(Я, и* *™') А А# (я, «О Л 7)/^(и$и>, у) Л В1$\пзм\ за) А 7)/^(у, за) => Со1огаЫе() В1Д\Кес1, В1иё) В^(Кес19 Сгееп) В^(Огееп, КесГ) В1$(Огееп, В1ие) ВЦ^(В1ие, Кес!) В1$(В1ие> Сгееп) б) Рис. 9.5. а) Граф ограничений для задачи раскрашивания карты Австралии, б) Зада- ча УО раскрашивания карты Австралии, представленная одним определенным вы- ражением. Каждый регион карты представлен переменной, значением которой мо- жет быть одна из констант Кес!, Сгееп и В1ие (которые объявлены как В$) Тот факт, что во внутреннем цикле алгоритма прямого логического вывода не- обходимо решать КР-трудную задачу согласования, может показаться удручаю- щим. Однако существует три способа, позволяющих улучшить эту ситуацию. • Напомним, что большинство правил в базах знаний, применяемых на прак- тике, являются небольшими и простыми (подобно правилам, используемым в примере доказательства преступления), а не большими и сложными (как в формулировке задачи УО, приведенной на рис. 9.5). В сообществе пользо- вателей баз данных принято считать, что размеры правил и арности преди- катов не превышают некоторого постоянного значения, и принимать во вни- мание требуется только ► сложность данных, т.е. сложность логического вывода как функции от количества базовых фактов в базе данных. Можно легко показать, что в этом смысле сложность данных при прямом логиче- ском выводе определяется полиномиальной зависимостью. • Можно рассматривать подклассы правил, для которых согласование явля- ется наиболее эффективным. По сути, каждое выражение на языке Оа1а1о§ может рассматриваться как определяющее некоторую задачу УО, поэтому согласование будет осуществимым только тогда, когда соответствующая за- дача УО будет разрешимой. В главе 6 было описано несколько семейств раз- решимых задач УО. Например, если граф ограничений (граф, узлами кото- рого являются переменные, а дугами — ограничения) образует дерево, то эта задача УО может быть решена за линейное время. Точно такой же ре- зультат остается в силе в отношении согласования с правилами. Например,
если из графа, приведенного на рис. 9.5, а, удалить узел 8А, относящийся к Южной Австралии, то результирующее выражение примет следующий вид: Р/^(и,а, п1) Л О^(п1, д) Л пз\м) Л V) => Со1огаЫе(), что соответствует сокращенной задаче УО, показанной на рис. 6.12. Алго- ритмы решения задач УО с древовидной структурой могут непосредственно применяться для решения задачи согласования с правилами. • Можно попытаться исключить излишние попытки согласования с правила- ми в алгоритме прямого логического вывода, что и является темой следую- щего подраздела. Инкрементный прямой логический вывод В предыдущем разделе, при демонстрации работы прямого логического выво- да на примере доказательства преступления, имело место небольшое упрощение. В частности, были опущены некоторые из согласований с правилами, выполнен- ные алгоритмом, приведенным на рис. 9.3. Например, на второй итерации правило Л/ш/7е(х) => №еароп(х) согласуется с фактом М1ззИе(Мх) (еще раз), и, безусловно, при этом ничего не про- исходит, поскольку заключение 1Уеароп(М{) уже известно. Таких излишних согла- сований с правилами можно избежать, сделав следующее наблюдение: каждый новый факт, выведенный на итерации I, должен быть получен по меньшей мере из одного нового факта, выведенного на итерации I-1. Эго наблюдение соответствует истине, поскольку любой логический вывод, который не требовал нового факта из итера- ции I-1, уже мог быть выполнен на итерации I-1. Эго наблюдение естественным образом приводит к созданию алгоритма инкре- ментного прямого логического вывода, в котором на итерации I проверка правила происходит только тогда, когда его предпосылка включает конъюнкт р„ который унифицируется с фактом р', вновь выведенным на итерации /- 1. Затем на этапе согласования с правилом значение р, фиксируется для согласования с р', но при этом допускается, чтобы остальные конъюнкты в правиле согласовывались с фак- тами из любой предыдущей итерации. Этот алгоритм в каждой итерации выраба- тывает точно такие же факты, как и алгоритм, приведенный на рис. 9.3, но являет- ся гораздо более эффективным. При использовании подходящей индексации можно легко выявить все правила, которые могут быть активизированы любым конкретным фактом. Многие реальные системы действуют в режиме “обновления”, при котором прямой логический вывод происходит в ответ на каждый новый факт, сообщенный системе с помощью опера- ции Теьь. Операции логического вывода каскадно распространяются через множе- ство правил до тех пор, пока не достигается фиксированная точка, а затем этот про- цесс выполняется вновь и вновь по мере поступления каждого нового факта.
Как правило, в действительности лишь небольшая доля правил в базе знаний активизируется в результате добавления определенного факта. Это означает., что при многократном построении частичных согласований с правилами, имеющи- ми некоторые невыполненные предпосылки, выполняется значительный объем ненужной работы. Рассматриваемый здесь пример доказательства преступления слишком мал, чтобы на нем можно было наглядно показать такую ситуацию, од- нако обратите внимание, что на первой итерации конструируется частичное согла- сование между правилом Атепсап(х) Л №ароп(у) Л 8е11з(х9у92) Л НозН1е(2) СптпаЦх) и фактом Атепсап(]Уе81), Затем это частичное согласование отбрасывается и сно- ва формируется во второй итерации (в которой данное правило согласуется успеш- но). Было бы уместно сохранять и постепенно дополнять частичные согласования по мере поступления новых фактов, а не отбрасывать их. В ► алгоритме ге<е3 впервые была предпринята попытка решить эту проблему. Этот алгоритм предусматривает предварительную обработку множества правил в базе знаний для формирования своего рода сети потока данных, в которой каждый узел представляет собой литерал из предпосылки какого-либо правила. Операции связывания переменных продвигаются по этой сети и пропускаются после того, как выполнить согласование с каким-то литералом не удается. Если в двух лите- ралах некоторого правила совместно используется какая-то переменная (напри- мер, 8е11$(х,у,2) Л Но81Пе(2) в примере доказательства преступления), то вариан- ты связывания из каждого литерала пропускаются через узел проверки равенства. Процессу связывания переменных, достигших узла и-арного литерала, такого как 8е118(х, у, 2), может потребоваться перейти в состояние ожидания, пока будут опре- делены связывания для других переменных, прежде чем этот процесс сможет про- должиться. В любой конкретный момент времени состояние ге1е-сети охватывает все частичные согласования с правилами, что позволяет избежать большого объе- ма повторных вычислений. Не только сами ге1е-сети, но и различные их усовершенствования стали клю- чевым компонентом так называемых ► продукционных систем, принадлежащих к числу самых первых систем прямого логического вывода, получивших широкое распространение.4 В частности, с использованием архитектуры продукционной системы была создана система Хсои (ее первоначальное название — К1; МакДер- мотт [1546], 1982). Система Хсои содержала несколько тысяч правил и предназна- чалась для проектирования конфигураций компьютерных компонентов для заказ- чиков корпорации ВЕС. Ее создание было одним из первых очевидно успешных 3 Здесь ге1е — латинское слово, которое переводится как “сеть” и читается по-русски как “рете”, а по-английски — как “рити”. 4 Слово продукция в названии продукционная система обозначает правило “условие- действие”.
коммерческих проектов в развивающейся области экспертных систем. На осно- ве той же базовой технологии, реализованной на языке общего назначения ОР8-5, позднее было создано много других подобных систем. Продукционные системы также широко применяются в ► когнитивных ар- хитектурах (т.е. в моделях человеческого мышления), таких как АСТ (Андерсон [48], 1983) и 8олк (Лейрд и др. [1339], 1987). В подобных системах “рабочая па- мять” системы моделирует кратковременную память человека, а продукции обра- зуют часть долговременной памяти. В каждом цикле функционирования происхо- дит согласование продукций с фактами из рабочей памяти. Продукции, условия которых выполнены, могут добавлять или удалять факты в рабочей памяти. В от- личие от типичных ситуаций с большим объемом данных, наблюдаемых в базах данных, продукционные системы часто содержат много правил и относительно немного фактов. При использовании технологии согласования, оптимизированной должным образом, некоторые современные системы могут оперировать в реаль- ном времени больше чем миллионом правил. Не относящиеся к делу факты Еще один источник неэффективности прямого логического вывода состоит в выполнении всех допустимых этапов логического вывода на основе всех извест- ных фактов, даже если они не относятся к рассматриваемой цели. В примере до- казательства преступления не было правил, способных приводить к заключениям, не относящимся к делу. Но если бы в базе знаний присутствовало несколько пра- вил с описанием кулинарных предпочтений американцев или компонентов и цен на ракеты, алгоритм РОЬ-ГС-Азк сгенерировал бы много не относящихся к делу заключений. Один из способов предотвращения формирования нерелевантных заключе- ний состоит в использовании обратного логического вывода, обсуждаемого в разделе 9.4. Другое решение состоит в ограничении прямого логического выво- да избранным подмножеством правил, как в алгоритме РЬ-ГС-ЕмтА1Ь8? (см. раз- дел 7.5.4). Третий подход был разработан в области ► дедуктивных баз данных, представляющих собой крупномасштабные базы данных, такие как реляционные БД но в которых стандартным инструментальным средством являются не 8(Д-за- просы, а прямой логический вывод. Идея состоит в том, чтобы перезаписывать множество правил с использованием информации из цели так, что в процессе пря- мого логического вывода рассматриваются только релевантные связывания пере- менных, принадлежащие к так называемому ► магическому множеству. Напри- мер, если целью является Сптша1(Игез1), то правило, приводящее к заключению Сг1т1па1{х}, может быть перезаписано для включения дополнительного конъюн- кта, ограничивающего значение х: Ма%1с(х) А Атег1сап(х) А \Уеароп(у) А 8е11з(х,у, г) А НозШеф => СгйтпаЦх).
В базу знаний также добавляется факт Ма&сЦГеМ). В результате, даже если база знаний содержит факты о миллионах американцев, в процессе прямого ло- гического вывода будет рассматриваться только полковник Вест. Полный процесс определения магических множеств и перезаписи базы знаний слишком сложен для того, чтобы его описание было приведено в этой главе, но основная идея состоит в том, что выполняется своего рода “общий” обратный логический вывод от цели для выяснения того, какие связывания переменных нужно будет ограничивать. По- этому подход с использованием магических множеств может рассматриваться как гибридный между прямым логическим выводом и обратной предварительной об- работкой. 9.4. Обратный логический вывод Во втором главном семействе алгоритмов логического вывода используется подход с обратным логическим выводом на множестве определенных выраже- ний. Эти алгоритмы работают в обратном направлении, от цели, проходя по цепоч- ке от одного правила к другому, чтобы найти известные факты, поддерживающие доказательство. 9.4.1. Алгоритм обратного логического вывода На рис. 9.6 приведен алгоритм обратного логического вывода для определен- ных выражений. Запрос РОЬ-ВС-А8К(А2?, %оа1) будет выполнен, если база зна- ний содержит правило вида 1кз => %оа1, где 1кз (от 1е/1-Иапс1 зй1е — левая сто- рона) представляет собой список конъюнктов. Атомарный факт, такой как Атепсап(1Ре$1), рассматривается как выражение, для которого //» является пустым списком. Теперь запрос, содержащий переменные, может быть унифицирован не- сколькими способами. Например, запрос Регзоп(х) может быть выполнен подста- новкой {х/ЛИп}, а также подстановкой {хИИскагс!}. Поэтому алгоритм РОЬ-ВС- А8К реализован как генератор — функция, которая возвращает значения несколько раз, каждый раз предоставляя один возможный результат (см. приложение В). Обратный логический вывод является своего рода поиском И/ИЛИ — здесь ИЛИ присутствует потому, что целевой запрос может быть выполнен любым пра- вилом в базе знаний, а И — потому, что все конъюнкты в части 1кз выражения должны быть выполнены. Функция РОЬ-ВС-Ок работает, выбирая все выраже- ния, которые могут быть унифицированы с целью, стандартизируя переменные в выражении совершенно новыми переменными, а затем, если часть гка выражения действительно унифицируется с целью, выполняет каждый конъюнкт в части 1кз с использованием функции РОЬ-ВС-Аыо. Эта функция работает, по очереди под- тверждая каждый из конъюнктов и отслеживания накопленные подстановки по ходу выполнения. На рис. 9.7 показано дерево доказательства для получения фак- та Сгтта1(1Уез1) из высказываний, приведенных в уравнениях 9.3-9.10.
ГипсНоп Р0Ь-ВС-А8К(О, циегу) геСигпз генератор подстановок геСигп Р0Ь-ВС-0к(О, циегу, {}) ГипсНоп ЕОЬ-ВС-Ок(АД %оа1,0) геСигпз подстановка Гог еасИ ги1е ш ЕЕТСН-КиьЕ8-Еок-СоАЬ(/СВ, %оа1) до (//ю => гЛ$) <- $ТАКОАКП12Е-УАК1АВЬЕ8(п//е) Гог еасЬ 0' вп РОЬ-ВС-Ако(А7?, /Л$, имгу(гЛ$, %оа1, 0)) до у!е!д 0' ГипсНоп РОЬ-ВС-Ако(0, %оа1з, 0) геСигпз подстановка 1Г 0 = /аИиге СИеп геСигп еке 1Г ЬЕКОТН(^оа/,5) = 0 СИеп у!е1д 0 е!$е геМ«— Р1К8Т(#оаДу), КЕ8Т(#оа/$) Гог еасИ 0' ш Р0Ь-ВС-0к(О, 8ив8т(0,/?т), 0) до Гог еасИ 0" т РОЬ-ВС-Ако(0, ге$1, 0') до у!е!д 0" Рис. 9.6. Простой алгоритм обратного логического вывода для баз знаний логики первого порядка Алгоритм обратного логического вывода в том виде, в каком он был приведен в этом разделе, безусловно, представляет собой алгоритм поиска в глубину. Это означает, что его потребности в пространстве линейно зависят от размера доказа- тельства. Также это означает, что обратный логический вывод (в отличие от пря- мого логического вывода) страдает от проблем, обусловленных наличием повто- ряющихся состояний и неполноты. Тем не менее, несмотря на эти ограничения, обратный логический вывод оказался популярным и доказал свою эффективность в языках логического программирования. 9.4.2. Логическое программирование Логическое программирование — это технология, позволяющая довольно близ- ко подойти к воплощению декларативного идеала, описанного в главе 7: системы должны конструироваться путем представления знаний на некотором формальном языке, а задачи решаться путем применения процессов логического вывода к этим знаниям. Такой идеал выражен в следующем уравнении Роберта Ковальски: Алгоритм = Логика + Управление. Наиболее широко распространенным языком логического программирова- ния является язык ►Рго1о8. Он применяется в основном в качестве языка бы- строй разработки прототипов, а также для решения задач, связанных с манипу- ляцией символами, таких как написание компиляторов (Ван Рой [2260], 1990) и
синтаксический анализ текстов на естественном языке (Перейра и Уоррен [1777], 1980). На языке Ргок^было написано много экспертных систем для юридических, медицинских, финансовых и других проблемных областей. т} Рис. 9.7. Дерево доказательства, сформированное путем обратного логического вы- вода для доказательства того, что полковник Вест является преступником. Это де- рево следует читать в глубину, слева направо. Чтобы доказать факт СптпаЦуУез1\ необходимо доказать четыре конъюнкта, находящихся под ним. Одни из них нахо- дятся в базе знаний, а другие требуют дальнейшего обратного логического вывода. Связывания для каждой успешной унификации показаны после соответствующей подцели. Обратите внимание, что после успешного достижения одной подцели в конъюнкции ее подстановка применяется для последующих подцелей. Таким обра- зом, к тому времени, когда алгоритм РОЬ-ВС-А8К достигает последнего конъюнкта, первоначально имевшего форму Но$Ше(2\ переменная 2 уже будет связана с Ыопо Программы на языке Рго1о§ представляют собой множества определенных вы- ражений, записанных в системе обозначений, немного отличающейся от использу- емой в стандартной логике первого порядка. В языке Рго1о& прописные буквы при- меняются для обозначения переменных, а строчные — для обозначения констант, как раз наоборот по отношению к нотации, принятой в этой книге. Запятые разде- ляют конъюнкты в выражениях, а сами выражения записываются “задом наперед” по отношению к тому, как они записывались выше: вместо Л Л В =ф С на языке Рго1о2 записывается С : - А, В. Ниже показан типичный пример: сг!т1па1(Х) :- атег1сап(Х), иеароп(У), зе11з(Х|У|2)| Ьо8111е(2). В языке Рго1о^ запись [ Е11_ ] обозначает список, первый элемент которого — Е, а остальная часть обозначена как Ь. Вот программа на языке Рго1оё для предиката аррепсЦХ, У, 2), которая выполняется успешно, если список 2 является результатом добавления списка X в конец списка У.
аррепд([],У,У). аррепд([А|Х],У,[А|2]) аррепд(Х,У,2). На естественном языке эти выражения можно прочитать так: во-первых, допол- нение списка У пустым списком приводит к получению того же списка У, и, во-вто- рых, [ А12] — это результат дополнения списка У списком [ А | X], при условии, что 2 — это результат дополнения списка У списком X. В большинстве языков высоко- го уровня можно написать похожую рекурсивную функцию, определяющую, как добавить один список в конец другого. Однако определение в языке Рго1о§ на са- мом деле является более мощным, поскольку описывает отношение между тремя аргументами, а не функцию, вычисляемую из двух аргументов. Например, в систе- му можно ввести запрос аррепсЦХ, У, [ 1,2,3 ]), т.е. какие два списка можно допол- нить один другим, чтобы получить список [1,2,3]? Система Рго1о§ возвратит сле- дующие решения. Х=[] У=[1,2,3]; Х=[1] У=[2,3]; Х=[1,2] У=[3]; Х=[1,2,3] У=[] Выполнение программ на языке Рго!о§ осуществляется по принципу обрат- ного логического вывода с поиском в глубину, при котором попытка примене- ния выражений выполняется в том порядке, в каком они записаны в базу знаний. Конструктивное решение, заложенное в основу системы Рго!о§, представляет со- бой компромисс между декларативностью и эффективностью работы. В резуль- тате некоторые аспекты языка Рго1о§ выходят за рамки стандартного логическо- го вывода. • В языке Рго1о§ используется семантика баз данных (см. раздел 8.2.8), а не семантика логики первого порядка, и это вполне очевидно из его трактовки равенства и отрицания (см. раздел 9.4.4). • В нем предусмотрено множество встроенных функций для выполнения арифметических операций. Литералы, в которых используются соответству- ющие функциональные символы, “доказываются” путем выполнения кода, а не осуществления дальнейшего логического вывода. Например, цель “X 1з 4+3” успешно достигается после связывания переменной X со значением 7. С другой стороны, попытка достижения цели “5 1з Х+У” заканчивается не- удачей, поскольку эти встроенные функции не обеспечивают решения про- извольных уравнений. • В языке Рго1о§ предусмотрены встроенные предикаты, вызывающие при их выполнении побочные эффекты. К ним относятся предикаты ввода-вывода и предикаты аззеП/ге^гас! для модификации базы знаний. Такие предикаты не имеют аналогов в логике и могут порождать некоторые эффекты, вызыва- ющие путаницу, например, если факты подтверждаются (и вводятся в базу
знаний) некоторой ветвью дерева доказательства, которая в конечном итоге заканчивается неудачей. • Из алгоритма унификации языка Рго1о@ исключена проверка вхождения. Это означает, что могут быть сделаны некоторые противоречивые логиче- ские выводы, однако на практике эта проблема почта никогда не возникает. • В системе Рго1о§ используется обратный логический вывод с поиском в глу- бину без проверок на бесконечную рекурсию. Так сделано для удобства ис- пользования языка программирования, который работает очень быстро при правильном использовании. Но это также означает, что некоторые програм- мы, которые выглядят как вполне допустимое логическое построение, ни- когда не закончат своего выполнения. 9.4.3. Избыточный логический вывод и бесконечные циклы Теперь обратимся к ахиллесовой пяте языка Рго1о§: несогласованности между поиском в глубину и деревьями поиска, включающими повторяющиеся состояния и бесконечные пути. Рассмотрим следующую логическую программу, позволяю- щую определить, существует ли путь между двумя точками в ориентированном графе: раГЬ(Х,2) 11пк(Х,2). раГЬ(Х,2) ра111(Х,У). Ипк(У,2). На рис. 9.8, а приведен простой граф, состоящий из трех узлов, который опи- сан с помощью фактов Ипк(а, Ь) и Нпк(Ъ, с). При использовании этой программы запрос ра(И(а, с) вырабатывает дерево доказательства, показанное на рис. 9.9, а. С другой стороны, если эти два выражения расположены в порядке ра1Ь(Х,2) ра1:11(Х,У), Ипк(У,2). ра111(Х,2) Нпк(Х,2). то система Рго1о§ следует по бесконечному пути, как показано на рис. 9.9, б. По- этому система Рго1о§ является неполной в качестве программы автоматического доказательства теорем для определенных выражений (как показано в этом приме- ре, даже применительно к программам, соответствующим формату языка Ва(а1о§), поскольку для некоторых баз знаний эта система оказывается неспособной до- казать высказывания, которые из них следуют. Необходимо отметить, что алго- ритм прямого логического вывода не подвержен этой проблеме: сразу после выво- да фактов ра1Ь(а, Ь), ра1Ь(Ь, с) и раТН(а, с) процесс прямого логического вывода останавливается. Обратный логический вывод с поиском в глубину сталкивается также с пробле- мами, обусловленными излишними вычислениями. Например, при поиске пути от узла Л, к узлу -Ц на рис. 9.8, б система Рго1о§ выполняет 877 этапов логическо- го вывода, большинство из которых связано с поиском всех возможных путей к
узлам, не позволяющим достичь цели. Такая проблема аналогична проблеме по- вторяющихся состояний, которая описывалась в главе 3. Общее количество этапов логического вывода может определяться экспоненциальной зависимостью от ко- личества базовых фактов, вырабатываемых в процессе вывода. А если бы вместо этого применялся прямой логический вывод, то можно было бы ограничиться вы- работкой, самое большее, п2 фактов раГЬ(Х, У), связывающих п узлов. Так, для ре- шения задачи, приведенной на рис. 9.8, б, потребовалось бы всего 62 этапа логи- ческого вывода. Рис. 9.8. а) Поиск пути от А до С может привести систему Рго1о& к выполнению бес- конечного цикла, б) Граф, в котором каждый узел связан с двумя случайно выбирае- мыми преемниками на следующем уровне. На отыскание пути от А, до требуется 877 этапов логического вывода а) Рис. 9.9. а) Доказательство того, что путь от Л до С существует, б) Бесконечное де- рево доказательства, формируемое из-за того, что выражения находятся в “непра- вильном” порядке
Применение прямого логического вывода при решении задач поиска в графе представляет собой пример ► динамического программирования, в котором ре- шения подзадач формируются инкрементно из решений меньших подзадач и ке- шируются для предотвращения повторного вычисления. Аналогичный эффект в системе обратного логического вывода может быть достигнут за счет разбиения больших целей на меньшие по размеру вместо их укрупнения. В любом случае сохранение промежуточных результатов во избежание дубли- рования является ключевым фактором. Этот подход применяется в системах ►та- булированного логического программирования (1аЫес11о&срго$гаттт$), ис- пользующих эффективные механизмы сохранения и выборки. В табулированном логическом программировании объединяется целенаправленность обратного логи- ческого вывода с эффективностью динамического программирования, присущей прямому логическому выводу. Кроме того, эти системы являются полными приме- нительно к базам знаний в формате Оа1а1о§, а это означает, что программисту при- ходится меньше беспокоиться о бесконечных циклах. (Все еще остается возмож- ность попасть в бесконечный цикл в случае предикатов типа 'Ра1Ьег(Х, V), которые ссылаются на потенциально неограниченное количество объектов.) 9.4.4. Семантика базы данных языка Рго1од В языке Рго1о§ семантика базы данных используется в том виде, в каком она описана в разделе 8.2.8. В программе на языке Рго1о§ допущение уникальности имен требует, чтобы каждая константа и каждый базовый терм ссылались на от- дельный объект, а допущение замкнутости мира определяет, что истинными мо- гут быть только те высказывания, которые следуют из базы знаний. В языке Рго1о§ нет возможности утверждать, что высказывание является ложным. Это делает его менее выразительным, чем логика первого порядка, но данное решение — часть того, что делает Рго1о§ более эффективным и более лаконичным. Рассмотрим сле- дующие утверждения о нескольких предлагаемых учебных курсах: Соигхе(С8, 101), Соигхе(С8, 102), Соиг$е(С8, 106), Соике(ЕЕ, 101). (9.11) В соответствии с допущением уникальности имен имена С8 и ЕЕ различа- ются (как и имена 101, 102, 106), а это означает, что существует четыре различ- ных курса. Из допущения замкнутости мира следует, что никаких других курсов нет, а значит, существует ровно четыре учебных курса. Но если рассматривать эти утверждения, исходя из семантики логики первого порядка, а не семантики базы данных, то все, что можно было бы сказать, — это что имеется приблизи- тельно от одного до бесконечности курсов. Причина в том, что эти утверждения (в логике первого порядка) не отрицают возможность того, что в действительности предлагаются и другие, не упомянутые здесь, курсы, а также не указывают на то, что эти упомянутые курсы отличаются друг от друга. Если адекватно переписать
уравнение (9.11) с использованием семантики логики первого порядка, то полу- чится следующее высказывание: Соиг8е(сЦ п) о (с1=С8/\п = 101) V (с! = С8/\п= 102) У(с1 = С8/\п = 106) \/(с!=ЕЕ/\п= 101). (9.12) Этот результат называется ► завершением уравнения (9.11). В логике первого по- рядка он выражает идею, что существует максимум четыре курса. Чтобы выразить в этой логике идею, что есть как минимум четыре курса, необходимо записать за- вершение предиката равенства: х = у о (х = С8 Лу = С8)У (х = ЕЕ /\у = ЕЕ)У (х = 101 Лу= 101) У(х= 102 Лу= 102) У(х = 106 Лу= 106). Завершение полезно для понимания семантики баз данных, но не для практиче- ских целей. Если решаемая задача может быть описана с использованием семанти- ки базы данных, эффективнее будет выполнять рассуждения с помощью системы Рго1о§ или какой-либо другой системы, использующей семантику базы данных, а не переводить высказывания на язык логики первого порядка и использовать для выполнения рассуждений соответствующий решатель. 9.4.5. Логическое программирование в ограничениях Выше, при обсуждении прямого логического вывода (раздел 9.3), было показа- но, как можно представить задачи удовлетворения ограничений (С8Р) в виде опре- деленных выражений. Стандартный язык Рго1о§ позволяет решать подобные зада- чи точно таким же способом, как и алгоритм поиска с возвратами, приведенный на рис. 6.5. Поскольку поиск с возвратами предусматривает полный перебор областей определения переменных, он может применяться только для решения задач УО с конечными областями определения. В терминах языка Рго1о§ это можно пе- рефразировать таким образом, что для любой цели с несвязанными переменными должно существовать конечное количество решений. (Например, в задаче раскра- ски карты должно быть указано, что для каждой переменной выбирается один из четырех разных цветов.) Задачи УО с бесконечными областями определения (на- пример, с целочисленными или вещественными переменными) требуют примене- ния совсем других алгоритмов, таких как распространение пределов или линей- ное программирование. Рассмотрим следующий пример. Определим предикат 1г1апд1е(Х,7,2), вы- полняющийся успешно, когда три его аргумента являются числами, удовлетворя- ющими неравенства треугольника: Тг1апд1е(Х,7,2) :- Х>0, 7>0, 2>0, Х+7>2, 7+2>Х, Х+2>7.
Теперь, если в систему Рго1о§ ввести запрос 1г1апд1е(3,4» 5), она выдаст удов- летворительный ответ. С другой стороны, если ввести запрос 1г1апд1е(3,4,2), то решение не будет найдено, поскольку подцель 2>0 не может быть обработана си- стемой Рго1о§, — нельзя сравнить несвязанное значение с конкретным термом 0. ► Логическое программирование в ограничениях (Соп81гспп1 Ьо&с Рго- %гатт1п% — СЕР) позволяет ограничивать, а не связывать переменные. Решени- ем в СЕР является наиболее конкретное множество ограничений, налагаемых на переменные запроса, которое может быть определено с помощью базы знаний. На- пример, для запроса 1г1апд1е(3,4,2) решением является ограничение 7 > 2 > 1. Программы в стандартной логике представляют собой частный случай программ СЕР, в которых ограничения решения должны быть ограничениями равенства, т.е. связываниями. Системы СЕР включают различные алгоритмы решения задач с ограничения- ми такого типа, которые разрешены к использованию в языке. Например, систе- ма, позволяющая использовать линейные неравенства с переменными, имеющими вещественные значения, может включать алгоритм линейного программирования для решения этих ограничений. Кроме того, в системах СЕР принят гораздо более гибкий подход к решению запросов стандартного логического программирования. Например, вместо поиска в глубину слева направо с возвратами в них может при- меняться любой из более эффективных алгоритмов, описанных в главе 6, включая эвристическое упорядочение конъюнктов, обратный переход, определение усло- вий формирования множества отсечения и т.д. В результате в системах СЕР соче- таются элементы алгоритмов удовлетворения ограничений, логического програм- мирования и дедуктивных баз данных. Существует несколько систем, позволяющих программисту получить боль- ший контроль над порядком поиска для логического вывода. Например, язык МК8 (Генесерет и Смит [838], 1981; Расселл [1938], 1985) позволяет программисту за- писывать ► метаправила для определения того, какие конъюнкты должны быть опробованы в первую очередь. Пользователь может сформулировать правило с указанием, что в первую очередь следует пытаться достичь цели с наименьшим количеством переменных или оформить характерные для проблемной области правила, касающиеся конкретных предикатов. 9.5. Резол юция_____________________________________________________ Последнее из трех рассматриваемых в данной главе семейств логических си- стем и единственное, способное работать с любыми базами знаний, а не только содержащими лишь определенные выражения, основано на использовании резо- люции. Как было показано в разделе 7.5.1, пропозициональная резолюция — это полная процедура логического вывода для логики высказываний. В этом разделе будет показано, как распространить данную процедуру на логику первого порядка.
9.5.1. Конъюнктивная нормальная форма для логики первого порядка Первый этап — это преобразование высказываний в конъюнктивную нор- мальную форму (СогуипсНуе 1\1огта1 Рогт — СКЕ), т.е. конъюнкцию выражений, в которой каждое выражение представляет собой дизъюнкцию литералов.5 В СКР литералы могут содержать переменные, на которые, согласно принятому предпо- ложению, распространяется квантор всеобщности. Например, высказывание У х, у, г Атепсап(х) Л 1Реароп(у) Л 8е11з(х,у, г) Л Но8Н1е(г) =У Снпйпа1(х) в форме СКР принимает следующий вид: -<Атег1сап(х) V -АРеарог^у) V ^8е11$(х,у, г) V ->Но5Ше(2) V СппйпаЦх). Важно то, что -► каждое высказывание в логике первого порядка может быть преобра- зовано в эквивалентное с точки зрения логического вывода высказывание СИЕ. Процедура преобразования любого высказывания в форму СКР подобна проце- дуре, применяемой в логике высказываний, представленной в разделе 7.5.2. Прин- ципиальное различие связано с необходимостью устранения кванторов существо- вания. Проиллюстрируем эту процедуру на примере преобразования в форму СКР высказывания “Каждого, кто любит всех животных, кто-то любит”, или V* [\/у АттаЦу) => Ьоуез{х,у)] => [Зу Ьогех(у,х)] (где Атта1 — животное, а Ьоуеа — любит). Вот этапы этого преобразования. • Устранение импликаций. Замена Р =У <2т.^РУ (*). Для нашего примера предложения это нужно сделать дважды: -|[ У у АттаЦу) => Ьоуез(х, у)] V [3 у Ьоуез(у,х)]; V х ->[\/у ->Атта1(у) V Роуе$(х,у)] V [В у Ьоуез(у, х)]. • Перемещение связок -> внутрь выражений. Кроме обычных правил для отрицаемых связок, нам нужны правила для отрицаемых кванторов. Поэто- му получаем следующие правила: -л V х р принимает вид 3 х ~>р', -Вх р принимает вид V х ->р. Рассматриваемое здесь высказывание проходит через такие преобразования: Ух [Зу ->(-Ап1та1(у) V Ьоуез(х,у))] V [Ву Ьоуех(у,х)]; Ух [Ву -1->Атта!(у) Л ->Ьоуе$(х,у)] V [3у Ьоуе$(у,х)]; 5 Любое выражение также может быть представлено как импликация с конъюнкцией атомов слева и дизъюнкцией атомов справа. Эту форму, называемую импликативной нор- мальной формой, иногда также называют формой Ковальски, особенно при использова- нии записи с символом импликации, ориентированным справа налево (Ковальски [1296], 1979). Часто эта форма намного удобнее для чтения по сравнению с другими формами.
\/х [Зу Ап1та1{у) Л -^Ьоуез(х, у)] V [Зу Ьоуез(у9 х)]. Обратите внимание на то, что квантор всеобщности (V у) в предпосылке им- пликации стал квантором существования. Теперь это высказывание приоб- рело такое прочтение: “Либо существует какое-то животное, которого х не любит, либо (если это утверждение не является истинным) кто-то любит х”. Очевидно, что смысл первоначального высказывания был сохранен. • Стандартизация переменных. В высказываниях наподобие (3 х Р(х)) V (3 х 0(х)), в которых одно и то же имя переменной используется дважды, из- меним имя одной из переменных. В дальнейшем это позволит избежать пу- таницы после удаления кванторов. В результате получим следующее: Ух [Зу Ап1та1(у) Л ->^отв5(х, у)] V [3 2 Ьоуез(29 х)]. • Сколемизация. кСколемизация — это процесс устранения кванторов существования путем их удаления. В данном простом случае этот процесс подобен применению правила конкретизации с помощью квантора суще- ствования, приведенного в разделе 9.1: преобразовать 3 х Р(х) в Р(Л), где А — новая константа. Однако если это правило будет непосредственно при- менено к высказыванию, рассматриваемому в качестве примера, то будет по- лучено высказывание V х [Атта1(А) Л -^оте$(х, Л)] V Ьоуез^В, х), имеющее полностью неправильный смысл: в нем утверждается, что каждый либо не способен любить какое-то конкретное животное А, либо его любит некоторая конкретная сущность В. В действительности первоначальное вы- сказывание позволяет каждому человеку не быть способным любить како- е-то другое животное или быть любимым другим человеком. Поэтому жела- тельно, чтобы сущности, определяемые в процессе сколемизации, зависели отх: V х [Ап1та1(Р(х)) Л ->^отв5(х, ^(х))] V Ьоуез(О(х)9 х), где Р и О — ► сколемовские функции. Общее правило состоит в том, что все параметры сколемовской функции должны быть переменными, на кото- рые распространяются кванторы всеобщности, в область действия которых попадает соответствующий квантор существования. Как и при использова- нии конкретизации с помощью квантора существования, сколемизированное высказывание является выполнимым тогда и только тогда, когда выполнимо первоначальное высказывание. • Удаление кванторов всеобщности. В данный момент на все оставшиеся переменные должны распространяться кванторы всеобщности. Следова- тельно, мы не теряем никакой информации, если отбрасываем квантор: [Атта1(Р(х)) Л -^Ьоуез(х, ^(х))] V Ьоуез(С(х)9 х).
• Распределение связки V по Л: [Атта1(Г(х)) У Ьоуез(О(х\ х)] Л [-1/,оуе$(х, Е(х)) У Ьоуех(О(х)9 х)]. На этом этапе может также потребоваться выполнить раскрытие скобок во вложенных конъюнкциях и дизъюнкциях. Теперь исходное высказывание находится в форме СКР и состоит из двух вы- ражений. Оно гораздо сложнее для восприятия, чем первоначальное высказывание с импликациями. (Помочь его понять может такое пояснение, что сколемовская функция Е(х) указывает на животное, которое потенциально может быть нелю- бимым лицом х, а функция С(х) указывает на кого-то, кто может любить лицо х.) К счастью, людям редко приходится анализировать высказывания в форме СКР, поскольку приведенный выше процесс преобразования легко автоматизировать. 9.5.2. Правило логического вывода с помощью резолюции Правило резолюций для выражений в логике первого порядка представля- ет собой поднятую версию правила резолюций для логики высказываний, при- веденного в разделе 7.5.2. Два выражения, которые, как предполагается, долж- ны были быть стандартизированы таким образом, чтобы в них не было общих переменных, могут быть подвергнуты операции резолюции, если они содержат взаимно дополнительные литералы. Литералы логики высказываний являются взаимно дополнительными, если один из них представляет собой отрицание дру- гого, а литералы в логике первого порядка являются взаимно дополнительными, если один из них унифицируется с отрицанием другого. Поэтому имеет место следующее правило: _________________У---У1*, _________________ 8ивзт(0, V---У^,_! V^+1 V---У^ Утп, V---У^л1 Vт^ У-УтУ где 11мру(^, -»ту) = 0. Например, можно применить операцию резолюции к двум выражениям, [Атта1(Г(х)) V Ьоуех(Сг(х)9 х)] и [-^Ьоуез(и9 V) V -^КШ^и, г)], путем устранения взаимно дополнительных литералов ^огв5((7(х), х)] и ~>Ьоуе8(и, г) с помощью унификатора 0 = {и/С(х\ Ух} и получения следующего выражения, на- зываемого резольвентой: [Атта1(Р(х)) V ^К111з(О(х)9 х)]. Это правило называется правилом ► бинарной резолюции, поскольку пред- полагает удаление с помощью резолюции точно двух взаимно дополнитель- ных литералов. Отдельно взятое правило бинарной резолюции не позволяет по- лучить полную процедуру логического вывода. Правило полной резолюции позволяет удалять в каждом выражении подмножества литералов, являющихся
унифицируемыми. Альтернативный подход состоит в распространении операции факторизации — удаления избыточных литералов — на логику первого поряд- ка. В пропозициональной факторизации два литерала сводятся к одному, если они идентичны, а при факторизации в логике первого порядка два литерала сводятся к одному, если они являются унифицируемыми. Унификатор должен быть применен ко всему выражению. Сочетание бинарной резолюции и факторизации позволяет создать полную процедуру логического вывода. 9.5.3. Примеры доказательств При резолюции доказательство того, что КВ |= а (из базы знаний КВ следу- ет высказывание а) осуществляется путем доказательства невыполнимости выра- жения КВ А ->а, т.е. путем вывода пустого выражения. Алгоритмический подход, применяемый в логике первого порядка, идентичен подходу в логике высказыва- ний, представленному на рис. 7.13, поэтому мы не будем здесь его повторять. Вме- сто этого приведем два примера доказательства. Первый из них — это пример до- казательства преступления, уже обсуждавшийся в разделе 9.3. Соответствующие высказывания, преобразованные в форму СИЕ, выглядят следующим образом: - •Атепсап(х) V -РРеароп^у) V ~8е11з(х,у,2) V ->НозШе(2) V СпттаЦх) -М1ззИе(х) V -<О^>пз(Ыопо, х) V 8е11з{\Рез1, х, 1Уопо) - <Епету(х, Атепса) V НозН1е(х) - <М1ззИе(х) V \Реароп(х) Он>пз(№то, М1ззИе(М^ Атепсап(1Рез1) Епету(М)по, Атепса). В число этих высказываний должна быть включена также отрицаемая цель -Спгтпа!(1Рез1). Процедура доказательства по методу резолюции приведена на рис. 9.10. Обратите внимание на его структуру: единственная “вертикаль” начи- нается с целевого выражения, и операция резолюции применяется к выражениям из базы знаний до тех пор, пока не образуется пустое выражение. В этом состо- ит характерная особенность применения метода резолюции к базам знаний, пред- ставленным в виде хорновских выражений. В действительности выражения, рас- положенные вдоль главной вертикали, точно соответствуют последовательным значениям целевых переменных в алгоритме обратного логического вывода, пред- ставленном на рис. 9.6. Эго связано с тем, что для резолюции всегда выбирается выражение, положительный литерал которого унифицируется с крайним слева ли- тералом “текущего” выражения в вертикали; именно это происходит при обратном логическом выводе. Таким образом, обратный логический вывод в действительно- сти представляет собой просто частный случай резолюции, в котором применяет- ся конкретная стратегия управления для определения того, какая операция резолю- ции должна быть выполнена в следующую очередь.
]<^Сгжла/(ИЫ) | ВВЙЙ1Й1Й^^ рМтеНсап(1Геу/) V ^Увороп(у) V -ЯМ, V ~,Яа$//ОД 8 > ' |^Уецроф)VУ-^Ы$| ДДИДДч^рЛ^|/е(у) V -^еДу(ИЫ^) V | [ ^МкМх) \ Ом'пЦЛ^лол) V 5е/^(У«гл^Уоло)| | ^е//5(ЙЫ,М,г) V ^Яом/ф) [ [ ЛДз^Не(Л/1)| | у]И^//е(А/1)V ^О\ш(Копо,М]} V^НомЩМто) | | 6М>(^уго,^у] \-^ш(^поМ)^^о^(^опо) | М ।'. 11 ^Яоуй^ЛЬло) [ \^Епету(^пОуАтепса) | Рис. 9.10. Процедура доказательства с помощью резолюции того, что полковник Вест совершил преступление. На каждом этапе резолюции унифицируемые литера- лы выделены черным шрифтом, а выражения с положительным литералом имеют более темную заливку Второй пример демонстрирует использование сколемизации и включает выра- жения, которые не являются определенными. В результате структура доказатель- ства становится немного более сложной. На естественном языке эта задача форму- лируется следующим образом. Каждого, кто любит всех животных, кто-то любит. Любого, кто убивает животных, никто не любит. Джек любит всех животных. Кота по имени Туна убил либо Джек, либо любопытство (англ. — сипозНу). Этого кота убило любопытство? Сначала представим в логике первого порядка первоначальные высказывания, некоторые фоновые знания и отрицаемую цель 6. А. [У уАпгтаЦу) => Ьоуе8{х9у)} => [Зу Ьоче8(у9 х)] В. V х [3 г АттаЦг) А КП1$(х9 г)] => [ V у -^Ьоуез(у9 х)] С. Ух АпгтаЦх) => Ьоуез^аск,х) О. КШ^аск, Типа) V КП18{Сигю8Иу9 Типа) Е. СаЦТипа) Е V х СаЦх) => Апта1(х) ->О. ^КШ8(Сиг1о8Оу9 Типа)
Теперь применим процедуру преобразования, чтобы преобразовать каждое выска- зывание в форму СИЕ А1. АпгтаЦР (х)) V Ьоуез(С(х), х) А2. -Тоуез(х9 Р (х)) V Ьоуез((3(х\ х) В. х) V ~^Ап1та1{2) М ^КИ1з(х, г) С. -^АттаЦх) V Ьоуез^аск, х) В. КШз^аск, Типа) V КШз^СипозНу, Типа) Е Са1(Гипа) Е -»Са/(х) V Атта1(х) -»6. ^КШз^СигюзМу, Типа) Доказательство с помощью метода резолюции того, что кота убило любопыт- ство, приведено на рис. 9.11. На естественном языке это доказательство может быть перефразировано, как показано ниже. Предположим, что кота Туну убило не любопытство. Мы знаем, что это сделал либо Джек, либо любопытство; в таком случае это должен был сделать Джек. Итак, Туна — кот, а коты — животные, поэтому Туна — животное. Любого, кто убивает животное, никто не любит, поэтому мы делаем вывод, что никто не любит Джека. С другой стороны, Джек любит всех животных, поэтому есть кто-то, кто его любит; таким образом, возникает противоречие. Следовательно, можно сделать вывод, что кота убило любопытство. | СаЦТшю) | | -^Са^х)\Атта1(х) | Типа) К11к(Сиг1ом(у, Типа) | ‘ ^Шз(Сигю$иу> Типа) ] Чт/иаА Типа} | -Тоуез^у, х)Ч^АпЬпа1(х)V2)~] [КМаск,! I ^Тоуе^х,Г(х))V 1оуе$6(х\х)| . Ьа\-я(Таск, х) | Ч<л^0,х)УпШу(х> Типа) | \^1оуе8(у,Таск) | | ^Атта1(Е(Таск)УТ 1о^С(}аск\ МНННЩШ \й^ТаТк),Ааск)\ Рис. 9.11. Процедура доказательства с помощью резолюции того, что кота убило любопытство. Обратите внимание, при выводе выражения Ьоуез((х(^аск\ Заек) ис- пользовалась факторизация. Также обратите внимание, что вверху справа унифика- ция выражений Ьоуез(х, Р(х)) и Ьоуез(3аскь х) может быть успешной только после того, как переменные были стандартизованы отдельно Такое доказательство на самом деле отвечает на вопрос “Действительно ли этого кота убило любопытство?”, но часто требуется найти ответ на более общие вопросы, такие как “Кто убил кота?” Резолюция позволяет это сделать, но для
получения ответа потребуется немного больше работы. Данная цель может быть представлена в виде выражения 3 КШ^м, Типа), которое после его отрицания имеет в форме СИР вид Типа). Если повторить доказательство, приве- денное на рис. 9.11, с новой отрицаемой целью, мы получим аналогичное дере- во доказательства, но с подстановкой {ю/Сипо$11у} на одном из этапов. Поэтому в данном случае для поиска того, кто убил кота, достаточно проследить за свя- зываниями, которые применяются к переменным запроса в этом доказательстве. К сожалению, метод резолюции иногда может вырабатывать к неконструктив- ные доказательства для существующих целей, когда мы знаем, что запрос верен, но не существует уникального варианта связывания для переменной. 9.5.4. Полнота резолюции В данном разделе приведено доказательство полноты резолюции. Это доказа- тельство может пропустить без ущерба для дальнейшего понимания текста любой читатель, который готов принять его на веру. Мы покажем, что метод резолюции обеспечивает ► полноту опровержения (ге/майоп сотр1е1епеа8), — это означает, что если множество высказываний явля- ется невыполнимым, то резолюция всегда позволяет прийти к противоречию. Ре- золюцию нельзя использовать для выработки всех логических следствий из мно- жества высказываний, но она может применяться для подтверждения того, что данное конкретное высказывание следует из множества высказываний. Поэто- му резолюция может служить для поиска всех ответов на любой конкретный во- прос 0(х) путем доказательства того, что выражение КВ Л ~>0(х) невыполнимо. Примем как истинное утверждение, что любое высказывание в логике перво- го порядка (без использования равенства) может быть перезаписано в виде мно- жества выражений в форме С№. Это можно доказать методом индукции на осно- ве анализа формы высказывания, применяя в качестве базового случая атомарные высказывания (Дэвис и Путнам [544], 1960). Поэтому наша цель состоит в том, чтобы доказать следующее: если 8—невыполнимое множество выражений, то применение к 8 конечного количества этапов резолюции приведет к противоречию. Схема данного доказательства повторяет первоначальное доказательство, при- веденное Робинсоном, с некоторыми упрощениями, которые были внесены Гене- зеретом и Нильссоном ([836], 1987). Основная структура доказательства приведе- на на рис. 9.12; оно осуществляется, следующим образом. 1. Вначале отметим, что если множество выражений 8 невыполнимо, то суще- ствует такое конкретное множество базовых экземпляров выражений в 8, что это множество также будет невыполнимо (теорема Эрбрана). 2. Далее прибегнем к основной теореме резолюции, приведенной в разде- ле 7.5.2, в которой утверждается, что пропозициональная резолюция являет- ся полной для базовых высказываний.
3. Теперь воспользуемся леммой поднятия, чтобы показать, что для любого доказательства по методу пропозициональной резолюции, в котором приме- няется множество базовых высказываний, существует соответствующее до- казательство по методу резолюции первого порядка с использованием вы- сказываний в логике первого порядка, из которых были получены базовые высказывания. Любое множество предложений § представимо в форме импликационных выражений Допустим, что множество 8 невыполнимо и представлено в форме импликационных выражений ------------------------------- Теорема Эрбрана Некоторое множество 8' базовых экземпляров невыполнимо Основная теорема 11 резолюции Резолюция позволяет найти противоречие в 8' ------------------------------------------------------ Лемма поднятия В этом состоит доказательство по методу резолюции противоречия в 8' Рис. 9.12. Структурная схема доказательства полноты резолюции Чтобы выполнить первый этап доказательства, потребуются три новых поня- тия, описанных ниже. • ►Универсум Эрбрана. Если 5 — множество выражений, то Н8, универсум Эрбрана для множества 5, представляет собой множество всех базовых тер- мов, которые могут быть сформированы из следующего: - функциональные символы из множества 5, если они имеются; - символы констант из множества 5, если таковые имеются; если они от- сутствуют, то символ константы по умолчанию, 5. Например, если множество 8 содержит только выражение ->Р(х, Р(х, А)) V Л) V К(.х, В), то универсум Эрбрана Н8 представляет собой следующее бесконечное множество базовых термов: {А, В, Р(А, А), Р(А, В), Р(В, А), Р(В, В), Р(А, Р(А, А)),...}. • Насыщение. Если 8 — множество выражений, а Р — множество базовых термов, то Р(5), насыщение 8 по отношению к Р, представляет собой множе- ство всех базовых выражений, полученное путем применения всех возмож- ных совместимых подстановок базовых термов из Р вместо переменных в 5.
• к База Эрбрана. Насыщение множества выражений 5 по отношению к его универсуму Эрбрана Н5 называется базой Эрбрана множества 5 и записыва- ется как Н^В). Например, если 5 содержит только приведенное выше выра- жение, то Н/В) представляет собой следующее бесконечное множество вы- ражений: {->Р(А, Р(А, А)) У ->О(А, А) V Я(А, В), -Р(В, Р(В, А)) V ->О(В, А) V К(В, В), Ч\Р(А, А), Р(Р(А, А), А)) V ~^0(Р(А, А), А) V Я(Р(А, А), В), -Р(Р(А, В), Р(Р(А, В), А)) V ^О(Р(А, В), А) V Я(Р(А, В), В),... }. Эти определения позволяют сформулировать одну из форм ► теоремы Эрбра- на (Эрбран [1013], 1930). Если множество выражений 5 является невыполнимым, то существует конечное подмножество Н/В), которое также является невыполнимым. Пусть 5' — это конечное подмножество базовых высказываний. Теперь можно прибегнуть к основной теореме резолюции (раздел 7.5.2), чтобы показать, что ре- золюционное замыкание КС^) содержит пустое выражение. А это означает, что доведение процесса пропозициональной резолюции до конца применительно к В' приводит к противоречию. Теперь, после определения того, что всегда существует доказательство по мето- ду резолюции, в котором применяется некоторое конечное подмножество базы Эр- брана множества В, на следующем этапе необходимо показать, что существует до- казательство по методу резолюции, в котором используются выражения из самого множества В, которые не обязательно являются базовыми выражениями. Начнем с рассмотрения одиночного приложения правила резолюции. Из базовой леммы Ро- бинсона следует приведенный ниже факт. Допустим, что С) и С2 — два выражения без общих переменных, а С/ и С2' — базовые экземпляры С, и С2. Если С' — резольвента С/ и С2, то существует вы- ражение С, такое, что, во-первых, С — резольвента С, и С2, и, во-вторых, С — базовый экземпляр С. Это утверждение называется клеммой поднятия (И/Ипк 1етта), поскольку позволяет поднять любой этап доказательства от базовых выражений к общим вы- ражениям в логике первого порядка. Для того чтобы доказать свою основную лем- му поднятия, Робинсону пришлось изобрести унификацию и определить все свой- ства наиболее общих унификаторов. Вместо повторения доказательства Робинсона просто проиллюстрируем применение этой леммы. С, = -&(х,Р(х,А)) У^О(х,А) V К( х,В) С2 = ЧЩ6(у),г)У Р(Н(у),г) С/ = ~-Р(Н(В\ Р(Н(В), А)) V ^(Я(В), А) V К(Н(В), В) = ~^(О(В), Р(Н{В), А)) V Р(Н(В), Р(Н(В), А))
С = -пМО(В), Г(Я(В), Л)) V ^О(Н(В\А)\; П(Н(В),В) с = ^(О(у),Р(Н(у),А))\/ ^О(Н(у),А)\/ К(Н(у),В) Очевидно, что С' — действительно базовый экземпляр выражения С. Вообще говоря, для того чтобы выражения С/ и С2' имели какие-либо резольвенты, они должны быть получены путем предварительного применения к выражениям С\ и С2 наиболее общего унификатора для пары взаимно дополнительных литералов в С! и С2. Из леммы поднятия можно легко получить аналогичное, приведенное ниже утверждение о любой последовательности применений правила резолюции. Для любого выражения С' в резолюционном замыкании множества выраже- ний 5' существует выражение С в резолюционном замыкании множества выра- жений 5, такое, что С' — базовый экземпляр выражения С и логический вывод С имеет такую же длину, как и логический вывод С. Из этого факта следует, что если в резолюционном замыкании множества вы- ражений 5' появляется пустое выражение, оно должно также появиться в резолю- ционном замыкании множества выражений 8. Это связано с тем, что пустое выра- жение не может быть базовым экземпляром любого другого выражения. Подведем итог: мы показали, что если множество выражений 8 невыполнимо, то для него су- ществует конечная процедура логического вывода пустого выражения с помощью правила резолюции. Поднятие способа доказательства теорем от базовых выражений к выражени- ям первого порядка обеспечивает огромное увеличение мощи доказательства. Это увеличение связано с тем фактом, что теперь в доказательстве первого порядка конкретизация переменных может выполняться только по мере того, как это по- требуется для самого доказательства, тогда как в методах с использованием ба- зовых выражений приходилось исследовать огромное количество произвольных конкретизаций. Теорема Геделя о неполноте Немного дополнив язык логики первого порядка для обеспечения возможности при- менять схему математической индукции в арифметике, Гедель в своей теореме о неполноте сумел показать, что существуют истинные арифметические высказыва- ния, которые не могут быть доказаны. Доказательство теоремы о неполноте немного выходит за рамки настоящей книги, поскольку в своем непосредственном виде оно занимает не меньше 30 страниц, по- этому здесь мы приведем лишь его набросок. Начнем с логической теории чисел. В этой теории существует единственная константа, 0, и единственная функция, 8 (функция определения преемника). В предполагаемой модели интерпретации этой теории 5(0) обозначает 1,5(5(0)) обозначает 2 и так далее, поэтому в рассматривае- мом языке имеются имена для всех натуральных чисел. Кроме того, словарь включа- ет функциональные символы +, х и Ехр! (возведение в степень), а также обычное множество логических связок и кванторов.
Прежде всего, отметим, что множество высказываний, которые могут быть записаны на этом языке, может быть пронумеровано. (Для этого достаточно представить себе, что определен алфавитный порядок символов, а затем в алфавитном порядке распо- ложено каждое из множеств высказываний длиной 1,2 и т.д.) Тогда можно обозначить каждое высказывание а уникальным натуральным числом #а (которое называется гёделевским номером). Это самый важный момент доказательства; в нем утвержда- ется, что теория чисел включает отдельное имя для каждого из ее собственных вы- сказываний. Аналогичным образом с помощью гёделевского номера С7(Р) можно пронумеровать каждое возможное доказательство Р, поскольку любое доказатель- ство — это просто конечная последовательность высказываний. Теперь предположим, что имеется рекурсивно перечислимое множество А высказы- ваний, которые представляют собой истинные утверждения о натуральных числах. Напомним, что высказывания из множества А можно именовать с помощью заданно- го множества целых чисел, поэтому можно представить себе, что на нашем языке за- писывается высказывание с^.А) такого рода. V / / — не гёделевский номер доказательства высказывания, гёделевским но- мером которого является у, где в доказательстве используются только предпо- сылки из множества А. Далее допустим, что а представляет собой высказывание а(#а, А), т.е. высказывание, в котором утверждается его собственная недоказуемость из А. (Утверждение о том, что такое высказывание всегда существует, является истинным, но его нельзя назвать полностью очевидным.) А теперь применим следующий остроумный довод: предположим, что высказыва- ние а доказуемо из А; в таком случае высказывание а ложно (поскольку в высказыва- нии а утверждается, что оно не может быть доказано). Но это означает, что имеется некоторое ложное высказывание, которое доказуемо из А, поэтому А не может состо- ять только из истинных высказываний, а это противоречит нашей предпосылке. По- этому высказывание а не доказуемо из А. Но именно это и утверждает о самом себе высказывание а; следовательно, а — истинное высказывание. Итак, мы показали (и сэкономили 29 страниц), что для любого множества истинных высказываний теории чисел и, в частности, для любого множества базовых акси- ом существуют другие истинные высказывания, которые не могут быть доказаны из этих аксиом. Из этого, кроме всего прочего, следует, что мы никогда не сможем доказать все теоремы математики в пределах любой конкретной системы аксиом. Очевидно, что это открытие имело для математики очень большое значение. Зна- чимость этого открытия для искусственного интеллекта была предметом широких обсуждений, начиная с размышлений самого Гёделя. Мы вернемся к этим обсужде- ниям в главе 27.
9.5.5. Равенство Ни в одном из методов логического вывода, описанных до сих пор в этой гла- ве, не было возможности манипулировать выражениями в форме х = у без некото- рой дополнительной обработки. Для решения этой проблемы может быть принято три различных подхода. Первый состоит в аксиоматизации равенства — включе- нии в базу знаний высказываний, касающихся отношения равенства. При этом не- обходимо будет указать, что отношение равенства является рефлексивным, сим- метричным и транзитивным, а также сформулировать утверждение, что в любом предикате или функции можно заменять равные литералы равными. Следователь- но, потребуются три базовые аксиомы и еще по одной аксиоме для каждого преди- ката и функции, как показано ниже. Ух х = х Vх,у х=у => у = х Ух, у, 2 Х=у Л у = 2 => Х = 2 У х, у х = у => (Р,(х) 4» Рх(у)) х,у х=у => (Р2(х) 44 Р2(у)> V уг,х,у,2 м=улх = 2 =4 (7Г1(И', х) = Г\(у, г)) УуГ,Х,у,2 =у Лх =2 =4 (ТГ2(М', х) = Р2(у, 2)) При наличии в базе знаний подобных высказываний любая стандартная проце- дура логического вывода, такая как резолюция, позволит решать задачи, требую- щие формирования рассуждений с учетом отношения равенства, например нахо- дить решения математических уравнений. Однако эти аксиомы будут генерировать множество выводов, большинство из которых бесполезно для доказательства. По- этому второй способ учета отношения равенства состоит в использовании допол- нительного правила логического вывода. В простейшем правиле, правиле демоду- ляции, берется единичное выражение х =у и некоторое выражение о, содержащее терм х, а затем формируется новое выражение путем подстановки терма у вме- сто х в выражении а. Эго допустимо, даже если терм в а лишь унифицируется с х, точного равенства с х не требуется. Обратите внимание, что демодуляция являет- ся направленной: при заданном х =у всегда только х заменяется на у, и никогда на- оборот. Это означает, что метод демодуляции может использоваться для упроще- ния выражений с использованием набора утверждений, таких как г+0 =г илиг'=г. Можно привести и другой пример. Если дано Ра1кег{Ра1кег(х)) = Ра1етаЮгап^/а1кег(х) В1гМа1е(Ра1кег(Ра1кег(Ве11аУ), 1926), применив демодуляцию, можно сделать вывод В1Пкс1а1е{Ра1етаЮгап<1/а1кег{Ве11а), 1926).
Можно привести и более формальное определение. • ►Демодуляция. Для любых термов х, у и г, где г появляется где-либо в ли- терале т, и где Пмеу(х, г)=0, справедливо следующее: х = у, т]\/---\/т„ 8ов(8ьвзт(9, х), 8чв8т(9, у), V • • • V т„) ’ где функция 8ЦВ8Т является обычной подстановкой связываемого списка, а функция 8пв(х, у, т) выполняет замену х на у где-либо в пределах т. Это правило также может быть расширено для обработки неединичных выра- жений, в которых присутствует знак равенства: • ►Парамодуляция. Для любых термов х, у и г, где г появляется где-либо в литерале т: и где 15меу(х, г) = 0, справедливо следующее: V---\/х = у, 8ив (81)взт(0, х), 8чв8т(9, у), 8цв8т(9, V • • • V (,к V пц V • • • V т„)' Например, из Р(Р(х, В), х) V 0(х) и Р(А, у) = у V Л(у) мы имеем 9=ПК1РУ(Т?(Л, у), Р(х, В))= {х/А, у/В} и посредством парамодуляции мо- жем вывести следующее высказывание: Р(В, А) V @(А) V К(В). Парамодуляция обеспечивает полную процедуру логического вывода для логики первого порядка с отношением равенства. В третьем подходе формирование логических рассуждений с учетом отноше- ния равенства полностью осуществляется с помощью расширенного алгоритма унификации. Это означает, что термы рассматриваются как унифицируемые, если можно доказать, что они становятся равными при некоторой подстановке, — здесь выражение “можно доказать” допускает включение рассуждений о равенстве. На- пример, термы 1 + 2 и 2 +1 обычно не рассматриваются как унифицируемые, но ал- горитм унификации, в котором известно, что х+у = у+х, способен унифицировать их с помощью пустой подстановки. Такого рода ►унификация с учетом равен- ства (едиа(юпа1 ипфсайоп) может выполняться с помощью эффективных алгорит- мов, разработанных с применением прямого использования определенных аксиом (коммутативность, ассоциативность и т.д.), а не явного логического вывода на ос- нове этих аксиом. Программы автоматического доказательства теорем с исполь- зованием этого метода очень близки к системам логического программирования в ограничениях, описанным в разделе 9.4.
9.5.6. Стратегии резолюции Как известно, повторные применения правила логического вывода на основе резолюции позволяют в конечном итоге найти доказательство, если оно существу- ет. В этом разделе рассматриваются стратегии, позволяющие находить доказатель- ства более эффективно в сравнении с простым перебором. ► Преимущественное использование единичных выражений. В этой стра- тегии преимущество отдается таким операциям резолюции, в которых одним из высказываний является единственный литерал (известный также как единичное выражение — ипН сГаизе). В основе этой стратегии лежит идея, что если пред- принимаются попытки получения пустого выражения, то может оказаться целесо- образным отдавать предпочтение таким операциям логического вывода, в которых вырабатываются более короткие выражения. Применение операции резолюции к единичному высказыванию (такому, как Р) в сочетании с любым другим высказы- ванием (таким, как -пР V 0 V 7?) всегда приводит к получению выражения более короткого (в данном случае это -^) М К), чем остальные высказывания. Когда стра- тегия с преимущественным использованием единичных выражений была впервые опробована в пропозициональном логическом выводе в 1964 году, она привела к резкому ускорению работы, обеспечив возможность доказывать теоремы, с ко- торыми не удавалось справиться без использования этого метода предпочтения. Единичная резолюция (ипН гезоЫИоп) представляет собой ограниченную форму резолюции, в которой на каждом этапе резолюции должно участвовать единичное выражение. В общем случае метод единичной резолюции является неполным, но становится полным при его применении к хорновским выражениям. Процесс до- казательства по методу единичной резолюции применительно к хорновским выра- жениям напоминает прямой логический вывод. В программе доказательства теорем Оттек (Мак-Кун [1538], 1990) использует- ся особая форма жадного поиска по первому наилучшему совпадению. Ее эври- стическая функция измеряет “вес” каждого выражения и более легким из них от- дается предпочтение. Точный выбор эвристики возлагается на пользователя, но в целом вес выражения должен коррелировать с его размерами или сложностью. Единичные выражения рассматриваются как легкие, и, следовательно, этот вари- ант поиска можно рассматривать как обобщение стратегии преимущественного использования единичных выражений. ► Множество поддержки. Метод предпочтений, предполагающий в пер- вую очередь попытаться выполнить определенные операции резолюции, вполне оправдан, но в целом более эффективно будет попытаться полностью устранить некоторые возможные этапы резолюции. Например, можно потребовать, чтобы каждый этап резолюции включал хотя бы один элемент из специального подмно- жества высказываний —множества поддержки. Полученная резольвента добав- ляется к множеству поддержки. Если множество поддержки будет небольшим по
сравнению со всей базой знаний, это позволит резко сократить пространство по- иска. Для обеспечения полноты этой стратегии можно выбирать множество поддерж- ки 5 так, чтобы оставшиеся высказывания, вместе взятые, оставались выполнимы- ми. Например, в качестве множества поддержки можно использовать отрицаемый запрос, — в предположении, что база знаний является непротиворечивой. (В конце концов, если она не является непротиворечивой, то сам факт, что запрос является следствием из этой базы, делает его бессмысленным.) Стратегия с использованием множества поддержки имеет дополнительное преимущество в том, что в ней часто вырабатываются деревья доказательства, легко доступные для понимания людей. ► Резолюция с входными высказываниями {три1 гезо1иИоп). В этой страте- гии на каждом этапе резолюции одно из входных высказываний (из базы знаний или запроса) комбинируется с некоторым другим высказыванием. В доказатель- стве, представленном на рис. 9.10, на всех этапах выполнялась резолюция с вход- ными высказываниями, и поэтому дерево доказательства имело характерную фор- му в виде одной “вертикали” с отдельными высказываниями, комбинирующимися с ней. Очевидно, что пространство деревьев доказательства такой формы мень- ше по сравнению с пространством всех возможных графов доказательства. В хор- новских базах знаний правило отделения может рассматриваться как своего рода стратегия резолюции с входными высказываниями, поскольку при использовании этого правила некоторая импликация из первоначальной базы знаний комбиниру- ется с некоторыми другими высказываниями. Таким образом, нет ничего удиви- тельного в том, что метод резолюции с входными высказываниями является пол- ным применительно к хорновским базам знаний, но в общем случае он неполон. Стратегия ► линейной резолюции (Ипеаг гезо1иИоп) представляет собой некото- рое обобщение, в котором допускается применять в одной операции резолюции высказывания Р и 0, если Р находится в первоначальной базе знаний или если вы- сказывание Р является предком Р в дереве доказательства. Метод линейной резо- люции является полным. ► Обобщение. В методе обобщения {зиЪзитрИоп) устраняются все высказыва- ния, которые обобщаются некоторым существующим высказыванием из базы зна- ний (т.е. являются более конкретными по сравнению с ним). Например, если в базе знаний есть высказывание Р(х), то нет смысла вводить в нее высказывание Р(Л) и еще меньше смысла вводить в нее высказывание Р(Л) V 0(В). Обобщение позволя- ет поддерживать небольшие размеры базы знаний и тем самым ограничивать раз- меры пространства поиска. ► Обучение. Можно улучшить программу доказательства теорем, обучая ее на основании уже имеющегося опыта. При наличии подборки ранее доказанных те- орем система машинного обучения учится посредством поиска ответа на вопрос “При заданном множестве предпосылок и целей для доказательства какие этапы
доказательства являются схожими с этапами, которые оказались успешными в прошлом?” В системе ОеерНОЬ Бансал и соавт. ([126], 2019) поступили именно так, использовав глубокие нейронные сети (см. главу 21) для построения моделей (называемых вложениями) целей и предпосылок, а затем применив их для осу- ществления выбора. При обучении в качестве примеров могут использоваться до- казательства, выполненные как человеком, так и компьютером, начиная с подбор- ки из 10 000 доказательств. Практическое использование систем автоматического доказательства теорем В этой главе было показано, как логика первого порядка позволяет представ- лять простой сценарий реального мира, включающий такие понятия, как продажа, оружие и гражданство. Но сложные сценарии реального мира обладают слишком большой неопределенностью и включают слишком много неизвестных. Уже до- казано, что логика может успешно использоваться в предметных областях, вклю- чающих формальные, строго определенные концепции, — таких как ► синтез и ► верификация аппаратного и программного обеспечения. Исследования по до- казательству теорем проводятся в областях проектирования аппаратного обеспе- чения, языков программирования и разработки программного обеспечения, а не только в области ИИ. В области аппаратного обеспечения аксиомы описывают взаимодействие меж- ду сигналами и элементами цепи (см. пример в разделе 8.4.2). Блоки логических рассуждений, предназначенные специально для верификации электронных схем, оказались способными проверить целые процессоры, включая синхронизацию ра- боты их элементов (Шривас и Бикфорд [2118], 1990). Система доказательства те- орем Айяд применялась для разработки схем, которые оказались более компакт- ными, чем любые предыдущие решения (Войцеховский и Войцик [2370], 1983). Формальный синтез алгоритмов был одним из первых направлений использо- вания средств автоматического доказательства теорем, как и было намечено Кор- деллом Грином ([919], 1969), который опирался на идеи, высказанные ранее Гер- бертом Саймоном ([2071 ], 1963). Общая идея состояла в том, что следует доказать теорему с утверждением, что “существует программа р, удовлетворяющая опре- деленной спецификации”. Хотя полностью автоматизированный ► дедуктивный синтез, как позднее стало называться это направление, еще не осуществим при- менительно к программированию задач общего назначения, дедуктивный синтез, управляемый вручную, оказался успешным при проектировании нескольких но- вейших и сложнейших алгоритмов. Кроме того, активной областью исследования является синтез программ специального назначения, например научного вычисли- тельного кода. Подобные методы сейчас применяются и для проверки программного обеспе- чения с помощью таких систем, как программа проверки моделей 8рпч (Хольц- ман [1053], 1997). С ее помощью, например, была проверена до и после полета
программа управления космическим аппаратом КепкНе А§еп( (Хавелунд и др. [985], 2000). Алгоритм В.8А шифрования с открытым ключом и алгоритм сопо- ставления строк Бойера-Мура также были проверены аналогичным образом (Бой- ер и Мур [282], 1984). Резюме В этой главе представлены анализ логического вывода в логике первого поряд- ка и несколько различных алгоритмов его выполнения. • В первом подходе используются правила логического вывода (конкретиза- ции высказывания квантора всеобщности и конкретизации высказы- вания квантора существования) для преобразования задачи логического вывода в форму пропозициональной логики. Как правило, этот подход ха- рактеризуется очень низким быстродействием. • Использование унификации для выявления подходящих подстановок для переменных позволяет устранить этап конкретизации в доказательствах ло- гики первого порядка, в результате чего этот процесс становится гораздо бо- лее эффективным. • В поднятой версии правила отделения унификация применяется для полу- чения естественного и мощного правила логического вывода — обобщен- ного правила отделения. В алгоритмах прямого логического вывода и обратного логического вывода это правило применяется к множествам определенных выражений. • Обобщенное правило отделения является полным применительно к опре- деленным выражениям, но проблема логического следствия остается по- луразрешимой. Для баз данных в формате языка Ва1а1о§, состоящих из определенных выражений без функций, проблема логического следствия разрешима. • Прямой логический вывод используется в дедуктивных базах данных, где он может сочетаться с реляционными операциями баз данных. Этот метод также применяется в продукционных системах, обеспечивающих эффек- тивное обновление при наличии очень больших наборов правил. Прямой ло- гический вывод для баз данных в формате языка Оа1а1о§ является полным и выполняется за время, определяемое полиномиальной зависимостью. • Обратный логический вывод используется в системах логического про- граммирования, в которых реализована сложная технология компиляции для обеспечения очень быстрого логического вывода. К недостаткам об- ратного логического вывода можно отнести избыточные этапы логическо- го вывода и бесконечные циклы, которые можно устранить, используя за- поминание.
• В языке Ргокщ, в отличие от логики первого порядка, используются допу- щения замкнутости мира и уникальности имен, а также отрицания в каче- стве неудачи. Это делает Рго1о§ более практичным языком программирова- ния, но выводит его за рамки чистой логики. • Обобщенное правило логического вывода на основе резолюции позволя- ет создать полную систему доказательства для логики первого порядка с ис- пользованием баз знаний в конъюнктивной нормальной форме. • Для систем с резолюцией существует несколько стратегий сокращения про- странства поиска без потери его полноты. Одним из наиболее важных и сложных вопросов является работа с равенствами, — было показано, как приемы демодуляции и парамодуляции могут использоваться для успеш- ного достижения этой цели. • Эффективные средства автоматического доказательства теорем на основе резолюции использовались для доказательства интересных математических теорем, а также для проверки и синтеза программных и аппаратных средств. Библиографические и исторические заметки Готтлоб Фреге, разработавший в 1879 году полную логику первого порядка, по- строил свою систему логического вывода на большой коллекции логически пра- вильных схем и единственном правиле логического вывода — правиле отделения, Модиз Ропепз. Уайтхед и Рассел ([2331], 1910) описали так называемые прави- ла прохождения (ги1е$ о/рама%е) (фактически этот термин принадлежит Эрбра- ну ([1013], 1930)), которые используются для перемещения кванторов в переднюю часть формул. Торальф Сколем ([2081 ], 1920) достаточно своевременно предложил понятия сколемовских констант и сколемовских функций. И как это ни странно, именно Сколем представил понятие универсума Эрбрана (Сколем [2082], 1928). Критически важную роль в разработке методов автоматизированных рассужде- ний сыграла теорема Эрбрана ([1013], 1930). Эрбран также является изобретате- лем операции унификации. Гёдель ([873], 1930), опираясь на идеи Сколема и Эр- брана, сумел показать, что для логики первого порядка имеется полная процедура доказательства. Алан Тьюринг ([2233], 1936) и Алонсо Черч ([431], 1936) одновре- менно продемонстрировали, используя очень разные доказательства, что задача определения общезначимости в логике первого порядка не имеет решения. В пре- восходной книге Эцдертона ([688], 1972) все эти результаты описаны в строгой, но труднодоступной для понимания манере. Абрахам Робинсон сделал предположение о том, что систему автоматизирован- ных рассуждений можно построить с использованием пропозиционализации и те- оремы Эрбрана, и Пол Гилмор ([859], 1960) написал первую соответствующую этому утверждению программу. Дэвис и Патнем ([544], 1960) ввели метод пропо- зиционализации, обсуждавшийся в разделе 9.1. Правиц ([1820], 1960) разработал
ключевую идею использования пропозициональных противоречивостей для управления процессом поиска и генерации термов из универсума Эрбрана, только если это необходимо для определения пропозициональной противоречивости. Эта идея привела Джона Алана Робинсона (не имеет родственных отношений с Абра- хамом Робинсоном) к разработке резолюции (Робинсон, 1965). Метод резолюции был адаптирован Корделлом Грином и Бертрамом Рафаэлем ([921 ], 1968) для создания систем поиска ответов на вопросы. В ранних реализаци- ях систем искусственного интеллекта большие усилия направлялись на разработку структур данных, которые должны были обеспечить эффективную выборку фак- тов; эти работы описаны в книгах по программированию для искусственного ин- теллекта (Чарняк и др. [397], 1987; Норвиг [1700], 1992; Форбус и Де Клер [752], 1993). В начале 1970-х годов в области искусственного интеллекта прочно занял свои позиции метод прямого логического вывода, рассматривавшийся как легко понимаемая альтернатива методу резолюции. Приложения ИИ обычно работают с большим количеством правил, поэтому было важно разработать эффективную технологию сопоставления правил, в частности для инкрементных обновлений. Для под держки таких приложений была разработана технология продукцион- ных систем. Язык продукционных систем Орз-5 (Форги [759], 1981; Браунстон и др. [325], 1985) использовался для экспертной системы К1, предназначенной для мини-компьютеров, и включал процесс согласования с помощью ге1е-алгоритма (Форги [760], 1982). Краска и соавт. ([1303], 2017) описывают, как нейронные сети могут быть обучены для поддержки эффективной схемы индексации для опреде- ленных наборов данных. Когнитивная архитектура 8оак (Лейрд и др. [1339], 1987; Лейрд [1341], 2008) была разработана для обработки очень больших наборов правил — до миллиона (Доренбос [635], 1994). Примерами применения 8оак являются система управле- ния тренажером, моделирующим самолет-истребитель (Джонс и др. [1145], 1998), система управления полетами (Тейлор и др. [2186], 2007), персонажи ИИ в ком- пьютерных играх (Уинтермьют и др. [2363], 2007), а также системы обучения и тренировки для военнослужащих (Урей и Джонс [2386], 2005). Исследования в области дедуктивных баз данных начались с симпозиума, орга- низованного в Тулузе в 1977 году для специалистов в области логического вывода и систем баз данных (Галлар и Минкер [806], 1978). Важные работы Чандры и Ха- рела ([388], 1980) и Ульмана ([388], 1980) привели к принятию языка Ва1а1од как стандартного языка баз данных. Разработка технологии магических множеств для перезаписи правил (Бансильон и др. [121], 1986) позволила прямому логиче- скому выводу воспользоваться преимуществом целенаправленности, свойственно- му обратному логическому выводу. Быстрое развитие Интернета привело к повышению доступности крупных ин- терактивных баз данных. Это способствовало повышению интереса к интегра- ции нескольких баз данных в согласованное пространство данных (Галеви [949], 2007). Краска и соавт. ([1303], 2017) сообщили об ускорении работ до 70% за счет
использования машинного обучения с целью создания обученных индексных структур для эффективного поиска данных. Обратный логический вывод впервые был применен в языке РЬАКНЕК. (Хьюит [1018], 1969). В то же время в 1972 году французский исследователь Ален Колмерор разработал и реализовал язык Рго1о§, предназначенный для синтаксиче- ского анализа текста на естественном языке, — первоначально выражения Рго1о$ предназначались для использования в качестве правил контекстно-свободной грамматики (Руссе [1921], 1975; Колмерор и др. [466], 1973). Основная часть теоретических основ логического программирования была раз- работана Робертом Ковальски из Лондонского имперского колледжа в сотрудни- честве с Колмерором (исторический обзор приведен в работах Ковальски ([1297], 1988) и Колмерора и Руссе ([465], 1993)). Эффективные компиляторы Рго1о$» чаще всего основаны на модели абстрактной машины Уоррена (И'аггеп АЬз1гас1 Маскте — \УАМ), разработанной Дэвидом Г.Д. Уорреном ([2297], 1983). Ван Рой ([2260], 1990) показал, что в отношении быстродействия программы на языке Рго1о§ могут конкурировать с программами на языке С. Методы предотвращения нежелательного зацикливания в рекурсивных логи- ческих программах были разработаны независимо Смитом и соавт. ([2090], 1986), а также Тамаки и Сато ([2171], 1986). Последняя статья также включала информа- цию о методе запоминания для логических программ, интенсивно разрабатывае- мого Дэвидом С. Уорреном под названием табулированное логическое програм- мирование. Свифт и Уоррен ([2165], 1994) показали, как дополнить машину АУАМ с целью поддержки табулирования, что позволило программам на языке Оа1а1о^ достичь быстродействия, на порядок превышающего быстродействие дедуктив- ных систем баз данных с прямым логическим выводом. Первые теоретические работы по логическому программированию в ограни- чениях были выполнены Джаффаром и Лассе ([1123], 1987). Джаффар и соавт. ([1124], 1992) разработали систему СЬР(К) для обработки ограничений с действи- тельными значениями. В настоящее время существуют коммерческие продукты, предназначенные для решения крупномасштабных задач конфигурации и оптими- зации методами программирования в ограничениях. Одним из самых известных является система 1ЬОО (Юнкер [1161], 2003). Методика программирования набо- ра ответов (Гелфонд [830], 2008) расширяет язык Рго1о§, позволяя использовать дизъюнкции и отрицания. Объем учебной литературы по логическому программированию и языку Рго1о§ очень велик и включает книги Шохама ([2053], 1994), Братко ([293], 2009), Клок- сина ([453], 2003) и Клоксина и Меллиша ([452], 2003). До закрытия в 2000 году официальным журналом для публикаций в этой области был Аоигпа1 о/ Ьо&с Рго$гатпип§\ теперь вместо него выпускается журнал Ткеогу аш! Ргасйсе о/Ьо%1с Рго%гатпйп%. К числу основных конференций по логическому программированию относятся 1п(егпа1юпа1 Соп/егепсе оп Ьо&с Рго^гаттт^ (1СЬР) и 1п1егпа1юпа1 Ьо&с Ргоугатпипу 8утроыит (1ЬР8).
Исследования в области автоматического доказательства математических теорем начались еще до того, как были разработаны полные логические системы первого порядка. В разработанной Гербертом Гелернтером программе 6еоте1гу ТЬеогет Ргоуег ([828], 1959) использовались методы эвристического поиска в со- четании с диаграммами для отсечения ложных подцелей. С помощью этой про- граммы удалось обосновать некоторые весьма сложные результаты исследований в евклидовой геометрии. Правила демодуляции и парамодуляции для форми- рования рассуждений с учетом отношения равенства были предложены соответ- ственно Возом и соавт. ([2383], 1967) и Возом и Робинсоном ([2382], 1968). Эти правила были также независимо разработаны в контексте систем перезаписи тер- мов (Кнут и Бендикс [1247], 1970). Внедрение средств учета отношения равенства в алгоритм унификации было осуществлено Гордоном Плоткином ([1798], 1972). В работе ([1151], 1991) приведен обзор средств унификации с учетом отношения равенства с использованием перезаписи термов. Общий обзор методов унифика- ции дан Баадером и Снайдером ([95], 2001). Для метода резолюции был предложен целый ряд стратегий управления, начи- ная со стратегии предпочтения единичного выражения (Воз и др. [2379], 1964). Позднее, в статье [2380] (1965) Воз и соавт. предложили стратегию с использова- нием множества поддержки, позволяющую обеспечить определенную целенаправ- ленность резолюции. Линейная резолюция впервые была предложена Ловеландом в [1448] (1970). Генесерет и Нильссон в [836] (1987, глава 5) дали краткий, но ис- черпывающий анализ всего разнообразия стратегий управления. Алеми и соавт. ([29], 2017) показали, как в системе ЭеерМатн глубокие нейронные сети исполь- зуются для выбора тех аксиом, которые с наибольшей вероятностью приведут к получению доказательства при передаче их традиционной системе доказательства теорем. В некотором смысле нейронная сеть играет здесь роль интуиции матема- тика, а система доказательства теорем лишь выполняет техническую математи- ческую экспертизу. Лоос и соавт. в [1442] (2017) показали, что этот подход может быть расширен с целью оказания помощи в руководстве поиском, что позволит до- казать больше теорем. Основным справочником по программе автоматического доказательства теорем Бойера-Мура является книга Л СотрШаИопа! Ьо&1с (Бойер и Мур [281], 1979). Стикел в [2129] (1992) описывает систему РТТР (Рго1о% Тескпо1о%у Ткеогет Ргоуег), в которой сочетаются преимущества компиляции языка Рго1о§ с полно- той устранения моделей. Еще одной широко применяемой программой автомати- ческого доказательства теорем, основанной на этом подходе, является Зетнео (Лец и др. [1391], 1992). Эффективной программой автоматического доказательства те- орем, реализованной всего лишь в 25 строках на языке Рго1о§, является ЬеапТаР (Бекерт и Посегга [154], 1995). В статье Вейденбаха [2304] (2001) описана про- грамма ЗРА88 — одна из сильнейших современных программ автоматического до- казательства теорем. Наиболее успешной программой доказательства теорем по результатам ежегодных соревнований последних лет является УАМР1КЕ (Рязанов и
Воронков [1876], 2002). Система С(Х) (Берто и др. [199], 2004) и решатель уравне- ний Е (Шульц [2009], 2004) также уже доказали свою ценность в качестве инстру- ментов доказательства правильности. Программы доказательства теорем также уже использовались для автоматиче- ского синтеза и проверки программного обеспечения. Как пример можно привести программное обеспечение управления капсулой Опоп (Лоури [1453], 2008) и дру- гими космическими аппаратами И АБА (Денни и др. [607], 2006). Правильность разработки 32-битного микропроцессора РМ9001 была доказана с помощью си- стемы доказательства теорем Кртнм (Хант и Брок [ 1098], 1992). В рамках конференции Соп/егепсе опАи1ота1ес1 Оес1исИоп (САПЕ) проводится ежегодный конкурс по автоматизированному доказательству теорем. Сатклифф в статье [2150] (2016) описывает конкурс 2016 года, — наилучшие результаты пока- зали системы Уаммке (Рязанов и Воронков [1876], 2002), РКОУЕК9 (Сабри [1953], 2015), а также обновленная версия программы Е (Шульц [2010], 2013). Видейк в [2336] (2003) сравнивает возможности 15 систем доказательства математических теорем. Полезным инструментом сравнения производительности систем являет- ся библиотека задач по доказательству теорем ТРТР (Ткоизапск о/РгоЫетх/ог Ткеогет Ргокегз) (Сатклифф и Саттнер [2151], 1998; Сатклифф и др. [2152], 2006). Программы доказательства теорем позволили достичь новых математических результатов, которых людям-математикам не удавалось достичь на протяжении десятилетий, — об этом можно прочитать в книге Аи1ота1ес! Кеазотп^ апс! 1ке Огзсокегу о/Е1е%ап1 Ргоо/з (Воз и Пипер [2385], 2003). Программа 8ам (8ет1-Аи1ота1ес1 Ма1кетаНс$) была первой, доказавшей лемму в теории решеток (Гвард и др. [929], 1969). Программа Анна также нашла ответы на некоторые во- просы, остававшиеся открытыми в различных областях математики (Воз и Вин- кер [2384], 1983). Программа доказательства теорем Бойера-Мура (Бойер и Мур [281], 1979) была использована Натараяном Шанкаром для построения формаль- ного доказательства теоремы о неполноте Гёделя (Шанкар [2038], 1986). Система Мцрке доказала парадокс Жирара (Хоув [1077], 1987) и лемму Хигмана (Мурти и Расселл [1646], 1990). В 1933 году Герберт Роббинс предложил простой набор аксиом — ► алгебру Роббинса, — который, по-видимому, определяет булеву алгебру, но никаких до- казательств этому найти не удавалось (несмотря на серьезные усилия Альфреда Тарского и других математиков), пока программа Е()Р (версия программы Оттек) не вычислила необходимое доказательство (МакКун [1539], 1997). Бенцмюллер и Палео ([177], 2013) использовали систему доказательства теорем в логике высше- го порядка для проверки предложенного Гёделем доказательства существования Бога. Теорема Кеплера о сферической упаковке была доказана Томасом Хейлзом ([947], 2005) с помощью некоторых сложных компьютерных вычислений, но это доказательство было не полностью принято, пока формальное доказательство не было получено с помощью программ-помощников НОЬ и 1$аЬе11е (Хейлз и др. [948], 2017).
К учебникам, ориентированным на автоматические рассуждения и вывод, от- носятся классический ЗутЪоИс Ьо&с апс! Мескапгса! Ткеогет Ргоу1п% (Чанг и Ли [389], 1973), а также более поздние работы Даффи ([662], 1991), Воза и соавт. ([2381], 1992), Бибела ([210], 1993) и Кауфманна и соавт. ([1198], 2000). Основным журналом для публикаций в области автоматического доказательства теорем явля- ется Аоита1 о/Аи1ота1ес1 Кеазопт^. а главными конференциями — ежегодно про- водимая конференция Соп/егепсе оп Аи1ота1ес1 Оес1исНоп (САОЕ) и конференция 1п1етаНопа1 МгЛ Соп/егепсе оп Аи1ота1ес1 Кеазоп1п% (ПСАК). В книге НапсНюок о/ Аи1ота1ес1 Кеазоп1п% (Робинсон и Воронков [1899], 2001) собраны статьи по исследованиям в области автоматизированных рассуждений. В книге Маккензи Мескатхт^ Ргоо/([1473], 2004) описываются история и технология систем дока- зательства теорем для популярной аудитории. Упражнения___________________________________________________________________ 9.1. Докажите, что процедура конкретизации с помощью квантора всеобщности является непротиворечивой и что процедура конкретизации с помощью квантора существова- ния позволяет получить базу знаний, эквивалентную с точки зрения логического вы- вода. 9.2. Кажется вполне обоснованным утверждение, что из отдельного факта Ыкез(Аеггу, 1се- Сгеат) можно вывести высказывание 3 х Ыкез(х, 1сеСгеат). Запишите общее прави- ло логического вывода, правило введения квантора существования, позволяющее уза- конить такой логический вывод. Тщательно сформулируйте условия, которым долж- ны удовлетворять переменные и термы, участвующие в этом выводе. 9.3. Предположим, что база знаний содержит только одно высказывание, 3 х АзШ^к- Аз(х, ЕгегеМ). Какие из следующих фактов являются действительными результатами применения правила конкретизации высказывания квантора существования? а) АзН1&кАз(Еуегез1, Еуегез!). б) АзН^кАз^КШтапдаго, ЕуегезГ). в) АзШ^ИА^КШтагуаго, Еуегез!) /\ АзН1&кАз(ВепМеу1з, Еуегез!) (после двух приме- нений). 9.4. Для каждой приведенной ниже пары атомарных высказываний укажите наиболее об- щий унификатор, если он существует. а) Р(Я,В,В),Р(х,у,2). б) в) ОШег(Еа1кег(у), у), О1(1ег(Еа1кег(х\ Аокп). г) Кпоууз(Га1кег(у\ у), Кпоууз(х, х). 9.5. Для каждой приведенной ниже пары атомарных высказываний укажите наиболее об- щий унификатор, если он существует. а) Р(А,В,В),Р(х,у,2). б) б(у,О(ЛВ)),С(^х,х),Л в) О1с1ег(Ра(кег(у), у\ ОШег(Ра1кег(х\ Аеггу). г) Кпош(Га1кег(у\ у), Кпоууз(х, х).
9.6. Рассмотрите решетки обобщения, приведенные на рис. 9.2. а) Составьте решетку для высказывания Етр1оуз{Мо1кег(Локп\ Р а1кег(К1скагс1)У б) Составьте решетку для высказывания Етр1оу8(1ВМ9 у) (“Компания 1ВМ является нанимателем для всех”). Не забудьте включить запрос любого типа, который уни- фицируется с этим высказыванием. в) Предположим, что каждое высказывание индексируется под каждым узлом в его решетке обобщения. Объясните, как следует поступить, если некоторые из этих высказываний содержат переменные. В качестве примера воспользуйтесь выска- зываниями, приведенными в пп. а и б, а также запросом Етр1оуз(х, Ракетах)). 9.7. Запишите логическое представление для каждого из приведенных ниже высказыва- ний, применимое для использования с обобщенным правилом отделения. а) Лошади, коровы и свиньи — млекопитающие. б) Рожденный лошадью — лошадь. в) Синяя Борода — лошадь. г) Синяя Борода — родитель Чарли. д) Отношения “быть рожденным” и “быть родителем” — обратные. е) У каждого млекопитающего есть родитель. 9.8. Приведенные ниже вопросы касаются проблем подстановки и сколемизации. а) При наличии предпосылки V х 3 у Р(х9у) будет ли недопустимо утверждать, что 3 7 Р{д9 д), Приведите пример предиката Р, где первое значение истинно, а второе ложно. б) Предположим, что процедура логического вывода написана неправильно и про- верка наличия ошибок не выполнена, поэтому она может унифицировать литерал типа Р(х, Р(х)) с Р(д, д), (Как уже упоминалось выше, большинство стандартных реализаций языка Рго1о§ действительно это позволяют.) Покажите, что такая про- цедура логического вывода позволит сделать заключение 3 у Р(д, д) из предпо- сылки V х 3 у Р(х9 у), в) Предположим, что процедура, преобразующая высказывания логики первого по- рядка в форму выражений, неверно сколемизирует предпосылку V х Зу Р(х,у) в Р(х9 8к0))9 т.е. заменяет переменную у сколемовской константой 8к^9 а не сколемов- ской функцией от х. Покажите, что система логического вывода, использующая такую процедуру, также позволит вывести заключение 3 д Р(д9 д) из предпосыл- ки \/х Зу Р(х,у). г) Распространенной ошибкой среди студентов является предположение, что при унификации вместо переменной можно подставить терм сколемовской констан- ты. Так, например, они будут утверждать, что формулы Р(8к}) и Р(А) могут быть унифицированы при подстановке 8кх!А, Приведите пример, когда такое действие приводит к неверному логическому выводу. 9.9. Этот вопрос относится только к хорновским базам знаний, таким как ЛЖ) => Р(х) 2(х) => лад 0(В) Пусть ГС — алгоритм прямо логического вывода в ширину, в котором многократно суммируются все следствия выполняемых в настоящее время правил, а ВС — алгоритм обратного логического вывода в глубину, слева направо, проверяющий выражения в порядке, определяемом базой знаний. Какие из следующих предположений верны?
а) Алгоритм РС выведет литерал 0(Л). б) Алгоритм РС выведет литерал Р(В). в) Если алгоритм РС не сможет вывести заданный литерал, то этот литерал не сле- дует из базы знаний. г) Алгоритм ВС вернет (гие при запросе Р(В). д) Если алгоритм ВС не возвращает (гие для заданного литерала запроса, то этот ли- терал не следует из базы знаний. 9.10. Объясните, как записать любую конкретную формулировку задачи 3-8АТ произволь- ного размера с использованием единственного определенного выражения логики пер- вого порядка и не больше 30 базовых фактов. 9.11. Предположим, даны следующие аксиомы. 1. 0<3 2. 7 <9 3. Vх х <х 4. V х х < х + 0 5. Vх х + 0<х 6. \/х,у х+у <у+х 7. \/|Г,Х,у,2 IV <у Ах <2 => УУ+Х<у + 2 8. У Х,у,2 Х<у/\у<2 => Х<2 а) Методом обратного логического вывода докажите высказывание 7 < 3 + 9. (Безус- ловно, используйте только приведенные здесь аксиомы, а не все то, что знаете из арифметики.) Покажите только этапы, которые ведут к успеху, опустив все про- чие, бесполезные для доказательства. б) Методом прямого логического вывода докажите высказывание 7 < 3 + 9. И вновь, покажите только те этапы, которые ведут к успеху. 9.12. Предположим, даны следующие аксиомы. 1. 0<4 2. 5<9 3. Ух х<х 4. Ух х<х + 0 5. Ух х + 0<х 6. У х.у х+у <у+х 7. V М>,Х,у,2 М><уЛх<2 => М> + Х<у + 2 8. Ух,у,2Х<уЛу<2=>Х<2 а) Методом обратного логического вывода докажите высказывание 5 < 4 + 9. (Безус- ловно, используйте только приведенные здесь аксиомы, а не все то, что знаете из арифметики.) Покажите только этапы, которые ведут к успеху, опустив все про- чие, бесполезные для доказательства. б) Методом прямого логического вывода докажите высказывание 5 < 4 + 9. И вновь, покажите только те этапы, которые ведут к успеху. 9.13. Одной из известных детских английских загадок является следующая: “Братьев и се- стер у меня нет, но отец этого человека— сын моего отца”. С использованием правил из области семейных отношений (см. раздел 8.3.2) определите, кто этот человек, о ко- тором говорится в загадке. Можете применять любые методы логического вывода, опи- санные в этой главе. Почему, по вашему мнению, эту загадку трудно отгадать сразу?
9.14. Предположим, что в логическую базу данных помещена часть данных переписи на- селения США с указанием возраста, города проживания, даты рождения и имени ма- тери каждого лица с использованием номеров карточки социального страхования в качестве идентифицирующих констант для каждого лица. Таким образом, например, возраст Джорджа задается выражением {Л#е}(/.тЬох443-{65}-{1282}}, {56}). Какая из приведенных ниже схем индексации 81-85 позволяет эффективно находить отве- ты на каждый из запросов 914)4 (при условии, что применяется обычный метод об- ратного логического вывода)? 81. Индекс для каждого атомарного терма в каждой позиции. 82. Индекс для каждого первого параметра. 83. Индекс для каждого атомарного терма предиката. 84. Индекс для каждой комбинации предиката и первого параметра. 85. Индекс для каждой комбинации предиката и второго параметра и индекс для каждого первого (нестандартного) параметра. 91. Я^е(443-44-4321,х) 92. Кеыс1е$1п!{х, НоиМоп) 93. Мо1кег{х,у) 94. Л%е{х, 34) А КезМезЩх, ПпуТо^п1/8А) 9.15. Можно предположить, что стандартизация раз и навсегда отличий всех высказываний в базе знаний позволит избежать проблемы конфликта переменных при унификации в процессе обратного логического вывода. Покажите, что для некоторых высказыва- ний такой подход не применим. {Подсказка. Рассмотрите высказывание, одна часть которого унифицируется с другой.) 9.16. В этом упражнении для получения ответов на вопросы с помощью алгоритма обрат- ного логического вывода используются высказывания, записанные при выполнении упражнения 9.7. а) Нарисуйте дерево доказательства, сформированное исчерпывающим алгоритмом обратного логического вывода для запроса 3 Л Ногзе{к) (“Существует некоторая лошадь”), в котором выражения согласуются в указанном порядке. б) Какие особенности этой проблемной области вы обнаружили? в) Какое количество решений для к фактически следует из ваших высказываний? г) Можете ли вы предложить способ поиска всех этих решений? {Подсказка. Вам может потребоваться обратиться к работе Смита и соавт. ([2090], 1986).) 9.17. Проследите за выполнением алгоритма обратного логического вывода, приведенно- го на рис. 9.6, при его применении для решения задачи доказательства преступления (см. раздел 9.3.1). Покажите, какую последовательность значений принимает пере- менная ^оа1з, и расположите эти значения в виде дерева. 9.18. Приведенный ниже код на языке Рго1о§ определяет предикат Р. (Не забывайте, что в языке Рго1о§ термы, определяемые прописными буквами, — это переменные, а не константы.) Р(х,[Х|У]) Р(Х,[У|2]) Р(Х,2) а) Приведите деревья доказательства и решения для запросов Р(А, [2,1,3]) и Р(2, [1 ,А,3]). б) Какую стандартную операцию со списками представляет предикат Р?
9.19. Приведенный ниже код на языке Рго1о§ определяет предикат Р. (Не забывайте, что в языке Рго1о§ термы, определяемые прописными буквами, — это переменные, а не константы.) Р(Х,[Х|Х]) Р(Х,[У|2]) Р(Х,2) а) Приведите деревья доказательства и решения для запросов Р(А,[1,2,3]) и Р(2,[1,А,3]). б) Какую стандартную операцию со списками представляет предикат Р? 9.20. В этом упражнении рассматривается применение сортировки в языке Рго1о§. а) На языке Рго1о§ напишите выражения, определяющие предикат 80 г!ед (1_), при- нимающий истинное значение тогда и только тогда, когда список Ь отсортирован в возрастающем порядке. б) На языке Рго1о§ напишите определение предиката ре гт (1_, М), принимающего ис- тинное значение тогда и только тогда, когда 1_ — перестановка М. в) Определите предикат 80 г! (1_, М) (М — отсортированная версия 1_) с использова- нием предикатов регш и 8ог1ед. г) Применяйте предикат 80Г1 ко все более и более длинным спискам, пока вам это не надоест. Какова временная сложность вашей программы? д) На языке Рго1оё реализуйте более быстрый алгоритм сортировки, такой как сорти- ровка вставкой или быстрая сортировка (дигскзоп). 9.21. В этом упражнении рассматривается рекурсивное применение правил перезаписи с использованием логического программирования. Правилом перезаписи (или демо- дулятором) является уравнение с указанным направлением применения. Например, правило перезаписи х+0 —> х указывает, что любое выражение, которое согласуется с х + 0, должно заменяться выражением х. Правила перезаписи являются ключевым элементом систем построения рассуждений с учетом отношения равенства. Для пред- ставления правил перезаписи используйте предикат ге^г!1е(Х,У). Например, при- веденное выше правило перезаписи может быть представлено как ге^г!1е(Х+0,X). Некоторые термы являются примитивными и не могут подвергаться дальнейшим упрощениям, поэтому для указания, что 0 — это примитивный терм, используйте за- пись рг1ш111уе(0). а) Запишите определение предиката 81тр1гГу (X, У), принимающего истинное зна- чение, если У — упрощенная версия X, т.е. к каким-либо подвыражениям У боль- ше не применимы какие-либо правила перезаписи. б) Запишите коллекцию правил перезаписи для упрощения выражений, включаю- щих арифметические операторы, и примените ваш алгоритм упрощения к некото- рым примерам выражений. в) Запишите коллекцию правил перезаписи для символического дифференцирования и примените их наряду с определенными вами правилами упрощения для диффе- ренцирования и упрощения выражений, в которых есть арифметические выраже- ния, включая возведение в степень. 9.22. В этом упражнении рассматривается реализация алгоритмов поиска на языке Рго1о§. Предположим, что предикат 8иссе880г(Х,У) принимает истинное значение, если состояние У является преемником состояния X, и что предикат доа1(Х) принимает истинное значение, если X — целевое состояние. Запишите определение для предика- та 801уе(Х, Р), который означает, что Р — путь (список состояний), начинающийся
от X, заканчивающийся в целевом состоянии и состоящий из последовательности до- пустимых шагов, которые определены предикатом зиссеззог. Вы обнаружите, что простейшим способом решения этой задачи является поиск в глубину. Насколько просто будет ввести эвристическое управление поиском? 9.23. Предположим, что база знаний содержит только следующие хорновские выражения в логике первого порядка. Апсез1ог(Мо1кег(х\ х) Апсе81ог(х,у) /\ Апсе81ог(у,г) => Апсез1ог(х, г) Рассмотрим алгоритм прямого логического вывода, который завершается нау-й ите- рации, если база знаний КВ содержит высказывание, которое унифицируется с запро- сом, а иначе добавляет в КВ каждое атомарное высказывание, которое можно вывести из высказываний, уже находящихся в базе знаний после итерации у -1. а) Для каждого из следующих запросов укажите, как завершится выполнение алго- ритма: он даст ответ (если да, то запишите этот ответ) либо завершится, не дав от- вета, либо никогда не завершится. 1. Апсе$1ог(Мо1кег(у\ Зокп) 2 Апсез1ог(Мо1кег(Мо1кег(у)\ ^кп) 3. Апсе51ог(Мо1кег(Мо1кег(Мо1кег\у))\ Мо1кег(у)) 4. Апсез1ог(Мо1кег(Зокп\ Мо1кег(Мо1кег^окп)У) б) Может ли алгоритм резолюции доказать высказывание -^АпсеМог^окп, ^кп) на основании исходной базы знаний? Объясните, как или почему нет. в) Предположим, что в базу знаний добавлено утверждение -{Мо1кег(х)-х) и алго- ритм резолюции был дополнен правилами вывода для равенств. Какой теперь бу- дет ответ на вопрос в п. б? 9.24. Пусть С — язык первого порядка с единственным предикатом 5(р, <у), означающим, что “р бреет д”, и примем, что область определения этой задачи — люди. а) Рассмотрим высказывание “Существует человек Р, который бреет каждого че- ловека, который не бреет себя сам, и только тех людей, которые не бреют себя сами”. Выразите это высказывание на языке С. б) Преобразуйте высказывание из п. а, представив его в форме выражений. в) Методом резолюции постройте доказательство того, что выражения из п. б по сво- ей сути несовместимы. (Примечание. Вам не потребуются никакие дополнитель- ные аксиомы.) 9.25. Как метод резолюции можно использовать для демонстрации того, что некоторое вы- сказывание является общезначимым? Невыполнимым? 9.26. Приведите пример двух выражений, к которым операция резолюции может быть при- менена двумя разными способами, давая два разных результата. 9.27. Из высказывания “Лошади — животные” следует, что “Голова лошади — голова жи- вотного”. Продемонстрируйте, что этот логический вывод является допустимым, вы- полнив приведенные ниже этапы. а) Преобразуйте предпосылку и вывод этого высказывания в язык логики первого порядка. Воспользуйтесь тремя предикатами: НеасЮ&к, х) (который означает, что “Л — головах”), Ног$е(х) (быть лошадью) и Апгта1(х) (быть животным). б) Примените отрицание к заключению и преобразуйте предпосылку и отрицаемое заключение в конъюнктивную нормальную форму.
в) Воспользуйтесь правилом резолюции, чтобы показать, что заключение следует из предпосылки. 9.28. Из высказывания “Овцы — животные” следует, что “Голова овцы — голова животно- го”. Продемонстрируйте, что этот логический вывод является допустимым, выполнив приведенные ниже этапы. а) Преобразуйте предпосылку и вывод этого высказывания в язык логики первого порядка. Воспользуйтесь тремя предикатами: НеасЮ^к, х) (который означает, что “Л — головах”), 8кеер(х) (быть овцой) и АпгтаЦх) (быть животным). б) Примените отрицание к заключению и преобразуйте предпосылку и отрицаемое заключение в конъюнктивную нормальную форму. в) Воспользуйтесь правилом резолюции, чтобы показать, что заключение следует из предпосылки. 9.29. Ниже приведены два высказывания на языке логики первого порядка. А Ух Зу (х^у) В Зу Ух (х^у) а) Примем, что область определения переменных — все натуральные числа 0, 1, 2, ..., оо и что предикат “ > ” означает “больше или равно”. При использовании та- кой интерпретации переведите высказывания А и В на естественный язык. б) Является ли высказывание А истинным при этой интерпретации? в) Является ли высказывание В истинным при этой интерпретации? г) Является ли высказывание В логическим следствием А? д) Является ли высказывание А логическим следствием В? е) С использованием правила резолюции попытайтесь доказать, что высказывание А следует из высказывания В. Сделайте эту попытку, даже если считаете, что А не следует логически из В; продолжайте прилагать усилия до тех пор, пока доказа- тельство не оборвется и вы не сможете его продолжить (поскольку оно оборва- лось). Покажите унифицирующую подстановку для каждого этапа резолюции. Если доказательство закончилось неудачей, точно объясните, где, как и почему оно оборвалось. ж) Теперь попробуйте доказать, что высказывание В следует из А. 9.30. Метод резолюции способен вырабатывать неконструктивные доказательства для за- просов с переменными, поэтому приходится вводить специальные механизмы для из- влечения только определенных ответов. Объясните, почему такая проблема не возни- кает при использовании баз знаний, содержащих только определенные выражения. 9.31. В этой главе говорилось, что метод резолюции не может использоваться для форми- рования всех логических следствий из некоторого множества высказываний. Позво- ляет ли какой-то другой алгоритм решить эту задачу?
ГЛАВА 10 Представление знаний В этой главе показано, как представлять различные факты о реальном мире в форме, которая может быть использована для выполнения рассуждений и решения задач. В предыдущих главах было показано, как агент, обладающий базой знаний, мо- жет делать выводы, позволяющие ему действовать надлежащим образом. В этой главе рассматривается вопрос о том, какой контент поместить в базу знаний та- кого агента, — как представлять факты об окружающем мире. В качестве языка представления будет использоваться логика первого порядка, но в последующих главах будут описаны и другие формализмы представления знаний, такие как ие- рархические сети задачи для рассуждений о планах (глава 11), байесовские сети для рассуждений при наличии неопределенности (глава 13), марковские модели для рассуждений во времени (глава 17) и глубокие нейронные сети для рассужде- ний о содержании изображений, звуков и других данных (глава 21). Но независимо от того, какой способ представления фактов об окружающем мире будет исполь- зован, их в любом случае потребуется обрабатывать, и из этой главы вы получите необходимое представление о том, как это делается. В разделе 10.1 вводится идея общей онтологии, позволяющей организовать все, что существует в мире, в виде иерархии категорий. В разделе 10.2 рассматривают- ся основные категории объектов, веществ и мер. В разделе 10.3 обсуждаются спо- собы представления событий, а в разделе 10.4 рассматриваются знания об убежде- ниях. Далее речь пойдет о технологиях рассуждений с использованием всего этого контента: в разделе 10.5 обсуждаются системы рассуждений, предназначенные для эффективного вывода с использованием категорий, а в разделе 10.6 — рассужде- ния с использованием информации по умолчанию. 10.1. Онтологическая инженерия В экспериментальных, “игрушечных”, проблемных областях выбор представ- ления не столь важен; всегда есть множество подходящих вариантов. В слож- ных проблемных областях, таких как осуществление покупок в Интернете или управление автомобилем на реальных дорогах, требуются более общие и гибкие
способы представления. В этой главе показано, как создать такие представления, сосредоточившись на общих понятиях — таких, как действия, время, физические объекты и убеждения, — присутствующих во множестве различных проблемных областей. Способы представления таких абстрактных понятий иногда называют ► онтологической инженерией. Безусловно, невозможно формально представить все, что существует в мире, какого бы размера ни была эта книга, однако можно оставить достаточно свобод- ных мест, в которые будут укладываться новые знания о любой проблемной обла- сти. Например, определяется, что имеется в виду под понятием “физический объ- ект”, а внесение подробных сведений о различных типах объектов — роботах, телевизорах, книгах или о чем-то другом — оставляется на будущее. Аналогич- ным образом поступают разработчики рабочих сред объектно-ориентированного программирования (таких, как графическая среда разработки Дауа 8\У1п§), которые определяют лишь различные общие концепции, например окна, кнопки, события и т.д. Позднее на их основе пользователи-программисты описывают необходимые им более конкретные понятия, например окно сообщения, кнопка отмены, собы- тие ввода символа с клавиатуры и т.д. Такая общая инфраструктура понятий назы- вается ► верхней онтологией, поскольку принято соглашение составлять схемы онтологии, помещая общие понятия в верхней части, а более конкретные поня- тия — под ними, как показано на рис. 10.1. АЪз1гасЮЪ]ес1з 8е(з ИитЬегз Кергезеп1аИопаЮЪ]ес1з Са1е%опез 8еп1епсез Меазигетеп1з Типез Фе^Ыз Атта1з Л%еп1з 8оИс1 ЫдиМ Саз Нитапз Рис. 10.1. Верхняя онтология мира, в которой показаны темы, рассматриваемые ниже в данной главе. Каждая связь ведет к нижнему понятию, являющемуся уточ- нением верхнего. Специализации не обязательно являются непересекающимися, например люди {Нитапз) являются и животными {Ап1та1з), и агентами (А%еп!з). В разделе 10.3.2 будет показано, почему физические объекты (РИуз1саЮЬ]ес1з) вхо- дят в категорию обобщенных событий {(Зепега11хес1Еуеп1з)
Прежде чем перейти к более подробному обсуждению онтологии, необходимо высказать одно важное предостережение. Мы решили использовать логику пер- вого порядка для обсуждения содержания и организации знаний, хотя некоторые аспекты реального мира трудно представить в логике первого порядка. Основная сложность состоит в том, что почти все обобщения имеют исключения или со- блюдаются только до определенной степени. Например, хотя правило “помидо- ры красные” является достаточно удобным, некоторые помидоры имеют зеленый, желтый или оранжевый цвет. Аналогичные исключения можно указать примени- тельно почти ко всем общим утверждениям из этой главы. Способность учитывать исключения и неопределенность является чрезвычайно важной, но она ортого- нальна задаче понимания общей онтологии. По этой причине мы отложим обсуж- дение исключений до раздела 10.5, а более общей темы рассуждений при наличии неопределенности — до главы 12. Для чего может применяться верхняя онтология? Еще раз рассмотрим онто- логию электронных схем, описанную в разделе 8.4.2. В ней было принято боль- шое количество упрощающих допущений, например полностью исключено поня- тие времени, сигналы являются постоянными и не распространяются, структура схемы остается неизменной. В более общей онтологии нужно было бы учитывать значения сигналов в определенные моменты времени и включать данные о длине проводников и задержках распространения. Эти расширения позволили бы моде- лировать временные свойства схемы, и в действительности подобные модели ча- сто создаются разработчиками электронных схем. Также можно было бы ввести более широкий перечень интересующих классов электронных элементов, например, описывая их технологию (ТТЛ, КМОП и т.д.), а также спецификацию ввода-вывода. Если бы потребовалось учитывать аспекты надежности или контроля качества, то необходимо было бы учесть возможность спонтанного изменения структуры схемы или свойств ее электронных компонен- тов. Чтобы учесть паразитные емкости, дополнительно пришлось бы так или ина- че представить реальное расположение проводников на кристалле. Обратившись к миру вампуса, можно прийти к аналогичным выводам. Хотя в описание этого мира включено время, оно имеет очень простую структуру: в мире ничего не происходит, кроме действий агента, и все изменения осуществляются мгновенно. Более общая онтология, которая лучше подходила бы для описания ре- ального мира, должна была бы позволить нескольким одновременным изменениям распространяться во времени. Кроме того, для представления информации о том, в каких квадратах имеются ямы, использовался предикат РИ. Но можно было бы допустить существование ям разных типов, определив несколько объектов, при- надлежащих к классу ям, каждый из которых характеризовался бы разными свой- ствами. Аналогичным образом в этом мире можно предусмотреть возможность существования других животных, помимо вампусов. Но тогда агент не имел бы возможности точно определить вид встретившегося животного из доступных ему результатов восприятия, поэтому потребовалось бы разработать биологическую
таксономию мира вампуса, позволяющую агенту прогнозировать поведение оби- тателей пещер на основании столь скупой информации. При использовании любой онтологии специального назначения существует возможность вносить изменения, подобные приведенным выше, для достиже- ния большей общности. В таком случае возникает очевидный вопрос — сходят- ся ли все эти онтологии к некоторой онтологии общего назначения? После сто- летий философских и математических исследований ответ на этот вопрос был найден — “Может быть, возможно”. В данном разделе представлена одна из та- ких версий онтологии общего назначения, синтезирующая идеи прошедших ве- ков. Онтологии общего назначения обладают двумя следующими основными особенностями, отличающими их от коллекций отдельных онтологий специаль- ного назначения. • Любая онтология общего назначения должна быть в большей или меньшей степени применимой к любой специализированной проблемной области (с добавлением аксиом, специфических для этой проблемной области). Это означает, что в ней не следует ни детализировать, ни скрывать какие-либо вопросы конкретного представления. • В любой достаточно значимой проблемной области различные области зна- ний должны быть унифицированы, поскольку процессы формирования рас- суждений и решения задач могут одновременно включать несколько таких областей. Например, в системе робота, предназначенного для ремонта элек- тронных схем, потребуется формировать рассуждения и о самих схемах — с точки зрения их электрических соединений и физической компоновки, — и о времени в отношении как анализа временных свойств схем, так и оценки его затрат на ремонт. Поэтому высказывания с описанием времени долж- ны быть применимыми для комбинирования с высказываниями, описываю- щими пространственную компоновку, и одинаково хорошо представлять не только наносекунды и минуты, но и ангстремы и метры. Немного забегая вперед, следует отметить, что все предпринятые усилия по разработке общей онтологической инженерии до сих пор имели лишь ограничен- ный успех. Ни одно из лучших приложений ИИ (как указано в главе 1) не использу- ет общей онтологии — все они используют лишь инженерию знаний специально- го назначения и машинное обучение. Социальные или политические соображения могут затруднять конкурирующим сторонам возможность прийти к соглашению в отношении онтологии. Как говорит Том Грубер ([927], 2004), “Каждая онтология есть договор — социальное соглашение — между людьми, имеющими некоторые общие мотивы в ее совместном использовании”. Когда конкурирующие интересы перевешивают мотивацию совместного использования, общей онтологии быть не может. Чем меньше заинтересованных сторон, тем легче создать онтологию, а зна- чит, создать онтологию общего назначения намного труднее, чем онтологию огра- ниченного назначения, например такую, как Ореп ВютесПса! ОпкИо^у {открытая
биомедицинская онтология) (Смит и др. [2089], 2007). Те онтологии, которые уже существуют, были созданы четырьмя различными способами. 1. Командой обученных онтологов или логиков, спроектировавших онтологию и сформулировавших ее аксиомы. Система СУС была построена в основном таким образом (Ленат и Гуха [1384], 1990). 2. Импортом категорий, атрибутов и значений из существующей базы дан- ных или баз данных. Система ОВреота была создана посредством импорта струюурированных фактов из Википедии (Бизер и др. [226], 2007). 3. Посредством разбора текстовых документов и извлечения из них информа- ции. Система ТехтКцъпчек была создана методом прочтения большого коли- чества веб-страниц (Банко и Эгциони [125], 2008). 4. Соблазнением неквалифицированных любителей вводить данные, исходя из соображений здравого смысла. Система ОреиМтю была создана доброволь- цами, предлагавшими факты на английском языке (Сингх и др. [2076], 2002; Шкловски и Гил [418], 2005). Можно привести такой пример: в графе знаний 6оо§1е используется полу- структурированный контент из Википедии, который комбинируется с другим кон- тентом, собранным в Интернете под руководством человека. Граф содержит бо- лее 70 миллиардов фактов и обеспечивает ответы примерно на треть запросов в 6оо§1е (Донг и др. [634], 2014). 10.2. Категории и объекты__________________________________________ Классификация объектов по ► категориям является жизненно важным элемен- том любого способа представления знаний. Хотя взаимодействие с миром проис- ходит на уровне отдельных объектов, формирование рассуждений в большинстве случаев выполняется на уровне категорий. Например, покупатель чаще всего ставит перед собой цель купить просто баскетбольный мяч, а не баскетбольный мяч ка- кой-то конкретной марки, допустим, ВВ9. Категории также могут использовать- ся для предсказания свойств объектов после того, как они были классифицирова- ны. Сделав заключение о присутствии некоторых объектов на основании входных данных сенсоров, можно определить их принадлежность к категориям, исходя из воспринятых свойств этих объектов, а затем воспользоваться информацией о ка- тегории для составления прогнозов, касающихся этих объектов. Например, на ос- новании того, что объект имеет окраску в виде чередующихся зеленых и белых полос, округлую форму и размер чуть больше футбольного мяча, можно сделать вывод, что это арбуз, и на основании этого прийти к заключению, что его можно использовать в качестве десерта. Для представления категорий в логике первого порядка доступны два вариан- та: предикаты и объекты. Это означает, например, что для баскетбольных мячей
можно либо применить предикат Вазке1Ьа11(Ь), либо ►овеществить1 (ге#у) всю эту категорию в виде некоторого объекта — ВазкесЬаНз. В последнем случае появ- ляется возможность использовать высказывание МетЪег(Ъ, ВазкесЬаИз) (которое далее мы будем сокращенно записывать как Ь € ВазкесЬаИз) в качестве утвержде- ния, что Ь — элемент категории баскетбольных мячей. Высказывание 8иЪзеС(Ваз- ке(Ьа11з, Ва11з), в сокращенном написании — Вазке1Ъа11з С Ва11з, может исполь- зоваться в качестве утверждения, что ВазкесЬаИз — это ► подкатегория или подмножество всех мячей Ва11з. Далее мы будем использовать термины “подкате- гория”, “подкласс” и “подмножество” как взаимозаменяемые. Категории позволяют организовать знания с помощью ► наследования. Если известно, что все экземпляры категории Роос! (пища) съедобны, и даны утвержде- ния, что РгиИ (фрукты) — это подкласс класса Роо<1, а Арр1ез (яблоки) — подкласс класса РгиИ, то можно сделать вывод, что каждое яблоко съедобно. Говорят, что отдельные яблоки наследуют свойство съедобности, в данном случае в силу сво- ей принадлежности к категории Роос!. Отношения между отдельными классами и подклассами позволяют организо- вать категории в ►таксономическую иерархию или таксономию. Таксономии широко использовались в прикладных науках уже многие столетия. Крупнейшая из таких таксономий организует около 10 миллионов известных видов животных (большинство из которых является насекомыми2), как еще существующих, так и уже исчезнувших, в единую иерархическую систему. В библиографии разработа- на таксономия всех областей знаний, закодированная в виде десятичной системы Дьюи, а налоговые органы и другие правительственные организации разработали обширные таксономии профессий и коммерческих продуктов. Логика первого порядка позволяет легко формулировать факты о категориях, либо связывая категории с объектами, либо применяя к их элементам кванторы, как показано ниже. • Объект является членом категории. ВВ9 Е ВазкесЬаИз • Категория является подклассом другой категории. ВазкесЬаИз С ВаИз • Все элементы категории имеют некоторые свойства. (х € ВазкесЪаИз) => 8ркепса1(х) 1 Это понятие означает превращение некоторого определения в объект. Англоязычный вариант термина “овеществление”, гефсаИоп, происходит от латинского слова гез. Джон Маккарти предложил термин-кальку “(Ып^Шсайоп”, но он так и не прижился. 2 В ответ на вопрос “Что можно сказать о Создателе, исходя из наших знаний о приро- де?” биолог Дж. Б. С. Холдейн ответил: “Он чрезмерно увлечен жуками”.
• Элементы категории могут быть распознаны по некоторым свойствам. Огап%е(х) Л Коип<1(х) Л В1ате1ег(х) = 9,5" Л х € Ва11з => х € ВазкеЛаИз • Вся категория в целом имеет некоторые свойства Во%з € ВотезНса1ес18рес1ез Обратите внимание, что поскольку Во%з (Собаки) является и категорией, и элементом категории ВотезНса(ес18рес1ез (Домашние животные), то последняя должна быть категорией категорий. Безусловно, есть исключения из многих пере- численных выше правил (например, проколотые баскетбольные мячи не являются сферическими), тем не менее обсуждение любых исключений мы пока отложим. Хотя отношения между подклассами и элементами являются наиболее важными для категорий, необходимо также иметь возможность формулировать отношения и между теми категориями, которые не являются подклассами друг друга. Например, если будет отмечено, что Атз (муравьи) и ЕНез (мухи) — подклассы класса 1пзеаз (насекомые), то это не будет означать, что ни один муравей не может быть одновре- менно и мухой. Две или более категорий являются ► непересекающимися (сИз]от1), если они не имеют общих элементов. И даже если известно, что категории мура- вьев и мух не пересекаются, этого недостаточно, чтобы утверждать, что насекомое, не являющееся муравьем, обязательно должно быть мухой, если не сформулирова- но дополнительное утверждение, что муравьи и мухи образуют ► исчерпывающую декомпозицию (ехИаизвхе с1есотрозИ1оп) категории насекомых. Исчерпывающую декомпозицию непересекающихся множеств принято называть ► сегментацией (раНШоп). Эти три понятия иллюстрируются в приведенных ниже примерах. В1з]о1п1({Ап1та1з, Уе^еюЫез}) ЕхИаиз11\’еВесотрозИ1оп{{Атег1сап8, СапасНапз, Мех1сапз}, МнкАтепсапз) РагНИоп({Ап1та1з, Р1ап1з, ЕипД, РгоИз1а, Мопега}, Ыхт^Ткт^з). (Обратите внимание на то, что исчерпывающая декомпозиция североамерикан- цев (^г111Атепсапз) не является сегментацией, поскольку некоторые люди име- ют двойное гражданство.) Эти три предиката определены следующим образом: В1з]от1(з) о (V с„с2 с, Е з Лс2 € з Ас, с2 => 1п1егзесИоп(с{, с2) = {}), ЕхИаизИуеВесотрозШоп(з, с) <=> ( V / / € с 44 3 с2 с2 6 5 Л / 6 с2), РагННоп(з, с) 44 В1з]о1п1(з) Л ЕхИаизИхеВесотрозШоп(з, с). Категории могут быть также определены путем указания необходимых и до- статочных условий принадлежности к ним. Например, холостяк — это неженатый взрослый мужчина: х е Васке1огз 44 Сптагпес1(х) Ах Е АдиНз Л х € Ма1ез.
Как описано во врезке “Естественные разновидности”, строгие логические определения для категорий обычно возможны лишь для искусственных фор- мальных терминов, а не для обычных объектов. Но определения необходимы не всегда. 10.2.1. Физическая композиция Идея о том, что один объект может составлять часть другого, для нас привыч- на. Нос — это часть лица, Румыния — часть Европы, а данная глава — часть этой книги. Для указания на то, что одна вещь является частью другой, используется общее отношение РагЮ/. Объекты могут группироваться в иерархии РапО/, напо- минающие иерархию 8иЪзе1 (подмножество), например, как показано ниже: РагЮ/(Вискагез1, Котата), РаНО/(Вотата, ЕаМетЕигоре), РагЮ/(Еаз1етЕигоре, Еигоре), РаПО/{Еигоре, ЕаНк). Отношение РагЮ/является транзитивным и рефлексивным, т.е. для него справед- ливы следующие высказывания: РагЮ/(х,у) Л Раг(О/(у, г) => РагЮ/(х, г), РагЮ/(х, х). Следовательно, можно сделать заключение Раг1()/(ВисИаге81, ЕаНк). Категории ► составных объектов часто характеризуются структурными отношениями меж- ду частями. Например, любое двуногое (ЫресГ) имеет две и только две ноги (/е#), прикрепленные (аНаскесГ) к телу (Ъо^уУ В1рес1(а) => 3 /„ /2, Ь Ее%(1х) Л Ье^1^ Л Вос1у(Ъ) Л РагЮ/(1 (, а) Л Раг(О/(12, а) Л РагЮ/(Ь, а) Л АиаскесК/, Ь) Л АИаске<Р(12, Ь) Л /] * /2 Л [ V13 Ье$13) Л Раг1О/(13, а) (/3 = /] V /3 = /2)]. Применяемая здесь система обозначения понятия “две и только две” является довольно громоздкой; мы были вынуждены указать, что ног две, что ноги не явля- ются одинаковыми и что если кто-то из двуногих будет утверждать, что у него есть третья нога, она в конечном итоге окажется одной из его двух ног. В разделе 10.5.2 будет показано, что формальная система, называемая описательной логикой, по- зволяет проще представить ограничения типа “две и только две”. Можно определить отношение Раг1РагИИоп, аналогичное отношению РагНИоп для категорий (см. упр. 10.10). Любой объект состоит из частей, принадлежащих к его категориям РаПРаПШоп, и может рассматриваться как получающий некоторые свойства от собственных частей. Например, масса составного объекта — это сум- ма масс его частей. Обратите внимание, что это утверждение не распространяется
на категории, не имеющие массы, даже если эти категории состоят из элементов, обладающих массой. Также целесообразно определить составные объекты, имеющие определенные части, но не имеющие конкретной структуры. Например, может потребоваться сформулировать утверждение “Яблоки в этой сумке весят два килограмма”. Мо- жет возникнуть соблазн приписать этот вес множеству яблок в сумке, но это было бы ошибкой, поскольку множество — это абстрактное математическое понятие, которое имеет элементы, но не имеет веса. Вместо этого необходимо ввести новое понятие, которое мы будем именовать ► совокупностью (Ьипск). Например, если три яблока обозначить как Арр1ех, Арр1е2 и Арр1е3, то выражение ВипскО/({Арр1е}, Арр1е2, Арр1е3}) будет определять составной объект, частями (а не элементами) которого являются три яблока. Затем эта совокупность может использоваться как обычный, хотя и не структурированный объект. Обратите внимание на то, что ВипскОЩх}) = х. Также ВипскО/{Арр1е8) — это составной объект, состоящий из всех яблок, но его не сле- дует путать с объектом Арр1е$— категорией или множеством всех яблок. Можно определить понятие ВипскО/ в терминах отношения РагЮ/. Очевидно, что каждый элемент множества 5 — это часть объекта ВипскО/(р)\ Vх х€з => РаПО/(х,ВипскО/(8)). Более того, ВипскО/(8) — это наименьший объект, удовлетворяющий данному ус- ловию. Иными словами, ВипскО/(8) должен быть частью любого объекта, который включает все элементы множества 5 в качестве части: Чу [Ух хб5 => РанО/(х,у)] => Раг1СУ(ВипскСУ(8),у). Эти аксиомы представляют собой пример общего метода, называемого ►логи- ческой минимизацией, с помощью которого любой объект может быть определен как наименьший объект, удовлетворяющий определенным условиям. Естественные разновидности Некоторые категории имеют строгие определения, например некоторый объект рас- сматривается как треугольник тогда и только тогда, когда он является многоугольни- ком с тремя сторонами. С другой стороны, большинство категорий в реальном мире не имеют четких определений; они называются категориями ►естественных разно- видностей. Например, помидоры, как правило, имеют ярко-красный цвет, округлую форму с углублением в верхней части, где был черенок, диаметр примерно от пяти до десяти сантиметров, тонкую, но прочную кожицу, под которой находятся сочная мя- коть и семена. Тем не менее существуют многочисленные вариации: некоторые по- мидоры — желтые или оранжевые, незрелые помидоры — зеленые, бывают помидо- ры размером больше или меньше среднего, а все помидоры сорта "черри" одинаково малы. Вместо полного определения помидоров у нас есть лишь набор характеристик,
позволяющих выявлять объекты, которые, безусловно, представляют собой типич- ные помидоры, но не могут с уверенностью идентифицировать другие объекты этого рода. (Может быть, скоро появятся даже помидоры, покрытые пушком, как персики?) Такая ситуация создает проблему для логического агента. Агент не может быть уве- рен в том, что некоторый объект, характеристики которого он воспринял, действи- тельно является помидором, и даже если бы он был в этом уверен, он не мог бы с уверенностью указать, какими свойствами типичных помидоров обладает данный объект. Эта проблема является неизбежным следствием необходимости действовать в частично наблюдаемой среде. Один из полезных подходов состоит в том, чтобы отделить сведения, истинные для всех экземпляров некоторой категории, от сведений, истинных только для типичных экземпляров. Поэтому в дополнение к категории Тотсйоез необходимо предусмот- реть категорию Тур1са1(Тота1ое8). Здесь функция Тургссй отображает категорию на подкласс, который содержит только типичные экземпляры: Тур1са1(с) С с. Большая часть знаний о естественных разновидностях фактически относится к их ти- пичным экземплярам: х е ТургсаЦТотаЮез) => Кес1(х) Л Коипс1(х). Следовательно, мы получаем возможность формулировать полезные факты о кате- гориях без точных определений. Сложности предоставления точных определений для большинства естественных категорий были глубоко исследованы Виттгенштей- ном ([2369], 1953). Он использовал пример с играми, чтобы показать, что элементы любой категории обладают, скорее "семейным сходством", а не строгими характери- стиками, необходимыми и достаточными для их классификации, — какие строгие об- щие характеристики можно найти в игре в шахматы, в догонялки, в вышибалы или в раскладывании пасьянсов? Полезность понятия строгого определения была также поставлена под сомнение Квайном ([1831], 1953). Он указал, что даже определение "холостяка" как неженато- го взрослого мужчины небесспорно, например вряд ли является корректным такое утверждение, как "Папа Римский — холостяк". Хотя это утверждение, строго говоря, не является ложным, сам способ употребления в нем несовместимых слов, безуслов- но, не заслуживает одобрения, поскольку вызывает у некоторых слушателей нежела- тельные ассоциации. Возможно, указанную проблему можно было бы решить, про- водя различия между логическими определениями, подходящими для внутреннего представления знаний, и более утонченными критериями, касающимися корректно- го лингвистического словоупотребления. Последней цели можно было бы достичь, "фильтруя"утверждения, полученные после достижения первой. Кроме того, возмож- но, что неудачные результаты при лингвистической проверке правильности слово- употребления могут использоваться в качестве обратной связи для модификации внутренних определений, чтобы такая фильтрация стала ненужной.
10.2.2. Система мер И в научных, и в любых прочих теориях мира объекты имеют высоту, мас- су, стоимость и т.д. Значения, применяемые для оценки этих свойств, называ- ются ► мерами. Обычные количественные меры можно представить довольно легко. Предположим, что Вселенная включает абстрактные “объекты мер”, та- кие как длина, которая представляет собой длину следующего отрезка прямой: |-------------------1. Эта длина может быть представлена (именована) как 1,5 дюйма или 3,81 сантиметра. Следовательно, одна и та же длина в нашем язы- ке может иметь разные имена. Представить длину можно с помощью ► функции единиц измерения, имеющей числовой аргумент. (Альтернативная схема рассма- тривается в упражнении 10.11.) Если приведенному выше отрезку прямой присвоить имя то можно записать следующее: Ьеп%1к(Ьд = 1псИе5(1,5) = СепНте1ег5(3,8\). Преобразование из одних единиц измерения в другие осуществляется путем при- равнивания кратных значений одной единицы другой: СепНте1егх(2,54 хс?) = 1пске$(ф. Аналогичные аксиомы могут быть записаны для фунтов и килограммов, се- кунд и суток, долларов и центов. Меры могут использоваться для описания объек- тов следующим образом: О1ате1ег(Ва8ке1Ьа11п) = 1пске$(9,5), Ы81Рпсе(Вазке1Ьа11х^) = 5(19), \Уе1&Ы(ВипскСУ({Арр1ех, Арр1е2, Арр1е3})) = РоипЖ(2), <16 Оауз => ИигаИоп((1) = Ноиг$(24). Обратите внимание на то, что запись 5(1) — это не долларовая купюра, это цена. Можно иметь две долларовые купюры, но существует только один объект с именем 5(1). Следует также отметить, что объекты 1пскезф) и СепНтеМгзф) обо- значают одну и ту же нулевую длину, но не идентичны другим нулевым мерам, та- ким как 5есои4Й(0). Простые, количественные меры очень легко представить. Представление дру- гих мер является более сложным, поскольку для них не предусмотрена согласо- ванная шкала значений. Упражнения характеризуются сложностью, десерты — тонким вкусом, а стихи — красотой, но эти качества не могут быть обозначены количественными характеристиками. Можно было бы, стремясь к полной описы- ваемости всего, отказаться от этих свойств как бесполезных с точки зрения логи- ческих рассуждений или, что еще хуже, попытаться оценить красоту по числовой шкале. Но такое решение было бы грубой ошибкой, поскольку оно отнюдь не яв- ляется необходимым. Наиболее важное свойство мер — не конкретные числовые значения, а тот факт, что меры могут быть упорядочены.
Хотя многие меры не являются числами, все еще остается возможность срав- нивать их с помощью некоторого символа упорядочения, такого как Напри- мер, можно утверждать, что упражнения, подготовленные Норвигом, более труд- ные, чем подготовленные Расселом, и что в случае сложных упражнений можно ожидать, что оценка за их выполнение окажется ниже: ех Е Ехегсгзез Л е2 6 Ехегазез Л е}) Л 1Уго1е(Ки88е11, е2) => О1^1си11у(е\) > О101си1(у(е2), е} €. Ехегс18в8 Л е2 6 Ехегс18в8 Л Э1$1си11у(е^ > О1$1си11у(е^ => Ехрес1ес18соге(ех) < Ехреае^Зсоге^. Этого достаточно, чтобы можно было принять решение о том, какие упражне- ния следует выбирать, даже несмотря на то, что для оценки их сложности не ис- пользовались какие-либо числовые значения (однако для этого необходимо иметь возможность установить, кем были подготовлены те или иные упражнения). Тако- го рода монотонные отношения между мерами образуют основу для ► качествен- ной физики (циаШайуеркуясз) — одного из направлений искусственного интел- лекта, в котором изучаются способы формирования рассуждений о физических системах без погружения в числовые расчеты и подробные уравнения. Качествен- ная физика подробнее обсуждается в разделе с историческими заметками. 10.2.3. Объекты: вещи и вещества Реальный мир можно рассматривать как состоящий из примитивных объектов (т.е. атомарных частиц) и сложных объектов, составленных из них. Проведение рас- суждений на уровне больших объектов, таких как яблоки и автомобили, позволя- ет преодолеть сложности, связанные с учетом бесконечных количеств примитив- ных объектов, взятых по отдельности. Тем не менее существует значительная часть реальности, которая, по-ввдимому, не поддается никаким явным попыткам ►ин- дивидуализации — деления на отдельные объекты. Присвоим этой части мира универсальное имя — ► вещество. Например, предположим, что перед исследова- телем находится немного масла и муравьед. Аналитик может утверждать, что пе- ред ним один муравьед, но не в состоянии указать какое-то явное количество “мас- ло-объекгов”, поскольку любая часть масло-объекта — это также масло-объект, по крайней мере до тех пор, пока не удастся дойти до действительно очень мелких его частей. В этом и состоит основное различие между веществами и объектами. Если разрезать муравьеда надвое, двух муравьедов, к сожалению, не получится. Во многих языках, в том числе в русском и английском, проводится четкое раз- личие между веществами и объектами. Например, вполне нормально сказать “вижу двух муравьедов”, но выражение “мне два масла” едва ли услышишь где-ли- бо, кроме заводской столовой. Лингвисты проводят различие между ►исчисля- емыми существительными, такими как муравьеды, ямы и теоремы, и ►неис- числяемыми существительными, такими как масло, вода и энергия. Несколько
конкурирующих онтологий утверждают, что в них учитывается это различие. В данной главе будет описана только одна из них, а остальные рассматриваются в разделе исторических заметок. Чтобы правильно представить понятие вещества, начнем с очевидного. В сво- ей онтологии как объекты мы должны воспринимать по меньшей мере достаточ- но большие количества или “куски” вещества, позволяющие определить способы взаимодействия с этими объектами. Например, в качестве куска можно рассма- тривать то масло, которое осталось в масленке от вчерашнего ужина, — его мож- но взять, взвесить, продать или проделать с ним какие-то другие действия. В этом смысле данный кусок масла представляет собой объект, вполне аналогичный му- равьеду. Назовем его Ви11ег3. Кроме того, определим категорию ВиПег. Говоря не- формально, ее элементами будут все те объекты, о которых можно сказать “Эго масло”, включая Ви11ег3. Если не принимать во внимание некоторые предостере- жения об очень малых частях вещества, которые мы пока опустим, то любая часть масло-объекта также представляет собой масло-объект: Ь е ВиНег А РагЮ/(р, Ь) => р Е ВиНег. Далее можно отметить тот факт, что масло плавится при температуре около 30 градусов по Цельсию: Ь € ВиИег => Ме1Ип%Ро1п1(Ь, СепН%гаЛе(30)). Продолжая описание, можно указать, что масло — желтое, имеет плотность меньше воды, размягчается при комнатной температуре, содержит много жиров и т.д. С другой стороны, масло не имеет конкретного размера, формы или веса. До- полнительно могут быть определены более специализированные категории масла, такие как Упза11ес1Вииег (несоленое масло), которая также представляет некото- рый вид вещества. Но обратите внимание: категория РоипсЮ/ВиНег (фунт масла), включающая в качестве элементов все масло-объекгы, весящие один фунт, уже не является веществом} Если фунт масла разрезать пополам, то, к сожалению, два фунта масла мы не получим. Из этого можно сделать такой вывод: у объектов существуют некоторые свой- ства, которые являются ► внутренними, — они принадлежат к каждой части объ- екта, а не к самому объекту в целом. Разрезав кусок вещества пополам, получим две части, обладающие одним и тем же набором внутренних свойств, таких как плотность, точка кипения, запах, цвет, принадлежность и т.д. С другой стороны, ► внешние свойства объектов — вес, длина, форма и т.д. — не сохраняются после его разделения на части. Категория объектов, которая включает в свое определение только внутренние свойства, характеризует вещество и обозначается качественны- ми, неисчисляемыми существительными, а класс, включающий в свое определе- ние любые внешние свойства, характеризует объект, экземпляр, и обозначается ко- личественными, исчисляемыми существительными. Категории 81и$н ТИ1п%— это наиболее общие категории вещества и объекта соответственно.
10.3. События В разделе 7.7.1 обсуждались действия: что-то, что происходит, случается, — на- пример, 8кюо1р и флюенты: аспекты мира, которые могут изменяться, — например, НауеАтт,. И то, и другое представлялось в виде высказываний, а аксиомы опре- деления преемника использовались для того, чтобы утверждать, что флюента бу- дет истинной в момент времени /+1, если действие в момент времени / заставит ее принять значение 1гие, либо она уже имела это значение в момент времени / и дей- ствие не привело к тому, что она изменила свое значение на/а1зе. Все это подхо- дило для мира, в котором действия являются дискретными, мгновенными, выпол- няются однократно и не подвержены изменениям в отношении того, как они будут выполнены (т.е. есть только один вариант действия 8коо( и не существует никаких различий в том, как стрелять — быстро, медленно, нервно и т.д.). Но если перейти от упрощенных проблемных областей к реальному миру, то придется иметь дело с гораздо более широким спектром действий или событий.3 Обратимся к непрерывному действию, такому как заполнение ванны водой. Акси- ома определения преемника может лишь сообщить нам, что ванна была пустой до выполнения действия и стала наполненной после его выполнения, но ничего не может сказать о том, что происходит во время выполнения действия. Также с ее помощью будет непросто описать два действия, происходящих одновременно, на- пример чистку зубов в ожидании наполнения ванны. Чтобы справиться с такими ситуациями, необходимо использовать другой подход, известный как ► исчисле- ние событий (еуеШ са1си1и8). Объектами в исчислении событий являются события, флюенты и точки време- ни. Так, запись АЦЕкапкаг, Вегке1еу) представляет флюенту: объект, указывающий на факт, что Шанкар находится в Беркли. Событие Ех, указывающее на факт, что Шанкар летит из Сан-Франциско в Вашингтон, округ Колумбия, описывается сле- дующим образом: Ех € Г1у1п%8 А Е1уег(Ех, 8капкаг) Л Оп&п^, ЕЕ) Л Ое$11па1юп(Ех, Е>С), где Е1у1п^8 — категория всех событий перелета. Конкретизируя события, мы дела- ем возможным добавление любого количества произвольной информации о них. Например, можно указать, что в этом полете Шанкар ощущал тряску — Витру^Е^. В онтологии, где события представлены л-арными предикатами, нет способа пред- ставить некоторую дополнительную информацию, подобную этой, — простой пе- реход к п+1-арному предикату нельзя считать масштабируемым решением. Чтобы сделать утверждение о том, что флюента действительно являлась ис- тинной, начиная с некоторой точки времени I, и до точки времени /2, воспользу- емся предикатом Т, записав его как Т(А1(8капкаг, Вегке1еу), 1Х, 12)- Аналогичным 3 Здесь термины “событие” и “действие” мы будем считать взаимозаменяемыми — оба они означают “что-то, что может произойти”.
образом используем предикат Наррепз(ЕХ9чтобы сообщить, что событие Ех действительно произошло, начавшись в точке времени 1Х и закончившись в точке времени /2. Полный набор предикатов для одной из версий исчисления событий приведен ниже.4 Т’СХ о Флюента/является истинной для всех точек времени между 1х и /2 Наррепз(е, 1х, 12) Событие е началось в точке времени 1х и закончилось в точке времени 12 1пШа1е8(е,/, 1) Событие е изменило значение флюенты/на истинное в точке времени 1 Тегтта1е8(е,/, 1) Событие е изменило значение флюенты/на не истинное в точке времени / 1пШа1е^(/, 1х, 12) Значение флюенты/стало истинным в некоторой точке времени между и 12 Тегпйпа1е<1(/, 1х, 12) Значение флюенты/перестало быть истинным в некоторой точке времени между 1х и /2 1х < 12 Точка времени /, имеет место раньше точки времени /2 Теперь можно полностью описать результаты события полета: Е = Е1ут%з(а9 кеге, 1кегё) и Наррепз^Е, 1Х, 1^) => Тегт1па1е8(Е, А1(а, кеге\ Л 1пШа1е8(Е, АЦа, 1кеге\ 1^. Также примем еще одно необычное событие, $1агЦ описывающее первоначаль- ное состояние, сообщая, какие флюенты истинны (используя предикат 1пШа1ез) или ложны (используя предикат Тегттпа1есГ) в момент старта. Это позволит опи- сать, какие флюенты и в какой точке времени являются истинными, всего лишь парой аксиом для Т и -»Г, имеющих тот же самый общий формат, что и аксиомы определения преемника. Предположим, что событие происходит между точками времени 1Х и /3 и в точке /2 где-то в пределах этого интервала событие изменяет зна- чение флюенты/ либо инициируя ее (сделав истинной), либо завершая ее (сделав ложной). Затем в точке времени /4 в будущем, если никакое другое промежуточное событие не изменило значение этой флюенты (завершив или инициировав ее со- ответственно), флюента будет все еще сохранять свое значение. Формально акси- омы определяются так. Нарреп8(е, /3) Л 1пШа1ез(е9/9I?) Л ~^Тегтгппа1ес1(/, /2, Л 1Х < Г2 < 13 < /4 => ту, 12,14) Нарреп$(е, 1Х, 13) Л Тегт1па1ез{е,/, 12) Л -МНаЛесК/, 12,14) Л 1х<12<13<14 => 4 Наша версия основана на статье Шанахана ([2035], 1999), но с некоторыми измене- ниями.
Здесь предикаты Тегпйпа1е<1 и 1пШа1ес1 определяются следующим образом. Тегпппа1ес1(/, 1{, 15) <=> 3 е, 12,13, /4 Нарреп$(е, 12,/4) Л Тегт1па1ез(е,/, /3) Л /, < /2 < /3 < /4 < /5 1пШа1е(1(/, 1Х, /5) О 3 е, 12,13, /4 Нарреп$(е, 12,14) Л 1пШа1е$(е,/, /3) Л /, < /2 < /3 < /4 < /5 Можно расширить исчисление событий для представления одновременных со- бытий (таких, как катание двух человек на качелях), внешних событий (таких, как ветер, перемещающий объект), непрерывных событий (таких, как морские при- ливы и отливы), недетерминированных событий (таких, как бросание монетки и определение, что выпало — орел или решка) и других всевозможных усложнений. 10.3.1. Время Исчисление событий открывает возможность говорить о точках и интервалах времени. Мы рассмотрим интервалы двух типов: моменты времени и продолжи- тельные интервалы. Различие между ними состоит только в том, что моменты вре- мени имеют нулевую продолжительность: РагИИоп({Мотеп18, Ех1еп<Ае(11п1егх'а18}> 1п1ег\'а1.8) I € Мотеп18 <=> ОигаНопф = 8есопЖ(0). Далее необходимо ввести временную шкалу и связать точки на этой шкале с моментами времени, что позволяет сформулировать понятие абсолютных значе- ний времени. Временная шкала выбирается произвольно; в данной книге время измеряется в секундах и используется соглашение, что момент времени в полночь (среднее время по Гринвичу) 1 января 1900 года имел значение времени 0. Функ- ции Ве%1п и Епс1 позволяют определить первый и последний моменты времени в интервале, а функция Типе сообщает момент времени на временной шкале, соот- ветствующий текущему моменту. Функция ТдигаИоп измеряет разность между вре- менем окончания и временем начала. 1п1егуа1(1) =у ЕигаИоп(Г) = (Типе(Еп(1(Г)) - 71те(Ве^1п(1))) Г1те(Ве%1п(АО\900)) = Весопс18(0) Тйпе(Ве%т(АП2001)) = 5есоп^8(3187324800) Пте(ЕпА(АЕ200 1)) = 5есоп&(3218860800) ОигаНоп(АО2001) = 5есопс1$(31536000) Чтобы было проще определять числа, обозначающие количество секунд от на- чала отсчета, введем также функцию йа1е, которая принимает шесть параметров (часы, минуты, секунды, день, месяц и год) и возвращает соответствующую точ- ку во времени. Пте(Ве%1п(АП200\)) = Оа1е(0, 0,0, 1, Аап, 2001) Яа/е(0, 20, 21, 24, 1, 1995) = &?соиЖ(3000000000)
Предикат Мее1 позволяет определить, совпадает ли момент окончания первого интервала времени с моментом начала второго интервала, — эти значения време- ни задаются в секундах. Полный набор предикатов отношений интервалов показан ниже (Аллен [32], 1983) и на рис. 10.2. Мее1(1,]) & ЕпсКГ) = Ве%1п(]) Ве/оге(1,]) о ЕтиЩ) < Ве%1п(]) АрегЦ, 0 о Ве/огеЦ,]) Пипп%(1,/) о Ве&пЦ) < Ве$т(1) < Епс1(1) < ЕпА(]) Оуег1ар(1,]) Ве%т(1) < Ве%т(/) < Еп<1(1) < Еп<1(]) Ве&т(1) = Ве&п^/) ПтзкезЦ,]) <=> Еп<1(1) = ЕпсНЛ Едиа1з(1,]) & Ве%1п(Г) = Ве§1п(/) Л ЕпсКр) = Епс1(/) Все эти предикаты полностью соответствуют своему интуитивному смыслу, за исключением предиката О\?ег1ар\ мы склонны понимать перекрытие как симметрич- ное отношение (если / перекрываету, то иу перекрывает 0, но согласно приведенно- му определению выражение Оуег1ар(1,]) будет истинно только в том случае, если / начинается раньше]. Опыт показал, что такое определение более полезно при на- писании аксиом. Например, чтобы сформулировать утверждение, что царствование Елизаветы II следовало за царствованием Георга VI, а царствование Элвиса Пресли перекрывается с периодом 1950-х годов, можно записать следующее: Мее18(Ке1%пО/(Оеог^е VI), Ке1^пО/(ЕИгаЪеМ!)), ()\'ег1ар(Р1/Иеа, Ве&п^ЕуИез) = Ве&п(АО1950), ЕпсКГУНез) = Еп<1(АВ\959). Оипп%(1,/) Оуег1ар(1,]) Мее!(1,]) Ве/оге(1,]) Рис. 10.2. Предикаты, задаваемые на временных интервалах
10.3.2. Флюенты и объекты Физические объекты можно рассматривать как обобщенные события в том смысле, что любой физический объект представляет собой фрагмент простран- ства-времени. Например, США можно рассматривать как событие, которое нача- лось, скажем, в 1776 году в виде союза 13 штатов и все еще продолжается в наши дни как союз 50 штатов. Изменяющиеся свойства соответствующего объекта ША можно описать с использованием флюент, например такой, как Рори1аИоп(\З^К) (население). Еще одним свойством объекта ША, которое изменяется через каж- дые четыре или восемь лет, если не учитывать непредвиденные происшествия, яв- ляется смена президента этого государства. Можно предложить понимать выраже- ние Рге$и7еи/(ША) как логический терм, который обозначает различные объекты в разное время. К сожалению, это невозможно, поскольку в каждой конкретной структуре моде- ли любой терм обозначает один и только один объект. (Терм Рге$и7еи/(ША, 0 мог бы обозначать разные объекты в зависимости от значения /, но в принятой нами он- тологии временные индексы рассматриваются отдельно от высказываний флюент.) Единственная возможность состоит в том, чтобы считать, что Ргауи7еи/(ША) обо- значает единственный объект, который в разное время определяет разных людей. Эго объект, которым были Джордж Вашингтон с 1789 по 1796 год, Джон Адамс с 1796 по 1800 год и т.д. (рис. 10.3). Для того чтобы высказать утверждение, что Джордж Вашингтон был президентом в течение всего 1790 года, можно записать следующее: Т(Едиа18(Рге81с1еп1(1}8А). Сеог%е№а8к1п%1оп\ Ве%т(АЭ 1790), ЕпсЦАЭ 1790)). Рис. 10.3. Схематическое представление значения объекта Ргауи7ел/(ША) в первые годы его существования
В данном высказывании знак равно представляет собой не стандартный логи- ческий предикат =, а символ функции Едиа1$, поэтому его интерпретация заклю- чается не в том, что Сеог&еТУазкт&оп и Ргези1еп1(\3$К) были логически иден- тичными в 1790 году: логическое равенство есть нечто, неизменное во времени. В данном случае логическое равенство существует между подсобытиями каждого объекта, которые определены на период 1790 года. 10.4. Ментальные объекты и модальная логика Агенты, которые рассматривались нами до сих пор, имели убеждения и могли выводить новые убеждения логическим путем. Но ни один из этих агентов не об- ладал какими-либо знаниями о самих убеждениях или о логическом выводе. Одна- ко знания о собственных знаниях и процессах формирования рассуждений будут полезны для управления логическим выводом. Например, предположим, что Али- са спрашивает: “Чему равен квадратный корень из 1764?”, а Боб отвечает: “Я не знаю”. Если Алиса будет настаивать: “Ну подумай, же!”, Боб начнет понимать, что если немного подумать, то на этот вопрос действительно можно будет ответить. С другой стороны, если Алиса спросит: “Президент сейчас сидит или стоит?”, то Боб должен понимать, что, сколько не думай, это едва ли ему поможет. Знания о знаниях других агентов также являются важными: Боб должен понимать, что от- вет, безусловно, знает сам президент. По сути, нам нужна модель тех ментальных (или мыслимых) объектов, которые находятся в чьей-то голове (или чьей-то базе знаний), и ментальных (или мысли- тельных) процессов, которые манипулируют этими ментальными объектами. Мо- дель не обязательно должна быть детальной. Нет никакой необходимости уметь предсказывать, сколько миллисекунд потребуется какому-то конкретному агенту, чтобы прийти к некоторому логическому заключению. Будет вполне достаточно просто иметь возможность прийти к выводу, что президент знает, сидит он или стоит. Начнем с к пропозициональных установок, которые агент может иметь по отношению к ментальным объектам, с таких установок, как ВеПехез (убежден), Кпоумз (знает), 1Рап18 (желает) и 1п/огтз (сообщает). Сложность здесь состоит в том, что эти установки не ведут себя как “нормальные” предикаты. Например, предположим, мы пытаемся сделать утверждение, что Лойс знает, что Супермен умеет летать: Кпо\\'8{Ьо18, СапР1у(8ирегтап)). Одна небольшая проблема здесь заключается в том, что запись СапР1у(8ирег- тап) мы обычно понимаем как логическое высказывание, но здесь оно употре- бляется как терм, поскольку параметрами предикатов могут быть только термы (а не высказывания). Эту проблему можно устранить посредством овеществления высказывания СапР1у(8ирегтап), в результате чего оно превращается в флюенту.
Более серьезная проблема состоит в том, что если верно, что Супермен — это Кларк Кент, то мы должны заключить, что Лойс знает, что Кларк может летать, но это не так, поскольку (в большинстве версий истории) Лойс не знает, что Кларк — это и есть Супермен: (8ирегтап = С1агк) Л Кпо\м8(Ьо18. СапЕ1у(8ирегтап)) |= Кпо^8(Ьо18. СапЕ1у(С1агкУ). Это утверждение является следствием того факта, что рассуждение о равенстве встроено в логику. Обычно это хорошо: если агент знает, что 2+2=4и4<5, то бу- дет полезно, чтобы агент знал, что 2+2 <5. Это свойство называется ► ссылочной прозрачностью — не имеет значения, какой терм использован для ссылки на объ- ект., важно лишь то, какой объект именуется этим термом. Но для пропозициональ- ных установок, таких как ЪеИеуез и кпо\У8, хотелось бы иметь ссылочную непро- зрачность, — здесь имеет значение, какой именно терм использован, поскольку не все агенты знают, какие из термов ссылаются на один и тот же объект. Можно исправить эту ситуацию за счет дополнительного овеществления: иметь один объект для представления и Кларка, и Супермена, другой объект — для пред- ставления человека, которого Лойс знает как Кларка, и еще один объект — для человека, которого Лойс знает как Супермена. Однако такое вынужденное уве- личение количества используемых объектов означает, что высказывания, которые требуется написать, быстро становятся многословными и неуклюжими. Для решения этой проблемы была разработана ► модальная логика. Обычная логика связана с единственной модальностью, модальностью истины, позволяю- щей нам выразить утверждения “Р истинно” или “Р ложно”. Модальная логика включает в себя специальные ► модальные операторы, которые в качестве аргу- ментов принимают высказывания (а не термы). Например, высказывание “А зна- ет Р” можно представить с использованием нотации Кл Р, где К — это модальный оператор для представления отношения знания. Он имеет два аргумента: имя аген- та (записывается как индекс) и высказывание. Синтаксис модальной логики такой же, как и логики первого порядка, за исключением того, что высказывания также могут быть сформированы с помощью модальных операторов. Семантика модальной логики является более сложной. В логике первого по- рядка модель содержит множество объектов и интерпретацию, обеспечивающую отображение каждого имени на соответствующий объект, отношение или функ- цию. В модальной логике мы хотим иметь возможность рассматривать как воз- можность того, что секретная личность Супермена является Кларком, так и воз- можность того, что это не так. Следовательно, нам необходима более сложная модель, состоящая из набора ► возможных миров, а не из единственного истинного мира. Эти миры связаны в граф ►отношениями доступности, по одному отношению для каждого модаль- ного оператора. Говорят, что мир является доступным из мира по отноше- нию к модальному оператору Кл, если все в мире совместимо с тем, что Л знает
в мире и>0. Например, в реальном мире Бухарест является столицей Румынии, но для агента, который этого не знает, мир, где столицей Румынии является, скажем, София, вполне доступен. Будем надеяться, что мир, в котором 2+2 = 5 окажется не- доступен для любого агента. В общем случае атом знания Кл Р является истинным в мире тогда и толь- ко тогда, когда выражение Р является истинным в каждом мире, доступном из и>. Истинность более сложных высказываний выводится рекурсивным применением этого правила и обычных правил логики первого порядка. Это означает, что мо- дальная логика может использоваться для рассуждений о вложенных высказыва- ниях о знаниях: что один агент знает о знаниях другого агента. Например, можно сказать, что даже если Лойс не знает, является ли Кларк Кент секретной лично- стью Супермена, она знает, что Кларк это знает: С1агк) У ^^^ШепШу^ирегтап. С1агк)\. Модальная логика также позволяет решить некоторые сложные проблемы, свя- занные с взаимодействием квантификаторов и знаний. Например, высказывание на естественном языке “Бонд знает, что кто-то шпион” является двусмысленным. Первое прочтение гласит о том, что существует определенный человек, о котором Бонд знает, что это шпион, что можно записать следующим образом: э* КВ/т]8ру(х). В модальной логике это означает, что существует некто х, такой, что во всех со- вместимых мирах Бонд знает о нем, что это шпион. Второе возможное прочтение гласит том, что Бонд просто знает, что имеется по крайней мере один шпион: $РУ(х). В модальной логике это интерпретируется как высказывание, что в каждом со- вместимом мире существует некто х, являющийся шпионом, но это необязательно должен быть один и тот же х в каждом из этих миров. Теперь, когда у нас есть модальный оператор для знаний, можно написать для него аксиомы. Во-первых, можно сказать, что агенты способны делать выводы; если агент знает Р и знает, что Р подразумевает то агент знает (К^РАК/Р 0) => Ко0 Из этого (и нескольких других правил о логической идентичности) можно сделать заключение, что К/Р V ->Р) является тавтологией: каждый агент знает, что каждое высказывание Р является либо истинным, либо ложным. С другой стороны, вы- сказывание (КЛР) V (К^Р) тавтологией не является: в общем случае может суще- ствовать множество высказываний, о которых агент не знает, что они истинны, и в то же время не знает, что они ложны. Общепризнанно еще со времен Платона, что знание — это убеждение, истин- ность которого подтвердилась. Иначе говоря, если что-то является истиной, если
вы в этом убеждены и если у вас для этого есть неопровержимая уважительная причина, то вы знаете это. Для нас это означает, что если вы знаете что-то, то это должно быть истиной, следовательно, можно сформулировать аксиому: к/ => Р. Более того, логические агенты (но не все люди) способны проанализировать их собственные знания. Если они что-то знают, то они знают, что знают это: кт’ => КЛКР)- Теперь мы можем определить подобные аксиомы для убеждений (их часто обо- значают как В) и других модальных качеств. Однако одной из проблем, связанных с подходом, принятым в модальной логике, является то, что в ней предполагается ► логическое всеведение со стороны агентов. То есть, если агент знает некоторое множество аксиом, то он знает и все следствия из этих аксиом. Эго ненадежная ос- нова даже для несколько абстрактного понятия знаний, и она кажется еще худшей для убеждений, поскольку убеждения в большей степени обращаются к вещам, которые физически представлены в агенте, а не просто потенциально выводимы. Было предпринято немало попыток определить формы ограниченной раци- ональности агентов, — так, чтобы убеждения агента определялись только теми утверждениями, которые можно вывести с использованием не более к этапов рас- суждений или за 5 секунд вычислений. Как правило, все эти попытки оказывались безуспешными. 10.4.1. Другие модальные логики Для различных видов модальности, помимо знаний, было предложено много модальных логик. Одно из предложений состоит в добавлении модальных опера- торов для возможности и необходимости: возможно, является истинным утверж- дение, что один из авторов этой книги в данный момент сидит на стуле, и необхо- димо истинным является утверждение, что 2 + 2=4. Как было отмечено в разделе 8.1.2, некоторые логики предпочитают модаль- ности, связанные со временем. В ►линейных временных логиках добавляются следующие модальные операторы. • X Р — “Высказывание Р будет истинно на следующем временном этапе”. • Г Р — “Высказывание Р в конечном итоге (/таНу) станет истинным на не- котором будущем временном этапе”. • СР — “Высказывание Р всегда(§1оЬа11у)верно”. • Р\5 —“Высказывание Р остается истинным, пока (ипН1) не произойдет О”. В некоторых случаях используются дополнительные операторы, которые мож- но вывести из этих. Добавление таких модальных операторов делает логику саму по себе более сложной (а значит, для алгоритма логического вывода задача
нахождения доказательства усложняется). Но эти операторы также позволяют опи- сать некоторые факты в более сжатой форме (что ускоряет логический вывод). Вы- бор того, какую логику лучше использовать, похож на выбор, какой язык програм- мирования предпочесть: тот, который больше подходит для вашей задачи, или тот, который хорошо знаком вам и вашим коллегам и при этом достаточно эффективен, чтобы успешно достичь поставленных целей. 10.5. Системы рассуждений о категориях Категории являются первичными строительными блоками каждой крупномас- штабной схемы представления знаний. В этом разделе описаны системы, специ- ально разработанные для организации и выполнения рассуждений в отношении категорий. Существуют два тесно связанных семейства подобных систем. ►Се- мантические сети предоставляют графические средства, необходимые для визу- ализации базы знаний, и эффективные алгоритмы логического вывода сведений о любом объекте на основании его принадлежности к некоторой категории. ►Опи- сательные логики предоставляют формальный язык для конструирования и ком- бинирования определений категорий, а также эффективные алгоритмы для уста- новления связей между категориями на уровне подмножеств и надмножеств. 10.5.1. Семантические сети В 1909 году Чарльз Пирс предложил графическую систему обозначений в виде узлов и дуг, получившую название ►экзистенциальные графы, которую он на- звал “логикой будущего”. С того времени начались непрекращающиеся дебаты между приверженцами “чистой логики” и приверженцами “семантических сетей”. К сожалению, эти дебаты затмили тот факт, что на деле семантические сети пред- ставляют собой всего лишь одну из форм логики. Система обозначений, предло- женная в семантических сетях для высказываний некоторых типов, часто являет- ся более удобной, но если отбросить эти особенности, касающиеся “интерфейса, удобного для человека ”, то базовые понятия (объекты, отношения, кванторы и т.д.) окажутся теми же самыми. Существует много вариантов семантических сетей, но все они способны пред- ставлять отдельные объекты, категории объектов и отношения между объектами. В типичной графической системе обозначений имена объектов или категорий изо- бражаются в овалах или прямоугольниках, а связи между ними обозначаются с помощью дуг с метками. Например, на рис. 10.4 показана связь МетЪегО/меж- ду Магу и Рета1еРегзопз, что соответствует логическому утверждению Магу 6 Рета1еРег8опз', аналогичным образом связь 8181егО/между Магу и /оЛи соответ- ствует утверждению 8181егО$Магу, Лкп). Категории можно соединять с помощью связи 8иЬзе{О[и т.д. Рисовать эти овалы и стрелки так интересно, что часто мож- но забыть обо всем. Например, мы знаем, что матерями людей являются особы
женского пола, но можно ли нарисовать связь НазМо1кег от категории Регзопз к категории Рета1еРегзоп8? Ответом является “нет”, поскольку НазМо1кег — это связь между человеком и его матерью, а категории не имеют матерей.5 Рис. 10.4. Семантическая сеть с четырьмя объектами {Зокп, Магу, 1 и 2) и четырьмя категориями. Отношения обозначаются связями с метками По этой причине на рис. 10.4 используется специальное обозначение — связь с меткой в прямоугольнике, вычерченном двойной линией. Эта связь соответствует следующему утверждению: У х х е Регзопз => [\/у НазМо1кег(х, у) => у Е Рета1еРегзопз]. Также можно утверждать, что люди имеют две ноги: V х х € Рег8оп8 => Ье%з(х, 2). Как и прежде, необходимо тщательно следить, чтобы в этом высказывании не утверждалось, что ногами обладает категория, — на рис. 10.4 для обозначения утверждений о свойствах каждого элемента категории используется метка в пря- моугольнике, вычерченном одинарной линией. Система обозначений семантических сетей предоставляет значительные удоб- ства при формировании рассуждений о наследовании такого типа, которые были представлены выше, в разделе 10.2. Например, благодаря тому, что Мэри является 5 В некоторых ранних системах отсутствовало различие между свойствами элемен- тов категории и свойствами всей категории в целом. Это могло непосредственно приво- дить ко многим несогласованностям, как указал Дрю Макдермотт в своей статье “АгйЯаа! ЫеШеепсе МееЬ ИаШга! ЗШрМйу” (Искусственный интеллект сталкивается с естествен- ной глупостью) ([1540], 1976). Еще одной распространенной проблемой было использова- ние связей 1зА и для отношений между подмножествами и множествами, и для отношений между элементами и подмножествами, в полном соответствии с грамматикой английского языка: “а са! 18 а шатта!” (Кошка — млекопитающее) и “ИЯ 18 а са1” (Фифи — кошка). Дополнительная информация по этой теме приведена в упражнении 10.27.
человеком, она наследует свойство иметь две ноги. Поэтому, чтобы узнать, сколько ног имеет Мэри, алгоритм наследования проходит по связи МетЪегО/от объекта Магу к категории, к которой она принадлежит, а затем проходит по связям 8иЬзе1О/' вверх по иерархии до тех пор, пока не находит категорию, для которой имеется связь с обведенной прямоугольником меткой в данном случае — категорию Регзопз. Простота и эффективность этого механизма логического вывода по срав- нению с полуразрешимым логическим доказательством теорем всегда была одной из основных привлекательных особенностей семантических сетей. Наследование становится сложнее, если некоторый объект может принадлежать более чем к одной категории или если категория может быть подмножеством бо- лее чем одной отличной от нее категории, — такая ситуация называется ►множе- ственным наследованием. В подобных случаях алгоритм наследования может на- ходить два или несколько конфликтующих значений, представляющих собой ответ на запрос. Именно по этой причине множественное наследование может быть за- прещено в некоторых языках объектно-ориентированного программирования (ОЬ]ес1-Опеп1ес1 Рго%гатпппп& — ООР), таких как язык Дауа, в котором наследова- ние используется в иерархии классов. В семантических сетях множественное насле- дование обычно разрешено, но мы отложим обсуждение этой темы до раздела 10.6. Читатель должен был обнаружить очевидный недостаток системы обозначе- ний семантических сетей в сравнении с логикой первого порядка: тот факт, что между овалами проводятся связи, соединяющие два овала, говорит о том, что в се- мантических сетях могут быть представлены только бинарные отношения. Напри- мер, высказывание Р1у(8капкаг, №\иУогк, №\иПе1кц Уе81егс1ау) не может быть пред- ставлено непосредственно в семантической сети. Тем не менее можно достичь эффекта реализации и-арных высказываний путем овеществления самого рассма- триваемого высказывания как события, принадлежащего к соответствующей кате- гории событий. На рис. 10.5 показана структура семантической сети для указан- ного выше конкретного события. Обратите внимание, что ограничение, связанное с необходимостью применять только бинарные отношения, вынуждает создавать богатую онтологию овеществленных понятий. Рис. 10.5. Фрагмент семантической сети, демонстрирующий способ представления логического утверждения Р1у(8капкаг, Ре\м?огк, Ре\мОе1кц ТеМегсЪау)
Овеществление высказываний позволяет представить в системе обозначе- ний семантической сети любое базовое, атомарное высказывание логики перво- го порядка, не содержащее функций. Реализация некоторых видов высказываний с кванторами всеобщности может осуществляться с помощью инверсных связей и применяемых к категориям связей с метками в прямоугольниках с одинарным и двойным контуром, но даже такие ухищрения отнюдь не позволяют приблизить- ся к возможностям полной логики первого порядка. В этой системе обозначений недостает таких выразительных возможностей, как отрицание, дизъюнкция, вло- женные функциональные символы и кванторы существования. В последнее вре- мя появилась возможность расширить эту систему обозначений, чтобы сделать ее эквивалентной логике первого порядка — как при использовании экзистенциаль- ных графов Пирса, — но это приводит к исчезновению одного из основных преи- муществ семантических сетей — простоты и прозрачности процессов логическо- го вывода. Простая система обозначений позволяет проектировщикам создавать большие сети и все еще иметь полное представление о том, какие запросы должны быть эффективными, поскольку, во-первых, можно легко визуально представить, через какие этапы должна пройти процедура логического вывода, и, во-вторых, в некоторых случаях язык запросов настолько прост, что формулировать в нем сложные, запутанные запросы не представляется возможным. Для тех случаев, когда выясняется, что выразительная мощь слишком ограни- чена, во многих системах семантических сетей предусмотрены ► процедурные вложения, позволяющие компенсировать эти недостатки. Процедурное вложе- ние — это метод, с помощью которого при выполнении запроса, касающегося некоторого отношения (а иногда и при вводе в базу знаний некоторого утвержде- ния), осуществляется вызов специальной процедуры, предназначенной лишь для обработки этого отношения, а не обращение к общему алгоритму логического вывода. Одной из самых важных характерных особенностей семантических сетей явля- ется их способность представлять ► заданные по умолчанию значения для ка- тегорий. Внимательно изучив рис. 10.4, можно обнаружить, что Джон имеет одну ногу, несмотря на тот факт, что он — человек, а все люди имеют две ноги. В стро- го логической базе знаний такое сочетание фактов было бы противоречивым, но в семантической сети утверждение, что все люди имеют две ноги, обладает лишь статусом значения, применяемого по умолчанию; т.е. применительно к любому человеку предполагается, что он имеет две ноги, если этому не противоречит бо- лее конкретная информация. Принудительное применение семантики заданных по умолчанию значений осуществляется естественным образом с помощью алгорит- ма наследования, поскольку этот алгоритм следует по связям, направленным вверх от самого объекта (в данном случае от Джона), и останавливается, как только на- ходит искомое значение. Принято говорить, что заданное по умолчанию значение к переопределяется более конкретным значением. Обратите внимание на то, что можно было бы также переопределить информацию о заданном по умолчанию
количестве ног, создав категорию одноногих людей ОпеЬе%%е(1Рег8оп8, подмноже- ство категории Рег8оп8, элементом которого является Зокп. Для этой сети также можно было бы сохранить строго логическую семантику, сформировав высказывание, что утверждение Ье%8 для Рег8оп8 содержит исклю- чение для Лкп: V х х Е Регзопз Л х Лкп =Ф 7>#$(х, 2). Для фиксированной сети такое дополнение было бы семантически адекватным, но стало бы гораздо менее кратким по сравнению с самой сетевой системой обо- значений, если бы в сети было много исключений. Однако в сети, обновляемой посредством добавления дополнительных утверждений, такой подход оказался бы полностью неприемлемым, — фактически нужно было бы указывать, что к исклю- чениям относятся любые люди, в отношении которых еще не известно, имеют ли они только одну ногу. В разделе 10.6 приведены дополнительные сведения об этой проблеме и о формировании рассуждений в логике умолчаний в целом. 10.5.2. Описательные логики Синтаксис логики первого порядка предназначен для упрощения процедуры формирования высказываний об объектах, тогда как ► описательные логики представляют собой системы обозначений, которые предназначены для упроще- ния процедуры описания определений и свойств категорий. Системы описатель- ной логики развились из семантических сетей как ответ на необходимость фор- мализовать тот смысл, который несут в себе сети, сохранив вместе с тем акцент на использование таксономической структуры в качестве принципа организации. Основные задачи логического вывода для описательных логик сводятся к ► обобщению (проверке того, является ли одна категория подмножеством другой, путем сравнения их определений) и ►классификации (определению принадлеж- ности некоторого объекта к какой-то категории). Некоторые системы включают также проверку ►непротиворечивости определения категории, т.е. того, являют- ся ли выполнимыми критерии принадлежности к категории с точки зрения логики. Типичным языком описательной логики является СЕА881С (Боргида и др. [255], 1989). Синтаксис описаний языка СЕА881С приведен на рис. 10.б.6 Например, что- бы сформулировать утверждение, что холостяками называют неженатых взрослых мужчин, можно записать следующее: Васке1ог = Апс^иптагпесГ, Ас1и11, Ма1е). 6 Обратите внимание, что этот язык не позволяет просто заявить, что одно понятие (или категория) является подмножеством другого. Это требование введено сознательно: отношение обобщения между категориями должно быть выведено логическим путем из некоторых аспектов описаний категорий. Если этого сделать не удается, то в описаниях имеются какие-то упущения.
Эквивалент этого утверждения в логике первого порядка выглядит так: Васке1ог(х) о 1}птагг1ес1(х) Л Ас1и11(х) Л Ма1е(х). Сопсер! —► ТЫп^ | Сопсер1Мате | АпсЦСоисер/, ...) | АЛ1(Ко1е1Уате, Сопсер!) | АСЬеа81(/«/е^ег, По1еМатё) | АШо81(/«Ге^ег, Ко1еМатё) | ГШ8 (Ко1еМате, ЛпскуШиаШате, ...) | 8атеА8(РаГй, Ра1к) | ОпеОЩпсИуШиаШате, ...) Ра1к —► [Во1е^ате, ...] СопсерШате —► Ас1и11 | Еета1е | Ма1е | ... КоГеМате —► 8рои$е | Оаи%к1ег | 8оп | ... Рис. 10.6. Синтаксис описаний в подмножестве языка СЕА881С Обратите внимание, что в этом языке описательной логики имеется алгебра операции с предикатами, что, безусловно, невозможно в логике первого поряд- ка. Любое описание на языке СЕА881С может быть переведено в соответствую- щее эквивалентное высказывание логики первого порядка, но некоторые описа- ния формулируются проще на языке СЕА881С. Например, чтобы описать множество мужчин, имеющих по меньшей мере трех сыновей, из которых все безработные и женаты на врачах, и, самое большее, двух дочерей, из которых все являются пре- подавателями на кафедрах физики или математики, можно записать следующее: АпсЦМап, А1Ьеа$1(Х 8оп), А1Мо81(2, Эаи^Ыег\ А11(8оп9 Ап<Л(1Лпетр1оуес1, Матеев А11(8роизе9 Оос1ог))\ А11фаи%к1ег9 АпсЦРго/еззог, РШзфераПтепЦ Рку81С8, Ма1к)))). Перевод этого высказывания на язык логики первого порядка предлагается выпол- нить читателю в качестве упражнения. Вероятно, одной из самых важных характерных особенностей описательных логик является присутствующий в них акцент на осуществимости логического вы- вода. Любой экземпляр проблемы решается посредством его описания с после- дующим выполнением запроса, является ли этот экземпляр обобщением одной из нескольких возможных категорий решений. В стандартных системах логики первого порядка предсказание затрат времени на поиск решения часто оказыва- ется невозможным. Чаще всего, пользователю самому приходится разрабатывать
представление, позволяющее исключать множества высказываний, которые, веро- ятно, вынудят систему выполнять вычисления в течение нескольких недель, пока задача будет решена. С другой стороны, в описательных логиках все направлено на обеспечение того, чтобы проблема проверки обобщения могла быть решена за время, полиномиально зависящее от размера описаний.7 На первый взгляд, такое свойство описательных логик может показаться очень привлекательным, пока не становится понятно, что оно ведет к одному из двух следствий: либо задача оказывается настолько сложной, что ее описание вообще невозможно сформулировать, либо она потребует экспоненциально большого опи- сания! Тем не менее анализ осуществимости логического вывода позволяет про- лить свет на то, какого рода конструкции вызывают проблемы, и поэтому помочь пользователю понять, какие следствия вытекают из использования различных представлений. Например, в описательных логиках обычно не используются такие отношения, как отрицание и дизъюнкция. Дело в том, что каждое из этих отноше- ний вынуждает логические системы первого порядка для обеспечения полноты проходить через этап анализа вариантов, который может потенциально характери- зоваться экспоненциальной сложностью. В языке СЕА881С допускается использо- вать только ограниченную форму дизъюнкции в конструкциях РШз и ОпеО/\ кото- рые допускают выполнение дизъюнкции по явно заданным объектам, а не по их описаниям. Если бы было разрешено использовать дизъюнктивные описания, то вложенные определения могли бы легко привести к появлению экспоненциально- го количества альтернативных путей, по которым одна категория могла бы обоб- щать другую. 10.6. Рассуждения при наличии информации по умолчанию___________________________________________ В предыдущем разделе был приведен простой пример утверждения с задан- ной по умолчанию информацией о состоянии: люди имеют две ноги. Это заданное по умолчанию значение можно переопределить с помощью более конкретной ин- формации, например такой, что Джон Сильвер имеет одну ногу. Кроме того, было показано, что механизм наследования в семантических сетях предоставляет про- стой и естественный способ переопределения значений, заданных по умолчанию. В этом разделе проводится более общее обсуждение заданной по умолчанию ин- формации, с тем чтобы можно было понять семантику умолчаний, а не просто со- здать какой-то процедурный механизм. 7 В целом язык СЕА881С обеспечивает эффективную проверку обобщения, но в худ- шем случае время прогона может стать экспоненциальным.
10.6.1. Логика косвенного описания и логика умолчания Выше приводились два примера процессов формирования рассуждений, на- рушающих свойство ► монотонности логики, доказанное в главе 7.8 В этой гла- ве речь шла о свойстве, наследуемом всеми элементами категории в семантиче- ской сети, которое можно переопределить с использованием более конкретной информации, касающейся подкатегории. Во втором примере, приведенном в раз- деле 9.4.4, было показано, что на основании предположения о замкнутости мира, если высказывание а не упоминается в КВ, то КВ |= ->а, но КВ А а |= а. Простой самоанализ показывает, что подобные нарушения монотонности логи- ки широко распространены и в обыденных рассуждениях здравого смысла. Созда- ется впечатление, что люди часто просто “перепрыгивают” к заключениям. Напри- мер, увидев припаркованный на улице автомобиль, мы обычно предполагаем, что у этого автомобиля четыре колеса, даже если нам видны только три. Действительно, теория вероятностей позволяет уверенно прийти к заключению, что вероятность су- ществования четвертого колеса весьма велика, но большинству людей мысль о том, что у автомобиля нет четвертого колеса, даже не приходит в голову, если не появят- ся некоторые новые факты. Следовательно, создается впечатление, что вывод о на- личии у наблюдаемого автомобиля четырех колес достигается по умолчанию, если нет каких-либо причин поставить этот вывод под сомнение. Если же поступают но- вые факты — например, становится очевидно, что владелец катит колесо, а сам ав- томобиль поднят домкратом, — то первоначальный вывод может быть отброшен. Принято говорить, что в рассуждениях такого рода проявляется ► немонотонность, поскольку множество убеждений не возрастает монотонно со временем, по мере по- ступления новых фактов. Для того чтобы можно было описывать подобное поведе- ние, были разработаны ► немонотонные логики, в которых используются модифи- цированные определения понятий истинности и логического следствия. В данном разделе рассматриваются две такие логики, изучению которых были посвящены об- ширные исследования: логика косвенного описания и логика умолчания. ► Косвенное описание (сггситзспрНоп) может рассматриваться как более мощная и точная версия допущения замкнутости мира. Идея состоит в том, что должны быть заданы конкретные предикаты, в отношении которых предполагает- ся, что они являются “настолько ложными, насколько это возможно”, т.е. ложными для всех объектов, за исключением тех, для которых эти предикаты заведомо ис- тинны. Например, предположим, что необходимо ввести применяемое по умолча- нию правило, что птицы летают. Для этого введем предикат, скажем АЬпогтаЩх), и запишем следующее: В1гсКх) А ~'АЬпогта1\(х) => РНез{х). 8 Напомним, что условие монотонности требует, чтобы все высказывания, которые следуют из базы знаний КВ, по-прежнему следовали бы из нее после добавления новых высказываний. Это означает, что если КВ |= оц то КВ А 3 |= а.
Если будет указано, что для предиката АЬпогтаЦ должно применяться кос- венное описание, то программа формирования рассуждений будет предпола- гать, что истинным является утверждение -АЬпогтаЦх), а не АЬпогта1х(х). Эго позволит вывести заключение ГНе8(Тч>ее1у) (летающие чирикают) из предпосыл- ки ВМ(Т\\>ее(у), но подобное заключение станется недействительным, если в базу знаний вводится утверждение АЬпогта1х(Тн>ее1у). Косвенное описание может рассматриваться как один из примеров логики ► предпочтения моделей (тос1е1 рге/егепсе). В подобных логиках высказывание следует из базы знаний (со статусом, заданным по умолчанию), если оно истин- но во всех предпочтительных моделях базы знаний, в противоположность требо- ванию истинности во всех моделях в классической логике. С точки зрения косвен- ного описания одна модель является предпочтительной по отношению к другой, если в ней имеется меньшее количество аномальных объектов.9 Рассмотрим, как эта идея может применяться в контексте множественного наследования в семанти- ческих сетях. Стандартный пример, демонстрирующий проблемы множественно- го наследования, называется “парадоксом Никсона”. Этот пример основан на том наблюдении, что президент Ричард Никсон был одновременно и квакером (поэто- му по умолчанию пацифистом), и республиканцем (поэтому по умолчанию не па- цифистом). Эту ситуацию можно описать следующим образом: КериЬИсап(^!1хоп) Л Оиакег(№хоп), КериЬНсап(х) Л -АЬпогта12(х} => ->РасгрзЦ^\ Оиакег[х) Л ->АЬпогтсЛ3(х) => РасгрзЦх). Если применяется косвенное описание для предикатов АЬпогта12 и АЬпог- та13, то возникают две предпочтительные модели: в одной из них истинны вы- ражения АЬпогта12(№хоп) и РасфзЦМхоп), а в другой — АЬпогта13(№хоп) и ^Раа/ьчЦМхоп). Таким образом, программа формирования рассуждений на осно- ве косвенных описаний остается в полном неведении в отношении того, является ли Никсон пацифистом. При желании можно дополнительно ввести утверждение, что религиозные убеждения имеют приоритет над политическими убеждениями; для этого можно воспользоваться формальной системой, называемой ► косвен- ным описанием с приоритетами (рпопйхей агситзспрНоп), чтобы отдать пред- почтение моделям, в которых минимизируется предикат АЬпогта13. ► Логика умолчания (<Ае/аи1( 1о$1с) — это формальная система, в которой для вывода непротиворечивых немонотонных заключений могут быть записаны 9 С точки зрения допущения о замкнутости мира одна модель является предпочти- тельной по отношению к другой, если в ней имеется меньше истинных атомов, т.е. пред- почтительными моделями являются минимальные модели. Существует естественная связь между допущением о замкнутости мира и базами знаний с определенными выра- жениями, поскольку фиксированная точка, достигаемая в процессе прямого логического вывода в такой базе знаний, представляет собой уникальную минимальную модель (см. раздел 7.5.4).
► правила по умолчанию. Заданное по умолчанию правило выглядит следую- щим образом: ВМ(х): ЕИез(х)/ЕИез(х). Эго правило означает, что если выражение В1гсЦх) является истинным, а выраже- ние ЕНез(х) не противоречит базе знаний, то вывод ЕЛе^х) может быть сделан по умолчанию. В общем случае заданное по умолчанию правило выглядит следую- щим образом: где Р называется предпосылкой, С—заключением, а / представляют собой обосно- вания. Если можно доказать, что любое из обоснований ложно, то заключение вы- вести нельзя. Любая переменная, появляющаяся в / или С, должна присутствовать и в Р. Пример с парадоксом Никсона может быть представлен в логике умолчаний с помощью одного факта и двух заданных по умолчанию правил следующим образом: РериЫ1сап(Ы1хоп) Л Оиакег(№хоп\ КериЬИсап{х): ^Рас^1(х)1^Рас1(1з1(х\ Оиакег(х): Раа/г^хУ/Рас^Кх). Для интерпретации того, что означают заданные по умолчанию правила, опре- делим понятие ► расширения теории умолчаний как максимального множества следствий из этой теории. Таким образом, расширение 8 состоит из первоначаль- но известных фактов и множества заключений, полученных на основе заданных по умолчанию правил, — таких, что из 8 нельзя больше вывести дополнительные заключения, а обоснования всех сделанных по умолчанию заключений в 5 не про- тиворечат 8. Как и в случае предпочтительных моделей, в логике косвенного опи- сания существуют два возможных расширения для парадокса Никсона: согласно одному из них он является пацифистом, а согласно другому — нет. Имеются так- же схемы с приоритетами, в которых определенные заданные по умолчанию пра- вила могут получать преимущества над другими, что позволяет разрешать некото- рые неопределенности. С 1980 года, когда впервые были предложены немонотонные логики, был до- стигнут большой прогресс в понимании их математических свойств. Однако не- которые вопросы остаются нерешенными. Например, если высказывание “Авто- мобили имеют четыре колеса” является ложным, то что влечет за собой наличие такого высказывания в некоторой базе знаний? Каковым является наиболее прием- лемое множество заданных по умолчанию правил? Если нет возможности отдель- но для каждого правила принять решение о том, должно ли оно находиться в на- шей базе знаний, то налицо серьезная проблема отсутствия модульности. Наконец, как могут использоваться для принятия решений убеждения, имеющие заданный по умолчанию статус? По-видимому, эта проблема является наиболее сложной для систем формирования рассуждений по умолчанию.
Принятие решений часто связано с поиском компромиссов, и поэтому необ- ходимо сравнивать силу убеждений в отношении предполагаемых результатов различных действий со стоимостью принятия неправильного решения. В тех случаях, когда решения одного и того же типа должны быть приняты повторно, по- является возможность интерпретировать заданные по умолчанию правила как вы- сказывания с “пороговой вероятностью”. Например, заданное по умолчанию пра- вило “Тормоза в моем автомобиле всегда в порядке” фактически означает “Если нет другой информации, то вероятность, что тормоза в моем автомобиле в поряд- ке, достаточно велика, чтобы оптимальным решением для меня был выезд без их проверки”. Если контекст принятия решения изменяется — например, если при- ходится спускать тяжело груженый самосвал вниз по крутой горной дороге, — та- кое заданное по умолчанию правило внезапно становится неприемлемым, даже если нет новых фактов, говорящих о том, что тормоза неисправны. Подобные со- ображения привели некоторых исследователей к выводу, что необходимо проду- мать, как внедрить средства формирования рассуждений по умолчанию в теорию вероятностей. 10.6.2. Системы поддержки истинности Выше было показано, что многие логические выводы, полученные с помощью той или иной системы представления знаний, могут иметь лишь некоторый задан- ный по умолчанию статус, а не быть абсолютно достоверными. Поэтому некото- рые из таких полученных логическим путем фактов неизбежно оказываются лож- ными и должны быть отброшены на основании новой информации. Этот процесс называется ► пересмотром убеждений (ЬеИе/геупзюп)™ Предположим, что база знаний КВ содержит высказывание Р (возможно, заключение, сформированное по умолчанию с помощью алгоритма прямого логического вывода, или, возможно, просто неверное утверждение) и требуется выполнить операцию ТеЩЛБ, -»Р). Но чтобы избежать возникновения противоречия, вначале необходимо выполнить операцию Кеткаст(ЛБ, Р). На первый взгляд, в этом нет ничего сложного, но если на основании Р были выведены и внесены в базу знаний какие-то дополнительные высказывания, то возникают проблемы. Например, импликация Р => <2 могла ис- пользоваться для внесения в базу знаний высказывания 0. Очевидное “решение” (извлечение всех высказываний, которые следуют из Р) неприемлемо, посколь- ку подобные высказывания могут иметь и другие обоснования, помимо Р. На- пример, если в базе знаний имеются также высказывания Р и Р =Ф то в таком 10 Пересмотр убеждений часто противопоставляется обновлению убеждений (ЬеИе/ ирс1а1е\ которое происходит, когда осуществляется пересмотр базы знаний для того, чтобы она отражала какое-то изменение в мире, а не добавление новой информации о неизменном мире. В обновлении убеждений объединяется пересмотр убеждений с рас- суждениями о времени и изменениях; процесс обновлений связан также с процессом фильтрации, описанным в главе 14.
случае <2 вообще не следует удалять, к Системы поддержки истинности (Тги(И Ма1п1епапсе 8уз1ет — ТМ8) предназначены именно для того, чтобы справляться с подобными осложнениями. Один из простых подходов к созданию системы поддержки истинности за- ключается в отслеживании порядка, в котором высказывания вводятся в базу зна- ний, путем присваивания им номеров от Р, до Рп. Тогда при поступлении вызова Кеткаст(О, Р,) система возвращается к состоянию, непосредственно предшеству- ющему добавлению высказывания Р„ удаляя тем самым и само Рр и любые резуль- таты логического вывода, полученные на основании Р,. После этого могут быть вновь добавлены высказывания от Р|+| до Р„. Такая организация работы являет- ся простой и гарантирует, что база знаний всегда будет оставаться непротиворе- чивой, но для извлечения Р, необходимы извлечение и повторная вставка п-1 вы- сказываний, а также отмена и повторное выполнение всех логических выводов, вытекающих из этих высказываний. Для систем, в которые происходит добавле- ние большого количества фактов (таких, как крупные коммерческие базы данных), указанный подход является практически не применимым. Более эффективный подход состоит в создании системы поддержки истин- ности на основе обоснований, или системы ► «ГГМ8 (^изИ^саИоп-Вазе^ Тги1к Ма1п1епапсе 8уз1ет). В системе ДТМ8 к каждому высказыванию в базе знаний при- лагается аннотация в виде к обоснования, состоящего из множества высказыва- ний, на основании которых было выведено это высказывание. Например, если база знаний уже содержит высказывание Р => О, то операция Теьь(Р) вызовет добав- ление с обоснованием {Р, Р ()}.В общем случае высказывание может иметь любое количество обоснований. Обоснования используются для обеспечения эф- фективного извлечения. При поступлении вызова Кеткаст(Р) система ГГМ8 уда- лит такие и только такие высказывания, для которых Р является элементом каждо- го обоснования. Поэтому, если высказывание <2 имеет единственное обоснование {Р, Р => д}, оно будет удалено; если оно имеет также дополнительное обоснова- ние {Р,Р^В^-О\, оно также будет удалено; но если, кроме этого, оно имеет обо- снование {Р, Р V Р => ()}, оно будет сохранено. Таким образом, время, требуемое для извлечения высказывания Р, зависит только от количества высказываний, по- лученных на основании Р, а не от количества других высказываний, добавленных после того, как Р было введено в базу знаний. В системе ДТМ8 предполагается, что высказывания, которые уже когда-то рас- сматривались, по-видимому, будут рассматриваться снова, поэтому вместо полного удаления из базы знаний некоторого высказывания после того, как оно теряет все обоснования, это высказывание просто отмечается как находящееся вне базы зна- ний. Если же какое-то последующее утверждение восстанавливает одно из обос- нований, то это высказывание снова отмечается как находящееся внутри базы. Благодаря этому система ДТМ8 позволяет сохранить все цепочки логического вы- вода, которые в ней используются, и не нуждается в повторном выводе высказы- ваний после того, как некоторое обоснование вновь становится действительным.
Помимо исключения из базы знаний неправильной информации, системы под- держки истинности могут использоваться для ускорения анализа многочисленных гипотетических ситуаций. Предположим, например, что Олимпийский комитет Румынии выбирает площадки для проведения соревнований по плаванию, легкой атлетике и конному спорту для олимпийских игр 2048 года, которые должны про- водиться в Румынии. Например, допустим, что первая гипотеза такова: 8Ие(8н>1т- тт%, РИезН), 8Ие(АМеИсз, ВискагезС) и 8Ие(Едие$1г1ап, Агас1). Потребуется провести большой объем рассуждений, чтобы определить логиче- ские следствия, а значит, и целесообразность этого выбора. Если же вместо это- го потребуется рассмотреть вариант 8Ие(А1ЫеНс8,81Ыи), то система ТМ8 позволит избавиться от необходимости начинать всю эту работу с нуля. Достаточно будет просто извлечь гипотезу 8Ие4АШеНсз, Вискагез!) и ввести 8Ие(А1к1еИсз, 81Ыи), по- сле чего система ТМ8 возьмет на себя весь необходимый пересмотр. А цепочки логического вывода, выработанные на основании выбора площадки в Бухаресте, могут повторно использоваться для Сибиу, при условии, что логические заключе- ния остаются теми же самыми. Особенно эффективное переключение контекста между гипотетическими ми- рами обеспечивает система поддержки истинности на основе предположения, или ►АТМ8 {АззитрИоп-Ъазе^ Тги1к Мат1епапсе 8уз1ет), предназначенная именно для подобных целей. В системе ЛМ8 средства сопровождения обоснований по- зволяют быстро переходить от одного состояния к другому, выполнив лишь не- большой объем извлечений и вставок, но в них в любой момент времени пред- ставлено только одно состояние. В системе АТМ8 представлены все состояния, которые когда-либо рассматривались одновременно. Эго означает, что в системе ЛМ8 каждое высказывание обозначается как находящееся вне или внутри базы знаний, тогда как в системе АТМ8 для каждого высказывания отслеживается, ка- кие предположения могли бы вынудить это высказывание стать истинным. Иными словами, каждое высказывание имеет метку, состоящую из множества множеств предположений. Эго высказывание становится истинным только в том случае, если истинными являются все предположения в одном из множеств предположе- ний. Системы поддержки истинности предоставляют также механизм выработки ► объяснений. Формально объяснением высказывания Р является такое множе- ство высказываний Е, что из Е следует Р. Если уже известно, что высказывания Е истинны, то Е просто предоставляет достаточную базу для доказательства того, что высказывание Р также является истинным. Но объяснения могут также вклю- чать ► предположения — высказывания, в отношении которых неизвестно, явля- ются ли они истинными, но которые были бы достаточными, чтобы доказать ис- тинность Р, если бы они были истинными. Например, если ваш автомобиль не заводится, у вас, вероятно, нет достаточной информации для убедительного до- казательства причины этой проблемы. Но обоснованное объяснение может вклю- чать предположение, что аккумулятор разряжен. Оно, в сочетании со знаниями о
том, как работает двигатель автомобиля, позволяет объяснить наблюдаемое не- правильное поведение автомобиля. В большинстве случаев предпочтительным яв- ляется минимальное объяснение Е\ под этим подразумевается, что не существует строгого подмножества Е, которое также было бы объяснением. Система АТМ8 может сформировать объяснения для проблемы “автомобиль не заводится”, делая предположения (такие, как “в машине кончился бензин” или “аккумулятор раз- ряжен”) в любом желательном для пользователя порядке, даже если некоторые предположения противоречат друг другу. После этого достаточно посмотреть на метку, предусмотренную для высказывания “автомобиль не заводится”, чтобы оз- накомиться с множествами предположений, которые могли бы подтвердить это высказывание. Точные алгоритмы, используемые для реализации систем поддержки истинно- сти, являются довольно сложными, и здесь они не рассматриваются. Вычисли- тельная сложность задачи поддержки истинности является по меньшей мере такой же, какая характерна для пропозиционального логического вывода, т.е. КР-труд- ной. Поэтому не следует рассчитывать на то, что подход на основе поддержки ис- тинности окажется панацеей. Однако при продуманном использовании системы ТМ8 могут обеспечить существенное повышение способности логической систе- мы в отношении обработки сложных сред и гипотез. Резюме Описывая детали того, какие способы используются для представления раз- личных знаний, авторы надеялись дать читателю возможность понять, как созда- ются реальные базы знаний и почувствовать интересные философские вопросы, которые при этом возникают. Основные идеи, высказанные в этой главе, перечис- лены ниже. • Для крупномасштабного представления знаний требуется онтология общего назначения, позволяющая организовать и связать воедино различные специ- ализированные области знаний. • Онтология общего назначения должна охватывать широкий круг знаний и быть способной в принципе представить любую проблемную область. • Построение крупномасштабной онтологии общего назначения является се- рьезной задачей, которая решена еще не полностью, хотя уже существую- щие системы кажутся достаточно надежными. • В этой главе описана верхняя онтология, основанная на категориях и ис- числении событий. Были рассмотрены категории, подкатегории, части, структурированные объекты, меры, вещества, события, время и простран- ство, изменения и убеждения. • Естественные разновидности не могут быть полностью определены в ло- гике, но свойства естественных разновидностей могут быть представлены.
• Действия, события и время могут быть представлены с помощью исчисле- ния событий. Подобные представления позволяют агенту составлять после- довательности действий и осуществлять логический вывод для определе- ния, что в мире будет истинным после их выполнения. • Были рассмотрены системы представления общего назначения, такие как се- мантические сети и описательные логики, позволяющие строить иерар- хии категорий. Наследование является важной формой логического вывода, которая позволяет логическим путем определять свойства объектов на осно- вании данных об их принадлежности к категориям. • Допущение замкнутости мира, будучи реализованным в логических про- граммах, предоставляет простой способ избежать необходимости задавать большие объемы отрицательной информации. Такую информацию проще всего интерпретировать как заданную по умолчанию, которую можно пе- реопределять с помощью дополнительной информации. • Немонотонные логики, такие как логика косвенного описания и логика умолчания, предназначены для обеспечения возможности проведения рас- суждений по умолчанию. • Системы поддержки истинности позволяют эффективно осуществлять об- новления и пересмотры баз знаний. • Трудно построить большие онтологии вручную; извлечение знаний из тек- ста облегчает эту задачу. Библиографические и исторические заметки Бриггс ([305], 1985) утверждает, что исследования в области представления знаний начались с классических работ индийских теоретиков, посвященных грам- матике шастрических текстов на санскрите, относящихся к первому тысячелетию до нашей эры. Начало работы западных философов по этой теме можно просле- дить до 300 годов до н.э. в труде Метафизика Аристотеля. Безусловно, разработ- ка технической терминологии в любой области независимо от формы также может рассматриваться как способ представления знаний. Первые дискуссии о представлении в области искусственного интеллекта в основном сосредоточивались на “представлении задач”, а не на “представлении знаний” (см., например, приведенное Амарелем ([40], 1968) обсуждение задачи с миссионерами и каннибалами). В 1970-х годах основной акцент в искусствен- ном интеллекте был сделан на разработке “экспертных систем” (называемых так- же “системами, основанными на знаниях”), которые были способны при наличии соответствующих знаний в проблемной области достичь или превзойти произво- дительность людей-экспертов при решении узко определенных задач. Например, первая экспертная система, Оекпкаь (Фейгенбаум и др. [716], 1971; Линдси и др. [1417], 1980), интерпретировала выходные данные масс-спектрометра (прибора,
применяемого для анализа структуры органических химических веществ) так же точно, как и опытные химики. Хотя успех системы Оенокаь позволил сообществу исследователей по искусственному интеллекту убедиться в важности представле- ния знаний, формальные средства представления, используемые в Оенокаь, были в высшей степени специализированными и относящимися только к данной про- блемной области химии. Со временем у исследователей появился интерес к стандартизации формаль- ных средств представления знаний для толкований и онтологий, что позволило бы упростить процесс создания новых экспертных систем. В ходе решения этой проблемы им пришлось проникнуть на территорию, которая до сих пор иссле- довалась только философами, изучающими проблемы науки и языка. Принятое в искусственном интеллекте требование, согласно которому предлагаемые теории должны “работать”, привело к более быстрому и глубокому прогрессу в решении проблем по сравнению с той ситуацией, когда эти проблемы рассматривались как принадлежащие исключительно к области философии (хотя такой подход время от времени приводил к “повторному изобретению колеса”). Но в какой степени можно доверять экспертным знаниям? Еще в 1955 году Пол Миль ([1555], 1955; см. также Гроув и Миль [926], 1996) изучал процессы приня- тия решений подготовленными экспертами при выполнении субъективных задач, таких как прогнозирование успеха учащегося в программе обучения или рецидив преступлений у преступника. В 19 из 20 исследований, которые он изучил, Миль обнаружил, что простые статистические алгоритмы обучения (такие, как линейная регрессия или наивный байесовский прогноз) предсказывают лучше, чем экспер- ты. Тетлок ([2195], 2017) также изучал экспертные знания и обнаружил их недо- статочность в сложных случаях. Служба образовательного тестирования использу- ет автоматизированную программу для анализа миллионов оценок, выставленных на экзаменах (ЗМАТ с 1999 года. Эта программа одобряет решение выносящих оценку людей в 97% случаев, — примерно на том же уровне, на котором приходят к согласию два оценивающих человека (Бурштейн и др. [350], 2001). (Это не озна- чает, что программа понимает ответы, просто она может отличить хорошие от пло- хих так же хорошо, как и экзаменаторы.) Первые попытки создания всеобъемлющих таксономий или классификаций, от- носятся к временам древности. Аристотель (384—322 до н.э.) настоятельно требо- вал применения правильных схем классификации и категоризации. В его Органон. сборник трудов Аристотеля по логике, собранный учениками Аристотеля после его смерти, включен трактат под названием Категории, в котором Аристотель по- пытался создать то, что мы теперь называем верхней онтологией. Он также ввел понятия родов и видов для классификации нижнего уровня. Современная систе- ма биологической классификации, включая использование “биноминальной но- менклатуры” (в формальном смысле слова — классификации по родам и видам), была предложена шведским биологом Карлом Линнеем (1707-1778). Проблемы, связанные с естественными разновидностями и неточными границами категорий,
кроме многих других работ, рассматривались Витгенштейном ([2369], 1953), Квай- ном([1831], 1953), Лакоффом ([1343], 1987) и Шварцем ([2013], 1977). Обсуждение представления слов и понятий в глубоких нейронных сетях можно найти в главе 24, — в нем не только отходят от некоторых проблем строгой онто- логии, но и жертвуют некоторой степенью точности. Мы до сих пор не знаем, как лучше объединить преимущества нейронных сетей и логической семантики для целей представления. Продолжает расти интерес к крупномасштабным онтологиям, что задокумен- тировано в Справочнике по онтологиям (Стааб [2121], 2004). В рамках проекта ОремСТС (Ленат и Гуха [1384], 1990; Матушек и др. [1516], 2006) была разра- ботана онтология из 150 000 понятий, верхняя онтология которой сходна с пред- ставленной на рис. 10.1, а также со специфическими концепциями, подобными “ОЬЕП дисплей” и ‘ЧРЬопе”, являющимися типами категории “сотовые телефо- ны”, которая, в свою очередь, является типом категорий “потребительская элек- троника”, “телефоны”, “устройства беспроводной связи” и нескольких других. Проект №хтК.В расширил онтологию СТС и другие ресурсы, включая РгатеЫеС и 'МэгсГМе!, до базы знаний почти с 3 миллионами фактов и предоставляет систему рассуждений НЕЕ для работы с ней (Форбус и др. [753], 2010). В проекте ОВРЕВ1А структурированные данные извлекаются из Википедии, в частности из 1пГоЬохез — пар “атрибут/значение”, которые прилагаются ко мно- гим статьям в Википедии (Ву и Вельд [2390], 2008; Бизер и др. [226], 2007). По со- стоянию на 2015 год база знаний проекта СВРЕЭ1А содержала 400 миллионов фак- тов о 4 миллионах объектов только в английской версии; принимая в расчет все 110 языков, получаем 1,5 миллиарда фактов (Леманн и др. [1379], 2015). Рабочая группа ШЕЕ Р 1600.1 создала 811МО — 8и%%еМе<1 1)ррег Мег%ес1 Отйо1о%у (Нильс и Пиэе [1684], 2001; Пиэе и Нильс [1761], 2002) — примерно с 1000 терминов в верхней онтологии и связями более чем с 20 000 терминов, спец- ифических для области определения. Стоффель и соавт. ([2133], 1997) описывают алгоритмы для эффективного управления очень большой онтологией. Обзор мето- дов извлечения знаний из веб-страниц дается Этциони и соавт. ([703], 2008). В Сети появляются новые языки представления. Язык ВОР (Брикли и Гуха [304], 2004) позволяет делать утверждения в форме реляционных триплетов и предоставляет некоторые средства для развития значения имен во времени. Язык О^Ь (Смит и др. [2097], 2004) — это язык описательной логики, поддержива- ющий логический вывод по этим триплетам. На настоящий момент их исполь- зование кажется обратно пропорциональным репрезентативной сложности: тра- диционные НТМЬ- и С88-форматы используются для представления более 99% веб-контента, за ними следуют простейшие схемы представления, такие как ЕВРа (Адида и Бирбек [15], 2008), и микроформаты (Харе [1221], 2006; Пател-Шней- дер [1743], 2014), в которых разметка НТМЬ и ХНТМЬ используется для добав- ления атрибутов к тексту веб-страниц. Использование сложных онтологий ЕПР и О^Ъ еще не получило распространения, и полное видение семантического веба
(Бернерс-Ли и др. [ 190], 2001) пока не реализовано. Конференции Рогтпа1 Оп1о1о%у т 1п/огтаИоп ЗуМетз (РО18) по формальной онтологии в информационных систе- мах охватывают как общие, так и предметные онтологии. Таксономия, используемая в этой главе, была разработана авторами данной книги и частично основана на опыте их участия в проекте СУС и на работах Хван- га и Шуберта ([1110], 1993), а также Дэвиса ([534], 1990; [535], 2005). Воодушев- ляющее обсуждение общего проекта представления обыденных знаний приведено в книге Хейса “ТЪеКаке РЬузюз МапйЫо” ([989], 1978; [992], 1985). Успешные глубокие онтологии в пределах определенной области включают в себя проект бепе Оп1о1о§у (Консорциум Жене-онтология [834], 2008) и СЬеписа! МагкирЕап^иа^е (Мюррей-Раст и др. [1645], 2003). Сомнения в возможности созда- ния единой онтологии для всех знаний выражены Докторовым ([628], 2001), Грубе- ром ([927], 2004), Халеви и соавт. ([950], 2009), а также Смитом ([2088], 2004). Исчисление событий, разработанное Ковальски и Серготом ([1298], 1986), было введено как инструмент представления непрерывного времени, а позднее по- явилось еще несколько его вариантов (Садри и Ковальски [1960], 1995; Шанахан [2034], 1997) и обзоров (Шанахан [2035], 1999; Мюллер [1631], 2006). Джеймс Ал- лен предложил использовать для этой же цели временные интервалы ([33], 1984), указывая, что интервалы являются гораздо более естественным средством форми- рования рассуждений о продолжительных и одновременных событиях, чем ситу- ации. В работе ван Ламбалгена и Хамма ([2258], 2005) показано, как логика собы- тий влияет на язык, который мы используем, говоря о событиях. Альтернативой исчислениям событий и ситуаций является исчисление флюент (Тильшер [2202], 1999), в котором овеществляются факты, из которых образованы состояния. Питер Ладкин ([1335], 1986; [1336], 1986) ввел “вогнутые” временные интер- валы (интервалы с перерывами; по сути, об'ьединения обычных “выпуклых” вре- менных интервалов) и применил методы математической абстрактной алгебры для представления времени. Аллен ([34], 1991) систематически исследовал широ- кий спектр методов, которые могут применяться для представления времени; ван Бик и Манчак ([2248], 1996) проанализировали алгоритмы для временных рас- суждений. Между онтологией на основе событий, приведенной в данной главе, и анализом событий, выполненным философом Дональдом Давидсоном ([531], 1980), имеются весьма важные аналогии. К тому же типу относятся ► хроноло- гии (Шмогу), предложенные в работе Патрика Хейса ([991], 1985) по онтологии вневременных событий (Идшс1 е\>еп1) и ► хроники (скготс1ез) в теории МакДер- мотта ([1543], 1985) о планах, оказавшей также значительное влияние в той обла- сти, которой посвящена данная глава. Проблема онтологического статуса веществ имеет долгую историю. Платон считал, что вещества — это абстрактные сущности, полностью отличающие- ся от физических объектов; с его точки зрения следовало бы сказать, что кусок масла сделан из масла — Мас1е()/(Вш1ег3, ВиКег), — а не что кусок масла являет- ся элементом множества масла — ВиИег3 Е ВиНег. Такая идея ведет к созданию
иерархии веществ, в которой, например, несоленое масло 1}пза11е<1Вииег являет- ся более конкретно определенным веществом, чем само масло ВиНег. Научная по- зиция, принятая в этой главе, согласно которой вещества представляют собой ка- тегорию объектов, была обоснована Ричардом Монтегю ([1607], 1973). Также эта позиция была принята и в проекте СУС. На эту позицию Копеланд в работе [476] (1993) предпринял серьезную, но не настолько уж неотразимую атаку. Альтернативный подход, упомянутый в данной главе, согласно которому мас- ло представляет собой единственный объект, состоящий из всех маслоподобных объектов во вселенной, был первоначально предложен польским логиком Леснев- ским ([1389], 1916). В разработанной им мереологии (это название происходит от греческого слова, обозначающего “часть”) используется отношение “часть-це- лое” в качестве замены математической теории множеств в целях устранения та- ких абстрактных сущностей, как множества. Более удобное для чтения изложение этих идей приведено Леонардом и Гудманом ([1385], 1940), а в книге Гудмана “ТЬе 81гис1ите оГ Арреатапсе” ([901], 1977) эти идеи применяются для решения различ- ных проблем в области представления знаний. Хотя в некоторых аспектах мереологический подход является весьма громозд- ким — например, в нем требуется отдельный механизм наследования, основанный на отношениях “часть-целое”, — он получил поддержку Квайна ([1832], 1960). Гарри Бант ([343], 1985) провел широкий анализ перспектив использования этого подхода в области представления знаний. Касати и Варзи ([377], 1999) охватывают части, целые и общую теорию пространственных положений. Существует три основных подхода к изучению ментальных объектов. Тот, ко- торый был выбран в этой главе, основан на модальной логике и возможных ми- рах и является классическим подходом со стороны философии (Хинтикка [1024], 1962; Крипке [1309], 1963; Хьюджес и Крессвелл [1093], 1996). В книге “Леазопт^ аЬои( Кп<ул'1е(1&ё” (Фагин и др. [708], 1995) предоставлено подробное введение, а Гордон и Хоббс ([904], 2017) предлагают формальную теорию психологии здра- вого смысла. Второй подход — это теория первого порядка, в которой ментальные объекты являются флюентами. В работах Дэвиса ([535], 2005) и Дэвиса и Моргенштерна ([541], 2005) описан этот подход. Он основан на формализме возможных миров и строится на работах Роберта Мура ([1616], 1980; [1617], 1985). Третий подход — это синтаксическая теория, в которой ментальные объ- екты представлены символьными строками. Строка является просто комплекс- ным термом, представляющим собой список символов, поэтому утверждение СапР1у(С1агк) может быть представлено с помощью списка символов [С, а, п, Р, I, У, (, С, I, а, г, к,)]. Синтаксическая теория ментальных объектов впервые глубо- ко изучалась Капланом и Монтегю ([1185], 1960), которые показали, что эта тео- рия может приводить к парадоксам, если при использовании ее средств не соблю- дается чрезвычайная осторожность. Эрни Дэвис ([534], 1990) дал превосходное сравнение синтаксической и модальной теорий знания. Пнуэли ([1800], 1977)
описывает использование временной логики для рассуждений о программах, — эта работа принесла ему премию Тьюринга и позднее была расширена Варди ([2263], 1996). Литтман и соавт. (2017) показали, что временная логика может быть хорошим языком определения целей для робота, обучаемого по методу обучения с подкреплением, позволяя человеку легко определять эти цели и обобщать их на различные окружающие среды. Греческий философ Порфирий (ок. 234—305 н.э.) в своих комментариях к трак- тату Аристотеля Категории продемонстрировал то, что может рассматриваться как первая семантическая сеть. Чарльз С. Пирс ([1766], 1909) разработал экзистен- циальные графы, которые могут рассматриваться как первое формальное опреде- ление семантической сети с использованием современной логики. Инициатором исследований по семантическим сетям, проводимых в рамках искусственного ин- теллекта, был Росс Квиллиан ([1830], 1961), основным стимулом для которого был интерес к человеческой памяти и языковой обработке. В важной статье Марвина Мински ([1582], 1975) представлена одна из версий семантических сетей, называ- емых фреймами; фреймы служили для представления объектов или категорий и характеризовались наличием атрибутов и отношений с другими объектами или ка- тегориями. Вопросы семантики приобрели особую остроту применительно к семантиче- ским сетям, разработанным Квиллианом (и теми, кто стал последователем предло- женного им подхода), в связи с тем, что в них использовались вездесущие и весьма неопределенные “связи 18-А". Знаменитая статья Вудса “МУйаГз 1п а Ыпк?” ([2376], 1975) привлекла внимание исследователей в области искусственного интеллекта к тому, что в формальных системах представления знаний семантика должна быть точно определена. Рон Брачман ([283], 1979) провел исследования по этой про- блеме и предложил некоторые решения. Патрик Хейс в статье ТИе Ьо§1с о/Егатез ([990], 1979) провел еще более глубокие исследования и сформулировал утверж- дение, что “так называемые «фреймы» по большей части представляют собой про- сто новые синтаксические обозначения для фрагментов логики первого порядка”. Дрю Макдермотт в работе Тагзкгап ЗетапИсз, ог, Ко КоЮНоп ч>Икои1 ОепоСаНоп! ([1542], 1978) доказывал, что модельно-теоретический подход к семантике, ис- пользуемый в логике первого порядка, должен быть распространен на все фор- мальные системы представления знаний. Однако эта идея является внутренне про- тиворечивой, — примечательно, что сам Макдермотт пересмотрел свою позицию в работе А СпИцие о/Риге Кеазоп ([1543], 1987). Селман и Левеск ([2024], 1993) обсудили сложность наследования с исключениями и показали, что в большинстве формулировок эта задача является ЫР-полной. Описательные логики представляют собой полезное подмножество логики пер- вого порядка, для которой задача логического вывода является осуществимой с помощью вычислительных средств. Гектор Левеск и Рон Брачман ([1392], 1987) показали, что определенные виды использования дизъюнкции и отрицания, в пер- вую очередь, ответственны за неразрешимость логического вывода. Эго позволило
гораздо лучше понять зависимости между сложностью и выразительностью в си- стемах формирования рассуждений. Общий итог современного состояния дел в этой области подведен в работе Кальванезе и соавт. ([358], 1999), а Баадер и соавт. ([94], 2007) предоставили всеобъемлющее руководство по описательной логике. Три основные формальные системы, предназначенные для использования в не- монотонном логическом выводе — косвенное описание (МасКарти [1532], 1980), логика умолчания (Рейтер [1869], 1980) и модальная немонотонная логика (Мак- Дермотт и Дойл [1545], 1980), — были предложены в одном специальном выпу- ске А1Лигпа1. Дельгранде и Шауб в работе [597] (2003) обсуждают достоинства этих вариантов, предоставляя 25-летний ретроспективный взгляд на их историю. Программирование множества ответов может рассматриваться как расширение по- нятия отрицания как недостижения цели или как уточнение понятия косвенного описания. Основополагающая теория семантики стабильных моделей была пред- ложена Гельфондом и Лившицем в работе [829] (1988), а ведущими системами программирования множества ответов являются ОЬУ (Эйтер и др. [679], 1998) и Змооеьз (Нимелё и др. [1682], 2000). Лифшиц в работе [1411] (2001) обсуждает возможность использования программирования множества ответов для планиро- вания. Бревка и соавт. в [303] (1997) приводят хороший обзор различных подхо- дов к немонотонной логике. Кларк в [445] (1978) предлагает свой подход к логи- ческому программированию, основанный на отрицании как недостижении цели, и анализирует дополнение Кларка. Лифшиц в [1411] (2001) обсуждает примене- ние программирования множества ответов в планировании. Целый ряд систем формирования немонотонных рассуждений, основанных на логическом програм- мировании, описан в трудах конференции Ьо&с Рго^аттт^ апс1 МоптопоЮпгс Кеазотпз (ЬРКМК). Исследования в области систем поддержки истинности начались с создания си- стем ТМ8 (Дойл [645], 1979) и КПР (МакАлистер [1521], 1980), которые по суще- ству представляли собой системы ДТМ8. Форбус и де Клер в [752] (1993) подробно объясняют, как системы ТМ8 могут применяться в приложениях искусственного интеллекта. Нейяк и Вильямс ([1660], 1997) показали, как использование эффек- тивной инкрементальной системы ТМ8 под названием “1ТМ8” обеспечило воз- можность планирования операций космического аппарата агентства КА8А в ре- жиме реального времени. По понятным причинам в этой главе подробно не рассматривается каждая об- ласть представления знаний. Ниже описаны три основные темы, которые в ней не представлены. ►Качественная физика. Это подобласть представления знаний, относящая- ся в основном к формированию логической, нечисловой теории физических объ- ектов и процессов. Этот термин был предложен Йоханом де Клером ([557], 1975), хотя вполне можно считать, что это направление исследований началось с соз- дания Фалманом ([709], 1974) программы Вгльо — развитого планировщика для
построения сложных башен из блоков. В процессе разработки Фалман установил, что основная часть усилий (по его оценке, 80%) уходит на моделирование физиче- ских свойств мира блоков в целях вычисления устойчивости различных субфраг- ментов структур блоков, а не на само планирование как таковое. Он сформулиро- вал набросок гипотетического процесса, подобного проведению рассуждений в рамках наивной физики, для объяснения причин того, почему дети младшего воз- раста способны решать задачи, подобные рассматриваемым в программе Ви11<1, без обращения к быстродействующей арифметике с плавающей точкой, которая используется в физическом моделировании программой Вшк1. Хейс ([991], 1985) применил “истории” (четырехмерные фрагменты пространства-времени, анало- гичные событиям Дэвидсона) для построения довольно сложной наивной физи- ческой теории жидкостей. Дэвис в [538] (2008) предлагает обновление онтологии жидкостей, описывающее заливку жидкостей в контейнеры. В работах де Клера и Брауна ([559], 1985), Форбуса ([751], 1985) и Куперса ([1321], 1985) представлены системы, разработанные независимо друг от друга и почти одновременно, способные рассуждать о физических системах на осно- ве качественных абстракций соответствующих физических уравнений. Вскоре ка- чественная физика была разработана до такой степени, что с ее помощью стало возможным анализировать сложные физические системы, разнообразие которых весьма впечатляет (Йип [2405], 1991). Качественные методы использовались для разработки новых конструкций часов, дворников для ветрового стекла и шести- ногих шагающих машин (Субраманиан и Ванг [2146], 1994). Хорошим введени- ем в эту область являются сборник статей КешНпуз т ОисЛИаНуе Кеазогипу аЬои! РНуз1са! ЗузСетз (Вельд и де Клер [2312], 1990), энциклопедическая статья Купер- са ([1323], 2001) и справочная статья Дэвиса ([537], 2007). ► Пространственные рассуждения. Рассуждения, необходимые для навига- ции в мире вампуса, являются тривиальными в сравнении с тем, что требуется в богатой пространственной структуре реального мира. Результаты первых серьез- ных попыток описать обыденные рассуждения о пространстве приведены в рабо- тах Эрнеста Дэвиса ([533], 1986; [534], 1990). В исчислении региональных свя- зей Кона и соавт. ([461 ], 1997) под держивается определенная форма качественных пространственных рассуждений, — эти исследования привели к созданию геогра- фических информационных систем нового типа (Девис [536], 2006). Как и с помо- щью качественной физики, агент, так сказать, многое может сделать без обраще- ния к полному метрическому представлению. ► Психологические рассуждения. Психологические рассуждения охваты- вают проблему разработки для искусственных агентов работоспособных психо- логических моделей, предназначенных для использования в их рассуждениях о себе и других агентах. Такие рассуждения часто основаны на так называемой на- родной психологии ЦЫк рзуско1оуу) — теории, которую люди, как полагают, ис- пользуют в рассуждениях о себе и других людях. Когда исследователи в области
искусственного интеллекта снабжают своих искусственных агентов психологи- ческими теориями для формирования рассуждений о других агентах, эти теории часто основаны на описании исследователями проектов самих этих логических агентов. В настоящее время психологические рассуждения оказываются наиболее полезными в контексте понимания естественного языка, где понимание намерений говорящего имеет первостепенное значение. В сборнике Минкера [1581] (2001) собраны статьи ведущих исследователей в области представления знаний, суммируя итоги 40 лет работы в этой области. В материалах международных конференций Рг1пс1р1ез о/Кпом1ес1%е КергезеШаНоп аги! Кеазопт^ собраны все новейшие источники по результатам работы в этой об- ласти. Сборники КеасНп%з т Кпо^Ы^е КергезеШаНоп (Брачман и Левеск [284], 1985) и Рогта1 ТНеопез о/(Не Соттопзепзе ЪРогШ (Хоббс и Мур [1037], 1985) яв- ляются превосходными антологиями по представлению знаний, — первый в боль- шей степени фокусируется на исторически важных документах, а второй — на на- коплении самих знаний. В книгах Девиса ([534], 1990), Стефика ([2125], 1995) и Совы ([2111], 1999) предлагаются учебные материалы в области представления знаний, а издание ван Хармелена и соавт. ([2253], 2007) — это отличный справоч- ник по теме. Дэвис и Моргенштерн ([540], 2004) предоставляют отредактирован- ный специальный выпуск журнала “Искусственный интеллект” по данной теме. В работе [539] (2017) Дэвис предлагает обзор по логике обыденных рассуждений. Проводимая раз в два года конференция ТИеогеИса! Азрес1з о/Кеазоп1п% АЬои1 Кпом>1ес1%е (ТАКК) посвящена применению теории знаний в области ИИ, эконо- мике и распределенных системах. Упражнения___________________________________________________________ 10.1. Создайте онтологию в логике первого порядка для игры в крестики-нолики. Онто- логия должна содержать ситуации, действия, квадраты, игроков, отметки (X, О и пробел), а также понятие выигрыша, проигрыша или ничьей в игре. Также опреде- лите понятие гарантированного выигрыша (или ничьей): позиция, с которой игрок может гарантированно выиграть (или сыграть вничью) при правильной последова- тельности действий. Напишите аксиомы для этой области определения. (Примеча- ние. Аксиомы, перечисляющие различные квадраты и характеризующие выигрыш- ные позиции, довольно длинные. Не требуется выписывать их полностью, — доста- точно четко указать, как они выглядят.) 10.2. Требуется создать систему консультирования студентов по компьютерным на- укам о том, какие курсы необходимо прослушать в течение длительного пе- риода времени, чтобы удовлетворить все требования программы. (Используй- те те требования, которые подходят для вашего учебного заведения.) Снача- ла выберите словарь для представления всей информации, а затем представь- те ее. Далее сформулируйте запрос к системе, в ответ на который будет возвра- щена допустимая программа обучения в качестве решения. Необходимо преду- смотреть некоторую настройку для отдельных студентов, в которой система будет
спрашивать, какие курсы или их эквиваленты студент уже прослушал, и исклю- чить возможность создания программ, в которых эти курсы будут повторяться. Предложите способы улучшения своей системы, например принимать во внимание знания о предпочтениях студентов, нагрузке, хороших и плохих преподавателях и т.д. Для каждого вида знаний объясните, как это можно выразить логически. Может ли ваша система легко включить эту информацию, чтобы найти все возможные про- граммы обучения для студента? Сможет ли она найти лучшую программу? 103. На рис. 10.1 приведены верхние уровни иерархии онтологии для всех понятий. До- полните ее, чтобы включить как можно больше реальных категорий. Удобным спо- собом выполнения этого задания является описание всего, с чем вам приходится сталкиваться в повседневной жизни. К этому относятся и объекты, и события. Нач- ните с утреннего пробуждения и последовательно учитывайте все, что вы видите, чего касаетесь, что делаете и о чем думаете. Например, случайно выбранный день может привести к такой цепочке: музыка, новости, молоко, ходьба, поездка, заправ- ка топливом, вестибюль университета, ковер, разговор, профессор Фейтмен, цыпле- нок под соусом карри, обожженный язык, 7 долларов, солнце, дневная газета и т.д. Вы должны подготовить единую схему иерархии (на большом листе бумаги), а так- же список объектов и категорий с отношениями, которым соответствуют элементы каждой категории. Каждый обьект должен находиться в некоторой категории, а ка- ждая категория должна относиться к этой иерархии. 10.4. Разработайте систему представления для рассуждений об окнах в компьютерном оконном интерфейсе. В частности, ваше представление должно позволять описать следующее. - Состояние окна: свернуто, отображается или отсутствует. - Какое окно (если есть) является активным. - Положение каждого окна в данный момент. - Порядок (от переднего плана к заднему) перекрывающихся окон. - Действия по открытию, закрытию, изменению размера и перемещению окон, изменению состояния окна и его выведению на передний план (активизации). Относитесь к этим действиям как к атомарным, т.е. не занимайтесь вопросом их соотнесения с действиями мыши. Запишите аксиомы, описывающие влия- ние действий на флюенты. Можете использовать исчисление событий или ис- числение ситуаций. Предположим, что ваша онтология будет включать ситуации, действия, целые чис- ла (для представления координат* иу) и окна. Определите язык для этой онтологии, т.е. список констант, функциональных символов и предикатов с описанием каждо- го из них на русском языке. Если потребуется добавить в онтологию больше катего- рий (например, пиксели), можете это сделать, но обязательно отметьте данный факт в сопроводительной записке. Вы также можете (и должны) использовать символы, определенные в тексте главы, но обязательно перечислите их явно. 10.5. Представьте следующее на языке, который был разработан в упражнении 10.4. а) В ситуации 50 окно IV] находится под окном 1Г2, но выступает из-под него слева и справа. Не задавая для них точные координаты, опишите эту общую ситуацию. б) Если окно отображается на экране, то его верхний край всегда выше нижнего, в) Окно ч? после открытия будет отображено на экране. г) Окно может быть свернуто, только если оно отображается.
10.6. Представьте следующее на языке, который был разработан в упражнении 10.4. а) В ситуации 50 окно находится под окном н0 выступает из-под него сверху и снизу. Не задавая для них точные координаты, опишите эту общую ситуацию. б) Если окно отображается на экране, то его верхний край всегда выше нижнего, в) Окно уу после открытия будет отображено на экране. г) Окно может быть свернуто, только если оно отображается. 10.7. Ваша задача состоит в том, чтобы в логической форме представить достаточный объем знаний, позволяющий ответить на ряд вопросов о следующем простом высказывании: Вчера Джон пошел в супермаркет 8а/е\мау и купил два фунта помидоров и фунт го- вяжьего фарша. Начните с попытки представить содержимое этого высказывания в виде ряда утверждений. Запишите высказывания, имеющие простую логическую структуру (например, утверждения о том, что объекты имеют определенные свой- ства, связаны определенными отношениями или что объекты, удовлетворяющие не- которому свойству, удовлетворяют также какому-то другому свойству). Чтобы на- чать, попробуйте ответить на следующие вопросы. - Какие классы, объекты и отношения вам потребуются? Есть ли у них родитель- ские объекты, сестринские объекты и т.д.? (Кроме всего прочего, вам могут по- требоваться события и их упорядочение во времени.) - В каком месте эти объекты должны войти в более общую иерархию? - Каковы ограничения и взаимосвязи между ними? - Насколько подробно следует определять каждое из различных понятий? Чтобы дать ответы на приведенные ниже вопросы, созданная вами база знаний должна включать некоторые фоновые знания. Потребуется разобраться, какого рода товары бывают в супермаркете, что связано с покупкой выбранных товаров, для чего могут использоваться покупки и т.д. Попытайтесь сделать применяемое вами представление настолько общим, насколько это возможно. Приведем три- виальный пример: не следует вводить в базу знаний высказывание “Люди поку- пают продукты в супермаркете 8аГемгау”, поскольку это не позволит учесть су- ществование тех, кто покупает продукты в другом супермаркете. Также не пре- вращайте вопросы в ответы. Например, в п. в спрашивается “Купил ли Джон ка- кие-либо мясные продукты?”, а не “Купил ли Джон фунт говяжьего фарша?” Наметьте цепочки рассуждений, которые позволят ответить на приведенные во- просы. Если это возможно, используйте какую-то систему формирования логиче- ских рассуждений, чтобы продемонстрировать достаточность вашей базы знаний. Многие из составленных вами высказываний в реальности могут оказаться лишь приблизительно правильными, но не следует об этом слишком беспокоиться; идея состоит в том, чтобы извлечь обыденные знания (на уровне здравого смысла), ко- торые в принципе позволят вам ответить на приведенные вопросы. Задача состав- ления действительно полного ответа на многие из этих вопросов является чрезвы- чайно трудной и, по-видимому, выходит за рамки современных средств представ- ления знаний. Но вы должны быть способны составить непротиворечивое множе- ство аксиом для получения ответов на приведенный здесь ограниченный круг во- просов. а) Джон — ребенок или взрослый? [Взрослый] б) У Джона теперь имеется не меньше двух помидоров? [Да] в) Купил ли Джон какие-либо мясные продукты? [Да]
г) Если бы Мэри покупала помидоры в то же время, что и Джон, он увидел бы ее? [Да] д) Помидоры были сделаны в супермаркете? [Нет] е) Что Джон собирается сделать с помидорами? [Съесть их] ж) В супермаркете 8аГетоу продаются дезодоранты? [Да] з) Джон принес немного денег или кредитную карточку в супермаркет? [Да] и) Стало ли у Джона меньше денег после посещения супермаркета? [Да] 10.8. Внесите необходимые дополнения или изменения в свою базу знаний, разработан- ную в упражнении 10.8, так, чтобы можно было получить ответы на приведенные ниже вопросы. Включите в свой отчет описание внесенных изменений, объяснив, почему они были необходимы, были они незначительными или крупными и какие вопросы потребуют внесения дальнейших изменений. а) Находились ли другие люди в супермаркете 8а€емау в то время, когда там был Джон? [Да—работники супермаркета!] б) Джон вегетарианец? [Нет] в) Кому принадлежит дезодорант в супермаркете 8аГе\уау? [Корпорации За/е^ау] г) Имеется ли у Джона унция говяжьего фарша? [Да] д) Есть ли бензин на расположенной рядом бензозаправочной станции 8Ье11? [Да] е) Имеются ли помидоры в багажнике автомобиля Джона? [Да] 10.9. Представьте приведенные ниже семь высказываний, используя и дополняя средства представления, описанные в этой главе. а) Вода находится в жидком состоянии при температуре от 0 до 100 градусов Цельсия. б) Вода кипит при температуре 100 градусов Цельсия. в) Вода в бутылке Джона для воды замерзла. г) Минеральная вода “Перрье” — это тоже вода. д) В бутылке Джона для воды находится минеральная вода “Перрье”. е) Все жидкости имеют определенную температуру замерзания. ж) Литр воды весит больше, чем литр алкоголя. 10.10. Запишите определения для следующих предикатов. а) ЕхкаизНуеРаПОесотрозШоп б) Раг1РагШюп в) Раг1ю1зеО13]о1п1 Эти определения должны быть аналогичны определениям для предикатов Ехкаиз- йгеОесотромйоп, РагШюп и Рм/в/иГ. Является ли, по вашему мнению, общезна- чимым выражение РанРанШопЦз, ВипскОДз)}! Если да, докажите его общезначи- мость; в противном случае приведите контрпример и определите достаточные усло- вия, при которых это выражение становится истинным. 10.11. Альтернативная схема представления мер предусматривает применение функ- ции единиц к абстрактному объекту длины. В такой схеме следует писать 1пскез(Ьеп0к(Ь^ = 1,5. Как выглядит эта схема по сравнению с той, которая описана в данной главе? Заслуживают внимания такие вопросы, как аксиомы преобразования, имена для абстрактных количеств (такие, как “50 долларов”) и сравнения абстракт- ных мер в различных единицах (например, “50 дюймов больше 50 сантиметров”). 10.12. Запишите множество высказываний, позволяющих рассчитать цену отдельного по- мидора (или другого объекта), если указана цена за килограмм. Дополните эту тео- рию, чтобы иметь возможность рассчитать цену пакета помидоров.
10.13. Введите правила, позволяющие расширить определение предиката Млие($, с) таким образом, чтобы строка, такая как “портативный компьютер”, отвечала названиям со- ответствующих категорий из множества магазинов. Попробуйте сделать свое опре- деление общим. Проверьте это, посетив сайты десяти интернет-магазинов и уточ- нив названия категорий, которые они дают для трех разных категорий. Например, для категории ноутбуков мы нашли названия “Ноутбуки”, “Лаптопы”, “Переносные компьютеры”, “Ноутбук”, “Лаптопы и ноутбуки” и “Переносные ПК”. Одни из них могут быть представлены явными фактами Ыате, тогда как другие могут быть пред- ставлены высказываниями для обработки множественного числа, оформления пере- числений и т.д. 10.14. Напишите аксиомы исчисления событий, необходимые для описания действий в мире вампуса. 10.15. Определите отношение алгебры интервалов, которое выполняется между каждой парой следующих реальных событий. - ЬК: жизнь президента Кеннеди. - 1К: детство президента Кеннеди. - РК: президентство президента Кеннеди. - Ы: жизнь президента Джонсона. - РР. президентство президента Джонсона. - ЬО: жизнь президента Обамы. 10.16. В данном упражнении рассматривается проблема планирования маршрута для ро- бота, который должен добраться из одного города в другой. Основным действи- ем, предпринимаемым роботом, является действие 6о(х,у), которое позволяет ему добраться из городах в городу, если между ними есть прямой путь. Преди- кат Коас1(х9у) принимает истинное значение тогда и только тогда, когда есть прямой путь из городах в городу. Если он существует, то предикат О18(апсе(х,у) определяет длину этого пути (см. карту на рис. 3.1). Робот начинает движение из Арада и дол- жен достичь Бухареста. а) Запишите подходящее логическое описание начальной ситуации для робота. б) Запишите подходящий логический запрос, решения которого могут служить описаниями возможных путей к цели. в) Запишите высказывание, описывающее действие Со. г) Теперь предположим, что в пути робот расходует топливо в количестве 0,02 гал- лона на милю. Робот начинает движение с 20-ю галлонами топлива. Дополните разработанное вами представление с учетом этих соображений. д) Теперь предположим, что в некоторых городах есть автозаправочные станции, на которых робот может заполнить топливный бак. Расширьте свое представление и запишите все правила, необходимые для описания АЗС, включая действие РП- 1ир (заправка). 10.17. Исследуйте способы дополнения исчисления событий, позволяющие учитывать в нем одновременные события. Можно ли избежать комбинаторного взрыва количе- ства аксиом? 10.18. Разработайте представление для курсов обмена валют, допускающее ежесуточные колебания курсов. 10.19. Определите предикат Ргхес1, где Р1хес1{ЬосаИоп(хУ) означает, что местонахождение объектах постоянно во времени.
10.20. Опишите событие обмена некоторого объекта на какой-то другой. Опишите покуп- ку как разновидность обмена, в которой одним из объектов, участвующих в обмене, является некоторая денежная сумма. 10.21. В двух предыдущих упражнениях подразумевается использование довольно прими- тивного понятия владения. Например, покупатель начинает с владения денежными купюрами. Такое описание процесса покупки становится неадекватным, если, на- пример, деньги покупателя хранятся в банке, поскольку у него на руках больше нет какой-то конкретной совокупности денежных купюр, которыми он владеет. Силуа- ция становится еще более сложной, если учесть возможность займа, сдачи в арен- ду, взятия в аренду и передачи в залог. Исследуйте различные обыденные и юриди- ческие понятия владения и предложите схему, с помощью которой они могут быть представлены формально. 10.22. Рассмотрим игру, в которую играют с колодой всего из 8 карт: 4 тузов и 4 королей. Трое игроков, Алиса, Боб и Карл, получают по две карты. Не глядя на них, они по- мещают эти карты себе на лоб, чтобы другие игроки могли их видеть. Затем игроки по очереди либо объявляют, что знают, какие карты у них на лбу, и тем самым вы- игрывают игру, либо говорят: “Я не знаю”. Все знают, что игроки правдивы и пра- вильно рассуждают на основании своих убеждений. а) Игра 1. Алиса и Боб сказали: “Я не знаю”. Карл видит, что у Алисы два туза (А-А), а у Боба два короля (К-К). Что должен сказать Карл? (Подсказка. Рассмотрите все три возможных для Карла случая: А-А, К-К, А-К.) б) Опишите каждый этап Игры 7, используя обозначения модальной логики. в) Игра 2. Карл, Алиса и Боб на первом ходу сказали: “Я не знаю”. Алиса держит К-К, а Боб держит А-К. Что должен сказать Карл на своем втором ходу? г) Игра 3. Алиса, Карл и Боб на первом ходу говорят: “Я не знаю”, как и Алиса на своем втором ходу. Алиса и Боб оба держат А-К. Что должен сказать Карл? д) Докажите, что в этой игре всегда будет победитель. 10.23. Предположение о логическом всеведении, обсуждавшееся в разделе 10.4, конечно же, неверно ни для каких реальных рассуждений. Скорее, это идеализация процес- са рассуждения, которая может быть более или менее приемлемой в зависимости от приложений. Обсудите обоснованность такого предположения для каждого из сле- дующих случаев использования рассуждений о знаниях. а) Частичное знание в играх с противником, например в карточных играх. Здесь один игрок должен рассуждать о том, что его оппонент знает о состоянии игры. б) Шахматы с часами. Здесь игрок может рассуждать об ограничениях в отношении способности своего оппонента или его собственной способности найти лучший ход за оставшееся время. Например, если у игрока А осталось намного больше времени, чем у игрока В, то игрок А иногда делает ход, значительно усложня- ющий ситуацию в надежде получить преимущество, поскольку у него имеется больше времени для выработки правильной стратегии. в) Торговый агент, действующий в такой среде, где есть затраты на сбор информа- ции. г) Рассуждения о криптографии с открытым ключом, основанной на неразрешимо- сти определенных вычислительных задач. 10.24. Предположение о логическом всеведении, обсуждавшееся в разделе 10.4, конечно же, неверно ни для каких реальных рассуждений. Скорее, это идеализация процесса
рассуждения, которая может быть более или менее приемлемой в зависимости от приложений. Обсудите обоснованность такого предположения для каждого из сле- дующих случаев использования рассуждений о знаниях. а) Шахматы с часами. Здесь игрок может рассуждать об ограничениях в отношении способности своего оппонента или его собственной способности найти лучший ход за оставшееся время. Например, если у игрока А осталось намного больше времени, чем у игрока В, то игрок А иногда делает ход, значительно усложня- ющий ситуацию в надежде получить преимущество, поскольку у него имеется больше времени для выработки правильной стратегии. б) Торговый агент, действующий в такой среде, где есть затраты на сбор информа- ции. в) Автоматизированная программа обучения математике, рассуждающая о том, что студенты понимают. г) Рассуждения о криптографии с открытым ключом, основанной на неразрешимо- сти определенных вычислительных задач. 10.25. Переведите приведенное ниже выражение описательной логики (см. раздел 10.5.2) на язык логики первого порядка и прокомментируйте полученный результат. Ап(1(Мап, А1Ьеаз1(3. Зои), А1Мох1(2, Ъаи$к1ег), А11(8оп, Апс1(ипетр1оуе(1, МагпесЪ АЩЗроизе. Пос1ог))\ А11(Раи^к1ег, АгкЦРго/еззог, РИ1з(Пераг1тепЦ Ркузгсз, Ма/к)))) 10.26. Напомним, что информация о наследовании в семантических сетях может быть логически представлена подходящими импликативными высказываниями. В этом упражнении исследуется эффективность использования таких предложений для на- следования. а) Рассмотрим информацию в каталоге подержанных автомобилей, таком как “Си- няя книга” Келли, — например, о том, что фургоны Оос1§е 1973 года (или, воз- можно, еще какого-то) стоят 575 долларов. Предположим, что вся эта инфор- мация (для 11000 моделей) закодирована в виде логических высказываний, как предлагается в этой главе. Запишите три таких высказывания, в том числе для фургонов Оск1§е 1973 года. Как бы вы использовали эти высказывания для опре- деления стоимости конкретного автомобиля при наличии системы доказатель- ства теорем с обратным логическим выводом, подобной системе Рго1о§? б) Сравните временную эффективность метода обратного логического вывода для решения данной задачи с методом наследования, используемым в семантических сетях. в) Объясните, как прямой логический вывод позволяет логической системе эффек- тивно решить ту же проблему в предположении, что база знаний содержит толь- ко 11000 высказываний о ценах. г) Опишите ситуацию, в которой ни прямой, ни обратный логический вывод по вы- сказываниям не позволяет эффективно обработать запрос о цене отдельного ав- томобиля. д) Можете ли вы предложить решение, позволяющее во всех случаях эффективно решать этот тип запросов в логических системах? (Подсказка. Помните, что две машины одного года и модели имеют одинаковую цену.) 10.27. Можно предположить, что в семантических сетях синтаксическое различие меж- ду ссылками без пометок и ссылками с пометками в прямоугольниках с одиночным
контуром не является необходимым, поскольку ссылки в прямоугольниках с одиноч- ным контуром всегда привязаны к категориям. Алгоритм наследования может про- сто предполагать, что ссылка без пометки, прикрепленная к категории, предназна- чена для применения ко всем членам этой категории. Покажите, что этот аргумент ошибочен, и приведите примеры ошибок, которые в этом случае могут возникнуть. 10.28. Одна из составляющих процесса совершения покупок, которая не рассматривалась в этой главе, касается проверки совместимости товаров. Например, если клиент за- казывает цифровую фотокамеру, какие аксессуары — аккумуляторы, карты памяти или чехлы — будут совместимы с этой камерой? Разработайте базу знаний, позво- ляющую принимать решение о совместимости среди множества товаров и предла- гаемых замен или дополнительных товаров, если покупатель сделал выбор, кото- рый является несовместимым. База знаний должна работать по меньшей мере с од- ной линией товаров, и ее должно быть достаточно просто расширить для поддерж- ки других линий. 10.29. Полное решение проблемы неточных соответствий описаниям, сформулированным покупателем при совершении покупок, является очень сложным и требует примене- ния полного спектра средств обработки естественного языка и методов выборки ин- формации (см. главу 23). Одним из небольших шагов в этом направлении является предоставление пользователю возможности задавать минимальные и максимальные значения для различных атрибутов. Допустим, что покупатель должен использовать следующую грамматику при описании товара. Эезспрйоп —► Са1е%огу [Соппесюг МоЛфег]* Соппесюг "мпШ" | ”апд” | ”,” МосНрег —► АипЬше | АипЫйе Ор Уа1ие Ор _> । ”>” । ”<” Здесь Са1е%огу обозначает категорию товара, АипЪше — это некоторая характери- стика, такая как “СРП” или “цена”, а Уа1ие — желаемое значение этой характеристи- ки. Поэтому запрос “компьютер с частотой процессора по меньшей мере 2,5 ГГц по цене меньше $500” должен быть выражен так: “компьютер с СРП > 2,5 ГГц и ценой < 500”. Реализуйте торгового агента, который принимает описания на этом языке. 10.30. В описании процесса осуществления покупок пока был упущен наиболее важный этап — фактическая покупка товара. Предоставьте формальное логическое описа- ние этапа покупки с использованием исчисления событий. Иначе говоря, определи- те последовательность событий, которая происходит, когда покупатель приобретает товар по кредитной карточке, а затем в конечном итоге получает выставленный ему счет и ему вручается товар.
ГЛАВА 11 Автоматизированное планирование В этой главе показано, как агент может воспользоваться информацией о структуре задачи для эффективного создания сложных планов действий. Планирование последовательности действий — это ключевое требование к интеллектуальному агенту. В разделе 11.1 рассматривается общий формальный язык описания данных в развернутом представлении для задач планирования, по- зволяющий естественно и лаконично представить широкое разнообразие проблем- ных областей, эффективно масштабировать решения до самых крупных проблем и не требующих разработки специальных эвристик для новых областей примене- ния. В разделе 11.4 этот язык представления расширяется для поддержки иерар- хических действий, что обеспечивает возможность успешно решать более слож- ные задачи. Эффективные алгоритмы планирования обсуждаются в разделе 11.2, а эвристики для них рассматриваются в разделе 11.3. В разделе 11.5 полученные результаты распространяются на частично наблюдаемые и недетерминированные проблемные области, а в разделе 11.6 язык представления вновь расширяется с целью охвата задач составления планов и графиков их выполнения при наличии ограничений на ресурсы. Это приближает нас к программам-планировщикам, ис- пользуемым в реальном мире для разработки планов и расписаний действий кос- мических аппаратов, работы промышленных предприятий и проведения военных операций. В разделе 11.7 обсуждается эффективность всех этих методов. 11.1. Определение классической задачи планирования________________________________ ► Классическое планирование определяется как задача поиска последо- вательности действий для достижения поставленной цели в дискретной, де- терминированной, статичной (изменения в ней происходят только в результа- те действий агента), полностью наблюдаемой среде. Мы уже рассматривали два подхода к решению этой задачи: агент, решающий задачи в главе 3, и гибридный
пропозициональный логический агент в главе 7. В обоих случаях имеют место два ограничения. Во-первых, оба эти агента требуют использования специальной эв- ристики для каждого нового домена: эвристической функции оценки для поиска и написания специального программного кода для гибридного агента в мире вампу- са. Во-вторых, в обоих случаях требуется явное представление пространства со- стояний, размеры которого возрастают экспоненциально. Например, в пропозици- ональной логической модели мира вампуса аксиома перемещения на шаг вперед должна быть повторена для всех четырех возможных ориентаций агента, Т вре- менных этапов и и2 его текущих местоположений. С учетом этих ограничений исследователи в области планирования разработа- ли синтаксис для ► развернутого представления данных в виде семейства язы- ков, получившего название ► РВВЬ (Р1аппт% Оотат ОеЦтНоп Ьап%иа%е — язык определения проблемной области планирования (Халлаб и др. [846], 1998)), позво- ляющий представить все 47л2 действий в виде единственной схемы действий и не требующих использования знаний, специфических для каждой проблемной обла- сти. Базовый вариант РООЬ позволяет работать с проблемными областями клас- сического планирования, а расширенные варианты могут применяться для непре- рывных, частично наблюдаемых, конкурентных и мультиагентных проблемных областей. Синтаксис языков РООЬ строится на основе синтаксиса языка Ы$р, но здесь мы будем переводить его в такую форму, которая соответствует системе обо- значений, принятой в данной книге. В языке РООЬ ► состояние представляется как конъюнкция базовых атомар- ных флюент. Напомним, что характеристика “базовый” означает отсутствие пере- менных, термин “флюента” определяет аспект мира, меняющийся со временем, а сочетание “базовый атомарный” означает, что имеется единственный предикат и если есть какие-либо аргументы, то они должны быть константами. Например, вы- ражение Роог А Упкпо^п может представлять состояние агента-неудачника (бед- ного и безвестного), а выражение А1(Тгискх, Ме1Ьоигпё) А АКТгиск^, 8ус1пеу) может представлять состояние в задаче доставки пакета. В языке РООЬ используется се- мантика базы данных: допущение о замкнутости мира означает, что любые флю- енты, которые не упоминаются в базе знаний, являются ложными, а допущение об уникальности имен означает, что объекты Тгиск1 и Тгиск2 являются различными. Следующие флюенты являются недопустимыми в некотором состоянии: А:(х, у) (поскольку здесь присутствуют переменные), -'Роог (поскольку это отрицание) и А1(8роихе(АН), 8ус1пеу) (поскольку здесь присутствует символ функции 8рои$е). Ког- да это удобно, конъюнкцию флюент можно рассматривать как множество флюент. ► Схема действий представляет семейство базовых действий. Например, вот схема действий для представления перелета самолета из одного места в другое. Ас11оп(Е1у(р,/гот, 1о), РКЕСОЫО: А((р,^гот) А Р1апе(р) А А1грог((^от) А А1грог1(1о) Берест: ~'А1(р,^от) /\ АЦр, 1д))
Эта схема состоит из имени действия, списка всех переменных, используемых в схеме, ► предусловия и ►эффекта. И предусловие, и эффект представлены конъюнкцией литералов (положительных или отрицательных атомарных выска- зываний). Далее достаточно выбрать нужные константы для конкретизации пере- менных, и в результате будет получено базовое (не включающее переменных) дей- ствие: АсНопЦ^у^Р}, ЯРО, ЛРК), РКЕСОЫО: А((РХ, ЯРО) Л Р1апе(Рх) Л А1гроП(ЯРО) Л АнрогЦ^РК) Берест: ->АЦРх, ЯРО) Л АЦР» ЖК)) (здесь ЯРО — Международный аэропорт Сан-Франциско, а.ЛРК — Международ- ный аэропорт имени Джона Кеннеди в Нью-Йорке; используются обозначения Международной ассоциации авиатранспорта 1АТА для кодировки аэропортов). Базовое действие будет применимо в состоянии $, если я влечет за собой предусловие, т.е. если каждый положительный литерал предусловия присутствует в я, а каждый отрицательный литерал отсутствует в нем. Результат выполнения применимого действия а в состоянии я определяется как состояние я', представленное множеством флюент, полученным из начально- го их множества для состояния я после удаления всех флюент, присутствующих в виде отрицательных литералов в выражении, определяющем эффект действия (то, что мы называем ►списком удаления или ВеЦя)), и добавления флюент, присут- ствующих в виде положительных литералов в выражении эффекта действия (то, что мы называем ►списком добавления или Аоо(а)): КЕ811ЕТ(Я, а) = (я - Эеь(<я)) О Аоэ(а). (11.1) Например, для действия Р1у(Рг, ЯРО, №К) следует удалить флюенту А1(Р{, ЯРО) и добавить флюенту А1(РХ, /РК). Множество схем действий используется для описания проблемных областей планирования. Конкретная задача в этой проблемной области определяется добав- лением исходного состояния и цели. Начальное состояние представляется конъ- юнкцией базовых флюент (вводится с помощью ключевого слова 1пИ, как показано на рис. 11.1). Как и для всех прочих состояний, для него используется допущение о замкнутости мира, а это означает, что любые атомарные высказывания, которые в нем не упомянуты, являются ложными. Цель (вводится с помощью ключевого слова ОоаГ) представляется аналогично предусловию: в виде конъюнкции литера- лов (положительных или отрицательных), которые могут содержать переменные. Например, цель А1(С\, ЯРО) Л -<А1(С2, ЯРО) Л А((р, ЯРО) ссылается на любое со- стояние, в котором груз С, находится в аэропорту ЯРО, тогда как груз С2 — нет, и помимо этого, в аэропорту ЯРО есть какой-либо самолет.
11.1.1 . Пример проблемной области: грузовые авиаперевозки На рис. 11.1 приведено описание задачи выполнения грузовых авиаперевозок, включающей погрузку и разгрузку грузов, а также их перевозку самолетами из одного места в другое. Эту задачу можно определить с помощью трех действий: ЬоасЦ РЫоси! и Р1у. Эти действия влияют на значения двух предикатов: предикат 1п(с,р) означает, что груз с находится в самолете р, а предикат А1(х, а) означает, что объект х (самолет или груз) находится в аэропорту а. Обратите внимание: чтобы предикат А1 воспринимался должным образом, необходимо сделать некоторые до- полнительные уточнения. Когда самолет летит из одного аэропорта в другой, весь груз внутри самолета перемещается вместе с ним. В логике первого порядка было бы достаточно просто применить соответствующий квантор ко всем объектам, на- ходящимся внутри самолета. Но в языке РООЬ нет квантора всеобщности, поэто- му нужно найти другое решение. Используемый подход заключается в утвержде- нии, что предикат А1 больше не указывает на местонахождение некоторого груза, если предикат 1п определяет, что этот груз находится в самолете. Этот груз вновь попадет в область воздействия предиката Я/ только после его разгрузки в аэропор- ту прибытия. Поэтому предикат А1 фактически означает “доступен для использо- вания в указанном местонахождении”. Ниже приведен план, являющийся решени- ем данной задачи. [ЬоасЦС}. Рх, 8РО), Р1у(Рх, 8РО, ШоскКС,, Р}, Ьоа%С2, Р2, Р1у(Р2, 8РО), Шоас1(С2, Р2,8РО)] 1пИ(А1(Сь 8РО) Л А1(С2, №К) Л А1(Рь 8РО) /\ А1(Р2, Л Саг%о(С\) Л Саг%о(С2) Л Р1апе(Рх) Л Р1апе(РА Л АирогЩРК) Л А1грог1(8РОУ) Ооа1(А1(С\, ЗРК) Л А1(СЪ 8РО)) Ас11оп(Ьоас1(с, р, а), РЯЕСОКО: А1(с, а) Л А?(р, а) Л Саг^о(с) Л Р1апе(р) Л А1грог!(а) ЕГГЕСТ: -1 А1(с, а) Л 1п(с.р)) АсНоп((1}п1оа(1(с,р, а), РЯЕСОКО: 1п(с,р) Л А1(р, а) Л Саг^о(с) Л Р1апе(р) Л А1грог1(а) ЕГГЕСТ: А? (с, а) Л -17л(с,р)) АсНоп((Р1у(р,/гот, 1о), РКЕСОИО: А1(р,]гот) Л Р1апе(р) Л АггроП^от) Л Аггрог1(1о) ЕГГЕСТ: -л А1(р,^гот) Л А1(р, Го)) Рис. 11.1. Описание на языке РООЬ задачи планирования грузовых авиаперевозок
11.1.2 . Пример проблемной области: задача замены колеса Рассмотрим задачу замены колеса с проколотой шиной (рис. 11.2). Цель состо- ит в том, чтобы исправное запасное колесо (8раге) было правильно смонтирова- но на оси автомобиля (Ах1е), исходя из того, что в начальном состоянии на этой оси находится колесо с проколотой шиной (Р1аГ), а исправное запасное колесо ле- жит в багажнике (Тгипк). Чтобы упростить эту задачу, рассмотрим ее абстрактную версию, в которой не учитываются намертво прикипевшие крепежные гайки или другие подобные усложнения. В задаче можно выделить только четыре действия: извлечение запасного колеса из багажника, снятие колеса с проколотой шиной с оси, установка на ось запасного колеса и оставление автомобиля без присмотра на ночь. Предполагается, что автомобиль находится в районе с неблагоприятной кри- миногенной обстановкой, поэтому результатом его пребывания ночью на улице бу- дет исчезновение обоих колес. Решение этой задачи можно записать, как [Кетоуе(Р1аЦ Ах1е), Кетоуе(8раге, Тгипк), РиЮп(8раге, Ах1ё)]. 1пИ(Т1ге(Р1аГ) Л Пге(8рагё) Л А1(Р1а1, Ах1ё) Л А! (Враге, Тгипк)) Ооа1(А1(8раге, Ах1е)) АсНоп(Кетоуе(оЬ), 1ос), Ркесоио: А1(оЬ], 1ос) Еррест: ~'А1(рЬ], 1ос) Л Аг(оЗ), ОгоипсГ)) АсНоп(Ри!Оп(19 Ах1ё), Ркесоио: 77ге((Г) Л ОгоипсГ)К^А1(Р1а1, Ах1ё) /\^А1(8раге,Ах1е) Еррест: “• ОгоипсГ) Л А1(1, Ах1ё)) АсИоп (ЬеауеОуегт^Ы, Ркесоио: Еррест: ^А1 (Враге, ОгоипсГ) /\^ А! (Враге, Ах1ё) /\^А1 (Враге, Тгипк) /\^А1(Р1а1, ОгоипсГ) /\-'А1(Р1а1,Ах1ё) /\~'А1(Р1а1, Тгипк)) Рис. 11.2. Простая задача замены проколотого колеса запасным 11.1.3 . Пример проблемной области: мир блоков Одной из наиболее широко известных проблемных областей задач планирова- ния является так называемый >мир блоков. Эта проблемная область состоит из множества блоков кубической формы, находящихся на столе.1 Блоки можно укла- дывать в столбик, но непосредственно на верхней поверхности одного блока мо- жет быть размещен только один блок. Робот может брать манипулятором блок и 1 Мир блоков, используемый в исследованиях задач планирования, гораздо проще по сравнению с версией 8НКОИ1, представленной в разделе 1.3.2.
перемещать его в другую позицию — либо на стол, либо на верхнюю поверхность другого блока. Манипулятор может поднять только один блок, поэтому невозмож- но взять блок, на котором стоит еще один блок. Типичная цель может состоять в том, чтобы поставить блок А на В, а блок В — на С (рис. 11.3). Рис. 11.3. Пример задачи в проблемной области мира блоков. (Определение этой за- дачи представлено на рис. 11.4.) Будем использовать предикат Оп(Ь9 х) для указания на то, что блок Ъ находится на блоке х, где х — либо другой блок, либо стол. Перемещение блока Ъ с верхней поверхности блоках на верхнюю поверхность блока у будет представлено функци- ей Мохе(Ъ9 х,у). Напомним, что одним из предусловий перемещения блока Ъ явля- ется то, что на нем не стоит какой-то другой блок. В логике первого порядка это требование может быть представлено с помощью выражения -«Я х Оп(х9 Ь) или — альтернативный вариант — выражения V х -^Оп(х9 Ь). Однако базовый вариант языка РЭВЬ не допускает использования кванторов, поэтому потребуется ввести особый предикат С1еаг[х\ имеющий значение 1гие9 если на блоке х ничего нет (его верхняя поверхность свободна). Полное определение этой задачи приведено на рис. 11.4. Действие Мохе позволяет переместить блок Ь с блока х на блоку, если свобод- ны верхние поверхности и блока Ь9 и блока у. После выполнения этого действия верхняя поверхность блоках будет свободна, а блока у — нет. Простейшим вари- антом схемы действия Мохе будет следующая: Асйоп(Л/оуе(/>, х, у), Ркесоып: Оп(Ь9 х) Л С1еаг{Б) /\ С1еаг(у)9 Еррест: Оп(Ь9 у) Л С1еаг(х) Л -^Оп(Ь9 х) Л ^С1еаг(у)). К сожалению, эта схема не определяет предикат С1еаг должным образом, если блок х или блоку находится на столе. Если х имеет значение ТаЫе9 то для этого действия эффектом будет С1еаг(ТаЫе)9 но поверхность стола вовсе не должна стать полностью свободной, а если значение ТаЫе имеет переменная у, то действие
будет иметь предусловие С1еаг(ТаЫе), но поверхность всего стола не обязана быть свободной для того, чтобы на нее можно было поместить блок. Для исправления этой ситуации необходимо внести два изменения. Во-первых, введем еще одно действие перемещения блока Ь с блока х на стол: Ас1юп(МоуеТоТаЬ1е(Ь, х), Ркесоко: Оп(Ь, х) Л С1еаг(Ь), Еррест: Оп(Ь, ТаЫе) Л С1еаг(х) Л -^Оп(Ь, х)). 1пИ(Оп(А, ТаЫе) Л Оп{В, ТаЫе) Л Оп(С, А) Л В1оск(А) Л В1оск(В) Л В1оск(С) Л С1еаг(В) Л С1еаг(С) Л С1еаг(ТаЫе)) Соа1(Оп(А, В) /\ Оп(В, С)) АсНоп(Моуе(Ь, х, у), РкЕСОМО: Оп(Ь,х) Л С1еаг(Ь) Л С1еаг(у) Л В1оск(Ь) Л В1оск(у)/\ (Ь* х) Л(6*у) Л(х*у), Еррест: Оп(Ь,у) Л С1еаг(х) Г\^Оп(Ь,х) л.^С1еаг(у)) АсИоп(МоуеТоТаЫе(Ь, х), РКЕСОМО: Оп(Ь,х) Л С1еаг(Ь) Л В1оск(Ь) Л В1оск(х), Еррест: Оп(Ь, ТаЫе) /\ С1еаг(х) /\^Оп(Ь,х)) Рис. 11.4. Определение задачи планирования в мире блоков: построение столбика из трех блоков. Возможным решением является последовательность действий [Моуе- ТоТаЫе(С, А), Моуе(В, ТаЫе, С), Моуе(А, ТаЫе, В)] Во-вторых, примем интерпретацию предиката С1еаг(х) как означающую, что “на х имеется достаточно свободного места, чтобы поместился один блок”. При этой интерпретации предикат С1еаг(ГаЫе) всегда будет истинным. Единственная проблема состоит в том, что ничто не будет препятствовать планировщику исполь- зовать действие Мохе(Ь, х, ТаЫе) вместо действия Мо\еТоТаЫе(Ь, х). Можно сми- риться с этой проблемой (она приводит к созданию пространства поиска с разме- рами больше необходимого, но не становится причиной получения неправильных ответов) или ввести предикат В1оск и добавить в предусловие действия Моуе вы- ражение В1оск(Ь) Л В1оск(у), как показано на рис. 11.4. 11.2. Алгоритмы классического планирования Рассмотренное выше описание задачи планирования предлагает очевидный способ поиска в пространстве состояний в направлении от начального состояния к искомой цели. Декларативное представление схем действия дает также важное преимущество — возможность ведения поиска в обратном направлении, от цели к начальному состоянию (варианты ведения поиска в прямом и обратном направ- лениях сравниваются на рис. 11.5). Третья возможность заключается в переводе
описания задачи в множество логических высказываний, к которым затем можно будет применить алгоритм логического вывода, чтобы найти решение. Рис. 11.5. Два подхода к организации поиска плана, а) Прямой (прогрессивный) поиск в пространстве базовых состояний, начинающийся с начального состояния, в котором действия задачи используются для прямого поиска члена группы целевых состояний, б) Обратный (регрессивный) поиск по описаниям состояний, начинаю- щийся с цели и использующий инверсии действий для обратного поиска начально- го состояния 11.2.1. Прямой поиск плана в пространстве состояний Можно решать задачи планирования, воспользовавшись любым из эвристиче- ских алгоритмов поиска, обсуждавшихся в главах 3 и 4. Состояниями в этом по- исковом пространстве состояний являются базовые состояния, в которых каждая флюента является либо истинной, либо ложной. Цель — это состояние, в котором присутствуют все положительные флюенты целевого состояния задачи, а все его отрицательные флюенты отсутствуют. Применимые действия в некотором состо- янии Ас11оп$(8) — это базовые конкретизации схем действий, т.е. действия, в кото- рых все переменные заменены константами. Чтобы выявить применимые действия, текущее состояние унифицируется с предусловиями каждой схемы действий. Для каждой унификации, которая дает удовлетворительные результаты при подстановке, эта подстановка применяется к
схеме действия для получения базового действия без переменных. (Схемы дей- ствий требуют, чтобы любая переменная, упоминаемая в эффекте, присутствова- ла и в предпосылке, а это гарантирует нам, что при подстановке никаких перемен- ных не останется.) Каждая схема может унифицироваться несколькими способами. В примере с проколотой шиной (раздел 11.1.2), действие Кетох’е имеет предусловие АЦоЬ], 1ос), которое можно сопоставить с начальным состоянием двумя способами, что приво- дит к двум подстановкам: {оЬ]/Е1а1,1осГАх1е} и {оЬ]/8раге, 1ос/Тгипк}, — при при- менении этих подстановок получаем два базовых действия. Если в предусловии действия есть несколько литералов, то каждый из них потенциально может быть сопоставлен с текущим состоянием несколькими способами. На первый взгляд может показаться, что для многих задач пространство состо- яний может оказаться слишком большим. Рассмотрим задачу воздушных грузовых перевозок с 10 аэропортами, где в каждом аэропорту исходно имеется 5 самолетов и 20 единиц груза. Цель состоит в том, чтобы переместить все грузы из аэропор- та Л в аэропорт В. Существует решение этой задачи, включающее 41 этап: погру- зить 20 единиц груза в один из самолетов в аэропорту А, выполнить на нем пере- лет в аэропорт В и выгрузить эти 20 единиц груза. Однако формальный поиск этого очевидного решения может оказаться затрудни- тельным, поскольку средний коэффициент ветвления является огромным: каждый из этих 50 самолетов может полететь в 9 других аэропортов, а каждая из 200 единиц груза может быть либо выгружена (если она загружена), либо загружена в любой са- молет в том аэропорту, где она находится (если она выгружена). Поэтому в любом состоянии возможно как минимум 450 действий (когда все единицы груза находятся в аэропорту, где нет ни одного самолета) и как максимум 10450 действий (когда все грузы и все самолеты находятся в одном аэропорту). В среднем можно принять, что для каждого состояния существует около 2000 возможных действий, поэтому граф поиска до глубины в 41 этап будет иметь примерно 200041 узлов. Очевидно, что без точной эвристики прямой поиск решения даже для этого от- носительно небольшого экземпляра задачи является делом, абсолютно безнадеж- ным. Хотя многие реальные приложения по планированию полагались исключи- тельно на эвристики, специфические для своей проблемной области, выяснилось (как будет показано в разделе 11.3), что мощные эвристики, независимые от про- блемной области задачи, могут быть выведены автоматически; а это делает ис- пользование прямого поиска вполне допустимым. 11.2.2. Обратный поиск плана в пространстве состояний При обратном поиске (его также называют ► регрессивным поиском) от- правной точкой является целевое состояние и действия применяются в обрат- ном направлении, пока не будет найдена последовательность этапов, приводя- щая к начальному состоянию. На каждом этапе рассматриваются ► релевантные
действия (в отличие от прямого поиска, где рассматриваются применимые дей- ствия), что приводит к значительному уменьшению коэффициента ветвления, осо- бенно в проблемных областях с множеством возможных действий. Релевантными являются такие действия, эффект которых унифицирует один из литералов цели и при этом не приводит к отрицанию любого из ее элементов. На- пример, при цели ->Роог Л Ратоиз действие с единственным эффектом Ратоиз будет релевантным, тогда как действие с эффектом Роог Л Ратоиз не будет рас- сматриваться как релевантное: даже хотя это действие можно использовать в неко- торой иной точке плана (чтобы получить литерал Ратоиз), его нельзя применить в данной точке плана, поскольку в этом случае в конечном состоянии появится ли- терал Роог. Что понимается под применением действия в обратном направлении? При за- данных цели % и действии а ► регрессия от# через а дает нам состояние #7, опи- сание положительных и отрицательных литералов которого будет иметь такой вид: РОЗ!#7) = (РО8(#) - АОГ)(я)) О РО8(Ргесопс1(а)), №б(^) = (№б(#) - ОЕЦа)) О №с(Ргесоп(](а)). То есть предусловия должны были быть выполнены ранее, иначе действие не могло бы быть выполнено, но положительные/отрицательные литералы, которые были добавлены/удалены действием, не должны были быть истинными ранее. Эти уравнения, безусловно, справедливы для базовых литералов, но при на- личии в # и а переменных потребуется некоторая осторожность. Например, пред- положим, что целью является доставка определенной единицы груза в 8РО: АЦС2, 8РО). Схема действия Уп1оас1 имеет эффект А1(с, а). Если унифицировать его с целью, то получим подстановку {с/С2, а!8РО}. Применение этой подстанов- ки к схеме дает новую схему, отражающую идею использования любого самолета, находящегося в 8ЕО: АсНоп(1Шоа(Я(С2, р1,8РО), РяЕСОКВ: /л(С2, р7) А АЦр1,8РО) А Саг%о(С2) А Р1апе(р') А А1гроП(8РО), ЕЕГЕСТ:Л/(С2,8РО) А -<1п(С2, р')). Здесь переменная р заменена новой переменной с именем р7 — это результат стан- дартизации отличия имен переменных, позволяющей исключить возможность конфликта имен между различными переменными, которым случайно было при- своено одинаковое имя (см. раздел 9.2.1). Определение достигнутого применени- ем регрессии состояния дает новую цель: р? = 1п(С2,р?) А АЦр', 8РО) Л Саг%о(С^) Л Р1апе(р^) А А1гроН(8РО). В качестве другого примера рассмотрим цель приобрести книгу с конкретным номером 18ВЫ: Ои'л(9780134610993). При наличии триллиона 13-значных номе- ров 18В1Ч и единственной схемы действия А = АсНоп(Виу(Г), РКЕСОЫО: 18ВЩ/), Еееест:Ои'л(0)
прямой поиск без использования эвристики начал бы работу с перечисления 10 млрд, базовых действий Виу. Но в случае обратного поиска можно унифици- ровать цель Ои'«(9780134610993) с эффектом Оит1(/') и получить подстановку 0= {/'/9780134610993}. Теперь можно выполнить регрессию цели действием 8иЬ- 5/(0, А) и получить определение состояния-преемника в виде/5ВУ(9780134610993). Это элемент начального состояния, так что найдено полное решение, достигнутое после рассмотрения единственного действия, а не триллиона. Более формально предположим, что имеется определение цели я, содержащее литерал цели & и схему действия А. Если схема А включает литерал эффекта е'г где ЦпУу^,, и где определено А'=8ИВ8Т(0, Л), и если в эффекте Л' нет отри- цания литерала, присутствующего в то А' является релевантным действием в от- ношении цели Для большинства проблемных областей при обратном поиске коэффициент ветвления будет ниже, чем при прямом поиске. Однако тот факт, что при обрат- ном поиске используются состояния с переменными, а не с базовыми состояния- ми, усложняет создание хорошей эвристики. Эго основная причина, по которой в большинстве современных систем предпочтение отдается прямому поиску. 11.2.3. Планирование как булева выполнимость В разделе 7.7.4 было показано, как некоторые хитроумные переписывания ак- сиом могут превратить задачу мира вампуса в задачу определения выполнимости высказывания в логике высказываний, которую затем можно будет решить с помо- щью специальной программы: эффективного решателя выполнимости БАТ. Реша- тели БАТ, такие как БАТРьам, работают посредством перевода описания задачи на языке РООЬ в пропозициональную форму. Подобный перевод включает в себя не- сколько этапов. • Пропозиционализация действий. Для каждой схемы действия формируются базовые высказывания посредством подстановки констант для каждой из пе- ременных. В результате вместо единственной схемы действия 1МосиКс,р, а) будут получены отдельные высказывания для этого действия, выполняемого с каждой комбинацией груза, самолета и аэропорта (здесь они записываются с помощью индексов), и для каждого момента времени (здесь они записыва- ются в виде верхних индексов). • Добавление аксиом исключения действия. Аксиомы исключения действия утверждают, что два некоторых действия не могут происходить в одно и то же время, например -АЯуРДРСМРК' Л Р1уРДРОВин\ • Добавление аксиом предусловий. Для каждого базового действия А1 добавля- ется аксиома А' => Рке(Я)', т.е. если действие выполняется в момент време- ни то должны быть выполнены заданные предусловия, например
Е1уРДЕО№Кх => АЦРХ, 8ЕО) Л Р1апе{Рх) Л Айрог/(8ЕО) Л Аг'грог((/ЕК). • Определение начального состояния. Вводится утверждение Е° для каждой флюенты Е, присутствующей в исходном состоянии, и утверждение ^Е° для каждой флюенты, не упоминаемой в начальном состоянии. • Пропозиционализация цели. Цель формулируется как дизъюнкция всех ее ба- зовых экземпляров, в которых переменные заменяются константами. Так, цель “Поместить блок А на другой блок”, Оп(А, х) Л В1оск(х) в мире блоков с объектами А, В и С, будет заменена высказыванием (Оп(А, А) Л В1оск(АУ) V (Оп(А, В) Л В1оск(В)) V (Оп(А, С) Л В1оск{С)). • Добавление аксиом определения преемника. Для каждой флюенты Е добав- ляется аксиома вида Е'+х <=> АсНопСаизезЕ' V (Е1 Л ~<АсНопСаизез1'1о1Е'), где АсНопСаизезЕ означает дизъюнкцию всех базовых действий, которые добавляют флюенту Е, аАс1юпСаизез1Чо1Е означает дизъюнкцию всех базо- вых действий, которые удаляют Е. Полученный в результате перевод, как правило, намного больше по размеру, чем оригинальное определение задачи на языке РООЬ, однако высокой эффектив- ности современных решателей 8АТ часто более чем достаточно, чтобы компенси- ровать это усложнение. 11.2.4. Другие классические подходы к планированию Три подхода, обсуждавшиеся выше, — не единственные из тех, которые были опробованы в 50-летней истории автоматизированного планирования. Некоторые другие кратко описываются в этом разделе. В подходе, получившем название 6гарЬр1ап, используется специализирован- ная структура данных, ► граф планирования, позволяющая наглядно предста- вить ограничения в отношении того, как действия связаны с их предпосылками и эффектами и какие вещи являются взаимно исключающими. ►Исчисление ситуаций представляет собой метод описания задач планирова- ния в логике первого порядка. В нем используются аксиомы определения преем- ника, как и в случае использования решателя ЗАТРьдм, но логика первого поряд- ка обеспечивает большую гибкость и использует более сжатые аксиомы. В целом этот подход внес значительный вклад в наше теоретическое понимание планиро- вания, но не оказал большого влияния на приложения, используемые на практи- ке, — возможно, потому, что программы поиска доказательств для логики первого порядка оказались не столь совершенными, как программы определения выполни- мости для логики высказываний.
Ограниченную задачу планирования (т.е. задачу о нахождении плана длиной к) можно закодировать как задачу удовлетворения ограничений (УО). Кодирование такой задачи схоже с кодированием задач 8АТ (раздел 11.2.3), но с одним важным упрощением: в каждый момент времени нам потребуется только одна переменная, АсИоп', областью определения которой является множество возможных действий. В этом случае уже не требуется иметь по одной переменной на каждое действие и нет необходимости в определении аксиом исключения действия. Все упомянутые выше подходы приводят к созданию полностью упорядочен- ных планов, состоящих из строго линейной последовательности действий. Но если в задаче авиаперевозок потребуется погрузить 30 единиц груза в один са- молет и 50 единиц груза — в другой, то будет практически бессмысленно уста- навливать некоторую линейную упорядоченность для действий погрузки 80 еди- ниц груза. Альтернативный подход называется ► планированием с частичным упоря- дочиванием. В этом случае план представляет собой граф, а не линейную по- следовательность: каждое действие представлено в этом графе узлом, а каждое предусловие этого действия представляет собой ребро, идущее от другого дей- ствия (или из начального состояния), указывая, что предшествующее действие устанавливает эту предпосылку. В результате мы получаем план с частичным упо- рядочиванием, указывающий, что действия Кетоуе(8раге, Тгипк) и Кетоуе{Р1аЦ Ах1ё) должны быть выполнены до действия РиЮп(8раге, Ах1е\ но без прямого указания на то, какое из двух действий Кетоуе следует выполнять первым. В ре- зультате поиск ведется в пространстве планов, а не состояний мира, посредством вставки действий для удовлетворения условий. В 1980- и 1990-х годах планирование с частичным упорядочиванием рассма- тривалось как наилучший способ решения задач планирования с помощью незави- симых подзадач. К 2000 году для планировщиков, работающих по методу прямого поиска, были разработаны отличные эвристики, позволявшие им эффективно об- наруживать независимые подзадачи, для чего, собственно, ранее и был разработан метод планирования с частичным упорядочиванием. Более того, новый решатель 8АТР1ЛМ позволил получить преимущество и от закона Мура: пропозиционали- зация, которая была безнадежно велика в 1980 году, теперь выглядела крошеч- ной, — просто потому, что у компьютеров теперь было в 10 000 раз больше па- мяти. В результате планировщики с частичным упорядочиванием уже не могли конкурировать с полностью автоматизированными решателями задач классическо- го планирования. Тем не менее метод планирования с частичным упорядочиванием остается важной частью в этой области. Для некоторых конкретных задач, таких как пла- нирование операций, лучшим выбором по-прежнему остается планирование с частичным упорядочиванием с использованием эвристик, специфических для кон- кретных проблемных областей. Многие из подобных систем используют библио- теки планов высокого уровня, как это описывается в разделе 11.4.
Планирование с частичным упорядочиванием также часто используется в про- блемных областях, в которых людям важно понимать разработанные планы. На- пример, оперативные планы для космических кораблей и марсоходов создаются специализированными планировщиками с частичным упорядочиванием, а затем проверяются операторами-людьми, прежде чем будут загружены в действующие космические аппараты для выполнения. Такой подход с уточнением планов упро- щает людям понимание того, как действуют алгоритмы планирования, и позволя- ет убедиться в правильности разработанных ими планов до того, как они будут вы- полнены. 11.3. Эвристики для задач планирования Ни прямой, ни обратный поиск не будет эффективен без хорошей эвристиче- ской функции. Вспомним из главы 3, что эвристическая функция Л($) оценивает расстояние от состояния 5 до целевого состояния и что, если мы можем вывести допустимую эвристику для этого расстояния — такую, которая не переоценива- ет, — появляется возможность использовать поиск А* для нахождения оптималь- ного решения. По определению нет никакого способа проанализировать атомарное состо- яние, и поэтому аналитику (обычно человеку) потребуется некоторая изобрета- тельность, чтобы определить хорошую, специфическую для проблемной области эвристику для задач поиска с атомарными состояниями. Однако в планировании используется развернутое представление состояний и действий, что позволяет определить хорошую эвристику, независимую от проблемной области. Напомним, что допустимую эвристику можно получить за счет определения ослабленной задачи, которую будет проще решить, — точную стоимость реше- ния этой ослабленной задачи можно использовать как эвристику для исходной за- дачи. Задачу поиска можно сформулировать в виде графа, узлы которого пред- ставляют состояния, а ребра — действия. Задача состоит в том, чтобы найти путь, соединяющий начальное состояние с целевым состоянием. Существует два основ- ных способа ослабления этой задачи, чтобы сделать ее решение проще: посред- ством добавлении в граф новых ребер, что существенно упрощает поиск пути, либо посредством группирования нескольких узлов в одно целое для получения абстрактного представления пространства состояний с меньшим числом состоя- ний, что, опять же, упрощает поиск. Сначала рассмотрим эвристику, в которой к графу добавляются ребра. Возможно, самым простым случаем является ► эвристика игнорирования предусловий, — в этом случае для действий просто отбрасываются все предусловия. Каждое дей- ствие становится применимым в любом состоянии, и любая отдельная флюента цели может быть достигнута за один этап (если имеются какие-либо применимые действия; если их нет, задача неразрешима). Из этого почти безусловно следу- ет, что количество этапов, необходимых для решения ослабленной задачи, равно
количеству невыполненных целей — почти, но не совсем, поскольку, во-первых, не- которое действие может достигать сразу нескольких целей, и во-вторых, некоторые действия могут отменять эффекты, достигнутые другими действиями. Для многих задач можно получить более точную эвристику, принимая во вни- мание действия, достигающие нескольких целей, и игнорируя возможность от- мены уже достигнутых результатов. Сначала дополнительно ослабим действия посредством удаления всех предусловий и всех эффектов, кроме тех, которые представлены литералами в цели. Далее подсчитываем минимальное количество требуемых действий таким образом, чтобы объединение положительных результа- тов этих действий позволяло выполнить поставленную цель. Это пример ► задачи о покрытии множества. Но здесь есть один довольно неприятный момент: задача о покрытии множества является КР-трудной. К счастью, простой алгоритм жадно- го поиска гарантированно возвращает покрытие множества, размер которого нахо- дится в пределах фактора 1о§и от истинного минимального покрытия, где и явля- ется количеством литералов в цели. К сожалению, применение алгоритма жадного поиска исключает гарантию допустимости. Также можно игнорировать только некоторые выбранные предусловия дей- ствий. Обратимся к головоломке Восемь (или Пятнадцать) из раздела 3.2. Мож- но было бы закодировать ее как задачу планирования, включающую плитки с од- ной схемой 8Пс1е. Ас1юп(81и1е(19 Ркессжп: Оп(1,Л Тйе(1) Л В1апк(8^) Л АсЦасеп1(з^ 5^ Еррест: Оп(1,52) Л В1апк($х) Л 5^ Л -В1апк(5^) Как было показано в разделе 3.6, если для этой головоломки удалить предусло- вия В1апк(8^ Л АсЦасепЦз^ $2), то любая плитка за одно действие может быть пе- ремещена в любое место и мы получаем эвристику “Плитки не на своих местах”. Если же удалить только предусловие В1апк(8^ то получим эвристику “Манхэттен- ское расстояние”. Легко увидеть, как эти эвристики можно автоматически вывести из описания схемы действия. Легкость манипулирования схемами действия явля- ется большим преимуществом развернутого представления задач планирования в сравнении с атомарным представлением поисковых задач. Другой возможностью является ► эвристика с пустым списком удаления. На минуту предположим, что все цели и предпосылки содержат только положитель- ные литералы.2 Наша цель — создать ослабленную версию исходной задачи, ко- торую будет легче решить и в которой длина решения будет служить хорошей эвристикой. Этого можно достичь, очистив списки удаления во всех действиях (т.е. удалив все отрицательные литералы из эффектов). В результате появляется возможность неуклонно продвигаться в направлении к цели, — никакие действия 2 Описание многих задач соответствует этому соглашению. В задачах, в которых это невозможно, замените все отрицательные литералы -»Р в цели или предусловии но- вым положительным литералом Рг.
уже не будут отменять прогресс, достигнутый с помощью другого действия. Как оказалось, поиск оптимального решения этой ослабленной задачи сам по себе яв- ляется ЫР-трудной задачей, но хорошее приближенное решение может быть най- дено за полиномиальное время методом поиска восхождением к вершине. На рис. 11.6 представлены графы пространства состояний для двух задач пла- нирования при применении эвристики с пустым списком удаления. Точки пред- ставляют состояния, а ребра — действия, при этом высота каждой точки отно- сительно нижней плоскости представляет значение ее эвристической оценки. Состояния на нижней плоскости являются решениями. Для обеих этих задач су- ществует множество путей достижения цели. В их графах нет тупиков, поэтому поиск с возвратами не требуется и решение легко может быть найдено простым поиском восхождением к вершине (хотя это найденное решение не обязательно бу- дет оптимальным). Рис. 11.6. Пространства состояний двух задач планирования при применении эв- ристики с пустым списком удаления. Высота узла относительно нижней плоскости представляет значение эвристической оценки этого состояния, а состояния непо- средственно на нижней плоскости представляют цели. Локальных минимумов здесь нет, поэтому поиск цели не вызовет затруднений (Гофман [1044], 2005) 11.3.1. Отсечение, независимое от проблемной области Развернутое представление состояний делает очевидным то, что в действитель- ности многие состояния являются лишь вариантами других состояний. Например, предположим, что на столе имеется дюжина блоков и цель состоит в том, чтобы сделать блок А верхним в столбике из трех блоков. Первый этап решения заключа- ется в установке некоторого блока х поверх блока у (где х, у и А являются разными
блоками). Теперь достаточно поместить блок А поверх блока х — и цель будет до- стигнута. В этой задаче существует 11 вариантов выбора блоках, а после выборах остается еще 10 вариантов выбора блока у, — таким образом, имеется 110 состо- яний, подлежащих рассмотрению. Но все эти состояния являются симметричны- ми: выбор того или иного блока не имеет никакого значения для достижения цели, и следовательно, планировщику достаточно будет рассмотреть только один из этих вариантов. Это процесс ► сокращения симметрии: в поисковом дереве отсека- ются все симметричные ветви за исключением одной, которая и анализируется в дальнейшем поиске. Для многих проблемных областей это меняет ситуацию от не- разрешимой до эффективно решаемой. Другая возможность заключается в предварительном отсечении ветвей без рассмотрения, принимая риск отсечения оптимального решения ради того, что- бы сфокусировать поиск только на перспективных ветвях дерева поиска. Понятие ►предпочтительного действия можно определить следующим образом. Сначала определяем ослабленную версию задачи и решаем ее, чтобы получить ►ослаблен- ный план. Теперь предпочтительным действием может быть либо этап ослабленно- го плана, либо действие достижения некоторого предусловия ослабленного плана. Иногда можно эффективно решить задачу, определив, что отрицательные вза- имодействия могут быть исключены. Говорят, что у задачи есть ►упорядочивае- мые подцели, если существует такой порядок подцелей, что планировщик может достигать их в этом порядке без необходимости отмены ранее достигнутых подце- лей. Например, в мире блоков, если цель состоит в том, чтобы построить столбик из трех блоков (например, блок А находится на блоке В, который, в свою очередь, находится на блоке С, который, в свою очередь, находится на столе ТаЫе, как по- казано на рис. 11.3), то подцели можно упорядочить в направлении снизу вверх. Если первым действием поместить С на ТаЫе, то это действие уже не потребуется отменять в процессе достижения других подцелей. В мире блоков планировщик, использующий подход “снизу вверх”, сможет решить любую задачу, не отменяя уже выполненных действий (хотя он не всегда сможет найти кратчайший план). Возьмем другой пример. Предположим, есть помещение с п выключателями осве- щения, каждый из которых управляет отдельным источником света, а цель состоит в том, чтобы включить их все. В этом случае не имеет смысла рассматривать раз- ные перестановки в последовательности включения источников света, — можно с уверенностью ограничиться планами, в которых выключатели включаются, ска- жем, в восходящем порядке. Для планировщика из ПО “Кето1е А^еп!” космического зонда НАСА “Веер 8расе Опе” было принято, что все сообщения, связанные с командованием косми- ческим кораблем, являются упорядочиваемыми. Возможно, это не покажется та- ким уж удивительным, если принять во внимание, что его создатели специально сконструировали этот космический зонд так, чтобы управлять им было как можно проще (с учетом других ограничений). Используя преимущества упорядочивания команд целеуказания, планировщик в ПО “Кето1е А§еп!” мог отсекать большую
часть дерева поиска. А это означало, что ПО на борту действовало достаточно бы- стро, чтобы космическим зондом можно было управлять в реальном времени, что прежде считалось невозможным. 11.3.2. Абстрактное представление состояний в планировании Ослабленная задача предоставляет возможность упростить задачу планирова- ния только в отношении вычисления значений эвристической функции. Многие задачи планирования включают 10100и более состояний, и ослабление действий не позволяет уменьшить количество состояний, а это означает, что вычисление эв- ристики все еще будет оставаться дорогостоящим. По этой причине теперь мы об- ратимся к ослаблениям, которые уменьшают число состояний за счет формирова- ния ► абстракции состояний — отображения в абстрактное представление типа “многие к одному” состояний в базовом представлении задачи. Простейшая форма абстракции состояний заключается в игнорировании неко- торых флюент. Например, рассмотрим задачу грузовых авиаперевозок с 10 аэро- портами, 50 самолетами и 200 единицами груза. Каждый самолет может находить- ся в одном из 10 аэропортов, и каждая единица груза может либо находиться в одном из самолетов, либо быть выгруженной в одном из аэропортов. Таким обра- зом, существует Ю50х (50+ 1О)200 « Ю405 состояний. Теперь рассмотрим конкрет- ную задачу в этой проблемной области, в которой ситуация складывается так, что все единицы груза находятся только в 5 из общего числа аэропортов и все едини- цы груза в одном аэропорту необходимо доставить в один и тот же пункт назначе- ния. В такой ситуации полезную абстракцию для данной задачи можно будет по- лучить, отбросив все флюенты А1, кроме тех, которые включают один самолет и одну единицу груза в каждом из указанных 5 аэропортов. В этом случае в задаче останется лишь 105х(5 +10)5 « 1011 состояний. Решение в подобном абстрактном пространстве состояний будет короче, чем решение в исходном пространстве (и, следовательно, будет представлять собой допустимую эвристику), и это аб- страктное решение легко будет расширить до решения исходной задачи (посред- ством добавления дополнительных действий Ьоас1 и 1]п1оас1). Ключевой идеей в определении эвристик является ► декомпозиция: деление задачи на части, каждая из которых решается независимо от других, с последую- щим объединением частей. Предположение о ►независимости подцелей — это допущение, что затраты на решение конъюнкции подцелей аппроксимируются суммой затрат на решение каждой подцели независимо от других. Предположе- ние о независимости подцелей может быть оптимистичным или пессимистичным. Оно оптимистично, когда существуют отрицательные взаимодействия между под- планами для каждой подцели — например, когда действие в одном подплане уда- ляет цель, достигнутую другим подпланом. Оно пессимистично и, следовательно, недопустимо, когда подпланы содержат избыточные действия, например два дей- ствия, которые можно было бы заменить одним действием в объединенном плане.
Предположим, что цель представлена множеством флюент С7, которое мы раз- биваем на непересекающиеся подмножества Ср..., Оп. Далее выполняется поиск оптимальных планов Р19..., Рп, достигающих соответствующих подцелей. Как оценить стоимость плана достижения общей цели С? Можно рассматривать ка- ждую стоимость СО8Т(Р,) как эвристическую оценку, и нам известно, что если объ- единить эти оценки, принимая их максимальное значение, то всегда будет получе- на допустимая эвристика. Поэтому оценка тах/ЗозтСР,) является допустимой, а иногда и точно правильной: может случиться, что план Р} по счастливой случай- ности достигает всех подцелей Но, как правило, оценка оказывается слишком низкой. Можно ли вместо этого просто просуммировать стоимости? Для многих задач это даст разумную оценку, но недопустимую. Наилучший вариант, когда О1 и Ц независимы, — в том смысле, что планы для одного не могут снизить стои- мость планов для других. В этом случае оценка СО8Т(Р,) + С08Т(Ру) является допу- стимой и более точной, чем максимальная оценка. Очевидно, что метод сокращения пространства поиска путем формирования абстракций имеет большой потенциал. Вся сложность заключается в правиль- ном выборе абстракций и использовании их таким способом, который делает об- щую стоимость — суммарную стоимость определения абстракции, выполнения абстрактного поиска и обратного отображения абстракции на исходную задачу — меньше стоимости решения исходной задачи. Здесь может оказаться полезным применение метода баз данных с шаблонами, обсуждавшегося в разделе 3.6.3, по- скольку издержки на создание самой базы данных с шаблонами могут быть амор- тизированы за счет решения многих экземпляров задачи. Примером системы, в которой используется эффективная эвристика, является система ЕЕ или Еа8тЕок№АЮ) (Хоффманн [1044], 2005). В ней применен прямой поиск в пространстве состояний с использованием эвристики с пустым списком удаления и определением эвристических оценок с помощью графа планирования. Затем для поиска решения с этой эвристикой в системе ЕЕ используется поиск вос- хождением к вершине (модифицированный для отслеживания плана). В системе ЕЕ используется нестандартный алгоритм поиска восхождением к вершине: он из- бегает локальных максимумов посредством поиска в ширину от текущего состоя- ния, пока не будет найдено лучшее. Если это не удается, система ЕЕ переключает- ся на жадный поиск по первому наилучшему совпадению. 11.4. Иерархическое планирование Все методы решения задач и планирования, обсуждавшиеся в предыдущих гла- вах, работают с фиксированным множеством атомарных действий. Действия мо- гут быть связаны друг с другом, и современные алгоритмы могут генерировать решения, содержащие тысячи действий. Все это хорошо, когда мы планируем от- пуск и действия находятся на уровне “перелет из Сан-Франциско в Гонолулу”, но в планах на уровне управления движениями типа “согни левый коленный сустав
на угол 5 градусов” потребуется объединять уже не тысячи, а миллионы или мил- лиарды действий. Преодоление этой пропасти требует планирования на более высоких уровнях абстракции. План высокого уровня для отдыха на Гавайях может быть следующим: “Проезд в аэропорт Сан-Франциско; перелет рейсом НА 11 в Гонолулу; отдых две недели; перелет рейсом НА 12 обратно в Сан-Франциско; проезд домой”. Имея та- кой план, действие “Проезд в аэропорт Сан-Франциско” можно само по себе рас- сматривать как задачу планирования со следующим решением: “Выбрать службу автоперевозок пассажиров; заказать машину; проехать в аэропорт”. Каждое из этих действий, в свою очередь, может быть дальше разложено на составляющие, пока не будет достигнут максимально низкий уровень действий, например нажатие отдель- ной кнопки при наборе телефонного номера службы перевозок. В этом примере планирование и действие чередуются, например пассажир так- си может отложить проблему планирования прохода от обочины дороги до вход- ных дверей, пока его не высадят в нужном месте. Таким образом, это конкрет- ное действие остается на абстрактном уровне планирования непосредственно до фазы его выполнения. Мы отложим обсуждение этой темы до раздела 11.5, а в этом разделе сконцентрируемся на обсуждении идеи ►иерархической декомпо- зиции — идеи, пронизывающей почти все попытки управлять сложностью. На- пример, сложное программное обеспечение создается из иерархии подпрограмм и классов; армии, правительства и корпорации имеют организационную иерархию. Ключевое преимущество иерархической структуры состоит в том, что на каждом уровне иерархии ее компоненты — вычислительные задачи, военные миссии или административные функции — сводятся к небольшому количеству мероприятий на следующем, более низком уровне, поэтому расчетная стоимость нахождения правильного способа упорядочивания этих мероприятий для текущей проблемы будет невелика. 11.4.1. Действия высокого уровня Основной способ формального представления иерархической декомпозиции, который мы примем, взят из области ► иерархических сетей задач или НТК (НгегагМса! ТазкММогк) планирования. На данный момент мы принимаем пол- ную наблюдаемость и детерминизм среды, а также наличие множества действий, которые далее будем называть ► примитивными действиями, со стандартными схемами “предусловия-эффект”. Ключевой дополнительной концепцией является ► действие высокого уровня, или НЬА (Н^Ь-Ьеуе! Асбоп), например действие “Проезд в аэропорт Сан-Франциско”. Каждое действие высокого уровня (НЬА) имеет одно или несколько возможных ►уточнений (ге/тетеги) в виде последо- вательности действий, каждое из которых может быть некоторым НЬА или при- митивным действием. Например, действие “Проезд в аэропорт Сан-Франциско”, которое формально можно представить как (Зо(Ноте, 8РО), может иметь два
возможных уточнения, как показано на рис. 11.7. На том же рисунке показано ре- курсивное уточнение для навигации в мире пылесоса: чтобы добраться до пункта назначения, сделать шаг, азатем идти к пункту назначения. Ке^тетеп1(ро(Ноте, 8РО), 8ТЕР8: [Ппуе(Ноте, 8РОЬоп%ТеппРагкт%\ 8кии1е(8РОЬоп^ТегтРагкт^ 8РО)У) Ре^тетеп^ОоЩоте, 8РО), 8ТЕР8: [ТахЦНоте, 8РО)]) РеУ1петеп1(^ау1^а1е(\а, Ь], [х, у]), РКЕСОИО: а = х Л Ь =у 8ТЕР8: []) Ре/1петеп1^ау1%а1е{[а, Ь], [х, у]), РКЕСОИО: Соппес1ес1(\а, Ь], [а - 1, />]) 8ТЕР8: [Ье/1, ^У1%а1е([д- 1, Ь], [х, у])]) РеУ1петеп1(^ау1^а1е(\а, Ь], [х,у]), РКЕСОИО: Соппес1еср[а, Ь], [а+ 1, />]) 8ТЕР8: Р1ау1%а1е([а + 1, Ь], [х, у])]) Рис. 11.7. Определения возможных уточнений для двух действий высокого уровня (НЬА): “Проезд в аэропорт Сан-Франциско” и “Навигация в мире пылесоса”. В по- следнем случае обратите внимание на рекурсивный характер уточнений и исполь- зование предварительных условий Эти примеры показывают, что действия высокого уровня и их уточнения во- площают знания о том, как делать что-то. Например, уточнения для действия (Зо(Ноте, 8РО) указывают, что для того, чтобы добраться до аэропорта, можно по- ехать туда на собственной автомашине или взять такси, а такие действия, как ку- пить молоко, сесть на диван или пойти конем на е4, здесь не рассматриваются. Уточнение, содержащее только примитивные действия, называется ►реали- зацией НЬА. В клеточном мире обе последовательности [Л'&Л/, Ооууи] и [Ооууи, Ш&й, реализуют НЬАУау/##е([1,3], [3,2]). Реализация плана высо- кого уровня (последовательности НЬА) представляет собой объединение реализа- ций каждого НЬА в единую последовательность. Имея определения “предусловия-эффект” для каждого примитивного действия, можно легко определить, достигает ли данная реализация плана высокого уровня поставленной цели. Таким образом, можно сказать, что ^план высокого уровня достигает цели из заданного состояния, если хотя бы одна из его реализаций достигает цели из этого со- стояния. В этом определении фраза “хотя бы одна” является ключевой, — не все
реализации должны достигать цели, поэтому агенту необходимо решить, какую именно реализацию он будет выполнять. Следовательно, множество возможных реализаций в НТМ-планировании, каждая из которых может иметь различный ре- зультат, — это не то же самое, что множество возможных исходов в недетермини- рованном планировании. Там мы требуем, чтобы план работал для всех результа- тов; поскольку агент не может выбрать результат, это делает природа. Самый простой случай — это действие высокого уровня (НЬА), у которого есть только одна реализация. В этом случае мы можем вычислить предусловия и эф- фекты НЬА непосредственно из предусловий и эффектов реализации (см. упраж- нение 11.21), а затем обработать НЬА точно так, как если бы это было одно при- митивное действие. Можно показать, что построение правильного набора НЬА может иметь следствием падение временной сложности слепого поиска от экспо- ненциального до линейного относительно глубины решения, хотя разработка тако- го набора НЬА сама по себе может быть нетривиальной задачей. Когда у действий высокого уровня есть несколько возможных реализаций, то возможны два разных подхода: первый — это поиск среди реализаций той, которая работает, как пред- лагается в разделе 11.4.2, а второй — рассуждения непосредственно о самих НЬА, несмотря на множественность их реализаций, как объясняется в разделе 11.4.3. Последний подход позволяет получить доказуемо правильные абстрактные планы без необходимости рассмотрения их реализации. 11.4.2. Поиск примитивных решений НТЫ-планирование часто формулируется с помощью единственного дей- ствия “верхнего уровня” под названием Ас1 с намерением отыскать такую реа- лизацию Ас1, которая достигает цели. Этот подход является абсолютно общим. Например, задачи классического планирования могут быть определены следую- щим образом: для каждого примитивного действия а, дать одно уточнение дей- ствия Ас1 с этапами [а„ Ас(]. В результате будет создано рекурсивное определе- ние действия Ас1, позволяющее добавлять новые действия. Но здесь необходим какой-то способ остановить рекурсию: это можно сделать, предоставив еще одно уточнение действия Ас1 — с пустым списком этапов и предусловием, эквивалент- ным цели задачи. По сути это указание о том, что если цель уже достигнута, то правильная реализация — ничего не делать. Такой подход приводит к простому алгоритму: повторять выбор некоторого действия высокого уровня (НЬА) в текущем плане и заменять его одним из его уточнений, пока план не достигнет цели. Одна из возможных реализаций этого ал- горитма на базе поиска в ширину по дереву представлена на рис. 11.8. Планы рас- сматриваются в порядке глубины вложенности уточнений, а не количества прими- тивных этапов. Легко спроектировать версию этого алгоритма с поиском по графу, а также версии с поиском в глубину и поиском с итеративным углублением.
ГипсНоп Н1ЕКАКСН1САЕ-8ЕАКСН(рго/>/е?и, ЫегагсИу) геШгп$ решение или индикатор отказа /аПиге ]гопИег <— очередь типа Г1ГО, содержащая единственный элемент [Ас/\ ^Ы1е 1гие <1о И 18-ЕМРТУ(/голГ/ег) Шеп геШгп/аПиге р1ап «— РОР(/гсш//ег) // выбор первого сверху плана в очереди]гопИег Ыа <— первое НЬА в р1ап, или пи11, если его нет рге]1х, зц01х <— подпоследовательности действий до и после И1а в р1ап ои1соте 4— КЕ8ЕЕТ(/?го/)/етл.1К1Т1АЕ,рг^/1х) И И1а есть пи11 Шеп // план состоит из примитивных действий, II ив ои/соте находится результат его выполнения ИргоЫет.\$-Со/^(ои/сотё) Шеп геШгп р1ап еке Гог еасЬ зедиепсе вп КЕР1НЕМЕЫТ8(Л/а, ои/соте, Ыегагску) <1о добавить АРРЕКО(рге/а, зедиепсе, зи///х} в очередь /гопИег Рис. 11.8. Реализация прямого иерархического планирования с поиском в ширину. Исходный план предоставляется алгоритму как [Ас/]. Функция КЕЕ1№МЕМТ8 воз- вращает множество последовательностей действий, по одной для каждого уточне- ния НЬА, предусловия которого удовлетворяются указанным состоянием, ои/соте В сущности, эта форма иерархического поиска исследует пространство после- довательностей, соответствующих содержащемуся в библиотеке НЬА знанию о том, как все это может быть сделано. Большое количество знаний может быть за- кодировано не только в последовательности действий, указанных в каждом уточ- нении, но и в предпосылках уточнений. Для некоторых проблемных областей НТЫ-планировщики уже оказались в состоянии генерировать огромные планы при очень небольшом количестве выполняемого поиска. Например, планировщик О-Р^А^ (Белл и Тейт [158], 1985), сочетающий НТК-планирование с составлением расписаний, успешно использовался для разработки планов производства в корпо- рации НйасЫ. Типичная задача планирования охватывала производственную ли- нию из 350 различных продуктов, 35 сборочных станций и более 2000 различных операций. Планировщик генерировал 30-дневный график работ с тремя 8-часо- выми сменами в сутки, включающий десятки миллионов этапов. Другим важным аспектом НТК-планов является то, что они по определению иерархически струк- турированы, а это обычно существенно облегчает их понимание людьми. Вычислительные преимущества иерархического поиска легко можно увидеть, рассмотрев идеализированный случай. Предположим, что у задачи планирования имеется решение с с! примитивными действиями. В случае планировщика с неие- рархическим прямым поиском в пространстве состояний с Ъ допустимыми дей- ствиями в каждом состоянии затраты времени можно оценить как О(Ъа), как объ- ясняется в главе 3. Для НТК-планировщика предположим строго регулярную
структуру уточнений: любое не примитивное действие имеет г возможных уточне- ний, каждое размером в к действий на очередном более низком уровне. Требуется узнать, сколько существует различных деревьев уточнения при данной структуре. Итак, если имеется (1 действий на примитивном уровне, то количество уровней ниже корня дерева составит 1о&<7, поэтому количество внутренних узлов уточне- ний будет равно 1 + Л+ й2 +... + кх°*к и 1 = (с1- 1) /(к-1). Каждый внутренний узел име- ет г возможных уточнений, поэтому может быть построено различных де- ревьев декомпозиции. Внимательно посмотрев на эту формулу, можно заметить, что, сохраняя значе- ние г небольшим, а значение к — достаточно большим, можно получить громад- ную экономию: мы говорим о корне Л-й степени из затрат для неиерархического поиска, если Ьиг сравнимы по величине. Малое значение г и большое значение к означает, что библиотека НЬА будет включать небольшое количество уточнений, каждое из которых будет генерировать длинную последовательность действий. Од- нако это не всегда возможно: длинные последовательности действий, которые мож- но использовать для решения широкого круга задач, встречаются крайне редко. Ключом к успешному применению НТМ-планирования является наличие би- блиотеки планов, содержащей уже известные способы реализации сложных высо- коуровневых действий. Один из способов создания такой библиотеки — это изу- чение методов из опыта решения проблем. После мучительного опыта построения плана “с нуля” агент может сохранить этот план в библиотеке как метод реализа- ции высокоуровневого действия, определенного в задаче. Действуя таким образом, агент со временем может становиться все более и более компетентным по мере построения новых методов на основе уже известных. Одним из важных аспектов этого процесса обучения является возможность обобщения методов, которые уже были построены, за счет устранения деталей, специфических для определенных экземпляров задач (например, название компании-исполнителя или адрес местона- хождения объекта), и сохранения только ключевых элементов плана. Нам кажется невероятным, что люди смогли бы стать настолько компетентными, насколько они есть, без какого-либо аналогичного внутреннего механизма. 11.43. Поиск для абстрактных решений Алгоритм иерархического поиска из предыдущего раздела выполняет уточне- ние действий высокого уровня (НЬА) на всем пути к получению последовательно- сти из примитивных действий, чтобы определить, является ли план работоспособ- ным. Это противоречит здравому смыслу: нужно иметь возможность определить, что следующий план высокого уровня с двумя НЬА \Опуе(Ноте, 8РОЬоп%ТегтРагк1п%\ 8кии1е(8РОЬоп^ТегтРагкт^ 8РО)] позволяет добраться в аэропорт без необходимости определения точного марш- рута, выбора места для парковки и т.д. Решение состоит в том, чтобы составить
описание действий высокого уровня (НЬА) на уровне “предусловия-эффекг”, как это делается для примитивных действий. На основании этих описаний должно быть не сложно доказать, что план высокого уровня достигает цели. Это поло- жение, можно сказать, является “святым Граалем” иерархического планирования, поскольку если можно вывести план высокого уровня, доказуемо достигающий поставленной цели, работая в небольшом пространстве поиска мероприятий вы- сокого уровня, то далее можно просто выполнять этот план, работая над задачей уточнения каждого этапа плана в отдельности. Это дает нам экспоненциальное со- кращение времени выполнения, к которому мы и стремились. Чтобы этот подход работал, ситуация должна быть такой, когда каждый план высокого уровня, “претендующий” на достижение цели (в силу описаний его эта- пов), действительно достигает цели в том смысле, как он был определен ранее: должна существовать по крайней мере одна реализация, которая действительно достигает цели. Это свойство называется ► свойством нисходящего уточнения для описаний действий высокого уровня (НЬА). Создать описание НЬА, удовлетворяющее свойству нисходящего уточнения, в принципе, легко: до тех пор, пока описания являются истинными, любой план высокого уровня, претендующий на достижение цели, должен фактически обе- спечивать это, — в противном случае описания содержат некоторые ложные утверждения о том, что выполняют НЬА. Мы уже обсуждали, как писать истинные описания для задач высоко уровня, имеющих точно одну реализацию (упражне- ние 11.21); проблемы возникают лишь тогда, когда НЬА имеет несколько реализа- ций. Как можно описать эффекты действия, которое можно реализовать различны- ми способами? Один надежный ответ (по крайней мере, для задач, в которых все предпосылки и цели являются положительными) состоит во включении в эффект только тех по- ложительных результатов, которые достигаются в каждой реализации этой НЬА, и негативных результатов, достигаемых в любой его реализации. В этом случае свойство нисходящего уточнения удовлетворяется. К сожалению, такая семантика для НЬА слишком осторожна. Еще раз вернемся к действию высокого уровня <Зо(Ноте, 8РО), которое имеет два уточнения, и предположим для конкретности простой мир, в котором любой может добраться в аэропорт на автомобиле и оставить его на парковке, а поезд- ка на такси как предварительное условие требует иметь при себе наличные день- ги. В таком случае действие <Зо(Ноте, 8РО) не всегда обеспечит доставку агента в аэропорт. В частности, цель не будет достигнута, если СазИ имеет значение/а1зе, поэтому мы не можем принять утверждение АЦА^еШ, 8РО) как эффект данного НЬА. Однако отсутствие у агента наличных денег не имеет никакого значения, если он отправится в аэропорт на своем автомобиле. Требование о том, что лю- бой эффект сохраняется для каждой реализации, является эквивалентным пред- положению, что кто-то другой — некий противник — будет выбирать реализацию для агента. Это трактует множественность исходов НЬА так, как если бы НЬА
было недетерминированным действием, как в разделе 4.3. Однако в нашем слу- чае агент сам выбирает реализацию. Сообщество языков программирования ввело термин ► демонический не- детерминизм для случая, когда выбор делает противник, противопоставляя его ► ангельскому недетермннизму, когда выбор делает сам агент. Мы заимствуем этот термин, чтобы определить ►ангельскую семантику для описания действий высокого уровня (НЬА). Основной концепцией, необходимой для понимания ан- гельской семантики, является ►достижимое множество из некоторого НЬА: при заданном состоянии 5 достижимым множеством для НЬА к, что записывается как Кеасн(5, А), является множество состояний, достижимых в любой из реализаций этого НЬА. Ключевая идея состоит в том, что агент может выбрать, на каком элементе из достижимого множества он остановится, при выполнении НЬА. Следовательно, действие высокого уровня с несколькими уточнениями является более “мощным”, чем такое же НЬА, но с меньшим количеством уточнений. Можно также опреде- лить достижимое множество и для некоторой последовательности из НЬА. На- пример, достижимым множеством для последовательности [А(, А2] является объ- единение всех достижимых множеств, полученных при применении А2 в каждом состоянии из достижимого множества А,: Кеасн(л, [А„ А2]) = Кеасн(?, А2). 5хе Кеасн(5,Л|) С учетом этих определений план высокого уровня — последовательность НЬА — достигает цели, если его достижимое множество пересекается с множе- ством целевых состояний. (Сравните это условие с гораздо более сильным услови- ем для демонической семантики, в которой каждый член достижимого множества должен быть состоянием цели.) И наоборот, если достижимое множество не пере- секается с множеством целевых состояний, то план, определенно, не сработает. На рис. 11.9 эти идеи иллюстрируются наглядно. Введение понятия достижимого множества приводит к простому алгоритму: поиск среди планов высокого уровня для отыскания того, достижимое множество которого пересекается с целевым множеством. Как только это произойдет, алго- ритм может выполнить этот абстрактный план, зная, что он сработает, и сосре- доточиться на дальнейшем уточнении этого плана. Мы вернемся к алгоритмиче- ским вопросам позже; а пока рассмотрим, как эффекты НЬА — т.е. достижимое множество для каждого возможного начального состояния — могут быть пред- ставлены. Примитивное действие может присвоить флюенте значение истина или ложь либо оставить ее без изменений. (При наличии условных эффектов (см. раз- дел 11.5.1) появляется четвертая возможность: изменить значение переменной на противоположное.)
а) Рис. 11.9. Схематические примеры достижимых множеств. Множество целевых со- стояний находится на темно-сером фоне. Черные и серые стрелки указывают на воз- можные реализации НЬА и Л2 соответственно, а) Достижимое множество для в состоянии 5. б) Достижимое множество для последовательности [Л„ Л2] в состоя- нии 5, — поскольку оно пересекается с целевым множеством состояний, эта после- довательность НЬА достигает цели При использовании ангельской семантики действие высокого уровня может сделать больше: оно может управлять значением флюенты, устанавливая его рав- ным 1гие или/аке в зависимости от того, какая реализация была выбрана. А это означает, что НЬА может оказывать на флюенту девять различных эффектов: если в начале переменная имеет значение 1гие, она может в любом случае сохранить это значение, всегда получать значение/аке или иметь возможность выбора. Если флюента в начале имеет значение/аке, она может в любом случае сохранить его, всегда получать значение 1гие или иметь возможность выбора. Кроме того, эти три варианта для обоих случаев могут произвольно комбинироваться, что в итоге дает девять возможных эффектов. В общем, все это довольно сложно. Здесь мы будем использовать язык списков добавления и списков удаления (а не флюенты со значениями 1гие!/аке) вместе с символом ~, означающим “возможно, если агент сделает такой выбор”. Таким об- разом, эффект + А означает “возможно, добавить Л”, т.е. либо оставить А без изме- нений, либо сделать его истинным. Аналогично — А означает “возможно, уда- лить Л”, а ± А означает “возможно, добавить или удалить Л”. Например, НЬА Со(Ноте, 8ГО) с двумя уточнениями, представленными на рис. 11.7, возможно, удаляет флюенту Сазк (если агент решает взять такси), поэтому оно должно иметь эффект —Сазк. Таким образом, мы видим, что такие описания НЬА являются вы- водимыми из описаний их уточнений. Теперь предположим, что даны следующие схемы для двух действий высокого уровня Л| и
АсНоп(кь Ркесош:->А, Еррест:А Л-В), АсИоп(кг, Ркесоиэ: -В, Еррест: + А Л + С). Это означает, что НЬА к} добавляет А и, возможно, удаляет В, тогда как НЬА й2, возможно, добавляет А и имеет полный контроль над С. Теперь, если в начальном состоянии истинно только В и целью является А Л С, последовательность дей- ствий [Ли й2] достигает цели: мы выбираем такую реализацию Л15 в которой В пе- реводится в состояние/а1зе, а затем выбираем ту реализацию действия й2, которая оставляет А в состоянии (гие и делает С истинным. В приведенном выше обсуждении предполагается, что указанные эффекты НЬА — достижимое множество для любого заданного состояния — могут быть точно описаны путем описания эффекта для каждой флюенты. Было бы очень хо- рошо, если бы это всегда было так, но во многих случаях мы можем только аппрок- симировать эффекты, поскольку НЬА может иметь бесконечно много реализаций и при этом вырабатывать произвольно меняющиеся достижимые множества — на- подобие доверительного состояния сложной формы, представленного на рис. 7.21. Например, выше было сказано, что при выполнении НЬА Со(Ноте, 8РО) возмож- но удаление Сазк, но также возможно и добавление АЦСаг, ВРОЬоп^ТегтРагкт^), однако и то, и другое не может произойти одновременно — в действительности должно быть выполнено лишь что-то одно. Как и в случае доверительных состо- яний, нам, возможно, потребуется давать приблизительные описания. Мы будем использовать два вида приближенного описания: ► оптимистическое описание Кеасн+ (5, Л) для НЬА к может переоценивать его достижимое множество, тогда как ► пессимистическое описание К.ЕАСН (5, к) может недооценивать его дости- жимое множество. Таким образом, мы имеем КЕАСН' (5, Л) С КЕАСН(5, Л) С КЕАСН+ (5, Й). Например, оптимистичное описание НЬА <Зо(Ноте, 8РО) указывает, что возможно удаление Саак и возможно добавление АНС аг, ВРОЬоп^ТегтРагкт^). Другим хо- рошим примером является головоломка Восемь, половина состояний которой не- доступна из любого заданного состояния: оптимистическое описание НЬА Ас1 в этом случае вполне может включать в себя все пространство состояний, поскольку точное достижимое множество имеет довольно сложную форму. При использовании приблизительных описаний проверку того, достигает ли план цели, следует слегка изменить. Если оптимистическое достижимое множе- ство плана не пересекается с целевым, то этот план не работает; если пессимисти- ческое достижимое множество пересекается целевым множеством, то план дей- ствительно работает (рис. 11.10, а). При точных описаниях план либо работает, либо нет, но в случае приблизительных описаний возникает некоторое промежу- точное состояние: если оптимистическое достижимое множество пересекается с целевым, а пессимистическое достижимое множество — нет, то мы не можем
сказать, работает ли план (рис. 11.10, б). Когда это обстоятельство имеет место, не- определенность может быть устранена за счет уточнения плана, — это очень рас- пространенная ситуация для мышления человека. Например, при планировании вышеупомянутых двухнедельных каникул на Гавайях можно было бы принять ре- шение проводить по два дня на каждом из семи островов архипелага. Однако бла- горазумие подсказывало бы, что этот амбициозный план следует доработать, доба- вив к нему определенные детали переезда с острова на остров. Рис. 11.10. Достижение цели для планов высокого уровня (НЬА) с приблизитель- ными описаниями. Множество целевых состояний находится на темно-сером фоне. Для каждого плана показаны пессимистические (сплошной контур, серый фон) и оптимистические (пунктирный контур, светло-серый фон) достижимые множества, а) План, указанный черной стрелкой, определенно, достигает цели, тогда как план, указанный серой стрелкой, определенно, нет. б) План, который, возможно, достига- ет цели (оптимистическое достижимое множество пересекается с целевым), но не- обязательно ее достигает (пессимистическое достижимое множество не пересека- ется с целевым). Этот план необходимо доработать, чтобы выяснить, действительно ли он достигает цели б) Алгоритм иерархического планирования с приблизительными ангельскими описаниями показан на рис. 11.11. Для простоты он был реализован в той же об- щей схеме, которая использовалась ранее, на рис. 11.8, т.е. поиск в ширину в про- странстве уточнений. Как только что объяснялось, алгоритм может обнаруживать планы, которые будут и которые не будут работать, проверяя наличие пересечения оптимистического и пессимистического достижимых множеств с целевым. (Дета- ли того, как вычисляются достижимые множества плана, учитывая приблизитель- ные описания каждого его этапа, рассматриваются в упражнении 11.19.)
ГипсНоп АыСЕ1ЛС-8ЕАКСН(рго/>7е?и, Ыегагску, ипИа1Р1ап) геШгпз решение или индикатор отказа/аИ ]гопИег <— очередь типа ПРО, содержащая единственный элемент МНсйРкт мЪПе 1гие <1о И ЕмРТУ?(/гол//ег) Шеп геШгп /аП р1ап <— РОР(/гсшГ/ег) // выбор спервого сверху элемента в очереди/гопИег И КЕАСН+(рго/>7е?и.1к1Т1АЕ, р1ап) пересекается с ргоЫет.Сом^ Шеп Ир1ап примитивный Шеп геШгп р1ап И достижимое множество Кеасн+ // является точным для примитивных планов %иагап1еес1 <— ^\СН~(ргоЬ1етЛ^т^р1ап) А ргоЫетХзОМ^ И %иагап1еес1 ± {} и МАК1Н6-Рк0СКЕ88(р/аи, МИа1Р1ап) Шеп /та181а1е <— любой элемент из %иагап/еес1 геШгп ОЕСОМРО8Е(Л/егагсЛу, рго/>7е?и.1Ы1Т1АЕ, р1ап,/та181а1ё) Ыа <— некоторое НЬА в р1ап рге]}х, зи$1х <— пара действий, предшествующее и последующее для Ыа в р1ап ои/соте <— КЕ8иЕГ(ргоМе?и.1к1Т1АЕ, рге]гх) Гог еасЬ зедиепсе вп ЯЕР1КЕМЕЫТ8(Л/а, оШсоте, Ыегагску) <1о ]гопИег <— /л5егГ(АрРЕКО(рге/1г, зедиепсе, зи/^1х\^опИег) ГипсНоп ОЕСОМРО8Е(Л/егагсЛу, з^р1ап, з/) геШгп$ решение зо1иНоп <— пустой план ^ЬНе р1ап не пуст <1о асИоп <- КЕМОУЕ-ЬА8Т(р/аи) з1 <— состояние т ЯЕАСН”(5о,р/ал), такое, что з/ 6 Кеасн-(5„ асИоп) ргоЫет 4— задача с 1Ы1Т1АЕ = з1 и Соае = з/ зо1иИоп 4— АРРЕКО(АкбЕЫС-8ЕАКСН(рго/>7е?и, Ыегагску, асНоп\ зо1иИоп) 3^31 геШгп зо1иНоп Рис. 11.11. Алгоритм иерархического планирования, использующий ангельскую се- мантику для определения и выполнения планов высокого уровня, позволяющих до- стичь цели, игнорируя при этом те планы высокого уровня, которые этого не позво- ляют. Предикат МАКПЧО-РКООКЕ88 нужен для проверки, что алгоритм не застрял в бесконечной регрессии уточнений. На более высоком уровне алгоритм А№ЕЕ1С- 8ЕАКСН вызывается с НЬА [Ас/] в качестве аргумента тШаПЧап Когда работоспособный абстрактный план найден, алгоритм выполняет де- композицию исходной задачи на подзадачи, по одной для каждого этапа пла- на. Начальное и целевое состояния для каждой подзадачи получаются за счет регрессивного поиска гарантированно достигаемого целевого состояния с ис- пользованием схем действий для каждого этапа плана. (Обсуждение того, как
выполняется регрессивный поиск, см. в разделе 11.2.2.) На рис. 11.9, б проиллю- стрирована основная идея: целевое состояние с гарантированной достижимостью обведено двойным контуром и находится справа, а левое обведенное двойным кон- туром состояние представляет собой промежуточную цель, найденную посред- ством регрессивного поиска цели в пространстве конечного действия. Способность выполнить или отказаться от выполнения планов высокого уровня может дать алгоритму А№ЕЕ1С-8еаксн значительное вычислительное преимуще- ство в сравнении с алгоритмом Н1ЕКАКСН1САЕ-8еаисН, который, в свою очередь, может иметь большое преимущество над простым старым алгоритмом Вкеаотн- Е1К8Т-8еаксн. Например, рассмотрим очистку большого экземпляра мира пылесо- са, состоящего из некоторого количества комнат, соединенных узкими коридорами, каждая комната которого представляет собой прямоугольник размером х А квадра- тов. Имеет смысл построить некоторое НЬА для действия ^аV^§а^е (как показано на рис. 11.7) и еще одно — для действия С1еап1Уко1еКоот (очистить всю комнату). (Очистка всей комнаты может быть реализована как циклическое применение дру- гих НЬА, например НЬА очистки отдельной горизонтальной серии квадратов в комнате.) Поскольку имеется пять примитивных действий, стоимость выполнения алгоритма Вкеаотн-Е1И8Т-8еаксн можно оценить как 5*, где с1 является длиной кратчайшего решения (она примерно вдвое больше общего числа квадратов), — фактически этот алгоритм не способен справиться даже с двумя комнатами разме- ром 3x3. Алгоритм Н1ЕКАКСН1Сае-8еаисн более эффективен, но по-прежнему страдает от экспоненциального роста вычислительных затрат, поскольку проверяет все пути очистки, совместимые с иерархией. Вычислительные затраты алгоритма А№ЕЕ1С-8еаксн возрастают приблизительно в линейной зависимости от количе- ства квадратов — он выполняет лишь хорошие высокоуровневые последовательно- сти этапов очистки комнат и навигации, отсекая все остальные варианты. Очистку множества комнат посредством поочередной уборки каждой из них вряд ли можно считать высоким научным достижением: подобная задача не вызы- вают затруднений у людей благодаря иерархической структуре самой задачи. Если проанализировать, насколько трудно людям решать даже небольшие головолом- ки, такие как Восемь, кажется весьма вероятным, что способность людей решать сложные проблемы проистекает не за счет эффективного использования комбина- торики, а скорее из умения абстрагировать задачи, а затем выполнять их декомпо- зицию с целью устранения комбинаторики. Подход с использованием ангельской семантики можно расширить с целью по- иска решения с наименьшими затратами, просто обобщив понятие достижимого множества. Вместо того чтобы состояние рассматривалось как достижимое либо нет, каждое состояние связывается со стоимостью самого эффективного спосо- ба его достижения. (Для недостижимых состояний стоимость бесконечна.) Оп- тимистические и пессимистические описания ограничивают диапазон этих сто- имостей. Таким образом, ангельский поиск может найти доказуемо оптимальные абстрактные планы без необходимости рассматривать их реализацию. Тот же
подход можно использовать для получения эффективных алгоритмов ►иерархи- ческого прогнозирования для выполнения интерактивного поиска в стиле БИТА* (см. раздел 4.5.3). В некотором смысле такие алгоритмы отражают определенные аспекты раз- мышлений человека при решении таких задач, как планирование отпуска на Гавай- ях, — рассмотрение альтернатив первоначально осуществляется на абстрактном уровне, возможно, в течение длительного периода времени, причем одни части плана остаются довольно абстрактными вплоть до момента их исполнения — на- пример, как именно провести два ленивых дня на острове Молокаи, — тогда как другие части плана сразу разрабатываются в деталях, например выбираются наи- более подходящие авиарейсы и бронируются номера в самых привлекательных местах проживания. И если этого не сделать, не будет достаточных гарантий, что этот план вообще будет осуществимым. 11.5. Планирование и действие в недетерминированных проблемных областях В этом разделе планирование распространяется на решение задач в частично наблюдаемых, недетерминированных и неизвестных проблемных областях. Ос- новные концепции в целом отражают те, которые приведены в главе 4, но есть и различия, возникающие из-за использования развернутых представлений вместо атомарных. Это влияет как на способ представления способности агента к дей- ствию и наблюдению, так и на способ представления доверительных состоя- ний — множества возможных физических состояний, в которых может находиться агент — для частично наблюдаемых сред. Также появляется возможность восполь- зоваться преимуществами многих методов, независимых от проблемной области, предложенных в разделе 11.3 для вычисления эвристик поиска. Будут рассмотрены темы бессенсорного планирования (также называемого конформным планированием) для ненаблюдаемых проблемных областей; ус- ловное планирование (или планирование с учетом непредвиденных ситуаций) — для частично наблюдаемых и недетерминированных проблемных областей, а также непрерывное планирование (или интерактивное планирование) и пере- планировка — для неизвестных проблемных областей. Все это позволит успешно справляться с решением значительных по размерам задач реального мира. Рассмотрим следующую задачу: даны стул (Скай) и стол (ТаЫе), а цель состо- ит в том, чтобы сделать их соответствующими друг другу, т.е. имеющими одина- ковый цвет (Со1ог). В исходном состоянии есть две банки (Сап) краски, но цве- та краски и мебели неизвестны. Исходно в поле зрения (1пУ1еуу) агента находится только стол. 1пИ(ОЬ]ес1(ТаЫе) Л ОЬ]ес1(Скай) Л Сап(Сх) Л Саи(С2) Л 1пУ1еуц(ТаЫе)) Соа1(Со1ог(Ска1г, с) Л Со1ог(ТаЫе, с))
Агенту доступны два действия: снятие крышки (КетоуеЫеИ) с банки с краской и покраска (Рснп1) объекта краской из открытой (Ореп) банки. Ас1юп(КетоуеЬк1(сап), Ряесоко: Сап(сап) Еееест: Ореп(сап)) АсИоп(РатКх, сет), Ркесоио: ОЬ]ес1(х) Л Сап(сап) Л Со1ог(сст, с) Л Ореп(сап) Берест: Со1ог(х, с)) Схемы действий просты и понятны за одним исключением: предварительные условия и эффекты теперь могут содержать переменные, которые не являются ча- стью списка переменных действия. Так, в действии Ренп1(х, сап) не упоминается переменная с, представляющая цвет краски в банке. В случае полностью наблюда- емой среды это не допускается, — потребуется явно упомянуть цвет краски в дей- ствии: Рат1(х, сап, с). Но в случае частично наблюдаемой среды мы можем знать, а можем и не знать цвет краски в конкретной банке. Чтобы решить поставленную задачу в частично наблюдаемой среде, агенту по- требуется рассуждать о результатах своего восприятия, получаемых им в процессе выполнения плана. Реальные данные восприятия будут предоставляться датчика- ми агента, когда он действительно будет выполнять действия, поэтому при пла- нировании ему потребуется некоторая модель его датчиков. В главе 4 эта модель была представлена функцией Рексерт(5). Для целей планирования потребуется до- полнить описание на языке РООБ схемой нового типа — ► схемой восприятия. Регсер((Со1ог(х, с), РКЕСОЫЭ: ОЬ]ес1(х) Л /пИеи’(х)) Регсер((Со1ог(сап, с), Ряесоно: Сап(сап) Л 1пУ1ем>(сап) Л Ореп(сап)) Первая схема сообщает, что всякий раз, когда агент будет видеть некоторый объект, он будет воспринимать цвет этого объекта (т.е. для объекта х агент узнает значение истинности выражения Со1ог(х, с) для всех с). Вторая схема говорит, что если агент увидит открытую банку, то воспримет цвет краски в ней. Поскольку в этом мире нет внешних событий, цвет объекта останется прежним, даже если он непосредственно не воспринимается агентом, пока он не выполнит действие, из- меняющее цвет этого объекта. И конечно, агенту также потребуется действие, по- зволяющее объектам (по одному за раз) попасть в поле зрения агента Ас1юп(ЬоокА1(х), РКЕССЖО:/иР7ем'(у) Л (х у) Еееест:/л Ием'Ос) Л ->1пИе\г(у)) В случае полностью наблюдаемой проблемной среды в схеме Регсер1 отсут- ствовали бы какие-либо предусловия для каждой флюенты. С другой стороны,
бессенсорный агент вообще не имеет схем Регсер!. Обратите внимание, что даже агент вообще без каких-либо датчиков также может решить эту задачу с покраской мебели. Одно из возможных решений состоит в том, чтобы открыть любую банку с краской и покрасить ею как стул, так и стол, принудительно приведя их к одно- му и тому же цвету (даже если сам агент не знает, какой это цвет). Агент, использующий условное планирование, способен создать лучший план. Прежде всего он посмотрит на стол и стул, чтобы определить их цвет, и если он одинаков, то план выполнен. Затем, если это не так, агент посмотрит на банки с краской и, если есть банка с краской такого же цвета, как и у одного из предметов мебели, покрасит этой краской и другой предмет. В противном случае агент покра- сит и стол, и стул одной произвольно выбранной краской. Наконец непрерывно планирующий (рпИпе р1аппт%) агент может сначала со- здать условный план с меньшим количеством ветвей — возможно, проигнориро- вав возможность того, что краска ни в одной из банок не совпадет с цветом мебе- ли — и решать проблемы, когда они возникают, посредством перепланировки. Он также способен справляться с неточностями в схемах его действий. В то время как при условном планировании просто предполагается, что результат выполняемых действий всегда будет успешным — достаточно покрасить стул, и на этом рабо- та заканчивается, — перепланирующий агент способен проверить полученные ре- зультаты и составить дополнительный план для исправления любых непредвиден- ных отказов: наличия неокрашенных участков или просвечивания прежней краски через новое покрытие. В реальном мире агенты обычно используют комбинацию разных подходов. Производители автомобилей продают запасные колеса и надувные подушки без- опасности, что представляет собой физическое воплощение ответвлений услов- ного плана, позволяющих справляться с проколами шин или авариями. С другой стороны, большинство водителей автомобилей никогда не учитывают такой воз- можности, поэтому отвечают на возникновение подобных проблем как перепла- нирующие агенты. Как правило, агенты создают условные планы только для та- ких непредвиденных ситуаций, которые могут иметь важные последствия и есть достаточно большая вероятность того, что они возникнут. Поэтому водитель ав- томобиля, решившийся на поездку через пустыню Сахара, должен иметь четко разработанные планы на случай различных поломок и отказов, тогда как рядовая поездка в соседний супермаркет требует гораздо меньше предварительного плани- рования. Далее каждый из трех упомянутых выше подходов к планированию будет рассмотрен более подробно. 11.5.1. Бессенсорное планирование В разделе 4.4.1 была представлена основная идея поиска в пространстве довери- тельных состояний с целью нахождения решения для бессенсорных задач. Преобра- зование бессенсорной задачи планирования в задачу планирования доверительных
состояний выполняется примерно также, как и в разделе 4.4.1. Основные различия заключаются в том, что базовая модель физического перехода представлена набо- ром схем действий, а доверительное состояние может быть представлено логиче- ской формулой, а не явно перечисленным множеством состояний. Будем предпола- гать, что лежащая в основе задача планирования является детерминированной. В начальном доверительном состоянии для бессенсорной задачи окраски мебе- ли флюенты 1пУ1е\м можно игнорировать, поскольку у агента нет никаких датчи- ков. Кроме того, как известные неизменяемые факты можно принять ОЬ]ес1(ТаЫе) Л ОЬ]ес1(Сксйг) Л Сап(Сх) Л Саи(С2), поскольку они присутствуют в каждом доверительном состоянии. Агент не знает, какого цвета объекты или кра- ска в банках, а также открыты банки или закрыты, но он знает, что объекты и кра- ска в банках имеют цвет: Ух 3 с Со1ог(х, с). После сколемизации (см. раздел 9.5.1) мы получаем начальное доверительное состояние: Ьо = Со1ог(х, С(х)). В классическом планировании, где принято допущение о замкнутости мира, можно было бы предположить, что любые флюенты, не упоминаемые явно в опре- делении состояния, имеют значение/аГ^е, но в бессенсорном (и частично наблю- даемом) планировании необходимо перейти к допущению об открытости мира, при котором состояния включают как положительные, так и отрицательные флю- енты, и если некоторая флюента не упоминается, то ее значение нам просто неиз- вестно. Следовательно, доверительное состояние точно соответствует множеству возможных миров, удовлетворяющих этой формуле. Учитывая это начальное до- верительное состояние, решением будет следующая последовательность действий: [КетоуеЫс1(Сапх), Ра1п1(Ска1г, Сапх), РатЦТаЫе, Сапх)\. Теперь покажем, как доверительное состояние изменяется в процессе прохож- дения последовательности выполняемых действий, чтобы показать, что конечное доверительное состояние удовлетворяет цели. Во-первых, отметим, что в некотором доверительном состоянии Ь агент может рассматривать любое действие, предпосылки которого удовлетворяются в Ъ. (Дру- гие действия не могут использоваться, так как функция определения преемника не определяет эффектов действий, предпосылки которых не могут быть удовлетворе- ны.) В соответствии с уравнением (4.4) в разделе 4.4.1 общая формула для обнов- ления доверительного состояния Ъ при заданном применимом действии а в детер- минированном мире выгладит следующим образом: У = КЕ8иьт(/>, а) = {$': $' = КЕ8ШЛ>($, а) и з е Ь}, где функция ЯЕЗиьТр определяет физическую функцию определения преемника. На текущий момент мы полагаем, что начальное доверительное состояние всег- да является конъюнкцией литералов, т.е. формулой 1-СКЕ. Чтобы построить но- вое доверительное состояние У, следует рассмотреть, что происходит с каждым
литералом (. в каждом физическом состоянии 5 в доверительном состоянии Ь, ког- да применяется действие а. Для литералов, значение истинности которых уже из- вестно в Ъ, значение истинности в У вычисляется из текущего значения и списка добавления и удаления действия а. (Например, если находится в списке удаления действия, то в У добавляется ~’^.) А как поступить с литералом, значение истинно- сти которого в Ь нам неизвестно? Здесь возможны три варианта. 1. Если действие добавляет литерал то I будет истинным в У независимо от его исходного значения. 2. Если действие удаляет литерал С, то (. будет ложным в У независимо от его исходного значения. 3. Если действие никак не влияет на литерал С, то будет сохранять свое пер- воначальное значение (которое является неизвестным) и не будет представ- лено в У. Следовательно, можно видеть, что процедура вычисления У практически иден- тична варианту с полностью наблюдаемой средой, который описывается уравне- нием (11.1) в разделе 11.1: У = КЕ8иьт(/>, а) = (Ь - ВЕЬ(а)) и Аоо(а). Однако здесь мы не можем полностью использовать семантику множеств, пото- му что, во-первых, сначала нужно убедиться в том, что У не содержит как Д так и и во-вторых, потому что атомарные высказывания могут содержать несвязан- ные переменные. Но это все еще тот случай, когда КЕ811ЬТ(/>, а) вычисляется, начи- ная с Ъ и устанавливая значение/а1$е для любого атомарного выражения, которое присутствует в списке ВЕЬ(а), и значение 1гие — для любого атомарного выраже- ния, которое присутствует в списке Аоо(а). Например, если к начальному довери- тельному состоянию Ьо применить действие Ретохе ЫУ(Сап х), то можно получить Ьх = Со1ог(х, С(х)) Л Ореп(Сапх). Затем применяем действие РсйпЦСИсйг, Сапх) — предусловие Со1ог(Сапх, с) удов- летворяется литералом Со1ог(х, С(х)) со связкой {х/Сапх, с/С(Сап^} — и получаем новое доверительное состояние Ьг = Со1ог(х, С(х)) Л Ореп(Сапх) Л Со1ог(С1ипг, С(Сапх)). Наконец применяем действие РатКТаЫе, Сапх) и получаем Ь3 = Со1ог(х, С(х)) Л Ореп(Сапх) Л Со1ог(Сксйг, С(Сапх)) Л Со1ог(ТаЫе, С(Сапх)). Это конечное доверительное состояние удовлетворяет цели Со1ог(ТаЫе, с) Л Со1ог(Сксйг, с) с переменной с, связанной с С(Сапх). Приведенный выше анализ правила обновления продемонстрировал очень важный факт: семейство доверительных состояний, определенных как конъюнкции
литералов, является замкнутым для обновлений, определяемых схемами действий язы- ка РООЬ То есть, если изначально доверительное состояние представлено как конъ- юнкция литералов, любое его обновление в результате даст конъюнкцию лите- ралов. Это означает, что в мире с п флюентами любое доверительное состояние может быть представлено в виде конъюнкции размера О(п). Это очень обнадежи- вающий результат, учитывая, что в таком мире возможно 2" различных состоя- ний. Он также указывает, что можно компактно представить все подмножества из этих 2" состояний, которые когда-нибудь потребуются. Более того, процесс провер- ки доверительных состояний, являющихся подмножествами или надмножествами ранее посещенных доверительных состояний, также будет простым, по крайней мере в пропозициональном случае. Ложкой дегтя в этой приятной картине является тот факт, что она работает только для схем действий, имеющих один и тот же эффект для всех состояний, в которых выполняются их предусловия. Именно это свойство позволяет сохра- нить представление доверительного состояния в форме 1 -СКЕ. Если же хотя бы один эффект может зависеть от состояния, между флюентами вводятся зависимо- сти и возможность представления доверительного состояния в форме 1-СКЕ утра- чивается. Рассмотрим, например, простой мир пылесоса, представленный в разделе 3.2.1. Определим в нем флюенты А(Ь и А1К для местонахождения робота и флюенты С1еапЬ и С1еапК — для состояния квадратов. Согласно определению задачи дей- ствие 8иск не имеет предусловий — оно всегда может быть выполнено. Сложность здесь в том, что его эффект зависит от расположения робота: когда истинна флю- ента А(Ц результатом будет С1еапЬ, а когда истинна А1К, результатом будет С1еапК. Для представления таких действий в схемы действий потребуется ввести нечто но- вое: ► условный эффект. Его синтаксис имеет вид ‘ЧуЬеп условие, эффект”, где условие — это логическая формула для сравнения с текущим состоянием, а эф- фект — это формула, описывающая результирующее состояние. Для мира пыле- соса схема действия 8иск будет такой: Ас(юп(8иск, Еееест: ^Ьеп А1Ь\ С1еапЬ А 1^Ьеп А1К\ С1еапК). Применительно к исходному доверительному состоянию Тгие результирующее доверительное состояние будет (А1Ь А С1еапЕ) V {А1К А С1еапК), которое уже не представлено в форме 1-СНЕ. (Этот переход можно увидеть на рис. 4.14 в разде- ле 4.4.1.) В общем случае условные эффекты могут приводить к произвольным за- висимостям между флюентами в доверительном состоянии, что в худшем случае имеет следствием экспоненциальный рост размера доверительных состояний. Важно понимать разницу между предусловиями и условными эффектами. Для всех условных эффектов, условия которых удовлетворяются, их эффект будет при- менен при генерировании результирующего доверительного состояния. Если же ни для какого условного эффекта условие не удовлетворяется, состояние остается
неизменным. С другой стороны, если не удовлетворено предусловие, то данное действие вообще не применимо и результирующее состояние является неопреде- ленным. С точки зрения бессенсорного планирования лучше иметь условные эф- фекты, чем неприменимое действие. Например, очень просто разделить действие 8иск с условным эффектом на два действия с безусловными эффектами: Ас1юп(8искЬ, Ркесоыо:Л^; Еррест: С1еапЕ) Ас1юп(8искК, Ркесоыо:Л/Л; ЕггЕСТ:С/еаиЯ). Теперь у нас есть только безусловные схемы, так что доверительные состояния всегда будут сохранять свою форму 1-СКЕ, но, к сожалению, у нас отсутствует возможность определить применимость действий 8искЬ и 8искК в исходном дове- рительном состоянии. Кажется невозможным избежать того, что нетривиальные задачи будут вклю- чать в себя доверительные состояния сложной формы, — точно такие, как те, с ко- торыми мы встретились при обсуждении задачи оценки состояния в мире вампуса (см. рис. 721 в разделе 7.7.3). Как решение тогда было предложено использовать пер- вое приближение к точному доверительному состоянию. Например, доверительное состояние может оставаться в форме 1-СКЕ, если оно будет включать все литера- лы, значения истинности которых могут быть определены, а все остальные литералы будут обрабатываться как неизвестные. Хотя такой подход является непротиворечи- вым — в том смысле, что никогда не будет сгенерирован неправильный план, — он является неполным, так как может оказаться не в состоянии найти решение для за- дач, которые по необходимости включают взаимодействие между литералами. Мож- но привести простейший пример: если цель состоит в том, чтобы робот находился на чистом квадрате, то план [8иск] является решением, но бессенсорный агент с обя- зательным сохранением формы 1-СИГ для доверительных состояний его не найдет. Вероятно, лучшее решение заключается в поиске таких последовательностей действий, которые сохраняют доверительное состояние настолько простым, на- сколько это возможно. В бессенсорном мире пылесоса последовательность дей- ствий [Я/&Л/, 8иск, Ье$1,8иск\ генерирует следующую последовательность довери- тельных состояний. Ьц = Тгие ЬХ=А1& Ь2 = А1& Л С1еапК Ь3 = А1Ь Л С1еапК Ь4 = А1Ь Л С1еапК Л С1еапЬ Таким образом, агент все же мож ет решить задачу, сохраняя при этом свое дове- рительное состояние в форме 1-СМЕ, даже если некоторые последовательности дей- ствий (например, начинающиеся с 8иск) выводят его из формы 1-СИЕ ЕУгот общий
подход справедлив и для людей: мы всегда выполняем небольшие действия (уточня- ем время, похлопываем по карманам, чтобы убедиться, что ключ от машины с собой, читаем дорожные указатели, проезжая по незнакомому городу), чтобы устранить не- определенность и сохранить свое доверительное состояние управляемым. Существует и другой, совершенно отличный подход к проблеме неуправляемо- го, сложного доверительного состояния: вообще не беспокоиться о его вычисле- нии. Предположим, что Ьо — начальное доверительное состояние, и нам необходи- мо установить доверительное состояние, которое будет получено в результате выполнения последовательности действий [а15..., ат]. Вместо того чтобы выпол- нять все требуемые вычисления явно, просто представим его как “Ьо затем ат]”. Это ленивое, но однозначное представление доверительного состоя- ния, и оно вполне краткое — О(и + ?и), где и — это размер начального доверитель- ного состояния (предполагается, что оно представлено в форме 1-СЫР), а т — это максимальная длина последовательности действий. Как представление довери- тельного состояния этот вариант, однако, имеет один недостаток: определение, до- стигнута ли цель или является ли действие применимым, может потребовать боль- шого объема вычислений. Расчет может быть реализован как проверка логического следствия: если Ат представляет набор аксиом определения преемника, необходимых для определе- ния возможности реализации действий ., ат — как это объяснялось в отноше- нии решателя ЗАТРьаы в разделе 11.2.3, — и От утверждает, что целевое выраже- ние будет истинным после т этапов, то план достигает цели, если Ьо Л Ат |= Ст, т.е. Ьо ЛАт Л -|С7т невыполнимо. Учитывая возможности современных решателей 8АТ, вполне возможно, что проверить это будет намного быстрее, чем вычислять полные доверительные состояния. Например, если ни одно из действий в последо- вательности не имеет некоторой флюенты цели в своем списке добавления, реша- тель 8АТ немедленно это обнаружит. Он также поможет, если частичные результа- ты о доверительном состоянии — например, знание о том, какие флюенты являются истинными или ложными — кешируются для упрощения последующих вычислений. Последняя часть головоломки бессенсорного планирования — это эвристиче- ская функция для управления поиском. Смысл эвристической функции здесь такой же, как и в классическом планировании: оценка (возможно, допустимая) стоимо- сти достижения цели из заданного доверительного состояния. При этом в отно- шении доверительных состояний у нас есть один дополнительный факт: найти решение для любого подмножества доверительного состояния будет обязательно проще, чем найти решение для доверительного состояния в целом. Если Ьх С Ь2, то Л* < Ь* (Ь2). Следовательно, любая допустимая эвристика, вычисленная для подмножества, бу- дет допустимой и для доверительного состояния в целом. Наиболее очевидными кандидатами являются одноэлементные подмножества, т.е. отдельные физические
состояния. Можно взять любой случайный набор состояний присутству- ющих в доверительном состоянии Ъ, применить любую допустимую эвристику Л и вернуть Н(Ь) = тах{Л(5|),..., Л(5д,)} в качестве эвристической оценки для решения Ь. Можно также использовать недо- пустимую эвристику, например такую, как эвристика с пустым списком удаления (раздел 11.3), которая, как показывает практика, также работает довольно хорошо. 11.5.2. Условное планирование В главе 4 было показано, что условное планирование — разработка планов с ветвлением, выполняемым на основании результатов восприятия — подходит для сред с частичной наблюдаемостью, недетерминированностью или и тем, и другим. Для частично наблюдаемой задачи окраски мебели со схемой восприятия, приве- денной выше, одно из возможных условных решений будет следующим. [ЬоокАКТаЫе), ЬоокА1(Сксйг), И Со1ог(ТаЫе, с) Л Со1ог(Ска1г, с) <Ьеп 1УоОр е!яе [КетоуеЫс1(Сапх), ЬоокАЦСап^, КетоуеЫ<1(Сап2), ЬоокА1(Сап2), И Со1ог(ГаЫе, с) Л Со1ог(сап, с) СЬеп РатЦСкспг, сап) еке И Со1ог(С1и11г, с) Л Со1ог(сап, с) Леп Рат1(ТаЫе, сап) е!зе [РатЦСкагг, Сап}), РатЦТаЫе, Сал,)]]] Переменные в этом плане следует считать связанными с кванторами существова- ния; во второй строке говорится, что если существует какой-то цвет с, в который уже окрашены и стол, и стул, то для достижения цели агенту ничего не нужно де- лать. При выполнении этого плана агент с условным планированием может под- держивать свое доверительное состояние как логическую формулу и оценивать ус- ловие в каждой ветви плана, определяя, следует ли из доверительного состояния формула условия или же ее отрицание. (Обеспечение того, чтобы агент никогда не оказался в доверительном состоянии, в котором значение истинности формулы ус- ловия является неизвестным, возлагается на алгоритм условного планирования.) Обратите внимание, что при условиях, сформулированных в логике первого по- рядка, формула может быть удовлетворена более чем одним способом, например условие Со1ог(ГаЫе, с) Л Со1ог(сап, с) может быть удовлетворено подстановками {сап/Сап{} и {сап/Сап2}, если обе банки содержат краску того же цвета, в который выкрашен стол. В этом случае агент может выбрать любую удовлетворяющую ус- ловие подстановку и применить ее к остальной части плана. Как было показано в разделе 4.4.2, вычисление нового доверительного состоя- ния Ь после выполнения действия а и последующего восприятия выполняется в два этапа. На первом этапе вычисляется доверительное состояние после выполне- ния действия точно так же, как и в случае бессенсорного агента:
Ъ ={Ь- ВЕЬ(а)) О Аоо(а), где, как и ранее, предполагается, что доверительное состояние представлено в виде конъюнкции литералов. Второй этап немного сложнее. Предположим, что ре- зультаты восприятия были получены как литералырх,..., рк. Можно подумать, что необходимо просто добавить их в доверительное состояние; фактически можно также сделать вывод, что предусловия для восприятия выполнены. Теперь, если восприятие р имеет ровно одну схему восприятия, РегсерЦр, Ркесомо: с), где с представляет собой конъюнкцию литералов, то эти литералы могут быть введены в доверительное состояние вместе ср. С другой стороны, если восприятиер име- ет более одной схемы восприятия, для которых предусловия могут иметь место в соответствии с предсказанным доверительным состоянием Ь, то нам потребуется добавить дизъюнкцию этих предусловий. Очевидно, что в результате доверитель- ное состояние утратит форму 1-СКЕ и это приведет к тем же сложностям, что и в случае условных эффектов, с почти такими же классами решений. Имея механизм для вычисления точных или приблизительных доверительных состояний, можно генерировать условные планы с использованием расширенного прямого И-ИЛИ-поиска в пространстве доверительных состояний, как это пред- лагалось в разделе 4.4. Действия с недетерминированными эффектами — которые просто определяются с помощью дизъюнкции в предложении Еееест схемы дей- ствия — могут быть включены в расчеты обновленного доверительного состояния с минимальными изменениями и без необходимости внесения каких-либо измене- ний в алгоритм поиска? В отношении эвристической функции многие из методов, предложенных для бессенсорного планирования, применимы и в частично наблю- даемых, недетерминированных задачах. 11.5.3. Непрерывное планирование Представьте, что вы наблюдаете за роботом, выполняющим точечную сварку на сборочной линии автомобильного завода. Быстрые, точные движения робота повто- ряются вновь и вновь каждый раз, когда очередной автомобиль поступает к нему на обработку. Хотя технически это впечатляет, робот, вероятно, вовсе не покажется вам разумным, поскольку все его движения представляют собой фиксированную, заранее запрограммированную последовательность, — робот явно “не знает, что он делает” в любом смысле этих слов. Теперь предположим, что плохо прикрепленная дверь падает с автомобиля на пол, как только робот собирается применить к ней точечную сварку. Робот быстро заменяет свой сварочный привод захватом, подни- мает дверцу, проверяет наличие царапин и снова прикрепляет ее к машине, затем отправляет электронное письмо начальнику линии, вновь подключает сварочный 3 Если для недетерминированной задачи потребуются циклические решения, алго- ритм И-ИЛИ-поиска следует обобщить до циклической версии, такой как БАО* (Хансен и Зильберштейн [960], 2001).
привод и возобновляет свою работу. Теперь поведение робота кажется целенаправ- ленным, а не рутинным, и можно предположить, что это уже не часть обширного, заранее разработанного условного плана, а результат непосредственной, вызванной сложившейся ситуацией перепланировки процесса, что, в свою очередь, означает, что робот действительно должен знать, что он пытается сделать. Перепланировка предполагает некоторую форму ► контроля выполнения с целью обнаружения необходимости нового плана. Подобная потребность может возникнуть, когда агенту с условным планированием просто надоедает планиро- вать свою реакцию на каждую небольшую непредвиденную ситуацию, например на то, что с неба ему на голову может что-нибудь упасть.4 И это означает, что ус- ловный план остается в незавершенной форме. Так, некоторые ветви частично со- ставленного условного плана могут просто заканчиваться указанием Кер1ап (пе- репланировать), — если подобная ветвь плана будет достигнута в процессе его выполнения, агент вернется в режим планирования. Как уже отмечалось, реше- ние о том, какую часть задачи следует решить заранее, а какую оставить для воз- можного перепланирования, включает поиск множества компромиссов между воз- можными событиями с различными заграгами и вероятностью их возникновения. Никто не хочет сначала дождаться ситуации, когда его автомобиль откажет посре- ди пустыни Сахара, и только тогда задуматься над тем, хватит ли ему имеющего- ся запаса воды. Перепланирование может потребоваться, если модель мира агента неверна. Мо- дель для действия может иметь ►отсутствующее предусловие, например агент может не знать, что для снятия крышки банки с краской часто может требоваться отвертка. Модель может иметь ►отсутствующий эффект — при покраске объ- екта краска также может попасть на пол. Или же в модели может обнаружиться ► отсутствующая флюента, которой просто нет в используемом представлении, например обсуждавшаяся выше модель задачи окраски мебели не содержит упо- минаний о количестве краски в банке, о том, как действия в модели влияют на это количество, или о необходимости, чтобы это количество не было нулевым. В мо- дели также может не хватать мер предосторожности в отношении ► внешних со- бытий, таких как ситуация, когда кто-то опрокинул банку с краской. Внешние со- бытия могут также включать изменения в цели, такие как добавление требования, чтобы стол и стул не были окрашены в черный цвет. Без способности контролиро- вать и перепланировать поведение агента, вероятно, будет очень уязвимым, легко подвергающимся нарушениям, если он полностью полагается на абсолютную пра- вильность своей модели. 4 В 1954 году миссис Ходжес из Алабамы ударил метеорит, пробивший крышу ее дома. В 1992 году осколок метеорита Мбале попал в голову маленького мальчика, — к счастью, его полет за- тормозили банановые листья. (Дженнискенс и др. [1134], 1994). А в 2009 году немецкий мальчик утверждал, что ему в руку попал метеорит размером с горошину. В результате каждого из этих инцидентов никто не получил серьезных травм, так что можно предположить, что потребность в предварительном планировании защиты от подобных случайностей несколько преувеличена.
У непрерывно планирующего агента есть выбор из (как минимум) трех различ- ных подходов к контролю за состоянием среды во время выполнения плана. • ► Контроль действий. Перед выполнением действия агент проверяет, все ли его предусловия по-прежнему выполняются. • ► Контроль плана. Перед выполнением действия агент проверяет выпол- нимость всей оставшейся части плана. • ► Контроль цели. Перед выполнением действия агент проверяет наличие лучших вариантов целевых состояний, которых можно попытаться достичь. На рис. 11.12 схематически представлено, как осуществляется контроль дей- ствий. Агент отслеживает как свой первоначальный план (весъ_план)9 так и ту часть плана, которая еще не была выполнена (план). После выполнения нескольких пер- вых этапов плана агент полагает, что должен быть в состоянии Е, но обнаруживает, что на самом деле находится в состоянии О. В первоначальный план необходимо внести изменения — найти в нем некоторую точку Р, в которую агент сможет вер- нуться из состояния О, и продолжить выполнение первоначального плана. (Вполне может оказаться, что искомая точка Р — это и есть целевое состояние О.) При пе- репланировании агент стремится минимизировать общую стоимость нового плана: часть исправление (от О до Р) плюс часть продолжение (от Р до О). Рис. 11.12. В начале предполагается, что выполнение последовательности действий весь_план позволит агенту перейти из состояния 5 в состояние (7. Агент последова- тельно выполняет этапы плана, пока не выясняется, что вместо состояния Е, как он ожидал, в действительности он оказался в состоянии О. Далее агент перепланиру- ет свои действия и вырабатывает поправку исправление для возвращения в состоя- ние Р первоначального плана, что позволит ему продолжить выполнение исходного плана (продолжение) и добраться до состояния 6
А теперь вернемся к предыдущему примеру: к задаче покраски мебели, в кото- рой нужно добиться, чтобы цвета стула и стола совпадали. Предположим, агент разработал следующий план: [РоокАЦТаЫе), ЬоокАЦСкаи), И Со1ог{ТаЫе, с) Л Со1ог(Ска1г, с) СЬеп №>Ор еке [КетоуеЫ<1{Сап1), ЬоокАКСап!), И Со1ог(ТаЫе, с) Л Со1ог(Сап1, с) Шеп Ра1п1{Скшг, Сап1) еке Вербам]]. Теперь агент готов выполнить план. Агент обнаруживает, что стол и кра- ска в банке белые, а стул — черный, поэтому далее он выполняет действие РагпЦОипг, Сап1). На данный момент классический планировщик объявил бы о победе — план был полностью выполнен. Но непрерывно планирующий агент, контролирующий действия, должен проверить результат и убедиться, что действие было выполнено успешно. Предположим, агент видит, что стул получился не белый, а серый, с неров- ной пятнистой окраской, поскольку прежняя, черная, краска просвечивает сквозь новую, белую. Следовательно, агенту необходимо выяснить, в какую позицию в прежнем плане ему нужно перейти для исправления ситуации, и выбрать требуе- мую последовательность корректирующих действий, позволяющих туда попасть. Агент замечает, что по предусловиям текущее состояние идентично действию РсйпЦСксйг, Сап^), и поэтому выбирает пустую последовательность исправле- ние (см. рис. 11.12) и принимает как последовательность продолжение ту же по- следовательность [Райи}, которую он только что выполнил. Приняв этот новый план, агент возобновляет контроль выполнения и предпринимает попытку выпол- нить действие Райи. Так он будет поступать до тех пор, пока стул не будет полно- стью окрашен в действительно белый цвет. Но обратите внимание: в данном слу- чае цикл создается процессом “запланировать-выполнить-перепланировать”, а не явным циклом в исходном плане. Также обратите внимание, что первоначальный план не должен покрывать все непредвиденные обстоятельства Если агент дости- гает этапа, отмеченного как Вербам, он может создать новый план (возможно, с ис- пользованием краски в банке Сал2). Контроль действий — очень простой метод контроля выполнения, но иногда он может приводить к менее разумному поведению, чем хотелось бы. Например, предположим, что в двух банках нет ни черной, ни белой краски, но есть банка с красной краской, поэтому агент формирует план окраски стула и стола в красный цвет. Однако на самом деле этой краски хватает только для окраски стула. В слу- чае контроля действий неудача будет обнаружена только после того, как стул уже будет окрашен, и выяснится, что для покраски стола краски недостаточно. Аген- ту потребуется выполнить перепланирование и подготовить новый план, напри- мер окраски стола и стула в зеленый цвет, воспользовавшись краской из второй банки. Решить проблему позволяет использование контроля плана — нарушение
будет обнаружено сразу же, как только выяснится, что текущее состояние уже не позволяет успешно завершить план. Таким образом, агент, открыв первую банку, сразу смог бы понять, что не стоит тратить время на окраску стула в красный цвет. В методе контроля плана эта цель достигается путем проверки предусловий успеха всего оставшегося плана, т.е. предусловий каждого этапа в плане, за исклю- чением тех из них, которые достигаются с помощью другого этапа в оставшемся плане. При использовании контроля плана выполнение потенциально невыполни- мого плана прекращается настолько быстро, насколько это возможно, вместо того чтобы следовать ему, пока отказ фактически не будет обнаружен.5 Метод контро- ля плана также позволяет учитывать случайные открытия — случайный успех. Если кто-то придет на помощь агенту и покрасит стол в красный цвет, пока он красит в красный цвет стул, то предусловия завершения плана будут выполнены (т.е. цель достигнута) и агент сможет раньше завершить работу. Относительно несложно модифицировать алгоритм планирования таким обра- зом, чтобы каждое действие в плане помечалось его предусловиями, что позволит реализовать контроль действий. Несколько сложнее будет реализовать контроль плана. Планировщики с частичным упорядочиванием обладают такими преиму- ществами, поскольку в них уже встроены структуры, поддерживающие связи, не- обходимые для контроля плана. Расширение пространства состояний планировщи- ков необходимыми пометками может быть реализовано посредством тщательной регистрации того, как флюенты цели проходят в плане при просмотре в обратном направлении. Теперь, после описания метода контроля и перепланирования, необходимо ответить на вопрос “Будет ли он работать?” Ответ на этот вопрос на удивление сложен. Если иметь в виду “Можем ли мы гарантировать, что агент всегда будет достигать цели?”, то ответом будет “Нет”, поскольку агент может непреднаме- ренно попасть в тупиковую ситуацию, из которой у него не будет возможности выбраться. Например, агент-пылесос может использовать ошибочную модель са- мого себя, не учитывающую, что его аккумуляторы способны разрядиться. Если это произойдет, он не сможет подготовить какой-либо план исправления такой ситуации. Если исключить из рассмотрения тупиковые ситуации, предположив, что агент может сформировать план достижения цели из любого состояния в сво- ей среде, и предположив, что эта среда действительно является недетермини- рованной — в том смысле, что подобный план всегда имеет какой-то шанс на успех в любой конкретной попытке его выполнения, — то агент в конечном ито- ге достигнет цели. Неприятности возникают лишь тогда, когда, казалось бы, недетерминированное действие на самом деле не является случайным, а скорее зависит от некоторого 5 Используя контроль плана, наш агент, наконец-то, становится умнее навозного жука (см. раздел 2.2.3). Теперь наш агент заметил бы, что шарик навоза в его лапках отсутству- ет, и поэтому перепланировал бы свои действия, чтобы получить еще один шарик навоза и заткнуть им свою норку.
предварительного условия, о котором агент не знает. Например, иногда банка с краской может оказаться пустой, поэтому окраска с ее использованием не даст ни- какого эффекта. И любое количество повторных попыток ничего в этом не изме- нит.6 Одно из решений состоит в случайном выборе одного из множества возмож- ных планов исправления ситуации вместо попыток каждый раз выполнить один и тот же план. В данном случае спасти ситуацию может план исправления, состо- ящий в открытии другой банки с краской. Лучшим подходом является обучение лучшей модели. Каждая ошибка в предсказании — это возможность для обучения, и агент должен быть способен модифицировать свою модель мира в соответствии со своим восприятием. С этого момента перепланировщик получит возможность строить планы исправления, исходя из сути проблемы, а не полагаясь на удачу при выборе подходящего варианта. 11.6. Время, расписания и ресурсы Классическое планирование говорит о том, что делать и в каком порядке, но ничего не говорит о времени: как долго действие будет выполняться и когда оно будет происходить. Например, в проблемной области функционирования аэропор- та оно позволяет разработать план с указанием, какой самолет куда летит и что пе- ревозит, но никак не определяет время вылета и время прилета. Это предмет ана- лиза в теории ► составления расписаний. Реальный мир также налагает ►ограничения на ресурсы: авиакомпания име- ет конкретное число сотрудников, и те, которые выполняют один рейс, не могут одновременно принимать участие в выполнении другого. В этом разделе представ- лены методы планирования и составления расписаний для задач с ограничениями на ресурсы. Используемый здесь подход состоит в том, чтобы “сначала планировать, а за- тем составлять расписание”. То есть общий процесс решения задачи делится на этап планирования, на котором определяются действия, необходимые для достиже- ния поставленных целей с учетом некоторых ограничений на порядок их выпол- нения, и этап составления расписания, на котором к плану добавляется временная информация, необходимая для получения гарантий его соответствия ресурсам и установленным срокам. Подобный подход обычно используется в реальных про- изводственных и логистических организациях, где этап планирования иногда ав- томатизирован, а иногда выполняется специалистами-людьми. 6 Бесполезное повторение одного и того же способа исправления плана полностью по- вторяет поведение, которое демонстрирует оса-сфекс (см. раздел 2.2.3).
11.6.1. Представление временных и ресурсных ограничений Типичная задача ► планирования производства (см. раздел 6.1.2) включает множество ► операций, каждая из которых имеет набор действий с некоторы- ми требованиями к порядку их выполнения. Каждое действие имеет ► продолжи- тельность и множество ограничений на ресурсы, необходимых для его выполне- ния. Ограничение определяет тип ресурса (например, болты, гаечные ключи или пилоты),требуемое количество этого ресурса и является ли данный ресурс ►рас- ходным материалом (например, болты будут уже недоступны для дальнейшего использования) или он может ► использоваться повторно (например, пилот за- нят во время полета, но снова будет доступен по его окончании). Действия также могут иметь своим результатом ресурсы (например, производственные действия и действия по пополнению запасов). Решение задачи планирования производства определяет время начала для каж- дого действия и должно удовлетворять все требования к порядку их выполнения и все ограничения на ресурсы. Как и в случае задач поиска и планирования, ре- шения могут быть оценены в соответствии с функцией стоимости, но в данном случае это может оказаться довольно сложно: возможны нелинейные затраты на ресурсы либо зависящие от времени потери из-за задержек опоздания и т.д. Для простоты предположим, что функция затрат — это только общая продолжитель- ность плана, которую принято называть ► временем выполнения (такезрап). На рис. 11.13 приведен простой пример: предельно упрощенная задача сборки двух автомобилей. В ней имеется две операции и каждая состоит из трех действий (]оЬу. \АМЕп%те, АсШ\УИее1$, 1пзрес1]. В высказывании Кеаоигсеа объявляется, что в задаче используется четыре типа ресурсов и для каждого из них указывается их количество, доступное в начале работ: один подъемник для двигателя, одна стан- ция установки колес, два инспектора и 500 гаек. В схемах действий определяется продолжительность выполнения и потребность в ресурсах каждого действия. Гай- ки являются расходным материалом, используемым при установке колес, а все остальные ресурсы “привлекаются” в начале выполнения действия и освобожда- ются после его завершения. Представление ресурсов в виде числовых величин, например 1п8ресЮга(2), а не в качестве именованных сущностей, например 1п8рес1ог(1^ и 1пзрес1ог(1-У), являет- ся примером метода, называемого ►агрегированием: группировка отдельных объ- ектов в категории, в которой все отдельные объекты неразличимы. В нашей задаче сборки не имеет никакого значения, какой из инспекторов проверит машину, по- этому здесь нет необходимости делать между ними различие. Агрегирование очень важно для уменьшения сложности задачи. Рассмотрим, что произойдет, если рассма- триваемый график работ включает 10 одновременно выполняемых действий 1пзрес1 при наличии только 9 инспекторов. Если инспекторы будут представлены в задаче как категория, отказ обнаружится немедленно, и алгоритм совершит возврат для по- иска другого варианта графика. Если каждый инспектор будет представлен индиви-
дуально, алгоритм попробует использовать все 9! способов назначения инспекто- ров на отдельные действия, прежде чем обнаружит, что ни один из них не работает. ЗоЪз({А<к1Еп%1пе1 -< АскНУкееЫ -< 1п$рес11}, {Ас1(1Еп%1пе2 -< АскНУИее1з2 -< 1пзрес12У) Ке8оигсе8(Еп%1пеНо1818(\), ]Укее1$1а11оп8(\\ 1п8рес!ог8(2), Ьи&Е/и1з(500)) АсИоп(Ас1с1Еп%1пе1, Вцкаткж: 30, 1}8Е: Еп^гпеН01818 (1)) АсИоп(Ас1с1Еп%те2, ОШАТЮЫ: 60, 1}8Е: Еп%1пеНо1818(\}) АсИоп (АскВУкееЕ 1, Ошатюы: 30, СОК815МЕ: А^№/5(20), 1}8Е: \Укее1$1айопз(\}) АсНоп(АскПУкее1з2, Вцкаткж: 15, СОИ8ЦМЕ: 1м%Ми18(20), О8Е: \Укее181айопз(\У) АсНоп(1пзрес!ь Ошатюы: 10, 17 8 Е: 1п8рес1ог8 (1)) Рис. 11.13. Задача планирования работ по сборке двух автомобилей при ограничен- ных ресурсах. Обозначение А -< В означает, что действие А должно предшествовать действию В 11.6.2. Решение задач составления расписаний Начнем с рассмотрения задачи только временного планирования, отложив на время вопрос о возможных ресурсных ограничениях. Чтобы свести к минимуму время выполнения плана (его продолжительность), необходимо найти самое ран- нее время начала выполнения для всех его действий в соответствии с ограничени- ями в отношении порядка их выполнения, имеющимися в задаче. Удобно предста- вить эти ограничения в виде направленного графа, отображающего связи между действиями, как показано на рис. 11.14. Чтобы определить возможное время на- чала и завершения каждого действия, можно воспользоваться ► методом крити- ческого пути (СгШса1 Ра1к Ме(кос1— СРМ), применив его к графу. Путем через Этот граф, представляющий план с частичным упорядочиванием, называется ли- нейно упорядоченная последовательность действий, начинающаяся в момент вре- мени $1аг1 и заканчивающаяся в момент времени Ртак. (Например, в плане с ча- стичным упорядочиванием на рис. 11.14 имеется два пути.) Путь, имеющий максимальную суммарную продолжительность, называет- ся ► критическим путем, поскольку именно он определяет продолжитель- ность выполнения всего плана. Сокращение продолжительности других путей не приведет к сокращению времени выполнения всего плана в целом, но задержка
начала любого действия в критическом пути замедлит осуществление всего плана. У действий вне критического пути есть определенный запас времени — времен- ное окно, в течение которого они могут быть выполнены. Это окно задается в терминах самого раннего возможного времени начала выполнения, Е8, и самого позднего возможного времени начала выполнения, Ь8. Разность Ь8-Е8 называет- ся ► резервом времени для действия. На рис. 11.14 видно, что для выполнения всего плана потребуется 85 минут, что каждое действие в верхнем задании имеет пятнадцатиминутный резерв времени, в пределах которого оно может быть начато, и что каждое действие на критическом пути не имеет резерва времени (по опреде- лению). Значения времени Е8 и Ь8 для всех действий, взятые вместе, составляют ► расписание, представляющее собой решение данной задачи. Рис. 11.14. Вверху’, представление временных ограничений для задачи планирования работ по сборке двух автомобилей, приведенной на рис. 11.13. Продолжительность каждого действия указана в нижней части прямоугольника. При решении этой за- дачи вычисляются самое раннее и самое позднее значения возможного времени на- чала выполнения действия, представленные в виде пары [Е5,15] в верхнем левом углу прямоугольника. Разность между этими двумя числами определяет резерв вре- мени выполнения для данного действия. Действия с нулевым резервом находятся на критическом пути, показанном на рисунке жирными стрелками. Внизу’, то же самое решение показано относительно временной шкалы. Темно-серые прямоугольники представляют собой временные интервалы, в течение которых действие может быть выполнено при соблюдении ограничений их упорядочивания. Свободная часть каж- дого серого прямоугольника определяет резерв времени данного действия
Приведенные ниже формулы определяют значения Е8 и 18, они составляют ос- нову алгоритма динамического программирования, применяемого для их вычис- ления. Е8(8(аг1) = О Е8(В) = тахл ВЕ8(А) + 1Уига11оп(А) Ь8(Е1п18к) = Е8(НтзК) Ь8(А) = ттв^АЕ8(В) - ВигаИоп(А ) Идея состоит в том, что вначале терму Е8(8(аг() присваивается значение 0. За- тем, как только будет выявлено действие В, такое, что все действия, непосред- ственно предшествующие В, уже имеют присвоенные значения Е8, терму Е8(В) присваивается максимальное из самых ранних значений времени завершения этих непосредственно предшествующих действий, где самое раннее время завершения действия определяется как самое раннее время начала плюс его продолжитель- ность. Этот процесс повторяется до тех пор, пока каждому действию не присваи- вается значение Е8. Значения 18 вычисляются аналогичным образом, но в ходе пе- редвижения в обратном направлении от действия Нтзк. Сложность алгоритма критического пути составляет всего лишь О(УЬ), где — количество действий, а Ь — максимальный коэффициент ветвления на вхо- де или выходе любого действия. (Чтобы убедиться в этом, достаточно отметить, что вычисления значений Ь8 и Е8 осуществляются по одному разу для каждого действия, а в каждом вычислении происходит итерация самое большее по Ь дру- гих действий.) Поэтому, если дано частичное упорядочение действий, задача поис- ка расписания с минимальной продолжительностью решается достаточно просто. Говоря математически, задачи определения критического пути решить так лег- ко потому, что они представляются в виде конъюнкции линейных неравенств, опре- деляющих время начала и окончания действий. Если ввести в задачу ограничения на ресурсы, то полученные в результате определения времени начала и окончания окажутся более сложными. Например, действия АМЕпрпе, которые на рис. 11.14 начинаются одновременно, требуют использования одного и того же ресурса Еп- §теНо181 и поэтому не могут выполняться одновременно, или, как говорят, пере- крываться. Здесь ограничение “не перекрываются” — это дизъюнкция двух ли- нейных неравенств, по одному для каждого возможного упорядочения действий. Введение дизъюнкций делает задачу составления расписаний с учетом ограниче- ний на ресурсы ЫР-сложной. На рис. 11.15 показано решение с самым коротким временем завершения — 115 минут. Это на 30 минут больше, чем 85 минут, необходимых для расписания без ограничений на ресурсы. Обратите внимание, что в этом расписании нет ни одного момента времени, когда требуется работа одновременно двух инспекторов, поэтому можно немедленно перевести одного из двух предлагаемых инспекторов на другую площадку, где его работа будет более продуктивной.
Рис. 11.15. Решение задачи планирования работ по сборке двух автомобилей, при- веденной на рис. 11.13, с учетом ограничений на ресурсы. Слева перечислены три ресурса, а действия выровнены по горизонтали с теми ресурсами, которые в них ис- пользуются. Существуют два возможных расписания, зависящих от того, при сбор- ке какого из автомобилей подъемник для двигателя используется первым. Здесь по- казано оптимальное решение продолжительностью 115 минут Существует долгая история работ в области оптимального составления рас- писаний. Основная задача была поставлена в 1963 году — найти оптимальное расписание для задачи, включающей всего 10 машин и 10 операций по 100 дей- ствий — и оставалась нерешенной в течение 23 лет (Лоулер и др. [1365], 1993). Было испытано много подходов, включая методы ветвей и границ, имитации от- жига, поиска с запретами и удовлетворения ограничений. Одним из популярных подходов является эвристика к минимального резерва времени: на каждой ите- рации планируется как можно более ранний запуск любого из незапланирован- ных действий со всеми уже запланированными предшественниками, имеющего наименьшую задержку. Затем обновляются значения времени Е8 и Ь8 для каждо- го затронутого действия — и цикл повторяется. Эта жадная эвристика напомина- ет эвристику минимальных оставшихся значений (МКУ) в методах удовлетворе- ния ограничений. На практике она часто работает хорошо, но для нашей задачи планирования работ по сборке автомобилей она дает 130-минутное решение, а не 115-минутное, показанное на рис. 11.15. До этого момента предполагалось, что множество действий и ограничения упо- рядоченности фиксированы. При таких допущениях каждая задача составления рас- писания может быть решена с помощью неперекрывающейся последовательности действий, в которой избегаются все конфликты ресурсов при условии, что каждое действие осуществимо само по себе. Однако, если задача составления расписания доказуемо очень сложна, то может оказаться не слишком хорошей идеей решать ее именно таким способом, — может быть лучше пересмотреть действия и ограниче- ния в плане, что иногда приводит к получению гораздо более простой задачи со- ставления расписания. Следовательно, имеет смысл объединить планирование и составление расписания, приняв во внимание продолжительность и возможности перекрытия действий при построении плана. Некоторые алгоритмы планирования из раздела 11.2 могут быть расширены с целью обработки подобной информации.
11.7. Анализ различных подходов к планированию________________ В планировании объединяются две важнейшие области ИИ, которые мы уже рассмотрели: поиск и логика. Поэтому планировщик может рассматриваться как программа, которая ищет решение, или как программа, которая (конструктивно) доказывает существование решения. Перекрестное обогащение идеями из этих двух областей позволило программам-планировщикам масштабироваться от игру- шечных проблем, в которых количество действий и состояний было ограничено примерно дюжиной, до реальных промышленных приложений с миллионами со- стояний и тысячами действий. Планирование — это, прежде всего, приложение усилий в борьбе с комбина- торным взрывом. Если в проблемной области имеется п примитивных высказы- ваний, то количество состояний становится равным 2". В борьбе с этой печальной ситуацией мощным оружием может оказаться выявление в задаче независимых подзадач. В лучшем случае — при полной декомпозиции задачи — достигается экспоненциальное ускорение. Однако возможность декомпозиции разрушается при наличии негативных взаимодействий между действиями. Решатель ЗАТРьмч позволяет закодировать логические отношения между подзадачами. Применение прямого поиска предполагает решение задачи с использованием эвристик в попыт- ках отыскать шаблоны (подмножества высказываний), которые покрывают незави- симые подзадачи. Поскольку этот подход эвристический, он может работать, даже если подзадачи не являются полностью независимыми. К сожалению, у нас пока нет четкого понимания, какие методы лучше всего подходят для решения тех или иных типов задач. Вполне вероятно, что появят- ся новые методы, возможно, обеспечивающие синтез высоковыразительных пред- ставлений первого порядка и иерархических представлений с высокоэффективны- ми развернутыми и пропозициональными представлениями, которые доминируют сегодня. Уже имеются примеры ► портфолио алгоритмов систем планирования, набор алгоритмов которых может быть применен к любой возникшей задаче. Это может быть сделано выборочно (система классифицирует каждую новую задачу, выбирая для нее наилучший алгоритм), параллельно (все алгоритмы будут рабо- тать одновременно, каждый на собственном ЦПУ) или с чередованием алгоритмов в соответствии с некоторым графиком.
Резюме В этой главе описано представление на языке РЭЭЬ как классических, так и расширенных задач планирования и предложено несколько алгоритмических под- ходов поиска их решений. Основные идеи, изложенные в этой главе, перечисле- ны ниже. • Системы планирования строятся на применении алгоритмов решения задач, работающих с развернутым представлением состояний и действий. Такие представления обеспечивают возможность вывода эффективных эвристик, не зависящих от проблемной области, а также разработки мощных и гибких алгоритмов для решения задач. • В языке РЭЬЬ (Р1апгйп& Оота1п ОерпИюп Ьап&иа&е — язык определения проблемной области планирования) исходные и целевые состояния описы- ваются как конъюнкции литералов, а действия представляются в терминах их предусловий и результирующих эффектов. Расширения языка обеспечи- вают представление в планах времени, ресурсов, восприятия, условных и иерархических планов. • Поиск в пространстве состояний может выполняться в прямом направле- нии (прогрессия) или в обратном направлении (регрессия). Эффективные эвристики могут быть выведены за счет принятия предположения о незави- симости подцелей, а также с использованием различных ослаблений задачи планирования. • Другие подходы включают кодирование задачи планирования как задачи бу- левой выполнимости (8АТ) или как задачи удовлетворения ограничений и выполнение явного поиска в пространстве планов с частичным упорядочи- ванием. • Планирование с помощью иерархической сети задач (ШегагсЫссй Танк №Гмогк— НТК) позволяет агенту получить совет от проектировщика про- блемной области в форме действий высокого уровня (Н1%к-Ееуе1 АсИопх, НЬА), которые могут быть реализованы различными способами в виде по- следовательности примитивных действий. Описание эффектов НЬА может быть выполнено с использованием ангельской семантики, позволяющей вывести доказуемо корректные планы высокого уровня без рассмотрения их низкоуровневой реализации. Метод НТК позволяет создавать очень боль- шие планы, необходимые для многих реальных приложений. • Условные планы позволяют агенту во время их выполнения получать ин- формацию о мире с помощью датчиков и использовать ее для определения той ветви плана, по которой он будет двигаться далее. В некоторых случаях также может использоваться бессенсорное планирование или конформное планирование для формирования плана, который в процессе выполнения не требует получения результатов восприятия. Как конформные планы, так
и условные планы могут быть выработаны посредством поиска в простран- стве доверительных состояний. Эффективное представление или вычисле- ние доверительных состояний является в этой области ключевой проблемой. • Непрерывно планирующий агент использует контроль выполнения и, если требуется, осуществляет корректирующие действия с целью возвра- та к первоначальному плану, выполнение которого было нарушено непред- виденной ситуацией, возникшей по причине недетерминированности дей- ствий, внешних событий или неточностей в его модели окружающей среды. • Во многих действиях потребляются ресурсы, такие как деньги, топливо или сырье. Эти ресурсы удобнее рассматривать в целом, как числовые величи- ны, и не пытаться рассуждать, скажем, о каждой отдельной монете или ку- пюре во всем мире. Время является одним из самых важных ресурсов. За его расходованием можно следить, применяя специализированные алгорит- мы составления расписаний или объединяя составление расписаний с пла- нированием. • В этой главе классическое планирование расширяется для охвата недетер- минированных сред (где результаты действий являются неопределенными), но это не последнее слово в планировании. В главе 17 описываются мето- ды для стохастических сред (в которых результаты действий имеют опреде- ленную связанную с ними вероятность): марковские процессы принятия ре- шений, частично наблюдаемые марковские процессы принятия решений и теория игр. В главе 22 показано, что обучение с подкреплением дает аген- ту возможность учиться правильному поведению на основании своих про- шлых успехов и неудач. Библиографические и исторические заметки Исследования в области планирования в теории ИИ явились результатом иссле- дований в областях выполнения поиска в пространстве состояний, доказательства теорем и теории управления. Первой крупной системой планирования стала система 8ТЯ1Р8 (Фикес и Нильссон [738], 1971; [739], 1993), разработанная как планировщик для робота ЗЬакеу в Станфордском исследовательском институте. Первая версия программы работала на компьютере с объемом памяти всего 192 Кбайт. Ее общая структура управления была создана на основе программы ОРЗ (Оепега1 РгоЫет 8о1уег — общий решатель задач, Ньюэлл и Саймон [1668], 1961) — системы поис- ка в пространстве состояний, использующей анализ целей и средств (теапз-епск апсНузю). Со временем язык представления системы ЗТК1Р8 эволюционировал в язык АОЬ (АсНоп ИезспрПоп Ьап%иа%е — язык описания действий (Педнаулт [1762], 1986)), а затем — в язык РПОЬ (РгоЫет йотат йезспрНоп Ьап%иа%е — язык описания проблемной области задачи (Халлаб и др. [846], 1998)), который используется в
Международном конкурсе планирования А1Р8 с 1998 года. Последняя версия это- го языка — РООЬ 3.1 (Ковач [1294], 2011). Планировщики в ранних 1970-х выполняли декомпозицию задач посредством вычисления подпланов для каждой подцели с последующей увязкой субпланов в единую цепочку в некотором порядке. Для этого подхода, названного Сакердоти ([1955], 1975) клиненным планированием, вскоре было обнаружено, что он яв- ляется неполным. Он не позволяет решать некоторые очень простые задачи, такие как аномалия Зюссмана(см. упражнение 11.8), обнаруженная Алленом Брауном во время экспериментов с системой Наскек (Зюссман [2149], 1975). Полный пла- нировщик должен обеспечивать чередование действий из различных субпланов в пределах единой последовательности. Система ХУакрьан Уоррена ([2296], 1974) достигла этой цели и продемонстрировала, что язык логического программирова- ния Рго1о§ позволяет создавать исключительно краткие программы: УУакрьан — это всего 100 строк кода. В течение следующих 20 лет исследований доминировало планирование с ча- стичным упорядочиванием, — после публикации теоретических работ, описываю- щих обнаружение конфликтов (Тейт [2179], 1975) и защиту достигнутых условий от вмешательства (Зюссман [2149], 1975), а также появления реализации, вклю- чая Иоан (Сакердоти [1956], 1977) и Монни (Тейт [2181], 1977). Это привело к появлению формальных моделей (Чепмен [392], 1987; Макаллистер и Розенблитт [1524], 1991), позволяющих проводить теоретический анализ различных алгорит- мов и задач планирования, а также к появлению широко распространенной систе- мы 11СРОР (Пенберти и Вельд [1770], 1992). Позже Дрю МакДермотт заявил о своем подозрении, что акцент на плани- ровании с частичным упорядочиванием вытеснил другие методы, которые, воз- можно, следует пересмотреть в настоящее время, когда компьютеры получили в 100 раз больше памяти, чем во времена 8Ьакеу. Его программа ПиРОР (МакДер- мотт [1544], 1996) являлась планировщиком в пространстве состояний, исполь- зующем эвристику с пустым списком удаления. Планировщик Н8Р (НеипзНс 8еагск Р1аппег — планировщик с эвристическим поиском, Бонет и Геффнер [247], 1999; Хаслум [979], 2006) сделал поиск в пространстве состояний практичным и для больших задач планирования. Планировщик РР или Раз! Ропуагд (Хоффманн [1041], 2001; Хоффманн и Небель [1045], 2001; Хоффманн [1044], 2005) и его вари- ант Ра$тОо\ум\уа1Ш (Хельмерт [ 1007], 2006) выигрывали международные сорев- нования по планированию в 2000-х годах. Двунаправленный поиск (см. раздел 3.4.5), как известно, также страдает от не- достатка эвристик, но некоторые успехи уже были достигнуты при использовании обратного поиска для создания периметра вокруг цели, а затем — уточнения эв- ристики для прямого поиска в направлении к этому периметру (Торральба и др. [2223], 2016). Планировщик двунаправленного поиска 8умВа* победил в конкур- се 2016 года (Торральба и др. [2223], 2016).
В первом десятилетии XXI века исследователи обратились к языку РООЬ и па- радигме планирования в поисках эвристик, которые можно было бы использовать независимо от проблемной области. Хоффманн ([1044], 2005) анализирует про- странство поиска эвристики с пустым списком удаления. Эделькамп ([675], 2009) и Хаслум и соавт. ([977], 2007) описывают, как строить базы данных шаблонов для планирования эвристик. Фельнер и соавт. ([722], 2004) приводят обнадеживающие результаты использования базы данных шаблонов для решения головоломок со скользящими плитками, которые также можно рассматривать и как область плани- рования, но Хоффманн и соавт. ([1046], 2006) указывают на некоторые ограниче- ния в этой абстракции относительно задач классического планирования. Ринтанен в работе [1887] (2012) обсуждает специфическую для задач планирования эври- стику выбора переменных для решателей 8АТ. Хелмерт и соавт. ([1009], 2011) описывают систему Раз! Эо\уп\уагс1 8!опе 8оир (ЕЭ88), планировщик с портфолио алгоритмов, который, как в сказке о супе из камня, приглашает нас бросить в него столько алгоритмов планирования, сколько возможно. Система поддерживает множество учебных задач и для каждой задачи и каждого алгоритма записывает время выполнения и итоговую смету затрат на ее решение. Затем, столкнувшись с новой задачей, система использует свой прошлый опыт, чтобы принять решение, какой (или какие) из алгоритмов к ней применить, чтобы при заданных ограничениях на время выполнения попытаться найти реше- ние с минимальными издержками. Система РО88 победила в международных со- ревнованиях по планированию в 2018 году (Зип и Рёгер [2021], 2018). В работе Зипа и соавт. [2022] (2015) описывается подход к машинному обучению с целью автоматического обучения хорошему портфолио алгоритмов для конкретной но- вой задачи. Валлати и соавт. ([2245], 2015) дают обзор портфолио алгоритмов пла- нирования. Идея портфолио алгоритмов для задач комбинаторного поиска восхо- дит к работе Гомеса и Сельмана [888] (2001). Систла и Годенфроид в работе [2079] (2004) рассматривают снижение симмет- рии, а Годенфроид в [872] (1990) — эвристику для планирования с частичным упо- рядочиванием. Рихтер и Хельмерт в работе [1879] (2009) демонстрируют прирост эффективности прямого отсечения при использовании предпочтительных дей- ствий. Блум и Фюрст ([232], 1997) возродили область планирования с помощью сво- ей системы 6гарИр1ап, которая работала на несколько порядков быстрее, чем пла- нировщики с частичным упорядочиванием того времени. Брайс и Камбхампати ([328], 2007) дают обзор графов планирования. Использование для планирования исчисления ситуаций было введено Джоном Маккарти ([1530], 1963) и уточнено Рэем Рейтером ([1871], 2001). Кац и соавт. ([1200], 1996) исследовали различные способы пропозиционализа- ции схем действий и установили, что большинство компактных форм необязатель- но приводит к сокращению поиска решения. Систематический анализ был про- веден Эрнстом и соавт. ([693], 1997), который также разработал автоматический
“компилятор”, генерирующий пропозициональные представления для задач на языке РЭВЬ. Планировщик Вьасквох, сочетающий в себе идеи из решателей 6гарЬр1ап и ЗАТРьан, был разработан Каутцем и Селманом ([1202], 1998). Плани- ровщики, основанные на методах удовлетворения ограничений, включают СРьаы ван Бика и Чена ([2247], 1999) и ОР-С8Р (До и Камбхампаги [626], 2003). Был также отмечен интерес к представлению плана в виде ► бинарной диа- граммы решений (ВОР), компактной структуры данных для булевых выраже- ний, широко изучаемой в сообществе верификации оборудования (Кларк и Грум- берг [450], 1987; Макмиллан [1553], 1993). Существуют методы доказательства свойства из бинарных диаграмм решений, в том числе для свойства быть решени- ем задачи планирования. Цимагги и соавт. в работе [441 ] (1998) представляют пла- нировщик, основанный на этом подходе. Также использовались и другие представ- ления, такие как целочисленное программирование (Фоссен и др. [2284], 2001). Имеется несколько интересных сравнений различных подходов к планирова- нию. Элмерт ([1006], 2001) анализирует несколько классов задач планирования и показывает, что подходы на основе ограничений, такие как СгарЬр1ап и 8АТРьаы, являются лучшими для ИР-трудных проблемных областей, в то время как подхо- ды на основе поиска лучше проявляют себя в проблемных областях, где возмож- ные решения могут быть найдены без использования поиска с возвратами. Реша- тели СгарЬр1ап и 8А.ТРеаы сталкиваются с затруднениями в проблемных областях с большим количеством объектов, поскольку это означает, что они должны соз- давать множество действий. В некоторых случаях возникновение этой проблемы можно отложить или обойти за счет генерации пропозиционализированных дей- ствий динамически, по мере необходимости, вместо создания сразу всех их экзем- пляров перед началом поиска. Первым механизмом иерархического планирования была функция програм- мы 8ТК1Р8 для изучения ► макрооператоров (тасгор), состоящих из последова- тельности примитивных этапов (Файке и др. [737], 1972). В системе АВ8ТК1Р8 (Са- кердоти [1954], 1974) было введено представление об ►иерархии абстракции, благодаря чему планированию на более высоких уровнях было разрешено игно- рировать низкоуровневые предпосылки действий при выводе общей структуры рабочего плана. В докторской диссертации Остина Тейта ([2180], 1975) и работе Эрла Сакердоти [1956] (1977) были развиты основные идеи планирования НТК В работах Эрола, Хендлера и Нау [694] (1994) и [695] (1996) представлены пол- ный иерархический декомпозирующий планировщик, а также диапазон сложно- сти результатов для чистых НТМ-планировщиков. Метод представления НЬА и ангельской семантики, использованный в этой книге, принадлежит Марти и соавт. ([1506], 2007; [1507], 2008). Одна из целей иерархического планирования состоит в повторном использова- нии опыта предыдущего планирования, представленного в форме обобщенных пла- нов. Метод ►обучения, основанного на объяснениях (ехрктаНоп-Ьазес! 1еатт%), использовался в качестве средства обобщения ранее вычисленных планов в таких
системах, как 8оак (Лейрд и др. [1340], 1986) и РК01Л6У (Карбонелл и др. [368], 1989). Альтернативный подход заключается в сохранении ранее вычисленных пла- нов в их первоначальном виде и последующем повторном их использовании для решения новых, сходных проблем по аналогии с исходной задачей. Этот подход принят в области под названием ► планирование по прецедентам (сазе-ЬааеЧ р1аптп$, Карбонелл [368], 1983; Алтерман [38], 1988), и его сторонники полагают, что планирование по прецедентам должно рассматриваться как форма уточнения планирования, и предоставляют формальное обоснование для планирования с ча- стичным упорядочиванием по прецедентам (Камбхампати [1176], 1994). В ранних планировщиках отсутствовали условные выражения и циклы, но в не- которых могло использоваться принудительное формирование конформных пла- нов. В программе Иоан, разработанной Сакердоти, такой принудительный подход использовался для решения задачи о “ключах и ящиках” (задача, в которой плани- ровщик имеет мало информации о начальном состоянии). Мэйсон ([1511], 1993) показал, что в планировании поведения роботов часто можно и нужно отказаться от сбора информации с помощью датчиков, и описал бессенсорный план, позво- ляющий переместить инструмент в заданную позицию на столе посредством по- следовательности раскачивающих действий, независимой от начальной позиции. Голдмен и Бодди ([882], 1996) ввели термин конформное планирование {соп/огтаШ р1аптп%), отметив, что бессенсорные планы часто бывают эффектив- нее, даже если агент имеет датчики. Первым достаточно эффективным конформ- ным планировщиком была программа СопГоппагП ОгарЬр1ап (СОР) Смита и Уэл- да ([2092], 1998). Феррарис и Гуинкилья ([734], 2000), а также Ринтанен ([1885], 1999) независимо разработали конформные планировщики на основе алгоритма ЗАТрьаы. Боне и Геффнер в работе [248] (2000) описали конформный планиров- щик, основанный на эвристическом поиске в пространстве доверительных состо- яний, реализованный на идеях, впервые разработанных в 1960-х годах для частич- но наблюдаемых марковских процессов принятия решения, или РОМПР (РагНаЧу ОЬзегуаЫе Магкоу ОесЫоп Ргосе$$е$) (см. главу 17). В настоящее время существует три основных подхода к конформному планиро- ванию. В первых двух используется эвристический поиск в пространстве довери- тельных состояний: в системе Н8СР (Бертоли и др. [197], 2001) для представления доверительных состояний используются двоичные диаграммы решений (Втагу Оес1$юп О1а§гат — ВПП), тогда как Хоффманн и Брафмен ([ 1042], 2006) приняли ленивый подход вычисления предусловий и проверки целей по требованию с ис- пользованием решателя 8АТ. В третьем подходе, который отстаивает главным образом Юсси Ринтанен ([1886], 2007), вся задача бессенсорного планирования формулируется в виде бу- левой формулы с кванторами (РВР) и решается с помощью рВР-решателя общего назначения. Современные конформные планировщики работают на пять порядков быстрее, чем программа СОР. Победителем в области конформного планирова- ния на Международном конкурсе по планированию 2006 года стала система То
(Палакиос и Геффнер [1724], 2007), использующая эвристический поиск в про- странстве доверительных состояний и сохраняющая представление доверитель- ных состояний простым за счет определения производных литералов, покрываю- щих эффекты условий. Брайс и Камбхампати в работе [328] (2007) обсуждают, как граф планирования может быть обобщен для создания хороших эвристик для кон- формного и условного планирования. Подход к условному планированию, используемый в этой главе, основан на идеях из статьи Хоффманна и Брафмана [1043] (2005) с определенным влияни- ем эффективных алгоритмов поиска для циклических И-ИЛИ-графов, разрабо- танных Хименесом и Торрасом ([1138], 2000), а также Хансеном и Зильберштей- ном ([960], 2001). Проблема условного планирования получила больше внимания после публикации влиятельной статьи Дрю Мак-Дермотта Планирование и дей- ствие ([1541], 1978). Бертоли и соавт. ([198], 2001) описывают планировщик МБР (М<х1е1-Ва8ес1 Р1аппег), использующий двоичные диаграммы решений для конфор- много и условного планирования. Одни авторы используют термины “обусловлен- ное планирование” (сопсНИопа!р1аптп&) и “условное планирование” (сопНп&еп1 р1апгпп%) как синонимы, тогда как другие считают их различными, полагая, что “обусловленное” (сопсНбопа!) относится к действиям с недетерминированными эффектами, тогда как “условное” (сопбп§еп1) означает использование датчиков для преодоления частичной наблюдаемости. Глядя в ретроспективе, можно видеть, как появление основных классических алгоритмов планирования привело к созданию расширенных версий этих алго- ритмов для проблемных областей, связанных с учетом неопределенности. Разра- ботка методов быстрого прямого эвристического поиска привела к созданию ме- тодов поиска в пространстве доверительных состояний (Боне и Геффнер [248], 2000; Хоффманн и Брафмен [1043], 2005). Накопленный опыт использования ал- горитма ЗАТрьак привел к созданию стохастического алгоритма ЗАТрьаы (Майер- чик и Литтман [1478], 2003) и к разработке методов планирования с применением булевых логических выражений с кванторами (Ринтанен [1886], 2007). Разра- ботка методов планирования с частичным упорядочиванием привела к созданию программ (Этциони и др. [704], 1992) и СЫЬР(Пеот и Смит [1775], 1992). Опыт эксплуатации алгоритма 6гарЬр1ап привел к появлению программы Зепзогу ОгарЬр1ап, или ЗОР (Вельд и др. [2311], 1998). Первым планировщиком с непрерывным планированием и контролем выпол- нения был тандем из программы Рьаиех (Фикес и др. [737], 1972) и планиров- щика ЗТК1Р8, управлявшими роботом ЗЬакеу. Система 81РЕ (8уз1ет/ог 1п1егасйуе Р1аппт& апс! ЕхесиНоп топйопп%) Уилкинса ([2344], 1988) была первым плани- ровщиком, систематически занимавшимся перепланировкой. Она использовалась в демонстрационных проектах в нескольких проблемных областях, включая пла- нирование операций на полетной палубе авианосца, планирование производствен- ных процессов для австралийского пивзавода и планирование строительства мно- гоэтажных зданий (Картам и Левитт [1194], 1990).
В середине 1980-х годов пессимизм в отношении медленной работы и длитель- ности расчетов систем планирования привел к предложению рефлексных агентов, получивших название “системы ► реактивного планирования” (Брукс [312], 1986; Агре и Чапмен [24], 1987). Был разработан метод “Ошуегза! р1ап8” (Шоппере [2000], 1989), поддерживающий справочные таблицы для реактивного планирова- ния, но вскоре выяснилось, что это повторное открытие идеи стратегий, которая уже давно использовались в марковских процессах принятия решений (см. гла- ву 17). Кёниг в статье А%еп1-Сеп1еге(1 Зеагск ([1259], 2001) дал обзор методов не- прерывного планирования. Планирование с учетом ограничений по времени впервые было реализовано в программе ОЕУ18ЕК (Вере [2269], 1983). Проблема представления времени в пла- нах была решена Алленом ([33], 1984) и Дином и соавт. ([566], 1990) в системе Еоквпч. Программы Момык+ (Тейт и Уайтер [2182], 1984) и 81РЕ (Уилкинс [2345], 1990) обладали способностью рассуждать о распределении ограниченных ресур- сов по различным этапам плана. Программа О-Р1.АК (Белл и Тейт [158], 1985) применялась для планирования поставок программного обеспечения в компании Рпсе УУа^егЬоизе и для планирования сборки заднего моста автомобиля в компа- нии Да^иаг Саге. В двух планировщиках, 8ара (До и Камбхампати [627], 2001) и Т4 (Хаслум и Геффнер [978], 2001), используется прямой поиск в пространстве состояний в со- четании со сложными эвристиками для обработки действий, имеющих заданную продолжительность и требующих ресурсов. Альтернативой этому подходу явля- ется применение очень выразительных языков действий, но под управлением со- ставленных людьми эвристик, характерных для конкретной проблемной области, как это сделано в системах А8РЕЫ (Фукунага и др. [797], 1997), Н8Т8 (Джонссон и др. [1148], 2000) и 1хТеТ (Халлаб и Лорель [847], 1994). Был разработан и развернут ряд гибридных систем планирования и составле- ния расписаний: система 1818 (Фокс и др. [768], 1982; Фокс [767], 1990) использо- валась при составлении производственных графиков в компании УУсзИп^Иоизе, си- стема Оак.1 (Дескотг и Латомб [611], 1985) осуществляла планирование машинной обработки и конструирования механических деталей, система Еокык применя- лась для управления фабрикой, а система Момик+ использовалась как инструмент планирования поставок для военно-морского флота. В этой книге планирование и составление расписаний рассматриваются как две независимые задачи, одна- ко Кушинг и соавт. ([508], 2007) показали, что для определенных задач это может приводить к неполноте. Долгую историю имеет задача составления расписаний и графиков для аэрокос- мической отрасли. Программа Т-8СНЕО (Драббл [647], 1990) использовалась для составления графика выполнения последовательности команд миссии для спутни- ка УозаЬП. Программы Орт1М1»м-А1У (Ааруп и др. [3], 1994) и Рьаы-ЕК81 (Фучс и др. [795], 1990), основанные на программе О-Рьам, применялись в Европей- ском космическом агентстве для сборки космических аппаратов и планирования
наблюдений соответственно. Программа 8Р1КЕ (Джонстон и Адорф [ 1142], 1992) использовалась в 1ЧА8А для планирования наблюдений с помощью космическо- го телескопа Хаббл, а система 8расе 8Ьий1е Сгоипд Ргосевзт^ 8сЬедиНп§ ЗузТет (Дил и др. [564], 1994) осуществляла составление производственного расписания с охватом до 16 000 рабочих смен. Программа Кето1е А§еп1 (Мускеттола и др. [1648], 1998) стала первой автономной программой планирования и составления расписаний, используемой для управления космическим аппаратом, после ее раз- вертывания на борту космического зонда Е)еер 8расе Опе в 1999 году. Использо- вание приложений в космических исследованиях стимулировало разработку алго- ритмов для решения задачи распределения ресурсов (см. статьи Лабори ([1334], 2003) и Мускеттола ([1647], 2002)). Литература по теме составления расписаний представлена классической статьей-обзором Лаулера и соавт. ([1365], 1993), кни- гой Пинедо ([1791], 2008) и справочником под редакцией Блазевича (Блазевич и др. [227], 2007). Вычислительная сложность задач планирования была проанализирована не- сколькими авторами (Байлендер [354], 1994; Халлаб и др. [848], 2004; Ринтанен [1888], 2016). Здесь есть две основные задачи: Р1ап8АТ — это вопрос о том, су- ществует ли какой-либо план, который решает некоторую задачу планирования, и ВоипОеО Р1ап8АТ — вопрос, существует ли решение длиной к или меньше, что может быть использовано для отыскания оптимального плана. Обе задачи разре- шимы в классическом планировании (поскольку число состояний является конеч- ным). Но если добавить в язык функциональные символы, то число состояний становится бесконечным и задача Р1ап8АТ превращается лишь в полуразреши- мую. Для пропозициональных задач обе основные задачи имеют сложность клас- са Р8РАСЕ — класса, который больше (и, следовательно, сложнее), чем ЫР. Он от- носится к задачам, которые могут быть решены с помощью детерминированной машины Тьюринга с полиномиальным размером пространства Эти теоретические результаты обескураживают, но на практике задачи, которые требуется решать, обычно не настолько плохи. Истинным преимуществом формализма классическо- го планирования является то, что он облегчает разработку очень точных эвристик, независимых от проблемной области, — другие подходы в этом смысле являются не столь плодотворными. Книга КеасИп^ 1п Р1апп1п^ (Аллен и др. [35], 1990) — это всеобъемлющая ан- тология ранних работ в этой области. Вельд ([2309], 1994; [2310], 1999) предлагает два отличных обзора алгоритмов планирования на период 1990-х. Интересно на- блюдать за изменениями, произошедшими в течение пяти лет между выходом этих двух обзоров: первый концентрируется на планировании с частичным упорядочи- ванием, а во втором вводятся алгоритмы 6гарЬр1ап и 8АТРьаы. Книга Аи1ота(ес1 Р1аптп% апс! АсНп% (Халлаб и др. [849], 2016) является отличным учебником по всем аспектам этой области. Учебник Лаваля Р1апшп§ А1%оп1кт8 ([1363], 2006) охватывает как классическое, так и стохастическое планирование с развернутым охватом задач планирования движения робота.
Исследования по планированию играли центральную роль в искусственном ин- теллекте со времени появления этого научного направления, а статьи по планиро- ванию занимают основной объем ведущих журналов и материалов конференций по искусственному интеллекту. Также проводятся специализированные конферен- ции по планированию, такие как 1п1егпаИопа1 Соп/егепсе оп Аи1ота1ес1 Р1аптп% апс! Ескесклкпз и 1п1егпаИопа1 МЪгкзкор оп Р1апп1п% апс! ЕскесЗиНп^/ог Ерасе. Упражнения_________________________________________________________________ 11.1. Рассмотрим робота, возможные действия которого описываются следующими опе- раторами языка РООЬ. Ор((3о(х, у), А1(КоЬоЦ х), ^А1(КоЬо1, х) Л А1(РоЬо1, у)) Ор(Р1ск(р\ А1(РоЬо1, х) Л А1(о, х), ~А1(о9 х) Л Но1(Ип^р)) Ор(Ргор(р\ А1(РоЬо1, х) Л Но1(Ип^р\ А1(о, х) Л ^Но1(Нп%(р) а) Эти операторы позволяют роботу держать более одного объекта. Покажите, как с помощью предиката Етр(уНапс1 (пустая рука) изменить их для робота, который может держать только один объект. а) Предполагая, что это единственно возможные действия в данном мире, напиши- те аксиому определения преемника для предиката Етр1уНапс1. 11.2. Опишите различие и сходство между решением задач и планированием. 11.3. Принимая во внимание схемы действий и начальное состояние задачи планирова- ния грузовых авиаперевозок, представленные на рис. 11.16, каковы будут все приме- нимые конкретные реализации действия Е1у(р,/от, ю) в состоянии, описываемом высказыванием Лг(Рр ЗЕК) Л Аг( Р2, ЕГО) Л Р1апе(Р^ /\ Р1апе(Р2) К Аггрог^РК) Л А1гроП{ЕГО)1 1пИ(А1(С'9 ЕГО) Л А1(СЪ ЗЕК) К А1(Рь ЕГО) К А1(РЪ ЗЕК) Л Саг%о(С\) Л Саг%о(С2) Л Р1апе(Р\) Л Р1апе(Р2) Л А1грог1(ЗЕК) Л А1грог1(ЕЕО)) Ооа1(А1(С\,ЗЕК) Л А1(С2, ЕГО)) АсНоп(ЕоаЗ(с, р, а), РКЕСОИО: А1(с, а) Л А1(р, а) Л Саг%о(с) Л Р1апе(р) Л А1гроП(а) Еееест: - А?(с, а) Л 1п(с,р)) АсМоп((Оп1оаЗ(с,р, а), РКЕСОИО: 1п(с,р) Л А1(р, а) Л Саг%о(с) Л Р1апе(р) Л А1грог1(а) Еееест: А1(с9 а) л ->/л(с,р)) АсНоп((Г1у(р9/гот91о), РКЕСОИО: А1(р,/гот) Л Р1апе(р) Л А1грог!(/гот) Л А1грог1(1о) Еееест: -^А1(р9]гот) л А?(р, 1о)) Рис. 11.16. Описание на языке РООЬ задачи планирования грузовых авиаперевозок
11.4. Перед обезьяной в лаборатории поставлена задача “обезьяна и бананы”: на потолке подвешены бананы, которые нельзя достать непосредственно с пола, однако в по- мещении имеется ящик, позволяющий обезьяне достать бананы, если она на него заберется. Первоначально обезьяна находится в позиции А, бананы — в позиции В, а ящик — в позиции С. Обезьяна и ящик имеют высоту Ьоуу, но если обезьяна забе- рется на ящик, то она будет иметь высоту Нщк — такую же, как и у бананов. Дей- ствия, доступные для обезьяны, включают Со (переход из одного места в другое), Ризк (перемещение объекта из одного места в другое), СИтЪУр (подъем на обьект) и СИтЬОоумп (спуск с обьекта), а также Сгазр (схватить обьект) или 1]п%гаяр (отпу- стить обьект). Схватывание приводит к овладению объектом, если обезьяна и объ- ект находятся в одном и том же месте и на одной и той же высоте. а) Составьте описание начального состояния. б) Запишите шесть схем действий. в) Предположим, что обезьяна хочет поставить в тупик ученых (которые отправи- лись пить чай), схватив бананы, а затем вернув ящик на первоначальное место. Запишите эту задачу как общую цель (т.е. не предполагая, что ящик в конечном счете обязательно будет находиться в позиции С) на языке исчисления ситуаций. Может ли задача достижения этой цели быть решена с помощью классической системы планирования? г) Вероятно, ваша схема перемещения является неверной, поскольку, если объект слишком тяжелый, его положение при применении схемы Ризк не изменится. Исправьте схему этого действия с целью учета возможности существования тя- желых обьектов. 11.5. Оригинальный планировщик 8ТК1Р8 был разработан для управления роботом 8Ьакеу. На рис. 11.17 представлена одна из версий мира 8Ьакеу, состоящая из четы- рех комнат (Роот), расположенных вдоль коридора (СоггМог), где в каждой комнате имеются дверь (Роог) и выключатель света (ЗуиНск). Действия в мире робота 8Ьакеу включают перемещение из одного места в другое, передвижение подвижных обь- ектов (таких, как ящики), подъем на прочные обьекты (такие, как ящики) и спуск с них, а также включение и выключение света с помощью выключателей. Сам робот никогда не забирался на ящики и не щелкал выключателями света, но планировщик 8ТК1Р8 был способен находить и выводить на печать планы, расширяющие базовые способности робота. Ниже перечислены шесть действий робота 8Ьакеу. - Действие Со(х, у), которое требует, чтобы 8Ьакеу был в позиции х и перешел в позицию у, а также определяет, что позиции х и у находятся в одной и той же комнате г. В соответствии с общепринятым соглашением дверь между двумя комнатами считается находящейся одновременно в обеих этих комнатах. - Действие Ри8к(Ъ, х, у, г) предполагает перемещение ящика Ъ из позиции х в позицию у в пределах одной и той же комнаты г. Дополнительно потребуются предикат Вох и константы для описания ящиков. - Действие СПтЫ}р(Ь) — подъем на ящик Ь, и действие СИтЪОоу^п(Ь) — спуск с ящика Ъ. Дополнительно потребуются предикат Оп и константа Р1оог (пол). - Действие ТигпОп(8, Ь) — включение выключателя света 5, и действие ТигпО^, Ь) — его выключение. Для того чтобы включить или выключить свет, робот 8Ьакеу должен стоять на ящике Ь, расположенном в том месте, где находится выключатель света.
На языке РООЬ напишите высказывания, определяющие шесть действий робота 8Ьакеу и начальное состояние, представленное на рис. 11.17. Составьте план, с по- мощью которого робот 8Ьакеу мог бы переместить ящик Вох 2 в комнату Коотп 2. Рис. 11.17. Мир робота 8Ьакеу. Робот 8Ьакеу может передвигаться между объектами в пределах комнаты, проходить через двери между комнатами и коридором, взбираться на те объекты, на которые ему разрешено взбираться, и двигать те объекты, которые ему разрешено двигать, а также щелкать выключателями света 11.6. Конечная машина Тьюринга представляет собой конечную одномерную ленту с ячейками, каждая из которых содержит один из конечного числа символов. Над одной из ячеек находится головка записи/чтения. Существует конечное множе- ство состояний, в которых может находиться такая машина, одним из которых яв- ляется состояние чтения. Для каждого этапа времени существует множество дей- ствий, из которых можно делать выбор, зависящее от символа в ячейке под го- ловкой чтения/записи и текущего состояния машины. Каждое действие вклю- чает в себя запись символа в ячейку под головкой, перевод машины в некоторое состояние и, возможно, перемещение головки на одну ячейку влево или вправо. Отображение, определяющее, какие действия разрешены, является программой
для машины Тьюринга. Ваша цель — перевести машину в состояние чтения. Представьте задачу перевода машины Тьюринга в состояние чтения как задачу пла- нирования. Если вы сможете сделать это, то продемонстрируете, что определение, есть ли у задачи планирования решение, по крайней мере так же сложно, как задача перевода машины Тьюринга в состояние чтения, которая имеет сложность Р8РАСЕ. 11.7. Объясните, почему удаление отрицательных эффектов из каждой схемы действия приводит к получению ослабленной задачи, — в том случае, когда предварительные условия и цели содержат только положительные литералы. 11.8. На рис. 11.18 показана задача в мире блоков, известная как аномалия Зюссмана. Эта задача рассматривается как аномальная, поскольку планировщики без чередования, применявшиеся в начале 1970-х годов, не могли ее решить. Запишите определение этой задачи и решите ее либо вручную, либо с использованием программы планиро- вания. Планировщиком без чередования является такой планировщик, который по- сле получения двух подцелей, О, и О2, вырабатывает либо план для который со- единяется с планом для О2, либо наоборот. Объясните, мог ли планировщик без че- редования решить эту задачу. Если да, то как именно, а если нет, то почему? Рис. 11.18. Задача планирования в мире блоков, получившая название “аномалия Зюссмана” 11.9. Докажите, что обратный поиск является полным для задач, представленных на язы- ке РООЬ. 11.10. Вернитесь к определению двунаправленного поиска в главе 3. а) Будет ли идея двунаправленного поиска в пространстве состояний перспектив- ной для использования в планировании? б) А что можно сказать в отношении двунаправленного поиска в пространстве пла- нов с частичным упорядочиванием? в) Разработайте версию планирования с частичным упорядочиванием, в которой действие разрешается добавить в план, если его предусловия могут быть достиг- нуты с помощью эффектов действий, уже находящихся в плане. Объясните, как в этом случае можно справиться с конфликтами и ограничениями упорядоченно- сти. Будет ли полученный алгоритм по существу идентичным прямому поиску в пространстве состояний?
11.11. Планировщики с прямым и обратным поиском в пространстве состояний были про- тивопоставлены планировщикам с частичным упорядочиванием указанием на то, что последние представляют собой средства поиска в пространстве планов. Объяс- ните, на основании чего средства прямого и обратного поиска в пространстве состо- яний можно также рассматривать как средства поиска в пространстве планов, и ука- жите, чем в этом случае являются операторы уточнения плана. 11.12. До сих пор мы предполагали, что создаваемые планы всегда обеспечивают выпол- нение предусловий действия. А теперь рассмотрим, что должны утверждать пропо- зициональные аксиомы определения преемника, такие как НачеАггоу\Рх <=> (НачеАг- гоуу1 <=> ~^8коо1\ в отношении действий, для которых предусловия не выполняются, а) Покажите, что эти аксиомы предсказывают, что ничего не произойдет, когда дей- ствие выполняется в таком состоянии, в котором его предусловия не выполнены. б) Рассмотрите план р, включающий действия, необходимые для достижения цели, но также включающий недопустимые действия. Можно ли описать данную ка- тегорию как тШсйзКИе Л зиссеззог - зКНеахютз Л р |= ^оаП в) Возможно ли в исчислении ситуаций с помощью аксиом определения преемни- ка первого порядка доказать, что план, содержащий недопустимые действия, по- зволяет достичь цели? 11.13. Рассмотрите, как перевести множество схем действий в аксиомы определения пре- емника в исчислении ситуаций. а) Рассмотрите схему для действия Е1у{р,рот, !о). Напишите логическое опре- деление для предиката Ро88{Е1у{р,рот, !о), 8), который будет истинным, если предусловия для действия Е1у(р,ро1п, 1д) выполняются в ситуации 8. б) Далее, предполагая, что действие Е1у(р, рот, 1о) является единственной схе- мой действия, доступной для агента, запишите аксиому определения преемника для флюенты А!(р, х, 8), которая фиксирует ту же информацию, что и схема дей- ствия. в) Теперь предположим, что существует дополнительный метод путешествия: дей- ствие Те1ерог1(р,рот, !о), имеющее дополнительное предусловие -АУагрес1(р) (учагрес! — покоробленный) и дополнительный эффект 1Уагрес1(р). Объясните, как в этом случае следует изменить базу знаний исчисления ситуаций. г) И наконец разработайте общую и точно определенную процедуру для выполне- ния перевода множества схем действий в множество аксиом определения преем- ника. 11.14. В алгоритме 8АТРЕАИ, приведенном на рис. 7.22, предусмотрено, что каждый вызов алгоритма проверки выполнимости подтверждает цель §т, где Т находится в преде- лах от 0 до Ттах. Предположим вместо этого, что алгоритм проверки выполнимости О 1 т вызывается только один раз с целью # V # V ... V § . а) Будет ли такой вызов всегда возвращать план, если таковой существует, с дли- ной, меньшей или равной Ттах? б) Приведет ли такой подход к появлению каких-либо новых фиктивных “реше- ний”? в) Обсудите, как можно было бы модифицировать алгоритм проверки выполнимо- сти, такой как \УАЬК$АТ, чтобы он находил короткие решения (если они суще- ствуют) после получения дизъюнктивной цели в указанной выше форме.
11.15. Все цели, которые рассматривались до сих пор, требовали от планировщика приве- сти мир к целевому состоянию всего один раз, план выполнялся однократно. Одна- ко не все цели могут быть выражены таким образом: вы не достигнете цели подве- шивания люстры над полом, подбросив ее в воздух. А если серьезно, то очень не хотелось бы, чтобы система жизнеобеспечения космического корабля подавала кис- лород в первый день, но больше не занималась этим в последующие. Цель техниче- ского обслуживания достигается в том случае, когда план агента предусматривает условие непрерывного поддержания заданного состояния (не только один раз, но и в дальнейшем). Опишите, как расширить использовавшийся в этой главе синтаксис для поддержки целей обслуживания. 11.16. У вас есть несколько грузовиков, с помощью которых можно доставить множество грузов. Каждый груз отправляется из какого-то места на карте сеточного мира и должен быть доставлен в какое-то другое место. Управление каждым грузовиком выполняется посредством двух действий — движение вперед и поворот. Постройте иерархию действий высокого уровня для этой задачи. Какие знания о решении ко- дирует построенная вами иерархия? 11.17. Предположим, что действие высокого уровня (НЬА) имеет только одну реализацию в виде последовательности примитивных действий. Приведите алгоритм вычисле- ния его предусловий и эффектов, исходя из полной иерархии уточнений и схем для примитивных действий. 11.18. Предположим, что оптимистическое достижимое множество плана высокого уровня является надмножеством целевого множества. Можно ли сделать какой-либо вывод о том, достигает ли план поставленной цели? Что если пессимистическое достижи- мое множество не пересекается с целевым множеством? Объясните. 11.19. Напишите алгоритм, который на входе принимает начальное состояние (заданное множеством пропозициональных литералов) и последовательность НЬА (каждое из которых определяется предусловиями и ангельскими спецификациями оптимистиче- ских и пессимистических достижимых множеств) и вычисляет оптимистическое и пессимистическое описания достижимого множества заданной последовательности. 11.20. На рис. 11.14 было показано, как описать действия в задаче планирования, исполь- зуя отдельные поля для ОиКАТЮЫ, Ы8Е и СОЫ8АМЕ. Теперь предположим, что была поставлена задача объединить планирование с недетерминированным планировани- ем, которое требует недетерминированных и условных эффектов. Рассмотрите ка- ждое из трех полей и объясните, должны ли они оставаться отдельными полями или они должны стать эффектами действия. Приведите пример для каждого из этих трех полей. 11.21. Некоторые операции в стандартных языках программирования можно моделиро- вать как действия, меняющие состояние мира. Например, в операции присваивания изменяется содержимое участка памяти, а в операции печати изменяется состояние выходного потока. Программу, состоящую из этих операций, можно также рассма- тривать как план, цель которого задана в спецификации программы. Следовательно, алгоритмы планирования могут использоваться для создания программ, реализую- щих заданную спецификацию. а) Напишите схему действий для оператора присваивания (в котором значение од- ной переменной присваивается другой). Помните, что первоначальное значение должно быть перезаписано!
б) Покажите, как процедура создания объекта может использоваться в планиров- щике для разработки плана обмена значениями между двумя переменными с применением временной переменной. 11.22. Ознакомьтесь со следующими доводами: “В инфраструктуре, которая допускает на- личие неопределенных начальных состояний, недетерминированные эффекты (дизъюнктивные результаты) являются просто удобным способом обозначения, а не источником дополнительной выразительной мощи. Для любой схемы действий а с недетерминированным эффектом Р V 2 его всегда можно заменить условным ре- зультатом Л Р Л ->Я: <2, который, в свою очередь, можно свести к двум обычным действиям. Высказывание Р обозначает случайное высказывание, которое не из- вестно в начальном состоянии и для которого не предусмотрено каких-либо дей- ствий по получению информации с помощью датчиков. Являются ли эти доводы правильными? Рассмотрите отдельно два случая, в одном из которых в плане име- ется только один экземпляр схемы действия а, тогда как во втором имеется больше одного экземпляра. 11.23. Предположим, что действие РПр всегда изменяет значение истинности перемен- ной I. Покажите, как определить его эффекты, используя схему действий с услов- ными эффектами. Покажите, что, несмотря на использование условных эффектов, представление доверительного состояния в форме 1-СИР сохраняет форму 1-СИР после выполнения действия РПр. 11.24. В мире блоков мы были вынуждены ввести два действия, Моче и МочеТоТаЫе, что- бы обеспечить поддержку предиката С1еаг должным образом. Покажите, как услов- ные результаты можно использовать для представления обоих этих случаев с помо- щью одного действия. 11.25. Условные результаты были проиллюстрированы на примере действия 8иск в мире пылесоса — от того, в каком квадрате находится робот, зависит, какой из квадратов станет чистым. Можете ли вы предложить новое множество пропозициональных переменных для определения состояний мира пылесоса, таких, что действие 8иск имеет безусловное описание? С использованием этих пропозициональных перемен- ных составьте описания действий 8иск, Ье/1 и и покажите, что их достаточно для представления всех возможных состояний мира. 11.26. Найдите достаточно грязный ковер, на поверхности которого нет препятствий, и по- чистите его пылесосом. Нарисуйте путь, проделанный чистящей насадкой пылесо- са, настолько точно, насколько сможете. Объясните характер этого пути, ссылаясь на формы планирования, описанные в этой главе. 11.27. Приведенные ниже цитаты взяты из инструкций на флаконах с шампунем. Опреде- лите каждую из этих инструкций как безусловный план, условный план или план с контролем выполнения, а) “Нанесите и разотрите до образования пены. Ополосни- те волосы. Повторите процедуру”, б) “Нанесите шампунь на волосы и оставьте на несколько минут. Прополосните волосы и повторите процедуру в случае необходи- мости”. в) “Если не удается устранить проблему, обратитесь к врачу”. 11.28. Рассмотрите следующую задачу: пациент поступил в приемную врача с симпто- мами, которые могут быть вызваны либо обезвоживанием, либо болезнью О (но не обеими этими причинами вместе). Существуют два возможных действия: Оппк (питье), которое, безусловно, позволяет справиться с обезвоживанием, и Ме<Р 1са1е (медикаментозное лечение), излечивающее заболевание Д но имеющее
нежелательный побочный эффект, который возникает, если организм пациента обе- звожен. Составьте описание этой проблемы и разработайте план без использования датчиков, позволяющий решить эту задачу, перечислив все относящиеся к ней воз- можные миры. 11.29. В задаче из области медицины, приведенной в упражнении 11.28, добавьте действие Те$1 (лабораторный анализ), имеющее условный результат СикигеОгомНк (рост бак- териальной культуры), если предикат Отеске (болезнь) имеет истинное значение и в любом случае имеет результат из восприятия Кпо^п(Си11игеСго^(И) (кпоууп — из- вестный). Составьте условный план, позволяющий решить эту задачу и свести к ми- нимуму использование действия МесНса1е.

ПРИЛОЖЕНИЕ А Математические основы А.1. Анализ сложности и нотация 00 Специалистам в области компьютерных наук часто приходится решать за- дачу сравнения алгоритмов для определения того, насколько быстро они дей- ствуют или сколько памяти для них требуется. Для решения этой задачи пред- усмотрены два подхода. Первым из них является применение эталонных тестов (►ЬепсЬтагк1п§) — прогон реализующих алгоритмы программ на компьюте- ре и измерение их быстродействия в секундах и потребления памяти в байтах. Безусловно, в конечном итоге нас действительно интересуют именно такие прак- тические характеристики, но эталонное тестирование может оказаться неудов- летворительным просто потому, что оно слишком специфично: в нем измеряет- ся производительность конкретной программы, написанной на конкретном языке, выполняемой на конкретном компьютере с конкретным компилятором и с конкрет- ными входными данными. К тому же на основании единственного результата, по- лученного с помощью эталонного тестирования, очень трудно предсказать, на- сколько успешно этот алгоритм будет действовать в случае использования другого компилятора, компьютера или набора данных Второй подход предполагает мате- матический ► анализ алгоритмов, не зависящий от их конкретной реализации и входных данных. Именно этот подход будет обсуждаться ниже. А.1.1. Асимптотический анализ Подход, основанный на математическом анализе алгоритмов и не зависящий от их конкретной реализации и входных данных, мы рассмотрим на примере приве- денной ниже программы, вычисляющей сумму последовательности чисел. Гипсбоп §\1мшл\ъ^(последовательность) геШгпя число сумма*— О Гог 1 = 1 1о ЬЕНстн(последовательность) <1о сумма«— сумма + последовательность^ геСигп сумма Первый этап анализа состоит в том, что создается определенное абстракт- ное представление входных данных, позволяющее найти какой-то параметр или
параметры, характеризующие объем входных данных. В рассматриваемом при- мере объем входных данных можно охарактеризовать с помощью такого параме- тра, как длина последовательности, которую мы обозначим как п. На втором этапе необходимо определить абстрактное представление реализации и найти какой-то критерий, отражающий продолжительность выполнения алгоритма, но не привя- занный к конкретному компилятору или компьютеру. Применительно к программе ЗиммАТКЖ этим критерием может служить количество строк выполняемого кода; кроме того, данный критерий может быть более детализированным и измеряющим количество сложений, присваиваний, обращений к элементам массивов, а также ветвлений, выполняемых в этом алгоритме. В любом случае будет получена ха- рактеристика общего количества шагов, выполняемых алгоритмом, как функция от объема входных данных. Обозначим эту характеристику как Т(п). Если за осно- ву берется количество строк кода, то в данном примере Т(п)=2п+2. Если бы все программы были такими же простыми, как ЗиммАТЮЫ, то область анализа алгоритмов не заслуживала бы названия научной. Но исследования в этой области существенно усложняются из-за наличия двух проблем. Первая пробле- ма заключается в том, что редко удается найти параметр, подобный Г(и), который бы полностью характеризовал количество шагов, выполняемых при прогоне ал- горитма. Вместо этого чаще всего можно лишь вычислить данный показатель для наихудшего случая Т^^п) или для среднего случая Гау§(и). Причем, для вычисле- ния среднего показателя необходимо, чтобы аналитик принял какие-то обоснован- ные предположения в отношении распределения, характеризующего набор вход- ных данных. Вторая проблема состоит в том, что алгоритмы обычно не поддаются точно- му анализу. В этом случае приходится прибегать к аппроксимации. В нашем слу- чае, например, можно было бы сказать, что быстродействие алгоритма ЗиммАткж характеризуется величиной О(и), имея в виду, что быстродействие этого алгорит- ма измеряется величиной, пропорциональной и, — возможно, за исключением не- скольких небольших значений и. Более формально это определение можно пред- ставить с помощью следующей формулы. Т(п) есть если Т(п) < к?(и) для некоторого к, для всех п > п0 Перейдя к использованию нотации О(), мы получаем возможность восполь- зоваться так называемым ► асимптотическим анализом. В рамках этого подхо- да можно, например, безоговорочно утверждать, что если п асимптотически при- ближается к бесконечности, то алгоритм, характеризующийся показателем О(и), проявляет себя лучше по сравнению с алгоритмом О(и2), тогда как единственное число, полученное с помощью эталонного тестирования, не может служить обо- снованием подобного утверждения. Нотация О() позволяет создать абстрактное представление, в котором не учи- тываются постоянные коэффициенты, благодаря чему она становится более про- стой в использовании, но менее точной, чем нотация Д). Например, в конечном
итоге алгоритм О(п2) всегда будет считаться худшим по сравнению с алгоритмом О(п), но если бы эти два алгоритма характеризовались значениями Т(п2 + 1) и Т (100л +1000), то фактически алгоритм О(п2) был бы лучше при п< 110. Несмотря на этот недостаток, асимптотический анализ представляет собой наи- более широко используемый инструмент анализа алгоритмов. Этот метод можно считать достаточно точным, поскольку в процессе анализа создается абстрактное представление и для точного количества операций (поскольку игнорируется по- стоянный коэффициент к), и для точного содержимого входных данных (посколь- ку рассматривается исключительно их объем п); благодаря чему анализ становится вполне осуществимым с использованием математических методов. Система обо- значений О() представляет собой хороший компромисс между точностью и про- стотой анализа. А.1.2. Изначально сложные и недетерминированные полиномиальные задачи Анализ алгоритмов и нотация О() позволяют рассуждать об эффективности конкретного алгоритма. Однако эти методы не позволяют определить, может ли существовать лучший алгоритм для рассматриваемой задачи. В области ► ана- лиза сложности исследуются задачи, а не алгоритмы. Первая широкая градация в этой области проводится между задачами, которые могут быть решены за вре- мя, измеряемое полиномиальным соотношением, и задачами, которые не могут быть решены за время, измеряемое полиномиальным соотношением, независимо от того, какой алгоритм для этого используется. Класс полиномиальных задач — т.е. задач, которые могут быть решены за время О(й*) для некоторого к), — обозна- чается как ►₽. Эти задачи иногда называют “простыми”, поскольку данный класс содержит задачи, имеющие такую продолжительность выполнения, как О0°8 п) и СХп). Но он содержит и задачи с затратами времени <?(л1000), поэтому определе- ние “простая” не следует понимать слишком буквально. Другим важным классом является ►ИР (Могк1е1епгнгн8(1С Ро1упопна1) — класс недетерминированных полиномиальных задач. Задача относится к этому классу, если существует алгоритм, позволяющий выдвинуть гипотезу о возможном ре- шении, а затем проверить правильность этой гипотезы с помощью полиномиаль- ных затрат времени. Идея такого подхода состоит в том, что если бы можно было воспользоваться сколь угодно большим количеством процессоров, чтобы прове- рить одновременно все гипотезы, или оказаться крайне удачливым и всегда с пер- вого раза находить правильную гипотезу, то 1ЧР-трудные задачи стали бы Р-труд- ными задачами. Одним из самых важных нерешенных вопросов в компьютерных науках является то, будет ли класс ЫР эквивалентным классу Р, если нельзя вос- пользоваться бесконечным количеством процессоров или способностью нахо- дить правильную гипотезу с первого раза. Большинство специалистов в области компьютерных наук согласны с тем, что Р ЫР, иными словами, что 1ЧР-задачи
являются изначально трудными и для них не существует алгоритмов с полиноми- альными затратами времени. Но это утверждение так и не было доказано. Ученые, пытающиеся найти ответ на вопрос о том, эквивалентны ли клас- сы Р и №, выделили подкласс класса КР, называемый ► №-полными задачами. В этой формулировке слово “полный” означает “являющийся наиболее ярким представителем” и поэтому указывает на самые трудные задачи из класса №. Было доказано, что либо все КР-полные задачи принадлежат к классу Р, либо ни одна из них к нему не относится. Таким образом, данный класс представля- ет определенный теоретический интерес, но он важен также с точки зрения прак- тики, поскольку известно, что многие серьезные задачи являются №-полными. В качестве примера можно указать задачу установления выполнимости: если дано высказывание логики высказываний, то есть ли такой вариант присваивания истинностных значений символам высказывания, при котором оно становится ис- тинным? Если не произойдет чудо и не совпадут друг с другом классы Р и №, то нельзя будет найти алгоритм, который позволяет решить все задачи установления выполнимости за полиномиальное время. Но исследователей в области искус- ственного интеллекта в большей степени интересует то, существуют ли алгорит- мы, действующие достаточно эффективно при решении типичных задач, выбран- ных с помощью заранее заданного распределения; как было показано в главе 7, существуют алгоритмы наподобие ^аьк8АТ, которые действуют вполне успеш- но при решении многих задач. Класс ► №-сложных задач состоит из тех задач, которые сводятся (за поли- номиальное время) ко всем проблемам в №, поэтому, если вы решили любую КР-сложную задачу, вы сможете решить все проблемы в №. Все №-полные за- дачи являются №-сложными, но есть некоторые №-сложные проблемы, которые даже сложнее, чем №-полные. Класс ►«>-№ является комплементарным (дополнительным) по отношению к классу № в том смысле, что для каждой задачи принятия решения из класса № существует соответствующая задача в классе со-№, на которую может быть дан положительный или отрицательный ответ, противоположный ответу на зада- чу класса №. Известно, что класс Р является подмножеством и №, и со-№, кро- ме того, считается, что к классу со-№ относятся некоторые задачи, не входящие в класс Р. Такие задачи называются ►со-№-полнымн и являются самыми трудны- ми задачами в классе со-№. Класс #Р (произносится как “шарп Р” или “диез Р”) представляет собой мно- жество задач подсчета количества вариантов, соответствующих задачам принятия решения из класса №. Задачи принятия решения имеют однозначный (положи- тельный или отрицательный) ответ. Примером задачи такого типа является сле- дующая: “Существует ли решение для данной формулы 3-8АТ?” Задачи подсчета количества вариантов имеют целочисленный ответ, например: “Сколько решений существует для данной формулы 3-8А'Т?” В некоторых случаях задача подсчета количества вариантов намного труднее по сравнению с соответствующей задачей
принятия решения. Например, принятие решения о том, имеет ли двухдольный граф идеальное сочетание пар, может быть выполнено за время О{УЕ) (где V— количество вершин; Е — количество ребер графа), тогда как задача подсчета того, какое количество идеальных сочетаний пар имеется в этом двухдольном графе, является #Р-полной. Это означает, что она не менее трудна, чем любая задача из класса #Р, и поэтому по меньшей мере столь же трудна, как и любая задача КР. Другим классом является класс задач Р8РАСЕ. К нему относятся задачи, для которых требуется объем пространства, определяемый полиномиальной зависи- мостью, даже при их прогоне на недетерминированной машине. Считается, что Р8РАСЕ-трудные задачи решаются хуже ИР-полных задач, но не исключено, что в ходе дальнейших исследований может быть установлено, что класс ИР эквивален- тен классу Р8РАСЕ и класс Р эквивалентен классу КР. А.2. Векторы, матрицы и линейная алгебра В математике ► вектор определяется как элемент векторного пространства, но мы будем использовать более конкретное определение: вектор — это упорядочен- ная последовательность значений. Например, в двухмерном пространстве могут быть определены такие векторы, как х = (3,4) и у = (0,2). В этом приложении со- блюдаются обычные соглашения об обозначении векторов с помощью полужир- ных символов, хотя некоторые авторы отмечают имена векторов с помощью стре- лок (х) или знаков надчеркивания (у ). Элементы вектора обозначаются с помощью подстрочных индексов: г= (г,,г2, К сожалению, в этой книге син- тезированы работы из многих областей исследований, где упорядоченные после- довательности элементов могут называться по-разному (“векторы”, “списки” или “кортежи”), в соответствии с чем для них используются и разные нотации: (1,2), [1,2] или (1,2). Двумя фундаментальными операциями над векторами являются векторное сло- жение и скалярное умножение. Векторное сложение х + у — это поэлементная сум- ма: х + у= (3 + 0,4 + 2) = (3,6), а скалярное умножение — это операция умножения каждого элемента вектора на некоторую константу: 5х = (5x3, 5 х 4) = (15,20). Длина вектора обозначается как | х | и вычисляется путем извлечения квадрат- ного корня из суммы квадратов его элементов: | х| = >/(32 +42) = 5. Точечное про- изведение (называемое также скалярным произведением) двух векторов, х • у, представляет собой сумму произведений их соответствующих элементов; иными словами, х• у = или в данном конкретном случае: х • у = 3 х 0+4 х 2 = 8. Векторы часто интерпретируются как направленные отрезки прямых (подоб- ные стрелкам) в «-мерном евклидовом пространстве. В таком случае операция сложения векторов эквивалентна совмещению конца одного вектора с началом другого, а точечное произведение х • у эквивалентно выражению | х | • | у | • соз 9, где 9 — угол между векторами х и у.
► Матрица представляет собой прямоугольный массив значений, упорядочен- ных по строкам и столбцам. Ниже показана матрица А размером 3x4. ^1,1 ^1,2 ^1,3 ^1,4 ^2,1 ^2,2 ^2,3 ^2,4 А А А А \Л3,1 Л3,2 Л3,3 ^3,4 у Первый подстрочный индекс в обозначении А,7 определяет строку, а второй — столбец. В языках программирования А,7 часто записывается как А[1, ] ] или А[1] []]. Сумма двух матриц определяется путем сложения соответствующих элементов, поэтому (А + В),7 = А/7 + В .. (Если матрицы А и В имеют разные размеры, то их сумма не определена.) Можно также определить операцию умножения матрицы на скаляр: (сА)>7 = сА^. Операция умножения матриц (получения произведения двух матриц) является более сложной. Произведение АВ определено, только если ма- трица А имеет размеры ах Ь, а матрица В имеет размер Ь*с (т.е. вторая матрица имеет количество строк, совпадающее с количеством столбцов первой матрицы). Результатом этой операции является матрица с размерами ах с. Если матрицы име- ют допустимые размеры, то результат их умножения является следующим: (АВ)м=2амвм- Умножение матриц не является коммутативным даже для квадратных матриц: АВ ВА в любом случае. Однако эта операция является ассоциативной: (АВ) С = А(ВС). Обратите внимание, что точечное произведение векторов может быть выражено в терминах транспонирования и умножения матриц: х • у = хту. ► Единичная матрица I имеет элементы 1у, равные 1, если / =}, и равные 0 в противном случае. Она обладает таким свойством, что А1 = А для всех матриц А. ► Транспонирование — это специфическая для матриц операция (записывается как Ат), заключающаяся в превращении строк матрицы в столбцы и обратно, или, более формально, Ат,у = Ау,. Если матрица А квадратная, то ее ►обратная матри- ца А'1 определяется как такая матрица, для которой А'1 А = I. Для ►вырожденной матрицы обратной матрицы не существует, а для невырожденной матрицы обрат- ная матрица может быть вычислена за время О(п3). Матрицы используются для решения систем линейных уравнений за время О(п3), которое необходимо для инвертирования матрицы, составленной из коэф- фициентов уравнений. Рассмотрим следующую систему уравнений, для которой требуется найти решение в терминах переменных х, у и г. +2х + у-г = 8 -Зх-у + 27 = -11 -2х + у + 2г = -3
Эту систему уравнений можно представить в виде матричного уравнения Ах = Ь, где: Чтобы решить уравнение Ах = Ь, достаточно умножить обе его стороны на обратную матрицу А*1, в результате чего получим А'Ах = А"'Ь, что можно упро- стить до х = А~'Ь. Проинвертировав матрицу А и умножив результат на вектор Ь, получим искомый ответ: Еще несколько замечаний по поводу используемых в книге обозначений. 1. Мы используем запись 1о§ (х) для представления натуральных логарифмов 1о& (х). 2. Мы используем запись аг§тахЛ/(х) для ссылок на значение х, при котором значение функции/(х) является максимальным. А.З. Распределения вероятностей Вероятность — это мера, заданная на множестве событий, которая удовлетво- ряет трем приведенным ниже аксиомам. 1. Мера каждого события находится в пределах от 0 до 1. Это утверждение за- писывается как 0 <Р(Х=х,) < 1, где%— случайная переменная, представля- ющая событие, ах, — возможные значенияX. Обычно принято обозначать случайные переменные прописными буквами, а их значения — соответству- ющими строчными. 2. Мера всего множества равна 1, а это означает, что Е-=] Р(Х = х))= 1. 3. Вероятность объединения взаимоисключающих событий равна сумме веро- ятностей отдельных событий, т.е. Р(Х= хх V Х= х2) = Р(Х = х,) + /’(% = х2), гдесобытия Х| и х2 являются взаимоисключающими. Вероятностная модель состоит из пространства выборок взаимоисключаю- щих возможных результатов вместе с вероятностной мерой для каждого результа- та. Например, в модели погоды на завтра результатами могут быть аиппу (солнеч- но), с1ош1у (облачно), гагпу (дождь) и апому (снег). Подмножество этих результатов представляет собой событие. Например, событие выпадения осадков — это под- множество {га1пу, 5лоиу}.
Мы будем использовать запись Р(А) для обозначения вектора значений {Р(Х= х,),..., Р(Х= х„)). Мы также используем запись Р(х,) в качестве сокращения для Р(Х= х,) и Р(х) в качестве сокращения для Р(Х = х,). Условная вероятность Р(В|Л) определяется как Р(В Г) А)/Р(А). Переменные А и В являются условно независимыми, если Р(2?|Я) = Р(В) (или, равным образом, если Р(Л|5) = Р(Л)). Непрерывные переменные имеют бесконечное количество значений, и если распределение вероятностей этих значений не характеризуется наличием пиковых значений в отдельных точках, то вероятность любого отдельно взятого значения равна 0. Поэтому имеет смысл говорить о значении вероятности в пределах неко- торого диапазона. Это реализуется с помощью ► функции плотности вероятно- сти, которая имеет немного иной смысл по сравнению с дискретной функцией ве- роятности. Поскольку вероятность Р(Х= х) — т.е. вероятность, которую X имеет при точном значении х — равна нулю, мы будем использовать другую меру: от- ношение вероятности того, что X попадает в интервал вокруг х, к ширине этого интервала, измеряемой в пределе приближения ширины интервала к нулю. Итак, функция плотности вероятности Р(Х=х) определяется как Р(х) = ПтР(х<Х <х + (Вс)/Ах. Л->0 Функция плотности вероятности должна быть неотрицательной при всех х и соответствовать следующему требованию: |^Р(х)Л = 1. Мы также можем определить ►кумулятивное распределение Р\(х), которое является вероятностью того, что случайная величина будет меньше х. Кумулятив- ная функция распределения определяется следующим образом: Рх (х) = Р(Х < х) = Р(И)4Й/. Следует отметить, что функция плотности вероятности измеряется в опре- деленных единицах, а дискретная функция вероятности является безразмерной. Например, если переменная X измеряется в секундах, то плотность вероятности измеряется в герцах (Гц, т.е. 1/с). Если А'—точка в трехмерном пространстве, из- меряемом в метрах, то плотность вероятности будет измеряться в 1/м3. Одним из наиболее важных распределений вероятностей является ►распреде- ление Гаусса, известное также под названием ►нормальное распределение. Для этого распределения мы используем обозначение ц, ст2) — как функции от х со средним значением ц и среднеквадратичным отклонением ст (и, следовательно, с дисперсией ст2). Нормальное распределение определяется следующей формулой: Л/’(х; ц; о2) = —е“(х“ц)2 /(2°2},
где х — непрерывная переменная, изменяющаяся в пределах от -°о до +°о. Если среднее р, = 0 и дисперсия о2 = 1, то имеет место частный случай нормального рас- пределения, называемый ► стандартным нормальным распределением. Если распределение задано на векторе х в пространстве с <1 измерениями, то оно пред- ставляет собой ► многомерное гауссово распределение: 1 4((х-ц)тХ-'(х-м)) Л<(х;ц,1) = -Т - --е 2' ', >/(2")” I I где ц — вектор средних, а 8 — ► матрица ковариации этого распределения (см. ниже). Кумулятивное распределение для одномерного нормального распределения определяется как Р(х) = | ЛГ(г; % о2 )(к = | (1 + егГ(^)), где егГ(х) — так называемая ► функция ошибок, не имеющая представления в замкнутой форме. В ► центральной предельной теореме утверждается, что среднее п случай- ных переменных приближается к нормальному распределению по мере того, как п стремится к бесконечности. Такому свойству подчиняется почти любая коллекция случайных переменных, при том условии, что значение дисперсии любого конеч- ного подмножества переменных не доминирует над значениями дисперсии других конечных подмножеств. ►Математическое ожидание случайной величины, АДА), представляет собой среднее значение, взвешенное по вероятности каждого значения. Для дискретной переменной это М{Х} = ^Р(Х = х1). X Для непрерывной переменной суммирование следует заменить интегралом и ис- пользовать функцию плотности вероятности, Р(х): М(Х)= ] хР(х)(1х. Для любой функции/ мы также имеем 00 И наконец, при необходимости математическое ожидание можно определить через распределение случайной величины: 00 ^х-Си>(^))=1^(х)0(х)Л.
Помимо математического ожидания, другие важные статистические характери- стики распределения включают ►дисперсию Г>[Л], которая является математиче- ским ожиданием квадрата отклонения случайной величины от ее математическо- го ожидания: ОД = Л/((^-МА))2) и среднеквадратическое или ►стандартное отклонение о, которое является ква- дратным корнем из дисперсии (по этой причине математическое ожидание в ста- тистике часто обозначают как а2). ► Среднее квадратическое 5 для набора значений (чаще всего это выборка значений случайной величины) представляет собой квадратный корень из средне- го арифметического квадратов значений в наборе: ► Ковариация двух случайных величин определяется как математическое ожидание произведения разностей их значений и соответствующих средних зна- чений: соу(Х У) = М((Х- р*)(У- цУ)). ► Ковариационная матрица, часто обозначаемая как 8, является матрицей, составленной из попарных ковариаций между элементами вектора случайных ве- личин. Принимая, что вектор представлен как X = (Х{,... Хп)\ элементами ковари- ационной матрицы будут: 8,7 = соу(^, X) = М«Х< - - И/))- ► Выборка — это часть общей совокупности возможных элементов случайной величины, полученная в результате некоторого эксперимента. Мы не знаем, како- во будет распределение вероятности для любой конкретной выборки, но в пределе достаточно большой набор данных выборок будет приближаться к той же функции распределения плотности вероятности, которая свойственна общей совокупности элементов этой случайной величины. ► Равномерное распределение характери- зуется тем, что каждый элемент в общей совокупности в равной степени (равно- мерно) вероятен. Поэтому, если мы говорим, что “случайная величина имеет рав- номерное распределение в диапазоне целых чисел от 0 до 99”, то это означает, что при выборке с одинаковой вероятностью может быть получено любое целое чис- ло из этого диапазона.
Библиографические и исторические заметки 683 Библиографические и исторические заметки Система обозначений О(), которая широко используется в компьютерных нау- ках в наши дни, была впервые определена в контексте теории чисел немецким ма- тематиком П.Г.Н. Бахманом (1894). Понятие ЫР-полноты было предложено Куком (1971), а современный метод определения способа сведения одной проблемы к другой предложен Карпом (1972). И Кук, и Карп получили за свою работу премию Тьюринга — высшую награду в компьютерных науках. Из лучших учебников по анализу и разработке алгоритмов следует упомянуть книги Седвига и Уэйна (2011), а также Кормена, Лейзерсона, Ривеста и Штейна (2009). В этих изданиях особое внимание уделяется разработке и анализу алго- ритмов для решения поддающихся решению задач. Теория ИР-полноты и других форм неразрешимости представлена в книгах Гэри и Джонсона (1979) и Папа- димитроу (1994). Хорошими учебниками по теории вероятности являются книги Чунга(1979), Росса(2015), а также Бертсекаса и Цициклиса (2008).
ПРИЛОЖЕНИЕ Сведения о языках и алгоритмах, используемых в книге Б.1. Определение языков с помощью формы Бэкуса-Наура_______________________________ В этой книге дается определение нескольким языкам, в том числе языку логики высказываний (раздел 7.4), языку логики первого порядка (раздел 8.2) и подмно- жеству английского языка (раздел 23.4). Формальный язык определяется как мно- жество строк, в котором каждая строка представляет собой последовательность символов. Все языки, которые были необходимы нам в этой книге, состоят из бес- конечного множества строк, поэтому нужен простой способ, позволяющий охарак- теризовать это множество. Для достижения данной цели удобнее всего восполь- зоваться грамматикой. Конкретный тип грамматики, который мы выбрали, носит название ► контекстно-свободная грамматика, поскольку каждое выражение в этом случае будет иметь одну и ту же форму в любом контексте. В качестве спо- соба оформления грамматик мы приняли формальную систему под названием ► форма Бэкуса-Наура или БНФ (Васкиз-Ыаиг/огт, ВЫГ). В любой БНФ-грам- матике присутствуют четыре компонента. • Множество ► терминальных символов. Это символы или слова, из кото- рых состоят строки языка. В качестве таких символов могут использоваться буквы (А, В, С,...), слова (а, аагдтагк, аЬасив,...) или любые символы, яв- ляющиеся допустимыми для области определения. • Множество ► нетерминальных символов, которые обозначают компо- ненты предложений языка. Например, нетерминальный символ МптРкгазе (именное словосочетание) в английском языке обозначает бесконечное мно- жество строк, включая такие, кзлауои или (Не Ы% а1оЬЬегу • ► Начальный символ, который представляет собой нетерминальный символ, обозначающий законченный набор из строк языка. В граммати- ке английского языка таковым является символ 8еп1епсе', в грамматике
Б.2. Описание алгоритмов с помощью псевдокода 685 арифметических выражений для этой цели может быть определен символ Ехрг, а в грамматике языка программирования это может быть Рго§гат. • Множество ► правил подстановки в форме ЬН8-> КН8, где ЬН8 — нетер- минальный символ, а КН8— последовательность, в которую входят нуль и больше символов. Это могут быть как терминальные, так и нетерминальные символы, а также символ €, который мы будем использовать для обозначе- ния пустой строки. Правило подстановки вида 8еп1епсе^1УоипРкга8е УегЬРкгазе означает, что при наличии двух строк, обозначенных как ^ипРкгазе (именное словосочетание) и УегЬРкгазе (глагольное словосочетание), их можно соединить друг с другом и классифицировать результат как 8еп1епсе. Определение этого пра- вила также можно записать в сокращенном виде: если есть два правила (5—>А) и (5—>В), то можно записать (5—> А | В). Чтобы проиллюстрировать эту концепцию, ниже приведена БНФ-грамматика для простых арифметических выражений. &ХРГ Ехрг Орегсйог Ехрг | (Ехрг) | ТУитЬег ТУитпЬег —> 1 МитЬег О1&Н -> 0|1|2|3|4|5|6|7|8|9 ОрегаЮг + |. | 4-1 х Более подробные сведения о языках и грамматиках приведены в главе 23. Сле- дует отметить, что в других книгах в системе обозначений БНФ могут использо- ваться немного другие правила, например нетерминальные символы могут обозна- чаться а не терминальные символы — ЧуопГ, а не иуогй, а в правилах может использоваться символ ::= вместо —>. Б.2. Описание алгоритмов с помощью псевдокода В этой книге все упоминаемые алгоритмы представлены на ► псевдокоде. Ос- новные конструкции этого псевдокода должны быть понятны пользователям таких языков, как Зауа, С++ и в особенности Руйюп. В некоторых местах для описания вычислений в псевдокоде используются математические формулы или текст на естественном языке, поскольку в противном случае пришлось бы применять бо- лее громоздкие конструкции. Также следует отметить, что в алгоритмах использу- ются приведенные ниже соглашения. • Сохраняемые переменные. Ключевое слово регаЫепС (сохраняемая) используется как указание на то, что переменной присваивается началь- ное значение при первом вызове содержащей ее функции, после чего это
значение (или значение, присвоенное переменной с помощью выполнен- ных в дальнейшем операторов присваивания) сохраняется при всех по- следующих вызовах функции. Таким образом, сохраняемые переменные подобны глобальным переменным в том, что они сохраняют свое зна- чение после каждого вызова содержащей их функции, но при этом до- ступны только в данной функции. В программах агентов, приведенных в данной книге, сохраняемые переменные используются в качестве “памя- ти”. В объектно-ориентированных языках, таких как С++, Зауа, Ру1Ьоп и 8та111а1к, программы с сохраняемыми переменными могут быть реализо- ваны в виде объектов. В функциональных языках они могут быть реализо- ваны с помощью функциональных замыканий в той среде, в которой опре- делены требуемые переменные. • Функции как значения. В нашем псевдокоде имена функций и процедур начинаются с прописных букв, а имена переменных состоят из строчных букв и выделяются курсивом. Поэтому в большинстве случаев вызов функ- ции выглядит наподобие Рм(х). Однако также допускается, чтобы значе- нием переменной была функция, например если значением переменной/ является функция вычисления квадратного корня, то выражение У(9) воз- вращает 3. • Значимость отступов. Наличие отступов при записи псевдокода имеет большое значение — по аналогии с языками Ру1Ьоп и Сойее8спр1, но в от- личие от языков Дауа, С++ и Оо (в которых используются скобки) или язы- ков Ьиа и КиЬу (в которых используется оператор епд), в нашем псевдокоде они определяют область действия цикла или условного выражения. • Деструктуризация наборов данных. Нотация “х, у *~пара” означает, что правая часть выражения после вычисления должна представлять собой двухэлементную коллекцию, первый элемент которой присваивается пере- менной х, а второй —у. Та же самая идея может быть представлена записью “Гог х, у ш пара до”. Эта нотация также может использоваться для обмена значениями между двумя переменными: “х, у *-у, х”. • Значения по умолчанию для параметров. Нотация “ГипсНоп Р(х, у = 0) геГигпз число” означает, что в этой функции у является дополнительным аргументом со значением по умолчанию, равным 0. Иначе говоря, вызовы функции Р(3, 0) и Р(3) являются эквивалентными. • Ключевое слово у>е1д. Функция, содержащая ключевое слово у!е1д, пред- ставляет собой ► генератор, генерирующий последовательность значе- ний, — по одному каждый раз, когда встречается выражение, содержащее это ключевое слово. После генерации очередного значения функция про- должает свое выполнение со следующего оператора. В языках Ру1Ьоп, КиЬу, С# и 1ауа8спр1 (ЕСМА8спр1) присутствует подобная функциональная воз- можность.
Б.З. Дополнительный материал в Интернете 687 • Циклы. В псевдокоде допускается четыре типа циклов. - “Гог х т с До” — выполняется цикл с управляющей переменной х, возможные значения которой указаны как последовательность элементов в коллекции с. - “Гог / = 1 1о п До” — выполняется цикл с управляющей переменной /, значения которой представляют собой последовательность целых чисел от 1 до и включительно. - ‘ЧуЬНе условие До” — в этом цикле выполнение условия проверяется перед началом очередной его итерации, и если условие ложно, цикл завершается. - “гереа! ... ипШусловие” — этот цикл безусловно выполняется первый раз, а затем проверяется условие. Если оно истинно, цикл завершается, иначе он выполняется вновь (и в конце опять проверяется условие). • Списки. Нотация [х, у, г] определяет список из трех элементов. Оператор “+” может употребляться для выполнения конкатенации списков: [1,2] + [3, 4] = [1, 2, 3, 4]. Список может использоваться и как стек: функция Рор удаляет и возвращает последний элемент списка, а функция Тор возвращает его последний элемент. • Множества. Нотация {х, у, г} определяет множество (набор) из трех эле- ментов. Запись {х: р(х)} определяет множество из всех элементов х, для ко- торых р(х) истинно. • Индексация в массивах начинается с 1. Первый элемент массива всегда имеет индекс 1, как это принято в обычной математической записи (и в язы- ках К и ЗиЛа), а не 0 (как это принято в языках Ру1Ьоп, Зауа и С). Б.З. Дополнительный материал^Интернете Для этой книги имеется собственный веб-сайт, содержащий дополнительные материалы и инструкции по отправке предложений, а также предоставляющий по- сетителям возможность присоединиться к дискуссионным группам. • атша. сз. Ьег ке1еу. ес!и Все приведенные в этой книге алгоритмы и несколько дополнительных упраж- нений по программированию были реализованы на языках РуДюп и Зауа (а некото- рые и на других языках). Код этих реализаций находится в интернет-хранилище и доступен на веб-сайте, который в настоящее время размещается по адресу • дх+ИиЬ. сот/а1шасос1е
I
Предметный указатель А Ь АО1 72 Ызр 52 А81 72 ЬКТА* 247 АТМ8 585 М В МА* 172 ВОО 659 МАС 342 Вепсктагк1п§ 673 МОЦ 499 Воипбеб Р1ап8АТ 663 Мобиз Ропепз 392 С обобщенное 497 МКУ 340 СИР 397, 522 со-ИР-задачи 676 М со-КР-полные задачи 676 1ЧР-задачи 675 СРМ 650 ИР-полнота 36 С8Р 319 ИР-полные задачи 676 СуЬетеНсз 46 \Р-сложные задачи 676 О О ОАС 350 ООР 575 Оа(а1о§ 504,540 ОРЬЬ 407 Р Е Р-задачи 675 РООЬ 604 Е1 494 предусловие 605 Н состояние 604 схема НЬА 622 восприятия 635 ангельская семантика 628 действий 604 достижимое множество 628 эффект 605 приблизительные описания 630 Р1ап8АТ 663 реализация 623 Рго1о§ 514 уточнение 622 НЬА! 72 8 НТО 622 8МА* 172 примитивное действие 622 Нц»Ь-Ьеуе1 АсИоп 622 II Д ЦСВ! 285 ОСТ 285 ЛМ8 584 1Л 494 К к-совместимость 332
А Абстрактный план 632 Абстракция 129,299 состояний 620 Автоматическая сборка 136 Автоматические рассуждения 25 Автономность 89 Автономные вычисления 118 Агент 27 автономность 89 архитектура 98 безмо дельный 109 внутреннее состояние 103 для частично наблюдаемых сред 237 обучающийся ПО вознаграждение 112 компоненты ПО штраф 112 обучение 89 основанный на знаниях 369 на логике высказываний 414 на модели 104 показатель производительности 85 практичный 108 программа 97 программный 92 простой рефлекторный 100 рациональный 28, 85 решающий задачи 125 целенаправленный 106 Агрегирование 649 Аксиома 370, 465 вневременная 420 исключения действия 427 определения преемника 418,668 предусловий 426 фреймов 417 эффектов 417 Алгебра Роббинса 543 Алгоритм 35 АС-3 329 восхождения к вершине 206 генетический 213 Дэвиса-Патнема 407 имитации отжига 211 итеративного развертывания 193 логического вывода непротиворечивый 380 проверка по моделям 380 локального поиска 410 Метрополиса 252 обзорного распространения 432 обратного логического вывода 513 обратного перехода, управляемый конфликтами 345 поддержки дуговой совместимости 342 поиска 137 минимаксный 266 с возвратами полный 407 показатели производительности 143 полнота 381 прямого логического вывода 403, 506 инкрементный 510 резолюции 398 систематический 144 эволюционный 213 ОРЬЬ 408 ге1е 511 ЗАТРЬАК 426 \УАЬК8АТ 411 Альфа-бета-отсечение 270 Альфа-бета-поиск 300 Альянс 269 Анализ алгоритмов 673 асимптотический 674 сложности 675 Ангельский недетерминизм 628 Аргумент противника 242 Арность 451, 507 Архитектура агента 98 Асимптотический анализ 674 Атомарное высказывание 454 Атрибут, значение 114 Б База данных допущения 462 с непересекающимися шаблонами 182 с шаблонами 181 семантика 461 знаний 370, 387 индексация 501
монотонность 394 сложность данных 509 упорядочение конъюнктов 508 фиксированная точка 506 Эрбрана 530 Байесовская сеть 61 Безмодельный агент 109 Безопасно исследуемое пространство состояний 242 Бесконечная область определения 324 Бессенсорная задача 228,232 Бессенсорное планирование 634 Бинарная диаграмма решений 659 задача УО 325 резолюция 524 Бинарное ограничение 325 Бихевиоризм 42 Большие данные 61 Быстрый поиск 167 В Вектор 677 Верификация 537 Вероятностное отсечение 281 Вероятность 679 Верхняя онтология 552, 553 Вершинная совместимость 328 Вещество 562 свойства 563 Взвешенная линейная функция 277 Визуализация, работы мозга 26 Вневременная переменная 416 Возможные миры 570 Восприятие 82 возможное 234 Восхождение к вершине с выбором первого варианта 210 со случайным перезапуском 210 стохастическое 210 Временная логика 448 проекция 433 сложность алгоритма 143 Время, интервалы 566 Всезнание 88 Выборка 682 Выборочные продления 280 Выбор цели 126 Выполнение 126 Выполнимость 391 Выпуклая оптимизация 222 Выпуклое множество 222 Выражение без заголовка 402 единичное 396,408,535 завершение 520 определенное 402,503 факт 402 хорновское 402 Вырожденная матрица 678 Высказывание 370 аксиома 370 атомарное 382 возможный мир 377 выполнимость 391 допустимость 390 истинность 377 конъюнктивная нормальная форма 397 модель 378 отрицание 383 преобразование в СКР 522 сложное 383 удовлетворение 378 унификатор 498 утверждения 463 факторизация 396 Вычислимость 36 Вычислительная лингвистика 48 Г Генератор 686 Генетический алгоритм 213,218 кроссинговер 214 процесс выбора 214 схема 218 функция приспособленности 214 частота мутации 214 элитарность и отбраковка 214 эффект Болдуина 217 Генетическое программирование 214,253 Гиперграфограничений 326 Гипотеза, Сепира-Уорфа 443 Глобальное ограничение 325, 332
Глобальный максимум 206 минимум 206 Глубина оптимального решения 144 Глубокое обучение 62 для естественного языка 17 Головоломка криптоарифметическая 325 Сокобан 132 с перемещением плиток 132 судоку 334 Гомеостатика 47 Градиент ландшафта 220 Градиентный спуск 206 Грамматика 684 контекстно-свободная 684 Граф 129 И-ИЛИ 403 ограничений 322, 350 связные компоненты 349 симметрия значений 355 планирования 614 пространства состояний 263 д Датчик 81 Двойственный граф 326 Двунаправленный поиск 154 Дедуктивные базы данных 512 Дедуктивный синтез 537 Действие 128, 229 базовое 605 высокого уровня (НЬА) 622,628 уточнение 622 недетерминированное 628 применимость 128 примитивное 622 пропозиционализация 613 резерв времени 651 результат 605 релевантное 612 чередование и з субпланов 657 Декларативный подход 372 Декомпозиция 620 иерархическая 622 Демодуляция 534, 542 Демонический недетерминизм 628 Деонтологическая этика 34 Дерево игры 263 поиска 263 Диаметр графа 151 Дизъюнктивное ограничение 323 Дизъюнкция 383, 579 Динамическое программирование 519 Диофантовы уравнения 357 Дискретизация 219 Дисперсия 682 Доверительное состояние 222,229, 294, 298, 422 обновление 234 Доказательство опровержением 392 Доказуемая полезность 30 Доминирование 178 Допустимость 390, 453 эвристики 161 Допущение об уникальности имен 462 о замкнутости мира 462 Достигнутое состояние 138 Дочерний узел 137 Древовидная декомпозиция 353 ширина дерева 355 Дуализм 32 Дуговая совместимость 329 направленная 350 Е Единичная резолюция 396 матрица 678 Естественные разновидности 559 Естественный язык, обработка 25 Ж Жадный поиск локальный 208 по первому наилучшему совпадению 157 3 Завершение 520 Задача бессенсорная 228 декомпозиция 620 коммивояжера 135
компоновки СБИС 136 линейного программирования 325 навигации робота 136 независимость подцелей 620 о восьми ферзях 207 о покрытии множества 617 оптимизации 206 при ограничениях 327 ослабленная 179 отображения 241 планирования обхода 135 производства 649 реальная 130 решение 129 совместимая с пределами 334 соответствия 228 состояния 128 стандартизированная 130 удовлетворения ограничений 319 поиск 337 упорядочиваемые подцели 619 формальное определение 128 формулировка 126 Воип^ес! Р1ап8АТ 663 Р1ап8АТ 663 8АТ 391 определение выполнимости 412 Закон Мура 44 Запрос 463 подстановка 464 Знания 551,571 представление 25, 369 уровень 372 язык представления 370 Значение заданное по умолчанию 576 переопределение 576 И Игра 37 альянсы 269 позиция 262 полуход 265 с неполной информацией 262 с нулевой суммой 262 с полной информацией 262 стоимости материала 277 с элементами случайности 289 упорядочивание ходов 273 ход 262 частично наблюдаемая 293 Игры-помощники 74 Иерархическая сеть задач 622 Иерархическое планирование 621 прогнозирование 634 Иерархия абстракции 659 таксономическая 556 Избыточный путь 142 И-ИЛИ-дерево 224 ИЛИ-узел 224 Имитация отжига 211 Импликация 383 антецедент 383 двухсторонняя 383 консеквент 383 Инвертированное обучение с подкреплением 74 Индекс искусственного интеллекта 63 объезда 165 Индексация 501 по ключам 502 по предикатам 501 решетка обобщения 502 Индивидуализация 562 Индукция 32 Инженерия знаний 472 процесс 473 Инкрементный поиск 249 в доверительных состояниях 233 Интеллект искусственный 23 на уровне человека 72 особый момент 41 Интеллектуальный агент 14 Интерпретация в модели 451 предполагаемая 451 Интерфейс мозг-машина 41 Инфиксная система обозначений 467 Информированный поиск 155 Искусственная жизнь 253 Искусственный
интеллект общий 72 суперинтеллект 72 Исполнительный механизм 81 Использование состояний 284 Исследование состояний 284 операций 38 Истинность 377 Исчерпывающая декомпозиция 557 Исчисление ситуаций 614 событий 564 Итеративное углубление 274 И-узел 224 К Карточные игры 298 Категория 555 исчерпывающая декомпозиция 557 наследование 556 непересекающиеся 557 подкатегории 556 сегментация 557 типичный экземпляр 560 Качественная физика 562, 593 Квантовые вычисления 45 Квантор 455 базовый терм 456 вложение 459 всеобщности 456 конкретизация высказывания 494 переменная 456 расширенная интерпретация 456 сворачивание 468 существования 457 конкретизация высказывания 494 эквивалентность 460 Кибернетика 46 Класс вариантов среды 97 Классификация 577 Классическое планирование 603 алгоритмы 609 Клеточный мир 131 Ковариационная матрица 682 Ковариация 682 Когнитивная архитектура 512 наука 26,43 психология 42 Коммутативность 337 Композициональность 442 Компонент генератор проблем 111 действующий ПО критик ПО обучающий ПО Компьютерное зрение 25 Конечная область определения 324 Коннекционистская модель 59 Консеквенциализм 34, 85 Константа 451 сколемовская 495 Конструирование белка 137 Конструкция ИчЬеп-еке 224 у/Ы1е 227 Контекстно-свободная грамматика 684 Контроллер 117 Контроль действий 645 плана 646 цели 645 Контур поиска 162 Конфликтный набор 343 Конформное планирование 634 Конъюнктивная нормальная форма 397, 522 Конъюнкция 383 Кортеж 449 Косвенное описание 580 с приоритетами 581 Коэффициент ветвления 144 эффективный 177 конкурентоспособности 242 Кратчайший путь 184 Кригшпиль 294 вероятностный мат 295 гарантированный мат 295 случайный мат 297 стратегия 295 Критический путь 650 Кроссинговер 214 Кумулятивное распределение 680
Л Ландшафт пространства состояний 206, 209, 348 градиент 220 Лемма поднятия 529, 530 Линейное ограничение 324 планирование 657 программирование 221 Линейный поиск 220 Листовой узел 138 Литерал 383 взаимно обратные 396 Логика 377 высказываний 370, 382 выражение 396 доказательство теорем 390 литерал 383 пропозициональный символ 382 таблица истинности 385 высшего порядка 448 модальная 570 немонотонность 580 нечеткая 447 описательная 577 первого порядка 441,463 атомарное высказывание 454 запросы 463 инженерия знаний 472 кванторы 455 логические связки 455 модели 449 определенные выражения 503 пропозиционализация 495 равенства 533 символ равенства 460 синтаксис 451 терм 453 унификация 498 факторизация 525 язык 446 полуразрешимость 496 предпочтения моделей 581 следствие 378 умолчания 581 формальная 34, 445 Логицизм 27 Логическая минимизация 559 связка 383,455 эквивалентность 390 Логический вывод 341,371,380 доказательство 392 логика первого порядка 493 обоснование 382 обратный 513 правила 392 правило отделения 392 пропозициональный планирование 424 процедура 388 прямой 503 прямой и обратный 402,406 резольвента 395 сохранение истинности 380 позитивизм 32 Логическое всеведение 572 программирование 402,514 в ограничениях 358, 521 табулированное 519 следствие 453 Локализация 238 Локальная совместимость 328 Локальный максимум 208 поиск 206,219,346 в оперативном режиме 245 получу 213 М Магическое множество 512 Макрооператор 659 Манхэттенское расстояние 177 Математическое ожидание 681 Материал повторно используемый 649 расходный 649 Материализм 32 Матрица 678 вырожденная 678 единичная 678 ковариации 681 обратная 678
Машинная эволюция 55 Машинное обучение 25 Мера 561,562 Мереология 591 Метаправила 521 Метарассуждения 302 Метауровневое обучение 186 пространство состояний 185 Метод ветвей и границ 192 взвешивания ограничений 348 критического пути 650 Монте-Карло 283 наблюдаемого литерала 431 Ньютона-Рафсона 221 обратного перехода 343 проставление обратных отметок 360 разрыва цикла 352 резолюций 394 Микромир 53 Минимаксное значение 266 решение 266 Минимаксный поиск 265 Мир блоков 53 вампуса 373, 470 база знаний 387 гибридный агент 420 клеточный 131 пылесоса 131 Многомерное гауссово распределение 681 Множество 468 поддержки 535 разрыва цикла 352 Модальная логика 570 квантификаторы 571 линейная временная 572 логическое всеведение 572 Модальный оператор 570 Модель 378 вероятностная 679 возможные миры 570 интерпретация 451 коннекционистская 59 логика первого порядка 449 мира 104 отношения 449 проблемная область 449 сенсоров 104 скрытая марковская 60 стандартная 28 функции 450 Момент времени 566 Мониторинг 237 Монотонность 163,394 логики 580 эвристики 161 Мультиагентная система 118 Н Наиболее крутой подъем 207 Направленная дуговая совместимость 350 Наследование 556, 574 множественное 575 Насыщение 529 Натурализм 32 Натуральные числа 467 аксиомы Пеано 467 Начальное состояние 128,229 Начальный символ 684 Недетерминированные полиномиальные задачи 675 Независимая подзадача 349 Независимость подцелей 620 Нейрон 39 Нейронауки 38 Немонотонная логика 580 логика умолчания 581 Немонотонность 580 Ненадежный мир пылесоса 226 Непредсказуемый мир пылесоса 223 Непрерывное планирование 643 контроль выполнения 644 Непротиворечивость 380,389,577 Неравенство треугольника 161 Нетерминальный символ 684 Нечеткая логика 447 Нормальное распределение 680 Нотация О большое 673 Нулевая сумма 262
О Область определения дискретная 324 непрерывная 324 Обобщение 577 Обобщенное правило отделения 497 Обоснование в ДТМ8 584 Обработка естественного языка 25 Обратная матрица 678 Обратный логический вывод 513,541 минимаксный поиск 283 поиск 611 Обучение 89, 382 глубокое 62 основанное на объяснениях 659 при поиске в оперативном режиме 249 Объект 445, 568 кортеж 449 ментальный 569 пропозициональная установка 569 свойства 563 совокупность 559 составной 558 Обязательно развертываемые узлы 164 Овеществление 556 высказываний 576 Ограничение глобальное 332 дизъюнктивное 323 на ресурсы 648 нарушающее симметрию 355 нелинейное 324 предпочтения 327 предшествования 323 распространение ограничений 328 ресурсное 333 типы 325 АПсШГ 332 айпо81 333 Ограниченная рациональность 29 Ожидаемая полезность 108 Ожидаемое значение 276,291 минимаксное значение 291 Окружающая среда 81 Онтологическая инженерия 552 Онтологический вклад 446 Онтология верхняя 552 категории 555 общего назначения 554 проблемной области 474 специального назначения 554 хроники 590 хронологии 590 Оператор модальный 570 Операция 649 с предикатами 578 Описательная логика 573,577 язык 577 Опорная точка 183 Определение 465 ограничений с помощью обучения 345 условий выбора множества разрыва цикла 353 Оптимальное решение 129 Оптимальность затрат 143 по эффективности 164 Оптимизация при ограничениях 221 Оптимизм в отношении неопределенности 248 Оптимистическое описание 630 Оптогенетика 40 Ослабленная задача 179 Ослабленный план 619 Особый момент 41 Отбраковка 214 Отладка базы знаний 474,480 Отношение 320,445 Отношения доступности 570 Отрицание 579 высказывания 383 Отсечение 164,262,270 бесполезных вариантов 306 Оценка состояния 237, 294, 422 Очередь 141 с приоритетом 141 ПРО 141 ЫРО 141
П Парамодуляция 534, 542 Переименование 505 Переменная 114 локальный поиск 219 стандартизация 499 Перемещение в сторону 210 связок-1 522 Переопределение 576 Перепланирование 644 внешние события 644 контроль 645 отсутствующая флюента 644 отсутствующее предусловие 644 Пересмотр убеждений 583 Перестановки 274 Периферия 138 разделение графа 139 Перцептрон 54 Пессимистическое описание 630 План абстрактный 632 время выполнения 649 контроль выполнения 644 ослабленный 619 Планирование 106 абстракция состояний 620 бессенсорное 634, 636 булева выполнимость 613 доверительное состояние 634,637 первое приближение 640 задача начальное состояние 605 цель 605 иерархическая декомпозиция 622 иерархическое 621 абстрактное решение 626 свойство нисходящего уточнения 627 классическое 603 конформное 660 линейное 657 непрерывное 634, 636, 643 обратный поиск 612 по прецедентам 660 примеры 606 прямой поиск 611 реактивное 662 сокращение симметрии 619 составление расписаний 648 с частичным упорядочиванием 615 условное 634,642 формальное представление 604 эвристика 616 игнорирования предусловий 616 с пустым списком удаления 617 НТК 622 библиотека планов 626 действие Ас! 624 Плато 209, 348 Плотность вероятности 680 Подкатегория 556 Поднятая версия 498 Поднятие 498 Подстановка 464,494 Поиск 106, 125, 126 в автономном режиме 240 в глубину 148 с итеративным углублением 151 в графе 142 в И-ИЛИ дереве 224 в оперативном режиме 240, 241 агенты 243 обучение 249 восхождением к вершине 207,210,245 в условиях противодействия 261 в частично наблюдаемых средах 233 в ширину 145 двунаправленный 154 спереди назад 174 спереди на передний план 174 эвристический 173 жадный по первому наилучшему совпадению 157 иерархический 192 инкрементный в доверительных состояниях 233 информированный 155 контуры 162 линейный 220 локальный 206,218 в задачах УО 346 получу 213 минимаксный 265 обратный минимаксный 283
отсечение 262 по дереву 143 методом Монте-Карло 283 по критерию стоимости 147 получу 168,281 по методу Монте-Карло 301 по первому наилучшему совпадению 140 приближенный 167 рекурсивный по первому наилучшему совпадению 169 с возвратами 150, 337 динамический 360 управляемый зависимостями 359 хронологический 343 с неограниченной стоимостью 167 с ограничением глубины 151 с ограниченной стоимостью 167 спокойных позиций 279 стохастический по лучу 213 упрощенный МА* 172 цикл 142 чистый по методу Монте-Карло 284 А* 158 с весовым коэффициентом 165 с итерати вным углублением 168 с ограничением памяти 172 Показатель производительности 85 Полезность 34, 107 доказуемая 30 ожидаемая 108 Полиномиальные задачи 675 Полное присваивание 320 Полнота алгоритма 143, 381 опровержения 528 резолюции 400 Полуразрешимость 496 Полуход 265 Портфолио алгоритмов 654 Последовательность восприятия 82 Постановка цели 126 Правило единичной резолюции 395 замыкания проблемной области 462 отделения 392 обобщенное 497 по умолчанию 582 подстановки 685 резолюций 395, 396, 524 удаления связки 392 условие-действие 101 1Г-1Ьеп 383 Предварительная проверка 341 Предвычисление 183 Предикат, арность 451, 507 Предпочтение моделей 581 Предпочтительное действие 619 Представление атомарное 113 знаний 25,48, 369 развернутое 114 атрибуты 114 Предусловие 605 Преемник 137 Префиксная система обозначений 467 Приближенный поиск с органичениями 167 Применимость 128 Принудительный перевод 229 Принцип индукции 32 Принятые обозначения 15 Приобретение знаний 473 Присваивание 320 конфликтный набор 343 Проблема выравнивания ценностей 30 гориллы 73 квалификации 419 логического фрейма 418 представления фреймов 418 фреймов 417,433 царя Мидаса 74 Проблемная область 449,463 аксиомы 465 онтология 474 определения 465 правило замыкания 462 примеры 464,467-470, 475 теоремы 465 среда 90 детерминированная 94 динамическая 95 дискретная 95 известная 95
класс вариантов 97 мультнагентная 93 конкурентная 93 кооперативная 93 недетерминированная 94 неизвестная 95 непрерывная 95 одноагентная 93 полностью наблюдаемая 93 полудинамическая 95 последовательная 94 статическая 95 стохастическая 94 частично наблюдаемая 93 эпизодическая 94 РЕА8 90 Пробуксовка 173 Проверка вхождения 500 по моделям 380 схемы 480 терминального состояния 263 цели 230 Прогнозирование 234 Прогон 284 Программа агента 83, 97 Программирование динамическое 519 логическое 514 Программный бот 92 Продолжительность действия 649 Продукционная система 511, 540 Пропозиционализация 495 Пропозициональная установка 569 Пропозициональный символ 382 Просмотр таблицы 282 Простой рефлекторный агент 100 Пространственная сложность алгоритма 143 Пространственные рассуждения 594 Пространство доверительных состояний 229 состояний 128 безопасно исследуемое 242 ландшафт 206 метауровневое 185 объектного уровня 185 Протокольное предложение 32 Процедурное вложение 576 Процедурный подход 372 Прямое отсечение 281 Прямой логический вывод 503 магическое множество 512 Прямой поиск 610 Псевдокод 685 списки 687 циклы 687 Психологические рассуждения 594 Психологический эксперимент 26 Путевая совместимость 331 Путь 129 избыточный 142 Р Равенство аксиоматизация 533 демодуляция 533 Равномерное распределение 682 Развертывание узла 137 Размер шага 220 Разрешимость 36 Разумная достаточность 38 Рандомизация 103 Раннее завершение прогона 288 Ранняя проверка достижения цели 145 Расписание 651 критический путь 650 Распределение Гаусса 680 кумулятивное 680 многомерное гауссово 681 нормальное 680 стандартное 681 равномерное 682 с тяжелым хвостом 252 Распространение единичных выражений 408 ограничений 328 пределов 334 Расстояние в городских кварталах 176 манхэттенское 177 по прямой 157 Рассуждения 369
автоматические 25 направляемые целями 406 о категориях 573 пространственные 594 психологические 594 ссылочная прозрачность 570 управляемые данными 405 Расходный материал 649 Расширение 582 Рациональность 24 ограниченная 29 Рациональный агент 28, 85 определение 86 Реализация НЬА 623 действие Ас! 624 Реальная задача 130 Регрессивный поиск 611 Регрессия 612 Резерв времени 651 Резервирование 267 Резольвента 395, 524 Резолюционное замыкание 400, 530 Резолюция 521 бинарная 524 единичная 535 использование единичных выражений 535 линейная 536 обобщение 536 обучение 536 основная теорема 401,528 полнота 400, 528 с входными высказываниями 536 стратегии выполнения 535 Результат, список добавления 605 удаления 605 Рекомбинация 213 Рекурсивный поиск по первому наилучшему совпадению 169 Ресурсное ограничение 333 Решение 126, 129 оптимальное 129 субоптимальное 165 частичное 320 Решетка обобщения 502 Робототехника 25 Родительский узел 137 С Самоанализ 25 Сбор информации 88 Свойства внешние и внутренние 563 Связные компоненты 349 Сегментация 557 Семантика 377 ангельская 628 базы данных 462 истинностное значение 384 Семантическая сеть 573 наследование 574 фреймы 592 Силлогизм 27, 430 Символ 684 константы 451 предиката 451 функции 451 Симметрия значений 355 Симуляция 284 Синтаксис 377 логики высказываний 382 Синтаксическое упрощение 468 Синтез 537 Система без обратной связи 127 обеспечения истинности 359 обозначений инфиксная 467 префиксная 467 синтаксическое упрощение 468 поддержки истинности 584 объяснения 585 предположения 585 АТМ8 585 ЛМ8 584 с обратной связью 127 Сколемизация 523 Сколемовская константа 495 функция 523 Скрытая марковская модель 60 Слабые методы 56 Следствие 378 Сложность данных 509 Случайное блуждание 246 Событие 564, 565
Совместимое присваивание 320 Совместимость 320 вершин 328 дуговая 329 кратности к 332 локальная 328 путевая 331 Совокупность 559 Согласование с шаблоном 508 Сокращение последних ходов 281 симметрии 619 Составление расписания 648 Составные объекты 558 Состояние 128 атомарное представление 113 достигнутое 138 локализованное представление 115 начальное 128 повторяющееся 142 представление выразительность 115 развернутое представление 114 распределенное представление 115 характеристики 186 целевое 128 Список 469 добавления 629 связывания 464 удаления 629 Спокойная позиция 279 Способность поступать правильно 28 Среда недетерминированная 223 ненаблюдаемая 93 частично наблюдаемая 234 Среднее квадратическое 682 Ссылочная прозрачность 570 Стандартизация 499 переменных 523 Стандартизированная задача 130 Стандартная модель 28 Стандартное нормальное распределение 681 отклонение 682 Статистика 35 Стек 141 Степенная эвристика 340 Степень доверия 448 истинности 447 Стоимость действия 230 Стохастические игры 289 Стохастический поиск по лучу 213 Стохастическое восхождение к вершине 210 Стратегия 283 выбора 284 прогонов 284 типы 275 Строгая к-совместимость 332 Структура задач УО 349 Судоку 334 Существительные, исчисляемость 562 Схема восприятия 635 действий 604 примеры 218 Счетчик ссылок 168 Т Таблица истинности 385 перестановок 274 Тавтология 390 Таксономия 556 Теорема 465 дедукции 390 критической точки выполнимости 413 о неполноте 36, 531 основная резолюции 401,528 центральная предельная 681 Эрбрана 530 Теория вероятности 27, 35 игр 38,261 подтверждения 32 принятия решений 37 управления 46 КР-полноты 36 Терм 453 базовый 456 Терминальное состояние 263 Терминальный символ 684
Тест останова 275 Тьюринга 24 общий 25 эталонный 673 Типичный экземпляр 560 Топологическая сортировка 350 Транспонирование 678 Тупик 242,345 У Удаление кванторов всеобщности 523 Узел 137 дочерний 137 жеребьевки 290 листовой 138 развертывание 137 родительский 137 Унарное ограничение 325 Универсум Эрбрана 529 Унификатор 498 наиболее общий 499 Унификация 498, 539 с учетом равенства 534 Упорядочение конъюнктов 508 Упорядочиваемые подцели 619 Уровень абстракции 130 знаний 372 реализации 372 Усиление интеллекта 43 Условное планирование 634, 642 Условный план 222, 224 эффект 639 Усреднение по ясновидению 298 Устранение импликаций 522 Утверждение 463 степень истинности 447 Утилитаризм 34 Уточнение НЬА 622 реализация 623 Ф Факт 402 переименование 505 Фактор уверенности 57 Факторизация 396, 525 Физическая символическая система 51 Фиксированная точка 506 Фильтрация 237 Флюента 564,416, 568 отсутствующая 644 Форма 1-СЫР 423 первое приближение 423 Бэкуса-Наура 684 Формальная логика 34 Формирование узла 137 Формулировка задачи 126 полного состояния 207 Фрейм 58 Функция 445 агента 82 арность 451 единиц измерения 561 определения преемника 128, 224, 230,263, 416 оценки 262, 275, 291 ошибок 681 плотности вероятности 680 полезности 107,263 полностью определенная 450 приспособленности 214 стоимости действия 128 целевая 206 эвристическая 155,176 X Характеристики состояния 186,276 Хеббовское обучение 49 Ходы-убийцы 274 Хорновское выражение 402 тело и голова 402 Хребет 209 ц Целевая функция 47,206 Целевое состояние 128 Цель 605 периметр 657 пропозиционализация 614 Центральная предельная теорема 681 Цикл 142 Циклическое решение 227
Ч Частичная наблюдаемость 293 Частичное присваивание 320 Частота мутации 214 Ш Ширина гипердерева 361 дерева 355 Э Эволюционные алгоритмы 213 Эвристика доминирование 178 допустимая 161 единичного выражения 408 игнорирования предусловий 616 минимального резерва 653 минимальных конфликтов 346 преемственность 161 пустого хода 306 разностная 184 с наименее ограничительным значением 340 с ориентирами 183 с пустым списком удаления 617 убийцы 274 чистого символа 407 МКУ 340, 508 Эвристическая функция 155 оценки 276 Эквивалентность 383 логическая 390 Экзистенциальный граф 573 Экономика 261 Экспертная система 57 Элемент проблемной области 449 Элитарность 214 Эмпиризм 32 Эмпирический градиент 220 Эпистемологический вклад 448 Эталонный тест 673 Эффект 605 Болдуина 217 горизонта 279 отсутствующий 644 условный 639 Эффективная глубина 177 Эффективный коэффициент ветвления 177 Я Язык декларативный 442 логики первого порядка 446 мышления 443 онтологический вклад 446 представления 441 представления знаний 370 синтаксис 377 элементы объект 445 отношения 445 эпистемологический вклад 448 СЕА881С 577 Оа1а1о8 504,540 Ь18р 52 МК8 521 РЭЭЕ 604 состояние 604 Рго1об 58,514,541 особенности 516 семантика базы данных 519
Самое полное и актуальное введение в теорию и практику искусственного интеллекта! В четвертом, обновленном, пересмотренном и дополненном издании этой книги область искусственного интеллекта (ИИ) исследуется и анализируется во всей ее обширности и глубине. Здесь представлены все современные достижения и изложены идеи, которые были сформулированы в исследованиях, проводившихся в течение последних пятидесяти лет, а также собраны на протяжении двух тысячелетий в областях знаний, ставших стимулом к развитию ИИ как науки. Предыдущие издания этой книги стали классическими образцами литературы по ИИ и приняты в качестве учебного пособия более чем в 1400 университетах 128 стран мира, где были высоко оценены как убедительный итог обобщения результатов, достигнутых в этой области науки. Книга дополнена обширным набором интернет-ресурсов, включая упражнения, программные и исследовательские проекты, реализации алгоритмов, а также дополнительные материалы и ссылки для студентов и преподавателей. Что нового в четвертом издании В четвертом издании читатель познакомится с новейшими технологиями и концепциями, представленными в более унифицированном виде с новым или расширенным охватом таких тем, как машинное обучение, глубокое обучение, трансферное обучение, многоагентные системы, робототехника, обработка естественного языка, проблема причинности, вероятностное программирование, а также конфиденциальность, беспристрастность и безопасность ИИ. Что представлено в этом томе В связи с исключительно большим объемом этого энциклопедического издания его перевод на русский язык представлен в виде трехтомника. В текущем томе, получившем подзаголовок Решение проблем: знания и рассуждения, излагаются основы основ ИИ — общая характеристика этой области как науки об интеллектуальных агентах, действующих в различных средах и решающих различные задачи на основании знаний, результатов восприятия, рассуждений и планирования. Что в других томах В двух последующих томах, II и III, охвачены аспекты действия агентов в окружении, более приближенном к реальному: знания, рассуждения и принятие решений в условиях неопределенности, в том числе в многоагентной среде (том II), а также методы и возможности их обучения, совершенствования восприятия и реализации в виде автономных устройств — роботов и роботизированных систем, включая такие важные социальные аспекты, как справедливость, доверие, общественное благо и безопасность (том III). ОБ АВТОРАХ Стюарт Рассел, профессор компьютерных наук Калифорнийского университета в г. Беркли, адъюнкт-профессор неврологической хирургии Калифорнийского университета в г. Сан-Франциско, основатель и директор центра Сеп1ег1ог Нитап-СотрабЫе А1 и заведующий кафедрой инженерного искусства Смита-Задэ в Калифорнийском университете в г. Беркли. Питер Норвиг, директор по исследованиям в компании (Зоод1е, 1пс., прежде — глава ее группы разработки основных алгоритмов веб-поиска. До этого руководил отделом компьютерных наук в Исследовательском центре Эймса, НАСА, был профессором в Университете Южной Калифорнии и членом совета факультета в Беркли и Станфорде. Авторы этой книги удостоены первой награды ААА1/ЕАА1 "Выдающийся педагог" в 2016 году. Загрузите дополнительные материалы к книге с сайта издательства по адресу: ЬМр:/Лши. мШхатзриЬИзЫпд. сот/Воокз/978-5-907 365-2 5-4 .Ыт1 15ВЫ 978-5-907365-25-4 3 лидлЕктикд 7У7УшЛа1екйка.сот уууууу.реагзоп.сот