Author Topic: What I need done in mutations  (Read 9706 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
What I need done in mutations
« Reply #15 on: April 19, 2005, 05:54:18 PM »
We probably should just have two sliders, one for number, one for sysvar, and then have a * operator that can appear or dissapear from infront of numbers.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
What I need done in mutations
« Reply #16 on: April 19, 2005, 05:57:31 PM »
3.) Num, not [you]*.sysvar [/you]but[you] .sysvar [/you], I am talking about new stuff for the "actions" part of the gene, not the "conditions" part of the gene...

we need all four:

*.sysvar
.sysvar  (really is a number in a sertain range)
*.number
number

Num, There must be different chance for *.sysvar and .sysvar , do you get that?
Yes we can have *.sysvar  in the "actions" part of the gene. and numbers like 5 , 6 turn into:

Quote
.aimdx
store
.aimsx
store
if there is a store

Hell we can even have this

Quote
*.eye5
store

I have no idea who will need such a bizarre function call but we have it. Will it even work?

2.) ok forget the quotes , but what about mutating sliders?
« Last Edit: April 19, 2005, 06:41:59 PM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
What I need done in mutations
« Reply #17 on: April 19, 2005, 08:22:58 PM »
OK Truly, this is how many sliders I have in mind, not "2 sliders overall" but:

I.)Cond part of gene

A.)Top Part of one cond

==\/=== *.sysvar
==\/=== *.number
==\/=== number

B.)Buttom Part of one cond (seporate mutations from top part)

==\/=== *.sysvar
==\/=== *.number
==\/=== number

II.)Actions part of gene

A.)Math Ops.

==\/=== *.sysvar
==\/=== *.number
==\/=== number

B.)Before "Store" operator

==\/=== *.sysvar (sysvar used as memory pointer)
==\/=== *.number (memory pointer)
==\/=== .sysvar (basic instruction)

I have Truly lost it this time eh? I am counting 12 sliders over here....
« Last Edit: April 20, 2005, 10:06:06 AM by Botsareus »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
What I need done in mutations
« Reply #18 on: April 19, 2005, 11:20:31 PM »
Yes, you have lost your mind.

lol.

Four; I am willing to imagine 4 at most.  But I still think just two with an optional * operator is the way to go.
« Last Edit: April 19, 2005, 11:20:57 PM by Numsgil »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
What I need done in mutations
« Reply #19 on: April 20, 2005, 10:00:46 AM »
Did you know that as far as the DNA is concerned there are only 2 types of number?

if DNA(n).tipo = 0 then DNA(n).value is determined to be a normal number. This can further be separated into a sysvar memory address such as ".poisoned" or a pure number such as "838". In either case the value stored in DNA(n).value is the same, 838

if DNA(n).tipo = 1 then DNA(n).value is the value stored in the location pointed at by either a sysvar (*.poisoned) or a label (*838). In either case the value stored in DNA(n).value is again the same, *838

Everything else is just somantics. The interpreter decides whether 838 is defined as a sysvar then displays it with the sysvar label equivalent of 838 if it is on the list.

In other words *838 becomes "*.poisoned" but *839 remains as *839 because no sysvar exists at memory location 839

I repeat there are only two types of number possible. Pure numbers and labels

Adding the third slider makes no difference whatsoever to the value stored in the DNA. It just changes the way it is displayed to make it more readable Adding a little more inteligence to the translation routine  would mean that we only need two sliders. We sure as heck don't need four.
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
What I need done in mutations
« Reply #20 on: April 20, 2005, 10:11:49 AM »
Sry not 4 , and not 7 eather (I was sleepy), But 6 sliders , seporate for the store operator and for reguler math ops. I did a quick fix for this in the source I posted before, You guys did not like it, was wondering why...  :wacko:

And So The Dna can choose weather it wants to have 20 30 > 4 1 < stuff in there we have the top and the buttom part of a condition mutate seporatly , means 12 total sliders...
« Last Edit: April 20, 2005, 10:12:41 AM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
What I need done in mutations
« Reply #21 on: April 20, 2005, 10:16:05 AM »
PY the pure numbers is the thing that also messes up a lot of store operators we get stuff like:

10000
store

wont work

If for store we have a [you]seporate system then for the math [/you] it will work good.


(Here I go again about policeing the dna , what a ...)
« Last Edit: April 20, 2005, 10:28:07 AM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
What I need done in mutations
« Reply #22 on: April 20, 2005, 10:27:11 AM »
7.) almost forgot: Public Function DelRandomPos Does Not Work. It simply does nothing most of the time.
A quick fix for it will be:
Quote
Delete DNA, j, j +1


3.) If I atleast convinced you to add 4 more sliders its the day.....
« Last Edit: April 20, 2005, 10:30:29 AM by Botsareus »

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
What I need done in mutations
« Reply #23 on: April 20, 2005, 10:49:11 AM »
6.) I think a lot of add stuff mutations and some change mutations cause it. the buttom line: its more then in one place. If you alt-tab to the vb window you can "breack" the hang-up easy. Just hit the || button.
« Last Edit: April 20, 2005, 10:51:07 AM by Botsareus »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
What I need done in mutations
« Reply #24 on: April 20, 2005, 10:51:25 AM »
Okay bots:

