PCST:
- why I work on PCST
- the road map: PCST->MST->Quota->Budget
- PCST->MST
- MST = Quota
- Quota -> Budget: how the 5-approximation comes?
- that's for undirected case
- incorrectness of the proof on the greedy primal-dual method
- the chapter
- p11: minimum violation set
- p19: general algorithm
- p40: pcst algorithm
- dtgs
- Def of minimal violation set in Figure 4.3 will be the roots of active components. Then dual constraints might be broken.
- However, if we let the violation set be all the active components and their subset, solution feasibility is not guaranteed. Even the reverse deletion step will not help.
- No idea on how to formulate integer program for PCST-DAG specifically
- No idea on the algorithm if we use the original integer program: specifically, what is the VIOLATION-SET oracle?
- generate feasible solution
- does not violate any dual constraints so that approximation guarantee can be proved
- the chapter
- Is PCST-DAG NP-hard?
- how is PCST NP-hard derived? derive steiner tree(ST) to PCST as ST is special case of PCST
- PCST-dag is NP-hard because Steiner-DAG is NP-hard and Steiner-DAG is special case of PCST-DAG
- (root, set node) with weight 1
- (set node, element node) with weight 0
- for directed case: I only found resources for steiner problem
- check out A Compendium on Steiner Tree Problems
- 1.32 budget problem
- Approximation Algorithms for Directed Steiner Problems: with approximation guarantee
- density(combines cost and number of terminals) as the heuristic, high density is more likely to lead to near-optimal solution
- recursive definition of optimal l-level tree based on the result of l-1-level trees(inspired from the worst case example)
- a series of ...
- check out A Compendium on Steiner Tree Problems
- branch-and-cut algorithm by Ivana seems to be more general:
- the paper: how to prove the approximation ratio
- why transform to directed version?
- a different IP forumulation
- some preprocessing:
- least-cost test: path from i to j has less cost than edge from i to j, remove the edge
- branch-and-cut
- insert the cut constraints(exponential) at the begining of the branching/separation step
- why use the maxflow to find the violating constraints
- no approximation guarantee
- the paper: how to prove the approximation ratio