Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Имитационный эксперимент в условиях неопределенности




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

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


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

Вектор входных случайных значений следует, конечно, выбирать в соответ­ствии с их вероятностными распределениями, известными или предпола­гаемыми. Очевидно, что любой результирующий показатель исследуемой модели в этом случае тоже будет величиной случайной с некоторым зако­ном распределения, характеристики которого можно определить в результа­те многократного выполнения имитационного эксперимента (рис. 10.5).

Оба блока — блок генерации случайных реализаций входных величин и блок анализа статистических характеристик случайных реализаций выход­ных характеристик модели — можно включить в имитационную модель. Тогда ее можно считать просто преобразователем случайных величин (рис. 10.6).


В AnyLogic включено 37 генераторов случайных величин с наиболее часто встречающимися вероятностными распределениями: равномерным, экспо­ненциальным, Бернулли, биномиальным и т. д. Все их можно найти в Руко­ водстве пользователя AnyLogic.

Все классы вероятностных распределений унаследованы от класса Distr. Они называются DistrExponential, DistrChi, DistrNormal И Т. Д. Класс Distr имеет только один абстрактный метод get (), возвращающий случай­ное значение, сгенерированное по этому закону распределения. Пользова­тель может определить свое вероятностное распределение, для чего нужно создать свой класс распределения и унаследовать его от базового класса Distr. Методы классов распределений подробно описаны в Справочнике классов AnyLogic.

У класса Activeobject есть унаследованные от класса Func статические ме­тоды, которые идентичны описанным ранее методам классов вероятностных распределений. Поэтому в активном объекте достаточно просто вызвать метод, например exponential(0.6) или uniform(-l, 1), который вернет соответствующее случайное значение.

Примером модели, на входе которой генерируется случайная величина и случайные же величины получаются на выходе, является модель операци­онного зала банка, рассматривавшаяся в главе 6. Другая модель этого типа — знакомая нам модель ErlangProblem (глава 9). На ее входе генерируются случайные интервалы, через которые, в соответствии с предположением, будут поступать телефонные вызовы на автоматическую телефонную стан­цию. Случайными здесь являются также генерирующиеся автоматически времена обслуживания каждого телефонного вызова. Выходом этой модели является величина прибыли Benefit, которая тоже является случайной ве­личиной.

AnyLogic включает средства, позволяющие выполнять анализ случайных ве­личин и визуализировать их распределения. Анализ случайной величины в AnyLogic легко выполняется, если эта величина представлена как "набор данных". Для наборов данных автоматически подсчитываются их стандарт­ные характеристики: количество реализаций, среднее, минимальное и мак­симальное значения, дисперсия, среднеквадратичное отклонение и довери­тельный интервал для среднего значения. Мы рассматривали использование наборов данных в главе 6.

Для визуализации случайной величины наиболее употребительным средст­вом является гистограмма. Гистограмма представляет собой совокупность смежных прямоугольников, построенных на одной прямой; площадь каждо­го из прямоугольников пропорциональна частоте попадания значения слу­чайной величины в интервал, на котором построен данный прямоугольник. AnyLogic содержит встроенные средства для быстрого построения гисто­грамм случайных величин. Рисунок 10.7. показывает гистограммы входной


случайной величины (интервалов времени между приходящими в систему телефонными вызовами) и выходной случайной величины (дохода) для мо­дели предоставления сервиса автоматической телефонной связи. Модель Erlangproblem3, в которую включены эти гистограммы, находится в папке ModelExamples\Part III. Рассмотрим, как строить эти гистограммы.

Библиотека графики для бизнеса (Business Graphics Library) содержит классы Histogram simple и Histogram Smart для построения гистограмм. Рассмот­рим первый из них.

Для построения гистограммы распределения интервалов входных звонков, сначала следует ввести в модель новую анимацию, и в поле анимации вве­сти прямоугольник, который по умолчанию получит имя rectangle. Гисто­грамма будет отображаться при работе модели в пределах этого прямоуголь­ника. В поле редактора модели введем методом drug-and-drop один экземпляр класса Histogram simple и поместим его в любое место поля редактора. В окне его свойств можно установить имя (назовем этот экземп­ляр input_call_intervals) и другие параметры. В поле значений параметра placeholder этого объекта должно стоять имя того графического объекта,


в пределах которого будет строиться гистограмма. С помощью выпадающего меню вставим в это поле имя animation.rectangle. Для параметра updateMode (метод обновления) следует в выпадающем меню выбрать один из трех возможных вариантов добавления значений случайной величинины в накопитель, связанный с этой гистограммой. Выберем метод обновления MANUAL - USE add FUNCTION. Это означает, что каждый раз, когда будет нужно добавить очередное значение реализации интересующей нас случай ной величины, мы должны вызывать метод add данного объекта (с именам

Input_Call_Intervals).

Параметры Minimum и Maximum задают нижнюю и верхнюю границы интер-вала, на котором будет строиться гистограмма. Определим значение Maximum числом 5. Параметр Numberofintervals определяет число интервалов (пря­моугольников) гистограммы. Выберем число 50. Параметр RelativeBarwidth устанавливает относительную ширину прямоугольника на каждом из интер­валов. Выберем для него значение 1. На гистограмме будет также показы ваться интегральная функция распределения (Cumulative Distribution Function, CDF). Выберем толщину линии представления графика этой функции 2. Остальные параметры оставим без изменения.

Рассмотрим теперь, как добавлять значения генерируемой случайной вели­чины — интервала между последовательными телефонными вызовами. Те­лефонные вызовы моделируются блоком source модели. Фактически, эти интервалы определены функцией exponential (lambda), которая является зачением динамического параметра interarrivaiTime, однако напрямую в данном блоке значения этой случайной величины получить нельзя. Ис­пользуем следующий прием. Введем в модель переменную tPrevious с на­чальным значением 0 и каждый раз, как этим блоком будет генерироваться заявка, выполним два оператора:

lnput_Call_lntervals.add(getTime()-tPrevious); // добавляем значение tPrevious = getTime(); // запоминаем момент текущего звонка

Эти операторы должны быть помещены в поле параметра onExit блока

source.

Вторая гистограмма строится полностью аналогичным образом. Исключение составляет только значение параметра UpdateMode (метод обновления). Эта гистограмма должна показывать распределение значений случайной величи­ны Benefit, для которой не определены явно моменты ее изменения: она задана формулой, связывающей несколько случайных величин. Поэтому удобно определить updateMode этой гистограммы как AUTO - ADD Data EVERY TimeStep. При этом нужно указать временной шаг (оставим его за­данным 1 по умолчанию), а также имя данного (у нас это Benefit), текущее значение которого принимается за новую реализацию случайной величины каждый раз при наступлении этого временного шага.


Принятие решений





Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 491 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если президенты не могут делать этого со своими женами, они делают это со своими странами © Иосиф Бродский
==> читать все изречения...

2504 - | 2371 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.