Читать «Искусственный разум» онлайн - страница 54

Алексей Григорьевич Чачко

В задаче "Обезьяна и бананы" действие "залезть", например, связано только с различием между обезьяной и ящиком. Впрочем, давая ЛЮБОЗАРу эту задачу, программисты решили немного его запутать, поставили во всех клетках в таблице связей кресты, то есть сказали машине: "Все действия желательны для уменьшения всех различий".

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

Вот и все, что знает ЛЮБОЗАР. Теперь его выход, его роль.

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

Позвольте мне изложить ход решения задачи "Обезьяна и бананы" подробно, ибо здесь мы проникаем в святая святых Искинта. Итак, пунктуальный репортаж.

1. ЛЮБОЗАР сразу пытается достичь конечную цель - отдать бананы обезьяне в руки. Он использует метод "Преобразую!". Машина сличает две ситуации - начальную и конечную, и вьлделяет, в чем состоят различия: руки обезьяны пусты, а должны быть с бананами.

2. Программа устанавливает, что это самое трудное различие, следовательно, начинать надо с него; новая цель: уменьшить его.

3. Применяется метод "Уменьшаю различия!". С его помощью машина испытывает действие "схватить бананы". Не получается, неприменимо действие. По-человечески говоря, некому хватать эти бананы, а по-машинному - не соблюдены условия применения.

4. Делать нечего, программа берется за более легкое различие: есть - "положение ящика в углу клетки", а должно быть - "положение ящика под бананами".

5. ЛЮБОЗАР пытается уменьшить различие действием - "передвинуть ящик". Не получается, опять неприменимо действие, опять не соблюдены условия.

6. Программа не унывает. Есть еще различие между положениями, обезьяны и ящика. Может, хоть оно поддастся?

7. ЛЮБОЗАР прилагает к исходной ситуации действие "идти", идти обезьяне к ящику. Наконец-то получилось: суровые условия применимости оператора соблюдены. В результате работает метод "Действуй!" и возникает новая ситуация: обезьяна стоит у ящика.

8. ЛЮБОЗАР помнит, конечно, все свои предыдущие шаги и берет реванш за неуспехи. На шаге 5 не представилось возможным передвинуть ящик, а теперь как? Теперь условия применения соблюдены, значит, "Действую!". И ящик вместе с обезьяной оказывается под бананом.

9. Шаг 3 тоже был неуспешным, зато теперь... К сожалению, и теперь ЛЮБОЗАР испытывает неудачу: действие "схватить банан" по-прежнему неуместно, не созрели условия.

10. Какое различие еще сохранилось? Расстояние между руками обезьяны и бананами. Вот что надо свести к нулю!

11. ЛЮБОЗАР применяет действие "залезть". Удачно. Обезьяна оказывается на ящике, расстояние между ее рукой и бананами исчезло.

12. Теперь возврат к шагу 3. Обезьяне удается "схватить бананы".

13. И тем самым обеспечен возврат к шагу 1 не только с бананами, но и с решением задачи в руках.