Product: Book  Paperback
Title: An Introduction to Genetic Algorithms (Complex Adaptive Systems) Publisher: The MIT Press Authors: Melanie Mitchell Rating: 4/5 Although short, this book gives a good introduction to genetic algorithms for those who are first entering the field and are looking for insight into the underlying mechanisms behind them. It was first published in 1995, and considerable work has been done in genetic algorithms since then, but it could still serve as an adequate introduction. Emphasizing the scientific and machine learning applications of genetic algorithms instead of applications to optimization and engineering, the book could serve well in an actual course on adaptive algorithms. The author includes excellent problem sets at the end of each chapter, these being divided up into "thought exercises" and "computer exercises", and in the latter she includes some challenge problems for the ambitious reader. Chapter 1 is an overview of the main properties of genetic algorithms, along with a brief discussion of their history. The role of fitness landscapes and fitness functions is clearly outlined, and the author defines genetic algorithms as methods for searching fitness landscapes for highly fit strings. An elementary example of a genetic algorithm is given, and the author compares genetic algorithms with more traditional search methods. The author emphasizes the unique features of genetic algorithms that distinguish them from other search algorithms, namely the roles of parallel populationbased search with stochastic selection of individuals, and crossover and mutation. A list of applications is given, and two explicit examples of applications are given that deal with the Prisoner's Dilemna and sorting networks. The author also gives a brief discussion as to how genetic algorithms work from a more mathematical standpoint, emphasizing the role of Holland schemas. The reader more prepared in mathematics can consult the references for more indepth discussion. The next chapter stresses the role of genetic algorithms in problem solving, beginning with a discussion of genetic programming. Automatic programming has long been a goal of computer scientists, and the author discusses the role of genetic programming in this area, particularly the work of John Koza on evolving LISP programs. In addition, she discusses the current work on evolving cellular automata and its role in automatic programming. The latter discussion is more detailed, this resulting from the author's personal involvement in artificial life research. Those interested in time series prediction tools will appreciate the discussion on the use of genetic algorithms to predict the behavior of dynamical systems, with an example given on predicting the behavior of the (chaotic) MackeyGlass dynamical system. The author also gives applications of genetic algorithms in predicting protein structure, an area of application that has exploded in recent years, due to the importance of the proteome projects. The area of neural networks has also been influenced by genetic algorithms, and the author discusses how they have replaced the familiar backpropagation algorithm as a method to find the optimal weights. Chapter 3 is more in line with what the author intended in the book, namely a discussion of the relevance of genetic algorithms to study the mechanisms behind natural selection. She discusses the "Baldwin effect", which gives a connection between what an organism has learned (a small timescale process) to the evolutionary history of the Earth (a long timescale process). A simple model of the Baldwin effect is given using a genetic algorithm, along with a discussion of the AckleyLittman evolutionary reinforcement learning model, which involves the use of neural networks, and which is another computational demonstration of the Baldwin effect. In addition, the author discusses models for sexual selection and ecosystems based on genetic algorithms. These are the "artificial life" models that the author has been involved in, and she gives a very understandable overview of their properties. Chapter 4 should suit the curiosity of the mathematician or computer scientist who wants to understand the theoretical justification behind the use of genetic algorithms. Again employing the Holland notion of schemas and adaptation as a "tension between exploration and exploitation", the author formulates a mathematical model, called the TwoArmed Bandit Problem, of how genetic algorithms are used to study the tradeoffs in this tension. The level of mathematics used here is very elementary with the emphasis placed on the intuition behind this model, with only a sketch of the model's solution given. To address the role of crossover in genetic algorithms, the author discusses in detail a class of fitness landscapes, called "Royal Road functions" that she and others have developed. The performance of the genetic algorithm employed is then compared against the three different hillclimbing methods. Formal mathematical models of genetic algorithms are also discussed, one of which involves dynamical systems, another using Markov chains, and one using the tools of statistical mechanics. The latter is very interesting from a physics standpoint but is only briefly sketched. The interested physicist reader can consult the references given by the author for further details. Practical use of genetic algorithms demands an understanding of how to implement them, and the author does so in the last chapter of the book. She outlines some ideas on just when genetic algorithms should be used, and this is useful since a newcomer to the field may be tempted to view a genetic algorithm as merely a fancy Monte Carlo simulation. The most difficult part of using a genetic algorithm is how to encode the population, and the author discusses various ways to do this. She also details various "exotic" approaches to improving the performance of genetic algorithms, such as the "messy" genetic algorithms. One must also choose a selection method when employing genetic algorithms, and the author shows how to do this using various techniques, such as roulette wheel and stochastic universal sampling. In addition, genetic operators must also be chosen in implementing genetic algorithms, and the author emphasizes crossover and mutation for this purpose. Lastly, the values of the parameters of the genetic algorithm, such as population size, crossover rate, and mutation rate must be chosen. The author discusses various approaches to this. Although brief, she does give a large set of references for further reading.
Product: Book  Paperback
Title: Beginning Active Server Pages 3.0 (Programmer to Programmer) Publisher: Wrox Authors: David Buser, John Kauffman, Juan T. Llibre, Brian Francis, Dave Sussman, Chris Ullman, Jon Duckett Rating: 5/5 Ive read many scripting books and a couple asp books, but none of them broke down the syntax like this one. Most books seem to speak in general terms, giving you ideas of what you CAN do with asp, but not actually giving you enough to learn how. That is not the case with this book and because of the lengthy discussion of detail many have said that this book is too lengthy... well if you dont want a lengthy book then be my guest and go buy 3 others to do the job of this one book. For everyone else purchase this book.. i love it
Product: Book  Paperback
Title: Information Architecture: Blueprints for the Web Publisher: Pearson Education Authors: Christina Wodtke Rating: 5/5 While most people reading this book do so for Web development, it has absolutely amazing tenets for use in elearning. Information architecture, as with usability are to be studied and emphasized over and over again. Wodtke does an excellent job of creating a personal and compelling set of arguments. A must have resource.
Product: Book  Paperback
Title: The Windows 2000 Device Driver Book: A Guide for Programmers (2nd Edition) Publisher: Prentice Hall PTR Authors: Art Baker, Jerry Lozano Rating: 4/5 I write NT drivers and kernel extensions for a living so I have already been baptised so to speak. Even so, because Microsoft has been so tight lipped about NT's internals, there is much I have to learn. And, indeed I did by reading Art's book. I just finished Art's book and I must say that I am impressed with his choice of subjects, his clear style and his light humor throughout. Moreover, his examples teach in fact what his narative imaginatively presents. If you are buying this book to teach you about writing a certain kind of driver, say NDIS 4.0, then don't. It's very short on specifics of that kind. But, if you want to learn the "basics" about writing NT drivers, this will get it done. The gift that Art brings through his book is more than dry facts about NT driver lore and technique. Unlike the DDK Guide, Art has placed the process into perspective by presenting the material in a logically progressive manner. Further, we benefit from Art's long experience at teaching the subject as well as, I suspect, his hobknobbing with the MS development folks and having had many a question answered. I would not be surprised to learn that he has "even" seen NT's sources since he formerly worked for DEC with their intimate association with Uncle Bill's Belleview Works. I know that I have come to understand some things that, frankly, I thought were in the realm of accepting on faith. To sum up, though experienced, I learned alot, and, I am convinced I will continue to do so every time I pick it up in the future. I do have one caution to offer. Art's book is no substitute for the DDK Guide  I think after reading Art's book, you should then skim through the Guide. It's in the neighborhood of 1000 screen pages of if you want to print it out, it's much shorter. Since the Guide was written as an online reference, it tends to repeat a lot of information. This can be tedious reading but, hey, that's how I learned  I only wish that I had had Art's book as a primer
