It is critical that our computer program have an internal representation
of the external world that allows effective modeling of the possible solutions to problems.
p.27"Throughout this book we will be discussing representations.
The reason for this is that in order for a computer to solve a problem that relates to the real world, it first needs some
way to represent the real world internally. In dealing with that internal representation, the computer is then able to solve
problems."
The representation we choose to use for the external world should be simple enough to allow for
manipulation, but detailed enough to allow the generation of possible solutions to problems. We must find a way to focus
our search efforts along paths that are likely and interesting.
p.28-29"As we will see elsewhere in the book, the representation that is used to represent a problem
is very important. In other words, the way in which the computer represents a problem, the variables it uses, and the operators
it applies to those variables can make the difference between an efficient algorithm and an algorithm that doesn't work at
all. This is true of all Artificial Intelligence problems, and as we see in the following chapters, it is vital for search...The
more difficult problem is to determine the data structure that will be used to represent the problem we are exploring... When
applying Artificial Intelligence to search problems, a useful, efficient, and meaningful representation is essential. In other
words, the representation should be such that the computer does not waste too much time on pointless computations, it should
be such that the representation really does relate to the problem that is being solved, and it should provide a means by which
the computer can actually solve the problem."
Here is Coppin's view of an evaluation function. Efficiency is required here,
as otherwise we would waste time that could be better spent searching for solutions. Focus is also required, otherwise our
endpoint evaluations will be meaningless.
p.146"Evaluation functions (also known as static evaluators because
they are used to evaluate a game from just one static position) are vital to most game-playing computer programs. This is
because it is almost never possible to search the game tree fully due to its size. Hence, a search will rarely reach a leaf
node in the tree at which the game is either won, lost, or drawn, which means that the software needs to be able to cut off
search and evaluate the position of the board at that node. Hence, an evaluation function is used to examine a particular
position of the board and estimate how well the computer is doing, or how likely it is to win from this position. Due to the
enormous number of positions that must be evaluated in game playing, the evaluation function usually needs to be extremely
efficient, to avoid slowing down game play."
The blackboard architecture described below is one way we can structure our intelligent
computer program.
p.469"The blackboard architecture is a method for structured knowledge
representation that was invented in the 1970s by H. Penny Nii (Nii 1986) for a system called HEARSAY-II...The idea behind
blackboard systems is that disparate knowledge from different expert sources can be combined by providing a central database
- the blackboard - on which the experts (known as knowledge sources) can 'write' information. Because the blackboard is shared,
one knowledge source can see facts appear as another knowledge source puts them there, and it can thus deduce new facts and
add them to the blackboard. In this way, a number of knowledge sources can be used together to solve a complex problem, but
each knowledge expert does not need to know from where the data on the blackboard came."