====== 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]]).