gurobi_feasrelax ()

gurobi_feasrelax ()

gurobi_feasrelax (模型,松弛类型,minrelax,处罚,params=NULL, env=NULL)

这个函数计算输入的可行性松弛模型论点。可行性松弛是一个模型,当求解时,使解违反边界和原始模型的线性约束的数量最小化。您必须提供与放松每个单独的约束或约束相关联的惩罚(通过处罚参数)。根据值的不同,这些惩罚以不同的方式解释relaxobjtype论点。

参数:

模型:模型列表必须包含一个有效的Gurobi模型。看到模型参数部分获取更多信息。

relaxobjtype:对违规者施加惩罚的方法。
如果您指定relaxobjtype = 0,可行性松弛的目标是使边界和约束违反的加权大小的和最小化。
如果您指定relaxobjtype = 1,可行性松弛的目标是使边界和约束违反的加权平方和最小化。
如果您指定relaxobjtype = 2,可行性松弛的目标是最小化边界和约束违反的加权数。
在所有情况下,权重都是从处罚处罚乌兰巴托处罚园艺学会.你可以提供特殊的罚金值表示相应的界限或约束不能放松。

minrelax:minrelax参数是一个布尔值,控制创建的可行性放松的类型。如果minrelax = False,优化返回的模型提供了一个最小化违反成本的解决方案。如果minrelax = True,优化返回的模型可以找到最小化原始目标的解决方案,但只能从那些最小化违反成本的解决方案中找到。请注意,gurobi_feasrelax必须解决一个最优化问题,找到最小的可能松弛何时minrelax = True,这可能相当昂贵。

处罚:处罚参数是列表的列表,包含以下可选的命名组件(默认:all):
对违反每一个下限的处罚。
乌兰巴托对违反每个上限的处罚。
园艺学会对违反每项约束的处罚。

举个例子,如果有约束penalties.rhs价值p被2。0违反了,会有贡献吗2 * p对可行性放宽的目标relaxobjtype = 02 * 2 * prelaxobjtype = 1,prelaxobjtype = 2

env: env列表,允许您使用Gurobi Compute Server或Gurobi Instant Cloud。看到env参数部分获取更多信息。

返回值:

一个列表包含两个命名组件:
结果模型,列表变量,如模型论证部分。
结果feasobj一个标量。如果minrelax = = true这是松弛问题的客观值,否则为0.0。

使用示例:
处罚< -列表()
模型< - gurobi_read(“stein9.mps”)
处罚磅< -代表(1、长度(模型磅))
处罚乌兰巴托< -代表(1、长度(模型乌兰巴托))
处罚rhs < -代表(1,长度(模型rhs))
feasrelaxation result <- gurobi_feasrelax(model, 0, False, penalty)