SequentialAlgorithm(by J.Blitzstein) – russian

advertisement
A SEQUENTIAL IMPORTANCE SAMPLING ALGORITHM FOR
GENERATING RANDOM GRAPHS WITH PRESCRIBED DEGREES
By Joseph Blitzstein and Persi Diaconis
Последовательной алгоритм выборки по значимости
для генерирования случайных графов с заданной
связности
степенью
Джозеф Blitzstein и Перси Diaconis
Стэнфордский университет
importance sampling-выборка по значимости
Случайные графы с заданной последовательностью степеней связности используются в моделе содержащем
несколько возможностей, отсутствующих в классической модели Erd˝os-R´enyi такие, как зависимые ребра
dependent edges с не биномиальные степенями распределения (non-binomial degrees). В этой статье мы
использовали характеристические данные Erd˝os and Gallai и разработали последовательный алгоритм
генерации случайных помеченных графов с заданной последовательностью степеней связности. Алгоритм
прост в реализации и позволяет удивительно эффективно иметь последовательную выборку по значимости.
Даны приложения, в том числе моделирование биологических сетей и оценка числа графов имеющих
заданную последовательность степеней связности.
1. Введение. Случайные графы с заданной степенью вершин в последнее время
привлекают большой интерес в качестве модели для многих реальных сложных сетей,
включая Всемирный Web, Peer-To-Peer сети, социальных сетей, а также биологических
сети. Ньюман [58] содержит отличный обзор этих сетей, с обширными ссылками. Общий
подход к моделированию этих систем состоит в исследовании (эмпирическое или
теоретическое) степеней вершин на примерах сетей, а затем генерации случайных графов
с соответствующими степенями. Графы с заданной степенью также появляются в теория
случайных матриц и струнной теории, которая может приводить к большим моделям на
основе случайных K-регулярных графах. Хотя, речь идет о создании простых графов, т. е.
без петель и кратных ребер (проблема становится значительно легче, если допускаются
петли и кратные ребра).
Основным результатом этой работы является новый последовательнуй алгоритм
выборки по значимости для
генерирования случайных графов с заданной
последовательностью степеней связности.
Идея заключается в создании
последовательности графов, на каждом этапе выбирается ребро из списка кандидатов, с
вероятностью пропорциональной степени вершины. Большинство изученных ранее
алгоритмов для этой задачи либо застревают(get stuck) либо создают циклы или кратные
ребра в выходных данных, которые обрабатываются начиная сначала и повторяют
попытку. Часто для таких алгоритмов, вероятность перезагрузки быстро приближается к
1, в то время как параметр степени связности растет, в результате чего необходимо
огромное количество экспериментов в среднем для получения простого графа.
Основные преимущество нашего алгоритма является то, что оно никогда не
застревает. Это достигается посредством характеристик Erd˝os-Gallai, который описан в
разделе 2, и тщательно подобранных порядком выборки ребер.
Например, граф на рисунке 1 представляет пищевую сеть из 33 типов организмов
(таких, как бактерии, устрицы, и сома) в Чесапикском заливе в течение лета. Данные из
Бэрд и Ulanowicz [5] и доступна в Интернете по адресу [77]. Каждая вершина
представляется одним из 33 типов организмов, и ребра между двумя вершинами
указывается, что один охотится за другим. Мы представляем это как неориентированный
граф для данного примера, хотя очевидно более естественно использовать
ориентированный граф: эти вопросы, либо X ест Y или Y ест X (особенно для X и Y). Тем
не менее, мы увидим в разделе 11, что неориентированная пищевая сеть раскрывает
интересную информацию о связях и общих инфраструктурах в пищевой сети. Синий краб,
который людоедский, представлен вершиной 19, мы имеем пропущенную петлю на
вершине 19, не по моральным причинам, а поскольку мы рассматриваем простые графы.
Рисунок..................
Пппппппппппппппппп
Степень последовательности для
выше описанного графа равна
D = (7, 8, 5, 1, 1, 2, 8, 10, 4, 2, 4, 5, 3, 6, 7, 3, 2, 7, 6, 1, 2, 9, 6, 1 , 3, 4, 6, 3, 3, 3, 2, 4, 4).
Примение выборки по значимости, как указано в разделе 9, с 100000 испытаниями,
дал (1,533 ± 0,008) × 1057 как предполагаемое число графов с одинаковой степенью
последовательности d. Естественным способом проверки свойств пищевой сети является
условие о степени последовательности, генерирование большого количества случайных
графов с той же степенью последовательности, а затем сравнить с реальной пищевой
сетью. См.в разделе 11. о деталях информации о таких условных тестах для этого
примера, с помощью 6000 случайных графов со степенью последовательности d
порожденные нашим алгоритмом.
Раздел 3 дает обзор нескольким предыдущим алгоритмам для нашей задачи. Там
подробно представленна последняя разработка алгоритма для генерации случайных
графов с заданной степенью распределения или с учетом ожидаемой степени связности.
Бриттон, Deijfen и Мартин-Л ¨ [15] дают несколько алгоритмов, которые
показывают асимптотически результат случайных графов с заданной степенью
распределения. Чунг и Лу [19, 20] провели анализ случайных графов с заданной
ожидаемой степенью связности (с разрешением петель). Тем не менее, эти алгоритмы и
модели, не подходят для приложений, где предполагается иметь определенную степень
связности, таких как генерация перечисление случайных K-регулярные графы или модель
тестирования в приложении раздела 11.
В разделе 4 представлены наши алгоритмы, а в разделе 5 приведены
доказательства того, что алгоритм работает правильно. Алгоритм основывается на
расширении теоремы Erd˝os-Gallai управления ситуациeй, где определенные ребра
форсируются (должны быть использованы); это обсуждается в Разделе 6. Это вытекает из
раздела 7, по некоторым оценкам времени работы. В Разделе 10 рассматриваются
случайные деревья с заданной последовательностью степеней связности.
Вероятность получения выходных данных для нашего алгоритма является явно
вычислимой. Распределение выходных данных, как правило, неоднородное, но
полученные случайные графы могут быть использованы для моделирования
произвольного распределения выборки по значимости (importance sampling).
Эти идеи обсуждались в Раздел 8, в котором содержится обзор литературы по
выборки по значимости и последовательной выборки по значимости и показывает, каким
образом они могут быть использованы с нашим алгоритмом. Использование
приблизительного перечисления графов с заданной последовательностью степеней
связности даны в раздел 9.
Наконец, в разделе 11 мы описываем экспоненциальное семейство, где степень
связности имеет достаточную статистику, и использует алгоритм для тестирования этой
модели на примере пищевой сети.
2. Графическaя последовательность
.
Определение 1. Конечная последовательность (d1,..., dn) неотрицательных целых
чисел (n >= 1) называется графический, если существует помеченый простой граф с
множеством вершин (1,. . . , n), в которой вершина i имеет степень di. Такой граф
называется реализацией последовательности степенeй (d1,..., dn). Мы будем называть
последовательность (d1,..., dn) последовательностью степеней независимо от того,
является ли оно графическим.
Графические последовательности иногда также называют графическим или
реализуемым. Заметим, что если (d1,..., dn) графическая, то
k
d
i 1
i
является четным,
поскольку в любом графе сумма степеней вдвое больше число ребер. Кроме того,
очевидно, необходимо, чтобы 0 di n - 1 для всех i; в крайнем случае di=0 и di=n-1
соответствует изолированная вершина и вершина соединеная ребрами со всеми
остальными вершинами соответственно.
Существует много хорошо известных эффективных тестов для определения
является ли последовательность графическим. Например, Mahadev and Peled [51] дали
список восьми эквивалентных необходимых и достаточных условий для
graphicality. Наиболее известный критерий graphicality объясняется Erd˝os and Gallai [27]:
Теорема 1 (Erd˝os and Gallai). Пусть (d1d2 ... dN) являются неотрицательными
целыми и
k
d
i 1
i
четная. Тогда D = (d1,..., dN) является графическим тогда и только
тогда, если
k
 d i  k ( k-1 ) +
i 1
n
 min( k , di ) для каждого k{1,2, …,n}.
i  k 1
Необходимость в этих условиях не трудно понять: для любого множества S из к
вершин в реализации d, существует не более C 2k «внутрених» ребер в S, и для каждой
вершины vS, существует не более min(k, deg(v)) ребер из v в S. Достаточность в условии
Erd˝os-Gallai, довольно трудно показать. Было дано много доказательств, в том числе
оригинальных на венгерском языке [27], доказательства с использованием сетевых
потоков Берга [10], и простой, но утомительное доказательство индукцией по сумме
степеней Choudum [18]. Обратите внимание, что условия Erd˝os-Gallai могут быть
проверены с помощью (n) арифметических операций и сравнений и (n) шагов (space),
как мы можем вычислить и кэш n частичные сумм степеней и для каждого k с
наибольшим i где min(k,di) = k (если таковая существует), и существует n неравенств
для проверки. Условие Erd˝os-Gallai были несколько усовершенствованы, например,
легко показать, что достаточно проверить до k = n-1 (где n2), и Tripathi and Vijay [76]
показали, что количество неравенств для проверки может быть сокращено до количества
различных элементов в D. Вместе с тем, что эти сокращения еще требуют проверки (n)
неравенства в целом. Также обратите внимание, что d должен быть отсортирован
первоначально если они еще не приведены в такой форме. Это может быть сделано в O(n
log n) время, используя стандартный алгоритм сортировки, такие как сортировкa
слиянием.
Вместо того, чтобы проверить все неравенства в условиях Erd˝os-Gallai, часто
удобно иметь рекурсивное тестирование. Было найдено довольно простое рекурсивное
тестирование независимо Гавел [36] и Хакими [34]. Мы включаем доказательство,
поскольку оно является поучительным и будет использовано ниже.
Теорема 2 (Havel-Хакими). Пусть d последовательность степеней длиной n2, и
пусть i является координaтой с di>0. Если d не имеет по крайней мере di
положительных входов других, чем i, то d не является графическим. Предположим, что
существует, по крайней мере di положительных входов других, чем i,. Пусть d будет
последовательностью степеней длиной n-1 полученной из d, посредством исключения
координат (позиций ) i и вычитанием 1 из координаты di в d с наивысшей степенью, за
исключением самого i (aside from i itself.). Тогда D является графическим тогда и только
~
тогда когда d является графическим. Более того, если d графическая, то есть есть
реализация, в которой i вершина соединяется с любым из di вершины чья степень выше
чем вершины i.
Доказательство.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Теорема
неоднократно,
пока
не теорема
сообщает,
что
последовательность не графическое (если не хватает вершины
доступны подключиться к вершине) или последовательность ановится
нулевым вектором (в этом случае D является графическим). На
практике это рекурсивная испытательных пробегов очень быстро,
поскольку существует не более N итераций, каждая из которых
состоит в установлении компонент I 0 и вычитания 1 из дикомпоненты. Алгоритм также необходимо найти самый высокий
градуса на каждом этапе, что может быть сделано сразу упорядочив
D (за время O (N журнал N)) и Затем ведение списка в порядке
сортировки.
Заметим,
что
когда
деревня
графическая,
рекурсивное
применение Гавела-Хакими конструкций реализация D, добавляя на
каждом этапе краев соответствующие изменения в деревне вектор.
Это простой алгоритм генерации детерминированных реализации D. В
следующем
разделе
приводится
обзор
предыдущие
алгоритмы
получения случайных реализаций D
3. Previous Algorithms.
3.1. Algorithms for random graphs with given degree distributions.
3.2. The Pairing Model.
3.3. Algorithms Based on the Pairing Model
3.4. Adjacency Lists and Havel-Hakimi Variants.
3.5. Markov Chain Monte Carlo Algorithms. A
3.2. The Pairing Model Парная модель. Возвращаясь к последовательности
фиксированных степеней, отметим, что изучены несколько алгоритмов построения
случайного (равномерный или почти равномерный) графа с желаемыми степенями.
Основная часть существующей литературы посвящена важному случаю регулярных
графов (т. е. тех графов, все вершины которых имеют одинаковую степень), однако
некоторые результаты распространяются также на степенные последовательности в
общем случае.
Первый такой алгоритм _ это парная модель (также известная, менее описательно,
как конфигурационная модель). Эта модель настолько естественна, что её неоднократно
открывали в различных формах. Фиксируем n (число вершин) и d (степень) так, чтобы
произведение nd было нечетным, и пусть 𝑣1 , …, 𝑣𝑛 _ несоединённые ячейки, каждая из
которых состоит из d точек (в общем случае последовательности степеней vi могут
состоять из di точек). Равномерно выберем совершенное паросочетание этих nd точек. Это
легко можно сделать, например, на каждом этапе случайным образом выбирая две точки,
которые не имеют пар, и составляя из них пару. Такое распределение пар включает
мультиграф, показывая ячейки на месте вершин и ставя ребро между ячейками v и w, если
последние составляют пару. При условии, что каждый цикл прибавляет к степени 2, этот
мультиграф будет d-регулярным. Алгоритм парной модели таким образом создает
случайные мультиграфы до тех пор, пока не получится простой граф G.
Заметим, что полученный граф G распределен равномерно, т. к. простой граф
выводится с одним и тем же числом совершенных паросочетаний.
Очевидно, что вероятность P получения простого графа критическая для
практического использования этого алгоритма: ожидаемое число паросочетаний, которые
нужно составить, есть 1/P. К сожалению, с увеличением d вероятность получить циклы
1−d2
4
или многократные ребра очень быстро приближается к 1. На самом деле, P~ e
при
n→ ∞.
Для очень маленьких d, например, d = 3, это не является проблемой, и алгоритм
хорошо работает. Однако для бо’льших d число повторений, необходимых для
нахождения простого графа, становится непомерно большим. Например, для d = 8
необходимо приблизительно 6,9 миллионов попыток для получения простого графа этим
методом (при больших n).
3.3. Algorithms Based on the Pairing Model Алгоритмы, основанные на парной
модели. Разумным подходом является изменение парной модели, запрещая составлять
пары, которые приведут к образованию циклов или многократных ребер. Самый простой
способ _ это начать с пустого графа и случайным образом добавлять одно ребро за раз,
выбирая вершины, которые еще не получили своего полного распределения. Процесс
заканчивается, когда нет ребер, которые можно было бы добавить. При d _ максимальной
допустимой степени каждой вершины, этот процесс называется случайным d-процессом.
При n→ ∞ и nd нечетном вероятность получения d-регулярного графа стремится к
1.
Похожий результат был выведен для star d-процесса, который на каждом этапе
выбирает вершину с минимальным текущим числом ребер δ и пробует соединить его с dδ допустимыми вершинами. Как бы то ни было, и для d-процесса и для star d-процесса
трудно вычислить получаемое распределение вероятностей на d-регулярных графах.
Также, не смотря на то, что возможно составить аналогичный процесс для общего случая
степенной последовательности (𝑑1 , …, 𝑑𝑛 ), в общем мало что известно о вероятности
составления процессом реализацию (𝑑1 , …, 𝑑𝑛 ) .
Близкий к данному алгоритм для d-регулярных был дан Стеджером и Уормалдом,
который составлен так, чтобы иметь приблизительно однообразный результат (для
больших n, при определенных ограничениях на увеличение d). Их алгоритм развивается
так же, как и в парной модели, однако здесь перед составлением пары из точек i и j
проверяется, не находятся ли они в одной ячейки и нет ли пар, составленных точкой из
ячейки, где находится i, с точкой из ячейки, где находится j. Алгоритм продолжает свою
работу до тех пор, пока невозможно составить ни одной допустимой пары. Это может
быть представлено как вариант d-процесса с выбором ребер с вероятностями, зависящими
больше от степеней, а не с равномерным выбором.
По конструкции, алгоритм Стеджера и Уормалда избегает циклов и многократных
ребер, но, в отличие от парной модели, он может зависнуть прежде, чем совершенное
паросочетание достигнуто, т. к. могут остаться вершины без пар, из которых нельзя
составлять пары. Если алгоритм застревает таким образом, то он просто начинает свою
работу заново. Стеджер и Уормалд показали, что вероятность застревания алгоритма
приближается к 0 при d = o((n/(𝑙𝑜𝑔3 𝑛))1/11 ), а Ким и Ву недавно улучшили этот предел
до d = (𝑛1/3 /𝑙𝑜𝑔3 𝑛). Тогда среднее время работы в этом случае есть O(nd2).
Эмпирически, Стеджер и Уормалд заметили, что их алгоритм застревает с вероятностью
максимум 0.7 для d ≤ n/2, но это не было доказано для d, являвшемся значительной частью
n. Результат Стеджера и Уормалда не является постоянным, однако их работа и
дальнейшие улучшения Ким и Ву показывают, что для d = (𝑛
1
−𝜀
3
)
при фиксированном ε >
1
0, результат асимптотически постоянен. Для d бо'льшего порядка, чем 𝑛3 , не известно,
близко ли асимптотическое распределение к постоянному. И вновь, эти результаты верны
для регулярных графов, и не ясно как далеко они могут распространяться на
последовательности степеней в общем случае.
Есть еще один интересный алгоритм, составленный ранее МкКайом и Уормалдом,
основанный на парной модели. Их алгоритм начинается со случайного составления пар в
парном алгоритме, а потом использует два типа коммутаций (чуть более сложные, чем
коммутации в цепочке Маркова, описанной ниже). Первый тип коммутаций повторно
используется для исключения циклов из паросочетаний, а потом используется второй тип
для исключения многократных вершин. Для получения равномерно распределенного
графа, используется процедура принятия/отклонения: на каждой итерации осуществляется
перезапуск алгоритма с конкретной вероятностью. Пусть M = ∑𝑛
𝑖=1 𝑑𝑖 i, 𝑀2 = 𝑑𝑖 (𝑑𝑖 -1), и
3
dmax = max{ 𝑑1 , …,𝑑𝑛 }. МкКай и Уормалд показали, что если 𝑑𝑚𝑎𝑥
= o(M+𝑀2 ), to
2
средняя продолжительность работы алгоритма есть o(M+М2 ). Заметим, что для dрегулярного графа это сокращается до средней продолжительности o(𝑛2 𝑑 4 ) для
d=o(𝑛1/3 ). Они также дают версию, которая работает в течение времени o(𝑛𝑑 3 ) при тех
же условиях.
3.4. Adjacency Lists and Havel-Hakimi Variants. Смежные списки и разновидности
Гавела-Xакими. Тинхофер дал общий алгоритм для построения случайного графа с
заданными свойствами, включая степенные последовательности. Этот подход затрагивает
выбор случайного смеженных списков, каждый из которых состоит из вершин, смежных
к конкретной вершине. Списки выбираются таким образом, чтобы каждое ребро было бы
представлено только в одном смежном списке для избежения чрезмерности. Тогда может
быть применена процедура принятия/отклонения для получения равномерного результата.
Как бы то ни было, этот алгоритм слишком сложен для анализа, и ни среднее время
работы, ни верные вероятности принятия/отклонения не известны.
Как было замечено ранее, теорема Гавела-Накими дает детерминированный
алгоритм получения реализации d. Изложим простое изменение для добавления
случайности. Начнем с вершин 1, …, n и без ребер. На каждом этапе берем вершину i с
𝑑𝑖 > 0 и выбираем другие вершины 𝑑𝑖 для соединения с i, согласно определенным
вероятностям в зависимости от степеней. Получим d´ из d путем установления входа в
позиции i на 0 и вычитая 1 от каждой выбранной вершины. Если d´_ графическая,
поставим d´ вместо d и продолжим; в противном случае выберем другой набор вершин
для соединения с i. Если фаворитизм показан к высшим степеням вершин, например, если
выбирая связать i с допустимым j с вероятностью пропорциональной к нынешней степени
j, то этот алгоритм становиться подобным модели предпочтительного связывания. Как бы
то ни было, нет хороших пределов вероятности, что выбранный набор вершин будет
допустимым, что усложняет анализ средней продолжительности выполнения алгоритма.
Также, использовать этот алгоритм с importance sampling techniques представленных
далее, важно знать, сколько именно наборов вершин 𝑑𝑖 приводят к графическому d´; но
очевидно, что очень нежелательно проверять все подмножества конкретной длины.
3.5. Markov Chain Monte Carlo Algorithms. Алгоритм Markov Chain Monte Carlo.
Естественным и широко распространенным подходом является использование алгоритма
Markov Chain Monte Carlo (MCMC), основанного на коммутативных шагах,
использованных при доказательстве теоремы Гавела-Xакими. Пусть (𝑑1 , …, 𝑑𝑛 ) _
графическая. Мы можем запустить a Markov Chain with state space последовательность
всех реализаций как изложено далее. Начнем цепочку с любой реализации d (это можно
эффективно сделать, воспользовавшись Гавелом-Xакими). При реализации G,равномерно
выбираем два случайных ребра {x, y} и {u, v}, где x, y, u, v _ различные. Если {x, y} и {u,
v}не являются ребрами, то пусть цепочка перейдет к реализации G´, полученной
добавлением ребер {x, u}, {y, v} и убиранием ребер {x, y}, {u, v}; в противном случае
остаемся в G. (Альтернативно, мы можем проверить, что {x, v} и {y, u} не являются
ребрами; если так и другая коммутация не разрешена, то воспользуемся этой
коммутацией. Если каждая из этих коммутаций возможна, то дадим каждой вероятность
½.)
Цепочка Маркова, использующая коммутации, является несократимой, т. к.
доказательство
Гавела-Xакими
может
быть
использована
для
получения
последовательности коммутаций, чтобы привести любую реализацию d к любой другой
реализации d. Также легко заметить, что цепочка обратима с равномерным
распределением в качестве его постоянного распределения.
Заметим, что в контексте таблиц соответствующий случайный шаг на смежных
матрицах использует в точности те же движения, что и хорошо известный случайный шаг
на случайных таблицах или на нуль-один таблицах, обсужденных в Diaconis и Gangolli,
где на каждом этапе выбирается пара случайных строк и пара случайных столбцов, и
+−
текущая таблица изменяется в четырех входах соответственно с образцом (− +) или
+
(−
), если возможно.
+−
4. The Sequential Algorithm.
4. Последовательный алгоритм. В этом разделе мы представим наш
последовательный алгоритм и опишем некоторые из его особенностей. По заданной
последовательности степеней представлен процесс получения реализации (реализуемого
графа), слово "степень" может означать либо (среднее) число ребер выбранных для
нескольких вершин, или же это может означать остаточную степень (residual degree),
которое представляет количество оставшихся ребер, которые должны быть выбраны для
этой вершины.
В обсуждении нашего алгоритма, под степенью будем понимать остаточную
степень (residual degree), если иное не указано; в частности, мы начнем с
последовательности степеней d и будем добавлять ребра, пока последовательность
степеней не сведется к 0. Так как мы будем часто складывать и вычитать 1 в
определенных координатах последовательности степеней, введем обозначения для этой
операции. Ө
Обозначение 1. Для любого вектора d = (d1,... dn) и отдельными i1,. . . , ik  {1,. . . ,
n}, определим  i1 ,...,ik d , коорый получен из вектора d, добавлением 1 к каждой из
координат i1,. . . , ik, и определим аналогично Ө i1 ,...,ik d :
d i  1 for i  i1 ,...,ik ,
 i1 ,...,ik d  
