Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Слэйгл Д. Искусственный интеллект. Подход на основе эвристического программирования

.pdf
Скачиваний:
13
Добавлен:
25.10.2023
Размер:
12.47 Mб
Скачать

Э В Р И С Т И Ч Е С К О Е П Р О Г Р А М М И Р О В А Н И Е

11

и

функционирования отдельных

фирм, транспортных

и

энергетических сетей и даже

работы других вычисли­

тельных машин. Поведение вычислительной машины мож­ но варьировать от грубого приближения к действитель­ ному поведению моделируемой системы до почти точной его копии. Процессы в вычислительной машине могут происходить в ускоренном или замедленном темпе по сравнению с процессами в моделируемой системе.

Когда мы здесь и далее в этой главе говорим, что вычислительная машина или программа «что-то делает», мы имеем в виду, что соответствующее действие выпол­ няется совместно вычислительной машиной и программой.

1.3. П О Д Х О Д Ы К И С К У С С Т В Е Н Н О М У И Н Т Е Л Л Е К Т У

г-Ц -Можно указать на три подхода к проблеме искусст­ венного интеллекта, применяемые различными исследо­ вателями: создание искусственных сетей, искусственное воспроизведение эволюции и эвристическое программиро­ вание. Поскольку эта книга посвящена эвристическому программированию (подход, которому отдает предпочте­ ние автор), мы о других подходах скажем всего не­ сколько слов.

Сеть состоит из большого числа простых элементов и связей между ними. Искусственная сеть либо модели­ руется на вычислительной машине, либо строится из физических элементов. Часто каждый элемент сети пред­ ставляет собой искусственный нейрон (нервную клетку). Одним из преимуществ этого подхода является то, что синтезируемая сеть обычно адаптивна; это означает, что она может «обучаться» на собственном опыте. Исследова­ тели, работающие в области создания искусственных се­ тей, указывают, что, по мнению многих ученых, естест­ венный интеллект формируется исключительно на осно­ ве (естественных) нейронных сетей. Однако лучшее, на что искусственные сети пока оказались способны, это «обучаться» распознавать простые зрительные и слухо­ вые образы. Таким образом, деятельность сетей еще очень далека от интеллектуального поведения. Одна из труд­ ностей, с которой мы встречаемся при этом подходе, за­ ключается в том, что имеется мало надежд создать искус-

12 ГЛАВА I

ственную сеть, сравнимую по сложности с человеческим мозгом, состоящим приблизительно из 1010 нейронов. К тому же нейрофизиологи еще очень далеки от полного понимания механизмов работы и взаимодействия нейро­ нов.

При эволюционном подходе к искусственному интел­ лекту моделируемую на вычислительной машине систему заставляют эволюционировать путем мутаций и отбора. Таким путем удалось добиться, что системы искусствен­ ного интеллекта эволюционировали в системы, способные решать простейшие задачи. Исследователи, использую­ щие этот подход, указывают, что, по мнению ряда уче­ ных, человеческий интеллект эволюционировал благодаря процессу, включающему мутации и естественный отбор. Одна из трудностей использования этого подхода состоит в том, что механизмы естественной эволюции еще не впол­ не понятны. Другой трудностью является то, что этот подход практически приемлем только в случае, если искусственную эволюцию удастся сделать во много раз

более

быстрой, чем

естественная эволюция.

В

последующих

главах описывается только подход

с позиций эвристического программирования. Под эври­ стикой понимается правило, стратегия, метод или прием, используемые для повышения эффективности системы, которая пытается найти решения сложных задач. Эври­

стическая программа — это программа

для

вычислитель­

ной

машины,

использующая эвристики. В

соответствии

со

словарем

Вебстера прилагательное

«эвристический»

означает «способствующий открытию» (serving to disco­ ver). Оно является производным от слова «эврика» (из­ вестно, что это слово произошло от греческого heuriskein — открывать, находить). Некоторые из эвристиче­ ских программ, которые будут рассмотрены ниже, могут играть в шашки, в шахматы и в некоторые карточные игры. Другие способны на основании заданных сведений нахо­ дить ответы на вопросы. Особенностью третьих является решение шахматных задач и задач из области математи­ ческих исчислений. Четвертые доказывают теоремы в математической логике и геометрии. Например, програм­ мы для доказательства геометрических теорем способны доказать такую достаточно сложную теорему: Если отре-

Э В Р И С Т И Ч Е С К О Е П Р О Г Р А М М И Р О В А Н И Е

13

