Программирование на языке ПРОЛОГ для искуственного интеллекта




Программа поиска - часть 11


        оценка( и :[ ], 0) :-   !.

        оценка( и : [Дер1 | ДД], F) :-
                f( Дер1, F1),
                оценка( и : ДД, F2),
                F is F1 + F2,  !.

        оценка( Дер, F) :-
                f( Дер, F).

% Отношение выбор( Деревья, Лучшее, Остальные, Предел, Предел1):
% Остальные - И / ИЛИ-список Деревья без его "лучшего" дерева
% Лучшее; Предел - ограничение для Списка Деревья, Предел1 -
% ограничение для дерева Лучшее

        выбор( Оп : [Дер], Дер, Оп : [ ], Предел, Предел) :-  !.
                                                               % Только один кандидат

        выбор( Оп : [Дер | ДД], Дер, Оп : ДД, Предел, Предел1) :-
                оценка( Оп : ДД, F),
                ( Оп = или,  !,  мин( Предел, F, Предел1);
                Оп = и, Предел1 is Предел - F).

        мин( А, В, А) :- А < В,   !.

        мин( А, В, В).




Содержание  Назад  Вперед