Лекции по курсу имитационное моделирование экономических процессов составитель ст преп каф. Итим нохрина Г. Л. 2
Скачать 1.44 Mb.
|
Лекции по курсу ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ЭКОНОМИЧЕСКИХ ПРОЦЕССОВ Составитель – ст.преп.каф. ИТиМ Нохрина Г.Л. 30 мени по особым состояниям связаны в первую очередь с корректным описанием таких условий. Трудности еще более возрастают, если в модели фигурируют несколько типов взаимосвязанных со- бытий. Моделирование по особым состояниям целесообразно использовать, если: события распределяются во времени неравномерно или интервалы между ними велики; предъявляются повышенные требования к точности определения взаимного положения со- бытий во времени; необходимо учитывать наличие одновременных событий. Дополнительное достоинство метода заключается в том, что он позволяет экономить машин- ное время, особенно при моделировании систем периодического действия, в которых события дли- тельное время могут не наступать. Обобщенная схема алгоритма моделирования по особым состояниям представлена на рис. 5 (t co6.i — прогнозируемый момент наступления i-го события). Ри c. 5. Алгоритм моделирования по особым состояниям Подведем итоги изложенному в этом разделе. Выбор механизма изменения модельного времени определяет технологию реализации имита- ционной модели. На выбор метода моделирования влияет целый ряд факторов, однако определяющим является тип моделируемой системы: для дискретных систем, события в которых распределены во вре- мени неравномерно, более удобным является изменение модельного времени по особым состо- яниям. Если в модели должны быть представлены компоненты реальной системы, работа котЬрых из- меряется в разных единицах времени, то они должны быть предварительно приведены к едино- му масштабу. Лекции по курсу ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ЭКОНОМИЧЕСКИХ ПРОЦЕССОВ Составитель – ст.преп.каф. ИТиМ Нохрина Г.Л. 31 МОДЕЛИРОВАНИЕ ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ Практически любая более или менее сложная система имеет в своем составе компоненты, рабо- тающие одновременно, или как принято говорить в технических науках, параллельно. Напомним только один пример, взятый из монолога М. Жванецкого, посвященного работе ликеро-водочного завода. Судя по сюжету монолога, все цеха этого предприятия работали абсолютно параллельно и независимо друг от друга. Итак, если в составе системы имеются компоненты (подсистемы), выполняющие свои функ- ции одновременно, то можно утверждать, что в такой системе существуют параллельные процессы. Параллельно работающие подсистемы могут взаимодействовать самым различным образом, либо во- обще работать независимо друг от друга. Способ взаимодействия подсистем определяет вид парал- лельных процессов, протекающих в системе. В свою очередь, вид моделируемых процессов влияет на выбор метода их имитации. Виды параллельных процессов Асинхронный параллельный процесс — это такой процесс, состояние которого не зависит от состояния другого параллельного процесса (ПП). Пример асинхронных ПП, протекающих в рамках одной системы, — подготовка и проведение рекламной кампании фирмой и работа сборочного конвейера. Или пример из области вычислительной техники — выполнение вычислений процессором и вывод информации на печать. Синхронный ПП — это такой процесс, состояние которого зависит от состояния взаимодей- ствующих с ним ПП. Пример синхронного ПП — работа торговой организации и доставка товара со склада (нет товара—нет торговли). Один и тот же процесс может быть синхронным по отношению к одному из активных ПП и асинхронным по отношению к другому. Так, при работе Вычислительной сети по технологии «кли- ент-сервер» каждый из узлов сети синхронизирует свою работу с работой сервера, но не зависит от работы других узлов. Подчиненный ПП создается и управляется другим процессом (более; высокого уровня). Весьма характерным примером таких процессов является ведение боевых действий подчиненными подразде- лениями. Независимый ПП — процесс, который не является, подчиненным ни для одного из процессов. Скажем, после запуска неуправляемой зенитной ракеты ее полет можно рассматривать как независи- мый процесс, одновременно с которым самолет ведет боевые действия другими средствами. Способ организации параллельных процессов в системе зависит от физической сущности этой системы. Остановимся несколько подробнее на особенностях реализации параллельных процессов в вы- числительных системах (ВС). Это обусловлено следующей причиной. Разработка и использование любой ИМ предполагает ее программную реализацию и исследование с применением ВС. Поэтому для реализации моделей, имитирующих параллельные процессы, в некоторых случаях применимы меха- низмы, характерные для выполнения параллельных вычислений. Вместе с тем, реализация параллельных процессов в ВС имеет свои особенности; на уровне задач вычислительные процессы могут быть истинно параллельными только в мно- гопроцессорных ВС или вычислительных сетях; многие ПП используют одни и те же ресурсы, поэтому даже асинхронные ПП в пределах од- ной ВС вынуждены согласовывать свои действия при обращении к общим ресурсам; в ВС дополнительно используется еще два вида; ПП: родительский и дочерний ПП; особен- ность их состоит в том, что процесс-родитель не может быть завершен, пока не завершатся все его дочерние процессы. В силу перечисленных особенностей для организации взаимодействия параллельных процес- сов в ВС используются три основных подхода: на основе «взаимного исключения»; на основе синхронизации посредством сигналов; Лекции по курсу ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ЭКОНОМИЧЕСКИХ ПРОЦЕССОВ Составитель – ст.преп.каф. ИТиМ Нохрина Г.Л. 32 на основе обмена информацией (сообщениями). «Взаимное исключение» предполагает запрет доступа к общим ресурсам (общим данным) для всех ПП, кроме одного, на время его работы с этими ресурсами (данными). Синхронизация подразумевает обмен сигналами между двумя или более процессами по уста- новленному протоколу. Такой «сигнал» рассматривается как некоторое событие, вызывающее у по- лучившего его процесса соответствующие действия. Часто возникает необходимость передавать от одного ПП другому более подробную информа- цию, чем просто «сигнал-событие». В этом случае процессы согласуют свою работу на основе об- мена сообщениями. Перечисленные механизмы реализуются в ВС на двух уровнях – системном и прикладном. Механизм взаимодействия между ПП на системном уровне определяется еще на этапе разра- ботки ВС и реализуется в основном средствами операционной системы (частично — с использова- нием аппаратных средств). На прикладном уровне взаимодействие между ПП реализуется программистом средствами языка, на котором разрабатывается программное обеспечение. Наибольшими возможностями в этом отношении обладают так называемые языки реального времени и языки моделирования. Языки реального времени (ЯРВ) — это языки, предназначенные для создания программного обеспечения, работающего в реальном масштабе времени, например для разработки различных ав- томатизированных систем управления (предприятием, воздушным движением и т. д.). К ним, в частности, относятся: язык Ада, язык Модула и практически единственный отечественный язык ре- ального времени — Эль-76 (использовавшийся в многопроцессорных вычислительных комплексах семейства «Эльбрус»). Методы описания параллельных процессов Языки моделирования по сравнению с языками реального времени требуют от разработчика значительно менее высокого уровня подготовки в области программирования, что обусловлено двумя обстоятельствами: средства моделирования изначально ориентированы на квазипараллельную обработку парал- лельных процессов; механизмы реализации ПП относятся, как правило, к внутренней организации системы (язы- ка) моделирования и их работа скрыта от программиста. В практике имитационного моделирования одинаково широко используются как процессно- ориентированные языки (системы) моделирования, например SIMULA, так и языки, ориентирован- ные на обработку транзактов (например, язык GPSS). Для тех и других характерны аналогичные методы реализации квазипараллелизма, основанные на ведении списков событий. В процессно- ориентированных системах используются списки событий следования, а в транзактных системах — списки событий изменения состояний. Современные языки и системы моделирования, ориентированные на среду многозадачных опе- рационных систем типа Windows, частично используют аналогичные механизмы управления процес- сами, что делает их применение еще более эффективным. В пакете MATLAB также имеется соб- ственный язык моделирования, и к нему полной мере можно отнести сказанное выше. Моделирование на основе транзактов Рассмотрим общий механизм реализации ПП применительно к моделированию на основе транзактов. В этом случае под событием понимается любое перемещение транзакта по системе, а также изменение его состояния (обслуживается, заблокирован и т. д.) Событие, связанное с данным транзактом, может храниться в одном из следующих списков: Список текущих событий. В этом списке находятся события, время наступления которых меньше или равно текущему модельному времени. События с «меньшим» временем связаны с перемещением тех транзактов, которые должны были начать двигаться, но были заблокиро- ваны. Лекции по курсу ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ЭКОНОМИЧЕСКИХ ПРОЦЕССОВ Составитель – ст.преп.каф. ИТиМ Нохрина Г.Л. 33 Список будущих событий. Этот список содержит события, время наступления которых больше текущего модельного времени, то есть события, которые должны произойти в будущем (условия наступления которых уже определены, например известно, что транзакт будет об- служиваться некоторым устройством 10 единиц времени). Список прерываний. Данный список содержит события, связанные с возобновлением обработ- ки прерванных транзактов. События из этого списка выбираются том случае, если сняты усло- вия прерывания. Рассмотрим использование двух первых списков событий в динамике, при моделировании па- раллельных процессов. В списке текущих событий транзакты расположены в порядке убывания приоритета соответ- ствующих событий, а при равных приоритетах — в порядке поступления в список. Каждое событие (транзакт) в списке текущих событий может находиться либо в активном состоянии, либо в состоянии задержки. Если событие активно, то соответствующий транзакт может быть продвинут по системе; если продвижение невозможно (например, из-за занятости устройства), то событие (и транзакт) переводится в состояние задержки. Как только завершается обработка (продвижение) очередного активного транзакта, просматри- вается список задержанных транзактов, и ряд из них переводите активное состояние. Процедура повторяется до тех пор, пока в списке текущих событии не будут обработаны все активные собы- тия. После этого просматривает список будущих событий. Модельному времени присваивается значение, равное времени наступления ближайшего из этих событий. Данное событие заносится в список текущих событий. Затем просматриваются остальные события списка. Те из них, время кото- рых равно текущему модельному времени, также переписываются в список текущих событий. Про- смотр заканчивается, когда в списке остаются события, времена которых больше текущего модель- ного времени. В качестве иллюстрации к изложенному рассмотрим небольшой пример. Пусть в систему по- ступают транзакты трех типов, каждый из которых обслуживается отдельным устройством. Извест- ны законы поступления транзактов в систему и длительность их обслуживания. Таким образом, в системе существуют три параллельных независимых процесса (P 1 , Р 2 , Р 3 ). Временная диаграмма работы системы при обслуживании одного транзакта каждого типа пока- зана на рис. 7. Рис . 6. Временная диаграмма параллельных процессов Ha рисунке события, относящиеся к процессу Р 1 обозначены как С 1i , относящиеся к Р 2 и к Р 3 — соответственно как C 2i и С 3i . Время t: 06спуж соответствует времени обслуживания транзакта. Для каждого процесса строится своя цепь событий, однако списки событий являются; общими для всей модели. Формирование списков начинается с заполнения списка будущих событий. Как было отмечено выше, в этот список помещаются события, время наступления которых превышает текущее значение модельного времени. Очевидно, что на момент заполнения списка время наступления прогно- зируемых событий должно быть известно. На первом шаге t m =0 в список будущих событий заносятся события С 11 , С 21 , С 31 . Затем событие с наименьшим временем наступления — С 1Г — переносится в список текущих событий; если одновременных сним событий нет, то оно обрабатывается и исключается из Лекции по курсу ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ЭКОНОМИЧЕСКИХ ПРОЦЕССОВ Составитель – ст.преп.каф. ИТиМ Нохрина Г.Л. 34 списка текущих событий. После этого вновь корректируется список будущих событий и т. д., пока не истечет заданный интервал моделирования. Динамика изменения списков текущих и будущих событий для рассмотренного примера от- ражена в приведенной ниже таблице. Значения модельного времени Список будущих собы- тий Список текущих событий 0 C 11 C 21 C 31 0 T 11 C 21 С 31 С 12 C 11 T 21 C 31 С 12 С 22 C 21 Т 31 C 12 С 22 С 32 C 31 T 12 С 22 С 32 С 13 C 12 T 22 С 32 С 13 С 23 С 22 T 32 С 13 С 23 С 33 С 32 T 13 С 23 С 33 С 13 T 23 С 23 С 33 Знание механизма ведения списков событий просто необходимо разработчику модели; умение про- следить в динамике цепь происходящих в модели событий, во-первых, повышает уверенность создателя модели в том, что она работает правильно, и, во-вторых, существенно облегчает процесс отладки и мо- дификации модели. Лекции по курсу ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ЭКОНОМИЧЕСКИХ ПРОЦЕССОВ Составитель – ст.преп.каф. ИТиМ Нохрина Г.Л. 35 СРЕДА MATLAB Общие сведения История существования пакета М ATLAB, название которого происходит от словосочетания Ma- trix Laboratory (Матричная лаборатория) насчитывает уже более двух десятков лет. Можно считать, что развитие MATLAB «шло в ногу» с развитием средств вычислительной техники: от «больших» ЭВМ с маленькими интерактивными возможностями до настольных компьютеров, позволяющих использо- вать в работе все пять (а иногда и шесть) способов восприятия информации. И, несмотря на доста- точно высокую скорость смены поколений вычислительной техники, пакет MATLAB успевал впи- тывать все наиболее ценное от каждого из них. В результате к настоящему времени MATLAB представляет собой весьма удачное ; сочетание возможностей математики с последними достижениями в области вычислительной техники. Одним из основных достоинств пакета MATLAB является то, что для работы пользователю доста- точно знать о нем ровно столько, сколько требует решаемая задача. Так, в простейшем случае MATLAB может сыграть роль обыкновенного калькулятора, для использования которого достаточно помнить знаки математических операций. Если же решаемая задача требует создания каких-либо спе- циальных инструментов, MATLAB предоставляет в распоряжение пользователя практически универ- сальный язык объектно-ориентированного программирования в сочетании с интерактивными сред- ствами отладки создаваемых программ.' И все-таки в первую очередь MATLAB — это средство математического моделирования, обес- печивающее проведение исследований практически во всех известных областях науки и техники. При этом структура пакета позволяет эффективно сочетать оба основных подхода к созданию моде- ли: аналитический и имитационный. Именно в сфере математического моделирования MATLAB позволяет наиболее полно ис- пользовать все современные достижения компьютерных технологий, в том числе средства визуализа- ции и аудификации (озвучивания) данных, а также возможности обмена данными через Интернет. Кроме того, пользователь имеет возможность создавать средствами MATLAB собственный графиче- ский интерфейс, отвечающий как его вкусам, так и требованиям решаемой задачи. Как следует из названия пакета, он ориентирован в первую очередь на обработку массивов данных (матриц и векто- ров). Это позволило его разработчикам существенно повысить эффективность процедур, работающих с указанными типами данных, по сравнению с языками программирования «общего назначения» (Pas- cal, С и т. п.). С точки зрения пользователя, MATLAB представляет собой богатейшую библиотеку функ- ций (в MATLAB 5.3 их около 800), единственная проблема при работе с которой заключается в умении быстро отыскать те из них, которые нужны для решения данной задачи. Для облегчения поиска библиотека функций разбита на разделы. Те из них, которые носят общий характер и используются чаще, входят в состав ядра MATLAB. Другие функции, относя- щиеся к конкретной области, включены в состав соответствующих специализированных разделов. Эти разделы называются в MATLAB Toolboxes (наборы инструментов). Каждый из них имеет свое собственное название, отражаю? * его предназначение. Полная комплектация пакета MATLAB 5.3 содержит около 30 наборов инструментов. В их число входят как достаточно стандартные для ма- тематических пакетов средства (решение дифференциальных и алгебраических уравнений, инте- гральное исчисление, символьные вычисления и т. д.), так и нетрадиционные, способные претен- довать на определенную уникальность в своем роде: средства цифровой обработки изображений, поиска решений на основе нечеткой логики, аппарат построения и анализа нейронных сетей, сред- ства финансового анализа, целый ряд других. Кроме того, имеются средства взаимодействия с по- пулярными офисными продуктами компании Microsoft — MS Word и MS Excel. Для включения в состав рабочей конфигурации пакета того или иного набора инструментов требуется наличие со- ответствующего лицензионного соглашения. |