Как вы расширили бы этот поиск, чтобы обслужить жадный поиск?

dfs([Node | OPEN], _ , Goal) :-  
Node==Goal, !,          
write('yes! goal reached.... ' - Goal), nl.         

dfs([Node | OPEN],CLOSED, Goal) :- 
  findall(                        Next,                 
  (
    arc(Node, Next),        Next
    not(member(Next, OPEN)),            not(member(Next, CLOSED))
      ), 
      NewNode               
     ), 

      append(NewNode, OPEN, NewOPEN),   
    write('OPEN = frontier of search...'), write(NewOPEN),nl,
    write('CLOSED = nodes already visited...'), write([Node | CLOSED]),nl,nl,
  dfs(NewOPEN, [Node | CLOSED], Goal).  % recurse with new data

дуга (a, b). дуга (a, c). дуга (b, d). дуга (b, e). дуга (c, f). дуга (f, g). дуга (e, z). дуга (d, e). дуга (z, g). дуга (z, d).

0
nl ja de
Мы можем получить некоторое форматирование, пожалуйста?
добавлено автор NotAUser, источник

1 ответы

Что-то вроде этого:

dfs(Node, Goal) :- !.         

dfs(Node, Goal) :- 
    arc(Node, Next),
    score(Node, Next, S),
    not (score(Node, Next, S1), S1 > S), write(Next),
    dfs(Next, Goal).

Тогда необходимо определить счет к каждой дуге, например, счет (a, b, 3).

0
добавлено
В этом случае мы должны были бы договориться о том, что вы подразумеваете под восхождением на вершину. Различие между жадным и восхождением на вершину для этой проблемы может быть очень тонким.
добавлено автор NotAUser, источник
Спасибо за подсказку! И что, если вы хотите tp, распространяются на поиск восхождения на вершину?
добавлено автор Ikenna Eke, источник