В тех случаях, когда при моделировании необходимо учитывать некоторый случайный фактор (элемент или явление), который невозможно описать аналитически, используют метод моделирования, называемый методом статистических испытаний или методом Монте-Карло. С помощью этого метода может быть решена любая вероятностная задача. Однако использовать его целесообразно в том случае, если решить задачу этим методом проще, чем любым другим.
Суть метода состоит в том, что вместо описания случайных явлений аналитическими зависимостями проводится розыгрыш случайного явления с помощью некоторой процедуры, которая дает случайный результат. С помощью розыгрыша получают одну реализацию случайного явления. Осуществляя многократно такой розыгрыш, накапливают статистический материал (то есть множество реализаций случайной величины), который можно обрабатывать статистическими методами. Рассмотрим этот метод на примерах.
Пример 3.1. Пусть четыре стрелка одновременно стреляют по движущейся цели. Вероятность попадания в цель каждым стрелком равняется 0,5 (попал или не попал). Цель считается пораженной, если в нее попало два или более стрелка. Найти вероятность поражения цели.
Эту задачу можно легко решить методами теории вероятности. Вероятность поражения цели .
Вероятность непоражения Рнепор определяют как число сочетаний, когда в цель не попал ни один стрелок, плюс попал один из стрелков:
Решим эту задачу методом статистических испытаний. Процедуру розыгрыша реализуем подбрасываниям одновременно четырех монет. Если монета падает лицевой стороной, то считаем, что стрелок пал в цель. Обозначим через t число успешных испытаний. Сделаем N испытаний, тогда в соответствии с теоремой Бернулли: .
Пример 3.2. Пусть есть некоторая цель, на которую бомбардировщики сбрасывают n бомб. Каждая бомба поражает область в виде круга радиусом r (рис. 3.1). Цель считается пораженной, если одновременно бомбами накрыто K процентов площади S. Найти вероятность поражения цели.
Аналитически решить эту задачу очень трудно. Покажем, как ее можно решить методом статистических испытаний.
Наложим координатную сетку на всю возможную область попадания бомб. Разыграем n точек - координат попадания бомб. Опишем возле каждой точки круг радиусом r (рис. 3.2) и определим заштрихованную площадь поражения. Если заштрихованная площадь будет составлять К процентов и больше всей площади цели S, то цель считается пораженной, а испытание успешным. В противном случае цель не будет поражена и испытание не успешное.
Выполним N испытаний. Тогда вероятность поражения цели , где - количество испытаний, при которых цель была поpажена.
Методом статистических испытаний можно оценить математичское ожидание и другие вероятностные характеристики. Например, ценку математического ожидания площади поражения цели можно определить как . При эта оценка будет приближаться к математическому ожиданию в соответствии с законом больших чисел. В этом выражении площадь поражения в i -м испытании.
Алгоритм метода статистических испытаний такой:
1. Определить, что собой будет представлять испытание или розыгрыш.
2. Определить, какое испытание является успешным, а какое - нет.
3. Провести большое количество испытаний.
4. Обработать полученные результаты статистическими методами и рассчитать статистические оценки искомых величин.
К недостаткам метода можно отнести необходимость проведения большого количества испытаний, чтобы получить результат с заданной точностью.
Таким образом, метод статистических испытаний - это метод математического моделирования случайных величин, в котором сама случайность непосредственно включена в процесс моделирования и является его важным элементом. Каждый раз, когда в ход выполнения некоторой операции вмешивается случайный фактор, его влияние моделируется с помощью розыгрыша.
Для эффективного розыгрыша случайных величин используют генераторы случайных чисел. Такие генераторы строятся аппаратными и программными методами. Наиболее применимыми являются программные методы, которые дают возможность получить последовательности псевдослучайных чисел по рекуррентным формулам. Обычно используется мультипликативный конгруэнтный метод, рекуррентное соотношение для которого имеет вид:
(3.1)
где а и m - некоторые константы. Необходимо взять последнее псевдослучайное число , умножить его на постоянный коэффициент a и взять модуль полученного числа по m, то есть разделить наши получить остаток. Этот остаток и будет следующим псевдослучайным числом . Для двоичного компьютера , где g — длина раз- рядной сетки. Например, для 32-разрядного компьютера , поскольку один разряд задает знак числа.
В языке GPSS World используется мультипликативный конгруэнтный алгоритм Лехмера с максимальным периодом, который генерирует 2147483647 уникальных случайных чисел без повторения. Эти числа генерируют специальные генераторы, которые обозначаются КN<№>, где № - номер генератора случайных чисел (может принимать значения от 1 до 7). При обращении к этим генераторам выдаются целые случайные числа в диапазоне от 0 до 999 включительно. При использовании генераторов в случайных функциях распределений случайные числа генерируются в диапазоне от 0 до 0,999999 включительно.