Есть ли метод моделирования, который не является Монте-Карло? Все методы моделирования включают подстановку случайных чисел в функцию, чтобы найти диапазон значений для функции. Так все ли методы моделирования по сути являются методами Монте-Карло?
Есть ли метод моделирования, который не является Монте-Карло? Все методы моделирования включают подстановку случайных чисел в функцию, чтобы найти диапазон значений для функции. Так все ли методы моделирования по сути являются методами Монте-Карло?
Ответы:
Есть симуляции, которые не Монте-Карло. По существу, все методы Монте-Карло используют (слабый) закон больших чисел: среднее значение сходится к его ожиданию.
Тогда есть квази-методы Монте-Карло. Они моделируются с помощью компромисса случайных чисел и равномерно распределенных сеток для обеспечения более быстрой сходимости.
Моделирование, которое не является методом Монте-Карло, например, используется в вычислительной гидродинамике. Легко моделировать динамику жидкости на «микроуровне» отдельных порций жидкости. Эти части имеют начальную скорость, давление и размер и подвержены воздействию сил от соседних частей или от твердых тел. Моделирование вычисляет все поведение жидкости, вычисляя все части и их взаимодействие. Делать это эффективно делает это наукой. Никаких случайных чисел там не требуется.
В метеорологии или климатических исследованиях все делается аналогично. Но теперь начальные значения точно не известны: у вас есть метеорологические данные только в некоторых точках, где они были измерены. Многие данные должны быть угаданы.
Поскольку эти сложные проблемы часто не являются непрерывными в их входных данных, вы запускаете симуляции с разными догадками. Окончательный результат будет выбран среди самых частых результатов. Это на самом деле, как некоторые прогнозы погоды моделируются в принципе.
Метод Монте-Карло был первым подходом к использованию компьютерного моделирования для статистических задач. Он был разработан командой Джона фон Неймана, Станислава Улама и Николаса Метрополиса из Лос-Аламосских лабораторий, которые работали над Манхэттенским проектом во время Второй мировой войны. Впервые он был описан в 1949 году Метрополисом и Уламом , и это было впервые, когда имя появилось в печати. Это было возможно, потому что ученые, которые обнаружили это, также могли использовать один из первых компьютеров , над которыми они работали. В своей работе они использовали методы Монте-Карло для моделирования физических задач, и идея заключалась в том, что вы могли бы смоделировать сложную задачу с помощью выборки из нескольких примеров этого процесса. Есть множество интересных статей по истории Монте-Карло, например,Метрополис сам или несколько более поздний, например, Роберт и Казелла .
Таким образом, «Монте-Карло» был названием первого метода, описанного с целью компьютерного моделирования для решения статистических задач. Затем название стало общим названием для целого семейства методов моделирования и обычно используется таким образом.
Существуют методы моделирования, которые считаются не-Монте-Карло , однако, хотя Монте-Карло было первым применением компьютерного моделирования, обычно «компьютерное моделирование» и «Монте-Карло» используются взаимозаменяемо.
Есть разные определения того, что такое «симуляция», т.е.
3 a: имитационное представление функционирования одной системы или процесса посредством функционирования другой b; рассмотрение проблемы, которая часто не подвергается непосредственному эксперименту с помощью имитирующего устройства
Кембриджский словарь:
делать или делать что-то, что ведет себя или выглядит как нечто реальное, но не реальное
имитация работы реального процесса или системы во времени
То, что симуляция должна работать - это способность подражать какой-либо системе или процессу. Это не требует какой-либо случайности (как в случае с Монте-Карло), однако, если все возможности опробованы, то процедура представляет собой скорее исчерпывающий поиск или, как правило, проблему оптимизации . Если задействован случайный элемент и для моделирования какой-либо модели используется компьютер, то это моделирование напоминает дух исходного метода Монте-Карло (например, Metropolis & Ulam, 1949). Случайный элемент как важная часть моделирования упоминается, например, Россом (2006, Simulation, Elsevier). Тем не менее, ответ на вопрос сильно зависит от определения симуляции, которое вы принимаете. Например, если вы предполагаете, что детерминированные алгоритмы, которые используют оптимизацию или исчерпывающий поиск, на самом деле являются симуляциями, то мы должны рассмотреть широкий спектр алгоритмов для симуляции, и это делает определение симуляции само по себе очень размытым.
Буквально каждая статистическая процедура использует некоторую модель или приближение реальности, которая «проверяется» и оценивается. Это согласуется со словарными определениями симуляции. Однако мы не считаем всю статистику основанной на моделировании. Вопрос и обсуждение, похоже, возникают из-за отсутствия точного определения «симуляции». Монте-Карло представляется архетипическим (и первым) примером моделирования, однако, если мы рассмотрим очень общее определение моделирования, то многие методы, не относящиеся к Монте-Карло, попадают в определение. Таким образом, существуют не-Монте-Карло симуляции, но все явно основанные на симуляции методы напоминают дух Монте-Карло, так или иначе связаны с ним или были вдохновлены им. Вот почему «Монте-Карло» часто используется как синоним «симуляции».
Все методы моделирования включают подстановку случайных чисел в функцию, чтобы найти диапазон значений для функции.
Я никогда не слышал об этом определении симуляции. Например, в статьях Википедии по симуляции и компьютерному моделированию упоминаются такие термины, как случайное и стохастическое, лишь кратко.
Простой пример симуляции, которая не связана с какой-либо случайностью и, следовательно, явно не является симуляцией Монте-Карло, может быть следующим:
Я хочу смоделировать поведение простого маятника и сделать некоторые упрощающие предположения (безмассовый шнур, пунктуальная масса, нет трения, нет внешних сил, таких как сила Кориолиса). Затем я получаю математический маятник и могу записать дифференциальные уравнения, описывающие его движение. Затем я могу использовать некоторый решатель для дифференциальных уравнений, такой как метод Рунге-Кутты, чтобы моделировать его траекторию для заданных начальных условий. (Я также могу теоретически утверждать, что мне не нужно учитывать дальнейшие начальные условия.)
Таким образом, я получаю довольно хорошую симуляцию реального маятника, даже не используя случайное число. Следовательно, это не симуляция Монте-Карло.
В другом примере рассмотрим логистическую карту , которая представляет собой простую модель популяции без какой-либо случайности.
Нет. Моделирование частицы под действием силы может быть выполнено с использованием Рунге-Кутты или другого детерминированного алгоритма, который не является Монте-Карло.
Монте-Карло используется для вычисления интегралов (вы можете назвать это симуляцией, но в конце она просто вычисляет числовую аппроксимацию оценки). Опять же, вы можете использовать для этого детерминированный метод (например, правило трапеции).
Вообще говоря, вы можете разделить алгоритмы для вычисления интегралов в детерминированных и недетерминированных. Монте-Карло является недетерминированным методом. Квази-Монте-Карло другой. Трапециевидное правило - это детерминированный алгоритм.
Позвольте мне попробовать упрощенное объяснение. Модель «что, если» - это (детерминистическая) симуляция. Скажем, у вас сложная система, например, завод по обработке виджетов. Вы хотите иметь возможность оценить некоторый параметр производительности, скажем, стоимость. Вы строите математическую модель завода, а затем выбираете различные допущения для конкретных факторов в модели, например, как быстро виджеты перемещаются по разным операциям, или как проценты текут в разных направлениях, или сколько виджетов вы будете обрабатывать. Модель представляет собой симуляцию завода, и каждый набор допущений дает оценку этого параметра производительности.
Теперь внесите неопределенность. Вы не знаете, каким будет спрос на виджеты в следующем месяце, но вам нужно оценить стоимость. Таким образом, вместо того, чтобы говорить, что спрос будет 1000 виджетов, вы оцениваете распределение вероятности спроса. Затем вы случайным образом выбираете значения спроса из этого распределения и используете их для своего предположения. Пока вы в этом, вы можете использовать распределение вероятностей и для других предположений. Вы используете модель снова и снова, добавляя допущения, взятые из различных распределений вероятностей. Результатом будет распределение сметы расходов. Это аспект Монте-Карло.
Монте-Карло - это «особенность» или «движок», который накладывается поверх имитационной модели. Вместо моделирования с одним набором допущений для одной оценки, он выполняет набор симуляций с использованием случайно выбранных допущений.
В теории игр, особенно, подходы, использующие случайность в симуляциях, называются методами Монте-Карло. Обычно он используется как часть поиска по дереву Монте-Карло (MCTS) в современных программах.
(Первоначальный вопрос не проводил различия между « алгоритмом Монте-Карло » и « методом Монте-Карло », что может объяснить разногласия по поводу некоторых ответов здесь.)
Например, в игре го (и во всех других играх, о которых мне известно, используется MCTS), симуляции называются playout. В случайных играх используются самые простые правила. Легкие игры являются синонимом случайных игр или отфильтровывают несколько легко обнаруживаемых плохих ходов. Тяжелые игры используют больше эвристики, чтобы отфильтровать намного больше ходов. (Кстати, игра всегда заканчивается до конца игры, поэтому каждая игра занимает примерно одинаковое количество времени.) Но все они называются симуляциями "Монте-Карло".