FONDAMENTI DI INTELLIGENZA ARTIFICIALE PRIMA PARTE (6 CFU) 9 Dicembre 2010 Tempo a disposizione 2h Risultato 32/32 punti

Documenti analoghi
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 1 parte (6 CFU) 12 Luglio 2012 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE M 15 Luglio 2010 Tempo a disposizione 2h 45min Risultato 32/32 punti

Programmazione Dichiarativa. Programmazione Logica. SICStus PROLOG PROLOG. Bob Kowalski: "Algoritmo = Logica + Controllo"

FONDAMENTI*DI*INTELLIGENZA*ARTIFICIALE*

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA

Universita' degli Studi di Udine UNA PROPOSTA PER L'INTRODUZIONE DI CAPACITA' DI META-RAPPRESENTAZIONE IN UN LINGUAGGIO DI PROGRAMMAZIONE LOGICA

Trasformazione in clausole

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

Agenti risolutori di problemi. Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Intelligenza Artificiale

S::= Aa bb bc A::= 1B 0 B::= 0A 1 C::= Cc d Si scriva un riconoscitore in Prolog del linguaggio generato da G. Suggerimento: si elimini la ricorsione

Ricerca non informata in uno spazio di stati

Informatica Teorica. Macchine a registri

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Liceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE

Esercizi per il corso di Algoritmi e Strutture Dati

Intelligenza Artificiale. Metodi di ricerca

PIANO DI LAVORO. a.s / 2016

AE RZT QSO RKPT SQZC

7 Esercizi e complementi di Elettrotecnica per allievi non elettrici. Circuiti elementari

Ripasso di teoria ed esercizi in preparazione al secondo compito.??? Dicembre 2004

2011 Politecnico di Torino 1

Logica del primo ordine

Si considerino le seguenti specifiche per la realizzazione di un sito web per la gestione di abbonamenti a riviste di vario genere..

Regola del partitore di tensione

Mobile Programming. Prova scritta del 22/01/2016. Prof. De Prisco. Corso di laurea in Informatica

Fondamenti di Internet e Reti

CAPITOLO V. DATABASE: Il modello relazionale

Intelligenza Artificiale Ing. Tiziano Papini

Indicatori statistici

Intelligenza Artificiale Ing. Tiziano Papini

ES IS ORIGINAL COMPRESSORSS

ESERCIZI PER LE VACANZE ESTIVE

SQL. Structured Query Language

Corso di Laurea in Informatica Architetture degli Elaboratori

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Le aree dell informatica

Principi e Metodologie della Progettazione Meccanica

Problemi di Instradamento di Veicoli

Trattamento degli errori

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

TERMINI, OPERATORI e METALIVELLO

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale

Analisi. Calcolo Combinatorio. Ing. Ivano Coccorullo

Intelligenza Artificiale. Lezione 6bis. Intelligenza Artificiale Daniele Nardi, 2004 Lezione 6bis 0

Analizzatore lessicale o scanner

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Compito di Informatica Grafica 5 appello 29/06/2006

2. Osserva l immagine e scrivi al posto dei puntini uno dei seguenti simboli:. 5. B 2. B B. A A. C= { 6, 7 }

Problemi di soddisfacimento di vincoli. Formulazione di problemi CSP. Colorazione di una mappa. Altri problemi

Ottimizzazione in ECLiPSe

Economia e Organizzazione Aziendale Facoltà di Ingegneria dell Informazione Corso di Laurea in Ingegneria Matematica

Esercitazioni di statistica

Scratch Tutorial 6 Robobattle v1.0

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

Analisi e Verifica di Programmi Laboratorio di AVP

Introduzione al corso

ESERCITAZIONE novembre 2012

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Prof.ssa Laura Pagnozzi Prof. Ivano Coccorullo. Calcolo Combinatorio

ALGORITMO DEL SIMPLESSO

Problemi, Algoritmi e Programmi

Che cosa sanno fare i bambini?

Algebra e Logica Matematica. Calcolo delle proposizioni Logica del primo ordine

I costi d impresa (R. Frank, Capitolo 10)

PROGRAMMAZIONE DIDATTICA ANNUALE DI DIPARTIMENTO

Metodologie di programmazione in Fortran 90

Esercizi di Ricerca Operativa I

LA KB delle logiche descrittive. Che tipo di ragionamenti? Problemi decisionali per DL. Sussunzione. Soddisfacilità di concetti (CS)

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

L organizzazione dei documenti nei sistemi multimediali

Esame di Informatica Generale 25 giugno 2010 Professori: Carulli, Fiorino, Mazzei

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Ancora su diagnosi. Lezione 9 giugno. Conoscenza incompleta e senso comune. Frameworks per il ragionamento basato su assunzioni

Il linguaggio SQL: query innestate

Corso di Basi di Dati Multimediali