зок, соединяющий точки, делящие пополам диагонали трапеции, продолжить до пересечения со стороной трапе­ ции, точка пересечения разделит эту сторону пополам. Некоторые из эвристических программ, описанных в этой книге, способны обучаться на основе собственного опыта. Несколько программ являются многоцелевыми в том смысле, что они могут решать различные классы задач. Некоторые из используемых эвристик имеют огра­ ниченное приложение, будучи пригодны лишь для опре­ деленной области решаемых проблем, например для до­ казательства теорем в геометрии. Другие эвристики но­ сят более общий характер, т. е. применимы в нескольких областях. Например, эвристика «движения в обратном направлении» (working backward) оказывается полезной в различных случаях доказательства теорем и решения задач.

1.4. Ц Е Л И Э В Р И С Т И Ч Е С К О Г О

П Р О Г Р А і Ч М И Р О В А Н И Я

Исследования в области

«Искусственного интеллек­

та» и эвристического программирования имеют двоякую цель: 1) выяснение сущности естественного (человече­ ского) интеллекта и 2) использование машинного интел­ лекта для приобретения новых знаний и решения интел­ лектуально трудных задач. Первую цель преследует пси­ холог. Он конструирует в виде программы для вычисли­ тельной машины модель определенного поведения, рас­ сматриваемого как человеческий интеллект. Для этого он знакомится с литературой по психологии, анализи­ рует экспериментальные данные и ставит сам эксперимен­ ты, иногда используя при этом метод протоколирования. При использовании метода протоколирования экспери­ ментатор наблюдает за испытуемыми, которые вслух рас­ суждают в ходе решения сложных задач. Затем он конст­ руирует модель процесса решения задачи в виде програм­ мы для вычислительной машины и пытается установить, в чем действия полученной программы отличаются от действий испытуемых. Потом он снова наблюдает за испы­ туемыми и конструирует более совершенную модель. Этот цикл повторяется несколько раз. Воплощение получен­ ной модели в программу для вычислительной машины

14 ГЛАВА 1

дает два важных преимущества. Во-первых, психолог вынужден при этом возможно более точно и подробно разработать свою модель, и, во-вторых, он получает воз­ можность постепенного усовершенствования модели, «про­ игрывая» программу на вычислительной машине.

Исследователь, ставящий перед собой вторую цель, заинтересован лишь в синтезе интеллектуального пове­ дения и не заботится о том, использует ли вычислитель­ ная машина методы, которыми пользуются люди. Он надеется, что вычислительная машина окажется в конце концов способной решать целый ряд важных и сложных задач, включая задачи из области экономики и социаль­ ных наук. В этой книге особое внимание уделяется вто­ рой цели направления «Искусственный интеллект».

Рассмотренные выше цели, которым в эвристическом программировании придается особое значение, не легко достигнуть просто за счет улучшения самих эвристических программ. Это обстоятельство обусловлено главным об­ разом тем, что исследователь для построения успешно действующей машины вынужден стремиться к воспроиз­ ведению в машине методов, используемых людьми, так как люди обладают большим интеллектом, чем современ­ ные машины. Последующая работа исследователей будет, вероятно, развиваться в соответствии с целями каждого из них, если исследуемая проблемная область не будет накладывать жесткие ограничения на методы, необходимые для решения относящихся к ней задач.

1.5. Д Е Р Е В Ь Я ИГРЫ

Важной частью большинства эвристических программ является процедура анализа «дерева» логических воз­ можностей. Существуют два вида деревьев: деревья игры и деревья целей. Ветви в дереве игры представляют собой ходы, ответные ходы, ответы на ответы и т. д. Де­ рево же целей показывает, что некоторая исходная цель достижима, если достижимы определенные подцели; в свою очередь достижимость этой подцели может быть установлена, если достижимы определенные подцели на пути к ней, и т. д. Так как деревья имеют тенденцию сильно разрастаться, важной задачей большинства эври-

Э В Р И С Т И Ч Е С К О Е П Р О Г Р А М М И Р О В А Н И Е

15

Р

а проигрывает

а

выигрывает

о проигрывает

о

выигрывает

д выигрывает

д

проигрывает

Ф и г . 1.1. Эксплицитное дерево

игры.

 

стических программ является эффективное выделение существенных частей дерева. Ввиду того что .мы сначала будем изучать эвристические программы, которые играют в игры, в первую очередь будут обсуждаться деревья игры. Однако многие утверждения, касающиеся деревьев игры, можно отнести и к деревьям других видов. Действи­ тельно, в гл. 4 будет показано, что определенный тип деревьев игры в некотором смысле эквивалентен опреде­ ленному виду деревьев целей. Дерево игры может быть

