# PP Final ## Steiner Trees * **NP-Hard** problem -> use approximation * Often used in VLSI routing problem * Terminal point -> **must be included** in solution * non-terminal point can be added to reduce cost * cost of a Steiner Tree is the sum of all edge weights * goal is to **minimize the cost** ## Algorithms <!-- [LP-base](https://dl.acm.org/doi/10.1145/1806689.1806769): approximation factor 1.55 --> [Robins,Zelikovsky](https://www.cs.virginia.edu/~robins/papers/Robins_Graph_Steiner_Approximation.pdf): The tight bound of the approximation factor for Steiner Trees in a general graph is **1.55**. [Mehlhorn](https://people.mpi-inf.mpg.de/~mehlhorn/ftp/SteinerTrees.pdf)The approximation factor is **2(1-1/l)**, where l is # of leaves in optimal tree, and the worst complexity is $O(|E|+|V|log|V|)$ -> **why don't use this?** [KMB](http://aturing.umcs.maine.edu/~markov/SteinerTrees.pdf) The approximation factor is **2(1-1/l)**, where l is # of leaves in optimal tree, and the worst complexity is $O(S|V|^2)$ ## Parallel Related Paper [Accerlating the KMB](https://mrprajesh.co.in/pdfs/steiner-ijpp22-preprint.pdf) * [ppt](https://mrprajesh.co.in/pdfs/sem2-v4.pdf) <!-- * [github](https://github.com/HeathcliffAC/SteinerTreeProblem) --> [intro of parallel STs](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4682068) * Although other techniques have a better approximation ratio, the **performance bound lies in KMB** since it will be used as the first approximation in their algorithm. [prims](https://www.reed.edu/biology/courses/bio331/files/projects/fall2016/lopez.pdf) ## TODOs * sequential KMB ![image](https://hackmd.io/_uploads/ryNoEjCwp.png) * parallel KMB (cpu/gpu)