Indicazioni sull'esame
L'esame consta di una prova orale
sul contenuto del corso e
sullo sviluppo di un progetto.
- Il progetto riguarda la risoluzione, con tecniche di
programmazione dichiarativa di un problema da definire con il
docente, tipicamente:
- decisionale, NP completo
- di ottimizzazione
- di planning
Un sito da cui trarre dei problemi è
CSPILB
Sono stati gia' assegnati i numeri:
012 (Nonogram),
024 (Numeri di Langford's),
029 (Prime queen attacking problem),
033 (Word design),
037 (Solitario Peg),
039 (Rehearsal Problem),
050 (Diamond-free graphs)
più altri.
Altri assegnamenti: A game of light, Traffic Jam,
Nurikabe, Cubo magico in 3D, talisman square, Hidato, Braintwist, maximum density still life, etc.
- Il problema va (eventualmente) codificato e risolto con
metodologia generate & test
- Dunque va risolto con metodologia constrain & generate.
Si parte con un programma altamente dichiarativo in cui
si fa vedere l'effetto della modifica dei parametri del labeling
ed in seguto si ottimizza tale programma
(con idee a cura dello studente, ad esempio euristiche per problemi
di ottimizzazione, scelta ad hoc delle variabili, miglioramento
dei risolutori usando indexicals,...)
- Il problema va anche risolto mediante ASP
oppure, se il problema lo consente, con Action Description Languages.
- Lo studente, nella relazione, dovrà evidenziare le
eventuali differenze computazionali dei vari prototipi.
Sarà gradita (non obbligatoria)
la sperimentazione con più linguaggi.
Nella valutazione si terrà anche conto dello stile
della programmazione (dichiarativo, non deve essere
traduzione in Prolog di codice C!!!)