Artificial intelligence is deeply-rooted to the observation of natural processes making many AI algorithms nature-inspired. Some are trying with difficulty to reproduce human/animal capabilities like pattern recognition or “acting intelligently”, other are providing super-humans performances, pushing to the edge simple human repetitive tasks like searching/sorting/making correlations like in deep mining.
I did stumble upon an excellent and free to read book by Jason Brownlee which collects and presents in details most the algorithms that have been developed in AI. It is, in particular, a good introduction to AI for the programmers (although I did not check the algorithms :-;).
The book includes an introduction to artificial intelligence and related fields as well as advanced topics like algorithm testing and visualization.
The 45 algorithms are grouped into chapters, as follows:
- Stochastic Algorithms: Random Search, Adaptive Random Search, Stochastic Hill Climbing, Iterated Local Search, Guided Local Search, Variable Neighborhood Search, GRASP, Scatter Search, Tabu Search and Reactive Tabu Search.
- Evolutionary Algorithms: Genetic Algorithm, Genetic Programming, Evolution Strategies, Differential Evolution, Evolutionary Programming, Grammatical Evolution, Gene Expression Programming, Learning Classifier System, NSGA and SPEA.
- Physical Algorithms: Simulated Annealing, Extremal Optimization, Harmony Search, Cultural Algorithm and the Memetic Algorithm
- Probabilistic Algorithms: PIBL, UMDA, Compact Genetic Algorithm, Bayesian Optimization Algorithm and the Cross-Entropy Method.
- Swarm Algorithms: Particle Swarm Optimization, Ant System, Ant Colony Optimization, Bees Algorithm and the Bacterial Foraging Optimization Algorithm.
- Immune Algorithms: Clonal Selection Algorithm, Negative Selection Algorithm, Artificial Immune Recognition System, Immune Network Algorithm and the Dendritic Cell Algorithm.
- Neural Algorithms: Perceptron, Back-Propagation, Hopfield Network, Learning Vector Quantization and the Self-Organizing Map.
All algorithm descriptions include a working implementation of the algorithm in Ruby. The standalone ruby files for each algorithm are also included in your download.