Имитационное моделирование

Автор работы: Пользователь скрыл имя, 21 Декабря 2012 в 07:44, курсовая работа

Описание работы

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

Содержание работы

ВВЕДЕНИЕ. 2
1. ОСНОВНЫЕ ОБЪЕКТЫ МОДЕЛИРУЮЩЕЙ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ИНФОРМАЦИОННОЙ МОДЕЛИ 4
2. ВНУТРЕННЯЯ РЕАЛИЗАЦИЯ МОДЕЛИ 8
2.1 ОСНОВНЫЕ ПРОЦЕССЫ И ДЕЙСТВИЯ УЗЛОВ МОДЕЛИ 10
2.2 МОДЕЛИРОВАНИЕ РАБОТЫ С МАТЕРИАЛЬНЫМИ РЕСУРСАМИ. 14
2.3 ИМИТАЦИЯ ИНФОРМАЦИОННЫХ РЕСУРСОВ. 17
2.3.1 Логика моделирования 18
2.4 ДЕНЕЖНЫЕ РЕСУРСЫ. 21
3. МОДЕЛИРОВАНИЕ ПРОСТРАНСТВЕННОЙ ДИНАМИКИ 23
ПРИМЕР: МОДЕЛЬ ДВИЖЕНИЯ ТРАНСПОРТНОГО СРЕДСТВА 23
ЗАКЛЮЧЕНИЕ. 25
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ. 26

Файлы: 1 файл

1.doc

— 485.00 Кб (Скачать файл)

В третьем  режиме обслуживание каждого нового транзакта заключается в имитации перемещения узла ргос в новую точку пространства, координаты которой - это параметры транзакта.

Счет бухгалтерского учета (операция типа «проводка») имеет наименование send. Транзакт, который входит в такой узел, является запросом на перечисление денег со счета на счет или на бухгалтерскую проводку. Правильность работы со счетами регулируется специальным узлом direct, который имитирует работу бухгалтерии.

Распорядитель финансов («главный бухгалтер») имеет наименование direct. Он управляет работой узлов типа send. Причем для правильной работы модели достаточно одного узла direct; он обслужит все счета без нарушения логики модели.

Склад перемещаемых ресурсов имеет наименование attach. Это хранилище какого-то количества однотипного ресурса (например, гаражное хозяйство, имеющее 25 грузовиков). Единицы ресурсов в нужном количестве выделяются транзактам, поступающим в узел attach, если остаток (количество единиц, имеющихся в наличии) позволяет выполнить такое обслуживание. В противном случае возникает очередь необслуженных транзактов и соответственно дефицит ресурса. Транзакты, получившие ресурсы, вместе с ними мигрируют по графу во время выполнения модели и возвращают по мере необходимости разными способами: либо все единицы вместе, либо небольшими партиями, либо поштучно. На один и тот же склад можно обращаться несколько раз, не возвращая ранее полученные с этого склада ресурсы. Корректность работы склада обеспечивает менеджер – специальный узел manage.

Менеджер (или распорядитель) ресурсов имеет наименование manage. Он управляет работой узлов типа attach. Для правильной работы модели достаточно иметь один узел-менеджер; он обслужит все склады без нарушения логики модели.

Структурный узел финансово-хозяйственных  платежей имеет наименование pay. Он предназначен для упрощения той части имитационной модели, которая связана с работой бухгалтерии. Если позволить обращения к счетам бухгалтерского учета из всех частей модели, где возникают требования на проводки или перечисления, то граф станет запутанным. Описание условий прохождения транзактов по путям будет очень длинным и сложным. Условия – это логические выражения с многочисленными if, else, switch, case и while. Очень сложные условия увеличивают модель и порождают семантические ошибки, которые могут быть обнаружены только после длительного тестирования модели. Поэтому вся работа бухгалтерии собирается на одном структурном слое модели (слой 3, см. рис. 2). Обращения на этот слой в нужные входы-узлы происходят с других слоев из узла pay автоматически, без графического объединения этих слоев с помощью дуг.

Структурный узел выделения  ресурсов имеет наименование rent. Он применяется для упрощения графа и всей модели при работе со многими складами с различных уровней структурной схемы точно так же, как узел pay.

Произвольный структурный  узел имеет наименование down. Он бывает, необходим для упрощения очень сложного слоя модели, заключающегося в «развязывании» сложной запутанной схемы, находящейся на одном слое, по двум разным уровням (или слоям). Его польза точно такая же, как полезность узлов pay и rent.

