- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 MIP,我几乎可以肯定地知道它的解决方案。我想用 gurobi 来证明真正的解决方案(即使它不是我提供的)与我给出的解决方案的偏差不应超过 0.5%。我相信简单地保持切割而不分枝可能会节省更多时间。你知道我可以在 gurobi 中简单地进行切割而不分支的方法吗?这是代码性能:
将参数 LogFile 的值更改为 上一个:gurobi.log 默认值:将参数 MIPFocus 的值更改为 3 上一个:0 最小值:0 最大值:3 默认值:0将参数 Cuts 的值更改为 3 上一个:-1 最小值:-1 最大值:3 默认值:-1优化具有 1794 行、673 列和 4180 个非零值的模型找到启发式解决方案:目标 -22.8549Presolve去掉了18行17列预解析时间:0.01s预求解:1776 行,656 列,4464 个非零值
加载的 MIP 从目标 -342.641 开始
变量类型:592个连续型,64个整数(64个二进制)预求解:1776 行,656 列,4464 个非零值
根松弛:目标-6.775689e+02,迭代682次,0.02秒
Nodes | Current Node | Objective Bounds | Work
Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time
0 0 -677.56892 0 64 -342.64109 -677.56892 97.7% - 0s
0 0 -666.45290 0 72 -342.64109 -666.45290 94.5% - 0s
0 0 -658.68050 0 72 -342.64109 -658.68050 92.2% - 1s
0 0 -540.92023 0 72 -342.64109 -540.92023 57.9% - 3s
0 0 -503.36031 0 72 -342.64109 -503.36031 46.9% - 4s
0 0 -485.13025 0 72 -342.64109 -485.13025 41.6% - 6s
0 0 -472.73790 0 72 -342.64109 -472.73790 38.0% - 8s
0 0 -461.23185 0 72 -342.64109 -461.23185 34.6% - 9s
0 0 -453.99476 0 72 -342.64109 -453.99476 32.5% - 10s
0 0 -452.23014 0 72 -342.64109 -452.23014 32.0% - 10s
0 3 -452.23014 0 72 -342.64109 -452.23014 32.0% - 11s
642 586 -397.07656 12 54 -342.64109 -429.76289 25.4% 120 15s
1425 1290 -397.34606 11 60 -342.64109 -422.53417 23.3% 114 20s
1716 1553 -382.83438 18 72 -342.64109 -420.42709 22.7% 111 25s
1727 1560 -376.17473 16 72 -342.64109 -420.42709 22.7% 110 30s
1733 1564 -410.28764 10 72 -342.64109 -420.42709 22.7% 110 35s
1744 1571 -382.83438 18 72 -342.64109 -420.42709 22.7% 109 40s
1750 1577 -412.59771 12 69 -342.64109 -416.84728 21.7% 113 45s
1817 1602 -380.32997 19 60 -342.64109 -404.73090 18.1% 120 50s
2618 2045 -375.99924 18 62 -342.64109 -391.32863 14.2% 126 55s
3159 2315 -369.40052 22 59 -342.64109 -386.33088 12.8% 127 60s
3808 2595 -362.27693 20 60 -342.64109 -382.29310 11.6% 127 65s
4503 2903 -350.90325 24 54 -342.64109 -379.52932 10.8% 126 71s
4895 3078 -349.90847 23 55 -342.64109 -378.33598 10.4% 126 78s
5339 3242 -363.26836 21 59 -342.64109 -376.77299 10.0% 126 80s
....
最佳答案
为了避免在 Gurobi (Cplex) 中出现分支,您可以将参数 NodeLimit (Cplex 中的 NodLim) 设置为 1。要完成您最终想要的,只需验证您的解决方案在 0.5% 或最优范围内,您可以加载已知的作为一种解决方案(mip 开始,正如你已经在做的那样)设置 MIPFocus参数设置为 3(移动边界)并将 MIPGap 参数设置为 0.005,这将使 Gurobi(cplex)在找到所需条件时停止。
如果您确信您的解决方案比求解器找到的任何解决方案都要好,那么您也可以关闭启发式算法,使用 Heuristics范围。 Gurobi 通常会花费大约 5% 的时间来寻找更好的解决方案,除非它找到的任何解决方案比您提供的现有解决方案更好,否则这将无济于事。在 Cplex 中,参数为 HeurFreq ,您将其设置为 -1 以关闭。
您可能还会打开可以改善边界的预求解,尤其是在根处。尝试调出 Presolve到 2,PreDual到 2。还有一个 Symmetry在根部进行额外缩减的参数。通常默认设置是最好的,但在您的情况下,它们可能至少值得尝试。
仅对于 CPLEX,有一个 Probing参数,您可以将其设置为 3。这通常会减慢求解时间,但也可能会改善根部的边界。
关于optimization - 在 MIP 求解器 (Gurobi) 中保持切割而不分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24829588/
在我的 Gurobi C++ 程序中,我尝试使可执行文件可移植到其他未安装 Gurobi 的机器上。 当我将可执行文件移动到另一台机器时,错误消息如下: dyld: Library not loade
将 Gurobi 与 AMPL 结合使用而不是使用 Gurobi 直接 API(java、C#、C++ 等)来解决大型 MIP 问题有哪些优势?使用 Gurobi 的 API 而不是 AMPL 是否有
为了创建新的 GRBVar,我需要提供 new variable 的目标系数: GRBVar var = model.addVar (double lowerBound, double
我目前正在努力对优化问题实现一个简单的二次约束。 Gurobi's website表示可以实现二次约束。 德雷克没有使用 Gurobi 的这个约束的接口(interface)吗? 代码如下。 #inc
我一直在使用 Gurobi 来解决 MILP 问题,并使用 Pyomo 来生成模型。 Gurobi 支持返回一个解决方案池,我希望能够使用这个池生成多个解决方案。这在 Pyomo 中支持吗? 我试过使
以下简单的平方函数多重处理效果很好: from multiprocessing import Pool class A(object): def square(self, x):
我正在寻找一种在 gurobi 中保存预求解模型的方法,以便在下次运行模型时节省预求解所需的时间。 我尝试在预求解后使用回调函数将模型写入 .mps/.lp 文件,但是当我加载该文件时,它会再次开始预
我正在尝试将不同产品的单位分配给不同的商店。由于这个玩具示例中没有出现但在全面实现中必需的原因,我需要一个二进制变量来指示是否将特定产品的任何单位分配给每个特定商店。因为这是一个玩具示例,所以该变量在
在 Python 中将此约束添加到 gurobi 的最简单方法是什么。 D 是具有正项(常数)的给定矩阵。b 是我的变量的向量。T和K是给定的常数。 最佳答案 Gurobi 在 7.0 版本中添加了对
我正在尝试在 Ubuntu 14.04 的学术许可下安装 Gurobi。我已阅读以下关于 UnsatisfiedLinkError 的文章:stackoverflow.com/questions/..
我正在尝试解决在 Gurobi/python 中使用稀疏矩阵表示的 LP 问题。 max c′ x, subject to A x = b, L ≤ x ≤ U 其中 A 是 SciPy linked
我正在用 Java 编写一个程序来解决 Gurobi 的 MIP 问题。这个问题需要很多约束和变量,但第一个不能添加到我的模型中。在问题的更深处,当我尝试添加约束时,模型会显示它(通过调试读取),但
我正在使用 Gurobi 在 JAVA 中编写车辆路由问题 (VRP) 的扩展。我遇到的问题是,当我运行代码时,JAVA 说它是最优的,目标值为零。这不应该是这种情况,因为: VRP 适用于弧和节点。
我想访问从 python 在 gurobi 中运行数学优化问题时找到模型 m 的最优解所花费的时间。 目前我用 runtime = m.Runtime print("The run time is %
如何将线性表达式与常数相乘?我已经编写了代码,但它总是返回 0.0。 在将常数与线性表达式相乘方面需要帮助。 from gurobipy import LinExpr , GRB, Model, qu
考虑以下 Gurobi 模型: import gurobipy as gb import numpy as np N = 100 x = np.random.randint(10, high=2*N,
我正在使用 gurobi-python 界面。无论如何将连续变量转换为二进制变量。我只是不想转换 m.addVar(lb=0, ub=1, vtype=GRB.CONTINUOUS) 到 m.addV
如何获取我之前在 gurobi python 中定义的变量值(使用 addVar)?我需要比较 gurobi 变量的值,然后执行计算以达到我的目标变量。在优化之前也必须这样做。 最佳答案 您有两个选择
我目前在实现约束时遇到问题。我有两组(s1 和 s2)特定的 GRBVar,并尝试实现以下约束: Sum(s1) - Sum(s2) + 常数值 <= someValue 我的实现(为了便于阅读而修改
设 C 为集合覆盖问题的二进制覆盖矩阵,我想将其转换为 Gurobi 中适当的覆盖约束。我已经设法使用 scipy.csr_matrix 让它工作,但过程似乎很慢。我想知道是否有更有效的方法。 # C
我是一名优秀的程序员,十分优秀!