Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

мод сис / V.Boev-GPSSvsAnyLogic

.pdf
Скачиваний:
97
Добавлен:
11.04.2015
Размер:
9.01 Mб
Скачать

Рис. 5.23. Страница Основные эксперимента варьирования параметров

5.Щелкните кнопку Готово. Появится страница Основные панели Свойства (рис. 5.23).

6.Обратите внимание, что на странице Основные по сравнению с оптимизационным экспериментом отсутствуют опции ми-

нимизировать, максимизировать, Количество итераций. По-

следнее определяется AnyLogic в зависимости от диапазонов и шагов изменения параметров.

7.Задайте диапазон допустимых значений параметра doxDegCC1. Перейдите в таблице на рис. 5.23 на строку с этим параметром. Щелкните мышью в ячейке Тип. Выберите тип параметра, отличный от значения фиксированный. Параметр doxDegCC1

251

типа double, поэтому он может изменяться в диапазоне. Выберите Диапазон. В ячейку Мин введите минимальное значение 18, в ячейку Макс — максимальное значение 24, в ячейке Шаг укажите величину шага 0.5.

8.Задайте также остальные параметры, как на рис. 5.23.

9.Перейдите на страницу Репликации панели Свойства и

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

перименте, 4.

10.Вернитесь на страницу Основные и щелкните кнопку

Создать интерфейс.

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

12.Создайте интерфейс, показанный на рис. 5.24. Здесь вы видите график, который будет отображать значение коэффициента прибыли для каждой итерации.

13.Перетащите элемент График из палитры Статистика на диаграмму активного класса.

14.Щелкните Добавить набор данных.

15.Установите опцию Набор данных. Заголовок: KoefPribil. Набор данных: dataset. Установите Не обновлять автоматически.

16.Перейдите на страницу Дополнительные и установите: X:

260, Y: 100, Ширина: 510, Высота: 400, Цвет фона: Нет за-

ливки, Цвет границы: Нет линии.

17. Перейдите на страницу Внешний вид. Установите: Сме-

щение по Х: 40, Смещение по Y: 20, Ширина: 450, Высота:

330.

18.Также из палитры Статистика перетащите элемент Набор данных. Установите опцию Не обновлять автоматически.

19.Из палитры Основная перетащите элемент Простая пе-

ременная. На странице Основные панели Свойства в поле Имя:

введите valueOfKoefPribil. Установите Уровень доступа: public. Тип: double.

20. Щелкните диаграмму класса. Перейдите на страницу До-

полнительные панели Свойства и введите коды:

252

вполе Действие после прогона модели: valueOfKoefPribil = root.degyrstvo.koefPribil;

вполе Действие после итерации

dataset.add(getCurrentIteration(), valueOfKoefPribil);

21. Выполните ComSystem2/VarParComSystem.

Рис. 5.24. Интерфейс эксперимента варьирования параметров

253

22.Щелкните Запустить эксперимент. Начнет выполняться эксперимент. Во время эксперимента можно видеть на графике изменение значения коэффициента прибыли. Фрагмент результатов выполнения эксперимента Варьирование параметров приведен на рис. 5.25.

23.Эксперимент был приостановлен после 74 прогона, то есть на 74/4 → 19-й итерации.

Рис. 5.25. Фрагмент результатов выполнения эксперимента Варьирование параметров

254

24.Коэффициент прибыли составляет 0,954 при doxDegCC1 = 21,5, doxDegCC2 = 20,5, doxDegCC3 = 28, doxDegCC4 = 19, doxDegCC5 = 23.

25.Поскольку вы оставили значения КССР_1… КССР_5 и

Kol_master на Initial_data_PD, полученные в оптимизационном эксперименте (см. рис. 5.25), то значения коэффициентов прибыли в эксперименте варьирования параметрами близки к 0,949.

В обоих экспериментах мы использовали опцию Фиксирован-

ное начальное число (воспроизводимые прогоны), поэтому ге-

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

