• Gurobi Staff

Hi Rune,

Could you post a minimal working example to make the issue reproducible? In particular, could you please post your $$\texttt{import}$$ statements?

Best regards,
Jaromił

Dear Jaromił

The following code should reproduce the issue with a small example. I included all the import statements I need in the complete code, even though they are not used in this example.

import pandas as pdfrom gurobipy import *import numpy as npimport math#inputsCities = ['ab', 'bc', 'cd', 'de', 'ef']Citizens = [1000, 2000, 800, 1500, 350]Distances = [[0, 18, 20, 5, 37], [27, 0, 3, 19, 26], [16, 2, 0, 39, 24], [22, 4, 15, 0, 17], [36, 14, 7, 8, 0]]#variablesDistanceToClosestDC = {}WeightCoefficients = {}DC = {}DistanceHelpDC = {}RK = Model("RK")# Create variablesfor i in range(0, len(Cities)):    DC[i] = RK.addVar(vtype=GRB.BINARY, name="DC"+str(i))    DistanceToClosestDC[i] = RK.addVar(vtype=GRB.CONTINUOUS, name="DistanceToClosestDC"+str(i))    WeightCoefficients[i] = RK.addVar(vtype=GRB.CONTINUOUS, name="WeightCoefficients"+str(i))    for j in range(0, len(Cities)):        DistanceHelpDC[i,j] = RK.addVar(vtype=GRB.CONTINUOUS, name="DistanceHelpDC"+str(i)+"."+str(j))# Set objectiveRK.setObjective(quicksum(DC[i]*Citizens[i] + (1-DC[i])*WeightCoefficients[i]*Citizens[i] for i in range(0, len(Cities))), GRB.MAXIMIZE)# ConstraintsRK.addConstr(quicksum(DC[i] for i in range(0, len(Cities))) == 1, "c1")for i in range(0, len(Cities)):    for j in range(0, len(Cities)):        RK.addConstr(DistanceHelpDC[i,j] == (1-DC[j])*1000 + DC[j]*Distances[i][j], "c2."+str(i)+"."+str(j))    RK.addGenConstrMin(DistanceToClosestDC[i], [DistanceHelpDC[i,j] for j in range(0,len(Cities))], 1000, "c3."+str(i))    RK.addGenConstrPWL(DistanceToClosestDC[i], WeightCoefficients[i], [0, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25, 26], [1, 0.979995816,0.855306584,0.746482118,0.651503874,0.568610134,0.496263335,0.43312154,0.378013558,0.329917209,0.287940374,0.251304437,0.219329855,0.19142354,0.167067871,0.145811082,0.127258888,0.111067173,0.096935602,0.084602054,0.073837758,0.064443051,0.056243675,0,0], "c4."+str(i))# Optimize modelRK.optimize()

Thank you in advance. Let me know if this suffices.

Kind regards,

Rune

• Gurobi Staff

Hi Rune,

When I execute your Python code, I don't get any error. The output is:

Gurobi Optimizer version 9.1.1 build v9.1.1rc0 (mac64)Thread count: 4 physical cores, 8 logical processors, using up to 8 threadsOptimize a model with 26 rows, 40 columns and 55 nonzerosModel fingerprint: 0x7cd2e8c9Model has 5 quadratic objective termsModel has 10 general constraintsVariable types: 35 continuous, 5 integer (5 binary)Coefficient statistics:Matrix range [1e+00, 1e+03]Objective range [4e+02, 2e+03]QObjective range [7e+02, 4e+03]Bounds range [1e+00, 1e+00]RHS range [1e+00, 1e+03]Presolve added 0 rows and 100 columnsPresolve time: 0.01sPresolved: 31 rows, 145 columns, 440 nonzerosPresolved model has 5 SOS constraint(s)Variable types: 140 continuous, 5 integer (5 binary)Root relaxation: objective 5.650000e+03, 23 iterations, 0.00 secondsNodes | Current Node | Objective Bounds | WorkExpl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time0 0 5650.00000 0 10 - 5650.00000 - - 0sH 0 0 4386.2280163 5650.00000 28.8% - 0s0 0 5514.11595 0 8 4386.22802 5514.11595 25.7% - 0sCutting planes:Implied bound: 7MIR: 7Flow cover: 4Inf proof: 1RLT: 2Relax-and-lift: 13Explored 1 nodes (69 simplex iterations) in 0.04 secondsThread count was 8 (of 8 available processors)Solution count 1: 4386.23Optimal solution found (tolerance 1.00e-04)Best objective 4.386228016271e+03, best bound 4.386228016271e+03, gap 0.0000%

How did you install Gurobi? What is your operating system? Are you using any specific setup on your machine?

Best regards,
Jaromił

Dear Jaromił

I installed Gurobi via the Download Center of Gurobi (https://www.gurobi.com/downloads/). This should have worked, as I get the following results on the command-line tool:

I'm using Windows 10 on my laptop.

More details (since I have no clue what the problem could be):

* I have an academic license that might not allow me to use all Gurobi tools?

* I code in the Spyder environment (version 4.1.5) with Python version 3.6.9

Kind regards,

Rune

• Gurobi Staff

Dear Rune,

The academic license provides you access to all features of the Gurobi package. The code also works in a Spyder environment. Could you post the whole error output for the code snippet you provided?

Could you also try printing the Gurobi version used by Spyder via

print(gurobi.version())

Best regards,
Jaromił

Dear Jaromił

The Gurobi version used was Gurobi 9.1.1.

I re-installed Anaconda and Gurobi and now it seems to work. I still have no idea why it didn't work before.

Thanks for your responses. It showed me that the error was not in the code but in the installation.

Kind regards,

Rune