ECJ-INTEREST-L Archives

August 2005

ECJ-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Proportional Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Sean Luke <[log in to unmask]>
Reply To:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Date:
Tue, 23 Aug 2005 17:53:23 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (123 lines)
On Aug 17, 2005, at 6:48 PM, Allan de Brueker wrote:

> I'm trying to go from arrays of FP numbers to single FP numbers to
> integers
> I would like to have operators on integers (+,-,*,/), operators on
> floats(+,-,*,/),  have declared them in seperate java files, two
> operators
> to switch between float and int (<=, >=) and I would like for my root
> to
> return an integer.

Let's see if I have this correct.  Your functions are (I made up some
names like i+):

int   <- i+(int,int)
int   <- i*(int,int)
int   <- i-(int,int)
int   <- i/(int,int)
float <- f+(float, float)
float <- f*(float, float)
float <- f-(float, float)
float <- f/(float, float)
int   <- <=(float)
float <- >=(int)
float <- gene()

That's what it sounds like from your description above, yet your <= and
 >= functions are quite different below.  You're introducing a third
type, 'nil', though it appears you only have two types (notionally the
names 'int' and 'float').  So what's up with the constraint called
'int2c'?  What kind of function prototype is it trying to represent?

Sean


> So Far I have got  the following:
>
> #return type of the tree
>
> gp.tc.0.returns = int
>  gp.tc.0.init = ec.gp.build.Uniform
>  gp.tc.0.init.min-size = 5
>  gp.tc.0.init.max-size = 15
>
> #3 atomic types
> gp.type.a.size = 3
> gp.type.a.0.name = float
> gp.type.a.1.name = int
> gp.type.a.2.name = nil
>
> #different constraints set with the different atomic types
> gp.nc.size = 6
>
> gp.nc.0 = ec.gp.GPNodeConstraints
> gp.nc.0.name = gene0
> gp.nc.0.return = float
> gp.nc.0.size = 0
>
> gp.nc.1 = ec.gp.GPNodeConstraints
> gp.nc.1.name = gene1
> gp.nc.1.return = nil
> gp.nc.1.size = 1
> gp.nc.1.child.0 = nil
>
>
> gp.nc.2 = ec.gp.GPNodeConstraints
> gp.nc.2.name = float2
> gp.nc.2.return = float
> gp.nc.2.size = 2
> gp.nc.2.child.0 = float
> gp.nc.2.child.1 = float
>
> gp.nc.3 = ec.gp.GPNodeConstraints
> gp.nc.3.name = int2c
> gp.nc.3.return = float
> gp.nc.3.size = 2
> gp.nc.3.child.0 = nil
> gp.nc.3.child.1 = nil
>
> gp.nc.4 = ec.gp.GPNodeConstraints
> gp.nc.4.name = int2
> gp.nc.4.return = int
> gp.nc.4.size = 2
> gp.nc.4.child.0 = int
> gp.nc.4.child.1 = int
>
>
> # We have ... functions in the function set.  They are:
> gp.fs.0.size = 11
>
> gp.fs.0.func.0 = ec.app.simpleclassifier.func.GetGeneFloat
> gp.fs.0.func.0.nc = gene0
>
> gp.fs.0.func.1 = ec.app.simpleclassifier.func.Add
> gp.fs.0.func.1.nc = float2
>
> gp.fs.0.func.2 = ec.app.simpleclassifier.func.Sub
> gp.fs.0.func.2.nc = float2
>
> gp.fs.0.func.3 = ec.app.simpleclassifier.func.Mult
> gp.fs.0.func.3.nc = float2
>
> gp.fs.0.func.4 = ec.app.simpleclassifier.func.Div
> gp.fs.0.func.4.nc =float2
>
> gp.fs.0.func.5 = ec.app.simpleclassifier.func.SmallerOrEqual
> gp.fs.0.func.5.nc = int2c
>
> gp.fs.0.func.6 = ec.app.simpleclassifier.func.GreaterOrEqual
> gp.fs.0.func.6.nc = int2c
>
> gp.fs.0.func.7 = ec.app.simpleclassifier.func.AddInt
> gp.fs.0.func.7.nc = int2
>
> gp.fs.0.func.8 = ec.app.simpleclassifier.func.SubInt
> gp.fs.0.func.8.nc = int2
>
> gp.fs.0.func.9 = ec.app.simpleclassifier.func.MultInt
> gp.fs.0.func.9.nc = int2
>
> gp.fs.0.func.10 = ec.app.simpleclassifier.func.DivInt
> gp.fs.0.func.10.nc = int2

ATOM RSS1 RSS2