Artificial Intelligence and laboratory
Module LABORATORY

Academic Year 2023/2024 - Teacher: MARIO FRANCESCO PAVONE

Expected Learning Outcomes

Knowledge and understanding: the knowledge on the design and implementation of several search algorithm methodologies for solving very complex computational problems will be acquired. 

Applying knowledge and understanding: the skills necessary to tackle and solve complex problems will be acquired, together to a correct algorithmic analysis and a proper knowledge on the resolution methodology to be adopted.

Making judgements: the student will be able to evaluate the best and most appropriate search methodology to be used in the context of solving any complex problem.

Learning skills: the student will be able to understand the advantages and disadvantages of the several search intelligent systems, and, consequently, making the appropriate choice on the methodologies to design and apply in order to solve complex problems.

Course Structure

Classroom-taught lessons, and Practical laboratory. 

Can be also included external seminars held by expert researchers on related topics.

Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.

Learning assessment may also be carried out on line, should the conditions require it.

Required Prerequisites

The course requires a good knowledge of the programming languages C, C ++, Java, Python, and/or Matlab, as well as algorithm analysis.

Attendance of Lessons

Attendance of the lessons is not compulsory but strongly recommended to guarantee a suitable degree of understanding of the proposed topics.

Detailed Course Content

The laboratory course will focus on the analysis and development on the several solving-problems algorithmic techniques, such as: (i) informed search strategies (Greedy BFS, A *, heuristic search with limited memory, etc.); (ii) local search strategies; (iii) algorithmic techniques for game theory (Minimax, Alfa-beta, etc.); (iv) algorithms for constraints problems; (v) exact methods; (vi) metaheuristics; and (v) agent-based model.

Textbook Information

  1. Artificial Intelligence, a modern approach, 3rdEdition, S. Russel, P. Norvig.
  2. Metaheuristics: From Design to Implementation, E.G. Talbi, 2009.
  3. Other material will be provided during the lectures.

Course Planning

 SubjectsText References
1Strategie di ricerca informata e non informataMateriale fornito del docente
2Local search algorithms (Local Search, Hill Climbing, etc.)Materiale fornito del docente
3Tecniche algoritmiche per la game theory (Minimax, Alfa-beta, etc.)Materiale fornito del docente
4Algoritmi per problemi con vincoli (Colorazione di mappe, etc.)Materiale fornito del docente
5Exact methodsMateriale fornito del docente
6MetaheuristicsE.G. Talbi, ''Metaheuristics: From Design to Implementation'', Wiley, 2009 
7Agent-based modelMateriale fornito del docente

Learning Assessment

Learning Assessment Procedures

The evaluation is based on the development of an algorithm for solving a given problem provided by the Lecturer in each official date of the exam. The algorithm must be developed using one of the following programming languages: C, C ++ Java, Python or Matlab. In addition to the development of the algorithm, it is also required a descriptive report in LaTeX where the candidate must report in detail all features of the designed algorithm, own originalities and own novelties introduced. A limited of 2 weeks from its start (or in any case within a maximum time established by the Lecturer) is assigned within which to complete the project.

Just after the delivery of the project and the report, an oral interview will take place, focusing on the discussion of the work carried out.

Examples of frequently asked questions and / or exercises

Some project examples can be found at the following link:

https://www.dmi.unict.it/mpavone/lab-ai.html