COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I. 2 Dicembre 2008 (Tempo a disposizione 2h ; su 32 punti)

Documenti analoghi
FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 26 Gennaio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 8 Settembre 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore.

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 2 Aprile 2009 Tempo a disposizione 2h Risultato 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 13 Luglio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I. 25 Giugno 2008 (Tempo a disposizione 2h ; su 32 punti)

Ricerca Automatica. Esercitazione 3. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0

Strategie di ricerca. Scopo: 1. Esercizi sulle strategie di ricerca 2. Esercizi sui giochi, alberi min-max e tagli alfa-beta

&203,72',,17(//,*(1=$$57,),&,$/( *LXJQR±3URI3DROD0HOOR 7HPSRDGLVSRVL]LRQH

COMPITO DI INTELLIGENZA ARTIFICIALE, Fondamenti di Intelligenza Artificiale e Intelligenza Artificiale Modulo A 16 Dicembre 2005 Tempo 2,30 ore

Intelligenza Artificiale

Intelligenza Artificiale. Ricerca euristica Algoritmo A*

Un secondo problema : Quadrato Magico

Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati

Ricerca informata in uno spazio di stati

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

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE - parte I (tempo 2,30 h; punti 32) 12 Gennaio 2006

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

Note per la Lezione 4 Ugo Vaccaro

Intelligenza Artificiale. Risoluzione dei Problemi

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

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

Il valore di flusso che si ottiene è

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Alberi e alberi binari I Un albero è un caso particolare di grafo

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono

Algoritmi di Ricerca

Strutture dati in PROLOG. Lezione 6. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 6 0

Strutture dati non lineari. Esercitazione 3. Rappresentazione della Conoscenza Daniele Nardi, 2008Esercitazione 3 0

Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati.

Pensiero computazionale. Lezione 3 Istruzioni condizionali Eventi, messaggi Variabili

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

matematica classe quinta LE ISOMETRIE SCHEDA N Trasla la figura, disegnandola nella posizione indicata dal vettore.

Introduzione alla Programmazione Logica ed al linguaggio PROLOG

Problemi di ordinamento

Heap e code di priorità

Un insieme si dice finito quando l operazione consistente nel contare i suoi elementi ha termine.

PROVETTE D ESAME. Algoritmi e Strutture Dati

COMPITO DI RICERCA OPERATIVA. max 5 2x 1 + 3x 2 x 3 = 2 + x 1 5x 2 x 4 = 5 + x 2. x 5 = 1 + x 1 x 2

AccumulatoreSomma AccumulatoreSommaProdotto AccumulatoreSomma AccumulatoreSommaProdottoDivisione

Alberi ed Alberi Binari

COMPITO DI APPLICAZIONI DI INTELLIGENZA ARTIFICIALE 19 marzo 2009 (Punteggio su 30/30; Tempo 2h )

GLI ALBERI BINARI DI RICERCA. Cosimo Laneve

Esercizi proposti 10

A. Lorenzi, R. Giupponi - Visual Basic. Teoria e ambiente di programmazione - Istituto Italiano Edizioni Atlas

Informatica Generale Homework di Recupero 2016

NOME: CITTA : Campionato italiano di sudoku. LUCCA 19 gennaio Sudoku Mix. Terza parte 12:05 13:15. Massimo punteggio possibile: 185 punti

Intelligenza Artificiale

Fondamenti di Intelligenza Artificiale M

La rivista di giochi logici. Amico Logico. organizza il. 2 CAMPIONATO STUDENTESCO DI GIOCHI LOGICI per l anno scolastico

Parte V: Rilassamento Lagrangiano

Esercizio: memoria virtuale

Laboratorio di Python

Esercizio 1. E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1. livello 0 FB = -1. livello 1 FB = -1.

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

Agenti basati su Ricerca: Introduzione

Informatica 1. Prova di recupero 21 Settembre 2001

Intelligenza Artificiale. Risoluzione dei Problemi

Algoritmi e giochi combinatori

Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi

