Using juniper with ipopt and cbc in julia.1.6

Subject to
 maximumqty == 111371.4
 x[1,1,1,1,1] + x[2,1,1,1,1] + x[3,1,1,1,1] + x[4,1,1,1,1] + x[5,1,1,1,1] + x[1,1,1,1,2] + x[2,1,1,1,2] + x[3,1,1,1,2] + x[4,1,1,1,2] + x[5,1,1,1,2] - MaxWt == 0.0
 x[1,1,1,1,1] - 56014.5 B[1,1,1,1,1] >= -56014.5
 x[2,1,1,1,1] - 79837.5 B[2,1,1,1,1] >= -79837.5
 x[3,1,1,1,1] - 79807.5 B[3,1,1,1,1] >= -79807.5
 x[4,1,1,1,1] - 79836 B[4,1,1,1,1] >= -79836.0
 x[5,1,1,1,1] - 81765 B[5,1,1,1,1] >= -81765.0
 x[1,1,1,1,2] - 56014.5 B[1,1,1,1,2] >= -56014.5
 x[2,1,1,1,2] - 79837.5 B[2,1,1,1,2] >= -79837.5
 x[3,1,1,1,2] - 79807.5 B[3,1,1,1,2] >= -79807.5
 x[4,1,1,1,2] - 79836 B[4,1,1,1,2] >= -79836.0
 x[5,1,1,1,2] - 81765 B[5,1,1,1,2] >= -81765.0
 x[1,1,1,1,1] + x[2,1,1,1,1] + x[3,1,1,1,1] + x[4,1,1,1,1] + x[5,1,1,1,1] + x[1,1,1,1,2] + x[2,1,1,1,2] + x[3,1,1,1,2] + x[4,1,1,1,2] + x[5,1,1,1,2] + Tnk[1,1] + Tnk[1,2] + Tnk[1,3] + Tnk[1,4] + Tnk[1,5] + Tnk[1,6] + Tnk[1,7] + Tnk[1,8] + Tnk[1,9] + Tnk[1,10] + Tnk[1,11] >= 0.0
 -_[1] <= 0.0
 x[1,1,1,1,1] + x[2,1,1,1,1] + x[3,1,1,1,1] + x[4,1,1,1,1] + x[5,1,1,1,1] + x[1,1,1,1,2] + x[2,1,1,1,2] + x[3,1,1,1,2] + x[4,1,1,1,2] + x[5,1,1,1,2] + Tnk[1,1] + Tnk[1,2] + Tnk[1,3] + Tnk[1,4] + Tnk[1,5] + Tnk[1,6] + Tnk[1,7] + Tnk[1,8] + Tnk[1,9] + Tnk[1,10] + Tnk[1,11] <= 212532.40599999996
 -adjcargo2[1,1,1,1,1] + B[1,1,1,1,1] + B[2,1,1,1,1] <= 1.0
 -adjcargo2[2,1,1,1,1] + B[2,1,1,1,1] + B[3,1,1,1,1] <= 1.0
 -adjcargo2[3,1,1,1,1] + B[3,1,1,1,1] + B[4,1,1,1,1] <= 1.0
 -adjcargo2[4,1,1,1,1] + B[4,1,1,1,1] + B[5,1,1,1,1] <= 1.0
 -adjcargo2[1,1,1,1,2] + B[1,1,1,1,2] + B[2,1,1,1,2] <= 1.0
 -adjcargo2[2,1,1,1,2] + B[2,1,1,1,2] + B[3,1,1,1,2] <= 1.0
 -adjcargo2[3,1,1,1,2] + B[3,1,1,1,2] + B[4,1,1,1,2] <= 1.0
 -adjcargo2[4,1,1,1,2] + B[4,1,1,1,2] + B[5,1,1,1,2] <= 1.0
 x[1,1,1,1,1] - 56014.5 B[1,1,1,1,1] <= 0.0
 x[2,1,1,1,1] - 79837.5 B[2,1,1,1,1] <= 0.0
 x[3,1,1,1,1] - 79807.5 B[3,1,1,1,1] <= 0.0
 x[4,1,1,1,1] - 79836 B[4,1,1,1,1] <= 0.0
 x[5,1,1,1,1] - 81765 B[5,1,1,1,1] <= 0.0
 x[1,1,1,1,2] - 56014.5 B[1,1,1,1,2] <= 0.0
 x[2,1,1,1,2] - 79837.5 B[2,1,1,1,2] <= 0.0
 x[3,1,1,1,2] - 79807.5 B[3,1,1,1,2] <= 0.0
 x[4,1,1,1,2] - 79836 B[4,1,1,1,2] <= 0.0
 x[5,1,1,1,2] - 81765 B[5,1,1,1,2] <= 0.0
 x[1,1,1,1,1] <= 0.0
 x[3,1,1,1,1] <= 0.0
 x[5,1,1,1,1] <= 0.0
 x[1,1,1,1,2] <= 0.0
 x[3,1,1,1,2] <= 0.0
 x[5,1,1,1,2] <= 0.0
 -_[71] <= 0.0
 x[1,1,1,1,1] + x[2,1,1,1,1] + x[3,1,1,1,1] + x[4,1,1,1,1] + x[5,1,1,1,1] + x[1,1,1,1,2] + x[2,1,1,1,2] + x[3,1,1,1,2] + x[4,1,1,1,2] + x[5,1,1,1,2] + Tnk[1,1] + Tnk[1,2] + Tnk[1,3] + Tnk[1,4] + Tnk[1,5] + Tnk[1,6] + Tnk[1,7] + Tnk[1,8] + Tnk[1,9] + Tnk[1,10] + Tnk[1,11] <= 212532.40599999996
 _[72] <= 30.0
 _[73] <= 30.0
 _[74] <= 30.0
 _[75] <= 30.0
 _[76] <= 30.0
 _[77] <= 30.0
 PenTank >= 0.0
 x[1,1,1,1,1] >= 0.0
 x[2,1,1,1,1] >= 0.0
 x[3,1,1,1,1] >= 0.0
 x[4,1,1,1,1] >= 0.0
 x[5,1,1,1,1] >= 0.0
 x[1,1,1,1,2] >= 0.0
 x[2,1,1,1,2] >= 0.0
 x[3,1,1,1,2] >= 0.0
 x[4,1,1,1,2] >= 0.0
 x[5,1,1,1,2] >= 0.0
 B[1,1,1,1,1] >= 0.0
 B[2,1,1,1,1] >= 0.0
 B[3,1,1,1,1] >= 0.0
 B[4,1,1,1,1] >= 0.0
 B[5,1,1,1,1] >= 0.0
 B[1,1,1,1,2] >= 0.0
 B[2,1,1,1,2] >= 0.0
 B[3,1,1,1,2] >= 0.0
 B[4,1,1,1,2] >= 0.0
 B[5,1,1,1,2] >= 0.0
 Tnk[1,1] >= 0.0
 Tnk[1,2] >= 0.0
 Tnk[1,3] >= 0.0
 Tnk[1,4] >= 0.0
 Tnk[1,5] >= 0.0
 Tnk[1,6] >= 0.0
 Tnk[1,7] >= 0.0
 Tnk[1,8] >= 0.0
 Tnk[1,9] >= 0.0
 Tnk[1,10] >= 0.0
 Tnk[1,11] >= 0.0
 BWBTnk[1,1] >= 0.0
 BWBTnk[1,2] >= 0.0
 BWBTnk[1,3] >= 0.0
 BWBTnk[1,4] >= 0.0
 BWBTnk[1,5] >= 0.0
 BWBTnk[1,6] >= 0.0
 BWBTnk[1,7] >= 0.0
 BWBTnk[1,8] >= 0.0
 BWBTnk[1,9] >= 0.0
 BWBTnk[1,10] >= 0.0
 BWBTnk[1,11] >= 0.0
 MaxWt >= 0.0
 adjcargo[1,1,1,1,1] >= 0.0
 adjcargo[2,1,1,1,1] >= 0.0
 adjcargo[3,1,1,1,1] >= 0.0
 adjcargo[4,1,1,1,1] >= 0.0
 adjcargo[5,1,1,1,1] >= 0.0
 adjcargo[1,1,1,1,2] >= 0.0
 adjcargo[2,1,1,1,2] >= 0.0
 adjcargo[3,1,1,1,2] >= 0.0
 adjcargo[4,1,1,1,2] >= 0.0
 adjcargo[5,1,1,1,2] >= 0.0
 maximumqty >= 0.0
 x[1,1,1,1,1] <= 37343.0
 x[2,1,1,1,1] <= 53035.0
 x[3,1,1,1,1] <= 53035.0
 x[4,1,1,1,1] <= 53035.0
 x[5,1,1,1,1] <= 53035.0
 x[1,1,1,1,2] <= 37343.0
 x[2,1,1,1,2] <= 53033.0
 x[3,1,1,1,2] <= 53033.0
 x[4,1,1,1,2] <= 53033.0
 x[5,1,1,1,2] <= 53033.0
 B[1,1,1,1,1] <= 1.0
 B[2,1,1,1,1] <= 1.0
 B[3,1,1,1,1] <= 1.0
 B[4,1,1,1,1] <= 1.0
 B[5,1,1,1,1] <= 1.0
 B[1,1,1,1,2] <= 1.0
 B[2,1,1,1,2] <= 1.0
 B[3,1,1,1,2] <= 1.0
 B[4,1,1,1,2] <= 1.0
 B[5,1,1,1,2] <= 1.0
 Tnk[1,1] <= 1056.6725
 Tnk[1,2] <= 13447.18
 Tnk[1,3] <= 13447.18
 Tnk[1,4] <= 19892.277499999997
 Tnk[1,5] <= 19892.277499999997
 Tnk[1,6] <= 19922.6175
 Tnk[1,7] <= 19922.6175
 Tnk[1,8] <= 19901.9125
 Tnk[1,9] <= 19901.9125
 Tnk[1,10] <= 16177.574999999999
 Tnk[1,11] <= 16177.574999999999
 BWBTnk[1,1] <= 1.0
 BWBTnk[1,2] <= 1.0
 BWBTnk[1,3] <= 1.0
 BWBTnk[1,4] <= 1.0
 BWBTnk[1,5] <= 1.0
 BWBTnk[1,6] <= 1.0
 BWBTnk[1,7] <= 1.0
 BWBTnk[1,8] <= 1.0
 BWBTnk[1,9] <= 1.0
 BWBTnk[1,10] <= 1.0
 BWBTnk[1,11] <= 1.0
 adjcargo2[1,1,1,1,1] binary
 adjcargo2[2,1,1,1,1] binary
 adjcargo2[3,1,1,1,1] binary
 adjcargo2[4,1,1,1,1] binary
 adjcargo2[1,1,1,1,2] binary
 adjcargo2[2,1,1,1,2] binary
 adjcargo2[3,1,1,1,2] binary
 adjcargo2[4,1,1,1,2] binary
 B[1,1,1,1,1] binary
 B[2,1,1,1,1] binary
 B[3,1,1,1,1] binary
 B[4,1,1,1,1] binary
 B[5,1,1,1,1] binary
 B[1,1,1,1,2] binary
 B[2,1,1,1,2] binary
 B[3,1,1,1,2] binary
 B[4,1,1,1,2] binary
 B[5,1,1,1,2] binary
 BWBTnk[1,1] binary
 BWBTnk[1,2] binary
 BWBTnk[1,3] binary
 BWBTnk[1,4] binary
 BWBTnk[1,5] binary
 BWBTnk[1,6] binary
 BWBTnk[1,7] binary
 BWBTnk[1,8] binary
 BWBTnk[1,9] binary
 BWBTnk[1,10] binary
 BWBTnk[1,11] binary
