How to solve a constrained binary multi-objective optimization problem through genetic algorithm?

4 次查看(过去 30 天)
Dear All,
I would like to solve a multi-objective problem that has both equality and inequality constraints and where the decision variables are binary. I would like to find the Pareto front with the help of a genetic algorithm.
The solver gamultiobj handles such binary multi-objective problems but ignores the constraints. Alternatively, I tried defining the variables' bounds to [0,1] and set all variables as integers but failed in that.
Does anybody know how to deal with this issue? Any other toolbox for MATLAB that is capable is also highly appreciated. Thank you!

采纳的回答

Walter Roberson
Walter Roberson 2016-12-28
You need to not tell it that you want integer constraints. Instead, you need to supply your own custom mutation and crossover and population files that happen to never generate non-binary values for those positions.
  2 个评论
Atamert Arslan
Atamert Arslan 2017-1-31
编辑:Walter Roberson 2017-1-31
Dear Mr. Roberson,
I very much appreciate your answer. I managed to find some hints on how to write those files you mentioned. The thread's link is as follows: https://de.mathworks.com/matlabcentral/answers/103369-is-it-possible-to-solve-a-mixed-integer-multi-objective-optimization-problem-using-global-optimizati
However, linear inequality and equality constraints are not included in the files posted there. It is just stated that it is possible to do so.
Would you mind also giving me some tips on how to do that? I know the workaround to turn equality constraints into inequality ones so my question reduces itself to only adding inequality constraints to my binary multi-objective problem.
Thank you very much!
Walter Roberson
Walter Roberson 2017-1-31
Just pass A, b, Aeq, beq matrices as usual. Those are evaluated by plain multiplication, which does not need to know that the x values are restricted to integer since it is just multiplication and comparison.

请先登录,再进行评论。

更多回答(1 个)

Laila Qaisi
Laila Qaisi 2017-3-19
If you have written the code would you please share it as iam trying to find the same. Thanks!
  1 个评论
Atamert Arslan
Atamert Arslan 2017-3-19
编辑:Atamert Arslan 2017-3-19
I found an NSGA-II implementation in MATLAB that worked for me https://de.mathworks.com/matlabcentral/fileexchange/31166-ngpm-a-nsga-ii-program-in-matlab-v1-4
In parallel, I ran a weighted sum method to test the pareto front. It worked fine until now.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Genetic Algorithm 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by