Лекция 8 Методы Монте Карло. Перколяции.

реклама
Динамические системы
и
методы математического моделирования
Имитационное моделирование
Метод Монте-Карло
• Общее название группы численных методов, основанных на
получении большого числа реализаций стохастического (случайного)
процесса, который формируется таким образом, чтобы его
вероятностные характеристики совпадали с аналогичными величинами
решаемой задачи.
• Используется для решения задач в областях физики, математики,
экономики, оптимизации, теории управления и др.
МФТИ, 2015
Число Пи и алгоритм Буффона
Способ определения числа Пи, который был
предложен Буффоном в 1777 году.
Суть метода была в бросании иглы длиной L на
плоскость, расчерченную параллельными
прямыми, расположенными на расстоянии r
друг от друга.
2
Вероятность того, что отрезок пересечет прямую p  0
(l /2)sin
0
4
2L
dxd  .
r
r
(при условии, что r > L), поэтому подсчитав долю отрезков, пересекающих
прямые, можно приближенно определить число Пи. При увеличении
МФТИ, 2015
количества попыток точность получаемого
результата будет увеличиваться.
Эксперимент Фокса
В 1864 году капитан Фокс, выздоравливая после ранения, чтобы как-то
занять себя, реализовал эксперимент по бросанию иглы. Результаты
представлены в следующей таблице:
Расстояние
Между
прямыми
Вращение
3
4
нет
3.1780
253
3
4
да
3.1423
939
5
2
да
3.1416
Число
бросаний
Число
пересечений
Длина
Первая
попытка
500
236
Вторая
попытка
530
Третья
попытка
590
иглы
Вращение плоскости уменьшает систематическую ошибку.
МФТИ, 2015
Оценка
Пи
Случайные блуждания
Одномерное случайное блуждание на бесконечной решётке может давать
приближенное решение параболического дифференциального уравнения.
МФТИ, 2015
Случайные блуждания и уравнение диффузии
Пусть p(x,t) – вероятность оказаться в положении x в момент времени t
p( x, t  t )  k t  p( x x,t )  (1 2k t )  p( x,t )  k t  p(x  x,t )
p( x, t  t )  p( x, t )  k t  p( x x, t )  2 p( x, t )  p( x  x, t )
МФТИ, 2015
2
p

p
 k x2 2
t
x
Интегрирование методом Монте Карло
Пусть необходимо взять интеграл от некоторой
функции. Воспользуемся геометрическим
описанием интеграла и будем понимать его как
площадь под графиком этой функции.
Для определения площади можно
воспользоваться одним из обычных численных
методов интегрирования: разбить отрезок на
подотрезки, подсчитать площадь под графиком
функции на каждом из них и сложить.
МФТИ, 2015
Интегрирование методом Монте Карло
Предположим, что для функции на рисунке,
достаточно разбиения на 25 отрезков и
вычисления 25 значений функции. Если же мы
имеем дело с n-мерной функцией, то необходимо
25n отрезков и столько же вычислений значения
функции. При размерности функции больше 10
задача становится огромной.
Поскольку пространства большой размерности встречаются, в частности,
в задачах теории струн, а также многих других физических задачах, где
имеются системы со многими степенями свободы, необходимо иметь
метод решения, вычислительная сложность которого бы не столь сильно
зависела от размерности.
МФТИ, 2015
Интегрирование методом Монте Карло
• Ограничим функцию прямоугольником (nмерным параллелепипедом в случае многих
измерений), площадь которого S0 можно легко
вычислить;
• «набросаем» в этот прямоугольник
(параллелепипед) некоторое количество точек (N
штук), координаты которых будем выбирать
случайным образом;
•
•
определим число точек (K штук), которые попадут под график функции;
площадь области, ограниченной функцией и осями координат, S даётся
следующим выражением S = S0 K / N
МФТИ, 2015
Интегрирование методом Монте Карло
Точность вычислений можно увеличить, если область, ограничивающая
искомую функцию, будет максимально к ней приближена. Для этого
необходимо использовать случайные с распределением, форма которого
максимально близка к форме интегрируемой функции.
МФТИ, 2015
Прохождение нейтронов сквозь пластинку
Вероятностные законы взаимодействия отдельной элементарной
частицы (нейтрона, фотона, мезона и др.) с веществом известны.
Обычно требуется найти макроскопические характеристики
процессов, в которых участвует огромное количество таких частиц:
плотности, потоки и т. п.
Прохождение нейтронов сквозь пластинку
Рассмотрим простейший вариант задачи о прохождении нейтронов
сквозь пластинку.
Пусть на однородную бесконечную пластинку толщиной h падает
поток нейтронов с энергией E0; угол падения 90°.
При столкновении с атомами вещества, из которого состоит
пластинка, нейтроны могут упруго рассеиваться или поглощаться.
Предположим для простоты, что энергия нейтрона при рассеянии не
меняется и любое направление «отскока» нейтрона от атома
одинаково вероятно (последнее иногда справедливо в веществах с
тяжелыми атомами).
Прохождение нейтронов сквозь пластинку
Варианты взаимодействия нейтронов с
пластинкой:
а — нейтрон проходит сквозь пластинку,
б — нейтрон поглощается в пластинке,
в — нейтрон отражается пластинкой.
Требуется вычислить вероятность
прохождения нейтрона сквозь пластинку р+;
вероятность отражения нейтрона пластинкой
р- и вероятность поглощения нейтрона в
пластинке р°.
Прохождение нейтронов сквозь пластинку
Взаимодействие нейтронов с веществом характеризуется в
рассматриваемом случае двумя постоянными c и s, которые
называются сечением поглощения и сечением рассеяния (индексы с и
s—это первые буквы английских слов capture -- захват и scattering -рассеяние).
Сумма этих сечений  = c + s называется полным сечением.
Физический смысл сечений следующий:
при столкновении нейтрона с атомом вещества вероятность
поглощения равна c /, а вероятность рассеяния равна s /.
Прохождение нейтронов сквозь пластинку
Длина свободного пробега нейтрона  (т. е. длина пути от столкновения
до столкновения) — это случайная величина. Она может принимать
любые положительные значения с плотностью вероятностей
p(x)= e-x.
Выражение для средней длины свободного пробега:
<>=1/ ,
Формула для розыгрыша :
= –(1/)ln ,
где  – случайная величина на интервале (0,1).
Прохождение нейтронов сквозь пластинку
Остается выяснить, как выбирать случайное направление нейтрона
после рассеяния.
Так как задача симметрична относительно оси х, то направление
вполне определяется одним углом  между направлением скорости
нейтрона и осью Ох.
Можно показать, что требование равной вероятности любого
направления в этом случае равносильно требованию, чтобы косинус
этого угла  = cos был равномерно распределен в интервале (-1,1) и
=2 –1.
Моделирование траекторий нейтронов
Предположим, что нейтрон испытал k-e
рассеяние внутри пластинки в точке с
абсциссой xk и поcле этого начал
двигаться в направлении k.
Разыграем длину свободного пробега
= –(1/)ln
и вычислим абсциссу следующего
столкновения
xk+1 = xk + kk .
Моделирование траекторий нейтронов
Проверим условие прохождения сквозь пластинку:
xk+1>h.
Если это условие выполнено, то счет траектории нейтрона заканчивается
и добавляется единица к счетчику прошедших частиц.
В противном случае проверяем условие отражения:
xk+1<0.
Если это условие выполнено, то счет траектории заканчивается и
добавляется единица к счетчику отраженных частиц.
Если же и это условие не выполнено, т. е. 0  xk+1  h, то, значит, нейтрон
испытал k+1-е столкновение внутри пластинки, и надо разыграть
«судьбу» нейтрона при столкновении.
Моделирование траекторий нейтронов
Выбираем очередное значение  и проверяем условие поглощения:
  c 
Если последнее неравенство выполнено, то счет траектории
заканчивается и добавляется единица к счетчику поглощенных
частиц.
В противном случае мы считаем, что нейтрон испытал рассеяние в
точке с абсциссой xk+1. Тогда разыгрываем новое направление
скорости нейтрона
k 1  2  1
и затем повторяем весь цикл снова (но, конечно, уже с другими
значениями ).
Моделирование траекторий нейтронов
Все  написаны без индексов, так как имеется в виду, что каждое
значение  используется всего один раз. Для расчета одного звена
траектории нужны три значения . Начальные значения для каждой
траектории:
x0  0, 0  1
После того как будут сосчитаны N траекторий, окажется, что N+
нейтронов прошли сквозь пластинку, N– нейтронов отразились от
нее, а N0 нейтронов были поглощены в ней.
Моделирование траекторий нейтронов
Очевидно, искомые вероятности приближенно равны отношениям:
N
N
N0

0
p 
,p 
,p 
.
N
N
N

