This is an old revision of the document!
Table of Contents
Foundations of Artificial Intelligence (FoundAI)
Watch the page
You can “subscribe” to any page on the wiki and you’ll get an email message whenever the page has changed. To do that, click the Manage Subscriptions link.
Official course presentation form
- The course presentation form.
Open Learning Environment (OLE) web page
- The official course page in OLE.
Timetable
The official week-by-week Faculty timetable: lectures and labs of the course. Note that sometimes a LAB may be transformed into a LECTURE and vice-versa.
Office hours: anytime, by previous appointment by email to the lecturer (Enrico Franconi). In any case the lecturer is always available for the period after any lecture.
Some lectures and labs are offered online using Microsoft Teams. There is a video on how to start with Teams.
Language used in the course
- Exclusively English.
Textbook
- Main book: David Poole and Alan Mackworth. Artificial Intelligence: Foundations of Computational Agents. Cambridge University Press, 2010, 2nd edition 2017.
- Auxiliary book: Stuart Jonathan Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Prentice Hall, 4th edition 2020.
- Reading list from the UniBZ Library: 76251A_21-22-2_CS Artificial Intelligence / Artificial Intelligence: Foundation of Artificial Intelligence
Below you can download the relevant chapters of the book used in the various parts of the course.
Slides & Reference Material
The following is the standard material, it may be adjusted during the course.
- Slides: Welcome Aboard
-
- Material: chapter 1 of Poole and Mackworth
-
- Material: chapter 2 of Poole and Mackworth
-
- Material chapter 3 of Poole and Mackworth
-
- Material chapter 4 of Poole and Mackworth
- Slides: Propositions and Inference part 1, part 2, part 3, part 4
Slides: Diagnosis part 1,part 2, part 3,part 4,part 5- Material chapter 5 of Poole and Mackworth
-
- Material chapter 8 of Poole and Mackworth
Slides: Multiagent Systems and Games part 1Material chapter 10 of Poole and Mackworth
Lab
-
- Tutorial 1 with video
- Tutorial 2 with video
- Tutorial 3 with video
- LAB 2: Graph Searching with uninformed techniques (applet)
- Manuals:
- Tutorial 1: Creating a New Graph with video
- Tutorial 2: Loading a Preexisting Graph
- Tutorial 3: Solving a Graph with video
- Tutorial 4: Search Options
- Explore with the search applet the Delivery Robot (Acyclic), the Delivery Robot (cyclic), the Vancouver Neighbourood, the Module 4 sample problem graphs: with Depth First, Breadth First, Lowest Cost First search strategies using different Neighbour Ordering Strategies; practice also with the quiz facility.
- Do the Practice Exercise 3.B.
- Create your own problem graph for a delivery robot starting from a map with edge costs.
- Create a problem graph for a simple problem chosen by you.
- LAB 3: Graph Searching with Heuristics
- Explore the Delivery Robot (Acyclic), the Delivery Robot (cyclic), the Vancouver Neighbourood, the Module 4 sample problem graphs: with Best First, Heuristic Depth First, A*, Branch and Bound search strategies, with or without Multiple-Path Pruning or Loop Detection, using different Neighbour Ordering Strategies. Explore also the behaviour with the abovementioned search graphs with potentially non terminating depth first strategies (e.g., Depth First or Heuristic Depth First) without cycle checking, and with loop detection or multiple path pruning.
- Do the Practice Exercises 3.C, 3.D, 3.E.
- LAB 4: Constraints - Consistency
- Explore with the CSP applet the sample problems: Simple Problem 1, Simple Problem 2, Scheduling Problem 1, Crossword Problem 1, Crossword Problem 2. These sample problems have been seen already in the course lectures; for the crossword problems, try to reconstruct the crossword graphical structure.
- Do the Practice Exercises 4.A, 4.B.
- Exercises: 4.2, 4.3 (only a,b), 4.5 - CSP and arc consistency.
- LAB 5: Propositions and Inference
- Getting started with AILog2, a representation and reasoning system for definite clauses, with declarative debugging tools.
- Download the file ailog2.pl, install and launch SWI Prolog, and load (consult) AILog2 in Prolog:
- Windows: <html><tt>?- consult(“C:\\path-to-file\\ailog2.pl”).</tt></html>
- Mac: <html><tt>?- consult('/path-to-file/ailog2.pl').</tt></html>
- Go through the AiLog2 manual, from Section 1 to Section 6.
- To load a knowledge base file from AILog2:
- Windows: <html><tt>ailog: load 'C:\\path-to-kbfile\\kbfile.ail'.</tt></html>
- Mac: <html><tt>ailog: load '/path-to-kbfile/kbfile.ail'.</tt></html>
- Play with the elect_prop.ail electrical wiring example 5.7 from Section 5.3 of the book and the slides.
- Do Exercises 5.1, 5.2 (not question b), 5.3, 5.4 (solutions)
- LAB 6: Debug, Diagnosis, Abduction
- Keep using AILog2
- Go through Sections 6, 7, 9 of the manual
- Play with the following knowledge bases:
- elect_ask.ail electrical wiring example with askables; Example 5.10 from Section 5.3.2
- elect_bug.ail the buggy electrical wiring knowledge base from Example 5.14 in Section 5.3.4.1
- elect_bug2.ail the buggy electrical wiring example from Exercise 5.6
- elect_bug3.ail a buggy electrical wiring example, which fails to prove lit_l2, but should succeed
- elect_cbd.ail electrical wiring example for consistency-based diagnosis; Example 5.20 in Section 5.4.3
- elect_abd.ail electrical wiring example with abduction; Example 5.31 in Section 5.6
- Exercises: 5.5, 5.6, 5.7, 5.9, 5.13 (solutions)
LAB 7: Planning with Certainty * Do Practice Exercise 8.A and Practice Exercise 8.B; you can use the STRIPS-to-CSP applet and exercise some of the sample problems pre-loaded on the applet (Practice Exercise 8.A solution and Practice Exercise 8.B solution) * LAB 8: Multiagent Systems and Gamesxxx