Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Greven

Pages: 1 2 [3] 4
31
Darwinbots Program Source Code / Eyes in DB!?
« on: June 22, 2005, 07:28:39 AM »
This is both a question and a suggestion.

I havent checked this and therefore my question is:
I know that if a bot do use any eye commands, the function is entirely skipped, but what if there is only one, say eye8? Do the program calculate every single eye? I dont know have the eye distance etc. is calculated, but if eye9 aint dependent on anyother eye, there is no meaning in calculating eye1, if only eye9 is represented in the genome. or what? Please reply! Because if the program does this, calculates eye1, when only eye9 is used, this could speed the program!

32
Following my recent "succes" with mutating bots, I began some extensive experiments, this is far from finished, and I like anybody to help out here, but check this out:

I wanted to make some experiments and find some answers:
  • What mutation rate is best?
  • Which sim size is best? (Not finished yet)
  • Is conspecies gene essentiel?
My start bot were in all sims PY simplebot, without the conspecies gene.

OBS! OBS!
I have not analyzed the evolved bots, and thus I dont know why they are better than its ancestor, if anyone would like to help me out with this one..????

[span style=\'font-size:14pt;line-height:100%\'][you]Mutation rates[/you][/span]
Okay I wanted to check if low mutation rates truely were so bad for evolution in Darwinbots. Becuase DB is not truely based on real life, mutations aint nesessary bad, and I want to confirm my hypothesis with evidence, thus making it theory.
A bad mutation may decrease the fitness in the individual in short time, but if a possibly new mutation combined with the old bad one my give an increase in fitness, and therefore a bad mutation is not always deadly in the long term.

I made 4 experiments:
2 with mutation 1500, one with timer number and one with a set seed value.
2 with mutation 5000, same as above

All with sim size 5, 5 nrg/cycle/veggie, waste threshold 50, Max Vegs 100, Friction 1.0, unblocked veggies and anything else as normal.

My evidence is the following: (you are welcome to retry these)
Mutations with 5000 are to slow, if you have a super massively parellel computer and you are able to simulate millions of bots a time, this might be the best setting, but we only have at max 3.4-4.0 GHz.

Evolve bot from orignal, in 1500 mutation mode.
Code: [Select]
cond  
*.eye3  *.eye8  >
start  
div  *413  *720  sub  rnd  *413  *720  rnd  *581  746  *332  store  
*840  inc -25  .aimdx  store  
sub  mult  add
stop

cond  
*.eye7  *.eye5  >
start  
*954  25  .aimdx  store
stop

cond  
*.ploc  0  >  
*.ploc  0  >  
*.in1  0  >  
*.veldx -1  <  
*.aim  0  >
start
-2069  *587  *136 -56  rnd  *136 -56  div  
rnd  2092  rnd  *136 -56  rnd  *.veldx  427  
516  2  div  921  201  *56  dec  mult  *.eye5  
sub  *976  mult  div  *.eye5  sub  sub  *.maxvel  *782  
div  *.in1  482  rnd  *.pwaste  200  add  rnd -39  1431  div  
rnd  dec  *344  *.shoot  add -40 -773 -646  dec -773 -647  dec  store  
1790  dec  div  510 -640 -580  201 -962  *157  8
stop

cond  
*.veldx  0  !%=  
*.veldx  0  !%=  
*.sharewaste  0  !=
start  
*.memloc  rnd  *.fixlen  *.veldx  2  rnd  *.trefage  mult  200  add  mult  dec  store  
mult  *264  dec  store  
div  sub  *25  dec -1142  *170  551  *100  sub  *.myshoot  rnd  sub  *.myshoot  rnd  
214  789  add  *863  .nrg  store  
789  add  .trefvelmydn  store -144  92  dec -439  936  *636  *.reftie  *565  mult  inc  
*170  dec  sub  *344  107  add  rnd  107  div  add  rnd  sub  dec -40  store
-40  store
-40  store
-775  1839  dec  *.setboy  7 -237
stop

cond
start  
5  1501  1321  mult  rnd  .up  store  
1531  inc -147
stop

cond  
*.eye5  41  >
start  
916  rnd  rnd -1  add  7  *374  878  rnd  
*854 -40  *514  *.refsx -690  *.fdbody  *417  store  
rnd  store  
dec  mult -1  .shoot  store  
add
stop

cond  
*.nrg  5000  =
start  
*260  1158  50  *.tieloc  inc  140 -1117  *975  .slime  store
stop

cond  
*.nrg  5100  >
start  
50  300  store
stop

end
(Evolved bot 1)

After the experiments were finished (around 1 million cycles), I took the most abundant bots it the sims and made a F1 fight, and the above won (it were from random seed 1500 mutation sim).

I then took this one and made a F1 fight against the original bot, and it won by 5-0.

[span style=\'font-size:14pt;line-height:100%\'][you]Conspecies[/you][/span]

This table shows want the F1 fight turned out:

                       Original bot   EBot 1     EBot 2
Original bot            NA            0-5          0-5
Evolved bot 1         5-0           NA           0-5
Evolved bot 2         5-0           5-0           NA

All bots did lose 5-0 to their conspecies-cousins.

But interesting enough did EBot 1 win 5-0 against OBot w/conspecies.
And EBot 2 did likewise.

I have yet to test EBot 1 and EBot 2 with and without the conspecies against each other.

Actually I think the evolved bots is behaving much better than the original!

Hope you have any comments....


The evolved bot 2, were evolved in a new sim with the same 1500 mutation conditions.

(Evolved bot 2)
Code: [Select]
cond
*.eye3  *.eye8  >
start  
*568  store  
div  *568  store  
div  *413  *720  sub  rnd  *720  sub  rnd  *.poison  *720  rnd  *581  746  *332  store  
dec  *840  store
-25  .aimdx  store
-25  5  rnd  store  store  
*416  mult  inc  add
stop

cond  
*.eye7  *.eye1  >
start  
*954  25  add  .aimdx  store
stop

cond  
*.ploc  0  >  
*.in1  0  >  
*.mydx -1  <
start
-2070  *.dnalen  *.refveldn -56  *240  rnd  rnd  *136  381 -1193 -56  sub  
rnd -56  div  rnd  2092 -132  *742  dec  store  
*136 -56  rnd  *.veldx  427  mult  dec  *162  801  516  2  div  914  201  
*56  *535  sub  dec  *917  mult  dec  *917  mult  rnd  *.eye5  sub  *940  mult  
*.eye5  sub  *976  dec  mult  div  *.eye5  sub  mult  rnd  *.aimsx  *17  *782  div  
*.in1  492  rnd -122  *.mass  200  add  rnd -40  1431  div  rnd  sub  rnd  *.tmemval  
*.shoot  add  mult  *.shoot  add  mult -40 -773  div  529  store
-646  dec -186 -773 -647 dec  dec  454  23  store
-647  dec  store  
div  dec  store  
div  dec  store  
div  327  1783  dec  div  dec  524 -640 -580  201 -962  *157  rnd  sub  8
stop

cond  
*.veldx  0  !%=  
*.sharewaste  0  !=
start  
*.memloc  rnd  *.memloc  *924  rnd  *.fixlen  *.veldx  .dn  store  
*.trefvelyourdx  mult  div  dec  inc  200  div  mult  *.mysx  dec  store  
mult  *264  dec  1725  store  
sub  1725  store  
sub  rnd  store
stop

cond
start  
5  1501  1321  mult  rnd  1321  mult  rnd  .up  store  
1531  inc -147
stop

cond  
*.eye5  41  >  
*.eye5  41  >
start  
916  add -347  rnd  rnd  mult -1  64  add  7  259  *374  878  rnd  *854  40  store  
*514  *.refsx  add -690  inc  *.fdbody -35  *417  div  store  
rnd  store  
dec  mult -1  .shoot  store
-1577  div  add
stop

cond  
*.nrg  5000  =
start  
*260  div  *368  1158  50  *.tieloc  add  140 -1115  *975  store  
821  mult  821  dec  mult  div  mult  store  
div  store  
*.mkshell  *353
stop

cond  
*.nrg  5100  >
start  
50  .repro  store
stop

end

33
Suggestions / Auto snapshot?
« on: June 13, 2005, 11:26:42 AM »
What about a autosnapshot save? Like the autosave and bestbot save? This could be really nice!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Not very hard to make!

34
Evolution and Internet Sharing Sims / Evolution tale!
« on: June 13, 2005, 10:44:08 AM »
I have stated elsewere that I had never seen interesting behavior develop!
THIS IS NOT TRUE ANYMORE!!!!!!!!!!!!!!!!!!!1

I started a sim with the simplebot (without conspec gene) and alga minimalis.

The simplebot did mutate around 200,000 cycles to moving in long worm like lines when very little food was around (see picture)
Why? I am not certain on this one.

The alga did then evolve this one:

Code: [Select]
15 5 rnd storeinstead of
Code: [Select]
15 .aimdx store
This made the alga moving randomly around. This would seem silly, but this actually made an increase in survival, because suddenly it was harder for the bots to catch the random moving vegs, very interesting I think.

The bots counted this, by dropping the worm moving thing, and instead began to move slowlier than before, with some changes in the movement gene and the search pattern genes.

Then I would change a little in the settings, and I did set the cost for acceleration way to high, and all my bots died in a instant!  :(

Now I would like to know if the autosave works or if it is just the normale save function (did not set it, but I would like to know anyway, to lazy to try it out)!

And the autosave of the bestbot! Why is it in a stupid .dbo file you cant read to analyze? What about an option to select which format you what it in?

35
Bugs and fixes / Houston we have a problem!
« on: June 13, 2005, 10:24:36 AM »
:wacko:

I thought the overflow errors were corrected?

I did set my work PC to simulate a beautiful sim friday morning.
When I came back at work, here this morning the sim had an overflow at approx. 23 h 36 m 13 s after start! I could cry when I saw it! :(   :shoot: overflow-errors!

In addition, I did set up a new sim, with 50000 in all the vegs mutation rates, but suddenly they all began to mutate wildly!!??

Seem like a few bugs here? The mutation numbers, and text with graphs etc. seem extremely shrewed up!

36
Bugs and fixes / No. of Mutations bug!
« on: June 09, 2005, 10:50:53 AM »
When a bot has mutated, the robot information window dont always show that a bot has mutated, ie. "Number of Mutations:", "Overall mutations" etc., showing
zero.

I am not 100 % sure, I will try check it again.

37
Off Topic / General question!
« on: June 09, 2005, 06:06:08 AM »
Just a simple question!

38
Suggestions / Subfunctions
« on: June 06, 2005, 11:03:34 AM »
What about some kind of jump/goto/gosub-command? I know this will difficult to implement, but we some carefull thoughts, this could be very very powerfull to and making the genome more non-linear!!!??

39
Suggestions / Greven's DNA structure!
« on: May 25, 2005, 11:37:24 AM »
Post not finished YET!!

This post will be a little technical.

I have criticised the DNA structure and DB in general, and I promised to make up something and here is my proposal. It is not fully finished! But what I want, is to discuss it in detail and hear ideas/critics from all DB'ers, because this is very big thing to begin changing.

My main quest for this were to creat a DNA language/structure that:
  • allowed junk DNA.
  • not destroying any existing bots.
  • making mutations work better and implentment them easier(not saying they dont work now, read on!!!)
  • preserving most of DB as it is now.
You must understand that I dont say this is better than the current system and it is [span style=\'font-size:14pt;line-height:100%\']not [/span] perfect, far from perfect, but I like to get opinions, and if you can argue that the current is better, so be it, it is just thought as a suggestion/discussing topic, not a: IF-IT-CANT-BE-IMPLEMENTED-AS-IS-DONT-USE-IT, I am open to constructive critcism.

I will use words like:
  • genome/genotype to identify an entire DNA sequence (Bot DNA)
  • DNA letter or just DNA as a single instruction (like the store command)
  • phenotype as the way the bots ending genome is like (I know this is not what phenotype actually mean, but it is the best word to use right now.)
  • DNAS is short for DNA Structure!

I will try to argue for my point of view, but still there maybe things I havent thought of.

The genome and mutations:

The genome for a bot now is stored in an array. In my DNAS the genome is made up by a single string!
After a bot birth the genome is read and implemented by the main DB program, it will end up in a array, the phenotype.

Example:
We now have a genome looking like this:
"ABDDhFEKFLjgFHFKDADDFDFEIREUROIEr"
(When I mean a single instruction(DNA letter) I mean 'A' or 'B' etc.)

Why:
With mutations it will be alot easier. Instead of having a delete gene, insert gene etc., we only need 3 (maybe 4) different mutation:
  • Insert
    Can insert a single instruction or an entire substring within the genome. This one can have two different functions: inserting instructions already in the genome (and letting the point mutation introduce new instructions) or insert all possible instructions.
  • Delete
    Can delete a single instuction or an entire substring within the genome.
  • Point
    This only works on a single DNA instruction, subtituting it with another DNA instruction.
  • (Revert)
    Works on a substring within the genome, and revert it: example:
    we have "ABCDEFGH", the substring "BCD" will mutate and we get "DCB", the entire genome then look like this: "ADCBEFGH"
Why:
This opens up for junk DNA or DNA we have never seen before in DB, like a ADD in the condition part of the gene, instructions outside genes!
Conditions within conditions! With also get ride of the peculiar genome with spaces in it, I mean empty spaces, I have seen such in DB. (I do not know if it is fixed, never bother to report it, maybe it was an earlier version cant remember).
And we also get a completly new recombinations. You must have in mind, that the gene it self is not a unit anymore (as it is in some arbitary way in the current system), it emerges from the combinations of the DNA instructions.

The phenotype:
The phenotype is the actual behavior or the part of the genome that is executed in the bot.
When a bot is born, the program read through the entire genome and it will decide, through rules we have decide, if there should be a condition within a condition or if it can have a '='-sign within the executed part of the gene or DNA outside the genes should be executed etc. etc. This is all yet to be decided.

If we dont what something (condition within condition) the program just ignores this and only the parts we want gets into the phenotype (the array). The genome is not touched at all, and it is the genome that is passed on to the offspring, but the phenotype that is executed.
It all ends up in a array as it is now.

Why:
This is interconnected with the genome. But it allows us the make certain rules about the execution of the bot. Ex. We dont want a store in the condition part etc., the it is not expressed in the phenotype of the bot, but in is still there, able to act as junk DNA.
It also makes the possiblity that the genome and the phenotype is different from each other, which it is in real life, and just a single insert or delete mutation may be the rise to new and interesting species of bots, because of all the junk DNA it is now possible to have.

The DNA it self
(All in this section, is mainly arbitary picked anything can be used!)

Because DB arciteture is mainly based on direct numbers in the DNA (as opposed to other AL simulations like Avida, but it is difficult to compared DB with Avida),
I could not write an entire DNA system without numbers and still live up to the goals I did set for this system. Therefore the downfalls of this systems lies in the DNA it self.

A sysvar is actualy only a way to make it more readable and a pointer to a specific number, therefore every bot could be written without sysvars.

Say we now have the letter A-Z (26) and the letters a-z (26) as symbols, for different DNA instruction.

The letters A-J is the numbers 0-9. The letter Zis the flow command cond, Y is start, X is < and n is a seperator for numbers, then we could have something like:

Code: [Select]
cond
10 50 >
start
this will end up into something like: BAnFAXY

I hope you get the idea.

But say we have the following genome (in DB language):
Code: [Select]
cond
10 add 50 >
start

then phenotype will be (again in DB language)::
Code: [Select]
cond
10 50 >
start
(If we what no add instruction in the condition part)

The again we could have a-j is the numbers *0-*9, and we could decide that the first number is what the number actual is, so aBC is *012 = *12 etc.

The downfalls:
The main downfall I can see in this system is the DNA. The numbers can change dramaticly without logic, a '0001' could mutate to become 9001, but then again maybe this could help evolution further, I dont know, and it is the natural selection / the evolutions job to find the fittest! And remember that not all mutations are good for the survival of the organism.

This system is not perfect, and if implemented it could endup showing that this system really sucks.

I have relied heavily on a few books I have read about the topic and my own experince with developing AL simulations.

Overall you can still write the old code, and use old bots, because we will creat a small routine to convert the code to the DNA instructions so the program understands it.

Please comment.

40
Old Suggestions Awaiting Programming / Aging bots?
« on: May 20, 2005, 10:54:38 AM »
What about giving the bots a age limit?
 
I know that I have argued against arbitary limitations etc., but still this could be a very good way to sort out in the bots now and then.

If we say a bot at max. can live 5000 cycles or a userdefined limit, or a bot max can execute 5000 genes or execute 5000 instructions?

My point here is:

We get ride of all those annoying spinning low-energy-use bots that dont give sh*t to evolution!

With a limit on age, we get a flow of new bots all the time and old tired bots could go to rest in the eternal botheaven :D , meaning new genomes, with new DNA-matrial and with possibly better fitness.

I cant write it better, so I hope you understand.

41
Off Topic / Do you run evo-simulation?
« on: May 19, 2005, 10:47:32 AM »
Have you ever run a evo sim?

If you have, what have developed and evolved of interesting bots / behavior?
But then again what is interesting bots / behavior? Be critical and no lying :rolleyes:

Read this post first! (it is a post by me from the evo sim topic in hints, tips and tricks ....)

42
Off Topic / Artificial Life software!
« on: May 12, 2005, 09:57:31 AM »
What critieria is there for Artificial Life software?

What does qualify certain software as being AL?

43
Off Topic / Artificial Life software?
« on: May 12, 2005, 09:54:59 AM »
Okay just a simple question:

What Artificial Life sofware do you know and have played around with?

I have tried:

Avida, Tierra, E-den, DarwinBots :D , DarwinsPond, Ant simulation (it doesnt qualify as a AL sim, does it?  :unsure: ) & Conways Game of Life.

I cant remember all them!

But that also rises the question what qualifies certain software as being Artificial Life?, I will post a new topic about this one!

44
Off Topic / Are u a creationist?
« on: May 09, 2005, 08:22:12 AM »
Just to check if we got any spies :D

45
Off Topic / Dead?
« on: May 04, 2005, 11:38:01 AM »
The forum seems rather dead the last week or so?

Are everyone dead?

~Greven

Pages: 1 2 [3] 4