Main Content

반복 횟수와 함수 실행 횟수

일반적으로, Optimization Toolbox™ 솔버는 반복을 통해 최적해를 찾습니다. 솔버는 초기값 x0에서 시작하여 몇 번의 중간 계산을 통해 최종적으로 새 점 x1을 구한 후, 이 과정을 반복하여 국소 최솟값의 연속된 근삿값 x2, x3, ...을 구합니다. 이 과정은 반복을 k회 수행한 후 중지됩니다.

optimoptions를 사용하여 솔버에 대해 MaxIterations 옵션 또는 MaxFunctionEvaluations 옵션을 설정하여 반복 횟수 또는 함수 실행 횟수를 제한할 수 있습니다. 또는 제한값 중 하나에 도달한 후에도 솔버가 계속 진행하도록 하려면 두 옵션의 값을 높이면 됩니다. 최적화 옵션 설정 및 변경하기 항목을 참조하십시오.

어떠한 스텝 크기에서나, 중간 계산은 현재 반복 xi 근처에 있는 점에서의 목적 함수 및 일체의 제약 조건 실행을 수반할 수 있습니다. 예를 들어, 솔버는 유한 차분으로 기울기를 추정할 수 있습니다. 인근 점 각각에서 함수 실행 횟수(F-count)는 1씩 증가합니다. 3차원 공간에서의 일반적인 반복 그림에는 크기 델타의 전향 유한 차분이 있는 3차원 공간에서 1회의 반복이 일반적으로 함수 실행 횟수 4회 증가에 대응됨을 보여줍니다. 이 그림에서 ei는 i번째 좌표 방향의 단위 벡터를 나타냅니다.

3차원 공간에서의 일반적인 반복

  • 문제에 제약 조건이 없는 경우 F-count는 목적 함수의 총 실행 횟수를 보고합니다.

  • 문제에 제약 조건이 있는 경우 F-count는 제약 조건 함수의 총 실행 횟수가 아니라 함수 실행이 수행된 점의 개수만 보고합니다. 문제에 제약 조건이 많이 있는 경우 F-count는 총 함수 실행 횟수보다 상당히 작을 수 있습니다.

솔버는 경우에 따라 어떤 스텝을 시도했다가 이 시도를 거부하기도 합니다. trust-region, trust-region-reflective, trust-region-dogleg 알고리즘은 실패한 시도를 반복으로 간주하여 반복 과정 표시 화면에 (아무 변경이 없는) 결과를 보고합니다. interior-point, active-set, levenberg-marquardt 알고리즘은 실패한 시도를 반복으로 간주하지 않고 반복 과정 표시 화면에 이 시도를 보고하지 않습니다. F-count는 알고리즘에 관계없이 스텝이 시도될 때마다 증가됩니다.

F-count는 많은 솔버의 반복 과정 표시 화면에서 제목으로 나타납니다. 예제는 결과 해석하기 항목을 참조하십시오.

F-count는 output 구조체에서 output.funcCount로 나타나며, 이를 통해 프로그래밍 방식으로 실행 횟수에 액세스할 수 있습니다. 자세한 내용은 Output Structures 항목을 참조하십시오.

참고 항목

관련 항목