Курсовая работа: Экспертная система для решения задачи о коммивояжере

run(Start,End):-db0(Start,End), db(Start,End), db_path(Start,End,MP,MD),

write("Optimum way: "),write(MP),nl,

write("Length of an optimum way="),write(MD),

nl,nl.

path(A,Z,Path,C):- path1(A,[Z],0,Path,C).

path1(A,[A|Path1],C,[A|Path1],C).

path1(A,[Y|Path1],C1,Path,C):- arca(X,Y,CXY), not(member(X,Path1)),C2=C1+CXY, path1(A,[X,Y|Path1],C2,Path,C).

member(Head,[Head|_]).

member(Head,[_|Tail]):- member(Head,Tail).

db0(X,Y) :-path(X,Y,P,C), assert(db_path(X,Y,P,C)).

db(X,Y):-db_path(X,Y,P,C), path(X,Y,MP,MC), MC<C,!,

retract(db_path(X,Y,P,C)), assert(db_path(X,Y,MP,MC)), db(X,Y).

db(_,_).

6. Тестирование программы

а) Пусть имеем следующий граф:

Рис.2 Рис.2а

Ищем оптимальный путь из a в х , согласно графу оптимальный путь содержит следующие узлы: a c f x , что изображено на рис.2а.


Программа:

Данные ручного расчета и программы совпадают.

б) Изменим длину ребра a - c :

Рис.3 Рис.3а

Ищем оптимальный путь из a в х , согласно графу оптимальный путь содержит следующие узлы: a b e f x , что изображено на рис.3а.


Программа:

Данные ручного расчета и программы совпадают.

в) Изменим длину ребра b - d :

Рис.4 Рис.4а

Ищем оптимальный путь из a в х , согласно графу оптимальный путь содержит следующие узлы: a b d e f x , что изображено на рис.4а.


Программа:

Данные ручного расчета и программы совпадают.


Литература

1. И 57. Использование Турбо-Пролога: Пер. с англ.-М.:Мир, 1990.-410 с., ил.

К-во Просмотров: 288
Бесплатно скачать Курсовая работа: Экспертная система для решения задачи о коммивояжере