Искусственный разум | страница 59



Пора, по нашему обыкновению, проникнуть внутрь программы.

Главными ее шестернями служат четыре эвристики, которые авторы назвали методами. Четыре метода у ЛЮБОЗАРа, и каждый из них достоин отдельного рассказа.

Метод первый: "Действую!" Он самый простой и самый прямолинейный из всех любозаровских методов. Когда к данной ситуации можно применить какие-нибудь действия, известные программе, она непременно это сделает. Уточним наше "можно применить". Вспомним, ЭВМ перерабатывает "слова" и ничего, кроме "слов". Один из видов машинной переработки - сличение двух "слов". Пусть первое из "слов" описывает задачную ситуацию (начальную или промежуточную), а второе - стартовые условия для применения данного действия. Если эти два "слова" побуквенно совпадают, действие совершается, а если нет, то ничего не происходит. Например, если первое "слово" выглядит так: "человек стоит возле моста", а второе "слово" так: "возле моста стоит человек", то ЭВМ считает их разными "словами". Получается уж чересчур жестко и тупо; чтобы хоть немного смягчить неловкость, авторы ЛЮБОЗАРа включили в программу преобразователь "слов" в стандартную форму. Он причесывает "слова" на один фасон и после этого шлет их на сличение. В нашем примере действие совершится, ибо по сути оба "слова" одинаковы.

Написал я "по сути" и испугался. Никогда не надо забывать, что ЭВМ не понимает "сути"; сличить стандартные формы - пожалуйста, если "суть" заключена в этом - отлично; но если в понятии "суть" скрыто еще что-то туманное, то машине это невдомек и недосуг.

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

Третий метод ЛЮБОЗАРа - "Преобразую!". Он перестраивает, переделывает, перелицовывает ситуации. Была, положим, ситуация "пройден третий мост", а машина стремится переделать ее в ситуацию "пройден пятый мост". Она сличает эти две ситуации и выясняет, в чем состоят различия. Потом стремится стереть различия, пользуясь методом "Действую!". Если сразу не выходит, пытается хотя бы сократить различия, пуская в дело метод "Уменьшаю различия!", в результате чего удается перейти, скажем, от ситуации "пройден третий мост" к ситуации "пройден четвертый мост".