Code center > Suggestions
sry, did not have time to make an outline
Botsareus:
lol Shvartz is back , yay , ty Shvartz.
BTW: Thx for considering it this time PY. Instead of writing some sneeky reply.
custume labels is stuff you put on top of the dna , I know how it looks like in vb:
Const Buka = 50
Botsareus:
Just to trow some more ideas out there:
[you]A better a way to evolve memory locations.[/you]
For the add or change into custume memory locations a new memory adress is required. Lets call this adress $.
The robot adds a random $ witch is A. The dna is equal "A"
Now the robot scans the dna it finds "A" the next random memory locations will be 50%A 50%$ so lets say it adds another "A". The dna is equal "AA"
Now the robot scans the dna it finds 2 "A" the next random memory locations will be 66%A 33%$ so lets say it adds "Z" lucky one too. The dna is equal "AZA"
Now the robot scans the dna it finds 2 "A" and 1 "Z" the next random memory locations will be 50%A 25%$ 25%Z etc.
This will alow robots to better select the right memory locations. Otherwise to make two memory locations match is like finding a needle in a heystack. Custom labels should help but we got about 800 free memory locations are the robots really going to evolve 800 costume labels , imagine how that will be on the user.
This is the same method I am planing to use for PusherBots.
[you]Use the stack in conditions[/you]
How about let a condition look like this
cond
>
start
stop
end
This will see if the first number on the stack is > then the second number on the stack.
Num was talking about getting rid of the line between the conditions and the body of the gene. Here is the only Positive( for me ) thing I can think of in that direction.
Ofcorse the defult conditions should be also possible, and data from conditions should not be put on the stack. I.e. a condition must have a logic opperator or no data at all.
Botsareus:
Finaly one more that should imporve correct evolution.
Lets say some mathamatisian wrote a complex equation
--- Quote ---exy + n ^ (a + B) - c / (n - k * (e + r) ) = x + w
--- End quote ---
If we change a single thing in it
--- Quote ---exy + n ^ (a + b - rabbit) - c / (n - k * (e + r) ) = x + w
--- End quote ---
we get a whole different equation witch probebly has no meaning (in db espasialy)
But if we write a whole new equation ex: d ^ q ^ v + (a + B) - c / n * t / ( w - c * q ) = g ^ (n + c)
The chance that this one will do somthing more uniqu is greater.
So my idea is to add a new dimention to the evolution of dna in db (idea taken from the new smexe that is not uploaded yet, its too good I am still testing it)
Instead of the dna constriating mutations like a spray all over the code. It can focus in one one spot of the dna.
ex:
you = unmutated
M = mutated
The way it works now: youMUUUUUMUUUUUUMyouMUUUUMUUUUUMUU
My idea: UUUUUUUUUUMUUMMMMyouMUUUUUUUUUU
Ofcorse there must be a slider because the robot has to choose how mutch it wants to focus in or not.
(the focus does not have to be the senter of the dna)
Numsgil:
Having researched all other ALife programs, I have come to the exact opposite conclusion as Bots. Namely, only by completely deregulating mutations will anything truly interesting develop.
Allow robots to pick random numbers. Allow them to make dumb mistakes, and decrease the specificity of commands.
For instance, shoot should allow -542 and 20000 to operate. Perhaps modular math. Accept that a bot will probably evolve 25 by doing -534 -52 mult 1110 div, and that there's absolutely nothing wrong with that.
And accept that alot of DNA will be absolute junk. 97% of the Human genome does not code for genes. But also a very little bit of change goes a long way. How much difference is there between Humans and our closest living great ape relatives? How much of that difference is in the non coding portions?
Deregulate it to the utmost extreme.
PurpleYouko:
So you mean the "CUSTOM" labels such as...
def newmon 65
Right?
I'm glad we got that sorted out.
Well we definitely need to modify the mutations commands such that it is possible to evolve things like mod, ceil or floor. Those things are conspicuously missing right now.
I don't really see much point in evolving a system of custom labels (if that is actually what you are suggesting). The way the DNA is stored (ie. numerical array) doesn't even lend itself to this.
What I mean to say is that even if a robot has custom labels in its DNA text file, the first thing the program does is to add them to the custom sysvars list, then get rid of them from the DNA. Ever noticed that when you look at such a robot from the info window the custom variables are gone?
I have nothing against this idea but I just don't see any way it will improve anything.
OK down to specific points. I am not trying to be awkward or "sneaky" here. I just want you to look at the logical consequence of what you are suggesting.
--- Quote ---'we need to remove stuff like ".aimdx .up store", must be automaticaly replaced with *.aimdx .up store" (I know that will take some work, change the way dna gets stored into vbs memory etc. outputed to the user)
--- End quote ---
First what is up with evolving ".aimdx .up store"? and why should it be replaced with "*.aimdx .up store"?
Lets just take a look at the way the program would see that line of DNA code.
First (for those not already familiar with the way the DNA works) DNA code is not stored as a string of words. It is stored in a 2 dimensional array ( DNA(1000,2) )
The first of the two dimensions represents the type of value (numbered 0 through 5) while the second dimension holds actual numerical values.
For example a DNA segment with a value of 5
If the type were 0 then the DNA code would be interpretted as "5" (a real number) or ".aimdx" (a label). The two are one and the same thing.
If the type were 1 then the DNA code would be interpretted as "*.aimdx" (the value held in memory location 5)
If the type were 2 then the DNA code would be interpretted as "mult"
If the type were 3 then the DNA code would be interpretted as "%="
I am sure you get my point by now so I will skip 4 and 5.
Right then back to the example. I hope that by now you must realize that the DNA code for ".aimdx .up store" is in every way identical to that for "5 .up store" so if we were to force this to change into "*.aimdx .up store" then we would be making it impossible to ever store any number directly into memory location.... ever!
A statement such as "1 .tie store" would suddenly become "*.up .tie store". That would be completely ridiculous.
Your ideas on focusing DNA mutations to specific "hot spots" within the DNA code has some definite merits. I will have to think about that a bit and let you know. It would probably involve the addition of a third dimension to the DNA array so that each location could be "tagged" as Mutated or Unmutated. Could be useful in other ways too.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version