[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: evolutionary programming & Lua
- From: Tomas Guisasola Gorham <tomas@...>
- Date: Mon, 23 Aug 1999 06:47:41 -0300 (EST)
> So make a function that turns:
>
> {add,7,{mul,4,3}}
>
> into:
>
> myFunc = dostring("return function () return args.1 + ( args.2 * args.3 )")
>
> and precompile it. Then execute it with the current args:
>
> result = myFunc({7,4,3})
>
> This is important for genetic algorithms because we typically run the
> same genome's algorithm over large data sets. (In my application I'm
> running each genome on about quater of a million data points to evaluate
> it's fitness - this has to be done for 100s of genomes for 100s of generations)
Why don't you use a function like:
function E (t)
if type(t) == "table"then
return function () return args[1](E(args[2]), E(args[3])) end
else
return t
end
end
and write the expressions like:
E{add, 7, {mul, 4, 3}}
I didn't tested it, but it's just for the idea. I think
lhf has answered with a solution similar to that, but without the
function construction, isn't it?
Tomas