이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

최적화 앱

참고

최적화 앱은 향후 릴리스에서 제거될 예정입니다. 이에 대한 대안은 Optimization App Alternatives 항목을 참조하십시오.

최적화 앱 기본 사항

최적화 앱을 여는 방법

명령 창에 다음을 입력하여

optimtool

최적화 앱을 열 수 있습니다. 그러면 다음 그림에 보여지는대로 최적화 앱이 열립니다.

MATLAB®앱(Apps) 탭에서 최적화 앱을 시작할 수도 있습니다.

최적화 앱의 도움말 페이지에 optimtool 함수를 시작하는 데 사용할 수 있는 다양한 변형 방법이 나와 있습니다.

최적화 앱을 사용하는 예제

다음 문서 예제에서 최적화 앱을 사용합니다.

최적화 앱을 사용하는 단계

다음은 최적화 앱을 사용하여 최적화 문제를 설정하고 결과를 보는 단계를 요약한 것입니다.

일시 중지하기와 중지하기

솔버가 실행되는 동안 다음을 수행할 수 있습니다.

  • 일시 중지(Pause)를 클릭하여 알고리즘을 일시적으로 중단할 수 있습니다. 일시 중단한 시점에서 현재 반복을 사용하여 알고리즘을 재개하려면 재개(Resume)를 클릭하십시오.

  • 중지(Stop)를 클릭하여 알고리즘을 중지할 수 있습니다. 솔버 실행 및 결과 보기(Run solver and view results) 창에 중지(Stop)를 클릭한 시점에서의 현재 반복에 대한 정보가 표시됩니다.

알고리즘을 중지한 후에 결과를 내보낼 수 있습니다. 자세한 내용은 작업 내보내기 항목을 참조하십시오.

결과 보기

솔버가 종료되면 솔버 실행 및 결과 보기(Run solver and view results) 창에 알고리즘이 종료된 이유가 표시됩니다. 다음 솔버 실행 전에 솔버 실행 및 결과 보기(Run solver and view results) 창의 내용을 지우려면 결과 지우기(Clear Results)를 클릭하십시오.

표시된 결과 정렬하기.  솔버와 문제에 따라 테이블 형식으로 결과가 표시될 수 있습니다. 테이블에 여러 행이 있으면 열 제목을 클릭하여 테이블을 정렬할 수 있습니다. 결과를 역순으로 정렬하려면 제목을 다시 클릭하면 됩니다.

예를 들어, 최적화 앱을 사용하여 Optimization App with the lsqlin Solver에 설명된 lsqlin 문제를 풀려고 한다고 가정하겠습니다. 결과는 다음과 같이 나타납니다.

값을 기준으로 오름차순으로 결과를 정렬하려면 값(Value)을 클릭하십시오. 결과는 이미 이 순서로 되어 있으므로 변경하지 마십시오.

결과를 역순인 내림차순으로 정렬하려면 값(Value)을 다시 클릭하십시오.

원래 순서로 되돌리려면 인덱스(Index)를 클릭하십시오.

Global Optimization Toolboxgamultiobj 함수에서 반환된 테이블 정렬을 보여주는 예는 Pareto Front for Two Objectives (Global Optimization Toolbox) 항목을 참조하십시오.

파일 > 작업 공간으로 내보내기를 사용하여 결과를 내보내면 내보낸 결과가 정렬된 표시에 영향을 받지 않습니다.

최종점

최종점(Final point)은 알고리즘이 종료된 당시 최종점의 좌표를 표시하도록 업데이트됩니다. 최종점이 표시되지 않으면 왼쪽 아래에 있는 아이콘에서 위쪽 방향 삼각형을 클릭하십시오.

새 문제 시작하기

옵션을 재설정하고 문제 지우기.  파일(File) > 최적화 툴 재설정(Reset Optimization Tool)을 선택하면 문제 정의와 옵션이 원래 디폴트 값으로 재설정됩니다. 이 동작은 앱을 닫고 다시 시작하는 것과 동일합니다.

문제 정의만 지우려면 파일(File) > 문제 필드 지우기(Clear Problem Fields)를 선택하십시오. 그러면 선택된 솔버와 알고리즘을 제외한 문제 설정 및 결과(Problem Setup and Results) 창의 필드가 디폴트 값으로 재설정됩니다. 옵션(Options) 창에서 디폴트 값 이외의 값으로 수정한 옵션은 이 동작을 수행해도 재설정되지 않습니다.

