population->classifier[t2].strength + child1.strength; /* Insert child2 in mort2's place. */ population->classifier[t2] = child2; } } /* report on mating, croosover and replacement. */ reportga (rep, garec, population) FILE *rep; grecord *garec; poptype *population; { int j; page(rep); fprintf (rep, "Genetic Algorithm Report\n"); fprintf (rep, "------------------------\n"); fprintf (rep, "\n"); fprintf (rep, "Pair Mate1 Mate2 Sitecross Mort1 Mort2\n"); fprintf (rep, "-------------------------------------------\n"); for (j=0; jnselect; j++) fprintf (rep, "%3d %3d %3d %4d %6d %3d\n", j, garec->mating[j].mate1, garec->mating[j].mate2, garec->mating[j].sitecross, garec->mating[j].mort1, garec->mating[j].mort2); fprintf (rep, "\n"); fprintf (rep, "Statistics Report\n"); fprintf (rep, "-----------------\n"); fprintf (rep, "Average strength = %8.2f\n", population -> avgstrength); fprintf (rep, "Maximum strength = %8.2f\n", population -> maxstrength); fprintf (rep, "Minimum strength = %8.2f\n", population -> minstrength); fprintf (rep, "Sum of strength = %8.2f\n", population -> sumstrength); fprintf (rep, "Number of crossings = %8d\n", garec -> ncrossover); fprintf (rep, "Number of mutations = %8d\n", garec -> nmutation); }