Optimization Toolbox

주요 특징

  • 비선형 및 다목적 최적화
  • 비선형 최소자승법, 데이터 Fitting, 비선형 방정식을 위한 Solver
  • 이차선형 계획법
  • 혼합 정수 선형 계획법
  • Optimization 응용 프로그램에서 최적화 문제를 정의, 해결하고 솔루션 진행을 모니터링
  • Parallel Computing Toolbox™를 통한 제약 비선형 솔버(Solver)의 가속
혼합 정수 선형 계획법 문제를 사용하여 창고와 공장에서 판매 위치로 공급하는 최적의 방법을 결정합니다.
혼합 정수 선형 계획법 문제를 사용하여 창고와 공장에서 판매 위치로 공급하는 최적의 방법을 결정합니다.

최적화 문제 정의 및 해결

최적화 문제 정의

최적화 기술은 가능한 최적의 결과를 제공하는 설계 매개 변수의 세트를 찾는 데 사용됩니다. 최적화 문제에는 두 가지 핵심 구성 요소가 있습니다.

목적함수는 최소화 또는 극대화하려는 수량을 계산합니다. 제약 조건을 추가하여 설계 매개 변수로 가능한 값을 제한할 수 있습니다.

최적화를 통한 수학적 모델링, 1부
문제 설명을 최적화를 통해 해결할 수 있는 수학적 계획법으로 전환합니다(증기 및 전기 발전소 예를 보임).

최적화를 통한 수학적 모델링, 2부
Optimization Toolbox™ Solver를 사용하여 선형 계획법을 해결합니다(증기 및 전기 발전소 예를 보임).

최적화 응용 프로그램 사용

Optimization Toolbox 함수 및 Solver 옵션을 프로그래밍 방식으로 액세스하거나 Optimization 앱을 통해 액세스할 수 있습니다.

Optimization 앱은 일반적인 최적화 작업을 간소화합니다. 다음 작업을 할 수 있습니다:

  • Solver 선택 및 최적화 문제 정의
  • 최적화 옵션과 선택한 Solver에 대해 해당 기본값 설정 및 점검
  • 문제 실행 및 중간 및 최종 결과 시각화
  • 옵션 빠른 참조 창에서 Solver 문서 보기
  • MATLAB® 작업 공간과 Optimization 앱 사이의 문제 정의, 알고리즘 옵션, 결과 가져오기 및 내보내기
  • 작업을 파악하고 자동화하기 위한 MATLAB 코드 자동 생성
  • Global Optimization Toolbox Solver 액세스

Optimization Tool 시작하기
최적화 문제를 설정하고 실행하며 중간 결과 및 최종 결과를 시각화합니다.

Solver 선택

Optimization Toolbox는 다양한 목표와 제약 유형을 위한 다양한 Solver를 포함합니다. Optimization Decision Table은 문제에 대한 최적의 Solver 선택을 돕습니다.

옵션 설정

Solver 옵션을 통해 최적화 프로세스를 튜닝 또는 수정하고 Solver 진행 상태를 시각화할 수 있습니다. 옵션 설정은 프로그래밍 방식으로 또는 Optimization 응용 프로그램을 통해 수행할 수 있습니다.

Setting Options for Optimizations
Set options with optimoptions in Optimization Toolbox™ to tune solvers and monitor optimization progress.

비선형 최적화

Optimization Toolbox는 MATLAB에서 비선형 계획법 문제를 해결하는 데 널리 사용되는 최적화 알고리즘을 제공합니다. Toolbox에는 제약 및 비제약 비선형 최적화 문제 해결을 위한 Solver와 최소자승법 최적화 Solver가 포함되어 있습니다.

비제약 비선형 최적화

