Автор: Пользователь скрыл имя, 20 Февраля 2012 в 20:18, курсовая работа
Целью данной курсовой является создание имитационной модели коммивояжера (вертолёта), облетающего города по порядку, которые имеют координаты широты и долготы, порядок Вертолёт обладает скоростью 200 км/ч.
1. Введение ……………………………………………………3
2. Основная часть ……………………………………………..4
3. Заключение …………………………………………………13
4. Список литературы …………………………………………14
Московская финансово-промышленная академия
Курсовой проект
по курсу
«Моделирование систем»
на тему:
«Моделирование перемещений по маршрутной сети»
Выполнил:
Студ. гр. ДЛИ-401
Принял:
Преподаватель
Москва 2011
Содержание.
Введение.
Целью данной курсовой является создание имитационной модели коммивояжера (вертолёта), облетающего города по порядку, которые имеют координаты широты и долготы, порядок Вертолёт обладает скоростью 200 км/ч. Необходимо получить модель, которая в режиме реального времени отвечала поставленные вопросы:
а) пройденный путь из начального города в конечный город;
б) а также затраченное при этом время.
Для
этого необходимо обратиться к ПО
«Pilgrim», используя который возможно создание
модели коммивояжера с заданными заранее
параметрами, такими как время функционирования
модели, законы распределения заявок,
свойства коммивояжера. В результате исследования
модели мы получим данные об эффективности
коммивояжера на примере двух наборов,
в каждом из которых будет предложено
три способа совершения пути.
Основная часть.
Для того чтобы реализовать поставленную задачу, необходимо построить граф имитационной модели «Коммивояжер». Помимо него необходимо построить два набора городов, по которым вертолёт будет совершать облёты. После подключения SPACE-массивов необходимо будет запустить модель с заданными настройками, такими как: скорость вертолёта 200 км/ч, расстояние между городами не меньше 10 км. Нужно будет совершить три прогонки с разными маршрутами для того, чтобы на примере убедиться в правильности совершаемых действий, а именно, получить различные длины маршрутов, а следовательно, разные количества времени, затрачиваемые на путь.
Имитационная модель.
Данная модель будет описывать функционирования полёта вертолёта.
Общее число населённых пунктов
содержится в глобальной переменной
Pilgrim – npoints. Параметр транзакта t->io0 используется
для изменения маршрутов транзактов, если
их номера превысят номер M.Сначала из
узла «Генератор вызовов» (Тип AG) транзакт
поступает в узел «Пункты вызовов» (Тип
Queue). В узле 2 выполняется привязка транзакта
к населённому пункту, номер которого
равен 1+addr[2]->na, с помощью операции sewt.
После этого если узел «Время полёта»
(Тип Key) открыт, транзакт поступает в узел
«Расписание» (Тип Queue), при этом закрывается
узел «Время полёта» (Тип Key). После этого
транзакт поступает в узел «Вертолёт»
(Тип Proc),спустя N-ое время, он попадает
в узел «Пункт посещён» (Тип Term). В узле
6 по завершении полёта к последнему пункту
измеряется время полёта вертолёта. Параметр
транзакта t->tx содержит номер пункта,
который посещает вертолёт.
Листинг исходной программы:
#include <Pilgrim.h>
#pragma comment(lib, "pilgrim.lib")
#pragma comment(lib, "COMCTL32.LIB")
forward
{
int M=npoints;
int X=0;
modbeg("Воздушные рейсы",6,25.00,(long)time(
ag("Вызовы",1,none,expo,0.02,
network(dummy,dummy)
{
top(2) :t->iu0 = 3;
X = 1 + addr[2]->na;
if(X <= M)
sewt(X);
else
t->iu0 = 5;
if(addr[2]->na == 0)
hold(6);
queue("Пункты вызовов",none,t->iu0);
place;
top(3): queue("Расписание",
place;
top(4): proc("Вертолёт",dummy,
place;
top(5): if(t->tx >= M)
rels(6);
term("Пункт посещён");
place;
top(6): key("Время полёта",5);
place;
fault(123);
}
modend("Helicopter.rep",1,12,
return 0;
}
Далее проведем испытания для первого
набора городов:
Великий Новгород
Череповец
Вологда
Ярославль
Иваново
Нижний Новгород
Муром
Владимир
Клин
Москва
Для этого скомпилируем cpp-файл в MSVS
2008, полученный в Gem, и загрузим в нем SPACE-файл
Sample1.spa. Запустим модель клавишей F4. Получим
пространство:
Полученные результаты:
Пройдено: 1606.921 км. Затраченное время:
1606.921:200 = 8.03 часа.
Поменяем порядок следования городов:
Великий Новгород
Муром
Ярославль
Иваново
Нижний Новгород
Владимир
Череповец
Вологда
Клин
Москва
Повторим операции с cpp-файлом и загрузим
файл Sample2.spa .
Результаты: Пройденное расстояние 2493.949. Затраченное время: 2493.949:200=12.46 часов.
Повторим итерацию для иного порядка следования городов:
Череповец
Вологда
Ярославль
Муром
Нижний Новгород
Великий Новгород
Владимир
Клин
Москва
Иваново
Результаты: Пройденное расстояние: 2643.386
Затраченное время: 2643.386:200=13.21
Введём новый набор городов:
Эссен
Бремен
Гамбург
Киль
Берлин
Лейпциг
Нюрнберг
Штутгарт
Кёльн
Франкфурт-на-Майне
Проведём аналогичные операции с *.cpp файлом, подключим в скомпилированный exe-файл SPACE-файл Sample4.spa, получим:
Получим: Пройденное расстояние 1669.624 Затраченное время: 1669.624:200 = 8.34 часа.
Введём новый набор городов:
Нюрнберг
Гамбург
Штутгарт
Кёльн
Франкфурт-на-Майне
Киль
Берлин
Лейпциг
Эссен
Бремен
Проведём аналогичные операции с *.cpp файлом, подключим в скомпилированный exe-файл SPACE-файл Sample5.spa, получим:
Получим: Пройденное расстояние 2948.420 Затраченное время: 2948.420:200 = 14.74 часов.
Введём новый набор городов:
Штутгарт
Кёльн
Франкфурт-на-Майне
Лейпциг
Эссен
Бремен
Киль
Нюрнберг
Гамбург
Берлин
Проведём аналогичные операции с *.cpp файлом, подключим в скомпилированный exe-файл SPACE-файл Sample6.spa, получим:
Получим: Пройденное расстояние 2750.452 Затраченное время: 2750.452:200 = 13.75 часов.
Заключение.
В данной курсовой работе была смоделирована имитационная модель многоканальной системы обслуживания с ограниченной очередью с применением программного обеспечения PILGRIM, Microsoft Visual Studio 2008.
Литература.
1.Емельянов.
Имитационное моделирование экономических
процессов.
2.Саакян. Лекции ТМО.
3.Курсовой проект «Моделирование в Pilgrim».
Информация о работе Моделирование перемещений по маршрутной сети