Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Updated README for my fork.

  • Loading branch information...
commit 5d590800fa625dcdafc6c0940f4e22bdbc078d03 1 parent 05468e0
Chad Estioco authored July 24, 2012

Showing 2 changed files with 21 additions and 77 deletions. Show diff stats Hide diff stats

  1. 21  README.md
  2. 77  README.textile
21  README.md
Source Rendered
... ...
@@ -0,0 +1,21 @@
  1
+**Status:** Work-in-progress
  2
+
  3
+This repo contains Python ports of the code listings from [Clever Algorithms](www.cleveralgorithms.com). It is one of those rare books which tackle theory and yet present the reader with working code. How I wish more books were written like this.
  4
+
  5
+The book has its own [GitHub repo](https://github.com/jbrownlee/CleverAlgorithms), utilizing Ruby.
  6
+
  7
+# File Organization
  8
+
  9
+First of all, note that this repository isn't synchronized with [the main Clever Algorithms repository](https://github.com/jbrownlee/CleverAlgorithms). My main purpose is in learning the algorithms in the book and transcribing them to Python; I've come to believe that implementing algorithms on your own is a good learning exercise. I'm taking the Ruby listings as pseudocode that is also the reference implementation.
  10
+
  11
+So, all directories, save for `python`, are not to be taken as updated.
  12
+
  13
+Under the `python` directory, the code listings are sorted by chapter and are named after the name used by the book (e.g., Random Search of Chapter 2 is `python/2 Stochastic Algorithms/random_search.py`). At the beginning of each file is a docstring describing the algorithm and some notes on the code listing itself. These were taken directly from the book, unless noted.
  14
+
  15
+# Technical Specs
  16
+
  17
+All Python codes will be for (plain) Python 3.1.2 .
  18
+
  19
+# Miscellaneous
  20
+
  21
+There are [Python versions](http://code.google.com/p/aima-python/) of the pseudocodes in Russel and Norvig's _Artificial Intelligence: A Modern Approach_. There are also listings for other languages as well as a standard data set at the [book's official site](http://aima.cs.berkeley.edu/code.html).
77  README.textile
Source Rendered
... ...
@@ -1,77 +0,0 @@
1  
-h1. Clever Algorithms: Nature-Inspired Programming Recipes
2  
-
3  
-h2. Overview
4  
-
5  
-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. 
6  
-
7  
-The Clever Algorithms project is currently hosted online at "http://www.CleverAlgorithms.com":http://www.CleverAlgorithms.com 
8  
-
9  
-This is a repository for the *Clever Algorithms: Nature-Inspired Programming Recipes* 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.
10  
-
11  
-h2. Support Clever Algorithms
12  
-
13  
-Like Clever Algorithms and want to support the project and more books in the series?
14  
-
15  
-* Spread the word (blog, facebook, twitter, etc). 
16  
-* "Buy the paperback":http://www.lulu.com/product/paperback/clever-algorithms-nature-inspired-programming-recipes/14696556, the author will receive a few dollars.
17  
-* Gift a book to the author from his "Amazon Wish List":http://amzn.com/w/13F7P2FRNH0X7 (thanks guys, my wish list is shrinking fast!)
18  
-* Contribute corrections, translations, ports, etc (see details below)
19  
-
20  
-h2. Outcomes
21  
-
22  
-h3. Book
23  
-
24  
-Jason Brownlee, *Clever Algorithms: Nature-Inspired Programming Recipes*, Lulu, January 2011
25  
-
26  
-* "Buy the paperback":http://www.lulu.com/product/paperback/clever-algorithms-nature-inspired-programming-recipes/14696556
27  
-* "Download the PDF":http://www.lulu.com/product/file-download/clever-algorithms-nature-inspired-programming-recipes/14696557
28  
-* "Read online":http://www.cleveralgorithms.com
29  
-
30  
-h3. Technical Reports
31  
-
32  
-A large number of standalone technical reports were written during the development of the content for the book. The book is the primary source now, but if you really really want to see these now outdated technical reports: "click here":https://github.com/jbrownlee/CleverAlgorithms/tree/master/workspace and scroll down to see a human readable listing.
33  
-
34  
-h3. Software
35  
-
36  
-* "Algorithms":http://github.com/jbrownlee/CleverAlgorithms/tree/master/src/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.
37  
-* "Algorithm Selection Script":http://github.com/jbrownlee/CleverAlgorithms/tree/master/src/algorithm_selection/ : 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":http://github.com/jbrownlee/CleverAlgorithms/tree/alg_selection-techreport_v20100112-1
38  
-* "Programming Language Selection Script":http://github.com/jbrownlee/CleverAlgorithms/tree/master/src/language_selection/ : 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.
39  
-* "Programming Language Comparison Scripts":http://github.com/jbrownlee/CleverAlgorithms/tree/master/src/language_comparison/ : 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.
40  
-
41  
-h3. Other
42  
-
43  
-* "Clever Algorithms Paper Search":http://www.google.com/cse/home?cx=008815027030234776554:pwu9jj_wkb8 : 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.
44  
-
45  
-h2. Breakdown
46  
-
47  
-This project is partitioned into five efforts:
48  
-* "book/":http://github.com/jbrownlee/CleverAlgorithms/tree/master/book/ : The content and structure for the publishable book. The book is prepared using the LaTex type setting system.
49  
-* "deprecated/":http://github.com/jbrownlee/CleverAlgorithms/tree/master/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).
50  
-* "src/":http://github.com/jbrownlee/CleverAlgorithms/tree/master/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.
51  
-* "web/":http://github.com/jbrownlee/CleverAlgorithms/tree/master/web/ : Scripts for generating HTML and eBook (experimental ePub) versions of the book's content. 
52  
-* "workspace/":http://github.com/jbrownlee/CleverAlgorithms/tree/master/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. 
53  
-
54  
-h2. Contribute
55  
-
56  
-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?
57  
-
58  
-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. 
59  
-
60  
-*Please help to make this work less wrong!*
61  
-
62  
-You may want to:
63  
-* Email the author: "jasonb@CleverAlgorithms.com":mailto:jasonb@CleverAlgorithms.com
64  
-* or, Message the author though the github website: (signup and login to github, go to "http://github.com/jbrownlee":http://github.com/jbrownlee and click "Message")
65  
-* 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).
66  
-
67  
-h2. License 
68  
-
69  
-(c) Copyright 2011 Jason Brownlee. Some Rights Reserved. 
70  
-
71  
-<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/au/">
72  
-	<img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.5/au/88x31.png" />
73  
-</a>
74  
-
75  
-This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/au/">Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia License</a>.
76  
-
77  
-Why would I release all of the work product from this project under a permissive license? Because I agree with "Tim O'Reilly":http://openp2p.com/lpt/a/3015 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.

0 notes on commit 5d59080

Please sign in to comment.
Something went wrong with that request. Please try again.