gurobi pi属性使用注意

con.getAttr(GRB.Attr.Pi)

变量类型不能是vtype=GRB.BINARY,否则无法访问pi属性,注意,认真看文档

只适用于连续模型:

pi就是dual price

默认目标函数是计算最小值时:

对于<=的约束条件,dual price是<=0的,对于>=0的约束条件,dual price是>=0的,对于=0的约束条件,dual price不受约束。

当目标函数是计算最大值时:

对于<=的约束条件,dual price是>=0的,对于>=0的约束条件,dual price是<=0的,对于=0的约束条件,dual price不受约束。

示例:

from gurobipy import *
dualArray=[]
try:

    # Create a new model
    m = Model("mip1")

    # Create variables
    x1 = m.addVar( name="y1")
    x2 = m.addVar( name="y2")
    x3 = m.addVar( name="y3")
    x4 = m.addVar( name="y4")
    # Set objective
    m.setObjective(x1 + x2 + x3 +x4, GRB.MINIMIZE)


    m.addConstr(x1 >= 50, "c0")
    m.addConstr(x2 >= 65, "c1")
    m.addConstr(x3+ 4*x4>= 80, "c2")
    m.optimize()
    
    c = m.getConstrs()  
    for v in m.getVars():
        print('%s = %g' % (v.varName, v.x))
    for i in range(m.getAttr(GRB.Attr.NumConstrs)):
      dualArray.append( c[i].getAttr(GRB.Attr.Pi))#GRB.Attr.SlackGRB.Attr.Pi  #con[i].getAttr(GRB.attr.Pi)

    print('Obj: %g' % m.objVal)
    print('pi:',dualArray)
except GurobiError as e:
    print('Error code ' + str(e.errno) + ": " + str(e))

except AttributeError:
    print('Encountered an attribute error')
对于Gurobi使用教程,您可以参考以下步骤: 1. 安装Gurobi:首先,您需要从Gurobi官方网站(https://www.gurobi.com/)下载并安装Gurobi软件包。根据您的操作系统,选择相应的版本进行下载和安装。 2. 获取许可证:在安装完Gurobi后,您需要在Gurobi官方网站上注册并获取一个许可证。填写相应的信息并提交申请,然后您将收到一封包含许可证的电子邮件。 3. 配置Gurobi环境:将Gurobi添加到系统路径中,这样您就可以在命令行或脚本中直接使用Gurobi命令。具体操作请参考Gurobi的官方文档,其中有详细的说明和示例。 4. 编写优化模型:使用Gurobi解决优化问题需要编写一个数学优化模型。您可以选择使用Python、C++、MATLAB等编程语言来编写模型。在这个模型中,您需要定义变量、目标函数和约束条件。 5. 调用Gurobi求解器:一旦您编写好了优化模型,就可以调用Gurobi求解器来求解该模型。根据您选择的编程语言,可以使用相应的API来调用Gurobi求解器,并获取最优解或最优解的近似解。 6. 解读结果:根据Gurobi求解器返回的结果,您可以获取最优解的变量取值,以及目标函数的最优值。根据具体的应用场景,您可以进一步解读结果,并进行相应的决策或优化。 请注意,以上是一个简要的概述,更详细的使用教程和示例可以在Gurobi官方网站上找到。他们提供了丰富的文档和教程资源,以帮助用户快速上手并深入了解Gurobi使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值