Home | Search | Help  
Home PageUniversità di Genova

Intelligenza Artificiale - a.a. 2006-2007

Docenti titolari del corso

Prof. Maurizio Martelli
Dott. Viviana Mascardi

Collaboratori

Dott. Valentina Cordì
Dott. Roberto Montagna


Indice degli argomenti




Prerequisiti

Si assume la conoscenza del linguaggio Java (i cui fondamenti si apprendono nel corso di Linguaggi di Programmazione (2°LT) e che quindi tutti gli studenti dal terzo anno in poi conoscono), nel quale verranno implementati una parte degli algoritmi mostrati a lezione


Descrizione e contenuti

Parole chiave del corso:
Agenti intelligenti; Strumenti per ingegnerizzare ed implementare agenti; conoscenza e ragionamento; risoluzione di problemi; giochi; pianificazione; conoscenza incerta; apprendimento; comunicazione; riconoscimento del linguaggio naturale; percezione e azione (cenni)


Contenuti del corso:
  • Introduzione (2 ore)
    • Organizzazione del corso, modalità di esame
    • Cos'è l'intelligenza artificiale (IA)
    • I fondamenti dell'IA
    • La storia dell'IA

  • Agenti intelligenti (8 ore)

    • Gli agenti intelligenti: un concetto unificante per l'IA moderna
    • Storia, origini e applicazioni degli agenti intelligenti
    • Architetture e linguaggi per agenti
    • Ingegnerizzazione del Software orientata agli agenti (Agent-Oriented Software Engineering, AOSE)
    • Piattaforme per implementare sistemi con più agenti (Multiagent systems, MAS)

  • Conoscenza e ragionamento: due elementi fondamentali per realizzare agenti intelligenti (14 ore)

    • Agenti logici e Prolog
    • Rappresentare la conoscenza mediante ontologie

  • Agenti che risolvono problemi (8 ore)

    • Risolvere i problemi con la ricerca
    • Ricerca informata ed esplorazione
    • Ricerca con avversari: i giochi

  • Altre attività tipiche degli agenti intelligenti (8 ore)

    • Pianificazione
    • Conoscenza incerta
    • Apprendimento

  • Comunicazione, percezione e azione (8 ore)

    • Comunicazione come azione
    • Elaborazione del linguaggio naturale
    • Ontologie e linguaggio naturale
    • Percezione e Azione (robotica): cenni




Testo adottato

  • Per la parte di Intelligenza Artificiale, il testo adottato è:
    Russel S., Norvig P.Intelligenza Artificiale: un approccio moderno, Traduttore: Gaburri S.; Editore: Pearson Education Italia; Data di Pubblicazione: 2005
    Il materiale a supporto della versione in inglese si trova qui .
  • Per la parte di Prolog, si consigliano i seguenti testi:
    Sterling L., Shapiro E. The art of Prolog, The MIT Press, 1986.
    Levi G., Patricelli F. PROLOG: linguaggio, applicazioni ed implementazioni, Scuola Superiore G. Reiss Romoli, L'Aquila, 1993. (ISBN 88 85280 15 3). In italiano
    Console L., Lamma E., Mello P., Milano M. Programmazione Logica e PROLOG, UTET Università, 1997. In italiano



Software utilizzato




