如何解决0差距
回答你好,
有办法迫使Gurobi生成解决方案与0差距?我得到了最优解与积极的差距MIP模型,减少成本。我找到了一个解决方案目标函数值较低,我插在Gurobi模型中的解决方案,实际上Gurobi“更好”的目标价值的实现。这意味着解决方案不是最优的。是否有办法让Gurobi“更加努力”来找到最优解与0差距?宽容是默认1.00 e-04。
谢谢你!
真诚地,
迪安娜
-
你好迪安娜,你试过设置MIPGap什么小?G。
0 -
嗨,格温妮斯,
我尝试以下代码:
差距= m。setParam (MIPGap, 0)
但差距仍然与以前一样。在我报告与此代码的差距:
差距= max (0, abs (m.ObjVal-m.ObjBound) / abs (m.ObjVal))
有什么我做错了还是可以改善?
迪安娜
0 -
你好迪安娜——你能分享日志的开始和结束的MIPGap属性吗?谢谢,G。
0 -
嗨,格温妮斯,
下面是整个日志:
Gurobi 9.1.1 (win64)日志开始坐4月3 17:09:29 2021
改变参数日志文件的价值P1_48_LFW_NoCap_Log 5 480 0.01 0.01 1 04032021 - 170929. - txt
上一页:默认值:
9.1.1 Gurobi优化器版本构建v9.1.1rc0 (win64)
线程数:4个物理核心,8个逻辑处理器,使用8线程
优化模型与19906行、14665列,84414 0
x0d94c138模型指纹:0
变量类型:7190连续,7475整数(7475二进制)
系数统计:
矩阵范围[1 e + 00, 3 e + 02]
目标范围[8 e + 01 2 e + 04)
边界范围[1 e + 00 1 e + 00)
RHS范围[1 e + 00, 5 e + 02]
发现启发式解决方案:目标1131674.0000
Presolve删除2737行和54列
Presolve时间:0.26秒
Presolved: 17169行、14611列,101700 0
变量类型:7181连续,7430整数(7425二进制)确定性并发LP优化器:原始与对偶单纯形
只显示第一个日志……并发旋转时间:0.05秒
解决与对偶单纯形
根放松:目标8.667023 e + 05 4190迭代,0.49秒
当前节点节点| |客观界限|工作
Expl Unexpl | Obj深度IntInf | |现任BestBd差距/节点时间0 0 0 141 1131674.00 866702.308 866702.308 23.4% - 0
H - 1 0 0 1112932.0000 866702.308 22.1%
H - 1 0 0 1112002.0000 866702.308 22.1%
H - 1 0 0 1108081.0000 866702.308 21.8%
H - 2 0 0 1102100.0000 866702.308 21.4%
H - 2 0 0 997009.00000 866715.912 13.1%
…1161 590 937829.000 326 937829.000 937372.819 - 0.05% 219 140年代27
1185 608 937497.532 189 937829.000 937497.532 - 0.04% 222 145年代…
探讨了1185个节点(313558单纯形迭代)145.09秒
线程数是8(8可用处理器)解决方案数10:937829 937855 937894…940344年
发现最优解(公差1.00 e-04)
最佳目标9.378290000000 e + 05、最佳结合9.377479372686 e + 05年,差距为0.0086%在User-callback User-callback电话23605,时间0.27秒
MIPGap属性,唯一的一部分,我用MIPGap代码:
差距= m。setParam (MIPGap, 0)
所以我想我需要添加更多属性?
谢谢你!
迪安娜
0 -
或者你的意思是这样的:
差距= max (0, abs (m.ObjVal-m.ObjBound) / abs (m.ObjVal))
上面,我在前面的邮件:差距= m。setParam (MIPGap, 0), are the only two lines about gap I have in my script.
0 -
你好迪安娜-
感谢分享日志;然而,完整的日志太长,所以我编辑它。
开始时你可以看到日志文件参数改变,但是我没有看到任何迹象表明MIPGap参数改变,所以这是可能的原因你看到的行为。你能让我们知道你的代码改变吗?
改变参数日志文件的价值P1_48_LFW_NoCap_Log 5 480 0.01 0.01 1 04032021 - 170929. - txt
上一页:默认值:的属性,我想您打印MIPGap属性。这是不同的参数设置。
格温妮斯
0 -
嗨,格温妮斯,
我唯一有日志代码的代码改变日志的名字当我日志导出到一个txt文件。我重新运行模型没有导出日志文件(这样没有相关代码登录我的模型),你可以看到“改变参数日志文件的价值…“但差距仍然存在。
9.1.1 Gurobi优化器版本构建v9.1.1rc0 (win64)
线程数:4个物理核心,8个逻辑处理器,使用8线程
优化模型与19906行、14665列,84414 0
x0d94c138模型指纹:0
变量类型:7190连续,7475整数(7475二进制)
系数统计:
矩阵范围[1 e + 00, 3 e + 02]
目标范围[8 e + 01 2 e + 04)
边界范围[1 e + 00 1 e + 00)
RHS范围[1 e + 00, 5 e + 02]
发现启发式解决方案:目标1131674.0000
Presolve删除2737行和54列
Presolve时间:0.24秒
Presolved: 17169行、14611列,101700 0
变量类型:7181连续,7430整数(7425二进制)确定性并发LP优化器:原始与对偶单纯形
只显示第一个日志……并发旋转时间:0.03秒
解决与对偶单纯形
根放松:目标8.667023 e + 05 4190迭代,0.39秒
当前节点节点| |客观界限|工作
Expl Unexpl | Obj深度IntInf | |现任BestBd差距/节点时间0 0 0 141 1131674.00 866702.308 866702.308 23.4% - 0
H 0 - 0 0 1112932.0000 866702.308 22.1%
H - 1 0 0 1112002.0000 866702.308 22.1%
H - 1 0 0 1108081.0000 866702.308 21.8%
H - 1 0 0 1102100.0000 866702.308 21.4%
H - 2 0 0 997009.00000 866715.912 13.1%
0 0 0 221 997009.000 887018.508 887018.508 11.0% - 2 s
H 0 0 984838.00000 887018.508 9.93% - 3 s
H 0 0 979948.00000 887018.508 9.48% - 3 s
0 0 0 234 979948.000 887162.142 887162.142 9.47% - 3 s
0 0 0 236 979948.000 900502.971 900502.971 8.11% - 3 s
H - 4 0 0 976505.00000 900502.971 7.78%
0 0 0 244 976505.000 902823.792 902823.792 7.55% - 4 s
0 0 0 266 976505.000 904322.994 904322.994 7.39% - 4 s
0 0 0 277 976505.000 904324.514 904324.514 7.39% - 4 s
- 6 s H 0 0 968640.00000 904324.514 6.64%
0 0 0 308 968640.000 913623.243 913623.243 5.68% - 6 s
- 6 s H 0 0 954598.00000 913623.243 4.29%...........
H 1131 568 937829.00000 937085.113 - 0.08% 197 78年代
1134 570 937123.172 371 937829.000 937123.172 - 0.08% 196 80年代
1155 585 937328.038 287 937829.000 937328.038 - 0.05% 208 85年代减少飞机:
学:6
Gomory: 9
封面:21
预计隐含约束:1
集团:7
米尔:39
流覆盖:199
零一半:8
网络:57
RLT: 6
Relax-and-lift: 6探讨了1185个节点(313558单纯形迭代)90.01秒
线程数是8(8可用处理器)解决方案数10:937829 937855 937894…940344年
发现最优解(公差1.00 e-04)
最佳目标9.378290000000 e + 05、最佳结合9.377479372686 e + 05年,差距为0.0086%一个相关的节点上,差距是0当我运行相同的模型(即与更小的问题。,更少的节点和弧)。
我不确定如何打印MIPGap属性。我使用print (GRB.Attr.MIPGap),但它只是返回MIPGap。我使用Python。你能让我知道怎么做?
谢谢你!
迪安娜
0 -
你好迪安娜-
再一次,这还不清楚MIPGap参数已经改变。你能请分享你如何改变参数和在哪里?
你能请立即打印MIPGap参数调用优化之前我们可以检查吗?哟umay需要调用.update ()。
至于MIPGap属性,你看看链接的文档吗?manbet体育手机客户端你会看到这是一个* *属性模型,通过模型你需要访问它。
格温妮斯
0 -
嗨,格温妮斯,
我不认为我改变了任何MIPGap参数,至少我不记得。就像我说的,唯一的地方我做了一些关于的差距是发送的两行代码:
差距= m。setParam (MIPGap, 0)
差距= max (0, abs (m.ObjVal-m.ObjBound) / abs (m.ObjVal))
我检查了链接和链接页面上的链接属性的例子”,但是我没有看到任何关于MIPGap属性。
我可以给你我的代码吗?我困惑你问什么。
谢谢你!
迪安娜
0 -
嗨,迪安娜,
这真的很奇怪。虽然看起来你设置MIPGap参数m。setParam (MIPGap, 0), the log file suggests that this update is not coming through. Gwyneth, was asking you to print the value of this attribute, e.g. `print(m.Params.MIPGap)`, to ensure that the parameter was updating correctly. The only way I can understand the behavior you are observing is if you are possibly updating the parameter after the m.optimize() step, if you have the parameter change syntax wrong (however it looks fine to me), or if you are updating the parameter of a different model object.
高兴地看一看你的代码,如果你乐于分享。
谢谢,
史蒂夫
0 -
道歉,排版是困惑。这条线应该是
打印(m.Params.MIPGap)
0 -
你好,史蒂夫,
问题已经解决了。你是对的,我确实把MIPGap属性设置优化后……我应该想到,当我使用MIPFocus和把它放在正确的位置。不管怎样,谢谢你!
迪安娜
0
请登录留下你的评论。
评论
12个评论