typedef struct NONREVISITING_GA {

                GeneticAlgorithm GA_Info;                        //The Original GA

                NonRevisitingScheme NRS_Info;                              //The Non-Revisiting Scheme (It including a cluster tree)

} NonRevisiting_GA;


void NonRevisitingGA_Construction(NonRevisiting_GA *cur_GA, int no_dimension, int cur_population_size, int nxt_population_size, double crossover_rate, double mutation_rate, int max_archive_size, int activate);

Input:    cur_GA (The GA inside the Nonrevisiting GA)

                no_Dimension  (The number of dimensions)

                cur_population_size       (current population size)

                nxt_population_size      (The population size of child)

                crossover_rate                 (The crossover rate)

                mutation_rate                  (The mutation rate)



The function to build the non-revisiting GA by the giving parameter.


void NonRevisitingGA_Destruction(NonRevisiting_GA cur_GA);

This function is to destroy the GA.




void NonRevisitingGA_UnConstraint_Mutation(double **cur_Chromosome, int no_gene, NonRevisitingScheme *cur_NRS);

input:    cur_Chromosome           (The chromosome for mutation)

                no_gene                              (The number of gene in the input chromosome)

                cur_NRS                               (The input Non revisiting scheme, it provides a cluster tree)

This function is used to mutate the input chromosome. Firstly, it will check whether the chromosome is revisited or not by comparing the chromosome with the cluster tree inside the cur_NRS. And it will mutate the chromosome if it is revisited.


void NonRevisitingGA_UnConstraint_Standard(NonRevisiting_GA *cur_GA, double optimization_mode, int terminate_mode, double terminate_parameter, int tree_mode, double (*fn_ptr)(double *chromosome));

This function works as same as GeneticAlogrithm_UnConstraint_standard if the NonRevisiting Scheme is disabled. Besides, all the chromosomes will be stored into the cluster tree insides the NonRevisiting Scheme and NonRevisitingGA_UnConstraint_Mutation will be called to mutate the chromosome if it is revisited.



Back to main page