эксплицитным и имплицитным. Эксплицитное дерево игры задается в явном виде, как на фиг. 1.1, имплицитное же дерево задается путем указания исходной позиции и пра­ вил формирования дерева, как это имеет место при игре в шашки, шахматы и т. п.

Эксплицитные деревья. В таких деревьях узлы (квад­ раты, кружки, треугольники) обозначают игровые по­ зиции, а дуги — «ходы». Вершина дерева обозначает исходную позицию. Конфигурация узла обозначает имя

16

ГЛАВЛ I

проигрывает

а

выигрывает

о проигрывает

о

выигрывает

а

выигрывает

д

проигрывает

Ф и г. 1.2. Ход в позицию Р 3 преобразует дерево, показанное на фиг. 1.1, в дерево, показанное на фиг. 1.2.

игрока, имеющего право хода в данной позиции. Соответ­

ственно мы будем говорить о

позициях «квадратов»,

«кружков» и

«треугольников».

В

игре, представленной

эксплицитным

деревом фиг.

1.1,

игрок-квадрат делает

первый ход из позиции Р. Если квадрат при своем ходе попадает в позицию Р3, он проигрывает, а круг и тре­ угольник выигрывают. Мы будем называть Plt Р2, Р3 «преемниками» позиции Р. Говорят, что позиция Р на­ ходится на уровне 0, преемники Р — на уровне 1, преем­ ники преемников Р — на уровне 2 и т. д. Предполагая хорошую игру со стороны других игроков, квадрат (фиг. 1.1) может форсировать победу, решив перейти в позицию Рг. Единственным хорошим ходом для круга является переход в позицию квадрата, из которой квад­

рат (и круг) должны немедленно выиграть.

Фактически

каждый сделанный ход преобразует

одно

дерево игры

в другое. Например, переход в позицию

Р 2

преобразуют

дерево фиг. 1.1 в дерево, показанное

на

фиг. 1.2.

Имплицитные деревья. Имплицитное дерево задается путем указания вершины дерева и правил, которые мож­ но использовать для формирования эксплицитного дере-

Э В Р И С Т И Ч Е С К О Е П Р О Г Р А М М И Р О В А Н И Е

17

Ö

Ф и г. 1.3. Порождающая

процедура «сначала

вширь».

а — п о р о ж д е н и е позиции на

уровне 1; б — т о ж е па

уровне 2;

о — то ж е на уровне 3.

 

 

ва. Правила определяют критерии окончания и указы­ вают, как формировать преемников для любой позиции. В позиции, которая удовлетворяет критериям окончания, преемники отсутствуют. Позднее будут рассмотрены раз­ личные критерии окончания. Один из критериев оконча­ ния удовлетворяется в позициях, в которых игра закан­ чивается. Примером имплицитного дерева могут служить правила игры в шашки. Процедура, которая превращает имплицитное дерево в эксплицитное, называется порож­ дающей процедурой (generation procedure). Порождающие процедуры различаются в зависимости от порядка, в ко­ тором они порождают позиции дерева. Двумя из многих типов порождающих процедур являются процедуры «сна­ чала вширь» и «сначала вглубь». Грубо говоря, процедура, «сначала вширь» порождает позиции, начиная от верши­ ны, в то время как процедура «сначала вглубь» порож­ дает их, начиная с левого фланга.

Процедура «сначала вширь» порождает сперва все позиции уровня 1, затем все позиции уровня 2, после этого все позиции уровня 3 и т. д. Предположим, напри-

2—1677

ГОС. ПУСЛКЧТГАТГ" Г

НАУЧНО-ТЕХЬйЧЕСііАч } БИБЛИОТЕКА С С С Р \

18

ГЛЛВЛ I

а

Ф и г. 1.4. Порождающая процедура «сначала вглубь».

Позиции порождаются в алфавитном порядке.

мер, что верхняя позиция данного имплицитного дерева есть позиция квадрата Р. Процедура «сначала вширь» будет тогда использовать правило (определенное импли­ цитным деревом), в соответствии с которым порождаются эксплицитные деревья, показанные на фиг. J.3. В каче­ стве второго примера предположим, что процедура «сна­ чала вширь» предполагает порождение двух верхних уровней дерева игры в шашки, начиная с исходной по­ зиции. Процедура порождает сначала семь преемников исходной позиции, а затем семь преемников каждого вновь образованного преемника. Тогда на уровне 2 будет находиться уже 49 позиций.

Процедура «сначала вглубь» порождает дерево, на­ чиная с левого фланга. Сначала порождается первый (левый) преемник исходной позиции, затем его первый преемник и т. д. Предположим, например, что процедура «сначала вглубь» должна породить три верхних уровня дерева, исходная позиция которого А. Как показано на

