Как записать все пути в ориентированном графе без циклов?(Пролог) - PullRequest
0 голосов
/ 28 сентября 2019

Я тестирую поиск в графе путей в прологе, используя информацию из https://www.irit.fr/~Jerome.Mengin/teaching/prolog/prolog-search_a4.pdf, и столкнулся с некоторыми проблемами при записи из рекурсивной функции.

Мой код может найти все возможные пути из узла 1однако на узел 2 результаты (пути) выводятся в обратном порядке.

edge(a, c).
edge(a, d).
edge(c, e). 
edge(e, f).
edge(d, f).

paths(Curr,Stop) :- 
    Curr==Stop -> write(Curr);
    edge(Curr,Next),
    paths(Next,Stop),
    write(Curr).

Например, пути (a, f) выдают: feca true;fda true.

Однако я хочу, чтобы результаты в правильном порядке записывались как acef и adf без использования списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...