A.  The only possible differentiation allowed is between conditions and the bodies of genes.  That means you simply can't figure out if your mutating something stupid.  Trying to correlate what's around a segment of DNA to what it should mutate is both impossibly difficult and self defeating.  Real DNA doesn't do this.  What's the point of an ALife sim if you program in cheap tricks for the mutations?

10000 store is, you're right, stupid.  Good news: it won't cost you anything.  It's just junk that might, one day, do something.  Deal with it, it's NOT changing.

And also, I'm actually working to eliminate that difference, not increase it.  Eventually conditions and bodies will have only minor differences, so I am full heartedly against giving them different mutation rules.  That includes existing mutations code and new code.  Eventually the only difference between conditions and the bodies of genes:

Conditions (<, >, ~=) will only work in the conditions block, and store commands (store, dec, inc) will only work in the body part of genes.  Then mutations will move around, delete, and add cond, start, etc. to the genome.

B.  You read PY's posts, right?  sysvars and numbers are the same thing.  THE SAME THING.  A sysvar is just a number that's in the range 1 - 1000.  and a number in the range 1-1000 is a sysvar, assuming one exists for that number.

They both follow the same rules.  In truth, you just need two sliders:
*number and
number

C.  We tried to review your changes but you never answered us what they did.  I only found the two changes I pointed out, and then you got angry and left for a few days.  If you can't explain to us what you're doing, we're not just going to add it into the program (and no, the code WAS NOT self explanatory.  In fact, 'what does this do' was my subtle way of saying "you sloppy programmer, what the Hell were you trying to do?  This is drivle."  Isn't it better all around when we can read between the lines?)

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
What I need done in mutations
« Reply #25 on: April 20, 2005, 10:56:14 AM »
:angry:  :( , If .sysvars are more common then *stuped** numbers like 1000 before "store" the dna mutates faster and better...

If we wont have 20 52 > 4 1 < etc. it will be filtered out in some way , (maybe 6 sliders) the dna will mutate faster and better...

Ok Num, lets have slowly mutating dna with a lot of errors in it, I give up


Quote
You read PY's posts, right? sysvars and numbers are the same thing. THE SAME THING. A sysvar is just a number that's in the range 1 - 1000. and a number in the range 1-1000 is a sysvar, assuming one exists for that number.

Well "daa" I added changes to that code myself , don't you think I figured out how it works first...

A.) sounds good Num, I have no idea how practical it is though...
« Last Edit: April 20, 2005, 11:00:03 AM by Botsareus »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
What I need done in mutations
« Reply #26 on: April 20, 2005, 11:10:21 AM »
Okay, DNAInsertRandomValue should have it's insertion of a number (-10000 to 10000, gaussian) and a sysvar (1 to 1000, linear) controllable with PY's sliders.  It currently does not (unless I have that wrong PY?)

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
What I need done in mutations
« Reply #27 on: April 20, 2005, 12:40:22 PM »
Quote
Okay, DNAInsertRandomValue should have it's insertion of a number (-10000 to 10000, gaussian) and a sysvar (1 to 1000, linear) controllable with PY's sliders.  It currently does not (unless I have that wrong PY?)
You are right. There is no connection between that routine and any of the sliders.

This routine only deals with the "action" part of the gene anyway. It inserts a random value which has a 50:50 chance of being a sysvar/label or a pure number between the "start" and "stop" sections of a gene

Maybe it should be connected to aq slider and maybe not. I have no real preference here but I do feel that, even though fixing it that way would give more control, it also makes the mutations a little more "artificial".  :unsure:

One thing I did see from this routine is that Bots was right in that it is possible to evolve a piece of DNA such as

*853 9851 store

This would actually only be junk DNA and could notcrash the program. There are safeguards elsewhere to prevent that.

There is nothing at all wrong with junk DNA so I don't see why we should need to prevent this situation from happening.

Try this test bot out to prove it.

Code: [Select]
cond
start
854 9851 store
stop
end

It just sits there executing its gene but doing nothing else. No crashes!
It is just useless, junk DNA.
Where is the problem?
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
What I need done in mutations
« Reply #28 on: April 20, 2005, 04:46:45 PM »
PY, If thats your point of view then why should we have any sliders at all?
(Just assume defaults for thouse sliders)


 :bigginangel: Bau  :bigginangel:
« Last Edit: April 20, 2005, 04:47:12 PM by Botsareus »

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
What I need done in mutations
« Reply #29 on: April 20, 2005, 04:58:51 PM »
Quote
PY, If thats your point of view then why should we have any sliders at all?

Funny I distinctly heard myself say that I was unsure whether it was right to have too much control. I even put a nice little  :unsure:  at the end of it.

As it happens I am coming around to thinking that the whole idea of the sliders was a bit of a waste of time.

Basically I just put them in to see how well the idea would work and as usual I go along with popular consent when I have little or no preference either way.
The fact is that I really don't care about mutations at all except for the challenge of programming them to work properly. I just don't like stuff being busted.
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D