算法与计算机科学hforsten.com
进化算法与模拟电子电路
Evolutionary algorithms and analog electronic circuits
2012 — 2015,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这篇博客文章探讨了用进化算法(遗传算法)自动设计模拟电子电路的实践。作者通过电路仿真让算法迭代进化出满足特定性能指标的模拟电路,并展示了实验结果。
为什么经久不衰:它把进化计算与电路设计结合,展示了自动设计硬件的可行性与陷阱,多年后仍是这一领域的经典入门案例。
HN 评论精选
进化算法擅长钻空子,必须仔细定义约束,否则会得到投机取巧的解
玩进化系统时有一点很突出:进化极其擅长钻系统的空子。除非你非常仔细地定义所有你关心的约束条件,否则最终得到的方案可能很聪明,却不是你想要的。这里的问题是功耗。如果你进化一把结实的椅子,最后可能得到一把只有1毫米高的椅子,或者一辆利用大陆漂移来省油的汽车。电路仿真中除了功耗还有很多坑,比如进化可能利用'两个同规格元件行为完全相同'这一点获利,而现实中不会如此。
Lerc查看英文原文
One thing stands out when you try playing with evolutionary systems. Evolution is _really_ good at gaming the system. Unless you are very careful at specifying all of the constraints that you care about you can end up with a solution that is very clever but not quite what you had in mind. Here power consumption is the issue. If you tried to evolve a sturdy chair you might end up with something that is 1mm tall. or maybe a fuel efficient car that exploits continental drift. For circuit simulation there are a bunch of potential pitfalls beyond power consumption. I think you would probably need to do multiple runs with components of varying values within their specified precision. I can see evolution getting some sort of benefit by exploiting the fact that two identically specced components behave _exactly_ the same way. Something that would not happen in real life.
引用经典案例:进化出的FPGA电路依赖诡异结构,且无法移植到其他芯片
这让我想起这篇文章:芯片只用了100个逻辑门中的37个,其中大部分以奇怪的反馈回路排列。五个逻辑单元在功能上与其余部分断开,没有任何通路影响输出,但研究者禁用其中任何一个,芯片就失去了区分音调的能力。而且最终程序加载到其他同型号FPGA上时无法可靠工作。
Houshalter查看英文原文
Reminds me of this: http://www.damninteresting.com/on-the-origin-of-circuits/ >The plucky chip was utilizing only thirty-seven of its one hundred logic gates, and most of them were arranged in a curious collection of feedback loops. Five individual logic cells were functionally disconnected from the rest-- with no pathways that would allow them to influence the output-- yet when the researcher disabled any one of them the chip lost its ability to discriminate the tones. Furthermore, the final program did not work reliably when it was loaded onto other FPGAs of the same type.
分享用遗传算法优化生产工具路径的实战经验,并开源了TSP求解器
太酷了。我一直梦想做类似的东西。电路设计似乎就应该是定义输入、输出和一组约束(可用元件、板子尺寸、功耗、散热),然后用价格和性能的加权公式作为适应度函数来优化。我曾用进化算法为公司省下真金白银:我们有一台非常昂贵的打孔机,是制造瓶颈,我用遗传算法优化它的路径,显著提高了吞吐量。我还把一个解旅行商问题的简单遗传算法开源到了GitHub,带GUI,看着它进化出解非常迷人,即使1000多个点也效果很好。
yessql查看英文原文
That is really cool. I have been dreaming about creating something like that for a long time. Seems like circuit design should be about defining inputs, outputs, and some set of constraints, like available components, and board size, power, and heat requirements, and then optimize for a fitness function which is a weighted formula of price and performance. I have used an evolutionary algorithm to do real work, saving real money for a company. Basically we had an extremely expensive tool that made vias one at a time. Since this tool was so expensive, it was always a bottleneck in the manufacturing process. I created a genetic algorithm that optimized the path of the tool, which significantly increased its throughput. I've stripped out all the proprietary stuff, and left behind a simple genetic algorithm to solve the Traveling Salesman Problem in Java and put it on github. Its got a GUI and its sort of mesmerizing to watch it evolve a solution. Works well, even with over 1000 different locations, which is unbelievable, considering that means a solution space of over 1000 factorial! https://github.com/YesSql/TspGA/wiki
指出该领域已有成熟脉络:可进化硬件,代表人物为Koza和Thompson
这个领域已有大量先前工作。电路曾在仿真中进化(John Koza发表了大量论文),也曾直接在FPGA上进化(开创性论文出自Adrian Thompson)。这个领域叫'可进化硬件'。GECCO会议正在进行,应该会有这方面的新论文。
SeanLuke查看英文原文
There is a bunch of past work in this area. Circuits have been evolved in simulation (John Koza did a ton of papers on this) and directly on FPGAs (the seminal paper here was Adrian Thompson). There is a field concerning doing this, called "evolvable Hardware". GECCO is going on right now in Philly and should have some new papers on the topic.
历次讨论
同类还值得读
位运算技巧集
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编辑精选