Advertisement
Guest User

Untitled

a guest
Jun 7th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 0.66 KB | None | 0 0
  1. % To jak dla mnie łatwiej jest zapanować nad tym co się dzieje mając dwa predykaty:
  2.  
  3. % Pierwszy: po prostu zapuszcza pomocniczy kolejno dla długości ścieżki [l.wierzchołków-1, l.wierzchołków, % l.wierzchołków+1, ..., 2*l.wierzchołków ** 2]
  4.  
  5.  
  6. % Drugi: to dosłownie ten Twój predykat, tylko dodajemy tę zmienną Len.
  7. path(Src, Dst, Len, G) :- path(Src, Dst, Len, [Src], G).  % dodajemy akumulator
  8. path(Dst, Dst, Acc, 0, G) :- allVtxs(AllV, G), subset(AllV, Acc). % sprawdzamy, czy akumulator zawiera wszystkie wierzchołki z G
  9. path(Act, Dst, Acc, Len, G) :- Len > 0, eNeigh(Act, NS, G), member(N, NS), Len2 is Len - 1, path(N, Dst, [N|Acc], Len2, G).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement