2016-04-22 2 views
1

enter image description hereПролог Дерево узлов Путь

Здравствуйте, у меня есть базовые знания о прологе, и я сталкиваюсь с проблемами при написании кода пролога для следующей задачи: Написать факт о рисунке выше и написать следующий пролог правила: pos_path ,

Пример запуска правила:

?- pos_path(n1, nx, L). 
L = [n1,n3,n7,nx] ? ; 
L = [n1,n3,n4,n5,nx] ? ; 
L = [n1,n3,n4,n6,nx] ? ; 
no 
+1

Пожалуйста, покажите, что вы пробовали, и задайте более конкретный вопрос о том, где вы застряли. – lurker

ответ

2
edge(ne,n1). 
edge(n1,n2). 
edge(n1,n3). 
edge(n3,n7). 
edge(n7,nx). 
edge(n3,n4). 
edge(n4,n5). 
edge(n5,nx). 
edge(n4,n6). 
edge(n6,nx). 

pos_path(A, B, Path) :- 
    path(edge, Path, A, B). 

с использованием path/4, определенный в другом вопросе.

+0

Как добавить дополнительный край, соединяющий n6 с n3. Как должно быть представление этого факта? и как pos_path следует изменить? – KikoPayet

+1

Просто добавьте 'edge (n6, n3)'. Для определения выше не требуется никаких изменений! – false

Смежные вопросы