170 likes | 395 Vues
Steiner tree LP. x e = 1 if edge e is included in the Steiner tree. Min. e c e x e (primal) s.t. e Î (S) x e ≥ 1 S Í V: S Ç T ≠ Æ , TS ≠ Æ x e Î {0, 1} (1) x e ≥ 0. terminal. terminal. S. Relax (1) to x e ≥ 0 to get an LP.
E N D
Steiner tree LP xe = 1if edgeeis included in the Steiner tree. • Min.e cexe(primal) • s.t. • eÎ(S)xe≥ 1 • SÍV: SÇT≠Æ, T\S≠Æ • xe Î {0, 1} (1) • xe≥ 0 terminal terminal S Relax (1) to xe≥ 0 to get an LP.
The Steiner tree dual:a combinatorial motivation Let S := {SÍV: SÇT≠Æ, T\S≠Æ} Think of each set S in S as a region around which a “moat” has to be built. yS = width of this moat {yS }º moat packing around terminals. terminal non-terminal SÎS:eÎd(S) yS ≤ ce"e yS ≥ 0 v cuv Max. SÎS yS u Width of a feasible moat packing is a lower bound on OPT–Weak Duality.
The Steiner tree dual:an economic motivation Let S := {SÍV: SÇT≠Æ, T\S≠Æ} Each set S in S represents a coalition of terminals. yS = payment that coalition S is willing to make to get itselfconnected terminal non-terminal SÎS:eÎd(S) yS ≤ ce"e yS ≥ 0 v cuv Max. SÎS yS u Any payment scheme yields a lower bound on OPT–Weak Duality.
Primal-dual algorithm for Steiner tree Let S := {SÍV: SÇT≠Æ, T\S≠Æ} • Min.e cexe(primal) • eÎ(S)xe≥ 1 SÎS • xe≥ 0 Max. SÎS yS (dual) SÎS:eÎd(S) yS ≤ ce "e yS ≥ 0 Build an integer feasible primal solutionx and a dual feasible solutiony • Initialize F =Æ, yS = 0 for all SÎS. • V= minimal violated sets • = {SÎS: S is minimal s.t. d(S)ÇF=Æ} • While V≠Æ • Raise yS uniformly "SÎV until some edge eÎd(S) for some SÎV goes tight. • F ¬ FÈ{e}. Update V. • (Reverse delete) Consider edges of F in reverse order, drop e if F\{e} is feasible.
Primal-dual algorithm for Steiner tree in action F = Æ, yS = 0 for all SÎS t=0 terminal non-terminal v cuv u
Primal-dual algorithm for Steiner tree in action • V:= {SÎS: S minimal s.t. FÇd(S)=Æ} • While V≠Æ • Raise yS uniformly "SÎV until some edge eÎd(S) for some SÎV goes tight. • F ¬ FÈ{e}. Update V. t=2 t=1 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action • V:= {SÎS: S minimal s.t. FÇd(S)=Æ} • While V≠Æ • Raise yS uniformly "SÎV until some edge eÎd(S) for some SÎV goes tight. • F ¬ FÈ{e}. Update V. t=3 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action • V:= {SÎS: S minimal s.t. FÇd(S)=Æ} • While V≠Æ • Raise yS uniformly "SÎV until some edge eÎd(S) for some SÎV goes tight. • F ¬ FÈ{e}. Update V. t=3 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action • V:= {SÎS: S minimal s.t. FÇd(S)=Æ} • While V≠Æ • Raise yS uniformly "SÎV until some edge eÎd(S) for some SÎV goes tight. • F ¬ FÈ{e}. Update V. t=3 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action • V:= {SÎS: S minimal s.t. FÇd(S)=Æ} • While V≠Æ • Raise yS uniformly "SÎV until some edge eÎd(S) for some SÎV goes tight. • F ¬ FÈ{e}. Update V. t=4 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action • V:= {SÎS: S minimal s.t. FÇd(S)=Æ} • While V≠Æ • Raise yS uniformly "SÎV until some edge eÎd(S) for some SÎV goes tight. • F ¬ FÈ{e}. Update V. t=4 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action • V:= {SÎS: S minimal s.t. FÇd(S)=Æ} • While V≠Æ • Raise yS uniformly "SÎV until some edge eÎd(S) for some SÎV goes tight. • F ¬ FÈ{e}. Update V. t=5 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action Reverse delete:Consider edges of F in reverse insertion order and delete e if F\{e} is feasible t=5 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action Reverse delete:Consider edges of F in reverse insertion order and delete e if F\{e} is feasible t=5 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action Reverse delete:Consider edges of F in reverse insertion order and delete e if F\{e} is feasible t=5 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action Reverse delete:Consider edges of F in reverse insertion order and delete e if F\{e} is feasible t=5 terminal non-terminal edge in F v cuv u
Primal-dual algorithm for Steiner tree in action Final Steiner Tree t=5 terminal non-terminal edge in F v cuv u