Как исправить «неспособность импортировать gurobipy», неопределенную переменную «модель» и неопределенную переменную «GRB» в VSCode & Python? - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь написать код оптимизации для компоновки Boeing 777x с использованием Gurobi в python, и я сталкиваюсь с сообщениями об ошибках с моим кодом. В частности, ошибки в Pylint с импортом gurobipy (pylint (import-error)), неопределенной переменной «Model» (pylint (undefined-variable)) и неопределенной переменной «GRB» (pylint (undefined-variable)).

Я довольно новичок в кодировании и не уверен, что gurobipy или pylint, возможно, загружены не в том месте и не могут быть доступны VSCode. У меня есть gurobi.lic, gurobi.log, папка pylint и мой код (BoeingOptimization.py), все они сохранены в одной папке на моем рабочем столе. Те же самые файлы (папка в случае pylint) также находятся где-то еще в пользовательских файлах. Я думаю, что может быть какая-то проблема с путями, потому что я считаю, что все загружено, но, возможно, в неправильных местах?

# !/usr/bin/python
from gurobipy import *

# Create the model to be used in the terminal
m = Model("777x Optimization")

# Name and Create the variables
x1 = m.addVar(name="First-Class Seat Pitch [in]")
x2 = m.addVar(name="First-Class Seat Width [in]")
x3 = m.addVar(name="First-Class Seat Thickness [in]")
x4 = m.addVar(name="Premium-Economy Seat Pitch [in]")
x5 = m.addVar(name="Premium-Economy Seat Width [in]")
x6 = m.addVar(name="Premium-Economy Seat Thickness [in]")
x7 = m.addVar(name="Number of First-Class Rows")
x8 = m.addVar(name="Number of Premium-Economy Rows")
x9 = m.addVar(name="Number of First-Class Seats Per Row")
x10 = m.addVar(name="Number of Premium-Economy Seats per Row")

# Set objective: f(x1,x2,x3,x4,x5,x6,x7,x8)
obj = x7*x9*(x1+x2+x3) + x8*x10*(x4+x5+x6)
m.setObjective(obj, GRB.MINIMIZE)

# Add constraints
m.addConstr((x7*x1*x2)+(x4*x5*x8) <= 342625, "Area Constraint")
m.addConstr(1512*x8 + 5410*x7 >= 202182, "Ticket Revenue             Constraint")
m.addConstr(0.25*x5 + 0.35*x6 +0.4*x4 >= 18.6975, "Premium-Economy    Comfort Level Constraint")
m.addConstr(0.25*x2 + 0.35*x3 +0.4*x1 >= 29.16, "First-Class Economy Comfort Constraint")
m.addConstr(x8 - 1.4*x7 >= 0 , "Ratio of First Class to Economy Class Seats Constraint")
m.addConstr(x1 >= 57, "Minimum First-Class Pitch Constraint")
m.addConstr(x2 >= 25, "Minimum First-Class Width Constraint")
m.addConstr(x3 >= 3, "Minimum First-Class Thickness Constraint")
m.addConstr(x4 >= 36, "Minimum Premium-Economy Pitch Constraint")
m.addConstr(x5 >= 18.5, "Minimum Premium-Economy Width Constraint")
m.addConstr(x6 >= 1.5, "Minimum Premium-Economy Thickness Constraint")
m.addConstr(x9*x2 <= 233.04, "Seats Per Aisle Constraint First-Class")
m.addConstr(x10*x5 <= 233.04, "Seats Per Aisle Constraint Premium-Economy")
m.optimize()

for v in m.getVars():
    print('%s %g' % (v.varName, v.x))

print('Obj: %g' % obj.getValue())

1 Ответ

0 голосов
/ 28 мая 2019

Вам нужно будет выбрать правильный интерпретатор Python, который будет использоваться VSCode (выбирается в левом нижнем углу VSCode - убедитесь, что это та же версия и каталог, который вы ожидаете).

...