솔버 변경 관련 기본 설정 지정하기.  솔버를 변경할 때 최적화 앱에서 옵션을 처리하는 방법을 수정하려면 파일(File) > 기본 설정(Preferences)을 선택하십시오. 그러면 아래에 보여지는 기본설정 대화 상자가 열립니다.

디폴트 값 옵션을 디폴트 값으로 초기화(Reset options to default values)optimtool에서 이전에 지정한 옵션을 모두 삭제합니다. 이 값을 선택한 경우 옵션을 디폴트 값으로 초기화하기 전에 메시지 표시(Prompt before resetting options to default values) 옵션을 선택할 수 있습니다.

또는, 가능한 경우 현재 옵션 유지(Keep current options if possible)를 선택하여 수정한 값을 유지할 수도 있습니다. 변경된 옵션 중 새로 선택한 솔버에 유효하지 않은 옵션은 그대로 유지되지만 사용되지는 않으며, 새로 선택한 솔버와 관련된 활성 옵션만 사용됩니다. 이 값을 선택하면 기존에 지정한 옵션을 해제하지 않고 문제에 여러 솔버를 사용해 볼 수 있습니다.

특정 옵션 지정하기

플롯 함수

플롯 함수를 선택하여 알고리즘이 실행되는 동안 진행 상황을 나타내는 다양한 측정값을 손쉽게 플로팅할 수 있습니다. 선택한 플롯은 각각 Figure 창에 개별 축을 그립니다. 선택한 솔버에 대해 사용 가능한 경우, 실행 중인 솔버를 중단하려면 솔버 실행 및 결과 보기(Run solver and view results) 창에서 중지(Stop) 버튼을 클릭하십시오. 최적화 앱에서 미리 정의된 플롯 함수를 선택하거나 사용자 지정 함수(Custom function)를 선택하여 직접 작성할 수도 있습니다. 선택한 솔버와 관련이 없는 플롯 함수는 회색으로 표시됩니다. 다음은 사용 가능한 플롯 함수 목록입니다.

  • 현재 점(Current point) — 현재 반복에서 점에 대한 막대 플롯을 표시하려면 선택합니다.

  • 함수 실행 횟수(Function count) — 각 반복에서 함수 실행 횟수를 플로팅하려면 선택합니다.

  • 함수 값(Function value) — 각 반복에서 함수 값을 플로팅하려면 선택합니다.

  • 잔차의 노름(Norm of residuals) — 현재 반복에서 잔차의 현재 노름에 대한 막대 플롯을 표시하려면 선택합니다.

  • 최대 제약 조건(Max constraint) — 각 반복에서 최대 제약 조건 위반 값을 플로팅하려면 선택합니다.

  • 현재 스텝(Current step) — 각 반복에서 알고리즘 스텝 크기를 플로팅하려면 선택합니다.

  • 1차 최적성(First order optimality) — 각 반복에서 솔버에 대한 최적성 조건 위반을 플로팅하려면 선택합니다.

  • 사용자 지정 함수(Custom function) — 함수 핸들로 자신만의 플롯 함수를 입력합니다. 둘 이상의 플롯 함수를 제공하려면 셀형 배열을 사용하십시오. 예를 들어, 다음과 같이 입력합니다.

    {@plotfcn,@plotfcn2}
    출력 함수와 동일한 구문을 사용하여 사용자 지정 플롯 함수를 작성하십시오. 자세한 내용은 Output Function Syntax 항목을 참조하십시오.

위에 나와 있는 그래픽에서는 디폴트 fmincon 솔버에 사용할 수 있는 플롯 함수를 보여줍니다.

출력 함수

출력 함수(Output function)는 각 반복에서 알고리즘이 호출하는 단일 함수 또는 함수의 모음입니다. 출력 함수를 통해 함수 값, 기울기 값, 현재 반복과 같은 최적화 값을 확인할 수 있습니다. 출력 함수는 하나도 지정하지 않거나, 함수 핸들을 사용하여 하나만 지정하거나, 여러 개를 지정할 수 있습니다. 둘 이상의 출력 함수를 제공하려면 사용자 지정 함수(Custom function) 필드에 함수 핸들로 구성된 셀형 배열을 사용하십시오. 예를 들어, 다음과 같이 입력합니다.

