Добавлен: 29.06.2023
Просмотров: 35
Скачиваний: 2
Функция SEWK помещает узел в определенную точку пространства.
Функция GEOWAYопределяет расстояние между точками A и B по их географическим координатам.
Для данной задачи получен следующий граф (рис.1).
Рис.1. Граф модели
Интервал генерации транзактов, имитирующих такси, имеет нормальное распределение, так как остановку обслуживают такси из одного парка, а не нескольких. Использование в описании генератора 6 нормального закона распределения интервала генерации означает, что время между приездами такси на остановку чаще оказывается ближе к своему среднему значению и реже - дальше от него (чем больше отклонение интервала от среднего, тем реже это бывает).
Узлы 2 и 7 имитируют соответственно очереди пассажиров и такси. Ключ 8 в начале работы модели находится в открытом состоянии (по умолчанию), а ключ 3 закрывается при приходе в очередь 2 первого транзакта. Это делается для того, чтобы в узел delet первым вошел транзакт-такси, а не пассажир (иначе пассажир станет “тележкой”).
Как только в delet войдет первый транзакт-такси, ключ 8 закрывается, а ключ 3 открывается. Теперь выходящие из генератора 6 транзакты-такси стоят в очереди 7, а транзакты-пассажиры заходят в узел delet (идет заполнение такси). Когда в узле накопится 10 транзактов-пассажиров, транзакт-такси перейдет в терминатор (заполненное такси уедет). Ключ 8 открывается, чтобы в delet мог зайти следующий транзакт-такси. Ключ 3 закрывается, чтобы транзакты-пассажиры стояли в очереди 2 до прихода в delet транзакта-такси.
Таким образом, в модели ключи 3 и 8 всегда находятся в противоположных состояниях - если один открыт, то другой закрыт. Тем самым чередуется доступ к узлу delet разных типов транзактов - такси и пассажиров.
В результате выполнения программы был сгенерирован следующий код C++:
#include <pilgrim.h>
float Pas=1.0; /* интервал прихода пассажиров */
float Tax=10.0; /* интервал прихода такси */
float Mod_time=360.0;
forward
{
modbeg(“Маршр. такси”, 5, Mod_time, (long)time(NULL),
none,2, none, 5, 2);
ag(“Пассажиры”, 1, none, expo, Pas, zero, zero, 2);
ag(“Такси”, 6, none, norm, Tax, Tax/3, zero, 2);
network(dummy, dummy)
{
top(2): queue(“Пассажиры”, none, 3);
clcode
if (addr[2]->na == 1)
hold(3); /* начальное размыкание ключа */
place;
top(3): key(“Есть такси?”, 4);
place;
top(4): delet(“Посадка в такси”, 0, 10, 5);
rels(3);
hold(8);
place;
top(5): term(“Такси уехало”);
hold(3);
rels(8);
place;
top(7): queue(“Такси”, none, 4);
place;
top(8): key(“Остановка свободна?”, 4);
place;
fault(123);
}
modend(“pilgrim.rep”, 1, 12, page);
return 0;
}
Результаты моделирования выводятся в виде таблицы.
Были получены следующие результаты:
Увеличим время прихода такси на остановку.
*------------------------------------------------*
| НАЗВАНИЕ МОДЕЛИ: Маршр. такси |
| ВРЕМЯ МОДЕЛИРОВАНИЯ: 360.02 Лист: 1 |
|----------------------------------------------|
| | | | | | | 2 | | | | |
| No | Наименование | Тип |Точ-|Загруз-| M [t] | C [t] |Счетчик|Кол.|Оcт.|Состояние узла|
|узла| узла | узла | ка |ка(%=),| среднее |квадрат |входов |кан.|тр. |в этот момент |
| | | | |Путь(км) время |коэф.вар.|и hold | | | |
|----+---------------+------+----+-------+---------+---------+-------+----+----+--------------|
| | | | | | | | | | | |
| 101 Пассажиры queue - - 4.99 2.07 353 1 1 открыт |
| 102 Есть такси? key - %= 52.3 5.23 0.95 36 1 0 открыт |
| 103 Посадка в такси delet - - 5.35 2.02 352 2 1 закрыт |
| 104 Такси уехало term - - 9.17 1.30 35 0 0 открыт |
| 105 Такси queue - - 4.60 2.36 37 1 1 открыт |
| 106 Остановка свобо key - %= 48.2 4.82 0.94 36 1 0 закрыт |
| 107 Пассажиры ag - - 1.02 1.02 353 1 1 открыт |
| 108 Такси ag - - 9.51 0.09 38 1 1 открыт |
Уменьшилось ненамного число пассажиров (из-за уменьшения времени моделирования);
Число такси увеличилось до 36 и уехало 35;
В такси село 352 пассажира.
Заключение
Имитационное моделирование позволяет учесть максимально возможное число факторов внешней среды для поддержки принятия управленческих решений и является наиболее мощным средством анализа инвестиционных рисков. Необходимость его применения в отечественной финансовой практике обусловлена особенностями российского рынка, характеризующегося субъективизмом, зависимостью от внеэкономических факторов и высокой степенью неопределенности.
В данной курсовой работе была построена и проанализирована модель работы маршрутного такси. На основе проведенного анализа можно утверждать, что модель правдоподобно отражает работу маршрутного такси.
Список использованной литературы
- Афанасьев М.Ю., Суворов Б.П. Исследование операций в конкретных ситуациях. - М.: Изд-во МГУ, 1999.
- Березин Д.А. Компьютерное моделирование систем массового обслуживания. Учебно-методическое пособие. Екатеринбург: Изд-во УрГУ, 2005
- Варфоломеев В.И. «Алгоритмическое моделирование элементов экономических систем». - М.: Финансы и статистика, 2000г.
- Емельянов А.А., Власова Е.А. Имитационное моделирование экономических процессов. - М. Московский международный институт эконометрики, информатики, финансов и права. 2002. – 92 с.
- Кеольтон В., Лод А. «Имитационное моделирование. Классика CS» издание 3-е, 2004г.;
- Кобелев Б.Н. Основы имитационного моделирования сложных экономических систем. - М.: Дело, 2003.