{"id":1617,"date":"2025-10-19T22:39:14","date_gmt":"2025-10-19T20:39:14","guid":{"rendered":"https:\/\/xeddixx.cluster029.hosting.ovh.net\/?page_id=1617"},"modified":"2025-10-27T10:05:34","modified_gmt":"2025-10-27T09:05:34","slug":"ga","status":"publish","type":"page","link":"https:\/\/www.francq.info\/index.php\/ga\/","title":{"rendered":"Genetic Algorithms"},"content":{"rendered":"\n<h4 class=\"wp-block-heading has-text-align-center\">Abstract<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Genetic Algorithms (GA) are a kind of meta-heuristics applicable to solve\u00a0<a href=\"\/index.php\/optimisation-problems\" data-type=\"link\" data-id=\"\/index.php\/optimisation-problems\" rel=\"nofollow\">optimization problems<\/a>.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"contents\">Table of Contents<\/h5>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec1\" rel=\"nofollow\">1. Definition of Genetic Algorithms<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec2\" rel=\"nofollow\">2. Origin of Genetic Algorithms<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec3\" rel=\"nofollow\">3. Genetic Algorithms and other Methods<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec4\" rel=\"nofollow\">4. The Structure of Genetic Algorithms<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec5\" rel=\"nofollow\">5. Initial Construction and Evaluation<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec6\" rel=\"nofollow\">6. Reproduction<\/a><\/p>\n\n\n\n<p class=\"refsec2 wp-block-paragraph\"><a href=\"#sec6_1\" rel=\"nofollow\">6.1. Proportional Selection<\/a><\/p>\n\n\n\n<p class=\"refsec2 wp-block-paragraph\"><a href=\"#sec6_2\" rel=\"nofollow\">6.2. Tournament<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec7\" rel=\"nofollow\">7. Crossover<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec8\" rel=\"nofollow\">8. Mutation<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec9\" rel=\"nofollow\">9. Inversion<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec10\" rel=\"nofollow\">10. Mutation and Inversion Frequencies<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec11\" rel=\"nofollow\">11. Genetic Algorithms for Multiple Objective Optimization Problems<\/a><\/p>\n\n\n\n<p class=\"refsec2 wp-block-paragraph\"><a href=\"#sec11_1\" rel=\"nofollow\">11.1. Philosophy<\/a><\/p>\n\n\n\n<p class=\"refsec2 wp-block-paragraph\"><a href=\"#sec11_2\" rel=\"nofollow\">11.2. Control Strategy<\/a><\/p>\n\n\n\n<p class=\"refsec2 wp-block-paragraph\"><a href=\"#sec11_3\" rel=\"nofollow\">11.3. Branching on Populations<\/a><\/p>\n\n\n\n<p class=\"refsec2 wp-block-paragraph\"><a href=\"#sec11_4\" rel=\"nofollow\">11.4. Verification of the Best Solutions<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#sec12\" rel=\"nofollow\">Section 12. Related<\/a><\/p>\n\n\n\n<p class=\"refsec1 wp-block-paragraph\"><a href=\"#references\" rel=\"nofollow\">References<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"#notes\" rel=\"nofollow\">Notes<\/a><\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec1\">1. Definition of Genetic Algorithms<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Before studying the different elements of Genetic Algorithms (GA) introduced by\u00a0John H. Holland\u00a0[<a href=\"#1\" rel=\"nofollow\">1<\/a>], it may be interesting first of all to define what GA are. GA can be defined as an exploration algorithm based on the mechanisms of natural selection and the genetic science\u00a0[<a href=\"#2\" rel=\"nofollow\">2<\/a>].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GA use the survival of the best adapted structure and an exchange of pseudo-random information to search the solution space. At each generation a new set of artificial artifacts is constructed by using parts of the best elements of the previous generation and, sometimes, by adding new characteristics. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GA are not only based on random exploration but also use information obtained from the past to evaluate the best position to explore in the future. The population is evaluated at each generation against an\u00a0<em>objective function<\/em>\u00a0to determine its adaptation.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec2\">2. Origin of Genetic Algorithms<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">GA are based of the natural evolution of species as described by\u00a0Charles Darwin\u00a0[<a href=\"#3\" rel=\"nofollow\">3<\/a>]: in any population, the best adapted (fitted) individuals have a greater chance of reproducing than less adapted ones; this is called\u00a0<em>natural selection<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In nature, new characteristics are transmitted to offsprings by crossing two individual genes. This process is not deterministic, and some uncertainty in these characteristics is introduced. Furthermore mutations may occur as genes are passed from parents to children implying that a small modification occurs in the copy, i.e. the child will have a characteristic not present in the parents. If this mutation has a positive influence on the child, the child will be better adapted than its fellows without this mutation; this newly introduced characteristic may thus be present in the next generation as the result of natural selection. Natural selection is thus based on the fact that some characteristics in a population reflects the specifications of the strongest (best adapted) individuals and thus should lead generally speaking to a better adapted population.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As in nature, where individuals may be represented by their chromosomes alone, GA work with a population of abstract representations of solutions called\u00a0<em>chromosomes<\/em>. At each iteration, a\u00a0<em>generation<\/em>, the chromosomes representing the best solutions<sup data-fn=\"a79bb46b-85e8-480e-a069-dc5fca786e6d\" class=\"fn\"><a href=\"#a79bb46b-85e8-480e-a069-dc5fca786e6d\" id=\"a79bb46b-85e8-480e-a069-dc5fca786e6d-link\">1<\/a><\/sup>\u200a\u00a0are selected and used for a\u00a0<em>crossover<\/em>\u00a0to produce new solutions. Their children replace the less adapted ones. By exchanging \u201cgood information\u201d between chromosomes, GA try to create new chromosomes with a better value with respect to the fitness function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note that the \u201cbad\u201d genes are not taken into account by GA<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec3\">3. Genetic Algorithms and other Methods<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">They are four major differences between a GA and traditional approaches to solving optimization problems:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>GA use a parameter coding rather than the parameters themselves, i.e. GA do not have to know the meaning of the parameters.<\/li>\n\n\n\n<li>GA work on a population of solutions and not on a single one, and so explore a larger portion of the search space.<\/li>\n\n\n\n<li>GA use a value of the function to be optimized and not another form of this function. The function does not need to have any special analytical properties.<\/li>\n\n\n\n<li>GA use probabilistic transitions and not deterministic ones. For the same instance of a problem (same initial conditions and data), the results may be different after two different runs\u200a<sup data-fn=\"269d8143-6302-443d-a05e-9c67cf48bbfb\" class=\"fn\"><a href=\"#269d8143-6302-443d-a05e-9c67cf48bbfb\" id=\"269d8143-6302-443d-a05e-9c67cf48bbfb-link\">2<\/a><\/sup>.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec4\">4. The Structure of Genetic Algorithms<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">The generic structure of a GA is shown in Figure\u00a01.<\/p>\n\n\n<div class=\"wp-block-image figtab\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"324\" height=\"315\" src=\"http:\/\/xeddixx.cluster029.hosting.ovh.net\/wp-content\/uploads\/2025\/10\/gaalgo.png\" alt=\"\" class=\"wp-image-1656\" srcset=\"https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/gaalgo.png 324w, https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/gaalgo-300x292.png 300w\" sizes=\"auto, (max-width: 324px) 100vw, 324px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Figure 1. Structure of a genetic algorithm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The different steps are:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>A population is constructed which is made up of a fixed number of solutions, known as chromosomes. Each chromosome is evaluated through a cost function describing the optimum targeted.<\/li>\n\n\n\n<li>GA reproduce some of the statistically best chromosomes. These chromosomes replace others, statistically the worst since the size of the population has to remain static<sup data-fn=\"e32e0c5e-dbce-4abe-9613-490cabe7d43f\" class=\"fn\"><a href=\"#e32e0c5e-dbce-4abe-9613-490cabe7d43f\" id=\"e32e0c5e-dbce-4abe-9613-490cabe7d43f-link\">3<\/a><\/sup>\u200a.<\/li>\n\n\n\n<li>GA construct new chromosomes by making a crossover between existing ones.<\/li>\n\n\n\n<li>There is a level of given probability that some of the chromosomes will be affected by a\u00a0<em>mutation<\/em>.<\/li>\n\n\n\n<li>There is a level of given probability that some of the chromosomes will be affected by an\u00a0<em>inversion<\/em>.<\/li>\n\n\n\n<li>Each newly created chromosome is evaluated by means of the cost function.<\/li>\n\n\n\n<li>GA stop if and when a final condition is reached that indicates that an acceptable solution exists; otherwise GA make a new generation by repeating step 2.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">All modern GA hold a separate copy of the best chromosome ever computed so as to avoid its accidental destruction when it forms part of the population.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both the operators and the encoding scheme are equally important.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The remainder of this article is devoted to a brief introduction to each operator. To illustrate each of them, a well-known example will be developed progressively to help the reader to master the concepts : the optimization of the function\u00a0<mathml>\\(\u00a0f(x)=x^2\\)<\/mathml>, where\u00a0x\u00a0is a coded number using five bits (<mathml>\\(\u00a0x\u2208[0,31]\\)<\/mathml>, with each bit\u00a0{0,1}\u00a0representing a gene of the chromosome\u00a0[<a href=\"#2\" rel=\"nofollow\">2<\/a>]. In this particular case the function,\u00a0\\(f(x)\\), can, of course, be used as a cost function which is maximum for the number 31, i.e. when all the bits coding the chromosome are set to 1. For the example, the size of population is fixed as 4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Remark:<\/strong>\u00a0The reader should note that the operators have to be chosen so that they reach the optimal solution, i.e. the operators described in the next sections cannot be used to solve every optimization problem.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec5\">5. Initial Construction and Evaluation<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">The first step is to construct and evaluate an initial population. The easiest way to construct this population is to randomly create the different chromosomes. But, when the initial population is of poor quality, GA need many more generations to reach the end condition. The initialization is therefore a crucial step in GA. In general, problem-dependent heuristics are used to initialize these solutions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For our example, random initialization is acceptable. Table\u00a01\u00a0shows the initial population and the value of the cost function for each chromosome.<\/p>\n\n\n\n<figure class=\"wp-block-table figtab\"><table class=\"has-fixed-layout\"><tbody><tr><td>Chromosome<\/td><td>Coding<\/td><td>\\(x\\)<\/td><td>\\(f(x)=x^2\\)<\/td><td>ranking<\/td><\/tr><tr><td>\\(C_1\\)<\/td><td>01101<\/td><td>13<\/td><td>169<\/td><td>3<\/td><\/tr><tr><td>\\(C_2\\)<\/td><td>11000<\/td><td>24<\/td><td>576<\/td><td>1<\/td><\/tr><tr><td>\\(C_3\\)<\/td><td>01000<\/td><td>8<\/td><td>64<\/td><td>4<\/td><\/tr><tr><td>\\(C_4\\)<\/td><td>10011<\/td><td>19<\/td><td>361<\/td><td>2<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Table 1. Initial Population for\u00a0\\(f(x)=x^2\\).<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec6\">6. Reproduction<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Historically, the reproduction step is the re-creation of a simple copy of a set of selected chromosomes that will replace a set of other selected chromosomes. In fact, no modern GA does the reproduction step by really copying chromosomes. Moreover, the role of reproduction is to select the way in which the different chromosomes will be treated by the crossover.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Different methods exist for the construction of these sets, but only two of them will be dealt with here: the\u00a0<em>proportional selection<\/em>\u00a0and\u00a0<em>the tournament<\/em>.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"sec6_1\">6.1. Proportional Selection<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Proportional selection is based on the idea that an individual who is twice as good as another should have double the chance of being reproduced\u00a0[<a href=\"#1\" rel=\"nofollow\">1<\/a>]. This selection is usually implemented using the \u201croulette wheel\u201d strategy. The wheel is divided into\u00a0\\(n\\)\u00a0sections,\u00a0n\u00a0being the number of chromosomes. Each section is labeled from\u00a01\u00a0through\u00a0\\(n\\), and has an arc length directly proportional to the fitness value of the corresponding individual. This is demonstrated in Figure\u00a02\u00a0for a population of\u00a04\u00a0chromosomes.<\/p>\n\n\n<div class=\"wp-block-image figtab\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"117\" height=\"117\" src=\"http:\/\/xeddixx.cluster029.hosting.ovh.net\/wp-content\/uploads\/2025\/10\/proposelect.png\" alt=\"\" class=\"wp-image-1660\" style=\"width:auto;height:150px\"\/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Figure 2. \u201cRoulette wheel\u201d strategy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A ball is run around the wheel and will stop at a random point, so determining the section selected. When this method is applied\u00a0t\u00a0times, this method selects\u00a0t\u00a0individuals that will be used as parents in the crossover. The individuals with high fitness values will naturally have more chance of being selected, and those with low fitness values have more chance of disappear in the next generation. The chromosomes selected are then randomly regrouped to form\u00a0\\(t\/2\\)\u00a0pairs, which are used as the parents for the crossovers. The number,\u00a0\\(t\\), of chromosomes to be selected for the crossover can be obtained by the crossover probability. For example, in a population of 10 chromosomes and a crossover probability of 0.6, 6 chromosomes will be selected as parents.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us apply proportional selection to our example (Table\u00a02). The length of the arc for each chromosome is computed with\u00a0\\(f(x)\/\\sum f(x)\\). By multiplying this length by the size of the population, it is possible to compute the number of copies expected for each chromosome.<\/p>\n\n\n\n<figure class=\"wp-block-table figtab\"><table class=\"has-fixed-layout\"><tbody><tr><td>Chromosome<\/td><td>\\(f(x)=x^2\\)<\/td><td>\\(f(x)\/\\sum f(x)\\)<\/td><td>\\(4\\cdot\\frac{f(x)}{\\sum f(x)}\\)<\/td><td>Copies<\/td><\/tr><tr><td>\\(C_1\\)<\/td><td>169<\/td><td>0.1444<\/td><td>0.5776<\/td><td>1<\/td><\/tr><tr><td>\\(C_2\\)<\/td><td>576<\/td><td>0.4923<\/td><td>1.9692<\/td><td>2<\/td><\/tr><tr><td>\\(C_3\\)<\/td><td>64<\/td><td>0.0547<\/td><td>0.2188<\/td><td>0<\/td><\/tr><tr><td>\\(C_4\\)<\/td><td>361<\/td><td>0.3085<\/td><td>1.234<\/td><td>1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Table 2. Proportional selection using the example.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As expected, the result of the selection is that the chromosome with the highest cost value function is copied twice while the chromosome with the lowest cost value function is not copied at all. So, after the proportional selection, there are\u00a02\u00a0copies of the chromosome stored in\u00a0\\(C_2\\)\u00a0and no copy of the chromosome which was stored in\u00a0\\(C_3\\). This means that a copy of the chromosome stored in\u00a0\\(C_2\\)\u00a0is stored in\u00a0\\(C_3\\), i.e. at this stage chromosomes stored in\u00a0\\(C_2\\)\u00a0and\u00a0\\(C_3\\)\u00a0are identical. The two pairs forming the parents for the potential random crossovers are\u00a0\\((C_1,C_2)\\)\u00a0and\u00a0\\((C_3,C_4)\\).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A disadvantage of this method is the fact that there are no guarantees that the best individual will be reproduced because proportional selection uses a probabilistic approach. Also, if the best chromosome ever computed is stored outside the population, it will not change the problem for the best chromosome in the population, which may be different from the best ever computed. The advantage is that the best solution is not always the parent of a global optimum, but sometimes of a local one. This strategy enables the local optimum to be overcome.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"sec6_2\">6.2. Tournament<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h6>\n\n\n\n<p class=\"figtab wp-block-paragraph\">The tournament strategy is illustrated in Figure\u00a03. The idea is to create an ordered list of the individuals with the best solution always at the top, and the others ordered according to a specific method described below\u00a0[<a href=\"#4\" rel=\"nofollow\">4<\/a>]. The upper part of the list will further be used when \u201cgood\u201d chromosomes are needed, while the lower part for \u201cbad\u201d chromosomes.<\/p>\n\n\n<div class=\"wp-block-image figtab\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"504\" height=\"198\" src=\"http:\/\/xeddixx.cluster029.hosting.ovh.net\/wp-content\/uploads\/2025\/10\/tournament.png\" alt=\"\" class=\"wp-image-1669\" srcset=\"https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/tournament.png 504w, https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/tournament-300x118.png 300w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Figure 3. Tournament selection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An initial set of all the individual identifiers is established. Two identifiers of this set are chosen randomly (step\u00a01), and their fitness values are compared (step\u00a02). The best of the two \u2014 the one corresponding to the individual with the best fitness value \u2014 is reinserted into the set, while the other is pushed into the list (step\u00a03). This method is repeated until all the identifiers in the set are in the list; this process leads to the construction of an ordered list of individuals, with the best one at the top of the list. The operator can then presume that the chromosomes ranked in the top half will be used as parents for the crossovers and the resulting children will replace the chromosomes in the bottom half.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us apply this strategy to the example in Table 3. Initially, the set contains all the chromosomes of the population and the list is empty.<\/p>\n\n\n\n<figure class=\"wp-block-table figtab\"><table class=\"has-fixed-layout\"><tbody><tr><td>Set<\/td><td>Test<\/td><td>Put in the list<\/td><td>List<\/td><\/tr><tr><td>\\({C_1,C_2,C_3,C_4}\\)<\/td><td><\/td><td><\/td><td>\\(\u2205\\)<\/td><\/tr><tr><td>\\({C_2,C_3,C_4}\\)<\/td><td>\\((C_1,C_4)\\)<\/td><td>\\(C_1\\)<\/td><td>\\({C_1}\\)<\/td><\/tr><tr><td>\\({C_2,C_4}\\)<\/td><td>\\((C_2,C_3)\\)<\/td><td>\\(C_3\\)<\/td><td>\\({C_1,C_3}\\)<\/td><\/tr><tr><td>\\({C_2}\\)<\/td><td>\\((C_2,C_4)\\)<\/td><td>\\(C_4\\)<\/td><td>\\({C_1,C_3,C_4}\\)<\/td><\/tr><tr><td>\\((C_1,C_4)\\)<\/td><td><\/td><td>\\(C_2\\)<\/td><td>\\({C_1,C_3,C_4,C_2}\\)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Table 3. An example of a tournament.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first two randomly compared chromosomes are\u00a0\\(C_1\\)\u00a0and\u00a0\\(C_4\\). Chromosome\u00a0\\(C_4\\)\u00a0has a better fitness value than\u00a0\\(C_1\\), so\u00a0\\(C_1\\)\u00a0goes in the list while\u00a0\\(C4\\)\u00a0goes back into the set. The next two randomly compared chromosomes are\u00a0\\(C_2\\)\u00a0and\u00a0\\(C_3\\). Because\u00a0\\(C_3\\)\u00a0has the lower fitness value it goes into the list and\u00a0\\(C_2\\)\u00a0stays in the set. Finally, the chromosomes are ordered as\u00a0\\({C_1,C_3,C_4,C_2}\\), where the last inserted chromosomes represents the best individual. The parents chosen for the crossovers are\u00a0\\(C_4\\) and\u00a0\\(C_2\\), and chromosomes\u00a0\\(C_1\\)\u00a0and\u00a0\\(C_3\\)\u00a0will contain the results of these crossovers.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In comparison with proportional selection, with the tournament strategy:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The chromosomes are not copied but just ordered, i.e. there is always only one copy of each chromosome. In fact, for well-designed operators the population must be as diversified as possible.\u00a0<\/li>\n\n\n\n<li>The last inserted chromosome in the list is the best chromosome of the population, i.e. in comparison with proportional selection the best individual is always reproduced.<\/li>\n<\/ol>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec7\">7. Crossover<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">The role of a crossover operator is to create new chromosomes in the population by using characteristics of parent chromosomes. If the crossover operator copies interesting characteristics, the corresponding new chromosomes should enjoy a better potential of adaptation, i.e. their fitness values should increase. The basic idea is that information, known as\u00a0<em>genes<\/em>, is exchanged between two selected chromosomes to create two new chromosomes. An example of such an exchange is shown in Figure\u00a04. A position called the\u00a0<em>crossing site<\/em>\u00a0is selected randomly from the string. The new chromosomes are constructed by mixing the left- and the right-hand sides of each parent\u2019s crossing site.<\/p>\n\n\n<div class=\"wp-block-image figtab\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"396\" height=\"117\" src=\"http:\/\/xeddixx.cluster029.hosting.ovh.net\/wp-content\/uploads\/2025\/10\/basiccross.png\" alt=\"\" class=\"wp-image-1674\" srcset=\"https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/basiccross.png 396w, https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/basiccross-300x89.png 300w\" sizes=\"auto, (max-width: 396px) 100vw, 396px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Figure 4. A simple crossover.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us apply this crossover operator to our example by choosing as parents the result of the tournament where the randomly selected crossing site is\u00a02\u00a0(Table\u00a04).<\/p>\n\n\n\n<figure class=\"wp-block-table figtab\"><table class=\"has-fixed-layout\"><tbody><tr><td>Parent<\/td><td>Children<\/td><td>Chromosome Replaced<\/td><td>\\(x\\)<\/td><td>\\(f(x)=x^2\\)<\/td><\/tr><tr><td>11\u2223000<\/td><td>11011<\/td><td>\\(C_1\\)<\/td><td>27<\/td><td>729<\/td><\/tr><tr><td>10\u2223011<\/td><td>10000<\/td><td>\\(C_3\\)<\/td><td>1<\/td><td>1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Table 4. Crossover on the example.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"sec8\">The result of the crossover shows that the newly created chromosome,\u00a0\\(C_1\\), has a better fitness value than the parents. In the example, chromosome\u00a0\\(C_3\\)\u00a0however has a very low fitness value and will probably be destroyed during the next reproduction step.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec8\">8. Mutation<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">If the crossover was the only existing operator, it would be impossible for GA to scan the whole search space. Indeed, if we assume that, in the initial population in our example no chromosomes has the third bit set to\u00a01, the best solution for the problem \u2014 corresponding to a chromosome with all the bits set to 1 \u2014 would never be found. The role of the mutation operator is to randomly insert new characteristics in the population to diversify it. An example of a mutation is shown in Figure\u00a05, where a gene is randomly chosen and modified.<\/p>\n\n\n<div class=\"wp-block-image figtab\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"333\" height=\"54\" src=\"http:\/\/xeddixx.cluster029.hosting.ovh.net\/wp-content\/uploads\/2025\/10\/basicmutation.png\" alt=\"\" class=\"wp-image-1675\" srcset=\"https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/basicmutation.png 333w, https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/basicmutation-300x49.png 300w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Figure 5. A simple mutation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In our example, this modification could consist in transforming a bit from 1 to 0 or from 0 to 1. If chromosome\u00a0\\(C_1\\)\u00a0in our example is chosen and the randomly selected bit is the third,\u00a0\\(C_1\\)\u00a0will be modified as\u00a011111, and the best solution to the problem will have been found (Table\u00a05).<\/p>\n\n\n\n<figure class=\"wp-block-table figtab\"><table class=\"has-fixed-layout\"><tbody><tr><td>Before Mutation<\/td><td>After Mutation<\/td><td>\\(x\\)<\/td><td>\\(f(x)=x^2\\)<\/td><\/tr><tr><td>11\u22230\u222311<\/td><td>11111<\/td><td>32<\/td><td>1024<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Table 5. Mutation on the example.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even if the interest of such an operator is clear in certain cases, the probability that a mutation occurs is very low because too many mutations would destroy the effects of the reproduction and the crossover. So it is necessary to adopt a method to choose the chromosome and, eventually, the gene on which the mutation must be carried out. Section\u00a0<a href=\"#sec10\" rel=\"nofollow\">10<\/a>\u00a0discusses some strategies that can be used.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec9\">9. Inversion<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">The crossover and the mutation operators affect the information contained in the chromosomes. The inversion operator does not change the information, but will change its presentation. Again, to understand this point, it is important to know that the position of a given gene in a chromosome has an influence on whether this gene will, or will not, be used by the different operators. For example, in the basic crossover presented at Figure\u00a04, a gene which is in the middle of a chromosome has more chance of being involved in a crossover than the first or last gene. It is therefore sometimes interesting to change the way information is presented. Figure\u00a06\u00a0shows a simple inversion operator if it is assumed that the value of the corresponding fitness function is not changed: two genes have been randomly chosen, here\u00a0<em>D<\/em>\u00a0and\u00a0<em>E<\/em>, and their information exchanged.<\/p>\n\n\n<div class=\"wp-block-image figtab\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"324\" height=\"54\" src=\"http:\/\/xeddixx.cluster029.hosting.ovh.net\/wp-content\/uploads\/2025\/10\/basicinversion.png\" alt=\"\" class=\"wp-image-1678\" srcset=\"https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/basicinversion.png 324w, https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/basicinversion-300x50.png 300w\" sizes=\"auto, (max-width: 324px) 100vw, 324px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Figure 6. A simple inversion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The pertinence of this operator strongly depends on the problem studied because an operator may not affect the information contained in a chromosome. This means that this operator is not always applied in real situations. In our example, the inversion of two bits in the chromosome will automatically change the number represented if the two bits are set to different values. In the\u00a0Grouping Genetic Algorithms (GGA), the inversion operator is applied.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec10\">10. Mutation and Inversion Frequencies<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">The mutation and inversion operators must not be used in each generation and on each chromosome. It is therefore necessary to develop a method to choose when and where to apply these operators.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A first strategy widely used in GA is to assign to each operator a probability,\u00a0pcross\u00a0and\u00a0pinv; values of 0.0333 are often found in the literature. In each generation, each chromosome has a probability of\u00a0pcross\u00a0and\u00a0pinv\u00a0of being chosen for a mutation or an inversion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another strategy is to apply such operators only when it \u201cseems necessary\u201d. Because the mutation is used to insert diversity into the population and the inversion to facilitate the work of the other operators, these operators are needed when GA seem to be stagnating. Two situations can indicate that GA do not longer evolute:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A number of generations has been run through without the best chromosome computed ever changing. When a given threshold is reached, the best chromosome ever computed is chosen, a mutation is effected on it and the result replaces a chromosome in the population.<\/li>\n\n\n\n<li>A given number of generations has been run through without the best chromosome in the population changing. When a given threshold is reached, the best chromosome in the population is chosen, a mutation is effected on it and the result replaces a chromosome in the population.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The following approaches can be used to choose the chromosome to be replace:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The chromosome with the lowest fitness value is used for the mutation.<\/li>\n\n\n\n<li>A chromosome is chosen using the \u201croulette wheel\u201d strategy (see section\u00a0<a href=\"#sec6_1\" rel=\"nofollow\">6.1<\/a>).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In some GA, when a mutation must be carried out on the best chromosome ever computed, a special operator known as the\u00a0<em>strong mutation<\/em>\u00a0is used. In general, this type of operator modifies the chromosome profoundly while a normal mutation only brings about minor changes.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec11\">11. Genetic Algorithms for Multiple Objective Optimization Problems<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"sec11_1\">11.1. Philosophy<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Most of the approaches merging\u00a0multiple objective optimization\u00a0and GA are illustrated in Figure\u00a07 a: GA compute a set of\u00a0Pareto\u00a0solutions and a multi-criteria decision-aid method is then used to choose the best one as the final solution. Because most\u00a0Pareto-based methods focus on a single point on the\u00a0Paretofront, some potentially interesting solutions fail to be studied.<\/p>\n\n\n<div class=\"wp-block-image figtab\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"477\" height=\"414\" src=\"http:\/\/xeddixx.cluster029.hosting.ovh.net\/wp-content\/uploads\/2025\/10\/mogga.png\" alt=\"\" class=\"wp-image-1679\" srcset=\"https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/mogga.png 477w, https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/mogga-300x260.png 300w\" sizes=\"auto, (max-width: 477px) 100vw, 477px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Figure 7. Multiple Objective Grouping Genetic Algorithm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To tackle grouping problems with multiple objective optimization\u00a0Brahim Rekiek\u00a0proposed an extension of the GA that uses a multi-criteria decision-aid method for ranking (Figure\u00a07)\u00a0[<a href=\"#5\" rel=\"nofollow\">5<\/a>]\u00a0. The important feature is the integration because it enables the GA to scan all the interesting parts of the search space. Because the method is called upon each time an evaluation of a population is needed, it is important for the method to be rapid. The\u00a0<a href=\"\/index.php\/promethee\" rel=\"nofollow\">PROMETHEE method<\/a>\u00a0[<a href=\"#6\" rel=\"nofollow\">6<\/a>]\u00a0is the multi-criteria decision-aid used.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At each generation all the chromosomes are considered to be a set of solutions to be ranked with regard to the criteria, i.e. at each generation a multiple objective problem must be solved. Each problem is defined by a set solutions\u00a0\\(C_1\\),\u00a0\\(C_2\\), \u2026,\u00a0\\(C_{|\\mathcal{A}|}\\) and\u00a0\\(C_{\\mathrm{Best}}\\)\u00a0consisting of the\u00a0\\(|\\mathcal{A}|\\)\u00a0chromosomes of a population, the best chromosome ever computed\u00a0\\(C_{\\mathrm{Best}}\\), and a set of\u00a0\\(|\\mathcal{A}|\\)\u00a0objectives. an evaluation criterion,\u00a0\\(f_o\\), and a weight,\u00a0\\(w_o\\), are associated with each objective,\u00a0\\(o\\). An evaluation\u00a0\\(f_o(C_c\\))\u00a0corresponds to each couple of chromosome\u00a0\\(C_c\\)\u00a0and evaluation criterion\u00a0\\(f_o\\). This evaluation\u00a0\\(f_o(C_c)\\)\u00a0is given as a real number and representing the quality of the chromosome for the given criterion. All these evaluations make up the evaluation table used as input by the\u00a0PROMETHEE method\u00a0(Table 6).<\/p>\n\n\n\n<figure class=\"wp-block-table figtab\"><table class=\"has-fixed-layout\"><tbody><tr><td><\/td><td>\\(f_1(.)\\)<\/td><td>\\(f_2(.)\\)<\/td><td>\u22ef<\/td><td>\\(f_o(.)\\)<\/td><td>\u22ef<\/td><td>\\(f_k(.)\\)<\/td><\/tr><tr><td>\\(C_1\\)<\/td><td>\\(f_1(C_1)\\)<\/td><td>\\(f_2(C_1)\\)<\/td><td>\u22ef<\/td><td>\\(f_o(C_1)\\)<\/td><td>\u22ef<\/td><td>\\(f_k(C_1)\\)<\/td><\/tr><tr><td>\\(C_2\\)<\/td><td>\\(f_1(C_2)\\)<\/td><td>\\(f_2(C_2)\\)<\/td><td>\u22ef<\/td><td>\\(f_o(C_2)\\)<\/td><td>\u22ef<\/td><td>\\(f_k(C_2)\\)<\/td><\/tr><tr><td>\u22ee<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>\\(C_c\\)<\/td><td>\\(f_1(C_c)\\)<\/td><td>\\(f_2(C_c)\\)<\/td><td>\u22ef<\/td><td>\\(f_o(C_c)\\)<\/td><td>\u22ef<\/td><td>\\(f_k(C_c)\\)<\/td><\/tr><tr><td>\u22ee<\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><td><\/td><\/tr><tr><td>\\(C_{|\\mathcal{A}|}\\)<\/td><td>\\(f_{1}(C_{|\\mathcal{A}|})\\)<\/td><td>\\(f_{2}(C_{|\\mathcal{A}|})\\)<\/td><td>\u22ef<\/td><td>\\(f_{o}(C_{|\\mathcal{A}|})\\)<\/td><td>\u22ef<\/td><td>\\(f_{k}(C_{|\\mathcal{A}|})\\)<\/td><\/tr><tr><td>\\(C_{Best}\\)<\/td><td>\\(f_1(C_{Best})\\)<\/td><td>\\(f_2(C_{Best})\\)<\/td><td>\u22ef<\/td><td>\\(f_o(C_{Best})\\)<\/td><td>\u22ef<\/td><td>\\(f_k(C_{Best})\\)<\/td><\/tr><tr><td><\/td><td>\\(\u03d5_1\\)<\/td><td>\\(\u03d5_2\\)<\/td><td>\u22ef<\/td><td>\\(f_k(C_{Best})\\)<\/td><td>\u22ef<\/td><td>\\(\u03d5_k\\)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Table 6. Evaluation table.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PROMETHEE method\u00a0computes a\u00a0<em>net flow<\/em>\u00a0\\(\u03d5_i\\)\u00a0for each chromosome. The net flow is the result of comparisons with all the other chromosomes for all the criteria. Using net flows it is possible to establish an inter-chromosomes ranking order from the highest to the lowest values of \\(\u03d5_i\\).<\/p>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"sec11_2\">11.2. Control Strategy<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">At each generation, the\u00a0PROMETHEE method\u00a0enables the GA to rank all the chromosomes in a population, and the best chromosome ever found (Figure 8). Subsequent to this step the GA can compare two chromosomes and determine which one is the best. If the best chromosome ever found is not the top-ranking, it will be replaced by the top-ranking one.<\/p>\n\n\n<div class=\"wp-block-image figtab\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"423\" height=\"207\" src=\"http:\/\/xeddixx.cluster029.hosting.ovh.net\/wp-content\/uploads\/2025\/10\/moselect.png\" alt=\"\" class=\"wp-image-1682\" srcset=\"https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/moselect.png 423w, https:\/\/www.francq.info\/wp-content\/uploads\/2025\/10\/moselect-300x147.png 300w\" sizes=\"auto, (max-width: 423px) 100vw, 423px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Figure 8. Control Strategy for Multiple Objective Optimization Problems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If used with the tournament as a selection operator, when two solutions are chosen for comparison, it is their ranking which determines the best one rather than the result of a fitness function. Because conventional GA need a fitness function to work, it is interesting to transform the ranking of the chromosomes into a fitness function.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A first idea is to choose the net flow\u00a0\u03d5i\u00a0as the value for the fitness function for each chromosome. The problem is that the computing of the net flow is the result of comparisons, i.e. between two generations the net flow of the best chromosome ever computed may change. It is therefore impossible to use the net flow as fitness function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The method used in this thesis to determine the value of the cost function depends on a case to case basis. Let us suppose that at generation\u00a0g\u00a0the chromosomes were ranked as\u00a0\\(s_1\\), \u2026 ,\u00a0\\(s_{|\\mathcal{A}|+1}\\) \u00a0where\u00a0\\(s_1\\)was the best ranked chromosome and\u00a0\\(s_{|\\mathcal{A}|+1}\\)\u00a0the worst ranked one. Let us also assign to each chromosome a cost function,\u00a0\\(c_g(C_c)\\). The cost functions can then be computed using the ranking obtained with\u00a0PROMETHEE method:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\\[c_{g}(C_{c}) = \\left\\{ \\begin{array}{cc} g+1.1 & C_{c}=s_{1}\\,\\mathrm{and}\\,s_{1}\\neq C_{\\mathrm{Best}}\\\\ c_{\\mathrm{Best},g-1} & C_{c}=s_{1}\\,\\mathrm{and}\\,s_{1}=C_{\\mathrm{Best}}\\\\ 1 & C_{c}=s_{2}\\mathrm{and}\\,s_{1}\\neq C_{\\mathrm{Best}}\\\\ \\frac{|\\mathcal{A}|+1-r}{|\\mathcal{A}|} & C_{c}=s_{r}\\neq C_{\\mathrm{Best}}\\,\\mathrm{and}\\,o>2 \\end{array}\\right.\\]\n\n\n\n<p class=\"wp-block-paragraph\">The value of the cost function of the highest ranked chromosome is set to\u00a0\\(g+1.1\\)\u00a0if it is not the best chromosome ever computed, else the cost function remains identical. The value of the cost function for the second highest ranked chromosome is set to 1. The values of the cost function for the other chromosomes are proportional to the corresponding ranking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us illustrate the method on the example given in Table 7\u00a0for a population of 4 chromosomes and the first 2 generations. The ranking is shown for each generation and the cost function is computed.<\/p>\n\n\n\n<figure class=\"wp-block-table figtab\"><table class=\"has-fixed-layout\"><tbody><tr><td><\/td><td colspan=\"2\">\\(g=0\\)<\/td><td colspan=\"2\">\\(g=1\\)<\/td><td colspan=\"2\">\\(g=2\\)<\/td><\/tr><tr><td>\\(s_r\\)<\/td><td>\\(C_c\\)<\/td><td>\\(c_0(C_C)\\)<\/td><td>\\(C_c\\)<\/td><td>\\(g=2\\)<\/td><td>\\(C_c\\)<\/td><td>\\(c_2(C_C)\\)<\/td><\/tr><tr><td>\\(s_1\\)<\/td><td>\\(C_1\\)<\/td><td>1.1<\/td><td>\\(C_{Best}\\)<\/td><td>1.1<\/td><td>\\(C_3\\)<\/td><td>3.1<\/td><\/tr><tr><td>\\(s_2\\)<\/td><td>\\(C_3\\)<\/td><td>1<\/td><td>\\(C_2\\)<\/td><td>1.0<\/td><td>\\(C_1\\)<\/td><td>1<\/td><\/tr><tr><td>\\(s_3\\)<\/td><td>\\(C_2\\)<\/td><td>24<\/td><td>\\(C_3\\)<\/td><td>24<\/td><td>\\(C_{Best}\\)<\/td><td>1.1<\/td><\/tr><tr><td>\\(s_4\\)<\/td><td>\\(C_4\\)<\/td><td>14<\/td><td>\\(C_1\\)<\/td><td>14<\/td><td>\\(C_4\\)<\/td><td>14<\/td><\/tr><tr><td>\\(s_5\\)<\/td><td>\\(C_{Best}\\)<\/td><td>0<\/td><td>\\(C_4\\)<\/td><td>0<\/td><td>\\(C_2\\)<\/td><td>0<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center legende wp-block-paragraph\">Table 7. Transforming ranking into a cost function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The best chromosome was not computed after initialization, and is therefore ranked as the worst one. Chromosome\u00a0\\(C_1\\)\u00a0is ranked as the best one and also has the greatest cost value function and will be chosen as the best chromosome. After the first generation, the ranking leaves the best chromosome in its position as the best ranked one, i.e. its cost function has not changed and is still better than that of the others. After the second generation, the best ranked chromosome is no longer\u00a0\\(C_{Best}\\)\u00a0but\u00a0\\(C_3\\). The cost function of\u00a0\\(C_3\\)\u00a0becomes\u00a0\\(2+1.1\\)\u00a0and is then better than that of the best chromosome. Chromosome\u00a0\\(C_3\\) will be chosen as the best chromosome ever computed. The fact that\u00a0\\(C_1\\)\u00a0is better ranked than\u00a0\\(C_{Best}\\)\u00a0and has worse cost function is not important because\u00a0\\(C_{Best}\\)\u00a0will be replaced by\u00a0\\(C_3\\)\u00a0and disappear from the Genetic Algorithm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The advantage of the described method is that the GGA operators do not know anything about the multi-criteria decision-aid method used for ranking the chromosomes. Integration into standard GGA is therefore facilitated.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"sec11_3\">11.3. Branching on Populations<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">As explained previously, a weight is assigned to each objective. In fact, in the\u00a0PROMETHEE method, a triplet of values\u00a0\\((p_{o},q_{o},w_{o})\\)\u00a0must be assigned to each evaluation criterion associated to an objective, where\u00a0p\u00a0is the preference threshold,\u00a0q\u00a0the indifference threshold and\u00a0w\u00a0the weight. Finding the right values for all these parameters is not an easy task. Moreover, different values in these parameters may produce different results because the ranking has changed. Good practice for a decision maker is therefore to run several GA with different values in these parameters and to choose the best solution produced.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another method suggested by\u00a0Rekiek\u00a0is a\u00a0<em>branching on populations<\/em>\u00a0technique inspired by an optimizing method involving searching a population tree\u00a0[<a href=\"#7\" rel=\"nofollow\">7<\/a>]. The basic idea is to work on a population tree where, at each node,\u00a0\\(n\\), a GA runs with specific values for the triplets\u00a0(p(n)o,q(n)o,w(n)o)\u00a0for the different criteria used in\u00a0PROMETHEE method. With methods like\u00a0<em>branching<\/em>\u00a0and\u00a0<em>backtracking<\/em>\u00a0it is possible to construct such trees. Using this method the decision-maker runs the Genetic Algorithm for a number of generations with a given set of value for the triplets. If he is not satisfied with the population\u00a0P(0)\u00a0computed, he can change some of the values of the triplets and run the Genetic Algorithm again for a number of generations. If the new results,\u00a0\\(P(1)\\), are worse, the decision-maker can go back to the population,\u00a0\\(P(0)\\). If the new results are better, he can change some triplets again and rerun the Genetic Algorithm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While this seems a promising proposition, it is difficult to implement such a solution automatically, i.e. a decision-maker is generally needed to change the values of the triplets and to check the improvement or the deterioration of the different populations while the tree is under construction. Moreover, this method transforms GAs, which are unsupervised clustering methods, i.e. methods that can produce results without any human interactions, into supervised clustering methods where some human interventions are necessary.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"sec11_4\">11.4. Verification of the Best Solutions<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">PROMETHEE method\u00a0is a ranking method based on a comparison of the solutions to each criterion, i.e. the ranking of each solution is dependent on the other solutions compared. When dealing with approximate multi-criteria problems, the values of the criteria for each solution are just an approximation of the quality of the solution. It can be added that when comparing two solutions,\u00a0\\(S_1\\) and\u00a0\\(S_2\\), where\u00a0\\(S_1\\)\u00a0is a better solution than\u00a0\\(S_2\\), the values of the other solutions relative to the population lead\u00a0\\(S_2\\)\u00a0as the best to be ranked, i.e. the actual best solution is replaced. This can be seen as a problem where a \u201clocal optimum\u201d hides the \u201cglobal optimum\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To avoid this problem, an idea could be to store in a separate set all the different solutions that the GA has ranked as the best solution on an occasion. At the end of the Genetic Algorithm, these best solutions are checked by applying the\u00a0PROMETHEE method\u00a0to this set. The solution ranked as first is then return as the result of the Genetic Algorithm. This solution has been successfully applied to a cell formulation problem\u00a0[<a href=\"#8\" rel=\"nofollow\">8<\/a>]. While this method decrease the probability that a \u201clocal optimum\u201d hides the \u201cglobal optimum\u201d, it does not avoid it. In fact, the ranking done after the run of the Genetic Algorithm can also be incorrect.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"sec12\">12. Related<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\/index.php\/gga\" rel=\"nofollow\">Grouping Genetic Algorithms<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\/index.php\/sgga\" rel=\"nofollow\">Similarity-based Grouping Genetic Algorithm<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\/index.php\/hga\" rel=\"nofollow\">Hierarchical Genetic Algorithms<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\/index.php\/2d-ga\/\" data-type=\"page\" data-id=\"1719\" rel=\"nofollow\">2D Genetic Algorithms<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"\/index.php\/nngga\" rel=\"nofollow\">Nearest Neighbors Grouping Genetic Algorithm<\/a><\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"references\">References<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"1\">[1]\u00a0John H. Holland,\u00a0<em>Adaptation in Natural and Artificial Systems<\/em>, University of Michigan Press, 1975.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"2\">[2]\u00a0David E. Goldberg,\u00a0<em>Genetic Algorithms in Search<\/em>, Addison-Wesley, 1991.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"3\">[3]\u00a0Charles Darwin,\u00a0<em>On the Origin of Species<\/em>, John Murray, 1859.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"4\">[4]\u00a0David E. Goldberg,\u00a0Bradley Kork\u00a0&\u00a0Kalyanmoy Deb, \u201cMessy Genetic Algorithms: Motivation, Analysis, and First Results\u201d,\u00a0<em>Complex Systems<\/em>, 3(5), pp. 493\u2014530, 1989.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"5\">[5]\u00a0Brahim Rekiek,\u00a0<em>Assembly Line Design : Multiple Objective Grouping Genetic Algorithm and the Balancing of Mixed-model Hybrid Assembly Line<\/em>, PhD Thesis, Universit\u00e9 libre de Bruxelles, 2000.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"6\">[6]\u00a0Jean-Pierre Brans\u00a0&\u00a0Bertrand Mareschal, \u201dThe PROMCALC & GAIA Decision Support System for Multicriteria Decision Aid\u201d,\u00a0<em>Decision Support Systems<\/em>, 12(4\u20115), pp. 297\u2014310, 1994.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"7\">[7]\u00a0Louis Steinberg\u00a0&\u00a0Khaled Rasheed, \u201cOptimizing by Searching a Tree of Populations\u201d, In\u00a0<em>Proceedings of the Genetic and Evolutionary Computation Conference GECCO\u201999<\/em>, pp. 1723\u20141730, 1999.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"8\">[8]\u00a0Emmanuelle Vin,\u00a0Pierre De Lit\u00a0&\u00a0Alain Delchambre, \u201cA New Combined Approach to Solve the Cell Formation Problem with Alternative Routings\u201d, In\u00a0<em>Proceedings of ACS\u20192002: Advanced Computer Systems<\/em>, pp. 43\u201450, 2002.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"notes\">Notes<a href=\"#contents\" rel=\"nofollow\">\u2191<\/a><\/h5>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"a79bb46b-85e8-480e-a069-dc5fca786e6d\">The solutions with the best values for a given cost function. <a href=\"#a79bb46b-85e8-480e-a069-dc5fca786e6d-link\" aria-label=\"Aller \u00e0 la note de bas de page 1\">\u21a9\ufe0e<\/a><\/li><li id=\"269d8143-6302-443d-a05e-9c67cf48bbfb\">In fact, this can make debugging more difficult because it is impossible to reproduced the bugs from one run to another. Because of this, there is generally a debug mode in GA, where under same initial conditions two different runs will produce the same results. This can be done by implementing a pseudo-random generator which reproduces the same sequence of numbers if asked. <a href=\"#269d8143-6302-443d-a05e-9c67cf48bbfb-link\" aria-label=\"Aller \u00e0 la note de bas de page 2\">\u21a9\ufe0e<\/a><\/li><li id=\"e32e0c5e-dbce-4abe-9613-490cabe7d43f\">This is not necessary, but in a computer environment, memory and speed problems increase when the size of the population increases. This is the reason why standard-size populations are selected. <a href=\"#e32e0c5e-dbce-4abe-9613-490cabe7d43f-link\" aria-label=\"Aller \u00e0 la note de bas de page 3\">\u21a9\ufe0e<\/a><\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>Abstract Genetic Algorithms (GA) are a kind of meta-heuristics applicable to solve\u00a0optimization problems. Table of Contents 1. Definition of Genetic Algorithms 2. Origin of Genetic Algorithms 3. Genetic Algorithms and other Methods 4. The Structure of Genetic Algorithms 5. Initial Construction and Evaluation 6. Reproduction 6.1. Proportional Selection 6.2. Tournament 7. Crossover 8. Mutation 9. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"[{\"content\":\"The solutions with the best values for a given cost function.\",\"id\":\"a79bb46b-85e8-480e-a069-dc5fca786e6d\"},{\"content\":\"In fact, this can make debugging more difficult because it is impossible to reproduced the bugs from one run to another. Because of this, there is generally a debug mode in GA, where under same initial conditions two different runs will produce the same results. This can be done by implementing a pseudo-random generator which reproduces the same sequence of numbers if asked.\",\"id\":\"269d8143-6302-443d-a05e-9c67cf48bbfb\"},{\"content\":\"This is not necessary, but in a computer environment, memory and speed problems increase when the size of the population increases. This is the reason why standard-size populations are selected.\",\"id\":\"e32e0c5e-dbce-4abe-9613-490cabe7d43f\"}]"},"class_list":["post-1617","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.francq.info\/index.php\/wp-json\/wp\/v2\/pages\/1617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.francq.info\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.francq.info\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.francq.info\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.francq.info\/index.php\/wp-json\/wp\/v2\/comments?post=1617"}],"version-history":[{"count":46,"href":"https:\/\/www.francq.info\/index.php\/wp-json\/wp\/v2\/pages\/1617\/revisions"}],"predecessor-version":[{"id":2230,"href":"https:\/\/www.francq.info\/index.php\/wp-json\/wp\/v2\/pages\/1617\/revisions\/2230"}],"wp:attachment":[{"href":"https:\/\/www.francq.info\/index.php\/wp-json\/wp\/v2\/media?parent=1617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}