Скачиваний:
47
Добавлен:
23.06.2014
Размер:
1.81 Кб
Скачать
% Разработайте программу "Советник по транспорту". Выберите либо % сеть, состоящую из городов, либо транспортную сеть маршрутов
% поездов или автобусов в пределах одного города. Вы должны
% информировать систему о том, откуда и куда Вы собираетесь
% добраться, а система должна выдавать рекомендации о том,
% какими поездами, автобусами, самолетами и т. д. Вам следует
% воспользоваться, чтобы добраться до пункта назначения.
% Указание: см. "Поиск в глубину" (Учебное пособие, часть 1,
% 2.2).
%===============================================================
% Решение:
% искомый запрос: p(X,Y,P).
% X-от куда
% Y-куда
% P-список возможных поездов
% например: p('воронеж','сургут',P).
% Решением является список возможных поездов(может быть % несколько списков)
%=============================================================
:-dynamic goal/1.

prev('москва','воронеж','"москва-воронеж" поезд №3').
prev('москва','абакан','"москва-абакан" поезд №4').
prev('абакан','воронеж','"абакан-воронеж" поезд №5').
prev('воронеж','сургут','"воронеж-сургут" поезд №6').
prev('сургут','челябинск','"сургут-челябинск" поезд №7').
prev('сургут','москва','"сургут-москва" поезд №8').
prev('воронеж','москва','"воронеж-москва" поезд №9').
prev('абакан','москва','"абакан-москва" поезд №11').
prev('воронеж','абакан','"воронеж-абакан" поезд №12').
prev('сургут','воронеж','"сургут-воронеж" поезд №13').
prev('москва','сургут','"москва-сургут" поезд №15').


solve(X,Y,T):-
indeep([],X,Y,T).

indeep(Path,Head,[Head|Path],[]):-
goal(Head).

indeep(Path,Head,Sol,[H|T]):-
prev(Head,Head1,H),
not(member(Head1,Path)),
indeep([Head|Path],Head1,Sol,T).

p(X,Y,T):-
retractall(goal(_)),
assert(goal(Y)),
solve(X,Z,T),
writeln('Вы можете воспльзоваться поездами:').
Соседние файлы в папке 1- 7_Прикладные методы искусственного интеллекта