Як підійти до проблем, пов'язаних з динамічним графіком


15

Я поставив це питання під загальним стаковерхом, і мене тут направили.

Буде чудово, якщо хтось зможе пояснити, як підходити до часткових або повністю динамічних проблем із графіком взагалі.

Наприклад:

  • Знайдіть найкоротший шлях між двома вершинами у непрямому зваженому графіку для n екземплярів, коли край видаляється у кожному екземплярі.(у,v)н
  • Знайдіть кількість підключених компонентів у непрямому графіку для n випадків, коли край видаляється у кожному екземплярі тощо.

Я нещодавно зіткнувся з цим жанром проблем на конкурсі програмування. Я шукав в Інтернеті, і знайшов безліч наукових робіт, що стосуються динамічних графіків [1,2]. Я прочитав пару з них, і я не міг знайти нічого прямо вперед (кластеризація, розшарування тощо). Вибачте, що розпливчасто.

Я дуже вдячний, якщо деякі можуть надати покажчики, щоб краще зрозуміти ці поняття.


  1. Алгоритми динамічного графіка Д. Еппштейна, З. Галіля, Г. Ф. Італіано (1999)
  2. Найкоротші шляхи на динамічних графах Г. Наннініні, Л. Ліберті (2008)

Відповіді:


12

Важко дати конкретні методи, тому що "динамічний" може означати найрізноманітніші речі, а алгоритми / результати залежать від вашої моделі. Нижче наведено огляд проблем. Ось документ, який дає огляд деяких різних проблем та моделей (пов’язаних з тим, що цитував Пітер в іншій відповіді).


Для динамічних проблем загалом ключовими питаннями є:

  • чи хочете точне рішення у всіх випадках, або наближення дозволено?
  • чи знаєте ви щось про те, які зміни відбудуться (наприклад, розподіл ймовірностей), чи всі вони однаково вірогідні?
  • як алгоритм дізнається про зміни?

Типова динамічна модель виглядає приблизно так:

  1. Давши графік, потрібно обчислити деяку властивість. Вам дозволяється обчислити рішення для початкового графіка.

  2. (е,f)

  3. н

Ось три можливі модифікації:

  • Вам не дозволяється обчислювати повне рішення на початку через обмеження щодо інформації / часу / простору (одним із прикладів є онлайн-алгоритми )

  • На кроці 2 алгоритм не "розповідає" про модифікацію, але повинен знайти модифікацію в графіку шляхом запиту структури даних чи чогось іншого.

  • Розподілена модель (як Петро обговорює в іншій відповіді), де інформація виявляється локально і обчислення / зміни здійснюються локально.

Динамічні моделі, як правило, цікаві через обмеження ресурсів (наприклад, часу / простору). На кроці 2, якщо мені було дозволено обчислити повну відповідь (як я це робив на кроці 1), тоді проблема є простою, оскільки це лише повторена статична графіка. Нас більше цікавить найменша кількість ресурсів, необхідних для обчислення змін.


Дякую за відповідь. Я намагався зрозуміти складності та способи вирішення простої частково динамічної задачі графіка.
Пракаш

Дякую за відповідь. Я перегляну папери. Я намагався зрозуміти складності та способи вирішення простої частково динамічної задачі графіка. Наприклад, з урахуванням набору міст, з'єднаних дорогами, непрямими і зваженими на відстань. Знайдіть найкоротший шлях між двома містами, по п ять випадків, коли дорога перекрита в кожному екземплярі з різних причин. Запустити Dijkstra для російського примірника недоцільно, чи є спосіб адаптувати існуючі алгоритми, такі як A *, щоб вирішити ці проблеми з кращим часовим обмеженням, або підходи, обговорені в документах, - єдиний шлях.
Пракаш

A * - узагальнення евристики Dijkstra +; продуктивність схожа в гіршому випадку. Для мене важливим питанням для вашої проблеми є "яку інформацію можна зберігати між екземплярами, які прискорять наступний екземпляр?" Наприклад, якщо я зберігаю попередній найкоротший шлях, я зможу швидко дізнатись, чи він "не вдався", але немає очевидного способу обчислити наступний найкоротший шлях. (Навіть якщо ви зберігаєте k найкоротших шляхів з попереднього екземпляра, я підозрюю, що це стосується будь-яких к.)
Лукас Кук,

(Мій попередній коментар - це головним чином про найгірші рішення. Можливо, ви хвилюєтесь середнім випадком? Тоді може виникнути евристика, яка робить хороший тип рішення A *.)
Лукас Кук,

