Имитационное моделирование. Основные понятия имитационного моделирования
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция 2
Имитационное моделирование. Основные понятия имитационного моделирования
Развитие моделей, использующих имитационный подход, связано с необходимостью исследования очень сложных систем, встречающихся на практике. Появилась возможность изучать сложные системы, не втискивая их в модели, удобные для применения известных математических методов. Возникло понятие имитационной системы.
Система - это совокупность элементов, которые принадлежат ограниченной части реального мира, являющейся объектом исследования. Сфера действия любой системы и любой модели системы однозначно определяется целью, для достижения которой она выделяется.
На систему могут воздействовать некоторые внешние факторы. Если они существенно влияют на поведение системы, экспериментировать с такой системой не имеет смысла и ее следует переопределить. Если внешние факторы частично воздействуют на систему, существуют следующие возможности:
• расширить определение системы, включив в него эти факторы;
• пренебречь этими факторами;
• трактовать их как входы в систему.
Если внешние факторы трактуются как входы в систему, предполагается, что они функционально задаются с помощью предписанных значений, таблиц или уравнений.
Пример. Разрабатывается модель производственной системы фирмы. В качестве входа в производственную систему рассматривается сбыт производимого этой фирмы изделия. В модель не включаются различные взаимосвязи, относящиеся к процессу сбыта, т.е. организация сбыта находится за границами моделируемой системы. Такая модель будет содержать только статическое описание предшествующих и предполагаемых продаж, используемое в качестве входа (см. рис. 1).
Рис.1. Модель производственной системы в условиях внешних воздействий
Объекты, которые находятся за границами системы, но могут влиять на ее поведение, формируют окружающую среду этой системы. Как следует из примера, системы представляют собой совокупность взаимодействующих элементов, которые подвергаются воздействию со стороны внешних факторов.
Имитационная система – это совокупность модели, имитирующей изучаемое явление и закодированной в ЭВМ, системы внешнего математического обеспечения и системы внутреннего обеспечения.
Имитационная модель – формализованное описание в ЭВМ изучаемого явления во всей его полноте, на грани нашего понимания. Все имитационные модели представляют собой модели "черного ящика" (см. лекцию 1).
Внешнее математическое обеспечение – совокупность упрощенных моделей явления (или отдельных его сторон) и методов анализа этих моделей. Оно призвано облегчить исследователю работу с имитационной моделью, оно ориентирует его при выборе тех или иных решений. Проверка этих решений на имитационной модели позволяет совершенствовать внешнее математическое обеспечение.
Внутреннее математическое обеспечение – языки моделирования; набор программ, реализующих эффективный диалог человека и машины.
Имитационная система представляет собой машинный аналог сложного реального явления. Она позволяет заменить эксперимент с реальным процессом экспериментом с математической моделью этого процесса в ЭВМ. Имитационные системы и имитационные эксперименты все шире применяются для проектирования сложных объектов и для изучения сложных процессов, когда реальный эксперимент слишком дорог или вообще невозможен.
Суть имитационного моделирования заключается в следующем:
• воспроизведение с необходимой достоверностью поведения отдельных элементов системы;
• накопление статистических данных о поведении элементов;
• статистическая обработка этих данных для получения статистических оценок и законов распределения.
В процессе имитационного моделирования выделяют следующие основные этапы:
• Формулировка проблемы;
• Формулировка математической модели;
• Программирование и отладка модели;
• Испытание и исследование модели;
• Эксплуатация имитационной модели;
• Анализ результатов моделирования.
Рассмотрим каждый этап отдельно.
Формулировка проблемы
Имитационные эксперименты на ЭВМ должны начинаться с формулировки проблемы, т.е. с изложения целей эксперимента, которые формулируются в виде либо (1) вопросов, на которые надо ответить, либо (2) гипотез, которые надо проверить, либо (3) воздействий, которые надо оценить.
Вопросы экономического характера могут быть, например, следующие: какое влияние окажет изменение федеральной квоты на прибыль данной коммерческой фирмы; как повлияет конкретная процедура оперативного планирования на производственные затраты.
Целью имитационного моделирования эксперимента может быть проверка гипотез относительно поведения некоторой сложной экономической системы, например, влияет ли гарантированный ежемесячный доход на уровень безработицы в стране; приведет ли уменьшение оборонных расходов к экономическому спаду; существенно ли различаются воздействия пяти различных стратегий рекламы на продажи фирмы. В каждом случае проверяемая гипотеза, а также критерии, решающие принять или отвергнуть ее, должны быть явно сформулированы.
Имитация может быть предпринята, чтобы оценить воздействие некоторой переменной управления на эндогенные (зависимые) переменные, описывающие поведение системы. Например, нужно оценить влияние различных денежных и налоговых политик на валовой национальный продукт. В общем случае требуется построить доверительные интервалы для оценок эндогенных переменных, полученных в имитационном эксперименте при различных стратегиях, правилах принятия решений, значениях параметров и т.д.
Формулировка математической модели
После того как сформулированы цели эксперимента, надо построить математическую модель, связывающую эндогенные переменные системы с ее экзогенными переменными. Экзогенные переменные определяются влияниями, источники которых находятся вне системы. Некоторые из них могут быть случайными величинами, которые порождают ряд проблем, не возникающих при использовании детерминированных моделей.
Построение математической модели начинается, например, экономической системы начинается с выбора переменных модели. Как правило, эндогенные переменные (выходная переменная системы) выбрать не трудно, т.к. они определяются в процессе формулировки целей исследования. Например, эндогенные переменные социально-экономической модели города могут включать доход на душу населения, занятость, уровень образования и преступности, распределение населения по возрастам и т.д. Основные трудности возникают при выборе входных (экзогенных) переменных, воздействующих на выходные переменные. Если входных переменных мало, то модель может стать неадекватной реальности, если их слишком много, резко усложниться процедура машинной имитации. Следовательно, надо строить такие модели, которые давали бы достаточно точное описание поведения системы и не требовали бы при этом слишком много времени на программирование и вычисления.
Модели систем делятся на дискретно и непрерывно изменяющиеся. Как правило, в имитационном моделировании время является основной независимой переменной. Другие переменные, включенные в модель, являются функциями времени, т.е. зависимыми переменными. При дискретной имитации зависимые переменные изменяются дискретно в определенные моменты времени. При непрерывной имитации зависимые переменные изменяются непрерывно в течение этого времени. При комбинированной имитации зависимые переменные могут изменяться дискретно, непрерывно или непрерывно с наложенными дискретными скачками.
На этапе предварительной проверки адекватности модели решаются, например, следующие вопросы:
1. Нет ли в модели несущественных переменных, которые не улучшают возможность предсказывать поведение эндогенных переменных системы?
2. Все ли существенные экзогенные переменные включены в модель?
3. Правильно ли сформулированы функциональные связи между входными и выходными переменными системы?
4. Верно ли оценены параметры модели?
5. Являются ли оценки параметров модели статистически значимыми?
6. В какой степени совпадают теоретические величины эндогенных переменных, полученные на основе ручного счета (программы еще нет), с прошлыми или фактическими значениями эндогенных переменных?
Программирование и отладка модели
При составлении программы, с помощью которой реализуются имитационные эксперименты с моделью, следует решить следующие задачи:
(1) составить саму программу;
(2) организовать ввод данных;
(3) генерировать недостающие данные.
Создание программы имитации начинается с построения блок-схемы логической последовательности действий, которые должны быть выполнены ЭВМ для получения зависимости эндогенных переменных от времени. При этом можно при написании программы воспользоваться универсальным языком (Фортран, Паскаль, СИ++ и т.д.) или применить специальный язык моделирования. В настоящее время известно более 500 языков моделирования. Такое множество языков частично обусловлено разнообразием классов моделируемых систем, целей и методов моделирования. Однако желание упростить и ускорить процесс создания моделей привело к реализации идеи автоматизации программирования имитационных моделей. Создан ряд систем, которые избавляют исследователя от программирования. Программа создается автоматически по одной из формализованных схем на основании задаваемых исследователем параметров системы, внешних воздействий и особенностей функционирования. Это наиболее перспективное направление развития средств имитационного моделирования. Опыт развития теории и практики имитационного моделирования в нашей стране и за рубежом показывает, что наиболее эффективным средством являются специальные имитационные языки, которых к настоящему времени создано уже немало и многие из них эффективно используются, особенно за рубежом, где ни один крупный проект не реализуется без проверки на имитационной модели. Наиболее известны языки: GPSS, GASP, SIMSCRIPT, DYNAMO, SIMULATE, реализующие различные подходы к моделированию.
Информация, используемая в имитационном эксперименте, может быть либо ведена из внешних носителей, либо сгенерирована с помощью специальных программ. Если среди экзогенных (входных) переменных модели есть случайные величины с известным вероятностным распределением, то надо построить численный процесс случайного выбора из совокупности с заданным распределением. Результатом повторения этого процесса на ЭВМ должно быть такое вероятностное распределение выборочных значений, которое соответствует вероятностному распределению изучаемой переменной.
Для получения случайных выборок, подчиненных некоторому закону распределения, используется метод Монте-Карло.
Формирование случайных чисел с заданным распределением методом Монте-Карло
В основе метода Монте-Карло лежит генерация случайных чисел r, которые должны быть равномерно распределены в интервале (0; 1) и далее производятся преобразования этих чисел в новые случайные числа, распределенные по желаемому закону. Таким образом, независимые случайные числа, распределенные на интервале (0,1), являются основой для генерации выборок всевозможных распределений.
Генераторы случайных чисел (ГСЧ)
Генераторы случайных чисел в виде подпрограмм есть во всех ЭВМ.
Генераторы псевдослучайных чисел должны удовлетворять следующим требованиям:
1. Числа равномерно распределены на интервале (0,1) и независимы, т.е. корреляция между случайными числами последовательности отсутствует.
2. Генерируется достаточное количество неповторяющихся чисел, т.е. период (цикл) генератора довольно длинный.
3. Последовательность случайных чисел воспроизводима. Это предполагает, что различные начальные значения (корни) дают различные последовательности.
4. Генератор должен быть быстродействующим, поскольку для моделирования может потребоваться большое число чисел.
5. Желательно использование малого объема памяти.
Если генератор выдает числа, смещенные в какую-то часть интервала (одни числа выпадают чаще других), то результат решения задачи, решаемой статистическим методом, может оказаться неверным. Поэтому проблема использования хорошего генератора действительно случайных и действительно равномерно распределенных чисел стоит очень остро.
Генераторы случайных чисел по способу получения чисел делятся на:
◦ физические;
◦ табличные;
◦ алгоритмические.
Физические ГСЧ
Примером физических ГСЧ могут служить: монета («орел» — 1, «решка» — 0); игральные кости; поделенный на секторы с цифрами барабан со стрелкой;
Задача «Генерация случайных чисел при помощи монеты»
Сгенерируйте случайное трехразрядное число, распределенное по равномерному закону в интервале от 0 до 1, с помощью монеты. Точность — три знака после запятой.
Первый способ решения задачи.
Подбросьте монету 9 раз, и если монета упала решкой, то запишите «0», если орлом, то «1». Итак, допустим, что в результате эксперимента получили случайную последовательность 100110100.
Начертите интервал от 0 до 1. Считывая числа в последовательности слева направо, разбивайте интервал пополам и выбирайте каждый раз одну из частей очередного интервала (если выпал 0, то левую, если выпала 1, то правую). Таким образом, можно добраться до любой точки интервала, сколь угодно точно.
Итак, 1: интервал [0; 1] делится пополам — [0; 0.5] и [0.5; 1], — выбирается правая половина, интервал сужается: [0.5; 1]. Следующее число, 0: интервал [0.5; 1] делится пополам — [0.5; 0.75] и [0.75; 1], — выбирается левая половина [0.5; 0.75], интервал сужается: [0.5; 0.75]. Следующее число, 0: интервал [0.5; 0.75] делится пополам — [0.5; 0.625] и [0.625; 0.75], — выбирается левая половина [0.5; 0.625], интервал сужается: [0.5; 0.625]. Следующее число, 1: интервал [0.5; 0.625] делится пополам — [0.5; 0.5625] и [0.5625; 0.625], — выбирается правая половина [0.5625; 0.6250], интервал сужается: [0.5625; 0.6250].
По условию точности задачи решение найдено: им является любое число из интервала [0.5625; 0.6250], например, 0.625.
В принципе, если подходить строго, то деление интервалов нужно продолжить до тех пор, пока левая и правая границы найденного интервала не СОВПАДУТ между собой с точностью до третьего знака после запятой.
Табличные ГСЧ
Табличные ГСЧ в качестве источника случайных чисел используют специальным образом составленные таблицы, содержащие проверенные некоррелированные, то есть никак не зависящие друг от друга, цифры. В табл. 1 приведен небольшой фрагмент такой таблицы. Обходя таблицу слева направо сверху вниз, можно получать равномерно распределенные от 0 до 1 случайные числа с нужным числом знаков после запятой (в нашем примере мы используем для каждого числа по три знака). Так как цифры в таблице не зависят друг от друга, то таблицу можно обходить разными способами, например, сверху вниз, или справа налево, или можно выбирать цифры, находящиеся на четных позициях.
Таблица 1.
Случайные цифры. Равномерно
распределенные от 0 до 1 случайные числа
Случайные цифры
Равномерно распределенные
от 0 до 1 случайные числа
9
2
9
2
4
2
6
0.929
9
5
7
3
4
9
3
0.204
5
9
1
6
6
5
7
6
0.269
…
…
Достоинство данного метода в том, что он дает действительно случайные числа, так как таблица содержит проверенные некоррелированные цифры. Недостатки метода: для хранения большого количества цифр требуется много памяти; большие трудности порождения и проверки такого рода таблиц, повторы при использовании таблицы уже не гарантируют случайности числовой последовательности, а значит, и надежности результата.
Алгоритмические ГСЧ
Имеется ряд методов получения случайных чисел. Одним из наиболее известных методов – применение рекурсивных формул, по которым на основании i-го случайного числа вычисляется (i+1)- е число. Поскольку последовательность чисел вычисляется детерминировано, то они не являются случайными и их обычно называют псевдослучайными числами. Так, одна из формул имеет вид:
(1)
Формула (1) при заданных целых константах m,n,c позволяет получить последовательность из c целых чисел. При реализации на ЭВМ значение r0 генерируют с использованием таймера машины. В этом случае для различных моментов времени запуска программы получают различные фрагменты псевдослучайной последовательности, смещенные друг относительно друга. Для получения одной и той же последовательности достаточно в качестве r0 выбрать одно и тоже число, например r0 =0.
Пример. m= 5, n=3,c= 8, r0=1. Тогда получим следующий ряд бесконечно повторяющихся значений: 1,0,3,2,5,4,7,6,1,…
В данной последовательности период равен 8, и каждое число от 0 до 7 появляется только 1 раз. Обычно для генерации перестановки чисел от 0 до 65525 предлагаются следующие константы: m= 25173, n=13849,c= 65536. Подбор таких констант – нетривиальная задача. Формула (1) позволяет получить последовательность целых чисел, равномерно распределенных в интервале от 0 до (с-1). Для нахождения числа, равномерно распределенного в интервале (0,1), необходимо разделить rk/c.
Если потребуется, чтобы случайное число x находилось в интервале (a; b), отличном от (0; 1), нужно воспользоваться формулой x = a + (b – a) · r, где r — случайное число из интервала (0; 1). Законность данного преобразования демонстрируется на рис. 2.
Рис. 2. Схема перевода числа из интервала (0; 1) в интервал (a; b)
Теперь x — случайное число, равномерно распределенное в диапазоне от a до b.
Математическое ожидание mr и дисперсия Dr такой последовательности, состоящей из n случайных чисел ri, должны быть следующими (если это равномерно распределенные случайные числа в интервале от 0 до 1):
Наилучшим образом удовлетворяет перечисленным выше требованиям к генератору широко распространенный конгруэнтный метод.
Конгруэнтный метод использует следующее рекурсивное уравнение:
(2)
где z0 – значение корня, ri является i – м псевдослучайным числом. Уравнение (2) определяет, что случайное число zi+1 равно остатку (azi +b), а, b, c – константы, выбор которых нетривиален.
За эталон генератора случайных чисел (ГСЧ) принят такой генератор, который порождает последовательность случайных чисел с равномерным законом распределения в интервале (0; 1). За одно обращение данный генератор возвращает одно случайное число. Если наблюдать такой ГСЧ достаточно длительное время, то окажется, что, например, в каждый из десяти интервалов (0; 0.1), (0.1; 0.2), (0.2; 0.3), …, (0.9; 1) попадет практически одинаковое количество случайных чисел — то есть они будут распределены равномерно по всему интервалу (0; 1). Если изобразить на графике k = 10 интервалов и частоты Ni попаданий в них, то получится экспериментальная кривая плотности распределения случайных чисел (см. рис. 3).
Рис. 3. Частотная диаграмма выпадения случайных чисел,
порождаемых реальным генератором
Заметим, что в идеале кривая плотности распределения случайных чисел выглядела бы так, как показано на рис. 4. То есть в идеальном случае в каждый интервал попадает одинаковое число точек: Ni = N/k, где N — общее число точек, k — количество интервалов, i = 1, …, k.
Рис. 4. Частотная диаграмма выпадения случайных чисел,
порождаемых идеальным генератором теоретически
Проверка качества работы генератора
От качества работы ГСЧ зависит качество работы всей системы и точность результатов. Поэтому случайная последовательность, порождаемая ГСЧ, должна удовлетворять целому ряду критериев.
Осуществляемые проверки бывают двух типов:
• проверки на равномерность распределения (ГСЧ должен выдавать близкие к следующим значения статистических параметров, характерных для равномерного случайного закона);
— математическое ожидание;
— дисперсия;
— среднеквадратичное отклонение.
• проверки на статистическую независимость:
1) Проверка на частоту появления цифры в последовательности
2) Проверка появления серий из одинаковых цифр
Моделирование случайного события
Пример. Выпускаются некоторые изделия, при этом известна рассматривается событие – получение бракованных изделий. Пусть известна вероятность выпуска бракованных изделий Pб = 0.1. Смоделировать выпадение этого события можно, разыграв равномерно распределенное случайное число из диапазона от 0 до 1 и установив, в какой из двух интервалов (от 0 до 0.1 или от 0.1 до 1) оно попало (см. рис. 7). Если число попадает в диапазон (0; 0.1), то выпущен брак, то есть событие произошло, иначе — событие не произошло (выпущено кондиционное изделие). При значительном числе экспериментов частота попадания чисел в интервал от 0 до 0.1 будет приближаться к вероятности P = 0.1, а частота попадания чисел в интервал от 0.1 до 1 будет приближаться к Pк = 0.9.
Рис. 7. Схема использования генератора случайных
чисел для имитации случайного события
Фрагмент алгоритма представлен на рис. 8.
Рис. 8. Блок-схема алгоритма
имитации случайного события
Моделирование полной группы несовместных событий
События называются несовместными, если вероятность появления этих событий одновременно равна 0. Отсюда следует, что суммарная вероятность группы несовместных событий равна 1.
Обозначим через a1, a2, …, an события, а через P1, P2, …, Pn — вероятности появления отдельных событий.
Так как события несовместны, то сумма вероятностей их выпадения равна 1: P1 + P2 + … + Pn = 1.
Снова используем для имитации выпадения одного из событий генератор случайных чисел, значение которых также всегда находится в диапазоне от 0 до 1. Отложим на единичном интервале [0; 1] отрезки P1, P2, …, Pn. Понятно, что в сумме отрезки составят точно единичный интервал. Точка, соответствующая выпавшему числу из ГСЧ на этом интервале, укажет на один из отрезков. Соответственно в большие отрезки случайные числа будут попадать чаще (вероятность появления этих событий больше!), в меньшие отрезки — реже (см. рис. 9).
Рис. 9. Схема генерации несовместных случайных событий
с помощью генератора случайных чисел
На рис. 10 показана блок-схема, которая реализует описанный алгоритм. Алгоритм определяет с помощью фильтра, построенного в виде последовательности условных операций (IF), в какой из интервалов — от 0 до P1, от P1 до (P1 + P2), от (P1 + P2) до (P1 + P2 + P3) и так далее — попало число, сгенерированное генератором случайных чисел. Если число попало в какой-то из интервалов (что произойдет всегда и обязательно), то это соответствует выпадению связанного с ним события.
Рис. 10. Блок-схема алгоритма имитации случайных несовместных событий
Пример с возможным исходом четырех несовместных случайных событий.
Промоделируем выпадение последовательности событий — будем выбирать из колоды карт наугад карту (определять ее масть). Карты в колоду возвращать не будем.
В колоде 36 карт четырех мастей по 9 карт каждой масти. Интервал от 0 до 1 разделим на равные четыре части: [0.00—0.25], [0.25—0.50], [0.50—0.75], [0.75—1.00]. Первая часть будет соответствовать картам масти червей (Ч), вторая — картам масти пик (П), третья — картам масти виней (В), четвертая — бубей (Б).
Взять случайное равномерно распределенное число в интервале от 0 до 1 из таблицы случайных чисел или стандартного ГСЧ. Пусть, например, это будет число 0.597. Данное число попадает в третий интервал, соответствующий масти В. Произошло случайное событие: «Масть выпавшей карты — В».
Поскольку теперь в колоде 9 карт масти Ч, 9 карт масти П, 8 карт масти В, 9 карт масти Б, то интервал от 0 до 1 будет разбит на отрезки длиной: 9/35, 9/35, 8/35, 9/35, то есть [0.000—0.257], [0.257—0.514], [0.514—0.743], [0.743—1.000]. Разыграем случайное равномерно распределенное число в интервале от 0 до 1. Например, 0.321. Данное число попадает во второй интервал, соответствующий масти П.
Продолжая процесс, можно получить (в зависимости от конкретных случайных чисел), например, такую последовательность: В—П—В—Ч—Б—П—Ч—… (см. рис. 11).
Рис. 11. Иллюстрация работы генератора случайных чисел
на примере выбора карт из колоды
Метод Монте-Карло
Представим исследуемый объект в виде «черного ящика», причем значения всех или отдельных параметров модели на входах X=(x1,x2,…,xn) и выходах Y=(y1,y2,…,yn) определяются случайными величинами, заданными плотностями вероятности, причем Y = F(X) и F будет функцией от случайных величин (рис. 12).
Рис. 12. Обозначение «черного ящика»
Вероятностные модели базируются на использовании больших серий испытаний со случайными параметрами, причем точность полученных результатов зависит от количества проведенных опытов. Рассмотрим метод Монте-Карло, с помощью которого имитируют работу сложной системы, подверженной случайным возмущениям.
Генерация случайных величин состоит из двух этапов:
• генерация случайных чисел ri, равномерно распределенных от 0 до 1;
• преобразование случайных чисел ri в случайные величины xi, которые распределены по необходимому пользователю (произвольному) закону распределения.
Пример 1. Применим метод Монте-Карло для вычисления интеграла, значение которого аналитическим способом найти не удается:
На рис. 13 представлен график функции f(x). Вычислить значение интеграла этой функции — значит, найти площадь под этим графиком.
Рис. 13. Определение значения интеграла
методом Монте-Карло
Ограничиваем кривую сверху, справа и слева. Случайным образом распределяем точки в прямоугольнике поиска. Обозначим через N1 количество точек, принятых для испытаний (то есть попавших в прямоугольник, эти точки изображены на рис. 13 красным и синим цветом), и через N2 — количество точек под кривой, то есть попавших в закрашенную площадь под функцией (эти точки изображены на рис. 13 красным цветом). При большом числе испытуемых точек отношение N2 / N1 будет приблизительно равно отношению площади под кривой (величине интеграла) к площади выделенного прямоугольника:
Фрагмент алгоритма Монте-Карло представлен на рис. 14.
Рис. 14 Фрагмент алгоритма реализации
метода Монте-Карло
Значения r1 и r2 на рис. 14 являются равномерно распределенными случайными числами из интервалов (x1; x2) и (c1; c2) соответственно.
Эффективность метода Монте-Карло зависит от:
• генератора случайных чисел;
• от объема выборки, то есть от количества точек, необходимых для обеспечения решения с заданной точностью.
Эксперименты показывают: для увеличения точности решения в 10 раз, объем выборки нужно увеличить в 100 раз, т.е. точность примерно пропорциональна корню квадратному из объема выборки:
Схема использования метода Монте-Карло при исследовании
систем со случайными параметрами
Построив модель системы со случайными параметрами, на ее вход подают входные сигналы от генератора случайных чисел (ГСЧ), как показано на рис. 15. ГСЧ устроен так, что он выдает равномерно распределенные случайные числа rр р из интервала (0; 1). Так как одни события могут быть более вероятными, другие — менее вероятными, то равномерно распределенные случайные числа от генератора подают на преобразователь закона случайных чисел (ПЗСЧ), который преобразует их в заданный пользователем закон распределения вероятности, например, в нормальный или экспоненциальный закон. Эти преобразованные случайные числа x подают на вход модели. Модель отрабатывает входной сигнал x по некоторому закону y = φ(x) и получает выходной сигнал y, который также является случайным.
Для определения k-го значения последовательности стандартного нормального распределения достаточно использовать сумму из 12 равномерно распределенных чисел:
где (см. формулу (1)).
Рис. 15. Общая схема метода статистического моделирования
В блоке накопления статистики (БНСтат) установлены фильтры и счетчики. Фильтр (некоторое логическое условие) определяет по значению y, реализовалось ли в конкретном опыте некоторое событие (выполнилось условие, f = 1) или нет (условие не выполнилось, f = 0). Если событие реализовалось, то счетчик события увеличивается на единицу. Если событие не реализовалось, то значение счетчика не меняется. Если требуется следить за несколькими разными типами событий, то понадобится несколько фильтров и счетчиков Ni. Всегда ведется счетчик количества экспериментов — N.
Далее отношение Ni к N, рассчитываемое в блоке вычисления статистических характеристик (БВСХ) по методу Монте-Карло, дает оценку вероятности pi появления события i, то есть указывает на частоту его выпадения в серии из N опытов. Это позволяет сделать выводы о статистических свойствах моделируемого объекта.
Например, событие A совершилось в результате проведенных 200 экспериментов 50 раз. Это означает, согласно методу Монте-Карло, что вероятность совершения события равна: pA = 50/200 = 0.25. Вероятность того, что событие не совершится, равна, соответственно, 1 – 0.25 = 0.75.
В блоке оценки достоверности (БОД) анализируют степень достоверности статистических экспериментальных данных, снятых с модели (принимая во внимание точность результата ε, заданную пользователем) и определяют необходимое для этого количество статистических испытаний. Если колебания значений частоты появления событий относительно теоретической вероятности меньше заданной точности, то экспериментальную частоту принимают в качестве ответа, иначе генерацию случайных входных воздействий продолжают, и процесс моделирования повторяется. При малом числе испытаний результат может оказаться недостоверным. Но чем больше число испытаний, тем точнее ответ (согласно центральной предельной теореме).
Заметим, что оценивание ведут по худшей из частот. Это обеспечивает достоверный результат сразу по всем снимаемым характеристикам модели.
Пример 2. Нахождение площади фигуры методом Монте-Карло. Приведем алгоритм вычисления площадей геометрических фигур с использованием метода Монте-Карло:
• геометрическая фигура полностью помещается внутрь прямоугольника или квадрата;
• с помощью генератора случайных чисел (ГНС) задаются координаты точек внутри прямоугольника или квадрата;
• предполагается, что отношение числа точек, попавших внутрь фигуры, к общему числу точек в прямоугольнике или квадрате приблизительно равно отношению площади фигуры к площади прямоугольника или квадрата, причем это отношение тем точнее, чем больше количество точек.
Вычислим методом Монте-Карло площадь пятиугольника с координатами углов (0, 0), (0, 10), (5, 20), (10, 10), (7, 0).
Нарисуем в двухмерных координатах заданный пятиугольник, вписав его в прямоугольник, чья площадь, как нетрудно догадаться, составляет (10 – 0) · (20 – 0) = 200 (см. рис. 16).
Рис. 16. Иллюстрация к решению задачи
о площади фигуры методом Монте-Карло
Используем таблицу случайных чисел для генерации пар чисел R, G, равномерно распределенных в интервале от 0 до 1. Число R будет имитировать координату X (0 ≤ X ≤ 10), следовательно, X = 10 · R. Число G будет имитировать координату Y (0 ≤ Y ≤ 20), следовательно, Y = 20 · G. Сгенерируем по 10 чисел R и G и отобразим 10 точек (X; Y) на рис. 16 и в табл. 3.
Таблица 3
Решение задачи методом Монте-Карло
Номер точки
R
G
X
Y
Точка (X; Y) попала в прямоугольник?
Точка (X; Y) попала в пятиугольник?
1
0.8109
0.3557
8.109
7.114
Да
Да
2
0.0333
0.5370
0.333
10.740
Да
Нет
3
0.1958
0.2748
1.958
5.496
Да
Да
4
0.6982
0.1652
6.982
3.304
Да
Да
5
0.9499
0.1090
9.499
2.180
Да
Нет
6
0.7644
0.2194
7.644
4.388
Да
Да
7
0.8395
0.4510
8.395
9.020
Да
Да
8
0.0415
0.6855
0.415
13.710
Да
Нет
9
0.5997
0.1140
5.997
2.280
Да
Да
10
0.9595
0.9595
9.595
19.190
Да
Нет
Всего:
10
6
Статистическая гипотеза заключается в том, что количество точек, попавших в контур фигуры, пропорционально площади фигуры: 6:10 = S:200. То есть, по формуле метода Монте-Карло, получаем, что площадь S пятиугольника равна: 200 · 6/10 = 120.
Проследим, как менялась величина S от опыта к опыту (см. табл. 4).
Таблица 4
Оценка точности ответа
Количество испытаний N
Оценка вероятности попадания случайной точки в испытуемую область
Оценка площади S методом Монте-Карло
1
1/1 = 1.00
200
2
1/2 = 0.50
100
3
2/3 = 0.67
133
4
3/4 = 0.75
150
5
3/5 = 0.60
120
6
4/6 = 0.67
133
7
5/7 = 0.71
143
8
5/8 = 0.63
125
9
6/9 = 0.67
133
10
6/10 = 0.60
120
Поскольку в ответе все еще меняется значение второго разряда, то возможная неточность составляет пока больше 10%. Точность расчета может быть увеличена с ростом числа испытаний (см. рис. 17).
Рис. 17. Иллюстрация процесса сходимости определяемого
экспериментально ответа к теоретическому результату
Испытание и исследование модели
Проверка правильности алгоритма моделирования исследуемого объекта в ходе имитации его поведения, определение адекватности модели и объекта исследования.
Эксплуатация имитационной модели
Введем ряд определений. В теории планирования эксперимента есть два важных понятия: фактор и реакция, которые относятся к переменным. Если цель эксперимента – изучить влияние переменной X на переменную Y, то X – фактор, а Y – реакция. В экспериментах с машинными моделями экономических систем реакция обязательно должна быть выходной переменной, а фактор обычно является входной (управляемой) переменной. Например, в машинной модели фирмы реакциями могут быть доход, выпуск продукции, полезность. Затраты на рекламу, используемая рабочая сила, затраты капитала, валовой национальный доход и доход на душу населения могут рассматриваться как факторы.
Необходимо провести классификацию факторов по следующей схеме:
1. Управляем ли рассматриваемый фактор (в примере с фирмой правила планирования производства лежат не на исследователе, а на администрации)
2. Наблюдаемы ли значения фактора (измеряются или наблюдаются)
3. Являются ли факторы количественными или качественными (фактор называется количественным, если его значения являются числами, влияющими на реакцию, в противном случае фактор – качественный). В модели фирмы количественными факторами могут быть сумма, потраченная на рекламу, затраты рабочей силы. Такие входы, как правила принятия решений или стратегии управления, выбираемые из множества альтернатив, относятся к качественным факторам.
4. Является ли фактор фиксированным или случайным.
Этап начинается с составления плана экспериментов, позволяющего исследователю получить максимум информации при минимальных затратах на проведение вычислений и обработку результатов. При этом необходимо выполнить статистическое обоснование плана экспериментов. Планирование эксперимента представляет собой процедуру выбора минимального числа и условий проведения опытов, необходимых и достаточных для решения поставленной задачи с заданной точностью. После составления плана экспериментов приступают к их реализации. Итогом работы являются результаты экспериментов на модели.
Анализ результатов моделирования.
После проведения эксперимента необходимо обработать его результаты. Для обработки результатов моделирования в условиях стохастической неопределенности используются такие разделы теории вероятности, как дисперсионный анализ (все факторы исследуются качественно), регрессионный анализ (пригоден для обработки результатов эксперимента с количественными факторами) и ковариационный анализ (одна часть факторов исследуется качественно, другая количественно). Большая часть методов планирования эксперимента основана на дисперсионном анализе.
Пример задачи имитационного моделирования
Одной из наиболее простых и наглядных задач имитационного моделирования является система массового обслуживания (СМО). Под СМО понимают системы, на вход которых подается поток однотипных заявок (событий), обработка которых выполняется одним или несколькими однотипными каналами (устройствами).
Пример. Одноканальная СМО с отказами.
Рассмотрим имитатор СМО с отказами. Пусть на вход системы поступает случайный поток заявок, интервал времени между которыми является случайной величиной, распределенной по равномерному закону в интервале до . Время выполнения w заявки в канале также случайно и подчинено равномерному закону. Требуется определить вероятность отказа в обслуживании и коэффициент загрузки канала.
Выполним декомпозицию данной системы:
1. Источник заявок, который характеризуется:
◦ общим числом заявок за весь интервал наблюдений;
◦ числом заявок;
◦ законом распределения интервалов времени между появлениями заявок;
◦ временем появления текущей заявки.
2. Канал, который характеризуется:
• Своим состоянием S(t) (занят или свободен в момент времени t);
• Числом обслуженных заявок;
• Суммарным временем нахождения в занятом состоянии;
• Производительностью w (закон распределения времен выполнения заявок определенного типа);
• Временем окончания обслуживания n –ой заявки.
Имитация системы происходит в системном времени t.
Вероятность отказа =(-(t))/ ;
коэффициент загрузки канала:= ( t)/ t.
Блок-схема имитатора дана на рис. 18, на рис. 19 дан алгоритм на псевдоязыке. На рис. 20 показано изменение параметров эффективности в зависимости от системного времени при исходных данных: w1==1,w2==3, =200.
Рис. 18. Блок-схема имитатора Рис. 19. Алгоритм имитатора одноканальной СМО
Рис. 20.Изменение параметров эффективности в зависимости от системного времени
Для рассматриваемого случая оценка вероятности отказа стремится к 0,34, а оценка коэффициента загрузки - к значению 0,66.