otherwize,
d i
d i  1 for i  i1 ,...,ik ,
 i1 ,...,ik d  
otherwize,
d i
Например 1, 2 (3,2,2,1) =(4,3,2,1) и 1, 2 (3,2,2,1) = (2,1,2,1).
Последовательный алгоритм для случайного графа с заданными степенями
Вход: графическая последовательность степеней (d1,... dn).
1. Пусть Е пустой список ребер.
2. Если d = 0,то завершение с выходом Е.
3. Выбор наименьшего i с минимальным положительным значением di.
4. Вычисление списка кандидатов
J={j  i:{i,j} Е и i, j d графическая}.
5.Выбрать j  J с вероятностью,пропорциональной eго степени в d.
6. Добавить ребро {i,j} в Е и обновить d посредством i, j d .
7. Повторить шаги 4-6 пока степень i не будет равна 0.
8. Возврат к шагу 2.
Выход: Е.
Например, предположим, что исходная последовательность (3, 2, 2, 2, 1).
Алгоритм начинается, выбором вершины 5 (т.к. =1 наименьшая степень),
определяем список кандидатов (1, 2, 3, 4). Предположим, что выбрали 2 (равновероятный
выбор). Новая последовательность степени (3, 1, 2, 2, 0). Степень вершины 5 теперь 0,
поэтому Алгоритм продолжается с вершиной 2 и т.д. Одним из возможных
последовательностей степеней будет последовательность:
(3, 2, 2, 2, 1)-> (3, 1, 2, 2, 0)-> (2, 0, 2, 2, 0)-> (1, 0, 2, 1, 0)-> (0, 0, 1, 1, 0)-> (0, 0, 0, 0, 0),
соответственно построили граф с множеством ребер;
{ (5, 2), (2, 1), (1, 4), (1, 3), (3, 4) }.
В качестве другого примера мы покажем ниже первые два графа из 6000
сгенерированных с помощью нашего Алгоритма примененный для последовательности
степеней пищевой сети на рис 1.
Каждый занял около 13 секунд для генерации (на PowerBook 1,33 GHz).
Качественная, они оказываются более рассредоточились и менее аккуратно, чем
иерархическая фактической пищевой сети. Мы обсудим это в более Раздел 11, сравнивая
некоторые тестовые статистики фактического графа с тех случайных графах.
=========================================================
Рис 2. Случайный граф с степенью связности пищевой сети
========================================================
Алгоритм всегда заканчивается реализацией (d1,... dn). Выход aлгоритмa не
является равномерно распределенным по всем реализациям (d1,... dn), в целом, но каждая
реализация (d1,... dn) имеет положительную вероятность. Mетод выборки по значимости
может быть использован для подсчета ожидаемых значений относительно желаемого
равномерного распределения, как описано в разделе 8.
Сделаем теперь замечание о конкретных шагах и некоторых мерах по ускорению
реализации алгоритма.
1.В шаге 4 любой тест для graphicality может быть использован; Erd˝os-Gallai
особенно легок в реализации и быстро выполняется.
2. Как следует из теоремы 3, кандидат на более позднем этапе является также
кандидатом на более раннем этапе, с тем же выбором i на шаге 3. Таким образом, на шаге
4 достаточно протестировать вершины, которые были кандидатами на предыдущем этапе,
если нa этот этапe был выборaн тот же i.
3. Пусть
m = |{j: dj j – 1}|
является скорректированным числом Durfee для d (corrected Durfee number of d.).
Красивый результат (см. теорему 3.4.1 Mahadev and Peled [51]) d является графическим
тогда и только тогда, если он удовлетворяет первым m неравенствам Erd˝os-Gallai. Во
многих случаях скорректированный номер Durfee m (corrected Durfee number) намного
меньше чем n, что значительно сокращает число неравенств для проверки.
4. В шаге 5, любое распределение вероятностей p на j где p(j)> 0 для всех j для
которых можно использовать. Интересной проблемой является нахождении такого
распределения p, которая делает выход как можно ближе к равномерному(постоянному)
насколько это возможно. В наших эмпирических тестах выбирается кандидат с
вероятностью пропорциональной его степени, что значительно лучше, чем выбор
кандидата равномерно (см. § 8). Но здесь остается открытым доказательство для своего
рода оптимальности. В случае алгоритма для случайных деревьев (см. раздел 10),
выбирая j с вероятностью пропорциональной dj - 1 приводит в точности к равномерному
дереву (exactly uniform tree).
5. Альтернативой к Шагу 4 является выбор случайного j где {i,j}E в
предположении, что i, j d является графическим, в противном случае, выберитеирается
снова без замены. Этот подход работает быстрее, но имеет тот недостаток, что оно
становится очень сложным для вычисления последовательных вероятностей , которые
обсуждаются в разделе 8.
6. Другой альтернативой может быть соединении на каждом шагу вершины с самой
высокой степенью с случайно выбранным кандидатом. Это имеет то преимущество, что
как следует из Havel-Hakimi, алгоритм никогда не застревает. Однако, это, кажется,
делают его очень трудным для вычисления веса c(Y), используемых в разделе 8 для
выборки по значимости. Выбор максимальной вершиной на каждый шагу включает в себя
много переходов от вершины к вершине, в то время как наш основной алгоритм более
систематизирован в том смысле, что оно выбирает вершину для полной связи (to fully
connect), затем выбирает другая вершина тоже для полной связи и т.д.
5. Proof that the Algorithm Works.
Theorem 3. Let d = (d1, . . . , dn) be a graphical degree sequence with di > 0, arranged
so that dn = min{d1, . . . , dn}. Let d = d(0), d(1), d(2), . . . , d(j) = ˜ d be graphical degree sequences
of length n (for some j _ 1), such that d(i) is obtained from d(i−1) by subtracting
1 at coordinate n and at another coordinate vi not previously changed. That is,
d(i) = n,vid(i−1) for i 2 {1, . . . , j},
where n, v1, . . . , vj are distinct. Then d has a realization containing all of the edges {n, v1}, . . . ,
{n, vj}, and ˜ d has a realization containing none of these edges.
Proof. The desired realization of d immediately yields that of ˜ d, by deleting the edges ...
--------------------------------------------------------------------------------------------------------------..................................................................................................................................................
Используя выше описанную теорему, теперь мы можем доказать, что алгоритм
никогда не застревает.
Следствие 1. Для заданной графической последовательности d = (d1,... dn) в
качестве входа, вышеописанный алгоритм завершается реализацией d. Каждая реализация
d осуществляется с положительной (установленной) вероятностью (positive probability).
Доказательство. Индукция по количеству ненулевых элементов во входном векторе d.
Если d = 0, то алгоритм завершается сразу с пустым множеством ребер, который очевидно
представляет реализацию нулевого вектора. Пусть d0, требование справедливо для всех
входных векторов с меньшим числом ненулевых элементов, чем d. Пусть i наименьший
индекс в d с минимальнoй положительной степенью (positive degree). Существует по
крайней мере один кандидат вершины j связанный с i, поскольку если ребро {i, j}
принадлежит реализации d, то удаление этого ребра показывает, что последовательность
d(1), полученное вычитанием 1 из координат i и j является графическим.
Предположим, что алгоритм выбрал ребра
{i, v1},. . . , {i, vj}
в соответствующей последовательности степенeй
d=d(0),d(1),..., d(j), где j1 и di(j)=di-j>0.
Пропускaя любой нуль в d и переставляя каждую последовательность для
установки вершины i в координату n, Теорема 3 предполагает что d(j) имеет реализацию Gj
не используя ни один из ребер {i, v1},. . . , {i, vj}. Тогда G, имеет ребро {i, x} с dX = dx(j) и
{i,x} является допустимым выбором для следующего ребра. Таким образом, алгоритм
всегда может расширить список последовательностей степеней d=d(0),d(1),..., d(j), пока
для степени i не выполняется условие di-j = 0. Пусть выбраны ребра {i, v1},. . . , {i, vj} (di-j =
0). Заметим, что если {i,w1},. . . , {i, wj} являются случайным ребром i в реализации G, то
эти ребра выбраны с положительной (заданной) вероятностью (positive probability )(как
видно посредством удалении этих ребер по одному в любом порядке).
Aлгоритм продолжается, до сортировки к минимальному положительному входу в
(j)
d (если таковой остается). По предположению индукции, процесс алгоритма на входном
векторе d(j) завершается с реализацией d(j). Таким образом, алгоритм применeнный к d
~
~
прекращается с множеством ребер E = { {i, v1},. . . , {i,vj} }  E , где E является выходным
~
множеством ребер алгоритма, примененного к d . Нет ребер в E включая вершину i,
(j)
~
так что E является реализация d. Опять же по индуктивной гипотезе, каждая реализация
d(j) выбирается с положительной вероятностью, и из этого следует, что каждая реализация
из d выбирается с положительной вероятностью.
Хотя алгоритм всегда дает реализацию d, для определенной последовательности
степеней чрезмерное число испытаний необходимо для точной оценки. С другой стороны,
для многих последовательностей степеней, которые возникли в практике, важность
выборки можно легко сделать эффективным.
В качестве экстремального случая рассмотрим d вида D = (1,..., 1, k) при k2, которое
является aналогoм примера графов, недавно рассмотренных Bez´akov´a, Sinclair,
Stefankovic, and Vigoda [11] in the context of the Chen, Diaconis, Holmes, and Liu [16], для
алгоритма генерации двоичной таблицы с заданной суммой строк и столбцов. Bez´akov´a
и др.. показали, что в некоторых примерах with all but one row sum and all but one column
sum equal to 1, по экспоненте необходимо много испытаний, для оценки последовательной
выборки по значимости (sequential importance sampling estimate) для получения хорошей
оценки числа достоверных таблиц. Blitzstein [12] получены в явном виде дисперсия
вычисленная для d = (1,..., 1, k) при l+ 2k 1-ым, и относительное стандартным
отклонением
Оценочхая функция выборки по значимости быстро растет в к раз и к раза
превышает некоторое пороговое значение. Например, когда L = 1 и K = 100,
относительное стандартное отклонение составляет 2,2925 × 1012, так что более 1024
графов необходимо для получения допустимого низкого стандартного отклонения.
Дальнейшая работа необходима, чтобы понять как последовательность степени приводит
к такому поведению.
Баяти и Сабери [8] дали анализ примеров для плотно связанных графов (related example
for graphs) с другим n Условием (with several n Terms) для случая одного k,
показывающие, что для Стегер-Wormald алгоритма результируемое распределение весьма
далеко от единообразия. Они также показывают как получить улучшенный алгоритм
посредством повторного изменения весов (re-weighting) в процессе выделения ребер.
6. Forced Sets of Edges.
6. Принудительное множество ребер. Теорема 3 также связана с проблемой
нахождения реализация графа, который требует или запрещает некоторые ребра. Чтобы
сделать это точнее, вводится понятие принудительного набора ребер.
Определение 2. Пусть d графическая последовательность степеней. Множество F
пар {i,j} где i,j  {1,. . . , n} является принудительным для d, если для каждой реализации G
= (V,Е) для d, FE0. Если одноэлементное множество {e1} принудительное для d, мы
будем говорить, что e1 является принудительным ребром для d.
Для одного случая (j = 1) теорема 3 дает критерий принудительности для ребра.
Действительно, в этом случае не учитываются предположения о минимальных значениях.
Предложение 1. Пусть d графической последовательность степеней и i,j  {1,. . . ,
n} где i  j. Тогда {i, j} является принудительным ребром на d, тогда и только тогда если
 i, j d не графический.
