Fondamenti di Intelligenza Artificiale
Esercitazioni
Durante il corso:
Oltre agli esercizi che verranno proposti durante le lezioni, verranno organizzate due esercitazioni persso il Lab2, sugli argomenti:
- Analisi e design di un prototipo per le strategie di ricerca: giovedì 13 maggio dalle ore 10.00 alle ore 16.00. Materiale disponibile:
- Slides dell'esercitazione.
- Soluzione di Missionari/Cannibali scaricata dal sito del testo di Russel, Norvig.
- Soluzione di Missionari/Cannibali proposta dall'Ing. Federico Chesani (distinzione tra "allowed operators" e "admissible states" ).
- Una simpatica animazione Flash sul problema dei Missionari e Cannibali...
- Altre soluzioni, proposte da studenti, sono disponibili alla pagina del Gelato's Cup.
Attenzione! Missionari e Cannibali, se esplorato con strategia depth-first, va in loop infinito... come primi tentavi provare con breadth first e con A*...
- Uso di SICStus Prolog per la soluzioni di alcuni compiti base. Materiale disponibile:
- Alcuni esercizi:
- Sperimentazione del sistema Prolog. A partire da alcuni fatti del tipo padre(X,Y) e madre(X,Y), si mostri come ottenere le relazioni nonno/a(X,Y), bisnonno/a(X,Y), nipote(X,Y), pronipote(X,Y). Soluzione
- Si propone di scrivere relazioni sulle liste per determinare - lunghezza (ricorsivamente ed iterativamente)
- numero di atomi
- appartenenza alla lista o ad un suo elemento (se lista)
- concatenzaione
- inversione (ricorsivamente ed iterativamente)
Descrizione e Soluzione
- Esercizio di crittoaritmetica. Descrizione e Soluzione
- Implementazione di setof senza impiegare setof, bagof, findall. Soluzione
- Gioco del tris con strategia minmax. Soluzione
- Gioco del tris con tagli alfabeta. Soluzione
Gelato's Cup...
Istruzioni per scaricare i progetti tramite Eclipse.
Per l'esame:
Alla prova orale è possibile portare un'esercitazione
pratica su un argomento del corso, previo accordo con il docente. Una lista (non esaustiva) di argomenti
che possono essere oggetto di approfondimento e di sperimentazione
è la seguente:
- Risoluzione di giochi
- Modellazione e risoluzione di Problemi di Soddisfacimento di
Vincoli in linguaggio Prolog o in CLP
- Risoluzione di problemi come ricerca nello spazio degli stati
- Realizzazioni di estensioni del linguaggio Prolog per la
rappresentazione della conoscenza (ambienti a oggetti, a frames,
sistemi di produzione ecc.)