Clear Filters
Clear Filters

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

10 views (last 30 days)
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!

Accepted Answer

Walter Roberson
Walter Roberson on 28 Dec 2016
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 Comments
Atamert Arslan
Atamert Arslan on 31 Jan 2017
Edited: Walter Roberson on 31 Jan 2017
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 on 31 Jan 2017
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.

Sign in to comment.

More Answers (1)

Laila Qaisi
Laila Qaisi on 19 Mar 2017
If you have written the code would you please share it as iam trying to find the same. Thanks!
  1 Comment
Atamert Arslan
Atamert Arslan on 19 Mar 2017
Edited: Atamert Arslan on 19 Mar 2017
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.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!