Hacker News new | past | comments | ask | show | jobs | submit login
Clever Algorithms: Nature-Inspired Programming Recipes (cleveralgorithms.com)
163 points by petercooper on Jan 26, 2011 | hide | past | favorite | 25 comments

Wow. This is a must read for future cognitive science scholars. I think I'm going to order this as a graduation present to myself.

The author is this Australian academic:


I am no longer an academic. I had a go at the startup thing and am now a PhD surviving in industry :)

The book has been released (today!) as a paperback, free PDF and free online. You may also fork the content on github if your keen: https://github.com/jbrownlee/CleverAlgorithms

I'm happy to answer any questions.

Some guff from the back cover of the book:

Implementing an Artificial Intelligence algorithm is difficult. Algorithm descriptions may be incomplete, inconsistent, and distributed across a number of papers, chapters and even websites. This can result in varied interpretations of algorithms, undue attrition of algorithms, and ultimately bad science.

This book is an effort to address these issues by providing a handbook of algorithmic recipes drawn from the fields of Metaheuristics, Biologically Inspired Computation and Computational Intelligence, described in a complete, consistent, and centralized manner. These standardized descriptions were carefully designed to be accessible, usable, and understandable. Most of the algorithms described were originally inspired by biological and natural systems, such as the adaptive capabilities of genetic evolution and the acquired immune system, and the foraging behaviors of birds, bees, ants and bacteria. An encyclopedic algorithm reference, this book is intended for research scientists, engineers, students, and interested amateurs.

Each algorithm description provides a working code example in the Ruby Programming Language. Source code and additional resources can be downloaded from the books companion website online at http://www.CleverAlgorithms.com

As a (poor!) Computer Science student I want to give you much props for making a free version available. Just skimmed through a bit and the text seems very readable (good citations too). Hopefully this will finally help me close the gap between knowing the theory behind some AI techniques (especially neural networks) and actually implementing them. I'm certainly adding this to my list of books to get soon-ish.

Great, I hope you find it useful!

I had a quick browse through some of the content, something that caught my eye on page 7, is that the first sentence of each subsection contains the word 'paradigm': "A paradigm that is concerned with the investigation ...", "A paradigm that considers collective intelligence as a behavior that emerges through ...", "Neural Networks are a paradigm that is concerned with the investigation of ...", and "Fuzzy Intelligence is a paradigm that is concerned with the investigation of fuzzy logic". You might consider some rewording there.

Other than that it looks like a really nice introduction, I'll probably keep it on hand as a reference guide.

Nice catch. I just grepped the text and can see what you mean. I've logged an issue for it: https://github.com/jbrownlee/CleverAlgorithms/issues#issue/1...

I looks really nice. I am currently working on the "Introduction to Algorithms" by CLRS book and the MIT courseware. My next book was going to be "AI : A modern approach" by Norvig. But I am now hestiant. Your book looks really nice. And thank you for opening the book. Have you consider creating lectures Kahn style?

Russell and Norvig's "Artificial Intelligence: A Modern Approach" is excellent. I used it in my undergrad, and more recently bought the 3rd edition. For a broader treatment of AI, this book is a must!

Are you allowing others to commit updates to git by adding programming examples, etc?

wikipedia would really benefit from the details/code too!

Sure, why not! I'd love to see where this could go.

Funny you should mention wikipedia. I started out by writing a heap of entries in wikipedia and ended up not being satisfied. Typically bots or random people coming in and messing up my researched and distilled summaries. Also wikipedia is a general audience, I wanted to target researches like me and programmers like the kid I used to be.

The book gave me a more controlled environment, and a permissive license feels like I'm still giving back in a useful way.

A related paper just came out in Science a few days ago. The authors used the inner workings of a fruit fly's brain to provide a robust solution to the Maximal Independent Set (MIS) problem.

Check it out here: http://barkai-serv.weizmann.ac.il/GroupPage/ http://www.sciencemag.org/content/331/6014/183.abstract

Looks useful. If you like this, you might also like a look at learning algorithms which are less nature-inspired, but still effective --- Support Vector Machines, for instance.

Agreed. I'm strongly considering working on a second volume on machine learning algorithms.

I chose nature inspired for this book because that was the general area of my graduate research.

Just bought a copy..thank you for making it available as a freely downloadable PDF :)

Cheers, I hope you enjoy it. Happy to answer any questions, just shoot me an email any time on jasonb _AT_ cleveralgorithms.com

Curious as to what kind of profit you're getting seeing as this is through Lulu... would like to support your efforts, is purchasing through Lulu the ideal way?

(Also curious as to the quality of their prints, I've heard in the past that code samples can be fuzzy, but I suppose that would be on a per book basis, and have not directly observed this myself)

Spreading the word is probably the best way to support the project, thanks for asking. Buying a paperback results in a few bucks royalty for me - which is nice - but will never pay for my time on this (not the point anyway).

I have two proof copies sitting here on my desk - the code does not look fuzzy to me, but as you allude, LuLu subcontracts to local printers and paperbacks may vary by region.

I work as a developer at Lulu. I had forwarded this to my colleagues and asked around and the general consensus is that code should not be look fuzzy. If the source image is fuzzy (say a screen shot of code vs fixed width font) then it would end up being fuzzy in print.

You book has been marked as a staff-pick now. Hoping that this will help in spreading the word.

great to hear, thanks a lot!

Just received the book today; Code looks fine and readable!

glad to here it!

It was a long time ago I that was really excited by a computer science book but this is exactly the kind of data analysis/optimization/machine learning stuff that interests me. I'm definitely going to buy a copy.

The text looks very readable. The code examples are in Ruby, which I don't really know, but that's probably no problem as it's supposed to be similar to Python.

Have you considered selling it on the Kindle/iBooks/B&N etc?

I am organizing a distribution package. I believe it could take up to 4-6 weeks (sorry).

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact