/* Reititys */ vali(a, b, 10). vali(a, c, 20). vali(a, d, 10). vali(b, m, 50). vali(d, g, 10). vali(d, h, 10). vali(c, e, 10). vali(c, f, 30). vali(f, j, 10). vali(f, i, 15). vali(e, l, 40). vali(e, k, 25). vali(i, m, 10). vali(i, k, 5). vali(k, n, 26). viereiset(A, B, L):- vali(A, B, L). viereiset(A, B, L):- vali(B, A, L). reitti(A, Z, Reitti):- reitti(A, Z, [A], 0, Reitti). reitti(A, Z, Kuljetut, Matka0, [Matka, Reitti]):- viereiset(A, Z, L), Matka is Matka0+L, reverse([Z|Kuljetut], Reitti). reitti(A, Z, Kuljetut, Matka0, Reitti):- viereiset(A, B, L), \+ member(B, Kuljetut), Matka is Matka0+L, reitti(B, Z, [B|Kuljetut], Matka, Reitti). reitit(A, Z, Reitit):- findall(Reitti, reitti(A, Z, [A], 0, Reitti), RR), sort(RR, Reitit).