混合整数线性规划(MILP)gydF4y2Ba
混合整数线性编程求解器。gydF4y2Ba
查找最低问题所指定的问题gydF4y2Ba
fgydF4y2Ba,gydF4y2BaxgydF4y2Ba,intcon,gydF4y2BabgydF4y2Ba,gydF4y2Ba贝卡gydF4y2Ba,gydF4y2Ba磅gydF4y2Ba, 和gydF4y2BaUB.gydF4y2Ba向量,gydF4y2Ba一个gydF4y2Ba和gydF4y2BaAeqgydF4y2Ba是矩阵。gydF4y2Ba
您可以指定gydF4y2BafgydF4y2Ba,intcon,gydF4y2Ba磅gydF4y2Ba, 和gydF4y2BaUB.gydF4y2Ba作为载体或数组。看到gydF4y2Ba矩阵论据gydF4y2Ba.gydF4y2Ba
笔记gydF4y2Ba
intlinprog.gydF4y2Ba
仅适用于基于求解器的方法。有关这两种优化方法的讨论,请参见gydF4y2Ba首先选择基于问题或基于解决者的方法gydF4y2Ba.gydF4y2Ba
解决分钟gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaIntcon.gydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
)gydF4y2Baf'* xgydF4y2Ba
这样的组件gydF4y2BaxgydF4y2Ba
在gydF4y2BaIntcon.gydF4y2Ba
是整数,gydF4y2Baa *x≤bgydF4y2Ba
.gydF4y2Ba
在满足等式约束的同时,解决了上述问题gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaIntcon.gydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaAeqgydF4y2Ba
,gydF4y2Ba贝卡gydF4y2Ba
)gydF4y2Baaeq * x = beqgydF4y2Ba
.放gydF4y2Baa = []gydF4y2Ba
和gydF4y2Bab = []gydF4y2Ba
如果不存在不平等。gydF4y2Ba
在设计变量上定义一组下限和上限,gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaIntcon.gydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaAeqgydF4y2Ba
,gydF4y2Ba贝卡gydF4y2Ba
,gydF4y2Ba磅gydF4y2Ba
,gydF4y2BaUB.gydF4y2Ba
)gydF4y2BaxgydF4y2Ba
,所以解总是在这个范围内gydF4y2Balb≤x≤ubgydF4y2Ba
.放gydF4y2BaAeq = []gydF4y2Ba
和gydF4y2Babeq = []gydF4y2Ba
如果不存在平等。gydF4y2Ba
使用初始可行点优化gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaIntcon.gydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaAeqgydF4y2Ba
,gydF4y2Ba贝卡gydF4y2Ba
,gydF4y2Ba磅gydF4y2Ba
,gydF4y2BaUB.gydF4y2Ba
,gydF4y2BaX0.gydF4y2Ba
)gydF4y2BaX0.gydF4y2Ba
.放gydF4y2Ba磅= []gydF4y2Ba
和gydF4y2Ba乌兰巴托= []gydF4y2Ba
如果没有界限。gydF4y2Ba
使用指定的优化选项最小化gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaIntcon.gydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaAeqgydF4y2Ba
,gydF4y2Ba贝卡gydF4y2Ba
,gydF4y2Ba磅gydF4y2Ba
,gydF4y2BaUB.gydF4y2Ba
,gydF4y2BaX0.gydF4y2Ba
,gydF4y2Ba选项gydF4y2Ba
)gydF4y2Ba选项gydF4y2Ba
.使用gydF4y2BaoptimoptionsgydF4y2Ba
设置这些选项。放gydF4y2Bax0 = []gydF4y2Ba
如果没有初始点。gydF4y2Ba
使用一个gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2Ba问题gydF4y2Ba
)gydF4y2Ba问题gydF4y2Ba
结构来封装所有求解器输入。您可以导入gydF4y2Ba问题gydF4y2Ba
使用MPS文件的结构gydF4y2Ba硕士gydF4y2Ba
.您也可以创建一个gydF4y2Ba问题gydF4y2Ba
来自A.的结构gydF4y2Ba优化问题gydF4y2Ba
通过使用gydF4y2Baprob2struct.gydF4y2Ba
.gydF4y2Ba
[gydF4y2Ba
,对于上述任何输入参数,返回gydF4y2BaxgydF4y2Ba
,gydF4y2Bafval.gydF4y2Ba
,gydF4y2BaexitflaggydF4y2Ba
,gydF4y2Ba输出gydF4y2Ba
] = intlinprog(gydF4y2Ba___gydF4y2Ba)gydF4y2Bafval = f ' * xgydF4y2Ba
,一个值gydF4y2BaexitflaggydF4y2Ba
描述退出条件和结构gydF4y2Ba输出gydF4y2Ba
包含优化过程的信息。gydF4y2Ba
通常,解决方案中的一些被认为是整数值的组件gydF4y2Bax (intCon)gydF4y2Ba
不是精确的整数。gydF4y2Baintlinprog.gydF4y2Ba
作为整数所有解决方案价值的IntemsgydF4y2Baintegertolerance.gydF4y2Ba
整数。gydF4y2Ba
为了让所有的整数都是整数,使用gydF4y2Ba圆形的gydF4y2Ba
函数。gydF4y2Ba
x(intcon)= round(x(intcon));gydF4y2Ba
谨慎gydF4y2Ba
四舍五入的解决方案金宝搏官方网站会导致解决方案变得不可行的。四舍五入后检查可行性:gydF4y2Ba
最大(a * x - b)gydF4y2Ba%看,如果参赛作品不是太阳,所以有很小的不可行性gydF4y2Bamax(abs(aeq * x - beq))gydF4y2Ba%看条目是否足够零gydF4y2Ba马克斯(x -乌兰巴托)gydF4y2Ba%正数条目被违反界限gydF4y2Bamax(lb - x)gydF4y2Ba%正数条目被违反界限gydF4y2Ba
intlinprog.gydF4y2Ba
当解决方案组件的绝对值超过时,不强制其为整数值吗gydF4y2Ba2.1E9gydF4y2Ba
.当你的解决方案有这样的组件时,gydF4y2Baintlinprog.gydF4y2Ba
警告你。如果收到此警告,请检查解,看看解中假定的整数值分量是否接近整数。gydF4y2Ba
intlinprog.gydF4y2Ba
不允许问题的组件,例如系数gydF4y2BafgydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
, 要么gydF4y2BaUB.gydF4y2Ba
,超过gydF4y2Ba1E25gydF4y2Ba
按绝对价值。如果你想逃跑gydF4y2Baintlinprog.gydF4y2Ba
有这样的问题,gydF4y2Baintlinprog.gydF4y2Ba
发出错误。gydF4y2Ba
要指定二进制变量,请将变量设置为整数gydF4y2BaIntcon.gydF4y2Ba
,并给他们下限gydF4y2Ba0gydF4y2Ba
的上界gydF4y2Ba1gydF4y2Ba
.gydF4y2Ba
通过指定稀疏线性约束矩阵来保存内存gydF4y2Ba一个gydF4y2Ba
和gydF4y2BaAeqgydF4y2Ba
.但是,您不能使用稀疏矩阵gydF4y2BabgydF4y2Ba
和gydF4y2Ba贝卡gydF4y2Ba
.gydF4y2Ba
如果你包括一个gydF4y2BaX0.gydF4y2Ba
争论,gydF4y2Baintlinprog.gydF4y2Ba
使用该值gydF4y2Ba'rins'gydF4y2Ba
引导潜水启发式,直到找到更好的整数可行点。所以当你提供gydF4y2BaX0.gydF4y2Ba
,可以通过设置gydF4y2Ba'启发式'gydF4y2Ba
选择gydF4y2Ba“rins-diving”gydF4y2Ba
或者使用的另一个设置gydF4y2Ba'rins'gydF4y2Ba
.gydF4y2Ba
要为整数组件提供逻辑指标,这意味着二进制向量gydF4y2Ba1gydF4y2Ba
表示整数,转换为gydF4y2BaIntcon.gydF4y2Ba
形式使用gydF4y2Ba寻找gydF4y2Ba
.例如,gydF4y2Ba
logicalindices = [1,0,0,1,1,0,0];Intcon = find(logicalindices)gydF4y2Ba
Intcon = 1 4 5gydF4y2Ba
intlinprog.gydF4y2Ba
替换gydF4y2BabintproggydF4y2Ba
.更新旧gydF4y2BabintproggydF4y2Ba
代码来使用gydF4y2Baintlinprog.gydF4y2Ba
,进行以下更改:gydF4y2Ba
放gydF4y2BaIntcon.gydF4y2Ba
到gydF4y2Ba1:numvars.gydF4y2Ba
,在那里gydF4y2BanumVarsgydF4y2Ba
是您问题的变量数。gydF4y2Ba
放gydF4y2Ba磅gydF4y2Ba
到gydF4y2Ba零(Numvars,1)gydF4y2Ba
.gydF4y2Ba
放gydF4y2BaUB.gydF4y2Ba
到gydF4y2Ba的(numVars, 1)gydF4y2Ba
.gydF4y2Ba
更新任何相关选项。使用gydF4y2BaoptimoptionsgydF4y2Ba
创建选项gydF4y2Baintlinprog.gydF4y2Ba
.gydF4y2Ba
把你的电话改成gydF4y2BabintproggydF4y2Ba
如下:gydF4y2Ba
[x,fval,ExitFlag,输出] = Bintprog(F,A,B,AEQ,BEQ,X0,选项)gydF4y2Ba将您的电话更改为:gydF4y2Ba[x, fval exitflag、输出]= intlinprog (f intcon A、b Aeq,说真的,磅,乌兰巴托,x0,选项)gydF4y2Ba
的gydF4y2Ba优化gydF4y2BaLive Editor任务提供可视界面gydF4y2Baintlinprog.gydF4y2Ba
.gydF4y2Ba
linprog.gydF4y2Ba
|gydF4y2Ba硕士gydF4y2Ba
|gydF4y2Ba优化gydF4y2Ba|gydF4y2BaoptimoptionsgydF4y2Ba
|gydF4y2Baprob2struct.gydF4y2Ba