Closed lkapelevich closed 4 years ago
Can you provide some guidance as to how one would go about implementing this since you are probably the only one that understands what's going on?
Yep! We were assuming equal probabilities for all scenarios just to keep the code simpler. The distributionally robust SDDP paper is more general.
To generalise, the DRO object would have
type DRO
radius::Float64
q::Vector{Float64}
end
with q
being the center of the DRO ball.
The worst case probability is essentially computed with a one line formula: https://github.com/odow/SDDP.jl/blob/master/src/risk_measures/DRO.jl#L103
(which appears in a loop with iterator k
) following algorithm 2 in
http://www.epoc.org.nz/papers/DROPaperv52.pdf, and to generalise, we would use algorithm 1 instead.
Calling this an enhancement instead of a bug because Kokako now has a check for uniformity of the nominal distribution.
Closed by #328
The DRO computations currently assume equal probabilities for all scenarios as the nominal distribution. We can tweak the code to work around any user specified distribution.