主要内容gydF4y2Ba

整数与逻辑建模gydF4y2Ba

整数约束允许您创建具有以下重要特性的模型:gydF4y2Ba

  • 含义,比如“如果条件A成立,那么条件B成立。”gydF4y2Ba

  • 交易成本或设置成本,例如“如果我购买的物品为零,则该物品的成本为零,但如果我购买的物品超过零,则该物品的成本为A美元交易成本加上B美元。”看到gydF4y2Ba示例:固定成本gydF4y2Ba.gydF4y2Ba

  • 逻辑约束,例如“气闸A门和气闸B门不能同时打开。”gydF4y2Ba

许多建模问题等同于使用指示符变量的逻辑模型。介绍指标变量和逻辑模型的使用方法。这些模型是基于gydF4y2Ba大mgydF4y2Ba公式,其中一个变量gydF4y2BaxgydF4y2Ba还有一个常数gydF4y2Ba米gydF4y2Ba假设满足不等式gydF4y2Ba- - - - - -gydF4y2Ba米gydF4y2Ba≤gydF4y2BaxgydF4y2Ba≤gydF4y2Ba米gydF4y2Ba.gydF4y2Ba

回想一下,优化中的约束有一个隐含的“和”。当三个约束c1 c2 c3都满足时,约束c1 c2 c3就满足了。gydF4y2Ba

大m配方gydF4y2Ba

假设有一个连续变量gydF4y2BaxgydF4y2Ba上面有一个常数gydF4y2Ba米gydF4y2Ba:gydF4y2Ba

xgydF4y2Ba≤gydF4y2Ba米gydF4y2Ba.gydF4y2Ba

您需要关联一个二进制指示符变量gydF4y2BazgydF4y2Ba来gydF4y2BaxgydF4y2Ba这gydF4y2BazgydF4y2Ba= 1gydF4y2Ba每当gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba.要做到这一点,请使用Big-M公式,包括约束:gydF4y2Ba

xgydF4y2Ba≤gydF4y2Ba米gydF4y2BazgydF4y2Ba.gydF4y2Ba

这个约束确保了无论何时gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba,然后gydF4y2BazgydF4y2Ba= 1gydF4y2Ba一定。如上所述,Big-M公式有更多的应用gydF4y2Ba用实函数和二进制指示变量表达逻辑约束gydF4y2Ba.gydF4y2Ba

基本问题:油藏流动gydF4y2Ba

