Логическое программирование на языке Visual Prolog. Солдатова О.П - 55 стр.

UptoLike

55
2.18 Представление графов в языке Пролог
Для представления графов в языке Пролог можно использовать три
способа:
1. Использование факта языка Пролог для описания дуг или рёбер
графа.
2. Использование списка или структуры данных для объединения
двух списков: списка вершин и списка рёбер.
3. Использование списка списков: каждый подсписок в качестве
головы содержит вершину графа, а в качестве хвоста - список смежных
вершин.
Две самые распространённые операции, которые выполняются над
графами:
Поиск пути между двумя вершинами;
Поиск в графе подграфа, который обладает некоторыми
заданными свойствами.
Пример 67:
Определить наличие связи между вершинами графа, представленного
на рисунке:
Две вершины графа связаны,
если существует последовательность
ребер, ведущая из первой вершины во вторую. Используем для описания
структуры графа факты языка Пролог.
domains
top=symbol
predicates
edge (top, top)
/* аргументы обозначают имена вершин */
path( top,top)
/*Предикат connected(symbol, symbol) определяет отношение
связанности вершин.*/
clauses
edge (a, b).
edge (c, d).
edge (a, c).
edge (d, e).
edge (b, d).
edge (f, g).
a b
c d
e
f
g