Опубликован: 15.02.2013 | Уровень: для всех | Доступ: платный
Лекция 12:

Решение обратных задач в AnyLogic

Решение обратных задач средствами GPSS World было рассмотрено в главах "Модель обработки запросов сервером" и "Модель процесса изготовления в цехе деталей" . Теперь приступим к решению этих же задач в AnyLogic.

Определение среднего времени обработки группы запросов сервером

  1. В п. 1.2.6 была сохранена модель простой эксперимент с именем Сервер Обратная задача. Откройте её.
  2. Удалите из модели объекты презентации и вывода статистики. Она должна иметь объекты, показанные на рис. 11.1.
  3. Добавьте два элемента Параметр и один элемент Простая переменная. Дайте имена, как на рис. 11.1.
  4. Тип элемента количествоЗапросов int. В поле Значение по умолчанию: введите 29. Это целая часть количества обработанных запросов при решении прямой задачи.
  5. Элемент коэффициент как и в GPSS-модели предназначен для учёта дробной части количества обработанных запросов (см. п. 1.3). Его тип double. Введите в поле Значение по умолчанию: 1.
  6. Тип элемента времяВыполнения double.
  7. Выделите блок sink и в поле Действие при входе: введите Java код:
    if( sink.in.count() == количествоЗапросов ){
      времяВыполнения = time();
      stopSimulation();
    }
Простой эксперимент Сервер Обратная задача

Рис. 11.1. Простой эксперимент Сервер Обратная задача

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

Для выполнения заданного количества прогонов создайте эксперимент варьирования параметров.

  1. В панели Проект щелкните правой кнопкой мыши элемент модели и из контекстного меню выберите Создать эксперимент.
  2. В появившемся диалоговом окне из списка Тип эксперимента: выберите Варьирование параметров.
  3. В поле Имя оставьте имя эксперимента, рекомендованное системой.
  4. Щелкните кнопку Готово. Появится страница Основные панели Свойства (рис. 11.2). Установите свойства согласно рис. 11.2.
  5. Перейдите на страницу Дополнительные. В поле Код инициализации эксперимента: введите data.reset();. А в поле Действие после прогона модели:
    data.add( time()/коэффициент );
    Страница Основные Эксперимента варьирования параметров

    увеличить изображение
    Рис. 11.2. Страница Основные Эксперимента варьирования параметров
    Интерфейс Эксперимента варьирования параметров

    Рис. 11.3. Интерфейс Эксперимента варьирования параметров
  6. В эксперименте Варьирование параметров, как вы помните, в отличие от эксперимента Оптимизация интерфейс создает пользователь.
  7. Создайте интерфейс, показанный на рис. 11.3. Здесь вы видите гистограмму, которая будет отображать время выполнения группы запросов. Начните с нажатия Создать интерфейс.
  8. Перетащите элемент Гистограмма из палитры Статистика на диаграмму активного класса. На странице Основные установите флажок Отображать среднее. Оставьте флажок Отображать плотность вероятности.
  9. Щёлкните Добавить данные.
  10. Установите Заголовок: Время выполнения. Набор данных: data. Цвет плотности вер-ти: silver. Цвет линии среднего: crimson. Установите Не обновлять автоматически.
  11. Перетащите элемент Данные гистограммы. В поле Имя: введите data. Остальные свойства оставьте установленными по умолчанию.
  12. Добавьте элемент text и введите Среднее значение:.
  13. Добавьте второй элемент text. Оставьте имя, предложенное системой. Перейдите на страницу Динамические и в поле Текст: введите data.mean().
  14. Построение Эксперимента варьирование параметров завершено. Запустите его. При наличии ошибок, устраните их.

Далее проведём по четыре эксперимента в AnyLogic и GPSS World. Результаты одного из экспериментов при количестве прогонов 29,16 показаны на рис. 11.4. Результаты всех экспериментов сведены в табл. 11.1.