Если выбрана опция Случайное начальное число (уникаль-

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

Создайте оптимизационный эксперимент OptComSystem1, который будет отличаться от OptComSystem лишь выбранной опци-

ей Случайное начальное число (уникальные прогоны).

Запустите эксперимент. Вы получите следующие результаты. Наилучшее значение целевой функции — коэффициент прибыли

— равно 0,957. Получено оно на 172 итерации при следующих оптимальных значениях параметров: КССР_1=1, КССР_2=2, КССР_3=1, КССР_4=1, КССР_5=2, Kol_master=5. Таким образом, получен другой коэффициент прибыли, при этом другое значение оптимального параметра КССР_5=2.

Оптимизационный эксперимент OptComSystem1 выполнялся 4839,2 сек (80,66 мин). Это при том, что эксперимент проводился на компьютере с четырѐхядерным процессором и одновременно выполнялись четыре прогона модели.

5.1.9. Экспорт модели как Java апплета

Модели AnyLogic являются приложением Java, поэтому их можно запускать на большинстве современнных платформ, а также помещать на веб-сайты в виде апплетов.

Наличие такой возможности позволяет удалѐнным пользователям запускать интерактивные модели в веб-браузере при отсутствии AnyLogic или какого-либо другого программного обеспече-

255

ния. В этом случае на клиентской машине будут запускаться скопированные из сети файлы модели с такой же поддержкой интерактивной работы, что и при запуске из среды AnyLogic.

Экспортируйте модель ComSystem в виде Java апплета.

1.Щелкните в панели Проекты модель ComSystem и выбе-

рите Экспорт/В Java апплет (запускается в веб браузере) из контекстного меню.

2.Откроется диалоговое окно Экспорт модели (рис. 5.26). Щелчком мыши раскройте список Экспортировать эксперимент

ивыберите в нем Simulation. Настройки этого эксперимента будут применены к экспортируемой модели.

3.В поле Каталог для создаваемых файлов укажите ката-

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

Выбрать.

4.По умолчанию кнопки панели инструментов и другие элементы пользовательского интерфейса апплета будут на том языке,

который выбран в настройках вашего компьютера (Язык: <системный по-умолчанию>). При необходимости можно выбрать для интерфейса апплета другой язык из выпадающего списка Язык: (на данный момент AnyLogic поддерживает русский, английский, китайский, немецкий и итальянский языки).

Рис. 5.26. Диалоговое окно Экспорт модели

256

Рис. 5.27. Набор файлов Java апплет

5.Оставьте установленным флажок Открыть апплет моде-

ли в веб браузере.

6.Щелкните кнопку Готово. Откроется диалоговое окно, в котором будет сообщение об успешном завершении экспортиро-

вания модели ComSystem: Модель ComSystem была экспортирована в G:\BOEV.

7. Щелкните OK.

Модель, экспортированная как Java апплет, представляет собой набор следующих файлов (рис. 5.28):

файл .html, используемый для запуска Java апплета;

файл com.xj.anylogic.engine.jar исполняющего модуля AnyLogic;

скомпилированный .jar файл модели (model.jar);

.jar файлы и классы, необходимые для построения модели.

При публикации апплета модели в сети Интернет нужно предоставить доступ ко всем этим файлам из кода апплета. Это зна-

257

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

Запустите апплет модели, дважды щелкнув ComSystem.html. Результаты работы апплета модели показаны на рис. 5.28. Коэффициент прибыли равен 0,949 (см. п. 5.1.8.3).

258

5.2Модель в GPSS World

5.2.1.Состав модели в GPSS World

Как уже отмечалось, система связи представляет собой многофазную многоканальную систему массового обслуживания замкнутого типа с отказами и ожиданием.

Какие ограничения в системе?

1.Число мастеров-ремонтников в ремонтном подразделении.

2.Максимальное число одновременно находящихся СС на дежурстве.

3.Максимальное число резервных СС.

4.Общее число СС в системе.

Для моделирования двух первых ограничений целесообразно использовать МКУ, а для третьего и четвертого ограничений — транзакты.

Модель системы связи должна состоять из следующих сегментов:

описание арифметических выражений; сегмент имитации постановки на дежурство СС;

сегмент имитации функционирования системы дежурства СС; сегмент имитации функционирования ремонтного подразделе-

ния; сегмент задания времени моделирования и вычисления резуль-

татов моделирования; расчет ожидаемой прибыли;

сегмент переопределения блоков программы — изменения версий модели.

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

5.2.2. Программа GPSS-модели

Предполагается, что количество типов СС в системе предоставления услуг связи может изменяться от одного до максимального значения n2 _ . Программа модели, как уже омечалось при разра-

ботке AnyLogic-модели, построена для n2 _ 5 .

259

Для хранения результатов моделирования используются матрицы. В целях придания неизменности программы модели при варьировании количеством типов СС матрицы должны быть пронумерованы. Однако GPSS World при описании матриц командой MATRIX не позволяет вместо имени указывать число. Матрицы нужно вначале описать, дав им имена, а затем пронумеровать.

Результаты моделирования для одного типа СС хранятся в семи матрицах, например, для СС типа 1 (СС1) с идентификаторами:

Prib1 — матрица ожидаемой прибыли СС1; KPr1 — матрица коэффициентов прибыли СС1;

KZen1 — матрица коэффициентов использования СС1; DoxMax1 — матрица максимальных доходов от СС1; DoxDeg1 — матрица доходов от дежурства СС1; ZatrRem1 — матрица затрат на ремонт СС1; ZatrResSS1 — матрица затрат на резервные СС1.

Значит, аналогичных матриц будет тридцать пять. Да плюс еще матрица KRem коэффициентов использования мастеров - ремонтников. Именам этим тридцати шести матрицам даны номера.

Три матрицы для хранения суммарных результатов моделирования для СС всех типов не нумеровались:

Pribil — матрица суммарной прибыли;

SrKPrib — матрица средних коэффициентов прибыли СС всех типов;

SrKIsp — матрица коэффициентов использования СС всех типов.

Именам пяти МКУ СС1_, СС2_, СС3_, СС4_ и СС5_, имитирующим по типам СС, находящиеся на дежурстве, даны номера 1 … 5. Это позволяет сократить число блоков в модели за счет того, что вместо пяти (в данном варианте модели) сегментов имитации постановки на дежурство СС используется один сегмент.

Для записи исходных данных: количества СС всех типов (в том числе и резервных), среднего времени наработки на отказ и среднего времени восстановления по типам СС, дохода по типам от одного СС, находящегося на дежурстве, убытка по типам при отсутствии одного СС на дежурстве, стоимости по типам одного резервного СС используются функции KolSS, KollSSRes, NarOtk, SrVrRem, S1_, S2_, S3_ соответственно. Этот способ по сравнению со способом использования матриц для записи этих же данных позволяет сократить программу модели на двадцать пять строк.

260