Copyright (c) 2013 John L. Jerz

Artificial Intelligence 2nd and 3rd edition (Winston, 1984, 1992)

Home
A Proposed Heuristic for a Computer Chess Program (John L. Jerz)
Problem Solving and the Gathering of Diagnostic Information (John L. Jerz)
A Concept of Strategy (John L. Jerz)
Books/Articles I am Reading
Quotes from References of Interest
Satire/ Play
Viva La Vida
Quotes on Thinking
Quotes on Planning
Quotes on Strategy
Quotes Concerning Problem Solving
Computer Chess
Chess Analysis
Early Computers/ New Computers
Problem Solving/ Creativity
Game Theory
Favorite Links
About Me
Additional Notes
The Case for Using Probabilistic Knowledge in a Computer Chess Program (John L. Jerz)
Resilience in Man and Machine

winston.gif

This book explains how it is possible for computers to reason and perceive, thus introducing the field called artificial intelligence. From the book, you learn why the field is important, both as a branch of engineering and as a science.

Quotes from 2nd edition:
 
p.98-100 Search may lead to discovery... Consequently you need interestingness heuristics to help you decide...
 
More knowledge means less search. Search is seductive. While generally involved in many tasks, tuning the search procedure is rarely the right thing to do. More often the right thing is to improve understanding, thereby reducing the need for search.
 
p.128-129 Heuristic Pruning Also Limits Search: The alpha-beta search speedup procedure guarantees as good an answer as can be found by doing complete, exhaustive minimaxing. Many other procedures have no such guarantee but are used in combination with alpha-beta pruning as additional weapons against explosive tree growth.
A brute-force way of reducing the effective branching factor in a game tree is to concentrate on the better moves. Of course, to concentrate on the better moves, there must be a method for ordering moves plausibly without looking ahead any further [in the search tree]. If the static evaluator is fast enough, it can serve.
Once there is a way to order moves plausibly, one option is to arrange for the branching factor to vary with depth of penetration, possibly tapering the search in favor of the more plausible moves through some formula like the following:
 
r(child) = r(parent) - r(rank of child among siblings)
 
where r(child) is the number of branches to be retained at some child node, r(parent) is the number of branches retained by the child node's parent, and r(rank of child among siblings) is the rank in plausibility of the child node among its siblings.
Thus, if a node is one of five children and ranks second most plausible among those five, then it should itself have 5-2=3 children. A complete tree formed using this idea looks like the one shown in figure 4-21 [figure not reproduced here].
 
Another way of cutting off disasters [analysis of bad moves] is to stop search from going down through apparently bad moves no matter what. This makes the width of the tree sensitive to the way particular games develop. If only one line of play makes any sense at all, that line would be the only one pursued, cutting off disasters.
Needless to say, any heuristics that limits branching acts in opposition to lines of play that temporarily forfeit pieces for eventual position advantage. Because they trim off the moves that appear bad on the surface, procedures that limit branching are unlikely to discover spectacular moves that seem disastrous for a time, but then win back everything lost and more. There will be no queen sacrifices.
 
Quotes from 3rd edition:
 
p.5 Artificial Intelligence is the study of the computations that make it possible to perceive, reason, and act.
 
p.66 The total number of paths in a tree with branching factor b and depth d is b [to the power of] d. Thus, the number of paths is said to explode exponentially as the depth of the search tree increases.
Accordingly, you always try to deploy a search method that is likely to develop the smallest number of paths.
 
p.70 Search efficiency may improve spectacularly if there is a way to order the choices so that the most promising are explored earliest. In many situations, you can make measurements to determine a reasonable ordering... you will learn about search methods that take advantage of such measurements; they are called heuristically informed methods.
 
p.72 Generally, exploiting knowledge, as in hill climbing, [a search technique previously explained] reduces search time, a point worth elevating to the status of a powerful idea:
 
Whenever faced with a search problem, note that, More knowledge generally leads to reduced search time. Sometimes, knowledge reduces search time by guiding choices, as in the [previous] example... Although search is involved in many tasks, devising a fancy, finely tuned search procedure is rarely the best way to spend your time. You usually do better if you improve your understanding of the problem, thereby reducing the need for fanciness and fine tuning.
 
p.167-168 A domain expert is a person who has accumulated a great deal of skill in handling problems in a particular area called the domain of expertise. Knowledge engineering is the extraction of useful knowledge from domain experts for use by computers. Often, albeit far from always, knowledge engineers expect to cast the acquired knowledge in the form of rules for rule-based systems.
 
To some extent, knowledge engineering is an art, and some people become more skilled at it than do others. Nevertheless, there are two key heuristics that enable any knowledge engineer to do the job well.
 
The first of the key knowledge-engineering heuristics is the heuristic of specific situations. According to this heuristic, it is dangerous to limit inquiry to office interviews, asking only the general question, "How do you do your job?" Instead, a knowledge engineer should go into the field to watch domain experts proceed about their normal business, asking copious questions about specific situations as those situations are witnessed.
 
The second of the key knowledge-engineering heuristics is the heuristic of situation comparison. The idea is to ask a domain expert for clarification whenever the domain expert's behavior varies in situations that look identical to the knowledge engineer. The purpose is to help the knowledge engineer to acquire a vocabulary that is sufficiently rich to support the necessary acquisition of knowledge.

Enter supporting content here