- Edward (Ned) S. Blurock
- E-Mail: Edward.Blurock@risc.uni-linz.ac.at
- Snail-Mail (job)
- General introduction about the course and what it entails. The course, on the
programming side, will entail work with the expert system shell Clips and other AI
programs and, on the theoretical side deal with the search techniques used within
artificial intelligence.
- Handouts:
- Giarratano, Joseph C.: CLIPS Version 6.0
- This is light introduction to the basics of CLIPS. This will be the basis of The next few lectures.
- Exercises:
- None Given
- Overheads:
- The Course
- Practical Matters about the course and what it will cover.
- Clips 1:

### Lecture 2: CLIPS

- More aspects of clips are introduced: rules and templates.
- Handouts:
- None Given
- Exercises:
- None Given
- Overheads:
- Clips Chapter 2:
- Clips Chapter 3:
- Clips Chapter 4:

### Lecture 3: CLIPS

- Handouts:
- None Given
- Exercises:
- Exercise 1:
- A first program in CLIPS. Model a signal crossing.
- Overheads:
- Clips 5:
- Clips 6:
- Clips 7:

### Lecture 4: Programs in Clips: Decision Trees and Production Systems

- The diagnostic problem of repairing a stove is used as an example. This shows the
decision tree form of searching. In the second half of the class the concept of production
systems are introduced and illustrated in setting up the waterjug problem.
- Handouts:
- Clips Program: Stove
- A complete clips program (written by Thad Fiebich within the lecture of Dr. Giarratano) about the diagnosing of a stove.
- Exercises:
- Exercise 3:
- The exercise is basically to recognize the decision tree structure of the program
- Exercises 4 and 5
- The state of the water jug problem is to be defined and the production rules given. First verbally and then with clips templates and rules.
- Overheads:
- Stove Problem
- The stove program is stepped through and the decision tree structure is shown. This is also the first complete program shown.
- Production System
- The concept of production system is illustrated with the water jug problem. With only Two jugs, 4 and 3 gallons, get exactly 2 gallons in the 4 gallon jug.

### Lecture 5: Breadth First Search

- A simplified water jug problem is set up: fill a jug 3 gallons where the only operations
are add 1 gallon and add 2 gallons. This is done, in stages, by setting up a complete
program using breadth first search. Several programs are shown, of increasing complexity,
leading to the complete solution.
- Handouts: The clips programs used in the lecture
- water1.clp
- water2.clp
- water3.clp
- water4.clp
- water5.clp
- cannibals.clp
- Exercises:
- Exercise 6
- Complete the full water jug problem, using the lecture problem as a pattern
- Exercise 2
- Analyse the cannibal and missionary problem, looking at the search structure.
- Overheads:
- Simplified Water Jug
- The simplified water jug problem is explained and stepped through. This is an example of Breadth first search.
- Cannibal and Missionary Problem

### Lecture 6: Tree/Graph Search

- The concepts of Depth-first, Breadth-First and Best-First are put under a common
terminology and each algorithm is defined under this context. Algorithm A (for simple
graphs) is introduced and the various properties (such as Admissibility, Conditions under
which a solution is found) are informally proved. Then a clips implementation of the
algorithm with the simplified water jug example is explained. In addition, the topic of
the elimination of cycles (as introduced in the cannibal and missionary problem) will be
briefly discussed.
- Handouts and/or Reference Materials:
- Nilsson, N,J. Principles of Artificial Intelligence (Chapter 2)
- Rich, Elaine, Artificial Intelligence (Chapter 3)
- Exercises:
- Exercises 7 and 8
- Adapting the program given in the lecture to the full water jug problem.
- Overheads:
- Depth-first, Breadth-First and Best-First
- Algorithm A
- Clips Program
- Cycles Discussion

### Lecture 7: AND/OR Graphs

- The graph search algorithms are presented in terms of AND/OR graphs. The solution is now
a graph instead of a single path (or node). A rewrite system is shown in both the OR graph
scheme and the AND/OR scheme. The AO* algorithm is explained in detail and another
(artificial) example is stepped through.
- Handouts and/or Reference Materials:
- Nilsson, N,J. Principles of Artificial Intelligence (Chapter 3)
- Rich, Elaine, Artificial Intelligence: (Chapter 4)
- Exercises:
- Exercise 9
- The rewrite system of the lecture is formulated as a new set of rules in the best first algorithm of CLIPS
- Exercise 10
- Setting up an AND/OR graph search within CLIPS
- Overheads:
- AND/OR Search