With NL expressions
 subexpression[1]: 0.49 * Tnk[1,2] + 0.49 * Tnk[1,3]

┌ Warning: Julia was started with less processors than you defined in your options. Start julia with: `julia -p 1`
└ @ Juniper C:\Users\manojkumar.ram\.julia\packages\Juniper\HEO6p\src\MOI_wrapper\MOI_wrapper.jl:291
the excpetion in WUI Optimizer method errorMathOptInterface.AddConstraintNotAllowed{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.GreaterThan{Float64}}("MatrixOfConstraints does not allow modifications to be made to the model once\n`MOI.Utilities.final_touch` has been called. This is called at the end of\n`MOI.copy_to` and in `MOI.Utilities.attach_optimizer` (which is called by\n`MOI.optimize!` in a `MOI.Utilities.CachingOptimizer`). In order to be able to\napply modifications to this model, you should add a layer\n`MOI.Utilities.CachingOptimizer(MOI.Utilities.Model{Float64}(), model)`\nwhere `model` is the current model. This will automatically empty `model` when\nmodifications are done after `MOI.Utilities.final_touch` is called and copy the\nmodel again in `MOI.Utilities.attach_optimizer`.\n")

Any idea how to resolve this.

Thanks

Hi there,

I didn’t see this post because it wasn’t tagged with JuMP or in the Optimization (Mathematical) section (I’ve moved it there now).

Do you have a reproducible example? Try HiGHS.jl instead of Cbc.

1 Like

Thanks @odow. it is working fine in HiGHS.

1 Like