i, j d
Доказательство. Допустим, что {i, j} не является принудительным для d.
Добавление ребра {i, j} в реализацию d дает реализацию  i, j d . И наоборот,
предположим, что {i, j} принудительно для d. Рассуждая, как в доказательстве теоремы 3,
мы видим, что i и j должны иметь большую степень в d, чем любые другие вершины.
Предположим (от противного), что  i, j d графическая. Тогда Havel-Hakimi дает
реализацию  i, j d , которая использует ребро {i, j}. Удаление этого ребра дает
реализация d не содержащее ребро {i, j}, что противоречит его принудительности в d.
Помимо этого, для одного случая, необходимы дополнительные предположения
для аналогичных результатов для принудительности набора, как показано контрпримером
после доказательства теоремы 3. Большая часть доказательство состояло в том чтобы
показать, что множество всех "тронутых" “touched” вершин не является принудительным
набором для ~d. Это сразу же приводит к следующему результату.
Следствие 2. Пусть d графическая последовательность степеней и d’=  i  j1, ... jk d
k
для некоторых различных вершин i, j1,. . . , jk. Предположим, что di’= min{d1’,... dn’}. Тогда
множество ребер {{i, j1},. . . , {i, jK}} принудительно для d, тогда и только тогда, если D’
не графическая.
Definition 3. Let d be a graphical degree sequence. A set S of pairs {i, j} with
i, j 2 {1, . . . , n} is simultaneously allowable for d if d has a realization G with every
element of S an edge in G. If S is a simultaneously allowable singleton, we call it an
allowable edge.
Corollary 3. Let d be a graphical degree sequence and i, j 2 {1, . . . , n} with i 6= j.
Then {i, j} is an allowable edge for d if and only if
i,jd is graphical.
Corollary 4. Let d be a graphical degree sequence and ˜ d =
ki
j1,...,jk d for some
distinct vertices i, j1, . . . , jk. Suppose that di = min{d1, . . . , dn}. Then {{i, j1}, . . . , {i, jk}} is
simultaneously allowable for d if and only if ˜ d is graphical.
...........................................................
..............................................................
7. Running Time. In
7.Время выполнения. В этом разделе мы рассмотрим время работы алгоритма.
Пусть d=(d1,... dn) будет входом. Поскольку нет необходимости перезагрузки, алгоритм
имеет фиксированное, ограниченное наихудчим выполнением время. Каждый раз, когда
формируется список кандидатов, алгоритм выполняет О(N) легких арифметических
операций (сложения или вычитания 1) и выполняется тестирование для graphicality O(N)
раз. Каждый тест graphicality может быть выполнен в O(N) время Erd˝os-Gallai, представил
общий наихудший случай O(N2). Во время работы каждый раз создается список
кандидатов (отсортированная последовательность степеней также должна быть сохранена,
однако общее время, необходимое для этого доминирует как O(N2) времени, которое у нас
всегда есть).
Поскольку список кандидатов формируется каждый раз при выборке ребра,
Имеется
1 n
 d i списков кандидатов для генерации. Кроме того, в алгоритме иногда
2 i 1
необходимо найти наименьший индекс минимального не нулевого входа, но мы всегда
предполагаем, что мы поддерживаем отсортированую последовательность степеней.
Общее наихудшее время имеет О( n
2
i1 di ).
n
Для d-регулярных графов, это
превращается в наихудшее время O(n3d). Обратите внимание, что алгоритм, который
требует перезагрузку имеет неограниченное наихудшее время выполнения.
Используя замечание 2 к теореме 3, используемое время, которое должно
применяться при условии Erd˝os-Gallai, часто значительно меньше, чем n. У нас нет
хорошей оценки для среднего времени выполнения, которое должно быть использовано
для Erd˝os-Gallai, так что мы не имеем лучшей оценки среднего времени выполнения,
чем в случае наихудшего времени выполнения О( n
2
i1 di )..
n
8. Importance Sampling.
8.
Выборка
по
значимости.
Случайные
графы
сгенерированные
последовательными алгоритмами как правило, не распределены равномерно (distributed
uniformly), но алгоритм позволяет легко использовать выборку по значимости для оценки
ожидаемых значений и определения вероятности для любого ожидаемого распределения
(any desired distribution) включая постоянное (including uniform). Выборка по значимости
позволяет нам переопределить веса примеров (re-weight samples) из имеющихся у нас
распределений, которые названы пробным распределением (trial distribution), для
получения оценок в отношении к ожидаемой цели распределения ( target distribution).
Часто выбор хорошей цели распределения является трудной проблемой, одним из
подходов к этому, последовательная выборка по значимости, предусматривает создание
цели распределения рекурсивно как результата, причем каждое условие (factor) обусловлен
предыдущим выбором.
В Разделе 8.1 рассматриваются некоторые предыдущие приложения выборки по
значимости и объясняет, какое они имеют отношение к данной работе. В п. 8.2 показано,
как последовательности выборки по значимости обрабатываются в контексте случайных
графов полученных нашим алгоритмом.
Для общих исходных данных в Монте-Карло, вычисление и выборку по
значимости, мы рекомендуем Хаммерсли и Handscomb [35], Лю [47], и Фишман [28].
Последовательная выборка по значимости разработанха в Лю и Чэнь [48], и Дуся, де
Фрейтас и Гордон [25]. Важные различия, которые могут использоваться в сочетании с
настоящим алгоритмы включены Оуэн -ером [60] при использовании управления
случайными величинами (control variates) для оценки дисперсии (variance) и адаптации
выборки по значимости как у Рубинштейна [64]. Получение адекватной оценки на
дисперсию алгоритмов выборки по значимости является открытой проблемой
исследования в большинстве случаев, представляющих интерес (см. Bassetti и Diaconis [7]
в некоторых последних работах в этой области).
8.1. Некоторые предшествующие приложения. Последовательная выборка по
значимости было использовано Снейдерс-ом [69], при выборке из множества всех
двоичных таблиц при заданной сумме строки и столбца.
Таблица была создана слева направо, по одной колонке; этот алгоритм может
застрять в середине, заставляя его идти вспять или перезагрузиться.
Чэнь, Diaconis, Холмс, и Лю [16] внесли решающую идею использования комбинаторных
тестов, позволяющие лишь частичное наполнение, которые могут быть завершены на
полной таблице. Использование этой идеи, дали важные эффективные алгоритмы выборки
в бинарных таблицах и (2-way) таблицах сопряженности (contingency tables). Для
бинарных таблиц, комбинаторным тестом является теорема Gale-Ryser. Для таблиц
сопряженности, тест попроще: сумма суммы строки и суммы колонки и их суммы должны
быть согласованны. (the sum of the row sums and the sum of the column sums must agree).
Аналогичным образом, наш алгоритм графа можно рассматривать как результат
симметричных бинарных таблиц с трассировкой 0 (trace 0), где комбинаторным тестом
являются характеристики Erd˝os-Gallai. Для обеих, как бинарных таблиц так и графов,
уточнения к комбинаторной теоремы были необходимы для обеспечению того, чтобы
частичное заполненние в таблицах может быть завершена и последовательность
вероятностей может быть вычислена.
Другим интересным последовательным алгоритмом для выборки по значимости
разработан в Чэнь, Dinwoodie и Sullivant [17], для обработки таблиц сопряженности с
несколькими входами. Совершенно иной набор математических инструментов окажется
полезным в данном случае, включая Gr¨obner bases, Markov bases, and toric ideals (
торических идеалов). Опять существует взаимосвязь между комбинаторными и
алгебраическими теоремами и выборки по значимости.
Эти проблемы относятся к общей программе: Как можно преобразовать
характеристики комбинаторнои структуры в эффективный алгоритм генерации?
Уточнение характеристик часто бывает необходимо, для использования процесса
завершения тестирования при наличия частично определенной структуры. Подробнее
алгоритмы такого рода, включая алгоритмы для генерации связных графов, орграфов,
турниров, можно найти в Blitzstein [12].
8.2. Графы выборки по значимости. Importance Sampling of Graphs. При
применении нашего алгоритма выборки по значимости, необходима некоторая
осторожность потому, что есть возможнсть генерации того же самого графа в различном
порядке, с различными соответствующими вероятностями. Например, рассмотрим,
графическую последовательность d={4, 3, 2, 3, 2}. Граф с ребрами
{1, 3}, {2, 3}, {2, 4}, {1, 2}, {1, 5}, {1, 4}, {4, 5}
может быть сгенерированн по алгоритму в любом из 8 случаев упорядочения. Например,
если только задать порядок, и порядком является
(2, 3), {1, 3}, {2, 4}, {1, 2}, {1, 4}, {1, 5}, {4, 5}.
Вероятность первого есть 1 / 20, а последнего является 3 / 40, хотя эти две
последовательности соответствуют одному и тому же графу. Это дает трудности при
непосредственном вычисление вероятности получения конкретного графа, но это не
мешает при использовании метода выборки по значимости.
Зафиксируем графическую последовательности d длины n в качестве входа
алгоритма. Введем некоторые обозначения для четко различия графика и списка ребер.
   