Optimization Toolbox는 다음 세 개의 알고리즘을 사용하여 비제약 비선형 최소화 문제를 해결합니다:

  • Quasi-Newton 알고리즘은 헤시안 행렬의 근사치를 업데이트하기 위해 혼합된 2차 및 3차 선 검색 절차와 BFGS(Broyden-Fletcher-Goldfarb-Shanno) 공식을 사용합니다.
  • Nelder-Mead(또는 downhill simplex) 알고리즘은 함수 값만 사용하며(도함수 필요 없음) nonsmooth 목적함수를 처리하는 직접 검색 알고리즘입니다. Global Optimization Toolbox는 도함수가 필요 없는, 비선형 최적화용 알고리즘을 추가로 제공합니다.
  • trust-region 알고리즘은 비제약 비선형 문제에 사용되며 희소 또는 구조를 이용할 수 있는 대규모 문제에 특히 유용합니다.
Unconstrained nonlinear programming used to search an engine performance map for peak efficiency.
최고 효율의엔진 성능 맵 검색을 위해 비제약 비선형 최적화 사용

제약 비선형 최적화

제약 비선형 최적화 문제는 선형 또는 비선형 목적함수로 구성되어 있고 선형 및 비선형 제약을 받을 수 있습니다. Optimization Toolbox는 다음 4개의 알고리즘을 사용하여 이러한 문제를 해결합니다.

  • Interior-point 알고리즘은 일반 비선형 최적화에 사용됩니다. 희소 또는 구조를 이용할 수 있는 대규모 문제에 특히 유용하며 사용자 정의 목적함수 및 제약함수 평가 실패에도 문제가 없습니다. 이 알고리즘은 barrier 함수를 바탕으로 하며, 선택적으로 최적화 실행 과정에서 한계에 따라 모든 반복을 엄격하게 유지합니다.
  • SQP 알고리즘은 일반 비선형 최적화에 사용됩니다. 이는 모든 반복에서 한계를 적용하며 사용자 정의 목적함수 및 제약함수 평가 실패에도 문제가 없습니다.
  • active-set 알고리즘은 일반 비선형 최적화에 사용됩니다.
  • trust-region reflective 알고리즘은 한계 제약 문제 또는 선형 등식에만 사용됩니다. 이 알고리즘은 특히 대규모 문제에 유용합니다.

interior point 및 trust-region reflective 알고리즘을 사용하면 다양한 접근법을 통해 헤시안 행렬을 예측할 수 있습니다.

interior point 알고리즘의 경우 다음을 통해 헤시안 행렬을 예측할 수 있습니다.

  • BFGS(밀집)
  • 제한 메모리 BFGS(대규모 문제)
  • Hessian-multiply 함수
  • Actual Hessian(희소 또는 밀집)
  • 증감의 유한 차이(희소 구조에 대해 알 필요 없음)

trust-region reflective 알고리즘의 경우 다음을 사용할 수 있습니다.

  • 증감의 유한 차이, 헤시안의 희소 구조
  • Actual Hessian(희소 또는 밀집)
  • Hessian-multiply 함수

또한, interior-point 및 trust-region reflective 알고리즘을 사용하면 헤시안 행렬을 명확히 작성하지 않아도 함수로 헤시안과 벡터의 곱을 계산할 수 있습니다.

Constrained nonlinear programming used to design an optimal suspension system.
제약 비선형 최적화를 사용한 서스펜션 시스템 최적 설계

선형 및 이차 계획법

Optimization Toolbox는 대규모 선형 및 이차 계획법 문제를 해결할 수 있습니다.

선형 계획법

선형 계획법 문제는 경계, 선형 등식 및 부등식 제약을 받는 선형 목적함수를 최소화 또는 최대화하는 것과 연관됩니다. 선형 계획법은 금융, 에너지, 운영 연구를 비롯하여 그 외 변수 간 관계를 선형으로 표현할 수 있는 분야에서 사용됩니다.

Optimization Toolbox에는 선형 계획법 문제 해결에 사용되는 3개의 알고리즘이 포함됩니다.

  • simplex 알고리즘은 선형 계획법에 대한 후보 정점 해를 생성하고 테스트하기 위한 체계적 절차입니다. simplex 알고리즘은 선형 계획법에 가장 널리 쓰이는 알고리즘입니다.
  • interior point 알고리즘은 primal-dual predictor-corrector 알고리즘을 기반으로 하며 선형 계획법 문제 해결에 사용됩니다. 이 알고리즘은 구조가 있거나 희소 행렬로 정의할 수 있는 대규모 문제에 특히 유용합니다.
  • active-set 알고리즘은 해에 이를 때까지 활성 세트(부분적으로 활성화된 제약 서브세트)에 대한 각 반복 시 목적을 최소화합니다.
