Python 多次求解cplex模型得到不同的解

Python 多次求解cplex模型得到不同的解,python,python-3.x,cplex,docplex,Python,Python 3.x,Cplex,Docplex,我有一个用docplex编写的MIP模型和一个用cplex编写的解决方案池。我的模型在现实中有数十亿个解决方案。我需要用特定的填充数(例如10000)多次(例如10次)求解该模型,但我需要这些多重解的解彼此完全不同。如何使用cplex实现这一点?是否有参数或方法?您可以为解决方案池使用分集筛选器,请参阅可调用库函数的参考文档,其中详细说明了如何计算筛选器。这只能在所有变量都是二进制的情况下完成 另一个选择是为已经找到的每个解决方案添加一个不好的切割 另一种选择是使用现有回调(或带有CANDIDA

我有一个用docplex编写的MIP模型和一个用cplex编写的解决方案池。我的模型在现实中有数十亿个解决方案。我需要用特定的填充数(例如10000)多次(例如10次)求解该模型,但我需要这些多重解的解彼此完全不同。如何使用cplex实现这一点?是否有参数或方法?

您可以为解决方案池使用分集筛选器,请参阅可调用库函数的参考文档,其中详细说明了如何计算筛选器。这只能在所有变量都是二进制的情况下完成

另一个选择是为已经找到的每个解决方案添加一个不好的切割

另一种选择是使用现有回调(或带有
CANDIDATE
context的通用回调)来拒绝您已经找到的任何解决方案

尽管如此,我还是不清楚为什么要从头开始多次求解同一个模型。您是否尝试继续搜索?如果搜索由于解决方案限制而停止,并且您再次调用它,那么它应该在以前停止的位置继续。因此,它应该找到不同的解决方案


另外,如果你想得到成千上万的解决方案,那么我想知道你用这些解决方案做什么。也许它可以帮助安装或调整针对特定解决方案的目标函数。使用不同的目标函数只能推动解决方案的多样性。

谢谢Daniel。我需要多次求解一个模型,因为我有一个部分随机改变一个变量,我需要在每次求解中改变这个变量。在没有任何调整的情况下,对于每个不同随机变量的解,我有一些解,但它们彼此非常相似。我如何才能像您上面提到的那样继续搜索?(我需要在继续搜索之前更改一个约束条件)如果您修改模型,则无法继续搜索。添加新的解决方案并继续如何?可能吗?您所说的“添加新的解决方案”是什么意思?你想在哪里加上这个?到解决方案池?这是不可能的。您可以将新解决方案添加为MIP start。或者,通过添加排除此解决方案的分集过滤器,假装您已经找到了该解决方案。