Table of content:
I. THE PROLOG LANGUAGE.
1. Introduction to Prolog.
Defining relations by facts.
Defining relations by rules.
How Prolog answers questions.
Declarative and procedural meaning of programs.
2. Syntax and Meaning of Prolog Programs.
Declarative meaning of Prolog programs.
Example: monkey and banana.
Order of clauses and goals.
The relation between Prolog and logic.
3. Lists, Operators, Arithmetic.
Representation of lists.
Some operations on lists.
4. Using Structures: Example Programs.
Retrieving structured information from a database.
Doing data abstraction.
Simulating a non-deterministic automaton.
The right queens problem.
5. Controlling Backtracking.
Examples using cut.
Negation as failure.
Problems with cut and negation.
6. Input and Output.
Communication with files.
Processing files of terms.
Constructing and decomposing atoms.
7. More Built-In Predicates.
Testing the type of terms.
Constructing and decomposing terms: =..,functor, arg, name.
Various kinds of equality and comparison.
bagof, setof, and findall.
8. Programming Style and Technique.
General principles of good programming.
How to think about Prolog programs.
9. Operations on Data Structures.
Representing sets by binary trees.
Insertion and deletion in a binary dictionary.
10. Advanced Tree Representations.
The 2-3 dictionary.
AVL-tree: an approximately balanced tree.
II. PROLOG IN ARTIFICIAL INTELLIGENCE.
11. Basic Problem-Solving Strategies.
Introductory concepts and examples.
Depth-first search and iterative deepening.
Analysis of basic search techniques.
12. Best-First Heuristic Search.
Best-first search applied to the eight puzzle.
Best-first search applied to scheduling.
Space-saving techniques for best-first search.
13. Problem Decomposition and AND/OR Graphs.
AND/OR graph representation of problems.
Examples of AND/OR search representation.
Basic AND/OR search procedures.
Best-first AND/OR search.
14. Constraint Logic Programming
Constraint satisfaction and logic programming.
CLP over real numbers: CLP(R)
Scheduling with CLP.
A simulation program with constraints.
CLP over finite domains: CLP (FD).
15. Knowledge Representation and Expert Systems.
Functions and structure of an expert system.
Representing knowledge with if-then rules.
Forward and backward chaining in rule-based systems.
Semantic networks and frames.
16. An Expert System Shell.
Knowledge representation format.
Designing the inference engine.
Deriving plans by means-ends analysis.
Procedural aspects and breadth-first regime.
Combining means-ends planning with best-first heuristic.
Uninstantiated actions and partial-order planning.
18. Machine Learning.
The problem of learning concepts from examples.
Learning relational descriptions: a detailed example.
Learning simple if-then rules.
Induction of decision trees.
Learning from noisy data and tree pruning.
Success of learning.
19. Inductive Logic Programming.
Constructing Prolog programs from examples.
20. Qualitative Reasoning.
Common sense, qualitative reasoning and na�ve physics.
Qualitative reasoning about static systems.
Qualitative reasoning about dynamic systems.
A qualitative simulation program.
Discussion of the qualitative simulation program.
21. Language Processing with Grammar Rules.
Grammar rules in Prolog.
Defining the meaning of natural language.
22. Game Playing.
Two-person, perfect-information games.
The minimax principle.
The alpha-beta algorithm: an efficient implementation of minimax.
Minimax-based programs: refinements and limitations.
Pattern knowledge and the mechanism of ‘advice’.
A chess endgame program in Advice Language O
Meta-programs and meta-interpreters.
A simple theorem prover as a pattern-directed program.
Appendix A: Some Differences Between Prolog Implementations.
Appendix B. Some Frequently Used Predicates.
Solutions to Selected Exercises.