Что-то я забыл про эту ветку Может, еще не слишком поздно?... Неориентированная дорожная сеть. В общем, неориентированный граф, вершины -- города, дороги -- ребра м/у вершинами.
| Код | ребро(а,б). ребро(а,в). ребро(б,г). ребро(б,в). ребро(б,д). ребро(в,г). ребро(в,д). ребро(г,е). ребро(д,г). ребро(д,е). неориент_ребро(А,Я):- ребро(А,Я); ребро(Я,А).
путь(А,[А|Путь],[А|Путь]). путь(А,[Б|Путь1],Путь):- неориент_ребро(В,Б), not(member(В,Путь1)), путь(А,[В,Б|Путь1],Путь).
цикл(Путь,Длина):- неориент_ребро(А,Б), путь(А,[Б],Путь), length(Путь,Длина).
макс_цикл(_,Длина1,Путь):- цикл(Путь2,Длина2), Длина2>Длина1, макс_цикл(Путь2,Длина2,Путь). макс_цикл(Путь,_,Путь). макс_цикл(Цикл):-макс_цикл([],0,Цикл).
|
проверка:
| Цитата | ?- макс_цикл(Цикл).
Цикл = [а, в, д, е, г, б]
Yes ?-
|
|