Виртуальный структурный  узел имеет наименование parent. Узел parent - мощное средство структурного анализа при создании модели. Узел виртуален. В тексте модели он отсутствует. Этот узел позволяет объединить некоторое множество любых узлов модели и поместить их на более низкий слой, оставив на исходном слое только графический значок parent. Работа с такими узлами возможна только в режиме CASE-технологии создания имитационных моделей при использовании графического конструктора.

2.2 Моделирование работы с материальными ресурсами

Материальные ресурсы подразделяются на две разновидности: неперемещаемые и перемещаемые. Неперемещаемый ресурс выделяется в определенном месте (как в реальности, так и в модели). Например, мастер в парикмахерской - это один элемент ресурса, выделяемый клиенту для обслуживания (стрижки и бритья). Этот элемент не может перемещаться вместе с клиентом (транзактом). После обслуживания одного клиента он либо приступит к обслуживанию следующего, если есть очередь, либо будет отдыхать.

Перемещаемый ресурс выделяется клиенту, после чего клиент использует его в других местах и возвращает только при отсутствии необходимости дальнейшего использования. Например, ресурс – это гараж; клиенту можно выделить три грузовика для использования в работах, проводимых в других местах (естественно, не в гараже).

Неперемещаемый ресурс (рис. 3) представляет собой «базу», на которой расположены (или к которой приписаны) какие-то ресурсные единицы; их можно использовать только на базе. Поток транзактов поступает в очередь к ресурсу.

Неперемещаемый ресурс имитируется  в виде многоканального обслуживающего прибора. Каждой ресурсной единице соответствует один канал обслуживания. Канал принимает в себя транзакт (или захватывается транзактом) на время, которое может зависеть от атрибутов узла, транзакта и других параметров. Очередь в имитационной модели описывается в виде узла queue, а многоканальный обслуживающий прибор - узлом типа serv.

Рисунок 3 - Схема получения и освобождения транзактами элементов неперемещаемого ресурса – каналов узла serv: N – число каналов обслуживания (парикмахеров).

По истечении времени обслуживания канал (элемент ресурса) безусловно, освобождается, а транзакт переходит в следующий узел. Очередь может быть как с приоритетами, так и без приоритетов. Каналы могут работать в режиме прерывания обслуживания менее приоритетных транзактов более приоритетными.

В моделях автоматически определяются задержка в очереди и загрузка неперемещаемого ресурса. Число  свободных каналов в serv - это остаток  ресурса, а количество транзактов в  очереди queue - это дефицит ресурса. Мощность базируемого ресурса N - величина постоянная.

Перемещаемый ресурс представляет собой «склад» единиц ресурса, количество которых известно. Число таких складов не регламентировано. Транзакт попадает в очередь к складу и требует выделения определенного числа единиц ресурса. Склад ресурсов описывается в имитационной модели в виде узла attach. В узле attach образуется очередь транзактов, которая может быть организована в хронологическом порядке или по приоритетным правилам:

  • по заранее заданным приоритетам транзактов;
  • при равенстве приоритетов транзактов происходит их дополнительное ранжирование - чем меньше транзакт запрашивает единиц, тем он более приоритетный.

Обслуживанием транзактов занимается узел типа «менеджер» - manage. Таких узлов в модели может быть несколько. Пример взаимодействия узлов attach и manage показан на рис. 4.

Рисунок 4 - Общая схема распределения мобильных материальных ресурсов

Обслуживание транзакта заключается  в выделении ему требуемого числа  единиц ресурса. Обслуженный транзакт проходит узел manage и «путешествует» с захваченными единицами по графу модели до тех пор, пока в соответствии с определенными условиями он не вернет все (или часть) единицы ресурса с помощью функции detach. Транзакт может несколько раз становиться в очередь к одному и тому же ресурсу, получая дополнительные единицы.

Существует интересная особенность  при работе с перемещаемыми ресурсами: транзакт может отдать какие-либо единицы  ресурса не только на тот склад, на котором он их получил, но и на другой. При таком перераспределении (или «похищении») на этих двух складах произойдет изменение мощностей: на одном она уменьшится, а на другом - увеличится. Данная особенность реализуется с помощью сигнальной функции canyoff.

В моделях автоматически определяются задержка в очереди attach, загрузка ресурса, остаток и дефицит. Начальная мощность задается при инициализации модели функцией supply.

2.3 Имитация информационных ресурсов

Информационные ресурсы - это необходимые  сведения, оперативная информация (например, биржевая информация из сайтов Интернета), временно предоставляемые права на что-либо, документация и иные нематериальные ценности, без которых невозможно выполнение важной функции. Эти ресурсы подразделяются на две разновидности:

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

