Darwinbots Forum
Code center => Suggestions => Topic started by: Numsgil on May 24, 2005, 02:16:51 AM
-
Actually, Endy, that was/is the best competitive strategy.
They did an AI expo a while ago with the prisoner's dilema (http://pespmc1.vub.ac.be/PRISDIL.html). The computer program that wins (apparently even against programs specifically designed to hurt it) stays loyal to friends and destroys betrayers.
If you can find a way to reliable and consistantly identify robots beyond just what species they are, you can easily implement such a system. The only problem of course is there isn't a way to identify another robot reliably (the other robot can play chameleon.)
What we probably need to create is something that is unique to a bot that the bot can't change mid life. Perhaps a set of memory locations that are set by the bot at birth but can't be changed, representing unique look/smell/pheremone signal/etc.
-
If you can find a way to reliable and consistantly identify robots beyond just what species they are, you can easily implement such a system. The only problem of course is there isn't a way to identify another robot reliably (the other robot can play chameleon.)
Robots aleady have such an attribute but they just can't see it.
COLOR
The trouble is that DBs are color-blind for the reason that the color attribute is way too long to fit into a robot's integer memory locations.
Changing all memlocs to longs (where have we heard that before?) would enable direct reading of a robot's color with the eyes. Using this along with the "%=" operator will allow robots to identify conspecs and near conspecs during mutations.
Unless robots are also able to change their color (possibly temporarily and at a certain expense) then this will be a foolproof conspec detection system. I see great uses for this in sexual reproduction and mate finding. Possibly with color cycling displays or such like. :D
-
Well, color is composed of 3 attributes, the red, green, and blue components. Each is itself an integer.
Just let the color readback read to .mygreen, .myred, .myblue, .refblue, .refgreen, and .refred
Could be alot of fun. I also like the idea of color changing, but I'm not sure how we'd implement it.
-
Implementing it should be very easy. Use something like
255 .chameleonblue store
to add 255 to blue
Obviously using a shorter sysvar if possible
Then you just have either a timer to return it back to normal or just keep it that way as long as the gene keeps operating.
Maybe even have another zyzvar such as .colortimer into which a value can be stored.
-
Color changing ability should probably cost something to maintain. Perhaps like 1 nrg a cycle per color compnent or something along those lines.
-
In addition to color, each bot should be born with a random number that it can't change. This number is independant of lineage (so it can't be used for conspec recognition).
This represents a bot's fingerprint, and allows bots to remember which bots have been hostile to it (you'd have to look at who is attacking you, check out their number, and store it, recalling it again for reference, so it's not trivial).
Perhaps .me and .you (nice and simple names).
-
There is already bot ID. You just need to make it available to bots.
-
Yes but that bot ID could be used for other puroses (assuming if you have a low ID then you're one of the first bots in the world). I'd prefer an ID that is totally random.
-
As for colors, I'm not so sure it is a good idea making color readables. There is a conceputal separation, in DB, between what is real in the simulation and what is seen by users. The video output should just be a representation of what's going on, and there should be no mixes between the two levels, the simulation level and the representation level.
Color means nothing, it's there just to help users to see who's mutant and who's not. I'd also like to have other representation modes: for example
- a species mode, showing all members of an original species with the same color;
- a diversity mode, in which color is someway calculated from genetic diversity (same meaning as now but more "accurate");
- a gene activity pattern mode: the color of a bot changes at each cycle, according to the genes active in the last cycle: this would allow to have an insight of the work of dna just by the color changes in bots. Mutants would have different change patterns;
- an energy mode: the color depend upon the amount of energy of the robot
- and so on...
The problem of identification of bots is easily solved by the unique id, which may be an option.
-
What Carlo is suggesting is a very very nice idea! I certainly back it up!