Code center > Suggestions
Non-Determinstic Bot DNA flow
PurpleYouko:
--- 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.
--- End quote ---
One version of DOM Inv uses a system where he sets a tie onto a victim (using a random tie phase which he stores into a memory location) and simultaineously sets a flag to show that the tie has been fired.
Later in the genome he uses the stored flag and tie phase number to feed on the tie that he just fired.
The following cycle he fires a new tie with another random number, overwriting the earlier one.
This is a deliberate technique to prevent the victim from using leach genes with *.tiepres to reverse the energy flow.
At other times with MBs I need to perform several things on the same cycle and while it would be possible to seperate them a little, it is already very difficult to form the entire structure within the 20 cycles that the initial tie remains soft.
First parent gives brth, baby overwrites the tie then rotates, checks that it is clear ahead then reproduces again etc. Try doing this with structures of ten or more robots and get it all to fit inside 20 cycles.
I have no problem with changing it such that the genes are pseudo simultaineous and have no effect on subsequent genes. That I can work around without too much difficulty even though it does directly undermine one of my most powerful combat techniques.
Completely ignoring certain gene activations anfd just choosing one of many that should activate on a given cycle will utterly destroy any robot that I either have made in the past or might make in the future.
Every robot that I have ever designed relies on having more than one activated gene per cycle. Even the most simple food finding routines rely on the fact that it is possible to use course direction changes first then overwrite them with finer direction changes when needed. (like if there is a bot in eye 9 and also one in eye 4)
With a randomly dropped gene activation system this won't work and the robot will go either one way or the other or maybe choose to do neither while it builds body points or maybe it will just stop and make a couple of shell points while it is being bombarded by a predator instead of returning fire or running away.
toatlly crap idea that will destroy DB IMO :(
PurpleYouko:
I will download and try out the experimental system and see if my fears are well grounded or not.
PurpleYouko:
OK I just downloaded and tried it.
As I feared each and every one of my bots becomes a useless lump of crap, neither moving nor feeding nor even recognizing each other.
They just sit around and die :(
This modification to the game adds nothing to the range of possible variety and takes away everything that ever made it interesting to me.
I can see where this may be useful and fun from an evolutionary point of view but for the combat side of the game it is the worst thing that could ever happen to it short of utterly losing the source code and having to start over again.
Make it an option to run non deterministically if you like but I absolutely hate it. :(
Numsgil:
Not to harp on the issue, but the chromosome idea I explained above and and this one too solves all the problems Carlo pointed out, while not removing the deterministic nature of the program.
Non-deterministic languages usually follow a tree structure, that is, something like a non-deterministic turing machine, which is way beyond the assembly like scope of the darwinbots language. We could add something along those lines, but that could be an ALife program in itself. (or even a doctoral thesis if done well enough).
What I offer is more along the lines of multi-threading. Each chromosome is its own thread, executing simoltaneously on shared resources.
From a strictly programming stand point, multi-threading is far superior. There are established ways on how to build such a system and program within it. Non-deterministic languages are still something of a novelty, and rather poorly studied. Plus, procedural single threaded programming is always possible in a multi-threading environment, so current bots wouldn't break (a huge plus when you can manage it).
That said, I have no problem with a non-deterministic checkbox if the hard work is already done.
PurpleYouko:
As I said before Num, I can live with a system which simulates simultaineous gene activation without being able to set and use flags on the same cycle.
I like your idea as you described it above. It would be far more realistic in fact.
It is just when the program just randomly chooses to activate only one gene out of the many that flag true, that I can't deal with it.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version