Courses/CS 461/Winter 2006/Firouz Bharthania/week9
From CSWiki
[edit] Evolutionary Prisoner's Dilema
The Crossover-Percentage slider controls the percentage of the population that participate in crossover.
You can define the percentage of the crossovered population that should have mutation by mutation slider. Also you can turn of and on the mutation for each of "CC","CD","DC" or "DD". The crossover procedure uses an exponential distribution to choose the parents and children. You can set
the mean of each distribution using the parent-mean and child-mean sliders.
When running the model no matter what configuration I chose, in most of the cases the system preferred defecting than cooperating. Sometimes the number of defects and cooperations get close to each other and some times the cooperation exceeds but generally defecting is the preferred action. I knew that the total score of the system would be much bigger if the whole system cooperates so I wondered why the system is choosing defecting !!!
First I thought maybe because of random adoption of the the different strategy parts from the parents in crossover causes the model not to choose the optimized solution, hence I added a switch by which you can force the system to take each of the "CC", "CD", "DC" and "DD" actions from the parent who
did the better in each of those cases, but it seemed that the system was behaving the same way again.
Then giving it a second thought I realized that the system is behaving correct. The best acting ones in each iteration are those who defect and hence get the best scores, so system will choose them and creates new children. That is why the system prefers defecting to cooperation. I think the case we have here shows that Genetic Algorithms does not necessarily act rational. To see if that if I was correct I added another slider and button (PulsePower and pulse). By pressing the pulse button you instantly set the cooperation probability of the four cases for each of the patches to a number between the PulsePower and 100. This way I could test the system behavior by giving it pulses. For example even if the mutation is set to 0, giving a pulse less than 96 will cause the system to prefer the defecting again.

