How to solve multiobjective optimization problem?

조회 수: 4 (최근 30일)
Rajkumar Verma
Rajkumar Verma 2020년 6월 21일
댓글: Walter Roberson 2020년 6월 22일
Dear all,
How can I solve the attched multiobjective optimization problem?
  댓글 수: 2
Walter Roberson
Walter Roberson 2020년 6월 21일
possibly a change of variables so that the logs on the right hand side of the st equations became linear variables (might require introducing a new variable to link 1-v1 and v1 in linear ways)? If that can be done then all those log(constant) in the st equations become just numeric constants in an A*x<=b linear inequality setup and it could be handled as a single objective system.
You cannot use fmincon for this because min() is not differentiateable as required by most of the minimizers. ga() or patternsearch()
Rajkumar Verma
Rajkumar Verma 2020년 6월 21일
But, I want to solve this problem without making linear combination of log(1-v1) and log(v2). Because I need the values of v1 and v2 separately. Is there any way to solve without making linear combination?

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

채택된 답변

Alan Weiss
Alan Weiss 2020년 6월 21일
If you have Global Optimization Toolbox you can use paretosearch or gamultiobj to find a Pareto set for your problem. See Multiobjective Optimization. If you need help after reading the examples in that section, ask again.
Alan Weiss
MATLAB mathematical toolbox documentation
  댓글 수: 5
Walter Roberson
Walter Roberson 2020년 6월 22일
yes, exact 0 or 1 are causing the non-real problem
Walter Roberson
Walter Roberson 2020년 6월 22일
using gamultiobj is not appropriate for this problem. The task is not to find the Pareto front for the two logs. Your objective is a scalar, the min() of the two logs.

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

추가 답변 (1개)

Walter Roberson
Walter Roberson 2020년 6월 21일
Is there any way to solve without making linear combination?
You could use ga with nonlinear inequalities.
There is another approach. You can do two seaches, one with the objective log(1-v1), and the other with objective log(v2). For each of those searches, the objective is continuous, so you can use fmincon() for each of them. Then take results that correspond to the search with the lower objective.
If you do this then you could use fmincon() with nonlinear constraints.
I have a suspicion that either the st on log(1-v1) or the st on log(v2) turn out to be equalities rather than inequalities, but I have not tested for that.
  댓글 수: 1
Walter Roberson
Walter Roberson 2020년 6월 22일
Separate fmincon works quite well, by the way. I did extensive search on the entire solution space and verified that the results from fmincon are within tolerance of the minimum possible.

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

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by