Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % To jak dla mnie łatwiej jest zapanować nad tym co się dzieje mając dwa predykaty:
- % 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]
- % Drugi: to dosłownie ten Twój predykat, tylko dodajemy tę zmienną Len.
- path(Src, Dst, Len, G) :- path(Src, Dst, Len, [Src], G). % dodajemy akumulator
- path(Dst, Dst, Acc, 0, G) :- allVtxs(AllV, G), subset(AllV, Acc). % sprawdzamy, czy akumulator zawiera wszystkie wierzchołki z G
- 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