Hi,
I'm calling KNITRO inside a for loop to implement a rolling horizon optimal control problem. The problem is that after the 2nd call the solver seems to poison itself or something like that.
My MWE draft is something like this:
using InfiniteOpt, JuMP, KNITRO
function solvePolicies(optimizer, # model optimizer
sets::modelSettings, # number of EVs, discrete time supports, etc.
data::Dict, # information for the model (mainly parameters), these are the devices (EV, BESS, PV, etc.), the costs (interests, capex, etc) and the revenues
)
# Sets
tend=sets.dTime[end]
t0=sets.dTime[1]; # initial time, can´t divide by 0
model = InfiniteModel(optimizer) # create model
# set_silent(model)
# Optimizer attributes
# if the optimizer is KNITRO
if optimizer == KNITRO.Optimizer
# KNITRO attributes
# set_optimizer_attribute(model, "tuner", 1) # set attributes
set_optimizer_attribute(model, "mip_multistart", 1) # set attributes
set_optimizer_attribute(model, "mip_method", 1) # test SQP
end
# define cont t
@infinite_parameter(model, t in [t0, tend], supports = collect(sets.dTime), derivative_method = FiniteDifference(Forward(),true))
# Add variables, constraints, obj
model = build_model(model, sets, data);
# Solve model
optimize!(model)
return model;
end;
function getResults(model)
x = all_variables(model)
xdf=DataFrame(
name = name.(x),
value = value.(x),
)
idx=findall(x->x=="",name.(x)) # find point variables
delete!(xdf, idx) # delete point variables
xdict=Dict{Any,Any}(Pair.(xdf.name, xdf.value))
merge!(xdict,Dict("t"=>supports(model[:t]), "γ_cont"=>value.(model[:γ_cont])))
return xdict
end
function rollingHorizon(W, # weights
Tw, # time window [days]
steps, # number of steps to move the window
Δt) # time length of each step [hr]
# Build the data dictionary
data=buildDict();
# Initialize
tend = 24*Tw; # [hr]
Dt=0:Δt:tend; Dt=Dt*3600; # time array in seconds
s=modelSettings(nEV=1:2, dTime=collect(Dt), costWeights=W);
results=Vector{Dict}(undef, steps); # allocate memory
for ts in 1:steps
# build+solve model
model=solvePolicies(KNITRO.Optimizer, s, data);
# Print solution summary
# solution_summary(optimizer_model(model))
results[ts]=getResults(model);
model=InfiniteModel();
# update data, which contains the initial conditions
data=update_measurements(results[ts], s, data);
# move time window
Dt = Dt .+ Δt*3600.0;
# update_forecasts.(data, Dt)
s.dTime=collect(Dt);
end
return results, data, s
end
Wgrid = 1;
Wloss = 2;
W=[Wgrid 1000 Wloss];
results, data, s=rollingHorizon(W, 1, 4, 1/4);
and the error stacktrace that I get is
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
departure time= [8.0; 7.0;;]
arrival time= [13.0; 15.0;;]
day= 1
t0=0.0 Δt=900.0
Final index 97
=======================================
Academic License
(NOT FOR COMMERCIAL USE)
Artelys Knitro 13.2.0
=======================================
MINLP solver shifted start point to satisfy bounds (388 variables).
WARNING: Problem appears to have nonlinear equalities and be non-convex.
The Knitro mixed integer solver is designed for convex problems.
For non-convex problems it is only a heuristic, and the reported
bounds and optimality claims cannot be verified.
datacheck: 0
hessian_no_f: 1
numthreads: 1
mip_method: 1
mip_multistart 1
mip_numthreads: 1
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 1.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_pseudoinit from AUTO to 1.
Problem Characteristics
-----------------------
Objective goal: Minimize
Objective type: linear
Number of variables: 5335
bounded below only: 485
bounded above only: 485
bounded below and above: 1843
fixed: 0
free: 2522
Number of binary variables: 485
Number of integer variables: 0
Number of constraints: 4965
linear equalities: 3122
quadratic equalities: 0
gen. nonlinear equalities: 873
linear one-sided inequalities: 970
quadratic one-sided inequalities: 0
gen. nonlinear one-sided inequalities: 0
linear two-sided inequalities: 0
quadratic two-sided inequalities: 0
gen. nonlinear two-sided inequalities: 0
Number of nonzeros in Jacobian: 13130
Number of nonzeros in Hessian: 2328
Knitro detected 0 GUB constraints
Knitro derived 0 knapsack covers after examining 970 constraints
Knitro using Branch and Bound method with 1 thread.
Nodes Best solution Best bound Gap Time
Expl | Unexpl value value (secs)
--------------- ------------- ---------- --- ------
0 0 -inf 0.822
1 2 3.49307e-07 2.361
1 2 3.72763e-07 FP 3.49307e-07 0.00% 15.081
EXIT: Optimal solution found (assuming convexity).
Final Statistics for MIP
------------------------
Final objective value = 3.72762588653301e-07
Final bound value = 3.49307186804510e-07
Final optimality gap (abs / rel) = 2.35e-08 / 2.35e-08 (0.00%)
# of root cutting plane rounds = 0
# of restarts = 0
# of nodes processed = 1 (1.534s)
# of strong branching evaluations = 0 (0.000s)
# of function evaluations = 1353 (1.443s)
# of gradient evaluations = 805 (0.898s)
# of hessian evaluations = 844 (3.086s)
# of hessian-vector evaluations = 0
# of subproblems processed = 6 (14.247s)
Total program time (secs) = 15.081 (14.859 CPU time)
Time spent in evaluations (secs) = 5.427
Cuts statistics (gen / add)
---------------------------
Knapsack cuts = 0 / 0
Mixed-integer rounding cuts = 0 / 0
Heuristics statistics (calls / successes / time)
------------------------------------------------
Feasibility pump = 1 / 1 / 12.715s
Rounding heuristic = 0 / 0 / 0.002s
MPEC heuristic = 0 / 0 / 0.000s
===========================================================================
departure time= [8.0; 7.0;;]
arrival time= [13.0; 15.0;;]
day= 1
t0=900.0 Δt=900.0
Final index 98
=======================================
Academic License
(NOT FOR COMMERCIAL USE)
Artelys Knitro 13.2.0
=======================================
MINLP solver shifted start point to satisfy bounds (485 variables).
WARNING: Problem appears to have nonlinear equalities and be non-convex.
The Knitro mixed integer solver is designed for convex problems.
For non-convex problems it is only a heuristic, and the reported
bounds and optimality claims cannot be verified.
datacheck: 0
hessian_no_f: 1
numthreads: 1
mip_method: 1
mip_multistart 1
mip_numthreads: 1
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 1.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_pseudoinit from AUTO to 1.
Problem Characteristics
-----------------------
Objective goal: Minimize
Objective type: linear
Number of variables: 5335
bounded below only: 485
bounded above only: 485
bounded below and above: 1843
fixed: 0
free: 2522
Number of binary variables: 485
Number of integer variables: 0
Number of constraints: 4965
linear equalities: 3122
quadratic equalities: 0
gen. nonlinear equalities: 873
linear one-sided inequalities: 970
quadratic one-sided inequalities: 0
gen. nonlinear one-sided inequalities: 0
linear two-sided inequalities: 0
quadratic two-sided inequalities: 0
gen. nonlinear two-sided inequalities: 0
Number of nonzeros in Jacobian: 13130
Number of nonzeros in Hessian: 2328
Knitro detected 0 GUB constraints
Knitro derived 0 knapsack covers after examining 970 constraints
Knitro using Branch and Bound method with 1 thread.
Nodes Best solution Best bound Gap Time
Expl | Unexpl value value (secs)
--------------- ------------- ---------- --- ------
0 0 -inf 0.010
1 2 3.22270e-07 0.806
1 2 2.79891e-07 FP 3.22270e-07 -0.00% 1.445
EXIT: Optimal solution found (assuming convexity).
Final Statistics for MIP
------------------------
Final objective value = 2.79890780414217e-07
Final bound value = 3.22269905281477e-07
Final optimality gap (abs / rel) = -4.24e-08 / -4.24e-08 (-0.00%)
# of root cutting plane rounds = 0
# of restarts = 0
# of nodes processed = 1 (0.790s)
# of strong branching evaluations = 0 (0.000s)
# of function evaluations = 253 (0.253s)
# of gradient evaluations = 79 (0.093s)
# of hessian evaluations = 77 (0.187s)
# of hessian-vector evaluations = 0
# of subproblems processed = 2 (1.422s)
Total program time (secs) = 1.445 (1.375 CPU time)
Time spent in evaluations (secs) = 0.533
Cuts statistics (gen / add)
---------------------------
Knapsack cuts = 0 / 0
Mixed-integer rounding cuts = 0 / 0
Heuristics statistics (calls / successes / time)
------------------------------------------------
Feasibility pump = 1 / 1 / 0.636s
Rounding heuristic = 0 / 0 / 0.001s
MPEC heuristic = 0 / 0 / 0.000s
===========================================================================
departure time= [8.0; 7.0;;]
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
arrival time= [13.0; 15.0;;]
day= 1
t0=1800.0 Δt=900.0
Final index
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
99
=======================================
Academic License
(NOT FOR COMMERCIAL USE)
Artelys Knitro 13.2.0
=======================================
MINLP solver shifted start point to satisfy bounds (388 variables).
WARNING: Problem appears to have nonlinear equalities and be non-convex.
The Knitro mixed integer solver is designed for convex problems.
For non-convex problems it is only a heuristic, and the reported
bounds and optimality claims cannot be verified.
datacheck: 0
hessian_no_f: 1
numthreads: 1
mip_method: 1
mip_multistart 1
mip_numthreads: 1
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 1.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_pseudoinit from AUTO to 1.
Problem Characteristics
-----------------------
Objective goal: Minimize
Objective type: linear
Number of variables: 5335
bounded below only: 485
bounded above only: 485
bounded below and above: 1843
fixed: 0
free: 2522
Number of binary variables: 485
Number of integer variables: 0
Number of constraints: 4965
linear equalities: 3122
quadratic equalities: 0
gen. nonlinear equalities: 873
linear one-sided inequalities: 970
quadratic one-sided inequalities: 0
gen. nonlinear one-sided inequalities: 0
linear two-sided inequalities: 0
quadratic two-sided inequalities: 0
gen. nonlinear two-sided inequalities: 0
Number of nonzeros in Jacobian: 13130
Number of nonzeros in Hessian: 2328
Knitro detected 0 GUB constraints
Knitro derived 0 knapsack covers after examining 970 constraints
Knitro using Branch and Bound method with 1 thread.
Nodes Best solution Best bound Gap Time
Expl | Unexpl value value (secs)
--------------- ------------- ---------- --- ------
0 0 -inf 0.013
1 0 inf 1.194
EXIT: Problem appears to be infeasible.
Final Statistics for MIP
------------------------
Final objective value =
Final bound value = 1.79769313486232e+308
Final optimality gap (abs / rel) = Infinity
# of root cutting plane rounds = 0
# of restarts = 0
# of nodes processed = 1 (1.175s)
# of strong branching evaluations = 0 (0.000s)
# of function evaluations = 98 (0.110s)
# of gradient evaluations = 71 (0.087s)
# of hessian evaluations = 70 (0.149s)
# of hessian-vector evaluations = 0
# of subproblems processed = 1 (1.175s)
Total program time (secs) = 1.194 (1.141 CPU time)
Time spent in evaluations (secs) = 0.346
Cuts statistics (gen / add)
---------------------------
Knapsack cuts = 0 / 0
Mixed-integer rounding cuts = 0 / 0
Heuristics statistics (calls / successes / time)
------------------------------------------------
Feasibility pump = 0 / 0 / 0.000s
Rounding heuristic = 0 / 0 / 0.000s
MPEC heuristic = 0 / 0 / 0.000s
===========================================================================
departure time= [8.0; 7.0;;]
arrival time= [13.0; 15.0;;]
day= 1
t0=2700.0 Δt=900.0
Final index 100
=======================================
Academic License
(NOT FOR COMMERCIAL USE)
Artelys Knitro 13.2.0
=======================================
MINLP solver shifted start point to satisfy bounds (388 variables).
WARNING: Problem appears to have nonlinear equalities and be non-convex.
The Knitro mixed integer solver is designed for convex problems.
For non-convex problems it is only a heuristic, and the reported
bounds and optimality claims cannot be verified.
datacheck: 0
hessian_no_f: 1
numthreads: 1
mip_method: 1
mip_multistart 1
mip_numthreads: 1
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 1.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_pseudoinit from AUTO to 1.
Problem Characteristics
-----------------------
Objective goal: Minimize
Objective type: linear
Number of variables: 5335
bounded below only: 485
bounded above only: 485
bounded below and above: 1843
fixed: 0
free: 2522
Number of binary variables: 485
Number of integer variables: 0
Number of constraints: 4965
linear equalities: 3122
quadratic equalities: 0
gen. nonlinear equalities: 873
linear one-sided inequalities: 970
quadratic one-sided inequalities: 0
gen. nonlinear one-sided inequalities: 0
linear two-sided inequalities: 0
quadratic two-sided inequalities: 0
gen. nonlinear two-sided inequalities: 0
Number of nonzeros in Jacobian: 13130
Number of nonzeros in Hessian: 2328
Knitro detected 0 GUB constraints
Knitro derived 0 knapsack covers after examining 970 constraints
Knitro using Branch and Bound method with 1 thread.
Nodes Best solution Best bound Gap Time
Expl | Unexpl value value (secs)
--------------- ------------- ---------- --- ------
0 0 -inf 0.009
1 0 inf 0.013
EXIT: Problem appears to be infeasible.
Final Statistics for MIP
------------------------
Final objective value =
Final bound value = 1.79769313486232e+308
Final optimality gap (abs / rel) = Infinity
# of root cutting plane rounds = 0
# of restarts = 0
# of nodes processed = 1 (0.000s)
# of strong branching evaluations = 0 (0.000s)
# of function evaluations = 1 (0.000s)
# of gradient evaluations = 1 (0.001s)
# of hessian evaluations = 0 (0.000s)
# of hessian-vector evaluations = 0
# of subproblems processed = 1 (0.000s)
Total program time (secs) = 0.013 (0.016 CPU time)
Time spent in evaluations (secs) = 0.001
Cuts statistics (gen / add)
---------------------------
Knapsack cuts = 0 / 0
Mixed-integer rounding cuts = 0 / 0
Heuristics statistics (calls / successes / time)
------------------------------------------------
Feasibility pump = 0 / 0 / 0.000s
Rounding heuristic = 0 / 0 / 0.000s
MPEC heuristic = 0 / 0 / 0.000s
===========================================================================
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec 6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z-- getaddrinfo() returned 131.zzz.xxx.yyy
--Z-- DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z-- connect successful
--Z-- sending request to floating license server
--Z-- reply contains 40 bytes
Hi, I'm calling
KNITRO
inside afor
loop to implement a rolling horizon optimal control problem. The problem is that after the 2nd call the solver seems to poison itself or something like that. My MWE draft is something like this:and the error stacktrace that I get is