Argomenti delle lezioni e materiale didattico

  • Luogo delle lezioni: 710

  • Orario settimanale: Lun 16-18, Mer 14-16.

  • COPYRIGHT DISCLAIMER

    Le slide del corso possono contenere materiale protetto da copyright.
    In particolare, molte slide sulla parte di Intelligenza Artificiale sono tratte dal materiale reso disponibile su Web da Russel e Norvig, come parte integrante del testo Artificial Intelligence: A Modern Approach.
    Le slide su Prolog sono basate sul materiale che il Professore Peter Schachte ha reso disponibile su Web per il Logic and Computation Course tenuto al Computer Science Department of the University Melbourne.
    Tale materiale è disponibile su Web solo per garantire una efficace diffusione tra gli studenti del corso di Intelligenza Artificiale tenuto presso il Dipartimento di Informatica (DISI) dell'università degli Studi di Genova, ed è mirato al loro esclusivo uso personale.
    Ogni utilizzo diverso da quello personale da parte degli studenti è proibito.


    The material prepared for the lessons may contain material protected by copyright laws.
    In particular, many lessons are based on the material that Russel and Norvig made available on the Web, as part of their book Artificial Intelligence: A Modern Approach
    The slides on Prolog are based on the material that Professor Peter Schachte made available on the Web as part of the Logic and Computation Course at the Computer Science Department of the University Melbourne.
    This material is available on the Web only to ensure timely dissemination among the students of the AI Course at the Computer Science Department of the University of Genova, and is meant only for students’ personal use.
    Any use different from the student's personal use is prohibited.

    Introduzione

  1. 2/10/06 - Lun. 16-18, 2 h (Martelli) - L1, L2
    • Obiettivi del corso, modalita' di esame
    • Presentazione del corso Intelligenza Artificiale I
    • Cos'è l'intelligenza artificiale (IA)
    • I fondamenti dell'IA
    • La storia dell'IA
    • Materiale didattico
      Introduction-printable.zip (versione stampabile)
    • Codice
      Nessuno

    Agenti Intelligenti

  2. 4/10/06 - Mer. 14-16, 2 h (Mascardi) - L3, L4
    • Introduzione agli agenti intelligenti: un concetto unificante per l'IA moderna
    • Storia, origini, architetture e teorie per gli agenti intelligenti
    • Materiale didattico
      AgentsAndMASs.zip (versione stampabile)
    • Codice
      Nessuno
  3. 9/10/06 - Lun. 16-18, 2 h (Mascardi) - L5, L6
    • Linguaggi per agenti
    • Applicazioni di agenti e MASs
    • Materiale didattico
      Lo stesso della lezione precedente
    • Codice
      Nessuno
  4. 11/10/06 - Mer. 14-16, 2 h (Mascardi) - L7, L8
    • Ingegnerizzazione del Software orientata agli agenti (Agent-Oriented Software Engineering, AOSE)
    • Metodologie
    • Notazioni
    • Infrastrutture
    • Materiale didattico
      AOSE.zip (versione stampabile)
    • Codice
      Nessuno
  5. 16/10/06 - Lun. 16-18, 2 h (Mascardi) - L9, L10

    Conoscenza e ragionamento

  6. 18/10/06 - Mer. 14-16, 2 h (Mascardi) - L11, L12
    • Pagine 1-30 delle slide Prolog1.pdf:
      • Predicates
      • Making Queries
      • Variables
      • Multiple Directions
      • Compound Queries
      • Constraints
      • Clause Bodies
      • Recursive Predicates
      • Querying Recursive Predicates
      • Disjunction
      • Logic Databases
      • Database Queries
      • Not Equals
      • Typeless language
      • Atoms and Numbers
      • Variables
      • Exercises
    • Materiale didattico
      Prolog1.zip
    • Codice
      Alcuni esempi di programmi Prolog sono disponibili nella cartella 16-10-2006
      Gli esercizi svolti a lezione sono disponibili nella cartella 18-10-2006
  7. 23/10/06 - Lun. 16-18, 2 h (Montagna) - L13, L14
    • Pagine 31-49 delle slide Prolog1.pdf:
      • Compound Terms
      • Variables in Terms
      • Anonymous Variables
      • Unification
      • Data Structure Construction and Access
      • Argument Passing
      • Groundness
      • Recursive Structures
      • Programming Numbers as Terms
      • Example Queries
      • Lists
      • List Membership
      • Member in Action
      • List Concatentation
      • Append in Action
    • Materiale didattico
      Quello della lezione precedente (Prolog1.pdf)
    • Codice
      Gli esercizi svolti a lezione sono disponibili nella cartella 23.25-10-2006
  8. 25/10/06 - Mer. 14-16, 2 h (Montagna) - L15, L16
    • Pagine 50-72 delle slide Prolog1.pdf:
      • Resolution
      • The Basic Algorithm
      • Example (without backtracking)
      • Backtracking
      • Backtracking Example
      • Example: Search Tree
      • Generate and Test
      • Reverse
      • Reverse Goes Wrong
      • Reverse Example
      • Reverse Body Reordered
      • Accumulator variables
      • Removing an item from a list
    • Materiale didattico
      Quello della lezione precedente (Prolog1.pdf)
    • Codice
      Gli esercizi svolti a lezione sono disponibili nella cartella 23.25-10-2006
  9. 30/10/06 - Lun. 16-18, 2 h (Mascardi) - L17, L18
    • Prolog3.pdf, tutto, più alcune parti di Prolog2.pdf
      • Clauses
      • Horn clauses
      • Definite and negative Horn clauses
      • Substitutions
      • Unification
      • M.G.U.
      • SLD resolution
      • SLD tree
      • How the Prolog Interpreter works (Pagine 50-54 di Prolog2.pdf)
      • Procedural vs declarative view of Prolog programs
    • Materiale didattico
      Prolog2.zip
      Prolog3.zip
    • Codice
      Nessuno
  10. 6/11/06 - Lun. 16-18, 2 h (Mascardi) - L19, L20
  11. 8/11/06 - Mer. 14-16, 2 h (Mascardi) - L21, L22
    • Teoria: Le librerie DCaseLP per integrare agenti logici in JADE
    • Laboratorio: Esercizi su agenti Prolog integrati in JADE
    • Materiale didattico
      labo-8-11-2006.doc
    • Codice
      Disponibile nella cartella 8-11-2006
  12. 13/11/06 - Lun. 16-18, 2 h (Cordì) - L23, L24

    Comunicazione, percezione e azione

  13. 15/11/06 - Mer. 14-16, 2 h (Mascardi) - L25, L26
  14. 20/11/06 - Lun. 16-18, 2 h (Mascardi) - L27, L28
    • Elaborazione del linguaggio naturale
    • Materiale didattico
      Lo stesso della lezione precedente
    • Codice
      Lo stesso della lezione precedente
  15. 22/11/06 - Mer. 14-16, 2 h (Cordì) - L29, L30

    Agenti che risolvono problemi

  16. 27/11/06 - Lun. 16-18, 2 h (Martelli) - L31, L32
    • Risolvere i problemi con la ricerca
      Un sottoinsieme dei seguenti argomenti:
      • definizione, classificazione e rappresentazione dei problemi
      • ricerca in ampiezza
      • ricerca guidata dal costo
      • ricerca in profondità
      • ricerca in profondità limitata
      • ricerca in profondità con approfondimenti successivi
      • ricerca bidirezionale
    • Materiale didattico
      RisolvereProblemiConLaRicerca-printable.zip (versione stampabile)
      Riferimento bibliografico: Capitolo 3 del testo di Russel e Norvig, edizione in italiano
    • Codice
      Si veda lezione del 4/12/06
  17. 29/11/06 - Mer. 14-16, 2 h (Martelli) - L33, L34
    • Ricerca informata ed esplorazione
      Un sottoinsieme dei seguenti argomenti:
      • best-first search
      • greedy search
      • algoritmo A*
      • iterative deepening A*
      • hill climbing search
      • simulated annealing
    • Materiale didattico
      RicercaInformataEsplorazione-printable.zip (versione stampabile)
      Riferimento bibliografico: Capitolo 4 del testo di Russel e Norvig, edizione in italiano
    • Codice
      Si veda lezione del 4/12/06
  18. 4/12/06 - Lun. 16-18, 2 h (Mascardi) - L35, L36
    • Esercizi su problem solving e strategie di ricerca
    • Materiale didattico
      Quello delle due lezioni scorse
    • Codice
      ps.pl
  19. 6/12/06 - Mer. 14-16, 2 h (Martelli) - L37, L38
    • Ricerca con avversari: i giochi
      Un sottoinsieme dei seguenti argomenti:
      • Giochi perfetti
      • Decisioni minimax
      • alpha-beta pruning
      • Limitazioni di risorse e valutazioni approssimate
      • Giochi nondeterministici (casuali)
      • Giochi a informazione imperfetta
    • Materiale didattico
      GamePlaying-printable.zip (versione stampabile)
    • Codice
      Si veda lezione del 20/12/06

    Altre attività razionali tipiche degli agenti intelligenti

  20. 11/12/06 - Lun. 16-18, 2 h (Martelli) - L39, L40
    • Pianificazione
      Un sottoinsieme dei seguenti argomenti:
      • Definizione della pianificazione
      • Pianificazione nel situation calculus
      • Pianificazione in STRIPS
      • Partial Order Planning (POP)
      • Pianificazione come soddisfacibilità proposizionale (SAT)
    • Materiale didattico
      Planning-printable.zip (versione stampabile)
    • Codice
      Si veda lezione del 20/12/06
  21. 13/12/06 - Mer. 14-16, 2 h (Martelli) - L41, L42
    • Conoscenza incerta
      Un sottoinsieme dei seguenti argomenti:
      • Incertezza
      • Probabilità
      • Assiomi della probabilità
      • Inferenza probabilistica per enumerazione
      • Indipendenza
      • Regola di Bayes
      • Utilizzo della regola di Bayes
    • Materiale didattico
      Uncertainty-printable.zip (versione stampabile)
    • Codice
      Si veda lezione del 20/12/06
  22. 18/12/06 - Lun. 16-18, 2 h (Paolo Ferraris) - L43, L44
    • Answer Set Programming
      • Introduzione al seminario, nozioni di background (30 min, Martelli)
      • stable model semantics
      • comparison with Prolog
      • answer set programming (ASP)
      • comparison with Prolog, satisfiability and constraint programming
      • evolution in the syntax of ASP
      • comparison between different extensions
      • general definition of a stable model
    • Materiale didattico
      Le slide del seminario verranno rese disponibili a breve
    • Codice
      Nessuno
  23. 20/12/06 - Mer. 14-16, 2 h (Cordì) - L45, L46
    • Esercizi su pianificazione e conoscenza incerta
    • Materiale didattico
      Quello delle lezioni del 6, 11 e 13 dicembre
    • Codice
      Disponibile a breve
  24. Lezione jolly (recupero della lezione persa il 1 novembre)
    2 h (Cordì o Montagna) - L47, L48
    • Descrizione della esercitazione

