Курсовая работа: Поиск оптимального пути в графе

Путь: ["остановка1","мi","остановкаQ",...,"мj"," остановка 2"]

Сумма_времени=Kyes

Так же результата решения может и не быть: “no", если нет таких пути, остановок, введённых в запрос пользователем. Поэтому требование к входным данным такое: остановки, введённые в запрос должны быть базе фактов.

Если пользователь захотел добавить ветвь, то ему необходимо добавить в базу фактов ещё один или два, один из которых обеспечивает не направленность ветки в формате:

участок (остановка1, х1, у1, остановка2, х2, у2, номер_маршрутки, время).

(участок (остановка2, х2, у2, остановка1, х1, у1, номер_маршрутки, время)) Для закрытии какой-нибудь линии необходимо сделать обратное -.

Для добавления новой остановки между двумя соединенными остановками надо отредактировать один факта и добавить новый и плюс два факта, описывающие обратные участки для всё той же не направленности веток и графа в целом:

участок (остановка1, х1, у1, остановкаNew, хN, уN, номер_маршрутки, время1).

NEW-участок (остановкаNew, хN, уN, остановка2, х2, у2, номер_маршрутки, время2).

(участок (остановкаNew, хN, уN, остановка1ew, х1, у1, номер_маршрутки, время1).

NEW-участок (остановка2, х2, у2, остановкаNew, хN, уN, номер_маршрутки, время2))

Для добавления новой остановки, не врезающейся в ветвь надо добавить факты, описывающие соединения этой остановки с другими.

3. Руководство программиста


3.1 Функциональная схема

Логические модели. Блок-схемы алгоритма.

а) принадлежит (Х, [Х|_]).

принадлежит (Х, [_|Хвост]): - принадлежит (Х, Хвост).

см. Братко И. Программирование на языке Пролог для искусственного интеллекта.

б) max (X,Y,X): - X>Y.

max (X,Y,Y): - X<=Y.

min (X,Y,X): - X<Y.

min (X,Y,Y): - X>=Y.

см. Братко И. Программирование на языке Пролог для искусственного интеллекта.

в) мин_сумма1 (_, []).

мин_сумма1 (М, [Х|Список]): - М<=Х, мин_сумма1 (М, Список).

мин_сумма2 (М, [Х|Список]): - мин_сумма1 (М, Список),!;

мин_сумма2 (М, Список).

В данном случае конкретизирован Cписок, необходимо найти М. Присваиваем М значение первого элемента и сравниваем с остольными элементами списка. Если М является минимумом, то искомое значение найдено, отсечение не позволяет перейти ко второму условию этого правила. Иначе сравниваем с значения второго элемента списка с оставшимися. Цикл прекращается, если очередное значение М является минимальным.

г) коридор (Нач, Кон, СписокХ, СписокУ): -

участок (Нач, Х1, У1,_,_,_,_,_),!,

участок (_,_,_, Кон, Х2, У2,_,_),!,

К-во Просмотров: 244
Бесплатно скачать Курсовая работа: Поиск оптимального пути в графе