Esercizio 1. min. Esercizio 2. Esercizio 3

TECNOLOGIE INFORMATICHE MULTIMEDIALI

Circuiti digitali. Operazioni Logiche: Algebra di Boole. Esempio di circuito. Porte Logiche. Fondamenti di Informatica A Ingegneria Gestionale

Corso di Intelligenza Artificiale A.A. 2016/2017

Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei

Relazione su Gioco dell'otto

Tetrapyramis. organizza. Diagonalmente. Gara di giochii logici a squadre per Istituti scolastici. 2016, (orario server Italia)

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica.

Corso di Sistemi Basati su Conoscenza Anno Accademico 2002/2003 Nome...Cognome...

Progettazione di algoritmi

Memorizzazione di una relazione

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Unità Didattica N 9 : La parabola

3.4 Metodo di Branch and Bound

Algoritmi e Strutture Dati

I giochi con avversario. I giochi con avversario. Introduzione. Giochi come problemi di ricerca. Il gioco del NIM.

C.L. Informatica, M-Z Bari, 12 Gennaio 2016 Traccia: 1

Lezione 7 Alberi binari: visite e alberi di ricerca

4c. Esercizi sul livello di Rete Instradamento in Internet

N-Regine POSSIBILE SOLUZIONE IN PROLOG: GENERATE AND TEST

Automa a Stati Finiti (ASF)

3 CAMPIONATO STUDENTESCO DI GIOCHI LOGICI. Anno scolastico Finale nazionale. Competizione individuale per le scuole superiori (triennio)

Programmazione logica e PROLOG. Esercitazione 1. AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0

Ripasso di teoria ed esercizi in preparazione al terzo compito. 26 gennaio 2004

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

NONSOLOFORMULE. Confezioni Vasetti yogurt

Macchine di Turing: somma di due numeri

Esercizi vari. Alberto Montresor. 19 Agosto, 2014

Esercizi sulla Programmazione Lineare. min. cx Ax b x 0

ESITI QUESITI CLASSI PRIME ITALIANO

1. Acquisire conoscenza dell ambiente TuProlog/SWI Prolog 2. Risolvere alcuni problemi mediante il linguaggio Prolog

Grafi: visita generica

4 CAMPIONATO STUDENTESCO DI GIOCHI LOGICI. Anno scolastico Finale nazionale Modena, Palaroller, 01/04/2017

Tetrapyramis. organizza. Divide et Impera. Gara di giochii logici a squadre per Istituti Scolastici

Problema del cammino minimo

2.3.3 Cammini ottimi nei grafi senza circuiti

Transcript:

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I 2 Dicembre 2008 (Tempo a disposizione 2h ; su 32 punti) Esercizio 1 (punti 5) Rappresentare le seguenti frasi: Due gemelli non possono appartenere allo stesso club calcistico. Un calciatore non può scendere in campo contro un suo gemello. Una persona non può appartenere al club calcistico presieduto da un suo gemello. Giorgio e Pasquale sono gemelli. Marco e Luca sono gemelli. Giorgio gioca nel Milan. Luca presiede il Bari. in logica dei predicati del I ordine. Dimostrare poi tramite l applicazione del principio di risoluzione che se Pasquale appartiene al Bari, allora il Bari non può giocare contro il Milan. N.B. Considerate appartenere a un club" e scendere in campo con un club" come sinonimi e utilizzate i seguenti predicati binari: gemelli/2, appartiene/2, giocacontro/2, presiede/2. Esercizio 2 (punti 6) Si consideri il seguente albero di gioco, dove i punteggi sono dal punto di vista del primo giocatore (Max): Si mostri come l algoritmo min-max risolve il problema. Si mostrino poi i tagli alfa-beta. Esercizio 3 (punti 5) Si consideri il seguente programma Prolog, che verifica se in una lista ci sono elementi duplicati: nodup(l):- not(duplicati(l)). duplicati(l):- membertail(x,l,t), membertail(x,t,_). membertail(x,[x T],T). membertail(x,[_ L],T):- membertail(x,l,t). Si mostri l albero SLDNF relativo all invocazione di nodup([1,2]).

