Computer Science > Data Structures and Algorithms
[Submitted on 28 Nov 2016 (this version), latest version 28 Jul 2017 (v3)]
Title:Congestion-Free Rerouting of Flows on DAGs
View PDFAbstract:We initiate the theoretical study of a fundamental practical problem: how to schedule the congestion-free rerouting of $k$ flows? The input to our problem are $k$ path pairs: for each of the $k$ unsplittable flows (of a certain demand), there is an old and a new path along which the flow should be routed. As different flows can interfere on the physical links, the updates of the different flows at the different nodes must be scheduled such that transient congestion is avoided. This optimization problem finds immediate applications, e.g., in traffic engineering in computer networks. We show that the problem is generally NP-hard already for $k=2$ flows. Interestingly, we find that for general $k$, deciding whether an unsplittable multi-commodity flow rerouting schedule exists, is even NP-hard on DAGs. Both NP-hardness proofs are non-trivial. We then present two polynomial-time algorithms to solve the route update problem for a constant number of flows on DAGs. Both algorithms employ a decomposition of the flow graph into smaller parts which we call blocks. Based on the given block decomposition, we define a dependency graph whose properties can be leveraged to compute an optimal solution for $k=2$ flows. For arbitrary but fixed $k$, we introduce a weaker dependency graph and present our main contribution: an elegant linear-time algorithm which solves the problem in time $2^{O(k\log k)}O(|G|)$.
Submission history
From: Saeed Akhoondian Amiri [view email][v1] Mon, 28 Nov 2016 19:25:04 UTC (48 KB)
[v2] Thu, 23 Feb 2017 17:02:21 UTC (407 KB)
[v3] Fri, 28 Jul 2017 09:14:17 UTC (51 KB)
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
Connected Papers (What is Connected Papers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.