长沙岳麓区,网站网络排名优化方法,欢迎访问中国建设银行网站,租车公司1.构造目标函数 #xff08;1#xff09;一般的写法#xff1a; 我们常见的目标函数写法通常是定义好式子zf(x,y,...)#xff0c;然后用m.setObjective(z, GRB。MINIMIZE)#xff0c;这样的定义方式比较普遍。 这也是一般的写法。 #xff08;2#xff09;但还有一种写法…1.构造目标函数 1一般的写法 我们常见的目标函数写法通常是定义好式子zf(x,y,...)然后用m.setObjective(z, GRB。MINIMIZE)这样的定义方式比较普遍。 这也是一般的写法。 2但还有一种写法是在定义变量的时候来构造目标函数。
x m.addVar (lb0.0, ubfloat(’inf’), obj0.0, vtypeGRB.CONTINUOUS, name, columnNone )
此处的obj是变量在目标函数中的系数。 如果obj0即该变量不出现在目标函数中也是默认的形式我们见得最多。 但如果是xm.addVar(lb0, float(’inf’), obj2, vtypeGRB.CONTINUOUS)那么目标函数中会出现z2x一项。
2.column() 这是约束中的列相关的函数。会在列生成分支定价算法中用到。 包含系数和变量两大类。通常是临时变量。 添加的时候用addTerm()删除的时候用remove()。 具体如下所示
col_coef [1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0]
rmp_con为gurobi前期定义的一系列24个R0,...,R24约束# 1列构造器这里col_coef表示约束中的系数rmp_con表示对应的约束二者必须对应维度一致
rmp_col Column(col_coef, rmp_con)
# gurobi.Column: 1.0 R0 0.0 R1 1.0 R2 1.0 R3 1.0 R4 0.0 R5 0.0 R6 0.0 R7 1.0 R8
# 1.0 R9 1.0 R10 0.0 R11 1.0 R12 0.0 R13 1.0 R14 0.0 R15 1.0 R16 1.0 R17 1.0 R18
# 1.0 R19 0.0 R20 0.0 R21 0.0 R22 0.0 R23 0.0 R24 # 2把新列新变量即新产生的pattern添加到模型中
其实对应的是s m.addVar(lb,ub,obj,vtype,name,column)其中column表示GRBColumn对象用于指 定新变量s所属的一组约束
RMP.addVar(lb 0.0,ub 1, obj path_length, vtype GRB.CONTINUOUS, name var_name, column rmp_col)