The Clever Algorithms project is an effort to describe a large number of algorithmic techniques from the the field of Artificial Intelligence in a complete, consistent, and centralized manner such that they are accessible, usable, and understandable.
The Clever Algorithms project is currently hosted online at http://www.CleverAlgorithms.com
This is a repository for the Clever Algorithms project for hosting, versioning, and collaboration, used during the development of the content for deliverables (website and book), as well as for the ongoing maintenance of the outcomes from the project.
This section contains a listing of outcomes and deliverables during the project.
Please refer to the book for the final content, all technical reports should be considered preliminary.
- Jason Brownlee. The Clever Algorithms Project: Overview. Technical Report CA-TR-20100105-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. A Template for Standardized Algorithm Descriptions. Technical Report CA-TR-20100107-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. The Clever Algorithms Project: Inspiring Works. Technical Report CA-TR-20100109-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. Data-Driven Optimization Algorithm Selection. Technical Report CA-TR-20100112-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. A Gentle Introduction to AI: Natural Computation, Computational Intelligence and Metaheuristics. Technical Report CA-TR-20100115-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. Unconventional Optimization Algorithms: An Introduction. Technical Report CA-TR-20100118-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. Programming Language Selection for Optimization Algorithms. Technical Report CA-TR-20100122-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. Random Search. Technical Report CA-TR-20100129-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. Adaptive Random Search. Technical Report CA-TR-20100131-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, January 2010.
- Jason Brownlee. Stochastic Hill Climbing. Technical Report CA-TR-20100202-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Guided Local Search. Technical Report CA-TR-20100204-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Variable Neighbourhood Search. Technical Report CA-TR-20100206-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Greedy Randomized Adaptive Search Procedure. Technical Report CA-TR-20100209-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Iterated Local Search. Technical Report CA-TR-20100210-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Tabu Search. Technical Report CA-TR-20100213-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Scatter Search. Technical Report CA-TR-20100216-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Reactive Tabu Search. Technical Report CA-TR-20100221-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Stochastic Algorithms. Technical Report CA-TR-20100223-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, February 2010.
- Jason Brownlee. Genetic Algorithm. Technical Report CA-TR-20100303-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, March 2010.
- Jason Brownlee. Genetic Programming. Technical Report CA-TR-20100308-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, March 2010.
- Jason Brownlee. Evolutionary Programming. Technical Report CA-TR-20100313-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, March 2010.
- Jason Brownlee. Evolution Strategies. Technical Report CA-TR-20100326-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, March 2010.
- Jason Brownlee. Differential Evolution. Technical Report CA-TR-20100402-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, April 2010.
- Jason Brownlee. Grammatical Evolution. Technical Report CA-TR-20100403-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, April 2010.
- Jason Brownlee. Gene Expression Programming. Technical Report CA-TR-20100404-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, April 2010.
- Jason Brownlee. Learning Classifier System. Technical Report CA-TR-20100411-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, April 2010.
- Jason Brownlee. Non-dominated Sorting Genetic Algorithm. Technical Report CA-TR-20100426-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, April 2010.
- Jason Brownlee. Strength Pareto Evolutionary Algorithm. Technical Report CA-TR-20100508-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, May 2010.
- Jason Brownlee. Evolutionary Algorithms. Technical Report CA-TR-20100509-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, May 2010.
- Jason Brownlee. Clonal Selection Algorithm. Technical Report CA-TR-20100515-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, May 2010.
- Jason Brownlee. Negative Selection Algorithm. Technical Report CA-TR-20100516-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, May 2010.
- Jason Brownlee. Artificial Immune Network. Technical Report CA-TR-20101114-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Artificial Immune Recognition System. Technical Report CA-TR-20101119-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Dendritic Cell Algorithm. Technical Report CA-TR-20101120-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Immune Algorithms. Technical Report CA-TR-20101114a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Particle Swarm Optimization. Technical Report CA-TR-20101114b-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Ant System. Technical Report CA-TR-20101115-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Ant Colony System. Technical Report CA-TR-20101115a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Bees Algorithm. Technical Report CA-TR-20101120a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Bacterial Foraging Optimization Algorithm. Technical Report CA-TR-20101121-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Swarm Algorithms. Technical Report CA-TR-20101115b-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Simulated Annealing. Technical Report CA-TR-20101115c-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Memetic Algorithm. Technical Report CA-TR-20101116-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Extremal Optimization. Technical Report CA-TR-20101116a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Cultural Algorithm. Technical Report CA-TR-20101121a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Harmony Search. Technical Report CA-TR-20101122-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Physical Algorithms. Technical Report CA-TR-20101125-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Perceptron. Technical Report CA-TR-20101116b-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Back-propagation Algorithm. Technical Report CA-TR-20101117-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Learning Vector Quantization. Technical Report CA-TR-20101118-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Hopfield Network. Technical Report CA-TR-20101124-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Self-Organizing Map. Technical Report CA-TR-20101124a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Neural Algorithms. Technical Report CA-TR-20101124b-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Population-Based Incremental Learning. Technical Report CA-TR-20101118a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Univariate Marginal Distribution Algorithm. Technical Report CA-TR-20101118b-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Compact Genetic Algorithm. Technical Report CA-TR-20101118c-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Cross-Entropy Method. Technical Report CA-TR-20101122a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Bayesian Optimization Algorithm. Technical Report CA-TR-20101123-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. Probabilistic Algorithms. Technical Report CA-TR-20101125a-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Jason Brownlee. The Ruby Programming Language: A Quick-Start Guide. Technical Report CA-TR-20101126-1, The Clever Algorithms Project http://www.CleverAlgorithms.com, November 2010.
- Algorithms : The executable source code used in all algorithm descriptions. Each algorithm is in a separate file, and files are organized by algorithm taxonomic kingdom used in the book structure, specifically: stochastic, physical, evolutionary, probabilistic, swarm, and immune.
- Algorithm Selection Script : A ruby script to apply the data driven optimization algorithm selection methodology. Measures the popularity of a list of algorithms against a range of search engines, calculates a score and produces algorithm statistics and rankings. The script was prepared for the Data-Driven Optimization Algorithm Selection technical report. Also see the tag for the tech report version
- Programming Language Selection Script : A ruby script to evaluate the popularity of a list of programming languages for their use in implementing a typical optimization algorithm. Popularity is measured against a range of search engines and the results are summarized. The script was prepared for the Programming Language Selection for Optimization Algorithms technical report.
- Programming Language Comparison Scripts : A set of scripts that implement the genetic algorithm in four different dynamic languages (Python, Perl, Ruby, and Lua), as well as a ruby script for analyzing the implementations. The scripts were prepared for the Programming Language Selection for Optimization Algorithms technical report.
- Clever Algorithms Paper Search : An aggregate search using Google’s ‘custom search’ service. Searches across the whole internet, biased towards google scholar, google books, IEEE explore, springer link, ACM digital library, and scirus. Useful for searching for all useful sources for a given technique name.
This project is partitioned into five efforts:
- book/ : The content and structure for the publishable book. The book is prepared using the LaTex type setting system.
- web/ : A webpage used to promote the project with a specialized content management system tailored to the content of the book.
- deprecated/ : A collection of the work product produced during the past attempts at completing the clever algorithms project (previously called the algorithm atlas and inspired algorithms).
- src/ : Complete source code for the examples provided in the book as well as programs prepared during the development of the content for the book. Algorithm examples are provided in the Ruby programming language.
- workspace/ : A workspace for content development such as notes and technical reports that facilitates exploration and investigation independent of the book content. Content developed in the workspace may provide the basis for the book or may be directly migrated into the book. Notes are in plain text, technical reports are prepared using the LaTex type setting system and organized into sub-directories.
Found a typo in some content or a bug in the source code? Are you an expert in a given area and know some facts that could improve an algorithm description for all? Do you want to get that warm feeling from contributing to an open source project? Do you want to see your name as an acknowledgment in print?
Two pillars of this effort are i) that the best domain experts are people outside of the project, and ii) that this work is subjected to continuous improvement.
Please help to make this work less wrong!
You may want to:
- Email the author: [email protected]
- or, Message the author though the github website: (signup and login to github, go to http://github.com/jbrownlee and click “Message”)
- or, Fork the CleverAlgorithms project on github, make changes, and request a pull into the main project (again, you must signup and login to github and follow the github documentation for forking, contributing, and making a pull request).
© Copyright 2010 Jason Brownlee. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia License.
Why would I release all of the work product from this project under a permissive license? Because I agree with Tim O’Reilly that “obscurity is a far greater threat to authors and creative artists than piracy”. It is more important to me that the outcomes of this project are read and used than be treated as a revenue generating commodity.