{"title":"近似Steiner树的动态算法","authors":"Hemraj Raikwar, Harshil Sadharakiya, Sushanta Karmakar","doi":"10.1002/cpe.70040","DOIUrl":null,"url":null,"abstract":"<div>\n \n <p>This study investigates the dynamic Steiner tree problem. The objective of the Steiner tree problem is to compute a minimum-weight tree connecting a set of designated vertices called terminals in a connected weighted graph with positive real edge weights. A dynamic graph is one in which the set of edges, the set of vertices, or both can change over time. Here, we focus on dynamic graphs where edges can change over time. The work begins by establishing a lower bound on the update time required to maintain an MST heuristic based <span></span><math>\n <semantics>\n <mrow>\n <mo>(</mo>\n <mn>2</mn>\n <mo>−</mo>\n <mi>ϵ</mi>\n <mo>)</mo>\n </mrow>\n <annotation>$$ \\left(2-\\epsilon \\right) $$</annotation>\n </semantics></math>-approximate Steiner tree (where <span></span><math>\n <semantics>\n <mrow>\n <mi>ϵ</mi>\n </mrow>\n <annotation>$$ \\epsilon $$</annotation>\n </semantics></math> is a small fraction) in a general graph undergoing edge insertions or deletions. Subsequently, we propose two dynamic algorithms: A fully dynamic algorithm to maintain an approximate Steiner tree in planar graphs and an incremental algorithm to maintain an approximate Steiner tree in general graphs. We focus on edge-weighted connected graphs. The graph undergoes dynamic updates where edges with specific weights can be either inserted or deleted. The goal is to efficiently compute a Steiner tree of the updated graph, guaranteeing a solution quality (Steiner tree cost) within a good factor of the optimal Steiner tree. In the fully dynamic case, our analysis demonstrates that the presented algorithm maintains an approximation factor of <span></span><math>\n <semantics>\n <mrow>\n <mo>(</mo>\n <mn>2</mn>\n <mo>+</mo>\n <mi>ϵ</mi>\n <mo>)</mo>\n </mrow>\n <annotation>$$ \\left(2+\\epsilon \\right) $$</annotation>\n </semantics></math>. The worst case update time for processing a series of <span></span><math>\n <semantics>\n <mrow>\n <mi>k</mi>\n </mrow>\n <annotation>$$ k $$</annotation>\n </semantics></math> number of updates is <span></span><math>\n <semantics>\n <mrow>\n <mi>Õ</mi>\n <mo>(</mo>\n <mo>|</mo>\n <mi>S</mi>\n <msup>\n <mrow>\n <mo>|</mo>\n </mrow>\n <mrow>\n <mn>2</mn>\n </mrow>\n </msup>\n <msqrt>\n <mrow>\n <mi>n</mi>\n </mrow>\n </msqrt>\n <mo>+</mo>\n <mo>|</mo>\n <mi>S</mi>\n <mo>|</mo>\n <mi>D</mi>\n <mo>+</mo>\n <mi>n</mi>\n <mo>)</mo>\n </mrow>\n <annotation>$$ \\overset{\\widetilde }{O}\\left({\\left|S\\right|}^2\\sqrt{n}+|S|D+n\\right) $$</annotation>\n </semantics></math> where <span></span><math>\n <semantics>\n <mrow>\n <mi>n</mi>\n </mrow>\n <annotation>$$ n $$</annotation>\n </semantics></math> is the cardinality of the vertex set of the input graph, <span></span><math>\n <semantics>\n <mrow>\n <mi>D</mi>\n </mrow>\n <annotation>$$ D $$</annotation>\n </semantics></math> denotes the unweighted diameter of the updated graph, and <span></span><math>\n <semantics>\n <mrow>\n <mi>k</mi>\n <mo>∈</mo>\n <msup>\n <mrow>\n <mi>Z</mi>\n </mrow>\n <mrow>\n <mo>+</mo>\n </mrow>\n </msup>\n <mo>:</mo>\n <mn>1</mn>\n <mo>≤</mo>\n <mi>k</mi>\n <mo>≤</mo>\n <mo>(</mo>\n <msqrt>\n <mrow>\n <mi>n</mi>\n <mo>+</mo>\n <mi>m</mi>\n </mrow>\n </msqrt>\n <mo>)</mo>\n </mrow>\n <annotation>$$ k\\in {Z}^{+}:1\\le k\\le \\left(\\sqrt{n+m}\\right) $$</annotation>\n </semantics></math>. It is shown that the update time can be improved to <span></span><math>\n <semantics>\n <mrow>\n <mi>O</mi>\n <mo>(</mo>\n <mi>n</mi>\n <msup>\n <mrow>\n <mo>(</mo>\n <msup>\n <mrow>\n <mi>ϵ</mi>\n </mrow>\n <mrow>\n <mo>′</mo>\n </mrow>\n </msup>\n <mo>)</mo>\n </mrow>\n <mrow>\n <mo>−</mo>\n <mn>2</mn>\n </mrow>\n </msup>\n <mo>)</mo>\n </mrow>\n <annotation>$$ O\\left(n{\\left({\\epsilon}^{\\prime}\\right)}^{-2}\\right) $$</annotation>\n </semantics></math> in a special case. On the other hand, the incremental algorithm maintains an approximate Steiner tree in general graphs with an approximation factor of <span></span><math>\n <semantics>\n <mrow>\n <mo>(</mo>\n <mn>2</mn>\n <mo>−</mo>\n <mi>ϵ</mi>\n <mo>)</mo>\n </mrow>\n <annotation>$$ \\left(2-\\epsilon \\right) $$</annotation>\n </semantics></math> under edge insertions. It achieves an update time of <span></span><math>\n <semantics>\n <mrow>\n <mi>O</mi>\n <mo>(</mo>\n <mi>n</mi>\n <msub>\n <mrow>\n <mi>D</mi>\n </mrow>\n <mrow>\n <mi>s</mi>\n </mrow>\n </msub>\n <mo>)</mo>\n </mrow>\n <annotation>$$ O\\left(n{D}_s\\right) $$</annotation>\n </semantics></math>. Here <span></span><math>\n <semantics>\n <mrow>\n <msub>\n <mrow>\n <mi>D</mi>\n </mrow>\n <mrow>\n <mi>s</mi>\n </mrow>\n </msub>\n </mrow>\n <annotation>$$ {D}_s $$</annotation>\n </semantics></math> is the shortest path diameter of the modified graph. The fully dynamic algorithm leverages concepts from an existing Steiner tree algorithm and a dynamic distance oracle. On the other hand, the incremental algorithm maintains a partition of the input graph in the form of a shortest path forest, which aids in efficiently updating a Steiner tree.</p>\n </div>","PeriodicalId":55214,"journal":{"name":"Concurrency and Computation-Practice & Experience","volume":"37 6-8","pages":""},"PeriodicalIF":1.5000,"publicationDate":"2025-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Dynamic Algorithms for Approximate Steiner Trees\",\"authors\":\"Hemraj Raikwar, Harshil Sadharakiya, Sushanta Karmakar\",\"doi\":\"10.1002/cpe.70040\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div>\\n \\n <p>This study investigates the dynamic Steiner tree problem. The objective of the Steiner tree problem is to compute a minimum-weight tree connecting a set of designated vertices called terminals in a connected weighted graph with positive real edge weights. A dynamic graph is one in which the set of edges, the set of vertices, or both can change over time. Here, we focus on dynamic graphs where edges can change over time. The work begins by establishing a lower bound on the update time required to maintain an MST heuristic based <span></span><math>\\n <semantics>\\n <mrow>\\n <mo>(</mo>\\n <mn>2</mn>\\n <mo>−</mo>\\n <mi>ϵ</mi>\\n <mo>)</mo>\\n </mrow>\\n <annotation>$$ \\\\left(2-\\\\epsilon \\\\right) $$</annotation>\\n </semantics></math>-approximate Steiner tree (where <span></span><math>\\n <semantics>\\n <mrow>\\n <mi>ϵ</mi>\\n </mrow>\\n <annotation>$$ \\\\epsilon $$</annotation>\\n </semantics></math> is a small fraction) in a general graph undergoing edge insertions or deletions. Subsequently, we propose two dynamic algorithms: A fully dynamic algorithm to maintain an approximate Steiner tree in planar graphs and an incremental algorithm to maintain an approximate Steiner tree in general graphs. We focus on edge-weighted connected graphs. The graph undergoes dynamic updates where edges with specific weights can be either inserted or deleted. The goal is to efficiently compute a Steiner tree of the updated graph, guaranteeing a solution quality (Steiner tree cost) within a good factor of the optimal Steiner tree. In the fully dynamic case, our analysis demonstrates that the presented algorithm maintains an approximation factor of <span></span><math>\\n <semantics>\\n <mrow>\\n <mo>(</mo>\\n <mn>2</mn>\\n <mo>+</mo>\\n <mi>ϵ</mi>\\n <mo>)</mo>\\n </mrow>\\n <annotation>$$ \\\\left(2+\\\\epsilon \\\\right) $$</annotation>\\n </semantics></math>. The worst case update time for processing a series of <span></span><math>\\n <semantics>\\n <mrow>\\n <mi>k</mi>\\n </mrow>\\n <annotation>$$ k $$</annotation>\\n </semantics></math> number of updates is <span></span><math>\\n <semantics>\\n <mrow>\\n <mi>Õ</mi>\\n <mo>(</mo>\\n <mo>|</mo>\\n <mi>S</mi>\\n <msup>\\n <mrow>\\n <mo>|</mo>\\n </mrow>\\n <mrow>\\n <mn>2</mn>\\n </mrow>\\n </msup>\\n <msqrt>\\n <mrow>\\n <mi>n</mi>\\n </mrow>\\n </msqrt>\\n <mo>+</mo>\\n <mo>|</mo>\\n <mi>S</mi>\\n <mo>|</mo>\\n <mi>D</mi>\\n <mo>+</mo>\\n <mi>n</mi>\\n <mo>)</mo>\\n </mrow>\\n <annotation>$$ \\\\overset{\\\\widetilde }{O}\\\\left({\\\\left|S\\\\right|}^2\\\\sqrt{n}+|S|D+n\\\\right) $$</annotation>\\n </semantics></math> where <span></span><math>\\n <semantics>\\n <mrow>\\n <mi>n</mi>\\n </mrow>\\n <annotation>$$ n $$</annotation>\\n </semantics></math> is the cardinality of the vertex set of the input graph, <span></span><math>\\n <semantics>\\n <mrow>\\n <mi>D</mi>\\n </mrow>\\n <annotation>$$ D $$</annotation>\\n </semantics></math> denotes the unweighted diameter of the updated graph, and <span></span><math>\\n <semantics>\\n <mrow>\\n <mi>k</mi>\\n <mo>∈</mo>\\n <msup>\\n <mrow>\\n <mi>Z</mi>\\n </mrow>\\n <mrow>\\n <mo>+</mo>\\n </mrow>\\n </msup>\\n <mo>:</mo>\\n <mn>1</mn>\\n <mo>≤</mo>\\n <mi>k</mi>\\n <mo>≤</mo>\\n <mo>(</mo>\\n <msqrt>\\n <mrow>\\n <mi>n</mi>\\n <mo>+</mo>\\n <mi>m</mi>\\n </mrow>\\n </msqrt>\\n <mo>)</mo>\\n </mrow>\\n <annotation>$$ k\\\\in {Z}^{+}:1\\\\le k\\\\le \\\\left(\\\\sqrt{n+m}\\\\right) $$</annotation>\\n </semantics></math>. It is shown that the update time can be improved to <span></span><math>\\n <semantics>\\n <mrow>\\n <mi>O</mi>\\n <mo>(</mo>\\n <mi>n</mi>\\n <msup>\\n <mrow>\\n <mo>(</mo>\\n <msup>\\n <mrow>\\n <mi>ϵ</mi>\\n </mrow>\\n <mrow>\\n <mo>′</mo>\\n </mrow>\\n </msup>\\n <mo>)</mo>\\n </mrow>\\n <mrow>\\n <mo>−</mo>\\n <mn>2</mn>\\n </mrow>\\n </msup>\\n <mo>)</mo>\\n </mrow>\\n <annotation>$$ O\\\\left(n{\\\\left({\\\\epsilon}^{\\\\prime}\\\\right)}^{-2}\\\\right) $$</annotation>\\n </semantics></math> in a special case. On the other hand, the incremental algorithm maintains an approximate Steiner tree in general graphs with an approximation factor of <span></span><math>\\n <semantics>\\n <mrow>\\n <mo>(</mo>\\n <mn>2</mn>\\n <mo>−</mo>\\n <mi>ϵ</mi>\\n <mo>)</mo>\\n </mrow>\\n <annotation>$$ \\\\left(2-\\\\epsilon \\\\right) $$</annotation>\\n </semantics></math> under edge insertions. It achieves an update time of <span></span><math>\\n <semantics>\\n <mrow>\\n <mi>O</mi>\\n <mo>(</mo>\\n <mi>n</mi>\\n <msub>\\n <mrow>\\n <mi>D</mi>\\n </mrow>\\n <mrow>\\n <mi>s</mi>\\n </mrow>\\n </msub>\\n <mo>)</mo>\\n </mrow>\\n <annotation>$$ O\\\\left(n{D}_s\\\\right) $$</annotation>\\n </semantics></math>. Here <span></span><math>\\n <semantics>\\n <mrow>\\n <msub>\\n <mrow>\\n <mi>D</mi>\\n </mrow>\\n <mrow>\\n <mi>s</mi>\\n </mrow>\\n </msub>\\n </mrow>\\n <annotation>$$ {D}_s $$</annotation>\\n </semantics></math> is the shortest path diameter of the modified graph. The fully dynamic algorithm leverages concepts from an existing Steiner tree algorithm and a dynamic distance oracle. On the other hand, the incremental algorithm maintains a partition of the input graph in the form of a shortest path forest, which aids in efficiently updating a Steiner tree.</p>\\n </div>\",\"PeriodicalId\":55214,\"journal\":{\"name\":\"Concurrency and Computation-Practice & Experience\",\"volume\":\"37 6-8\",\"pages\":\"\"},\"PeriodicalIF\":1.5000,\"publicationDate\":\"2025-03-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Concurrency and Computation-Practice & Experience\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://onlinelibrary.wiley.com/doi/10.1002/cpe.70040\",\"RegionNum\":4,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"COMPUTER SCIENCE, SOFTWARE ENGINEERING\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Concurrency and Computation-Practice & Experience","FirstCategoryId":"94","ListUrlMain":"https://onlinelibrary.wiley.com/doi/10.1002/cpe.70040","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0
摘要
本文研究了动态Steiner树问题。斯坦纳树问题的目标是计算一棵最小权值树,该树连接一个实边权为正的连通加权图中的指定端点集。动态图是指边集、顶点集或两者都随时间变化的图。在这里,我们关注的是边可以随时间变化的动态图。这项工作首先建立更新时间的下界,以维护一个基于MST启发式的(2−ε) $$ \left(2-\epsilon \right) $$ -近似斯坦纳树(其中ε $$ \epsilon $$是一个小分数),在一个一般的图中进行边缘插入或删除。随后,我们提出了两种动态算法:在平面图中维护近似Steiner树的全动态算法和在一般图中维护近似Steiner树的增量算法。我们关注边加权连通图。图进行动态更新,其中可以插入或删除具有特定权重的边。目标是有效地计算更新图的Steiner树,保证在最优Steiner树的一个良好因子内的解质量(Steiner树成本)。在完全动态的情况下,我们的分析表明,所提出的算法保持近似因子为(2 + λ) $$ \left(2+\epsilon \right) $$。处理一系列k次$$ k $$更新的最坏情况更新时间为Õ (| S | 2)n + | S | D + n) $$ \overset{\widetilde }{O}\left({\left|S\right|}^2\sqrt{n}+|S|D+n\right) $$其中n $$ n $$为输入图顶点集的基数,D $$ D $$为更新后图的未加权直径,k∈Z +:1≤k≤(n + m) $$ k\in {Z}^{+}:1\le k\le \left(\sqrt{n+m}\right) $$。结果表明,更新时间可以改进为O (n (λ′)−2)特殊情况下:$$ O\left(n{\left({\epsilon}^{\prime}\right)}^{-2}\right) $$。另一方面,增量算法在一般图中维护一个近似的Steiner树,在边缘插入下具有近似因子(2−ε) $$ \left(2-\epsilon \right) $$。它的更新时间为0 (n D) $$ O\left(n{D}_s\right) $$。 这里D s $$ {D}_s $$是修改后图的最短路径直径。全动态算法利用了现有的斯坦纳树算法和动态距离预言器的概念。另一方面,增量算法以最短路径森林的形式维护输入图的分区,这有助于有效地更新斯坦纳树。
This study investigates the dynamic Steiner tree problem. The objective of the Steiner tree problem is to compute a minimum-weight tree connecting a set of designated vertices called terminals in a connected weighted graph with positive real edge weights. A dynamic graph is one in which the set of edges, the set of vertices, or both can change over time. Here, we focus on dynamic graphs where edges can change over time. The work begins by establishing a lower bound on the update time required to maintain an MST heuristic based -approximate Steiner tree (where is a small fraction) in a general graph undergoing edge insertions or deletions. Subsequently, we propose two dynamic algorithms: A fully dynamic algorithm to maintain an approximate Steiner tree in planar graphs and an incremental algorithm to maintain an approximate Steiner tree in general graphs. We focus on edge-weighted connected graphs. The graph undergoes dynamic updates where edges with specific weights can be either inserted or deleted. The goal is to efficiently compute a Steiner tree of the updated graph, guaranteeing a solution quality (Steiner tree cost) within a good factor of the optimal Steiner tree. In the fully dynamic case, our analysis demonstrates that the presented algorithm maintains an approximation factor of . The worst case update time for processing a series of number of updates is where is the cardinality of the vertex set of the input graph, denotes the unweighted diameter of the updated graph, and . It is shown that the update time can be improved to in a special case. On the other hand, the incremental algorithm maintains an approximate Steiner tree in general graphs with an approximation factor of under edge insertions. It achieves an update time of . Here is the shortest path diameter of the modified graph. The fully dynamic algorithm leverages concepts from an existing Steiner tree algorithm and a dynamic distance oracle. On the other hand, the incremental algorithm maintains a partition of the input graph in the form of a shortest path forest, which aids in efficiently updating a Steiner tree.
期刊介绍:
Concurrency and Computation: Practice and Experience (CCPE) publishes high-quality, original research papers, and authoritative research review papers, in the overlapping fields of:
Parallel and distributed computing;
High-performance computing;
Computational and data science;
Artificial intelligence and machine learning;
Big data applications, algorithms, and systems;
Network science;
Ontologies and semantics;
Security and privacy;
Cloud/edge/fog computing;
Green computing; and
Quantum computing.