I get an error about a missing shadow price when I try to use SCIP to solve a simle LP in JuMP. I don’t get the error if I use HiGHS or COPT. I use Julia v1.9.1 and the following packages:

pkg> status

Status `~/.julia/environments/v1.9/Project.toml`

[227a2e2d] COPT v1.1.1

[87dc4568] HiGHS v1.5.2

[4138dd39] JLD v0.13.3

[4076af6c] JuMP v1.12.0

[82193955] SCIP v0.11.13

The source code is:

using JuMP

using SCIP

model = Model(SCIP.Optimizer)

@variable(model, x >= 0)

@variable(model, 0 <= y <= 3)

@objective(model, Min, 12x + 20y)

@constraint(model, c1, 6x + 8y >= 100)

@constraint(model, c2, 7x + 12y >= 120)

print(model)

optimize!(model)

@show termination_status(model)

@show primal_status(model)

@show dual_status(model)

@show objective_value(model)

@show value(x)

@show value(y)

@show shadow_price(c1)

@show shadow_price(c2)

$ julia Wotan.jl

Min 12 x + 20 y

Subject to

c1 : 6 x + 8 y ≥ 100

c2 : 7 x + 12 y ≥ 120

x ≥ 0

y ≥ 0

y ≤ 3

feasible solution found by trivial heuristic after 0.0 seconds, objective value 1.200060e+06

presolving:

(round 1, fast) 0 del vars, 0 del conss, 0 add conss, 2 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs

(round 2, fast) 0 del vars, 0 del conss, 0 add conss, 3 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs

(0.0s) running MILP presolver

(0.0s) MILP presolver found nothing

(0.0s) symmetry computation started: requiring (bin +, int +, cont +), (fixed: bin -, int -, cont -)

(0.0s) no symmetry present

presolving (3 rounds: 3 fast, 1 medium, 1 exhaustive):

0 deleted vars, 0 deleted constraints, 0 added constraints, 3 tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients

0 implications, 0 cliques

presolved problem has 2 variables (0 bin, 0 int, 0 impl, 2 cont) and 2 constraints

2 constraints of type

Presolving Time: 0.00

time | node | left |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr| dualbound | primalbound | gap | compl.

t 0.0s| 1 | 0 | 0 | - | trivial| 0 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 1.520000e+02 | 2.657143e+02 | 74.81%| unknown

- 0.0s| 1 | 0 | 2 | - | LP | 0 | 2 | 2 | 2 | 0 | 0 | 0 | 0 | 2.050000e+02 | 2.050000e+02 | 0.00%| unknown

0.0s| 1 | 0 | 2 | - | 578k | 0 | 2 | 2 | 2 | 0 | 0 | 0 | 0 | 2.050000e+02 | 2.050000e+02 | 0.00%| unknown

SCIP Status : problem is solved [optimal solution found]

Solving Time (sec) : 0.00

Solving Nodes : 1

Primal Bound : +2.05000000000000e+02 (3 solutions)

Dual Bound : +2.05000000000000e+02

Gap : 0.00 %

termination_status(model) = MathOptInterface.OPTIMAL

primal_status(model) = MathOptInterface.FEASIBLE_POINT

dual_status(model) = MathOptInterface.NO_SOLUTION

objective_value(model) = 205.0

value(x) = 14.999999999999993

value(y) = 1.2500000000000047

ERROR: LoadError: The shadow price is not available because no dual result is available.

Stacktrace:

[1] error(s::String)

@ Base ./error.jl:35

[2] shadow_price(con_ref::ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.GreaterThan{Float64}}, ScalarShape})

@ JuMP ~/.julia/packages/JuMP/H2SWp/src/constraints.jl:1149

[3] top-level scope

@ show.jl:1128

in expression starting at /home/stuart/julia_code/Wotan/Wotan.jl:24