Искусственный разум
Шрифт:
Итак, от целей к средствам, преодолевая различия! Вы заметили, что ЛЮБОЗАР неравнодушен к различиям. Он только тем и занят, что выясняет, где различия и каковы они.
Своей склонностью к различиям ЛЮБОЗАР похож на каждого из нас.
Девушка перед зеркалом занимается своим туалетом. Еще чуть-чуть туши на ресницы, теперь тени на веки погуще, слегка тронем губы алым карандашом - готово, цель достигнута. Откуда она знает, что все в порядке? Видимо, в ее голове хранится эталон, с которым она и сравнивает свое лицо, глядя в зеркало. Сравнивает, находит различия и умело их ликвидирует.
Скульптор перед
Плановик в главке перед своими ведомостями. Составить план работы отрасли - не до нежностей тут. Одни различия, да какие жестокие! Ну включу я заводу М в план погремушку, и он из прорыва выйдет, зато платиновая дробь вся израсходуется, и завод станет отгружать атомникам ураноразделительные сита без платиновой дроби. Засорятся сита, а прочистить нечем, рекламации пойдут. Как избежать жалоб, как добиться, чтобы и завод М, и завод N, и эта развалина, завод Р, были максимально и полезно загружены? Каковы различия и как их сгладить?
Люди - решатели задач - знают обычно, с какого рода различиями им придется иметь дело в данной задаче и какого сорта различия они встретят в иной житейской проблеме.
ЛЮБОЗАРу тоже необходимо знание различий, особый перечень различий для каждой задачи. Давайте посмотрим, каков этот перечень в задаче "Обезьяна и бананы".
Условия задачи: "В углу клетки, где находится обезьяна, лежит ящик. Под потолком клетки подвешен пучок бананов. Обезьяна может схватить их, только если будет стоять на ящике под ними. Как поступить обезьяне, чтобы достать бананы?".
Задача "Обезьяна и бананы" относится к числу самых популярных в арсенале разработчиков искусственного интеллекта задач. О причинах популярности ее мы поговорим позже, пока просто посмотрим, каковы различия, характерные для нее.
Различия здесь представляют собой просто расстояния: между рукой обезьяны и бананами, между положением ящика и местом подвески бананов, между обезьяной и ящиком. Мы расположили эти три различия в порядке убывающей трудности: поначалу обезьяне легче всего подойти к ящику, а труднее всего схватить бананы.
ЛЮБОЗАР сглаживает различия, производит разумные действия. В этом он тоже сходен с человеком. В житейских ситуациях мы обычно знаем, какого рода действия уместны оправданны, а какие запрещены или бессмысленны. Скажем, если хочешь иметь бананы, уместно взять их рукой, но совсем неуместно запеть во весь голос.
В отличие от человека ЛЮБОЗАР не имеет житейского опыта, он не жил в реальном мире и этим похож на новорожденного ребенка. Один из создателей ЛЮБОЗАРа Г. Саймон пишет: "Если не считать нескольких врожденных рефлексов, у новорожденного нет средств для разумного увязывания информации от органов чувств с действиями. Поэтому для его начального обучения очень важно, чтобы он узнал, что определенные действия или последовательности действий приведут к изменению состояния мира в том виде, в каком он его воспринимает. И пока он не накопил достаточно таких знаний,
Чтобы решать задачу, ЛЮБОЗАР, кроме перечня различий, должен располагать еще перечнем допустимых действий. В задаче "Обезьяна и бананы" их четыре: идти, передвинуть ящик, залезть и схватить бананы.
Мало перечислить различия и действия, нужно еще связать их между собой так, как они связаны в реальном мире. В ЛЮБОЗАРе для этого предусмотрена таблица связей, в которой пересекаются действия и различия.
Таблица связей указывает, какое действие уменьшает данное различие, а какое не имеет ни малейшего к нему отношения. Без этой таблицы ЛЮБОЗАР применял бы свои действия наобум, как младенец; с этой таблицей он ближе к предусмотрительному взрослому человеку.
В задаче "Обезьяна и бананы" действие "залезть", например, связано только с различием между обезьяной и ящиком. Впрочем, давая ЛЮБОЗАРу эту задачу, программисты решили немного его запутать, поставили во всех клетках в таблице связей кресты, то есть сказали машине: "Все действия желательны для уменьшения всех различий".
Итак, мы задаем программе перечень различий и действий, а также таблицу связей, свойственных данной задаче. Еще мы указываем ей условия задачи, исходное положение, начальную ситуацию и необходимый результат, конечное положение, желанную цель.
Вот и все, что знает ЛЮБОЗАР. Теперь его выход, его роль.
Он принимается выяснять, получит ли обезьяна бананы, пуская в ход три своих излюбленных метода. Имя первого из них "Преобразую!", имя второго метода "Уменьшаю различия!", третий метод называется "Действую!".
Позвольте мне изложить ход решения задачи "Обезьяна и бананы" подробно, ибо здесь мы проникаем в святая святых Искинта. Итак, пунктуальный репортаж.
1. ЛЮБОЗАР сразу пытается достичь конечную цель - отдать бананы обезьяне в руки. Он использует метод "Преобразую!". Машина сличает две ситуации - начальную и конечную, и вьлделяет, в чем состоят различия: руки обезьяны пусты, а должны быть с бананами.
2. Программа устанавливает, что это самое трудное различие, следовательно, начинать надо с него; новая цель: уменьшить его.
3. Применяется метод "Уменьшаю различия!". С его помощью машина испытывает действие "схватить бананы". Не получается, неприменимо действие. По-человечески говоря, некому хватать эти бананы, а по-машинному - не соблюдены условия применения.
4. Делать нечего, программа берется за более легкое различие: есть - "положение ящика в углу клетки", а должно быть - "положение ящика под бананами".
5. ЛЮБОЗАР пытается уменьшить различие действием - "передвинуть ящик". Не получается, опять неприменимо действие, опять не соблюдены условия.
6. Программа не унывает. Есть еще различие между положениями, обезьяны и ящика. Может, хоть оно поддастся?
7. ЛЮБОЗАР прилагает к исходной ситуации действие "идти", идти обезьяне к ящику. Наконец-то получилось: суровые условия применимости оператора соблюдены. В результате работает метод "Действуй!" и возникает новая ситуация: обезьяна стоит у ящика.