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!
Comments
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
Nice and clean source code, I like it. Also, nice screenshots on the wiki page.