Oscar Dowson
Oscar Dowson
Don't think so. Let's push 0.19 out the door first. However, first-class support could look like something very similar to how we store things in MOF.
Here is a hacky way using `Calculus.jl`'s symbolic differentiation: https://gist.github.com/odow/58a3469c9119b58069ab708431426905
It's now significantly less hacky. The parsed functions are fast and non-allocating :)
That means having JuMP as a dependency of MathOptFormat? 😢
What version of Ipopt.jl are you using. You need at least Ipopt v1.6.0
The issue is that we don't support logical or comparison operators: https://github.com/odow/MathOptSymbolicAD.jl/blob/e5d3eaa1f56346d53a5ef8f895743ab3e89ff38c/src/nonlinear_oracle.jl#L502-L523 https://github.com/jump-dev/MathOptInterface.jl/blob/dfea1558c279988faff4384bcd9ad4c5e47bc4e9/src/Nonlinear/types.jl#L30-L33 I'm not sure why I didn't add this. Perhaps Symbolics.jl didn't support differentiating them when I first...
I have no immediate plans, but I would happily review a PR. Having a minimal reproducible example would be helpful.
- Get rid of constraints and terminal cost. ```julia m = SPModel(stages=3, sense=:Min) do sp, t @states(sp, begin end) @controls(sp, begin end) @noises(sp, begin end) dynamics!(sp) do out_state, in_state, control,...
Here are the things in SDDP.jl: https://github.com/odow/SDDP.jl/tree/master/src/visualization
There's some here: https://github.com/odow/DynamicProgramming.jl/tree/master/assets