user is Number of OD pair; Node is all nodes in the network; Parents is the chromosomes which be selected; nKids is the numbers of chromosomes create by crossover; r1, r2 is the chromosomes which are crossover; coeC is the number of gene will be crossover; thisScore is the multi path score; thisGeneScore is the path score in the multi path; xoverPoint is genes in the chromosome which be select to crossover; lengthXP is length of xoverPoint; Begin for i =  1:nKids Pick chromosomes r1 and r2 from parents; coeC is decrease by generations from 1 to 0.2; Randomly select xoverPoint which probability small than coeC; if thisScore(r1) ≤ thisScore(r2) xoverKids(i) = thisPopulation(r1); for j = 1 to lengthXP if thisGeneScore(r2(j))  <  thisGeneScore(r1(j)) Record path r1(j) as a; Record path r2(j) as b; if the route paths in a and b have the same intermediate node  (m) Interchange the sub-routes (s,  m) or (m,  d) in a and b; else xoverKids(i,  j) =  r2(j); end if end if end for else xoverKids(i) = thisPopulation(r2); for j = 1 to lengthXP if thisGeneScore(r1(j))  <  thisGeneScore(r2(j)) Record path r1(j) as b; Record path r2(j) as a; if the route paths in a and b have the same intermediate node (m) Interchange the sub-routes (s,  m) or (m,  d) in a and b; else xoverKids(i,  j) = r1(j); end if end if end for end if end for End
Pseudocode 1: Pseudocode of the crossover operation for routing problem.