INTELLIGENZA ARTIFICIALE E LABORATORIOModulo INTELLIGENZA ARTIFICIALE
Anno accademico 2025/2026 - Docente: CAROLINA CRESPIRisultati di apprendimento attesi
Conoscenza e capacità di comprensione (knowledge and understanding): saranno acquisite le conoscenze relative agli aspetti implementativi e progettuali di varie metodologie di algoritmi per la risoluzione di problemi computazionalmente molto complessi e di grandi dimensioni.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): saranno acquisite le capacità necessarie per affrontare e risolvere problemi complessi, attraverso una corretta analisi algoritmica ed una adeguata scelta della metodologia di risoluzione da adottare.
Autonomia di giudizio (making judgements): lo studente sarà in grado di valutare la migliore e la più adatta metodologia algoritmica da utilizzare nel contesto della risoluzione di un qualunque problema complesso e di grandi dimensioni, nonché di problemi del mondo reale.
Abilità comunicative (communication skills): saranno acquisite le necessarie abilità comunicative ed un'adeguata appropriatezza espressiva nella comunicazione di problematiche inerenti i sistemi intelligenti e le loro applicazioni.
Capacità di apprendimento (learning skills): lo studente avrà la capacità di adattare le conoscenze acquisite in nuovi contesti e di comprendere vantaggi e svantaggi delle diverse tecniche di risoluzione intelligenti.
Modalità di svolgimento dell'insegnamento
Le lezioni saranno frontali e si svolgeranno in aula.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel Syllabus.
Prerequisiti richiesti
Il corso presuppone una buona conoscenza dei linguaggi di programmazione C, C++, Java, Python e/o Matlab.
Frequenza lezioni
La frequenza è consigliata. Le lezioni permettono di cogliere meglio gli argomenti trattati e l'idea generale che tiene legati i diversi temi, fornendo riferimenti e discussioni utili.
Contenuti del corso
Il corso affronta le principali metodologie computazionali per la risoluzione di problemi complessi, con particolare attenzione alle strategie di ricerca e ottimizzazione. Dopo una panoramica introduttiva sui concetti fondamentali di ricerca nello spazio delle soluzioni, vengono analizzate le principali strategie di ricerca informata, come Greedy Best-First Search, A* e le varianti con memoria limitata. Segue lo studio delle strategie di ricerca locale, tra cui Local Search e Hill Climbing, utili per l’ottimizzazione in spazi di grandi dimensioni. Una parte del corso è dedicata alle tecniche algoritmiche per giochi e scenari competitivi, comprendenti Minimax e la potatura Alfa-Beta, e agli algoritmi per problemi con vincoli, orientati alla gestione di vincoli discreti e combinatori. Infine, vengono trattati i principali metodi esatti per l’ottimizzazione, come Branch-and-Bound e Branch-and-Cut, con riferimento al loro impiego nella progettazione di soluzioni efficienti e generalizzabili.
Testi di riferimento
- Russell, S., & Norvig, P. Artificial Intelligence: A Modern Approach (3rd Edition). Prentice Hall, 2009. ISBN-10: 0136042597 - ISBN-13: 9780136042594
- Talbi, E.-G. Metaheuristics: From Design to Implementation. Wiley, 2009. ISBN-10: 0470278587 - ISBN-13: 9780470278581
- Materiale didattico (dispense, slide, esercitazioni, articoli) fornito dal docente e reso disponibile sul sito personal del docente: https://www.dmi.unict.it/ccrespi/artificial-intelligence/
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Strategie di ricerca informata e non informata | Russell & Norvig, cap. 3 “Solving Problems by Searching” (3.1–3.6). |
2 | Algoritmi di Ricerca Locale (Local Search, Hill Climbing, etc.) | Russell & Norvig, cap. 4 “Beyond Classical Search” (4.1–4.2); Talbi, cap. 2 “Single-Solution Based Metaheuristics” (2.1–2.3). |
3 | Tecniche algoritmiche per la game theory (Minimax, Alfa-beta, etc.) | Russell & Norvig, cap. 5 “Adversarial Search” (5.1–5.4). |
4 | Algoritmi per problemi con vincoli (Colorazione di mappe, etc.) | Russell & Norvig, cap. 6 “Constraint Satisfaction Problems” (6.1–6.4); Talbi, cap. 5.3 “Combining Metaheuristics with Constraint Programming”. |
5 | Metodi esatti | Talbi, cap. 1.3.1 “Exact Methods” e cap. 5.2 “Combining Metaheuristics with Mathematical Programming”. |
6 | Swarm Intelligence | Talbi, cap. 3.6 “Swarm Intelligence” (3.6.1 Ant Colony Optimization, 3.6.2 Particle Swarm Optimization, 3.7.1 Bees Colony). |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame consiste nello sviluppo progettuale di una metodologia algoritmica per la risoluzione di un dato problema, con relativa relazione descrittiva in Latex. Il progetto dovrà essere completato entro un tempo massimo di 2 settimane dal suo inizio, o entro il tempo massimo stabilito dal docente. Algoritmo da sviluppare e problema da risolvere verranno proposti e comunicati dal docente nella data ufficiale dell'appello. Il progetto dovrà essere sviluppato in uno dei seguenti linguaggi di programmazione: C, C++ Java, Python o Matlab.
Successivamente alla consegna del progetto, seguirà un colloquio orale che verterà sulla discussione dell'elaborato svolto.
Il voto complessivo viene attribuito secondo il seguente schema:
- non approvato: lo studente non ha acquisito i concetti di base e non è in grado di svolgere almeno il 60% degli esercizi pratici (sviluppare un algoritmo di base);
- 18-23: lo studente dimostra una padronanza minima dei concetti di base, e capacità di implementare semplici algoritmi o di base;
- 24-27: lo studente dimostra una buona padronanza dei contenuti del corso, un buona conoscenza dei contenuti ed è in grado di implementare versioni più avanzate degli algoritmi trattati a lezione;
- 28-30 e lode: lo studente ha acquisito ottima padronanza di tutti i contenuti del corso ed è in grado di implementare efficienti e originali algoritmi trattati nel corso, anche di particolare complessità.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo il docente, il referente CInAP del DMI (prof.ssa Daniele) e il CInAP per fruire delle opportune misure compensative.
Esempi di domande e/o esercizi frequenti
Esempi di possibili progetti verranno presentati durante lo svolgimento delle lezioni e resi disponibili nella pagina ufficiale del corso. Tali esempi hanno valore puramente indicativo e non coincidono necessariamente con quelli che verranno proposti durante l’esame.