假设你想对一个整数倍的水库建模。在每一个正整数时间gydF4y2BatgydF4y2Ba在一定范围内,水库可接受水量为gydF4y2BatgydF4y2Ba),或可排出一定量的水(gydF4y2BatgydF4y2Ba),以连续的数量为上限gydF4y2Ba米gydF4y2Ba要么进去,要么出去。您的模型应该强制如果gydF4y2Ba鑫(gydF4y2BatgydF4y2Ba> 0gydF4y2Ba然后gydF4y2Baxout (gydF4y2BatgydF4y2Ba) = 0gydF4y2Ba,如果gydF4y2Baxout (gydF4y2BatgydF4y2Ba> 0gydF4y2Ba然后gydF4y2Ba鑫(gydF4y2BatgydF4y2Ba) = 0gydF4y2Ba.如何建立这个约束的模型?一种方法是约束gydF4y2Ba

鑫(gydF4y2BatgydF4y2Ba) * xout(gydF4y2BatgydF4y2Ba) = 0。gydF4y2Ba

然而,这种约束会导致问题变得非线性,求解者通常很难处理这种类型的约束。gydF4y2Ba

实现约束的更好方法是使用指示器二进制变量zin(gydF4y2BatgydF4y2Ba)即无论何时为1gydF4y2Ba鑫(gydF4y2BatgydF4y2Ba> 0gydF4y2Ba,和类似的二进制变量zout(gydF4y2BatgydF4y2Ba)即无论何时为1gydF4y2Baxout (gydF4y2BatgydF4y2Ba> 0gydF4y2Ba.假设您有这样的变量,添加约束gydF4y2Ba

寻(gydF4y2BatgydF4y2Ba) + zout(gydF4y2BatgydF4y2Ba)≤1,gydF4y2Ba

这确保了xin(gydF4y2BatgydF4y2Ba)和xout(gydF4y2BatgydF4y2Ba)并不都是正面的。gydF4y2Ba

为了确保gydF4y2Ba寻(gydF4y2BatgydF4y2Ba) = 1gydF4y2Ba每当gydF4y2Ba鑫(gydF4y2BatgydF4y2Ba> 0gydF4y2Ba,使用大m公式。假设xin(gydF4y2BatgydF4y2Ba)的上方以gydF4y2Ba米gydF4y2Ba,一个正数,对所有gydF4y2BatgydF4y2Ba.包含约束gydF4y2Ba

鑫(gydF4y2BatgydF4y2Ba)≤gydF4y2Ba米gydF4y2Ba*寻(gydF4y2BatgydF4y2Ba).gydF4y2Ba

为了确保gydF4y2Ba寻(gydF4y2BatgydF4y2Ba) = 0gydF4y2Ba每当gydF4y2Ba鑫(gydF4y2BatgydF4y2Ba) = 0gydF4y2Ba,包括zin(gydF4y2BatgydF4y2Ba)在目标函数中。这样,最小化目标函数使zin(gydF4y2BatgydF4y2Ba)尽可能为零。gydF4y2Ba

类似地,要连接zout(gydF4y2BatgydF4y2Ba)和xout(gydF4y2BatgydF4y2Ba),纳入约束gydF4y2Ba

xout (gydF4y2BatgydF4y2Ba) < =gydF4y2Ba米gydF4y2Ba* zout (gydF4y2BatgydF4y2Ba).gydF4y2Ba

总之,为了强制约束xin(gydF4y2BatgydF4y2Ba)和xout(gydF4y2BatgydF4y2Ba)不能都是正的,你创建了两个二进制变量zin(gydF4y2BatgydF4y2Ba)和zout(gydF4y2BatgydF4y2Ba)gydF4y2BatgydF4y2Ba,并包括以下三个限制:gydF4y2Ba

鑫(gydF4y2BatgydF4y2Ba) < =gydF4y2Ba米gydF4y2Ba*寻(gydF4y2BatgydF4y2Ba) %确保zin(gydF4y2BatgydF4y2Ba当xin() = 1时gydF4y2BatgydF4y2Ba> 0。gydF4y2Ba

xout (gydF4y2BatgydF4y2Ba) < =gydF4y2Ba米gydF4y2Ba* zout (gydF4y2BatgydF4y2Ba) %确保zout(gydF4y2BatgydF4y2Ba) = 1当xout(gydF4y2BatgydF4y2Ba> 0。gydF4y2Ba

寻(gydF4y2BatgydF4y2Ba) + zout(gydF4y2BatgydF4y2Ba) <= 1%确保zin(gydF4y2BatgydF4y2Ba)和zout(gydF4y2BatgydF4y2Ba)并不都是正面的。gydF4y2Ba

MATLABgydF4y2Ba®gydF4y2Ba基于问题方法的命令如下:gydF4y2Ba

T = 50;gydF4y2Ba%次数gydF4y2BaM = 40;gydF4y2Bax个变量的最大大小gydF4y2BaXin = optimvar(gydF4y2Ba“鑫”gydF4y2BaTgydF4y2Ba下界的gydF4y2Ba0,gydF4y2Ba“UpperBound”gydF4y2Ba, M);Xout = optimvar(gydF4y2Ba“xout”gydF4y2BaTgydF4y2Ba下界的gydF4y2Ba0,gydF4y2Ba“UpperBound”gydF4y2Ba, M);Zin = optimvar(gydF4y2Ba“寻”gydF4y2BaTgydF4y2Ba“类型”gydF4y2Ba,gydF4y2Ba“整数”gydF4y2Ba,gydF4y2Ba下界的gydF4y2Ba0,gydF4y2Ba“UpperBound”gydF4y2Ba1);Zout = optimvar(gydF4y2Ba“zout”gydF4y2BaTgydF4y2Ba“类型”gydF4y2Ba,gydF4y2Ba“整数”gydF4y2Ba,gydF4y2Ba下界的gydF4y2Ba0,gydF4y2Ba“UpperBound”gydF4y2Ba1);Prob =优化问题;xinzin = xin <= M*zin;xoutzout = xout <= M*zout;zzout = zin + zout <= 1;probe . constraints .xinzin = xinzin;probv . constraints .xoutzout = xoutzout;prov . constraints .zinzout = zinzout;概率。目标= sum(zin + zout);gydF4y2Ba

注意事项:gydF4y2Ba

  • 所有的约束都是长度约束的向量gydF4y2BaTgydF4y2Ba,优化变量和指标变量也是如此。gydF4y2Ba

  • 所有约束都是用单个语句定义的,而不是在循环中定义的,这样可以提供最佳性能。gydF4y2Ba

用二进制变量表达逻辑约束gydF4y2Ba

本节包含逻辑语句和对应的带有二进制变量的MATLAB命令。表述假设变量gydF4y2BazgydF4y2Ba,gydF4y2BawgydF4y2Ba,gydF4y2BafgydF4y2Ba二进制优化变量,意味着每个都有类型gydF4y2Ba“整数”gydF4y2Ba,下界gydF4y2Ba0gydF4y2Ba,和上界gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

描述gydF4y2Ba 逻辑语句gydF4y2Ba MATLAB命令gydF4y2Ba
zgydF4y2Ba而且gydF4y2BawgydF4y2Ba拥有相反的价值观gydF4y2Ba Z =非wgydF4y2Ba
Z = 1 - w;gydF4y2Ba
至少一个gydF4y2BazgydF4y2Ba或gydF4y2BawgydF4y2Ba是真的gydF4y2Ba Z或wgydF4y2Ba
Z + w >= 1;gydF4y2Ba
最多一个gydF4y2BazgydF4y2Ba或gydF4y2BawgydF4y2Ba是真的gydF4y2Ba (不是z)或(不是w)gydF4y2Ba
Z + w <= 1;gydF4y2Ba
fgydF4y2Ba是正确的gydF4y2BazgydF4y2Ba是真的还是gydF4y2BawgydF4y2Ba是真的gydF4y2Ba fgydF4y2Ba=gydF4y2BaZ或wgydF4y2Ba
F >= z;F >= w;F <= z + w;gydF4y2Ba
fgydF4y2Ba究竟是两者兼而有之gydF4y2BazgydF4y2Ba而且gydF4y2BawgydF4y2Ba是真的gydF4y2Ba fgydF4y2Ba=gydF4y2BaZ和wgydF4y2Ba
F <= z;F <= w;F >= z + w - 1;gydF4y2Ba
fgydF4y2Ba到底是什么时候的呢gydF4y2BazgydF4y2Ba或gydF4y2BawgydF4y2Ba是真的gydF4y2Ba fgydF4y2Ba=gydF4y2BaZ xor wgydF4y2Ba
F >= z - w;F >= w - z;F <= z + w;F <= 2 - (z + w);gydF4y2Ba

用实函数和二进制指示变量表达逻辑约束gydF4y2Ba

本节连接一个实际函数gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)和一个二进制变量gydF4y2BazgydF4y2Ba.通常,你会介绍gydF4y2BazgydF4y2Ba将问题作为一个指标变量来建模问题的某些方面,例如何时的指标gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba.所有这些约束条件都基于大m公式。gydF4y2Ba

假设常数gydF4y2Ba米gydF4y2Ba这个函数gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)满足边界gydF4y2Ba

- mgydF4y2Ba≤gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)≤gydF4y2Ba米gydF4y2Ba.gydF4y2Ba

条件gydF4y2Ba 约束代码gydF4y2Ba
如果gydF4y2BazgydF4y2Ba= 1gydF4y2Ba然后gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)≤0gydF4y2Ba
g(x) <= M*(1 - z);gydF4y2Ba
如果gydF4y2BazgydF4y2Ba= 1gydF4y2Ba然后gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)≥0gydF4y2Ba
g(x) >= - m *(1 - z);gydF4y2Ba
如果gydF4y2BazgydF4y2Ba= 1gydF4y2Ba然后gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba) = 0gydF4y2Ba
g(x) <= M*(1 - z);g(x) >= - m *(1 - z);gydF4y2Ba
如果gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)≤0gydF4y2Ba然后gydF4y2BazgydF4y2Ba= 1gydF4y2Ba
g(x) >= -M*z;gydF4y2Ba
如果gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)≥0gydF4y2Ba然后gydF4y2BazgydF4y2Ba= 1gydF4y2Ba
g(x) <= M*z;gydF4y2Ba

