Main Content

선형 제약 조건

선형 제약 조건이란?

여러 최적화 솔버가 선형 제약 조건을 허용합니다. 선형 제약 조건은 선형 등식 또는 선형 부등식을 충족하도록 해 x에 적용되는 제한 사항입니다. 선형 제약 조건을 허용하는 솔버에는 fmincon, intlinprog, linprog, lsqlin, quadprog, 다중 목적 함수 솔버 및 몇몇 Global Optimization Toolbox 솔버가 포함됩니다.

선형 부등식 제약 조건

선형 부등식 제약 조건은 A·x ≤ b 형식입니다. A가 m×n이면 n개의 성분을 갖는 변수 x에 m개의 제약 조건이 있습니다. 사용자는 m×n 행렬 A와 m개의 성분으로 구성된 벡터 b를 제공합니다.

선형 부등식 제약 조건을 A 인수 및 b 인수로 전달합니다.

예를 들어, 다음과 같은 선형 부등식을 제약 조건으로 갖는다고 가정하겠습니다.

x1 + x3 ≤ 4,
2x2 – x3 ≥ –2,
x1 – x2 + x3 – x4 ≥ 9.

여기에서 m = 3이고 n = 4입니다.

제약 조건을 아래와 같은 행렬 A와 벡터 b를 사용하여 작성합니다.

A=[101002101111],b=[429].

"보다 큼" 부등식을 "보다 작음" 부등식 형식으로 변환하기 위해 먼저 "보다 큼" 부등식에 –1을 곱했습니다. MATLAB® 구문에서는 다음과 같습니다.

A = [1 0 1 0;
    0 -2 1 0;
    -1 1 -1 1];
b = [4;2;-9];

선형 제약 조건에 대해 기울기를 지정할 필요가 없습니다. 솔버가 기울기를 자동으로 계산합니다. 선형 제약 조건은 헤세 행렬에는 영향을 주지 않습니다.

사용자가 초기점 x0을 행렬로 전달하더라도 솔버는 현재 점 x를 열 벡터로서 선형 제약 조건에 전달합니다. 행렬 인수 항목을 참조하십시오.

선형 제약 조건의 더 복잡한 예를 보려면 선형 계획 설정하기, 솔버 기반 항목을 참조하십시오.

중간 반복이 선형 제약 조건을 위반할 수 있습니다. Iterations Can Violate Constraints 항목을 참조하십시오.

선형 등식 제약 조건

선형 등식은 Aeq·x = beq 형식입니다. 이는 n개의 성분으로 구성된 벡터 x에 대한 m개의 방정식을 나타냅니다. 사용자는 m×n 행렬 Aeq와 m개의 성분으로 구성된 벡터 beq를 제공합니다.

선형 부등식 제약 조건에서 Ab 인수에 대해 설명된 것과 같은 방식으로, 선형 등식 제약 조건을 Aeq 인수 및 beq 인수로 전달합니다.

관련 항목