Held Tuesday, April 4, 2000
Today we delve into some simple ``intelligent'' programs;
interacting with Eliza and discussing how many game-playing
Question 34 for discussion today:
The algorithms Dewdney describes assume that both players make the
best possible move. How would the min-max and alpha-beta pruning algorithms change if one player selected a move randomly?
Question 35 for discussion on Wednesday: Model some set of relationships (preferably something other than family trees) with the predicate calculus.
- For tomorrow, read Dewdney 58 (Predicate Calculus) and 64 (Logic
- We'll return to the question of how we determine whether a program
is intelligent on Friday (or perhaps the following Monday).
- We're meeting in an alternate room today. Sorry for the late
- Game trees
- Predicate logic
These notes are adapted from notes from Henry Walker.
- In a dtterm window, type
- When emacs opens, type
[Esc] X doctor. Note that
[Esc] is the key at the upper-left side of
- Start conversing with Eliza. Type the
twice after each of your responses.
- We'll spend a few minutes talking about Eliza, what it's like
to interact with Eliza, and what possible algorithms might
- In your Answers to today's
question, most of you indicated that you didn't really understand
the algorithms. Hence, we'll go over them in some more
- The basic mimimax algorithm
- Draw a game tree
- Evaluate the leaves
- Propagate values upward, assuming that one player picks the
highest possible value and the other picks the lowest.
- First improvement:
- Evaluate as you go, rather than building the whole tree.
- Second improvement:
- Prune unneeded parts of the tree using clever logic.
- One of the first attempts at ``Artificial Intelligence'' predates
both computers and the field of AI.
- Starting early this century, a number of mathematicians attempted
to formalize ``how mathematicians think''. We typically call
their work mathematical logic.
- There were many goals to mathematical logic, but they included:
- Automated theorem proving
- Formalizing knowledge of particular domains of mathematics.
- One promising approach to this involves the use of the predicate
- No, this is not the same as the calculus you're used to
(integral and differential calculus). Basically,
``calculus'' means ``a way to compute using a special notation''.
- A predicate is a function that returns true or false.
- In the predicate calculus, we work with
- quantifiers, and
- A symbol is a sequence of letters.
- A variable is also a sequence of letters. The context determines
whether something is treated as a symbol or a variable.
- A function is a sequence of letters followed by an open paren,
followed by a sequence of symbols/variables which are separated
by commas, followed by a close paren.
- More to come ...