# Strange Result from GurobiPy

I am trying to understand why GurobiPy gives me a strange result for a simple linear programming model coded as below? Why is the optimality gap is 0%? Please let me know if you spot any errors in the code. Thanks.

m = gp.Model('mip1')
x = m.addVar(vtype = GRB.BINARY, name = 'x')
y = m.addVar(vtype = GRB.BINARY, name = 'y')
m.setObjective(2 * x + 1.5 * y, GRB.MAXIMIZE)
m.addConstr(x + 0.5 * y <= 100, 'c0')
m.addConstr(0.03 * x + 0.02 * y <= 100, 'c1')
m.optimize()
m.getVars()

Gurobi Optimizer version 9.1.1 build v9.1.1rc0 (win64)
Thread count: 2 physical cores, 4 logical processors, using up to 4 threads
Optimize a model with 2 rows, 2 columns and 4 nonzeros
Model fingerprint: 0xd53be4d9
Variable types: 0 continuous, 2 integer (2 binary)
Coefficient statistics:
Matrix range     [2e-02, 1e+00]
Objective range  [2e+00, 2e+00]
Bounds range     [1e+00, 1e+00]
RHS range        [1e+02, 1e+02]
Found heuristic solution: objective 3.5000000

Explored 0 nodes (0 simplex iterations) in 0.01 seconds
Thread count was 1 (of 4 available processors)

Solution count 1: 3.5

Optimal solution found (tolerance 1.00e-04)
Best objective 3.500000000000e+00, best bound 3.500000000000e+00, gap 0.0000%

m.getVars()
Out[13]: [<gurobi.Var x (value 1.0)>, <gurobi.Var y (value 1.0)>]

• You declared binary variables and the constraint look like they are not meant for binary variables. Mar 28 at 16:47
• It seems perfectly fine to me. You have two binary variables, a maximization objective, and two constraints that will never bind given the small values of the parameters and the large right-hand-side values. The optimality gap is zero because the solution is optimal (gurobi.com/documentation/9.1/refman/mipgap2.html). Which are your doubts? Mar 28 at 17:27
• @Undecided, as user3680510 mentioned, your problem is a bit strange. Are you sure to define the variable type correctly? Mar 28 at 18:56
• As @Libra mentioned your model found the optimal solution of $x=1$ and $y=1$. What is the problem with that? Mar 28 at 19:26
• Sorry my bad. I was thinking x and y as integer (not binary) variables. The result is good. Mar 28 at 22:07