Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mathematical optimization 调度问题的MIP与CP_Mathematical Optimization_Linear Programming_Constraint Programming_Mixed Integer Programming - Fatal编程技术网

Mathematical optimization 调度问题的MIP与CP

Mathematical optimization 调度问题的MIP与CP,mathematical-optimization,linear-programming,constraint-programming,mixed-integer-programming,Mathematical Optimization,Linear Programming,Constraint Programming,Mixed Integer Programming,众所周知,精确的数学策略,如MILP,对于柔性车间问题的大型实例是无效的。然而,目前仍有可能找到解决FJS问题的MILP配方方案。这可能是因为在涉及非精确方法的实验中使用MILP模型是有趣的,因为它提供了下限 我还读到,当发现可行的解决方案比最优解决方案更重要时,应选择CP。这是真的吗 你说的差不多是对的 对于某些类型的问题,很难构造一个有效的MILP模型来解决它们,而且最好用元启发式方法来解决。然而,如果LP的构造方式能够为一个问题提供一个紧密且非平凡的边界,那么就有可能验证一个好的元启发式的

众所周知,精确的数学策略,如MILP,对于柔性车间问题的大型实例是无效的。然而,目前仍有可能找到解决FJS问题的MILP配方方案。这可能是因为在涉及非精确方法的实验中使用MILP模型是有趣的,因为它提供了下限


我还读到,当发现可行的解决方案比最优解决方案更重要时,应选择CP。这是真的吗

你说的差不多是对的

对于某些类型的问题,很难构造一个有效的MILP模型来解决它们,而且最好用元启发式方法来解决。然而,如果LP的构造方式能够为一个问题提供一个紧密且非平凡的边界,那么就有可能验证一个好的元启发式的解决方案是否达到最优或接近最优。这意味着您可以(潜在地)仅使用线性规划和元启发式来解决某些类型的NP问题的某些实例

至于CP,它非常擅长发现问题是否可行(或证明问题不可行)。CP可以用来找到最佳解决方案,但它不是它的强项,MILP通常在这方面做得更好

我还读到,当发现可行的解决方案比最优解决方案更重要时,应选择CP。这是真的吗

我认为,随着CP的最新进展,这种说法越来越不正确,尤其是在调度问题上。例如,您提到了柔性作业车间调度问题。在这个问题上,通用CP技术被用来改进和关闭许多经典基准测试的开放实例(通过找到更好的解决方案和更严格的下界)。例如参见[1]。在本文中,同样的CP技术用于改进/解决许多其他经典调度问题(特别是job shop和RCPSP的几个变体)

是的,CP可以提供一些下限。如果您添加约束“objective 对于大量研究的job shop调度问题,您还可以查看[2],比较几种MIP模型和CP模型的性能

如果您对如何将不同的CP技术集成到基于CP的通用优化引擎中的更完整视图感兴趣,那么还有这篇最近的文章[3]()

[1] p.维利姆,p.拉伯里,p.肖。“基于约束的调度的故障导向搜索”。过程。第12届组合优化问题约束编程中AI和OR技术集成国际会议,CPAIOR 2015

[2] 库文耀,贝克。“作业车间调度的混合整数规划模型:计算分析”。计算机与运筹学。2016年


[3] 拉伯里,罗格里,肖,维利姆。“用于调度的IBM ILOG CP优化器”。约束杂志,2018

考虑到NP完整性(和p!=NP),没有银弹(精确求解)。无论采用何种方法,总会有(足够大的)实例无法及时解决。因此,每种方法都是针对某类实例的启发式方法。在启发式世界中,什么方法最好很难说,需要实验。但总的来说,是的,CP更像是一个可行性传播子,而MIP更像是一个最优性传播子。Van Hentenryck的nice处理了所有三个概念(我想是youtube上的旧概念)。由于CP的性质,CP解算器提供了下限和上限?不,它没有。(但每一个找到的可行解都是一个上界,当然是最小化)谢谢你的完整答案。我会检查你所有的推荐信。我还有一个问题。我正在开发FJSP的扩展版本。我为问题的不同变体定义了MILP模型。我正在使用IBM ILOG CPLEX 12.7解算器。你能再多谈谈CPLEX CP优化器吗?我很难将我的问题“重塑”为CP?如果你想利用CP优化器,实际上,你必须使用不同的概念(如区间变量)来重新表述问题。我上面提到的第[3]条可以作为一个很好的切入点。另外请注意,在您安装的CPLEX Optimization Studio(称为sched_jobshopflex)中,CP Optimizer中有一个(经典的)灵活作业车间问题的公式。再次感谢您。我不使用CPLEX优化工作室,我在C++中编码。无论如何,这是一个很好的切入点,我将检查它。在C++中,CP优化器灵活的Job Shop示例将在CPLOSUTION安装DIR/CPUpXelux/Stask/Src/SHIDESJob Shop Ford.CPP中。