Метод Монте-Карло имитационного моделирования

Сыктывкарский Государственный Университет

Колледж Экономики, Права и Информатики

Программное обеспечение вычислительной техники  и автоматизированных систем 
 
 

Курсовая

Метод Монте-Карло

имитационного моделирования 
 

                  руководитель: Ванеева А.Г

                     выполнила: Бакина М.Л 
                 
                 
                 
                 

Сыктывкар 2011 

Содержание:

Введение_______________________________________________________3

1.Понятие и терминология имитационного моделирования____________ 4

     1.1.Применение имитационного моделирования_________________4

     1.2.Виды имитационного моделирования_______________________6

2.Метод Монте-Карло___________________________________________8

     2.1 История_______________________________________________8

     2.2 Метод Монте-Карло в имитационном моделирование__________10

3.Нахождение числа _____________________________________________14

Заключение____________________________________________________19

Используемая  литература________________________________________20 
 
 
 
 
 
 
 
 
 

Введение

     В наше время все чаще возникают  вопросы, воплощение которых невозможно на практике. Это послужило появлению имитационного моделирования. В частности метод Монте-Карло.

       Годом рождения метода Монте-Карло считается 1949 год, когда в свет выходит статья Метрополиса и Улама «Метод Монте-Карло». Название метода происходит от названия города в княжестве Монако, широко известного своими многочисленными казино, поскольку именно рулетка является одним из самых широко известных генераторов случайных чисел. Станислав Улам пишет в своей автобиографии «Приключения математика», что название было предложено Николасом Метрополисом в честь его дяди, который был азартным игроком.

   Целью моей работы является:

  • -Освоить метод Монте-Карло имитационного моделирования.

     Для достижения поставленной цели необходимо решить ряд задач:

  • Изучение технической литературы
  • Решение задачи методом Монте-Карло имитационного моделирования
 
 
 
 
 
 
 

     1.Понятие  и терминология  имитационного моделирования.

     Имитационное  моделирование — метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности. Такую модель можно «проиграть» во времени как для одного испытания, так и заданного их множества. При этом результаты будут определяться случайным характером процессов. По этим данным можно получить достаточно устойчивую статистику.

     Имитационное  моделирование — это метод  исследования, при котором изучаемая  система заменяется моделью, с достаточной  точностью описывающей реальную систему и с ней проводятся эксперименты с целью получения  информации об этой системе. Экспериментирование  с моделью называют имитацией (имитация — это постижение сути явления, не прибегая к экспериментам на реальном объекте).

     Имитационное  моделирование — это частный  случай математического моделирования. Существует класс объектов, для которых  по различным причинам не разработаны  аналитические модели, либо не разработаны  методы решения полученной модели. В этом случае аналитическая модель заменяется имитатором или имитационной моделью.

     Имитационным  моделированием иногда называют получение  частных численных решений сформулированной задачи на основе аналитических решений  или с помощью численных методов.

     Имитационная  модель — логико-математическое описание объекта, которое может быть использовано для экспериментирования на компьютере в целях проектирования, анализа  и оценки функционирования объекта.

     1.1.Применение имитационного моделирования. К имитационному моделированию прибегают, когда

1)дорого  или невозможно экспериментировать  на реальном объекте;

2)невозможно  построить аналитическую модель: в системе есть время, причинные  связи, последствие, нелинейности, стохастические (случайные) переменные;

