我希望使用MATLAB中的OPTI工具箱解决具有线性约束的混合整数二次规划 . 我希望我的一些决策变量是连续的,一些决策变量是二进制的 . 我该如何指定?
我希望我的一些决策变量是连续的,一些决策变量是二进制的 . 我该如何指定?
指定哪些变量属于bottom of this page的方式 .
引用:
示例5:指定长整数变量字符串我们得到的一个常见问题是,当您有许多整数变量时,如何指定xtype . 假设您的变量是有序的(即连续变量,整数变量和二进制变量都在连续的组中),下面的示例显示了一个输入它们的速记技巧 . %目标nC = 10; %连续变量数nI = 10; %整数变量数nB = 10; %二进制变量的数量
%构建xtype向量xtype = [repmat('C',1,nC),repmat('I',1,nI),repmat('B',1,nB)]
所以 xtype 是一个包含变量的组件的向量,每个组件定义每个变量的类型,可以是
xtype
连续( 'C' )
'C'
整数( 'I' )
'I'
二进制( 'B' )
'B'
指定 xtype 后,需要将其传递给OPTI对象,如this example所示:
%目标H = [1 -1; -1 2]; %目标函数(最小0.5x'Hx f'x)f = - [2 6]';
%约束A = [1,1; -1,2; 2,1]; %线性不等式约束(Ax <= b)b = [2; 2; 3];lb = [0; 0]; x上的%边界(lb <= x)
%整数约束 - 我们在您的情况下如上所述(使用repmat)xtype ='IC';
%创建OPTI对象Opt = opti('qp',H,f,'ineq',A,b,'lb',lb,'xtype',xtype)
%解决MIQP问题[x,fval,exitflag,info] =解决(选择)
我希望这有帮助!
1 回答
指定哪些变量属于bottom of this page的方式 .
引用:
%构建xtype向量
xtype = [repmat('C',1,nC),repmat('I',1,nI),repmat('B',1,nB)]
所以
xtype
是一个包含变量的组件的向量,每个组件定义每个变量的类型,可以是连续(
'C'
)整数(
'I'
)二进制(
'B'
)指定
xtype
后,需要将其传递给OPTI对象,如this example所示:%约束
A = [1,1; -1,2; 2,1]; %线性不等式约束(Ax <= b)
b = [2; 2; 3];
lb = [0; 0]; x上的%边界(lb <= x)
%整数约束 - 我们在您的情况下如上所述(使用repmat)
xtype ='IC';
%创建OPTI对象
Opt = opti('qp',H,f,'ineq',A,b,'lb',lb,'xtype',xtype)
%解决MIQP问题
[x,fval,exitflag,info] =解决(选择)
我希望这有帮助!