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




Усовершенствование процедуры ответпольз - часть 6


                Nплюс1 is N + 1.

line();

% Процедура
%
% ответпольз( Цель, Трасса, Ответ)
%
% порождает, используя механизм возвратов, все решения
% для целевого утверждения Цель, которые указал пользователь.
% Трасса - это цепочка целей-предков и правил,
% используемая для объяснения типа "почему".

        ответпольз( Цель, Трасса, Ответ) :-
                можно_спросить( Цель, _ ),
               % Можно спросить ?
                копия( Цель, Копия),                           % Переименование переменных
                ответпольз( Цель, Копия, Трасса, Ответ, 1).

% Не спрашивать второй раз относительно конкретизированной цели

        ответпольз( Цель, _, _, _, N) :-
                N > 1,
                                                      % Повторный вопрос?
                конкретный( Цель),  !,                         % Больше не спрашивать
                fail.




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