3)необходимо  сымитировать поведение системы  во времени.

     Цель  имитационного моделирования состоит  в воспроизведении поведения  исследуемой системы на основе результатов  анализа наиболее существенных взаимосвязей между ее элементами или другими  словами — разработке симулятора исследуемой предметной области для проведения различных экспериментов.

     Имитационное  моделирование позволяет имитировать  поведение системы во времени. Причём плюсом является то, что временем в  модели можно управлять: замедлять  в случае с быстропротекающими процессами и ускорять для моделирования  систем с медленной изменчивостью. Можно имитировать поведение  тех объектов, реальные эксперименты с которыми дороги, невозможны или  опасны. С наступлением эпохи персональных компьютеров производство сложных  и уникальных изделий, как правило, сопровождается компьютерным трёхмерным имитационным моделированием. Эта точная и относительно быстрая технология позволяет накопить все необходимые  знания, оборудование и полуфабрикаты  для будущего изделия до начала производства. Компьютерное 3D моделирование теперь не редкость даже для небольших компаний.

     Имитация, как метод решения нетривиальных  задач, получила начальное развитие в связи с созданием ЭВМ  в 1950-х — 1960-х годах.

     Можно выделить две разновидности имитации:

  • Метод Монте-Карло (метод статистических испытаний);
  • Метод имитационного моделирования (статистическое моделирование).

1.2.Виды имитационного моделирования

   1)Агентное моделирование — относительно новое (1990-е-2000-е гг.) направление в имитационном моделировании, которое используется для исследования децентрализованных систем, динамика функционирования которых определяется не глобальными правилами и законами (как в других парадигмах моделирования), а наоборот, когда эти глобальные правила и законы являются результатом индивидуальной активности членов группы. Цель агентных моделей — получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе. Агент — некая сущность, обладающая активностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, взаимодействовать с окружением, а также самостоятельно изменяться.

   2)Дискретно-событийное моделирование — подход к моделированию, предлагающий абстрагироваться от непрерывной природы событий и рассматривать только основные события моделируемой системы, такие как: «ожидание», «обработка заказа», «движение с грузом», «разгрузка» и другие. Дискретно-событийное моделирование наиболее развито и имеет огромную сферу приложений — от логистики и систем массового обслуживания до транспортных и производственных систем. Этот вид моделирования наиболее подходит для моделирования производственных процессов. Основан Джеффри Гордоном в 1960-х годах.

   3)Системная динамика — парадигма моделирования, где для исследуемой системы строятся графические диаграммы причинных связей и глобальных влияний одних параметров на другие во времени, а затем созданная на основе этих диаграмм модель имитируется на компьютере. По сути, такой вид моделирования более всех других парадигм помогает понять суть происходящего выявления причинно-следственных связей между объектами и явлениями. С помощью системной динамики строят модели бизнес-процессов, развития города, модели производства, динамики популяции, экологии и развития эпидемии. Метод основан Джеем Форрестером в 1950 годах.

   Области применения: Бизнес процессы, Боевые действия, Динамика населения, Дорожное движение, ИТ-инфраструктура, Математическое моделирование исторических процессов, Логистика, Пешеходная динамика, Производство, Рынок и конкуренция, Сервисные центры, Цепочки поставок, Уличное движение, Управление проектами, Экономика здравоохранения, Экосистема, Информационная безопасность. 
 
 
 
 
 
 
 
 
 
 
 
 
 

