Поиск в ширину - Prolog

Узнай цену своей работы

Формулировка задачи:

Пытаюсь запустить следующий код из Братко:
Выдает False. Не пойму в чем дело. Помогите пожалуйста разобраться. В глубину все работает. Вот если что ссылка на книгуhttp://coollib.com/b/183629/read
в глубину вот:
Это работает.

Решение задачи: «Поиск в ширину»

textual
Листинг программы
после(a,b).
после(b,d).
после(d,h).
после(b,e).
после(e,i).
после(e,j).
после(a,c).
после(c,f).
после(f,k).
после(c,g).
цель(j).
 
 решить( Старт, Решение) :-
 
                вширину( [ [Старт] ], Решение).
 
        вширину( [ [Верш | Путь] | _ ], [Верш | Путь] ) :-
 
                цель( Верш).
 
        вширину( [ [В | Путь] | Пути], Решение ) :-
 
                bagof( [В1, В | Путь ],
 
                ( после( В, В1), not(member( В1, [В | Путь]))),
 
                НовПути),
 
                        % НовПути - ациклические продолжения пути [В | Путь]
 
                append( Пути, НовПути, Пути1),  !,
 
                вширину( Пути1, Решение);
 
                вширину( Пути, Решение).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5