Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- graphCost(a, 63).
- graphCost(b, 26).
- graphCost(c, 60).
- graphCost(f, 32).
- edge(a,b).
- edge(a,c).
- edge(b,d).
- edge(c,d).
- edge(d,e).
- edge(b,b).
- edge(c,f).
- cost(a, 1).
- cost(b, 2).
- cost(c, 4).
- cost(d, 8).
- cost(e, 16).
- cost(f, 32).
- visitAndMove2(A) :-
- +edge(A, _),
- nb_getval('Visited', Visited),
- ( +member(A, Visited) ->
- nb_setval('Visited', [A | Visited]),
- cost(A, C),
- nb_getval('Cost', Cost),
- TC is Cost + C,
- nb_setval('Cost', TC),
- write(' --> '), write(A), write(': '), writeln([A | Visited])
- ;
- write(A), writeln(' --|')).
- visitAndMove2(A) :-
- edge(A, Child),
- A == Child,
- nb_getval('Visited', Visited),
- +member(Child, Visited),
- nb_setval('Visited', [Child | Visited]),
- cost(Child, C),
- nb_getval('Cost', Cost),
- TC is Cost + C,
- nb_setval('Cost', TC),
- write(A), write(' --> '), write(Child), write(': '), writeln([Child | Visited]),
- visitAndMove2(Child).
- graphCost(A, Cost) :-
- nb_setval('Visited', [A]),
- cost(A, C),
- nb_setval('Cost', C),
- visitAndMove2(A),
- nb_getval('Cost', Cost).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement