Иллюстрированный самоучитель по введению в экспертные системы


Сопоставление с образцом - часть 2


Например, образцу

(at ?X ?Y)

должен соответствовать пример

(at robot room),

который образуется при подстановке {?X/robot, ?Y/room}, как об этом говорилось в главе 3. Можно также потребовать, чтобы присвоение значений переменным было совместимым, т.е. чтобы пример

(at robot room)

не соответствовал образцу

(at ?Х ? X).

Но, как мы видели в главе 3, главное назначение анализатора соответствия — показать, что имеющаяся в программе модель мира удовлетворяет условиям некоторого правила, которое в таком случае программа сможет затем применить. Пусть в программе имеется простое правило, утверждающее, что все объекты, находящиеся в комнате, нужно покрасить:

if (at ?X room) then (paint ?X)

Нужно проверить, соответствует ли условию if (at ?X room) этого правила модель мира, представленная списком

(at box room).

Полученную подстановку {?X/box} применим затем к констатирующей части правила и получим в результате

(paint box).

Анализ соответствия — это довольно "расточительная" операция в смысле расхода вычислительных ресурсов, если только не пользоваться ею с умом. В главе 13 мы увидим, что существуют довольно эффективные алгоритмы, которые позволяют решить, в каких именно из имеющихся в наборе правилах (или отдельном правиле) сформулированы условия, соответствующие анализируемым данным. В настоящее время язык LISP не используется для реализации систем, базирующихся на правилах, в основном из-за недостаточной его эффективности, но по-прежнему используется тот принцип обработки списков при анализе соответствия, который был впервые реализован на LISP.





Начало  Назад  



Книжный магазин