Skip to content

Instantly share code, notes, and snippets.

@siu-issiki
Created March 18, 2023 11:30
Show Gist options
  • Save siu-issiki/842520926fddcdfe93f6d1166f790c0d to your computer and use it in GitHub Desktop.
Save siu-issiki/842520926fddcdfe93f6d1166f790c0d to your computer and use it in GitHub Desktop.
import random
import string
TARGET = "Hello, World!"
POPULATION_SIZE = 100
MUTATION_RATE = 0.05
GENERATIONS = 1000
INITIAL_INDIVIDUAL = "Cr3@tiv3_#ode"
def generate_individual():
return INITIAL_INDIVIDUAL
def calculate_fitness(individual):
return sum(1 for a, b in zip(individual, TARGET) if a == b) / len(TARGET)
def select(population, fitnesses):
return random.choices(population, weights=fitnesses, k=2)
def crossover(parent1, parent2):
crossover_point = random.randint(0, len(TARGET))
return (
parent1[:crossover_point] + parent2[crossover_point:],
parent2[:crossover_point] + parent1[crossover_point:]
)
def mutate(individual):
chars = string.ascii_letters + string.punctuation + string.whitespace
return ''.join(
c if random.random() > MUTATION_RATE else random.choice(chars)
for c in individual
)
population = [generate_individual() for _ in range(POPULATION_SIZE)]
for generation in range(GENERATIONS):
fitnesses = [calculate_fitness(individual) for individual in population]
new_population = []
for _ in range(POPULATION_SIZE // 2):
parent1, parent2 = select(population, fitnesses)
child1, child2 = crossover(parent1, parent2)
new_population.extend([mutate(child1), mutate(child2)])
population = new_population
best_individual = max(population, key=calculate_fitness)
print(f"Generation {generation + 1}, best individual: {best_individual}, "
f"fitness: {calculate_fitness(best_individual)}")
if best_individual == TARGET:
break
@siu-issiki
Copy link
Author

siu-issiki commented Mar 18, 2023

$ python3 main.py

Generation 1, best individual: Cr3@Iiv3_^ode, fitness: 0.07692307692307693
Generation 2, best individual: CT3@)iv3_rode, fitness: 0.15384615384615385
Generation 3, best individual: C>3@",v3_#ode, fitness: 0.15384615384615385
Generation 4, best individual: C"3@tiv3_rode, fitness: 0.15384615384615385
Generation 5, best individual: C&3@",v3_rode, fitness: 0.23076923076923078
Generation 6, best individual: Br3@e,v3_rode, fitness: 0.23076923076923078
Generation 7, best individual: Gr3@[,v3_(ode, fitness: 0.15384615384615385
Generation 8, best individual: �r3@tDv3_rDde, fitness: 0.15384615384615385
Generation 9, best individual: Hrt@W"hH_rode, fitness: 0.23076923076923078
Generation 10, best individual: Hrt@W"hH_rode, fitness: 0.23076923076923078
Generation 11, best individual: C(3@",h$_rod,, fitness: 0.23076923076923078
Generation 12, best individual: Hr3@[,vH_rode, fitness: 0.3076923076923077
Generation 13, best individual: Hr3@[,vH_rode, fitness: 0.3076923076923077
Generation 14, best individual: Hy3@*,<3arodZ, fitness: 0.3076923076923077
Generation 15, best individual: HyP@*,v3_r?d,, fitness: 0.3076923076923077
Generation 16, best individual: HF^@*,C$drodU, fitness: 0.3076923076923077
Generation 17, best individual: H(3@*,v3_rBde, fitness: 0.3076923076923077
Generation 18, best individual: Hy3@*,R�_rtd-, fitness: 0.3076923076923077
Generation 19, best individual: Hy3@*,R3_rmde, fitness: 0.3076923076923077
Generation 20, best individual: H(P�*,&3_rDd;, fitness: 0.3076923076923077
Generation 21, best individual: HO##o,vger"d	, fitness: 0.38461538461538464
Generation 22, best individual: HO##o,vger"d	, fitness: 0.38461538461538464
Generation 23, best individual: He3y*,(H_rodU, fitness: 0.38461538461538464
Generation 24, best individual: HrlP*,vH_rCdv, fitness: 0.38461538461538464
Generation 25, best individual: HO##o,<H}rodU, fitness: 0.38461538461538464
Generation 26, best individual: Hy3@t,v3orod;, fitness: 0.38461538461538464
Generation 27, best individual: HrlP*,A)/r"d�, fitness: 0.38461538461538464
Generation 28, best individual: HO##o,<=_rod;, fitness: 0.38461538461538464
Generation 29, best individual: HyPE(,%3orod,, fitness: 0.38461538461538464
Generation 30, best individual: HO##o,<=rrod;, fitness: 0.38461538461538464
Generation 31, best individual: Hrlj*,aHArod,, fitness: 0.38461538461538464
Generation 32, best individual: Hrlj*,d=_rFdG, fitness: 0.38461538461538464
Generation 33, best individual: HyP#o,<=_rFd;, fitness: 0.38461538461538464
Generation 34, best individual: HyP#o,v=orOd,, fitness: 0.46153846153846156
Generation 35, best individual: HyP#o,v=orOd,, fitness: 0.46153846153846156
Generation 36, best individual: HyP#o,v=orOd,, fitness: 0.46153846153846156
Generation 37, best individual: Hylj(,!W#rodk, fitness: 0.46153846153846156
Generation 38, best individual: H~ljo,v=orOd,, fitness: 0.5384615384615384
Generation 39, best individual: H~ljo,v=orOd,, fitness: 0.5384615384615384
Generation 40, best individual: H~ljo,v=or�dG, fitness: 0.5384615384615384
Generation 41, best individual: Hyl?*,d(orFdG, fitness: 0.46153846153846156
Generation 42, best individual: Hyl.o,vW/r�dk, fitness: 0.5384615384615384
Generation 43, best individual: Hyl.o,vW:rod#, fitness: 0.5384615384615384
Generation 44, best individual: Hyl.o,vW:rod#, fitness: 0.5384615384615384
Generation 45, best individual: H~l\o,,Wrrtd;, fitness: 0.5384615384615384
Generation 46, best individual: H~llR,wW`rodk, fitness: 0.5384615384615384
Generation 47, best individual: H~llR,wW/rOdx, fitness: 0.5384615384615384
Generation 48, best individual: H~l.o,
W>rQdz, fitness: 0.5384615384615384
Generation 49, best individual: H~l.o,(W{rodq, fitness: 0.5384615384615384
Generation 50, best individual: HTl.o,?Werodq, fitness: 0.5384615384615384
Generation 51, best individual: H~l.o,(Werod+, fitness: 0.5384615384615384
Generation 52, best individual: H~llR,wW rOdx, fitness: 0.5384615384615384
Generation 53, best individual: HTl.o,WW{rodq, fitness: 0.5384615384615384
Generation 54, best individual: HTl.o,WW_rodx, fitness: 0.5384615384615384
Generation 55, best individual: lelMo,(W/rEdk, fitness: 0.5384615384615384
Generation 56, best individual: lelMo,(W/r}do, fitness: 0.5384615384615384
Generation 57, best individual: H~l.o,vW{rEdq, fitness: 0.5384615384615384
Generation 58, best individual: H~l.o,vW{rEdq, fitness: 0.5384615384615384
Generation 59, best individual: lelMo,vW/rOdq, fitness: 0.5384615384615384
Generation 60, best individual: H~l.o,vW{rEdN, fitness: 0.5384615384615384
Generation 61, best individual: H~l.o,UW/rEdT, fitness: 0.5384615384615384
Generation 62, best individual: H~lYo,vW_rodW, fitness: 0.5384615384615384
Generation 63, best individual: H~l\/,&W/rEdn, fitness: 0.46153846153846156
Generation 64, best individual: HelYo,vC/rOdq, fitness: 0.5384615384615384
Generation 65, best individual: Hel.o,(W)ro.p, fitness: 0.5384615384615384
Generation 66, best individual: H~l\o,vW/rEd<, fitness: 0.5384615384615384
Generation 67, best individual: H~l#o,vWer(d$, fitness: 0.5384615384615384
Generation 68, best individual: H-lYo,qWorYdx, fitness: 0.6153846153846154
Generation 69, best individual: HelIo,vWer(d$, fitness: 0.6153846153846154
Generation 70, best individual: HelIo,vWer(d$, fitness: 0.6153846153846154
Generation 71, best individual: HelIo,&WSrVd=, fitness: 0.6153846153846154
Generation 72, best individual: Hel#o,&WSrDd", fitness: 0.6153846153846154
Generation 73, best individual: Hel#o,&WSr<d=, fitness: 0.6153846153846154
Generation 74, best individual: HelNo,&WSrVd", fitness: 0.6153846153846154
Generation 75, best individual: HelNo,&WSrVdN, fitness: 0.6153846153846154
Generation 76, best individual: HelNo,&WSrVdq, fitness: 0.6153846153846154
Generation 77, best individual: HelNo,&WSrYdH, fitness: 0.6153846153846154
Generation 78, best individual: HelNo,&WSrVdN, fitness: 0.6153846153846154
Generation 79, best individual: HelNo,UWor?d`, fitness: 0.6923076923076923
Generation 80, best individual: HelNo,vWorVdN, fitness: 0.6923076923076923
Generation 81, best individual: HelNo,vWorTdN, fitness: 0.6923076923076923
Generation 82, best individual: HelNo,vWorVdN, fitness: 0.6923076923076923
Generation 83, best individual: HelNo,vWorTdN, fitness: 0.6923076923076923
Generation 84, best individual: HelNo,vWorTdN, fitness: 0.6923076923076923
Generation 85, best individual: Hel"o,vWortds, fitness: 0.6923076923076923
Generation 86, best individual: Hel"o,vWortdq, fitness: 0.6923076923076923
Generation 87, best individual: HelII,YWor?dN, fitness: 0.6153846153846154
Generation 88, best individual: Hel~o,tWorhd:, fitness: 0.6923076923076923
Generation 89, best individual: HelNo,vWorFdG, fitness: 0.6923076923076923
Generation 90, best individual: Hel"o,LWor?d=, fitness: 0.6923076923076923
Generation 91, best individual: HelMo,"WorpdX, fitness: 0.6923076923076923
Generation 92, best individual: HeKNo,LWor?d=, fitness: 0.6153846153846154
Generation 93, best individual: Hel"o,LWor?d=, fitness: 0.6923076923076923
Generation 94, best individual: Hello,LWorhd*, fitness: 0.7692307692307693
Generation 95, best individual: Hel]o,LWorVdb, fitness: 0.6923076923076923
Generation 96, best individual: Hel]o,LWor?df, fitness: 0.6923076923076923
Generation 97, best individual: Hel"o,LWorhd$, fitness: 0.6923076923076923
Generation 98, best individual: Hel"o,LWorhd$, fitness: 0.6923076923076923
Generation 99, best individual: Hel"o,LWorhd$, fitness: 0.6923076923076923
Generation 100, best individual: HelEo,LWorVd%, fitness: 0.6923076923076923
Generation 101, best individual: Hel"o,LWorhd$, fitness: 0.6923076923076923
Generation 102, best individual: Hel/o,"Wo}ldB, fitness: 0.6923076923076923
Generation 103, best individual: Hel]o,"Wo}ldB, fitness: 0.6923076923076923
Generation 104, best individual: Hel"o,"Wor?df, fitness: 0.6923076923076923
Generation 105, best individual: Hel/o,vWor"d$, fitness: 0.6923076923076923
Generation 106, best individual: Helqo,"Wo}ldB, fitness: 0.6923076923076923
Generation 107, best individual: HelKo,vWor"dS, fitness: 0.6923076923076923
Generation 108, best individual: Hello,pWo}ld$, fitness: 0.7692307692307693
Generation 109, best individual: Hello,pWo}ld$, fitness: 0.7692307692307693
Generation 110, best individual: HelKC,vWorld , fitness: 0.6923076923076923
Generation 111, best individual: Helo,"Wor"d$, fitness: 0.6923076923076923
Generation 112, best individual: Helzo,"Worlde, fitness: 0.7692307692307693
Generation 113, best individual: Kelzo,"Worlde, fitness: 0.6923076923076923
Generation 114, best individual: Helzo,"Worlde, fitness: 0.7692307692307693
Generation 115, best individual: Hel"o,LWorodI, fitness: 0.6923076923076923
Generation 116, best individual: Helo,OWorld{, fitness: 0.7692307692307693
Generation 117, best individual: HelKo,OWorlde, fitness: 0.7692307692307693
Generation 118, best individual: Hel:o,OWorlde, fitness: 0.7692307692307693
Generation 119, best individual: Hel:o,OWorlde, fitness: 0.7692307692307693
Generation 120, best individual: Hel"o,`World&, fitness: 0.7692307692307693
Generation 121, best individual: HelOo,OWorldf, fitness: 0.7692307692307693
Generation 122, best individual: HelIo,lWorldf, fitness: 0.7692307692307693
Generation 123, best individual: HelAo,lWorldf, fitness: 0.7692307692307693
Generation 124, best individual: Hel	o,OWorld$, fitness: 0.7692307692307693
Generation 125, best individual: Hel o,lWorldH, fitness: 0.7692307692307693
Generation 126, best individual: HelKo,`Worldf, fitness: 0.7692307692307693
Generation 127, best individual: HelKo,`Worldf, fitness: 0.7692307692307693
Generation 128, best individual: Hel.o,JWorldG, fitness: 0.7692307692307693
Generation 129, best individual: Hel.o,*WorldG, fitness: 0.7692307692307693
Generation 130, best individual: HelKo,*World], fitness: 0.7692307692307693
Generation 131, best individual: Hel.o,*WorldI, fitness: 0.7692307692307693
Generation 132, best individual: Hel.o,*WorldI, fitness: 0.7692307692307693
Generation 133, best individual: Hel.o,*World&, fitness: 0.7692307692307693
Generation 134, best individual: HelKo,*WorldI, fitness: 0.7692307692307693
Generation 135, best individual: Helqo,lWorldf, fitness: 0.7692307692307693
Generation 136, best individual: HelKo,*WorldI, fitness: 0.7692307692307693
Generation 137, best individual: HelDo,*WorldI, fitness: 0.7692307692307693
Generation 138, best individual: Helqo,lWWrldJ, fitness: 0.6923076923076923
Generation 139, best individual: HelKo,*Worldf, fitness: 0.7692307692307693
Generation 140, best individual: Hel o,`World*, fitness: 0.7692307692307693
Generation 141, best individual: Hel o,AWorldP, fitness: 0.7692307692307693
Generation 142, best individual: Hel o,AWorldP, fitness: 0.7692307692307693
Generation 143, best individual: Hel o,AWorldP, fitness: 0.7692307692307693
Generation 144, best individual: Helqo,AWorldI, fitness: 0.7692307692307693
Generation 145, best individual: Helqo,`WorldI, fitness: 0.7692307692307693
Generation 146, best individual: Hel.o,AWorldU, fitness: 0.7692307692307693
Generation 147, best individual: Helqo,JWorld*, fitness: 0.7692307692307693
Generation 148, best individual: Helqo,JWorld*, fitness: 0.7692307692307693
Generation 149, best individual: Helgo,JWorld*, fitness: 0.7692307692307693
Generation 150, best individual: Helmo,AWorld*, fitness: 0.7692307692307693
Generation 151, best individual: Helqo,AWorldP, fitness: 0.7692307692307693
Generation 152, best individual: Helqo,CWorld/, fitness: 0.7692307692307693
Generation 153, best individual: Helqo,AWorld*, fitness: 0.7692307692307693
Generation 154, best individual: Helqo,PWorld/, fitness: 0.7692307692307693
Generation 155, best individual: Helqo,AWorld*, fitness: 0.7692307692307693
Generation 156, best individual: Hel%o,PWorld/, fitness: 0.7692307692307693
Generation 157, best individual: Hel,v,CWorld/, fitness: 0.6923076923076923
Generation 158, best individual: Helqo$BWorld}, fitness: 0.6923076923076923
Generation 159, best individual: HewPo,PWorldK, fitness: 0.6923076923076923
Generation 160, best individual: Hel{o,PWorldK, fitness: 0.7692307692307693
Generation 161, best individual: Helfo,PWorldI, fitness: 0.7692307692307693
Generation 162, best individual: Heloo,PWorlIO, fitness: 0.6923076923076923
Generation 163, best individual: Hel>o,,Worldg, fitness: 0.7692307692307693
Generation 164, best individual: Hel{o,PWorlkg, fitness: 0.6923076923076923
Generation 165, best individual: HelFo$BWorldI, fitness: 0.6923076923076923
Generation 166, best individual: Hel{o,PWorldj, fitness: 0.7692307692307693
Generation 167, best individual: HelDo, WorldI, fitness: 0.8461538461538461
Generation 168, best individual: Hello$QWorldn, fitness: 0.7692307692307693
Generation 169, best individual: Hello,NWorld:, fitness: 0.8461538461538461
Generation 170, best individual: HelFo,ZWorldI, fitness: 0.7692307692307693
Generation 171, best individual: Helxo,utorldj, fitness: 0.6923076923076923
Generation 172, best individual: Helxo,utorld>, fitness: 0.6923076923076923
Generation 173, best individual: Hello,KWor"/|, fitness: 0.6923076923076923
Generation 174, best individual: HelloWKmorldj, fitness: 0.6923076923076923
Generation 175, best individual: HelFo,BWorldj, fitness: 0.7692307692307693
Generation 176, best individual: Hell�,KW%rldI, fitness: 0.6923076923076923
Generation 177, best individual: Hel
o^,Worldj, fitness: 0.6923076923076923
Generation 178, best individual: Hello,NWor"dj, fitness: 0.7692307692307693
Generation 179, best individual: HelloWcW\rldj, fitness: 0.6923076923076923
Generation 180, best individual: Hel
o"-Worldj, fitness: 0.6923076923076923
Generation 181, best individual: HelloWcWorldj, fitness: 0.7692307692307693
Generation 182, best individual: Hello,BWorldj, fitness: 0.8461538461538461
Generation 183, best individual: HelN.,KWorldj, fitness: 0.6923076923076923
Generation 184, best individual: Helto,(Worldj, fitness: 0.7692307692307693
Generation 185, best individual: Helto,(Wowldj, fitness: 0.6923076923076923
Generation 186, best individual: Helto,(Wokldj, fitness: 0.6923076923076923
Generation 187, best individual: HelDx,NWorld!, fitness: 0.7692307692307693
Generation 188, best individual: HelNo,(Worldj, fitness: 0.7692307692307693
Generation 189, best individual: Hel|,,BWorldn, fitness: 0.6923076923076923
Generation 190, best individual: Hel|,,BWorldj, fitness: 0.6923076923076923
Generation 191, best individual: H%lNo,*World@, fitness: 0.6923076923076923
Generation 192, best individual: Hel|,,jWorldn, fitness: 0.6923076923076923
Generation 193, best individual: HellozBWBrldj, fitness: 0.6923076923076923
Generation 194, best individual: ~el o,*World;, fitness: 0.6923076923076923
Generation 195, best individual: ~el o,*Worldj, fitness: 0.6923076923076923
Generation 196, best individual: Hello,BNorldn, fitness: 0.7692307692307693
Generation 197, best individual: Hell,,jWorld@, fitness: 0.7692307692307693
Generation 198, best individual: Hel|o,BWorldt, fitness: 0.7692307692307693
Generation 199, best individual: Hel|o,BWorld', fitness: 0.7692307692307693
Generation 200, best individual: Hello,BWorldj, fitness: 0.8461538461538461
Generation 201, best individual: Hello,$Norldj, fitness: 0.7692307692307693
Generation 202, best individual: Hel|o,BWorld!, fitness: 0.8461538461538461
Generation 203, best individual: Hel|o,BWorld!, fitness: 0.8461538461538461
Generation 204, best individual: Qel|o,BWorld!, fitness: 0.7692307692307693
Generation 205, best individual: Hello,=World{, fitness: 0.8461538461538461
Generation 206, best individual: Hel&o,BWorldj, fitness: 0.7692307692307693
Generation 207, best individual: Hel&o,fWor;d!, fitness: 0.7692307692307693
Generation 208, best individual: Hello,JWorld|, fitness: 0.8461538461538461
Generation 209, best individual: HelloW%Worldw, fitness: 0.7692307692307693
Generation 210, best individual: HelM*,NWorld!, fitness: 0.7692307692307693
Generation 211, best individual: HelM*,NWorld!, fitness: 0.7692307692307693
Generation 212, best individual: Hell\,%Worldj, fitness: 0.7692307692307693
Generation 213, best individual: Hello,B[ogld!, fitness: 0.7692307692307693
Generation 214, best individual: Hel|o,%World!, fitness: 0.8461538461538461
Generation 215, best individual: HIllo,JWosld!, fitness: 0.7692307692307693
Generation 216, best individual: HelloW%Wirld!, fitness: 0.7692307692307693
Generation 217, best individual: Hello,BWor;d|, fitness: 0.7692307692307693
Generation 218, best individual: Hello,BWorld!, fitness: 0.9230769230769231
Generation 219, best individual: Hell?,fWorld!, fitness: 0.8461538461538461
Generation 220, best individual: HelP?,fWorld!, fitness: 0.7692307692307693
Generation 221, best individual: HIllo,JWorld!, fitness: 0.8461538461538461
Generation 222, best individual: Hell=,JWorld!, fitness: 0.8461538461538461
Generation 223, best individual: Hell.,}Wo~ld!, fitness: 0.7692307692307693
Generation 224, best individual: Hello,JWO
ld!, fitness: 0.7692307692307693
Generation 225, best individual: Hell:,JWorld!, fitness: 0.8461538461538461
Generation 226, best individual: Hello,JWorldB, fitness: 0.8461538461538461
Generation 227, best individual: Hello,:World!, fitness: 0.9230769230769231
Generation 228, best individual: Hello,:World!, fitness: 0.9230769230769231
Generation 229, best individual: Cello,JWorld!, fitness: 0.8461538461538461
Generation 230, best individual: Hnllo,JWorld!, fitness: 0.8461538461538461
Generation 231, best individual: Hnllo,JWorld!, fitness: 0.8461538461538461
Generation 232, best individual: Hnllo,JWorld!, fitness: 0.8461538461538461
Generation 233, best individual: Hello,JWorld!, fitness: 0.9230769230769231
Generation 234, best individual: Hello,JWorld!, fitness: 0.9230769230769231
Generation 235, best individual: Hellm,sWor_d!, fitness: 0.7692307692307693
Generation 236, best individual: Hello,
WPr+d!, fitness: 0.7692307692307693
Generation 237, best individual: HellS,sW\rld!, fitness: 0.7692307692307693
Generation 238, best individual: Hnllo,:Woeld!, fitness: 0.7692307692307693
Generation 239, best individual: Hello>gWor
d!, fitness: 0.7692307692307693
Generation 240, best individual: Hello,:Wrrldm, fitness: 0.7692307692307693
Generation 241, best individual: Hello,:Wrrld), fitness: 0.7692307692307693
Generation 242, best individual: Hello,
WPr`d!, fitness: 0.7692307692307693
Generation 243, best individual: Hello,eWIeldm, fitness: 0.6923076923076923
Generation 244, best individual: Hello,<WPHld!, fitness: 0.7692307692307693
Generation 245, best individual: He=lo,WWor?d!, fitness: 0.7692307692307693
Generation 246, best individual: Helloj:Woeld!, fitness: 0.7692307692307693
Generation 247, best individual: H$llo,~WoWld!, fitness: 0.7692307692307693
Generation 248, best individual: Hello,
W(Ild!, fitness: 0.7692307692307693
Generation 249, best individual: Hello,:Woeld@, fitness: 0.7692307692307693
Generation 250, best individual: Hello,:Woeld@, fitness: 0.7692307692307693
Generation 251, best individual: Hello-JJorld!, fitness: 0.7692307692307693
Generation 252, best individual: Hello,~Worcdy, fitness: 0.7692307692307693
Generation 253, best individual: Hello,~Woeld, fitness: 0.7692307692307693
Generation 254, best individual: Hello,pWo&ld!, fitness: 0.8461538461538461
Generation 255, best individual: Helro,~Woeld!, fitness: 0.7692307692307693
Generation 256, best individual: HTllo,:WorZd!, fitness: 0.7692307692307693
Generation 257, best individual: Hello,:WorZd!, fitness: 0.8461538461538461
Generation 258, best individual: Hello,~Wowld!, fitness: 0.8461538461538461
Generation 259, best individual: Heulo,+Woeld!, fitness: 0.7692307692307693
Generation 260, best individual: Hello,EWowld!, fitness: 0.8461538461538461
Generation 261, best individual: Hello,IVoeld!, fitness: 0.7692307692307693
Generation 262, best individual: HellQ,+Woeld!, fitness: 0.7692307692307693
Generation 263, best individual: Heflo,pWorZd!, fitness: 0.7692307692307693
Generation 264, best individual: Hello, WoeZd!, fitness: 0.8461538461538461
Generation 265, best individual: Hellm,~Wowld!, fitness: 0.7692307692307693
Generation 266, best individual: HeBlo, WomlS!, fitness: 0.7692307692307693
Generation 267, best individual: Hellov~Wodld!, fitness: 0.7692307692307693
Generation 268, best individual: Hello,/Woejd!, fitness: 0.7692307692307693
Generation 269, best individual: Hello,x!orid!, fitness: 0.7692307692307693
Generation 270, best individual: Hello, Wodld!, fitness: 0.9230769230769231
Generation 271, best individual: Hello, Wodld!, fitness: 0.9230769230769231
Generation 272, best individual: Hello,ZWorld!, fitness: 0.9230769230769231
Generation 273, best individual: Hello, WorldE, fitness: 0.9230769230769231
Generation 274, best individual: Hello,ZWodld!, fitness: 0.8461538461538461
Generation 275, best individual: HelloW :orld!, fitness: 0.8461538461538461
Generation 276, best individual: H\ulo, >orld!, fitness: 0.7692307692307693
Generation 277, best individual: Wello} Wodld!, fitness: 0.7692307692307693
Generation 278, best individual: Heflo, Wodld!, fitness: 0.8461538461538461
Generation 279, best individual: H_llo, Wodld!, fitness: 0.8461538461538461
Generation 280, best individual: Heflo, Wodld!, fitness: 0.8461538461538461
Generation 281, best individual: Heflo, Wodld!, fitness: 0.8461538461538461
Generation 282, best individual: He~lo, Wodld!, fitness: 0.8461538461538461
Generation 283, best individual: Hello, Wodld!, fitness: 0.9230769230769231
Generation 284, best individual: Hello, Wodld!, fitness: 0.9230769230769231
Generation 285, best individual: Hello,nWodld!, fitness: 0.8461538461538461
Generation 286, best individual: Hello, WmZld!, fitness: 0.8461538461538461
Generation 287, best individual: He
lo, World!, fitness: 0.9230769230769231
Generation 288, best individual: He~lo, World!, fitness: 0.9230769230769231
Generation 289, best individual: He#{o, World!, fitness: 0.8461538461538461
Generation 290, best individual: HMl;o, World!, fitness: 0.8461538461538461
Generation 291, best individual: Hello, noXld!, fitness: 0.8461538461538461
Generation 292, best individual: Heklo, _orld!, fitness: 0.8461538461538461
Generation 293, best individual: }ello, _orld!, fitness: 0.8461538461538461
Generation 294, best individual: }ello, _orld!, fitness: 0.8461538461538461
Generation 295, best individual: He~lo, W	rld!, fitness: 0.8461538461538461
Generation 296, best individual: Heflo, Wdrld!, fitness: 0.8461538461538461
Generation 297, best individual: Heflo, Wdrld!, fitness: 0.8461538461538461
Generation 298, best individual: Hello, Wdrld!, fitness: 0.9230769230769231
Generation 299, best individual: Hello, Wdrld!, fitness: 0.9230769230769231
Generation 300, best individual: 
eGl=, World!, fitness: 0.7692307692307693
Generation 301, best individual: Hel|o,sW	rld!, fitness: 0.7692307692307693
Generation 302, best individual: Hel&o, World!, fitness: 0.9230769230769231
Generation 303, best individual: Hello,\World!, fitness: 0.9230769230769231
Generation 304, best individual: Hel&o, World!, fitness: 0.9230769230769231
Generation 305, best individual: Hel&o, World!, fitness: 0.9230769230769231
Generation 306, best individual: Hello""World!, fitness: 0.8461538461538461
Generation 307, best individual: Hello, Worlz!, fitness: 0.9230769230769231
Generation 308, best individual: H@llo, Worl?!, fitness: 0.8461538461538461
Generation 309, best individual: Hello,~Wold!, fitness: 0.8461538461538461
Generation 310, best individual: Hello,~Wold!, fitness: 0.8461538461538461
Generation 311, best individual: Hzllo, Worl>e, fitness: 0.7692307692307693
Generation 312, best individual: Hello,xFold!, fitness: 0.7692307692307693
Generation 313, best individual: vello,\Wrld!, fitness: 0.7692307692307693
Generation 314, best individual: Hello,WW	rlZ!, fitness: 0.7692307692307693
Generation 315, best individual: HHllo,lWzrld!, fitness: 0.7692307692307693
Generation 316, best individual: qellk, WorlZ!, fitness: 0.7692307692307693
Generation 317, best individual: qelle, Worud!, fitness: 0.7692307692307693
Generation 318, best individual: Hello,\Wzrlt!, fitness: 0.7692307692307693
Generation 319, best individual: \ello, W!rld!, fitness: 0.8461538461538461
Generation 320, best individual: \ello, W`rld!, fitness: 0.8461538461538461
Generation 321, best individual: \ello, Worud!, fitness: 0.8461538461538461
Generation 322, best individual: \ello, Worud!, fitness: 0.8461538461538461
Generation 323, best individual: qKllo, World!, fitness: 0.8461538461538461
Generation 324, best individual: qollo, Worl-!, fitness: 0.7692307692307693
Generation 325, best individual: qollo, World!, fitness: 0.8461538461538461
Generation 326, best individual: \ello, Wtrldz, fitness: 0.7692307692307693
Generation 327, best individual: glllo, World!, fitness: 0.8461538461538461
Generation 328, best individual: glllo, WoNld!, fitness: 0.7692307692307693
Generation 329, best individual: _ello	 World!, fitness: 0.8461538461538461
Generation 330, best individual: _ello	 World!, fitness: 0.8461538461538461
Generation 331, best individual: Hello, WoruO!, fitness: 0.8461538461538461
Generation 332, best individual: Hello, Wo-ud!, fitness: 0.8461538461538461
Generation 333, best individual: Hello,m+orlg!, fitness: 0.7692307692307693
Generation 334, best individual: .ellE, Wor]d!, fitness: 0.7692307692307693
Generation 335, best individual: H
llo, WoN d!, fitness: 0.7692307692307693
Generation 336, best individual: .ell*, Wor]d!, fitness: 0.7692307692307693
Generation 337, best individual: mello, Worlg!, fitness: 0.8461538461538461
Generation 338, best individual: Wello, Worl$!, fitness: 0.8461538461538461
Generation 339, best individual: mello, WoNOd!, fitness: 0.7692307692307693
Generation 340, best individual: Tello, Wo-lg!, fitness: 0.7692307692307693
Generation 341, best individual: Hello, Wohld!, fitness: 0.9230769230769231
Generation 342, best individual: mello, Wor d!, fitness: 0.8461538461538461
Generation 343, best individual: mello, World}, fitness: 0.8461538461538461
Generation 344, best individual: Hello, {or)d!, fitness: 0.8461538461538461
Generation 345, best individual: rello, World}, fitness: 0.8461538461538461
Generation 346, best individual: \ello, Worldn, fitness: 0.8461538461538461
Generation 347, best individual: \ello, World!, fitness: 0.9230769230769231
Generation 348, best individual: Hello, WJrld}, fitness: 0.8461538461538461
Generation 349, best individual: mello, Worl/!, fitness: 0.8461538461538461
Generation 350, best individual: Hello, Worl/!, fitness: 0.9230769230769231
Generation 351, best individual: Hello, W@r)d!, fitness: 0.8461538461538461
Generation 352, best individual: Hello, Worl/!, fitness: 0.9230769230769231
Generation 353, best individual: Hello, World,, fitness: 0.9230769230769231
Generation 354, best individual: Hello, Wor)k!, fitness: 0.8461538461538461
Generation 355, best individual: hello, Worlw!, fitness: 0.8461538461538461
Generation 356, best individual: Hello, W@rld!, fitness: 0.9230769230769231
Generation 357, best individual: H;llo, World!, fitness: 0.9230769230769231
Generation 358, best individual: H;llo, World!, fitness: 0.9230769230769231
Generation 359, best individual: H;llo, World!, fitness: 0.9230769230769231
Generation 360, best individual: Hello, World!, fitness: 1.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment