martinbiel / StochasticPrograms.jl

Julia package for formulating and analyzing stochastic recourse models.
MIT License
75 stars 25 forks source link

Conversion failed (MathOptInterface.Utilities.VectorOfConstraints) #28

Closed victorgarciareolid closed 3 years ago

victorgarciareolid commented 3 years ago

Hi all!

I've been trying to run the farmer problem example but it failed (this in Julia 1.5.3). I made a fresh Julia 1.6.1 installation and the exampled failed as well. Furthermore, I run the test and many failed. I attatch you the test summary as well as the the error in common.

I hope it helps :)

Cheers,

Test Summary: | Pass Error Total DecisionVariable | 48 40 88 Deterministic() | 12 10 22 test_all_decision_variables | 1 1 test_decision_custom_index_sets | 1 1 test_decision_fix | 1 1 test_decision_lower_bound | 1 1 test_decision_no_bound | 1 1 test_decision_upper_bound | 1 1 test_variable_bounds_set_get | 1 1 test_variable_integrality_set_get | 1 1 test_variable_is_valid_delete | 1 1 test_variable_starts_set_get | 1 1 test_variables_constrained_on_creation | 12 12 Vertical() | 12 10 22 test_all_decision_variables | 1 1 test_decision_custom_index_sets | 1 1 test_decision_fix | 1 1 test_decision_lower_bound | 1 1 test_decision_no_bound | 1 1 test_decision_upper_bound | 1 1 test_variable_bounds_set_get | 1 1 test_variable_integrality_set_get | 1 1 test_variable_is_valid_delete | 1 1 test_variable_starts_set_get | 1 1 test_variables_constrained_on_creation | 12 12 Horizontal() | 12 10 22 test_all_decision_variables | 1 1 test_decision_custom_index_sets | 1 1 test_decision_fix | 1 1 test_decision_lower_bound | 1 1 test_decision_no_bound | 1 1 test_decision_upper_bound | 1 1 test_variable_bounds_set_get | 1 1 test_variable_integrality_set_get | 1 1 test_variable_is_valid_delete | 1 1 test_variable_starts_set_get | 1 1 test_variables_constrained_on_creation | 12 12 Deterministic() with decision bridges | 12 10 22 test_all_decision_variables | 1 1 test_decision_custom_index_sets | 1 1 test_decision_fix | 1 1 test_decision_lower_bound | 1 1 test_decision_no_bound | 1 1 test_decision_upper_bound | 1 1 test_variable_bounds_set_get | 1 1 test_variable_integrality_set_get | 1 1 test_variable_is_valid_delete | 1 1 test_variable_starts_set_get | 1 1 test_variables_constrained_on_creation | 12 12 ERROR: LoadError: Some tests did not pass: 48 passed, 0 failed, 40 errored, 0 broken.

