# Class 34: Game Trees

Back to Introduction to Artificial Intelligence. On to Expert Systems.

Held Tuesday, April 4, 2000

Overview

Today we delve into some simple ``intelligent'' programs; interacting with Eliza and discussing how many game-playing programs work.

Question 35 for discussion on Wednesday: Model some set of relationships (preferably something other than family trees) with the predicate calculus.

Notes

• For tomorrow, read Dewdney 58 (Predicate Calculus) and 64 (Logic Programming)
• 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 notice.

Contents

Summary

• Eliza
• Game trees
• Predicate logic

## A Computer Psychologist

These notes are adapted from notes from Henry Walker.

• In a dtterm window, type `emacs`
• When emacs opens, type `[Esc] X doctor`. Note that the `[Esc]` is the key at the upper-left side of the keyboard.
• Start conversing with Eliza. Type the `[Enter]` key 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 underlie Eliza.

## Game Trees

• 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 detail.
• 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.

## Predicate Calculus

• 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 calculus.
• 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
• symbols,
• variables,
• functions,
• predicates,
• quantifiers, and
• formulae
• 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 ...

## History

Saturday, 22 January 2000

• Created as a blank outline.

Tuesday, 4 April 2000

• Filled in some details. The section on the predicate calculus is sketchy.

Back to Introduction to Artificial Intelligence. On to Expert Systems.

Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.