фиг. 1.4,"б,

процедура

начинает выполняться с

пози­

ции А и порождает последовательно позиции В, С, D,

О.

На

фиг. 1.4,

а показано

эксплицитное дерево, порожден­

ное

до позиции F. В этом примере мьг говорим, что крите-

Э В Р И С Т И Ч Е С К О Е П Р О Г Р А М М И Р О В А Н И Е

19

рием окончания является максимальная глубина в 3 уровня. В любой порождающей процедуре «сначала вглубь» критерии окончания должны быть заданы.

В качестве второго примера предположим, что про­ цедура «сначала вглубь» должна породить верхние два уровня дерева игры в шашки, начиная с исходной по­ зиции. Процедура порождает первый преемник исходной позиции, а затем семь преемников этого преемника. После этого процедура порождает второй преемник ис­

ходной

позиции, затем семь преемников этого преем­

ника и

т. д.

1.6.ПРОГРАММЫ, ИГРАЮЩИЕ В ИГРЫ

Вследующих двух главах описываются программы, которые играют в шашки, шахматы, калах, пять в ряд, кубик и в некоторые карточные игры. (Правила игры в калах, пять в ряд и кубик приведены ниже.)

Цели разработки программ, играющих в игры. Основ­ ные цели разработки таких программ те же, что и для других эвристических программ, рассмотренных в разд. 1.4. Добавим лишь, что разработка программ, иг­ рающих в игры, — занятие довольно интересное и что игры, будучи значительно проще важных практических задач, вместе с тем имеют со многими из них общие чер­ ты. Исследователь часто не знает, как непосредственно приступить к решению многих трудных практических задач, и надеется, что методы, которые он разрабатывает

для

решения простых задач, можно будет распростра­

нить

и на более трудные случаи. Игры имеют сходство

с реальными проблемами. Мыслящий участник игры вы­ бирает свои действия, исходя из проведенного им иссле­ дования дерева будущих возможностей, опираясь на оценки возможных будущих ситуаций и на предположе­ ния относительно того, что будут делать другие участ­ ники. В качестве моделей практических задач могут слу­ жить «деловые» и военные игры.

Простота игр обусловлена тем, что их правила хоро­ шо определены и сравнительно несложны. Большинство других эвристических программ также составлено для решения хорошо сформулированных задач, и важно уяс-

2*

20

ГЛАВА 1

нить себе, почему так много специалистов,

занимающихся

эвристическим программированием, выбирают хорошо оп­ ределенные проблемные области. Это происходит потому, что такие проблемные области отличаются простотой, а вовсе не по той причине, что хорошо определенные задачи являются особенно важными. Так, много важных

проблем

в

экономике и социальных науках относятся

как раз

к

плохо определенным задачам. Правила же

игры обычно даже проще правил решения хорошо опре­ деленной реальной задачи. Большинство исследователей считает, что преимущества, получаемые за счет простоты выбранных задач, превышают преимущества, получаемые за счет их практической важности. Однако в дальнейшем мы увидим, что некоторые эвристические программы ра­ ботают и над хорошо определенными «реальными» зада­ чами; таковы, например, эвристические программы, ко­ торые преобразуют математические выражения, дока­ зывают теоремы и балансируют сборочные конвейеры.

Общее описание программ, играющих в игры. Боль­ шинство игр, в которые играют описанные в двух сле­ дующих главах программы, являются антагонистически­

ми играми двух лиц.

Термин игра двух лиц означает, что

играют

два игрока,

например «квадрат»

и

«кружок».

К

антагонистическим

играм

(называемым

также играми

с

нулевой

суммой) относятся

игры, в которых,

если один

игрок выиграл, другой игрок должен считаться проиг­ равшим, так что кооперация между ними не имеет смысла. Таким образом, исход такой игры может быть описан ее исходом для одного из игроков, скажем «квадрата».

Существенной частью каждой из описываемых ниже программ является оценка (в численном виде) того, на­ сколько данная позиция выгодна для машины. (На прак­ тике машина часто будет играть против машины, но что­ бы сделать обсуждение более простым и интересным, мы будем предполагать, что машина играет против человека.) Программа производит успешную оценку в той степени, в какой она способна приписать высокие (положительные) оценки хорошим позициям и низкие (отрицательные) оценки плохим позициям. Так как по условию игра анта­ гонистическая, отрицательная оценка указывает, на­ сколько данная позиция выгодна для человека.

Соседние файлы в папке книги из ГПНТБ