Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
bintprog在MATLAB上的迭代使用_Matlab_Combinatorics_Linear Programming - Fatal编程技术网

bintprog在MATLAB上的迭代使用

bintprog在MATLAB上的迭代使用,matlab,combinatorics,linear-programming,Matlab,Combinatorics,Linear Programming,我们有一个问题公式,如所示 考虑到bintprog的第一次调用给出了一个解决方案x,在一些后处理不能充分解决物理问题之后,是否可以调用bintprog并排除先前的解决方案x 你需要一个好的伤口 假设您找到一个解决方案\hat{x},然后您确定该解决方案不可行(通过某种后处理)。设x和\hat{x}由i索引 可以添加以下形式的约束: \sum_{i : \hat{x}_i = 0} x_i + \sum_{i : \hat{x} = 1} (1-x_i) \geq 1 此约束是不良切割的一个示例

我们有一个问题公式,如所示


考虑到
bintprog
的第一次调用给出了一个解决方案
x
,在一些后处理不能充分解决物理问题之后,是否可以调用
bintprog
并排除先前的解决方案
x

你需要一个好的伤口

假设您找到一个解决方案\hat{x},然后您确定该解决方案不可行(通过某种后处理)。设x和\hat{x}由i索引

可以添加以下形式的约束:

\sum_{i : \hat{x}_i = 0} x_i + \sum_{i : \hat{x} = 1} (1-x_i) \geq 1
此约束是不良切割的一个示例:解决方案必须与\hat{x}至少相差一个索引i,否则不可行。如果您的变量不是二进制的,那么任何商品都不可能更复杂

通过将约束作为一行附加到约束矩阵,并使用bintprog()函数重新求解,可以为解决方案添加一个不利因素。我将把它留给你,让你用MATLAB符号重写它

您没有说明后处理的作用,但是如果后处理可以从您的解决方案中推断出其他解决方案也不可行,并且您可以在每次迭代中添加多行,那就更好了。这是一种基于逻辑的Benders分解形式,其他不可行解的推理称为求解推理对偶(与标准Benders分解相反,在标准Benders分解中,您求解的是线性规划对偶)。来自创造这个词的人,CMU的约翰·胡克


很抱歉格式化了。我需要走了,但我会想办法在以后更好地显示方程式。

为什么不将其作为约束添加?@按位您可以向
bintprog
添加两种类型的约束。第一个对应于不等式,第二个对应于等式。我已经就平等约束提出了具体的论点,但我想不出一种方法来纳入我想要的不平等约束。你知道吗?不平等性呢?如果你得到x=3,加上x