Реконструкція графіків за ступенем розподілу


12

Враховуючи розподіл ступенів, наскільки швидко ми можемо побудувати графік, що відповідає заданому розподілу ступеня? Посилання або ескіз алгоритму було б добре. Алгоритм повинен повідомляти про "ні", якщо жоден графік не може бути побудований, і будь-який один приклад, якщо можна побудувати кілька графіків.


Ласкаво просимо! Як дається "розподіл ступеня"? Як стохастичний розподіл, як список ступенів, ...?
Рафаель

1
Дивіться вправу 2.6 тут . Наведено алгоритм створення графіка із заданої ступеня послідовності.
відверто

2
Щоб уточнити коментар Рафаеля, коли я читаю розподіл ступенів , я думаю про ймовірнісний розподіл на градуси. Як відверто згадує, ступінь послідовності - це, мабуть, те, що ви хочете. Якщо ви маєте на увазі імовірнісний сенс, ви, ймовірно, шукаєте якийсь алгоритм рандомізованої побудови, який намагається «наблизити» розподіл. Мені не має великого сенсу "повідомляти ні" в цьому налаштуванні, тому що я думаю, що більшість графіків будуть чимось чужими?
Лукас Кук

І якщо ви насправді хочете створити графік із заданим розподілом ступеня, то, здається, у цьому документі є хитрість. Здається, алгоритм, описаний у моєму попередньому коментарі, насправді є алгоритмом Гавела-Хакімі у відповіді Ву Інь.
відверто

Відповіді:


9

Якщо ви маєте на увазі, як побудувати такий простий графік (без самокрут і без паралельних ребер), можливо, теорема Гавела-Хакімі - це те, що ви шукаєте. Ви можете самостійно перейти в Google, і корисна також сторінка Вікіпедії Ступінь (теорія графіків) .


Дякую. так, сторінка Вікі корисна в цьому випадку ..
singhsumit

11

Якщо розподіл ступенів подано у вигляді списку ступенів, то ви можете зробити наступне, вузлів зі ступенями :нг1,...,гн

Створіть повний графік на n -вертах. Для кожної вершини v i в K n розділіть її на d i копії. Розділити тут означає, створити ряд копій з краями до кожної вершини v i має ребро до, але немає ребер для інших копій v i . Якщо d i = 0, тоді просто видаліть вершину. У новому графіку назвіть ці вершини v i j для 1 j d i .КннviКнгiviviгi=0vij1jгi

N=г1+...+гнННМ

ММН1iнгivi1,...,viгiуiГ

Отриманий час виконання - де ω - константа для найшвидшого алгоритму множення матриць (який на момент написання становить приблизно 2,337 ). Щодо кількості вершин у отриманому графіку, то в гіршому випадку розподіл ступенів є щільним, маємо O ( n 2 ω ) .О(Nω)ω2.373О(н2ω)


З вашого (цілком чіткого) пояснення зовсім не зрозуміло, чому множення матриць входить у рівняння.
Рафаель

2
Матричне множення @Raphael є одним із способів вирішити максимальну відповідність, і це кращий метод для щільних графіків, оскільки найкраща версія алгоритму узгодження Едмонда працює в О(|V||Е|)О(N2.5)Н
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.