|
Лекция 21.
|
Рис. 21.1. Определение значения интеграла методом Монте-Карло |
Ограничиваем кривую сверху, справа и слева. Случайным образом распределяем точки в прямоугольнике поиска. Обозначим через N1 количество точек, принятых для испытаний (то есть попавших в прямоугольник, эти точки изображены на рис. 21.1 красным и синим цветом), и через N2 количество точек под кривой, то есть попавших в закрашенную площадь под функцией (эти точки изображены на рис. 21.1 красным цветом). Тогда естественно предположить, что количество точек, попавших под кривую по отношению к общему числу точек пропорционально площади под кривой (величине интеграла) по отношению к площади испытуемого прямоугольника. Математически это можно выразить так:
Рассуждения эти, конечно, статистические и тем более верны, чем большее число испытуемых точек мы возьмем.
Фрагмент алгоритма метода Монте-Карло в виде блок-схемы выглядит так, как показано на рис. 21.2.
Рис. 21.2. Фрагмент алгоритма реализации метода Монте-Карло |
Значения r1 и r2 на рис. 21.2 являются равномерно распределенными случайными числами из интервалов (x1; x2) и (c1; c2) соответственно.
Метод Монте-Карло чрезвычайно эффективен, прост, но необходим «хороший» генератор случайных чисел. Вторая проблема применения метода заключается в определении объема выборки, то есть количества точек, необходимых для обеспечения решения с заданной точностью. Эксперименты показывают: чтобы увеличить точность в 10 раз, объем выборки нужно увеличить в 100 раз; то есть точность примерно пропорциональна корню квадратному из объема выборки:
Построив модель системы со случайными параметрами, на ее вход подают входные сигналы от генератора случайных чисел (ГСЧ), как показано на рис. 21.3. ГСЧ устроен так, что он выдает равномерно распределенные случайные числа rрр из интервала [0; 1]. Так как одни события могут быть более вероятными, другие менее вероятными, то равномерно распределенные случайные числа от генератора подают на преобразователь закона случайных чисел (ПЗСЧ), который преобразует их в заданный пользователем закон распределения вероятности, например, в нормальный или экспоненциальный закон. Эти преобразованные случайные числа x подают на вход модели. Модель отрабатывает входной сигнал x по некоторому закону y = φ(x) и получает выходной сигнал y, который также является случайным.
Рис. 21.3. Общая схема метода статистического моделирования |
В блоке накопления статистики (БНСтат) установлены фильтры и счетчики. Фильтр (некоторое логическое условие) определяет по значению 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.
Обратите внимание: когда говорят о вероятности, полученной экспериментально, то ее называют частостью; слово вероятность употребляют, когда хотят подчеркнуть, что речь идет о теоретическом понятии.
При большом количестве опытов N частота появления события, полученная экспериментальным путем, стремится к значению теоретической вероятности появления события.
В блоке оценки достоверности (БОД) анализируют степень достоверности статистических экспериментальных данных, снятых с модели (принимая во внимание точность результата ε, заданную пользователем) и определяют необходимое для этого количество статистических испытаний. Если колебания значений частоты появления событий относительно теоретической вероятности меньше заданной точности, то экспериментальную частоту принимают в качестве ответа, иначе генерацию случайных входных воздействий продолжают, и процесс моделирования повторяется. При малом числе испытаний результат может оказаться недостоверным. Но чем более испытаний, тем точнее ответ, согласно центральной предельной теореме.
Заметим, что оценивание ведут по худшей из частот. Это обеспечивает достоверный результат сразу по всем снимаемым характеристикам модели.
Пример 1. Решим простую задачу. Какова вероятность выпадения монеты орлом кверху при падении ее с высоты случайным образом?
Начнем подбрасывать монетку и фиксировать результаты каждого броска (см. табл. 21.1).
Таблица 21.1. Результаты испытаний бросания монеты |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Будем подсчитывать частость выпадения орла как отношение количества случаев выпадения орла к общему числу наблюдений. Посмотрите в табл. 21.1. случаи для N = 1, N = 2, N = 3 сначала значения частости нельзя назвать достоверными. Попробуем построить график зависимости Pо от N и посмотрим, как меняется частость выпадения орла в зависимости от количества проведенных опытов. Разумеется, при различных экспериментах будут получаться разные таблицы и, следовательно, разные графики. На рис. 21.4 показан один из вариантов.
Рис. 21.4. Экспериментальная зависимость частости появления случайного события от количества наблюдений и ее стремление к теоретической вероятности |
Сделаем некоторые выводы.
Рис. 21.5. Экспериментально снятый ансамбль случайных зависимостей частости появления случайного события от количества наблюдений |
Мы поставили несколько экспериментов и определяли каждый раз, сколько необходимо было сделать опытов, то есть Nкрэ. Было проделано 10 экспериментов, результаты которых были сведены в табл. 21.2. По результатам 10-ти экспериментов было вычислено среднее значение Nкрэ.
Таблица 21.2. Экспериментальные данные необходимого количества бросков монеты для достижения точности ε = 0.1 при вычислении вероятности выпадения орла |
||||||||||||||||||||||||
|
Таким образом, проведя 10 реализаций разной длины, мы определили, что достаточно в среднем было сделать 1 реализацию длиной в 94 броска монеты.
Еще один важный факт. Внимательно рассмотрите график на рис. 21.5. На нем нарисовано 100 реализаций 100 красных линий. Отметьте на нем абсциссу N = 94 вертикальной чертой. Есть какой-то процент красных линий, которые не успели пересечь ε-окрестность, то есть (Pэксп ε ≤ Pтеор ≤ Pэксп + ε), и войти в коридор точности до момента N = 94. Обратите внимание, таких линий 5. Это значит, что 95 из 100, то есть 95%, линий достоверно вошли в обозначенный интервал.
Таким образом, проведя 100 реализаций, мы добились примерно 95%-ного доверия к полученной экспериментально величине вероятности выпадения орла, определив ее с точностью 0.1. Для сравнения полученного результата вычислим теоретическое значение Nкрт теоретически. Однако для этого придется ввести понятие доверительной вероятности QF, которая показывает, насколько мы готовы верить ответу. Например, при QF = 0.95 мы готовы верить ответу в 95% случаев из 100. Формула теоретического расчета числа экспериментов, которая будет подробно изучаться в лекции 34, имеет вид: Nкрт = k(QF) · p · (1 p)/ε2, где k(QF) коэффициент Лапласа, p вероятность выпадения орла, ε точность (доверительный интервал). В табл. 21.3 показаны значения теоретической величины количества необходимых опытов при разных QF (для точности ε = 0.1 и вероятности p = 0.5).
Таблица 21.3. Теоретический расчет необходимого количества бросков монеты для достижения точности ε = 0.1 при вычислении вероятности выпадения орла |
||||||||||||
|
Как видите, полученная нами оценка длины реализации, равная 94 опытам очень близка к теоретической, равной 96. Некоторое несовпадение объясняется тем, что, видимо, 10 реализаций недостаточно для точного вычисления Nкрэ. Если вы решите, что вам нужен результат, которому следует доверять больше, то измените значение доверительной вероятности. Например, теория говорит нам, что если опытов будет 167, то всего 1-2 линии из ансамбля не войдут в предложенную трубку точности. Но имейте в виду, количество экспериментов с ростом точности и достоверности растет очень быстро.
Второй вариант, используемый на практике провести одну реализацию и увеличить полученное для нее Nкрэ в 2 раза. Это считают хорошей гарантией точности ответа (см. рис. 21.6).
Рис. 21.6. Иллюстрация экспериментального определения Nкрэ по правилу «умножь на два» |
Если присмотреться к ансамблю случайных реализаций, то можно обнаружить, что сходимость частости к значению теоретической вероятности происходит по кривой, соответствующей обратной квадратичной зависимости от числа экспериментов (см. рис. 21.7).
Рис. 21.7. Иллюстрация скорости схождения экспериментально получаемой частости к теоретической вероятности |
Это действительно так получается и теоретически. Если изменять задаваемую точность ε и исследовать количество экспериментов, требуемых для обеспечения каждой из них, то получится табл. 21.4.
Таблица 21.4. Теоретическая зависимость количества экспериментов, необходимых для обеспечения заданной точности при QF = 0.95 |
||||||||
|
Построим по табл. 21.4 график зависимости Nкрт(ε) (см. рис. 21.8).
Рис. 21.8. Зависимость числа экспериментов, требуемых для достижения заданной точности ε при фиксированном QF = 0.95 |
Итак, рассмотренные графики подтверждают приведенную выше оценку:
Заметим, что оценок точности может быть несколько. Некоторые из них будут еще обсуждаться в лекции 34.
Пример 2. Нахождение площади фигуры методом Монте-Карло. Определите методом Монте-Карло площадь пятиугольника с координатами углов (0, 0), (0, 10), (5, 20), (10, 10), (7, 0).
Нарисуем в двухмерных координатах заданный пятиугольник, вписав его в прямоугольник, чья площадь, как нетрудно догадаться, составляет (10 0) · (20 0) = 200 (см. рис. 21.9).
Рис. 21.9. Иллюстрация к решению задачи о площади фигуры методом Монте-Карло |
Используем таблицу случайных чисел для генерации пар чисел 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) на рис. 21.9 и в табл. 21.5.
Таблица 21.5. Решение задачи методом Монте-Карло |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Статистическая гипотеза заключается в том, что количество точек, попавших в контур фигуры, пропорционально площади фигуры: 6:10 = S:200. То есть, по формуле метода Монте-Карло, получаем, что площадь S пятиугольника равна: 200 · 6/10 = 120.
Проследим, как менялась величина S от опыта к опыту (см. табл. 21.6).
Таблица 21.6. Оценка точности ответа |
|||||||||||||||||||||||||||||||||
|
Поскольку в ответе все еще меняется значение второго разряда, то возможная неточность составляет пока больше 10%. Точность расчета может быть увеличена с ростом числа испытаний (см. рис. 21.10).
Рис. 21.10. Иллюстрация процесса сходимости определяемого экспериментально ответа к теоретическому результату |
Лекция 20. Технология использования | Лекция 22. Генераторы случайных чисел | ||||||||||||||||
|