The basic idea is to sort w.r.t. the objectives in the sense that those solutions that are (1) non-dominated and (2) most accurate in all the objectives appear at the beginning of the list of solutions. This way the genetic algorithm selects these to cross and mutate in upcoming generations, discarting the not-so-fit ones.
Take a look at "Multi-objective optimization using genetic algorithms: A tutorial," from Abdullah Konaka, David Coitb, and Alice E. Smithc. There you will find many examples.
Thanks Andreu, Actually, I am looking for a numerical example. Or a flow chart of non-dominated sorting with all details. You can find a sample for single objective optimization in most of my optimization papers.
You can find the non-dominated sorting procedure of Deb et al. which when applied on a population returns a list of the non-dominated fronts, for example by following the link:
Hi Hossein, I also advise you the book "Multi-objective optimization using evolutionary algorithms" by Deb, specially the second chapter.
For a simple example for non-dominated sorting concept, consider a bi-objective problem in which both objective functions (F1 and F2) are minimization. Consider 5 solutions (F1,F2) as set A={(3,4), (1,5), (4,4), (6,7), (2,3)}.
First, we find the solutions of the first front. To do this, each solution will be compared to other solutions to find whether it will be dominated by others or not. If the proposed solution is not dominated by other solutions, it belongs to the first front. After finding the solutions of the first front, they are removed from set A, and the previous procedure will be repeated for the remained solutions for higher fronts.
According to set A above, (2,3) is only solution in front 1, because it is the only solution that is not dominated by other solutions. By removing (2,3) from set A, solutions (3,4) and (1,5) are the only solutions that are not dominated by others. So, they belong to front 2. Accordingly (4,4) belongs to front 3, and (6,7) to front 4.
Thanks for your kindness and helpful answer. Could you kindly please send me the publisher and publication year as well? As may you know, Deb has more than a book in multi-objective optimization.
i have bi-ojective function and wish to sort non-dominated solution. This program is running but again if any error or problem then Please help to correct the existing code or send any example please.
The code of NSGA II (non-dominated sorting genetic algorithms) is freely available on the Internet. You can copy the relevant portion and implement for your need.
You can see the original NSGA II algorithm of Deb et al. It would be better to code it by yourself to better understand the functioning of the non dominated sorting procedure.
I code with Matlab, there, to add constraints on your algorithm, you simply have to add while loops after selection of random solutions, after crossover and after mutation.
The aim of the while loops is to check whether generated solutions fulfill your constraints.
Of course, it is possible to handle piecewise functions with NSGA-II. You have to apply boundary constraints while defining your objective functions in the algorithm.
For a deep understanding of NSGA-II algorithm, I recommend you to read the original article of Deb and al.
Article A fast and elitist multiobjective genetic algorithm: NSGA-II
.
Here is a link to a working NSGA-II Matlab code (developped by Victor Martinez Cagigal): https://www.mathworks.com/matlabcentral/fileexchange/65494-non-sorting-genetic-algorithm-ii-nsga-ii?s_tid=prof_contriblnk