如果gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba然后gydF4y2BazgydF4y2Ba= 1gydF4y2Ba

如果gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba) < 0gydF4y2Ba然后gydF4y2BazgydF4y2Ba= 0gydF4y2Ba

创建一个新的二进制变量gydF4y2Baz1gydF4y2Ba来表示gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba) < 0gydF4y2Ba.gydF4y2Ba

g(x) <= M*z;gydF4y2Ba

g(x) >= -M*z1;gydF4y2Ba

Z + z1 == 1;gydF4y2Ba

这个公式是不确定的gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba) = 0gydF4y2Ba.gydF4y2Ba

结合逻辑约束创建新公式gydF4y2Ba

使用前面的逻辑约束和二进制指示符变量来创建实现新公式的代码。gydF4y2Ba

条件gydF4y2Ba 约束代码gydF4y2Ba

对于标量函数gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba),gydF4y2BahgydF4y2Ba(gydF4y2BaxgydF4y2Ba)满足约束条件gydF4y2Ba米gydF4y2Ba,实现条件:gydF4y2Ba

如果gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)≥0gydF4y2Ba然后gydF4y2BahgydF4y2Ba(gydF4y2BaxgydF4y2Ba)≥0gydF4y2Ba

引入二进制指示符变量gydF4y2BazgydF4y2Ba这表明gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba)≥0gydF4y2Ba.然后引入约束条件,如果gydF4y2BazgydF4y2Ba= 1gydF4y2Ba然后gydF4y2BahgydF4y2Ba(gydF4y2BaxgydF4y2Ba)≥0gydF4y2Ba.gydF4y2Ba

