Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / Compyuternoe_modelirovanie_v_AnyLogic_7_Boev_VD.pdf
Скачиваний:
225
Добавлен:
12.02.2018
Размер:
8.72 Mб
Скачать

ГЛАВА 11. РЕШЕНИЕ ОБРАТНЫХ ЗАДАЧ В ANYLOGIC

Решение обратных задач в GPSS World подробно рассмотрено в [ ]. Приступим к решению этих же задач в AnyLogic.

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

1.В главе 1 была сохранена модель Сервер. Откройте её и сохраните с именем Сервер Обратная задача.

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. Простой эксперимент Сервер Обратная задача

380

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

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

1.В панели Проект щёлкните правой кнопкой мыши элемент модели и из контекстного меню выберите Создать эксперимент.

2.В появившемся диалоговом окне из списка Тип экспери-

мента: выберите Варьирование параметров.

3.Оставьте имя эксперимента, рекомендованное системой.

4.Щёлкните кнопку Готово. Появится панель Свойства

(рис. 11.2). Установите свойства согласно рис. 11.2.

Рис. 11.2. Страница Эксперимента варьирования параметров

381

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

5. На странице Действия Java в поле Код инициализации эксперимента: введите data.reset();. А в поле Действие по-

сле прогона модели: data.add(time()/коэффициент);

6. В эксперименте Варьирование параметров, как вы помните, в отличие от эксперимента Оптимизация интерфейс создает пользователь.

7.Создайте интерфейс (рис. 11.3). Начните с нажатия Со-

здать интерфейс (см. рис. 11.2).

8.На рис. 11.3 вы видите гистограмму, которая будет отображать время выполнения группы запросов. Перетащите элемент Гистограмма из палитры Статистика на диаграмму агента Main. На странице Основные установите флажок Отображать среднее.

Оставьте флажок Отображать плотность вероятности.

9.Щёлкните Добавить данные.

10.Установите Заголовок: Время выполнения. Данные:

data. Цвет плотности вер-ти: silver. Цвет линии среднего: crimson. Оставьте Не обновлять данные автоматически.

11.Перетащите элемент Данные гистограммы. В поле Имя: введите data. Остальные свойства оставьте установленными по умолчанию.

12.Добавьте элемент text и на странице Текст введите Сред-

нее значение:.

382

13.Добавьте второй элемент text. Оставьте имя, предложенное системой. На странице Текст: введите data.mean().

14.Построение Эксперимента варьирование параметров

завершено. Запустите его. При наличии ошибок, устраните их. Далее проведём по четыре эксперимента в AnyLogic и GPSS

World. Результаты одного из экспериментов при количестве запросов 2916 показаны на рис. 11.4. Результаты всех экспериментов сведены в табл. 11.1.

Для первого эксперимента исходные данные были введены в

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

291, а значение по умолчанию параметра коэффициент учёта дробной части — на 10 на диаграмме простого эксперимента.

По результатам экспериментов видно, что по мере учёта дробной части разница между средними временами обработки группы запросов сервером, полученными в GPSS-модели и AnyLogic-модели уменьшается: 1 =192,101 4 =1,056 .

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

383

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 11.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Параметры и показатели

GPSS World

AnyLogic6

 

 

 

 

 

 

 

AnyLogic7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эксперимент 1

 

 

 

 

 

 

 

 

 

Количество запросов

 

 

 

 

 

 

 

 

29

 

 

 

 

 

 

 

 

 

29

 

29

Коэффициент учёта

дробной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

части

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

1

Машинное время выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

модели, c

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

1,3

 

6,7

Модельное время выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

группы запросов

 

 

 

 

 

 

 

 

3589,688

 

 

 

 

 

 

 

 

3781,755

 

3789,765

11 =

 

3589,688 3781,789

 

 

 

=192,101, 12

=

 

 

 

3781,789 3600

 

=181,789

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эксперимент 2

 

 

 

 

 

 

 

 

 

Количество запросов

 

 

 

 

 

 

 

 

291

 

 

 

 

 

 

 

 

 

291

 

291

Коэффициент учёта

дробной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

части

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

10

 

10

Машинное время выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

модели, c

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

 

7

 

15

Модельное время выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

группы запросов

 

 

 

 

 

 

 

 

3596,113

 

 

 

 

 

 

 

 

3614,877

 

3616,752

21 =

 

3596,113 3614,877

 

= 20,639, 22

=

 

 

 

3600 3614,877

 

=10,877

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эксперимент 3

 

 

 

 

 

 

 

 

 

Количество запросов

 

 

 

 

 

 

 

 

2916

 

 

 

 

 

 

 

 

 

2916

 

2916

Коэффициент учёта

дробной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

части

 

 

 

 

 

 

 

 

100

 

 

 

 

 

 

 

 

 

100

 

100

Машинное время выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

модели

 

 

 

 

 

 

 

 

4 мин 48 c

44 c

 

 

 

 

 

 

 

201,4 с

Модельное время выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

группы запросов

 

 

 

 

 

 

 

 

3603,039

 

 

 

 

 

 

 

 

3604,676

 

3604,718

31 =

 

3603,089 3604,718

 

 

 

=1,629, 32

=

 

3600 3604,718

 

= 4,718

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эксперимент 4

 

 

 

 

 

 

 

 

 

Количество запросов

 

 

 

 

 

 

 

 

29161

 

 

 

 

 

 

 

 

 

29161

 

29161

Коэффициент учёта

дробной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

части

 

 

 

 

 

 

 

 

1000

 

 

 

 

 

 

 

 

 

1000

 

1000

Машинное время выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

модели

 

 

 

 

 

 

 

 

40 мин 48 c

11 мин 17 с

 

 

 

 

 

 

 

1186,7 с

Модельное время выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

группы запросов

 

 

 

 

 

 

 

 

3604,526

 

 

 

 

 

 

 

 

3603,182

 

3603,470

41 =

 

3604,526 3603,470

 

=1,056, 42

=

 

3600 3603,470

 

= 3,47

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

384