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



Documenti analoghi
FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

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

Intelligenza Artificiale

FONDAMENTI*DI*INTELLIGENZA*ARTIFICIALE*

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

Ricerca Automatica. Esercitazione 3. Ascensore. Ascensore. Ascensore

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

Intelligenza Artificiale. Metodi di ricerca

Appunti sulla Macchina di Turing. Macchina di Turing

CONTINUITÀ E DERIVABILITÀ Esercizi risolti

LE FUNZIONI A DUE VARIABILI

1 Giochi a due, con informazione perfetta e somma zero

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

Funzioni in C. Violetta Lonati

Modelli di Programmazione Lineare e Programmazione Lineare Intera

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

TSP con eliminazione di sottocicli

risulta (x) = 1 se x < 0.

4. Operazioni elementari per righe e colonne

Studente: SANTORO MC. Matricola : 528

TSP con eliminazione di sottocicli

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

Capitolo 13: L offerta dell impresa e il surplus del produttore

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Intelligenza Artificiale Ing. Tiziano Papini

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

STATISTICA IX lezione

3 GRAFICI DI FUNZIONI

Analisi dei requisiti e casi d uso

Esercizio 1: trading on-line

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Il Problem-Based Learning dalla pratica alla teoria

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Problema del trasporto

Descrizione attività

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Basi di matematica per il corso di micro

x u v(p(x, fx) q(u, v)), e poi

Tra questi il più conosciuto è il sudoku.

Funzioni. Parte prima. Daniele Serra

FUNZIONI / ESERCIZI SVOLTI

2. Leggi finanziarie di capitalizzazione

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

(anno accademico )

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Capitolo 2. Operazione di limite

Viene lanciata una moneta. Se esce testa vinco 100 euro, se esce croce non vinco niente. Quale è il valore della mia vincita?

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

L intelligenza numerica

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

1 Estensione in strategia mista di un gioco

La candela accesa. Descrizione generale. Obiettivi. Sequenza didattica e metodo di lavoro. Esperimenti sulla crescita delle piante

Ottimizazione vincolata

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

Comparatori. Comparatori di uguaglianza

1. PRIME PROPRIETÀ 2

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

ALGEBRA DELLE PROPOSIZIONI

Matematica Computazionale Lezione 4: Algebra di Commutazione e Reti Logiche

FASCI DI RETTE. scrivere la retta in forma esplicita: 2y = 3x + 4 y = 3 2 x 2. scrivere l equazione del fascio di rette:

Kangourou della Matematica 2014 finale nazionale italiana Mirabilandia, 12 maggio 2014

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

FONDAMENTI DI INTELLIGENZA ARTIFICIALE M (9 CFU) 19 Gennaio 2011 Tempo a disposizione 3h Risultato 32/32 punti

Esercizi per il corso di Algoritmi e Strutture Dati

CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)

REGOLAMENTO KONG THE 8 TH WONDER OF THE WORLD

Esponenziali elogaritmi

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Equilibrio bayesiano perfetto. Giochi di segnalazione

2 Argomenti introduttivi e generali

REGOLAMENTO (UE) N. 1235/2011 DELLA COMMISSIONE

Lezione 8. La macchina universale

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)

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Fasi di creazione di un programma

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

Report di valutazione Fiona Clark_Live

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Raggruppamenti Conti Movimenti

mese richiesta

Operatori logici e porte logiche

Scacchi Polimi insieme con Terna Sinistrorsa, sono lieti di presentare i primi tornei studenteschi di scacchi, nell ambito dei Poligames 2015!!!

Matematica generale CTF

Registratori di Cassa

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Procedura di valutazione economico-finanziaria

0 < a < 1 a > 1. In entrambi i casi la funzione y = log a (x) si può studiare per punti e constatare che essa presenta i seguenti andamenti y

Capitolo 2 - Teoria della manutenzione: classificazione ABC e analisi di Pareto

