trust-region-reflective 알고리즘이 이 논문의 알고리즘을 따라갔는지 확인하고 싶습니다.

2 views (last 30 days)
승화 이
승화 이 on 30 Jul 2020
Edited: 승화 이 on 30 Jul 2020
안녕하세요. 현재 최적화 알고리즘을 적용하여 목적함수의 최솟값인 S가 나오는 식을 만들어 값을 도출해 냈으나, 이 값이 저희가 확인한 논문
Coleman, T. F. and Y. Li. “An Interior, Trust Region Approach for Nonlinear Minimization Subject to Bounds.” SIAM Journal on Optimization, Vol. 6, 1996, pp. 418445.
의 알고리즘 2와 동일한 방법으로 풀이가 진행 됬는 지 확인 해야 하나, 그 방법을 몰라 해매고 있습니다.
첨부파일의 myObjective를 사용하여 아래와 같이 함수를 입력하여 값을 만들어 냈습니다.
options = optimoptions(@lsqnonlin,'Algorithm', 'trust-region-reflective','Display', 'iter', 'MaxFunctionEvaluations', 1000000, 'MaxIterations', 100000);
D_init = zeros(1,1);
lower_bound = 10^(-10);
upper_bound = 10^(-8);
output_with_bound = lsqnonlin(@myObjective, D_init, lower_bound, upper_bound, options)
Norm of First-order
Iteration Func-count f(x) step optimality
0 2 1.49051 0.873
1 4 0.499246 4.36598e-05 0.554
2 6 0.378797 1.9807e-05 0.24
3 8 0.360547 4.95176e-06 0.195
4 10 0.356504 1.23794e-06 0.185
5 12 0.355523 3.09485e-07 0.183
국소 최솟값이 있을 수 있습니다.
현재 스텝의 크기가 스텝 크기 허용오차
값보다 작기 때문에 lsqnonlin() 중지되었습니다.
<중지 기준 세부 정보>
D_init =
9.1835e-09
exitflag =
2
output =
다음 필드를 포함한 struct:
firstorderopt: 0.1826
iterations: 5
funcCount: 12
cgiterations: 0
algorithm: 'trust-region-reflective'
stepsize: 3.0948e-07
message: '국소 최솟값이 있을 수 있습니다.현재 스텝의 크기가 스텝 크기 허용오차값보다 작기 때문에 lsqnonlin() 중지되었습니다.↵↵<중지 기준 세부 정보>↵↵현재 스텝의 노름 3.094848e-07() options.StepTolerance = 1.000000e-06보다작기 때문에 최적화가 중지되었습니다.↵↵'
위와 같이 값을 확인 할 수 있었으나, 이것이 제가 위에 말씀 드렸던, 논문의 알고리즘 2에 해당되는 풀이인지 해석 할 수가 없었습니다. 혹시 해당 알고리즘 즉
2. Trust region method for bound-constrained problems.
과 일치하는 지에 대하여 알려주실 수 있으신가요? 아니면, 제가 확인할 수 있는 명령어를 알려주신다면 감사하겠습니다.
긴글 읽어 주셔서 감사합니다.

Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!