Boscia.jl
Boscia.jl copied to clipboard
DRAFT: Implement reoptimization.
Use SCIP reoptimization option at the root node.
This should be tested first in SCIP itself. There are problems with setting this parameter on our end.
[cons.c:2399] ERROR: constraint handler <benderslp> already initialized
[set.c:5214] ERROR: Error <-8> in function call
[scip_solve.c:2396] ERROR: Error <-8> in function call
[scip_solve.c:2745] ERROR: Error <-8> in function call
Interface - norm hyperbox: Error During Test at /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/test/interface_test.jl:15
Got exception outside of a @test
SCIPsolve(o) yielded SCIP code SCIP_INVALIDCALL
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:33
[2] macro expansion
@ /scratch/opt/dhendryc/.julia/packages/SCIP/3SJle/src/wrapper.jl:14 [inlined]
[3] optimize!(o::SCIP.Optimizer)
@ SCIP /scratch/opt/dhendryc/.julia/packages/SCIP/3SJle/src/MOI_wrapper.jl:263
[4] optimize!
@ /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/src/time_tracking_lmo.jl:44 [inlined]
[5] check_feasibility
@ /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/src/utilities.jl:25 [inlined]
[6] evaluate_node!(tree::Bonobo.BnBTree{Boscia.FrankWolfeNode{FrankWolfe.ActiveSet{Vector{Float64}, Float64, Vector{Float64}}, FrankWolfe.DeletedVertexStorage{Vector{Float64}}, Boscia.IntegerBounds}, NamedTuple{(:problem, :current_node_id, :updated_incumbent, :options), Tuple{Boscia.SimpleOptimizationProblem{var"#f#1", var"#grad!#2", Boscia.TimeTrackingLMO{FrankWolfe.MathOptLMO{SCIP.Optimizer}}, Boscia.IntegerBounds}, Base.RefValue{Int64}, Base.RefValue{Bool}, Dict{Symbol, Any}}}, Vector{Float64}, Boscia.FrankWolfeSolution{Boscia.FrankWolfeNode{FrankWolfe.ActiveSet{Vector{Float64}, Float64, Vector{Float64}}, FrankWolfe.DeletedVertexStorage{Vector{Float64}}, Boscia.IntegerBounds}, Vector{Float64}}}, node::Boscia.FrankWolfeNode{FrankWolfe.ActiveSet{Vector{Float64}, Float64, Vector{Float64}}, FrankWolfe.DeletedVertexStorage{Vector{Float64}}, Boscia.IntegerBounds})
@ Boscia /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/src/node.jl:119
[7] optimize!(tree::Bonobo.BnBTree{Boscia.FrankWolfeNode{FrankWolfe.ActiveSet{Vector{Float64}, Float64, Vector{Float64}}, FrankWolfe.DeletedVertexStorage{Vector{Float64}}, Boscia.IntegerBounds}, NamedTuple{(:problem, :current_node_id, :updated_incumbent, :options), Tuple{Boscia.SimpleOptimizationProblem{var"#f#1", var"#grad!#2", Boscia.TimeTrackingLMO{FrankWolfe.MathOptLMO{SCIP.Optimizer}}, Boscia.IntegerBounds}, Base.RefValue{Int64}, Base.RefValue{Bool}, Dict{Symbol, Any}}}, Vector{Float64}, Boscia.FrankWolfeSolution{Boscia.FrankWolfeNode{FrankWolfe.ActiveSet{Vector{Float64}, Float64, Vector{Float64}}, FrankWolfe.DeletedVertexStorage{Vector{Float64}}, Boscia.IntegerBounds}, Vector{Float64}}}; callback::Boscia.var"#callback#49"{Boscia.var"#callback#46#50"{DateTime, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Int64}, Vector{Int64}, Bool, Vector{Int64}, Vector{Int64}, Vector{Int64}, Dict{Symbol, Any}, Vector{Vector{Int64}}, Vector{Vector{Int64}}, Vector{Vector{Int64}}, Vector{Int64}, Int64}})
@ Boscia /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/src/custom_bonobo.jl:36
[8] solve(f::var"#f#1", grad!::var"#grad!#2", lmo::FrankWolfe.MathOptLMO{SCIP.Optimizer}; traverse_strategy::Bonobo.BFS, branching_strategy::Bonobo.MOST_INFEASIBLE, fw_epsilon::Float64, verbose::Bool, dual_gap::Float64, rel_dual_gap::Float64, time_limit::Float64, print_iter::Int64, dual_gap_decay_factor::Float64, max_fw_iter::Int64, min_number_lower::Float64, min_node_fw_epsilon::Float64, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Boscia /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/src/interface.jl:178
[9] macro expansion
@ /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/test/interface_test.jl:35 [inlined]
[10] macro expansion
@ /scratch/opt/dhendryc/julia-1.7.3/share/julia/stdlib/v1.7/Test/src/Test.jl:1283 [inlined]
[11] top-level scope
@ /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/test/interface_test.jl:16
[12] include(fname::String)
@ Base.MainInclude ./client.jl:451
[13] top-level scope
@ /scratch/opt/dhendryc/research_projects/BranchWolfe.jl/test/runtests.jl:18
[14] include(fname::String)
@ Base.MainInclude ./client.jl:451
[15] top-level scope
@ none:6
[16] eval
@ ./boot.jl:373 [inlined]
[17] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:268
[18] _start()
@ Base ./client.jl:495