발전소의 증기 및 전력 생산 시설 설계에 선형 계획법 사용
발전소의 증기 및 전력 생산 시설 설계에 선형 계획법 사용

이차 계획법

이차 계획법 문제는 한계, 선형 등식 및 부등식 제약을 받는 다변 이차 함수를 최소화하는 것과 연관됩니다. 이차 계획법은 금융, 전기 유틸리티를 위한 발전 최적화, 공학 설계 최적화 및 기타 분야에서의 포트폴리오 최적화에 사용됩니다.

Optimization Toolbox에는 이차 계획법 해결을 위한 3개의 알고리즘이 포함됩니다.

  • interior-point-convex 알고리즘은 모든 제약 조합의 convex형 문제를 해결합니다.
  • trust-region-reflective 알고리즘은 한계 제약 문제 또는 선형 방정식 제약 문제를 해결합니다.
  • active-set 알고리즘은 모든 제약 조합의 문제를 해결합니다.

Optimization in MATLAB: An Introduction to Quadratic Programming
In this webinar, you will learn how MATLAB can be used to solve optimization problems using an example quadratic optimization problem and the symbolic math tools in MATLAB.

Interior-point-convex 및 trust-region-reflective 알고리즘은 모두 대규모이기 때문에 대규모의 희소 문제를 처리할 수 있습니다. 또한 interior-point-convex 알고리즘은 내부 선형 대수 루틴을 최적화했으며 새로운 presolve 모듈이 속도, 수치 안정성, 실행 불가 감지를 향상시킵니다.

세 가지 뮤추얼 펀드의 수익 기반 스타일 분석을 수행하는 데 이차 계획법 사용
세 가지 뮤추얼 펀드의 수익 기반 스타일 분석을 수행하는 데 이차 계획법 사용

혼합 정수 선형 계획법

혼합 정수 선형 계획법선형 계획법 문제에서 추가적인 제약조건으로 일부 또는 모든 변수가 정수형일 경우로확장하여 사용합니다.

일부 최적화 문제의 경우 변수가 소수값을 가질 수 없습니다. 예를 들어 변수가 구입할 주식의 개수를 나타내는 경우 정수 값만 가질 수 있습니다. 마찬가지로 변수가 발전기의 on/off 상태를 나타내는 경우 이진 값(0 또는 1)만 가질 수 있습니다. 혼합 정수 선형 계획법 문제는 이러한 변수가 최적 해에서 정수만 포함해야 하는 제약 조건을 추가함으로써 이러한 동작을 모델링할 수 있게 합니다.

MATLAB에서의 MILP(혼합 정수 선형 계획법)
릴리스 2014a의 MILP(혼합 정수 선형 계획법)를 위한 새로운 최적화 솔버(Solver)의 사용법을 배웁니다. 새롭게 추가된 솔버를 사용하여 정수형 타입의  최적화 문제를  해결할 수 있습니다.

Optimization Toolbox는 다음과 같은 알고리즘을 사용하여 혼합 정수 선형 계획법 문제를 해결합니다.

  • 정수 계획법 사전 처리를 수행하여 실행 가능한 영역을 좁히는 알고리즘
  • 단면을 적용하여 실행 가능한 영역을 좁히는 알고리즘
  • 휴리스틱스을 사용하여 실행 가능한 정수 해를 찾는 알고리즘
  • 선형 계획법 모형 문제를 해결하는 분기 및 경계 알고리즘을 통해 더 나은 실행 가능한 해가 없는지 검증하는 알고리즘
정수 계획법 문제를 사용하여 어떤 투자가 필요한지 결정하는 알고리즘
정수 계획법 문제를 사용하여 어떤 투자가 필요한지 결정하는 알고리즘

