INTELLIGENZA ARTIFICIALE (elementi) 6 cfu Prof.ssa Stefania Bandini Dott. Alessandro Mosca Dipartimento di Informatica, Sistemistica e Comunicazione Università di Milano-Bicocca www.lintar.disco.unimib.it [email protected] [email protected] tel. 02 6448 7835 Tempi e luoghi Martedì Giovedì 14:30 14:30 → → 16:30 16:30 Aula: U14 T02 Aula: U14 T01 Orario di ricevimento (indicativo): giovedì, dalle 13.30 alle 14.30 Finalità del corso Scopo principale del corso è fornire le conoscenze e i necessari strumenti di base per affrontare temi di ricerca e sviluppare applicazioni nell’area dell’Intelligenza Artificiale. Durante il corso verranno introdotti i principali metodi e modelli concettuali e computazionali che caratterizzano l’Intelligenza Artificiale. Il corso, oltre a fornire alcuni tra i principali aspetti formali di questa disciplina, sarà corredato da esempi pratici di applicazioni per meglio comprenderne l’attualità d’approccio. Argomenti affrontati 1. Introduzione all’Intelligenza Artificiale classica 2. Introduzione alla Rappresentazione della Conoscenza [KR] 3. Approcci computazionali e linguaggi dell’Intelligenza Artificiale 4. Pianificazione Automatica 5. Trattamento dell’incertezza Parte I Intelligenza Artificiale classica: introduzione Storia dell’Intelligenza Artificiale Aspetti epistemologici dell’Intelligenza Artificiale Articolazioni dell’Intelligenza Artificiale e sue relazioni con altre discipline Intelligenza Artificiale, Reti Neurali e Algoritmi Genetici La nozione di Agente nell’Intelligenza Artificiale Parte II Rappresentazione della Conoscenza Logica e rappresentazione della conoscenza Reti semantiche e grafi concettuali Frame systems e approcci object oriented Ragionamento basato su Casi Approccio ontologico alla rappresentazione della conoscenza Parte III.a Strumenti computazionali e linguaggi dell’IA Programmazione funzionale e LISP – – – – Introduzione alla programmazione funzionale LISP: sintassi e stile di programmazione Esempi storici e attualita’ del LISP Un esempio: la bioinformatica Programmazione Logica e Prolog – Prolog, introduzione alla programmazione logica: approccio dichiarativo alla programmazione • Clausole di horn, sintassi, Risoluzione – Prolog e altre classi di programmi logici • Backtracking, negazione per fallimento e CUT • Espressività di Prolog e programmi logici (AnsProlog) Parte III.b Strumenti computazionali e linguaggi dell’IA Algoritmi di ricerca: concetti base – Rappresentazione dei problemi – Rappresentazione dello spazio degli stati Ricerca non informata – Ricerca in profondità e in ampiezza: depht first e breadth-first – IDA: iterative deepening Ricerca informata – La nozione di euristica e le funzioni euristiche – Ricerca best-first: ricerca greedy, A*, IDA* Applicazione degli algoritmi a casi di studio reali – Il caso della formulazione chimica Parte IV Pianificazione automatica Pianificazione e ricerca – Elementi base per problem solver basati sulla ricerca • Rappresentazione di azioni, stati, goal e piani Pianificazione e ragionamento – – – – Pianificazione e Calcolo Situazionale Rappresentazione classica: STRIPS Pianificazione nello spazio degli stati e dei piani Partial-order Planning – Decomposizione e pianificazione gerarchica Parte V Trattamento dell’incertezza Teoria dei fuzzy-set e logica fuzzy: definizioni di base Proprietà matematiche degli insiemi fuzzy Collegamenti tra teoria dei fuzzy-set e semantica del linguaggio naturale Applicazioni pratiche: – Sistemi di ragionamento in condizioni di incertezza – Uso degli insiemi fuzzy per l'information retrieval Materiale didattico Testo in adozione: – S.J. Russell, P. Norvig, Intelligenza Artificiale: un approccio moderno, 2a ed. (Pearson - Prentice Hall), 2005. Altro materiale: – Durante il corso verrà segnalato e fornito ulteriore materiale relativo a parti specifiche del corso – I lucidi delle lezioni saranno disponibili sul sito del LabIC (www.labic.disco.unimib.it) Modalità d’esame Un elaborato di approfondimento concordato col docente su una delle tematiche relative all’Intelligenza Artificiale introdotte nel corso (eventualmente... sviluppo di un progetto software) Esame orale sull’intero programma.