Теорема о гигантской компоненте. Поиск в ширину в случайном графе — различия между версиями
Cuciev (обсуждение | вклад) м (small changes) |
Cuciev (обсуждение | вклад) м (→Теорема о гигантской компоненте) |
||
Строка 21: | Строка 21: | ||
<tex>Y_0 = 1, Y_i = Y_{i - 1} + Z_i - 1</tex>. | <tex>Y_0 = 1, Y_i = Y_{i - 1} + Z_i - 1</tex>. | ||
}} | }} | ||
− | + | В произвольном графе <tex>G = (V,E)</tex> зафиксируем <tex>v_1 \in V</tex>. Пометим ее как активную, а все остальные вершины {{---}} нейтральными. Выберем среди нейтральных вершин всех соседей вершины <tex>v_1</tex>. После этого пометим вершину <tex>v_1</tex> как неактивную , а смежных с ней {{---}} как активных, а все остальные вершины {{---}} нейтральными. | |
− | Снова зафиксируем какую-нибудь активную вершину <tex>v_2</tex>, и повторим процесс | + | Снова зафиксируем какую-нибудь активную вершину <tex>v_2</tex>, и повторим процесс, не меняя статус остальных уже активных вершин. |
Продолжая этот ветвящийся процесс, мы в конце концов получим лишь неактивные (образующие компоненту, содержащую <tex>v_1</tex>) и нейтральные вершины.<br> | Продолжая этот ветвящийся процесс, мы в конце концов получим лишь неактивные (образующие компоненту, содержащую <tex>v_1</tex>) и нейтральные вершины.<br> | ||
− | + | Данный процесс очень похож на [[Обход в ширину|поиск в ширину]], этим свойством мы воспользуемся позднее.<br> | |
Обозначим число активных вершин в момент времени <tex>t</tex> через <tex>Y_t</tex>, число нейтральных вершин {{---}} через <tex>N_t</tex>, а число соседей вершины, которую собираемся пометить как неактивную, {{---}} через <tex>Z_t</tex>. Тогда <tex>Y_0 = 1,Y_t = Y_t−1 + Z_t − 1</tex>. Все введенные величины зависят от графа <tex>G</tex> и от последовательности выбираемых вершин <tex>v_1,\dotsc</tex>. | Обозначим число активных вершин в момент времени <tex>t</tex> через <tex>Y_t</tex>, число нейтральных вершин {{---}} через <tex>N_t</tex>, а число соседей вершины, которую собираемся пометить как неактивную, {{---}} через <tex>Z_t</tex>. Тогда <tex>Y_0 = 1,Y_t = Y_t−1 + Z_t − 1</tex>. Все введенные величины зависят от графа <tex>G</tex> и от последовательности выбираемых вершин <tex>v_1,\dotsc</tex>. | ||
Строка 44: | Строка 44: | ||
'''Случай <tex>c < 1</tex>'''. | '''Случай <tex>c < 1</tex>'''. | ||
− | Положим <tex>t_0=[\beta \ln n]</tex>, где <tex>\beta | + | Положим <tex>t_0=[\beta \ln n]</tex>, где <tex>\beta</tex> {{---}} константа, которая будет подобрана далее. Нам хочется доказать, что с большой вероятностью каждая из компонент случайного графа имеет размер <tex>\le t_0</tex>. |
Но размер компоненты {{---}} это момент вырождения процесса <tex>Y_t</tex> на случайном графе. Значит, интересующее нас утверждение можно записать в следующем виде: | Но размер компоненты {{---}} это момент вырождения процесса <tex>Y_t</tex> на случайном графе. Значит, интересующее нас утверждение можно записать в следующем виде: | ||
<tex>P_{n, p}(\exists v_1 : Y_{t_0} > 0) \rightarrow 0, n \rightarrow \infty</tex> | <tex>P_{n, p}(\exists v_1 : Y_{t_0} > 0) \rightarrow 0, n \rightarrow \infty</tex> | ||
− | Поскольку <tex>P_{n, p}(\exists v_1 : Y_{t_0} > 0) \le nP_{n, p}(Y_{t_0} \ge 0)</tex>, достаточно найти такое <tex>\beta</tex>, при котором | + | Поскольку <tex>P_{n, p}(\exists v_1 : Y_{t_0} > 0) \le nP_{n, p}(Y_{t_0} \ge 0)</tex>, достаточно найти такое <tex>\beta</tex>, при котором <tex>P_{n, p}(Y_{t_0} > 0) = o\left(\frac{1}{n}\right).</tex><br> |
− | + | <br> | |
− | <tex>P_{n, p}(Y_{t_0} > 0) = o\left(\ | ||
− | |||
− | |||
− | |||
<tex>P_{n, p}(Y_{t_0} > 0) = P_{n, p}(\xi_{t_o} > t_0) \thickapprox P_{n, p}(Binomial(n, 1 - (1 - p)^{t_0}) > t_0) \thickapprox</tex><br> | <tex>P_{n, p}(Y_{t_0} > 0) = P_{n, p}(\xi_{t_o} > t_0) \thickapprox P_{n, p}(Binomial(n, 1 - (1 - p)^{t_0}) > t_0) \thickapprox</tex><br> | ||
(с учетом асимптотики <tex>1 - (1 - p)^{t_0} \thicksim pt_0) </tex><br> | (с учетом асимптотики <tex>1 - (1 - p)^{t_0} \thicksim pt_0) </tex><br> | ||
Строка 67: | Строка 63: | ||
'''Случай <tex>c > 1</tex>'''. | '''Случай <tex>c > 1</tex>'''. | ||
− | В данном случае ветвящийся процесс на графе нужно «запускать» не один раз, а многократно. Только так удается доказать, что | + | В данном случае ветвящийся процесс на графе нужно «запускать» не один раз, а многократно. Только так удается доказать, что а.п.н. хотя |
− | бы в одном запуске возникнет гигантская компонента. Подробности можно найти в <ref name="trueproof" />, мы же лишь поясним, откуда в текущей ситуации появляется | + | бы в одном запуске возникнет гигантская компонента. Подробности можно найти в <ref name="trueproof" />, мы же лишь поясним, откуда в текущей ситуации появляется <tex>\gamma</tex> из формулировки '''предыдущей''' теоремы и почему она совпадает с одноименной константой из той же теоремы. '''Лучше сделать ссылку на прокрутку статьи вверх, но в целом можно забить. Вообще "предыдущая теорема" - не очень хорошая ссылка''' |
Чтобы доказать, что есть гигантская компонента, необходимо, чтобы ветвящийся процесс на графе не вырождался даже | Чтобы доказать, что есть гигантская компонента, необходимо, чтобы ветвящийся процесс на графе не вырождался даже | ||
− | при <tex>t \thickapprox \gamma n</tex> | + | при <tex>t \thickapprox \gamma n</tex>, то есть:<br> |
<tex>P_{n, p}(Y_{t_0} \le 0)\rightarrow 0, t \thickapprox \gamma n, n \rightarrow \infty</tex> | <tex>P_{n, p}(Y_{t_0} \le 0)\rightarrow 0, t \thickapprox \gamma n, n \rightarrow \infty</tex> | ||
Версия 00:26, 27 мая 2020
Содержание
Теорема о гигантской компоненте
Перед формулировкой основной теоремы данного раздела, дадим определение некоторых понятий, которые будут использованы в дальнейшем, а также приведем необходимые далее утверждения.
Определение: |
Простейший ветвящийся процесс. Пусть [1] с одним и тем же математическим ожиданием . Положим . | — независимые пуассоновские величины
Представлять себе описанный только что процесс можно так: в начальный момент времени есть одна активная частица. Затем она создает
Говоря в терминах данного выше определения, и — количество активных и порожденных частиц в момент времени , соответственно.
Теорема: |
Пусть . Тогда с вероятностью 1 процесс вырождается, т.е. . |
Теорема: |
Пусть . Пусть — единственное решение уравнения . Тогда процесс вырождается с вероятностью , т.е. . |
Определение: |
Ветвящийся процесс на случайном графе. Пусть математическим ожиданием . Положим . | — независимые пуассоновские величины с одним и тем же
В произвольном графе
зафиксируем . Пометим ее как активную, а все остальные вершины — нейтральными. Выберем среди нейтральных вершин всех соседей вершины . После этого пометим вершину как неактивную , а смежных с ней — как активных, а все остальные вершины — нейтральными.Снова зафиксируем какую-нибудь активную вершину
, и повторим процесс, не меняя статус остальных уже активных вершин.Продолжая этот ветвящийся процесс, мы в конце концов получим лишь неактивные (образующие компоненту, содержащую
Данный процесс очень похож на поиск в ширину, этим свойством мы воспользуемся позднее.
Обозначим число активных вершин в момент времени
через , число нейтральных вершин — через , а число соседей вершины, которую собираемся пометить как неактивную, — через . Тогда . Все введенные величины зависят от графа и от последовательности выбираемых вершин .Если
посчитать случайным, то при любом выборе вершин получатся случайные величины на пространстве .Теорема о гигантской компоненте
Теорема (о гигантской компоненте): |
Рассмотрим модель . Пусть .
Если Если же , то найдется такая константа , зависящая от , что а.п.н. (асимптотически почти наверное) размер каждой связной компоненты случайного графа не превосходит . , то найдется такая константа , зависящая от , что а.п.н. в случайном графе есть ровно одна компонента размера . Размер остальных компонент не превосходит . |
Доказательство: |
Приведем здесь идеи[2], изложенные А.М. Райгородским, основанные на доказательстве[3] Р. Карпа. Такой формат позволит понять основные идеи и логику рассуждений. Строгий вариант приведен в [4]. Случай .Положим , где — константа, которая будет подобрана далее. Нам хочется доказать, что с большой вероятностью каждая из компонент случайного графа имеет размер . Но размер компоненты — это момент вырождения процесса на случайном графе. Значит, интересующее нас утверждение можно записать в следующем виде:
Поскольку Случай .В данном случае ветвящийся процесс на графе нужно «запускать» не один раз, а многократно. Только так удается доказать, что а.п.н. хотя бы в одном запуске возникнет гигантская компонента. Подробности можно найти в [4], мы же лишь поясним, откуда в текущей ситуации появляется из формулировки предыдущей теоремы и почему она совпадает с одноименной константой из той же теоремы. Лучше сделать ссылку на прокрутку статьи вверх, но в целом можно забить. Вообще "предыдущая теорема" - не очень хорошая ссылка Чтобы доказать, что есть гигантская компонента, необходимо, чтобы ветвящийся процесс на графе не вырождался даже
при Так как по условию , то при выполнено: Применим центральную предельную теорему к Пределы интегрирования в данном случае: от lj .Если , то мы получим искомое стремление вероятности к нулю.Если Таким образом, критическое значение , то вероятность, напротив, будет стремиться к единице. , вплоть до которого есть именно стремление к нулю, — это решение уравнения или, что равносильно, . А это и есть уравнение из предыдущей теоремы, если заменить на . |
Обход случайного графа
Приведем ряд утверждений, которые будут использованы а дальнейшем. Доказательство опустим ради лаконичности, их, а также более детальный рассказ можно найти здесь[5].
Утверждение: |
Пусть . Тогда вероятность , что ( — компонента связности, содержащая ): — константа. |
Главная идея доказательства, которую мы будем использовать в дальнейшем — изменение алгоритма поиска в ширину таким образом, чтобы только что открытые вершины были выбраны из множества фиксированного размера. Такая модификация превращает поиск в ширину в ветвящийся процесс. |
Теорема: |
Пусть .
|
Поиск в ширину
Рассмотрим граф . Проанализируем его структуру по мере роста . При граф состоит только из изолированных вершин. С ростом в нем появляются ребра, компоненты связности получающегося леса объединяются. При достижении граф а.п.н. является лесом. Когда , появляются циклы. При размер каждой из компонент связности равен . Число компонент связности, содержащих только один цикл — константа, зависящая от . Таким образом, граф состоит из леса и компонент, содержащих единственный цикл без компонент размера .
Когда начинает образовываться гигантская компонента. Этот процесс происходит в два этапа: при возникают компоненты из вершин, а.п.н. являющиеся деревьями. При , появляется гигантская компонента размером, пропорциональным количеству вершин во всем графе.
После превышения значения , все неизолированные вершины оказываются в гигантской компоненте. При достижении , в графе остаются только изолированные плюс гигантская компонента. Когда становится равной граф становится связным. При верно: — клика .
Чтобы вычислить размер компоненты связности, пройдемся с помощью поиска в ширину по ней, стартуя из произвольной вершины и переходя к очередной неисследованной вершине, только если ребро между ними существует (данный факт необходимо установить независимо от других ребер, с вероятностью ). Если ребро существует, пометим следующую вершину как "открытую". Алгоритм закончит свою работу (обойдет всю компоненту связности), когда множество неисследованных "открытых" вершин станет пустым.
Проблема поиска в ширину
На данном изображении представлены результаты работы поиска в ширину , начавшемся в вершине на двух графах: в первом у всех ребер , во втором же факт существования ребра определялся по ходу работы алгоритма — ребра, отмеченные пунктиром, не существуют. Проблема возникает, когда алгоритм просто не доходит до каких-то ребер, не выясняя, существуют они или нет: находясь в вершине , алгоритм не делал запрос о ребре , так как у этому моменту вершина уже была исследована. Ребра, которые потенциально могли быть не изученными, помечены на рисунке точечным пунктиром.
Неоткрытые вершины
Будем считать шагом алгоритма поиска открытие новой вершины. После первых
== Ветвящийся процесс ==
Наверное, лучше придумать другой заголовок
Пользуясь идеями, изложенными в доказательстве леммы, перейдем от модифицированного поиска в ширину к ветвящемуся процессу. Этот процесс используется для генерации случайных деревьев, возможно, бесконечного размера.
Рассмотрим натуральное случайное число , обозначающее количество потомков у очередной исследованной вершины. Каждый раз это значение выбирается случайно и независимо.
Процесс построения дерева заканчивается, образуя конечное дерево, когда у каждой вершины построены все ее потомки. Данный процесс может продолжаться бесконечно.
Пусть . Пусть — вероятность того, что в модифицированном поиске в ширину. Пусть — вероятность окончания процесса. Тогда , поскольку поиск в ширину, заканчивающийся с вершинами, приводит к окончанию построения дерева.
Пусть — вероятность, что производит потомков. Тогда:
и .
Глубина дерева не меньше количества вершин. Пусть — вероятность того, что процесс закончится с деревом глубины . Имеем:
Вероятность исчезновения
Определение: |
Вероятность исчезновения (extinction probability) — вероятность, того, что дерево ветвящегося процесса будет конечным (процесс завершится через конечное время). |
Утверждение: |
Пусть . Пусть — единственный корень на . Тогда для . |
Теорема: |
Рассмотрим дерево, сгенерированное ветвящимся процессом. Пусть — производящая функция числа потомков каждой вершины. Тогда:
|
В данной статье нами рассматривается простой случай ветвящегося процесса, в котором распределение количества потомков одинаково для каждой вершины.
Обозначим:
Для того, чтобы вычислить вероятность исчезновения, воспользуемся производящей функцией:
где — вероятность того, что
Так как — вероятность конечности алгоритма, то, если у корневой вершины потомков, построение каждого из поддеревьев должно завершиться, и это произойдет с вероятностью :
Таким образом, является корнем уравнения:
Рассмотрим решение данного уравнения на .
— всегда решение данного уравнения, так как .
Введем обозначения: — количество потомков вершины, а .
Тогда: .
Кажется, что при дерево будет расти вечно, так как каждая вершина в момент времени должна иметь потомков, однако при с положительной вероятностью у корня может вообще не быть потомков. В исходном играет роль , ввиду того, что .
Пользуясь описанными выше утверждениями, можно доказать, что:
Подробное описание доказательств данного факта, а также самих утверждений можно найти здесь[5].
Вывод
Используя результаты, полученные в предыдущей части, сделаем вывод о вероятности окончания работы поиска в ширину на случайном графе
См. также
Литература
- ↑ https://ru.wikipedia.org/wiki/Распределение_Пуассона
- ↑ Введение в математическое моделирование транспортных потоков: Учебное пособие/Издание 2-е, испр. и доп. А. В. Гасников и др. Под ред. А. В. Гасникова.— М.: МЦНМО, 2013 — C.330-339 — ISBN 978-5-4439-0040-7
- ↑ Karp R. The transitive closure of a random digraph//Random structures and algorithms. 1990. V. 1. P. 73–94.
- ↑ 4,0 4,1 Алон Н., Спенсер Дж. Вероятностный метод. М.: Бином. Лаборатория знаний, 2007.
- ↑ 5,0 5,1 Blum A. Random Graphs // CS 598 Topics in Algorithms (UIUC), 2015. URL: https://www.cs.cmu.edu/~avrim/598/chap4only.pdf