Modifier and Type | Method and Description |
---|---|
void |
concoct(Genome genericTarget,
double[] r,
Genome[] genomes)
Sets the genes in the current genome to values that are a weighted
average of three supplied genomes.
|
static MonochromeTriangler |
getInstance() |
public static MonochromeTriangler getInstance()
public void concoct(Genome genericTarget, double[] r, Genome[] genomes)
procedure Concoct (r1, r2, r3: real; a, b, c: person; var new: person); var j, weight: Integer; begin with new do begin SegNoGene := round(r1 * a.SegNoGene + r2 * b.SegNoGene + r3 * c.SegNoGene); if SegNoGene < 1 then SegNoGene := 1; SegDistGene := round(r1 * a.SegDistGene + r2 * b.SegDistGene + r3 * c.SegDistGene); CompletenessGene := CompletenessType(Force2(r1 * Integer(a.CompletenessGene) + r2 * Integer(b.CompletenessGene) + r3 * Integer(c.CompletenessGene))); SpokesGene := SpokesType(Force3(r1 * Integer(a.SpokesGene) + r2 * Integer(b.SpokesGene) + r3 * Integer(c.SpokesGene))); for j := 1 to 9 do gene[j] := round(r1 * a.gene[j] + r2 * b.gene[j] + r3 * c.gene[j]); SizeWorry := SegNoGene * TwoToThe(gene[9]); if SizeWorry > WorryMax then Gene[9] := Gene[9] - 1; if gene[9] < 1 then gene[9] := 1; tricklegene := round(r1 * a.tricklegene + r2 * b.tricklegene + r3 * c.tricklegene); MutSizeGene := round(r1 * a.MutSizeGene + r2 * b.MutSizeGene + r3 * c.MutSizeGene); MutProbGene := round(r1 * a.MutProbGene + r2 * b.MutProbGene + r3 * c.MutProbGene); if mutprobgene < 1 then mutprobgene := 1; if mutprobgene > 100 then mutprobgene := 100; for j := 1 to 10 do dgene[j] := swelltype(Force3(r1 * Integer(a.dgene[j]) + r2 * Integer(b.dgene[j]) + r3 * Integer(c.dgene[j]))); end end; {concoct}