Esercizio 4 (punti 5) Si scriva un programma Prolog per un predicato range(i,j,ks) che è vero se Ks è la lista di interi compresi tra I e J (inclusi). Si supponga che I e J siano sempre ground. Esempi:?-range(2,8,[2,3,4,5,6,7,8]). yes?-range(2,8,[3,2,4,5,6,7,8]). no?-range(2,2,l). yes, L=[2] Esercizio 5 (punti 8) La figura seguente mostra un mondo artificiale in cui un agente A si trova nel quadrato (1, 1), l'obiettivo G è in posizione (1, 3) e nei quadrati (1, 2) e (2, 2) ci sono delle buche B. Se l'agente entra in un quadrato in cui c'è una buca muore. L'agente si può spostare di un quadrato alla volta in orizzontale o in verticale (in una delle quattro direzioni), ma non in diagonale e mai verso un quadrato in cui c è una buca. 1 2 3 3 G 2 B B 1 A Formalizzare il problema di raggiungere l'obiettivo G come un problema di ricerca. (a) Descrivere lo spazio degli stati. (b) Descrivere lo stato iniziale e lo stato obiettivo. (c) Descrivere gli operatori. (d) Assumendo che gli operatori abbiano costo unitario, disegnare l'albero di ricerca generato dall'algoritmo A* per il problema, usando come funzione euristica la distanza di Manhattan, e determinando i valori assegnati a ciascun nodo dalla funzione di valutazione. Quando la funzione di valutazione assume lo stesso valore su più nodi, indicare un possibile ordine di espansione dei nodi stessi. Evitare di espandere gli stati già visitati. (e) Indicare se la funzione di valutazione euristica precedente è ammissibile e perché. Nota: questo esercizio e la sua soluzione sono simmetrici rispetto a quello dato, che era: 1 2 3 1 A 2 B B 3 G Esercizio 6 (punti 3) Si introduca (eventualmente descrivendolo per casi) l algoritmo di unificazione e si discuta (anche tramite esempio) se e quale proprietà di un dimostratore automatico tramite risoluzione che lo adotti è inficiata dalla rimozione del test di occur-check in tale algoritmo.

SOLUZIONE Esercizio 1 Costanti: giorgio, pasquale, luca, marco, milan, bari; Simboli di predicato unari: club(x); Simboli di predicato binari: gemelli(x,y), appartiene(x,y), giocacontro(x,y), presiede(x,y). Rappresentiamo le frasi in modo opportuno come formule del primo ordine: 1] X Y Z [(gemelli(x,y) club(z) appartiene(x, Z)) appartiene(y, Z)] 2] X Y Z T [(gemelli(x,y) club(z) club(t) appartiene(x, Z) appartiene(y, T)) giocacontro(z, T)] 3] X Y Z [(gemelli(x,y) club(z) presiede(x, Z)) appartiene(y, Z)] 4] gemelli(giorgio,pasquale) 5] gemelli(marco,luca) 6] appartiene(giorgio,milan) 7] presiede(luca,bari) 8] club(milan) 9] club(bari) Query come formula del primo ordine: Q] appartiene(pasquale, bari) giocacontro(bari,milan) Trasformazione in clausole: 1] gemelli(x,y) club(z) appartiene(x, Z) appartiene(y, Z) 2] gemelli(x,y) club(z) club(t) appartiene(x, Z) appartiene(y, T) giocacontro(z, T) 3] gemelli(x,y) club(z) presiede(x, Z) appartiene(y, Z) 4] gemelli(giorgio,pasquale) 5] gemelli(marco,luca) 4 ] gemelli(pasquale,giorgio) 5 ] gemelli(luca,marco) 6] appartiene(giorgio,milan) 7] presiede(luca,bari) 8] club(milan) 9] club(bari) G] ( appartiene(pasquale, bari) giocacontro(bari,milan) ) G] appartiene(pasquale, bari) giocacontro(bari,milan) G1] appartiene(pasquale, bari) G2] giocacontro(bari,milan) Applicazione della risoluzione: da G2 e 2] si deriva: 10] gemelli(x,y) club(bari) club(milan) appartiene(x, bari) appartiene(y, milan) Da 10], 8] e 9], in più passi si deriva: 11] gemelli(x,y) appartiene(x, bari) appartiene(y, milan) Da 11], 4 ] si deriva: 12] appartiene(pasquale, bari) appartiene(giorgio, milan) Da 12], G1] e 6] in due passi si deriva la clausola vuota.

