intlinproggydF4y2Ba
混合整数线性规划(MILP)gydF4y2Ba
语法gydF4y2Ba
描述gydF4y2Ba
混合整数线性规划求解器。gydF4y2Ba
查找指定的问题的最小值gydF4y2Ba
fgydF4y2Ba,gydF4y2BaxgydF4y2Baintcon,gydF4y2BabgydF4y2Ba,gydF4y2Ba说真的gydF4y2Ba,gydF4y2Ba磅gydF4y2Ba,gydF4y2Ba乌兰巴托gydF4y2Ba是向量,并且gydF4y2Ba一个gydF4y2Ba和gydF4y2BaAeqgydF4y2Ba矩阵。gydF4y2Ba
你可以指定gydF4y2BafgydF4y2Baintcon,gydF4y2Ba磅gydF4y2Ba,gydF4y2Ba乌兰巴托gydF4y2Ba向量或数组。看到gydF4y2Ba矩阵的参数gydF4y2Ba.gydF4y2Ba
请注意gydF4y2Ba
intlinproggydF4y2Ba
仅适用于基于求解器的方法。有关这两种优化方法的讨论,请参见gydF4y2Ba首先选择基于问题或基于解决方案的方法gydF4y2Ba.gydF4y2Ba
解决了最小值gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaintcongydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
)gydF4y2Baf ' * xgydF4y2Ba
这样的组成部分gydF4y2BaxgydF4y2Ba
在gydF4y2BaintcongydF4y2Ba
都是整数,且gydF4y2BaA*x≤bgydF4y2Ba
.gydF4y2Ba
在满足等式约束的同时解决了上述问题gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaintcongydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaAeqgydF4y2Ba
,gydF4y2Ba说真的gydF4y2Ba
)gydF4y2BaAeq*x = beqgydF4y2Ba
.集gydF4y2BaA = []gydF4y2Ba
和gydF4y2BaB = []gydF4y2Ba
如果不存在不平等。gydF4y2Ba
定义一组设计变量的下界和上界,gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaintcongydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaAeqgydF4y2Ba
,gydF4y2Ba说真的gydF4y2Ba
,gydF4y2Ba磅gydF4y2Ba
,gydF4y2Ba乌兰巴托gydF4y2Ba
)gydF4y2BaxgydF4y2Ba
,使解总是在值域内gydF4y2BaLb≤x≤ubgydF4y2Ba
.集gydF4y2BaAeq = []gydF4y2Ba
和gydF4y2BaBeq = []gydF4y2Ba
如果等式不存在。gydF4y2Ba
利用初始可行点进行优化gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaintcongydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaAeqgydF4y2Ba
,gydF4y2Ba说真的gydF4y2Ba
,gydF4y2Ba磅gydF4y2Ba
,gydF4y2Ba乌兰巴托gydF4y2Ba
,gydF4y2Bax0gydF4y2Ba
)gydF4y2Bax0gydF4y2Ba
.集gydF4y2BaLb = []gydF4y2Ba
和gydF4y2BaUb = []gydF4y2Ba
如果不存在边界。gydF4y2Ba
中指定的优化选项的使用最小化gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2BafgydF4y2Ba
,gydF4y2BaintcongydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaAeqgydF4y2Ba
,gydF4y2Ba说真的gydF4y2Ba
,gydF4y2Ba磅gydF4y2Ba
,gydF4y2Ba乌兰巴托gydF4y2Ba
,gydF4y2Bax0gydF4y2Ba
,gydF4y2Ba选项gydF4y2Ba
)gydF4y2Ba选项gydF4y2Ba
.使用gydF4y2BaoptimoptionsgydF4y2Ba
设置这些选项。集gydF4y2BaX0 = []gydF4y2Ba
如果不存在初始点。gydF4y2Ba
使用一个gydF4y2BaxgydF4y2Ba
= intlinprog (gydF4y2Ba问题gydF4y2Ba
)gydF4y2Ba问题gydF4y2Ba
结构封装所有求解器输入。您可以导入gydF4y2Ba问题gydF4y2Ba
结构从MPS文件使用gydF4y2BampsreadgydF4y2Ba
.您还可以创建一个gydF4y2Ba问题gydF4y2Ba
结构,从gydF4y2BaOptimizationProblemgydF4y2Ba
对象,使用gydF4y2Baprob2structgydF4y2Ba
.gydF4y2Ba
[gydF4y2Ba
,对于上面描述的任何输入参数,返回gydF4y2BaxgydF4y2Ba
,gydF4y2BafvalgydF4y2Ba
,gydF4y2BaexitflaggydF4y2Ba
,gydF4y2Ba输出gydF4y2Ba
= intlinprog(gydF4y2Ba___gydF4y2Ba)gydF4y2BaFval = f'*xgydF4y2Ba
,一个值gydF4y2BaexitflaggydF4y2Ba
描述退出条件,以及结构gydF4y2Ba输出gydF4y2Ba
包含关于优化过程的信息。gydF4y2Ba
例子gydF4y2Ba
输入参数gydF4y2Ba
输出参数gydF4y2Ba
限制gydF4y2Ba
通常,解决方案的一些假定的整数值组件gydF4y2Ba
x (intCon)gydF4y2Ba
不是精确的整数。gydF4y2BaintlinproggydF4y2Ba
将内的所有解值视为整数gydF4y2BaIntegerTolerancegydF4y2Ba
整数的。gydF4y2Ba若要将所有假定的整数舍入为完全整数,请使用gydF4y2Ba
轮gydF4y2Ba
函数。gydF4y2BaX (intcon) = round(X (intcon));gydF4y2Ba
谨慎gydF4y2Ba
舍入解决方案可能导致解决方案变得不可行的。四舍五入后检查可行性:gydF4y2Ba
max(A*x - b)gydF4y2Ba%看条目是不是太正,所以有小的不可行性gydF4y2Bamax(Aeq*x - beq))gydF4y2Ba查看条目是否足够接近零gydF4y2BaMax (x - ub)gydF4y2Ba正条目违反了边界gydF4y2Ba最大(lb - x)gydF4y2Ba正条目违反了边界gydF4y2Ba
intlinproggydF4y2Ba
当解决方案组件的绝对值超过时,是否强制它们为整数值gydF4y2Ba2.1 e9gydF4y2Ba
.当你的解决方案有这样的组件时,gydF4y2BaintlinproggydF4y2Ba
警告你。如果收到此警告,请检查解决方案,查看解决方案中假定的整数值组件是否接近整数。gydF4y2BaintlinproggydF4y2Ba
不允许问题的组成部分,如系数gydF4y2BafgydF4y2Ba
,gydF4y2Ba一个gydF4y2Ba
,或gydF4y2Ba乌兰巴托gydF4y2Ba
,超过gydF4y2Ba1 e25gydF4y2Ba
绝对值。如果你想逃跑gydF4y2BaintlinproggydF4y2Ba
有了这样的问题,gydF4y2BaintlinproggydF4y2Ba
产生一个错误。gydF4y2Ba
提示gydF4y2Ba
若要指定二进制变量,请将变量设置为中的整数gydF4y2Ba
intcongydF4y2Ba
的下界gydF4y2Ba0gydF4y2Ba
的上界gydF4y2Ba1gydF4y2Ba
.gydF4y2Ba通过指定稀疏线性约束矩阵节省内存gydF4y2Ba
一个gydF4y2Ba
和gydF4y2BaAeqgydF4y2Ba
.但是,不能将稀疏矩阵用于gydF4y2BabgydF4y2Ba
和gydF4y2Ba说真的gydF4y2Ba
.gydF4y2Ba如果你包括gydF4y2Ba
x0gydF4y2Ba
参数,gydF4y2BaintlinproggydF4y2Ba
方法中使用该值gydF4y2Ba“rin”gydF4y2Ba
引导潜水启发式直到找到更好的整数可行点。所以当你提供gydF4y2Bax0gydF4y2Ba
时,可通过设置gydF4y2Ba“启发式”gydF4y2Ba
选项gydF4y2Ba“rins-diving”gydF4y2Ba
或者另一种设置gydF4y2Ba“rin”gydF4y2Ba
.gydF4y2Ba为整数分量提供逻辑索引,即二进制向量gydF4y2Ba
1gydF4y2Ba
表示整数,转换为gydF4y2BaintcongydF4y2Ba
形式使用gydF4y2Ba找到gydF4y2Ba
.例如,gydF4y2BaLogicalindices = [1,0,0,1,1,0,0];Intcon = find(logicalindexes)gydF4y2Ba
5 . Intcon = 1 4gydF4y2Ba
intlinproggydF4y2Ba
替换gydF4y2BabintproggydF4y2Ba
.更新旧的gydF4y2BabintproggydF4y2Ba
使用的代码gydF4y2BaintlinproggydF4y2Ba
,进行以下更改:gydF4y2Ba集gydF4y2Ba
intcongydF4y2Ba
来gydF4y2Ba1: numVarsgydF4y2Ba
,在那里gydF4y2BanumVarsgydF4y2Ba
是问题中变量的数量。gydF4y2Ba集gydF4y2Ba
磅gydF4y2Ba
来gydF4y2Ba0 (numVars, 1)gydF4y2Ba
.gydF4y2Ba集gydF4y2Ba
乌兰巴托gydF4y2Ba
来gydF4y2Ba的(numVars, 1)gydF4y2Ba
.gydF4y2Ba更新任何相关选项。使用gydF4y2Ba
optimoptionsgydF4y2Ba
创建以下选项:gydF4y2BaintlinproggydF4y2Ba
.gydF4y2Ba将电话更改为gydF4y2Ba
bintproggydF4y2Ba
如下:gydF4y2Ba[x,fval,exitflag,output] = bintprog(f,A,b,Aeq,Beq,x0,options)gydF4y2Ba将您的电话更改为:gydF4y2Ba[x,fval,exitflag,output] = intlinprog(f,intcon,A,b,Aeq,Beq,lb,ub,x0,options)gydF4y2Ba
选择功能gydF4y2Ba
应用程序gydF4y2Ba
的gydF4y2Ba优化gydF4y2Ba活动编辑器任务提供了一个可视化界面gydF4y2BaintlinproggydF4y2Ba
.gydF4y2Ba
版本历史gydF4y2Ba
在R2014a中引入gydF4y2Ba另请参阅gydF4y2Ba
linproggydF4y2Ba
|gydF4y2BampsreadgydF4y2Ba
|gydF4y2BaoptimoptionsgydF4y2Ba
|gydF4y2Baprob2structgydF4y2Ba
|gydF4y2Ba优化gydF4y2Ba