Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛаврентьеваНВ-302_Моделирование.docx
Скачиваний:
383
Добавлен:
22.09.2019
Размер:
371.56 Кб
Скачать
  1. Имитационная модель.

Имитационое моделированием является представление модели в виде некоторого алгоритма – компьютерной программы, – выполнение которого имитирует последовательность смены состояний в системе и таким образом показывает поведение моделируемой системы. В случае имитационного моделирования имитационная модель – программа – реализуется на ЭВМ.

Рисунок № 3 – Технологическая схема имитационного моделирования

1 – Реальная система; 2 – Построение логико-математической модели; 3 –Разработка моделирующего алгоритма; 4 – Построение имитационной (машинной)модели; 5 – Планирование и проведение имитационных экспериментов; 6 – Обработка и анализ результатов; 7 – Выводы о поведении реальной системы (принятие решений).

Имитационным моделированием называют процесс создания испытания таких моделей, а имитационной моделью называют сам алгоритм. Имитационные модели достаточно просто учитывают влияние случайных факторов.

    1. Граф модели с помощью конструктора gem

Схема имитационной модели - ориентированный граф, вершины которого представляют собой компоненты элементарных процессов, а дуги определяют направление потоков заявок и управляющих воздействий в моделируемой системе.

Рис. №4 Граф модели.

    1. Общая структура pilgrim

Структура программы, описывающей имитационную модель в системе PILGRIM имеет следующий вид:

    1. Описание логики модельных процессов.

С определенными интервалами времени на остановку приходят пассажиры (1) и подъезжают (6). Такси уезжает(5), когда в него сядет 10 пассажиров. Если пришедший пассажир(1) не обнаруживает стоящего такси, он встает в очередь на посадку(2). Если такси(6) подъехало на пустую остановку(8), оно ждет пассажиров. Если такси(6) подъехало, а на остановке уже стоит такси(8), оно встает в очередь такси(7).

    1. Исходный текст программной модели.

Текст модели

#include "Pilgrim.h"

float Pas=1.0; /* интервал прихода пассажиров */

float Tax=10.0; /* интервал прихода такси */

float Mod_time=600.0;

forward

{

int fw;

modbeg("Маршрутное такси", 10, 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, 7);

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("Посадка в такси", none, none, 0, 10, 5);

rels(3);

hold(8);

place;

top(5):

term("Такси уехало");

hold(3);

rels(8);

place;

top(7):

queue("Такси", none, 8);

place;

top(8):

key("Остановка свободна?", 4);

place;

fault(123);

}

modend("123456789_1.txt", 1, 12, page);

return 0;

}

    1. Результаты проведения экспериментов исходя из отчета pilgrim

Рис. № 5 Результаты экспериментов

  1. Анализ результатов.

Исходя из результатов проделанной работы можно сделать несколько выводов:

    • Очередь людей на такси несущественная

    • Такси всегда есть на остановке

    • Очередь такси минимальная

    • Люди всегда смогут сесть в такси, так как на остановке всегда присутствует такси, либо на посадку, либо в очереди на посадку.

    • Очередь людей минимальная

    • В связи с тем, что очереди минимальные, то можно было бы сократить количество такси, подаваемых на остановку.

    • Можно увеличить интервал движения такси.

    • Есть возможность оптимизировать интервал движения такси в зависимости от времени суток. Так как поток людей обычно больше в вечернее время.