Using pure chance genetics with inheritance but without fitness describes the situation where we have a random population at the beginning onto them genetic operators will be applied without having additional information by any kind of fitness. This is an artificial case but allows the comparison between (i) pure randomness, (ii) inheritance with genetic operators without fitness as well as (iii) inheritance with genetic operators and with fitness.
The following simple example demonstrates the procedure.
First a new population is randomly generated by the function popgen(). has 4 members with a length of .
-->n=4, l=3,[POPX]=popgen(n,l) n = 4. l = 3. POPX = 0. 1. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1.
Then the function gassimple0() is called and times are the genetic operators applied to this population (see below). The population starts with four strings repesenting the decimal values '2', '3', '7', and '3'. In the next cycle these strings are changed to '6', '3', '3', '3'. This is repeated in the 3rd cycle with the same positions, then follow the same values '3', '6', '3', '3' but with a different position of the '6'.
-->l=3,p=5,n=4,N=4, K=1,MThreshold=N+1,MCount=0,show=1,[MCount,DIST2,STD, MEAN, FREQ,STD1, MEAN1, FREQ1,POP,FX]=gasimple0(POPX,l,p,n,N, K,MThreshold,MCount,show) l = 3. p = 5. n = 4. N = 4. K = 1. MThreshold = 5. MCount = 0. show = 1. 1. FX after Count 0. 0. 0. 0. 1. 0. 0. 0. 2. 1. 0. 0. 3. 2. 0. 0. 4. 0. 0. 0. 5. 0. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. 1. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 7. 0. 0. 1. 0. 1. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. POP after Operators 1. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 7. 0. 0. 1. 0. 1. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 2. FX after Count 0. 0. 0. 0. 1. 0. 0. 0. 2. 1. 0. 0. 3. 5. 0. 0. 4. 0. 0. 0. 5. 0. 0. 0. 6. 1. 0. 0. 7. 1. 0. 0. 1. 1. 0. 6. 0. 0. 1. 0. 1. 1. 0. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. POP after Operators 1. 1. 0. 6. 0. 0. 1. 0. 1. 1. 0. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 3. FX after Count 0. 0. 0. 0. 1. 0. 0. 0. 2. 1. 0. 0. 3. 8. 0. 0. 4. 0. 0. 0. 5. 0. 0. 0. 6. 2. 0. 0. 7. 1. 0. 0. 0. 1. 1. 6. 0. 0. 1. 0. 1. 1. 0. 1. 1. 0. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. POP after Operators 0. 1. 1. 6. 0. 0. 1. 0. 1. 1. 0. 1. 1. 0. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 4. FX after Count 0. 0. 0. 0. 1. 0. 0. 0. 2. 1. 0. 0. 3. 11. 0. 0. 4. 0. 0. 0. 5. 0. 0. 0. 6. 3. 0. 0. 7. 1. 0. 0. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 1. 1. 0. 6. 0. 0. 1. 0. 1. 1. 0. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. POP after Operators 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 1. 1. 0. 6. 0. 0. 1. 0. 1. 1. 0. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 2. 1. 0.0625 50. 3. 11. 0.6875 550. 4. 0. 0. 0. 5. 0. 0. 0. 6. 3. 0.1875 150. 7. 1. 0.0625 50. Number of Events n * N * K = 16 FX = 0. 0. 0. 0. 1. 0. 0. 0. 2. 1. 0.0625 50. 3. 11. 0.6875 550. 4. 0. 0. 0. 5. 0. 0. 0. 6. 3. 0.1875 150. 7. 1. 0.0625 50. POP = 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 1. 1. 0. 6. 0. 0. 1. 0. 1. 1. 0. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 3. 0. 0. 1. 0. 0. 1. 1. FREQ1 = 0.6875 1. 0.1875 1. 0.0625 2. 0. 4. MEAN1 = 0.234375 STD1 = 0.2362278 FREQ = 550. 1. 150. 1. 50. 2. 0. 4. MEAN = 187.5 STD = 188.98224 DIST2 = 275.
Another example with is given below.
-->n=4,l=3,[POPX]=popgen(n,l) n = 4. l = 3. POPX = 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 1. -->l=3,p=5,n=4,N=16, K=1,MThreshold=N+1,MCount=0,show=1,[MCount,DIST2,STD, MEAN, FREQ,STD1, MEAN1, FREQ1,POP,FX]=gasimple0(POPX,l,p,n,N, K,MThreshold,MCount,show) l = 3. p = 5. n = 4. N = 16. K = 1. MThreshold = 17. MCount = 0. show = 1. 1. FX after Count 0. 0. 0. 0. 1. 1. 0. 0. 2. 0. 0. 0. 3. 1. 0. 0. 4. 2. 0. 0. 5. 0. 0. 0. 6. 0. 0. 0. 7. 0. 0. 0. Mutationcount = 0 0. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 1. 1. 1. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. POP after Operators 0. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 1. 1. 1. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 1. 3. 0. 0. 1. 0. 0. 1. 1. 0. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 2. FX after Count 0. 2. 0. 0. 1. 1. 0. 0. 2. 0. 0. 0. 3. 1. 0. 0. 4. 2. 0. 0. 5. 1. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. Mutationcount = 1 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 7. 0. 0. 1. 0. 1. 1. 1. 1. 0. 0. 5. 0. 0. 1. 0. 1. 0. 1. 0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. POP after Operators 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 7. 0. 0. 1. 0. 1. 1. 1. 1. 0. 0. 5. 0. 0. 1. 0. 1. 0. 1. 0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 3. FX after Count 0. 2. 0. 0. 1. 2. 0. 0. 2. 0. 0. 0. 3. 2. 0. 0. 4. 4. 0. 0. 5. 1. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. Mutationcount = 2 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 0. 1. 1. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 3. 0. 0. 1. 0. 0. 1. 1. POP after Operators 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 0. 1. 1. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 3. 0. 0. 1. 0. 0. 1. 1. 4. FX after Count 0. 3. 0. 0. 1. 2. 0. 0. 2. 0. 0. 0. 3. 3. 0. 0. 4. 5. 0. 0. 5. 2. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. Mutationcount = 3 1. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 4. 0. 0. 1. 0. 1. 0. 0. POP after Operators 1. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 3. 0. 0. 1. 0. 0. 1. 1. 0. 1. 1. 4. 0. 0. 1. 0. 1. 0. 0. 5. FX after Count 0. 4. 0. 0. 1. 2. 0. 0. 2. 0. 0. 0. 3. 4. 0. 0. 4. 6. 0. 0. 5. 3. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. Mutationcount = 4 0. 1. 0. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 3. 0. 0. 1. 0. 0. 1. 1. POP after Operators 0. 1. 0. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 3. 0. 0. 1. 0. 0. 1. 1. 6. FX after Count 0. 4. 0. 0. 1. 3. 0. 0. 2. 1. 0. 0. 3. 4. 0. 0. 4. 7. 0. 0. 5. 4. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. Mutationcount = 5 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. POP after Operators 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 7. FX after Count 0. 4. 0. 0. 1. 4. 0. 0. 2. 2. 0. 0. 3. 4. 0. 0. 4. 8. 0. 0. 5. 5. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. Mutationcount = 6 0. 0. 1. 2. 0. 0. 1. 0. 0. 1. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. POP after Operators 0. 0. 1. 2. 0. 0. 1. 0. 0. 1. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 8. FX after Count 0. 4. 0. 0. 1. 5. 0. 0. 2. 3. 0. 0. 3. 4. 0. 0. 4. 9. 0. 0. 5. 6. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. Mutationcount = 7 0. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 1. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 5. 0. 0. 1. 0. 1. 0. 1. POP after Operators 0. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 1. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 1. 0. 0. 5. 0. 0. 1. 0. 1. 0. 1. 9. FX after Count 0. 4. 0. 0. 1. 6. 0. 0. 2. 4. 0. 0. 3. 4. 0. 0. 4. 10. 0. 0. 5. 7. 0. 0. 6. 0. 0. 0. 7. 1. 0. 0. Mutationcount = 8 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 2. 0. 0. 1. 0. 0. 1. 0. 1. 1. 0. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. POP after Operators 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 2. 0. 0. 1. 0. 0. 1. 0. 1. 1. 0. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 10. FX after Count 0. 5. 0. 0. 1. 7. 0. 0. 2. 4. 0. 0. 3. 4. 0. 0. 4. 10. 0. 0. 5. 8. 0. 0. 6. 1. 0. 0. 7. 1. 0. 0. Mutationcount = 9 1. 1. 0. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 6. 0. 0. 1. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. POP after Operators 1. 1. 0. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 6. 0. 0. 1. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 11. FX after Count 0. 6. 0. 0. 1. 8. 0. 0. 2. 4. 0. 0. 3. 4. 0. 0. 4. 10. 0. 0. 5. 9. 0. 0. 6. 2. 0. 0. 7. 1. 0. 0. Mutationcount = 10 0. 0. 1. 6. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0. POP after Operators 0. 0. 1. 6. 0. 0. 1. 0. 1. 1. 0. 1. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 12. FX after Count 0. 7. 0. 0. 1. 9. 0. 0. 2. 4. 0. 0. 3. 4. 0. 0. 4. 10. 0. 0. 5. 10. 0. 0. 6. 3. 0. 0. 7. 1. 0. 0. Mutationcount = 11 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 6. 0. 0. 1. 0. 1. 1. 0. POP after Operators 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 6. 0. 0. 1. 0. 1. 1. 0. 13. FX after Count 0. 7. 0. 0. 1. 10. 0. 0. 2. 5. 0. 0. 3. 4. 0. 0. 4. 11. 0. 0. 5. 11. 0. 0. 6. 3. 0. 0. 7. 1. 0. 0. Mutationcount = 12 1. 0. 1. 2. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 4. 0. 0. 1. 0. 1. 0. 0. POP after Operators 1. 0. 1. 2. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 4. 0. 0. 1. 0. 1. 0. 0. 14. FX after Count 0. 7. 0. 0. 1. 11. 0. 0. 2. 6. 0. 0. 3. 4. 0. 0. 4. 12. 0. 0. 5. 12. 0. 0. 6. 3. 0. 0. 7. 1. 0. 0. Mutationcount = 13 1. 0. 0. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. POP after Operators 1. 0. 0. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 15. FX after Count 0. 7. 0. 0. 1. 12. 0. 0. 2. 7. 0. 0. 3. 4. 0. 0. 4. 13. 0. 0. 5. 13. 0. 0. 6. 3. 0. 0. 7. 1. 0. 0. Mutationcount = 14 0. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 0. 1. 0. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 1. 2. 0. 0. 1. 0. 0. 1. 0. POP after Operators 0. 0. 1. 4. 0. 0. 1. 0. 1. 0. 0. 0. 1. 0. 5. 0. 0. 1. 0. 1. 0. 1. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 1. 0. 1. 2. 0. 0. 1. 0. 0. 1. 0. 16. FX after Count 0. 7. 0. 0. 1. 13. 0. 0. 2. 8. 0. 0. 3. 4. 0. 0. 4. 14. 0. 0. 5. 14. 0. 0. 6. 3. 0. 0. 7. 1. 0. 0. Mutationcount = 15 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 1. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 0. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. POP after Operators 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 1. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 0. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. 0. 7. 0.109375 87.5 1. 13. 0.203125 162.5 2. 8. 0.125 100. 3. 4. 0.0625 50. 4. 14. 0.21875 175. 5. 14. 0.21875 175. 6. 3. 0.046875 37.5 7. 1. 0.015625 12.5 Number of Events n * N * K = 64 FX = 0. 7. 0.109375 87.5 1. 13. 0.203125 162.5 2. 8. 0.125 100. 3. 4. 0.0625 50. 4. 14. 0.21875 175. 5. 14. 0.21875 175. 6. 3. 0.046875 37.5 7. 1. 0.015625 12.5 POP = 1. 0. 1. 1. 0. 0. 1. 0. 0. 0. 1. 0. 1. 0. 2. 0. 0. 1. 0. 0. 1. 0. 1. 0. 0. 4. 0. 0. 1. 0. 1. 0. 0. 0. 0. 1. 5. 0. 0. 1. 0. 1. 0. 1. FREQ1 = 0.21875 2. 0.203125 1. 0.125 1. 0.109375 1. 0.0625 1. 0.046875 1. 0.015625 1. MEAN1 = 0.1116071 STD1 = 0.0809748 FREQ = 175. 2. 162.5 1. 100. 1. 87.5 1. 50. 1. 37.5 1. 12.5 1. MEAN = 89.285714 STD = 64.779847 DIST2 = 81.25
Below are 6 experiments reported: three with gassimple0() and three with frequCheck(). All 6 experiments have the parameters .
The first three experiments with gassimple0() shows the results by starting with a certain population and then apply only crossover without fitness in many events. Comparing the empirical values gives the following table:
DIST2 | gassimple0() | frequCheck() |
1 | 56.054688 | 3.8085938 |
2 | 100.83008 | 2.6855469 |
3 | 6.4453125 | 6.9824219 |
These examples of gassimple0() demonstrate that the application of the corssover operator without fitness compares to a pure random procedure badly.
Gerd Doeben-Henisch 2012-03-31