exam11 4 - stankin/design-part-1 GitHub Wiki

Метод Монте-Карло, способы его применения в имитационном моделировании и реализации с помощью объектно-ориентированного подхода.

Реферат к лекции 11 Математические методы в объектно-ориентированном проектировании

Выполнил: Мавлоназаров Хушнуд, ИДБ-18-08

Проверил: Салип Даниил, ИДБ-18-08

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

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

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

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

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

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

Обычный алгоритм Монте-Карло интегрирования

Предположим, требуется вычислить определённый интеграл
picture4

Рассмотрим случайную величину u, равномерно распределённую на отрезке интегрирования [a,b]. Тогда f(u) также будет случайной величиной, причём её математическое ожидание выражается как
picture5

где \varphi (x) — плотность распределения случайной величины u, равная picture8 на участке [a,b]. Таким образом, искомый интеграл выражается как
picture10

но математическое ожидание случайной величины f(u) можно легко оценить, смоделировав эту случайную величину и посчитав выборочное среднее.

Итак, бросаем N точек, равномерно распределённых на [a,b], для каждой точки u_{i} вычисляем f(u_{i}). Затем вычисляем выборочное среднее: picture6. В итоге получаем оценку интеграла:
picture11

Точность оценки зависит только от количества точек N.

Этот метод имеет и геометрическую интерпретацию. Он очень похож на описанный выше детерминистический метод, с той разницей, что вместо равномерного разделения области интегрирования на маленькие интервалы и суммирования площадей получившихся «столбиков» мы забрасываем область интегрирования случайными точками, на каждой из которых строим такой же «столбик», определяя его ширину как picture7, и суммируем их площади.

Способы применения

Независимо от используемого инструмента, метод Монте-Карло состоит из трех основных шагов:

  1. Создание прогнозной модели с определением зависимой переменной, в отношении которой осуществляется прогноз, и независимых переменных (также известных как входные данные, переменные риска или предиктивные переменные), лежащих в основе прогноза.
  2. Определение распределений вероятностей независимых переменных. Определение диапазона вероятных значений с помощью имеющихся статистических данных и/или субъективных знаний аналитика с последующим присвоением каждому такому значению весовых коэффициентов вероятности.
  3. Многократное выполнение моделирования для создания случайных значений независимых переменных. Моделирование выполняется до тех пор, пока не будет получена репрезентативная выборка практически бесконечного числа возможных комбинаций.

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

Блок-схема, представленная на рисунке отражает укрупненную схему работы с моделью.

picture1

Пример использование метода Монте-Карло в объектно-ориентированном подходе

В качестве примера будет рассмотрен метод моделирования освещенности методом Монте-Карло. В зависимости от конкретных вычислений, возможно использование различных специальных представлений. Так различные специальные представления удобны для работы с разными моделями света (RGB, спектральной). Специальное представление необходимо и для ускорения вычислений с использованием средств SIMD современных процессоров. Связь между различными представлениями сцены показана на рис.5. Все представления имеют вид древовидной иерархии паевых или целевых объектов. picture2

Исходным представлением сцены является ее целевое представление. Каноническое представление сцены строится по исходному целевому представлению. Специальные представления строятся по каноническому представлению. Объекты целевого и специального представлений могут ссылаться на объекты канонического представления, но не наоборот и не между собой.

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

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

Не хватает более простых примеров или пояснений про методы объектов и гда/как именно используется метод Монте-Карло. В целом текст не лаконичен.

picture3


Литература:

  1. Объектно-ориентированный подход к реализации систем компьютерной графики // https://keldysh.ru/pages/cgraph/articles/dep20/publ2009/instruc.pdf

  2. Моделирование методом Монте-Карло // https://www.ibm.com/ru-ru/cloud/learn/monte-carlo-simulation

  3. Метод Монте-Карло // https://ru.wikipedia.org/wiki/Метод_Монте-Карло

  4. Метод Монте-Карло // https://www.cfin.ru/finanalysis/monte_carlo2.shtml#:~:text=Имитационное%20моделирование%20по%20методу%20Монте,параметров%20(корреляцию)%20получить%20распределение%20доходности

  5. Курс Моделирования информационных систем // https://edu.stankin.ru/course/view.php?id=415