{@outputfcn,@outputfcn2}

출력 함수를 작성하는 방법에 대한 자세한 내용은 Output Function Syntax 항목을 참조하십시오.

명령 창에 표시

표시 수준(Level of display)을 선택하여, 알고리즘을 실행할 때 표시되는 정보의 양을 지정할 수 있습니다. 다음 중에서 선택합니다. 솔버에 따라 일부만 사용 가능할 수 있습니다.

  • 끄기(Off)(디폴트 값) — 출력값을 표시하지 않습니다.

  • 최종 결과(Final result) — 실행 끝부분에 중지 이유를 표시합니다.

  • 최종 결과(상세 메시지 포함)(final with detailed message) — 실행 끝부분에 상세한 중지 이유를 표시합니다.

  • 알림(notify) — 함수가 수렴하지 않는 경우에만 출력값을 표시합니다.

  • 알림(상세 메시지 포함)(notify with detailed message) — 함수가 수렴하지 않는 경우에만 상세 출력값을 표시합니다.

  • 모든 반복(Iterations) — 알고리즘의 각 반복마다 정보를 표시하고 실행 끝부분에 중지 이유를 표시합니다.

  • 모든 반복(상세 메시지 포함)(iterative with detailed message) — 알고리즘의 각 반복마다 정보를 표시하고 실행 끝부분에 상세한 중지 이유를 표시합니다.

상세 메시지에 대한 자세한 내용은 향상된 종료 메시지 항목을 참조하십시오.

진단 정보 표시(Show diagnostics)를 선택하면 문제에 대한 정보와 디폴트 값에서 변경한 옵션이 나열됩니다.

아래에 나와 있는 그래픽에서는 fmincon 솔버에 대한 표시 옵션을 보여줍니다. 솔버에 따라 옵션 수가 더 적을 수 있습니다.

작업 가져오기 및 내보내기

작업 내보내기

작업 공간으로 내보내기(Export to Workspace) 대화 상자에서 나중에 명령 창에서 조작할 수 있는 구조체 또는 객체 형태로 문제에 대한 정보를 MATLAB 작업 공간으로 보낼 수 있습니다.

아래에 보여지는 작업 공간으로 내보내기(Export to Workspace) 대화 상자에 액세스하려면 파일(File) > 작업 공간으로 내보내기(Export to Workspace)를 선택하십시오.

다음을 포함하도록 결과를 지정할 수 있습니다.

  • 문제와 옵션 정보

  • 문제와 옵션 정보, 중지된 당시의 솔버 상태(이는 대부분의 솔버에서는 가장 최근의 점을 의미하고, 유전 알고리즘 솔버에서는 현재 모집단을 의미하며, 담금질 기법 솔버에서는 발견된 최적점을 의미함)

  • 이전 실행이 시작된 당시의 난수 생성기 randrandn의 상태. 해당되는 솔버에 대해 이전 실행의 임의 상태 사용(Use random states from previous run) 상자를 선택하여 지정할 수 있습니다.

  • 옵션 정보만

  • 최적화 앱에서 문제를 실행한 결과

내보낸 결과에는 모든 선택적 정보가 포함되어 있습니다. 예를 들어, lsqcurvefit에 대해 내보낸 결과 구조체는 데이터 x, resnorm, residual, exitflag, output, lambda, jacobian을 포함합니다.

최적화 앱에서 MATLAB 작업 공간으로 정보를 내보내고 나면 MATLAB 작업 공간 브라우저에서 데이터를 보거나 명령 창에서 구조체의 이름을 입력하여 데이터를 볼 수 있습니다. 구조체 또는 객체에서 특정 필드의 값을 보려면 작업 공간 창에서 필드 이름을 더블 클릭하십시오. 또는, 명령줄에서 exportname.fieldname을 입력하여 값을 볼 수도 있습니다. 예를 들어, output 구조체에서 메시지를 보려면 output.message를 입력하십시오. 구조체에 여러 구조체나 여러 객체가 포함된 경우 작업 공간 브라우저에서 다시 더블 클릭하거나 명령줄에서 exportname.name2.fieldname을 입력하면 됩니다. 예를 들어, 내보낸 문제 구조체의 옵션에 포함된 반복 과정 표시 수준을 보려면 optimproblem.options.Display를 입력하십시오.

