tag:blogger.com,1999:blog-21390211.post8999374277352711382..comments2024-02-19T09:35:55.734+01:00Comments on Bed Against The Wall: Modern Genetic (And Other) Algorithms Explained: Part 3 - CHC EshelmanMacuyikohttp://www.blogger.com/profile/08019972977097834611noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-21390211.post-7811570878767634852009-04-20T23:01:00.000+02:002009-04-20T23:01:00.000+02:00Both Threshold := MutProb * (1.0-MutProb) * L
and ...Both Threshold := MutProb * (1.0-MutProb) * L<br />and Threshold := L/4 are used, depending on the paper/implementation, I've edited the pseudocode though with this more correct treshold.<br /><br />Hamming / 2, you're right, apologies for the error - thanks for catching that!Macuyikohttps://www.blogger.com/profile/08019972977097834611noreply@blogger.comtag:blogger.com,1999:blog-21390211.post-61692039350501377322009-04-14T22:41:00.000+02:002009-04-14T22:41:00.000+02:00Hello,
It's me again .. two more corrections ...Hello,<br /><br />It's me again .. two more corrections based on the original Eshelman<br />paper (I've been reading a lot about this algorithm lately):<br /><br /><br /> If different bits between P1 an P2 > threshold do<br /><br />should be<br /><br /> If (different bits between P1 an P2)/2 > threshold do<br /><br />ie if the (hamming distance/2) ...<br /><br /><br />and at the bottom of the loop after the cataclysmic mutation<br /><br /><br /> Threshold := L/4<br /><br />should be set to<br /><br /> Threshold := MutProb * (1.0-MutProb) * L<br /><br /><br />MutProb = mutation probability, usually set to 35% for CHC<br />Again, all on the original pseudo code given by Eshelman.<br /><br />Hope that helps.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-21390211.post-91110506741002779862009-02-24T01:26:00.000+01:002009-02-24T01:26:00.000+01:00Thanks. The reformulation is taken (and rewritten ...Thanks. The reformulation is taken (and rewritten a bit) from the reddit-discussion (mentioned in the first post in this series). It's a really good high-level description. Remarks (1) to (5) are mentioned in various other sources, although the original (1991) values for CHC still seem to work best.Macuyikohttps://www.blogger.com/profile/08019972977097834611noreply@blogger.comtag:blogger.com,1999:blog-21390211.post-90381238075113048932009-02-23T16:51:00.000+01:002009-02-23T16:51:00.000+01:00Great - by the way, did you reformulate the origin...Great - by the way, did you reformulate the original algorithm to what you have above? <BR/><BR/>I find your version much clearer than the <BR/>original from Eshelman's 1991 publication (which <BR/>I tracked down).<BR/><BR/>Again, great explanation for the CHC.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-21390211.post-36289042464823957222009-02-21T16:03:00.000+01:002009-02-21T16:03:00.000+01:00Thanks for catching that - fixed now.Thanks for catching that - fixed now.Macuyikohttps://www.blogger.com/profile/08019972977097834611noreply@blogger.comtag:blogger.com,1999:blog-21390211.post-76715068812146666952009-02-20T22:55:00.000+01:002009-02-20T22:55:00.000+01:00very nice .. in your pseudo code for the CHC algor...very nice .. in your pseudo code for the CHC algorithm<BR/>the<BR/><BR/>"Add C1 and C2 to CPop" <BR/><BR/>needs to be indented a bit to be in line with<BR/>the If-statement. Your code implements this<BR/>nicely.Anonymousnoreply@blogger.com