Restricted-Access

 

 
       

 

MMGAs> Species: Quick Hierarchical Fair Competition  (QHFC)

                                                                                                                                                                                                                                                                

 

Last update: 06/2011

 

 

     Parameters

 

 

Number of species or subpopulations the population is divided: L=5

Size factor among subpopulations: γ=0.8.

Number of iterations in the best subpopulation with DC: BTF=2.

Number of iterations without improvement: NPG=2.

PercentRefill or number of individuals that need to be imported from the lower level: PR=0.25.

Number of iterations done during the potency testing: CG=20.

Number of solutions candidate to be exported: DEN=2.

 

 

 

     Description

 

QHFC method divides the population into species according to the ranks of quality and makes them evolve independently during several generations, allowing under special conditions that their individuals migrate from a species to another.

 

The process starts with the random generation of the individuals of the first iteration. With these individuals species are established. As a parameter of the problem it needs to be known the number (L) of species into which the population P(t) wants to be divided, and the size factor g. To make the L sets the average quality of P(t) is calculated. This size average will fix for the rest of the process the value of the threshold of minimal quality fL-1 that will determine the belonging to the group of less quality GL-1. The individuals randomly generated and that do not reach this minimal quality will be then erased. The average quality of the rest of individuals is again calculated, this will be the threshold of minimal quality fL-2 for the next group GL-2. Individuals with a quality between [fL-1, fL-2] will belong to group GL-1. We will repeat the process this way as many times as sets want to be formed. Being individuals distributed into the different groups, it is verified if the size factor between groups IGk-1I= IGk I x γ  is observed, with k from L-1 to 0. If in any group there is a fault in the population it will be filled with individuals randomly generated. Group G0 is called top level group. While the completion condition does not come true (termination condition), defined as a total number of evaluations performed, the following process is repeated:

 

  1. BreedTopFreq (BTF) generations are produced using a deterministic crowding (see section 4.2.1 in the previous chapter) in the top level group. If during these generations there are noprogressGen (NPG) generations without improvement the process is called import_from_below with parameters (percentRefill, 0) that will be later described (step 5). Once the process is performed it will be necessary to recalculate the thresholds of quality of success in the groups. For this, as the level of the lower group f L-1=fmin is fixed throughout all the process, the rest of thresholds will be calculated following this equation:

    fkadm= fmin + (fmin- fmax) x (L-1-k)/L,

where k= 0 to L-1, and  fmax is the maximum quality of the complete population. Being the calculation finished, step 1 will be repeated. Whereas, step 2 will be performed if improvement is produced.

  1. Potency testing. It is done in all the sets, except in the top level, catchupGen (CG) evaluations. For this, two individuals are randomly selected, then crossed, mutated and evaluated. If after repeating this process as many times as required to do the evaluations fixed in each set, there are detectExportNo (DEN) candidate individuals in all levels to be exported, then it will be considered that this process has been carried out with success. Individuals export is performed by checking to which range of thresholds of a minimum quality the quality of the individual to export belongs to, and to the set it fits, the individual will move.

  2. In case of success, if after doing the potency testing there is a gap without being filled in any level, let�s assume in level l with g gaps, we will have to turn to the process import_from_below with (g, l) parameters, step 5. If there are no gaps and the test has been performed with success then go back to step 1.
  3. If in a level the test has not been successfully performed the process will be called import_from_below with (percentRefill, l) parameters, being l the level where the test has not had any success. After performing the procedure then a complete generation of the deterministic crowding kind is carried out with all the population of this level and step 1 will be done again.
  4. Import_from_below with parameters (m, n). m will indicate the number of individuals that need to be randomly selected from level n+1 to export to level n. If the procedure is required to fill a gap, no individual has to be replaced. On the contrary if this is not the case, individuals to be replaced will have to be randomly selected. In the selection, neither the best nor the ones that have just been imported can appear. Once the process is finished in level n, the gaps left in level n+1 will be filled going back again to the process but this time with (m, n+1) parameters. It will proceed this way until the lowest level is reached, where gaps will be filled with individuals randomly generated.
 
 

     Executable

 

The following three files have to be in the same folder. Do not change the name of the file. Double-click the .exe file to run it.

 

  JSSP

Executable

exe

Data File

Open .txt file of the instance you want to run (for JSSP), copy and paste its contents inside this file.

D_Entrada

Parameters File

Open the file and change the parameters

D_Algoritmo

 

The following five files of solutions are generated:

D_Sal_Mejores-txt (includes the best solutions).

D_Sal_Optimos (includes the value of the objective function, i.e., Cmax).

D_Sal_NumOptimos (includes the number of different solutions where the optima value specified in the data file has been reached). This file is empty if this value is not reached.

D_Sal_Distancias (includes the distances between solutions where the optima value specified in the data file has been reached). This file is empty if either this value is not reached or only one solution is achieved.

D_Sal_Soluciones (includes the schedule of the solutions where the optima value specified in the data file has been reached). This file is empty if this value is not reached.

 

 

     References

 

Hu, J. J. and Goodman, E. D. (2004). Robust and efficient genetic algorithms with hierarchical niching and a sustainable evolutionary computation model. In GECCO. Deb, K et al., (Eds) 1220-1232

 

   

Universidad de Valladolid. Webmaster Marta Posada