TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

An introduction to genetic algorithms

68 点作者 leejw00t354超过 13 年前

9 条评论

feralchimp超过 13 年前
If you're looking for more doc / research on GAs, be sure to include 'evolutionary computation' in your searches.<p>The tough parts to using EC/GA on your problem (which this article doesn't discuss at all, unfortunately) are going to be:<p>a) figuring out a string representation for your candidate solutions (i.e. because strings are easy to 'mate', 'mutate', etc.)<p>b) writing a fitness function to evaluate one or more candidates<p>[a] and [b] are intimately related, of course.<p>One of the nice things about EC/GA is that it's typically very easy to scale up to take advantage of more hardware. If you have an expensive fitness function, e.g. 'fighting' two chess-board evaluators against one another over an extended series of games, you can just farm those simulations out to as many procs/machines as you have available.
评论 #3587318 未加载
unignorant超过 13 年前
For those who like Lisp, here's a similar article with Clojure as the target language:<p><a href="http://ethanfast.com/2009/09/ga-framework/" rel="nofollow">http://ethanfast.com/2009/09/ga-framework/</a>
AUmrysh超过 13 年前
I like the simplicity of your solution.<p>Here's a presentation I gave on GE and tic-tac-toe as part of senior sem in college, might be helpful for someone just getting into GA (as I was at the time). <a href="https://docs.google.com/present/view?id=df49rshq_117sjxbr2ks" rel="nofollow">https://docs.google.com/present/view?id=df49rshq_117sjxbr2ks</a><p>edit: and here's the tutorial I used at the time, which I think would complement your tutorial <a href="http://www.puremango.co.uk/2010/12/genetic-algorithm-for-hello-world/" rel="nofollow">http://www.puremango.co.uk/2010/12/genetic-algorithm-for-hel...</a>
评论 #3586683 未加载
jakubw超过 13 年前
This doesn't look like a good framework for GAs. It assumes that the best solution to a given problem is explicitly provided but if it is, then there's no point in running a GA any more. A good framework would only represent the genetic data in the form of a binary string but evaluate the fitness using an external function that actually extracts meaningful information from the string. <i>Shameless plug:</i> here's an example I wrote in Coffee: <a href="https://github.com/fawek/distributed-monalisa-evolution/tree/master/vries" rel="nofollow">https://github.com/fawek/distributed-monalisa-evolution/tree...</a>. It also makes it somewhat easy to distribute the evolution to multiple populations which can reside in different processes or machines.<p>Another problem with GAs that model individuals as arbitrary binary strings is that they unnecessarily create a lot of invalid strings that don't correspond to the solution space of a given problem. Sometimes it's easy to convert the solution space to the entire sequence range of 0 and 1s but sometimes it's not.
评论 #3586653 未加载
icefox超过 13 年前
For those that like GA's I recommend checking out Cellular evolutionary algorithm ( <a href="http://en.wikipedia.org/wiki/Cellular_evolutionary_algorithm" rel="nofollow">http://en.wikipedia.org/wiki/Cellular_evolutionary_algorithm</a> ) It is a GA with the addition that you can only mate with those around you. This tweak significantly improves my GA's.
Inufu超过 13 年前
A simple implementation in Scala I just did for fun:<p><a href="https://github.com/Mononofu/Simple-GeneticAlgorithm" rel="nofollow">https://github.com/Mononofu/Simple-GeneticAlgorithm</a><p>Just like the Java one, but less code. Usually converges in 10 - 20 iterations.
haraball超过 13 年前
This nature-inspired and free book also contains some chapters on genetic algorithms: <a href="http://www.cleveralgorithms.com/" rel="nofollow">http://www.cleveralgorithms.com/</a>
评论 #3588760 未加载
donniezazen超过 13 年前
Evolution is not the life's way to solve problem. It is a cold arithmetic where survival is only way.
finnw超过 13 年前
I really wish people would stop calling Java "JAVA".