|
| 1 | +This repo contains Python ports of the code listings from [Clever |
| 2 | +Algorithms](http://www.cleveralgorithms.com). It is one of those rare books |
| 3 | +which tackle theory and yet present the reader with working code. How I wish |
| 4 | +more books were written like this. |
| 5 | + |
| 6 | +The book has its own [GitHub |
| 7 | +repo](https://github.com/jbrownlee/CleverAlgorithms), utilizing Ruby. |
| 8 | + |
| 9 | +# Status |
| 10 | + |
| 11 | +This is pretty much a **work-in-progress**. What I'm currently working on is |
| 12 | +verifying that the Ruby and the Python code listings encode the same algorithms. |
| 13 | +I may add new listings here and there but coming up with a framework to verify |
| 14 | +this is my main concern right now. |
| 15 | + |
| 16 | +# File Organization |
| 17 | + |
| 18 | +First of all, note that this repository |
| 19 | +isn't synchronized with [the main Clever Algorithms |
| 20 | +repository](https://github.com/jbrownlee/CleverAlgorithms). My main purpose |
| 21 | +is in learning the algorithms in the book and transcribing them to Python; |
| 22 | +I've come to believe that implementing algorithms on your own is a good |
| 23 | +learning exercise. I'm taking the Ruby listings as pseudocode that is also |
| 24 | +the reference implementation. In the process, I hope to familiarize myself |
| 25 | +with the algorithms and Ruby. |
| 26 | + |
| 27 | +So, all directories, save for `python`, are not to be taken as updated. |
| 28 | + |
| 29 | +Under the `python` directory, the code listings are sorted by chapter and are |
| 30 | +named after the name used by the book (e.g., Random Search of Chapter 2 is |
| 31 | +`python/2_Stochastic_Algorithms/random_search.py`). At the beginning of each |
| 32 | +file, I note the chapter and section in the book in which the algorithm can |
| 33 | +be found (e.g., Random Search is noted as 2.2). The docstring also contains |
| 34 | +a description the algorithm and some notes on the code listing itself. These |
| 35 | +were taken directly from the book, unless noted. |
| 36 | + |
| 37 | +# Technical Specs |
| 38 | + |
| 39 | +All Python codes will be for (plain) Python 3. |
| 40 | + |
| 41 | +# Miscellaneous |
| 42 | + |
| 43 | +There are [Python versions](http://code.google.com/p/aima-python/) of |
| 44 | +the pseudocodes in Russel and Norvig's _Artificial Intelligence: A Modern |
| 45 | +Approach_. There are also listings for other languages as well as a standard |
| 46 | +data set at the [book's official site](http://aima.cs.berkeley.edu/code.html). |
0 commit comments