<!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>Success with ODD</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">Finally, had a success with ODD.</FONT>
</P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">First, I dropped back to trying a different problem: multiply the top of the integer stack by 1 less than the top (X * X-1). This was a starting point for solving for factorial. Found problems in various places and made the fixes. I got this problem to work with various combinations of parameters.</FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">So just now tried ODD and after 94 generations arrived at:</FONT>
</P>

<P><FONT SIZE=2 FACE="Consolas">(CODE.= INTEGER.%)&nbsp; 4 INTEGER.% BOOLEAN.FROMFLOAT&nbsp; EXEC.STACKDEPTH ( ( CODE.= INTEGER.%&nbsp; CODE.CDR CODE.=)&nbsp; FLOAT.=) BOOLEAN.FROMINTEGER</FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">Which simplifies to:</FONT> <FONT SIZE=2 FACE="Consolas">EXEC.STACKDEPTH (INTEGER.%) BOOLEAN.FROMINTEGER</FONT>
</P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">The solution gets cute by using the exec stackdepth to push 2 on the stack which is used for the integer modulus to produce a 1 or 0, which is then converted to the boolean. </FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">Parameters (that I'm controlling right now) were:</FONT>
</P>

<P><FONT SIZE=2 FACE="Consolas">EVALPUSH-LIMIT=50</FONT>

<BR><FONT SIZE=2 FACE="Consolas">MAX-POINTS-IN-RANDOM-EXPRESSIONS=15</FONT>

<BR><FONT SIZE=2 FACE="Consolas">MIN-POINTS-IN-RANDOM-EXPRESSIONS=5</FONT>

<BR><FONT SIZE=2 FACE="Consolas">RANDOM-SEED=52432</FONT>
</P>

<P><FONT SIZE=2 FACE="Consolas">max_programs=1000</FONT>

<BR><FONT SIZE=2 FACE="Consolas">tourney_size=4</FONT>

<BR><FONT SIZE=2 FACE="Consolas">generations=150</FONT>

<BR><FONT SIZE=2 FACE="Consolas">crossover=80</FONT>

<BR><FONT SIZE=2 FACE="Consolas">mutation=15</FONT>

<BR><FONT SIZE=2 FACE="Consolas">duplicate=5</FONT>
</P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">Fitness test was 50 for not stopping, 100 for no boolean value, 10 for wrong test result, and 5 for each time the current and previous boolean value were the same (penalty for constant values). </FONT></P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">----</FONT>
</P>

<P><FONT COLOR="#000080" SIZE=2 FACE="Comic Sans MS">I'm surprised at the sensitivity of parameters in getting solutions. For example, changing tournament size from 2 to 3 or 4 might result in no solution when a solution had been found, or the reverse. Or changing the random seed can change from getting a solution to not. </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>