IanC
August 1, 2005, 12:23 PM
Hey y'all.
This is kinda in response to something Worldtraveller said:
You could probably do a more accurate model of evolution by starting with 5 decks of cards, and determining a 'fitness' criteria.
For example, with 5 decks, you get 52 hands. Let's assume your fitness criteria is the following:
1) The first card dealt must be at least a 7 (this represents being born with say, a functional cirulatory system).
2) The overall hand must be equal to pair or better. (general fitness criteria)
3) No more than 30 hands can survive.(limited resources)
The 'surviving' hands then get reshuffled and dealt again.
Maybe someone could run a quick computer simulation of this (would this be easy?) and see what happens after a few dozen generations?
I'll have to adapt the system I've just made, but anyway.
Heres the setup, I have begun making a framework for evolutionary simulations, nothing fancy, but I've only been working on it for about an hour.
Heres what it can do so far:
Generate individuals
Generate a population of these
Generate a world with multiple populations
Rate each individual based on fitness, then choose the better ones and recombine them. This is done randomly, so being a fit individual increases your chances of survival, but doesnt make it certain you will pass on your genes.
Mutate some individuals. When recombining the 'DNA' there is a certain chance that it goes wrong and flips the binary digit.
Create a new generation from the last one.
I've also added population drift, to keep diversity.
Im thinking of adding more, namely:
Genetic drift. At the moment, all of the phenotypes (right term?) are the same length, and I want to have a certain chance that they can add or remove part of themselves (random process). Would I be right in saying that this is what genetic drift is?
Example: little guy A is like this [1,0,0,1,0,0,1] (length 7) and he mutates, becoming [1,0,0,1,0,1,0,1] (length 8)
Other than that, Im thinking of adding an ability to create a new population, and new world. Analgous to moving to a different area and becoming a new species respectively.
Thats it really, was wondering if anyone could correct me on what I've covered so far, or give me some guidance on what else I could add, based on known evolutionary principles.
If anyone wants the source code, tis all yours, Ill post it soon. Its written in python, so you need python to run it.
Oh yeah, Worldtraveller - I have run this as it is with a very simple fitness function, where it just adds the numbers together ([1,0,0,1]=2) and it very quickly ends up with a population of very good individuals. Not perfect, but close, and with diversity.
Ian
This is kinda in response to something Worldtraveller said:
You could probably do a more accurate model of evolution by starting with 5 decks of cards, and determining a 'fitness' criteria.
For example, with 5 decks, you get 52 hands. Let's assume your fitness criteria is the following:
1) The first card dealt must be at least a 7 (this represents being born with say, a functional cirulatory system).
2) The overall hand must be equal to pair or better. (general fitness criteria)
3) No more than 30 hands can survive.(limited resources)
The 'surviving' hands then get reshuffled and dealt again.
Maybe someone could run a quick computer simulation of this (would this be easy?) and see what happens after a few dozen generations?
I'll have to adapt the system I've just made, but anyway.
Heres the setup, I have begun making a framework for evolutionary simulations, nothing fancy, but I've only been working on it for about an hour.
Heres what it can do so far:
Generate individuals
Generate a population of these
Generate a world with multiple populations
Rate each individual based on fitness, then choose the better ones and recombine them. This is done randomly, so being a fit individual increases your chances of survival, but doesnt make it certain you will pass on your genes.
Mutate some individuals. When recombining the 'DNA' there is a certain chance that it goes wrong and flips the binary digit.
Create a new generation from the last one.
I've also added population drift, to keep diversity.
Im thinking of adding more, namely:
Genetic drift. At the moment, all of the phenotypes (right term?) are the same length, and I want to have a certain chance that they can add or remove part of themselves (random process). Would I be right in saying that this is what genetic drift is?
Example: little guy A is like this [1,0,0,1,0,0,1] (length 7) and he mutates, becoming [1,0,0,1,0,1,0,1] (length 8)
Other than that, Im thinking of adding an ability to create a new population, and new world. Analgous to moving to a different area and becoming a new species respectively.
Thats it really, was wondering if anyone could correct me on what I've covered so far, or give me some guidance on what else I could add, based on known evolutionary principles.
If anyone wants the source code, tis all yours, Ill post it soon. Its written in python, so you need python to run it.
Oh yeah, Worldtraveller - I have run this as it is with a very simple fitness function, where it just adds the numbers together ([1,0,0,1]=2) and it very quickly ends up with a population of very good individuals. Not perfect, but close, and with diversity.
Ian