Содержание к диссертации
Введение
ГЛАВА I. Обзор существующих программных средств дискретно-событийного моделирования 11
1.1. Языки и среды имитационного моделирования. Достоинства и недостатки 11
1.2. Языки имитационного моделирования 13
1.2.1. Общецелевая система имитационного моделирования GPSS 13
1.2.2. Программные разработки на базе GPSS 18
1.2.3. Язык программирования SIMULA „20
1.2.3. Языки SIMSCRIPTn GASP 25
1.3. Среды имитационного моделирования 26
1.3.1. Среда моделирования ARENA ... 26
1.3.2. Среда моделирования EXTEND 28
1.3.3. Среда моделирования SIMPLEX3 30
1.3.4. Среда моделирования ANYLOGIC 33
1.4. Выводы 35
ГЛАВА II. Разработка архитектуры программного комплекса имитационного моделирования 36
2.1. Основные элементы дискретно-событийной модели и их взаимодействие 36
2.2. Концептуальная модель системы 43
2.2.1. Общая диаграмма взаимодействия с пользователем ..43
2.2.2. Разработка модели 44
2.2.3. Запуск модели 48
2.2.4. Проведение экспериментов . ..49
2.2.5. Работа с результатами 50
2.2.6. Загрузка и сохранение модели ..52
2.3. Логическая модель системы... 53
2.3.1. Описание базовых компонентов. 53
2.3.2. Представление модели в виде класса... 67
2.3.3. Множество событий 69
2.3.4. Механизмы инициализации и основной цикл моделирования 72
2.3.5. Механизмы генерации случайных величин. 76
2.3.6. Состояние системы, статистика и генерация отчетов 81
2.4. Диаграммы состояния uml как способ представления графа событий имитационной модели дискретной системы массового обслуживания 86
2.5. ВЫВОДЫ 89
ГЛАВА III. Работа с программным комплексом 90
3.1. Рабочее пространство модели 90
3.2. Работа с компонентами 91
3.2.1. Управление стандартными компонентами 91
3.2.2. Управление компонентами пользователя 101
3.3. Реализация случайных процессов поступления требований 103
3.3.1. Стационарные пуассоновские процессы , 103
3.3.2. Процессы с последействием. 104
3.3.3. Нестационарные пуассоновские процессы. 105
3.3.4. Групповые поступления , 106
3.4. Реализация процессов обслуживания 108
3.5. Настройка и запуск модели 110
3.6. Представление результатов моделирования 115
3.6.1. Оценки характеристик по результатам прогонов.. 115
3.6.2. Проблема переходного процесса и ее графическое решение с помощью метода Велча 118
3.6.3. Проведение экспериментов над моделями 120
3.7. Выводы 121
ГЛАВА IV. Примеры построения реальных моделей с использованием комплекса 122
4.1. Многозвенные виртуальные каналы. , 122
4.2. Модели трехзвенных каналов с боковым трафиком 123
4.3. Модель коммутатора. 140
4.4. Выводы 141
Заключение 142
Литература
- Общецелевая система имитационного моделирования GPSS
- Среда моделирования ARENA
- Проведение экспериментов
- Реализация случайных процессов поступления требований
Введение к работе
Актуальность работы.
В разных областях техники, в организации производства, в экономике и медицине, в социальной сфере, в военном деле и во многих других сферах человеческой деятельности постоянно возникает необходимость решения вероятностных задач [11], связанных с работой систем массового обслуживания (СМО) [24, 33,35, 36, 40, 46]. По справедливому замечанию виднейшего советского специалиста в этой области Б.В. Гнедеико, "легче указать ситуации, где не может быть использована теория массового обслуживания (она же - теория очередей), чем перечислить все сферы ее потенциального применения" [10]. Многообразие приложений этой теории определяет постоянно растущий интерес к ней, а сложность возникающих задач не позволяет получить исчерпывающие решения на базе аналитических методов. В таких ситуациях часто прибегают к имитационному моделированию [28, 32, 36], которое можно рассматривать как универсальный подход для принятия решений в условиях неопределенности с учетом наличия в моделях трудноформали-зуемых факторов. Так, написаны целые книги по применению имитационного моделирования в коммерческой деятельности [21, 83, 85], экономике [2,34], в системе образования [59], политике, обществоведении, международных отношениях. Кроме того, множество технических статей, отчетов, диссертаций в общественной, экономической, технической и практически в любой другой сфере человеческой деятельности свидетельствуют о росте использования и распространении влияния имитационного моделирования.
По мнению A.M. Лоу и В.Д. Кельтона [30, 78], имитационное моделирование является одним из наиболее распространенных, а возможно, и самым распространенным методом исследования операций и теории управления. Согласно исследованию Gupta [72], эта технология исследования сложных систем занимает второе место после математического программирования. Об этом свидетельствуют и Зимние конференции по вопросам имитационного моделирования (Winter Simulation Conference) [100], ежегодно собирающие до 700 участников. Наличие имитационной модели и обоснование с ее помощью выбранного варианта часто являются обя-
зательными в комплекте документов проектирования нового или модернизации
і существующего производства или технологического процесса.
Одним из наиболее распространенных методов имитационного моделирова
ния по праву считается дискретно-событийный метод [71, 73, 93], в основе кото
рого лежит концепция заявок (транзактов). Исторически этот подход восходит к
Джеффри Гордону, который в 1960-х гг. разработал язык GPSS. Заявки в этой схеме
являются пассивными элементами (детали, сообщения), они двигаются в соответ
ствии со своими маршрутами, при этом время от времени с ними происходят так
, называемые события. Под событиями понимаются мгновенные импульсы, которые
приводят к изменению вектора состояний системы (например, поступление заявки в очередь, начало и окончание обслуживания и т.п.).
Более широкому распространению методов дискретно-событийного имитационного моделирования препятствует необходимость создания программных реализаций моделей, которые воссоздают в модельном времени динамику функционирования реальной системы. В отличие от традиционных методов программирования, разработка имитационной модели требует "определенной перестройки принципов мышления" [51]. Поэтому усилия разработчиков программных средств имитации направлены, с одной стороны, на создание специализированных языков и систем, предназначенных для упрощения процесса создания моделей. С другой стороны, в литературе [30, 42] достаточно часто отмечается тот факт, что применение универсальных языков программирования позволяет исследователю добиться большей гибкости при разработке, отладке и испытании модели, чем при использовании специализированных языков и сред.
Поэтому разработка программной системы дискретно-событийного имитационного моделирования, которая с одной стороны была бы по возможности максимально предметно-ориентированной и предоставляла возможности визуального моделирования, а с другой стороны сохранила бы преимущества использования универсальных языков программирования, по мнению автора, является актуальной научно-технической задачей.
Целью настоящей работы является разработка универсальной объектно-
i ориентированной модели дискретно-событийного метода имитационного модели-
рования и реализация программного комплекса, основанного на этой модели, для визуального моделирования систем массового обслуживания с возможностью доопределения логики работы моделей на одном из языков программирования. В рамках указанной цели поставлены и решены следующие задачи:
1) разработка объектно-ориентированной модели дискретно-событийного ме
тода, построенной на принципах повторного использования;
і 2) разработка каркаса архитектуры программного комплекса для реализации
дискретно-событийного метода имитационного моделирования; 3) реализация программного комплекса имитационного моделирования СМО.
Состояние проблемы.
Целый ряд зарубежных фирм выпускает программные продукты, так или иначе поддерживающих дискретно-событийное моделирование; некоторые общего назначения, большинство нацелено на определенные предметные области: обслуживание, бизнес-процессы, производство, логистика и т.д. В качестве примера рос-
сийских разработок следует отметить продукт AnyLogic компании XJ Technologies, который получил признание в том числе и за рубежом. Обзор этих средств приведен в первой главе настоящей работы, а также в [13,18,27,30,44, 64]. Отечественные ученые В.Л. Конюх, Я. Б. Игнатьев, В. В. Зиновьев в 2003 году подготовили и выпустили электронный диск «Методы имитационного моделирования дискретных систем», где представили обзор программных средств имитационного моделирования, в том числе и современных. В последние годы также значительно вырос интерес к распределенным технологиям имитационного моделирования. Вопросы, связанные с применением распределенных вычислений в рамках дискретно-событийного метода, можно проследить в работах Chandrasekaran U., Sheppard S. [66], J. Misra [84], R. M. Fujimoto [70], D. M. Nicol [86], R. L. Bagrodia [60]. В связи с быстрым развитием технологий World Wide Web необходимо отметить ряд работ последнего времени, связанные с исследованиями самых разнообразных возможностей применения этих технологий для расширения возможностей моделирования.
Так, например, в работах P. A. Fishwick [68, 69] исследуется широкий спектр во-
I просов, связанных с использованием механизмов клиент-сервер для увеличения
производительности, распространения имитационных моделей и результатов их выполнения. Общий обзор подходов к моделированию, основанный на использовании веб-узлов и базирующийся на характерные примеры, дан в работе P. Lorenz, Н. Dorwarth, К. С, Ritter, Т. J. Schriber [80]. В качестве альтернативы или возможного пути реализации распределенного подхода рассматривается и объектно-ориентированное моделирование. Заметим, что фактически история ООП берет свое начало именно из задач имитационного моделирования и инструмента, предназначенного для их решения (SIMULA, начало 60-х годов прошлого века). В качестве источников, в которых рассмотрены вопросы объектно-ориентированного моделирования, отметим J. A. Levasseur [79] и D. W. Jones, S. D. Roberts [75].
Методы исследования.
При выполнении диссертационной работы использовались принципы объектно-ориентированного анализа и проектирования, методы имитационного моделирования, теории массового обслуживания и математической статистики.
Научная новизна.
Предложена оригинальная объектно-ориентированная модель дискретно-событийного метода имитационного моделирования, основанная на принципах повторного использования дизайна.
Разработана типовая архитектура программного комплекса для визуального моделирования систем массового обслуживания с возможностью доопределения логики работы моделей. В отличие от других инструментов, в качестве средства написания кода предлагается использовать скриптовые языки, синтаксис и возможности которых приближены к традиционным языкам программирования.
Практическая значимость.
Практическая значимость работы, по мнению автора, заключается в следующем:
1. Разработан программный комплекс имитационного моделирования СМО ObjectSim, позволяющий без изучения синтаксиса конкретного, специализирован-
ного языка имитационного моделирования строить имитационные модели, комби-
» нируя визуальные компоненты с написанием собственных обработчиков для раз-
личных событий. При этом в качестве средства написания обработчиков может быть использован любой из четырех языков - PascalScript, C++Script, BasicScript и JavaScript. Принципы повторного использования, в соответствии с которыми разрабатывался комплекс, допускают расширение приведенного перечня языков.
2. Проведенное исследование имитационных моделей многозвенных вирту
альных каналов с боковым трафиком позволило установить основные операцион-
, ные характеристики для различных значений буферной емкости в транзитных узлах
коммутации и скорости передачи в звеньях.
Внедрение результатов работы.
Программный комплекс имитационного моделирования ObjectSim внедрен в ООО "Сибирские цифровые приборы", г. Томск. Разработанные модели используются для исследования качества работы коммутаторов, а также зависимости операционных характеристик многозвенных виртуальных каналов от различных параметров, в частности от битовых скоростей и емкости буферных накопителей.
Комплекс ObjectSim используется в учебном процессе на факультете информатики Томского государственного университета при проведении практических занятий по имитационному моделированию систем массового обслуживания по специальности 35.15.00 "Математическое обеспечение и администрирование информационных систем".
На защиту автором выносятся следующие основные положения.
Способ описания графов событий имитационной модели систем массового обслуживания в нотации UML.
Объектно-ориентированная модель дискретно-событийного метода имитационного моделирования.
Архитектура программного комплекса для моделирования систем массового обслуживания с возможностью доопределения логики работы моделей. В рамках этой архитектуры построены концептуальная и логическая модели системы.
Апробация работы и публикации.
і Основные результаты диссертационной работы докладывались и обсужда-
лись на следующих конференциях.
VII Межрегиональной научно-практической конференции "Научное творче
ство молодежи" (Анжеро-Судженск, 2003).
Всероссийской конференции "Наука и практика: Диалоги нового века" (Анжеро-Судженск, 2003).
VIII Всероссийской научно-практической конференции "Научное творчество
> молодежи" (Анжеро-Судженск, 2004).
8-th Korea-Russia International Symposium on Science and Technology. Information Technology (Tomsk Polytechnic University, 2004).
II Всероссийской научно-практической конференции "Имитационное моделирование. Теория и практика" (Санкт-Петербург, 2005).
По результатам диссертационной работы опубликовано 7 печатных работ [17-20], [37-38], [89].
Структура диссертации.
Работа состоит из введения, четырех глав, заключения, списка литературы и приложения, включающего документы о внедрении.
В первой главе приводится обзор наиболее популярных систем и пакетов имитационного моделирования - от классических GPSS и SIMULA до современных отечественных и зарубежных разработок, отмечены их достоинства и недостатки. Материалы данной главы представлены также в работе [18] автора.
Во второй главе выдвинуты основные требования, предъявляемые к разрабатываемому программному комплексу, дается описание концептуальной и логической модели системы, а также обоснование различных проектных решений, принятых в ходе программной реализации. Приведенные диаграммы вариантов использования дают представление об основных возможностях комплекса; для отражения программной логики также приводятся диаграммы и описание взаимодействия классов и назначения операций. Рассмотренные в этой главе вопросы нашли отражение в работах автора [17,19,37, 89].
В третьей главе дано описание компонентов, используемых для построения
% моделей систем массового обслуживания, продемонстрированы возможности напи-
сания для них собственных скриптов при наступлении тех или иных событий. В
данной главе также рассматриваются подходы к реализации различных вариантов
процессов поступления и обслуживания заявок. Отдельное внимание уделено полу
чению и представлению результатов моделирования, а также использованию гра
фической процедуры Велча [98] для определения длительности переходных про
цессов с целью более точной оценки установившихся средних. Материалы данной
главы опубликованы в работах автора [20,38].
Четвертая глава посвящена разработке имитационных моделей трактов передачи данных с боковым трафиком, дающих возможность исследовать влияние скорости передачи и емкости буферных накопителей транзитных узлов коммутации на основные операционные характеристики работы многозвенных виртуальных каналов.
Благодарности.
Автор глубоко признателен своему научному руководителю, д.ф.-м.н., до-
центу Олегу Алексеевичу Змееву, всесторонняя помощь и поддержка которого ощущалась на всех этапах работы. Особую благодарность хочется выразить также своим учителям, к.ф.-м.н., профессору Борису Афанасьевичу Гладких и д.т.н., профессору Сергею Петровичу Сущенко за консультации по вопросам имитационного моделирования. Я также благодарен профессору, д.ф.-м.н. Александру Федоровичу Терпугову и профессору кафедры математической статистики, д.т.н. Анатолию Андреевичу Назарову за математическую подготовку. Благодарю также студентов факультета информатики ТГУ, которые работали с программной системой ObjectSim, за их конструктивные замечания и предложения по ее улучшению.
Общецелевая система имитационного моделирования GPSS
Одним из первых языков моделирования, облегчающих процесс написания имитационных программ, был язык GPSS, созданный Джеффри Гордоном в 1962 г. По мнению Ю.И. Рыжикова [43], ни один из языков моделирования не оказал на имитацию столь большого воздействия. Это был один из самых удачных проблемно-ориентированных языков программирования, решающих задачи моделирования систем массового обслуживания (систем с очередями), в свое время он входил в первую десятку лучших языков программирования, опережая транслятор с языка ; АЛГОЛ. Несмотря на то, что данная система функционирует уже более 40 лет, она была и пока все еще остается наиболее популярной [13]. В России даже создан специальный портал, посвященный этому языку [99], на котором в частности приводится довольно большой список ВУЗов Российской Федерации, в которых преподается GPSS в настоящее время.
Основой имитационных алгоритмов в GPSS является дискретно-событийный подход [30, 61]. Динамические объекты, соответствующие заявкам в системах массового обслуживания, называются в GPSS транзактами. Они создаются и уничтожаются так, как это необходимо по логике модели в процессе моделирования. Модель GPSS состоит из блоков, представляющих необходимые действия или задержки транзактов. Для организации входящего потока заявок используют блок GENERATE, который вводит в модель новые транзакты в соответствии с требуемым распределением интервалов между смежными заявками. Транзакты перемещаются во времени и пространстве, переходя от одного блока модели к другому и воздействуя на них. Входя в блок, транзакт вызывает определяемую типом блока
начальных значений или изменения этих значений служит блок ASSIGN, позво- » ляющий записать в параметр транзакта некоторое значение или увеличить (умень шить) значение параметра на заданную величину. Для записи текущего модельного времени в заданный параметр используется блок MARK, для изменения приоритета используют специальный блок PRIORITY. Транзакты могут входить в модель не только через блок GENERATE, но и путем создания копий уже существующих транзактов в блоке SPLIT, при этом трагоакт-родитель направляется затем в следующий блок, а для транзактов-потомков можно указать в общем случае другой блок, в который они поступят после выхода из блока SPLIT.
Блок TRANSFER служит для передачи входящих в него транзактов в блоки, отличные от следующего. Наиболее часто используются режим безусловной передачи, режим статистической передачи и режим логической передачи.
Блок TEST служит для задержки или изменения маршрутов транзактов в зависимости от соотношения двух величин. Вспомогательный операнд содержит условие проверки (математический оператор) и может принимать следующие значения: L; LE; Е; NE; GE; G. Если проверяемое условие выполняется, то блок TEST пропускает транзакт в следующий блок. Если же это условие не выполняется, то транзакт переходит к другому блоку, указанному в качестве альтернативного, или задерживается перед блоком TEST.
Для задержки или изменения маршрута транзактов в зависимости от состояния объектов модели служит блок GATE. Первый операнд содержит код состояния проверяемого объекта, второй операнд указывает на имя или номер этого объекта. Если проверяемый объект находится в заданном состоянии, то блок GATE пропускает транзакт к следующему блоку. Если же заданное в блоке условие не выполняется, то транзакт переходит к блоку, указанному во втором операнде. Если же второй операнд пустой, то транзакт задерживается перед блоком GATE.
Для моделирования обслуживания одноканальным устройством используют ся блоки SEIZE, RELEASE, PREEMPT и RETURN. Захват на обработку и освобождение устройства моделируются соответственно блоками SEIZE и RELEASE. Прерывание устройства моделирует блок PREEMPT, снятие прерывания - блок RETURN. Для занятия и освобождения многоканальных устройств используют блоки ENTER и LEAVE, при этом в качестве параметра можно указать число каналов, которое необходимо для обслуживания одного транзакта. Задать общее чис I ло каналов обслуживания можно с помощью оператора STORAGE.
Блоки, связанные со сбором статистики:
Для сбора и регистрации статистики об очередях в системе используются блоки QUEUE (вход в очередь) и DEPART (выход из очереди). Использование этих блоков позволяет получить статистику по очередям, в т.ч. среднюю длину очереди, среднее время ожидания и т.п. Для сбора других статистических данных используют таблицы (блоки TABLE и TABULATE). Существуют также блоки для 1 записи значений в сохраняемые ячейки и матрицы ячеек (SAVEVALUE и т.п.).
Наиболее удачными версиями GPSS, получившими наибольшее распространение, можно считать появившуюся в 1977 г. систему GPSS/H и в 1984г. систему GPSS/PS [47,48, 51,55,71], сохранившие тысячам пользователей миллионы долларов благодаря написанным с их использованием имитационным программам. Однако они были предназначены для работы в операционной системе MS DOS. Поэтому обладали рядом ограничений, которые в ряде случаев не позволяли осуществить разработку и эксплуатацию моделей сложных систем с требуемой степенью детализации [5]. Радикальные изменения произошли одновременно с переходом к Wows-версиям, В 2000 г. компанией Minuteman Software (США) была разработана система GPSS World, студенческая версия которой бесплатно распространяется через Интернет. В 2002 г. фирма "Элина-Компьютер" (Казань) осуществила локализацию GPSS World на русский язык. Отличие от коммерческой заключается в ограничении числа блоков и несовместимостью программ с написанными ранее на GPSS/PC.
Среда моделирования ARENA
Продукт Arena Standard Edition поставляется компанией Systems Modeling Corporation (Севикли, Пенсильвания). В основе системы лежит язык SIMAN, который применяют для моделирования как дискретных, так и непрерывных систем. Основные моделирующие конструкции, именуемые в пакете Arena модулями, объединены в шаблоны. Шаблон Basic Process (основной процесс) включает в себя конструкции, которые используются в большинстве моделей (рис. 1.2).
Панель инструментов Basic Process Так, сюда включены конструкции для моделирования процессов поступления и обслуживания заявок. Шаблон Advanced Process (дополнительный, или в трактовке [27], продвигаемый процесс) состоит из модулей, предназначенных для выполнения специальных функций, чаще всего логических, таких как выбор очереди при наличии в системе нескольких очередей или координация продвижения нескольких объектов в разных частях системы и т.п. Наконец, шаблон Advanced Transfer применяется для описания передачи объектов из одной части системы в другую. Создание моделей происходит посредством захвата и переноса модулей из панели инструментов, соответствующей выбранному шаблону, в окно отображения модели. Для каждого модуля разработчик задает параметры, затем соединяет моду ли между собой (рис. 1.3) и задает общие характеристики имитационной модели. Процесс создания моделей описан также в [31].
Перечислим основные моделирующие конструкции, входящие в состав шаблона Basic Process (см. также [96] - электронный учебник по работе в Arena). Create - порождение заявок Dispose - удаление заявок из модели, один из параметров модуля позволяет установить или убрать запись статистики о поступающих объектах Process - выполнение определенного действия над заявкой (это могут быть задержки различных типов, перенос или ожидание). При этом реализована возможность считать стоимость обработки Decide - проверка истинности условия для объекта, вошедшего в модуль; дальнейшее движение заявки осуществляется по одному из возможных маршрутов в соответствии с результатом проверки Batch - постоянная или временная группировка объектов. Заявки, поступающие в модуль, ждут в очереди, пока не накопится нужное число объектов, после чего группируются в один объект Separate - разделение объектов. Поступающий объект делится на несколько или происходит разгруппировка партии, созданной с помощью модуля Batch ранее Assign - присвоение новых значений переменным, атрибутам и другим системным характеристикам поступающих в данный модуль заявок Queue - модуль определяет правило обработки для указанной очереди Resource - определение ресурса, включающее стоимостную информацию, і доступность ресурса и т.п.
Число потоков случайных чисел в пакете не ограничено, пользователь имеет доступ к 12 стандартным теоретическим распределениям вероятностей, а также к эмпирическим распределениям. Пакет Arena содержит простой способ выполнения независимых повторных прогонов имитационной модели, а также построения точечных оценок и доверительных интервалов для показателей работы системы.
Другие продукты Systems Modeling Corporation серии Arena позволяют моде ь лировать различные бизнес-процессы (Arena Business Edition), работу высокоскоро стных конвейерных линий в производстве предметов потребления (Arena Packaging Edition), анализировать эффективность сервисного обслуживания заказчиков, например, работу центров обработки вызовов в различных организациях (Arena Contact Center Edition). Однако сдерживающим фактором для распространения этой системы в России, как это часто бывает с программными продуктами имитационного моделирования, является ее высокая стоимость - по состоянию на 2006 г. она составляет примерно 22 тысячи долларов (базовый комплект поставки).
Универсальная среда моделирования Extend, разработанная в компании Imagine That Inc. (Сан-Хосе, Калифорния), во многом похожа на систему Arena. Существует базовый комплект поставки (стоимостью правда поменьше - порядка тысячи долларов), а также дополнительные библиотеки - Manufacturing (моделиро вание процессов производства) и Business Process Reengineering (моделирование и г оценка бизнес-процессов). Чтобы создать модель, в библиотеке выбирают блоки и помещают в определенные места в окне разработки модели. Затем блоки связывают между собой, чтобы обозначить движение заявок в системе. После этого каждый блок детализируется с помощью диалоговых окон. Среда Extend [76, 77] содержит множество специализированных библиотек с наборами типовых модулей. Для имитации дискретно-событийных процессов реализована специальная библиотека Discrete Event, Система также предоставляет разработчику средства для создания собственных модулей (блоков) с использованием внутреннего языка ModL.
В системе имитационного моделирования Extend реализован типовой набор блоков, таких как Генератор, Очередь, Активность, Накопитель ресурсов и Выход. Каждый блок содержит собственное изображение и код, параметры, интерфейс пользователя и блок помощи. В среде имеются блоки для отображения типовых процессов производства и бизнеса, разработчик может создавать специальные блоки для анализа цепи поставок, химической переработки, радиочастотного анализа. Пакет предоставляет доступ к 18 стандартным теоретическим распределениям вероятностей, при этом число потоков случайных чисел не ограничено. Также существует возможность использовать эмпирические распределения.
Проведение экспериментов
Перед проведением экспериментов пользователю предлагается перед запуском модели зафиксировать необходимые факторы (параметры, влияние которых будет оцениваться) и определить отклики (выходные показатели). Факторы могут быть как количественными, так и качественными. Например, ограничение длины очереди является скорее количественным, а дисциплина очереди - качественным фактором (хотя иногда различие может быть неясно).
Решение о том, какие параметры считать неизменными, а какие экспериментальными факторами, зависит скорее от цели исследования, нежели от структуры модели. Если в модели имеется всего один фактор, то планирование экспериментов будет относительно несложным - нужно лишь выполнить моделирование с различными уровнями этого фактора (однофакторный эксперимент), построив доверительный интервал для ожидаемого отклика на каждом из уровней фактора, В случае если имеется к 2 факторов, можно зафиксировать уровни к -1 факторов на каком-либо множестве значений и выполнить нужное количество имитационных прогонов для к - го фактора. Затем процедуру следует повторить, чтобы изучить влияние других факторов. Однако такой подход довольно неэффективен, поскольку для него требуется большое число прогонов модели. Кроме того, он не позволяет оценить взаимодействия факторов, которые, возможно, имеют место.
Более рациональным подходом, позволяющим оценить также взаимодейст ) вия факторов, является применение факторных планов типа 2 [30]. Данная стра тегия предполагает выбор двух уровней для каждого из факторов, а затем проведение имитационных экспериментов для каждой из 2 возможных комбинаций уровней факторов, называемых также точками плана. В целом уровни следует выбирать так, чтобы они были противоположны друг другу, но в реальных пределах. Для оценки влияния факторов на отклики используются 2 показателя - главные эффекты и эффекты взаимодействия. Главными эффектами измеряется средняя величина изменения в отклике, связанная с изменением отдельного фактора (средняя величина берется по всем возможным комбинациям других k -1 факторов). При этом может оказаться, что эффект фактора ;1 зависит от какого-либо другого фактора j2. В этом случае степень такого взаимодействия измеряется эффектом взаимодействия, который определяется как разность между средним откликом, когда факторы ;1 и ;2 находятся на одинаковом уровне, и средним откликом, когда они находятся на разных уровнях.
Результаты работы модели могут рассматриваться в трех аспектах - это получение списка произошедших событий в ходе последней реализации, получение различного рода текстовой и графической информации, характеризующей работу компонентов и модели в целом, а также получение некоторых оценок влияния факторов на выходные показатели при проведении экспериментов.
Разработчик модели перед запуском модели указывает, сколько событий он хочет запротоколировать (ввиду того, что в протоколировании всех событий часто нет необходимости). По окончании моделирования он получает протокол событий в формате Номер события - Время наступления - Источник - Тип события - Номер заявки . В системе ObjectSim, например, реализован экспорт списка этих событий в текстовый формат, а также в форматы Microsoft Word и Microsoft Excel, Остальные результаты моделирования можно разделить на покомпонентную (относя щуюся к конкретному компоненту) и дополнительную (созданную пользователем) статистику.
Покомпонентная статистика представляет собой набор объектов-статистик, индивидуальных для каждого компонента. При этом две статистики -число входов и выходов заявок - являются общими для всех компонентов. Стандартные компоненты к этим двум характеристикам добавляют ряд дополнительных статистик. Например, для очереди это среднее время ожидания в очереди, средняя длина очереди, для устройства обслуживания - среднее время обслуживания, коэффициент занятости. Под средними значениями понимаются, прежде всего, усредненные по числу прогонов значения статистики на каждом интервале дискретизации, так как на протяжении всего процесса моделирования оцениваемые характеристики могут довольно сильно изменяться. Хотя, конечно, средние по всему процессу также рассчитываются в системе. Заметим также, что большинство характеристик являются функциями времени, однако некоторые (например, среднее время обслуживания) являются функциями от номера заявки.
Дополнительные статистики, которые были введены в модель пользовате-лем, фактически не отличаются от стандартных за тем лишь исключением, что здесь по оси абсцисс может откладываться не только время или номер заявки, а, вообще говоря, произвольная величина. В остальном работа с дополнительной статистикой идентична работе с покомпонентной статистикой.
Независимо от вида и характера статистики, пользователь может получать интересующие его характеристики на основе одной реализации, а также показатели и графики, основанные на нескольких реализациях. В системе ObjectSim для каждой статистики доступны 5 видов графиков. Первый из них показывает изменение характеристики по результатам последней реализации, для построения остальных графиков используются данные всех прогонов - это графики оценки мат. ожидания, доверительных интервалов, дисперсии, коэффициентов автокорреляции. Наконец, последний график отражает зависимость изменения статистики от значений какого-либо фактора при проведении однофакторного эксперимента. Возможен экспорт графиков в такие графические форматы, как WMF, JPEG и BMP.
Реализация случайных процессов поступления требований
Процесс обслуживания заявок характеризуется дисциплиной выбора требований из очереди (если таковая имеется в системе) и собственно дисциплиной обслуживания. В комплексе ObjectSim реализованы несколько стратегий выбора из очереди, в том числе с учетом приоритетов (PFIFO, PLIFO), без учета приоритетов (FIFO, LIFO, RANDOM), циклический обход и пассивный режим. Дисциплины обслуживания также могут учитывать приоритет, при этом выделяют дисциплины с абсолютными, относительными и динамическими приоритетами. Когда говорят об относительных приоритетах, подразумевают, что заявка, находящаяся на устройстве, будет обслужена до конца, несмотря на то, что в этот момент, возможно, придет заявка с более высоким приоритетом. В ObjectSim этому подходу соответствует дисциплина "без прерываний". В случае абсолютных приоритетов обслуживание заявки прерывается, если в момент ее обслуживания поступило более приоритетное требование. При этом дальнейшее обслуживание прерванной заявки может быть продолжено (дисциплина "с дообслуживанием") или начато с нуля (дисциплина "с обслуживанием заново").
Реалгоация обслуживания с ожиданием Еще одним вариантом обслуживания является дисциплина "с конфликтами". Ее особенность заключается в том, что при поступлении заявки на занятое устройство в системе происходит конфликт, обе заявки аварийно покидают компоненты. Поступившая заявка выводится через аварийный порт ключа занятости порта, установленного перед устройством обслуживания, а заявка, обслуживание которой было нарушено, покидает устройство через аварийный порт. Пример схемы модели для такой дисциплины приведен на рис. 3.24. Здесь обе заявки перенаправляются в источник повторных вызовов, откуда потом вновь пытаются занять устройство.
Кроме настройки компонентов, входящих в состав модели, комплекс предоставляет средства для управления параметрами, относящимися к модели в целом. Так, пользователю разрешается создавать собственные переменные, устанавливать начальные значения, организовывать сбор собственной статистики и многое другое. Кроме того, разработчик модели может выбрать, каким показателям нужно уделить наибольшее внимание, накапливая по ним расширенную статистику, позволяющую определить такую комбинацию управляемых факторов, которая обеспечивает наилучшее значение этих показателей. Начнем с того, что разработчик на уровне модели может определять переменные, которые будут использоваться в процессе моделирования (рис. 3.25).
Переменные модели В приведенном примере объявлена целочисленная переменная к с начальным значением 5 и вещественная переменная s с начальным значением 20000. Кроме данных типов могут также использоваться булевы переменные. Похожим образом создается статистика пользователя. Для редактирования созданных статистик используется специальная форма, которая позволяет изменить название статистики, указать названия абсциссы и ординаты, минимальные и максимальные значения по осям, установить способ определения границ и т.п. (рис. 3.26).
Доступ к остальным свойствам всех статистик - и стандартных, и пользовательских - осуществляется в дереве управления статистикой (рис. 3.27). Дерево содержит 2 ветви - ветвь компонентов и ветвь пользовательской статистики. Компоненты в свою очередь также разделяются на стандартные и пользовательские, при этом каждый компонент в своем составе содержит свойственные ему статистики. К числу свойств произвольной статистики относятся: количество интервалов - число отрезков дискретизации. Чем их больше, тем более точными получаются результирующие графики. уровень значимости - пороговое значение, на основании которого рассчиты вается доверительный интервал. длина лага - задает диапазон целочисленных аргументов по оси абсцисс, для которых вычисляется коэффициент автокорреляции. размер "окна" - значение размера окна м , используемое для построения скользящего среднего. Чем больше w, тем больше соседних значений будет использоваться для усреднения данных /-го наблюдения.
Здесь же устанавливается время моделирования и количество итераций (повторных прогонов). Существует возможность запустить моделирование не по времени, а до достижения указанного числа заявок (задав значение предельного числа заявок). Можно также использовать комбинацию этих способов - в этом случае моделирование будет осуществляться до тех пор, пока либо не истечет время моделирования, либо не будет достигнут предел количества заявок.
Статистики, выделенные в дереве галочками, будут использоваться в качестве откликов при проведении многофакторного эксперимента. По окончании моделирования можно посмотреть, как тот или иной фактор или комбинация факторов влияют на значения откликов (рис. 3.37).