220 likes | 229 Vues
Design of Computer Problem Solvers. Introduction. What 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. What this course is about.
E N D
Design of Computer Problem Solvers Introduction
What 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
What 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
How 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.
How are AI systems different from conventional programs? • All programs must maximize these constraints: • Efficiency • Coherence • Flexibility • Additivity • Explicitness Conventional programs AI programs
Conventional programming approach Large Hunk of Code Resulting computer program Knowledge of the domain & Programming Knowledge
Example: Traffic control programs • Very efficient • Handles routine situations well • Doesn’t 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.
The essence of AI programming Programming Knowledge Reasoning Engine Knowledge of the domain Computer Program Representation of Domain Knowledge
Efficiency Coherence Flexibility Additivity Explicitness 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 programmer’s head.
Efficiency Coherence Flexibility Additivity Explicitness 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).
How 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?
Reasoners of increasing level of sophistication • Classical Problem Solvers, cfr. AIMA • Pattern-directed inference system • Truth maintenance systems
Classical 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 problem’s solution • Examples we explored: • Path planning • Map coloring
Pattern-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”)
Truth 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
Justification-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)
Logic-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
Assumption-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
Prerequisites • What you’ll 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
Good 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.