Esercitazione n o 3 per il corso di Ricerca Operativa

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

ESERCITAZIONE di INFORMATICA 2011/2012

Esercizi sui Motori a Combustione Interna

RCC FRIZIONE AD INNESTO MAGNETICO

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Programmazione Orientata agli Oggetti in Linguaggio Java

Algoritmi. Matricole dispari Prof.ssa Anselmo. Pre-appello del 15 Gennaio Attenzione:

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Creare ontologie ONTOLOGIE, DESCRIPTION LOGIC, PROTÉGÉ STEFANO DE LUCA

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Pronti per la partenza? Via!

Esercizi di programmazione in C

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Le macchine di Turing

9 = Soluzione. Soluzione

Transcript:

FONDAMENTI DI INTELLIGENZA ARTIFICIALE PRIMA PARTE (6 CFU) 9 Dicembre 0 Tempo a disposizione h Risultato / punti Esercizio 1 (punti 6) Si rappresentino in logica dei predicati del primo ordine le seguenti asserzioni: Maria e Carlo sono due persone Maria ama lo sci Maria ama il teatro Carlo ama il teatro Due persone si amano se amano una stessa cosa - Applicando il principio di risoluzione dimostrare che esiste una persona che Carlo ama. - Rappresentare in Prolog le frasi precedenti e scrivere poi la chiamata al meta-predicato Prolog che consente di collezionare in una lista tutte le cose che maria ama. Esercizio (punti 4) Si consideri il seguente albero di gioco in cui la valutazione dei nodi terminali è dal punto di vista del primo giocatore. Si assuma che il primo giocatore sia Max. 1 0 1 1 1 Si mostri come gli algoritmi min-max e alfa-beta risolvono il problema Esercizio (punti 6) Il seguente predicato Prolog: listup(x,x,[x]). listup(low,up,[low L]):- X is Low+1, listup(x,up,l). dovrebbe creare una lista che contiene tutti i numeri da un minimo a un massimo; ad esempio listup(1,,l) fornisce L/[1,,,4,]. Il predicato però ha un ramo infinito: si modifichi il programma, inserendo un cut, per evitare che ci siano rami infinit. Si disegni poi l'albero SLD relativo alla query?-listup(1,,[a,b,c,d L]). Esercizio 4 (punti ) Si scriva un programma Prolog somma/ che data una lista L di numeri interi ed un numero N e ha successo se la somma degli elementi di L vale N. Esempio:?- somma([1,,,4,,6], 1). Yes?- somma([1,,,4], N). Yes N=

Esercizio (punti ) Il Tricolore: sette bambini stanno discutendo sui tre colori di una bandiera che hanno visto e ciascuno di loro è sicurissimo di ricordarne due con precisione: - Bianco e Giallo - Giallo e Nero - Azzurro e Rosso - Verde e Azzurro - Marrone e Giallo - Marrone e Verde - Nero e Rosso In realtà, della coppia di colori ricordata da ciascun bambino, solo uno dei due colori era davvero presente. Si modelli il problema come CSP, con variabili che possono assumere i valori [0,1]. Si risolva il problema utilizzando l euristica Minimum Remaining Value per la scelta della variabile da istanziare (a parità di valori, si considerino le variabili da istanziare secondo il loro ordinamento alfabetico) e i valori da provare secondo l ordine [0,1], applicando il Forward Checking dopo ogni labeling. Esercizio 6 (punti 6) Si consideri il seguente albero di ricerca in cui i numeri sugli archi sono i costi e quelli (tra parentesi) vicino agli stati le stime euristiche h. Ove h non è specificata, vale 0. E () F B 4 A 1 G C (6) 8 H I D (4) J Si assuma che i nodi siano espansi in ordine alfabetico, nel caso in cui la strategia di ricerca applicata li consideri equivalenti. Il goal sia lo stato G e la ricerca termini al suo raggiungimento. Si indichi la lista di stati espansi da ognuna delle seguenti strategie di ricerca: Breadth First Depth First Iterative Deepening Search (facoltativo) Best-First search A* search Si indichi inoltre se la funzione h è ammissibile in questo esempio. E consistente? Si motivi la risposta data. Esercizio (punti ) Dare la definizione di correttezza e completezza (per la FOL First Order Logic). Discutere queste due proprietà per il linguaggio Prolog (indicare se valgono o meno, e perché). VOTO: Esame da 6 CF, il voto è determinato da questa prima parte Esame da 9 CFU, è la media pesata della I parte (che vale /) e della II ( che vale 1/) ovvero il voto finale è dato da: ((voto_iparte +voto_iiparte)/)* e varia quindi da 0 a massimo (equivalente a lode).

