|Teoria||5||I semestre||Alessandro Farinelli|
|Laboratorio||1||I semestre||Alessandro Farinelli|
The class presents the main techniques for problem solving, based on the central paradigm of symbolic and probabilistic representations. The objective is to provide the students with the ability to design, apply and evaluate algorithms for difficult problems, meaning that their mechanical solution captures aspects of artificial intelligence or computational rationality. At the end of the course the students must demonstrate to know and understand the main techniques for state space search, to understand the fundamental concepts related to constrained networks and to know the basic concepts related to probabilistic reasoning and reinforcement learning. This will allow the students to choose the most appropriate solution techniques for different problems and to continue independently the studies in Artificial Intelligence, deepening the topics covered in class, both on other texts and on scientific publications.
Problem solving as search in a state space; un-informed search procedures; heuristic search procedures.
Problem solving based on constraint processing (satisfaction and optimization); Solution techniques based on search (Backtracking, Branch and Bound) and inference (Join Tree Clustering, Bucket Elimination);
Probabilistic reasoning: i) Representing uncertainty by using probability theory; ii) Markov decision processes (definitions and main solution techniques); iii) reinforcement learning (basic concepts and solution techniques, Deep Reinforcement Learning).
Implementing (through assisted software development) the main solution techniques presented during the course related to state space search and probabilistic reasoning.
The final grade for the AI module will be achieved with a single oral test.
The oral exam can follow two modalities: i) oral test on topics studied during the course (including the programming lab.); ii) oral test on a specific project assigned by the teacher (and on the programming lab).
For what concerns the oral test on topics studied during the course, the teacher asks the students to carry out some exercises and asks questions to evaluate the level of comprehension of the topics covered during the course.
For what concerns the oral test on the project, the teacher and the student agree on a topic for the project which will include a substantial programming part. The student will carry out the project and during the oral test she/he will explain the project to the teacher that will ask questions to evaluate the level of comprehension of the topic.
The topic for the project and the exact date and time for the oral test of each student are agreed with the teacher at the end of the course.
For what concerns the progamming lab, during the course duration the students will implement some of the algorithms studied in class. The laboratory part is evaluated during the oral test. For this evaluation, the students will deliver the software they developed to the teacher and the teacher will ask questions to assess the level of understanding of the delivered software.