2.Метод Монте-Карло

     Метод Монте-Карло - общее название группы численных методов, основанных на получении большого числа реализаций стохастического (случайного) процесса, который формируется таким образом, чтобы его вероятностные характеристики совпадали с аналогичными величинами решаемой задачи. Используется для решения задач в различных областях физики, математики, экономики, оптимизации, теории управления и др.

     2.1.История появления метода Монте-Карло. Сначала Энрико Ферми в 1930-х годах в Италии, а затем Джон фон Нейман и Станислав Улам в 1940-х в Лос-Аламосе предположили, что можно использовать связь между стохастическими процессами и дифференциальными уравнениями «в обратную сторону». Они предложили использовать стохастический подход для аппроксимации многомерных интегралов в уравнениях переноса, возникших в связи с задачей о движении нейтрона в изотропной среде.

     Идея  была развита Уламом, который, по иронии судьбы, также как и Фокс боролся с вынужденным бездельем во время выздоровления после болезни, и, раскладывая пасьянсы, задался вопросом, какова вероятность того, что пасьянс «сложится». Ему в голову пришла идея, что вместо того, чтобы использовать обычные для подобных задач соображения комбинаторики, можно просто поставить «эксперимент» большое число раз и, таким образом, подсчитав число удачных исходов, оценить их вероятность. Он же предложил использовать компьютеры для расчётов методом Монте-Карло.

     Появление первых электронных компьютеров, которые  могли с большой скоростью  генерировать псевдослучайные числа, резко расширило круг задач, для  решения которых стохастический подход оказался более эффективным, чем другие математические методы. После этого произошёл большой  прорыв и метод Монте-Карло применялся во многих задачах, однако его использование не всегда было оправдано из-за большого количества вычислений, необходимых для получения ответа с заданной точностью.

     Годом рождения метода Монте-Карло считается 1949 год, когда в свет выходит статья Метрополиса и Улама «Метод Монте-Карло». Название метода происходит от названия города в княжестве Монако, широко известного своими многочисленными казино, поскольку именно рулетка является одним из самых широко известных генераторов случайных чисел. Станислав Улам пишет в своей автобиографии «Приключения математика», что название было предложено Николасом Метрополисом в честь его дяди, который был азартным игроком.

     В 1950-х годах метод использовался  для расчётов при разработке водородной бомбы. Основные заслуги в развитии метода в это время принадлежат  сотрудникам лабораторий ВВС  США и корпорации RAND.

     В 1970-х годах в новой области  математики — теории вычислительной сложности было показано, что существует класс задач, сложность (количество вычислений, необходимых для получения  точного ответа) которых растёт с  размерностью задачи экспоненциально. Иногда можно, пожертвовав точностью, найти алгоритм, сложность которого растёт медленнее, но есть большое количество задач, для которого этого нельзя сделать (например, задача определения  объёма выпуклого тела в n-мерном евклидовом пространстве) и метод Монте-Карло  является единственной возможностью для  получения достаточно точного ответа за приемлемое время.

     В настоящее время основные усилия исследователей направлены на создание эффективных Монте-Карло алгоритмов различных физических, химических и  социальных процессов для параллельных вычислительных систем.

2.2 Метод Монте- Карло имитационного моделирования.

     Аналитический метод решения проблемы посредством  выполнения большого числа тестовых операций, называемых имитационным моделированием, и получения необходимого решения из объединенных результатов тестов. Метод вычисления распределения вероятностей возможных результатов

     При имитационном моделировании часто  используется метод статистических испытаний (Монте-Карло). Теорию и практику машинных имитационных экспериментов  с моделями экономических систем еще 30 лет назад подробно разобрал Т. Нейлор. Вернемся к внутриэконометрическому применению датчиков псевдослучайных чисел.

     Имитационное  моделирование по методу Монте-Карло (Monte-Carlo Simulation) позволяет построить математическую модель для проекта с неопределенными значениями параметров, и, зная вероятностные распределения параметров проекта, а также связь между изменениями параметров (корреляцию) получить распределение доходности проекта.

     Применение  метода имитации Монте-Карло требует  использования специальных математических пакетов (например, специализированного  программного пакета Гарвардского университета под названием Risk-Master) , в то время, как метод сценариев может быть реализован даже при помощи обыкновенного калькулятора.

     Как уже отмечалось, анализ рисков с  использованием метода имитационного  моделирования Монте-Карло представляет собой “воссоединение” методов  анализа чувствительности и анализа  сценариев на базе теории вероятностей.

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

     Программный пакет Risk-Master позволяет в диалоговом режиме осуществить процедуру подготовки информации к анализу рисков инвестиционного проекта по методу Монте-Карло и провести сами расчеты.

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

     Как только функция распределения определена, можно применять процедуру Монте-Карло.

