Hacker News new | comments | show | ask | jobs | submit login
My book (Essentials of Metaheuristics) officially in paperback (gmu.edu)
45 points by SeanLuke 2377 days ago | hide | past | web | 17 comments | favorite

[I am the author]

Last year I put out this book as a free open text, and posted about it on HackerNews. I was asked, often when the book would be out in physical form.

Now that it's available on Amazon officially (and also Lulu), I guess I can announce it. Thanks to everyone for all your feedback, corrections, and updates so far.

In case you're wondering what a metaheuristic is: it's the buzzword for stochastic optimization methods such as genetic algorithms, ant colony optimization, simulated annealing, and so on.

Congratulations Sean! I look forward to reading it.

P.S. I took your CS 101 in '07 :)

I'm also at GMU in the CSS program. I skimmed the PDF after it was recommended by Max or Rob -- I can't remember. Now that I can just buy it in physical form, it's in my Amazon queue.

P.S. To people on HN. Sean has a pretty nice LISP tutorial. I've actually recommended it to friends to get them using LISP quickly. http://www.cs.gmu.edu/~sean/lisp/LispTutorial.html

I think your "Or if you are without honor" line was very intriguing. That is the simplest way of getting your book, and to me (and I imagine most people) is almost impossible to use because of the language you have used. The point of this post was to request you to post numbers. How many of those that downloaded a free copy, downloaded it after filling the form, and how many did so "without honor"?

Thanks for publishing it! Any chances you might push it in the Kindle format to Amazon as well ?

(And if my own experience re. price were of any interest - Kindle e-books in ~$10-$15 ballpark is what almost destroyed my budget this month:)

I don't expect to put out an AZW format: it's not kind on books like mine which have lots of equations and pseudocode. However, the free PDF looks great on the DX. (Haven't tested on the standard Kindle screen size).

I'm with you on the budget destroying business. It's just so easy to queue up material to read.

I second this!

[Constructive Criticism]

1. Needs More examples - Examples gives a reader different avenues for understanding the problem better. Let's say they didn't understanding Genetic Algorithm on the first go, they would be multiple opportunity to understand it with more examples. Enhancing the chance that they understand the material and recommend it to friends.

2. Give real code - Readers might not exactly get how mathematical symbols turns into code, but I think they will understand real code. You want to lower the barrier of entry to read your material. Many programmers never took Calculus I and II and most start like 12, don't limit your audience by being opaque.

3. Give readers exercise to test their knowledge - Reader should have some sign that they are understanding the material and giving exercise show them gaps in their understanding.

4. Give it a different name - Maybe "Essential AI Algorithms","Genetic Algorithms, Simulated Annealing and others" or "Optimisation Algorithm Bible", so that you wouldn't have to explain what is Metaheuristic

[/Constructive Criticism]

All very smart comments, deserving of response.

1. I think the text really could use a lot more examples. And running demonstrations. Maybe for the next iteration.

2. Real code is nontrivial given the scope of the text -- but it'll please you that about two thirds of the algorithms in the text are implemented in ECJ, an evolutionary computation system I wrote which is fairly widely used. In Java though, not in Haskell. :-) I'm working towards getting everything implemented eventually.

I'm surprised about your comment regarding pseudocode: I took a lot of pains to make the pseudocode as easy for laymen and undergrads to understand and I think it's proven pretty good in that aspect.

3. Exercises are not easy to devise in this area due to the stochastic nature of the algorithms. It is a real problem.

4. Yeah, the name took a long time and a lot of thought and not just by me. There are a lot of difficulties with the names you suggested -- in fact one of the early footnotes in the text discusses exactly this issue! It doesn't google well though.

> Give real code


Also if possible provide both imperative, maybe python, and functional, maybe haskell, examples.

First post on HN, but after reading about 50 pages of this book since morning I feel it really deserves a praise. I'm a student working on a metaheuristic focused MSc thesis, and I find this book as an invaluable summary of most methods presented in literature.

I do not agree at all with remarks about code samples, pseudo code is all the topic needs. Real code would just make things more complex (and not understandable to a reader not familiar with the programming language of choice), without much of an added benefit.

Not sure about exercises either, given the focus of the book. I really think the book is very clearly written, but I must admit I already have a somewhat decent background in the main topic.

Anyways, thanks!

This is definitely a good read for beginners in the area and it does a good job of balancing both application of and theory behind the algorithms. Highly recommended.

Another good read which covers some of the same ground (also by a professor at George Mason University, Professor Kenneth De Jong) would be "Evolutionary Computation" http://www.amazon.com/Evolutionary-Computation-Kenneth-Jong/....

Not very much valuable comment but I found a typo at page 146. Second to last paragraph says: "First, ACO is builds some popsize candidate solutions all at once."

I very much appreciate placing this book online. It showed up on HackerNews right when I needed it!

Fixed. Thanks!

Thanks for publishing this. Just went to the top of my reading list.

pretty high level for undergrad... i think...

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