我正在开发一个模型来使用 gurobi 和 python 解决 MIP 问题。该问题涉及一组预定义路线的行驶时间。我试图实现的目标函数之一是最小化所选路线的最大旅行时间。其数学表示为: min f = max(Dij * Zij)
其中 D 是每条路线 ij 的行程时间,Z 是指示路线 ij 是否是解决方案的一部分的赋值变量,因此如果不选择该路线那么表达式的计算结果为 0。在 Gurobi 中为 python 建模的最佳方法是什么?
我正在研究 pyomo 优化脚本。我的限制之一是被隐式替换。寻找有关如何解决问题的想法。
数据通过 python 列表和字典从数据库加载到模型对象中。以下是参数、变量和目标函数以及约束。有问题的约束是用大写字母标识的。
#Sets
#clinics
model.C = Set(initialize=list(clinics.keys()))
#clients
model.B = Set(initialize=list(client_blocks.keys()))
#scalar params
model.clt_stf_max = 50
model.tt_max = 45
model.stf_max = sum(staff_cap.values())
model.tot_unsrvd_clients = sum(client_blocks.values())
model.z_M = 5000
model.e_M = 500
#indexed params
model.cnc_stf_cap = Param(C, initialize=staff_cap)
model.clt_blk = Param(B, initialize=client_blocks)
model.trav_time = Param(T, initialize=trav_time)
#decision vars
#x new staff at each clinic
model.new_stf = Var(model.C, domain=NonNegativeIntegers, initialize=0)
#y new clients at each clinic/block combo
model.new_clt = Var(model.C, model.B, domain=NonNegativeIntegers, initialize=0)
#z clinic has client(s)
model.z …Run Code Online (Sandbox Code Playgroud)