- •Глава 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
10. Когда вы захотите остановить выполнение модели, Щёлк-
ните мышью кнопку Прекратить выполнение панели управления окна презентации.
11. Для предотвращения остановок модели по ранее указанной ошибке — недостаточной ёмкости объекта queue — мы увеличили ёмкость объекта queue. Однако можно было бы изменять среднее время имитации поступления запросов объектом source и среднее время обработки запросов сервером, т. е. среднее время задержки объекта delay, оставляя неизменной длину очереди и добиваясь безошибочной работы модели. Конечно, при изменении свойств объектов модели нужно обязательно исходить из целей её построения. Мы же пока не выполнили условий, указанных в постановке задачи, поэтому к выполнению их вернемся позже.
1.4. Создание анимации модели
Можно было бы наблюдать, анализировать и интерпретировать работу запущенной модели с помощью визуализированной диаграммы процесса (см. рис. 1.12, 1.14).
Однако удобнее в ряде случаев иметь более наглядную визуализацию с помощью анимации. В этой задаче мы хотим создать визуализированный процесс поступления запросов на сервер и обработки запросов сервером.
Так как в данном случае нас не интересует конкретное расположение объектов в пространстве, то мы можем просто добавить схематическую анимацию интересующих нас объектов — сервер и очередь запросов к нему.
Анимация модели рисуется в той же диаграмме (в графическом редакторе), в которой задается и диаграмма моделируемого процесса.
Нарисуйте прямоугольный узел, который будет обозначать на анимации сервер.
1.Откройте палитру Разметка пространства (рис. 1.15).
Чтобы открыть какую-либо палитру, нужно щелчком из Проекты перейти в Палитра и щёлкнуть по иконке этой палитры.
2.Палитра Разметка пространства (рис. 1.15) содержит в качестве элементов различные примитивные фигуры, используемые для рисования презентаций моделей. Это путь, прямоугольный узел, многоугольный узел, точечный узел, аттрактор, стеллаж, масштаб.
24
Рис. 1.15. Палитра Разметка пространства
3. Выделите элемент Прямоугольный узел и перетащите его на диаграмму класса активного объекта. Поместите элемент Прямоугольный узел так, как показано на рис. 1.16.
Рис. 1.16. Элемент Прямоугольный узел на диаграмме
4.Давайте сделаем так, чтобы цвет этого прямоугольного узла будет меняться в зависимости от того, обрабатывет ли сервер в данный момент времени запрос или нет.
5.Для этого выделите нарисованную нами фигуру на диаграмме. Перейдите на страницу Внешний вид панели свойств
(рис. 1.17).
25
Если нужно, чтобы по ходу моделирования то или иное свойство фигуры меняло своё значение в зависимости от каких-то условий, то можете ввести в поле соответствующего динамического свойства выражение, которое будет постоянно вычисляться заново при выполнении модели.
Возвращаемый результат вычисления будет присваиваться текущему значению этого свойства. Мы хотим, чтобы во время моделирования менялся цвет нашей фигуры, поэтому щёлкните в поле Цвет заливки: по стрелке, выберите Динамическое зна-
чение и введите там следующую строку: delay.size()>0?red:green
Рис. 1.17. Установлено динамическое значение цвета заливки
Здесь delay — это имя нашего объекта delay. Функция size() возвращает число запросов, обслуживаемых в данный момент времени. Если сервер занят, то цвет кружка будет красным, в противном случае — зелёным.
6. Нарисуйте путь, который будет обозначать на анимации очередь к серверу (рис. 1.18). Чтобы нарисовать путь, сделайте
двойной щелчок мышью по элементу Путь палитры Разметка пространства, чтобы перейти в режим рисования. Теперь вы мо-
26
жете рисовать путь точка за точкой, последовательно щелкая мышью в тех точках диаграммы, куда вы хотите поместить вершины пути. Чтобы завершить рисование, добавьте последнюю точку пути двойным щелчком мыши.
Очень важно, какую точку пути вы создаете первой. Заявки будут располагаться вдоль нарисованного вами пути в направлении от конечной точки к начальной точке. Поэтому обязательно начните рисование пути слева и поместите рядом с сервером конечную точку пути, которая будет соответствовать в этом случае
началу очереди.
Рис. 1.18. Путь на диаграмме процесса
7. Теперь мы должны задать созданные анимационные объекты в качестве анимационных фигур объектов диаграммы нашего процесса. Задайте путь в качестве фигуры анимации очереди. Выделите объект queue. На странице свойств объекта queue в поле Место заявок: выберите из выпадающего списка path
(рис. 1.19).
8. Задайте прямоугольный узел в качестве фигуры анимации сервера. Выделите объект delay. Введите в поле Место заявок: из
выпадающего списка имя нашего прямоугольного узла: node
(рис. 1.20).
27
Рис. 1.19. Задание пути в качестве фигуры анимации очереди
Рис. 1.20. Задание прямоугольного узла в качестве фигуры анимации сервера
28