====== Foundations of Artificial Intelligence ======
===== 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 [[https://www.inf.unibz.it/~franconi/space/doku.php?id=teaching:is:main_is&do=subscribe|Manage Subscriptions]] link.
===== Official course presentation form =====
* The course [[https://webservices.scientificnet.org/rest/uisdata/api/v1/coursedescriptions/82219|presentation form]].
===== Timetable =====
The official week-by-week Faculty timetable: [[https://www.unibz.it/en/timetable/?searchByKeywords=Artificial+Intelligence&sourceId=unibz&department=224°ree=13618%2C13778&studyPlan=18364%2C18928&toDate=2024-07-31&page=1|lectures and labs]] of the course.
Note that a LAB may be transformed into a LECTURE and vice-versa.
Office hours: anytime, by previous appointment by email to the lecturer ([[mailto:franconi@inf.unibz.it|Enrico Franconi]]).
In any case the lecturer is always available for the period after any lecture.
Some lectures and labs may be available on Microsoft Teams.
=====Language used in the course=====
* Exclusively English.
===== Textbook =====
* **Main book**: David Poole and Alan Mackworth. //[[https://artint.info/|Artificial Intelligence: Foundations of Computational Agents]]//. Cambridge University Press, 2023, 3rd edition 2017. The book is fully available online.
* //Auxiliary book//: Stuart Jonathan Russell and Peter Norvig. //Artificial Intelligence: A Modern Approach//. Prentice Hall, 4th edition 2020.
* Reading list from the UniBZ Library: [[https://eu.alma.exlibrisgroup.com/leganto/readinglist/lists/29916890000001241| Artificial Intelligence / Artificial Intelligence: Foundation of Artificial Intelligence]]
===== Slides & Reference Material =====
/* red means material not done this year. */
The following is the standard material, it may be adjusted during the course.
/* The striked-through text (i.e., text) corresponds to parts not done this year. */
* Slides: {{ :teaching:is:lect_01_0_h.pdf |Welcome Aboard}}
* Slides: Artificial Intelligence and Agents {{ :teaching:is:lect_01_1.pdf |parts 1 & 2}}, {{ :teaching:is:lect_01_3_h.pdf |part 3}}, {{ :teaching:is:lect_01_4_h.pdf |part 4}}
* Material: chapter 1 of //Poole and Mackworth//
* Slides: States and Searching {{:teaching:is:lect.3.1.pdf|part 1}}, {{:teaching:is:lect.3.2.pdf|part 2}}, {{:teaching:is:lect.3.3.pdf|part 3}}, {{:teaching:is:lect.3.4.pdf|part 4}}
* Material: chapter 3 of //Poole and Mackworth//
* Slides: Features and Constraints {{:teaching:is:lect.4.1.pdf|part 1}}, {{:teaching:is:lect.4.2.pdf|part 2}}
* Material: chapter 4 of //Poole and Mackworth//
* Slides: Propositions and Inference {{:teaching:is:lect.5.1.pdf|part 1}}, {{:teaching:is:lect.5.2.pdf|part 2}}, {{:teaching:is:lect.5.3.pdf|part 3}}, {{:teaching:is:lect.5.4.pdf|part 4}} \\ Slides: Diagnosis /* {{:teaching:is:lect.5.5.pdf|part 1}}, {{:teaching:is:lect.5.6.pdf|part 2}}, {{:teaching:is:lect.5.7.pdf|part 3}}, {{:teaching:is:lect.5.8.pdf|part 4}}, {{:teaching:is:lect.5.9.pdf|part 5}} */
* Material: chapter 5 of //Poole and Mackworth//
* Slides: Deterministic Planning /* {{ :teaching:is:lect.8.1 v4.pdf |part 1}}, {{ :teaching:is:lect.8.2 v4.pdf |part 2}}, {{ :teaching:is:lect.8.3 v4.pdf |part 3}}, {{ :teaching:is:lect.8.4 v4.pdf |part 4}} */
* Material: chapter 6 of //Poole and Mackworth//
/* * Slides: Multiagent Systems and Games {{ :teaching:is:lect.10.1_v4.pdf |part 1}}
* Material: chapter 10 of //Poole and Mackworth// */
===== Lab =====
* LAB 1: Graph Searching with uninformed techniques ({{ :teaching:is:search_applet.zip |Java applet}})
* Manuals:
* {{ :teaching:is:search_1_-_quick_start.pdf |Quick start}}
* {{ :teaching:is:search_2_-_general_help.pdf |General Help}}
* Tutorial 1: {{ :teaching:is:search_3_-_tutorial_1.pdf |Creating a New Graph}} with [[http://aispace.org/search/help/CreateASearchGraph.avi|video]]
* Tutorial 2: {{ :teaching:is:search_4_-_tutorial_2.pdf |Loading a Preexisting Graph}}
* Tutorial 3: {{ :teaching:is:search_5_-_tutorial_3.pdf |Solving a Graph}} with [[http://aispace.org/search/help/SolveASearchGraph.avi|video]]
* Tutorial 4: {{ :teaching:is:search_6_-_tutorial_4.pdf |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 [[http://www.aispace.org/exercises.shtml|Practice Exercise]] 3.B.
* Exercise: practicing different search strategies with the graph in this {{teaching:is:search_bf_df_lcf.pdf|slides}} ({{ :teaching:is:search-problem.xml.zip |solution}} as a XML file for the applet)
* 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.
* IMPORTANT: learn how to write on paper the frontier evolution for each search.
* LAB 2: 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 [[http://www.aispace.org/exercises.shtml|Practice Exercises]] 3.C, 3.D, 3.E.
* Exercise: [[http://www.inf.unibz.it/~franconi/teaching/artint.info/html/ArtInt_71.html|3.4]] ([[teaching:is:heuristics-solution|solution]]).
* IMPORTANT:
* learn how to write on paper the frontier evolution for each search;
* check whether the heuristics are admissible and monotone.
* LAB 3: Constraints - Consistency
* [[http://aispace.org/constraint/|Consistency Based CSP Solver]] ({{:teaching:is:constraint.jar.zip|applet}}):
* 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 [[http://www.aispace.org/exercises.shtml|Practice Exercises]] 4.A, 4.B.
* Exercises: [[http://www.inf.unibz.it/~franconi/teaching/artint.info/html/ArtInt_99.html|4.2, 4.3 (only a,b), 4.5]] - CSP and arc consistency ([[teaching:is:csp-solutions|solutions]]).