
- •1. Основные понятия методологии научных исследований.
- •1. 2 Основы анализа и синтеза сложных технических систем
- •2. Проектно-исследовательские задачи при синтезе сложных систем.
- •2. 1 Проектирование сложной технической системы как процесс принятия решений на основе исследований
- •2. 2 Аспекты исследования
- •3.Методы анализа и синтеза сложных технических систем.
- •3. 1 Определение цели системы
- •3. 2 Применение сценариев
- •3. 3 Определение цели в процессе синтеза системы
- •4. Содержание и взаимосвязь основных этапов синтеза технических систем.
- •4.1Особенности процесса постановки задач.
- •4. 2Начальная стадия синтеза системы
- •5. Декомпозиция проектно-исследовательской задачи
- •5. 1 Цели, показатели и критерии
- •5. 2 Декомпозиция задачи синтеза системы, иерархия целей исследования и показателей эффективности
- •6. Проблема оптимизации в проектно-исследовательских задачах. Критерии оптимальности.
- •6. 1 Учет затрат ресурсов. Критерий «стоимость — эффективность»
- •6. 2 Построение критерия для случая векторного показателя
- •6. 3 Некоторые рекомендации по выбору критериев
- •7. Методы решения оптимизационных задач.
- •7. 1 Классификация задач оптимизации
- •7. 2 Методы безусловной оптимизации
- •7. 3 Методы одномерного поиска
- •7. 4 Методы нулевого порядка
- •8. Многокритериальные задачи оптимизации. Принцип Парето.
- •8. 1 Методы свертывания показателей
- •8. 2 Использование принципа Парето
- •9. Иерархическая система моделей для проектно-исследовательских работ. Физические и математические модели.
- •9. 1 Модели для синтеза систем
- •9. 2 Учет возможностей эвм
- •9. 3 Система моделей для проектно-исследовательских работ
- •10. Имитационное моделирование при проведении проектно-исследовательских работ.
- •10. 1 Математический эксперимент,
- •10. 2 Вычислительная система
- •10. 3 Имитационное моделирование
- •10. 3 Регрессионные модели
- •11. Методы учета неопределенных факторов при синтезе технической системы.
- •11. 1 Применение байесовского подхода при выработке рекомендаций.
- •12. Анализ результатов исследований.
10. 3 Имитационное моделирование
Имитационное моделирование, как статистический эксперимент
При решении различных задач синтеза СТС широкое распространение получило имитационное моделирование. Так, будем называть исследование на ЭВМ, при котором конечные результаты работы СТС, например показатели эффективности, определяют путем воспроизведения (имитации) процесса ее функционирования. При этом обычно стремятся воспроизвести процесс функционирования СТС, настолько полно и детально учитывая реальные свойства СТС и условия ее функционирования, насколько это необходимо и достаточно для решения поставленной задачи.
При синтезе СТС с помощью имитационного моделирования решаются следующие задачи:
изучения процесса функционирования синтезируемой СТС для проверки и обоснования принятых технических решений или для поиска новых технических решений;
проверки результатов, полученных на более простых моделях, обоснования допущений, принятых в этих моделях;
получения данных для разработки более простых моделей и, в частности, для построения регрессионной модели; выполнения расчетов для различных вариантов структуры и параметров СТС и характеристик внешней среды (вариантных расчетов) с целью получения рекомендаций по выбору предпочтительных параметров и структуры СТС; получения результатов, заменяющих полностью или частично ^, натурные испытания созданных образцов СТС или ее компонентов.
Как видно, пока еще не имеется четкой грани между понятиями «математический эксперимент» и «имитационное моделирование». В широком смысле слова все виды исследований на современной • ВС можно трактовать как математический эксперимент, т. е. как эксперимент над математической моделью, и тогда 'имитационное моделирование будет одной из разновидностей математического эксперимента. В узком смысле слова, математический эксперимент — это исследование на ВС, заменяющее полностью или частично физический, химический, биологический, социологический и другие эксперименты, целью которого является изучение закономерностей природы и общества.
Поскольку всякий достаточно сложный процесс в реальном мире подчиняется статистическим закономерностям, имитационное моделирование учитывает различные случайные факторы (начальные условия, погрешности изготовления, возмущения и т. д.). Оно представляет собой развитие метода статистических испытаний (метода Монте-Карло) для изучения случайных процессов, имеющих место ,в сложных практических задачах. Имитационное моделирование, подобно методу Монте-Карло, основано на использовании выборок для получения статистических оценок изучаемых величин. Этот принцип предопределяет следующую схему имитационного моделирования:
разрабатывается модель, я составляется программа для осуществления одного испытания — одной реализации случайного процесса;
случайные факторы описываются соответствующими распределениями вероятностей;
разыгрываются реализации случайных факторов с помощью датчиков псевдослучайных чисел — подпрограмм, имеющихся в составе математического обеспечения ВС;
для разыгранных реализаций случайных факторов вычисляется реализация случайного процесса от его начального до конечного момента, т. е. осуществляется «прогон модели»;
с целью получения выборок реализаций случайного процесса испытание (эксперимент, «прогон модели») многократно повторяется;
с помощью методов математической статистики обрабатываются результаты испытаний и определяются статистические характеристики изучаемых величин.
Таким образом, имитационное моделирование СТС представляет собой статистический эксперимент, выполняемый на ВС, отличительными особенностями которого являются достаточно подробное воспроизведение процесса функционирования СТС, подчиняющегося статистическим закономерностям, получение достаточно большого числа реализаций этого процесса и обработка с помощью методов математической статистики результатов моделирования.
При организации имитационного моделирования возникает ряд методических вопросов, ответы на которые могут быть получены с помощью методов математической статистики. Один из вопросов — как использовать таблицы (подпрограммы) псевдослучайных чисел для получения выборки, соответствующей заданному распределению вероятностей, освещен в специальной литературе [60, 61].
Структура имитационной модели СТС и способ обработки результатов моделирования зависят от таких факторов, как стационарность и эргодичность процессов в изучаемой СТС, а также от того, в каком режиме — переходном или установившемся — требуется определить при моделировании показатели эффективности СТС. В том случае, когда процесс в СТС — стационарный и эргодичный, а искомыми являются показатели эффективности СТС в установившемся режиме ее функционирования, их можно рассчитать, обрабатывая статистически результаты моделирования одной достаточно длинной реализации процесса в СТС. При этом, чтобы, исключить влияние переходного процесса в СТС на результаты моделирования, их обработку следует начинать, отступив от начала моделирования на интервал, соответствующий предполагаемому времени переходного процесса. Если же процесс в изучаемой СТС — неэргодичный или нестационарный, или если эффективность СТС требуется оценить в переходном режиме, то имитационное моделирование должно предусматривать получение и обработку многих реализаций моделируемого процесса.
Во время обработки результатов моделирования возникают и: другие вопросы, относящиеся к математической статистике. Такими вопросами, в частности, являются понижение дисперсий оценок показателей эффективности СТС при заданном числе полученных при моделировании реализаций, а также применение таких схем съема измерений при моделировании с использованием эргодического свойства, с помощью -которых достигается статистическая независимость измерений.
Затраты машинного времени на имитационное моделирование могут быть сокращены, а проведенные испытания использованы наиболее эффективно, если при планировании вычислений руководствоваться не эвристическими соображениями исследователя, а привлекать методы оптимального планирования экспериментов
Построение имитационных моделей дискретных систем
Имитационные модели дискретных систем отличаются громоздкостью, сложными связями между ее элементами, большим количеством логических условий, наличием параллельно протекающих процессов. Все это обусловливает сложность их для алгоритмизации и выражения алгоритмов средствами универсальных языков программирования.
Мощным инструментом имитационного моделирования сложных систем являются проблемно-ориентированные системы программирования, например, СЛЭНГ, СИМУЛА, С-Р55 [14, 16, 59]. Входные языки таких систем называют языками моделирования. Они обладают важным свойством — позволяют исследователю, незнакомому с тонкостями программирования, формулировать задачу исследования на содержательном уровне в терминах имитационной модели. Их применение дает возможность исследователю сосредоточить внимание на существе изучаемого явления и не отвлекаться на решение других вопросов программирования. Язык моделирования состоит из абстрактных понятий, применимых к широкому классу явлений. Исследователь должен лишь отождествить элементы моделируемой системы и процессы, протекающие в ней, с соответствующими понятиями языка и описать их по формальным правилам.
Рассмотрим основные принципы и подходы, применяемые в языках моделирования, на примере системы ОР35, которая предназначена для имитационного моделирования сложных дискретных систем. С ее помощью можно моделировать системы массового обслуживания, технологические процессы, исследовать эффективность АСУ, работу автоматических линий и т. д.
В состав системы ОР55 входит язык, на котором исследователь составляет описание моделируемой системы, и специальная программа, которая имитирует работу системы по ее описанию. Эта программа называется симулятором (дословно — «имитатор»). Язык ОР53 состоит из набора абстрактных понятий — объектов, в терминах которых может быть описана моделируемая система. Объекты разделены на четыре класса: динамические, аппаратно-ориентированные, статистические и операционные.
Динамические объекты — суть абстракции, с их помощью изображаются элементы внешних потоков, «обслуживаемых» моделируемой системой. Динамические объекты называются транзактами. Они «создаются» и «уничтожаются» так, как это нужно в процессе моделирования. С их помощью, например, имитируется входной поток заявок, поступающих в систему массового обслуживания, а также потоки отказов, которым подвержены элементы изучаемой системы.
Аппаратно-ориентированные объекты соответствуют оборудованию моделируемой системы. Они «обслуживают» транзакты. К ним относятся «устройства», «накопители» и «логические переключатели».
Устройство может одновременно обслуживать только один транзакт, при этом обслуживание может быть прервано другим транзактом, а отстраненный от обслуживания транзакт или уничтожается, или ожидает повторного обслуживания, или пытается войти в какое-то другое устройство. Отстранением от обслуживания, например, имитируется отказ какого-либо элемента СТС. По каждому устройству, имеющемуся в исследуемой системе, автоматически накапливается статистика: отношение времени, в течение которого оно было занято, к общему времени моделирования (коэффициент использования); общее число поступивших в него транзактов; среднее время использования устройства одним транзактом и т. д.
Накопитель — устройство с ограниченной емкостью, которое может одновременно обслуживать несколько транзактов. Транзакт может «войти» в накопитель только при условии, что в нем в данный момент имеется достаточное число мест. Статистика работы накопителя включает среднее число занятых мест в нем за время «прогона модели», коэффициент использования, общее число транзактов, поступивших в накопитель, среднее время пребывания транзакта в нем.
Логический переключатель является индикатором с двумя устойчивыми состояниями. При прохождении транзакта через переключатель последний может принимать состояние «включен» или «выключен» и изменять путь других транзактов.
Статистические объекты применяются для оценки поведения исследуемой системы. К ним относятся очереди и таблицы. Каждой очереди соответствует перечень транзактов, задержанных в какой-либо точке системы, и запись длительности этих задержек. Таблицы используются для построения распределений выбранных исследователем случайных величин, например моментов прохождения транзактов через заданные точки системы.
Операционные объекты называются «блоками». Они формируют логику моделируемой системы, давая транзактам указания, куда идти и что делать дальше. Каждый блок имеет определенную логику работы и в общем случае выполняет довольно много функций. Например, блок 5Е12Е (захват) сначала проверяет, свободно ли устройство, на которое претендует транзакт. Если устройство занято, то транзакт остается в этом блоке и повторяет попытку снова занять устройство в следующий момент времени.
Для того чтобы смоделировать СТС с помощью системы ОР55, надо составить описание СТС в терминах языка этой системы. Это описание представляет собой программу, которая управляет регулятора С-Р55. При этом симулятор генерирует транзакты и регулирует их от блока к блоку аналогично тому, как движутся II реальной системе единицы потоков, изображаемые транзактами. Каждое продвижение транзакта является событием, которое происходит в дискретный момент времени. Симулятор регистрирует время наступления каждого события и затем производит их обработку в правильной временной последовательности. Для поддержания правильной временной последовательности симулятор моделирует часы.
При составлении описания имитационной модели операцию СТС изображают в виде схемы последовательности событий — схемы моделирования. Каждый элемент этой схемы представляет собой событие, которое в конечном счете описывается одним блоком. Блоки соединяют линиями, показывающими путь транзакта от одного блока к другому. В блок может входить несколько линий. Так изображается тот факт, что он является общим для нескольких последовательностей событий. Альтернативные ситуации, которые могут возникнуть в блоке, изображаются двумя или более линиями, выходящими из него. Выбор пути при наличии нескольких вариантов может быть случайным или логическим, т. е. зависящим от состояния системы в момент выбора. Случайные величины генерируются с помощью функций их распределения, заданных исследователем, и датчиков равномерно распределенных на интервале [О, 1] псевдослучайных чисел.
При составлении описания моделируемой системы исследователь должен хорошо знать функции, которые выполняют блоки языка ОР55. Руководство по использованию этой системы можно найти в [14].
В качестве примера рассмотрим имитационную модель одноканальной системы массового обслуживания, состоящую из одного обслуживающего «прибора». Если поступающая в систему заявка застает «прибор» занятым, то она становится в очередь и ожидает его освобождения. Пусть исследователя интересуют среднее время обслуживания заявки, среднее время ожидания в очереди и средняя длина очереди за время моделирования. Для решения этой задачи имитационную модель можно представить в виде следующей последовательности событий:
1) генерации транзакта в соответствии с заданной интенсивностью потока заявок.
2) входа транзакта в очередь на «прибор» Р11Е1Ш (этот блок не задерживает транзакт и дает указание симулятору собрать статистику по очереди);
3) попытки занять «прибор» 5Е12Е (если он занят, то транзакт
•будет оставаться в этом блоке, т. е. в очереди, вплоть до освобождения прибора);
4) выхода из очереди ВЕРАКТ (этот блок не задерживает транзакт и нужен для регистрации времени выхода транзакта из
•очереди);
5) обслуживания АОУАНСЕ (блок имитирует случайное время обслуживания в соответствии с заданным законом распределения);
6) освобождения прибора КЕЬЕАЗЕ;
7) уничтожения транзакта ТЕ^МШАТЕ.
Для организации заданного количества «прогонов» этой модели исследователь должен использовать управляющие операторы ОР55. Отметим, что запись этой модели на языке ОР53 будет содержать всего семь блоков, каждый из которых кодируется на одной перфокарте. В то же время программа моделирования этой же системы на ФОРТРАНе состояла бы из нескольких десятков перфокарт.