Re:My book (Essentials of Metaheuristics) officially in pape...
by SeanLuke on Tuesday April 19, 2011 @07:09PM
(#2464601)
[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.
Re:My book (Essentials of Metaheuristics) officially in pape...
by chasingsparks on Tuesday April 19, 2011 @10:06PM
(#2464979)
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.
Re:My book (Essentials of Metaheuristics) officially in pape...
by unwantedLetters on Tuesday April 19, 2011 @10:06PM
(#2464978)
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"?
Re:My book (Essentials of Metaheuristics) officially in pape...
by SeanLuke on Wednesday April 20, 2011 @01:05PM
(#2467427)
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).
Re:My book (Essentials of Metaheuristics) officially in pape...
by chegra84 on Wednesday April 20, 2011 @01:12AM
(#2465341)
[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
Re:My book (Essentials of Metaheuristics) officially in pape...
by SeanLuke on Wednesday April 20, 2011 @12:14PM
(#2467181)
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.
Re:My book (Essentials of Metaheuristics) officially in pape...
by barabba on Wednesday April 20, 2011 @10:52AM
(#2466824)
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.
Re:My book (Essentials of Metaheuristics) officially in pape...
by joshes on Tuesday April 19, 2011 @09:09PM
(#2464848)
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.
Re:My book (Essentials of Metaheuristics) officially in pape...
by adaszko on Tuesday May 03, 2011 @03:15PM
(#2511277)
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!
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.
P.S. I took your CS 101 in '07 :)
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
(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:)
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]
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.
Yes!
Also if possible provide both imperative, maybe python, and functional, maybe haskell, examples.
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!
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/....
I very much appreciate placing this book online. It showed up on HackerNews right when I needed it!