Стартовый информационный ресурс дает возможность отправить заявку на выполнение какой-либо функции, т.е. поместить транзакт в очередь на обслуживание. На рис. 5 показана схема получения такого ресурса. Для выполнения основной функции нужны только два узла: первый (очередь queue) и седьмой - последний (обслуживающий процесс serv). Узлы 2 - 6 предназначены для имитации получения информации из N источников. Эти источники – каналы в узле обслуживания 5 (serv). В данном случае предполагается, что ко всем каналам или источникам информации доступ осуществляется через общую очередь 4 (queue). Если необходимо смоделировать отдельные механизмы доступа к каждому уникальному источнику информации, то данную схему нужно усложнить: это будет N очередей к N одноканальным узлам обслуживания.

Рисунок 5 - Схема получения информационного ресурса для выполнения основной функции

2.3.1 Логика моделирования

Рассмотрим логику моделирования. Запросы на выполнение основной функции поступают в очередь с номером 1. Первый же запрос проходит через открытый клапан 2 (key) и далее поступает в управляемый генератор 3 (creat); при входе в него выполняется сигнальная функция hold, которая закрывает клапан, чтобы преградить путь следующим транзактам.

Узел creat создает новое семейство  транзактов (от 1 до N). Каждый из них - это запрос, который поступает в очередь к источникам информации. Время получения информации (оно не равно нулю) можно сделать уникальным для каждого транзакта, поместив значение временного интервала в один из его параметров. После обслуживания каждый такой транзакт поступит в узел delet.

Основной (порождающий) транзакт за нулевое  время проходит узел creat и поступает  в узел delet, где он становится уничтожающим для только что созданного семейства. Если порожденный транзакт достигает узла delet, то это означает получение необходимой информации из очередного источника. Далее он становится ненужным и поглощается основным транзактом.

После получения всей необходимой информации все дополнительные транзакты поглощены, и основной транзакт переходит к отработке основной функции в узле 7 (serv). При входе в этот узел выполняется сигнальная функция rels, открывающая клапан для прохождения других транзактов.

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

Оперативный информационный ресурс может быть получен двумя способами:

  • предварительно, вместе со стартовыми;
  • во время выполнения транзактом основной функции.

На самом деле неважно, как получен  ресурс. Важно иметь доступ к этому ресурсу по возможности постоянно, так как прекращение доступа повлечет за собой приостановку выполнения основной функции. Моделирование механизма таких приостановок показано на рис. 6.

Рисунок 6 - Схема выполнения функций основным транзактом при наличии доступа к информации

Основной транзакт - это запрос на выполнение основной функции. Он поступает  в очередь queue с номером 1. Выполнение основной функции имитируется в данном случае не узлом обслуживания serv, а с помощью узла-процесса 2 (ргос). Узел ргос отрабатывает только время обслуживания, и непрерывный компонент ему не нужен.

Доступ к оперативной информации осуществляется специальной службой, которая моделируется с помощью узлов 3, 4 и 5. Для определенности считаем, что в узел ргос поступает основной транзакт, который сразу попадает в пассивное состояние и не обслуживается, если нет доступа к информации. Управление доступом выполняет другой транзакт, который поступает из очереди 3 (queue) в узел обслуживания 4 (serv). При входе в этот узел управляющий транзакт разрешает доступ: он посылает сигнал activ, по которому основной транзакт переходит в активное состояние, и в узле ргос выполняется работа по его обслуживанию. После пребывания управляющего транзакта в узле serv в течение определенного времени – времени разрешенного (или оплаченного) доступа к оперативной информации, он поступит в узел 5 и выполнит сигнальную функцию перевода узла 2 в пассивное состояние. Если время разрешенного доступа выбрано так, что оно не меньше длительности выполнения основной функции, а моменты входов управляющего транзакта в узел 4 и основного транзакта в узел 2 совпадают, то выполнение основной функции произойдет без прерываний. В противном случае возможны прерывания основной функции, и она будет выполняться за большее время. Так моделируется влияние наличия или отсутствия оперативной информации на работоспособность, например, диспетчерских служб или консалтинговых агентств.

2.4 Денежные ресурсы

Денежный ресурс представляет собой «емкость», в которой содержится определенное количество ресурса, измеряемого числом с плавающей точкой. Обычно эту емкость отождествляют со счетом бухгалтерского или банковского учета. Этот счет описывается с помощью узла типа send (пересылка). В узле send образуется очередь транзактов, в которых содержится запрос на перевод денежных средств с данного счет send на какой-либо другой. Эта очередь может быть организована по приоритетному принципу: чем меньше денег требует транзакт перевести с данного счета, тем он приоритетнее. Можно устанавливать приоритеты и по-другому, например, по такой приоритетной таблице: сначала налоги, затем - зарплата, а после этого - все остальные платежи.

Информация о работе Имитационное моделирование