Описание действий в ситуационном исчислении

В простейшей версии ситуационного исчисления каждое действие описывается с помощью двух аксиом: аксиомы возможности, которая указывает, существует или не существует возможность выполнить действие, и аксиомы результата, которая указывает, что произойдет после выполнения возможного действия. Мы будем использовать высказывание Poss(a, s) для обозначения того, что возможно выполнить действие а в ситуации s. Эти аксиомы имеют показанную ниже форму.
Аксиома возможности:
Предусловия => Poss{a,s) Аксиома результата:
Poss{a,s) => Изменения, представляющие собой результат выполнения действия
Представим эти аксиомы для модифицированного мира вампуса. Чтобы можно было сократить соответствующие высказывания, мы будем исключать кванторы всеобщности, область действия которых распространяется на все высказывание. Предполагается, что переменная s пробегает по всем ситуациям, а — по действиям, о — по объектам (включая агентов), д — по состояниям владения и не владения золотом, а х и у — по местонахождениям.
Приведенные ниже аксиомы возможности для этого состояния мира указывают, что агент может переходить из одного местонахождения в другое, соседнее местонахождение, хватать кучу золота в текущем местонахождении и отпускать золото, которое он держит.
At(Agent, х, s) л Adjacent (х, у) => Poss(Go{x, у), s) Gold(g) л At(Agent, х, s) л At{g, х, s) => Poss(Grab(g), s) Holdingig, s) => Poss{Release(g) , s)
А в приведенных ниже аксиомах результата утверждается, что если действие возможно, то некоторые (флюентные) свойства будут иметь место в ситуации, возникающей в итоге выполнения данного действия. Переход из квадрата х в квадрат у приводит к пребыванию агента в квадрате у, схватывание золота приводит к владению золотом, а отпускание золота приводит к тому, что агент им больше не владеет.
Poss(Go(x, у), s) => AtiAgent, у, Result(Go(x, у), s) )
Poss(Grab(g) , s) => Holdingig, Result(Grab(g), s) )
Poss(Release(g) , s) => -Holdingig, Result {Release (g) , s) )
Сможем ли мы теперь доказать, что наш маленький план позволяет достичь цели, сформулировав все эти аксиомы? К сожалению, нет! Вначале все идет прекрасно; действие Go ( [ 1,1 ] , [ 1, 2 ] ) действительно возможно в ситуации S0 и аксиома результата для Go позволяет заключить, что агент достиг квадрата [1,2]:
At(Agent, [1,2], Result(Go([1,1] , [1,2]) , S0) )
Теперь рассмотрим действие Grab (Gx). Необходимо показать, что оно возможно в новой ситуации, т.е. возможно следующее:
At(Glt [1,2], Result (Go( [1,1] , [1,2] ) , S0) )
К сожалению, в базе знаний нет ничего, что позволило бы обосновать такое заключение. Интуитивно можно понять, что действие агента Go не должно оказывать влияния на местонахождение золота, поэтому золото должно было все время находиться в квадрате [1,2], даже когда агент был в ситуации S0. & Проблема состоит в том, что аксиомы результата указывают, что изменилось, но не указывают, что осталось неизменным.
Проблема представления всего того, что остается неизменным, называется проблемой окружения (frame problem). Мы должны найти эффективное решение проблемы окружения, поскольку в реальном мире почти все и почти всегда остается неизменным. В каждом действии затрагивается лишь крошечная часть всех флюент-ных высказываний.
Один из подходов состоит в том, что должны быть записаны явные аксиомы окружения, которые указывают, что остается неизменным. Например, после перемещения агента все другие объекты остаются на месте, если только он не берет эти объекты:
At(o,x,s) А (о Ф Agent) A -\Holding(o, s) => At(o,x,Result(Go{y,z),s))
Если имеется F флюентных предикатов и А действий, то потребуется O(AF) аксиом окружения. С другой стороны, если бы каждое действие имело самое большее Е результатов, где Е, как правило, намного меньше, чем F, то необходимо было бы иметь возможность представлять, что происходит, с помощью гораздо меньшей базы знаний, с размером 0{АЕ). В этом и состоит проблема представительного окружения (representational frame problem). Тесно связанная с ней проблема выводимого окружения (inferential frame problem) заключается в том, что нужно проектировать результаты t-шаговой последовательности действий за время O(Et), а не за время О (Ft) или O(AEt), чтобы действовать успешно. Мы будем решать каждую из этих проблем по очереди. Но даже после этого останется еще одна проблема, связанная с тем, что должны быть обеспечены все необходимые условия для успешного выполнения любого действия. Например, действие Go окончится неудачей, если в ходе его выполнения агент погибнет. В этом состоит проблема спецификации (qualification problem), полное решение которой еще не найдено.







Материалы

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