https://github.com/janmonschke/Genetic-Algorithms/tree/gh-pa...
- It is deterministic, hence not a black box - It is a local search, easy to explain - Does not require as many parameters to tweak (GAs' performance demands on how you set these: mutation rate, population size, cross-over mechanism (dozens of possibilities), stopping procedure, selection procedure, etc...) - Considered by literature to be one of the strongest class of algorithms for the class of TSP problems, in both solution quality and computational effort
Here's an open-source implementation in Common Lisp: https://github.com/mck-/Open-VRP
Essentially, a GA solution consists of:
1. Select a random point(s) in the search space, hoping that you have arrived at a sufficiently good solution.
2. If none of the solutions are not good enough, generate a new set of points by combining the best available points and adding a bit of random error.
3. Repeat the above until time has run out/u've hit a good enough solution.
However having said that, GAs can be a good option if 1)not much is known about the function you are trying to optimize, or 2)the crossover/mutation functions are designed to reflect some problem structure, or 3)the search space is small enough.
Here's a TSP challenge for you to prove yourselves: http://www.tsp.gatech.edu/data/usa/index.html
Deadline is July 4th, 2013 -- Price $500 & Honourable mention for finding the shortest path to the world's largest TSP problem.
If articles are boiled down to a shouting match because the java-haters or the coffeescript-haters or the ruby-haters found the article first we all may as well go back to /.
(I ask because this discussion is talking about both the genetic algorithms and Coffeescript).
Hmm... maybe some sort of GPS application that took into account current road conditions -- length of time stopped at traffic lights, performance characteristics of the current vehicle (velocity and acceleration away from lights, etc).
At one time there was talk of making the air traffic control system distributed rather than centralized. The win there is that 1) each aircraft only has to worry about the other aircraft that near enough to interfere and 2) if the control system goes out in one aircraft, the systems in the other aircraft can compensate. By contrast the centralized system has to watch all the aircraft in a large chunk of airspace, and if it goes out, well...
This is sort of what Google is doing with their self-driving cars, I think (that's just my impression -- I haven't looked into it in detail).
You may want to fix the links in the readme though.