Main Content

SecondOrderConeConstraint

Objeto de restricción de cono de segundo orden

Desde R2020b

Descripción

SecondOrderConeConstraint representa la restricción de cono de segundo orden

AxbdTxγ

  • La matriz A representa el factor lineal del cono.

  • El vector b representa el centro del cono.

  • El vector d representa un límite lineal.

  • El escalar γ representa un límite.

Resuelva problemas con restricciones de cono de segundo orden utilizando la función coneprog.

Creación

Cree un objeto SecondOrderConeConstraint utilizando la función secondordercone.

Propiedades

expandir todo

Factor lineal del cono, especificado como matriz real.

Tipos de datos: double

Centro del cono, especificado como vector real.

Tipos de datos: double

Límite lineal, especificado como vector real.

Tipos de datos: double

Límite, especificado como escalar real. Los valores más pequeños de gamma corresponden a restricciones más flexibles.

Tipos de datos: double

Funciones del objeto

Ejemplos

contraer todo

Para configurar un problema con una restricción de cono de segundo orden, cree un objeto de restricción de cono de segundo orden.

A = diag([1,1/2,0]);
b = zeros(3,1);
d = [0;0;1];
gamma = 0;
socConstraints = secondordercone(A,b,d,gamma);

Cree un vector de función objetivo.

f = [-1,-2,0];

El problema no tiene restricciones lineales. Cree matrices vacías para estas restricciones.

Aineq = [];
bineq = [];
Aeq = [];
beq = [];

Establezca los límites superiores e inferiores en x(3).

lb = [-Inf,-Inf,0];
ub = [Inf,Inf,2];

Resuelva el problema utilizando la función coneprog.

[x,fval] = coneprog(f,socConstraints,Aineq,bineq,Aeq,beq,lb,ub)
Optimal solution found.
x = 3×1

    0.4851
    3.8806
    2.0000

fval = -8.2462

El componente de la solución x(3) está en su límite superior. La restricción de cono se encuentra activa en la solución:

norm(A*x-b) - d'*x % Near 0 when the constraint is active
ans = -2.5677e-08

Para configurar un problema con varias restricciones de cono de segundo orden, cree un arreglo de objetos de restricción. Para ahorrar tiempo y memoria, cree primero la restricción con el mayor índice.

A = diag([1,2,0]);
b = zeros(3,1);
d = [0;0;1];
gamma = -1;
socConstraints(3) = secondordercone(A,b,d,gamma);

A = diag([3,0,1]);
d = [0;1;0];
socConstraints(2) = secondordercone(A,b,d,gamma);

A = diag([0;1/2;1/2]);
d = [1;0;0];
socConstraints(1) = secondordercone(A,b,d,gamma);

Cree el vector de la función objetivo lineal.

f = [-1;-2;-4];

Resuelva el problema utilizando la función coneprog.

[x,fval] = coneprog(f,socConstraints)
Optimal solution found.
x = 3×1

    0.4238
    1.6477
    2.3225

fval = -13.0089

Historial de versiones

Introducido en R2020b