- Oggetto:
- Oggetto:
Intelligenza Artificiale e Laboratorio
- Oggetto:
Artificial Intelligence (with experimentations)
- Oggetto:
Anno accademico 2023/2024
- Codice dell'attività didattica
- MFN0942
- Docenti
- Gian Luca Pozzato (Titolare)
Roberto Micalizio (Titolare) - Corso di studi
- [008515] Laurea magistrale in informatica
- Anno
- 1° anno
- Periodo didattico
- Secondo semestre
- Tipologia
- Caratterizzante
- Crediti/Valenza
- 9 CFU - Numero di ore - Number of hours: 24 (in aula) + 48 (in laboratorio)
- SSD dell'attività didattica
- INF/01 - informatica
- Modalità di erogazione
- Tradizionale
- Lingua di insegnamento
- Italiano
- Modalità di frequenza
- Facoltativa
- Tipologia d'esame
- Orale
- Prerequisiti
- Per essere proficuamente seguito, l'insegnamento richiede conoscenze di base di Intelligenza Artificiale in particolare per quanto riguarda la nozione di agente intelligente, le problematiche di risoluzione automatica di problemi e i concetti basilari di rappresentazione della conoscenza. Per quanto riguarda le competenze di sviluppo/implementazione è richiesta la conoscenza di tecniche di programmazione e le nozioni di base di ingegneria del software.
Insegnamenti propedeutici (forniscono le competenze attese in ingresso): L'insegnamento di "Sistemi Intelligenti" della laurea triennale (o il corso da esso mutuato di “Istituzioni di sistemi intelligenti” per la laurea magistrale) fornisce le conoscenze attese in ingresso. Gli studenti che non abbiano esperienza nel settore troveranno utile documentarsi con attenzione sul testo S. Russell, P. Norvig. Intelligenza Artificiale, Un approccio moderno, terza edizione, Pearson/Prentice Hall concentrando l’attenzione sui capitoli 2, 3, 6, 7, 8 e 9.The course requires to be aware of the basic concepts of Artificial Intelligence, in particular concerning the notion of intelligent agent, the difficulties related to automated problem solving, and the basis of knowledge representation. Concerning implementation/development skills, the course requires to be aware of programming techniques and of the basic notions of software engineering.
Preparatory courses (providing the expected entry skills): Expected competences are provided by either the course "Sistemi Intelligenti" of the "laurea triennale" or the equivalent “Istituzioni di sistemi intelligenti” of the"laurea magistrale". Students that are not familiar with basic concepts of Artificial Intelligence will find a useful help in the book S. Russell, P. Norvig. Intelligenza Artificiale, Un approccio moderno, terza edizione, Pearson/Prentice Hall (in English,S. Russell, P. Norvig.Artifical Intelligence: a Modern Approach, 3rd Edition, Pearson) focusing their attention on chapters 2, 3, 6, 7, 8 and 9. . - Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
L'insegnamento ha l’obiettivo di approfondire le conoscenze di Intelligenza Artificiale con particolare riguardo alle capacità di un agente intelligente di fare inferenze sulla base di una rappresentazione esplicita della conoscenza sul dominio. Alle competenze metodologiche si affiancano competenze progettuali perché il corso prevede la sperimentazione di metodi di ragionamento basati sul paradigma della programmazione logica, lo sviluppo di un agente intelligente in grado di esibire sia comportamenti reattivi che deliberativi (utilizzando ambienti basati su regole di produzione) e la sperimentazione di strumenti per architetture cognitive. L'insegnamento concorre agli obiettivi formativi dell'ambito "sistemi per il trattamento dell'informazione" del Corso di Laurea Magistrale in Informatica.The main objective of the course is to provide a deep investigation of Artificial Intelligence, in particular concerning the abilities of an intelligent agent to perform inferences from an explicit knowledge base of a given domain. In addition to methodological skills, also project development skills will be taken into account, since the course comprises the experimentation of automated reasoning mechanisms based on logic programming, as well as the development of an intelligent agent able to exhibit both deliberative and reactive behaviors (by using tools based on production rules) and the use of tools for cognitive architectures. This course provides a contribution towards the objectives in the field of "Systems for data management and manipulation" of the Corso di Laurea Magistrale in Informatica.- Oggetto:
Risultati dell'apprendimento attesi
Al termine del corso lo studente deve aver acquisito sia competenze metodologiche relative a meccanismi di ragionamento (anche in presenza di incertezza), che confidenza con i formalismi per la rappresentazione della conoscenza, con le strategie per la pianificazione e la diagnosi automatica e con le architetture cognitive. Mentre queste conoscenze possono essere ascritte alle problematiche di Know What, il corso attraverso la parte di laboratorio sviluppa anche le competenze di Know How, in particolare: la capacità di progettare e implementare un agente intelligente con capacità sia deliberative che di monitoraggio del proprio piano di azione; lo sviluppo di metodi intelligenti utilizzando strumenti basati sulla programmazione logica e sul paradigma dell’Answer Set Programming; l’utilizzo di strumenti per la rappresentazione di conoscenza probabilistica e per l’inferenza su tali modelli, con riferimento a compiti di ragionamento quali la diagnosi automatica; l'utilizzo di architetture cognitive per apprendimento e risoluzione dei problemi. Nell’ambito del corso e dell’esame verrà incoraggiata e valutata la capacità di integrare le conoscenze metodologiche con quelle progettuali al fine di fare scelte motivate su quali strategie/metodologie/strumenti adottare, valutando i benefici e le criticità di tali scelte. La richiesta di fare, in sede d’esame, una breve presentazione sulla parte progettuale svolta presuppone che lo studente abbia maturato la capacità di comunicare le principali scelte effettuate, argomentando in modo chiaro le motivazioni di tali scelte. Lo studio di problematiche complesse (di cui non sempre è disponibile un trade–off) fornisce le basi per una esperienza di apprendimento in gran parte autonomo, che sarà utile nelle fasi successive della carriera di ricerca o professionale.At the end of the course the student must have acquired both methodological skills related to reasoning mechanisms (even in the presence of uncertainty), and confidence with formalisms of knowledge representation and with strategies for planning, automatic diagnosis and cognitive architectures. While this knowledge can be ascribed to the problems of Know What, the laboratory part also develops the skills of Know How, in particular: the ability to design and implement an intelligent agent with both deliberative and monitoring skills of action plans; the development of intelligent methods using tools based on logic programming and the Answer Set Programming paradigm; the use of tools for the representation of probabilistic knowledge and for inference on these models, with reference to reasoning tasks such as automatic diagnosis; the use of cognitive architectures for learning and problem solving. As part of the course and the exam, the ability to integrate methodological knowledge with design knowledge will be encouraged and evaluated in order to make motivated choices on which strategies / methodologies / tools to adopt, evaluating the benefits and criticalities of these choices. Fo the exam, the students have to provide a brief presentation about the developed the project, in order to show that they gained the ability to communicate the main choices, clearly arguing the reasons for these choices. The study of complex issues (for which a trade-off is not always available) provides the basis for a largely autonomous learning experience, which will be useful in the later stages of the research or professional career.- Oggetto:
Modalità di insegnamento
L'insegnamento prevede lezioni svolte in laboratorio con l'ausilio di lavagna e gesso (o di alternative come tablet e tavoletta grafica) e di un calcolatore usato dal docente per la proiezione di lucidi/slides sulla parte metodologica e lo sviluppo passo a passo dei programmi per la parte sperimentale.The course is in the labs and the teaching is supported with the use of a board (or alternatives such as tablets and graphical pads) and of a computer to possibly show slides for the presentation of the methodological part and step-by-step development of programs for the practical part.- Oggetto:
Modalità di verifica dell'apprendimento
L'esame consiste in una interrogazione individuale sugli argomenti trattati nella parte metodologica del corso e dalla presentazione e discussione dei progetti (sviluppati anche in gruppo di massimo 3 persone) proposti durante lo svolgimento del corso. L'esame prevede anche la dimostrazione on-line dei sistemi sviluppati. Prima dell’esame orale è necessario inviare ai docenti, almeno 5 giorni prima della data dell'appello, il codice sviluppato per i progetti e alcune slides contenenti una descrizione dei sistemi/esercizi sviluppati nonché una analisi critica dei risultati sperimentali ottenuti. Il giudizio finale è determinato, in ugual misura, da completezza e chiarezza espositiva dimostrate durante l'interrogazione e dalla qualità dei progetti presentati e difesi. Previo accordo con i docenti, sarà possibile discutere in giorni diversi, ma comunque nei giorni precedenti la data dell'appello ufficiale, i progetti di laboratorio. Nel caso i progetti siano sviluppati in gruppo, tutti i membri del gruppo devono sostenere l'esame orale nel medesimo appello, contestualmente ad una presentazione di gruppo dei progetti stessi. Nel caso uno o più membri del gruppo decidano di sostenere l'esame in un appello successivo a quello in cui hanno sostenuto la prova i compagni di gruppo, sarà richiesta un'integrazione ai progetti di laboratorio già svolti. La prova d'esame si svolgerà secondo le seguenti regole: - per sostenere la discussione è necessario che tutti i componenti del gruppo si iscrivano su myunito e che tutte le parti del progetto di laboratorio, siano complete; - la discussione si articola in 4 prove: 1. discussione del progetto programmazione logica-ASP, da sostenere con il Prof. Pozzato 2. discussione del progetto CLIPS, da sostenere con il Prof. Micalizio 3. discussione del progetto su sistemi cognitivi, da sostenere con il Prof. Lieto 4. esame orale sulla parte metodologica, da sostenere con tutti e tre i docenti. In occasione di ogni appello i tre docenti metteranno a disposizione sulla pagina moodle dell’insegnamento una risorsa per la prenotazione di slot, che un rappresentante per gruppo selezionerà per la discussione. Ogni gruppo dovrà prenotare uno slot per ciascuna delle quattro prove, senza vincoli sull’ordine di discussione dei progetti di laboratorio, mentre l’esame sulla parte metodologica sarà l’ultimo, e sarà sostenibile solo dopo aver discusso i tre progetti di laboratorio (prova 4 solo dopo aver completato le prove 1, 2, 3). Non è possibile sostenere discussioni in appelli differenti: la prova d’esame è da considerarsi unica, quindi tutti i membri del gruppo devono sostenere le 4 discussioni selezionando obbligatoriamente uno slot tra quelli proposti per l’appello selezionato per ciascuna delle 4 discussioni. Il mancato superamento di una delle prove implica la necessità di sostenere interamente l’esame in un altro appello. Pertanto, è opportuno iscriversi all’esame solo quando: - tutti i progetti di laboratorio sono completi - la preparazione della parte metodologica è adeguata.The exam consists of an oral exam about the topics of the methodological part and about presentation and discussion of the projects (also developed in groups of maximum 3 people) proposed during the course. The exam also includes the on-line demonstration of the developed systems. Before the oral exam it is necessary to send to the teachers, at least 5 days before the date of the exam, the developed code and some slides containing a description of the systems / exercises developed as well as a critical analysis of the experimental results. The oversall mark is determined, in equal measure, by completeness and clarity of presentation proved during the discussions as well as by the quality of the projects developed.
By agreement with the teachers, it will be possible to discuss the laboratory projects on different days, but in any case in the days preceding the official date. If the projects are developed in groups, all members of the group must take the oral exam in the same session, together with a group presentation of the projects themselves. If one or more members of the group decide to take the exam in a session subsequent to the one selected by the group, an integration to the laboratory projects already carried out will be required. The exam will take place according to the following rules: - to support the discussion it is necessary that all the members of the group register on myunito and that all parts of the laboratory project are complete; - The discussion is divided into 4 tests: 1. discussion of logic programming-ASP (Prof. Pozzato) 2. discussion of the CLIPS project (Prof. Micalizio) 3. discussion of the project on cognitive systems (Prof. Lieto) 4. oral exam on the methodological part, to be taken with all three teachers. On each exam date, the three teachers will provide a resource for booking slots on the moodle page of the course; each group will select a slot by means of a single registration by a single member (representing all the team).
Each group will have to book a slot for each of the four tests, without constraints on the order of discussion, while the exam on the methodological part will be the last one, to be accessible only after discussing the three laboratory projects (test 4 only after completing tests 1, 2, 3). It is not possible to hold discussions in different appeals: the exam is to be considered as a single proof, so all members of the group must take the 4 discussions by selecting a slot among those proposed for the selected component. Failure to pass one of the tests implies the need to take the exam in full in another appeal. Therefore, it is desirable to register for the exam only when: - all laboratory projects are complete - the preparation of the methodological part is adequate.- Oggetto:
Programma
Come è evidente dal nome stesso del corso, il corso di Intelligenza Artificiale contiene sia una parte metodologica che una parte progettuale/sperimentale di laboratorio. • Formalismi logici per la rappresentazione della conoscenza e ragionamento. Dal punto di vista metodologico saranno affrontate problematiche relative a: meccanismi di ragionamento per calcolo dei predicati del primo ordine, programmazione logica, ragionamento non monotono, answer set programming. Queste metodologie verranno affrontate dal punto di vista sperimentale con l’introduzione dei principali costrutti del Prolog, lo sviluppo di strategie di ricerca in Prolog e l’utilizzo dell’ambiente CLINGO nella risoluzione di problemi in cui sia necessaria l’applicazione di meccanismi di ragionamento non monotono e del paradigma dell’Answer Set Programming. • Pianificazione automatica: rappresentazione delle azioni e degli obiettivi, metodi per la generazione automatica di piani. • Ragionamento in presenza di incertezza: ragionamento probabilistico, reti bayesiane e metodi di ragionamento su reti bayesiane, modelli probabilistici temporali. • Sviluppo di un agente intelligente in grado di esibire sia comportamenti deliberativi che reattivi in un ambiente parzialmente osservabile. Per lo sviluppo dell’agente viene introdotto l’ambiente CLIPS che fornisce un ambiente collaudato ed efficiente per sistemi a regole di produzione e viene mostrato come sia possibile sviluppare alcune funzionalità di base di risoluzione di problemi utilizzando il motore inferenziale di CLIPS. • Sviluppo di un agente basato su una architettura cognitiva (SOAR) in grado di apprendere per rinforzo le action policy di un problema. Per lo sviluppo dell'agente saranno introdotti i principali temi di modellazione cognitiva e l'architettura SOAR, che fornisce il framework all'interno del quale sviluppare l'agente.The course covers the following topics, including both a methodological and an experimental part: • Logical formalisms for knowledge representation and reasoning. Concerning the methodological part, the course will introduce problems related to: reasoning methods for the first order logic, logic programming, non monotonic reasoning, answer set programming. These methodologies will be the object of experimentation. The course will introduce the basic structures of the Prolog language, the implementation of search strategies in Prolog and the use of the tool CLINGO for solving problems requiring the application of non monotonic reasoning mechanisms and the answer set programming paradigm. • Automated planning and execution in real world scenarios. Concerning the methodological part, the course will cover the following topics: representation of actions and goals, methods for automatic plan generation. • Reasoning under uncertainty. The methodological part will cover probabilistic reasoning, Bayesian networks and reasoning mechanisms for Bayesian networks, temporal probabilistic models. • Implementation of an intelligent agent. This experimental part consists in the development of a proof of concept of an intelligent agent able to exhibit deliberative and reactive behavior in a partially observable environment. The proof of concept will be developed by exploiting facilities offered by CLIPS, a well established and efficient tool based on production rules. The course will show how to develop basic functionalities of problem solving by using the inferential engine of CLIPS. • Implementation of a reinforcement learning agent controlled by the cognitive architecture SOAR. This experimental part consists in the exploitation and development of a learning agent able to exhibit intelligent behavior based on rewards in a game-like environment. The proof of concept will be developed by using the SOAR cognitive architecture. The course will show how to develop basic functionalities of learning and problem solving in SOAR. .Testi consigliati e bibliografia
- Oggetto:
- Libro
- Titolo:
- Artificial Intelligence: a modern approach
- Anno pubblicazione:
- 2010
- Editore:
- Pearson
- Autore:
- S. J. Russell e P. Norvig
- Obbligatorio:
- Si
- Oggetto:
- Libro
- Titolo:
- Programmazione Dichiarativa in Prolog, CLP e ASP
- Anno pubblicazione:
- ----
- Editore:
- -
- Autore:
- A. Dovier e A. Formisano
- Permalink:
- Obbligatorio:
- Si
- Oggetto:
- Libro
- Titolo:
- Cognitive Design for Artificial Minds
- Anno pubblicazione:
- 2021
- Editore:
- Routledge
- Autore:
- Antonio Lieto
- Obbligatorio:
- Si
- Oggetto: