La programmazione logica come metodologia per la codifica e la risoluzione di rompicapi

Agostino Dovier

Programma

  1. 06/11/2015. Ore 2. Introduzione all'AI, alla Knowledge Representation, al logic Programming e all'uso dei benchmarks. LUCIDI
  2. 13/11/2015. Ore 2 + 1. Sintassi e (un po' di) semantica della programmazione logica. Esempi ed installazione del SW necessario. LUCIDI
  3. 20/11/2015. Ore 2. Modelli di Herbrand. Modelli minimi e stabili. Estensioni sintattiche del linguaggio ASP. LUCIDI
  4. 04/12/2015. Ore 2 + 1. Modeling con ASP. Le N-Regine, il quadrato magico, la capra ed il cavolo, le 3 botti. Esercizi. LUCIDI
  5. 11/12/2015. Ore 2 + 1. Modeling con ASP. La torre di Hanoi, il Sam Lloyd's puzzle, i codici di Hamming, il Sudoku, scheduling (un torneo di calcetto). LUCIDI
  6. 08/01/2016. Ore 2 + 1. Modeling del problema braintwist LUCIDI e del cubo di rubik 2 x 2 (con animazione). Presentazione dello strumento per l'animazione di modelli ASP per problemi su scacchiera. Esercitazione e discussione.
  7. 01/04/2016. Ore 2. Incontro con i partecipanti circa la preparazione di un lavoro didattico-scientifico per il convegno italiano di programmazione logica.
  8. 16/05/2016. Ore 2. Incontro con i partecipanti circa la stesura del materiale didattico, prodotto del corso (assieme ai lucidi usati a lezione).

Materiale Didattico

  1. DISPENSA DIDATTICA Introduzione (intuitiva) all'ASP programming mirata agli studenti delle scuole secondarie di secondo grado, sviluppata con i partecipanti al corso oggetto di questa pagina. [Aggiornata al 17 Maggio 2016].
  2. Dispensa estesa (ma non aggiornatissima) per la programmazione logica in genere e in ASP in particolare.
  3. Materiale preparato dal gruppo di Potsdam, gli implementatori di clingo.

SOFTWARE

  1. Per scrivere i programmi ci serve un editor. In linea di principio ogni editor va bene, ma sono da preferire quelli "snelli" per scrivere file puramente testuali (emacs, aquamacs, winedt, Geany, etc.). In particolare Geany funziona in tutti i sistemi operativi ed è scaricabile da http://www.geany.org/
  2. Il solver che useremo è clingo scaricabile da http://potassco.sourceforge.net/. Una volta scaricato (ed eventualmente "unzippato") posizionate la cartella nella "zona" dove avete gli altri linguaggi di programmazione (o i programmi in genere). A quel punto dobbiamo far conoscere quel PATH (tipo "C:\Program Files\clingo-v4.4\") al vostro computer.

    Da sistemi windows, pannello di controllo, sistema e sicurezza, sistema, impostazioni di sistema avanzate, cliccate su "variabili d'ambiente", selezionate "PATH", cliccate modifica, a quel punto aggiungete (scrivendo o copia incollandolo) il path alla fine del path esistente, concludendo coon un ";" alla fine. Dunque salvate. Ora, ogni volta che aprite una finestra "terminale" (com "cmd") cliccando clingo sarà correttamente lanciata l'esecuzione del solver.

    Da sistemi MACOS, nella "home" si può aggiungere l'alias clingo = "PATH/clingo" nel file ".profile" Se non c'e' il file ".profile" lo si crea prima.