Author Topic: sry, did not have time to make an outline  (Read 7702 times)

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
sry, did not have time to make an outline
« on: July 25, 2005, 06:16:59 PM »
There is a problem , currently robots do not evolve the "dup" command, which makes me wonder how many other DNA instructions they miss out on. I know the genes dont evolve the new "and" "or" "xor" etc. All these commands need to be added to the program.

Also robots, dont evolve custom labels.

And there is no way to clone numbers.

Therefore a robot can't evolve a commonly used number easily. I suggest allowing robots to evolve costum labels too. Just make it jibrishly named labels, as long as they work.

Evolving a number, sysvar or *.sysvar should be seperate for each robot.  It should also be seperate for each part of the DNA.  By part I mean conditions and bodies of genes.

Here are the sliders the way I would prefer:

Top Part of Conditions Section (A)
=====\/====  number (or custom label?)
=====\/====  sysvar

Buttom Part of Conditions Section (B)
=====\/====  number (or costum label?)
=====\/====  sysvar

*Important code must have ristrictions on evolving a number in both top and buttom of the dna

Top Part of Body Section ( C )
=====\/====  number (or custom label?)

'seperat for used and unused
=====\/====  *.sysvar
=====\/====  *.unused memory location
=====\/====  number or custom label
 'or mathematical operators can evolve here the way they do now

Bottom Part of Actions Section (D)
  =====\/====  number or custom label
  =====\/====  sysvar
  =====\/====  memory location

'waiting for nums new opperator known only as *
'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)

'and if we will have nums handy * opperator we no longer need "20 *.aimdx store" (because it will be writtin as "20 .aimdx * store") therefore, "20 .aimdx store" is automatically changed into a normal command.

Quote
cond
A
B
>
A
B
>
start
C
D
store
C
D
inc
stop
end

must be a text box that creates new custom labels
must be a text box that deletes custom labels

=====\/==== must be a slider to favor a custom label over a number for all parts of DNA. (slider inactive when there is no custom labels)


Thats all I thing for now. Nice little day dream. Lets see the criticism.

[color = red]Proofread by Numsgil for sanity[/color]
« Last Edit: July 26, 2005, 02:44:02 PM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
sry, did not have time to make an outline
« Reply #1 on: July 25, 2005, 06:44:11 PM »
Qustionare:

Why do I want seporate sliders for the top and buttom of a condition block?

A: Once I was thinking of making it easyer on the bots by only evolving number-sysvar blocks.

A: for some more qustions like that: The same psycology applyes to all other waird sub divisions I maid.

Qustion: Why the hell do you need all of this anyway?

A: Just because we never seen primitive dna and the way it mutates that does not mean it does not exsist therefor I want the robots to choose there building blocks of life the way real organisms choose it. If we keep it the way it is now, robots will have primative mutations for all internaty.
« Last Edit: July 25, 2005, 06:46:07 PM by Botsareus »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
sry, did not have time to make an outline
« Reply #2 on: July 26, 2005, 09:02:40 AM »
Yes I know that robots don't evolve all the new operators yet. It just hasn't been added.
Trouble is that the DNA format is evolving faster than the robots right now. Just let us get the format sorted out then all this stuff will be added in as soon as it stabilizes.
It could be that the mutations routines will need a complete rewrite with all the stuff Num is changing in there.

One question for you.

What is a custom? You use that word a lot and I have no idea WTF you are talking about. Is this a miss spelling of some ordinary word or some jargon that I have never heard of. Understanding you is the first step to figuring out how to do the stuff you are asking for.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
sry, did not have time to make an outline
« Reply #3 on: July 26, 2005, 12:48:47 PM »
I thing he means "custom", but you know me - I'm quare :)
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
sry, did not have time to make an outline
« Reply #4 on: July 26, 2005, 01:03:32 PM »
Ahh!

Now it's all falling into place.

That's a really scroovy explanation Shvarz  B)
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
sry, did not have time to make an outline
« Reply #5 on: July 26, 2005, 01:30:57 PM »
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

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
sry, did not have time to make an outline
« Reply #6 on: July 26, 2005, 01:46:09 PM »
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.
« Last Edit: July 26, 2005, 01:49:28 PM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
sry, did not have time to make an outline
« Reply #7 on: July 26, 2005, 02:24:53 PM »
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

If we change a single thing in it

Quote
exy + n ^ (a + b - rabbit) - c / (n - k * (e + r) ) = x + w

 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)
« Last Edit: July 26, 2005, 02:43:17 PM by Botsareus »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
sry, did not have time to make an outline
« Reply #8 on: July 26, 2005, 02:36:01 PM »
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.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
sry, did not have time to make an outline
« Reply #9 on: July 26, 2005, 02:46:15 PM »
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)

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.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
sry, did not have time to make an outline
« Reply #10 on: July 26, 2005, 02:49:10 PM »
Num, thats the long way, allow a robot to evolve so mutch special junk that almost any new change will do something special. Why cant we just take the shortcut?

Now I can see Py's point about keeping no ristrictions on junk dna though...

Its a tough argument I must say...
« Last Edit: July 26, 2005, 02:55:49 PM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
sry, did not have time to make an outline
« Reply #11 on: July 26, 2005, 02:55:18 PM »
".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!

1.)PY, I sayed change the way the code is handled completly
How is it imposible if you make it possible. Just change the types arround and how they are read before a store command and not. THING how to make it possible THING...
ex: ".aimdx .up store" is in every way identical to that for "5 .up store"
now it is: ".aimdx .up store" is in every way identical to that for "*.aimdx .up store"
DOH!


2.) And whats this sneeky crap about custome labels not working probebly, I love it. It is bugy so therefor we wont add it?!

3.) I know I am not from Englend and my english is bad but come on.
« Last Edit: July 26, 2005, 02:58:19 PM by Botsareus »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
sry, did not have time to make an outline
« Reply #12 on: July 26, 2005, 03:03:25 PM »
Quote
3.) I know I am not from Englend and my english is bad but come on.
I pray you are not from any country that speaks English as either a primary or formal language.  Here's my list of countries you'd better not be from:

England
Scotland
Ireland
Wales
America (excluding the south of course :P)
Australia
Puerto Rico
Canada
British Honduras

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
sry, did not have time to make an outline
« Reply #13 on: July 26, 2005, 03:05:18 PM »
PY, PY dont reply , now you going to start about how its is making the program more complex... dont bother.

I love the "whole circle of points to make a baby" we make a flower maybe? not a single bot?

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
sry, did not have time to make an outline
« Reply #14 on: July 26, 2005, 03:11:01 PM »
Quote
1.)PY, I sayed change the way the code is handled completly
To what end?
It isn't broken so why fix it?
Why would we want to completely rewrite the whole program, destroy all the old carefully designed bots and basicly screw everything up just to fix a problem that isn't even there? There is absolutely nothing wrong with the way it works right now.

Quote
How is it imposible if you make it possible. Just change the types arround and how they are read before a store command and not. THING how to make it possible THING...
I have been Thinging. It didn't help me understand what you are going on about.

Quote
2.) And whats this sneeky crap about custome labels not working probebly, I love it. It is bugy so therefor we wont add it?!
 :blink:

Quote
PY, PY dont reply , now you going to start about how its is making the program more complex... dont bother.
Too late I already did.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D