Нижегородский государственный университет им. Н.И. Лобачевского Лекционные материалы. Глава 1. Введение в методы Монте-Карло Нижний Новгород 2005 Лекция 1. Введение в методы Монте-Карло 2 Глава 1. Введение в методы Монте-Карло Содержание Введение.............................................................................................................................3 Статистическое моделирование как научное направление ....................................5 П о н я т и е с т а т и с т и ч е с к о г о м о д е л и р о в а н и я ..............................................5 Схема проведения вычислений в статистическом моделировании ..........................5 Области применения статистического моделирования .............................................6 Метод статистических испытаний (методы Монте-Карло). История метода .....7 Методы Монте-Карло. Анализ общей схемы, достоинства и недостатки ...............8 Примеры применения методов Монте-Карло .............................................................9 Задача вычисления площади фигуры на плоскости .............................................10 Задача оценивания числа .....................................................................................11 Игла Бюффона ......................................................................................................11 Метод Hit-Or-Miss ...............................................................................................15 Метод Выборочного среднего ............................................................................16 Случайность и имитация случайности .....................................................................18 Случайность и непредсказуемость.............................................................................18 Случайные числа и генераторы случайных чисел....................................................19 Генераторы псевдослучайных чисел (PRNG) ...........................................................19 Заключение .....................................................................................................................22 Литература ......................................................................................................................23 Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 3 Введение Если люди не полагают, что математика проста, то только потому, что они не понимают, как на самом деле сложна жизнь. Джон фон Нейман Добрый день, уважаемый читатель! Прежде всего, хотелось бы кратко охарактеризовать курс, который Вы начинаете изучать. Начнем с расшифровки названия «С т а т и с т и ч е с к о е м о д е л и р о в а н и е и п а р а л л е л ь н ы е в ы ч и с л е н и я ». Статистическое моделирование – численный метод решения математических задач, при котором искомые величины представляют вероятностными характеристиками какого-либо случайного явления, это явление моделируется, после чего нужные характеристики приближённо определяют путём статистической обработки «наблюдений» модели [ ]. С т а т и с т и ч е с к о е м о д е л и р о в а н и е – молодое и перспективное научное направление, получившее развитие в середине двадцатого века в связи с ростом возможностей вычислительной техники. Рассматриваемое научное направление имеет массу приложений в разных областях знания (биология, химия, физика, экономика и др.), что делает его изучение особенно актуальным. Привязка содержания курса к параллельным вычислениям связана со следующими факторами: задачи статистического моделирования как правило требуют больших вычислительных ресурсов; алгоритмы статистического моделирования чаще всего допускают эффективное распараллеливание. Данный курс предназначен для студентов старших курсов, магистрантов, обучающихся по специальностям «П р и к л а д н а я м а т е м а т и к а », «И н ф о р м а ц и о н н ы е т е х н о л о г и и », «И н ф о р м а ц и о н н ы е с и с т е м ы » и стажеров студенческих лабораторий, обучающихся на факультетах физико-математического профиля. Ц е л ь ю к у р с а является ознакомление с некоторыми задачами и алгоритмами статистического моделирования и методами генерации псевдослучайных чисел, а также рассмотрение основных методов р а с п а р а л л е л и в а н и я данных задач и их э ф ф е к т и в н о й р е а л и з а ц и и на многоядерных и многопроцессорных архитектурах. В качестве дополнительной цели выступает знакомство с некоторыми и н д у с т р и а л ь н ы м и м а т е м а т и ч е с к и м и п а к е т а м и , позволяющими решать задачи статистического моделирования. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 4 Автор курса надеется, что в результате изучения теоретической части Вы будете обладать следующим набором знаний: Общая схема методов Монте-Карло, принципы ее реализации при помощи вычислительной техники. Основные классы линейных генераторов, основные методы генерации случайных чисел неравномерных распределений, способы их применения в параллельных вычислениях. Некоторые приемы тестирования качества генераторов случайных чисел. Некоторые приемы вычисления многомерных интегралов методом МонтеКарло. Некоторые задачи стохастической оптимизации (в частности, моделирование методом «имитации отжига»). Некоторые задачи финансовой математики и алгоритмы их решения. В дополнение к указанной выше теоретической информации лабораторный практикум призван помочь Вам приобрести некоторые практические навыки, в частности Вы будете уметь: Использовать библиотеку Intel® MKL для решения задач статистического моделирования. Самостоятельно реализовывать генераторы случайных чисел различных распределений. Проводить тестирование качества генераторов случайных чисел. Проводить эксперименты на многопроцессорных и многоядерных системах. Вы заинтересовались прочитанным? Постараюсь не обмануть Ваших ожиданий. В первом разделе курса мы познакомимся с идеологией статистического моделирования, методом статистических испытаний (методами Монте-Карло), историей его появления и развития. Мы поговорим об основных преимуществах и недостатках метода, областях его применения и деятельности первопроходцев в данной области. Наконец, мы проникнем в «сердце» метода – имитацию случайности. Итак, за дело! Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло Статистическое направление 5 моделирование как научное Прежде всего, попробуем поточнее понять, что скрывается за таинственным названием «Статистическое моделирование». Обратимся к Большой Советской Энциклопедии (БСЭ). Понятие статистического моделирования Статистическое моделирование – численный метод решения математических задач, при котором искомые величины представляют вероятностными характеристиками какого-либо случайного явления, это явление моделируется, после чего нужные характеристики приближённо определяют путём статистической обработки «н а б л ю д е н и й » модели. Например, требуется рассчитать потоки тепла в нагреваемой тонкой металлической пластине, на краях которой поддерживается нулевая температура. Распределение тепла описывается тем же уравнением, что и расплывание пятна краски в слое жидкости. Поэтому моделируют плоское броуновское движение частиц «краски» по пластине, следя за их положениями в моменты tk, k = 0, 1, 2,... Приближённо принимают, что за малый интервал t частица перемещается на шаг h равновероятно во всех направлениях. Каждый раз направление выбирается случайным образом, независимо от всего предыдущего. Соотношение между t и h определяется коэффициентом теплопроводности. Движение начинается в источнике тепла и кончается при первом достижении края (наблюдается налипание «краски» на край). Поток Q(C) тепла через участок С границы измеряется количеством налипшей краски. При общем количестве N частиц согласно закону больших чисел такая оценка даёт ошибку порядка Схема проведения моделировании вычислений в 1 . [14] N статистическом Статистическое моделирование предполагает следующую с х е м у в ы ч и с л е н и я (оценивания) искомой величины. Так, искомую величину представляют математическим ожиданием числовой функции f от случайного исхода w некоторого явления: E ( f ( )) f ( )dP , (1.1) т. е. интегралом по вероятностной мере Р [14]. Таким образом, для того, чтобы оценить некоторое значение, необходимо подобрать случайную величину так, чтобы ее математическое ожидание равнялось искомому значению. После этого можно пронаблюдать случайную величину и оценить по выборке ее математическое ожидание. Полученный результат можно считать о ц е н к о й искомого значения. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 6 Рассмотрим оценку математического ожидания случайной величины Q E ( f ( )) f (1) ... f ( N ) , N (1.2) где 1 ,..., N – исходы, состоявшиеся в результате наблюдений. Оценку (1.2) можно рассматривать как квадратурную формулу для указанного интеграла со случайными узлами k и случайной погрешностью RN . Таким образом, рассматриваемая схема состоит в проведении с е р и и э к с п е р и м е н т о в . Каждый i-ый эксперимент представляет собой получение случайного исхода i и вычисление функции f( i ). После этого производятся вычисления по формуле (1.2) и полученный результат считается о ц е н к о й и с к о м о й в е л и ч и н ы . С л у ч а й н ы й в ы б о р на каждом этапе проводится с помощью с л у ч а й н ы х ч и с е л , которые необходимо генерировать тем или иным образом. Так, они могут генерироваться каким-либо физическим датчиком или имитироваться при помощи вычислительной техники по некоторому алгоритму, обеспечивающему заданное распределение (п с е в д о с л у ч а й н ы е ч и с л а ). На эту тему мы еще поговорим в наших лекциях. Области применения статистического моделирования Статистическое моделирование широко применяется для решения задач из различных областей человеческого знания. Среди них такие актуальные области как биология, химия, физика, экономика и другие. Среди задач, где может быть использован и часто используется этот подход, часто указывают следующие задачи: [16, 18, 19, 20, 22] численное интегрирование, расчеты в системах массового обслуживания, расчеты качества и надежности изделий, расчеты прохождения нейтронов сквозь пластину, передача сообщений при наличии помех, задачи теории игр, задачи динамики разреженного газа, задачи дискретной оптимизации, задачи финансовой математики (оценивание опционов и др.) и многие другие. Часть этих задачи имеют очевидную в е р о я т н о с т н у ю п р и р о д у (что характерно, например, для систем массового обслуживания или финансовой математики), а часть являют собой пример применения идей статистического моделирования для исследования математических моделей объектов, не имеющих таковой (например, вычисление определенного интеграла). Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 7 Метод статистических испытаний (методы МонтеКарло). История метода Говоря о статистическом моделировании, люди часто подразумевают, что речь идет о так называемом м е т о д е с т а т и с т и ч е с к и х и с п ы т а н и й (м е т о д а х М о н т е - К а р л о ). Обратимся к БСЭ. М е т о д с т а т и с т и ч е с к и х и с п ы т а н и й – метод вычислительной и прикладной математики, основанный на моделировании случайных величин и построении статистических оценок для искомых величин; то же, что М о н т е - К а р л о м е т о д ы . Принято считать, что метод статистических испытаний возник в 1944 году, когда в связи с работами по созданию атомных реакторов американские учёные Д ж . ф о н Н е й м а н и С . У л а м начали широко применять аппарат теории вероятностей для решения прикладных задач с помощью ЭВМ. Первоначально метод использовался главным образом для решения сложных задач теории переноса излучения и нейтронной физики, где традиционные численные методы оказались мало пригодными. Затем его влияние распространилось на больший класс задач статистической физики, очень разных по своему содержанию. Метод применяется для решения задач теории игр, теории массового обслуживания и математической экономики, задач теории передачи сообщений при наличии помех и т.д. [14] Итак, таинственное название «М е т о д ы М о н т е - К а р л о ». Откуда оно взялось и что стоит за этим звучным наименованием? Попробуем разобраться, для чего обратимся к истории. Некоторые эксперименты по использованию метода статистических испытаний проводились достаточно давно. Так, еще французский естествоиспытатель Б ю ф ф о н выполнял эксперименты по вычислению числа путем подбрасывания иглы и вычисления частоты пересечения иглы одной из параллельных прямых. В 1930 году Э. Ферми использовал то, что сейчас носит название методов Монте-Карло, в исследовании нейтронных потоков. Позже, он разработал «Fermiac», механическое устройство, которое использовалось в вычислениях в задачах ядерной физики. Настоящее распространение идей, связанных с подобными методами, стало реальностью с началом эры вычислительной техники, которая позволила проводить компьютерные эксперименты, в том числе и по получению случайных чисел. Пионерами м е т о д о в М о н т е - К а р л о принято считать американских математиков С т э н л и Улама, Джона фон Неймана и Николаса М е т р о п о л и с а . В сороковых годах XX века Джон фон Нейман заложил основу методов Монте-Карло, создав математический базис для функций плотности вероятности, интегральных функций обратного распределения и генераторов псевдослучайных чисел. Исследования выполнялись в тесном сотрудничестве со Стэнли Уламом, считается, что Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 8 именно он первым осознал и продвинул в массы идею о необходимости компьютера для выполнения вычислений по методам Монте-Карло. Происхождение названия методов связано с одноименным городом в княжестве Монако, в котором расположены одни из самых известных казино в мире. Дело в том, что случайные числа и их генерация составляют «сердце» методов Монте-Карло. Р у л е т к а казино – один из наиболее простых приборов для г е н е р а ц и и с л у ч а й н ы х ч и с е л 1. Именно это и явилось наводящим соображением для названия. Как писал Стэнли Улам в автобиографии «Приключения математика», метод был назван в честь его дяди, который был заядлым игроком, по совету Метрополиса. Датой рождения методов Монте-Карло принято считать 1949 год, когда появилась статья Улама и Метрополиса «Метод Монте-Карло» [8]. Как это часто бывало в истории науки, основным побуждающим фактором в развитии статистического моделирования стали военные исследования по заказу Министерства обороны США. Далее эти исследования не стали носить секретного характера, и результаты были успешно внедрены в разных областях, благодаря о б щ н о с т и с х е м ы м е т о д а и отсутствию привязки к конкретному объекту или предметной области. Еще один интересный факт связан с тем, что некие случайные методы вычислений и проведения экспериментов разрабатывались и применялись и в «доисторическую компьютерную эру». Основная разница методов Монте-Карло с ранними исследованиями в области статистического моделирования заключается в следующем: Монте-Карло моделирование перевернуло стандартные представления о том, как нужно решать задачу, используя средства теории вероятности и математической статистики. Так, ранее предполагалось, что необходимо изучить д е т е р м и н и р о в а н н у ю п р о б л е м у , а потом использовать и м и т а ц и ю , чтобы проверить сделанные ранее выкладки. В Монте-Карло моделировании предполагается, что надо взять д е т е р м и н и р о в а н н у ю п р о б л е м у и найти ее с т о х а с т и ч е с к и й а н а л о г . Эта идея стала общим принципом, применимым для решения задач различной природы, благодаря фон Нейману, Метрополису и Уламу. Методы Монте-Карло. Анализ общей схемы, достоинства и недостатки Итак, для решения задачи по методам Монте-Карло прежде всего строят в е р о я т н о с т н у ю м о д е л ь , представляют и с к о м у ю в е л и ч и н у , например многомерный интеграл, в виде м а т е м а т и ч е с к о г о о ж и д а н и я ф у н к ц и о н а л а о т с л у ч а й н о г о п р о ц е с с а , который затем моделируется на компьютере [14]. В результате Заметим для любопытных читателей, что как справедливо подчеркнул в своей книге [ ] И.М. Соболь, метод Монте-Карло никак не помогает выигрывать в рулетку и вообще не имеет к этому никакого 1 отношения! Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 9 проведения вычислительного эксперимента получают нужную выборку и результаты всех испытаний усредняют [22]. Принципиальная математическая основа использования методов Монте-Карло – Усиленный закон больших чисел в форме А.Н. Колмогорова . Теорема Колмогорова. Для того чтобы среднее арифметическое независимых реализаций случайной величины сходилось с вероятностью единица к ее математическому ожиданию необходимо и достаточно, чтобы это математическое ожидание существовало. Итак, п е р в о е н е с о м н е н н о е д о с т о и н с т в о м е т о д о в М о н т е - К а р л о – простая схема вычислительного алгоритма . Поговорим о некоторых трудностях, которые могут встретиться нам на пути применения рассмотренного подхода. Заметим, что нам нужна не любая, а достаточно достоверная оценка искомой величины, т.е. о ц е н к а с м а л о й п о г р е ш н о с т ь ю . Добиться этого далеко не так просто, как кажется. Большую роль, разумеется, играет а д е к в а т н о с т ь построенной вероятностной модели (такие модели во многих задачах известны). Следующая важная составляющая – м о д е л и р о в а н и е с л у ч а й н ы х в е л и ч и н с з а д а н н ы м и р а с п р е д е л е н и я м и . Как правило, такое моделирование осуществляется путём преобразования одного или нескольких независимых значений случайного числа a, распределённого равномерно в интервале (0,1). Последовательности «выборочных» значений a обычно получают на ЭВМ с помощью теоретико-числовых алгоритмов, среди которых наибольшее распространение получил «метод вычетов». Такие числа называются «п с е в д о с л у ч а й н ы м и », они проверяются с т а т и с т и ч е с к и м и т е с т а м и и решением типовых задач [14]. Итак, существенную роль играет качество используемых г е н е р а т о р о в с л у ч а й н ы х ч и с е л . Написание корректных генераторов – сложная задача, успешно решаемая в рамках разных научных и инженерных математических библиотек, например, в одной из лучших из них - Intel® Math Kernel Library (Intel® MKL), которой мы будем неоднократно пользоваться в рамках нашего курса. Продолжая разговор о точности вычислений, посмотрим на этот вопрос немного с другой стороны. Как известно, ошибка вычислений по методу Монте-Карло обычно пропорциональна d , где d – некоторая константа, а N – количество испытаний. Из N формулы очевидно, что для повышения точности в 10 раз необходимо увеличить количество испытаний в 100 раз [22], а это значит, что метод Монте-Карло требует больших вычислительных ресурсов. Примеры применения методов Монте-Карло В данном разделе мы рассмотрим некоторые примеры применения методов МонтеКарло в практических задачах. Как Вы увидите, речь пойдет об известных Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 10 математических задачах – вычислении площади фигуры и определении числа . Выбор данных задач вовсе не означает, что именно в них методы Монте-Карло ведут себя особенно эффективно, напротив, в этих задачах, как правило, применяются другие способы достижения результата. Дело в том, что в ходе изучения курса мы неоднократно будем встречаться с примерами применения методов Монте-Карло в реальных экономических, физических, математических задачах. Каждая из таких задач требует некоторой подготовки, как с точки зрения изучения метода статистических испытаний, так и подробного рассмотрения собственно постановки задачи. Поэтому в этом разделе мы и рассматриваем иллюстративные, сравнительно несложные примеры. Итак, для начала совсем простой пример. Задача вычисления площади фигуры на плоскости Пусть дана некоторая плоская фигура F, для которой требуется найти площадь. Введем следующие предположения: 1. Для определенности предположим, что эта фигура целиком расположена внутри единичного квадрата. 2. С учетом предположения 1 периметр фигуры может быть устроен совершенно произвольно. 3. Фигура может не быть связной, т.е. может состоять из нескольких областей. 4. Фигура может быть задана аналитически или графически. y 1 F 0 1 x Рис. 1.1 Площадь фигуры на плоскости. Метод Монте-Карло Сгенерируем в квадрате N случайных точек (рис. 1.1). Пусть N* – количество точек, попавших внутрь рассматриваемой фигуры. Тогда при достаточно больших значениях N площадь фигуры F может быть оценена как N* Sˆ N Мееров И.Б. (1.3) Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 11 Конечно, в задаче вычисления площади существуют и более точные алгоритмы нахождения площади, но данный пример демонстрирует простейший случай применения метода Монте-Карло. Задача оценивания числа История числа – изящное маленькое зеркало истории человечества. Петр Бекманн Из школьного прошлого всем известно, что число есть отношения длины окружности к ее диаметру. С древних времен внимание человечества было приковано к вычислению этого замечательного числа. Первоначально, заметив, что искомое отношение постоянно и не зависит от окружности, люди пытались представить его рациональной дробью. Такие попытки предпринимались в Древнем Египте, Индии, Древней Греции. Постепенно ученые осознали бесплодность попыток найти рациональную дробь, представляющую число , и дело сдвинулось с мертвой точки. Так Архимед, в III в до н.э. создал некоторый алгоритм приближенного вычисления и определил, что = 3.1419... [4]. Далее более точные решения были найдены в Древнем Китае, в Самарканде. В Европе результатами в данной области отметились Виет, Джонсон, Эйлер, ван Цейлен, Лежандр (доказал иррациональность числа), Лейбниц, Малчин. Известен одновременно забавный и грустный факт, состоящий в том, что после более чем 20 лет работы в конце XIX века англичанин В. Шенкс нашел 707 знаков числа, но в 1945 году при помощи компьютера определили, что он ошибся в 520-м знаке и дальнейшие вычисления оказались неверными. В эру современных компьютеров не составляет проблемы вычислить число с необходимой точностью (так, в 2002 году было вычислено 1 241 100 000 000 знаков числа). Все эти вычисления обычно проводятся при помощи суммирования некоторых рядов. Мы в данном разделе рассмотрим подход к нахождению числа методом статистического моделирования. Игла Бюффона В 1777 году французский естествоиспытатель Жорж Луи Леклерк де Бюффон2 сформулировал задачу о нахождении вероятности того, что брошенная на разграфленный лист бумаги игла пересечет одну из линий. Оказалось, что эта вероятность связана с числом , что сделало возможным поиск этого числа вероятностными методами, т.е. 2 Georges Louis Leclerc Comte de Buffon (7.09.1707 – 16.04.1788, Франция) Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 12 методом Монте-Карло! Эта задача захватила умы многих исследователей. И сейчас, уважительно называемая теоремой, она имеет ряд интересных приложений [23]. Изучим проблему с точки зрения математики. Для этого рассмотрим на плоскости параллельные прямые x = 0 и x = d, образующие бесконечную полосу ширины d. Пусть теперь мы произвольным образом бросаем на плоскость иглу длины l d . Вопрос: какова вероятность того, что игла пересечет одну из прямых? Для решения задачи посмотрим на рис. 1.2. y l 0 h d x Рис. 1.2 Игла Бюффона. Положение иглы Интересующее нас положение иглы на плоскости (y-координата неинтересна) описывается двумя параметрами (двумя независимыми случайными в е л и ч и н а м и ): координатой одного из концов h и углом поворота относительно горизонтальной оси . Очевидно, [ , ), h [0, d ) . 2 2 Множество возможных положений иглы целиком определяется случайным выбором точки из области F(h, ) = [0, d ) [ , ) . 2 2 Рассмотрим событие A – и г л а п е р е с е к а е т п о п р я м у ю x = d . A ( x, ) : h l cos d (1.4) Нарисуем в плоскости ( x, ) область, соответствующую событию A. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 13 h d S+ d l S- 2 2 Рис. 1.3 Игла Бюффона. Условие пересечения + Найдем площадь S этой области. Обозначим через S площадь всего прямоугольника, отвечающего пространству элементарных исходов, а S- – площадь под кривой h l cos d 0 По определению S = S+ + S-. Найдем S 2 (d l cos )d d 2l . 2 Теперь вероятность события A может быть вычислена как S S S S d 2l 2l 1 1 1 S S S S S S d d Итак, вероятность того, что игла пересечет прямую теоретически есть P( A) P ( A) 2l d (1.5) Будем проводить эксперимент по бросанию иглы N раз, регистрируя в каждом эксперименте факт наступления/не наступления события A. 1, A; Рассмотрим случайную величину i . 0, A N Введем S N i , i 1 Тогда SN частота наступления события A. N SN 0 1 N ; ;...; , причем данные исходы не равновероятны. N N N N Известно, что случайная величина SN N подчиняется распределению. Определим параметры распределения. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») биномиальному Лекция 1. Введение в методы Монте-Карло p P (i 1) 2l d q P (i 0) 1 p 1 14 2l d 2l d d m S P N C Nm p m q n m . N N Будем рассматривать SN – частоту наступления события A – в качестве о ц е н к и N величины p – вероятности того, что игла пересекает одну из прямых. Зная теоретическую вероятность этого события большой выборке ( 2l , мы можем оценить эту вероятность по достаточно d SN ) и рассмотреть следующее равенство: N SN 2l N d (1.6) Тогда ˆ 2l N SN d (1.7) Попробуем понять, насколько хороша оценка (1.7). Для этого докажем ряд утверждений. Утверждение E SN S p , т.е. N – н е с м е щ е н н а я о ц е н к а значения p. N N Доказательство: Учитывая, что величина SN есть результат выполнения N независимых испытаний (биномиальное распределение), имеем: N i SN i 1 E E N N 1 N 1 E i N i 1 N Несложно показать, что N Ei i 1 1 N (1 p 0q) p , ч.т.д. N i 1 SN – э ф ф е к т и в н а я о ц е н к а p (оценка с наименьшей N дисперсией), а также с о с т о я т е л ь н а я о ц е н к а p (сходится по вероятности3 к p). Итак, говоря неформальным языком, найденная нами оценка является довольно неплохой при достаточно большом количестве испытаний N. Рассмотрим вопрос, связанный с еще одним крайне желательным свойством оценки – уменьшением ее дисперсии. 3 p n c при n , если P( n c ) 0 n – определение вероятности. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») сходимости по Лекция 1. Введение в методы Монте-Карло 15 Для того чтобы подобрать параметры эксперимента так, чтобы дисперсия была минимальной, необходимо решить задачу минимизации 2l 2l 1 S N pq d d (1.8) D min при l d N N N Решив задачу, получаем, что минимум достигается при l = d. SN 2 , N Тогда . SN 2 2 D 1 N N E Для исключения вырожденного случая SN = 0 определим нашу оценку числа следующим образом: , S N 0; ˆ N 2 N S , S N 0. N (1.9) Можно показать, что о ц е н к а ( 1 . 9 ) с х о д и т с я п о в е р о я т н о с т и к . Метод Hit-Or-Miss Еще один метод оценивания числа называется H i t - O r - M i s s («п о п а л – н е п о п а л »). Метод состоит в следующем: рассмотрим единичный квадрат на координатной плоскости и четверть окружности единичного радиуса с центром в начале координат (рис. 1.4). y 1 S 0 1 x Рис. 1.4 Метод Hit-Or-Miss Пусть единичный эксперимент состоит в том, что в единичном квадрате случайно выбирается любая точка. Рассмотрим событие A, состоящее в том, что точка попала в рассматриваемый сектор окружности. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 16 Площадь квадрата Smax = 1, площадь выделенной области S 4 . 1, A; Рассмотрим случайную величину i . 0, A N Введем S N i , i 1 Тогда SN частота наступления события A. N S SN 0 1 N ; ;...; , случайная величина N подчиняется биномиальному N N N N N распределению. Определим параметры распределения. p P(i 1) 4 1 4 q P (i 0) 1 p 1 4 3 4 m S P N C Nm p m q n m . N N Будем рассматривать SN – частоту наступления события A – в качестве о ц е н к и N величины p – вероятности того, что точка попала в указанный сектор окружности. Зная теоретическую вероятность этого события достаточно большой выборке ( , мы можем оценить эту вероятность по 4 SN ) и рассмотреть следующее равенство: N SN N 4 (1.10) Тогда можно рассмотреть ˆ N 4S N N (1.11) pq 2 E ( N ) ; D( N ) 16 3 , таким образом (1.11) дает несмещенную оценку. N N Метод Выборочного среднего Рассмотрим функцию f ( x) R 2 x 2 . R Рассмотрим f ( x )dx R2 0 R Заметим, что 1 R dx 1, 4 . что определяет функцию q(x) – плотность равномерного 0 распределения на отрезке [0; 1]. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 17 1 R2 dx g ( x)q ( x)dx E ( g ( )) , Тогда R R x R 4 0 0 R R 2 2 где g ( ) R R 2 2 . (1.12) При этом – случайная величина, равномерно распределенная отрезке [0, 1]. 1 Введем ˆN N N g ( ). i 1 i 1 N R2 E (ˆN ) E ( g (i )) . N i 1 4 Будем использовать в качестве оценки числа ˆ N 4 R2 N N g ( ). i 1 i 16 2 2 E (ˆ N ) ; D(ˆ N ) . NR 4 3 16 (1.13) Данная оценка также является несмещенной. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 18 Случайность и имитация случайности Всякий, кто питает слабость к арифметическим методам получения случайных чисел, грешен вне всяких сомнений. Джон фон Нейман В данном разделе мы кратко коснемся инструментального аппарата методов Монте-Карло – с л у ч а й н ы х ч и с е л и способов их получения. Случайность и непредсказуемость С л у ч а й н о с т ь – интереснейшая тема, рассмотрением которой издревле занималась не только математика, но и философия, теология… Судя по всему, одни из первых замеченных людьми проявлений случайности – это гадание и игра. Гадание – определение судьбы человека по неким магическим надписям и событиям, и карточные игры со всеми своими атрибутами, несомненно, являют собой яркие примеры того, как случайность в отличие от свободного выбора влияет на жизнь человека. Разница между с в о б о д н ы м в ы б о р о м и о п р е д е л е н н о с т ь ю всегда являлась предметом ожесточенных споров в философии и теологии. Хотя азартные игры и гадание были приняты у многих культур и во многих странах, на них почти всюду долго существовало некоторое гласное или негласное табу. В лучшем случае, это считалось чем-то неприличным. Скорее всего, основой такого отношения явились церковные запреты. Тем не менее, еще Галилей и Кардано писали про азартные игры и проявление случайности, а Паскаль, Ферма и Гюйгенс направили исследования в направлении сегодняшней т е о р и и в е р о я т н о с т и . В первую очередь математики фокусировали внимание на с т а т и с т и ч е с к о й с л у ч а й н о с т и и изучали частоты появления отдельных элементов и блоков элементов при экспериментах в качестве меры случайности. Впоследствии этот подход был расширен в т е о р и и и н ф о р м а ц и и (понятие э н т р о п и и – м е р ы х а о т и ч н о с т и и н ф о р м а ц и и ). В 60-х годах XX века математики Колмогоров, Хаитин и Соломонофф независимо друг от друга представили важное понятие, которое известно как К о л м о г о р о в с к а я с л о ж н о с т ь . В поисках точного и универсального определения закономерности и хаотичности они пришли к выводу, что оптимальной единицей измерения сложности любой информации является д л и н а н а и б о л е е к о р о т к о й программы, способной генерировать данную информацию . Случайность не нужно путать с н е п р е д с к а з у е м о с т ь ю . Часть систем могут рассматриваться как случайные, но п р е д с к а з у е м ы е , а часть таковыми не являются. Действительно, рассматривая демографическую ситуацию в мире и рост популяции человечества, мы можем считать этот рост случайным, хотя он в целом является Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 19 предсказуемым. Напротив, время жизни и точное время смерти каждого конкретного человека является не только случайным, но и непредсказуемым. Н е п р е д с к а з у е м о с т ь крайне необходима в некоторых приложениях, таких как, например, криптография. Напротив, при имитации, как правило, требуется п р е д с к а з у е м о с т ь 4. Подводя некоторые итоги сказанному, необходимо отметить тот факт, что с л у ч а й н о с т ь по сей день остается сложной и актуальной проблемой современной науки, находящей массу приложений на практике. Случайные числа и генераторы случайных чисел В вычислениях, г е н е р а т о р ы с л у ч а й н ы х ч и с е л – устройства, которые генерируют эти числа из н е п р е д с к а з у е м о г о ф и з и ч е с к о г о п р о ц е с с а . Допустим, мы хотим обеспечить настоящую «с л у ч а й н о с т ь » при получении чисел. Как это сделать? Получить их из какого-то процесса, который мы не только не контролируем полностью, но и не можем предсказывать. Устройства, базирующиеся на таких процессах, обычно работают с м и к р о с к о п и ч е с к и м и я в л е н и я м и , такими как т е р м и ч е с к и й ш у м , ф о т о э ф ф е к т или к в а н т о в ы е я в л е н и я . Теоретически, эти процессы полностью непредсказуемы. Обычно, к в а н т о в ы е генераторы случайных чисел содержат у с и л и т е л ь , который превращает выход физического процесса в некоторые макроскопические параметры, которые можно регистрировать, и преобразователь, который конвертирует выход процесса в цифровой сигнал. Генераторы случайных чисел могут быть также получены из м а к р о с к о п и ч е с к и х я в л е н и й , таких как, например, игральные карты, игральные кости, рулетка. Их непредсказуемость связана с теорией неустойчивых динамических систем и теорией хаоса. Эти теории утверждают, что хотя макроскопические явления и являются детерминированными в рамках Ньютоновой механики, реальные системы развиваются непредсказуемо на практике из-за необходимости знания всех н а ч а л ь н ы х у с л о в и й . Заметим также, что эта необходимая точность начальных условий растет экспоненциально с ростом времени. Реальные физические процессы являются сложными, трудно наблюдаемыми, плохо предсказуемыми. Таким образом, использование генераторов случайных чисел на основе физических процессов на практике сильно затруднено. Вместо них обычно используют так называемые г е н е р а т о р ы п с е в д о с л у ч а й н ы х ч и с е л 4. Генераторы псевдослучайных чисел (PRNG) Г е н е р а т о р п с е в д о с л у ч а й н ы х ч и с е л (ГПСЧ, PRNG) — а л г о р и т м , генерирующий последовательность чисел, элементы которой п о ч т и н е з а в и с и м ы друг 4 При подготовке раздела использованы материалы Интернет-библиотеки Wikipedia. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло от друга и подчиняются заданному 20 распределению . Никакой детерминированный алгоритм не может генерировать полностью случайные числа, а только лишь аппроксимировать некоторые свойства случайных чисел. 5 Поскольку качество используемых случайных чисел проверяется с помощью специальных тестов, можно не интересоваться тем, как эти числа получены: лишь бы они удовлетворяли принятой системе тестов. Числа, получаемые по какой-либо формуле и имитирующие значения случайной величины, называются п с е в д о с л у ч а й н ы м и ч и с л а м и . Под словом «и м и т и р у ю щ и е » подразумевается, что эти числа удовлетворяют ряду тестов так, как если бы они были з н а ч е н и я м и этой случайной величины. [22] Первый алгоритм для получения псевдослучайных чисел был предложен Д ж о н о м ф о н Н е й м а н о м . Он называется м е т о д о м с е р е д и н ы к в а д р а т о в . Поясним его на примере. Пусть задано 4-значное целое число n1 = 9876. Возведем его в квадрат. Получим, вообще говоря, 8-значное число 97 535 376. Выберем четыре средние цифры из этого числа и обозначим n2 = 5353. Затем возведем его в квадрат (28 654 609) и снова извлечем 4 средние цифры. Получим n3 = 6546. Далее, 42 850116, n4 = 8501 и т. д. В качестве значений случайной величины предлагалось использовать значения 0,9876; 0,5353; 0,6546; 0,8501; 0,2670; 0,1289 и т. д. [22] Но этот алгоритм не оправдал себя: получалось больше чем нужно малых значений. Поэтому разными исследователями были разработаны другие алгоритмы. Наиболее распространены л и н е й н ы й конгруэнтный метод, метод Фибоначчи с запаздываниями, linear feedback shift registers, generalized feedback shift registers. Из современных ГПСЧ широкое распространение получил M e r s e n n e t w i s t e r , предложенный в 1997 году Мацумото и Нишимурой. Его достоинствами являются колоссальный период (219937-1), равномерное распределение в 623 измерениях (линейный конгруэнтный метод даёт более или менее равномерное распределение от силы в 5 измерениях), быстрая генерация случайных чисел (в 2-3 раза быстрее, чем стандартные ГПСЧ, использующие линейный конгруэнтный метод). Однако существуют сложные алгоритмы, распознающие последовательность, порождаемую с помощью Mersenne twister, как неслучайную. Это в частности делает Mersenne twister неподходящим для криптографии. Достоинства метода псевдослучайных чисел довольно очевидны. Во-первых, на получение каждого числа затрачивается всего несколько простых операций, так что скорость генерирования случайных чисел зависит от скорости работы компьютера. Во-вторых, любое из чисел может быть легко воспроизведено. 5 При подготовке раздела использованы материалы Интернет-библиотеки Wikipedia. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 21 В-третьих, нужно лишь один раз проверить «качество» такой последовательности, затем ее можно много раз безбоязненно использовать при расчете сходных задач. Один из главных недостатков метода – ограниченность «запаса» псевдослучайных чисел (наличие периода, ГПСЧ рано или поздно зацикливается). Однако существуют генераторы с очень большим периодом. Подавляющее большинство расчетов по методам Монте-Карло в настоящее время осуществляется с использованием псевдослучайных чисел.6 6 По материалам Wikipedia и книги Соболя [ Мееров И.Б. ] Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 22 Заключение Итак, в данном разделе мы заложили фундамент для дальнейшего рассмотрения материалов курса. Так, мы познакомились со следующими основными понятиями и фактами: статистическое моделирование; метод статистических испытаний (методы Монте-Карло); общая схема методов Монте-Карло; области применения статистического моделирования; примеры применения методов Монте-Карло; случайность; непредсказуемость; случайные числа; псевдослучайные числа; генераторы случайных чисел; генераторы псевдослучайных чисел. В следующих разделах мы поговорим об этом подробнее. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 23 Литература 1. Gamerman, D. Markov Chain Monte Carlo: Stochastic Simulation for Bayesian Inference. Boca Raton, FL: CRC Press, 1997. 2. Gentle J. Random Number Generation and Monte Carlo Methods. Springer-Verlag NY, 1998. 3. Gilks, W. R.; Richardson, S.; and Spiegelhalter, D. J. (Eds.). Markov Chain Monte Carlo in Practice. Boca Raton, FL: Chapman & Hall, 1996. 4. Gourdon X., Sebah P. and its computation through the ages. April 16, 2003. [http://numbers.computation.free.fr/Constants/constants.html] 5. Hoffman, P. The Man Who Loved Only Numbers: The Story of Paul Erdos and the Search for Mathematical Truth. New York: Hyperion, pp. 238-239, 1998. 6. Kuipers, L. and Niederreiter, H. Uniform Distribution of Sequences. New York: Wiley, 1974. 7. Manno, I. Introduction to the Monte Carlo Method. Budapest, Hungary: Akadémiai Kiadó, 1999. 8. Metropolis N., Ulam S. The Monte Carlo method, J. Amer. statistical assoc., 1949, 44, N247, 335-341. 9. Metropolis, N. "The Beginning of the Monte Carlo Method." Los Alamos Science, No. 15, p. 125. [http://jackman.stanford.edu/mcmc/metropolis1.pdf] 10. Mikhailov, G. A. Parametric Estimates by the Monte Carlo Method. Utrecht, Netherlands: VSP, 1999. 11. Niederreiter, H. and Spanier, J. (Eds.). Monte Carlo and Quasi-Monte Carlo Methods 1998, Proceedings of a Conference held at the Claremont Graduate University, Claremont, California, USA, June 22-26, 1998. Berlin: Springer-Verlag, 2000. 12. Sobol, I. M. A Primer for the Monte Carlo Method. Boca Raton, FL: CRC Press, 1994. 13. Weisstein Eric W. "Monte Carlo Method." From MathWorld – A Wolfram Web Resource. [http://mathworld.wolfram.com/MonteCarloMethod.html] 14. Большая Советская Энциклопедия. Издание 3-е.–М., Советская энциклопедия, 1970. 15. Бусленко Н.П., Голенко Д.И., Соболь И.М., Срагович В.Г., Шреацидер Ю.А. Метод стохастических испытаний (метод Монте-Карло).–М.: ГИМФЛ, 1962. 16. Бусленко Н.П., Шрейдер Ю.А. Метод статистических испытаний Монте-Карло и его реализация в цифровых машинах.–Физматгиз, 1961. 17. Гмурман В.Е. Теория вероятности и математическая статистика.–М.: Высшая школа, 1977. 18. Ермаков С. М. Метод Монте-Карло и смежные вопросы.–М., 1971. 19. Ермаков С.М., Михайлов Г.А. Статистическое моделирование. М: Наука, 1982. Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») Лекция 1. Введение в методы Монте-Карло 24 20. Ермаков С.Н., Михайлов Г.А. Курс статистического моделирования.– М.:Наука, 1976. 21. Крамер Г.. Математические методы статистики. М: Мир, 1975. 22. Соболь И.М. Численные методы Монте-Карло.–М.:Наука, 1973. 23. Тепляков А. Моделируя жизнь // Hard’n’soft, №8, [http://www.hardnsoft.ru/magazine.php?issue=86&article=18&page=2] Мееров И.Б. Статистическое моделирование и параллельные вычисления. Нижний Новгород, 2005 (Проект «Виртуоз») 2001.