A multi-epigraph version of two-stage regularized SD algorithm.
- This version supports weighted scenario, and multiple weighted epigraph variables. Each epigraph variable maintains its own cut pool. This can be used in conjunction with variance reduction methods.
- The incumbent cut is separately maintained. The incumbent cut is re-generated each time, and the old one is discarded immediately. In original SD, when the incumbent changes, the cut is still in the pool, but scaled down and then (probably) dropped at a later time when it is slack.
- The master program sets LOWER BOUND for epigraph variables. In other words, the convex piecewise linear function approximation on the epigraph always includes an implied "horizontal" lower bound piece. When evaluating the cuts, all LOWER BOUNDS on epigraphs are also enforced. In original SD, this piece is not recorded.
-
Rewrite twosd master to use direction finding, to avoid numerical issues.
-
(Performance Issue) Profiling needed. Probably the subproblem solving is slow because the problem is passed to the solver again and again. Should reuse instance.
-
Need to implement stopping criteria.
-
Validation phase should use number of samples to target a specified level of accuracy in the estimates.
-
Implement override scenario weight in add_scenario! to support importance sampling. (easy to do)
-
Implement Harsha's random cost coefficients. This may need data structure changes, and redesign tests.
-
Implement SMPS sampling methods (antithetic, stratified).
-
For importance sampling, need to override the epigraph's total_weight when adding new samples.