Полная версия

Главная arrow Информатика arrow ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ СИСТЕМ В СРЕДЕ EXTENDSIM

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

Инструменты и способы генерации потоков поступления и обслуживания заявок

При имитационном моделировании необходим учет случайных факторов и воздействий на систему, которые представляются случайными последовательностями чисел. Математически случайные последовательности описываются в виде случайных событий, значений дискретных и непрерывных случайных величин, значений случайных векторов и процессов [2,3,6,7—9]. Для описания случайных последовательностей используется аппарат теории вероятностей и мате- м ати ческо й статист и к и.

Программная имитация случайной последовательности любого типа основана на генерации базовой последовательности случайных чисел (СЧ)

{Xj} = представляющих собой выборку из равномерно распределенной на интервале [0,1] генеральной совокупности значений величины ?,.

При разработке дискретно-событийных моделей один из ключевых моментов заключается в математическом описании случайных последовательностей (потоков) поступления и обслуживания заявок. Например, поток заданий на обработку в вычислительной системе; поток вызовов на телефонной станции; поток отказов (сбоев) компьютера в ходе его работы и т.д. Математически поток представляет собой в общем случае просто последовательность случайных точек 0j, 02, ...,0П, ... на оси времени 0t с разделяющими их случайными интервалами ть т2, Т„, ..., Так ЧТО Tj = 02- 0i, т2=0.г-02, ..., т„= 0n+i-0n,...

Для математического задания потока необходимо описать закон распределения интервалов между поступлением заявок и их обслуживанием.

В среде реализованы разные способы задания потоков с помощью блоков Create и Activity.

В блоке Create может быть описано поступление заявок:

  • — через случайный интервал на основе задания его закона распределения (опция Create items randomly в диалоговом окне настройки блока), всего реализовано 37 базовых законов распределения;
  • — через интервал, определенный с помощью расписания (опция Create items by schedule);
  • — «плавно», заявки поступают по требованию (опция Create items infinitely); в этом случае блок Create связывается с блоком Gate который открывает либо закрывает поток заявок.

В блоке Activity, описывающем длительность обработки заявок, доступны следующие опции задания интервала обслуживания:

  • — случайный интервал на основе задания его закона распределения (опция specified by a distribution);
  • — постоянный интервал (опция constant);
  • — интервал задается (поступает) через входной коннектор D (опция from the «О» connector);
  • — интервал задастся из таблицы (опция from a lookup table)',

интервал определяется атрибутом (параметром) заявки (опция an items attribute values).

Рассмотрим несколько примеров, в которых иллюстрируются разные способы задания интервалов поступления и обслуживания заявок.

Пример 3. В систему поступает поток заявок по экспоненциальному закону распределения. Интенсивность поступления заявок зависит от времени суток: с О до 6 часов заявки поступают в среднем через 8 мин; с 6 до 12 часов — через 6 мин; с 12 до 18 часов — через 7 мин; с 18 до 24 часов — через 6 мин. Заявки обрабатываются одним из двух одинаковых устройств. Время обработки зависит от типа заявки: 20% заявок обрабатываются за 0,1 часа, 80% заявок обрабатываются за 0.12 часа. Необходимо промоделировать работу системы в течение 1000 дней.

Конченый вид модели приведен на рис. 20. Модель включает следующие блоки из библиотеки Item.Их: Create, Exit, Queue, Executive, Activity, Set Attributes', из библиотеки Value.Их блоки: Lookup table и Random Number; из библиотеки Plotter.Их блок Plotter Discrete Event. Остановимся подробно на настройках каждого из блоков.

Модель системы (пример 3)

Рис. 20. Модель системы (пример 3)

Время моделирования {End time = 1000) и глобальные единицы времени (Global time units = hours) задаются в диалоговом окне Simulation Setup (пункт меню Run —> Simulation Setup). В диалоговом окне блока Executive, вкладка Control устанавливается окончание времени моделирования по времени: Stop simulation: at end time.

Входной поток заявок и его параметры описываются блоками Create и Lookup table. В блоке Lookup table задается изменение интенсивности входного потока заявок с течением времени. Во вкладке Table диалогового окна блока устанавливаются опции: Lookup the: time; Output is: stepped; Time units: hours (глобальные единицы времени — часы). Изменение среднего интервала между поступлением заявок в течение времени описывается таблицей (см. рис. 21).

Задание параметров блока Lookup table

Рис. 21. Задание параметров блока Lookup table

