Course Description
The course introduces the fundamental principles and methods used in Artificial Intelligence to solve problems, with a special focus on the search in the state space, planning, knowledge representation and reasoning, and on the methods for dealing with uncertain knowledge. The course will include hands-on labs and seminars on selected topics.
Prerequisites: user-level knowledge of a high-level programming language, in order to successfully understand case studies and applications presented during the lessons.
Contents
Complementary material
Content - Module 1
- Introduction to Artificial Intelligence: historical perspective, main application fields, introduction to knowledge-based systems and architectural organization.
- Problem-solving in AI:
- Representation through the notion of state
- Forward and backward reasoning
- Solving as a search and search strategies
- Games
- Constraint satisfaction problems
- Local Search methods:
- Meta heuristics
- Solving through decomposition
- Constraint relaxation
- Branch-and-bound techniques
- Introduction to Planning:
- Linear planning
- Partial order planning
- Graph-based methods (GraphPlan)
- Scheduling
Content - Module 2
- A common language: First Order Logic
- Prolog
- Representing Terminological Knowledge:
- Semantic networks
- Description logics
- Foundation of ontologies
- Representing actions, situations, and events
- Rule-based systems:
- Prolog and extensions
- Meta-interpreters
- DCG
- Planning in Prolog
- Prolog for temporal reasoning with the Event Calculus
- LPAD
- Forward chaining and RETE, Drools
Content - Module 3
- Acting under Uncertainty
- Basic Probability notation
- Inference using full joint distributions
- Independence
- Bayesian Network representation
- Constructing Bayesian Networks
- Causal Networks
- Representing Conditional distributions
- Exact inference
- Approximate inference