Code center > Suggestions

A Few Suggestions

<< < (2/3) > >>

EricL:
I've been musing on this too, but I'm too tired right now to type or reply intelligently.  So, I'll be breif.

1) You have way too much time on your hands.
2) I think your proposal is bascially a Turing machine, yes?  Extremly powerful.  Hard to code in.
3) As far as evo goes, I think it's way more critical that the DNA be degenerate than that the grammer be small.  Sysvars arn't base pairs (there's more than 4).  They're not even codons (there's more than 64 or 21, depending on how you count).  They are more like amino acid sequences.  Not quite whole protiens, but higher level than simple amino acids.  And that is fine.  It's all binary at some point, but biology uses higher level contstructs and so should we.  My point is that I think the issue really has a lot more to do with the granulatiry of mutations and degerancy in terms of every possible mutation of a genome being syntacticly correct (which has a lot to do with mutation granulatiry) and semanticly operational (which has a lot to do with degeneracy) than on brevity of grammer.

Numsgil:
1.  Very very probably

2.  I suppose it is.  I was basically imagining a kind of calculator language.  Or perhaps a Pushdown automaton.  The idea is to pool the currently seperate stack and sysvars.  The seperation seems to me to be relatively unnecesary -- another hurdle for the bot to jump over to get a new action working.

Evolution seems far more successful with the stack than with the memory array.  I think this has to do with the linear nature of the stack.  Where you read from and write to is already decided for you, which helps reduce the solution space without reducing the possible complexity.

We could still have memory for bots to use for various variables.  We could probably get away with like 100, or even a dynamic number depending on the bot's needs.

If we short circuit the [value sysvar store -> action] process to [value sysvar(s) -> action], I think it would make a huge difference.  Alot of sysvars seem to be heading this way conceptually as I work with them anyway.  The new tie commands, for instance, replace a huge number of old sysvars.

Another benefit: there are some inter-related sysvars that need to work in concert; if they were commands instead they could read or write multiple values at once, or even work differently depending on context.

3.  Not sure exactly what you mean by granularity and degeneracy.

Greven:
The most drastic and best proposal I have seen.

Basically I see alot of potential in such system mainly:
most what you aleardy have written.
However it will make dna more readable (deciphering a 4000 evoluitic  bot, is just a mess!)

But it will also be easier for newcomers to pick you.
We could make a program that parses old bots, and outputs a bot with the new system.

Numsgil:
The main advantage I see is that it makes sysvars sysvars and numbers numbers.  You wouldn't get them confused as much as you do now.  There is nothing worse than trying to decipher something like:

5 600 2 div store

As you say it would make the DNA more readable, which would make running evo sims a little easier.

EricL:

--- Quote from: Numsgil ---3.  Not sure exactly what you mean by granularity and degeneracy.
--- End quote ---

Granularity (of mutations).  Essentially, at what level are mutations possible and is the result of the finest grain mutation still syntacticly and semanticly correct?  In DB, a genome is a sequence of numbers in a text file.  The smallest granulatiry of a mutation is a point mutation which changes one of these numbers, as opposed to say changing an underlying bit in the binary representation of the text file.  Restricting mutations to the former insures that genomes remain at least sytically correct.  Allowing the latter would result in a illegally formated genome and likely crash the program.  This is what I mean be granulatiry of mutations.  It matters not in my opinion how "high level" the DNA grammer is as long as the finest possible mutation respects the grammer syntax rules.  Biological DNA "allows" real point mutations at the real base pair level and this works becuase the DNA encoding is degenerate at that level (see next paragraph).  I'm arguing that sysvars are not really base pairs and that DB as a consequence does not allow real BP mutations, which would be equivalent to bit level changes in the underlying binary, becuase to do so would result in illegally formated genomes.  

Degeneracy.  This term as I am using it is used in genomics (and other coding systems) and refers to to fact that all 64 possible codons in DNA result in legitmate instructions and more importantly, that there are multiple codons which map to the instruction to make the same amino acid (all proteins in DNA based organisms are built from the same 20 amino acids, so except for a couple of special codons like STOP, there are up to 6 different ways I think, 6 different 3 bp sequences,  to encode the instruction to manufacture a specific amino acid).  A coding system which has this property, where there are multiple ways to encode the same instruction, is said to be degenerate.   I am essentially re-iterating and emphasizing your call to insure the domain of all sysvars result in legal, functional actions and ephasizing the importance of this over simply simplifying the grammer.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version