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.


Messages - PhiNotPi

Pages: 1 2 [3] 4 5
31
Suggestions / Re: Bot color as output and debugging tool
« on: February 12, 2014, 06:43:50 PM »
Even though it has been two and a half years since I first suggested this, I still think that this is a change worth implementing.  It would allow for easier debugging (especially for multibots), and would allow easier visualization.

For example, we could create a checkbox setting called "allow robots to change color."  If enabled, then the robots would be able to change their color by writing to a specific sysvar.

32
Suggestions / Re: Poll: loading robots (new sim) with chlroplasts
« on: February 12, 2014, 03:02:09 PM »
I agree that it should be possible for robots to spawn with some chloroplasts already in place.  My main motivation would be my viral-evolution sims.  In these sims, I have a host species whose only function is to contain the virus.   I've used 2.45.03B (which has no chloroplasts), so I don't have to worry about keeping the hosts alive. 

In general, I think this feature will make certain things simpler.  It allows me to give my robots free food, no questions asked.  Also, it allows veggies with no chloroplast genes to be functional, giving some limited backwards-compatibility.  Also, make sure that chloroplasts are given anytime a robot is spawned from nothing (like during repopulation events).

I think this feature should be off by default, because its main applications are somewhat special-case.

33
Simulation Emporium / Re: Small Viral Evolution Simulation
« on: February 12, 2014, 02:30:20 PM »
I've decided to start a new simulation, as I decided to create an empty host species, so that repopulated robots would not re-introduce viral DNA and endanger previous progress.  I also considerably tweaked the costs for DNA length and the repopulation settings, which helped to prevent any "mass extinctions."

Here are several virus samples taken across time, which demonstrates how the virus has evolved:

Code: [Select]
cond
403 204 257 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5
start
*.thisgene .mkvirus store
1 .vshoot store
1 .shootval store
*.thisgene 1 sub .delgene store
403 204 257 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5
*.nrg 6000 > 50 .repro store
stop

 cond
 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5 start
 *.thisgene .mkvirus store
 .vshoot store
 1 .shootval store
 *358 1 sub .delgene store
 403 204 257 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5 *.nrg 6000 >
 50 .repro store
 stop

cond
 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5 start
 *.thisgene .mkvirus store
 .vshoot store
 1 *358 1 sub .delgene store
 403 204 257 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5 *.nrg 6000 >
 50 .repro store
 stop

 cond
 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5 67 start
 *.thisgene .mkvirus store
 .vshoot store
 1 *358 1 sub .delgene store
 403 204 257 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5 *.nrg 6000 >
 50 .repro store
 stop

cond
 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5 67 start
 *.thisgene .mkvirus store
 .vshoot store
 1 *358 1 sub .delgene store
 403 204 257 185 723 65 181 802 595 468 108 874 390 973 605 403 5 *.nrg 6000 >
 50 300

Here, you can see the considerable change in only 360 thousand cycles, as opposed to the 3 million of my previous simulation.

One interesting mutation was "5 start" to "5 67 start" in the later versions.  Basically, this mutation changed the value of .vshoot from 5 to 67, since it appears to remain on the stack.  Does this increase the power of the virus shot?

34
Bugs and fixes / Re: Temporary fix for IM.
« on: February 12, 2014, 11:59:23 AM »
Thanks!

35
Simulation Emporium / Small Viral Evolution Simulation
« on: February 12, 2014, 11:48:32 AM »
I decided to make a simulation in which I studied the evolution of viruses only. 

There are a few important things to note regarding the simulation
  • I ran this in version 2.45.03.  It works best without chloroplasts so we don't have to deal with making sure that the veggies are being fed.  I didn't want a focus on energy management, but rather the infectiousness of the virus.
  • For similar reasons, I set all costs to 0 except for the DNA length cost, which I changed so that veggies would die after having 1000 BP (speeds up the sim)
  • If the population fell too low, then it would be repopulated with the original virus.
  • I kept the population very small and in close quarters, to maximize infection rates and simulation speed.
  • It is currently at slightly over 3 million cycles.

I created a short "starter" virus, which contained a few functions I thought would be essential, as well as a few random numbers.

Code: [Select]
cond
403 204 257 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5
start
*.thisgene .mkvirus store
1 .vshoot store
*.thisgene 1 sub .delgene store
403 204 257 185 723 65 181 802 595 468 108 874 390 215 973 605 403 5
*.nrg 6000 > 50 .repro store
stop

This includes functionality to reproduce (since the robot would have no other DNA), to replicate the virus, and to delete all previous viruses (since only the last virus in the genome would be able to replicate anyways).

