FAST: the quickstart problem

This tutorial was generated using Literate.jl. Download the source as a .jl file. Download the source as a .ipynb file.

An implementation of the QuickStart example from FAST

using SDDP, HiGHS, Testfunction fast_quickstart()    model = SDDP.PolicyGraph(        SDDP.LinearGraph(2);        lower_bound = -5,        optimizer = HiGHS.Optimizer,    ) do sp, t        @variable(sp, x >= 0, SDDP.State, initial_value = 0.0)        if t == 1            @stageobjective(sp, x.out)        else            @variable(sp, s >= 0)            @constraint(sp, s <= x.in)            SDDP.parameterize(sp, [2, 3]) do ω                set_upper_bound(s, ω)                return            end            @stageobjective(sp, -2s)        end    end    det = SDDP.deterministic_equivalent(model, HiGHS.Optimizer)    set_silent(det)    optimize!(det)    @test objective_value(det) == -2    SDDP.train(model; log_every_iteration = true)    @test SDDP.calculate_bound(model) == -2endfast_quickstart()
Test Passed