0

我正在尝试使用 Gurobi 在 python 中优化以下问题,答案以小数形式出现。如何获得输出以求解最佳整数?

from gurobipy import *
def main():
pass
if __name__ == '__main__':
main()
try:
    #Create a new model
    m = Model("Investment");
    #Create variables
    x1 = m.addVar(vtype=GRB.CONTINUOUS, name="x1")
    x2 = m.addVar(vtype=GRB.CONTINUOUS, name="x2")
    x3 = m.addVar(vtype=GRB.CONTINUOUS, name="x3")
    x4 = m.addVar(vtype=GRB.CONTINUOUS, name="x4")
    x5 = m.addVar(vtype=GRB.CONTINUOUS, name="x5")

    #Intigrate new variables
    m.update()

    #Set Objective
    m.setObjective(160*x1 + 160*x2 + 160*x3 + 75*x4 + 75*x5, GRB.MINIMIZE)
    m.addConstr(   x1 +    x2 +    x3                   >= 3,  "c0")
    m.addConstr(   x1                                   >= 1,  "c1")
    m.addConstr(           x2                           >= 0,  "c2")
    m.addConstr(                   x3                   >= 1,  "c3")
    m.addConstr(                           x4           >= 0,  "c4")
    m.addConstr(                                   x5   >= 0,  "c5")
    m.addConstr(40*x1 + 40*x2 + 40*x3 + 25*x4 + 25*x5   >= 365,"c6")

    m.optimize()

    for v in m.getVars():
        print v.varName, v.x
    print "Obj:", m.objVal

except GurobiError:
    print "Error reported"
4

2 回答 2

1

使用.addVar(vtype=GRB.INTEGER, ...).

请参阅http://www.gurobi.com/documentation/5.6/reference-manual/py_model_addvar

于 2014-09-21T02:30:33.667 回答
0

vtype = GRB.INTEGER

对于 binary vtype = GRB.BINARY,共有 5 个变量类型

于 2017-11-09T21:07:56.313 回答