- •Глава 1. Модель обработки запросов сервером
- •1.1. Постановка задачи
- •1.2. Создание диаграммы процесса
- •1.3. Изменение свойств блоков модели, её настройка и запуск
- •1.3.1. Изменение свойств блоков диаграммы процесса
- •1.3.2. Настройка запуска модели
- •1.3.3. Запуск модели
- •1.4. Создание анимации модели
- •1.5. Сбор статистики использования ресурсов
- •1.6. Уточнение модели согласно ёмкости входного буфера
- •1.7. Сбор статистики по показателям обработки запросов
- •1.7.1. Создание нестандартного Java класса
- •1.7.2. Добавление элементов статистики
- •1.7.3. Изменение свойств объектов диаграммы
- •1.7.4. Удаление и добавление новых полей типа заявок
- •1.8. Добавление параметров и элементов управления
- •1.9. Добавление гистограмм
- •1.10. Изменение времени обработки запросов сервером
- •1.11. Интерпретация результатов моделирования
- •Глава 2. Модель процесса изготовления в цехе деталей
- •2.1. Постановка задачи
- •2.1.1. Исходные данные
- •2.1.2. Задание на исследование
- •2.1.3. Уяснение задачи на исследование
- •2.2. Модель в AnyLogic
- •2.2.1. Исходные данные. Использование массивов
- •2.2.2. Построение событийной части модели
- •2.2.2.1. Подготовка заготовки
- •2.2.2.2. Сегменты Операция 1, Операция 2, Операция 3
- •2.2.2.3. Создание нового активного объекта
- •2.2.2.4. Создание экземпляра нового типа агента
- •2.2.2.5. Создание области просмотра
- •2.2.2.6. Переключение между областями просмотра
- •2.2.2.7. Пункт окончательного контроля
- •2.2.2.8. Склад готовых деталей. Вывод результатов моделирования
- •2.2.2.9. Склад бракованных деталей. Вывод результатов моделирования
- •2.2.3. Добавление элементов для проведения исследований
- •2.3. Интерпретация результатов моделирования
- •Глава 3. Модель функционирования направления связи
- •3.1. Постановка задачи
- •3.2. Уяснение задачи на разработку модели
- •3.3. Модель направления связи в AnyLogic
- •3.3.1. Исходные данные
- •3.3.2. Вывод результатов моделирования
- •3.3.3. Построение событийной части модели
- •3.3.3.1. Источники сообщений
- •3.3.3.2. Буфер, основной и резервный каналы
- •3.3.3.3. Имитатор отказов основного канала связи
- •3.4. Отладка модели
- •3.5. Интерпретация результатов моделирования
- •Глава 4. Модель функционирования сети связи
- •4.1. Модель в AnyLogic
- •4.1.1. Постановка задачи
- •4.1.2. Исходные данные
- •4.1.3. Задание на исследование
- •4.1.4. Формализованное описание модели
- •4.1.5. Создание новых типов агентов
- •4.1.6. Создание областей просмотра
- •4.1.7. Сегмент Абонент
- •4.1.7.1. Исходные данные
- •4.1.7.2. Результаты моделирования по каждому абоненту
- •4.1.7.3. Показатели качества обслуживания сети связи
- •4.1.7.4. Построение событийной части сегмента
- •4.1.8. Сегмент Маршрутизатор
- •4.1.8.1. Исходные данные
- •4.1.8.2. Событийная часть сегмента Маршрутизатор
- •4.1.8.2.1. Блок контроля 1
- •4.1.8.2.2. Блок Буфер 1
- •4.1.8.2.3. Блок обработки сообщений
- •4.1.8.2.4. Блок контроля 2
- •4.1.8.2.5. Блок Буфер 2
- •4.1.8.2.6. Организация входных и выходных портов
- •4.1.8.2.7. Имитатор отказов вычислительного комплекса
- •4.1.9. Сегмент Канал
- •4.1.9.1. Исходные данные
- •4.1.9.2. Событийная часть сегмента Каналы
- •4.1.9.3. Организация входного и выходного портов
- •4.1.9.4. Имитатор отказов каналов связи
- •4.1.10. Построение модели сети связи
- •4.1.11. Переключение между областями просмотра
- •4.1.12. Запуск и отладка модели
- •4.2. Интерпретация результатов моделирования
- •ГЛАВА 5. Модель функционирования системы связи
- •5.1. Модель в AnyLogic
- •5.1.1. Постановка задачи
- •5.1.2. Задание на исследование
- •5.1.3. Формализованное описание модели
- •5.1.4. Сегмент Постановка на дежурство
- •5.1.4.1. Ввод исходных данных
- •5.1.4.2. Имитация поступления средств связи
- •5.1.4.3. Распределитель средств связи
- •5.1.4.4. Создание нового активного объекта
- •5.1.4.5. Создание экземпляра нового типа агента
- •5.1.5. Сегмент Имитация дежурства
- •5.1.5.1. Ввод исходных данных
- •5.1.5.2. Вывод результатов моделирования
- •5.1.5.3. Событийная часть сегмента Имитация дежурства
- •5.1.6. Сегмент Статистика
- •5.1.6.1. Использование элемента Текстовое поле
- •5.1.6.2. Использование элемента Диаграмма
- •5.1.7. Использование способа Событие
- •5.1.8. Переключение между областями просмотра
- •5.1.9. Отладка модели
- •5.1.10. Проведение экспериментов
- •5.1.10.1. Простой эксперимент
- •5.1.10.2. Связывание параметров
- •5.1.10.3. Первый эксперимент Оптимизация стохастических моделей
- •5.1.10.5. Второй эксперимент Оптимизация стохастических моделей
- •5.1.10.6. Эксперимент Варьирование параметров
- •5.2. Интерпретация результатов моделирования
- •Глава 6. Модель функционирования Предприятия
- •6.1. Постановка задачи
- •6.1.1. Исходные данные
- •6.1.2. Задание на исследование
- •6.1.3. Уяснение задачи на исследование
- •6.2. Модель в AnyLogic
- •6.2.1. Формализованное описание
- •6.2.2. Ввод исходных данных
- •6.2.3. Вывод результатов моделирования
- •6.2.4. Построение событийной части модели
- •6.2.4.1. Имитация работы цехов предприятия
- •6.2.4.2. Имитация работы постов контроля блоков
- •6.2.4.3. Имитация работы пунктов сборки изделий
- •6.2.4.4. Имитация работы стендов контроля изделий
- •6.2.4.5. Имитация работы пунктов приёма изделий
- •6.2.4.6. Имитация склада готовых изделий
- •6.2.4.7. Имитация склада бракованных блоков
- •6.2.4.8. Организация перек между областями просмотра
- •6.3. Интерпретация результатов моделирования
- •Глава 7. Модель функционирования терминала
- •7.1. Постановка задачи
- •7.2. Модель в AnyLogic
- •7.2.1. Исходные данные и результаты моделирования
- •7.2.2. Событийная часть модели
- •7.2.3. Результаты моделирования
- •7.3. Эксперименты
- •7.3.1. Первый оптимизационный эксперимент в AnyLogic
- •7.3.2. Второй оптимизационный эксперимент в AnyLogic
- •7.4. Интерпретация результатов экспериментов
- •ГЛАВА 8. Модель предоставления ремонтных услуг
- •8.1. Постановка задачи
- •8.1.1. Исходные данные
- •8.1.2. Задание на исследование
- •8.1.3. Формализованное описание модели
- •8.2. Модель в AnyLogic
- •8.2.1. Ввод исходных данных
- •8.2.2. Вывод результатов моделирования
- •8.2.3. Построение событийной части модели
- •8.2.3.1. Сегмент Источники заявок
- •8.2.3.2. Сегмент Диспетчеры
- •8.2.3.3. Сегмент Мастера
- •8.2.3.4. Сегмент Учёт выполненных заявок
- •8.2.3.5. Отладка модели
- •8.3. Интерпретация результатов моделирования
- •Глава 9. Модель функционирования системы воздушных перевозок
- •9.1. Модель в AnyLogic
- •9.1.1. Постановка задачи
- •9.1.2. Исходные данные
- •9.1.3. Задание на исследование
- •9.1.4. Формализованное описание модели
- •9.1.5. Создание областей просмотра
- •9.1.6. Ввод исходных данных
- •9.1.7. Вывод результатов моделирования
- •9.1.8. Имитация функционирования аэропорта 1
- •9.1.8.1. Прибытие самолётов в аэропорт 1. Ожидание погрузки
- •9.1.8.2. Поступление и учёт контейнеров в аэропорту 1
- •9.1.8.3. Погрузка контейнеров в аэропорту 1
- •9.1.8.4. Полёт из аэропорта 1 в аэропорт 2
- •9.1.8.5. Ожидание разгрузки в аэропорту 1
- •9.1.8.6. Разгрузка самолётов в аэропорту 1
- •9.1.9. Имитация функционирования аэропорта 2
- •9.1.9.1. Поступление и учёт контейнеров в аэропорту 2
- •9.1.9.2. Ожидание разгрузки в аэропорту 2
- •9.1.9.3. Разгрузка самолётов в аэропорту 2
- •9.1.9.4. Ожидание погрузки в аэропорту 2
- •9.1.9.5. Погрузка контейнеров в аэропорту 2
- •9.1.9.6. Полёт из аэропорта 2 в аэропорт 1
- •9.1.9.7. Вывод результатов моделирования с использованием способа Событие
- •9.1.10. Запуск и отладка модели
- •10.1. Постановка задачи
- •10.2. Аналитическое решение задачи
- •10.3. Решение задачи в AnyLogic
- •10.4. Решение задачи в GPSS World
- •Глава 11. Решение обратных задач в AnyLogic
- •11.1. Определение среднего времени обработки группы запросов сервером
- •11.2. Определение среднего времени изготовления деталей
- •Глава 12. Задания на проектирование
- •Заключение
- •Список литературы
- •Приложение 1
- •ПРИЛОЖЕНИЕ 2
- •ПРИЛОЖЕНИЕ 3
ЗАКЛЮЧЕНИЕ
Целью настоящего учебного пособия являлось приобретение навыков разработки постановок задач на концептуальное проектирование, освоение техники ИМ, планирования, проведения и обработки данных компьютерных экспериментов для принятия проектных решений. ИМ выбрано потому как мировая практика научных исследований свидетельствует о том, что методы ИМ занимают около 70 % в общем объёме исследовательского инструментария. В настоящее время в ИМ выделяют три подхода: системной динамики, дискретно-событийный и агентный. Из этих подходов в рамках указанных дисциплин изучается дискретнособытийный подход, обеспечивающий универсальность и эффективность ИМ. Он ориентирован на исследование широкого класса сложных систем, представимых в виде систем массового обслуживания, в том числе и систем военного назначения.
При изучении в рамках различных дисциплин ИМ, а также в практике создания моделей неизбежно возникает вопрос о выборе среды разработки, адекватности систем моделирования: будут ли реализованы так же все функции моделируемой системы? Будут ли получены одинаковые результаты моделирования?
Вспомним Р. Шеннона [24]: «Подобно всем мощным средствам, существенно зависящим от искусства их применения, имитационное моделирование способно дать либо очень хорошие, либо очень плохие результаты».
Впособии на детально разработанных и реализованных средствами GPSS World и AnyLogic моделях объектов с разнородными протекающими в них процессами помимо основной цели также демонстрируется достаточная адекватность GPSS World и AnyLogic относительно результатов моделирования.
Взадачу автора не входило дать кардинальную оценку, какая система ИМ и в каких случаях предпочтительна. Читатель вправе сделать это самостоятельно, исходя из целей создания своей имитационной модели проектируемой системы и опираясь на приведенные в пособии результаты.
422
СПИСОК ЛИТЕРАТУРЫ
1.Боев В. Д. Об адекватности систем имитационного моделирования GPSS World и AnyLogic. Часть 1 // Прикладная информатика. № 6 (30). 2010. С. 69-82.
2.Боев В. Д. Об адекватности систем имитационного моделирования GPSS World и AnyLogic. Часть 2 // Прикладная информатика. № 4 (34). 2011. С. 50-62.
3.Боев В. Д. Некоторые аспекты адекватности систем имитационного моделирования дискретно-событийных процессов: Статья — В сб. докладов Пятой Всероссийской конференции «Имитационное моделирование. Теория и практика» ИММОД-2011 — СПб.: ЦТСиР,
2011.
4.Боев В. Д. Исследование адекватности GPSS World и AnyLogic при моделировании дискретно-событийных процессов: Монография — www.xjtek.ru, 2011.
5. Боев В. Д., Рыжиков Д. М. Имитационная модель процессов изготовления электромеханических модулей: Статья — В сб. докладов Пятой Всероссийской конференции «Имитационное моделирование. Теория и практика» ИММОД-2011 — СПб.: ЦТСиР, 2011.
6. Боев В. Д., Сыпченко Р. П. Компьютерное моделирование. Элементы теории и практики: Учеб. пособие. — СПб.: ВАС, 2009.
7. Боев В. Д., Сыпченко Р. П. Компьютерное моделирование: Курс лекций. — ИНТУИТ, 2010.
8. Боев В. Д., Кирик Д. И., Сыпченко Р. П. Компьютерное моделирование: Пособие по курсовому и дипломному проектированию. — СПб.: ВАС, 2011.
9. Боев В. Д. Моделирование систем. Инструментальные средства
GPSS World: Учеб. пособие. — СПб.: БХВ-Петербург, 2004. |
|
||||
10. Боев В. Д., Кирик Д. И., Ушкань А. О. |
Методика |
поддержки |
|||
руководства |
курсовым |
проектированием |
по |
дисциплине |
«Моделирование»: Статья — В сб. докладов Третьей Всероссийской конференции «Имитационное моделирование. Теория и практика» ИММОД-2007 — СПб.: ФГУП ЦНИИТС, 2007.
11. Боев В. Д., Ушкань А. О. Методика оценки качества обслуживания сети передачи данных: Статья — В сб. докладов Четвертой Всероссийской конференции «Имитационное моделирование. Теория и практика» ИММОД-2009 — СПб.: ЦТСиР, 2009.
12.Боев В. Д., Ушкань А. О. Вторичные модели оценки качества обслуживания сети передачи данных: Статья — В сб. докладов Четвертой Всероссийской конференции «Имитационное моделирование. Теория и практика» ИММОД-2009 — СПб.: ЦТСиР, 2009.
13.Боев В. Д. Концептуальное проектирование систем в AnyLogic и
GPSS World. — ИНТУИТ.ru, 2013, 436 с. ISBN 978-5-9556-0146-5.
423
14. Боев В. Д., Моисеев Р. А. Имитационная модель самоорганизующейся сети связи. — Инфокоммуникационные технологии в инновациях, медико-биологических и технических науках: сборник научных трудов Пятого международного научного конгресса «Нейробиотелеком-2012».
— СПб.: Политехника, 2012. С. 50-55.
15. Боев В. Д., Мякотин А. В., Тарасов О. М. Оптимизация топологии сети связи объединения (соединения) по минимальности суммарного расстояния между полевым подвижным узлом связи и корреспондирующими узлами // Информационный сборник № 6 Академии военных наук. — СПб., 2011.
16.Боев В. Д., Кирик Д. И., Сыпченко Р. П. Компьютерное моделирование: Пособие по курсовому и дипломному проектированию. — www.xjtek.ru, 2011.
17.Боев В. Д. Модель бизнес-процесса и особенности ее реализации в системе моделирования: Статья. — В сб. докладов конференции «Имитационное моделирование. Теория и практика» ИММОД-2005 — СПб.: ФГУП ЦНИИТС, 2005.
18.Боев В. Д. Решение в системе моделирования прямой и обратной задач: Статья. — В сб. докладов конференции «Имитационное моделирование. Теория и практика» ИММОД-2005 — СПб.: ФГУП ЦНИИТС, 2005.
19.Боев В. Д., Моисеев Р.А. Некоторые классы типовых объектов сетей связи в AnyLogic. Материалы Всероссийской конференции ИММОД-2013 — Казань, 2013.
20. Боев В. Д. Концептуальное проектирование систем в AnyLogic 7
иGPSS World. — ИНТУИТ.ru, 2013, 513 с.
21.Девятков В. В. Методология и технология имитационных исследований сложных систем: современное состояние и перспективы развития: Монография/ В.В. Девятков - М.: Вузовский учебник: ИНФРА-
М, 2013. - 448 с. ISBN 978-5-9558-0338-8
22.Девятков В. В. Мир имитационного моделирования: взгляд из России // Прикладная информатика. № 4 (34). 2011. С. 9-29.
23. Лоу А., Кельтон Д. Имитационное моделирование. — СПб.: Питер, БХВ-Петербург, 2004.
24.Скаткова Н. А., Воронин Д. Ю., Ткаченко К. С. Дискриминационный анализ систем имитационного моделирования с использованием версионно-модельной избыточности: Статья. — Радиоэлектронные компьютерные системы, 2010, № 7 (48).
25.Шеннон Р. Имитационное моделирование — искусство и наука. — М.: Мир, 1978.
26.Шрайбер Т. Моделирование на GPSS.— М.:Машиностроение, 1980.
27.The AnyLogic Company anylogic.ru.
424
ПРИЛОЖЕНИЕ 1
Объекты Библиотеки моделирования процессов
Поток заявок
|
Source |
Создает заявки. |
|
|
|
|
Sink |
Уничтожает поступающие заявки. |
|
Enter |
Вставляет уже существующие заявки в определен- |
|
|
ное место внутри процесса, заданного потоковой |
|
|
диаграммой. |
|
Exit |
Извлекает поступающие в объект заявки из процес- |
|
|
са, заданного потоковой диаграммой, позволяя |
|
|
пользователю самому решить, что следует сделать |
|
|
с этими заявками. |
|
Hold |
Блокирует/разблокировывает поток заявок на опре- |
|
|
деленном участке блок-схемы. |
|
Split |
Для каждой поступающей заявки объект создает |
|
|
заданное число новых заявок и пересылает их |
|
|
дальше. |
|
Combine |
Дожидается поступления двух заявок в пор- |
|
|
ты in1 и in2 (в произвольном порядке), а затем со- |
|
|
здает новую заявку и направляет ее на выходной |
|
|
порт. |
|
SelectOut |
Направляет входящие заявки в один из двух вы- |
|
put |
ходных портов в зависимости от выполнения за- |
|
|
данного условия. |
|
SelectOut |
Объект направляет входящие заявки в один из пяти |
|
put5 |
выходных портов в зависимости от выполнения |
|
|
заданных (детерминистических или заданных с |
|
|
помощью вероятностей) условий. |
|
Queue |
Хранит заявки в определенном порядке. Моделиру- |
|
|
ет очередь заявок, ожидающих приема объектами, |
|
|
следующими за данным в потоковой диаграмме. |
|
Match |
Синхронизирует два потока заявок путем нахожде- |
|
|
ния пар заявок, удовлетворяющих заданному кри- |
|
|
терию соответствия. |
|
MoveTo |
Перемещает заявку в новое место сети. |
|
Restricted |
Обозначает вход в область процесса, в которой од- |
|
AreaStart |
новременно может находиться ограниченное коли- |
|
|
чество заявок. |
|
Restricted |
Обозначает выход из области процесса, в которой |
|
AreaEnd |
может находиться только ограниченное количество |
|
|
заявок. |
425
Работа с содержимым заявки
Batch Преобразует заданное количество поступающих в
объект заявок в одну заявку-партию.
Unbatch Извлекает все заявки, содержащиеся в поступающей
заявке-партии и пересылает их далее. Сама заявкапартия при этом уничтожается.
Pickup Добавляет заявки к содержимому поступаю-
щей заявки-контейнера.
Dropoff Удаляет избранные заявки из поступающей заявки-
контейнера и пересылает их далее.
Assembler Осуществляет сборку одной новой заявки из опреде-
ленного числа заявок, пришедших из различных источников (до 5).
Обработка
Delay Задерживает заявки на заданный период времени.
Работа с ресурсами
|
ResourcePool |
Задает набор ресурсов, которые могут за- |
|
|
хватываться и освобождаться заявками. |
|
Seize |
Захватывает для заявки заданное количе- |
|
|
ство ресурсов определенного типа. |
|
Release |
Освобождает ранее захваченные заявкой |
|
|
ресурсы. |
|
Service |
Захватывает для заявки заданное количе- |
|
|
ство ресурсов, задерживает заявку, а затем |
|
|
освобождает захваченные ею ресурсы. |
|
ResourceTask |
Позволяет конфигурировать собственную |
|
|
задачу для ресурсов, которую нельзя задать |
|
|
стандартными параметрами аварий, обслу- |
|
|
живания, перерывов. |
|
ResourceTaskStart |
Задает начало отдельной диаграммы про- |
|
|
цесса, моделирующей процесс выполнения |
|
|
задачи ресурсами (обычно это процесс под- |
|
|
готовки ресурсов). |
|
ResourceTaskEnd |
Задает конец отдельной диаграммы процес- |
|
|
са, моделирующей процесс выполнения |
|
|
задачи для ресурсов (обычно это процесс |
|
|
завершения задачи). |
|
ResourceSendTo |
Посылает (перемещает) указанные движу- |
|
|
щиеся/переносные сетевые ресурсы из их |
|
|
текущего местоположения в заданный узел. |
|
|
|
|
|
426 |
Транспортировка
Conveyor Моделирует конвейер. Перемещает заявки по пути заданной длины с заданной скоростью (одинаковой для всех заявок), сохраняя их порядок и оставляя заданные промежутки между ними.
|
|
Измерение времени |
|
|
|
|
TimeMeasureStart |
TimeMeasureStart вместе |
|
|
с TimeMeasureEnd составляет пару объек- |
|
|
тов, позволяющую измерять время, прове- |
|
|
денное заявками между двумя точками диа- |
|
|
граммы процесса. Обычно с их помощью |
|
|
измеряется время нахождения заявки в си- |
|
|
стеме или длительность пребывания заявки |
|
|
в каком-то подпроцессе. |
|
|
TimeMeasureStart задает начальную точку, |
|
|
он запоминает момент времени, в который |
|
|
заявка проходит через этот объект. |
|
|
|
|
TimeMeasureEnd |
TimeMeasureEnd вычисляет для каждой |
|
|
поступившей в него заявки разность между |
|
|
текущим моментом времени и моментом, |
|
|
запомненным объектом TimeMeasureStart , |
|
|
на который ссылается этот объект. |
|
|
|
Моделирование зон хранения и складов
RackSystem Моделирует зону хранения, состоящую из набора стеллажей и проходов между ними (моделируемыми с помощью объектов PalletRack), предоставляющий централизованный доступ и управление этими стеллажами.
RackPick Извлекает заявку из ячейки стеллажа
(PalletRack) или зоны хранения (RackSystem) и
перемещает ее в заданный узел сети.
RackStore Помещает заявку в ячейку заданного стелла-
жа (PalletRack) или зоны хранения (RackSystem).
427
|
|
Дополнительные |
|
|
|
|
PML Settings |
Задает дополнительные настройки, относящи- |
|
|
еся к блокам Библиотеки Моделирования |
|
|
Процессов. |
|
|
|
|
Wait |
Этот блок похож на блок Queue с одним ис- |
|
|
ключением: он поддерживает изъятие в руч- |
|
|
ном режиме (нужно вызвать методы free(), |
|
|
или freeAll()). Этот блок нет определенного |
|
|
порядка (кроме случаев, когда включено вы- |
|
|
теснение). |
|
|
|
|
SelectOutputIn |
Вместе с блоком SelectOutputOut действуют |
|
|
как две половинки большого бло- |
|
|
ка SelectOutput с множеством выходов. |
|
|
|
|
SelectOutputOut |
Вместе с блоком SelectOutputIn действуют |
|
|
как две половинки большого бло- |
|
|
ка SelectOutput с множеством выходов. |
|
|
|
|
PlainTransfer |
Блок, в который Вы можете вписать код для |
|
|
действий заявки, когда она проходит через |
|
|
какое-то место диаграммы процесса. |
|
|
|
428