我希望我的一些决策变量是连续的,一些决策变量是二进制的 . 我该如何指定?
引用:
示例5:指定长整数变量字符串我们得到的一个常见问题是,当您有许多整数变量时,如何指定xtype . 假设您的变量是有序的(即连续变量,整数变量和二进制变量都在连续的组中),下面的示例显示了一个输入它们的速记技巧 . %目标
nC = 10; %连续变量数
nI = 10; %整数变量数
nB = 10; %二进制变量的数量
%构建xtype向量
xtype = [repmat('C',1,nC),repmat('I',1,nI),repmat('B',1,nB)]
所以 xtype 是一个包含变量的组件的向量,每个组件定义每个变量的类型,可以是
连续( 'C' )
整数( 'I' )
二进制( '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] =解决(选择)
我希望这有帮助!