Main Content

최적화

라이브 편집기에서 방정식을 최적화하거나 풉니다.

설명

최적화 작업에서는 다음 두 가지 방법 중에서 선택하여 대화형 방식으로 문제를 최적화하거나 비선형 연립방정식을 풀 수 있습니다.

  • 문제 기반(권장) — 목적 함수와 제약 조건 또는 방정식을 나타내는 기호 최적화 변수와 표현식을 만듭니다.

  • 솔버 기반 — 표준 MATLAB® 코드를 사용하여 목적 함수와 제약 조건 또는 방정식을 나타냅니다.

이 작업은 라이브 스크립트를 위한 MATLAB 코드를 자동으로 생성합니다.

이 작업의 문제 기반 버전을 사용하면 다음을 수행할 수 있습니다.

  • 범위와 초기값을 포함하여 최적화 변수 배열을 지정합니다.

  • 최소화, 최대화, 실현가능성, 방정식 풀이 등 문제 유형을 지정합니다.

  • 표현식을 작성하거나 함수를 검색하여 목적 함수와 제약 조건 함수를 지정합니다.

  • 선택적으로, 솔버를 선택하고 디폴트가 아닌 옵션을 지정합니다.

  • 최적화를 실행합니다.

이 작업의 솔버 기반 버전을 사용하면 다음을 수행할 수 있습니다.

  • 문제의 특성을 기반으로 하여 솔버를 선택합니다. Global Optimization Toolbox를 사용하는 경우, 이 툴박스의 솔버도 사용하도록 선택할 수 있습니다.

  • 함수를 작성하거나 함수를 검색하여 목적 함수와 제약 조건 함수를 지정합니다.

  • 솔버 옵션을 지정합니다.

  • 최적화를 실행합니다.

최적화를 사용하려면 솔버 기반 최적화 라이브 편집기 작업 시작하기 항목과 문제 기반 최적화 라이브 편집기 작업 시작하기 항목을 참조하십시오. 최적화 사용 방법에 대한 제안 사항은 Use Solver-Based Optimize Live Editor Task Effectively 또는 Use Problem-Based Optimize Live Editor Task Effectively 항목을 참조하십시오. 현재는 최적화fseminf, GlobalSearch 또는 MultiStart 솔버와 함께 사용할 수 없습니다.

라이브 편집기 작업에 대한 일반적인 내용은 라이브 스크립트에 대화형 방식 작업 추가하기 항목을 참조하십시오.

Optimize task in Live Editor: Choose between problem-based (recommended) and solver-based

작업 열기

MATLAB 편집기의 라이브 스크립트에 최적화 작업을 추가하려면 라이브 편집기의 삽입 탭에서 작업 > 최적화를 선택하십시오.

Insert an Optimize Live Editor task

또는 스크립트의 코드 블록에 관련 키워드를 입력합니다(예: optim 또는 fmincon). 제안된 명령 완성에서 Optimize를 선택합니다.

Choosing Optimize from command completion suggestions

파라미터

문제 기반 변수의 이름은 동적입니다. 사용자는 일반적인 명명 제한 사항이 적용된 이름을 원하는 대로 선택할 수 있습니다(변수 이름 참조).

문제 기반

문제 유형으로, 적절한 레이블이 있는 버튼을 클릭하여 지정됩니다.

목적 함수로, 최적화 표현식, 로컬 함수 또는 함수 파일로 지정됩니다. GoalMinimize 또는 Maximize인 경우에 적용됩니다.

해에 대한 제약 조건으로, 최적화 표현식, 로컬 함수 또는 함수 파일로 지정됩니다. + 버튼을 클릭하여 문제에 제약 조건을 추가합니다.

문제 방정식으로, 최적화 표현식, 로컬 함수 또는 함수 파일로 지정됩니다. GoalSolve equations인 경우에 적용됩니다. + 버튼을 클릭하여 문제에 방정식을 추가합니다.

작업의 상태로, Define problem 또는 Solve problem으로 지정됩니다. 자세한 내용은 Use Problem-Based Optimize Live Editor Task Effectively 항목을 참조하십시오.

솔버 기반

목적 함수 유형으로, 적절한 레이블이 있는 버튼을 클릭하여 지정됩니다. 선택한 목적 함수에 따라 사용 가능한 솔버와 문제에 권장되는 솔버가 결정됩니다(Solver 참조).

제약 조건 유형으로, 적절한 레이블이 있는 버튼을 클릭하여 지정됩니다. 둘 이상의 제약 조건 유형을 지정할 수 있습니다. 선택한 제약 조건에 따라 사용 가능한 솔버와 문제에 권장되는 솔버가 결정됩니다(Solver 참조).

MATLAB이 문제를 풀기 위해 사용하는 최적화 솔버로, 사용 가능한 솔버 목록에서 솔버를 선택하여 지정됩니다. 사용 가능한 솔버 및 권장되는 솔버는 라이선스 및 선택한 ObjectiveConstraints에 따라 달라집니다.

제한 사항

  • 현재, 최적화는 다중 목적 함수 최적화에 대해 다음과 같은 제한 사항을 가집니다.

    • 여러 출력값을 갖는 단일 함수를 사용하여 목적 함수를 지정해야 합니다. 즉, 사용자가 지정한 목적 함수는 한 요소가 각 목적 함수인 값 벡터를 출력해야 합니다.

    • 모든 목적 함수는 동일한 의미를 가져야 합니다. 즉, 솔버 기반 작업은 최소화를 목적으로 하고, 문제 기반 작업은 최소화 또는 최대화를 목적으로 해야 합니다.

  • 추가 입력값이 있는 함수의 경우, 솔버 기반과 문제 기반의 최적화 작업은 약간 다른 요구 사항을 가집니다.

    • 솔버 기반: 최적화 변수를 선택하고 고정 데이터 입력값을 포함하는 작업 공간 변수를 지정합니다. 예제는 다음 3개의 함수 입력값을 포함하는 Place Optimization Variables in One Vector and Data in Other Variables 항목을 참조하십시오.

      Optimization input = vars, Fixed input y = y, Fixed input w = w.

      최적화는 모든 함수 입력값을 지정한 후에만 코드를 생성합니다.

    • 문제 기반: 각 함수 입력값에 대해 최적화 변수 이름이나 작업 공간 변수 이름을 지정합니다. 함수 시그니처의 입력 인수 이름이 기존 최적화 변수 또는 작업 공간 변수 이름과 일치하면 최적화가 자동으로 해당 이름을 선택합니다.

      Function inputs = x, y, a.

      최적화는 모든 함수 입력값을 지정한 후에만 코드를 생성합니다.

  • 최적화varargin 입력값을 포함하는 함수 또는 오류를 포함하는 함수를 구문 분석할 수 없습니다.

  • 파일에서 함수를 선택하는 경우 최적화는 파일 위치를 MATLAB 경로에 추가합니다.

  • 최적화에 구문 분석 오류가 있거나 여러 로컬 함수의 이름이 동일한 경우, 사용 가능한 로컬 함수 목록이 비어 있게 됩니다.

버전 내역

R2020b에 개발됨

참고 항목

함수