명령줄에서 다음을 입력하여 내보낸 문제에 대해 솔버를 실행할 수 있습니다.

solver(problem)
예를 들어, optimproblem이라는 이름으로 fmincon 문제를 내보낸 경우 다음과 같이 입력하면 됩니다.
fmincon(optimproblem)
그러면 optimproblem에 저장된 옵션을 사용하여 문제에 대해 fmincon이 실행됩니다. 예를 들어, 다음과 같이 입력하여 출력값을 더 세부적으로 제어할 수 있습니다.
[x,fval,exitflag] = fmincon(optimproblem)
또는 지원되는 다른 아무 구문이나 사용할 수 있습니다.

주의

Optimization Toolbox™ 솔버에 대해 최적화 앱은 이전에 설명한 TolFun 허용오차와 관련된 옵션 하나만 가져오고 내보냅니다. 이 옵션을 함수 허용오차(Function tolerance)로 표시하고 OptimalityTolerance 옵션으로 사용합니다. 최적화 앱에서는 FunctionTolerance 옵션을 가져오거나 내보내거나 변경할 수 없습니다.

그러나, Global Optimization Toolbox 솔버에는 OptimalityTolerance 옵션이 없습니다. 이들 솔버는 최적화 앱에서 FunctionTolerance 옵션을 가져오고 내보내고 설정할 수 있습니다.

작업 가져오기

명령 창에서 Optimization Toolbox 함수의 옵션을 저장하는지 아니면 최적화 앱에서 옵션 또는 문제와 옵션을 내보내는지에 관계없이 최적화 앱을 사용하여 문제에 대한 작업을 재개할 수 있습니다.

옵션 또는 문제와 옵션을 최적화 앱으로 가져오는 방법으로는 다음과 같이 세 가지가 있습니다.

  • 명령 창에서 옵션 또는 문제와 옵션을 입력값으로 지정하여 optimtool 함수를 호출합니다. 예를 들어 다음과 같이 합니다.

    optimtool(options)
  • 최적화 앱에서 파일(File) > 옵션 가져오기(Import Options)를 선택합니다.

  • 최적화 앱에서 파일(File) > 문제 가져오기(Import Problem)를 선택합니다.

위에 설명된 방법을 사용하려면 옵션 또는 문제와 옵션이 MATLAB 작업 공간에 있어야 합니다.

이 실행을 재개하는 데 필요한 정보 포함(Include information needed to resume this run) 상자를 선택한 상태로 생성된 문제를 가져오는 경우 초기점은 이전 실행에서 생성된 가장 최근의 점입니다. 유전 알고리즘 솔버의 경우, 초기 모집단은 이전 실행에서 생성된 가장 최근의 모집단입니다. 담금질 기법 솔버의 경우, 초기점은 이전 실행에서 생성된 최적점입니다. 이 상자를 선택하지 않은 상태로 생성된 문제를 가져오는 경우 초기점(또는 초기 모집단)은 이전 실행의 초기점(또는 초기 모집단)입니다.

파일 생성하기

나중에 명령 창에서 최적화 문제를 계속하기 위해 파일을 생성하고자 할 수 있습니다. 수정하지 않고 파일을 실행하여 최적화 앱에서 얻어낸 결과를 다시 얻을 수 있습니다. 또한, 파일을 편집 및 수정한 후 명령 창에서 실행할 수도 있습니다.

최적화 앱에서 파일로 데이터를 내보내려면 파일(File) > 코드 생성(Generate code)을 선택하십시오.

생성된 파일에는 다음 항목을 포함합니다.

  • 솔버, 최소화하려는 함수에 대한 정보, 알고리즘 사양, 제약 조건, 시작점을 포함하는 문제에 대한 정의

  • 옵션(현재 선택된 옵션 값 포함)

명령 창에서 파일을 다시 실행하면 문제의 결과가 재현됩니다.

문제 결과를 생성된 파일로 내보낼 수는 없지만 생성된 파일과 함께 사용할 수 있는 MAT 파일에 결과를 저장할 수 있습니다. 그렇게 하려면 작업 공간으로 내보내기 대화 상자를 사용하여 결과를 내보낸 후 명령 창에서 MAT 파일로 데이터를 저장하면 됩니다.

관련 항목