### Lecture 8: Game Theory

- The special type of search problem encountered in game theory is presented. Three
methods are illustrated: MINMAX, ALPHA-BETA and SSS.
- Handouts and/or Reference Materials:
- Rich, Elaine, Artificial Intelligence (Chapter 4)
- Pearl, Judea, Heuristics: Intelligent Search Strategies for Computer Problem Solving (Chapter 8)
- Exercises:
- SSS
- Perform the SSS algorithm, by hand, for the tree given
- Overheads:
- Game Theory

### Lecture 9: Planning Systems

- The search methods involved in planning are illustrated by introducing the planning
system PRODIGY. The formulation of problems and how PRODIGY solves them are illustrated.
Several problems, each of increasing complexity, are shown in the lecture.
- The PRODIGY Research Group (Jaime G. Carbonell), Prodigy 4.0: The Manual and Tutorial
- How to run PRODIGY
- Exercises:
- Work Through Examples
- Though no formal written assignment, it is expected that the examples given in the lecture and the some examples given with the system are understood enough that one could formulate ones own set of rules (The next assignment will assume adaquate knowledge of PRODIGY).
- Overheads:
- General Aspects of PRODIGY
- Examples

### Lecture 10: Resolution with Otter

- The simple automated theorem prover, OTTER, is used to illustrate resolution techniques.
- Handouts and/or Reference Materials
- Otter Program: Is Marcus Dead?
- Otter Program: Water Jugs Problem
- Otter Program: Missionaries and Cannibals
- Otter Program: Paramodulation
- Exercises:
- Exercise 12
- Overheads:
- Otter and Resolution

### Lecture 11: Numeric Optimization

- This lecture is concerned with 'numeric' search in a vector domain. Three types of
numeric optimization are introduced: Gradient, Probabilistic (Monte Carlo and Las Vegas
Algorithms) and Simulated Annealing. These are used to set the stage for the discussion of
genetic algorithms of the next
- Handouts and/or Reference Materials
- None
- Exercises:
- None
- Overheads:
- Numeric Optimation
- Probabilistic Optimization
- Simulated Annealing

### Lecture 12: Genetic Algorithms

- This lecture is concerned, once again, with (though not exclusively) 'numeric' search
using genetic algorithms. The public domain library of genetic algorithms (libGA of Arthur
L. Corcoran) are used for illustrating the setup of a simple search procedure.
- Handouts and/or Reference Materials
- ga-test.cfg
- Parameters to be set for the Genetic Algorithm
- Exercises:
- None
- Overheads:
- Introduction to GA
- Sample Runs

Edward.Blurock@risc.uni-linz.ac.at

Edward S. Blurock Research Institute for Symbolic Computation (RISC-Linz) Johannes Kepler University A-4040 Linz Austria, Europe Phone: +43 732 2468 9928 Fax: +43 732 2468 9930

This is all the course materials and slides for a lecture on Knowledge Based Engineering. This course is basically an introduction to artificial intelligence and expert systems. The general theme of the course is methods of search. The expert system shell CLIPS is introduced not only to give an example of an expert system shell, but also as a programming medium (for the exercises) for illustrating the search methods introduced in traditional AI textbooks (i.e. A, A*, Decision Trees, AND/OR graphs). Depending on time, the numeric search techniques will also be introduced, Gradient, Monte-Carlo and Genetic Algorithms. The software system PRODIGY is introduced as a medium for looking at planning problems. In addition, the software system OTTER will be used to illustrate resolution. As one sees the course gives emphasis on the practical exercises within the concepts introduced. The software systems are used to enable the calculation of non-trivial examples and to see, by example, the complexity the problems can take. (The file expert.html gives the html document organizing the various files in this directory).

Lecture 1: Introduction

Lecture 2: CLIPS

Lecture 3: CLIPS

Lecture 4:
Programs in Clips: Decision Trees and Production Systems

Lecture 5: Breadth First Search

Lecture 6: Tree/Graph Search

Lecture 7: AND/OR Graphs

Lecture 8: Game Theory

Lecture 9: Planning Systems

Lecture 10: Resolution with OTTER

Lecture11: Numeric Optimization

Lecture 12: Genetic Algorithms