Определение 4. Пусть n,d множество всех реализаций d и пусть n,d, является
множество всех возможных последовательностей ребер выхода алгоритма. Для любой
последовательности Y  n,d ребер, пусть Graph(У) соответствует графу в n,d (с
списком ребер с множеством вершин {1,. . . , n}). Назовем Y, Y’ n,d, эквивалентными,
если Graph (Y’) = Graph (Y). Пусть c(У) число Y’  n,d, где Graph (Y’) = Graph (У).
Отношения эквивалентности, определеннo выше n,d на классaх эквивалентности.
Существует
очевидное
взаимно-однозначное
соответствие
между
классами
эквивалентности и n,d , и размером класса У в c(Y). Заметим, что c(Y') = c(Y), если Y’
эквивалентeн Y. Номер c(Y) легко вычислить как результат факториалов:
Предложение 2. Пусть Y  n,d, и пусть i1, i2,. . . , im будут вершинами
выбранными в итерации Шага 3 алгоритма, когда У является выходом (итак, алгоритм
выбирает i1 ребра пока его степень не равна 0, а затем делает то же самое для i2 и т.д.).
Пусть d = d(0), d(1), d(2),. . . , D(J) = 0 соответствуeт последовательности графических
последовательностей степеней.
Положим i0 = 0. Тогда
m
c (Y) =
 dii
k 1
k 1
k
!.
Доказательство. Пусть Y 0 эквивалентно Y. Сообщение от Шаг 3
алгоритма, что Y 0 имеет одинаковый выбор вершина I1, I2,. . . ,
Им как Y. Мы можем разложить У и У 0 в блоки, соответствующие
для I1,. . . , Им. В рамках каждого блока, Y 0 и Y должны иметь
одинаковый набор ребер, возможно, в перестановке порядка. С
другой стороны, теорема 3 предполагает, что любые перестановки,
независимой
переставляет
края
в
рамках
каждого
блока
последовательности
Y
дает
последовательность
У’’
в
n,d
Разумеется, любая такая Y’’ эквивалентно Y. Застревают Основной
целью при разработке нашего алгоритма, в дополнение к не давая
ей, было имеют простую формулу c(Y).
Во многих схожих алгоритмах, трудно найти Аналог выше
формуле c(Y), что делает ее гораздо труднее использовать
значение выборки эффективно. Прежде чем объяснить какое значение
выборки работ в этом контексте, Необходимо немного больше
обозначений.
Обозначение 2 (Notation). Для Y  n,d обозначим через (Y) вероятность того, что

алгоритм получает последовательность Y. Заданную функцию  на n,d обозначим | f для

индуцированной функции на большем пространстве n,d с | f (Y) = (Graph(У)).
Заметим, что если Y выход процесса выполнения алгоритма,(Y) может быть легко
вычислен последовательным путем. Каждый раз, когда алгоритм выбирает ребра,
записываются вероятности, с которой был он выбран (в зависимость от всех ранее
выбранных ребер), а именно, его степень, деленная на сумму степеней всех кандидатов на
данном этапе. Произведение этих вероятностей дает вероятность (Y) алгоритма
вычисляющего Y.
Теперь мы можем показать, как можно сделать посредством этого алгоритма
выборку по значимости, несмотря на то, что можно предположить,что распределение 
распределены на n,d, скорее чем n,d. (despite having a proposal distribution _ distributed on
Yn,d rather than on Gn,d).
Предложение 3. Пусть  вероятностное распределение на n,d. и G случайный граф
вычерчен согластно . Пусть Y является последовательностью ребер распределенных
согластно в . Тогда

E(
 (Y ) 
f (Y ))  Ef (G)
c(Y ) (Y )
В частности, Y1,. . . , YN выходныe последовательности от N независимо работающих
алгоритмов

1 N  (Yi ) 
 
f (Yi )
N i 1 c(Yi ) (Yi )

является несмещеннай оценкoй Е(G).
Доказательство.
------------------------------------------------------------------------------------------------------------------------------------------------------------------Это является предвзятой оценкой, но зачастую хорошо работает
на практике и имеет то преимущество, что значение веса должно
быть известно только до мультипликативной постоянной. Поскольку
на практике Одной из часто работает с распределениями, которые
включают
нормализацию
неизвестных
констант,
положить
его
Достаточно знать значение весов с точностью до постоянной часто
решающее значение. Одним из главных факторов при исполнении
значение выборки, сколько изменением есть в значение веса.
Пусть? равномерное распределение на Сп, д. Мы участка на
рисунке 4 Гистограмма значение веса для испытаний с 6000 г
степенью последовательности пищевой сети
рис 1. Весы показали масштабируются путем деления на 1052 и
опуская постоянная? (Y). Вес значительно варьируются от менее
2,9 × 1052 до максимум 2,9 × 1058, но большинство из них от 1,2
× 1,9 и 1056 × 1057. Отношение максимально медиана 52, сделать
крупнейшим
несколько
влиятельных
весов,
доминирует в важности выборки оценок.
но
9. Estimating the Number of Graphs.
не
полностью
Download