This is an old revision of the document!
Table of Contents
Artificial Intelligence (AI)
Watch the page
You can “subscribe” to any page on the wiki and you’ll be sent an email message whenever it’s changed. To do that, click the Manage Subscriptions button at the bottom of the page.
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 can be found on the RIS 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.
Lectures are offered now via distance learning using Microsoft Teams with Teams' code 2o00uee. There is a video on how to start with Teams.
Language used in the course
- Exclusively English.
Textbooks
- 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, 3rd edition 2016.
- Reading list from the UniBZ Library: 76212_19-20-2_CS Artificial Intelligence
You can read below which chapters of the above books are 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 7 of Poole and Mackworth.
-
- Material chapter 12 of Poole and Mackworth
- Slides: Natural Language Understanding
- Material chapter 12 of Poole and Mackworth
- Slides: Introduction to Machine Learning
Lab
Start date: XXX
-
- Tutorial 1 with video
- Tutorial 2 with video
- Tutorial 3 with video
- LAB 2: Graph Searching with uninformed techniques (I) (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.
- Exercise: practicing different search strategies with the graph in this slides
- 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 (II)
- 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.
- Exercise: 3.4.
- LAB 4: Constraints - Consistency
- Do the Practice Exercises 4.A, 4.B.
- Exercises: 4.2, 4.3, 4.5 - CSP and arc consistency (solutions).
- LAB 5: Propositions and Inference
- Getting started with AILog2, a representation and reasoning system for definite clauses, with declarative debugging tools.
- To start AILog just load the prolog file ailog2.pl into SWI Prolog:
- Install SWI Prolog first; in the Windows installer, select “Add swipl to the system PATH”.
- Launch the prolog file ailog2.pl either by double clicking it (in Windows only), or from the command line within a terminal with the command: <html><tt>swipl -f ailog2.pl</tt></html>
- Go through the manual, from Section 1 to Section 6.
- Play with the elect_prop.ail electrical wiring example 5.7 from Section 5.3 of the book and the slides; note that in Windows the path to load a knowledge base file from AILog is specified with double backslash, e.g., <html><tt>load 'C:\\Users\\john\\Desktop\\file.ail'.</tt></html>
- Do Exercises 5.1, 5.2, 5.3, 5.4 (solutions)
- Find other AILog knowledge base examples here
- 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
- LAB 7: Individuals and Relations
- Do Exercises:
- 12.1,12.2 (model theory)
- 12.3,12.7,12.10,12.12,12.14 (derivations)
- LAB 8: Decision Trees
- Answer the following questions:
- What does an arc represent in a decision tree?
- What does a non-leaf node represent in a decision tree?
- What does a leaf node represent in a decision tree?
- Do exercises from (slides)
- If-time: do Exercise 7.3
- LAB: Recap of Prolog. Material here.
- LAB: Graph Searching (III), Search in Prolog
- Exercise: do 3.3(d) using A* with multiple-path pruning search strategies.
- Test your solution: External Link
- Do Practice Exercise 3.C.
- Do Practice Exercise 3.D.
- Practise with iterative deepening and branch-and-bound
- Check Example 3.19 on branch-and-bound search
- Another (simpler?) version in prolog of Depth-first and Breadth-first
- A prolog implementation of the generic search algorithm (by Davide Lanti) External Link
Final Exam
Final Written Exam in English: 100%