Esercizi Capitolo 6 - Alberi binari di ricerca

RISOLUTORE AUTOMATICO PER SUDOKU

FONDAMENTI DI INTELLIGENZA ARTIFICIALE M 9 Settembre 2010 Tempo a disposizione 3h Risultato 32/32 punti

Vademecum studio funzione

Alcune nozioni di base di Logica Matematica

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

( x) ( x) 0. Equazioni irrazionali

I PROBLEMI ALGEBRICI

Transcript:

FONDAMENTI DI INTELLIGENZA ARTIFICIALE M Luglio 2010 Tempo a disposizione 2h 45min Risultato 32/32 punti Esercizio 1 (punti 4) Si formalizzino il logica dei predicati del I ordine le seguenti frasi: Ogni bimbo ama ogni caramella Chiunque ami una caramella non è un nutrizionista Chiunque mangi qualche zucca è un nutrizionista Chiunque acquisti qualsiasi zucca o la intaglia o la mangia (or esclusivo) Giovanni acquista una zucca Giovanni è un bimbo Golia è una caramella Dimostrare poi applicando il principio di risoluzione che: Giovanni intaglia una zucca Esercizio 2 (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. 13 25 17 14 5 10 Si mostri come gli algoritmi min-max e alfa-beta risolvono il problema Esercizio 3 (punti 4) Il seguente programma Prolog verifica se in una lista tutti gli elementi sono diversi: alldiffer(l):- not(twoequal(l)). twoequal(l):- membrest(x,t,l), membchk(x,t),!. membrest(x,t,[x T]). membrest(x,t,[_ L]):- membrest(x,t,l). Si mostri l'albero di derivazione SLDNF relativo al goal :- alldiffer([p(r,a),p(a,r),p(a,r)]). Si noti che il predicato membchk/2 è da intendersi come il predicato member/2 usuale.

Esercizio 4 (punti 4) Nel seguente problema si tratta di trovare una sistemazione delle cifre da 1 a nella scacchiera raffigurata sotto, in modo tale che ogni cifra non sia consecutiva a nessuna delle cifre in caselle adiacenti (in orizzontale, verticale o diagonale). Ad esempio la configurazione in figura non sarebbe una soluzione, perché 1 e 2 sono in caselle adiacenti, come anche 2 e 3, 7 e, 5 e. Si formuli il problema come un problema di soddisfacimento di vincoli e lo si risolva tramite il forward checking. Nel mostrare come si ottiene la soluzione, si scelga, ad ogni passo, come variabile da istanziare quella che ha il valore più piccolo nel dominio (e in caso di parità, si istanzi la variabile soggetta a più vincoli. Se ancora si presentano casi di parità in base, si selezioni prima la variabile con indice più basso. Come euristica di selezione del valore, si assegnino i valori in ordine crescente. 1 2 7 4 3 5 Esercizio 5 (punti 3) Dato un insieme di studenti e i voti ottenuti negli esami, rappresentati come fatti del tipo: studente(nome, Voto). si definisca il predicato studmedia(nome,media) che dato il nome di uno studente (Nome) ne determina la media in Media. Esercizio (punti 2) Si dia la definizione di euristica ammissibile e euristica monotona. La monotonicità della f euristica ne garantisce l ammissibilità? Perché sono importanti le euristiche ammissibili? E quelle monotone? Esercizio 7 (punti 5) Si scriva un meta interprete per Prolog che per la selezione delle clausole non segua l ordine testuale, ma selezioni sempre prima quella che ha un numero minore di sottogoals (a partire dai fatti). Ad esempio, nel caso delle seguenti clausole: 1. p(x,y,z):- b(y, Y),a(X, Y), c(z). 2. p(x,y,z). 3. p(x,y,z):- s(y, Y), s(y,y). 4. p(x,y,z):- s(y, Y). L ordine di selezione sarà 2. 4. 3. e 1. Si supponga di avere a disposizione un predicato sort(l, L1, L2) che fornisce in L2 la lista L ordinata (in senso crescente) secondo i valori contenuti in L1. Si supponga, inoltre, di avere un programma nella forma clausola(head, Body) dove Body è una lista di sottogoal. I fatti hanno come Body la lista vuota.

Esercizio (punti 3) Si consideri il seguente problema di pianificazione. Ci sia un robot in grado di muoversi, di afferrare e di depositare oggetti all interno di un ambiente composto da due stanze comunicanti S1 e S2. Lo stato iniziale, l obiettivo, le precondizioni e gli effetti di ogni azione sono formulati in STRIPS: STATO INIZIALE ( At(Robot,S1) At(Object2,S1) At(Object1,S2) Room(S1) Room(S2) HandEmpty ) GOAL ( At(Object1,S1) At(Object2,S1) ) ACTION ( Go(x,y), PRECOND: Room(x) Room(y) At(Robot,x) x y EFFECT: At(Robot,x) At(Robot,y) ) ACTION ( Pick(o), PRECOND: Room(x) At(Robot,x) At(o,x) HandEmpty o Robot EFFECT: HandEmpty At(o,x) Holding(o) ) ACTION ( Drop(o), PRECOND: Room(x) At(Robot,x) Holding(o) EFFECT: HandEmpty At(o,x) Holding(o)) Le variabili iniziano con lettera minuscola, le costanti conn lettera maiuscola. Si risolva il problema di pianificazione con una pianificazione in avanti mediante una ricerca A* con eliminazione degli stati ripetuti e considerando come funzione euristica il numero di letterali di goal non soddisfatti nello stato. Nella costruzione dell albero, si applichino le azioni nell ordine dato sopra. A parità di altro, si scelga il nodo generato prima. Si rappresentino gli stati in modo grafico. Si riporti l albero di ricerca generato (indicando, per ogni nodo, il valore della funzione di valutazione e l ordine di espansione) e la soluzione trovata. Si noti che l azione Pick(o) ha come conseguenza che per l oggetto o verrà a valere At(o,x). Esercizio 9 (punti 1) Si spieghi in cosa consiste l anomalia di Sussmann con un esempio. Esercizio 10 (punti 2) Descrivere brevemente in cosa consiste la Open World Assumption (OWA) e la Close World Assumption (CWA), fornendo un breve esempio di base di conoscenza che mostri come tali assunzioni modificano il ragionamento su tale base di conoscenza.

SOLUZIONE Esercizio 1 1. X Y ( bimbo(x) and caramella(y ) ama(x,y) ) 2. X Y ( caramella(y) and ama(x,y) nutriz(x) ) 3. X (( Y (zucca(y) and mangia(x,y))) nutriz(x)) 4. X Y (zucca(y) and compra(x,y) intaglia(x,y) xor mangia(x,y) ) 5. Y (zucca(y) and compra(giovanni,y)). bimbo(giovanni) 7. caramella(golia). ( Y (zucca(y) and intaglia(giovanni,y)) ) equivale a : Y (zucca(y) and intaglia(giovanni,y) ) Clausole: 1 bimbo(x) or caramella(y ) or ama(x,y) 2 caramella(y) or ama(x,y) or nutriz(x) 3 zucca(y) or mangia(x,y) or nutriz(x) 4 zucca(y) or compra(x,y) or intaglia(x,y) or mangia(x,y) 5 zucca(y) or compra(x,y) or intaglia(x,y) or mangia(x,y) zucca(c) 7 compra(giovanni,c) bimbo(giovanni) 9 caramella(golia) 10 zucca(y) or intaglia(giovanni,y) Risoluzione:. ama(giovanni,golia) da +9+1. nutriz(giovanni) da +9+2 13. intaglia(giovanni,c) or mangia(giovanni,c) da +7+4 14. mangia(giovanni,c) da +10+13. nutriz(giovanni) da 3+13+ 1. vuota da +

Esercizio 2 min-max: 25 13 13 25 25 17 17 17 14 14 10 10 5 5 10 10 Alfa-beta: >=13 13 13 25 >= >= >=17 17 17 14 >= 5 10

Esercizio 3 Esercizio 4 X1 X2 X3 X4 X5 X X7 X Formulazione CSP: variabili: X1,, X, associate alle caselle come in figura domini: valori da 1 a vincoli: o i,j, i j Xi Xj o adiacente(i,j) Xi Xj+1, Xi Xj-1 o adiacente(1,2), adiacente(1,3), adiacente(1,4), adiacente(2,3), adiacente(2,5), adiacente(2,), adiacente(3,4), adiacente(3,5), adiacente(3,), adiacente(3,7), adiacente(4,5), adiacente(4,7), adiacente(5,), adiacente(5,), adiacente(,7), adiacente(,), adiacente(7,). Forward Checking: Tutte le variabili hanno inizialmente lo stesso dominio. Le variabili soggette a più vincoli sono X3 e X; partiamo da X3. X3=1 X1 X2 X3 X4 X5 X X7 X 3.. 3.. 1 3.. 3.. 3.. 3.. 2.. Ora la variabile che ha il valore più piccolo nel dominio e` X (che ha il valore 2): X1 X2 X3 X4 X5 X X7 X 3.. 3.. 1 3.. 4.. 4.. 4.. 2

Il valore più piccolo nei domini e` 3 ed e` nel dominio delle variabili X1, X2, X4. X2 e X4 hanno più vincoli di X1, in quanto X1 ha vincoli solo con X2 e X4, mentre X2 ha vincoli con X5 e X e X4 ha vincoli con X e X7 (oltre al vincolo di diverso fra tutte le variabili, che e` comune a tutte). Istanziamo quindi X2: X1 X2 X3 X4 X5 X X7 X 5.. 3 1 4.. 5.. 5.. 4.. 2 Ora il valore piu` piccolo e` 4 ed e` nei domini di X4 e X7. X4 ha vincoli con 3 variabili (X1, X e X7), mentre X7 solo con 2 (X4 e X). Istanziamo quindi X4: X1 X2 X3 X4 X5 X X7 X.. 3 1 4 5...... 2 Il valore più piccolo e` nel dominio di X5: X1 X2 X3 X4 X5 X X7 X.. 3 1 4 5 7.... 2 Il valore più piccolo e` nel dominio di X1 e X7; X7 ha un vincolo con X che X1 non ha: X1 X2 X3 X4 X5 X X7 X 7.. 3 1 4 5 2 X1 ha l elemento più piccolo nel dominio e viene istanziato a 7. Infine si istanza X a. La soluzione e`: 7 3 1 4 5 2 Esercizio 5 studmedia(nome,media):- findall(voto,studente(nome,voto),list), media(list, Media). %semplice predicato per calcolare la media su una lista di numeri media(lista,media) :- length(lista,lunghezzalista), sum(lista,somma), Media is Somma / LunghezzaLista. Esercizio 7 sum([],0). sum([a B],N):- sum(b,n1),n is N1+1. solve([]). solve([head Tail]):- solve(head),

solve(tail). solve(goal):- findall((goal,body),clausola(goal,body), ordina(l,lord), member((goal,firstbody), Lord), solve(firstbody). L), ordina(l,lord):- conta_sottogoal(l,nsottogoal), sort(l,nsottogoal, Lord). conta_sottogoal([],[]). conta_sottogoal([h T],[NH NT]):- conta_sottogoal1(h,nh), conta_sottogoal(t,nt). conta_sottogoal1((_,body),nsottogoal):-conta(body, Nsottogoal) conta([], 0):-!. conta([arg Tail], Nout):- conta(tail, Nin), Nout is Nin +1. Esercizio