ARTIFICIAL INTELLIGENCE
Anno accademico 2025/2026 - 3° annoSSD: INF/01 - Informatica
Crediti: 9
Periodo: 1° semestre
VINCENZO CUTELLO
Risultati di apprendimento attesi
Conoscenza e capacità di comprensione (knowledge and understanding): saranno acquisite le conoscenze relative agli Agenti Intelligent ed alle loro caratteristiche principali.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): saranno acquisite le capacità per applicare le nozioni imparate in vari campi come: risoluzione di problemi combinatorialmente difficili, giochi e teoria delle decisioni, deduzione e ragionamento automatico.
Autonomia di giudizio (making judgements): Lo studente sarà in grado di valutare la possibilità di sviluppare algoritmi e sistemi intelligenti per l'automazione di processi decisionali in diversi ambiti applicativi.
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 capacita di adattare le conoscenze acquisite anche a nuovi contesti e di comprendere i limiti di applicabilità delle tecniche di intelligenza artificiale.
Modalità di svolgimento dell'insegnamento
Lezioni frontali in classe.
Prerequisiti richiesti
Il corso presuppone una buona conoscenza di strumenti matematici discreti e continui, ed una conoscenza approfondita di algoritmi e complessita' di problemi.
Frequenza lezioni
La frequenza è consigliata. Le lezioni permettono di cogliere meglio gli argomenti trattati e l'idea generale che tiene legati i diversi temi e forniscono riferimenti e digressioni utili.
Contenuti del corso
Il corso è suddiviso in 2 parti fondamentali. La prima parte su Risoluzione di Problemi e la seconda su Conoscenza, Ragionamento e Apprendimento
Contenuti dettagliati del Corso:
PRIMA PARTE: Risoluzione di Problemi
- Fondamenti e Storia dell'Intelligenza Artificiale
- Agenti Intelligenti e loro classificazione
- Ricerca e risoluzione di problemi
- RIcerca nei giochi
- Problemi con soddisfacimento di vincoli
- Ricerca per mezzo di algoritmi naturali
SECONDA PARTE: Conoscenza, Ragionamento e Apprendimento
- Agenti Logici e puzzles
- Logica del primo ordine e inferenze
- Incertezza e probabilità
- Decisioni, utilità e valore dell'informazione
- Apprendimento da esempi
Testi di riferimento
Il Libro di testo adottato è, Artificial Intelligence, a modern approach, 3rd Edition, S. Russel, P. Norvig, Disponibile anche in versione italiana. Altro materiale sara' fornito dal docente a lezione.
Programmazione del corso
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Fondamenti e Storia dell'Intelligenza Artificiale | Cap. 1 e 27 |
| 2 | Agenti Intelligenti | Cap. 2 |
| 3 | Risoluzione dei problemi per mezzo di ricerca | Cap. 3 |
| 4 | Oltre la ricerca classica | Cap. 4 |
| 5 | Ricerca con avversari e giochi | Cap. 5 |
| 6 | Problemi con soddisfacimento di vincoli | Cap. 6 |
| 7 | Agenti Logici | Cap. 7 |
| 8 | Logica del primo ordine | Cap. 8 |
| 9 | Inferenza nella logica del primo ordine | Cap. 9 |
| 10 | Quantificare l'incertezza | Cap. 13 |
| 11 | Decisioni Semplici | Cap. 16 |
| 12 | Apprendimento da esempi | Cap. 18 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame si svolge oralmente.
I quesiti riguardano tutte le parti del programma. In aggiunta, gli studenti presenteranno alla prova orale un progetto implementativo su uno degli argomenti del corso approfondito durante il Laboratorio.
Esempi di domande e/o esercizi frequenti
-
Dare la definizione, e mostrare almeno un esempio, di funzione euristica ammissibile.
-
Descrivere brevemente l’algoritmo Minimax
-
Descrivere brevemente alcune euristiche per il Problema di Soddisfacimento di Vincoli.
CAROLINA CRESPI
Risultati 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.