Skip to content

Commit bb75890

Browse files
committed
change termination status check
1 parent 7d08453 commit bb75890

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

src/simulation.jl

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,38 @@ function compute_single_step_cost(
33
y::Vector{<:Real},
44
yhat::Vector{<:Real},
55
)
6+
# set forecast params as prediction output
67
MOI.set.(model.plan, POI.ParameterValue(), model.plan_forecast_params, yhat)
8+
# optimize plan model
79
optimize!(model.plan)
8-
@assert termination_status(model.plan) == MOI.OPTIMAL "Optimization failed for PLAN model"
10+
# check for solution and fix assess policy vars
11+
try
12+
set_normalized_rhs.(
13+
model.assess[:assess_policy_fix],
14+
value.(plan_policy_vars(model)),
15+
)
16+
catch e
17+
println("Optimization failed for PLAN model.")
18+
throw(e)
19+
end
20+
# fix assess forecast vars on observer values
921
fix.(assess_forecast_vars(model), y; force = true)
22+
# fix assess policy vars on plan solution
1023
set_normalized_rhs.(
1124
model.assess[:assess_policy_fix],
1225
value.(plan_policy_vars(model)),
1326
)
27+
# optimize assess model
1428
optimize!(model.assess)
15-
@assert termination_status(model.assess) == MOI.OPTIMAL "Optimization failed for ASSESS model"
16-
return objective_value(model.assess)
29+
# check for optimization
30+
try
31+
return objective_value(model.assess)
32+
catch e
33+
println("Optimization failed for ASSESS model")
34+
throw(e)
35+
end
36+
# should never get here
37+
return 0
1738
end
1839

1940
"""

0 commit comments

Comments
 (0)