Main Content

SecondOrderConeConstraint

2차 원뿔 제약 조건 객체

R2020b 이후

설명

SecondOrderConeConstraint는 다음과 같은 2차 원뿔 제약 조건을 나타냅니다.

AxbdTxγ

  • A 행렬은 원뿔의 선형 인자를 나타냅니다.

  • b 벡터는 원뿔의 중심을 나타냅니다.

  • d 벡터는 선형 범위를 나타냅니다.

  • γ 스칼라는 범위를 나타냅니다.

coneprog 함수를 사용하여 2차 원뿔 제약 조건이 있는 문제를 풉니다.

생성

secondordercone 함수를 사용하여 SecondOrderConeConstraint 객체를 만듭니다.

속성

모두 확장

원뿔의 선형 인자로, 실수 행렬로 지정됩니다.

데이터형: double

원뿔의 중심으로, 실수형 벡터로 지정됩니다.

데이터형: double

선형 범위로, 실수형 벡터로 지정됩니다.

데이터형: double

범위로, 실수형 스칼라로 지정됩니다. gamma의 값이 작을수록 제약 조건이 느슨해집니다.

데이터형: double

객체 함수

예제

모두 축소

2차 원뿔 제약 조건이 있는 문제를 설정하려면 2차 원뿔 제약 조건 객체를 만듭니다.

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

목적 함수 벡터를 만듭니다.

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

문제에 선형 제약 조건이 없습니다. 다음과 같이 제약 조건에 대해 빈 행렬을 만듭니다.

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

x(3)의 상한과 하한을 설정합니다.

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

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

해 성분 x(3)은 상한에 있습니다. 원뿔 제약 조건은 해에서 활성 상태입니다.

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

여러 2차 원뿔 제약 조건이 있는 문제를 설정하려면 제약 조건 객체로 구성된 배열을 만듭니다. 시간과 메모리를 절약하려면 먼저 가장 높은 인덱스 제약 조건을 만듭니다.

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);

선형 목적 함수 벡터를 만듭니다.

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

coneprog 함수를 사용하여 문제를 풉니다.

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

    0.4238
    1.6477
    2.3225

fval = -13.0089

버전 내역

R2020b에 개발됨