Алгоритм  метода имитации Монте-Карло

     Шаг 1.Опираясь на использование статистического  пакета, случайным образом выбираем, основываясь на вероятностной функции  распределения значение переменной, которая является одним из параметров определения потока наличности.

     Шаг 2. Выбранное значение случайной  величины наряду со значениями переменных, которые являются экзогенными переменными используется при подсчете чистой приведенной стоимости проекта.

     Шаги 1 и 2 повторяются большое количество раз, например 1000, и полученные 1000 значений чистой приведенной стоимости проекта  используются для построения плотности  распределения величины чистой приведенной  стоимости со своим собственным  математическим ожиданием и стандартным  отклонением.

     Используя значения математического ожидания и стандартного отклонения, можно  вычислить коэффициент вариации чистой приведенной стоимости проекта  и затем оценить индивидуальный риск проекта, как и в анализе методом сценариев.

     Теперь  необходимо определить минимальное  и максимальное значения критической  переменной, а для переменной с  пошаговым распределением помимо этих двух еще и остальные значения, принимаемые ею. Границы варьирования переменной определяются, просто исходя из всего спектра возможных значений.

     По  прошлым наблюдениям за переменной можно установить частоту , с которой та принимает соответствующие значения. В этом случае вероятностное распределение есть то же самое частотное распределение, показывающее частоту встречаемости значения, правда, в относительном масштабе (от 0 до 1). Вероятностное распределение регулирует вероятность выбора значений из определенного интервала. В соответствии с заданным распределением модель оценки рисков будет выбирать произвольные значения переменной. До рассмотрения рисков мы подразумевали, что переменная принимает одно определенное нами значение с вероятностью 1. И через единственную итерацию расчетов мы получали однозначно определенный результат. В рамках модели вероятностного анализа рисков проводится большое число итераций, позволяющих установить, как ведет себя результативный показатель (в каких пределах колеблется, как распределен) при подстановке в модель различных значений переменной в соответствии с заданным распределением.

     Задача  аналитика, занимающегося анализом риска, состоит в том, чтобы хотя бы приблизительно определить для исследуемой  переменной (фактора) вид вероятностного распределения. При этом основные вероятностные  распределения, используемые в анализе  рисков, могут быть следующими: нормальное, постоянное, треугольное, пошаговое. Эксперт присваивает переменной вероятностное распределение, исходя из своих количественных ожиданий и делает выбор из двух категорий распределений: симметричных (например, нормальное, постоянное, треугольное) и несимметричных (например, пошаговое распределение).

     Существование коррелированных переменных в проектном  анализе вызывает порой проблему, не рассмотреть которую означало бы заранее обречь себя на неверные результаты. Ведь без учета коррелированности, скажем, двух переменных - компьютер, посчитав их полностью независимыми, генерирует нереалистичные проектные сценарии. Допустим цена и количество проданного продукта есть две отрицательно коррелированные переменные. Если не будет уточнена связь между переменными (коэффициент корреляции), то возможны сценарии, случайно вырабатываемые компьютером, где цена и количество проданной продукции будут вместе либо высоки, либо низки, что естественно негативно отразится на результате.

     Проведение  расчетных итераций является полностью  компьютеризированная часть анализа  рисков проекта. 200-500 итераций обычно достаточно для хорошей репрезентативной выборки. В процессе каждой итерации происходит случайный выбор значений ключевых переменных из специфицированного интервала  в соответствии с вероятностными распределениями и условиями  корреляции. Затем рассчитываются и  сохраняются результативные показатели. И так далее, от итерации к итерации.

     Завершающая стадия анализа проектных рисков - интерпретация результатов, собранных  в процессе итерационных расчетов. Результаты анализа рисков можно  представить в виде профиля риска. На нем графически показывается вероятность  каждого возможного случая (имеются  в виду вероятности возможных  значений результативного показателя). 
 
 