g(x) <= M*z;h(x) >= - m *(1 - z);gydF4y2Ba

ggydF4y2Ba(gydF4y2BaxgydF4y2Ba) =gydF4y2BazgydF4y2Ba*gydF4y2BaxgydF4y2Ba在哪里gydF4y2BazgydF4y2Ba是二进制变量gydF4y2Ba

将这个条件表示为两个约束:gydF4y2Ba

如果gydF4y2BazgydF4y2Ba= 1gydF4y2Ba然后gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba) -gydF4y2BaxgydF4y2Ba= 0gydF4y2Ba

如果gydF4y2BazgydF4y2Ba= 0gydF4y2Ba然后gydF4y2BaggydF4y2Ba(gydF4y2BaxgydF4y2Ba) = 0gydF4y2Ba

g(x) <= x + M*(1-z);g(x) >= x - M*(1-z);g(x) <= M*z;g(x) >= -M*z;gydF4y2Ba

示例:固定成本gydF4y2Ba

假设生产一定数量的成本gydF4y2BaxgydF4y2Ba一件物品的gydF4y2Ba

成本gydF4y2Ba =gydF4y2Ba {gydF4y2Ba 一个gydF4y2Ba +gydF4y2Ba bgydF4y2Ba xgydF4y2Ba 如果gydF4y2Ba xgydF4y2Ba >gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 如果gydF4y2Ba xgydF4y2Ba =gydF4y2Ba 0.gydF4y2Ba

你可以用一个线性变量来模拟这个非线性成本gydF4y2BaxgydF4y2Ba和一个二进制指示变量gydF4y2BazgydF4y2Ba.创建约束条件gydF4y2BazgydF4y2Ba= 1gydF4y2Ba每当gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba,并包括gydF4y2BazgydF4y2Ba在目标函数中gydF4y2BazgydF4y2Ba= 0gydF4y2Ba每当gydF4y2BaxgydF4y2Ba= 0gydF4y2Ba.假设问题包含一个边界gydF4y2Ba米gydF4y2Ba这gydF4y2BaxgydF4y2Ba≤gydF4y2Ba米gydF4y2Ba.gydF4y2Ba

x <= M*z;gydF4y2Ba%约束,使z = 1时,x > 0gydF4y2Ba成本= a*z + b*x;gydF4y2Ba

如果你把成本降到最低,当gydF4y2BaxgydF4y2Ba= 0则gydF4y2BazgydF4y2Ba也= 0。gydF4y2Ba

示例:OR约束gydF4y2Ba

有时,您希望对条件a或条件B或条件C保持时强制执行的约束进行建模。为此,创建二进制指示符变量gydF4y2Ba咱gydF4y2Ba,gydF4y2BazBgydF4y2Ba,gydF4y2Ba佐gydF4y2Ba它们表示对应的条件A、B和C何时成立,并包括附加约束gydF4y2Ba

zB + zC >= 1;gydF4y2Ba

作为另一个例子,建模绝对值约束gydF4y2Ba|gydF4y2BaxgydF4y2Ba| = 5gydF4y2Ba,这意味着gydF4y2BaxgydF4y2Ba= 5gydF4y2Ba或gydF4y2BaxgydF4y2Ba= 5gydF4y2Ba.创建两个指示器变量gydF4y2Baz1gydF4y2Ba而且gydF4y2Baz2gydF4y2Ba表示何时gydF4y2BaxgydF4y2Ba= 5gydF4y2Ba而且gydF4y2BaxgydF4y2Ba= 5gydF4y2Ba,分别。然后加入约束gydF4y2Ba

Z1 + z2 >= 1;gydF4y2Ba

一种设置方法gydF4y2BazgydF4y2Ba1 = 1gydF4y2Ba当gydF4y2BaxgydF4y2Ba= 5gydF4y2Ba是引入三个新的指标变量吗gydF4y2Baz11gydF4y2Ba,gydF4y2Baz12gydF4y2Ba,gydF4y2Baz13gydF4y2Ba对于这些情况:gydF4y2Ba

z11gydF4y2Ba= 1时gydF4y2BaxgydF4y2Ba< 5和gydF4y2Baz1gydF4y2Ba= 0,gydF4y2Ba

z12gydF4y2Ba= 1时gydF4y2BaxgydF4y2Ba= 5和gydF4y2Baz1gydF4y2Ba= 1,gydF4y2Ba

z13gydF4y2Ba= 1时gydF4y2BaxgydF4y2Ba> 5和gydF4y2Baz1gydF4y2Ba= 0。gydF4y2Ba

然后引入约束条件gydF4y2Ba

Z11 + z12 + z13 = 1;gydF4y2Ba

指定gydF4y2Baz11gydF4y2Ba,使用这三个约束条件。gydF4y2Ba

-(1 - z11) <= z1;Z1 <= (1 - z11);x - 5 <= M(1 - z11);gydF4y2Ba

指定gydF4y2Baz12gydF4y2Ba,使用这四个约束条件。gydF4y2Ba

-(1 - z12) <= z1 - 1;Z1 - 1 <= (1 - z12);- m (1 - z12) <= x - 5;x - 5 <= M(1 - z12);gydF4y2Ba

指定gydF4y2Baz13gydF4y2Ba,使用这三个约束条件。gydF4y2Ba

-(1 - z13) <= z1;Z1 <= (1 - z13);x - 5 >= - m (1 - z13);gydF4y2Ba

要完成模型,请指定类似的约束gydF4y2Baz21gydF4y2Ba,gydF4y2Baz22gydF4y2Ba,gydF4y2Baz23gydF4y2Ba对应于gydF4y2Baz2gydF4y2Ba以及条件gydF4y2BaxgydF4y2Ba= 5gydF4y2Ba.gydF4y2Ba

例:将二元二次问题转化为二元线性问题gydF4y2Ba

考虑一下二元变量的问题gydF4y2BaxgydF4y2Ba我gydF4y2Ba最小化的gydF4y2Ba

xgydF4y2BaTgydF4y2Ba问gydF4y2BaxgydF4y2Ba,gydF4y2Ba

在哪里gydF4y2BaxgydF4y2Ba优化变量的列向量是长度的吗gydF4y2BaNgydF4y2Ba,gydF4y2Ba问gydF4y2Ba是给定的gydF4y2BaNgydF4y2Ba——- - - - - -gydF4y2BaNgydF4y2Ba矩阵。解决这个问题的时候gydF4y2BaNgydF4y2Ba是不是太大了,把二元二次问题转化成二元线性问题用gydF4y2BaNgydF4y2Ba——- - - - - -gydF4y2BaNgydF4y2Ba二进制变量数组gydF4y2BaxijgydF4y2Ba.如果gydF4y2BaxijgydF4y2Ba(gydF4y2Ba我gydF4y2Ba,gydF4y2BajgydF4y2Ba) =gydF4y2BaxgydF4y2Ba(gydF4y2Ba我gydF4y2Ba)*gydF4y2BaxgydF4y2Ba(gydF4y2BajgydF4y2Ba),则可以将目标函数表示为:gydF4y2Ba

sum(问:* xij,gydF4y2Ba“所有”gydF4y2Ba)gydF4y2Ba

以确保gydF4y2BaxijgydF4y2Ba变量等于gydF4y2BaxgydF4y2Ba(gydF4y2Ba我gydF4y2Ba)*gydF4y2BaxgydF4y2Ba(gydF4y2BajgydF4y2Ba),使用以下三个线性不等式约束。这段代码使用基于问题的方法。gydF4y2Ba

N = 100;gydF4y2Ba指定变量的数量gydF4y2BaX = optimvar(gydF4y2Ba“x”gydF4y2BaN =类型gydF4y2Ba“整数”gydF4y2Ba下界= 0,UpperBound = 1);Xij = optimvar(gydF4y2Ba“xij”gydF4y2BaN, N, Type =gydF4y2Ba“整数”gydF4y2Ba下界= 0,UpperBound = 1);Prob =优化问题;gydF4y2Ba当x(i) = 1和x(j) = 1时,%约束xij = 1gydF4y2Baprobe . constraints .f = xij >= repmat(x,1,N) + repmat(x',N,1) - 1;gydF4y2Ba当x(i) = 0时,约束xij = 0gydF4y2Baprobe . constraints .g = xij <= repmat(x,1,N);gydF4y2Ba当x(j) = 0时%约束xij = 0gydF4y2Baprobe . constraints .h = xij <= repmat(x',N,1);概率。目标= sum(q *xij,gydF4y2Ba“所有”gydF4y2Ba);gydF4y2Ba

既然问题的优化变量和约束条件是线性的,gydF4y2Ba解决gydF4y2Ba调用gydF4y2BaintlinproggydF4y2Ba计算解。gydF4y2Ba

[sol,fval] = solve(问题);gydF4y2Ba
使用intlinprog. ...解决问题gydF4y2Ba

的gydF4y2BaintlinproggydF4y2Ba解决方案是相当快的gydF4y2BaNgydF4y2Ba≤100,但对于较大的值减慢gydF4y2BaNgydF4y2Ba,为了合理的性能,限制在大约200个变量。gydF4y2Ba

进一步的阅读gydF4y2Ba

关于优化建模的经典著作是WilliamsgydF4y2Ba[1]gydF4y2Ba.关于为什么二进制指示变量的大m公式在数学上是完整的而不可扩展的讨论,请参阅HookergydF4y2Ba[2]gydF4y2Ba.有关在数学建模中使用二进制指示变量的更多示例,请参阅Brown和DellgydF4y2Ba[3]gydF4y2Ba史蒂文斯和帕洛赛gydF4y2Ba[4]gydF4y2Ba.gydF4y2Ba

参考文献gydF4y2Ba

威廉姆斯,H.保罗。gydF4y2Ba数学编程中的模型构建,第5版。gydF4y2Ba威利,2013年。gydF4y2Ba

妓女,约翰。gydF4y2BaMILP建模的原则性方法。gydF4y2Ba卡内基梅隆大学,2008年。可以在gydF4y2Bahttps://coral.ise.lehigh.edu/mip-2008/talks/hooker.pdfgydF4y2Ba.gydF4y2Ba

布朗,杰拉德·G.和罗伯特·f·戴尔。gydF4y2Ba制定整数线性规划:一个流氓的画廊。gydF4y2Ba教育学报,2007年第2期,第153-159页。可以在gydF4y2Bahttps://doi.org/10.1287/ited.7.2.153gydF4y2Ba.gydF4y2Ba

史蒂文斯,斯科特P.和苏珊W.帕洛克赛。gydF4y2Ba整数线性规划中二元变量的教学使用:逻辑条件的表述。gydF4y2Ba教育科学通报,2017年第1期,pp. 28-36。可以在gydF4y2Bahttps://doi.org/10.1287/ited.2017.0177gydF4y2Ba.gydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba(全局优化工具箱)gydF4y2Ba|gydF4y2Ba(全局优化工具箱)gydF4y2Ba|gydF4y2Ba(全局优化工具箱)gydF4y2Ba

相关的话题gydF4y2Ba