Для первого эксперимента исходные данные были введены в ходе предыдущих построений. Для экспериментов 2…4 данные вводятся из табл. 11.1. Например, для второго эксперимента значение по умолчанию параметра количествоЗапросов заменяется на 291, а значение по умолчанию параметра коэффициент учёта дробной части - на 10 на диаграмме простого эксперимента.

Вариант результатов решения обратной задачи

Рис. 11.4. Вариант результатов решения обратной задачи
Таблица 11.1.
Параметры и показатели Системы моделирования
GPSS World AnyLogic
Эксперимент 1
Количество запросов 29 29
Коэффициент учёта дробной части 1 1
Машинное время выполнения модели 2 cек 1,3 cек
Время выполнения группы запросов 3589,688 3781,755
\Delta_{1}=\mid 3589,688-3781,755\mid=192,067
Эксперимент 2
Количество запросов 291 291
Коэффициент учёта дробной части 10 10
Машинное время выполнения модели 24 cек 7 cек
Время выполнения группы запросов 3596,113 3614,877
\Delta_{2}=\mid 3596,113-3614,877\mid=18,764
Эксперимент 3
Количество запросов 2916 2916
Коэффициент учёта дробной части 100 100
Машинное время выполнения модели 4 мин 48 cек 44 cек
Время выполнения группы запросов 3603,039 3604,676
\Delta_{3}=\mid 3603,089-3604,676\mid=1,637
Эксперимент 4
Количество запросов 29161 29161
Коэффициент учёта дробной части 1000 1000
Машинное время выполнения модели 40 мин 48 cек 11 мин 17 сек
Время выполнения группы запросов 3604,526 3603,182
\Delta_{4}=\mid 3604,526-3603,182\mid=1,344

По результатам экспериментов видно, что по мере учёта дробной части разница между средними временами обработки группы запросов сервером, полученными в GPSS-модели и AnyLogic-модели уменьшается: \Delta_1=192,067…\Delta_4=1,344. При этом среднее время в обеих моделях приближается к времени моделирования (3600) в прямой задаче. То что оно приближается "справа", объясняется определением одного прогона модели обработкой заданного количества запросов, а не временем моделирования.

Замечание. При проведении экспериментов время выполнения группы запросов, полученное в AnyLogic-модели, может отличаться, так как используются уникальные прогоны (см. рис. 11.2).

Определение среднего времени изготовления деталей

В "Модель процесса изготовления в цехе деталей" мы рассмотрели методику решения обратной задачи в GPSS World и прямой задачи в AnyLogic. Теперь решим обратную задачу и в AnyLogic.

  1. Откройте модель Изготовление_в_цехе_деталей. Сохраните с именем Изготовление_в_цехе_деталей Обратная задача.
  2. Добавьте на диаграмму класса Main два элемента Параметр и один элемент Простая переменная.
  3. Тип параметра КоличествоДеталей int. В поле Значение по умолчанию: введите 9017. Это целая и дробная части количества изготовленных деталей при решении прямой задачи, записанные как целое число.
  4. Параметр коэффициент как и в GPSS-модели предназначен для учёта дробной части количества обработанных запросов. Его тип double. Введите в поле Значение по умолчанию: 1000.
  5. Тип элемента времяИзготовления double.
  6. Перейдите на диаграмму Kontrol. Выделите блок sink сегмента Склад готовых изделий и в поле Действие при входе: введите вместо имеющегося там Java код:
    if( склГотДет.in.count() == get_Main().количествоДеталей ){
      get_Main().времяИзготовления=time();
      stopSimulation();
    }

