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

Таблицы операторов и методика "средство – анализ завершения"

Допустимые операции, такие как перемещение робота из одной комнаты в другую или проталкивание объектов, кодируются в таблице операторов. Ниже показан элемент этой таблицы, соответствующий операции push (толкать):

push(X, Y, Z)
  • Предварительные условия at(poбoт, Y), at(X, Y)
  • Список удалений at (робот, Y), at(X, Y)
  • Список добавлений at (робот, Z), at(X, Z)

Здесь выражение push(X, Y, Z) означает, что объект X выталкивается (роботом) из положения Y в положение Z, причем X, Y и Z – переменные в области значений, охватывающей доступное множество объектов, в то время как робот, комнатаА, ящик1, комнатаБ, ящик2, комнатаВ – это имена конкретных объектов из этого множества.

С точки зрения программиста переменные X, К и Z в определении оператора, заданном элементом таблицы, – это аналоги формальных параметров в определении процедуры, которая соответствует такому действию:

"Вытолкнуть какой-либо объект из какого-либо положения в любое другое положение, если имеют место заданные предварительные условия; затем удалить формулы, указанные в списке удаления, и добавить формулы, указанные в списке добавления".

С точки зрения логики элемент push таблицы операторов может быть прочитан в виде формулы, которая утверждает:

"При любых X, Y и Z объект X выталкивается из Y в Z, если робот и объект X находятся в 7, а затем состояние изменятся заменой Y на Z".

Целевое состояние также представляется формулой, например:

а1(ящик1, комнатаА), а2 (ящик2, комнатаБ).

Программа STRIPS включает множество процедур, которые выполняют различные функции, в частности:

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

Чтобы представить себе, как на практике использовать подобную "структуру представлений, рассмотрим простую задачу: как готовиться к ленчу с потенциальным клиентом. Для этого, во-первых, нужно иметь в своем распоряжении определенную сумму наличных денег, чтобы расплатиться, во-вторых, нужно проголодаться, поскольку речь идет о приеме пищи. Сформулированные условия можно рассматривать в качестве предварительных для достижения цели "ленч". Эта цель может быть представлена оператором, как на рис. 3.1. После завершения ленча деньги будут потрачены, а у вас исчезнет чувство голода.

Эти простые факты нашли отражение в списках удалений и добавлений для оператора have lanch. Однако обладание известной суммой наличных денег нельзя рассматривать как естественное состояние клиента. Сначала нужно получить их в банкомате, что, в свою очередь, требует передвижения. Следовательно, нужно добавить в таблицу операторов еще два элемента – at cash mashine (передвижение к банкомату) и have money (получение наличности).

Иллюстрированный самоучитель по введению в экспертные системы › Представление знаний › Таблицы операторов и методика "средство – анализ завершения"
Рис. 3.1. Таблица операторов для задачи "Ленч"

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.