代码之家  ›  专栏  ›  技术社区  ›  cala

Prolog需要一个贪婪的搜索操作符

  •  0
  • cala  · 技术社区  · 6 年前

    在每次迭代之后,我一直在尝试使用启发式值来寻找下一个节点,现在已经有一段时间了——我认为它几乎就在那里了,但我得到了一个错误。

    greedy_search(GoalNode,_,0) :-
        goal(GoalNode).
    
    greedy_search(CurrentNode,GoalNode,TotalCost) :-
        connected(CurrentNode,NextNode,D),
        write('Exploring '),
        write(CurrentNode),nl,
        write(HCost(N,V)),nl,
        find(NextNode,GoalNode,NextCost),
        write('Visited '),
        write(NextNode),nl,
        write(HCost(N,V)),
        TotalCost is  NextCost + D.
    

    错误是语法错误:应为运算符

    我想在每次迭代中使用贪婪搜索打印下一个节点,以及最后的总成本。

    我在弧上有一组连接,像这样(a,b,2)。还有一个启发式表,表示如下:h(b,4)。

    0 回复  |  直到 6 年前