Коллеги, спасибо за очень информативный и полезный курс. Прошёл три лекции. Столкнулся с проблемой, что обе модели не могут закончить расчёт по причине ограничения бесплатной версии "создано максимально допустимое число динамически создаваемых агентов (50000)". По скриншотам Лекции 2 видно, что да, модель создает гораздо больше 50000 агентов. В принципе, мне то и диплом не особо нужен. Но хотелось бы выполнить практические работы. Нет ли возможности откорректировать эту проблему? Или может я чего не так делаю? Еще раз спасибо за прекрасный курс! |
Модель функционирования направления связи
Постановка задачи
Направление связи состоит из двух каналов (основного и резервного) и общего входного буфера емкостью на Еmk сообщений.
На направление поступают два потока сообщений с экспоненциально распределенными интервалами времени, средние значения которых Т1 = 3 мин и Т2 = 4 мин. При нормальной работе сообщения передаются по основному каналу. Время передачи одного сообщения распределено по экспоненциальному закону со средним значением Т3 = 2 мин.
В основном канале происходят сбои через интервалы времени, распределенные по экспоненциальному закону со средним значением Т4 = 15 мин. Если сбой происходит во время передачи, то сообщение теряется. За время Т5 = 5 с запускается резервный канал, который передает сообщения, начиная с очередного. Время передачи одного сообщения распределено по экспоненциальному закону со средним значением Т6 = 3 мин.
Основной канал восстанавливается. Время восстановления канала подчинено экспоненциальному закону со средним значением Т7 = 2 мин. После восстановления резервный канал выключается и основной канал продолжает работу с очередного сообщения.
Необходимо разработать имитационную модель и провести исследование функционирования направления связи в течение 2 ч.
Определить:
- рациональную емкость накопителя;
- загрузку основного и резервного каналов связи;
- вероятности передачи сообщений потока 1 и потока 2;
- вероятность передачи сообщений направлением связи в целом.
Модель направления связи в GPSS World
В модели сообщения следует представлять транзактами, основной и резервный канал - одноканальными устройствами (ОКУ), входной буфер (накопитель) - списком пользователя. В списке пользователя следует использовать дисциплину обслуживания FIFO.
Для ввода исходных данных целесообразно использовать переменные пользователя. В этом случае можно проводить при необходимости встроенными средствами GPSS World дисперсионный и оптимизирующий эксперименты.
Так как сообщения имеют одинаковые приоритеты, то для моделирования ОКУ нужно использовать блоки SEIZE и RELEASE. Моделирование отказов основного канала нужно произвести блоками FUNAVAIL и FAVAIL, а не блоками PREEMPT и RETURN в режиме абсолютного захвата. Тогда статистика ОКУ не будет искажена.
Введем масштабирование: 1 единица модельного времени соответствует 1 с, то есть, например, время моделирования равно 2 часам, тогда 2*60*60 = 7200 единиц модельного времени. Аналогично Т1 = 120, Т2 =240 и т.д.
Декомпозиция системы и состав сегментов модели определяются разработчиком. Введем следующие сегменты:
- ввода исходных данных и описания арифметических выражений;
- имитации сообщений потока 1;
- имитации сообщений потока 2;
- имитации работы буфера и основного канала;
- имитации работы резервного канала;
- имитации выхода из строя основного канала;
- задания времени моделирования и вычисления результатов моделирования.
Ниже приводится программа модели.
; Модель функционирования направления связи ;Задание исходных данных Emk EQU 5 ; Емкость накопителя VrMod EQU 7200 ; Время моделирования T1 EQU 180 ; Среднее время поступления сообщений потока 1 T2 EQU 240 ; Среднее время поступления сообщений потока 2 T3 EQU 120 ; Среднее время передачи по OsnK T4 EQU 900 ; Средний интервал времени выхода из строя OsnK T5 EQU 10 ; Время включения Resk T6 EQU 180 ; Среднее время передачи по ResK T7 EQU 120 ; Среднее время восстановления OsnK ; Описание арифметических выражений ; Вероятность передачи сообщений потока 1 Ver1 VARIABLE (N$Term1+N$Term3)/N$Soob1 ; Вероятность передачи сообщений потока 2 Ver2 VARIABLE (N$Term2+N$Term4)/N$Soob2 ; Вероятность передачи сообщений потоков 1 и 2 Ver VARIABLE (V$Ver1+V$Ver2)/2 ; Сегмент имитации сообщений потока 1 GENERATE (Exponential(12,0,T1)) ; Генератор сообщений потока 1 Soob1 ASSIGN 1,1 ; Код 1 в P1 - сообщения потока 1 TRANSFER ,Nakop ; Направить на OsnK ; Сегмент имитации сообщений потока 2 GENERATE (Exponential(15,0,T2)) ; Генератор сообщений потока 2 Soob2 ASSIGN 1,2 ; Код 2 в P1 - сообщения потока 2 ; Сегмент имитации работы накопителя и OsnK Nakop GATE FV OsnK,KRes ;Доступен ли OsnK? Если нет, на Resk GATE NU OsnK,Spis ;Свободен ли OsnK? Если нет, в накопитель Prov3 SEIZE OsnK ; Занять OsnK ADVANCE (Exponential(11,0,T3)) ; Обслуживание RELEASE OsnK ; Освободить OsnK UNLINK Nak,Prov3,1 ; Вывод из накопителя одного транзакта на OsnK TEST E P1,1,Term2 ; Сообщение потока 1 или потока 2 передано по OsnK? Term1 TERMINATE ; Счет переданных сообщений потока 1 по OsnK Term2 TERMINATE ; Счет переданных сообщений потока 2 по OsnK ; Список пользователя Nak Spis TEST L CH$Nak,Emk,Term7 ; Есть ли место в накопителе? LINK Nak,FIFO ;Если да, поместить сообщение в накопитель Term7 TEST E P1,1,Term6 ; Сообщение потока 1 или потока 2 было потеряно? Term5 TERMINATE ; Счет потерянных сообщений потока 1 Term6 TERMINATE ; Счет потерянных сообщений потока 2 ; Сегмент имитации работы Resk KRes GATE NU ResK,Spis ; Свободен ли Resk? Нет, сообщение в накопитель TEST E Kont,1,Prov1 ; Включить ResK ADVANCE T5 ; Включение Resk SAVEVALUE Kont,0 Prov1 SEIZE ResK ; Занять Resk ADVANCE (Exponential(12,0,T6)); Передача RELEASE ResK ; Освободить Resk GATE FNV OsnK,Prov2 ; Доступен ли OsnK? UNLINK Nak,Prov1,1 ; Если нет, из буфера сообщение на Resk Prov2 TEST E P1,1,Term4 ; Сообщение потока 1 или 2 передано по ResK? Term3 TERMINATE ; Счет переданных сообщений потока 1 Term4 TERMINATE ; Счет переданных сообщений потока 2 ; Сегмент имитации выхода из строя OsnK GENERATE ,,,1 Term8 ADVANCE (Exponential(12,0,T4)); Расчет времени до следующего отказа FUNAVAIL OsnK ; Выход из строя OsnK SAVEVALUE Kont,1 ASSIGN 1,(Exponential(12,0,T7)); Расчет времени восстановления OsnK ADVANCE P1 ; Имитация восстановления OsnK SAVEVALUE VrOtk+,P1 ; Учет времени восстановления OsnK FAVAIL OsnK ; OsnK в доступное состояние UNLINK Nak,Prov3,1 ; Сообщение на OsnK TRANSFER ,Term8 ; Сегмент задания времени моделирования ; и вычисления результатов моделирования GENERATE VrMod TEST L X$Prog,TG1,Met3 SAVEVALUE Prog,TG1 Met3 TEST E TG1,1,Met4 SAVEVALUE Ver1,V$Ver1 ; Вероятность передачи сообщений потока 1 SAVEVALUE Ver2,V$Ver2 ; Вероятность передачи сообщений потока 2 SAVEVALUE Ver,V$Ver ; Вероятность передачи сообщений направлением связи SAVEVALUE VOtk,(1-V$Ver) ; Вероятность отказа в передаче сообщений SAVEVALUE VerOtk,((AC1-X$VrOtk)/AC1) ; Вероятность безотказной работы OsnK Met4 TERMINATE 1 START 10000
Для определения вероятности безотказной работы суммируется в ячейке X$VrOtk время отказов направления связи, которое затем вычитается из абсолютного модельного времени AC1, а полученная разность делится на AC1.
Модель направления связи в AnyLogic
Направление связи представляет собой систему массового обслуживания разомкнутого типа с ожиданием и с отказами из-за ограниченной ёмкости входного буфера. А также с выходами из строя (временного не функционирования и восстановления) основного канала.
Поскольку методика построения модели в AnyLogic существенным образом отличается от методики построения в GPSS World, выделим в модели функционирования направления связи следующие сегменты:
- исходные данные;
- источники сообщений;
- буфер, основной и резервный каналы связи;
- имитатор отказов основного канала;
- результаты моделирования.
Исходные данные
Для ввода исходных данных используем элементы Параметр.
- Выполните команду Файл/Создать/Модель на панели инструментов.
- В поле Имя модели диалогового окна Новая модель введите Направление связи. Выберите каталог, в котором будут сохранены файлы модели. Щёлкните кнопку Готово.
- Полагаем вначале, что все сегменты модели мы сможем разместить так, что они будут видны в ходе работы модели. В Палитре выделите Презентация.
- Перетащите элемент Скругленный прямоугольник для размещения элементов исходных данных.
- На странице Местоположение и размер панели Свойства: введите: X: 630, Y: 20, Ширина: 320, Высота: 280.
- Перетащите элемент text и на странице Текст панели Свойства вместо text введите Исходные данные.
- В Палитре выделите Основная. Перетащите элементы Параметр на элемент с именем Исходные данные. Разместите их и дайте имена так, как показано на Рис. 3.1. Значения свойств установите согласно Табл. 3.1.
Параметр | ||
---|---|---|
Имя | Тип | Значение по умолчанию |
интер_сообщ_потока1 | double | 180 |
интер_сообщ_потока2 | double | 240 |
ёмкость_буфера | int | 5 |
время_передачи_осн_кан | double | 120 |
время_передачи_рез_кан | double | 180 |
время_вкл_рез_кан | double | 10 |
время_нараб_отказ_осн_кан | double | 900 |
время_восстан_осн_кан | double | 120 |
Вывод результатов моделирования
Для вывода результатов моделирования используем элемент Переменная.
- В Палитре выделите Презентация. Перетащите элемент Скругленный прямоугольник для размещения элементов Переменная.
- На странице Местоположение и размер панели Свойства: введите: X: 470, Y: 330, Ширина: 490, Высота: 320.
- Перетащите элемент text и на странице Текст панели Свойства вместо text введите Результаты моделирования.
- В Палитре выделите Основная. Перетащите элементы Переменная. Разместите их и дайте им имена так, как показано на Рис. 3.2. Тип всех переменных double, кроме переменной - текущая ёмкость буфера. Её тип - int.
Построение событийной части модели
В событийную часть модели, к построению которой мы приступаем, включим указанные ранее три сегмента (кроме исходных данных и результатов моделирования).
- В Палитре выделите Презентация. Перетащите три элемента Прямоугольник и разместите так, как на Рис. 3.3.
- На странице Местоположение и размер панели Свойства: для размещения объектов имитации источников сообщений введите: X: 20, Y: 20, Ширина: 150, Высота: 190.
- Для размещения объектов имитации буфера, основного и резервного каналов введите: X: 190, Y: 20, Ширина: 370, Высота: 200.
- Для размещения объектов имитации отказов основного канала введите: X: 20, Y: 350, Ширина: 380, Высота: 130.
- Перетащите также три элемента text и на странице Текст панели Свойства вместо text каждого элемента введите названия, показанные на Рис. 3.3.