ВУЗ:
Составители:
Рубрика:
57
f1(1,"String1").
f1(2,"String2").
f1(3,"String3").
f1(4,"String4").
f2(1,"String1").
f2(0,"String2").
f2(-5,"String3").
f2(4,"String4").
% Найти первую комбинацию различных фактов,
% удовлетворяющих условию.
% Используется "естественный откат – бэктрегинг"
% для поиска единственного успешного решения.
search:-
f1(X1,S1),
f2(X2,S2),
X2<X1,write(X1," ",S1," ",X2," ",S2),nl.
% Найти все комбинации разных фактов,
% удовлетворяющих условию
% Используется ОПН – откат после неудачи.
search2:-
f1(X1,S1),
f2(X2,S2),
X2<X1,write(X1," ",S1," ",X2," ",S2),nl,
fail.
search2:-!.
% Удовлетворяют ли условию 1-е 2 разных факта?
% Здесь важно, в каком месте использован откат. Если
он
% был бы поставлен после сравнения, то было бы найдено
% единственное решение, как в предикате search.
search3:-
f1(X1,S1),
f2(X2,S2),!,
X2<X1,write(X1," ",S1," ",X2," ",S2),nl.
58
Заключение
Со времени первой реализации (1973) Пролог проделал ог-
ромный путь и к настоящему времени в ипостаси PDC Visual
Prolog v.5.2 стал одним из наиболее технологичных средств разра-
ботки программного обеспечения для различных областей челове-
ческой деятельности. Тем не менее (многое зависит от мощности
конкретного компьютера), на нем не стоит писать ПО для систем,
принципиально требующих
особого быстродействия, а также не
стоит решать задачи сугубо вычислительного характера (для этой
цели обратитесь к вечно молодому прадедушке – Фортрану – или
пакету MathLab).
Достаточно сосредоточиться на логической стороне задачи,
и тут же станет очевидной истинная сила Пролога, заключающая-
ся в наглядности, красоте и простоте программ. Основываясь на
естественных для человеческого мышления логических
принци-
пах, он будет неутомимо искать истинное решение, перебирая все
возможные комбинации правил.
Начните писать программы в среде PDC Visual Prolog v.5.2 и
вряд ли вы захотите сменить это средство на какое-либо другое.
f1(1,"String1"). Заключение f1(2,"String2"). f1(3,"String3"). Со времени первой реализации (1973) Пролог проделал ог- f1(4,"String4"). ромный путь и к настоящему времени в ипостаси PDC Visual f2(1,"String1"). Prolog v.5.2 стал одним из наиболее технологичных средств разра- f2(0,"String2"). ботки программного обеспечения для различных областей челове- f2(-5,"String3"). ческой деятельности. Тем не менее (многое зависит от мощности f2(4,"String4"). конкретного компьютера), на нем не стоит писать ПО для систем, % Найти первую комбинацию различных фактов, принципиально требующих особого быстродействия, а также не % удовлетворяющих условию. стоит решать задачи сугубо вычислительного характера (для этой % Используется "естественный откат – бэктрегинг" цели обратитесь к вечно молодому прадедушке – Фортрану – или % для поиска единственного успешного решения. пакету MathLab). search:- Достаточно сосредоточиться на логической стороне задачи, f1(X1,S1), и тут же станет очевидной истинная сила Пролога, заключающая- f2(X2,S2), ся в наглядности, красоте и простоте программ. Основываясь на X2