Main Content

OptimizationConstraint

최적화 제약 조건

설명

OptimizationConstraint 객체는 OptimizationVariable 객체 또는 OptimizationExpression 객체에 대한 제약 조건을 포함합니다. 각 제약 조건은 비교 연산자 ==, <= 또는 >= 중 하나를 사용합니다.

단일 명령문은 제약 조건으로 구성된 하나의 배열을 나타낼 수 있습니다. 예를 들어 루프에서 간단한 제약 조건 만들기 항목에 나와 있듯이 행렬 변수 x의 각 행의 합이 1이라는 제약 조건을 표현할 수 있습니다.

전체 워크플로는 문제 기반 최적화 워크플로 또는 방정식 풀이를 위한 문제 기반 워크플로 항목을 참조하십시오.

생성

optimconstr을 사용하여 빈 constraint 객체를 만듭니다. 일반적으로 루프를 사용하여 객체의 표현식을 채웁니다.

비교 연산자 ==, <= 또는 >=를 사용하여 최적화 변수에서 최적화 표현식을 만드는 경우, 결과로 생성되는 객체는 OptimizationEquality 또는 OptimizationInequality입니다. 호환성 관련 고려 사항 항목을 참조하십시오.

점 표기법을 사용하여 최적화 문제의 Constraints 속성에 제약 조건을 포함합니다.

prob = optimproblem;
x = optimvar('x',5,3);
rowsum = optimconstr(5);
for i = 1:5
    rowsum(i) = sum(x(i,:)) == i;
end
prob.Constraints.rowsum = rowsum;

속성

모두 확장

인덱스 이름으로, string형 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 인덱스 이름 사용에 관한 자세한 내용은 Named Index for Optimization Variables 항목을 참조하십시오.

데이터형: cell

읽기 전용 속성입니다.

객체의 최적화 변수로, OptimizationVariable 객체의 구조체로 지정됩니다.

데이터형: struct

객체 함수

infeasibilityConstraint violation at a point
showoptimization 객체에 대한 정보 표시
writeSave optimization object description

예제

모두 축소

5×3 최적화 변수 x를 만듭니다.

x = optimvar('x',5,3);

루프를 사용하여 각 행의 합이 1이라는 제약 조건을 만듭니다. optimconstr을 사용하여 루프를 초기화합니다.

rowsum = optimconstr(5);
for i = 1:5
    rowsum(i) = sum(x(i,:)) == 1;
end

rowsum 객체를 검사합니다.

rowsum
rowsum = 
  5x1 Linear OptimizationConstraint array with properties:

    IndexNames: {{}  {}}
     Variables: [1x1 struct] containing 1 OptimizationVariable

  See constraint formulation with show.

rowsum의 제약 조건을 표시합니다.

show(rowsum)
(1, 1)

  x(1, 1) + x(1, 2) + x(1, 3) == 1

(2, 1)

  x(2, 1) + x(2, 2) + x(2, 3) == 1

(3, 1)

  x(3, 1) + x(3, 2) + x(3, 3) == 1

(4, 1)

  x(4, 1) + x(4, 2) + x(4, 3) == 1

(5, 1)

  x(5, 1) + x(5, 2) + x(5, 3) == 1

버전 내역

R2017b에 개발됨

모두 확장