You are on page 1of 15

Genetic algorithm for the optimization of the train energy consumption

3. Approaching the genetic algorithm

Figure 3.1. Speed profile

In the speed profile, four driving phases are needed and the speed of each phase should satisfy the time

and distance constraints. Under this condition, to achieve the speed profile, six decision variables are

needed.

3.1 Representation structure

Once the number of decision variables is defined, we should consider mapping the solution space into

the chromosome space to simplify the crossover and mutation operations. In this thesis, the

chromosome is defined as a N*6 dimensional matrix ! with the speed profile for each segment as

!! which has ! !, 1 = !! , ! !, 2 = !!!! , ! !, 3 = !! , ! !, 4 = !! , ! !, 5 = !! , ! !, 6 = !! .

So, the control strategy ! will be represent as:

! = (!! ; !! ; ; !! ; ; !! )

!! = ! !, 1 , ! !, 2 , ! !, 3 , ! !, 4 , ! !, 5 , ! !, 6 , ! = 1, , !

3.2 Initialization

For each 1 ! !, we first randomly generate the boundary speed !(!, 1) and !(!, 2) satisfying

(2.3.2), then based on the boundary speed !(!, 1), the cruising speed !(!, 3) can be generated to

14
Approaching the genetic algorithm

satisfy the condition (2.3.3). After this, the distance condition (2.3.9) needs to be checked to make sure

the cruising speed is reachable.

As the distance of one segment is fixed, the braking velocity is constrained by the distance constraint

and can be illustrated by the following equations:

(!!! !! ) + (!!! !!! ) + (!!! !!! ) + (!!!! !!! ) = !!!! !! (3.2.1)

where (!!! !!! ) is known after !(!, 1) and !(!, 2) are generated. The four expressions on the

left side denote the distance the train traversed under the generated speeds and the right side is the

distance of the segment. In this equation, the unknown variables, !!! and !!! are both related to

!(!, 4) and can be represented by !(!, 4), such that the unknown variable in above equation just

!(!, 4).

Recall the integrating with respect to the distance, for the two expressions on the left side that related to

the unknown variables can be represented as follows:

!! !
!! !!!"!!! !
!" = (!!! !!! ) (3.2.3)

!!!! !
!" = (!!!! !!! ) (3.2.4)
!! !!!!"!!! !

where ! = ! + ! sin (!! ) and ! ! = !!"#$% ! + ! sin (!! ), then rewrite them by !!

!!!! ! !! !
!!! = !!!! !" !" (3.2.5)
!! !!!!"!!! ! !! !!!"!!! !

!!!! !
!!! = !!!! !" (3.2.6)
!! !!!!"!!! !

replace them into the distance constraint, we can get

!!!! ! !! !
!!! !! + !!!! !" !" !!! +
!! !!!!"!!! ! !! !!!"!!! !

!!!! ! !!!! ! !! !
!!!! !" (!!!! !" !") +
!! !!!"!!! ! !! !!!!"!!! ! !! !!!"!!! !

