Слежение за местонахождением и ориентацией

Программа агента, приведенная в листинге 7.9, немного "жульничает", поскольку в ней слежение за местонахождением осуществляется за пределами базы знаний, тогда как вместо этого следует использовать логические рассуждения13. Для выполнения этих функций "должным образом" потребуются высказывания, касающиеся местонахождения. Одна из первых попыток решения этой задачи может состоять в использовании некоторого символа наподобие Ь1Л для обозначения того, что агент находится в квадрате [1,1]. В таком случае начальная база знаний могла бы включать высказывания, подобные следующим:

Li,i л FacingRight л Forward => L,2,i
Однако сразу же обнаруживается, что такой способ является неприменимым. Если агент начинает движение с квадрата [1,1], глядя вправо, и передвигается вперед, то из базы знаний будут следовать высказывания и Ь1Л (о его первоначальном местонахождении), и L1/2 (о его новом местонахождении). Тем не менее эти высказывания не могут одновременно быть истинными! Проблема состоит в том, что эти два высказывания, касающиеся местонахождения, должны ссылаться на два различных промежутка времени. Нам требуется ввести обозначение наподобие b\ib которое означало бы, что агент находился в квадрате [1,1] в момент времени 1, Ь22/1 — для обозначения того, что агент находился в квадрате [2,1] в момент времени 2, и т.д. Высказывания, касающиеся ориентации и действий, также должны зависеть от времени. Поэтому правильными высказываниями являются следующие:
L 1i, 1 л FacingRight1 л Forward1 => L22,i FacingRight л TurnLeft1 FacingUp2
и тому подобные высказывания. Как оказалось, задача создания полной и правильной базы знаний, которая позволяла бы следить за всем, что происходит в мире вампуса, является весьма сложной; отложим полное обсуждение этой темы до главы 10. А в данном разделе достаточно лишь подчеркнуть такую мысль, что начальная база знаний должна содержать высказывания, подобные приведенным в двух предыдущих примерах, для каждого момента времени t, а также для каждого местонахождения. Это означает, что для каждого момента времени t и местонахождения [х,у] база знаний содержит некоторое высказывание примерно в такой форме:
Ltx,y л FacingRight л Forward => Lt+1x+i,y (7.3)
Но даже если мы установим верхний предел количества допустимых интервалов времени (допустим, 100), в конечном итоге база знаний заполнится десятками тысяч высказываний. Та же самая проблема возникает, если для каждого нового интервала времени добавление высказываний происходит "по мере необходимости". Из-за такого стремительного увеличения количества высказываний база знаний становится неудобной для чтения людьми, но быстрые пропозициональные алгоритмы — решатели задач все еще способны легко справляться с задачами в мире вампуса с размерами 4x4 (они достигают предела своих возможностей в мире, размеры которого составляют приблизительно 100x100). Агенты, основанные на логических схемах, которые описаны в следующем подразделе, предоставляют частичное решение этой проблемы стремительного увеличения количества высказываний, но нам придется подождать полного решения до того, как будет разработана логика первого порядка в главе 8.







Материалы

Яндекс.Метрика