Re: On the Genetic Algorithm
- Posted by Michael Nelson <mikestar13 at sbcglobal.net> Sep 14, 2005
- 492 views
--0-1942697918-1126739617=:63477 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit DB James <guest at RapidEuphoria.com> wrote: <snip> I thought some of you might be interested in my recent investigations on the genetic algorithm. </snip> I find this fascinating. Some ideas for improvements spring to mind immediately: 1. Number of steps should be quantified as part of fitness--in the "real world", a 95% correct answer in 5 steps is extremely often more successful than a 100% correct answer in 100 steps. 2. Even the fittest individual will eventually die and even the least fit individual may live for a while. 3. Not every very fit individual reproduces, some very unfit individuals do. 4. Probability of survival and reproduction are however reasonably proportionate to fitness. A rough suggestion for using these ideas: 1. Calcalate fitness as (100% minus the fitness you are currently calculating) divided by the number of steps. 2. Normalize these results so that the fittest individual has a fitness of 99% and the least fit individual has a fitness of 1%, with other individuals with proportionate values in between. (A simple linear proportion could be used, but a standard deviation based measure is probably better though harder to code.) Pehaps 99% to 1% isn't quite right, perhaps 95% to 5% or somewhere in between would produce better "evolution". 3. Now for each indivdual, calculate whether that individual dies or reproduces based on fitness. For example, an individual has 90% fitness. It has a 90% of survival and a 90% chance of reproduction. So we generate a random number 1 to 100 for survival and if the result is 1 to 90 it lives, if 91-100, it dies. If it lives, then generate another random number 1 to 100 for reproduction.... I would be quite interested in collaborating on this project. --0-1942697918-1126739617=:63477 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: 8bit <DIV> <DIV> <DIV><BR><BR><B><I>DB James <guest at RapidEuphoria.com></I></B> wrote: </DIV> <DIV> </DIV> <DIV><snip><BR>I thought some of you might be interested in my recent investigations on the genetic algorithm. </snip><BR></DIV> <DIV> </DIV> <DIV>I find this fascinating. Some ideas for improvements spring to mind immediately:</DIV> <DIV> </DIV> <DIV>1. Number of steps should be quantified as part of fitness--in the "real world", a 95% correct answer in 5 steps is extremely often more successful than a 100% correct answer in 100 steps. </DIV> <DIV> </DIV> <DIV>2. Even the fittest individual will eventually die and even the least fit individual may live for a while. </DIV> <DIV> </DIV> <DIV>3. Not every very fit individual reproduces, some very unfit individuals do.</DIV> <DIV> </DIV> <DIV>4. Probability of survival and reproduction are however reasonably proportionate to fitness.</DIV> <DIV> </DIV> <DIV> </DIV> <DIV>A rough suggestion for using these ideas:</DIV> <DIV> </DIV> <DIV>1. Calcalate fitness as (100% minus the fitness you are currently calculating) divided by the number of steps.</DIV> <DIV> </DIV> <DIV>2. Normalize these results so that the fittest individual has a fitness of 99% and the least fit individual has a fitness of 1%, with other individuals with proportionate values in between. (A simple linear proportion could be used, but a standard deviation based measure is probably better though harder to code.) Pehaps 99% to 1% isn't quite right, perhaps 95% to 5% or somewhere in between would produce better "evolution".</DIV> <DIV> </DIV> <DIV>3. Now for each indivdual, calculate whether that individual dies or reproduces based on fitness. For example, an individual has 90% fitness. It has a 90% of survival and a 90% chance of reproduction. So we generate a random number 1 to 100 for survival and if the result is 1 to 90 it lives, if 91-100, it dies. If it lives, then generate another random number 1 to 100 for reproduction....</DIV> <DIV> </DIV> <DIV>I would be quite interested in collaborating on this project.</DIV></DIV></DIV> --0-1942697918-1126739617=:63477--