Testi degli esami dell'anno accademico 2006-2007

Prospetto dei voti

  • Camasta: scritto 27 (16/2/07); esercitazione --; voto finale --
  • Casu: scritto 25.5 (16/2/07); esercitazione 2; voto finale 27
  • De Pascale: scritto 24 (20/06/07); esercitazione 1 (a.a. 03/04); voto finale 25
  • Ferretti: scritto 30 (26/09/07); esercitazione 3; voto finale 30 lode
  • Marchese: scritto 25.5 (26/09/07); esercitazione 3+; voto finale 29
  • Panozzo: scritto 27 (9/1/07); esercitazione 3+; voto finale 30 lode
  • Poggi: scritto 32 (26/09/07); esercitazione 3; voto finale 30 lode
  • Romagnoli: scritto 24.5 (17/07/07); esercitazione 2.5; voto finale 27
  • Zini: scritto 31 (20/06/07); esercitazione 3; voto finale 30 lode

Totale ore del corso

Totale ore svolte dal Prof. Martelli: 12h + 30 minuti di introduzione al seminario di Paolo Ferraris
Totale ore svolte dal Dott. Mascardi: 22
Totale ore svolte dalla Dott. Cordì: 6 (8 se descrive l'esercitazione)
Totale ore svolte dal Dott. Montagna: 4 (6 se descrive l'esercitazione)
Totale ore svolte da ricercatori invitati: 1,30 svolta da Paolo Ferraris
Totale: 48 ore


Modalita' d'esame

  • Il corso prevede 1 compito che verrà valutato con voti nel range [0..28] ed una esercitazione che verrà valutata nel range [0..5].
  • Per chi ha sostenuto e superato il compito il voto finale è attribuito come somma del voto del compito e dell'incremento dovuto alla esercitazione.
  • Sarà attribuita la lode a chi avrà un voto complessivo (ottenuto come sopra) maggiore di 30.
  • In rari casi, su richiesta dello studente, si può prevedere un orale al posto o a integrazione del compito.