10

Динамічні графічні моделі інтенсивно вивчалися в розподілених обчисленнях. Для розподілених алгоритмів обчислення структуровано в круги, і топологія графіків (= мережа) може зазнати певних змін від раунду до круга, які перебувають під контролем супротивника. Крім того, кожен вузол графіка працює алгоритмом, який може надсилати повідомлення своїм (поточним!) Сусідам. (Це повідомлення є введенням алгоритму сусідів у наступному раунді.) Що робить цікаві речі, це те, що вузол не "бачить" весь графік, а лише його локальне сусідство.

Проблеми, які враховуються в цих налаштуваннях, наприклад, розповсюдження інформації, де кожен вузол у графі спочатку містить маркер, і, врешті, ви хочете, щоб кожен вузол бачив кожен маркер. Мета - розробити алгоритми, які досягають цього за найменшу кількість раундів, використовуючи найменшу кількість повідомлень. Див. [2] для недавнього опитування.

Щодо нерозподіленого налаштування, ви можете подивитися [1], який є розширенням згаданого вами паперу.


[1] Аріс Анагностопулос, Раві Кумар, Мохаммед Махдіан, Елі Упфал, Фабіо Вандін: Алгоритми на графіках, що розвиваються . ITCS 2012: 149-160

[2] Фабіан Кун, Ротем Ошман: Динамічні мережі: моделі та алгоритми . Новини SIGACT 42 (1): 82-96 (2011)


Хіба ці алгоритми передачі повідомлень не мають проблем із (відсутністю) конвергенції?
Рафаель

Не впевнений, я розумію, що ви маєте на увазі під "конвергенцією". Поки графік залишатиметься пов'язаним у кожному раунді, кількість вузлів, які побачили певний маркер t, збільшиться щонайменше на 1. Таким чином, після n раундів усі побачать t, незалежно від того, як супротивник змінить топологію.
Пітер

Я думав про проблему відліку до нескінченності, спричинену зміною топології.
Рафаель

@Raphael У розподіленій динаміці дослідники, як правило, досліджують, які властивості можуть бути в гіршому випадку гарантовані протягом певного періоду часу. Таким чином, «конвергенція» не може бути гарантована для вектора дистанції / Беллман-Форд через принципові проблеми з технікою в динамічному середовищі. Існують і інші конвергентні протоколи маршрутизації, які не мають проблеми з рахунком до нескінченності.
Лукас Кук

3

На основі відповідей @Peter (це дуже довгий коментар, тому я просто включив як відповідь, сподіваючись, що хтось від цього виграє).

Я б запропонував наступне посилання:

Арно Каштейтс, Паола Флоччини, Вальтер Кваттросіоккі, Нікола Санторо: Графіки та динамічні мережі, що змінюються часом. IJPEDS 27 (5): 387-408 (2012)

Δ

Що дійсно важливо для цієї класифікації, це те, що між різними класами існують зв’язки включення. Отже, якщо ви вирішите проблему в певному класі, ви вирішили б її в будь-якому іншому класі, до якого вона включена.

Ті ж автори представили алгоритми мовлення на деяких із згаданих графіків. Вони давали різні показники ефективності, пов'язані з часом (тобто різні визначення найкоротшого часу). У мовленні ідея полягає у тому, щоб кожен вузол будував вигляд мережі у часовій області. Це робиться шляхом багаторазового прослуховування сусідів та надсилання інформації сусідам. Якщо припускати періодичність, то вузол може сказати, який найкоротший шлях до іншого вузла. Він використовує цю інформацію при маршрутизації. Детальніше можна ознайомитись у:

Арно Каштейтс, Паола Флоккіні, Бернар Ман, Нікола Санторо: Детерміновані обчислення у часових графіках: мовлення під неструктурованою мобільністю. IFIP TCS 2010: 111-124

уv{(у,х1),(х1,х2),....,(хк,v)}уvvу

Я відвідав лекцію попередніх авторів. Наскільки я розумію, вони стверджують, що ми далеко не в змозі мати справу з алгоритмами динамічних графіків (дотримуючись визначень, які вони випливають). Що ми все ще у випадку простих класів. Насправді вони стверджують, що більшість алгоритмів мобільних обчислень просто припускають, що їх алгоритми занадто швидко виконуються, поки мережа перебуває в переході! (про що я вважаю, що я чув багато) - Або просто припустимо періодичність появи країв (див. мережі, терпимі до затримки тощо)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.