GROUBI

#Gurobi建模思路
1.Probem Instance:待优化问题
2.Model Generator:将数据组合成模型,产生计算机模型对象
3.Model Instance:存在于内存的一个完整数学模型
4.Gurobi Optimizer:Gurobi 优化求解
5.Solution Retrieval:根据需要读取优化结果
6.Analysis:对结果进行分析
#Gurobi建模基本概念
Parameter:控制优化器的行为
Attributes:控制模型(包括模型、变量、约束、目标等对象)的特征
Environment:包含模型和全局参数的一个容器,也是许可控制的节点
##特有的扩展对象
###TupleList和TupleDict
TupleList增加了快速筛选select功能

from gurobipy import *
cities = [("A","B"),("A","C"),("B","C"),("B","D"),("C","D")]
Routes = tuplelist(cities)
print(Routes.select("A","*"))

#运行结果
<gurobi.tuplelist (2 tuples, 2 values each):
 ( A , B )
 ( A , C )
>

键值为tuple(元组),可以使用select,sum,prod,以及quicksum函数

###Multidict()创建tuplelist和tupledict的便捷方法

cities,supply,demand = multidict({
    "A":[100,20],
    "B":[150,50],
    "C":[20,300],
    "D":[10,200]
    })
    运行结果
    cities
Out[6]: ['A', 'B', 'C', 'D']

supply
Out[7]: {'A': 100, 'B': 150, 'C': 20, 'D': 10}

demand
Out[8]: {'A': 20, 'B': 50, 'C': 300, 'D': 200}

###sum和quicksum均可求和,quicksum效率更高
###prob函数,用于变量和系数相乘后累加
以下两个表达式等效
obj = quicksum(cost[i,j]*x[i,j] for i,j in arcs)
obj=x.prob(cost

##建模尽量采用系数方式
利用tuplelist.select()以及tupledict.select(),tupledict.sum(),tupledict.prod()对下标进行组合处理
#Gurobi建模过程
1,添加变量
addVar()—单个变量进行添加
adddVars()—批量变量进行添加
2,创建模型
setObjective()
3,添加约束条件
addConstr()—单个约束条件进行添加
addConstrs()—批量约束条件进行添加
4,优化求解
optimize()

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值