Almost immediately, the viruses lost the functionality to delete previous viruses in the genome.  Why did this happen?  My idea is that the more viruses are in the genome, the lesser the chance that new viruses would be randomly inserted as the last gene.  Since viruses are only active as the last gene, this  increases the "active lifespan" of the current infection.

Next, major deletions occurred.  This shortened the virus and made replication faster.

Code: [Select]
cond
403 204 257 185 723 65 181 802 595 542 dec
215 973 605 403 rnd start
*.thisgene .mkvirus store
1 .vshoot store
*.thisgene 1 sub 351 store
403 204 257 185 723 65 181 802 595 468 108 store

The above virus is the most current version.

I made several key observations:
  • There would be mass extinctions once the current generation of robot grew too large (genome-wise) and died out.  Then, the remaining robots had to infect the new robots with the current version of the virus.
  • The viruses didn't mutate very fast, at all.  Most mutations occurred in the inactive viruses buried in the genome, only mutation in the active infection would matter.  I couldn't decide on the mutation rate.  I think it was 1/32x most of the time, but I recently changed it to 32x.
  • Reproduction made no difference. Most of the time, the number of veggies maxed out.  Also, only one of the many infections needed to be able to reproduce in order for the robot to reproduce.
  • I probably should have made an empty host, rather than having the starter virus and the host robots being the same.  That way, we would not have to deal with the original virus being reintroduced, although that might increase competition.

Do you have any advice for future viral sims?  This first one was mostly an experiment to see if it were possible.  I think that the starter virus makes a huge difference as to what the final product will be, since DNA is deleted much easier than it is modified/added.  It is thus important to write an "easily evolvable" virus, which contains all potential functionality, and I don't know if I did a very good job this time.

36
RANT / Breaking news: Internet Mode horrible, non-functional
« on: February 10, 2014, 09:01:52 PM »
I have been using Darwinbots for several years, probably all the way back to 2010.  In all that time, I have never seen a single robot teleported into my sim from the internet.  Maybe I've gotten unlucky, only running sims when IM was down.  Maybe I've never managed to configure my settings properly.  I'm relatively certain, however, that IM is simply broken.

As far as I can tell, there is no evidence that Internet Mode even exists!  For all I know, it might all be a conspiracy or scam!

The internet teleporter always sucks up my good robots, but never gives me anything in return.  They are simply deleted, or otherwise cast into the empty void that is the internet.  It's like a black hole, more than once has my "king robot" fallen through the event horizon.

I really hope that we can find a fix for IM, hopefully sometime soon.

37
Bot Challenges / Re: DNA Obfuscation Contest
« on: February 10, 2014, 08:25:43 PM »
Do you think that 200 BP is enough, or should that be reduced to 100 BP?

38
Look at the "possible improvements" section of the wiki article for the Wagner-Fischer algorithm (which computes the Levenshtein edit distance).  Wiki article: http://en.wikipedia.org/wiki/Wagner%E2%80%93Fischer_algorithm

