For this example, I created a program that starts with a bunch of random strings and tries to evolve them to create a string that reads "Management Information Systems".
The program creates a population of 100 strings. These are strings of random characters at first. Then the program creates generation after generation using the following rules:
This process continues until the program hits 1000 generations or one of the members of the population achieves a perfect fitness score (which is 0). The printout below shows one sample run of the program. To save space, the program only displays information for generations where the most fit member of the population has changed.
The printout shows the generation number, the average fitness score for the population as a whole, the fitness score for the most fit member of that generation, and the string of the most fit member of that generation.
Notice how poorly the initial random choices perform and how quickly the fitness scores improve. Almost every generation at the beginning shows amazing improvement. By generation 300, the overall fitness of the population has stagnated, but a better top performer is being produced once in a while. Finally, the 568th generation produces a perfect match.
Gen Average Best Most fit phrase
--- ------- ---- ------------------------------
0 1001.49 684 7hiW_VZ9`t8g2diXm_hc`BC|Y7YH~+
1 915.18 650 m[Zlp$f`p&!9bxuHu2QalMY}cPnapb
2 841.21 546 m[Zlp$f`p&!9bxuHu2QalM7Lfvnapb
3 782.42 542 m[Zlp$f`p&!9bxua"_hcXs7LfPnapb
4 709.86 525 m[Zlp$fVp&!9bxuHuyQaXs7Lfvnapb
5 659.82 462 7[ZlpH|{`t89bdiXm_hcXs7LfvjH~+
6 619.99 409 7hiW_VZ9`t8g~OiXm_haXs7Lfvj]pb
7 581.38 391 7hiW_VZ9`t8g~OiXm_haXs%Lfvj]pb
8 536.06 367 SeZl\`=Mxh?5rdiXm_hxXs7Lfvnapn
10 493.14 350 SeZl\`=Mxh?5rdiXm_haXs%Lfvj]pn
11 476.08 342 SeZl\`=9`t!9bxiXm_hcXs%Lfvnapn
12 458.27 311 7aiW_Vf`xh?5rdiXm_hcXg7Lfvj]pn
13 444.88 283 7aiW_Vf`xh?5rdiXm_hcXs%Lfvnapn
14 430.37 273 7aiW_Vf``t!5rdiXm_hcXg7Lfvj]pn
15 412.22 237 SaiW_Vf``t!5rdiXm_hcXs%Lfvj]pn
18 358.98 216 SaiW_Vf``t!5rdiXm_hcms%Lfvj]pn
20 339.06 208 SaiW_Vf``t!5rdiXm_hcms%Lfvnapn
21 332.26 196 SaiW_Vf``t!IrdiXm_hcms%Lfvj]pn
23 313.55 188 SaiW_Vf``t!9rdiXm_hcms%Lvvnapn
24 307.56 184 SaiW_uf``t!IrdiXm_hhms%Lfvnapn
25 301.77 178 SaqWm`f``t!IrdiXm_hcms%Lfvn]pn
26 295.15 168 SaqWmVf``t!IrdiXm_hcms%Lvvnapn
27 289.30 161 SarW_`f``t!IrdiXm_hcms%Lvvnapn
29 283.80 157 SaiW_`f``t!IrdiXm_hhms%Lvvnapn
30 276.49 152 SarW_`f``t!Irdiam_hcms%Lvvnapn
31 275.08 142 SeqWY`k``t!Irdimm_hcms%Lvtnapn
32 273.03 134 SaqW_`f``t!Irdimm_hhms%Lvvnapn
33 263.96 128 SaqW_`l``t!Irdimm_hhms%Lvvnapn
35 253.86 126 SaqW_`l``t!Irdimm_hhms%Lvtnapn
36 251.44 122 SaqW_`l``t!Indimm_hhms%Lvtnapn
37 246.30 117 SaqW_`l``t!Irdimm_whms%Lvtnapn
40 235.80 113 SaqW_`l``t!Indimm_whms%Lvtnapn
41 234.47 112 SaqW_`l`ft!Irdimm_whms%Lvtnain
42 231.56 111 SaqW_`l`ft!Irdimm_whms%Lvtnapn
44 227.01 107 SaqW_`l``t!Indimm_whms%Tvtnapn
46 226.01 105 SaqW_`l`ft!Irdimm_whms%Tvtnapn
47 224.75 101 SaqW_`l`ft!Indimm_whms%Tvtnapn
50 222.49 99 Saq]_`l`ft!Irdimm_whms%Tvtnapn
52 218.67 95 Saq]_`l`ft!Indimm_whms%Tvtnapn
54 219.61 92 Saq]_`l`ft!Indimm_whms%Tvtnamn
56 216.36 90 Saq]_`l`ft!Indimm_whmn%Tvtnapn
58 211.78 87 Saq]_`l`ft!Indimm_whmn%Tvtnamn
60 207.20 85 Saq]_`l`kt!Indimm_whmn%Tvtnapn
61 206.11 83 Saq]_`l`kt!Indimm^whmn%Tvtnamn
62 205.27 82 Saq]_`l`kt!Indimm_whmn%Tvtnamn
63 203.16 78 Saq]_`l`kt!Indimm_whmn%Tvtnamr
65 201.20 75 Saq]_`lgkt!Indimm_whmn%Tvtnamr
67 197.65 73 Saq]_`lgkt!Indipm_whmn%Tvtwamn
68 197.61 69 Jaq]_`lgkt!Indimm_whmn%Tvtwamr
70 196.71 66 Jaq]_`lgkt!Indipm_whmn%Tvtwamr
71 191.75 64 Jaq]_`lgkt!Indimm_whmn Tvtwamr
75 188.69 61 Jaq]_`lgkt!Indipm_whmn Tvtwamr
82 182.14 60 Jaq]_`lgkt!Indipm_whmn T{twamr
85 183.66 59 Jaq]_`lgkt!Indism_whmn T{twamr
88 181.08 58 Jao]_`lgkt!Indipm_whmn T{twamr
90 179.68 57 Jao]_`lgkt!Indism_whmn T{twamr
91 179.49 56 Jao]_`lgpt!Indism_whmn T{twamr
95 177.10 53 Jao]_glgpt!Indism_whmn T{twamr
101 178.55 52 Jao]_glgpt!Indism_whmn T{twbmr
110 171.98 51 Jao]_glgpt!Indism_whnn T{twbmr
112 175.62 49 Jao]_glgpt!Indism_thmn T{twbmr
115 176.80 46 Jao]dglgpt!Indism_whnn T{twbmr
117 170.39 43 Jao]dglgpt!Indism_thnn T{twbmr
120 169.32 40 Jaobdglgpt!Indism_thnn T{twbmr
121 173.88 39 Jaobdgldpt!Indism_thnn T{twbmr
124 164.23 38 Jaobdglgpt!Indssm_thnn T{twbmr
126 166.61 37 Jaobdgldpt!Indssm_thnn T{twbmr
130 162.20 36 Jaobdgldpt!Indssmbthnn T{twbmr
133 161.89 33 Jaobdgldpt!Indnsmbthnn T{twbmr
137 161.49 32 Jaobddldpt!Indnsmbthnn T{twbmr
138 159.19 31 Jaobdeldpt!Indnsmbthnn T{twbmr
146 157.38 29 Jaobdeldpt!Indnsmbthnn T{twdmr
157 156.15 28 Jaobdeldpt!Indnsmbthon T{twdmr
160 155.04 27 Janbdeldpt!Indnsmbthon T{twdmr
162 152.47 26 Jaobdeldpt!Indnsmbthon T{tudmr
163 152.50 25 Janbdeldpt!Indnsmbthon T{tudmr
169 152.22 23 Janbdeldnt!Indnsmbthon T{tudmr
175 148.55 22 Janbieldnt!Indnsmbthon T{tudmr
178 147.35 21 Janbieldnt!Indnsmathon T{tudmr
182 144.84 20 Janaieldnt!Indnsmathon T{tudmr
187 144.97 19 Janaieldnt!Indnsmathon T{ttdmr
190 144.21 18 Nanaieldnt!Indnsmathon T{tudmr
192 146.93 17 Nanaieldnt!Indnsmathon T{ttdmr
201 144.45 16 Nanaieldnt!Indnsmathon Tzttdmr
209 142.89 15 Nanaieldnt!Indnsmathon Tzttemr
229 141.94 14 Nanaieldnt Indnsmathon Tzttemr
232 144.33 13 Nanageldnt!Indnsmathon Tzttemr
233 144.76 12 Nanageldnt Indnsmathon Tzttemr
239 140.19 10 Nanageldnt Infnsmathon Tzttemr
272 134.55 9 Nanagelent Infnsmathon Tzttemr
278 137.49 8 Nanagelent Infnsmathon Tyttemr
287 134.83 7 Nanagement Infnsmathon Tyttemr
295 133.02 6 Nanagement Infnsmathon Syttemr
305 132.54 5 Nanagement Infnsmathon Systemr
319 130.34 4 Nanagement Infnsmathon Systems
493 134.53 3 Nanagement Infosmathon Systems
499 133.41 2 Nanagement Infosmation Systems
505 128.91 1 Management Infosmation Systems
568 131.64 0 Management Information Systems
If anyone understands Java and is interested, the source code for this example is available at ExampleGA.java.txt. Remove the ".txt" extension to compile the code.