Edge(e, d, 9). Path(string,string,slist) Edge(b, d, 0).
Edge(c, d, 12).
Edge(a, b, 3).
Edge(a,c,8).
Clauses
Member(string,slist).
P(string,slist,slist).
Path(string,string,slist).
E(string,string,integer).
Edge(string,string,integer).
Predicates
Domains
Постановка 4.1.
Шлях у зваженому неорієнтованому графі, заданому неявно:
slist=string*
e(A,B,C):-edge(A,B,C);edge(B,A,C).
path(A,B,P):-p(A,[B],P). % шукаємо шлях від кінцевої
вершини в початкову.
Початковий шлях включає
лише кінцеву вершину
p(A,[A|Tail],[A|Tail]). % якщо поточна вершина
шляху є початковою, то
цей шлях є шуканим
p(A,[B|Tail],P):- e(B,C,_), not(member(C,Tail)),
p(A,[C,B|Tail],P). % B - поточна вершина шляху.
Відшукуємо вершину С, в яку
є шлях з В і якої ще нема у
шляху, та пробуємо знайти
шлях (від цієї нової вершини
С) до початкової вершини А
Дата добавления: 2014-01-04 ; Просмотров: 314 ; Нарушение авторских прав? ; Мы поможем в написании вашей работы!
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет