МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФИЗИЧЕСКИЙ ФАКУЛЬТЕТ Кафедра компьютерного моделирования ЗАПОРОЖЦЕВ Александр Викторович КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ СЛУЧАЙНО РАСПРЕДЕЛЕННЫХ АНСАМБЛЕЙ ЧАСТИЦ ДЛЯ ЗАДАЧ КОНТИНУАЛЬНОЙ ПЕРКОЛЯЦИИ Дипломная работа Научный руководитель: доцент кафедры компьютерного моделирования, кандидат физико-математических наук Федотов Александр Сергеевич Допущен к защите « » 2021 г. Зав. кафедрой компьютерного моделирования Кандидат физико-математических наук, доцент О.Г. Романов Минск, 2021 Содержание Введение 6 1 Современные подходы к генерации ансамблей 8 1.1 Области применения случайных ансамблей . . . . . . . . . . 8 1.2 Распределенные в пространстве ансамбли . . . . . . . . . . . 12 1.2.1 Случайно распределенные ансамбли . . . . . . . . . . 13 1.2.2 Плотнейшая упаковка . . . . . . . . . . . . . . . . . . 14 1.3 Современные направления исследований . . . . . . . . . . . 16 2 Алгоритмы построения случайно распределенных ансамблей из идеальных упаковок 18 2.1 Обзор существующих алгоритмов . . . . . . . . . . . . . . . 18 2.2 Критерии случайности ансамбля . . . . . . . . . . . . . . . . 25 2.3 Тестирование производительности алгоритмов . . . . . . . . 30 2.4 Оптимизация параметров алгоритмов . . . . . . . . . . . . . 32 3 Анализ распределенного ансамбля 3.1 Используемые алгоритмы . . . . . . . . . . . . . . . . . . . . 34 34 3.1.1 Кластеризация . . . . . . . . . . . . . . . . . . . . . . 34 3.1.2 Пересечение . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2 Перколяционные свойства случайного ансамбля при различных параметрах частиц . . . . . . . . . . . . . . . . . . . . . 37 Заключение и выводы 39 Список использованной литературы 40 2 РЕФЕРАТ Дипломная работа 40 с., 32 рис., 7 источников. КОНТИНУАЛЬНАЯ ПЕРКОЛЯЦИЯ, ПОРОГ ПЕРКОЛЯЦИИ, СЛУЧАЙНО РАСПРЕДЕЛЕННЫЕ АНСАМБЛИ, ПЛОТНЕЙШАЯ УПАКОВКА, ОКРУЖНОСТИ, ЭЛЛИПСЫ, ПОЛИГОНЫ. Цель работы — аггрегация наиболее производительных алгоритмов генерации случайно распределенных ансамблей окружностей, сфер, эллипсов, эллипсоидов вращения, полигонов и так далее. Объект исследований – алгоритмы генерации, визуализации а также анализа случайно распределенных ансамблей элементов различной формы для задач континуальной перколяции. Основные результаты и новизна: 1. Реализован алгоритм генерации случайно распределенных ансамблей полигонов любой формы для задач континуальной перколяции. Продемонстрирована применимость алгоритма для квадратов и звёзд. 2. Реализован производительный алгоритм генерации непересекающихся эллипсоидов, позволяющий генерировать 1 · 103 элементов за время меньше 1 секунды. 3. На основе подготовленной библиотеки алгоритмов построена зависимость порога перколяции эллипсов от эллиптичности. 4. На основе подготовленной библиотеки алгоритмов построена зависимость размера наибольшего кластера от эллиптичности. 5. Исследована применимость теста автокорреляции для определения случайности расположения элементов. 3 ABSTRACT Thesis 40 pages, 32 pictures, 7 ref. CONTINUAL PERCOLATION, PERCOLATION THRESHOLD, RANDOMLY DISTRIBUTED ENSEMBLES, TIGHT PACKING, CIRCLES, ELLIPSES, POLYGONS. The purpose of the work is to aggregate the most efficient algorithms for generating randomly distributed ensembles of circles, spheres, ellipses, ellipsoids, polygons, and so on. The object of research is algorithms for generating, visualizing, and analyzing randomly distributed ensembles of elements of various shapes for problems of continual percolation. Main results and novelty: 1. Was implemented algorithm for generating randomly distributed ensembles of polygons of any shape for continuous percolation problems. The applicability of the algorithm for squares and stars is demonstrated. 2. Was implemented productive algorithm for generating of non-intersecting ellipsoids, that allows generating 1 · 103 elements in less than 1 seconds. 3. Based on the prepared library of algorithms, the dependence of the percolation threshold of ellipses on ellipticity is constructed. 4. Based on the prepared library of algorithms, the dependence of the size of the largest cluster on ellipticity is constructed. 5. The applicability of the autocorrelation test for determining the randomness of the arrangement of elements is investigated. 4 РЭФЕРАТ Дыпломная праца 40 с., 32 мал., 7 крынiцы. КАНТЫНУАЛЬНАЯ ПЕРКАЛЯЦИЯ, ПАРОГ ПЕРКАЛЯЦII, ВЫПАДКОВА РАЗМЕРКАВАНЫЯ АНСАМБЛI, ШЧЫЛЬНА ЎПАКОЎКА, АКРУЖНАСЦI, ЭЛЛIПСЫ, ПАЛIГОНЫ. Мэта работы – аггрегация найбольш прадукцыйных алгарытмаў генерацыi выпадкова размеркаваных ансамбляў акружнасцяў, сфер, элiпсаў, элiпсоiдаў вярчэння, палiгонаў i гэтак далей. Аб’ект даследаванняў – алгарытмы генерацыi, вiзуалiзацыi а таксама аналiзу выпадкова размеркаваных ансамбляў элементаў рознай формы для задач континуальной перколяции. Асноўныя вынiкi i навiзна: 1. Рэалiзаваны алгарытм генерацыi выпадкова размеркаваных ансамбляў палiгонаў любой формы для задач континуальной перколяции. Прадэманстравана дастасавальнасць алгарытму для квадратаў i зорак. 2. Рэалiзаваны прадукцыйны алгарытм генерацыi неперасякальных элiпсоiд, якi дазваляе генераваць 1 · 103 элементаў за час менш 1 секунды. 3. На аснове падрыхтаванай бiблiятэкi алгарытмаў пабудавана залежнасць парога перколяции элiпсаў ад эллиптичности. 4. На аснове падрыхтаванай бiблiятэкi алгарытмаў пабудавана залежнасць памеру найбольшага кластара ад эллиптичности. 5. Даследавана дастасавальнасць тэсту автокорреляции для вызначэння выпадковасцi размяшчэння элементаў. 5 Введение В решеточных моделях изучается перколяция на различных решетках. Решеточные модели перколяции удобны для изучения, но, к сожалению, большинство неупорядоченных сред не имеют решеточной структуры, и требуется другой подход в изучении протекающих процессов в неупорядоченных средах. В континуальной перколяции рассматриваются задачи жестких и пересекающихся сфер или эллипсоидов, положения которых в пространстве не ограничены жесткими рамками периодической решетки, значения координат элементов могут принимать непрерывные значения. Актуальной проблемой континуальной перколяции является задача перколяции эллипсоидов в пространстве. Решение этой задачи необходимо для исследования структуры полимерных композиционных наноматериалов, состоящих из дисперсных наночастиц. Кроме того, данная перколяционная задача может служить моделью фазового перехода золь-гель. Целью данной работы являлась агрегация алгоритмов генерации случайно распределенных ансамблей элементов различной формы а также алгоритмов анализа расположения, и формы порога перколяции в зависимости от различных параметров на языке программирования Python. Сделан упор на оптимизацию, повышение производительности генерации не пересекающихся множеств элементов, в частности эллипсоидов. Цель работы: реализация программного аппарата позволяющего ускорить разработку идей связанных с континуальной перколяцией. Задачи: 1. Анализ имеющихся алгоритмов генерации не пересекающихся элементов. 2. Реализация метода Монте-Карло, метода случайных блужданий для генерации окружностей, сфер, эллипсов, эллипсоидов, полигонов (на примере квадратов и звёзд). 3. Реализация методов визуализации ансамблей частиц на языке программирования Python с использованием библиотеки Plotly. 6 4. Исследование зависимости положения порога перколяции от различных параметров. Объект исследований: случайно распределенные ансамбли элементов фиксированной формы с фиксированными значениями и явление континуальной перколяции на них. Объект исследований: алгоритмы генерации случайно распределенных ансамблей частиц, перколяционные свойства ансамблей частиц при переходе от решёточной модели к континуальной. Новизна: до написания данной работы не существовало программных библиотек, содержащих в себе набор реализованных алгоритмов для генерации, визуализации и анализа кластеров на континуальных областях. Результат данной работы (программная библиотека) способен повысить скорость включения исследователей в разработку идей связанных с перколяцией. Библиотека поставляется как открытый программный код, поэтому существует возможность дополнять библиотеку любому из исследователей. Личный вклад автора работы: реализация алгоритма для генерации ансамбля не пересекающихся полигонов любой формы (для примера реализованы квадраты, звёзды), реализация высокопроизводительного алгоритма для генерации ансамбля не пересекающихся эллипсов. Агрегация существующих алгоритмов. 7 Глава 1. Современные подходы к генерации ансамблей 1.1 Области применения случайных ансамблей Характерной чертой современного этапа развития прикладной науки является интенсивное применение компьютерных технологий в самых разных видах научных исследований. Ярким примером является теория фильтрации, изучающая закономерности движения жидкостей и газов в проницаемых структурах, некоторые из направлений исследования твёрдых тел а также электродинамики и многих других. Жёсткие диски и сферы долгое время пользовались популярностью среди физиков, материаловедов и химиков для описания структурных. и кинетических свойств вещества. К середине XX в. теория фильтрации считалась сложившейся областью прикладной гидродинамики. Но оставалась неясной природа многочисленных феноменологических законов сопротивления, которые могли иметь ярко выраженный нелинейный характер. В общих чертах было ясно, что ответ на этот вопрос лежит в области микромеханики течения жидкости в пористой среде. Внимательное изучение подходов привело к необходимости классификации всего многообразия структурных моделей пористой среды. В основу классификации был положен известный принцип объединения различных моделей в группы на основе иерархически организованной системы признаков, характеризующих значимые особенности пористой среды. В случае стохастических структур появление хаотических режимов в фазовом пространстве такой системы практически неизбежно. Необходимость универсального подхода для описания сложнейшей структуры хаотических аттракторов потребовала подробного анализа таких понятий, как самоподобие и размерность фрактальных объектов. Перколяционные модели распространения жидкости в пористых структурах позволяют с помощью про- 8 стейших закономерностей смоделировать задачу о микроструктуре неустановившегося режима фильтрационного течения, чрезвычайно сложную в рассмотрении с помощью традиционных методов моделирования. Теория перколяции (протекания) возникла первоначально в физике твердого тела, но в последние годы находит все более широкие применения в самых различных естественных науках (физика, механика, геофизика, астрофизика, химия полимеров, коллоидная химия и т.п.). Основной объект этой теории — случайные однородные множества на графах, решетках, группах, евклидовых пространствах. При этом, в отличие от локальной теории, перколяция изучает глобальные свойства таких множеств. Именно такой подход позволяет рассмотреть широкий класс своеобразных (геометрических) фазовых переходов а также объяснить значительный спектр других физических процессов дискредитировав результат физического явления на элементы, благодаря которым данное явление произошло. Некоторые наиболее принципиальные физические модели, приводящие к перколяционньш задачам [1]: 1. Фазовый переход Мотта в легированных полупроводниках. При легировании полупроводникового кристалла (кремния или германия), атомы которого имеют валентность 4, пятивалентными атомами (мышьяка), при достаточно высокой концентрации λ > λcr пятивалентных, возникает металлическая проводимость. Качественная модель этого явления состоит в следующем. Основное состояние каждого примесного электрона в кристалле изображается некоторой поверхностью (поверхность Ферми) - Эти поверхности Si одинаковы, одинаково ориентированы и жестко связаны со случайно расположенными примесными атомами, локализованными в точках xi . Их множество естественно распадается на связные компоненты Kj - Металлизация кристалла при легировании. примесью отождествляется с появлением (с вероятностью 1) бесконечного связного кластера, то есть перколяцией (протеканием). 2. Концентрационная модель разрушения Журкова. Современная концепция разрушения однородных материалов основа9 на на следующих представлениях. При действии на образец одноосной нагрузки в его толще возникают микротрещины (микросколы), которые можно представить в виде плоских дисков. «Близко расположенные» трещины объединяются, происходит их укрупнение. Простейший критерий укрупнения (не учитывающий взаимную ориентацию микротрещин) состоит в следующем. Окружим каждую трещину сферой Si , диаметр которой в 3 раза превосходит диаметр соответствующего диска и имеющей тот же самый центр xi . Если сферы, связанные с двумя микротрещинами, пересекаются, то последние сливаются. Образование магистральной трещины (то есть разрушение образца) эквивалентно тем самым появлению связного (практически бесконечного) кластера сфер, то есть перколяции «дефектного» множества. 3. Старение полимерных покрытий. В процессе эксплуатации изоляционных полимерных покрытий (кабели, провода и так далее) в них развивается сеть микродефектов или пор, появление которых может быть связано либо со структурными перестройками полимера, либо с термодиффузией низкомолекулярной компоненты (наполнителя полимерной матрицы). Для многих типов полимеров (ПВХ, эмали и так далее) элементарные микропоры имеют сферическую форму Si . Подобно 1, 2, в этом случае дефектное множество описывается пуассоновской моделью сфер случайного радиуса. Важная особенность задач 3 состоит в в том, что здесь нас интересует не только вопрос о возникновении перколяции дефектного множества. в бесконечном пространстве, но и проблема больших уклонений, которые обусловливают протекание через конечный слой вещества еще до достижения перколяционного порога (по концентрации S). 4. Теория осреднения и перколяция. Во многих задачах теории осреднения случайных сред также возникают перколяционные мотивы. Близкие проблемы возникают при изучении случайных сетей сопротивлений. Представим квадратную сетку N × N состоящую из N 2 случайных сопротивлений ξi (для простоты одинаково распределенных и независимых). Если верхний и нижний 10 ряды шунтированы, то при прохождении тока между шунтами сетка будет иметь некоторое случайное сопротивление ρN . Нетрудно показать, что ρN −−−→ ρef f (п. н.). Предельную величину ρef f можно N →∞ рассматривать как эффективное среднее сопротивление одного звена сетки. Определение ρef f можно рассматривать как задачу осреднения некоторой системы разностных уравнений со случайными коэффициентами (представляющей попросту запись законов Кирхгофа для узлов и элементарных ячеек сетки), 5. Проводимость нанокомпозитных материаллов. В нанкомпозитном материале электропроводимость является функцией процентного содержания металлической проводящей фазы к непроводящей. В случае гомогенной однородной среды, плотность вектора электрического тока связана с напряжённостью коэффициентом электропроводимости, однако при переходе к гетерогенной системе, данный коэффициент принимает вид непрерывной функции радиус-вектора от некоторого начала координат. Когда неоднородности системы становятся дискретными (мультифазная система), как параметром системы следует рассматривать параметр эффективной электропроводимости, который зависит от расположения, и размеров неоднородностей. Эмпирически обнаружена нестандартная зависимость электропроводимости системы от процентного содержания металлической фазы в модели, разработанной на основании теории перколяции. На кривой эффективной электропроводимости системы присутствуют отклонения от стандартного графика перколяционной функции в сторону меньших значений. Существует гипотеза, что это вызвано влиянием оксидных оболочках вокруг частиц металла. Весь перечисленный спектр задач подразумевает решение задач, связанных с рассмотрением ансамблей различных форм. В случае с концентрированной моделью разрушения Журкова (пример 2) мы рассматриваем трещины как некоторый ансамбль из дискообразных микротрещин, соединяющихся по некоторому, поддающемуся расчёту закону. Рассматривая такой ансамбль, мы можем предсказать где потенциально появится разлом 11 образца. Для фазового перехода Мотта в легированных полупроводниках (пример 1) каждому элементу присваивается некоторая сферическая область, а все элементы в совокупности могут рассматриваться как ансамбль сферических объектов с некоторым заданным на этом множестве поведением. Для задачи проводимости нанокомпозитных материаллов (пример 5) задача поиска проводящего кластера среди всех ансамблей является основной. Список задач, где при некоторых приближениях мы можем перейти к рассмотрению объектов как ансамблей частиц с заданным поведением огромен, в данной главе приведено только несколько примеров. 1.2 Распределенные в пространстве ансамбли Понятно, что решеточные модели удобны для изучения, но, к сожалению, большинство неупорядоченных сред не имеют решеточной структуры, и требуется другой подход в изучении протекающих процессов в неупорядоченных средах. Континуальная перколяция имеет три наиболее популярные формулировки: модель пустот или модель швейцарского сыра, проблема сфер или обратная модель швейцарского сыра, модель потенциалов. Суть модели швейцарского сыра в том, что сферические пустоты (могут быть как одинакового размера, так и с некоторым распределением размеров) случайным образом помещаются внутрь проводящей среды. Сферические пустоты могут перекрывать друг друга. При критической доле объема таких пустот возникает кластер, соединяющий эти пустоты и, таким образом, среда становится непроводящей [3]. Данные модели широко используются для описания транспорта в пористых средах. В обратной модели швейцарского сыра (проблеме сфер) рассмотрены проводящие сферы, находящиеся в непроводящей среде. Аналогично первой модели, при критическом доле объема таких сфер возникает проводящий кластер. Модель была использована для описания прыжковой проводимости в допированных полупроводниках [4] и фазовых переходов в ферромагнетиках [5]. 12 1.2.1 Случайно распределенные ансамбли Для расположения элементов случайным образом используются несколько различнх подходов. В данной работе рассмотрены метод Монте-Карло а также метод случайных блужданий. Рассмотрим сначала метод Монте-Карло и его адаптацию к задаче генерации поля с ансамблем случайно-распределенных элементов. Обобщённый алгоритм упаковки элементов выглядит следующим образом: 1. Координаты центра первого элемента генерируются и записываются в массивы координат, а элементу присваивается номер i = 1. 2. Для каждого следующего элемента генерируются координаты центра. 3. Проверяется, есть ли в области, равной удвоенному характерному размеру генерируемых элементов, какие-либо генерируемые ранее элементы. 4. Если такие находятся, то идет проверка на пересекаемость нового элемента с каждым элементом находящимся в этой области. 5. Если сфера пересекается с какой-либо из таких сфер, она отвергается: i остается прежним и переходим ко второму пункту. 6. Если сфера не пересекается с какой-либо из таких элементов, она принимается: ее координаты записываются в массивы, элементу присваивается номер i. 7. И так далее до тех пор, пока i не станет равным n. Однако данный алгоритм обладает значительным ограничением при генерации области на текущих вычислительных мощностях. Для генерации области с заданной плотностью заполненности элементами больше 50-ти процентов, время такой генерации значительно превышает время, которое можно получить альтернативными методами. Лучшим альтернативным методом является разработанный метод случайных блужданий: 1. Выбирается некоторая сетка, на которой генерируются элементы в пространстве. 13 2. Для каждого элемента генерируются объект с заранее заданными параметрами. 3. Для каждого элемента производится попытка сместить элемент относительно предыдущего положения (для первого шага предыдущее положение - это положение на узлах сетки). 4. Проверяется, есть ли в области, равной удвоенному характерному размеру генерируемых элементов, какие-либо генерируемые ранее элементы. 5. Если такие находятся, то идет проверка на пересекаемость нового элемента с каждым элементом находящимся в этой области. 6. Если элемент пересекается с каким-либо из таких элементов, он отвергается: i остается прежним и переходим ко второму пункту. 7. Если элемент не пересекается с каким-либо из таких элементов, он принимается: его координаты записываются в массивы, элементу присваивается номер i. 8. И так далее до тех пор, пока currents huf f lec ount не станет равным shuf f lec ount. Данный метод позволяет добиться большей плотности элементов. 1.2.2 Плотнейшая упаковка Термин плотнейшая упаковка характеризует специфическое расположение элементов в пространстве или на поверхности таким образом, чтобы отношение заполненной области к незаполненной было максимальным. При рассмотрении упаковок дисков на поверхности легко определить, что расположение сфер в центрах квадратной решётки с диаметром равным стороне данной решётки не является плотнейшим методом расположения данных элементов. Плотнейшие упаковки в кристаллографии – формы расположения атомов в кристаллической решётке, которые характеризуются наибольшим 14 числом атомов в единице объёма кристалла. Такие упаковки отчётливо выражены в большом числе кристаллических структур. Они характерны для большинства металлов, а также для кристаллизованных инертных газов. Структуры многих неорганических (ионных) кристаллов представляют собой плотнейшие упаковки шаровых анионов (с большими ионными радиусами), в пустотах которых распределяются мелкие катионы. Более 300 лет известна (И. Кеплер) и признаётся наиболее плотной упаковка шаров «вручную», когда на слой шаров, уложенных по углам квадратной сетки, наложен другой такой же слой шаров в лунки нижележащего (коэффициент заполнения пространства таким образом 74, 05%). (a) Плотнейшая упаковка окружностей (b) Плотнейшая упаковка сфер Рисунок 1.2.1 – Пример плотнейшей упаковки. Очевидно, что шары третьего слоя будут лежать точно над шарами первого. Такая упаковка обычно называется кубической плотнейшей гранецентрированной. Она считалась единственной, пока в 1900 английский кристаллограф У. Барлоу не показал, что, поставив куб на угол, его можно разобрать на плоские ещё более плотные слои, в которых лунок между шарами в два раза больше числа самих шаров. Варьируя укладку плотноупакованных слоев, получают бесчисленное множество плотнейших упаковок с одинаковым коэффициентом заполнения – 74, 05%. Если ограничить 15 наслаивание некоторым периодом, то получается: двухслойная плотнейшая упаковка, трёхслойная, четырёхслойная и так далее. Трёхслойная упаковка – это исходная кубическая, прочие – все гексагональные. 1.3 Современные направления исследований Чем больше перколяция развивается как раздел физики, тем больше обнаруживается областей в которых можно применить перколяцию. Одним из направлений исследования на данный момент является электропроводящие композиционные материалы. Эффективная электропроводность гетерогенной системы не совпадает со средней по объему электропроводностью. Установление ее связи со значениями удельных электропроводностей и объемными концентрациями фаз является одной из важных задач физики гетерогенных систем. Аналитическое решение задачи проводят в рамках теорий эффективной среды и протекания (перколяции). При изучении композиционных материалов в первом приближении полагают, что бесконечный токопроводящий кластер возникает только при концентрациях наполнителя, больших порога перколяции, и состоит из однотипных объектов — частиц электропроводящей фазы. Такому строению композитных материаллов отвечают простейшие модельные объекты теории протекания, например, решетки из резисторов с определенным и постоянным сопротивлением или же связанные области пространства с постоянным значением удельной электропроводности. Однако для получения более точных результатов следует перейти от данного приближения к постановке континуальной задаче, при которой отсутствует строго заданная сетка. Одним из широко распространенных подходов для описания процесса гелеобразования является теория перколяции. Она изучает образование связанных объектов в неупорядоченной среде. [2] С помощью теории перколяции описаны многие физические, химические и другие процессы. Известны математические модели процесса гелеобразования, основанные на методах теории перколяции [11–15]. Используются решеточные и континуальные модели. В решеточных моделях занятые узлы рассматривают в качестве молекул растворенного вещества, а пустые — в качестве молекул 16 растворителя. Однако в большинстве случаев решеточные модели оказываются слишком упрощенными для описания реальных систем, так как, во-первых, молекулы растворенного вещества, как правило, не являются точечными объектами, во-вторых, координаты молекул в реальных системах являются непрерывными, а не дискретными. Кроме того, использование решеточных моделей предполагает наличие у моделируемой системы дальнего порядка — трансляционной симметрии. В жидкостях имеется только ближний порядок, поэтому искусственная дискретизация области привносит в модель неприсущие ей свойства. Если говорить конкретно о процессе гелеобразования белковых молекул, то характерный размер молекулы человеческого сывороточного альбумина составляет величину порядка 10−8 м (см., например, [16]), что на два порядка превышает характерные расстояния между молекулами воды. Поэтому молекулы альбумина в водном растворе более естественно рассматривать как частицы, находящиеся в непрерывной среде. Таким образом, описание процесса гелеобразования с помощью моделирования континуальной перколяционной системы представляется более адекватным по сравнению с решеточными моделями. Под континуальной перколяционной системой понимается пространственная трехмерная система с вещественными координатами. 17 Глава 2. Алгоритмы построения случайно распределенных ансамблей из идеальных упаковок 2.1 Обзор существующих алгоритмов Существует большое количество методов как генерации распределенных ансамблей, так и их анализа. Под термином идеальная упаковка подразумевается такой вид упаковки, при котором изначально существует некоторая структурировать расположения элементов в пространстве, но затем вводя стохастику по какимлибо параметрам (допустим все присутствующие оси координат, либо радиусвектор и углы его отклонения от каких-либо осей) а также перемешивание по данным стохастическим параметрам, мы можем получить упаковку элементов любой сложности. В теории перколяции, кроме узлов и связей, наиболее распространённым элементом является сфера, поэтому значительная часть алгоритмов сначала разрабатывается для сфер, как для самых простых в изучении (и моделировании) форм. Рассмотрим некоторые из реализованных алгоритмов построения случайно распределенных ансамблей сфер(как начинающих из изеальных упаковок так и обыкновенных): 1. Случайное расположение элементов Алгоритм случайного расположения элементов является самым примитивным среди всех методов генерации случайного ансамбля. В его основе заложено большое количество попыток расположения элементов в пространстве до того момента, пока не получится случайным образом расположить элементы на заданном заранее пространстве. Алгоритм: 18 1) Случайным образом выбираются координаты внутри области, которую необходимо заполнить 2) Если при попытке расположения сферы заданного радиуса в данных выбранных координатах не возникает пересечений с другими сферами dist(circle[i], circle[j]) < 2 · circle_radius, ∀i 6= j то координаты центра данной сферы добавляются в массив всех сфер 3) Если за max_iteration_count итераций расположения точки на пространстве не набирается достаточное количество непересекающихся сфер, то попытка начинается новая попытка. Это делается потому, что возможны такие расположения сфер в пространстве, при котором добавить дополнительные сферы невозможно, хотя их смещени позволило-бы добавить ещё сфер. 4) Если за определенное количество попыток max_attempt_count расположения сфер (по max_iteration_count итераций в каждой попытке), то расположение сфер считается неудавшимся. Данный подход используется потому, что такая ситуация возможна, когда пользователю необходимо расположить сферы по плотности близко, к плотнейшей упаковке, а добиться такого расположения случайным выбором координат крайне маловероятное событие. Недостатком данного подхода является выраженный порог плотности заполнения, после которого сложность размещения каждой следующей сферы значительно растёт (подробнее будет рассмотрено в разделе 2.3). Также как показано на рисунках выше, данный метод отлично работает и для генерации случайно распределенных ансамблей полигональных структур на плоскости. 2. Метод, основанный на сетке Данный метод можно отнести к классу методов начинающих из идеального расположения элементов. Суть данного метода заключается в 19 (a) Шаров: 10, попытка: 1, итераций: 12 (b) Шаров: 30, попытка: 1, итераций: 42 (d) Шаров: 65, попытка: 3, итераций: (c) Шаров: 50, попытка: 1, итераций: 629 29219 Рисунок 2.1.2 – Расположение шаров (a) Полный ансамбль. (b) Выделенный кластер. Рисунок 2.1.3 – Генерация и кластеризация звёзд. 20 Рисунок 2.1.4 – Блок-схема случайного расположения элементов том, чтобы сначала с возможным избытком расположить элементы в квадратную сетку, а затем из этого возможно избыточного множества выбрать первые circle_count окружностей/сфер. Алгоритм: 1) Определить следующий полный квадрат perf ect_square после количества окружностей circle_count, которые необходимо расположить, и его корень perf ect_square_root. 21 2) Создать сетку из ячеек в perf ect_square_root×perf ect_square_root равномерно распределенную по пространству. Шаг сетки: dl = a/perf ect_square_root где a - размер пространства в котором располагаются шары. 3) Из заполненной сетки случайным образом выбрать circle_count окружностей. 4) Перемешать выбранные сферы на плоскости. Как результат такого действия, мы получаем ансамбль случайно распределенных окружностей. Если при использовании метода (1) уже после расположения 60 шаров возникали трудности, то для того-же пространства метод (2) без проблем расположил и 70 и 80 шаров. Это показывает, что подход с идеальным начальным расположением шаров даёт значительное преимущество как по заполнению пространства так и по скорости работы, ведь не нужно перебирать бесконечное множество вариантов расположения для шара, а достаточно выбирать сразу среди доступных. 22 (a) Шаров 70, до перемешивания (b) Шаров 70, до перемешивания (c) Шаров 81, до перемешивания (d) Шаров 81, после перемешивания Рисунок 2.1.5 – Расположение шаров 3. Метод основанный на плотнейшей упаковке Данный метод позволяет добиться максимальной упаковки окружностей на площади. Для того, чтобы увеличить максимальную плотность возможного расположения сфер на площади, следует прибегнуть к плотнейшим упаковкам (раздел 1.2.2). Алгоритм: 1) Определить следующий полный квадрат perf ect_square после количества окружностей circle_count, которые необходимо расположить, и его корень perf ect_square_root. 23 Рисунок 2.1.6 – Блок-схема расположения основанного на сетке 2) Создать сетку из ячеек в perf ect_square_root×perf ect_square_root распределенную по пространству методом плотнейшей упаковки. 3) Растянуть все сферы на полное пространство. 4) Перемешать выбранные сферы на плоскости. На изображениях 3.2.15 можно увидеть, что при расположении элементов в порядке плотнейшей упаковки можно добиться большей плотности. При том-же размере пространства при помощи плотнейшей упаковки вместо 81 сфер можно расположить до 105. 24 (a) Шаров 90, до перемешивания (b) Шаров 90, после перемешивания (c) Шаров 105, до перемешивания (d) Шаров 105, после перемешивания Рисунок 2.1.7 – Расположение шаров В результате тестов на максимальную плотность упаковки, алгоритмы основывающиеся на плотнейшей упаковке оказываются лучшими, поэтому для трёхмерный объектов также выбран метод плотнейших упаковок. 2.2 Критерии случайности ансамбля Для того, чтобы определить, является-ли расположение элементов ансамбля случайным, следует произвести генерацию элементов кластера Ngenerations 25 Рисунок 2.1.8 – Блок-схема расположения основанного на сетке раз с одинаковым количеством элементов Nelements , присвоив каждому элементу кластера собственный индекс ei , а затем исследовать закономерности расположения элементов в рамках каждого i ∈ [0, Nelements ], при фиксированном j ∈ [0, Ngenerations ] Если выборка значений случайна, то значение каждого ее элемента не 26 должно зависеть от величины предшествующего и последующего членов. Для проверки этой независимости используется статистика являющаяся коэффициентом корреляции первого порядка между элементами первичной выборки r1,n = n Pn 2 x x − ( i=1 i i+1 i=1 xi ) + nx1 xn P P 2 n ni=1 x2i − ( ni=1 xi ) Pn−1 являющаяся коэффициентом корреляции первого порядка между элементами первичной выборки (x1 , . . . , xn ) и элементами выборки, полученной из нее сдвигом на одну единицу (x2 , x3 , . . . , xn , x1 ). Величину r1,n , можно считать распределенной асимптотически нормально со средним M (r1,n ) и 1 дисперсией D (r1,n ), где M (r1,n ) = − n−1 D (r1,n ) = n(n−3) (n+1)(n−1)2 Поэтому в качестве критерия случайности может рас- сматриваться нормализованная статистика ∗ r1,n = |r1,n − M (r1,n )| p D (r1,n ) ∗ > u1− α2 . Гипотеза о случайности отклоняется при r1,n В нашем случае можно проводить такую проверку между координатами расположения элементов. Для этого рассмотрим критерий автокорреляции применимо к x координате, а также к y координате каждого из элементов. В результате если корреляции между конечными значениями координат x и y для каждой из частиц нет, то можно утверждать, что и корреляции между положением окружностей также нет. Результаты проверки критерием автокорреляции показали, что при одинаковом начальном расположении элементов в результате перемешивания, окружности оказываются в различных местах. Проводя эксперимент с определенным количеством окружностей и сохранив конечные положения каждой окружности в каждой генерации, можно провести тест автокорреляции. При значении квантиля стандартного нормального распределения u1−α/2 , генерации случайных ансамблей с различным количеством окружностей (от 10 до 70) показало, что гипотеза о случайности не отклоняется c вероятностью в 0.95. Данный метод проверки позволяет сделать заключение о том, что при генерации случайных ансамблей частиц методом плотнейших упаковок с 27 последующим перемешиванием элементов из одинаковой начальной конфигурации получать различные конечные формации ансамблей. "Случайность"ансамбля также может повысить тот факт, что при проведении теста элементы специально индексировались в фиксированной последовательности. При настоящем исследовании генерирующихся кластеров такого можно не делать (то есть рассматривать все элементы как равные). (b) 30 шаров, тест автокорреляции (a) 10 шаров, тест автокорреляции (c) 50 шаров, тест автокорреляции (d) 70 шаров, тест автокорреляции Рисунок 2.2.9 – Расположение шаров Для проверки как расположены элементы ансамбля проводится про28 верка на подчинение гипотезе о равномерном распределении элементов по каждой из осей. Для того чтобы проверить гипотезу о равномерном распределении X,т.е. по закону: f (x) = 1 b−a в интервале (a, b) надо: 1. Найдём дисперсию и выборочное среднее: 1X xi ni n 1X (xi − x̄)2 ni DB = n x̄ = 2. Оценить параметры a и b - концы интервала, в котором наблюдались возможные значения X, по формулам (через знак ∗ обозначены оценки параметров) a∗ = x̄ − b∗ = x̄ + √ √ 3σ 3σ 3. Найти плотность вероятности предполагаемого распределения f (x) = 1 b ∗ −a∗ 4. Найти теоретические частоты: n01 = n 1 (x1 − a) 73, 763 1 (xi+1 − xi ) 73, 763 1 n0s = n (b − xs ) 73, 763 n0i = n 5. Сравнить эмпирические и теоретические частоты с помощью критерия Пирсона: 2 χ = X (ni − n0 )2 i n0i 29 приняв число степеней свободы k = s − 3, где s - число первоначальных интервалов выборки; если же было произведено объединение малочисленных частот, следовательно, и самих интервалов, то s - число интервалов, оставшихся после объединения. В результате генерации и исследования ансамбля на равномерность распределения по пространству выявлено, что большинство генераций после перемешивания подходят под гипотезу равномерного распределения. Рисунок 2.2.10 – Процент равномерных распределений среди генерации областей 2.3 Тестирование производительности алгоритмов Проведём тестирование производительности некоторых алгоритмов генерации ансамблей. Следующие параметры влияют на время генерации случайного ансамбля: 1. Количество элементов 2. Начальная конфигурация элементов. В зависимости от того, как расположены элементы в начальном положении, меняется скорость гене30 рации случайного ансамбля. Если генерация начинается с расположения элементов по узлам сетки, то скорость получения случайно распределенного ансамбля будет больше, чем если генерация начинается с формации плотнейшей упаковки. Данный аспект вызван тем, что генерация положений для плотнейшей упаковки сложнее чем для расположения в узлах сетки. Также стоит учесть, что при генерации из формации плотнейшей упаковки также добавляется шаг растягивания упаковки на всю ширину пространства. 3. Количество перемешиваний для достижения равномерного распределения (актуально для методов генерации начинающих с какой-либо определенной формации). Рисунок 2.3.11 – Зависимость времени генерации области от количества окружностей 31 Рисунок 2.3.12 – Зависимость времени генерации области от процента заполненности 2.4 Оптимизация параметров алгоритмов При упаковки элементов в систему, а также при перемешивании элементов для генерации случайных чисел применялся алгоритм «Вихрь Мсрсенна» [6]. В результате исследования, основным алгоритмом для генерации случайно распределенного ансамбля выбраны алгоритмы, основанные на плотнейшей упаковке элементов. Для того, чтобы добиться равномерного распределения при различном начальном расположении элементов, следует грамотно выбирать параметры для алгоритма. Следует учесть следующие факторы: 1. Шаг h для перемешивания сгенерированных элементов 2. Количество шагов перемешивания 3. Что является основным параметром генерации (количество элементов или плотность заполненности области генерации). 32 Длина шага h для перемешивания элементов выбирается на основании того, какая плотность заполненности элементов на сетке. Регулируя шаг, с которым перемешиваются элементы возможно оптимизировать количество итераций перемешивания, что позволяет добиться лучшего времени генерации. Рассмотрим на примере генерации кластера по узлам сетки. Также для выбора алгоритма генерации следует учесть, что если плотность элементов значительно меньше максимальной, для генерации достаточно алгоритма, основывающегося на узлах сетки. (a) Плотность заполнения 6.82% (b) Плотность заполнения 25.13% Рисунок 2.4.13 – Расположение шаров Для того, чтобы окружности были качественно и быстро перемешаны, нельзя выбирать шаг h определенной, заданной заранее длины. Стандартным, для использования в подобных задачах шагом является диаметр окружности, однако когда окружности расположены друг к другу ближе, чем радиус окружности, то 90% предлагаемых перемещений окружности не будут выполнены, следовательно большая вычислительная мощность будет потрачена на перемещения, которые не случатся. В случае, когда расстояние от окружности до границы ячейки сетки, меньше, чем радиус окружности, то шаг следует выбирать как это расстояние. В ином случае, шагом следует выбирать h равным диаметру окружности. 33 Глава 3. Анализ распределенного ансамбля 3.1 3.1.1 Используемые алгоритмы Кластеризация Для идентификации принадлежности элемента к кластеру используется алгоритм Хошена-Копельмана [7], который был модифицирован под континуальную задачу. За один проход данный алгоритм идентифицирует все кластеры и определяет распределение элементов по кластерам. Используются следующие обозначения: k — номер кластера, nec[i] — кластерная метка i-ого элемента, kk[k] — размер k-то кластера. Используется понятие соседи: для случая окружностей в задаче узлов соседями являются такие сферы, центры которых находятся на расстоянии, равном или меньшим 2(r + coef ); для случая сфер в смешанной задаче соседями являются такие сферы, центры которых находятся на расстоянии, равном или меньшим 2(г + coef ); для случая эллипсоидов соседями являются такие эллипсоиды, оболочки которых пересекаются. Для проверки пересечения проницаемых оболочек в классе каждого элемента, с которым работает библиотека, должна присутствовать функция object.is_intersect(other_object), которая должна возвращать положительный результат в случае, если элементы object и other_object пересекаются. Подход с использованием функцкии, определяющей пересечение элементов в классе исследуемого обьекта, позволяет библиотеке использовать любые типы объектов. Для добавления в программу расчёта порога перколяции для квадратов, достаточно создать класс Square(), определить его основные параметры, добавить функцию is_intersect(other_object), а также добавить функцию try_to_move, которая будет использоваться при попытках переместить элемент в процессе перемешивания. Алгоритм работает по следующей схеме: 34 1. При генерации первого элемента ему присваивается кластерная метка 1 и размеру первого кластера также присваивается значение 1. 2. Для каждого следующего элемента i, где 2 ≤ г ≤ п, проверяется, существуют ли среди ранее проверенных элементов (уже имеющих кластерную метку) ее соседи. 3. Если соседей не нашлось, то элемент i предположительно принадлежит новому кластеру. В этом случае k увеличивается на 1, элементу i присваивается k-ое значение кластерной метки и значению размера k-ro кластера присваивается 1. 4. Если встречается один сосед, то два элемента принадлежат одному кластеру. В этом случае элементу i присваивается кластерная метка соседа и размер кластера с данной меткой увеличивается на 1. 5. Если соседей нашлось несколько, то все элементы принадлежат одному кластеру. В этом случае, соседи могут иметь как одинаковые, так и разные кластерные метки. Если все кластерные метки соседей одинаковые, то сфере i присваивается кластерная метка соседа и размер кластера с данной меткой увеличивается на 1. Если среди соседей есть такие, которые имеют разные кластерные метки, то возникает конфликт кластерных меток. В этом случае: (a) находим среди кластерных меток наименьшую, она является правильной кластерной меткой, остальные метки являются неправильными; (b) элементу i и всем соседям присваивается значение правильной кластерной метки, размер кластера с правильной меткой увеличивается на (1 + (количествососедей—1)); (c) среди ранее рассмотренных элементов находятся те, которые имеют неправильные кластерные метки. Для каждого такого элемента меняем кластерную метку на правильную, размер кластера с правильной меткой увеличивается на количество таких элементов, 35 а размеры кластеров с неправильными кластерными метками обнуляются. Модифицированный алгоритм Хошена-Копельмана отличается от классического тем, что в классическом алгоритме перебираются по порядку все слои решетки, а в модифицированном перебираются все элементы от 1 до п. Это даст возможность работать алгоритму не на решетке, а в континууме. Кроме того, при работе данного алгоритма создаются списки соседей для каждого элемента. Таким образом, при выполнении модифицированного алгоритма Хошена-Копельмана каждому элементу присваивается кластерная метка. Известно распределение элементов по кластерам, то есть мы знаем сколько существует кластеров и размер каждого кластера. 3.1.2 Пересечение Результатом данной дипломной работы является программная библиотека. Пользы от библиотеки не будет, если она будет применима только к одному или нескольким примитивным объектам, поэтому библиотека в кратчайшие сроки может быть дополнена элементами новой формы. При наличии минимального опыта в программировании, каждый пользователь может добавить новые фигуры. На данный момент библиотека расчитана на работу с следующими фигурами: 1. Эллипс 2. Эллипсоид. 3. Окружность. 4. Сфера. 5. Полигоны: (a) Звезда. (b) Квадрат 36 Для того, чтобы определить пересечение в классе каждого из объектов стоит внедрить метод, отвечающий за обнаружение пересечений. 3.2 Перколяционные свойства случайного ансамбля при различных параметрах частиц Для описания значительно большего спектра различных физических процессов, следует перейти от исследования задач на решётке к контируальным задачам, в которых, в отличие от первых координаты элементов принимают не дискретные, а непрерывные значения. Такой подход позволяет добиться максимального приближения к зачастую бесформенным структурам, которые наблюдаются в реальных физических процессах. Для описания ряда физических явлений, наилучшим приближением является приближение, в котором элементы представляют собой вытянутые эллипсы, поэтому в библиотеке присутствует отдельный раздел, посвящённый генерации и исследованию перколяционных свойств на эллипсоидах. Далее представлен пример вычисления порога перколяции для различных значений эксцентриситета эллипса (a) Параметр эксцентриситета 0.86 (b) Плотность заполнения 0.97 Рисунок 3.2.14 – Зависимость вероятности появления проводящего кластера от процента заполненности пространства. 37 Как показано на данных рисунках, библиотека позволяет с высокой точностью определить местоположение порога перколяции. Также для эллипсов были проведены вычисления зависимости положения порога перколяции от эллиптичности. (a) Зависимость положения порога (b) Зависимость размера наибольшего перколяции от эллиптичности кластера от эллиптичности генерируемых генерируемых элементов. элементах при плотности заполнения 0.3. Рисунок 3.2.15 – Зависимость вероятности появления проводящего кластера от процента заполненности пространства. На данном графике также можно наблюдать положение порога перколяции для окружностей (эллиптичность равна единице). Данное значение совпадает с значениями, вычисленными в других работах, связанных с вычислением порога перколяции для окружностей на поверхности, поэтому работу библиотеки можно считать точной и достоверной. Вычисления производились на 1000 эллипсов при каждой генерации. Для каждой точки производилось по 100 замеров. Шаг эллиптичности 0.05. 38 Заключение Изложенный в дипломе материал, позволяет сформулировать следующие основные результаты и выводы: 1. Исследованы методы теории перколяции, рассмотрены континуальные перколяционные модели. Подготовлен аналитический обзор существующих исследований по континуальной перколяции сфер и эллипсоидов в пространстве. 2. Реализованы следующие алгоритмы для окружностей, эллипсов, полигонов: (a) Алгоритм расположения элементов по методу Монте-Карло. (b) Алгоритм расположения элементов методом случайных блужданий. (c) Алгоритмы поиска порога перколяции. (d) Алгоритмы равномерного распределения методом интервалов. (e) Тест автокорреляции. (f) Алгоритмы визуализации. 3. Определена зависимость положения порога перколяции эллипсов от эллиптичности генерируемых элементов. С приближением эллиптичности к еденице, положение порога перколяции асимптотически приближается к 0.45 процентам заполненности пространства элементами. 4. Вычислена зависимость размера наибольшего кластера от эллиптичности при фиксированном проценте заполненности пространства. Максимальное значение отношения размера наибольшего кластера к общему количеству элементов принимается при наименьшем значении эллиптичности. При приближении значения эллиптичности к единице, отношение размера наибольшего кластера к общему размеру генерируемого ансамбля асимптотически приближается к 0.01. 39 Список литературы [1] М. В. Меньшиков, С. А. Молчанов, А. Ф. Сидоренко. Теория перколяции и некоторые приложения, Итоги науки и техн, т. XXIV, Сер. Теор. вероятн. Мат. стат. Теор. кибернет., 53-57, 110 (1986). [2] М. M. Бузмакова. Перколяция сфер в континууме, т. XII. Сер. Математика. Механика. Информатика, 48-55, 49 (2012). [3] Ю. Ю. Тарасевич. Перколяция: теория, приложения, алгоритмы. Едиториал УРСС, 112 (2002). [4] Б. И. Шкловский, А. Л. Эфрос Электронные свойства легированных полупроводников. Наука, 416 (1979). [5] A. A. Abrikosov, Spin glasses with short range interaction. т. 29. Adv. Phys. 869-946 (1980). [6] M. Malsumoto, Mersenne twister: A 623-dimensionally equidistributed uniform pseudorandom number generator. ACM Trans, on Modeling and Computer Simulations.т. 8. 3-30 (1998). [7] J. Hoshen, R. Kopelman. Percolation and cluster distribution. I. Cluster multiple labeling technique and critical concentration algorithm. 11 Physical Review. т. 14, № 8. 3438-3445 (1976). 40