Re: [stack] Evolutionary Programming
John Meacham <[email protected]>
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Nov 22, 2008 at 02:35:05PM -0800, William Tanksley, Jr wrote: > chris glur <[email protected]> wrote: > > If it's to run as an auto-evolving machine, then decoding, > > analysing & reverse-engineering the results is not realistic. > > And not a goal. > > You do have to decide the relative fitness of the results, so some > amount of decoding results is needed. I should say, the main reason I recommended 'floy' instead of joy was not for easy interpretation of the results, but rather to have a more convinient base to use as a genetic code. Imagine your language has 16 basic primitives, when using floy, you need only consider those 16 primitives and the quoted versions of each. You have a straight up linear language of 32 primitives you can cut-up and paste all you want and still have a valid program. you can consider a length n program as a base 32 number of length n if that suits you. If you allowed arbitrary quoting, then you have to make sure quotes are balanced, you no longer have a linear reppresentation of the language, but a tree-like one, where each node is a primitive or a quote of an arbitrary list of primitives or quotes themselves. Not that this is fatal, but it might make things less convinient depending on how your algorithm works. for instance, OOPS likes to extend its programs a single instruction at a time, which is easier for the linear style. Note that when talking about 'linear genetic programming' many will assume you mean a first order imperative language, but a higher order concatenative language like the floy variant of joy is just as linear. but when communicating with others it is good to keep in mind. perhaps a better term is in order 'concatenative linear genetic programming' 'functional linear genetic programing' maybe? > > Similarly the concept of "loop" is just a human construct, > > invented for manageability purposes. > > No, it's a machine concept. I would go a bit further and say it is a fundamental mathematical concept if we are talking about what computational "power" loops give you over not having them. by loops I am including equivalent (computationally) constructions such as recursion or fixed point combinators. http://en.wikipedia.org/wiki/Recursion_theory is the study of this. John -- John Meacham - ⑆repetae.net⑆john⑈