It says that we could potentially make substantial improvements to speed, depending on what we want.  For example, if we have an upper bound on the distance, then we can substantially reduce the amount of time.  Also, using lazy evaluation apparently gives a substantial speed improvement (details here, although I don't completely understand them: http://www.csse.monash.edu.au/~lloyd/tildeStrings/Alignment/92.IPL.html).

On a somewhat unrelated note, if the DNA comes from robots of the same species (they are both mutated forms of the same original DNA) then we can use the mutations history of the robots to compare how related they are.  For instance, if robot A has X mutations and robot B has Y mutations, but the first Z number of mutations are the same for both, the edit distance could be a maximum of (X+Y-2*Z).  We would have to make some small adjustments so that "run" mutations would count as multiple edits. 

If the robots are closely related, then we can use that upper bound to reduce the time needed to calculate edit distance.

Assuming I read the wiki correctly, here is an example.  Let's say that robot A has 600 bp and 34 mutations (with run mutations counting as multiple mutations).  Robot B has 590 bp and 36 mutations. The first 15 mutations are the same.  Normally, the matrix would contain 600*590=354000 entries.  Since we have the upper bound of (34+36-2*15)=40, we can then use the modified algorithm to only evaluate part of the matrix.  In the end, we find that only 600*(2*40+1)=48600 entries need to be computed with the modification.  It is an order-of-magnitude speedup.

39
Bot Challenges / Re: DNA Obfuscation Contest
« on: February 08, 2014, 08:28:58 AM »
I prefer that the bots be handwritten.  I think it is more challenging that way.

40
The Gene depository / Re: SUPER VIRUS
« on: February 07, 2014, 09:43:37 PM »
If I wrote this correctly, then I believe that the following code snippet combines all three of those genes into one:

Code: [Select]
cond
start
1 .vshoot store
*.thisgene .mkvirus store
4 *.robage 2 mod 137 mult .tie add store
stop
end

This takes advantage of the fact that .tie is 330 while .deltie is 467, a difference of 137.

41
Bot Challenges / DNA Obfuscation Contest
« on: February 07, 2014, 08:42:24 PM »
This contest is similar in style to the "Obfuscated-C" programming contests.   The main idea is to take a simple robot, say Animal_Minimalis or something not-too-complex, and re-write its DNA such that it is unreadable yet similarly functioning.

  • Your goal is to cause onlookers to ask "How does that even work?!"  Try to take advantage of "hidden" functionality.  Impress people with your knowledge.
  • The DNA should be hard to understand, yet not too long.  It is relatively easy to write a humongous unreadable math expression, but your submission should not rely on sheer size to create unreadability.
  • The underlying robot behavior ("phenotype") should be relatively simple.  Write super-complex DNA for a simple bot.
  • Basic ideas include substituting numbers with their associated Sysvar names, or messing around with the data stack, or making certain things "conditionless."

For your submission, simply include the "before and after" of the obfuscation. 

There's not going to be an official judging/awards process, but I'm simply interested in seeing what people can write.  It's somewhat open-ended. Have fun!

42
Evolution and Internet Sharing Sims / Using Animal_Minimalis as a veggie?
« on: February 07, 2014, 07:57:57 PM »
I'm sure someone has had this idea before, but I haven't seen it mentioned. 

I've been trying to evolve a better robot, which I shall call Ultra, and I want it to become a better fighter.  I feel that using a passive veggie would probably not provide the correct selective pressure, since the feeding robots would not have to deal with being shot at.  In addition, I must have Animal_Minimalis set a veggie in order to make sure that it is not wiped out.

The main problem is that the Animal_Minimalis is able to eventually wipe out Ultra over time.   This doesn't mean that my robot is weak, as it easily wins in a 15v150 fight between the two species.  The problem is that, in this setup, one side effectively gets an infinite backup energy supply.

The food chain looks like this:
"Sun" → Animal_Minimalis ↔ Ultra
It is easy to see why the flow of energy into Animal_Minimalis is greater than the flow into Ultra, so it eventually wins over time regardless of how strong Ultra is.

I've tried a few handicaps to try and weaken Animal into a suitable veggy, such as fixing in place and giving a very low starting energy.  Fixing in place reduces the possibility of "ganging up" (so each Ultra bot only had a single enemy at time), but it gave rise to a weird "invisibility" bug in which a few of the fixed bots would act invisible to the other bots.  Giving it a low starting energy did not change much, because it also reduced the food supply for the Ultra bots.

I tried to fix the problem by adding a second veggie (like Alga_Minimalis), but that did not work out too well either.   There began to be the problem of certain Animal bots gaining enough energy so that they could stay alive perpetually.  They could kill any single Ultra bot which tried to feed off of them, and prevented the spawning of Alga since there were enough veggies to meet the minimum.

Is there any settings which I might change in order to make this work?  I need to find a balance in which the Animal population can be continuously re-spawned, but without causing the extinction of the Ultra species or the Alga veggie.

Is there a way to set a maximum energy for Animal? Would I have to code that into the bot?

43
Interesting behaviour bots / Re: Chigger
« on: May 05, 2013, 12:38:12 PM »
Do you mind explaining what exactly is going on in gene 16 (the really large gene)?

44
Darwinbots3 / What have I missed? (and a lot of other questions)
« on: May 04, 2013, 07:41:58 PM »
First of all, my current version of DB dates to May 2nd, 2011.  Have there been any updates since then?

What progress has been made on DB3?

Is there even any ongoing development?

What list of features do the developers plan on implementing in DB3?

How many new features have been implemented so far?

When is the expected release date of DB3?

Has anything interesting gone on in the forums in the past several months that I was away?

45
Bot Challenges / Re: Blind bot
« on: June 03, 2012, 08:53:27 PM »
It's about time that somebody beat my entry on this thread! I created it with the goal of being very compact yet effective. It is simple, but it stood as the victor for over a year! I've been inactive for much of that period, but I might just attempt to reclaim my title.

By the way, the "echolocation" system is a very creative idea; I don't think that anyone has ever attempted that before.

Pages: 1 2 [3] 4 5