Esercizio 2 Min-Max Alfa-beta

Esercizio 3 nodup([1,2]) not(duplicati([1,2])) duplicati([1,2]) T 0/[2], X 0/1 membertail(1,[2],x 1) membertail(1,[],x 1) membertail(x 0,[1,2],T 0),membertail(X 0,T 0,X 1) membertail(x 0,[2],T 0),membertail(X 0,T 0,X 1) T 0/[], X 0/2 membertail(2,[],x 1) membertail(x 0,[],T 0),membertail(X 0,T 0,X 1) false false false true Esercizio 4 /* range(i,j,ks) e vero se Ks e la lista di interi compresi tra I e J */ /* compresi */ range(i,j,ks):-range(i,j,[],ks). range(i,i,ks,[i Ks]):-!. range(i,j,as,ks):-i < J, J1 is J - 1, range(i,j1,[j As],Ks). Esercizio 5 Sia N = [1,2,3] Spazio degli stati: S = N N Un generico stato s sarà rappresentato da un coppia di coordinate <xs,ys> che indicano la posizione dell'agente nel mondo. Stato Iniziale: <1,1> Stato Finale: <1,3> Operatori: L'agente può muoversi di un quadrato alla volta in orizzontale o in verticale. Se vuole rimanere vivo non deve passare nei quadrati in cui c'è una buca. Sia Buca(x,y) = true se in posizione <x,y> c è una buca. Nome: Sopra Significato: A partire dalla sua posizione attuale l'agente si muove di una posizione in alto. Precondizioni per l'applicazione nello stato s = <xs,ys>: il passaggio non deve essere bloccato dalla presenza di una buca - Buca(xs,ys +1) = false Nuovo stato: s = <xs,ys +1> Nome: Sotto Significato: A partire dalla sua posizione attuale l'agente si muove di una posizione in basso. Precondizioni per l'applicazione nello stato s = <xs,ys>: il passaggio non deve essere bloccato dalla presenza di una buca - Buca(xs,ys -1) = false Nuovo stato: s = <xs,ys +1> Nome: Destra Significato: A partire dalla sua posizione attuale l'agente si muove di una posizione a destra. Precondizioni per l'applicazione nello stato s = <xs,ys>: il passaggio non deve essere bloccato dalla presenza di una buca - Buca(xs+1,ys) = false Nuovo stato: s = <xs+1,ys> Nome: Sinistra Significato: A partire dalla sua posizione attuale l'agente si muove di una posizione a sinistra.

Precondizioni per l'applicazione nello stato s = <xs,ys>: il passaggio non deve essere bloccato dalla presenza di una buca - Buca(xs-1,ys) = false Nuovo stato: s = <xs-1,ys> Euristica ammissibile: Scegliamo come euristica ammissibile h(n) la distanza di Manhattan. La distanza di Manhattan tra due punti <x1,y1> e <x2,y2> è data dalla formula M = y2-y1 + x2-x1. Algoritmo A*: La funzione di valutazione è f(n) = g(n) + h(n), dove la h(n) è la funzione euristica precedente e la g(n) è la funzione di costo del cammino, scelta pari al numero delle caselle della griglia visitate dall'agente. L'algoritmo A* espande tra tutti i nodi aperti quello che ha il valore della funzione euristica più basso. L'albero di ricerca è mostrato in figura. Accanto ad ogni nodo è riportato il valore della funzione di valutazione. I nodi già visitati non sono stati espansi.