220 likes | 242 Views
Explore the differences between AI and conventional programming, focusing on efficiency, coherence, flexibility, additivity, and explicitness. Delve into classical problem solvers, rule-based systems, and truth maintenance systems to create well-engineered AI solutions.
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.