odow / SDDP.jl

A JuMP extension for Stochastic Dual Dynamic Programming
https://sddp.dev
Other
304 stars 62 forks source link

Fix initial state in MSPFormat reader #639

Closed odow closed 1 year ago

odow commented 1 year ago

@bonnkleiford: I haven't tested, but here's a fix for you initial_value error.

bonnkleiford commented 1 year ago

Hello,

So I tried it and I got a different error message this time:

Screenshot 2023-07-09 at 16 58 01

Thanks

odow commented 1 year ago

I should have tested :)

On Sun, 9 Jul 2023, 7:59 am Bikey Seranilla, @.***> wrote:

Hello,

So I tried it and I got a different error message this time: [image: Screenshot 2023-07-09 at 16 58 01] https://user-images.githubusercontent.com/37835698/252152745-66488019-4048-44ad-b998-4c001264334f.png

Thanks

— Reply to this email directly, view it on GitHub https://github.com/odow/SDDP.jl/pull/639#issuecomment-1627739046, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB6MQJIU6HIMCZFWCZ25NX3XPLBMTANCNFSM6AAAAAA2DRPFYU . You are receiving this because you authored the thread.Message ID: @.***>

odow commented 1 year ago

Try now

bonnkleiford commented 1 year ago

Hi,

I tried it and now a new one:

Screenshot 2023-07-09 at 18 00 57
odow commented 1 year ago

Actually wait. Let me test this properly

odow commented 1 year ago

I'm not really sure what the problem is. I need to debug some more, but I won't be online today

bonnkleiford commented 1 year ago

No worries, Oscar. Thanks for the help. I will just wait when you're back. :)

odow commented 1 year ago

try now

julia> using SDDP

julia> model = SDDP.MSPFormat.read_from_file("/Users/Oscar/Downloads/Hydro_Simple/Hydro_Simple")
A policy graph with 12 nodes.
 Node indices: 4, ..., 3

julia> import HiGHS

julia> set_optimizer(model, HiGHS.Optimizer)

julia> SDDP.train(model; iteration_limit = 3)
-------------------------------------------------------------------
         SDDP.jl (c) Oscar Dowson and contributors, 2017-23
-------------------------------------------------------------------
problem
  nodes           : 12
  state variables : 1
  scenarios       : 8.10000e+01
  existing cuts   : false
options
  solver          : serial mode
  risk measure    : SDDP.Expectation()
  sampling scheme : SDDP.InSampleMonteCarlo
subproblem structure
  VariableRef                             : [6, 6]
  AffExpr in MOI.EqualTo{Float64}         : [2, 2]
  VariableRef in MOI.GreaterThan{Float64} : [5, 5]
  VariableRef in MOI.LessThan{Float64}    : [1, 2]
numerical stability report
  matrix range     [1e+00, 1e+00]
  objective range  [1e+00, 2e+02]
  bounds range     [2e+02, 1e+06]
  rhs range        [5e+01, 2e+02]
-------------------------------------------------------------------
 iteration    simulation      bound        time (s)     solves  pid
-------------------------------------------------------------------
         1   1.500000e+04 -2.500000e+03  7.572103e+00        16   1
         2   1.750000e+04  6.666667e+03  8.615028e+00       356   1
         3   7.500000e+03  7.916667e+03  8.632101e+00       372   1
-------------------------------------------------------------------
status         : iteration_limit
total time (s) : 8.632101e+00
total solves   : 372
best bound     :  7.916667e+03
simulation ci  :  1.333333e+04 ± 5.889067e+03
numeric issues : 0
-------------------------------------------------------------------
odow commented 1 year ago

Merging since this seems okay from my end. Hard to tell without other examples.

bonnkleiford commented 1 year ago

Hi Oscar,

My apologies for the later reply. I was travelling to Davis for the conference and missed the emails.

I confirm that it worked with the last error I encountered. I will be trying all the rest of the other synthetic problems with it the coming days. Will keep you updated.

Thanks again!