算法与计算机科学rednuht.org
HTML5 遗传算法小车
HTML5 Genetic Cars
2013 — 2024,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
一个用遗传算法自动进化出小汽车形状的互动网页演示:车轮位置、车身多边形等参数作为基因,适应度按行驶距离评估,经过多代繁衍后车辆会“进化”出各种奇形怪状但能跑完全程的形态。页面可实时观看种群演化过程,是遗传算法最直观有趣的入门演示之一。
为什么经久不衰:它把抽象的遗传算法变成看得见、会上瘾的实时演示,十年来三次登上 HN 首页,至今仍是讲解进化计算时最常被引用的可视化案例。
HN 评论精选
提出在遗传算法中引入物种分化机制,避免异质优秀方案交叉产生劣质后代
也许有更懂行的人能解答:遗传算法里有没有人应用过“物种分化”的概念?在我的运行中出现了两种表现都很好的车型——“犀牛船”和“屁股拖地车”,但这两类方案交叉繁殖出的后代往往很糟糕。如果算法只让同类之间交配,我相信最终会得到超级犀牛船和超级屁股拖地车,而不是现在这种不伦不类的折中方案。也许可以把“与自身的相似度”作为基因型的一个参数,让物种分化的倾向本身也通过进化产生。
IvyMike查看英文原文
Maybe someone more versed in the state-of-the-art can help me: has the concept of "speciation" ever been applied to genetic algorithms? In my instance, there are two predominant "types" of cars that are doing approximately equally well--the "rhinoboat" and the "assdragger". But when these two solutions are combined in the crossover, I think they make an offspring that is terrible. If the algorithm would mate only the rhinoboats with rhinoboats and assdraggers with assdraggers, I'm convinced we'd end up with some superrhinoboats and superassdraggers, but instead I just get an unhappy compromise. Maybe make "similarity to self" one of the genotype parameters. A high rating here would mean the phenotype would have a bias against being combined with dissimilar creatures. This allows the propensity towards speciation to develop evolutionarily, too.
指出算法容易过拟合当前障碍,缺乏泛化能力
观察:车辆往往会针对某个当前障碍进行优化——在攻克它的过程中种群收敛到单一解,但这个解随后就不够通用,无法应对后面的障碍。
ronaldx查看英文原文
Observation: The cars tend to optimize to get over a challenging hurdle (while it's being worked on, the cars converge to a single solution: which works well), but then are no longer general enough to get over later hurdles.
感叹这个演示出人意料地让人投入情感、欲罢不能
我刚刚花了半小时为自己支持的虚拟汽车加油,而它们在我关掉标签页的瞬间就不复存在了。
bsimpson查看英文原文
I just spent half an hour of my life rooting for imaginary cars that ceased to exist as soon as I closed the tab.
以反讽口吻调侃:进化出的复杂设计看似出自智能设计
这套系统太复杂了,不可能没有智能设计者。
hvs查看英文原文
That system is too complex not to have an intelligent designer.
历次讨论
同类还值得读
位运算技巧集
Bit Twiddling Hacks
斯坦福页面上的经典位运算技巧合集,收录了 popcount、前导/尾随零、位反转、交换、舍入等大量技巧,并附有解释和性能讨论。
算法与计算机科学上首页 8 次 · 2011–2024graphics.stanford.edu编辑精选如何不按平均评分排序
How Not To Sort By Average Rating
经典文章解释了为什么按平均评分排序不可靠:只有少量评价的条目(比如仅一条五星)会轻易排到最前,而评价数量的差异被忽略。
算法与计算机科学上首页 7 次 · 2009–2024evanmiller.org编辑精选数据结构可视化
Data Structure Visualizations
旧金山大学 David Galles 教授制作的数据结构与算法交互式可视化网站,涵盖 B 树、红黑树、排序、图算法等,可逐步操作观察其运行过程。
算法与计算机科学上首页 6 次 · 2011–2021cs.usfca.edu编辑精选1996 年以来的计算机科学最佳论文奖
Best Paper Awards in Computer Science since 1996
Jeff Huang 维护的一个汇总页面,收录了自 1996 年以来计算机科学各主要会议的“最佳论文奖”获奖名单,并按年份和会议整理,方便读者一站式浏览历届获奖论文。
算法与计算机科学上首页 6 次 · 2010–2018jeffhuang.com编辑精选算法(Jeff Erickson)
Algorithms, by Jeff Erickson
伊利诺伊大学 Jeff Erickson 教授的算法课教材,免费在线开放。
算法与计算机科学上首页 5 次 · 2018–2022jeffe.cs.illinois.edu编辑精选