Списковое представление множества кандидатов



11. 3. 1.    Списковое представление множества кандидатов

В нашей первой реализации этой идеи мы будем использовать следующее представление для множества

line();

        решить( Старт, Решение) :-
                вширину( [ [Старт] ], Решение).

        вширину( [ [Верш | Путь] | _ ], [Верш | Путь] ) :-
                цель( Верш).

        вширину( [ [В | Путь] | Пути], Решение ) :-
                bagof( [B1, В | Путь ],
                ( после( В, В1), not  принадлежит( В1, [В | Путь])),
                НовПути),

                        % НовПути - ациклические продолжения пути [В | Путь]
                конк( Пути, НовПути, Пути1),  !,
                вширину( Путь1, Решение);
                вширину( Пути, Решение).

                                % Случай, когда у В нет преемника

line();



Содержание раздела