В первом столбце задается момент времени в часах, в который меняется интенсивность входного потока, во втором столбце — средний интервал между заявками в минах. Единицы измерения времени в первом столбце определяются заданными глобальными единицами времени, а во втором — определяются настройками блока, связанного с Lookup table, в этом случае блоком Create. Данные таблицы повторяются каждые 24 часа, режим: Repeat table every 24 hours.

В блоке Create устанавливаются настройки: Create items randomly, Disribution exponential с параметрами mean = 1, location = 0 и Time unit: minutes. В поле mean можно задать любое значение, так как это значение будет переопределно в процессе моделирования в соответствии с таблицей блока Lookup table.

Далее заявка направляется в блок Set Attributes, где определяется ее тип. В настройках блока в поле Property Name выбирается из выпадающего списка New Value Attributes и вводи гея имя а грибута {type). В блоке Random Number, связанном с блоком Set Attributes, задается эмпирическая таблица вероятностей, определяющая время обработки заявки в зависимости от ее типа (см. рис. 22).

Настройки блока Random Number

Рис. 22. Настройки блока Random Number

В блоке Queue используются настройки но умолчанию.

В блоке Activity, описывающем процесс обработки, устанавливаются настройки: Maximum items in activity = 2 (число устройств). Delay is: an item's attribute value (время обработки определяется типом заявки). Attribute: type (имя атрибута заявки); Delay D: 0,1 hours (начальное время обработки).

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

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

Для модели примера 3 (см. рис. 20) в модель вынесены входные настройки модели: mean; Delay is: an item's attribute value; Attribute: type и результаты моделирования: Length (средняя длина очереди), Utilization (коэффициент загрузки устройства).

Для копирования элементов в область окна модели в диалоговом окне блока надо щелкнуть правой кнопкой мыши на любом элементе окна и в выпадающем списке выбрать Clone tool. В результате все элементы диалогового окна выделяются и их можно перетащить в область модели с помощью мыши.

После запуска модели на выполнение отображается график изменения средней длины очереди во времени (рис. 23) и выводятся в соответствующих полях в модели (см. рис. 20) средняя длина очереди (Length = 0.24) и коэффициент загрузки устройства (Utilization = 0,55).

График изменения длины очереди (пример 3)

Рис. 23. График изменения длины очереди (пример 3)

В целом, исследуемая система справляется с потоком заявок, загружена примерно на 50%, время ожидания заявок в очереди в сравнении с интервалом обслуживания — незначительно.

В приведенном выше примере поток заявок описывался стандартным экспоненциальным законом распределения, моделирование последовательности значений которого реализованы в ExtendSim. Может также возникнуть ситуация, когда поток поступления или обслуживания заявок описывается законом, не реализованным в среде пакета. В этом случае реализуют моделирование на базе использование одного из методов имитации последовательности значений случайных величин с заданным законом распределения (метод обратной функции, метод Неймана, метод кусочной аппроксимации функции плотности распределения вероятностей и другие) [6—7]. Приведем пример моделирования потока заявок с использованием метода обратной функции.

Пример 4. В систему поступает поток заявок, интервалы между которыми описываются СВ Y, распределенной по закону, заданному функцией плотности распределения вероятности: Ду) = 2-у, .У6[0,1]. Далее заявки

обслуживаются одним каналом в течение 1 единицы времени. Смоделировать обработку заявок в течение 100 единиц времени.

Согласно методу обратной функции найдем выражение для функции распределения вероятностей СВ Y и приравняем к случайному числу, распределенному равномерно на [0,1]:

Из (1) найдем выражение для :

Выбран положительный корень, учитывая диапазон изменения СВ Y.

Конченый вид модели приведен на рис. 24.

Модель системы (пример 4)

Рис. 24. Модель системы (пример 4)

В блоке Random Number генерируется случайное число, равномерно распределенное (Uniform, Real) в диапазоне от 0 до 1. Затем в блоке Equation (Value.Их) происходит вычисление значения СВ Y в соответствии с формулой (2). В диалоговом окне блока в поле формул задается выражение: outConO = sqrt(inConO). В блоке Create устанавливаются настройки: Create items randomly, Disribution Constant. В поле constant можно задать любое значение, так как это значение будет переопределно в процессе моделирования в соответствии со значением, считанным с выходного коннектора блока Equation.

В результате моделирования обслужено 100 заявок, средняя длина очереди заявок равна 25,7; коэффициент использования устройства: 1. Система с потоком заявок не справляется, так как интервал поступления заявок меньше или равен интервалу обслуживания заявки и в системе накапливаются заявки в очереди на обслуживание в процессе моделирования.

 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>