我希望使用 MATLAB 中的 OPTI 工具箱求解具有线性约束的混合整数二次程序。我希望我的一些决策变量是连续的,而一些决策变量是二元的。我该如何指定?
问问题
1405 次
1 回答
2
我希望我的一些决策变量是连续的,而一些决策变量是二元的。我该如何指定?
本页底部显示了指定哪些变量属于哪种类型的方法。
报价:
示例 5:指定长整型变量字符串
我们遇到的一个常见问题是当您有很多整数变量时如何指定 xtype。假设您的变量是有序的(即连续变量、整数变量和二进制变量位于连续组中),以下示例显示了输入它们的速记技巧。
% Objective nC = 10; %Number of Continuous Variables nI = 10; %Number of Integer Variables nB = 10; %Number of Binary Variables % Build xtype vector xtype = [repmat('C',1,nC),repmat('I',1,nI),repmat('B',1,nB)]
向量也是如此xtype
,它的分量和变量一样多,每个分量都定义了每个变量的类型,可以是
- 连续 (
'C'
) - 整数 (
'I'
) - 二进制 (
'B'
)
指定后xtype
,您需要将其传递给 OPTI 对象,如下例所示:
% Objective H = [1 -1; -1 2]; %Objective Function (min 0.5x'Hx + f'x) f = -[2 6]'; % Constraints A = [1,1; -1,2; 2, 1]; %Linear Inequality Constraints (Ax <= b) b = [2;2;3]; lb = [0;0]; %Bounds on x (lb <= x) % Integer Constraints - We do it as above (using repmat) in your case xtype = 'IC'; % Create OPTI Object Opt = opti('qp',H,f,'ineq',A,b,'lb',lb,'xtype',xtype) % Solve the MIQP problem [x,fval,exitflag,info] = solve(Opt)
我希望这有帮助!
于 2014-08-23T14:36:33.103 回答