FONDAMENTI DI INTELLIGENZA ARTIFICIALE SECONDA PARTE ( CFU) 9 Dicembre 0 Tempo a disposizione 0 +1 Risultato / punti Algoritmi genetici (punti ) Descrivere il ciclo secondo cui operano gli algoritmi genetici, e i principali operatori utilizzati. Metainterpreti (punti ) Si costruisca un meta-interprete per Prolog (in Prolog) che chieda all'utente i goal che non è in grado di dimostrare con le clausole del programma, ma solo se essi sono ground (si supponga dato un predicato ground/1 che è vero se il suo argomento è ground). Se l utente risponde true, il goal deve essere poi asserito come fatto ground. Esercizio DCG (punti ) (solo per chi non ha svolto l esercitazione in itinere) Data la seguente grammatica: P = { <E> ::= <T> + <E> <T> - <E> <T> <T> ::= <F> <F> ::= <intero> <intero> ::= } Di che tipo di grammatica si tratta? Scrivere il programma DCG per il parsing di espressioni aritmetiche generabili dalla grammatica. Si utilizzi il predicato SICStus integer(x) che è vero se X è un intero Esempio:?-expr([+4+-],[]). Yes?-expr([++-],[]). No

SOLUZIONE PARTE I Esercizio 1 persona(maria) and persona(carlo) ama(maria,sci) ama(maria,teatro) ama(carlo, teatro) X Y ( Z (persona(x) and ama(x,z) and persona(y) and ama(y,z) ) ama(x,y) ) Query: Z persona(z) and ama(carlo,z) Clausole: 1. persona(maria). persona(carlo). ama(maria,sci) 4. ama(maria,teatro). ama(carlo, teatro) 6. ama(x,y) or not persona(x) or not ama(x,z) or not persona(y) or not ama(y,z). not ama(carlo,z) or not persona(z) Risoluzione: Da 4++1+ in più passi: 8. ama(carlo,maria) Da 8++1 in più passi si deriva la clausola vuota. Programma Prolog: ama(x,y):- ama(x,z),ama(y,z). ama(maria,sci). ama(maria,teatro). ama(carlo, teatro). persona(maria). persona(carlo).?-findall(z,ama(maria,z)l). (chiamata; in realtà il programma Prolog presenta un loop) Esercizio min-max: 1 1 1 1 1 0 1 1 1 1 0 1 1 1

Alfa-beta: 1 1 <= 1 >= <= <= <= 1 1 0 1 1 0 1 1 1 Esercizio Predicato corretto: listup(x,x,l):-!,l=[x]. listup(low,up,[low L]):- X is Low+1, listup(x,up,l). %occorre spostare l unificazione dalla testa al body Albero SLD: Si noti che e` errato listup(x,x,[x]):-!. in quanto l unificazione del parametro di output L viene fatta prima del cut. Esercizio 4 somma([],0):-! somma([h T],N):- somma(t,n1), N is N1+H.

Esercizio Variabili: A, B, G, M, N, R, V ::[0,1] Vincoli (solo una delle due è vera, se uso variabili intere posso rappresentare l or esclusivo come somma con valore 1): B+G=1 (oppure B=/=G) G+N=1 A+R=1 V+A=1 M+G=1 M+V=1 N+R=1 labeling A=0 B::[0,1] G::[0,1] M::[0,1] N::[0,1] R::[0,1] V::[0,1] FC R::[1] V::[1] labeling R=1 FC N::[0] labeling N=0 FC G::[1] labeling G=1 FC B::[0] M::[0] labeling B=0 labeling M=0 labeling M=0 V=1 La soluzione è: Giallo, Rosso, Verde. Esercizio 6 E () F B 4 A 1 G C (6) 8 H I D (4) J Breadth First A B C D E F G Depth First A B E F C G Iterative Deepening Search A A B C D A B E F C G Best-First search A B E F D I J C G A* search A B F C G La funzione h non è ammissibile in questo esempio perché non è sempre minore del valore costo effettivo (si veda il nodo C in cui l euristica vale 6, ma la distanza dal goal è ). Non è nemmeno consistente, inoltre, perché per ogni nodo non vale h(n)<= c(n,a,n ) + h(n ) (non è decrescente). Ad esempio, h(e) vale 9, mentre c(b,e)+h(b) vale 6).

SOLUZIONE PARTE II Metainterpreti solve(true):-!. solve((x,y)):-!,solve(x),solve(y). solve(x):- clause(x,body),solve(body),!. solve(x):- ground(x), ask(x,risp),risp==true, asserta(x). ask(x,risp):- write(x), write(" true or false? "), read(risp). % oppure: solve(true):-!. solve((a,b)):-!,solve(a),solve(b). solve(a):-clause(a,b),solve(b),!. solve(a):- ground(a),write(a), write(" true or false? "), read(r),r==true,asserta(a),!. SOLUZIONE DCG expr --> term. expr --> term, [+], expr. expr --> term, [-], expr. term --> factor. factor --> [I], {integer(i)}.