Nonlinear multiobjective optimization - Gamultiobj - Options

조회 수: 2 (최근 30일)
ahmad mahmoodi
ahmad mahmoodi 2020년 5월 3일
댓글: ahmad mahmoodi 2020년 5월 3일
Dear all,
I am doing a nonlinear multi-objective optimization using gamultiobj. I know during optimization Matlab always finds some points as possible points of the pareto front and tries to evaluate the objetives around those points.
I am writting the evaluated objectives into a text file.The attached image shows the results. I can see that the red points could be the possible candidates for pareto. Also, technically they match my expected results. But suddenly Matlab evaluates a point which is quite far from the points and are infeasible for objective functions and my optimization ends up with error.
My question is:
What parameter should I change in otimitazion options to let the algorithm understand the evaluated points could be possible points and does not look for a global infeasible point thereafter.
Best regards,
ahmad

답변 (1개)

Thiago Henrique Gomes Lobato
Thiago Henrique Gomes Lobato 2020년 5월 3일
If you write your optimization problem like this:
x = gamultiobj(fun,nvars)
You're basically telling the optimizer that you have an unconstrained problem, so it could test every possible value and, due to mutation, it is expected that some of them may be very far away from the optimum. If your function is unfeasible in some point, you have to explicitely say it to the function. This can be done using the other input arguments of the function:
x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
Were A and b deals with unequality constrains, Aeq and beq equality constrains, lb and ub bounds and nonlcon non-linear constrains. You have then to verify what are the feasibility requirements of your function and then give it to the optimizer. In your case probably bounds would already be enough, so you could write the function as
x = gamultiobj(fun,nvars,[],[],[],[],lb,ub)
For more details you can check the function documentation.
  댓글 수: 1
ahmad mahmoodi
ahmad mahmoodi 2020년 5월 3일
options = gaoptimset('Display','iter','PlotFcns',@gaplotpareto);
[x,fval,exitflag,output,population,scores] = gamultiobj(FitFcn,nvars,[],[],[],[],lb,ub,nonlcon,options);
Thank you for your reply. I already used this code, including constrains. When I change the objectives it works and gives me the pareto front. Therefore, I guess I have to change some options so that Matlab doesnt search for infeasible global points after identifying the initial acceptable pareto points.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Multiobjective Optimization에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by