StructDualDynProg.jl
StructDualDynProg.jl copied to clipboard
[RFC] Cut interface
An AbstractNode must implements getoptimalitycut and getfeasibilitycut.
-
getoptimalitycutmust returns aMinFunCut(do you preferUBFunCut?) (θ ≦ ⟨a, x⟩ + β) or aMaxFunCut(do you preferLBFunCut?) (θ ≧ ⟨a, x⟩ + β). -
getfeasibilitycutmust returns aLBCut(⟨a, x⟩ ≧ β) or aUBCut(⟨a, x⟩ ≦ β). The 4 cut types will be defined inCutPruners. What do you think ?
Why not parameterise the cuts by :lb or :ub?
We could have something like that too but having different types can be helpful when we want to do multiple dispatch. We could also have Cut{Fun, LB} where Fun and LB are boolean
I think these notations make already sense with those used in CutPruners.jl: https://github.com/JuliaPolyhedra/CutPruners.jl/blob/master/src/abstract.jl#L17