Для выполнения заданного количества прогонов также как и в предыдущем случае создайте эксперимент варьирования параметров.

  1. В панели Проект щелкните правой кнопкой мыши элемент модели и из контекстного меню выберите Создать эксперимент.
  2. В появившемся диалоговом окне из списка Тип эксперимента: выберите Варьирование параметров.
  3. В поле Имя оставьте имя эксперимента, рекомендованное системой.
  4. Щелкните кнопку Готово. Появится страница Основные панели Свойства (см. рис. 11.2). Установите свойства согласно рис. 11.2, кроме количества прогонов. В соответствующее поле введите 16641.
  5. Перейдите на страницу Дополнительные.
  6. В поле Код инициализации эксперимента: введите
    data.reset();
    А в поле Действие после прогона модели:
    data.add( time()/коэффициент );
  7. Перейдите на страницу Модельное время. В поле Остановить выберите из списка Нет.
  8. Постройте интерфейс эксперимента также как и предыдущей модели (п. 11.1), выполнив пп. 7…13.
  9. Построение Эксперимента варьирование параметров завершено. Запустите его. При наличии ошибок, устраните их.

При построении мы ввели данные для проведения эксперимента с учётом всех трёх знаков после запятой.

Проведём эксперимент в AnyLogic. Результат решения обратной задачи показан на рис. 11.5.

Среднее время изготовления заданного количества деталей

Рис. 11.5. Среднее время изготовления заданного количества деталей
Таблица 11.2.
Параметры и показатели Системы моделирования
GPSS World AnyLogic
Количество деталей 9017 9017
Коэффициент учёта дробной части 1000 1000
Машинное время выполнения модели 2 час 23 мин 48 сек 30 мин 54 cек
Время изготовления деталей 7,275 час 7,286 час
\Delta_{1}=\mid 7,275-7,286\mid=0,011

В табл. 11.2 сведены результаты экспериментов решения обратной задачи в GPSS World и AnyLogic. Они свидетельствуют об их адекватности, так как \Delta_1=0,011. Если, конечно, исследователя устраивает такое \Delta_1.

Но машинное время выполнения модели в GPSS World примерно в пять раз больше, чем в AnyLogic, и равно 2 час 23 мин 43 сек.

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

Замечание. Таким же способом, то есть заданием количества прогонов в AnyLogic как и в GPSS World можно решать и прямые задачи. Следует иметь в виду, что при таком проведении эксперимента доступна только та информация, вывод которой будет вами организован на интерфейс эксперимента.

Заключение

Целью настоящего учебного пособия являлось приобретение навыков разработки постановок задач на концептуальное проектирование, освоение техники ИМ, планирования, проведения и обработки данных компьютерных экспериментов для принятия проектных решений. ИМ выбрано потому как мировая практика научных исследований свидетельствует о том, что методы ИМ занимают около 70 % в общем объеме исследовательского инструментария. В настоящее время в ИМ выделяют три подхода: системной динамики, дискретно-событийный и агентный. Из этих подходов в рамках указанных дисциплин изучается дискретно-событийный подход, обеспечивающий универсальность и эффективность ИМ. Он ориентирован на исследование широкого класса сложных систем, представимых в виде систем массового обслуживания, в том числе и систем военного назначения.

При изучении в рамках различных дисциплин ИМ, а также в практике создания моделей неизбежно возникает вопрос о выборе среды разработки, адекватности систем моделирования: будут ли реализованы так же все функции моделируемой системы? Будут ли получены одинаковые результаты моделирования?

Вспомним Р. Шеннона [24]: "Подобно всем мощным средствам, существенно зависящим от искусства их применения, имитационное моделирование способно дать либо очень хорошие, либо очень плохие результаты".

В пособии на детально разработанных и реализованных средствами GPSS World и AnyLogic моделях объектов с разнородными протекающими в них процессами помимо основной цели также демонстрируется достаточная адекватность GPSS World и AnyLogic относительно результатов моделирования.

В задачу автора не входило дать кардинальную оценку, какая система ИМ и в каких случаях предпочтительна. Читатель вправе сделать это самостоятельно, исходя из целей создания своей имитационной модели проектируемой системы и опираясь на приведенные в пособии результаты.

Алексей Гроссман
Алексей Гроссман

Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио.

Елена Блинаева
Елена Блинаева