Quotes from 3rd edition:
Artificial Intelligence involves computations which provide results
similar to those provided by human thought:
p.5"Artificial Intelligence is the study of the computations that
make it possible to perceive, reason, and act."
Why should efficient search be a concern of ours at all? If a basic
evaluation function "eventually" finds good moves (with little or no knowledge) isn't that good enough? The problem is the
search tree grows exponentially - our evaluation function should direct the search process into the promising lines, the positions
with proven potential. The consequences of not searching the promising lines are magnified by the exponential number of positions
that can distract us from finding the lines of best play:
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."
Winston declares that heuristics are important in reducing the amount
of time a machine spends searching an exponentially growing tree of possibilities for solutions. Look at what he says with
regard to the efficiency of the search process and the order that moves are examined:
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."
For Winston, increasing the knowledge present reduces search time,
as a rule of thumb. Finely crafting a search solution is often not the best method in obtaining good results:
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."
Winston offers some suggestions to Knowledge Engineers, who's task
is to extract knowledge from the domain expert and to construct the computer program used to solve the desired problem:
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."