3.Нахождение числа Pi путем метода Монте-Карло имитационного моделирования.

     Напомним  этапы имитационного моделирования:

  • определение вероятностных распределений каждой переменной;
  • компьютер выбирает случайное значение для каждой неопределенной переменной, основанное на вероятностном распределении этой переменной;
  • отобранное значение вместе с фиксированными факторами (ставкой налогов, амортизационных отчислений и т. д.) используется в модели для определения результативных показателей;
  • этапы 2 и 3 повторяются многократно, например 500 раз. В результате получают распределение 500 значений результативного показателя. Обычно это позволяет вы­делить наиболее вероятное значение.

   Преимуществом метода моделирования является тот  факт, что он позволяет увидеть  широкий диапазон вероятных результатов, а не несколько дискретных оценок. Тем не менее метод Монте-Карло мало распространен на практике из-за трудоемкости и сложности выявления всех взаимосвязей и корреляции переменных.

   Для вычисления числа p с помощью метода Монте-Карло рассмотрим круг радиуса 1 с центром в точке (1,1). Круг вписан в квадрат, SКВ=2×2=4.        

Выбираем  внутри квадрата N случайных точек. Выбрать точку – это значит задать ее координаты: числа x и y. Обозначим NКР - число точек, попавших при этом внутрь круга.

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

Точка принадлежит квадрату, если 0 =< x =< 2 и 0 =< y =<2.

Если (x-1)2+(y-1)2 =< 1, то точка попадает в круг, иначе она вне круга. Это и есть математическое соотношение, позволяющее для каждой точки определять, лежит ли она в круге. 

Геометрически очевидно, что , отсюда   

т. е. , т. к.  , получаем   (1) 

      Формула (1) дает оценку числа p. Чем больше N, тем больше точность этой оценки. Следует заметить, что данный метод вычисления площади будет справедлив только тогда, когда случайные точки будут не "просто случайными", а еще и "равномерно разбросанными" по всему квадрату.

     Для моделирования равномерно распределенных случайных чисел в интервале  от 0 до 1 в языке программирования Паскаль используется датчик случайных  чисел - функция RANDOM1. Таким образом, суть компьютерного эксперимента заключается в обращении к функции RANDOM для получения координат точки x и у N раз. При этом определяется попадет ли точка с координатами (х, у) в круг единичного радиуса. В случае попадания увеличивается на 1 значение величины  Nкруга. 
 
 
 
 
 

Алгоритм

Программа(Pascal ABC2)

PROGRAM MONTE_KARLO; (Название программы)

VAR I,N,N1:LONGINT;(Задаем тип переменных, длинное целое число)

X,Y,PI:REAL;(Задаем тип переменных, вещественное число)

BEGIN (Начало программы) 

RANDOMIZE; (Функция, выдающая случайные числа)

WRITE('Введите  количество точек N='); (Вывод сообщения на экран) 

READLN(N);(Ввод с клавиатуры кол-ва точек) 

FOR I:=1 TO N DO (Цикл нахождения случайных точек внутри круга и квадрата)

BEGIN     

X:=2*RANDOM;      

Y:=2*RANDOM;

IF SQR(X-1)+SQR(Y-1)<=1 THEN N1:=N1+1;   

END;

PI:=4*N1/N;

WRITELN('PI=',PI:15:11); (Вывод числа Пи) 

END. 
 

Вычислительный  эксперимент и  анализ результатов

     
N Результат
50 2,8000000000
50 3,2800000000
50 3,2800000000
600 3,1400000000
600 3,1266666667
600 3,2333333333
2500 3,1408000000
2500 3,1008000000
2500 3,0784000000
5000 3,1184000000
5000 3,1280000000
5000 3,1656000000
10000 3,1404000000
10000 3,1444000000
10000 3,1588000000
1000000 3,1440640000
1000000000 3,1440640000

             Выводы:

     1)С увеличением точности вычислений увеличивается время работы программы;

Метод Монте-Карло имитационного моделирования