test_all_decision_variables: Error During Test at /home/victor/.julia/packages/StochasticPrograms/54439/test/decisions/decision_variable.jl:496 Got exception outside of a @test MethodError: Cannot convert an object of type OrderedCollections.OrderedDict{MathOptInterface.ConstraintIndex{SingleDecision, StochasticPrograms.FreeDecision}, Tuple{SingleDecision, StochasticPrograms.FreeDecision}} to an object of type MathOptInterface.Utilities.VectorOfConstraints Closest candidates are: convert(::Type{T}, ::DecisionAffExpr{T}) where T at /home/victor/.julia/packages/StochasticPrograms/54439/src/types/decisions/expressions/affine.jl:71 convert(::Type{T}, ::T) where T at essentials.jl:205 Stacktrace: [1] get!(default::StochasticPrograms.var"#401#402"{DataType, DataType}, h::OrderedCollections.OrderedDict{Tuple{DataType, DataType}, MathOptInterface.Utilities.VectorOfConstraints}, key0::Tuple{DataType, DataType}) @ OrderedCollections ~/.julia/packages/OrderedCollections/cP9uu/src/ordered_dict.jl:365 [2] add_constraint(uf::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.GenericModel{Float64, MathOptInterface.Utilities.ModelFunctionConstraints{Float64}}}, f::SingleDecision, s::StochasticPrograms.FreeDecision) @ StochasticPrograms ~/.julia/packages/StochasticPrograms/54439/src/types/decisions/moi_overrides.jl:167 [3] add_constraint(m::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.GenericModel{Float64, MathOptInterface.Utilities.ModelFunctionConstraints{Float64}}}}, func::SingleDecision, set::StochasticPrograms.FreeDecision) @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/1EYfq/src/Utilities/cachingoptimizer.jl:441 [4] _moi_constrain_decision(backend::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.GenericModel{Float64, MathOptInterface.Utilities.ModelFunctionConstraints{Float64}}}}, index::MathOptInterface.VariableIndex, info::VariableInfo{Float64, Float64, Float64, Float64}, set::StochasticPrograms.SingleDecisionSet{Float64}) @ StochasticPrograms ~/.julia/packages/StochasticPrograms/54439/src/types/decisions/macros.jl:212 [5] add_variable(model::Model, variable::VariableConstrainedOnCreation{StochasticPrograms.SingleDecisionSet{Float64}, ScalarVariable{Float64, Float64, Float64, Float64}}, name::String) @ StochasticPrograms ~/.julia/packages/StochasticPrograms/54439/src/types/decisions/macros.jl:39 [6] macro expansion @ ~/.julia/packages/JuMP/MIPb6/src/macros.jl:111 [inlined] [7] macro expansion @ ~/.julia/packages/StochasticPrograms/54439/src/methods/creation.jl:570 [inlined] [8] #298 @ ~/.julia/packages/StochasticPrograms/54439/test/decisions/decision_variable.jl:466 [inlined] [9] (::Main.TestDecisionVariable.var"#298#302")(model::Model, stage::Nothing) @ Main.TestDecisionVariable ./none:0 [10] generate_proxy!(stochasticprogram::StochasticProgram{2, Tuple{StochasticPrograms.Stage{Nothing}, StochasticPrograms.Stage{Nothing}}, DeterministicEquivalent{2, 1, Tuple{Vector{Scenario{NamedTuple{(:a,), Tuple{Int64}}}}}}}) @ StochasticPrograms ~/.julia/packages/StochasticPrograms/54439/src/methods/generation.jl:84 [11] generate!(stochasticprogram::StochasticProgram{2, Tuple{StochasticPrograms.Stage{Nothing}, StochasticPrograms.Stage{Nothing}}, DeterministicEquivalent{2, 1, Tuple{Vector{Scenario{NamedTuple{(:a,), Tuple{Int64}}}}}}}) @ StochasticPrograms ~/.julia/packages/StochasticPrograms/54439/src/methods/generation.jl:142 [12] test_all_decision_variables(Structure::Tuple{Deterministic, Main.TestDecisionVariable.var"#305#306"}) @ Main.TestDecisionVariable ~/.julia/packages/StochasticPrograms/54439/test/decisions/decision_variable.jl:469 [13] macro expansion @ ~/.julia/packages/StochasticPrograms/54439/test/decisions/decision_variable.jl:497 [inlined] [14] macro expansion @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Test/src/Test.jl:1151 [inlined] [15] macro expansion @ ~/.julia/packages/StochasticPrograms/54439/test/decisions/decision_variable.jl:497 [inlined] [16] macro expansion @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Test/src/Test.jl:1151 [inlined] [17] macro expansion @ ~/.julia/packages/StochasticPrograms/54439/test/decisions/decision_variable.jl:491 [inlined] [18] macro expansion @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Test/src/Test.jl:1151 [inlined] [19] runtests() @ Main.TestDecisionVariable ~/.julia/packages/StochasticPrograms/54439/test/decisions/decision_variable.jl:485 [20] top-level scope @ ~/.julia/packages/StochasticPrograms/54439/test/runtests.jl:13 [21] include(fname::String) @ Base.MainInclude ./client.jl:444 [22] top-level scope @ none:6 [23] eval @ ./boot.jl:360 [inlined] [24] exec_options(opts::Base.JLOptions) @ Base ./client.jl:261 [25] _start() @ Base ./client.jl:485

odow commented 3 years ago

This looks like a problem with the new MOI release.

To fix temporarily until @martinbiel fixes this in StochasticPrograms, do ] add MathOptInterface@0.9.20, then restart Julia.

martinbiel commented 3 years ago

This has been fixed on master: https://github.com/martinbiel/StochasticPrograms.jl/commit/baf67f19b47f4929848dc90167d1ff3d4d3cec12. I will push a new release soon, and until then ] add StochasticPrograms#master also works as a temporary fix :slightly_smiling_face: