Эйлеров путь в прологе. Переделать Prolog
Есть программа на Visual Прологе, ищет эйлеровые циклы(много решений) в неорграфе. Помогите переделать, чтобы он нашёл один путь(одно решение) начиная с заданной вершины.
domains
s=symbol
list=s*
constants
graf1=[a,b, b,c, c,d, d,f, f,c, a,c]
graf2=[a,b, b,c, c,d, d,a]
predicates
rp(s,s,list,list).
cycle(s,s,list,list).
ifEyler(list,list).
% Eyler TTyTb. 3aDaHa BEPLLlUHA, HEOPrPaop. UHA4E "HET PELLlEHUU"
clauses
ifEyler([Start|Tail],Way):- cycle(Start,Start,[Start|Tail],Way).
cycle(A,A,[],[A]):- !.
cycle(A,X,Z,[A|B]):- rp(A,C,Z,Y), cycle(C,X,Y,B).
rp(A,B,[A,B|C],C).
rp(A,B,[B,A|C],C).
rp(A,B,[C,X|D],[C,X|F]):- rp(A,B,D,F).
goal
ifEyler(graf2, Way).