Я задал этот вопрос в общем стеке потока, и я был направлен сюда.
Было бы хорошо, если бы кто-нибудь мог объяснить, как подходить к частичным или полностью динамическим задачам с графами в целом.
Например:
- Найти кратчайший путь между двумя вершинами в неориентированном взвешенном графе для экземпляров, когда ребро удалено в каждом экземпляре.N
- Найти количество связанных компонентов в неориентированном графе для n случаев, когда ребро удаляется в каждом случае, и т. Д.
Я недавно столкнулся с этим жанром проблем в конкурсе программирования. Я искал в Интернете, и я нашел много научных работ, касающихся динамических графов [1,2]. Я прочитал несколько из них, и я не мог найти что-нибудь прямо (кластеризация, спарсификация и т. Д.). Извините за расплывчатость.
Я действительно ценю, если кто-то может предоставить указатели, чтобы лучше понять эти концепции.
- Алгоритмы динамического графа Д. Эппштейна, З. Галила, Г. Ф. Итальяно (1999)
- Кратчайшие пути на динамических графах Г. Наннинини, Л. Либерти (2008)
источник
Динамические графовые модели интенсивно изучались в распределенных вычислениях. Для распределенных алгоритмов вычисления структурированы в раунды, и топология графов (= сеть) может претерпеть некоторые изменения от раунда к раунду, которые находятся под контролем противника. Более того, каждый узел графа запускает алгоритм, который может отправить сообщение своим (текущим!) Соседям. (Это сообщение является входом алгоритма соседей в следующем раунде.) Интересно то, что узел «не видит» весь граф, а только его локальную окрестность.
Проблемы, которые рассматриваются в этих настройках, это, например, распространение информации, когда каждый узел в графе изначально содержит токен, и в конечном итоге вы хотите, чтобы каждый узел видел каждый токен. Цель состоит в том, чтобы разработать алгоритмы, которые достигают этого за наименьшее количество раундов, используя наименьшее количество сообщений. См. [2] для недавнего опроса.
Для нераспределенной настройки вы можете взглянуть на [1], который является расширением упомянутой вами статьи.
[1] Арис Анагностопулос, Рави Кумар, Мохаммад Махдиан, Эли Упфал, Фабио Вандин: Алгоритмы на развивающихся графах . ITCS 2012: 149-160
[2] Фабиан Кун, Ротем Ошман: Динамические сети: модели и алгоритмы . SIGACT News 42 (1): 82-96 (2011)
источник
Опираясь на ответы @Peter (это очень длинный комментарий, поэтому я просто включил в качестве ответа, что кто-то от этого выиграет).
Я хотел бы предложить следующую ссылку:
Арно Кастейгтс, Паола Флоккини, Вальтер Кватрочиокки, Никола Санторо: изменяющиеся во времени графики и динамические сети. IJPEDS 27 (5): 387-408 (2012)
Что действительно важно в этой классификации, так это наличие взаимосвязей между различными классами. Поэтому, если вы решаете проблему в определенном классе, вы решаете ее в любом другом классе, в который она включена.
Те же авторы представили алгоритмы вещания на некоторых из упомянутых графиков. Они дали разные показатели производительности, связанные со временем (то есть разное определение кратчайшего времени). В вещании идея состоит в том, что каждый узел создает представление сети во временной области. Это делается путем многократного прослушивания соседей и отправки информации соседям. Если предположить периодичность, то узел может определить кратчайший путь к другому узлу. Он использует эту информацию в маршрутизации. Более подробную информацию можно найти в:
Арно Кастейгтс, Паола Флоккини, Бернард Манс, Никола Санторо: детерминированные вычисления в изменяющихся во времени графах: трансляция в условиях неструктурированной мобильности. IFIP TCS 2010: 111-124
Я присутствовал на лекции предыдущих авторов. Насколько я понимаю, они утверждают, что мы далеки от возможности иметь дело с алгоритмами динамических графов (следуя определениям, которым они следуют). Это мы все еще в случае простых классов. На самом деле, они утверждают, что большинство мобильных вычислительных алгоритмов просто предполагают, что их алгоритмы слишком быстры, чтобы выполняться во время перехода сети! (что, я полагаю, я много слышал) - Или просто предположим периодичность появления ребер (см. сети, допускающие задержку и т. д.)
источник