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.
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.
Il corso presuppone una buona conoscenza dei linguaggi di programmazione C, C++, Java, Python e/o Matlab.
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.
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.
| 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). |
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:
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 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.