배포

Optimization Toolbox Solver를 MATLAB Compiler™와 함께 사용하여 MATLAB이 없는 사용자와 함께 공유할 수 있는 의사 결정 지원 툴을 만들 수 있습니다. 이러한 독립형 응용 프로그램은 로열티 없이 최종 사용자에게 무제한 배포할 수 있습니다. 또한 MATLAB 최적화 알고리즘을 MATLAB Builder™ 제품을 사용하여 Java® 및 .NET와 같은 다른 언어로 통합할 수 있습니다.

다목적 최적화

Multiobjective optimization는 제약 조건들의 모음을 대상으로하는 다목적 함수의 최소화에 사용합니다. Optimization Toolbox는 두 개 공식의 해를 찾기 위한 다목적 최적화 문제를 풀기 위해 다음 함수가 제공됩니다.

  • goal attainment 문제는 목표 벡터에 주어진 목표값을 얻기 위해 선형 또는 비선형 벡터 함수 값을 낮추는 것과 연관됩니다. 목표의 상대적 중요성은 웨이트 벡터를 사용하여 명시됩니다. 목표 도달 문제는 선형 및 비선형 제약을 받을 수 있습니다.
  • 최대최소값 문제는 선형 및 비선형 제약을 받을 수 있는 일련의 다변 함수의 최악조건 값을 최소화하는 것과 연관됩니다.

Optimization Toolbox는 두 유형의 다목적 문제를 모두 표준 제약 최적화 문제로 변환한 후 active-set 계획법을 사용하여 문제를 해결합니다.

Global Optimization Toolbox는 nonsmooth 문제에 대한 추가 다목적 Solver를 제공합니다.

다목적 최적화를 사용하여 low-pass 필터 설계
다목적 최적화를 사용하여 low-pass 필터 설계

비선형 최소 제곱, 데이터 피팅, 비선형 방정식

Optimization Toolbox는 선형/비선형 최소자승법 문제, 데이터 피팅 문제, 비선형 방정식을 해결할 수 있습니다.

선형 및 비선형 최소자승법 최적화

Toolbox는 제약 선형 최소자승법 문제를 해결하기 위해 다음 두 개의 알고리즘을 사용합니다.

  • active-set 알고리즘은 한계 또는 선형 부등식이나 등식이 있는 문제를 해결하는 데 사용됩니다.
  • trust-region-reflective 알고리즘은 한계 제약만 있는 대규모 문제를 해결하는 데 사용됩니다.

Toolbox는 비선형 최소자승법 문제를 해결하기 위해 다음 두 개의 알고리즘을 사용합니다.

  • trust-region-reflective 알고리즘은 trust region을 사용하는 Levenberg-Marquardt 알고리즘을 구현합니다. 이 알고리즘은 비제약 및 한계 제약 문제에 사용됩니다.
  • Levenberg-Marquardt 알고리즘은 표준 Levenberg-Marquardt 메소드를 구현합니다. 이 알고리즘은 비제약 문제에 사용됩니다.
비선형 최소자승법을 사용하여 초월 방정식 피팅
비선형 최소자승법을 사용하여 초월 방정식 피팅

데이터 피팅

Toolbox는 일련의 데이터 점에 가장 적합한 비선형 함수군의 멤버를 찾을 수 있는, 데이터 fitting 문제용 특수 인터페이스를 제공합니다. Toolbox는 비선형 최소자승법 문제에 사용하는 것과 동일한 알고리즘을 데이터 fitting 문제에 사용합니다.

최소자승법 curve fitting을 사용하여 비선형 지수 방정식 Fitting
최소자승법 curve fitting을 사용하여 비선형 지수 방정식 Fitting

비선형 방정식 해결

Optimization Toolbox는 미지수가 많은 비선형 방정식을 해결하기 위해 dogleg trust-region 알고리즘을 구현합니다. Toolbox는 trust-region reflective 및 Levenberg-Marquardt 알고리즘을 사용하여 이 문제를 해결할 수 있습니다.

