Code center > Suggestions
Non-Determinstic Bot DNA flow
PurpleYouko:
What you are suggesting makes a lot of sense Num.
I don't actually care if it stuffs up a bunch of my older bots provided that the structure of the DNA is 100% predictable for writing new ones.
If I program a bot to carry out specific instructions in a specific order then that is the order I want it done in. No random gaps where a bot just spontaineously decides that it doesn't want to carry out a critical step in the program and just skips it.
If I want to send a particular message down tie number 615 on the cycle when the robot is aged exactly 23 then I want it to do precisely that, every time
Only carrying out one gene per cycle and skipping the others? Bad bad bad bad idea
Same for only performing the action from about half of them.
If a condition is met then the gene must always be carried out or else the robots lose all predictablity and become random blobs of crap rather than useful artificial life forms.
I would much rather go back to watching a bowl full of Sea Monkeys than play with such a system
Numsgil:
--- Quote ---I would much rather go back to watching a bowl full of Sea Monkeys than play with such a system
--- End quote ---
And we learn what PY did before he found Darwinbots.
Endy:
Sea Monkies :boing: ...That explains alot :) :lol: :D
On a more serious note that sounds like the best suggestion, Nums. I honestly didn't know what to think about only executing a single or even half of the genes per cycle, the memory requirements would be unreal :blink: Poor computer is already hurting when running alot of bots.
Would something like:
Chromo1
DNA
Chromo2
DNA
Chromo3
etc.
Be possible for the chromosomes? I don't think anyone would like having to deal with seperate txt files for them.
Endy B)
Numsgil:
Definately keeping all the chromosomes in the same file. I can see some problems arising though, as the current max DNA length is 32000. That's huge by today's standards, but chromosomes have a way of duplicating whole long stretches of DNA. I may have to raise the limit to a long, which is something like 2 billion. That would be intense. Can you imagine a bot with 2 billion DNA units? That would be like several gigabytes of DNA code.
More likely DNA of lengths around 50 000.
Carlo:
--- Quote ---IMO if we were to change the way that the DNA operates such that all of the genes that read TRUE are not always activated then it will completely and utterly screw up any form of bot programming.
--- End quote ---
Your opinion is totally wrong. You're old enough to know well that every deterministic program can be transformed into a perfectly equivalent nondeterministic program. So the new type of execution would not screw up anything, it would just provide MORE possibilities and would be MUCH MORE elegant.
--- Quote ---All my carefully constructed MBs would be utterly useless as would all functions relying on activation at a precise age. And there are a lot of these.
--- End quote ---
Again, totally false. Only one of the genes whose condition evaluates to true will be executed in a cycle; but you can always set conditions so that ONLY THAT particular gene's condition could be true at the right time, to be sure it is executed. The main difference is that you don't have to bother anymore about which gene comes first, which last, genes that take effect only after the complete cycle, genes that have immediate effect. More, EVERY gene which becomes active has an effect: that is, effect are not hidden by subsequent genes. If you have two genes:
cond
...
start
-1 .shoot store
stop
cond
...same cond as above
start
2 .shoot store
5 .shootval store
stop
BOTH will have effect, 50% the first gene and 50% the second gene. The interleaving between the two genes (1 cycle on average) is small enough to give the impression they are executed at the same time. This makes possible subtle tweaking and mixing of different reactions to events, which now are much more difficult to achieve. Would be great not only from the point of view of evolution, but also from the point of view of programming. Remember that if you want to obtain strictly sequential operations, you can do it in a straighforward manner, just by setting the appropriate activation conditions to genes.
--- Quote ---I actively use the fact that an internal memory value flag can be used later in the same cycle. Most of my robots wouldn't be able to operate without this.
--- End quote ---
Are you sure you can't obtain similar, if not exactly the same effect, by breaking operations in different cycles, or grouping them in the same gene? Tell me why you use the "same-cycle" flags.
--- Quote ---If a condition is met then the gene must always be carried out or else the robots lose all predictablity and become random blobs of crap rather than useful artificial life forms.
--- End quote ---
Again, totally false. And by the way, "artificial life" is not about programming combat bots. There's CRobots for that. So "useful alife forms" don't means "F1 bots that act exactly as I programmed them to".
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version