최적화 문제 해결과 팁
다음 표에는 흔히 발생하는 최적화 문제와 이 문제를 해결하기 위한 권장 사항이 나와 있습니다.
문제 | 권장 사항 |
---|---|
| 문제가 연속적이지 않고 최솟값을 여러 개 가지는 경우라면 해가 전역 최솟값이 아닐 수 있습니다. 전역 최솟값을 검색하려면 여러 개의 시작점(또는 |
일부 점 | 실현불가능점 |
최소화 루틴이 무한 루프에 빠지는 것처럼 보이거나 최솟값이 아닌 해(또는 | 목적 함수가 options = optimset('FunValCheck','on')
|
솔버를 실행하는 데 시간이 오래 걸립니다. | 대부분의 최적화 문제는 시작점이 좋은 경우 이점을 얻습니다. 문제의 특성에 따라, 해에 가까울 수 있는 영역에서 임의 시작점을 사용해 보십시오. 복잡한 문제는 경우에 따라 진화적인 접근 방식을 통해 효과적으로 풀 수 있습니다. 먼저, 독립 변수의 수가 상대적으로 적은 문제부터 풉니다. 이렇게 더 단순한 문제의 해를 적합한 매핑을 거쳐 더 복잡한 문제에 대한 시작점으로 사용합니다. 또한, 경우에 따라 최적화 문제의 초기 단계에 더 간단한 목적 함수와 덜 엄격한 중지 조건을 사용하여 해를 더 빠르게 구할 수도 있습니다. |
솔버가 무슨 작업을 하고 있는지 확실하지 않습니다. | 솔버가 반복 실행되면서 무슨 작업을 하는지 확인하려면 다음과 같이 하십시오.
|
|
|
참고
최적화 솔버는 실수 값 함수에 적용됩니다. 복소수 값은 최적화할 수 없습니다. 단, 노름과 같은 복소수 값의 실수 값 함수는 예외입니다.