/* PLAN - program znajdowania trasy polaczen miedzy miastami */ %%% Przeszukiwanie wgłąb z nawrotami droga(krakow,katowice). droga(katowice,opole). droga(wroclaw,opole). droga(krakow,zakopane). droga(krakow,kielce). droga(krakow,tarnow). droga(kielce,radom). droga(radom,warszawa). droga(warszawa,poznan). droga(warszawa,gdansk). droga(warszawa,lodz). droga(poznan,szczecin). droga(poznan,wroclaw). droga(tarnow,rzeszow). droga(rzeszow,lublin). droga(lublin,bialystok). droga(warszawa,bialystok). droga(szczecin,koszalin). droga(koszalin,gdansk). %%% domknięcie symetryczne relacji droga/2 przejazd(X,Y):- droga(X,Y). przejazd(X,Y):- droga(Y,X). %%% domknięcie tranzytywne relacji przejazd szukaj_trasy(Cel,Cel,Trasa,Trasa):- !. szukaj_trasy(Miasto,Cel,Robocza,Trasa):- przejazd(Miasto,NoweMiasto), not(member(NoweMiasto,Robocza)), szukaj_trasy(NoweMiasto,Cel,[NoweMiasto|Robocza],Trasa). %%% inicjacja szukania plan(Start,Cel,Trasa):- szukaj_trasy(Cel,Start,[Cel],Trasa).