Title: Design of Computer Problem Solvers
1Design of Computer Problem Solvers
2What happens today?
- Syllabus
- Course mechanics and administriva
- Overview of course
- How do AI programs differ from conventional
programs? - What types of reasoners will we build?
- Homework 0
- Preview of Homework 1
3What this course is about
- Building systems that reason
- By solving problems, both simple and complex
- By storing their dependencies and constraints
- By explaining their results
- How to build well-engineered, efficient AI
systems - Start with simple reasoner, and grow with task
complexity - Use industrial-strength AI programming
4How are AI systems different from conventional
programs?
- All programs must maximize these constraints
- Efficiency How fast and small is the code?
- Coherence How well-tuned to its particular
domain? - Flexibility How adaptable to new domains or
unusual circumstances? - Additivity How easily can new info be added?
- Explicitness How clearly is knowledge
represented? - Which is more important? Depends.
5How are AI systems different from conventional
programs?
- All programs must maximize these constraints
- Efficiency
- Coherence
- Flexibility
- Additivity
- Explicitness
Conventional programs
AI programs
6Conventional programming approach
Large Hunk of Code
Resulting computer program
Knowledge of the domain Programming Knowledge
7Example Traffic control programs
- Very efficient
- Handles routine situations well
- Doesnt work well in unusual circumstances
- Hard to extend or adapt to new circumstances
- Hard to figure out why it does everything it does
- Engine tester.
8The essence of AI programming
Programming Knowledge
Reasoning Engine
Knowledge of the domain
Computer Program
Representation of Domain Knowledge
9Efficiency Coherence Flexibility Additivity Expli
citness
ConventionalTradeoffs
- Efficiency Coherence improve together
- Store only the minimum necessary to get job done
(reduces explicitness) - Figure out optimal order of actions in advance
(reduces flexibility) - Both of these reduce additivity because knowledge
resides only in the programmers head.
10Efficiency Coherence Flexibility Additivity Expli
citness
AI Tradeoffs
- Flexibility, Additivity, and Explicitness improve
together - Explicit representation of knowledge allows
program to figure out what to do (but with
reduced coherence and efficiency). - Program can be extended by adding new knowledge
rather than mind surgery (but with reduced
coherence and efficiency).
11How you resolve these tradeoffsdepends on the
task
- How often will the program change?
- How fast is the processor? What are the
real-time constraints? - How cheap/available are programmers or
content experts?
12Reasoners of increasing level of sophistication
- Classical Problem Solvers, cfr. AIMA
- Pattern-directed inference system
- Truth maintenance systems
13Classical problem solving
- In classical problem-solving
- Problems are defined as a search space of
potential solutions - Domain-independent search, e.g. BFS, DFS, , is
used to find a problems solution - Examples we explored
- Path planning
- Map coloring
14Pattern-directed Rule Systems
- Programs are organized using a system of rules
- Rules contain patterns which represent
antecedents, and allow the inference of
consequences - Examples we will explore
- Logical theorem prover (Natural Deduction, cfr.
Grondslagen I)
15Truth Maintenance Systems
- Adds a dependency network to pattern-directed
rule system - Allows reuse of dependencies, greatly increasing
the efficiency of reasoning - Types of TMSs
- Justification-based,
- Logic-based, and
- Assumption-based
16Justification-based TMS
- Basic type of TMS
- Records a network of dependencies between Horn
clauses - Will be used to illustrate dependency-directed
search - Examples we will explore
- Symbolic integration (JSAINT)
17Logic-based TMS
- Operates over logical values
- Utilizes Boolean constraint propagation (BCP) for
quick inferencing - Detects and handles contradictions
- More efficient for dependency-directed search
- Examples we will explore
- Cryptarithmetic puzzle solver
18Assumption-based TMS
- Flexible handles multiple sets of assumptions
(including possible inconsistent assumptions) - Good for reasoning in multiple contexts at once
- Useful for diagnosis and planning
- Examples we will explore
- Blocks World
19Prerequisites
- What youll need to know about
- Lisp, including the use of structs or classes
- How to write and use pattern matchers and
unifiers, cfr. Abelson and Sussman The Structure
and Interpretation of Computer Programs - Some experience with knowledge representation
20Good auxiliary texts for this course
- Steele, Guy. Common Lisp The Language. 2nd Ed.
- Norvig, Peter. Paradigms of Artificial
Intelligence Programming Case Studies in Common
Lisp.