I was also curious about this and ran the following code:
using JuMP, Gurobi
m = Model(solver=GurobiSolver())
@variable(m, x[1:4]>=0)
@objective(m, Min, x[1] + x[2])
@constraint(m, const1, x[1] + 2x[2] + x[3] == 4)
@constraint(m, const2, x[2] + x[4] == 1)
solve(m)
@show getvalue(x)
cbasis, rbasis = MathProgBase.getbasis(internalmodel(m))
@show cbasis
@show rbasis
The results are:
getvalue(x) = [0.0,0.0,4.0,1.0]
4-element Array{Float64,1}:
0.0
0.0
4.0
1.0
cbasis = Symbol[:NonbasicAtLower,:NonbasicAtLower,:Basic,:Basic]
4-element Array{Symbol,1}:
:NonbasicAtLower
:NonbasicAtLower
:Basic
:Basic
rbasis = Symbol[:NonbasicAtLower,:NonbasicAtLower]
2-element Array{Symbol,1}:
:NonbasicAtLower
:NonbasicAtLower
From cbasis
, I can tell x[3]
and x[4]
are basic variables.