<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.4630.0">
<TITLE>Opcode Propagation &amp; Crossover</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">I did run with over 2000 generations with a maximum points of 20. There was no mutation because I was trying to isolate a problem (which turns out to be due to something wrong in my mutation processing). The population size is 200. </FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">It appeared that the set of opcodes appearing in the programs was getting smaller. Originally the program were diverse but now there were programs that had repetitions of opcodes. </FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">When I see things like this I wish I were more conversant with the literature and not just playing with Push because I find it interesting. Perhaps this is a known effect. But I decided to think it through.</FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">Say you start with the two program (A B) and (C D). When crossover is performed it is 50% whether A or B is chosen and 50% whether C or D is chosen. So there is a 25% chance, to get specific, that B will replace C during crossover. Assume that happens. Now perform crossover on (A B) and (B D) in the next generation. Now there is 25% chance of D being replaced by B. That looks to me like what is happening in my run of many generations. It is beyond my math ability to determine how this works with much larger programs, more diversity, etc. But it seems to suggest that larger populations with short generational runs would be more successful. Which is what Lee has implied recently in emails.</FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">This makes me question how I have implemented crossover. As illustrated above I am allowing B to replace either C or D. Similarly A can replace C or D. Perhaps A should only be able to replace C, and B replace D? I am thinking about the illustration of biological crossover which occurs at the same point in both genes. Perhaps in GP or Push, at least, the crossover point should be at a similar point? For instance, if one program is 20 points long and the crossover is at 15, a point 3/4 of the way in the other individual should be selected? </FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">I've looked at some interesting GP websites but they illustrate it using S-expressions which are not directly translatable to Push, leaving me a bit uncertain at times on how to proceed.</FONT></P>

<P><FONT FACE="Times New Roman"> </FONT>

<BR><FONT COLOR="#000080" FACE="Comic Sans MS">&nbsp;- 73 - </FONT>

<BR><B><FONT COLOR="#000080" FACE="Comic Sans MS">Rud Merriam K5RUD</FONT><FONT FACE="Times New Roman"></FONT></B><BR>
<I></I><I></I><A HREF="http://mysticlakesoftware.com/"><I><U></U></I><I><U><FONT COLOR="#0000FF" FACE="Comic Sans MS">http://mysticlakesoftware.com/</FONT></U></I><I></I></A><I></I>
</P>

</BODY>
</HTML>