!!!! !
!!!! (!!!! !") = !!!! !! (3.2.7)
!! !!!!"!!! !

The unknown variable just the braking velocity !! , which means the switching velocity !(!, 4) from

coasting to braking is determined and needed to calculated from the above equation.

15

Genetic algorithm for the optimization of the train energy consumption

Once !(!, 4) is achieved, !(!, 5) and !(!, 6) can be calculated depending on the following

equation:

!!! !! + !!! !!! + !!! !!! + !! !!! = !! !! (3.2.8)

also recall the integrating with respect to the travelling time and represents it by the speeds

!! !" !!!! ! !! ! !! !
!! !!!!!"!!! !
+ ((!!!! !" !" ( !" + !! ))/!!
!! !!!!"!!! ! !! !!!"!!! ! !! !!!!!"!!! !
!! !" !!!! !"
+ !! !!!"!!! !
+ = !! !! (3.2.9)
!! !!!!"!!! !

where ! !! = !!"" ! + ! sin (!! ). Due to the continuity, !! is also known as !!!! that already

been calculated at previous segment, the unknown variable just !! and can be calculate from this

equation.

As a result of previous calculations, though we have six decision variables, the unknown just the

!(!, 2) and !(!, 3), the others are either known by previous segment or can be calculated based on

the speeds.

Define pop_size as the size of population. Based on above process, randomly generate pop_size

chromosomes as the initialized population. The initialization procedure can be described as following:

Step 1. Set i = 1.

Step 2. According to the constraints, randomly generate a feasible chromosome !! .

Step 3. If ! < !"!_!"#$, set i = i+1 then go to step 2, else stop and return the initialized population.

3.3 Evaluation function

Evaluation is a process that calculates the probability of reproduction of a chromosome that can be

selected to produce next generation and the probability is proportional to its fitness with respect to the

other chromosome in the population. Higher the fitness, more chance for the chromosome to produce

next generation. For each chromosome !! , the fitness is defined as the objective value.

Assume the chromosomes are sorted from good to bad according to their fitness value such that !! is

the fittest chromosome that has the smallest objective value and !!"!_!"#$ is the one has the largest

16
Approaching the genetic algorithm

objective value. Considering a real number ! (0,1), define the rank-based evaluation function as

following:

!!!
!"#$ !! = ! 1 ! , ! = 1,2, , !"!_!"#$. (3.3.1)

Then the evaluation process can be defined as follows:

Step 1. Randomly generate a real number ! (0,1).

Step 2. Calculate the fitness values for all the chromosomes.

Step 3. Arrange these chromosomes from good to bad according to these fitness values.

Step 4. Calculate the evaluation values for all chromosomes according to the evaluation function

(3.3.1).

3.4 Selection process

During the successive generation, only a proportion of existing population can be selected and to

produce a new generation. The selection process is though spinning the roulette wheel to select a

chromosome every time until select pop_size chromosomes. The roulette wheel is proportional to the

fitness of chromosomes, which means fitter chromosomes can have higher chance to be selected. This

selection procedure is defined as follows:

Step 1. Initialize ! = 0 and calculate the reproduction probability for each chromosome
!
!! = 0, !! = !!! !"#$ !! , ! = 1,2, , !"!_!"#$ .

Step 2. Randomly generate a real number ! (0, !"!!"#$ ].

Step 3. Select chromosome !! if !!!! < ! !! , set ! = ! + 1.

Step 4. If ! < !"!_!"#$, go to step 2, else stop.

As we can see from the procedure that not all the chromosomes can be selected and one chromosome

may be chosen several times.

3.5 Crossover operation

Crossover operation is one of the mostly used operations to bread next generation. First, a parameter

!! (0,1) is defined to denote the crossover probability. Then for each chromosome generate a

17

Genetic algorithm for the optimization of the train energy consumption

random real number ! from [0,1], and select the chromosome !! if ! > !! . Due to this selection

process, not all chromosomes can be selected, but all the chromosomes have the same opportunity to be

selected. Suppose ! is the number of chosen chromosomes and denote them as !! , !! , , !! . If c is an

odd number, we can either arbitrarily discard one of them or add an unchosen one. After that divide

these chromosomes into pairs as following:

!! , !! , !! , !! , , (!!!! , !! )

For the six decision variables, ! !, 1 , ! !, 5 , is defined by previous segment and ! !, 4 , !(!, 6)

are calculated according to the first three decision variables. In the sake of continuity, the crossover can

be just applied on !(!, 2) and !(!, 3), which are leaving speed and cruising speed. However, if we

applied the crossover for !(!, 2) and !(!, 3) at the same time, it is possible that the result is

infeasible with respect to the constraint (2.3.9). As a result of it, we just crossover the !(!, 2) and

randomly generate the !(!, 3) according to the constraints (2.3.3).

Denote the children of parents (!! , !! ) as (!! , !! ). For each segment, generate a random real number

!! belongs to unit interval [0,1], such that !! !, 2 = !! !! !, 2 + (1 !! )(!! !, 2 ) and

!! !, 2 = (1 !! ) !! !, 2 + !! (!! !, 2 ) satisfy the constraint (2.3.2). Then according to

these variables to calculate (!! !, 4 , !! !, 5 , !! (!, 6)) and (!! !, 4 , !! !, 5 , !! (!, 6)) to satisfy

constraint (3.2.7) and (3.2.9). Finally, choose the best two chromosomes according to the objective

value among the parents and children as second generation.

The general process can be describe as follows:

Step 1. Choose pair of parent chromosome (!! , !!!! ) and randomly generate a real number

!! (0,1).

Step 2. Generate the children of them that are (!! , !!!! ). For 1 ! !,

!! !, 2 = !! !! !, 2 + (1 !! ) !!!! !, 2

!!!! !, 2 = !! !!!! !, 2 + (1 !! ) !! !, 2

Step 3. Randomly generate !! (!, 3) and !!!! (!, 3) according to condition (2.3.3).

Step 4. Calculate the (!! !, 4 , !! !, 5 , !! (!, 6)) and (!!!! !, 4 , !!!! !, 5 , !!!! (!, 6)) according to

the first three genes.

Step 5. Choose the best two chromosomes among (!! , !!!! , !! , !!!! ) as next generation. Set i = i+2.

Step 6. If i < pop_size-1, go to Step 1.

18
Approaching the genetic algorithm


Figure 3.2. The basic crossover

Suppose !! is the lower speed between two parents and !! is the high speed one of two parents. As

the figure illustrates, the speed of two parents are weighted by coefficient ! and the range of

generated speed is between the speeds of the parents.

Under this crossover method, the speeds of children are constrained by their parents, but a better

solution may exist beyond of the speed range by having a lower speed or a higher speed than both

parents. Also, as one of parent may have a good speed profile for some of segments and a bad speed

profile for the remaining segments and the other parent has an opposite situation, a swap between the

pair of parents can be considered. Due to these considerations, we have proposed several improvements

for the crossover operation.

3.5.1 Improved crossover operation

Denote the two parents according to their speed value as !!"#$ , !!"#$ . For the improved crossover, we

consider enlarge the speed range of the parents by replacing the !!"#$ (!, 2) by (!!"#$ !, 2 +

!!"#$ !, 2 !) and !!"#$ (!, 2) by (!!"#$ !, 2 !!"#$ !, 2 !). As a result of it, the generated

speed range become (!!"#$ !, 2 !!"#$ !, 2 ! , (!!"#$ !, 2 + !!"#$ !, 2 !)].

Figure 3.3. The improved crossover operator

19

Genetic algorithm for the optimization of the train energy consumption

Under this assumption, the original crossover become:

Step 1. Choose pair of parent chromosome (!! , !!!! ) and randomly generate a real number

!! (0,1) and define the enlarge size ! (0,1) .

Step 2. For 1 ! !, define the fast parent !!"#$ (!) and the slow parent !!"#$ (!).

Step 3. Generate the children of them that are (!! , !!!! ) as

!! !, 2 = !! (1 !)!!"#$ !, 2 + (1 !! ) 1 + ! !!"#$ !, 2

!!!! !, 2 = (1 !! ) 1 ! !!"#$ !, 2 + !! 1 + ! !!"#$ !, 2

Step 4. Randomly generate !! (!, 3) and !!!! (!, 3) according to condition (2.3.3), if the new

generated speed satisfy the condition (2.3.3) go to step 5, else regenerate !! and go to Step 3.

Step 5. Calculate the (!! !, 4 , !! !, 5 , !! (!, 6)) and (!!!! !, 4 , !!!! !, 5 , !!!! (!, 6)) according to

the first three genes.

Step 6. Choose the best two chromosomes among (!! , !!!! , !! , !!!! ) and select them as next

generation. Set i = i+2.

Step 7. If i < pop_size, go to Step 1.

As for step 4, we may consider to decrease the new generated !! (!, 2) and !!!! (!, 2) instead of

regenerate !! to reduce the calculation when the new produced speed is infeasible with respect to

condition (2.3.9). Choose a proper coefficient ! will efficiently improve the fitness of produced

chromosome because of increasing the range of search field for the chromosome.

3.5.2 Mutate-like crossover

Another way to get though the local optimal induced by the basic crossover method is what we called

mutate-like crossover, which is used more like mutation of chromosome instead of crossover. As the

value of optimal solution may occur around one of the parents, the combination of two parents

somehow may restrict range of the search field such that we consider generate the two children based

on different parent. After we choose a pair of parents, fitter chromosome will be denoted as good

parent and the other that has larger objective value will be denoted as bad parent. Then, a range

coefficient ! (0,1) will be defined to decide the range of field centered on the speed of one parent

that used to generate the child. At last, the next generation will be chosen among the parents and their

children.

20
Approaching the genetic algorithm

Figure 3.4. The mutate-like crossover operator

The procedure of this method is defined as follows:

Step 1. Initialize the search range coefficient ! (0,1).

Step 2. Choose pair of parent chromosome (!! , !!!! ) and randomly generate a real number !! (0,1).

Step 3. Define the good parent !!""# and bad parent !!"# according to their objective value.

Step 4. Generate the children of them that are (!! , !!!! ). For 1 ! !,

!! !, 2 [ 1 ! !!""# !, 2 , 1 + ! !!""# !, 2 ]

!!!! !, 2 [ 1 ! !!"# !, 2 , 1 + ! !!"# (!, 2)]

Step 5. Randomly generate !! (!, 3) and !!!! (!, 3) according to condition (2.3.3).

Step 6. Calculate the (!! !, 4 , !! !, 5 , !! (!, 6)) and (!!!! !, 4 , !!!! !, 5 , !!!! (!, 6)) based on the

first three genes.

Step 7. Choose the best two chromosomes among (!! , !!!! , !! , !!!! ) as next generation. Set i = i+2.

Step 8. If i < pop_size, go to Step 2.

3.5.3 Swap crossover

Another situation is that the chromosome may have good speed profile for different parts of section

that can be improved by swapping the speed profile between two chromosomes. In order to preserve

the feasibility, the swap needs to be applied when the speed between two chromosomes is the same at

segment !. After the swap, the time shift affected on the segments need to be fixed.

21

Genetic algorithm for the optimization of the train energy consumption

Figure 3.5. The swap crossover operator

The general process for the swap is defined as follows:

Step 1. Choose pair of parent chromosomes (!! , !!!! ).

Step 2. Record the segments where the chromosomes have the same velocity into ! such that

! = ! !! !, ! = !!!! !, ! , 2 ! ! 1, ! = 1,2,3}.

Step 3. Randomly choose a segment ! ! as the swap point.

Step 4. Generate the two children as:

!! ! !" 2 ! !
!! =
!!!! ! !" ! < ! ! 1

!!!! ! , !" 2 ! !
!!!! =
!! ! , !" ! < ! ! 1

Step 5. Recalculate !! !, 4 , !! !, 5 , !! (!, 6) and !!!! !, 4 , !!!! !, 5 , !!!! (!, 6) according to

the swapped values of speed.

Step 6. Fix the time shift affected on the following segments.

Step 7. Choose the best two chromosomes among (!! , !!!! , !! , !!!! ) and select them as next

generation. Set i = i+2.

Step 8. If i < pop_size, go to Step 1.

This method can largely decrease the running time for the algorithm due to the preservation of

feasibility, but as the generation increasing, the chromosomes get more and more similar, the efficient

of swap method is decreased.

3.5.4. Adaptive crossover

All the crossover methods mentioned before, in principle we can divide them into two kinds. The basic

crossover, improved crossover and mutate-like crossover are focus on crossover within one segment;

on the other hand, the swap method is concentrated on crossover within the whole segments. To

22
Approaching the genetic algorithm

improve both the methods and also decrease the calculation, an adaptive crossover is considered.

The adaptive crossover operator we used takes both the improved crossover method and the swap

crossover method. At beginning, a real integer number will be randomly generated to choose the

crossover operator and then depending on the performance of these two operators, a bias should be

added into the integer to choose a more efficient operator.

The procedure of adaptive crossover can be described as following:

Step 1. Initialize the bias !"#$ = 0.

Step 2. Choose a pair of parents (!! , !!!! ).

Step 3. Randomly generate a real integer number ! [50,50], then add the bias ! = ! + !"#$.

Step 4. If ! < 0, choose the improved crossover operator, else choose the swap operator. Generate the

children (!! , !!!! ) according to the operator.


!
!"#$ + , !" ! 0
!"
Step 5. If either the generated children is better than the parents, !"#$ = ! .
!"#$ , !" ! < 0
!"

Step 6. If ! < !"!_!"#$, go to step 2, else stop.

3.6 Diversity control operator

As the goal of all the operators is to increase the fitness of chromosomes and achieve an optimal

solution, which will somehow make the chromosomes have more or less the same speed profile. After

the crossover, we may have some duplicate chromosomes and with the increasing of the generation, the

number of duplicate chromosomes will also be increased. More duplicate chromosomes, less efficiency

the crossover operator, so the diversity control operator is applied to keep the diversification among the

chromosomes.

Select the most fitness chromosomes as elitisms and denote the set of elitisms as !!"#$#%& and the

remains as subpopulation. The diversity contribution of a chromosome in the population is denoted as

!(!), which defined as the average hamming distance from ! to the elitisms !!"#$#%& .

!
!(!) = !! !!"#$%#$& (!, !! ) (3.6.1)
!!"#$#%&

Then, the evaluation of the chromosome, biased fitness, !"(!) of a chromosome ! is defined as the

sum of rank !"#(!) of ! in the subpopulation with respect to objective value !"#$(!) and its rank

23

Genetic algorithm for the optimization of the train energy consumption

!"(!) related to diversity contribution !(!) and depends upon the actual number of chromosomes

!"#$ in the subpopulation. The ration between the number of elitisms !!"#$ and number of

remaining chromosomes also need to be considered so as to build an efficient comparison. The

evaluation equation is defined as:

!"#$%
!" ! = !"# ! + (1 )!"(!) (3.6.2)
!"#$

3.6.1 Local diversity control operator

The population generated before the crossover is denoted as !"# and the population produced after the

crossover is denoted as !"#. The local diversity control is considered the number of elitisms is fixed as

! during the operating of diversity control.

Then the local diversity control operator is defined as follows:

Step 1. Eliminate the duplicate chromosomes in (!"# + !"#) and sort the remaining chromosomes !

according to their fitness.

Step 2. Select ! fittest chromosomes in ! as elitisms.

Step 3. Calculate the diversity contribution and bias fitness of the chromosomes in the subpopulation

(! !) and sort them by their bias fitness such that the fittest chromosome will be rank first.

Step 4. Select (!!"_!"#$ !) chromosomes in the subpopulation based on their bias fitness rank.

3.6.2 Global diversity control operator

For the global diversity control operator, the elitism is changed whenever a new chromosome is

chosen.

The general process for it is defined as follows:

Step 1. Eliminate the duplicate chromosomes in (!"# + !"#) and sort the remaining chromosomes !

according to their fitness.

Step 2. Select ! fittest chromosomes in ! as elitisms.

Step 3. Calculate the diversity contribution and bias fitness of the chromosomes in the subpopulation

(! !) and sort them by their bias fitness.

Step 4. Select the fittest chromosome into the elitism and set ! = ! + 1.

24
Approaching the genetic algorithm

Step 5. If ! < !"!_!"#$, go to step 3, else stop.

3.7 Mutation operator

Mutation is another important operator used to update the chromosomes. First we need define a

parameter !! (0,1) to denote the probability of mutation, and then choose chromosomes to breed

the new chromosomes.

3.7.1 Speed mutation operator

The new chromosome is obtained by mutated the cruising speed of the old chromosome.

! !, 3 = ! !, 3 + !!"# (3.7.1)

! !, ! = ! !, ! ! = 1,2 (3.7.2)

where !!"# is the mutation value and define the range of the mutation of cruising speed. Then

calculate the ! !, 4 , ! !, 5 , !(!, 6) according to the new speeds. Note that the mutated cruising

speed can be infeasible with respect to the condition (2.3.9) and we should decrease the mutated

cruising speed to retrieve the feasibility.

The general procedure is described as follows:

Step 1. Initialize a mutation probability !! and set ! = 1.

Step 2. Randomly generate the real number ! (0,1) and set !! = !! .

Step 3. If ! !! , for 1 ! !, ! !, randomly generate a integer mutation value !!"# [5,5]

and update !! .

Step 4. Choose the better one between !! and !! , set ! = ! + 1.

Step 5. If ! < !"!_!"#$, go to step 2, else stop.

3.7.2 Segment mutation operator

In this method, the mutation is applied on one of segments of chromosome. For each selected

chromosome !! , set !! = !! , then randomly generate a segment index ! (1, !). If the segment ! is

station, we randomly regenerate the dwell time !" (!"!"# , !"!"# ) for the station and set

25

Genetic algorithm for the optimization of the train energy consumption

!! !, 6 = !! !, 6 !! !, 6 !! !, 5 !" , !" ! !
(3.7.3)
!! !, 5 = ! !, 5 !! !, 6 !! !, 5 !" , !" ! > !

If the segment ! is a nonzero speed limit segment, we randomly regenerate the cruising speed and

leaving speed for the segment ! and recalculate the !! !, 4 , !! !, 5 , !! (!, 6). Then for the segment

! > !, fix the time shifts as:

!! !, 6 = !! !, 6 !! !, 6 !! !, 5 !! !, 6 !! !, 5 , !" ! !
(3.7.4)
!! !, 5 = !! !, 5 !! !, 6 !! !, 5 (!! !, 6 !! !, 5 ) , !" ! > !

The general process is summarized as follows:

Step 1. Initialize the mutation probability !! and set ! = 1.

Step 2. Randomly generate a real number ! (0,1) and set !! = !! .

Step 3. If ! !! , generate a random segment index ! (1, !) and update the chromosome !! .

Step 4. Choose the better one between !! and !! . Set ! = ! + 1.

Step 5. If ! < !"!_!"#$, go to step 2, else stop.

3.8 Regeneration

Due to the successive generation, the chromosomes will become more and more similar, even though

we have diversity control for every generation, the homogenization still cannot be avoid and difference

between chromosomes keep reducing will leads to the decreasing of efficiency of crossover and

mutation. In order to regain diversity after some certain generations, regeneration operator will be

introduced.

We consider eliminate the duplicate chromosomes then sort the chromosomes according to their fitness

and finally regenerate the eliminated chromosomes.

Denote the population after mutation as !"#. The general process for the regeneration can be

described as follows:

Step 1. Eliminate the duplicate chromosomes in !"#.

Step 2. Regenerate the chromosomes eliminated in the previous step.

26
Approaching the genetic algorithm

3.9 Local search for the time constraints

As the time constraint is used to constrain the running time between two stations and the other

constraints are just used for one segment, in order to meet the time constraint, all the segments between

two stations are need to be adjusted. As a result of it, instead of to separately consider time constraint at

each segment, we consider it as a constraint for the whole chromosome by consider it after the

construction of one chromosome.

Even though the chromosomes are satisfied with all the other constraints, they still can be infeasible

with respect to the time constraint so except for the speed and distance constraints, a local search

method should be used to make them feasible when considering the time constraint.

There are two situations for a chromosome to be infeasible, one is arriving late for the predefined

timetable and the other one is arriving early with respect to the timetable. And the adjustment for the

chromosome can be increasing/decreasing the cruising speed or increasing/decreasing the leaving

speed when arriving late/early.

The general process for the local search can be summarized as follows:

Step 1. Set ! = 1, ! = 2, ! = ! ! 1 + 1.

Step 2. For ! = !(!),

!! !, 3 = !! !, 3 1, !" !! !, 5 < !!"#$


!! !, 3 = !! !, 3 + 1, !" !! !, 5 > !!"#$

Step 3. If the arriving time !! (!, 5) still smaller than the predefined timetable !!"#$ or larger than

!!"#$ , if !! (!, 3) < !! , go to step 2, else if !! !, 3 = !! and ! < !, set ! = ! + 1, go to

step 2.

Step 4. If the time window still not satisfied, set ! = !(! 1) + 1,

!! !, 2 = !! !, 2 1, !" !! !, 5 < !!"#$


!
!! !, 2 = !! !, 2 + 1, !" !! !, 5 > !!"#$

Step 5. If the arriving time !! (!, 5) still smaller than the predefined timetable !!"#$ or larger than

!!"#$ , if !! !, 2 < min (!! , !!!! ), go to step 2, else if ! < !, set ! = ! + 1, go to step 2.

Otherwise go to step 6.

Step 6. If the arriving time !! !, 5 is feasible with respect to the time window [!!"#$ , !!"#$ ] and

! < !, set ! = ! + 1, go to step 2.

27

Genetic algorithm for the optimization of the train energy consumption

Step 7. If the chromosome is feasible with all the arriving times related to each stations, Stop.

As several loops are used to achieve the feasibility, the cost of time is high.

3.10 General procedure

After evaluation, selection, crossover, diversity control and mutation, a new population is generated.

However, the genetic algorithm wont stop until a certain number of iterations have been implemented.

The general procedure for the genetic algorithm can be summarized as follows:

Step 1. Initialize !"!_!"#$ chromosomes.

Step 2. Sort them according to their objective values.

Step 3. Calculate their evaluation values.

Step 4. Select the chromosomes by spinning the roulette wheel.

Step 5. Apply crossover operator to update the chromosomes.

Step 6. Using diversity control operator to keep diversity.

Step 7. Update the chromosomes by mutation operator.

Step 8. If certain iteration has implemented, regenerate some of chromosomes.

Step 9. If the iteration number is less than max _!"#$%"!&', go to step 2.

Step 10. Return the best found chromosome as a solution.

28

You might also like