【问题标题】:Planning with Numerical Values and PROLOG使用数值和 PROLOG 进行规划
【发布时间】:2021-12-09 08:39:14
【问题描述】:

我正在尝试使用这个 Planner https://www.cs.unm.edu/~luger/ai-final/code/PROLOG.planner.html

我想用数值搜索一个空格。您可以在下面看到我的 sum 实现,它经过测试并且似乎有效。然后是我的两个动作,加号和减号,删除value(X)并添加value(Y),其中Y分别是X +- 1

如果我现在咨询规划器(最后一条语句为 go),我不会得到 plus() 的预期结果,而是 false,因为规划器找不到从 value(2)value(3) 的方法。

sum(X,Y,Z) :- Z is X+Y.

move(plus(), [value(X)], [del(value(X)), sum(X,1,Y) , add(value(Y))]).
move(minus(), [value(X)], [del(value(X)), sum(X,-1,Y) , add(value(Y))]).

go([value(2)], [value(3)]).

【问题讨论】:

    标签: prolog planning


    【解决方案1】:

    谓词move(Action, Preconditions, Effects)描述了在列表Preconditions中建立的条件成立的状态下执行Action引起的变化。事实上,对于这个谓词,列表Effects 必须只包含add(Fluent)del(Fluent) 形式的项。所以,我认为动作plusminus的正确定义应该如下:

    move(plus,  [value(X)], [del(value(X)), add(value(Y))]) :- Y is X + 1.
    move(minus, [value(X)], [del(value(X)), add(value(Y))]) :- Y is X - 1.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多