首页 文章

MATLAB中使用Opti Toolbox的混合整数二次规划

提问于
浏览
2

我希望使用MATLAB中的OPTI工具箱解决具有线性约束的混合整数二次规划 . 我希望我的一些决策变量是连续的,一些决策变量是二进制的 . 我该如何指定?

1 回答

  • 2

    我希望我的一些决策变量是连续的,一些决策变量是二进制的 . 我该如何指定?

    指定哪些变量属于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 是一个包含变量的组件的向量,每个组件定义每个变量的类型,可以是

    • 连续( '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] =解决(选择)

    我希望这有帮助!

相关问题