Отметим только, что метод Монте-Карло позволяет решать гораздо
более сложные задачи об элементарных частицах: исследуемая среда
может состоять из различных веществ и иметь любую геометрическую
структуру; энергия частицы при каждом столкновении может меняться.
Можно учитывать много других ядерных процессов (например,
возможность деления атома при столкновении с нейтроном и
образование при этом новых нейтронов). Можно рассчитать условие
возникновения и поддержания цепной реакции и т. д.
Теория перколяций
Перколяция или задача о протекании
Пусть есть прямоугольная решетка,
состоящая из N*N свободных и занятых
узлов.
Пусть вероятность того, что узел занят – p, и,
соответственно, вероятность того, что узел
свободен (1-p).
Будем называть кластером соседние
занятые узлы и стягивающим кластером
(перколяционным кластером) такой
кластер, который начинается на одной
границе и заканчивается на
противоположной границе решетки.
Перколяция или задача о протекании
Образование стягивающего кластера
называется перколяцией.
Вероятность его образования в конкретной
решетке Pc(p) является предметом
исследования.
Две постановки задачи
В теории перколяции в основном рассматриваются два типа
решеточных задач - задача узлов и задача связей.
В задаче связей, рассматривая некоторую решётку (сетку), определяют
долю связей, при которой образуется стягивающий кластер, т.е.
кластер, соединяющий две противоположные стороны системы.
В задаче узлов блокируют узлы и определяют долю блокированных
узлов при образовании бесконечного кластера. Блокировать узел
означает перерезать все входящие в узел связи.
Перколяция и метод Монте Карло
Идея метода Монте-Карло:
1. Задать значение вероятности занятости узла p.
2. Разыграть состояние каждого узла при заданном значении p, тем самым
построив конкретную реализацию решетки.
3. Определить, есть ли в этой реализации хотя бы один стягивающий
кластер. Если есть, то увеличить счетчик числа стягивающих кластеров Mc
на единицу.
4. Повторить пункты 2-3 M раз.
5. Получить оценку вероятности образования стягивающего кластера
Pc  M c / M
6. Повторить 1-5 для ряда значений вероятности p в интервале от 0 до 1.
Перколяция
Два источника задач перколяции.
1. Физика (исторически первый источник) – задачи просачивания
жидкостей в пористой среде; некоторые задачи, связанные с
проводимостью.
2. Математика – случайные графы.
27
Перколяция
Прямая задача: Какова доля р занятых элементов решетки, при
которой возникает путь от верхнего края до нижнего?
Два варианта постановки задачи: какова доля узлов (задача узлов)
или какова доля связей (задача связей).
Связный подграф называется кластером. Кластер, в котором есть путь
от верхней до нижней границы решетки, называется
перколяционным. В бесконечной решетке перколяционный кластер
бесконечен и единственен.
28
Перколяция
Порог pc перколяции – доля занятых узлов, при которой возникает
перколяционный кластер.
Для бесконечной квадратной решетки величина pc определена: pс=0,5
для задачи связей; pс  0,59275 для задачи узлов.
Обратная задача: какую долю узлов (или связей) надо удалить
(блокировать), чтобы перколяционный кластер распался на
несвязные части.
29
Перколяция
Дерево Кэли – это дерево, у которых степени всех
вершин равны z. Выберем произвольный узел и
перейдем из него в один из смежных z узлов. Из
него выходит z –1 ребер к другим z –1 узлам,
каждый из которых занят с вероятностью p.
Значит, существует в среднем (z –1)p новых занятых узлов, к которым
существует путь из исходного узла. Если это число меньше 1, то
вероятность найти связный путь заданной длины убывает
экспоненциально по мере увеличения этой длины. Если же (z –1)p > 1, то
существует положительная вероятность того, что в графе существуют пути
сколь угодно большой длины (бесконечные кластеры). Таким образом,
порог перколяции pс определяется из уравнения (z –1)pс = 1.
30
Перколяция
При достижении порога перколяции по узлам занятые узлы бесконечной
решетки образуют кластеры всех размеров из связанных между собой
узлов. Распределение кластеров по размерам следует степенному закону:
число n(s) кластеров, содержащих s занятых узлов, пропорционально s.
Для квадратной решетки  = 187/91 = 2,(054945).
Степенной закон n(s) = cs означает, что отношение числа кластеров
одного размера к числу кластеров другого размера зависит не от их
размеров s, а лишь от отношения размеров. Таким образом,
перколяционные кластеры самоподобны, или независимы от масштаба,
на интервале от шага решетки до размера всей решетки.
31
x = 0.58< xc
x = 0.60 xc
Перколяция в задаче узлов
на квадратной решетке 160 160
Из книги
J. Feder, Fractals (Plenum Press, 1988)
x = 0.62> xc
Перколяционные пороги для решёток
Скачать