hdrake / OptimizeClimate

MOVED TO http://github.com/ClimateMARGO/ClimateMARGO.jl
http://github.com/ClimateMARGO/ClimateMARGO.jl
1 stars 0 forks source link

Major updates: JuMPified base code optimization #17

Closed hdrake closed 4 years ago

hdrake commented 4 years ago

A few major updates:

1) Swapped out the extremely inefficient steepest descent optimization algorithm with the optimization solver Ipopt, which we handle via the julia package JuMP, which is effectively an optimization framework written purely in julia that can wrap various optimization problem solvers.

The new algorithm is based on a proof-of-concept code snippet from @alanedelman. It runs typical simulations in ~0.1 seconds which runs effectively in real time for deterministic runs or close-to-real-time for large ensemble stochastic simulations.

2) Replaced arbitrary continuity constraint with a limit on the maximum (and minimum) rate of change of the control parameters. In general I have chosen this maximum rate to be equivalent to taking 20 to 40 years to go from zero deployment of climate control to full deployment (e.g. $-1/20 < \frac{\partial \alpha}{\partial t} < 1/20$). The previous constraint was arbitrary in the sense that the cost penalty was non-zero for all non-zero rates of change and the trade-off with physical costs was determined by an arbitrary scaling parameter that was chosen to be large enough to provide pleasantly-smooth solutions.

This commit resolves both Issues #16 and #8.

review-notebook-app[bot] commented 4 years ago

Check out this pull request on  ReviewNB

You'll be able to see Jupyter notebook diff and discuss changes. Powered by ReviewNB.