비선형 방정식 Solver를 이용하여 <em>n</em>차원 Rosenbrock 함수 해결
비선형 방정식 Solver를 이용하여 n차원 Rosenbrock 함수 해결

병렬 컴퓨팅 및 도함수

비선형 문제에 대한 Optimization Toolbox Solver는 목표 최소화 도는 최대화를 위해 증감 기반 방식을 사용합니다. 목적함수의 그라데이션에 대한 정보는 유한 차이를 이용하여 예측하거나 사용자가 Solver에 입력할 수 있습니다.

병렬 컴퓨팅

Optimization Toolbox를 Parallel Computing Toolbox와 함께 사용하면 병렬 연산을 통해 문제를 해결할 수 있습니다. 내장 병렬 컴퓨팅 지원을 사용하거나 해당 최적화 문제에 대한 맞춤형 병렬 컴퓨팅 구현을 정의하여 병렬 컴퓨팅을 사용함으로써 해를 구하는 시간을 단축할 수 있습니다.

Optimization Toolbox의 내장 병렬 컴퓨팅을 사용하면 제약 비선형 최적화 문제와 다목적 목표 도달 및 최소최대값 문제에 대한 Solver를 선택할 때 증감 평가 단계를 가속화할 수 있습니다.

비선형 최적화 Solver에서 내장 병렬 컴퓨팅 지원을 사용하여 정전기학 문제에 대한 해를 구하는 시간 단축. 내장 기능은 해법이 오른쪽 상단에 표시된 상태에서 목적함수(오른쪽 중앙) 및 제약함수(오른쪽 하단)에 대해 UseParallel 옵션(왼쪽)을 지정하여 설정합니다.
비선형 최적화 Solver에서 내장 병렬 컴퓨팅 지원을 사용하여 정전기학 문제에 대한 해를 구하는 시간 단축. 내장 기능은 해법이 오른쪽 상단에 표시된 상태에서 목적함수(오른쪽 중앙) 및 제약함수(오른쪽 하단)에 대해 UseParallel 옵션(왼쪽)을 지정하여 설정합니다.

병렬 컴퓨팅 기능을 사용하기 위해 최적화 문제를 명확히 정의하는 방법으로 맞춤형 병렬 컴퓨팅을 구현할 수 있습니다. 목적함수나 제약함수를 정의하여 병렬 컴퓨팅을 사용할 수 있으며, 이런 경우 목적/제약을 평가하는 데 필요한 시간을 단축할 수 있습니다.

코드의 단일 행 변경(왼쪽 상단)을 통해 목적함수를 사용자 정의함으로써 서스펜션 시스템 설계(왼쪽 하단 및 오른쪽 하단)의 불확실성을 해결하기 위한 해를 찾는(오른쪽 상단) 시간을 단축합니다.
코드의 단일 행 변경(왼쪽 상단)을 통해 목적함수를 사용자 정의함으로써 서스펜션 시스템 설계(왼쪽 하단 및 오른쪽 하단)의 불확실성을 해결하기 위한 해를 찾는(오른쪽 상단) 시간을 단축합니다.

Speeding Up Optimization Problems Using Parallel Computing
Parallel Computing Toolbox로 최적화 문제를 보다 빠르게 해결하십시오.

도함수 공급

Optimization Toolbox Solver는 유한 차이를 이용하여 목적함수의 편도함수를 예측함으로써 비선형 함수를 최소화합니다. 또는 편도함수의 값을 계산하는 함수를 정의하여 도함수 예측 단계의 오버헤드를 크게 줄일 수 있습니다.

목적함수의 편도함수를 계산하는 작업은 지루한 일이 될 수 있습니다. Symbolic Math Toolbox™를 사용하여 문제를 기호로 표시하면 목적함수의 편도 함수를 자동으로 계산하기 위한 내장 함수를 사용할 수 있습니다. 그런 다음 MATLAB 코드를 생성하여 Optimization Toolbox Solver에서 사용할 수 있습니다.

Symbolic Derivatives를 활용한 최적화(기술 기고)

MATLAB을 활용한 계산 금융 기법 소개

웨비나 보기