Boscia.jl icon indicating copy to clipboard operation
Boscia.jl copied to clipboard

DRAFT: Implement reoptimization.

Open dhendryc opened this issue 3 years ago • 1 comments

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.

dhendryc avatar Oct 18 '22 12:10 dhendryc

[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

dhendryc avatar Oct 18 '22 12:10 dhendryc