Intelligenza artificiale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Intelligenza artificiale"

Transcript

1 Intelligenza artificiale Appunti NON UFFICIALI del corso del prof. Francesco Amigoni Politecnico di Milano Marcello Pogliani marcello.pogliani - at - gmail - dot - com A.A Questo documento raccoglie gli appunti da me raccolti durante le lezioni del corso. Non sono stati rivisti attentamente: possono contenere errori oppure imprecisioni dovute sia alla fretta con la quale sono stati redatti che alla mia scarsa conoscenza della materia - del resto, sono appunti scritti durante lo studio. Per quanto mi riguarda, è possibile distribuire, modificare, etc, etc questo documento, purché venga citata la fonte. Spero di non aver violato il copyright di nessuno :) Nota: Alcuni esempi e figure citati durante le lezioni e qui riportati sono tratti da [3]. In particolare, alcune figure sono tratte dai file resi disponibili su [2]. Il programma completo del corso è disponibile sul sito ufficiale [1]

2

3 Indice 1 Introduzione Concetti fondamentali Agenti intelligenti Tipologie di ambiente Tipologie di agente Rappresentazione dello stato Risoluzione dei problemi tramite ricerca Formulazione del problema Ricerca delle soluzioni di un problema Strategie di ricerca Ricerca non informata Strategie di ricerca informate Ricerca con avversari Giochi come un problema di ricerca Algoritmo Minimax Potatura alfa-beta Giochi con casualità: expectiminimax Problemi di soddisfacimento di vincoli CSP come problemi di ricerca Euristiche Scelta della variabile Scelta del valore Propagazione dei vincoli Agenti basati sulla conoscenza Procedure di inferenza per la logica proposizionale Concatenazione in avanti (FC) Concatenazione all indietro (BC) Risoluzione (R) Procedure di inferenza per la logica del primo ordine Concetti preliminari Concatenazione in avanti e all indietro Risoluzione Pianificazione STRIPS Pianificazione in avanti Pianificazione all indietro Pianificatori nello spazio dei piani

4

5 1 Introduzione 1.1 Concetti fondamentali Il termine Intelligenza Artificiale è stato coniato nel 1956 da John McCarthy, all interno di una proposta per organizzare un gruppo di lavoro al Dartmouth College 1. All idea di intelligenza artificiale si è comunque arrivati da tante direzioni diverse, che prendono in considerazione punti di vista differenti gli uni dagli altri, e che hanno portato a una ricchezza di background su cui è nata la disciplina. I principali approcci alla definizione di intelligenza artificiale sono: Agire umanamente Questo è l approccio del test di Turing (1950, Computer Machinery and Intelligence): la domanda possono le macchine pensare? è troppo difficile, perché implica una definizione del termine pensare. Questo approccio cerca di dare come risposta una definizione operativa sotto forma dell imitation game: ci sono tre stanze, A, B e una stanza centrale, separate le une dalle altre e collegate da telescriventi, con cui gli occupanti di una stanza possono comunicare con quelli delle altre. Nella stanza A viene messo un uomo, nella stanza B una donna, nella stanza centrale un interrogante (di qualsiasi sesso). Lo scopo dell uomo è di farsi riconoscere come donna, lo scopo della donna è di farsi riconoscere come donna, lo scopo dell interrogante è quello di riconoscere chi è l uomo e chi è la donna. In seguito, al posto dell uomo nella stanza A viene messa una macchina, e si ripete lo stesso gioco. Secondo questo approccio, se in questa seconda configurazione la macchina riesce a ingannare l interrogante con la stessa frequenza con cui l interrogante era stato ingannato dall uomo, allora possiamo concludere che la macchina è intelligente, ossia che la macchina pensa. Astraendo molto, il test di Turing valuta se una macchina si comporta come un essere umano, ossia se agisce umanamente. Pensare umanamente Un secondo approccio è quello di cercare non una macchina che agisce come un essere umano, ma una macchina che pensa come un essere umano. Dal punto di vista ingegneristico, il problema di questo approccio è che, allo stato attuale, non è disponibile un buon modello del funzionamento della mente di un essere umano. Dal punto di vista scientifico, una strada di questo tipo ha dato vita a una serie di branche importanti della scienza, quali le scienze cognitive, che cercano di descrivere con una serie di modelli computazionali il comportamento umano. Pensare razionalmente Un terzo approccio è astrarre dal pensiero dell essere umano, e cercare di costruire macchine che pensano razionalmente, dove la razionalità è una descrizione idealizzata del pensiero dell essere umano, di come l essere umano dovrebbe pensare: ad esempio, non tutti i comportamenti dell essere umano sono facilmente modellabili, ma il pensiero deduttivo lo è. Agire razionalmente Nell approccio del pensare razionalmente, in qualche modo, viene fornita alla macchina una specifica del metodo di ragionamento, ossia dell algoritmo che deve seguire (ad es. il modus ponens). Invece, nell approccio dell agire razionalmente si guarda solo all output: vengono considerate intelligenti quelle macchine che fanno qualcosa (indipendentemente dalla strada che seguono), il cui output è corretto 1 J. McCarthy, M. L. Minsky, N. Rochester, C.E. Shannon, A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence, 31 agosto 1955

6 6 INTRODUZIONE azione a Agente Ambiente p percezione Figura 1.1: L agente e l ambiente ed è razionale, dove per razionale si intende fare la cosa giusta con le informazioni a disposizione. Nel seguito faremo riferimento a quest ultima definizione: macchine intelligenti sono quelle capaci di agire razionalmente secondo qualche definizione di razionalità. Il corso è centrato attorno alla visione di una entità (agente razionale). Un agente è una macchina che interagisce con un ambiente: è capace di percepire parte dello stato dell ambiente con i sensori e di intervenire sull ambiente tramite i suoi attuatori. In questo corso, cercheremo di realizzare un agente che sia intelligente, ossia che reagisca razionalmente nel proprio ambiente. Discipline che hanno forti relazioni con l IA sono la filosofia (le macchine possono pensare? cosa vuol dire il pensiero nelle macchine?...), oltre alla matematica (logica matematica), psicologia, economia, linguistica (comprensione del linguaggio naturale,...), scienza del controllo, informatica. 1.2 Agenti intelligenti In figura 1.1 è rappresentato il ciclo base di un sistema intelligente. In maniera astratta, le decisioni dell agente fanno riferimento a una funzione agente f : P A che ha come dominio l insieme di tutte le possibili sequenze di percezioni P, dove P è l insieme di tutte le possibili percezioni dell agente (che sono in numero finito per qualsiasi agente artificiale che si considera), e ha come codominio l insieme A di tutte le possibili azioni. La funzione agente è una specifica di altissimo livello del funzionamento dell agente. In questo approccio, il tempo viene considerato come discreto. L implementazione, in un programma software, della funzione agente, è detta programma agente. Esempio 1.1 (Il mondo dell aspirapolvere): Siano A e B due stanze in cui si può muovere un agente (aspirapolvere), e sia presente nell ambiente dello sporco. L agente è dotato di due sensori, uno che A B indica in che stanza si trova l agente stesso, e l altro che indica se la stanza è pulita oppure sporca. Le azioni che può effettuare sono: muoversi a destra (r), muoversi a sinistra (l), aspirare (s), non fare niente (n). Questo può essere formalizzato come A = {l, r, s, n} P = {[A, pulita], [A, sporca], [B, pulita], [B, sporca]} Una possibile specifica tabellare della funzione agente è la seguente:

7 AGENTI INTELLIGENTI 7 P A [A, pulita] r [A, sporca] s [B, pulita] l [B, sporca] s [A, pulita][a, pulita] r [A, pulita][a, sporca] s Gli agenti a cui verrà fatto riferimento devono essere razionali. Una possibile definizione di razionalità che può essere applicata in questo contesto è: Definizione (Razionalità). Per ogni possibile sequenza di percezioni, un agente è detto razionale se sceglie l azione che massimizza il valore atteso della misura di performance date le percezioni fino a quel momento e la conoscenza dell agente La misura di prestazioni è definita dal progettista e rappresenta lo scopo dell agente. In generale, questa misura va sempre definita sugli stati del mondo, e non sulle azioni dell agente. Secondo la definizione appena data, dunque, essere razionali non vuol dire né essere onniscenti ( data la conoscenza dell agente ) né avere conoscenza del futuro (l obiettivo è massimizzare il valore atteso della misura di prestazioni). Per costruire la funzione agente è necessario conoscere, oltre all insieme delle percezioni P (i sensori), e l insieme delle azioni A (gli attuatori), la misura di performance da adottare e il tipo di ambiente in cui l agente si trova ad operare. In alcune applicazioni, l imsieme delle percezioni e delle azioni sono dati (ad esempio nel caso di un agente giocatore di scacchi), mentre altre volte sono da progettare (ad esempio nel caso di un robot utilizzato per l esplorazione di Marte) Tipologie di ambiente Un ambiente può essere classificato secondo vari aspetti: completamente osservabile (i sensori dell agente hanno accesso allo stato completo dell ambiente) oppure parzialmente osservabile a singolo agente oppure multi-agente deterministico (lo stato prossimo dell ambiente è completamente determinato dallo stato corrente e dall azione che l agente esegue nell ambiente) oppure stocastico (è definita una distribuzione di probabilità sullo stato prossimo) episodico (nell ambiente si susseguono episodi indipendenti gli uni dagli altri, ad esempio nel caso di un controllo qualità di pezzi meccanici che si susseguono su un nastro) oppure sequenziale statico (l ambiente non cambia mentre l agente pensa) oppure dinamico discreto oppure continuo noto (l agente conosce le leggi che governano il funzionamento dell ambiente) oppure ignoto Tipologie di agente Per implementare un programma agente è possibile utilizzare una delle seguenti architetture di base. schematizzate in figura 1.2: agenti reattivi semplici, che sono utilizzabili, ad esempio, in ambienti completamente osservabili

8 8 INTRODUZIONE agenti reattivi basati su modello, utilizzabili anche in ambienti parzialmente osservabili agenti basati su obiettivi, detti anche agenti risolutori di problemi agenti basati sull utilità. A differenza degli agenti basati su obiettivi, che sono binari (uno stato del mondo è un obiettivo oppure non lo è), questo tipo di agente attribuisce ad ogni stato del mondo un valore di utilità Tutte queste tipologie di agente possono essere estese, aggiungendo un processo di apprendimento. p(t) Agente p(t) Agente aspetto corrente del mondo Ambiente come evolve il mondo stato cosa fanno le azioni aspetto corrente del mondo Ambiente regole condizione/azione azione da eseguire regole condizione/azione azione da eseguire s(t) (a) agente reattivo semplice s(t) (b) agente reattivo basato su modello Agente p(t) Agente p(t) come evolve il mondo stato cosa fanno le azioni obiettivi aspetto corrente del mondo come cambia il mondo se eseguo a azione da eseguire Ambiente come evolve il mondo utilità stato cosa fanno le azioni aspetto corrente del mondo come cambia il mondo se eseguo a soddisfazione di essere in s azione Ambiente s(t) (c) agente basato su obiettivi s(t) (d) agente basato sull utilità Figura 1.2: Architetture per l implementazione di programmi agente Rappresentazione dello stato La rappresentazione dello stato del mondo all interno di un agente può avere varie caratteristiche, e in particolare può essere classificata come una rappresentazione atomica: la sola cosa che si può dire riguardo a due stati è stabilire se sono uguali oppure diversi rappresentazione fattorizzata: lo stato è caratterizzato da un insieme di coppie variabile, valore rappresentazione strutturata: vengono considerati esplicitamente gli oggetti che rappresentano lo stato e anche le loro relazioni

9 2 Risoluzione dei problemi tramite ricerca In questo capitolo si considereranno gli agenti risolutori di problemi, un caso particolare degli agenti basati su obiettivo. La risoluzione di un problema si articola in tre passi: 1. Formulazione del problema 2. Ricerca di una soluzione 3. Esecuzione della soluzione Dato un problema formulato opportunamente, un agente risolutore di problemi è in grado di trovarne autonomamente la soluzione, e quindi di eseguirla. Esempio 2.1 (Un agente che gioca a scacchi (o a dama)): La formulazione del problema è una specifica all agente delle regole del gioco. Il secondo e il terzo passo sono eseguiti dalla macchina stessa: la macchina, autonomamente, cerca una soluzione del problema formulato (ad es. una sequenza di mosse che porta allo scacco matto) ed esegue la soluzione (nel caso della dama e degli scacchi questi passi sono poi reiterati a causa delle mosse dell avversario). Secondo questo schema, l algoritmo che viene utilizzato per risolvere il problema non è scritto dal progettista, ma viene trovato automaticamente dall agente. In questo senso, si può affermare che l intelligenza artificiale si occupa di meta-algoritmi (algoritmi che generano altri algoritmi). Ha senso applicare questo approccio quando l algoritmo per risolvere il problema non è ovvio. Se non diversamente specificato, si considereranno ambienti statici, discreti, deterministici, completamente osservabili e noti. 2.1 Formulazione del problema Il primo passo per la risoluzione di un problema consiste nella formulazione, da parte del progettista, delle indicazioni necessarie alla macchina per trovare una soluzione al problema in modo autonomo. Per illustrare i diversi elementi della formulazione del problema, si considererà l esempio del gioco del 15, nella sua versione semplificata detta gioco dell otto. Si tratta di un rompicapo costituito da una griglia 4 4 con 15 tesserine numerate che si possono muovere. Lo scopo del gioco è metterle in fila, lasciando la casella bianca in un estremo della griglia. La formulazione di un problema si compone di cinque elementi: lo stato iniziale È la configurazione iniziale del problema. Ad esempio, nel gioco dell otto, è la configurazione iniziale delle tessere nella griglia, come la seguente: la funzione azioni È una funzione che prende come argomento uno stato e restituisce un insieme di azioni possibili applicabili a quello stato: Azioni(s) = { a 1, a 2,... }

10 10 RISOLUZIONE DEI PROBLEMI TRAMITE RICERCA Nell esempio, le azioni possibili a partire dallo stato iniziale s 0 descritto al punto precedente sono (6, ) e (7, ) che corrispondono rispettivamente a muovere la casella vuota in alto e a sinistra. In termini della funzione azioni, Azioni(s 0 ) = {, }. il modello di transizioni Prende la forma della funzione Risultato(s, a) = s che, preso in ingresso uno stato s e un azione a applicabile a s, restituisce un nuovo stato s (detto successore di s) che risulta dall avere applicato l azione a allo stato s. Nell esempio, Risultato(s 0, ) = s 1 dove lo stato s 1 è Si può osservare che, in questa definizione della funzione risultato, si è considerato l ambiente come deterministico. Spazio degli stati L insieme di stato iniziale, funzione azioni e funzione risultato definisce lo spazio degli stati, ossia un grafo i cui nodi corrispondono agli stati e i cui archi corrispondono alle azioni. É importante osservare che alla macchina non viene fornita una rappresentazione esplicita dell intero grafo, ma soltanto le regole per costruirlo, ossia lo spazio degli stati viene fornito implicitamente. La macchina opererà esplorando il grafo: a un certo punto, verrà generato uno stato che contiene la soluzione cercata. La soluzione al problema è il cammino che nello spazio degli stati porta dallo stato iniziale a questo stato, ovvero le mosse che devono essere compiute per raggiungere l obiettivo a partire dalla configurazione iniziale. Il problema sta nel riuscire a trovare questo cammino senza espandere completamente lo spazio degli stati, che può essere molto ampio 1 : è quindi importante avere una rappresentazione implicita dello spazio degli stati. il test obiettivo Distingue gli stati terminali dagli stati non terminali. Questo test può essere implementato elencando esplicitamente gli stati finali (questo tipo di implementazione risulta semplice, ad esempio, nel gioco dell otto in cui vi è un solo stato finale), oppure specificando una proprietà che gli stati finali devono soddisfare. il costo di cammino Si tratta del costo per ogni cammino presente nello spazio degli stati. In pratica, viene definito come la somma del costo di ogni passo che lo compone. Definizione (Soluzione). Una soluzione di un problema è un cammino nello spazio degli stati che porta dallo stato iniziale a uno degli stati che soddisfano il test obiettivo. Una soluzione ottima è una soluzione a costo di cammino minimo. Esempio 2.2 (Problema delle otto regine): stato iniziale: scacchiera vuota azioni possibili: mettere una regina in una casella vuota 2 funzione risultato: lo stato di prima più la regina nella casella in cui è stata inserita test obiettivo: ci devono essere otto regine e non ce ne devono essere due sulla stessa riga, due sulla stessa colonna, o due sulla stessa diagonale 1 nel problema del gioco degli scacchi è circa , pari al numero di atomi stimato presente nell universo visibile 2 non ci sono azioni applicabili se ci sono già 8 regine

11 RICERCA DELLE SOLUZIONI DI UN PROBLEMA 11 costo di passo: unitario Lo spazio degli stati è composto da = stati. Il problema di questa formulazione è che tutta la conoscenza è descritta dal test obiettivo. Una formulazione alternativa più furba è la seguente stato iniziale: scacchiera vuota funzione azioni: dato uno stato, metti una regina nella colonna più a sinistra libera in modo tale che non sia attaccata da alcuna altra regina presente sulla scacchiera... Formulando il problema in questo modo, si è passati a soli 2057 stati. In generale, per ridurre lo spazio degli stati, la conoscenza del dominio va messa il più possibile nella funzione azione. In questo problema, per entrambe le formulazioni, la lunghezza della soluzione ottima è Ricerca delle soluzioni di un problema Nel modello presentato in questo capitolo, la rappresentazione dello stato è atomica (è noto solo che uno stato è diverso da un altro, ma non sono note altre informazioni sugli stati). Per esplorare una porzione dello spazio degli stati si fa uso di un albero di ricerca, in cui vi è un unico cammino che porta da un nodo alla radice. Per costruire l albero di ricerca, si procede secondo questo algoritmo: 1. Viene generata la radice dell albero (ossia un nodo che corrisponde allo stato iniziale) 2. Finché l algoritmo non termina, si ripetono i passi seguenti: Si seleziona il prossimo nodo da considerare (secondo qualche strategia) Si applica il test obiettivo al nodo considerato. viene soddisfatto, altrimenti prosegue L algoritmo termina se il test Se il test obiettivo è fallito, si espande il nodo considerato: si costruiscono tutti i suoi successori, applicando dapprima la funzione Azioni al nodo selezionato per trovare gli archi, e poi la funzione Risultato per trovare i nodi successivi. Si dice frontiera, o lista aperta, l insieme dei nodi che sono nell albero di ricerca ma devono essere ancora espansi. Per selezionare un nodo da espandere dalla frontiera, si può ipotizzare di ordinare secondo qualche criterio i nodi e poi scegliere il primo della lista. Nei paragrafi successivi verranno descritte le diverse strategie per selezionare il nodo da espandere. Un nodo nell albero di ricerca corrisponde a un cammino nello spazio degli stati: infatti, nell albero di ricerca è possibile avere più nodi relativi allo stesso stato, che corrispondono a diversi cammini che portano dallo stato iniziale allo stesso stato. Ogni nodo dell albero viene rappresentato da una struttura dati che contiene: lo stato a cui il nodo si riferisce il nodo padre (serve per risalire l albero nel caso venga trovata una soluzione) l azione che ha portato al nodo (serve per dare in output la serie di azioni che ha portato alla soluzione) il costo di cammino g(n), somma dei costi delle azioni che portano a nodo n. Se il costo di ogni passo è unitario, questo corrisponde alla profondità. Una variante all algoritmo presentato in questo paragrafo (Ricerca-Albero) prevede di mantenere, oltre alla frontiera (lista aperta), la cosiddetta lista chiusa, che contiene gli stati per cui si è già espanso un nodo. Questa struttura consente di evitare di espandere nuovamente uno stato già considerato (eliminare gli stati ripetuti): se viene selezionato un nodo già presente nella lista chiusa, questo non viene espanso. L algoritmo che prevede l utilizzo della lista chiusa è detto Ricerca-Grafo.

12 12 RISOLUZIONE DEI PROBLEMI TRAMITE RICERCA 2.3 Strategie di ricerca Lo strumento che viene utilizzato per esplorare una parte dei possibili cammini dello spazio degli stati è l albero di ricerca. Una strategia di ricerca è un criterio per scegliere i nodi dalla frontiera ad ogni iterazione. Esistono diverse strategie di ricerca, che si differenziano per completezza (se esiste una soluzione, la strategia la trova), ottimalità (la strategia trova sempre la soluzione ottima, se esiste) e complessità, che può essere temporale (calcolata in genere come il numero di nodi generati nell albero di ricerca) oppure spaziale (misurata in base al numero di nodi che devono essere mantenuti in memoria). Nel seguito, verranno utilizzati alcuni parametri per descrivere le diverse strategie di ricerca: b (fattore di ramificazione oppure branching factor): il massimo numero dei successori di un nodo d: profondità della soluzione più vicina alla radice m: massima lunghezza di un cammino nello spazio degli stati c : costo della soluzione ottima. Se tutti i passi hanno costo unitario, d = c Ricerca non informata Le strategie di ricerca non informate non fanno uso di alcuna altra informazione oltre a quelle contenute nella definizione del problema. In tutti gli esempi che seguono verrà utilizzato l algoritmo di ricerca Ricerca-Albero (senza eliminazione degli stati ripetuti), tranne quando diversamente indicato. Esempio 2.3: La figura 2.1 presenta un esempio di spazio degli stati con cinque stati (A, B, C, D, E), avente A come stato iniziale ed E come unico stato che soddisfa il test obiettivo. 5 B 5 A 1 1 E stato iniziale: A stato finale: E C 1 D Figura 2.1: Esempio di spazio degli stati Ricerca in ampiezza La strategia di ricerca in ampiezza estrae sempre, tra tutti i nodi presenti nella frontiera, quello meno profondo. Per la regola con cui sono scelti i nodi, prima di espandere i nodi di livello n + 1 vengono espansi tutti i nodi di livello n, utilizzando una coda FIFO per la frontiera. La strategia di ricerca in ampiezza è completa (se il numero di successori di un nodo è finito, ossia se il branching factor b è un numero finito) e non è ottima 3. La complessità temporale, calcolata come numero di nodi generati nel caso di Ricerca-albero è data da 1 + b + b b d + b(b d 1) = O(b d+1 ) 3 La ricerca in ampiezza trova la soluzione più vicina alla radice, fornisce la soluzione con il minore numero di passi. Trova la soluzione ottima quando il costo di cammino è una funzione monotona non decrescente della profondità del nodo

13 STRATEGIE DI RICERCA 13 mentre la complessità spaziale (nodi da tenere in memoria nel caso pessimo) è pari alla complessità temporale (finché non si trova la soluzione, vanno tenuti in memoria tutti i nodi). Se al posto dell algoritmo generale si applica il test obiettivo appena viene generato un nodo (prima di inserirlo nella frontiera), la complessità si riduce a O(b d ) Esempio 2.4: Per lo spazio di stati della figura 2.1, la strategia di ricerca in ampiezza produce il seguente albero: A Andamento della frontiera (nodo, profondità): (A, 0) B A C B E B A C C C D E (B, 1) (C, 1) (C, 1) (A, 2) (E, 2) (A, 2) (E, 2) (D, 2) (A, 2) (E, 2) (D, 2) (A, 2) (B, 3) (C, 3) (E, 2) (D, 2) (B, 3) (C, 3) (B, 3) (C, 3) (E, 2) (B, 3) (C, 3) (B, 3) (C, 3) (C, 3) (E, 3) All ultima iterazione viene considerato il nodo E di profondità 2, il test obiettivo ha successo e l algoritmo termina. Nell esempio, per risolvere l ambiguità che si presenta nel caso più nodi abbiano la stessa profondità, i nodi sono stati estratti in ordine lessicografico. Utilizzando l algoritmo Ricerca-Grafo invece di Ricerca-Albero, il nodo A non si sarebbe espanso due volte oltre alla radice. Costo uniforme La strategia a costo uniforme sceglie dalla frontiera il nodo che ha costo di cammino più basso. Questa strategia è completa solo se tutti i costi sono strettamente positivi e ottima. Sia la complessità temporale che quella spaziale è data da O(b c /ε ), dove ε è un lower bound positivo sul costo di passo 4. Ricerca in profondità La ricerca in profondità sceglie dalla frontiera il nodo più lontano dalla radice (a profondità maggiore). Per la frontiera, questa strategia utilizza una coda LIFO. A (continua all infinito) B C A E A E B C... Figura 2.2: Albero prodotto dalla ricerca in profondità per lo spazio degli stati di figura 2.1 La ricerca in profondità non è completa (diventa completa se i nodi non sono infiniti utilizzando l eliminazione degli stati ripetuti, quindi Ricerca-grafo invece che Ricercaalbero) e non è ottima. In generale, la complessità temporale è O(b m ) (nell esempio, m = ) e la complessità spaziale è O(b m) (in generale è necessario mantenere attivo soltanto il nodo corrente dell albero, quindi m livelli con b nodi per livello nel caso peggiore). 4 c /ε è il costo della soluzione nel caso peggiore dunque rappresenta la profondità della soluzione

14 14 RISOLUZIONE DEI PROBLEMI TRAMITE RICERCA Questa strategia ammette una variante, denominata backtracking, in cui invece di generare tutti i b successori di un nodo ne viene generato uno alla volta. Il vantaggio è che la sua complessità spaziale è O(m), non considerando la struttura dati supplementare per tener traccia del prossimo successore da generare per ogni nodo. Profondità limitata Questa strategia di ricerca è uguale alla ricerca in profondità, con la differenza che è definito un limite l per cui, prima di espandere un nodo dopo avere applicato il test obiettivo, se questo nodo si trova a profondità l non viene espanso. Per applicare questa strategia è necessario modificare la struttura dati del nodo aggiungendo l informazione sulla profondità. La ricerca a profondità limitata è completa se l d, non è ottima, ha complessità temporale di O(b l ) e complessità spaziale di O(b l). Ricerca ad approfondimento iterativo Il maggiore problema della ricerca a profondità limitata è che non è noto il minimo valore di l necessario a trovare una soluzione se non si conosce il valore di d. Questa strategia ripete iterativamente una ricerca a profondità limitata aumentando di 1 ogni volta il valore di l. Questo permette, rispetto alla ricerca in ampiezza, di ridurre notevolmente la complessità spaziale: è completa (nel caso in cui b non sia ), non è ottima 5, ha complessità temporale pari a 1(d + 1) + bd + b 2 (d 1) + + b d 1 = O(b d ) che è la stessa della ricerca in ampiezza quando viene applicato il test obiettivo al momento della generazione del nodo, ma ha complessità spaziale di O(b d) Strategie di ricerca informate Le strategie di ricerca informate fanno uso di informazione supplementare rispetto a quella contenuta nella definizione del problema, per scegliere il prossimo nodo da espandere della frontiera. L idea di base è quella di definire una funzione f(n), detta funzione di valutazione, che valuta in qualche modo i nodi che sono presenti nella frontiera. Tutte le volte che un algoritmo di ricerca (grafo o albero) deve scegliere un nodo dalla frontiera, sceglie quello con valore di f(n) più alto. Ricerca greedy Un primo modo per definire la funzione di valutazione è definirla come la funzione euristica f(n) = h(n), h(n) 0, che rappresenta una stima del costo per andare dal nodo n al nodo di goal più vicino. In questo caso la strategia di ricerca è detta greedy best first. Si noti che, formalmente, la funzione euristica è definita sui nodi. Tuttavia, nei problemi pratici è più semplice definire la funzione euristica sugli stati: questo significa che tutti i nodi che corrispondono allo stesso stato hanno lo stesso valore della funzione euristica. Viene costruito come al solito l albero di ricerca. Nella frontiera si utilizza un ordinamento basato sulla funzione f. Esempio 2.5: Albero generato dallo spazio degli stati della figura 2.3 utilizzando la ricerca greedy best first. A B A E C Andamento della frontiera (nodo, valore di f(n)): (A, 3) (B, 2) (C, 3) (C, 3) (A, 3) (E, 0) L ultimo nodo ad essere espanso è E in quanto ha il valore minore della funzione di valutazione (0). Il test obiettivo fornisce esito positivo, e l algoritmo termina restituendo la soluzione A B E. 5 come nel caso della ricerca in ampiezza, trova sempre la soluzione più vicina alla radice

15 STRATEGIE DI RICERCA 15 h(b) = 2 2 B 6 h(a) = 3 A E h(e) = 0 stato iniziale: A stato finale: E 2 h(c) = 3 C 2 D 2 h(d) = 2 Figura 2.3: Uno spazio degli stati in cui sono indicati i valori della funzione euristica. Questa strategia non è completa (si può ciclare all infinito tra gli stessi stati se le euristiche sono definite in modo opportuno) e quindi non è nemmeno ottima. È invece completa ma non ottima utilizzando Ricerca-grafo. La sua complessità è O(b n ) (sia temporale che spaziale). Ricerca A* Si può definire un altra funzione di valutazione come f(n) = g(n) + h(n), somma del costo del cammino per arrivare al nodo n e della stima del costo per arrivare da n al nodo di goal (funzione euristica). Questa funzione rappresenta la stima del costo di una soluzione che passa per n. La strategia di ricerca che utilizza questa funzione è detta A. Esempio 2.6: Albero generato dallo spazio degli stati della figura 2.3 utilizzando la ricerca A*. A B A E A C D C E Andamento della frontiera (nodo, valore di f(n)): (A, 3) (B, 4) (C, 5) (C, 5) (A, 7) (E, 8) (A, 7) (E, 8) (A, 7) (D, 6) (A, 7) (E, 8) (A, 7) (C, 9) (E, 6) L ultimo nodo ad essere espanso è E in quanto ha il valore minore della funzione di valutazione (6). Il test obiettivo fornisce esito positivo, e l algoritmo termina restituendo la soluzione A C D E di costo pari a 6. Con la ricerca A viene scelto quello che globalmente è il nodo più promettente, secondo la combinazione del costo sostenuto per arrivare a quel nodo più il costo stimato per arrivare al goal. Definizione (Euristica ammissibile). Una funzione euristica è ammissibile quando, per ogni nodo n h(n) h (n) dove h (n) è il costo reale per arrivare da n allo stato obiettivo Una funzione euristica è ammissibile, dunque, quando non sovrastima mai il costo per arrivare al goal. Ci sono diverse tecniche per calcolare funzioni euristiche ammissibili, senza conoscere il valore di h (n) (ad esempio, per problemi geografici, un euristica ammissibile per problemi in cui il costo è il calcolo della distanza tra luoghi - con ostacoli - può essere la distanza in linea d aria tra due luoghi). Per qualsiasi tipo di problema, un euristica

16 16 RISOLUZIONE DEI PROBLEMI TRAMITE RICERCA sicuramente ammissibile è 0 per tutti gli stati: in questo caso, la ricerca A si riduce alla ricerca a costo uniforme. In un nodo di goal, h(n) = 0. Si può dimostrare la proprietà seguente: A è ottimo se viene utilizzato l algoritmo Ricerca-albero e h è una euristica ammissibile. Idea della dimostrazione: Siano n e G 2 due nodi della frontiera, tali che G 2 sia un nodo di goal subottimo e n un nodo che sta sul percorso ottimo per arrivare al goal (nota: questo nodo esiste sempre se nella frontiera è presente un nodo di goal subottimo). f(g 2 ) = g(g 2 ) > c essendo G 2 un nodo di goal subottimo, ed essendo c è il costo del cammino ottimo. f(n) = g(n) + h(n) c essendo g(n) + h(n) una funzione che non sovrastima il costo ottimo per arrivare al goal. Allora f(n) c < f(g 2 ) Questo significa che non verrà mai scelto dall algoritmo di ricerca A un nodo di goal subottimo. Definizione (Euristica consistente). Una funzione euristica è consistente quando per ogni coppia di nodi n e n tali che n sia successore di n, h(n) c(n, n ) + h(n ) dove c(n, n ) è il costo di passo per andare da n a n. La condizione di consistenza è più stringente dell ammissibilità. Vale infatti l implicazione seguente: se una euristica h è consistente, allora è anche ammissibile. Il viceversa non vale in generale, anche se in realtà è molto difficile trovare un euristica ammissibile ma non consistente. Teorema. A è ottimo se viene utilizzata Ricerca-grafo e h è consistente. Idea della dimostrazione: per poter garantire l ottimaltà su ricerca grafo, devo dimostrare che tutte le volte che estraggo un nodo dalla frontiera, ho già trovato un cammino ottimo che passa da quel nodo. Se l euristica è consistente, pertanto f(n ) = g(n ) + h(n ) = g(n) + c(n, n ) + h(n ) g(n) + h(n) = f(n) f(n ) f(n) per qualsiasi coppia n, n t.c. n successore di n. Se l euristica è consistente, la funzione di valutazione del successore non è mai più piccola della funzione di valutazione del padre: la funzione di valutazione in un path dell albero di ricerca è sempre non decrescente. Inoltre, si può dimostrare che se l euristica è consistente, A espande i nodi in ordine non decrescente di f(n). Questo implica che tutte le volte che viene espanso un nodo, si è trovato un cammino ottimo fino allo stato corrispondente a quel nodo. In particolare, la prima volta che viene espanso un nodo di goal, si è trovato un cammino ottimo per quel nodo. Sul funzionamento di A si può dimostrare che l algoritmo espande tutti i nodi con f(n) < c qualche nodo con f(n) = c nessun nodo con f(n) > c Si dice che A è ottimamente efficiente: a parità di euristica, non esiste alcun altro algoritmo che espanda meno nodi di A e che garantisca di trovare la soluzione ottima. Sia la complessità temporale che quella spaziale di A ha la forma O( (h h) l ). Esistono delle versioni che utilizzano un quantitativo di memoria limitato (fissato) a spese della complessità temporale.

17 3 Ricerca con avversari Il problema della ricerca con avversari si riscontra tipicamente in giochi come la dama o gli scacchi. È l unica tipologia di ambiente multiagente (in particolare, si tratta di un ambiente in cui operano due soli agenti) che verrà considerato. In questo contesto non è più definito il concetto di soluzione del problema di ricerca, che viene sostituito dal concetto di strategia: una strategia indica che cosa il giocatore deve fare rispetto a tutte le possibili azioni che può compiere l avversario. È possibile classificare i giochi, caso tipico della ricerca con avversari, secondo vari aspetti: una prima classificazione distingue in giochi deterministici (che quindi non coinvolgono elementi come il lancio di dadi, carte da estrarre,... ) e giochi con casualità. un secondo aspetto distingue i giochi a informazione perfetta da quelli a informazione imperfetta. Un gioco è a informazione perfetta se i due giocatori conoscono ad ogni istante lo stato completo del gioco, ed è a informazione imperfetta se vi sono elementi dello stato del gioco che non sono conosciuti da uno dei giocatori (un esempio è il poker, in cui il giocatore non conosce le carte in mano agli avversari) Inizialmente l attenzione sarà rivolta ai giochi deterministici a informazione perfetta. In seguito, si vedrà come queste tecniche possono essere estese a giochi a informazione perfetta ma con casualità. 3.1 Giochi come un problema di ricerca Assumendo che il gioco si svolga a turni e che coinvolga due soli giocatori (detti max e min, dove max è il primo giocatore che deve effettuare una mossa), si può formalizzare un gioco come un problema di ricerca costituito dai seguenti elementi: lo stato iniziale del gioco una funzione Giocatore(s) che, dato uno stato s, restituisce un valore tra min e max, corrispondente al giocatore che deve effettuare una mossa in s. una funzione Azioni(s) che restituisce l insieme di mosse legali nello stato s una funzione Risultato(s, a) = s, che fornisce lo stato s risultante dall esecuzione dell azione a nello stato s il test di terminazione che, dato uno stato, indica se è uno stato finale del gioco. Il test di terminazione sostituisce quello che nella formulazione del problema di ricerca era il test obiettivo. A differenza di come era stato definito il test obiettivo (che non impedisce di effettuare ulteriori azioni), se viene soddisfatto il test di terminazione non è possibile effettuare ulteriori azioni una funzione Utilità(s, p) che ha come parametri uno stato terminale s e uno dei due giocatori p, e indica qual è l utilità del giocatore p per lo stato s. Un esempio di funzione utilità potrebbe ritornare +1 per il giocatore che vince, 1 per il giocatore che perde, 0 in caso di pareggi).

18 18 RICERCA CON AVVERSARI Figura 3.1: Porzione dell albero di gioco per il tris Questa formalizzazione definisce implicitamente lo spazio degli stati, che è necessario esplorare con l artificio dell albero di ricerca, detto in questo contesto albero di gioco. Ad esempio, nella figura 3.1 è rappresentata una porzione dell albero di gioco per il tris. Si può notare, come prima differenza con i problemi di ricerca classici definiti nelle sezioni precedenti, che per poter definire una formalizzazione di un gioco è necessario entrare più profondamente nella struttura dello stato: non è quindi in generale sufficiente avere degli stati identificati semplicemente da una lettera. Definizione (Gioco a somma zero). Un gioco si definisce a somma zero se la somma delle utilità dei giocatori è pari a 0 per ogni stato terminale. Considerando soltanto giochi a somma zero, si può definire soltanto un valore della funzione utilità (che quindi non dipende dal giocatore), corrispondente all utilità di max, e assumere che il giocatore max vuole massimizzare l utilità, mentre min vuole minimizzarla. Per questo motivo, nell esempio di figura 3.1 è rappresentata soltanto l utilità di max. 3.2 Algoritmo Minimax Per determinare la mossa migliore per il giocatore max in un gioco, si può sfruttare il calcolo del valore minimax, associato ad ogni nodo dell albero di gioco. Il valore minimax è definito come l utilità per max di stare in quel nodo, se da quel punto in poi entrambi i giocatori giocano la partita perfetta. L idea di base dell algoritmo minimax risiede nel massimizzare il minimo valore di utilità che max può ottenere se min gioca la partita perfetta, ovvero di massimizzare il peggior risultato. Se è stato generato tutto l albero di gioco, i valori minimax dei nodi possono essere calcolati propagandoli verso la radice a partire dai nodi terminali:

19 ALGORITMO MINIMAX 19 il valore minimax di un nodo terminale è pari alla sua utilità per max il valore minimax di un nodo min è il più piccolo tra i valori minimax dei suoi figli il valore minimax di un nodo max è il più grande tra i valori minimax dei suoi figli Se non è stato ancora generato l albero di gioco, invece, è possibile calcolare il valore minimax direttamente durante la visita (o la costruzione) dell albero in profondità. La figura 3.2 rappresenta un albero per un gioco fittizio, in cui si è indicato per ogni nodo il valore minimax. Per convenzione, in figura sono rappresentati i nodi corrispondenti a stati in cui deve giocare max (nodi max) con un triangolo la cui punta è rivolta verso l alto, mentre i nodi min sono rappresentati da triangoli con la punta rivolta verso il basso. I nodi terminali sono rappresentati da un quadrato. nodo max valore minimax Figura 3.2: Albero di gioco con valori minimax In giochi di dimensioni reali risulta computazionalmente impossibile costruire tutto l albero di gioco. In questi casi, gli algoritmi che vengono utilizzati generano l albero a partire dalla radice, senza arrivare agli stati terminali. In altri termini, questi algoritmi tagliano l albero in corrispondenza di determinati nodi. È definito un test di taglio che, applicato a un nodo, decide in base ad alcune caratteristiche (ad esempio la profondità del nodo), se espandere o meno il sottoalbero a partire da quel nodo. Altre tecniche che vengono utilizzate consistono nell espandere, in base a qualche caratteristica, solo un successore di alcuni nodi e non tutti (estensione singola), oppure scegliere le due o tre mosse che potrebbero essere migliori (potatura in avanti). Il risultato finale dell applicazione di queste ottimizzazioni è un albero le cui foglie non sono terminali. Per calcolare il valore di questi nodi, non essendo definita la funzione di utilità, viene introdotta la funzione di valutazione che, dato uno stato non terminale, restituisce un valore associato a quello stato per il giocatore max: questa funzione è concettualmente simile all euristica h definita per gli algoritmi di ricerca informata (A ). Ad esempio, una funzione di valutazione per il gioco degli scacchi può valutare elementi come il numero di pezzi rimasti, il tipo di pezzi rimasti, la disposizione dei pezzi sulla scacchiera e altri ancora. Una volta costruito l albero, viene infine utilizzato l algoritmo minimax per propagare fino alla radice i valori ottenuti dalla funzione di valutazione Potatura alfa-beta Per migliorare l efficienza della tecnica minimax, si può affiancare la tecnica della potatura alfa-beta (α β pruning). Per ricavare l albero a partire dalla definizione del gioco come problema di ricerca, si può procedere costruendolo in profondità. Appena viene raggiunto un nodo terminale, si può osservare che è possibile ricavare informazioni sui valori minimax di altri nodi, pur non conoscendo esattamente quali siano questi valori. Ad esempio, visitando un nodo terminale il cui valore di utilità è pari a 3, si può ricavare che il padre di questo nodo, se è un nodo min, avrà un valore minimax 3. A partire da considerazioni di questo tipo, si può evitare di generare e visitare intere parti dell albero, pur mantenendo un risultato finale esattamente identico a quello generato da minimax (viene trovata la soluzione esatta, non una approssimata), in quanto si potano rami che vengono sicuramente scartati.

20 20 RICERCA CON AVVERSARI Figura 3.3: Albero ottenuto con potatura alfa-beta relativo al gioco di figura 3.2 L entità della potatura (il numero di nodi che non vengono generati) dipende dall ordine di valutazione dei nodi. Si può dimostrare che, se il numero di nodi generato da minimax quando esplora tutto l albero di gioco è O(b m ) dove b è il branching factor (il massimo numero di successori di un nodo) e m è la profondità dell albero, nel caso migliore, ossia con l ordinamento dei nodi migliore possibile, la potatura alfa-beta permette di avere una complessità di O(b m/2 ). Algorithm 1 Potatura alfa-beta function Vmax(stato, α, β) if TestTerminale(stato) then return Utilita(stato) end if v for all Successori(stato) as s do v max(v, Vmin(s, α, β)) if v β then return v end if α max(α, v) end for return v end function Per lo stato iniziale s 0 : Vmax(s 0,, + ) function Vmin(stato, α, β) if TestTerminale(stato) then return Utilita(stato) end if v + for all Successori(stato) as s do v min(v, Vmax(s, α, β)) if v α then return v end if β min(β, v) end for return v end function L implementazione classica per calcolare il valore minimax di un nodo max e di un nodo min (algoritmo 1) fa uso di due parametri, detti α e β, dove α è il valore della scelta migliore per max trovata fino a questo momento, mentre β è il valore della scelta migliore per min trovata fino a questo momento. In generale, si ha una situazione - presentata in figura 3.4 -

21 GIOCHI CON CASUALITÀ: EXPECTIMINIMAX 21 in cui nell albero di gioco è presenta un nodo max in cui c è una scelta che porta ad avere un certo valore α di utilità. A un certo punto, un altra scelta per max porta a un altro nodo max. Se il valore di un nodo min figlio di quest ultimo nodo è minore o uguale a un certo valore v, con v α, si possono evitare di generare i nodi sotto questo nodo min (si può effettuare un taglio alfa). Lo stesso ragionamento può essere fatto dal punto di vista di min (taglio beta): si può tagliare quando c è un opzione che è sicuramente più grande del suo valore β.... α valore v α posso tagliare Figura 3.4: Taglio alfa 3.3 Giochi con casualità: expectiminimax Le tecniche presentate finora si applicano alla creazione di agenti per giochi deterministici, privi quindi di elementi di casualità quali il lancio di dadi. Queste tecniche possono essere generalizzate a giochi con casualità. Ovviamente, le funzioni definite per la formulazione di un problema, vanno modificate in maniera opportuna per tenere conto della presenza degli elementi di casualità: il modo più semplice per farlo è considerare un terzo giocatore ( natura ) che sceglie una mossa secondo una certa distribuzione di probabilità. Nella rappresentazione dell albero di gioco quest estensione equivale all aggiunta di nodi di casualità, i cui rami uscenti sono etichettati con la probabilità con cui la scelta si verifica. L algoritmo expectiminimax è un estensione delle tecniche viste sinora a questo caso. Ad ogni nodo dell albero viene assegnato un valore valore expectiminimax in questo modo: per i nodi terminali, è il valore di utilità corrispondente per un nodo min, è pari al minimo dei valori expectiminimax dei suoi figli per un un nodo di casualità è il valore atteso dei valori expectiminimax dei suoi figli per un nodo max è il massimo dei valori dei suoi figli. La figura 3.5 presenta un esempio di albero di gioco e di calcolo dei valori expectiminimax. Nell esempio sono presenti dei nodi di casualità, rappresentati con dei cerchi, che corrispondono ai momenti del gioco in cui interviene l elemento della casualità (in questo caso, il lancio di una moneta). In questo gioco, max sceglie una mossa, poi viene lanciata una moneta, min effettua una mossa e il gioco finisce. È possibile applicare l algoritmo di potatura alfa-beta visto nel paragrafo precedente anche nel caso di giochi con casualità. L algoritmo di potatura alfa-beta, nel modo in cui è stato presentato, assume che i valori che può assumere la funzione di utilità non siano noti: si aspetta che i prossimi valori della funzione di utilità possano essere qualsiasi. In realtà, è

22 22 RICERCA CON AVVERSARI Figura 3.5: Gioco con casualità con valori expectiminimax spesso possibile fornire dei limiti superiori e inferiori sui possibili valori della funzione di utilità, ad esempio è possibile supporre che i valori della funzione di utilità per il gioco di figura 3.5 siano compresi nell intervallo [ 2, +2]. A fronte di queste considerazioni, si possono migliorare le prestazioni dell algoritmo. Nota Essendo la funzione di valutazione una stima della funzione di utilità, possono sorgere problemi quando viene utilizzata la tecnica del taglio e dell utilizzo della funzione di valutazione con l algoritmo expectiminimax. Perché l approccio minimax dia una soluzione ottima, è necessario che i valori alle foglie dell albero siano i più precisi possibili: non è sufficiente che mantengano l ordinamento delle preferenze nelle situazioni per max, ma devono mantenerne anche la scala, altrimenti la scelta della mossa migliore viene modificata.

23 4 Problemi di soddisfacimento di vincoli I problemi di soddisfacimento di vincoli (CSP, constraint satisfaction problem) sono una specializzazione del problema di ricerca in cui la rappresentazione dello stato è di tipo fattorizzato (non è atomica come negli algoritmi di ricerca informata e non informata visti precedentemente). In particolare, uno stato è un insieme di variabili che possono assumere dei valori che spaziano in determinati domini. Formalmente, un problema di soddisfacimento di vincoli è definito da: un insieme di variabili x 1, x 2,..., x n un insieme di domini D 1, D 2,..., D n dove D i è il dominio dei valori della variabile x i un insieme C 1, C 2,..., C m di vincoli. I vincoli specificano le combinazioni di valori per le variabili ammissibili per il problema (ad esempio, un possibile vincolo è x 1 x 2 ). Dati i valori delle variabili coinvolte, un vincolo può essere vero o falso: un vincolo può essere rappresentato come una relazione, ossia da un sottoinsieme del prodotto cartesiano dei domini delle variabili coinvolte nel vincolo Lo scopo di un problema di soddisfacimento di vincoli è trovare un assegnamento di valori alle variabili che sia completo e consistente. Un assegnamento è consistente quando non viene violato alcun vincolo; è completo quando assegna un valore ad ognuna delle variabili. I problemi CSP possono essere classificati in problemi a domini continui (problemi tipici della ricerca operativa) e problemi a domini discreti. A loro volta, i domini discreti possono essere finiti o infiniti. Nel seguito ci si concentrerà su CSP a domini discreti e finiti. Esempio 4.1 (colorazione di una mappa geografica): Data una mappa geografica dell Australia, rappresentata in figura 4.1, si vogliono colorare i territori in modo tale che non ci siano due territori adiacenti che abbiano lo stesso colore, avendo a disposizione tre colori (rosso, verde, blu). Il problema può essere Western Australia Northern Territory South Australia Queensland New South Wales Victoria Tasmania Figura 4.1: Mappa relativa all esempio della colorazione degli Stati formalizzato come segue: variabili: WA, NT, SA, Q, NSW, V, T (i territori) domini: D i = r, g, b (i tre colori: red, green, blue)

3 Ricerca per Giochi e CSP

3 Ricerca per Giochi e CSP Esercizio 3.1 Dire quale tecnica usereste per risolvere i seguenti giochi: 1. Backgammon 2. Scarabeo 3. Scacchi 4. Go 5. Monpoli 6. Poker Motivate le risposte con adeguate ragioni basate sulle caratteristiche

Dettagli

Ricerca non informata

Ricerca non informata Ricerca non informata Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 05/03/2018 Ricerca non informata Definizione del problema della ricerca Architettura necessaria Blind search

Dettagli

Ricerca con avversari

Ricerca con avversari Ricerca con avversari Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 12/03/2018 Ricerca con avversari Definizione di gioco Giochi deterministici Giochi stocastici Giochi con parziale

Dettagli

Algoritmi e giochi combinatori

Algoritmi e giochi combinatori Algoritmi e giochi combinatori Panoramica Giochi combinatori Programmi che giocano Albero di un gioco L algoritmo Minimax 1 Perché studiare i giochi? Problemi che coinvolgono agenti in competizione tra

Dettagli

Agenti Intelligenti. Corso di Intelligenza Artificiale, a.a Prof. Francesco Trovò

Agenti Intelligenti. Corso di Intelligenza Artificiale, a.a Prof. Francesco Trovò Agenti Intelligenti Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 26/02/2018 Agenti Intelligenti Definizione di agente Razionalità Specifica dell ambiente Design di un agente

Dettagli

Constraint Satisfaction Problems

Constraint Satisfaction Problems Constraint Satisfaction Problems Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 19/03/2018 Constraint Satisfaction problem Fino ad ora ogni stato è stato modellizzato come una

Dettagli

Intelligenza Artificiale Compito - 12 Marzo 2007

Intelligenza Artificiale Compito - 12 Marzo 2007 Intelligenza Artificiale Compito - 1 Marzo 007 Nome e Cognome: Matricola: Nickname: ESERCIZIO N 1 Ricerca Informata A* 4 punti Stabilite se un euristica monotona permette ad A* di espandere sempre meno

Dettagli

Intelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5.

Intelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5. Sommario Intelligenza Artificiale CSP RN 3.8, 4.3, 4.5 Giochi RN 5 Lezione 6bis Intelligenza Artificiale Daniele Nardi, 2004 Lezione 6bis 0 Intelligenza Artificiale Daniele Nardi, 2004 Lezione 6bis 1 Problemi

Dettagli

Intelligenza Artificiale. Risoluzione dei Problemi

Intelligenza Artificiale. Risoluzione dei Problemi Intelligenza Artificiale Risoluzione dei Problemi Strategie non-informate: principali 1. breadth-first; 2. depth-first; 3. depth-first a profondità limitata; 4. ad approfondimento iterativo. Ricerca in

Dettagli

Intelligenza Artificiale. Tecniche di ricerca basate sullo spazio degli stati

Intelligenza Artificiale. Tecniche di ricerca basate sullo spazio degli stati Intelligenza Artificiale Tecniche di ricerca basate sullo spazio degli stati Marco Piastra Ricerca e stati - 1 Problemi diversi, soluzioni simili Fox, Goat and Cabbage La definizione prevede Uno stato

Dettagli

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

I giochi con avversario. I giochi con avversario. Introduzione. Giochi come problemi di ricerca. Il gioco del NIM. I giochi con avversario I giochi con avversario Maria Simi a.a. 26/27 Regole semplici e formalizzabili eterministici, due giocatori, turni alterni, zero-sum, informazione perfetta (ambiente accessibile)

Dettagli

Intelligenza Artificiale

Intelligenza Artificiale Intelligenza Artificiale 17 Marzo 2005 Nome e Cognome: Matricola: ESERCIZIO N 1 Ricerca Cieca 5 punti 1.A) Elencare in modo ordinato i nodi (dell'albero sotto) che vengono scelti per l'espansione dalle

Dettagli

Introduzione all Intelligenza Artificiale a.a. 2016/17

Introduzione all Intelligenza Artificiale a.a. 2016/17 Introduzione all Intelligenza Artificiale a.a. 2016/17 Prima prova intermedia 7 Aprile 2017 PRIMA PARTE Domande (punti 7) La risposta corretta alla maggior parte delle domande abilita la correzione della

Dettagli

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

Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati. CERCARE SOLUZIONI Generare sequenze di azioni. Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati. Strategia di ricerca: ad ogni passo scegliere

Dettagli

Intelligenza Artificiale. Ricerca euristica Algoritmo A*

Intelligenza Artificiale. Ricerca euristica Algoritmo A* Intelligenza Artificiale Ricerca euristica Algoritmo A* Marco Piastra Metodi di ricerca - Ricerca non informata Ricerca nello spazio degli stati Definizione di un grafo come spazio degli stati I nodi rappresentano

Dettagli

Intelligenza Artificiale. Lezione 5. Sommario. Ricerca Best-first. Ricerca golosa. Russell & Norvig Capitolo 4, Paragrafi 1 2. Ricerca Best-first

Intelligenza Artificiale. Lezione 5. Sommario. Ricerca Best-first. Ricerca golosa. Russell & Norvig Capitolo 4, Paragrafi 1 2. Ricerca Best-first Sommario Russell & Norvig Capitolo 4, Paragrafi 1 2 Intelligenza Artificiale Ricerca Best-first Ricerca A Euristiche Lezione 5 IDA* SMA* Intelligenza Artificiale Daniele Nardi, 2004 Lezione 5 0 Intelligenza

Dettagli

Algoritmi di Ricerca

Algoritmi di Ricerca Algoritmi di Ricerca Contenuto Algoritmi non informati Nessuna conoscenza sul problema in esame Algoritmi euristici Sfruttano conoscenze specifiche sul problema Giochi Quando la ricerca è ostacolata da

Dettagli

Intelligenza Artificiale. Ricerca euristica L algoritmo A*

Intelligenza Artificiale. Ricerca euristica L algoritmo A* Intelligenza Artificiale Ricerca euristica L algoritmo A* Marco Piastra Ricerca euristica - Ricerca non informata Ricerca nello spazio degli stati Definizione di un grafo come spazio degli stati I nodi

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Consideriamo un generico problema di ottimizzazione min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando

Dettagli

3 Ricerca per Giochi e CSP

3 Ricerca per Giochi e CSP Esercizio 3.1 Dire quale tecnica usereste per risolvere i seguenti giochi: 1. Backgammon 2. Scarabeo 3. Scacchi 4. Go 5. Monpoli 6. Poker Motivate le risposte con adeguate ragioni basate sulle caratteristiche

Dettagli

Problemi CSP: Problemi di. soddisfacimento di vincoli. Colorazione di una mappa. Formulazione di problemi CSP. Formulazione. Tipi di problemi CSP

Problemi CSP: Problemi di. soddisfacimento di vincoli. Colorazione di una mappa. Formulazione di problemi CSP. Formulazione. Tipi di problemi CSP Problemi di soddisfacimento di vincoli Maria Simi a.a. 2010/2011 Problemi CSP: soddisfacimento di vincoli Sono problemi con una struttura particolare, per cui conviene pensare ad algoritmi specializzati.

Dettagli

Agenti Basati su Logica

Agenti Basati su Logica Agenti Basati su Logica Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 09/04/2018 Agenti basati sulla logica Generico agente logico Il mondo del Wumpus Logica proposizionale Inferenza

Dettagli

Università di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi A3_1 V1.3. Agenti

Università di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi A3_1 V1.3. Agenti Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A3_1 V1.3 Agenti Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per

Dettagli

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

Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_1 V1.4 Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati Il contenuto del documento è

Dettagli

INTRODUZIONE ALLA TEORIA DEI GIOCHI

INTRODUZIONE ALLA TEORIA DEI GIOCHI Corso di Identificazione dei Modelli e Controllo Ottimo Prof. Franco Garofalo INTRODUZIONE ALLA TEORIA DEI GIOCHI A cura di Elena Napoletano elena.napoletano@unina.it Teoria dei Giochi Disciplina che studia

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Si consideri il problema min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva)

Dettagli

METODI DELLA RICERCA OPERATIVA

METODI DELLA RICERCA OPERATIVA Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)

Dettagli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Ottimizzazione Combinatoria e Reti (a.a. 2007/08) o Appello 6/07/008 Ottimizzazione Combinatoria e Reti (a.a. 007/08) Nome Cognome: Matricola: ) Dopo avere finalmente superato l esame di Ricerca Operativa, Tommaso è pronto per partire in vacanza. Tommaso

Dettagli

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.

Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S. Il Branch & Bound Il metodo Branch & Bound è una tecnica che permette di risolvere all ottimo un generico problema di Programmazione Lineare Intera. Tale metodo si basa su due concetti cardine: quello

Dettagli

Esercizi d'esame su strategie di ricerca, CSP e Giochi. Compiti d'esame 2017 e 2018

Esercizi d'esame su strategie di ricerca, CSP e Giochi. Compiti d'esame 2017 e 2018 Esercizi d'esame su strategie di ricerca, CSP e Giochi Compiti d'esame 2017 e 2018 1 Giugno 2018 Strategia a costo uniforme Si consideri il seguente grafo in cui gli archi sono annotati col costo e si

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

Ricerca informata in uno spazio di stati

Ricerca informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_3 V2.5 Ricerca informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli studenti,

Dettagli

Università degli Studi di Bergamo Intelligenza Artificiale (Codice: 38066) 16 Aprile 2018

Università degli Studi di Bergamo Intelligenza Artificiale (Codice: 38066) 16 Aprile 2018 DIPARTIMENTO DI INGEGNERIA GESTIONALE, DELL INFORMAZIONE E DELLA PRODUZIONE Università degli Studi di Bergamo Intelligenza Artificiale (Codice: 38066) 16 Aprile 2018 Nome: Cognome: Matricola: Riga: Colonna:

Dettagli

Possibile applicazione

Possibile applicazione p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti FONDAMENTI DI INTELLIGENZA ARTIFICIALE 16 Giugno 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si modellino le seguenti frasi (si noti che il dominio contiene solo entità

Dettagli

Intelligenza Artificiale. Lezione 15. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 0

Intelligenza Artificiale. Lezione 15. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 0 Intelligenza Artificiale Lezione 15 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 15 0 Sommario CSP RN 3.8, 4.3, 4.5 Giochi RN 5.1, 5.2, 5.3, 5.4 Algoritmi genetici RN 20.8 Intelligenza Artificiale

Dettagli

1 Definizione formale di gioco in forma estesa.

1 Definizione formale di gioco in forma estesa. 1 Definizione formale di gioco in forma estesa. Una game form in forma estesa, finita, è: - un insieme finito N (assumeremo N = {1,..., n}) - un albero finito T = (V, L) con radice v V. (Dove: V è un insieme

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare L. De Giovanni G. Zambelli 1 Definizione del problema duale La teoria della dualità in programmazione

Dettagli

2 Problemi di Ricerca

2 Problemi di Ricerca Esercizio 2.1 Formalizzare come problema di ricerca il problema delle 8 regine. Esercizio 2.2 Analizzare l algoritmo di ricerca a lunghezza iterativa. Tale algoritmo incrementa iterativamente il limite

Dettagli

3.4 Metodo di Branch and Bound

3.4 Metodo di Branch and Bound 3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land

Dettagli

Risoluzione automatica di problemi. Sistemi distribuiti LS Prof. Andrea Omicini A.A

Risoluzione automatica di problemi. Sistemi distribuiti LS Prof. Andrea Omicini A.A Risoluzione automatica di problemi Sistemi distribuiti LS Prof. Andrea Omicini A.A. 2003-2004 Problemi del risolvere problemi Goal organizzare il comportamento del problema attorno al goal rappresentare

Dettagli

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati

Dettagli

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

Problemi di soddisfacimento di vincoli. Colorazione di una mappa. Formulazione di problemi CSP. Altri problemi Problemi di soddisfacimento di vincoli Maria Simi a.a. 2012/2013 Problemi di soddisfacimento di vincoli (CSP) Sono problemi con una struttura particolare, per cui conviene pensare ad algoritmi specializzati

Dettagli

TECNOLOGIE INFORMATICHE MULTIMEDIALI

TECNOLOGIE INFORMATICHE MULTIMEDIALI TECNOLOGIE INFORMATICHE MULTIMEDIALI ««Gli errori sono necessari, utili come il pane e spesso anche belli: per esempio, la torre di Pisa.» (Gianni Rodari, Il libro degli errori) Prof. Giorgio Poletti giorgio.poletti@unife.it

Dettagli

Corso di Intelligenza Artificiale

Corso di Intelligenza Artificiale Nome e Cognome: Matricola: Corso di Intelligenza Artificiale Anno Accademico 2010/2011 Compitino del 14 Febbraio 2011 Istruzioni Scrivere la risposta nello spazio bianco al di sotto della domanda; Non

Dettagli

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

Agenti risolutori di problemi. Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015 Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015 Agenti risolutori di problemi Adottano il paradigma della risoluzione di problemi come ricerca in uno spazio

Dettagli

Agenti risolutori di problemi

Agenti risolutori di problemi Agenti risolutori di problemi Agenti risolutori di problemi Risolvere i problemi come ricerca Maria Simi a.a 2010/2011 Adottano il paradigma della risoluzione di problemi come ricerca in uno spazio di

Dettagli

Intelligenza Artificiale Compito - 12 Marzo 2007

Intelligenza Artificiale Compito - 12 Marzo 2007 Intelligenza Artificiale Compito - 1 Marzo 007 Nome e Cognome: Matricola: Nickname: ESERCIZIO N 1 Ricerca Informata A* 4 punti Stabilite se un euristica monotona permette ad A* di espandere sempre meno

Dettagli

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

I giochi con avversario. I giochi con avversario. Introduzione. Il gioco del NIM. Il gioco del NIM. Giochi come problemi di ricerca I giochi con avversario I giochi con avversario Maria Simi a.a. 200/20 Regole semplici e formalizzabili Deterministici, due giocatori, turni alterni, zero-sum, informazione perfetta (ambiente accessibile)

Dettagli

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

I giochi con avversario. I giochi con avversario. Sommario. Il gioco del NIM. Il gioco del NIM. Giochi come problemi di ricerca I giochi con avversario I giochi con avversario Maria Simi a.a. 203/204 Regole semplici e formalizzabili deterministici, ambiente accessibile due giocatori, turni alterni, a somma zero, informazione perfetta

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi

Dettagli

Il metodo dei Piani di Taglio (Cutting Planes Method)

Il metodo dei Piani di Taglio (Cutting Planes Method) Il metodo dei Piani di Taglio (Cutting Planes Method) E un metodo di soluzione dei problemi (IP) di tipo generale. L idea di base: Se la soluzione di (RL) non è intera allora la soluzione ottima intera

Dettagli

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola: Sesto appello 7/7/8 RICERCA OPERATIVA (a.a. 7/8) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B

Dettagli

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola: o Appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: max x + x x x x x x + x x Si applichi l algoritmo del Simplesso Duale, per via algebrica, a

Dettagli

Parte III: Algoritmo di Branch-and-Bound

Parte III: Algoritmo di Branch-and-Bound Parte III: Algoritmo di Branch-and-Bound Sia Divide et Impera z* = max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)

Dettagli

Soluzione dei problemi di Programmazione Lineare Intera

Soluzione dei problemi di Programmazione Lineare Intera Fondamenti di Ricerca Operativa T-A a.a. 2014-2015 Soluzione dei problemi di Programmazione Lineare Intera Andrea Lodi, Enrico Malaguti, Daniele Vigo rev. 1.1.a ottobre 2014 Fondamenti di Ricerca Operativa

Dettagli

Laboratorio di Algoritmi

Laboratorio di Algoritmi Laboratorio di Algoritmi Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Martedì 8.30-10.30 in aula 3 Mercoledì 10.30-13.30 in aula 2 Giovedì 15.30-18.30 in

Dettagli

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Quinto appello 27/6/ = 4. B b B = 2 b N = 4 Quinto appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si risolva il problema di PL dato applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B {, }. Per

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di

Dettagli

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it a.a. 2002-03 e.merelli

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore

Dettagli

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Algoritmi

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Algoritmi UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Algoritmi Algoritmi classici Alcuni problemi si presentano con elevata frequenza e sono stati ampiamente studiati Ricerca di un elemento in un vettore

Dettagli

Caratteristiche di un calcolatore elettronico

Caratteristiche di un calcolatore elettronico Prof. Emanuele Papotto Caratteristiche di un calcolatore elettronico È una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche. È velocissimo,

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

Dettagli

max e tagli alfa-beta Una funzione euristica h(n) è detta ammissibile se non sbaglia mai per eccesso la stima del costo per arrivare all obbiettivo

max e tagli alfa-beta Una funzione euristica h(n) è detta ammissibile se non sbaglia mai per eccesso la stima del costo per arrivare all obbiettivo Strategie di ricerca Esercizi Martedì Maggio 005 Scopo:. Esercizi sulle strategie di ricerca. Esercizi sui giochi, alberi min-max max e tagli alfa-beta Errata corrige precedente esercitazione Una funzione

Dettagli

csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione

csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione CSP (Constraint Satisfaction Problem) o CSP = problemi di soddisfacimento di vincoli

Dettagli

Informatica Generale Homework di Recupero 2016

Informatica Generale Homework di Recupero 2016 Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola

Dettagli

Unità E1. Obiettivi. Non solo problemi matematici. Problema. Risoluzione di un problema. I dati

Unità E1. Obiettivi. Non solo problemi matematici. Problema. Risoluzione di un problema. I dati Obiettivi Unità E1 Dall analisi del problema alla definizione dell algoritmo Conoscere il concetto di algoritmo Conoscere le fasi di sviluppo di un algoritmo (analisi, progettazione, verifica) Conoscere

Dettagli

Esercizi svolti a lezione

Esercizi svolti a lezione Esercizi svolti a lezione Problema 1 In un corso di laurea sono previsti un certo numero di esami obbligatori. Esistono inoltre dei vincoli di propedeuticità: se un esame A è propedeutico ad un esame B

Dettagli

MATEMATICA PER LO STUDIO DELLE INTERAZIONI STRATEGICHE: TEORIA DEI GIOCHI. Anna TORRE

MATEMATICA PER LO STUDIO DELLE INTERAZIONI STRATEGICHE: TEORIA DEI GIOCHI. Anna TORRE MATEMATICA PER LO STUDIO DELLE INTERAZIONI STRATEGICHE: TEORIA DEI GIOCHI Anna TORRE Dipartimento di Matematica, Università di Pavia, Via Ferrata 1, 27100, Pavia, Italy. E-mail: anna.torre@unipv.it Una

Dettagli

Programmazione Lineare Intera: Piani di Taglio

Programmazione Lineare Intera: Piani di Taglio Programmazione Lineare Intera: Piani di Taglio Andrea Scozzari a.a. 2014-2015 April 22, 2015 Andrea Scozzari (a.a. 2014-2015) Programmazione Lineare Intera: Piani di Taglio April 22, 2015 1 / 23 Programmazione

Dettagli

Lezioni di Ricerca Operativa

Lezioni di Ricerca Operativa Lezioni di Ricerca Operativa Massimo Paolucci Dipartimento di Informatica, Sistemistica e Telematica (DIST) Università di Genova paolucci@dist.unige.it Anno accademico 2000/2001 La Ricerca Operativa (Operation

Dettagli

Algoritmo basato su cancellazione di cicli

Algoritmo basato su cancellazione di cicli Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile

Dettagli

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non

Dettagli

Lezioni di Ricerca Operativa

Lezioni di Ricerca Operativa Lezioni di Ricerca Operativa Massimo Paolucci Dipartimento di Informatica, Sistemistica e Telematica (DIST) Università di Genova paolucci@dist.unige.it http://www.dattero.dist.unige.it Anno accademico

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

Il valore di flusso che si ottiene è

Il valore di flusso che si ottiene è 1) Si consideri un insieme di piste da sci e di impianti di risalita. Lo si modelli con un grafo orientato che abbia archi di due tipi: tipo D (discesa e orientato nel senso della discesa) e tipo R (risalita

Dettagli

PSPACE completezza. Un linguaggio A è PSPACE completo se. 1. A è in PSPACE, cioè esiste una TM T che accetta A con complessità di spazio polinomiale.

PSPACE completezza. Un linguaggio A è PSPACE completo se. 1. A è in PSPACE, cioè esiste una TM T che accetta A con complessità di spazio polinomiale. Sommario Il problema della verità per formule booleane pienamente quantificate è PSPACE - completo PSPACE come la classe dei giochi. Il gioco geografico generalizzato è PSPACE - completo 1 PSPACE completezza

Dettagli

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

COMPITO DI RICERCA OPERATIVA. max 3x 1 + 2x 2 x x 2 + x 3 = 4 2x 1 + x 2 + x 4 = 3 COMPITO DI RICERCA OPERATIVA ESERCIZIO 1. (7 punti) Sia dato il seguente problema di PL: max 3x 1 + 2x 2 x 1 + 1 2 x 2 + x 3 = 4 2x 1 + x 2 + x 4 = 3 Lo si risolva con l algoritmo che si ritiene più opportuno

Dettagli

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

Dettagli

Ricerca Cieca. Spazio di Ricerca. ! albero di ricerca. Russell & Norvig: Introduzione al Problem Solving. Introduzione al Problem Solving

Ricerca Cieca. Spazio di Ricerca. ! albero di ricerca. Russell & Norvig: Introduzione al Problem Solving. Introduzione al Problem Solving Ricerca Cieca Russell & Norvig: 3.4 3.6 Spazio di Ricerca! albero di ricerca Concetti di Base Albero di ricerca Espansione nodi Strategia di ricerca: Per ogni nodo determina quale nodo espandere Nodi di

Dettagli

Laboratorio di Algoritmi

Laboratorio di Algoritmi Laboratorio di Algoritmi Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 10.30-13.30 in Aula 2 Martedì 8.30-10.30 in aula 3 Giovedì 8.30-10.30 in aula

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015 1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) diffusione di messaggi segreti memorizzazione

Dettagli

PROBLEMI DI VINCOLI CSP (Constraint satisfaction problems),, X ik. ) che specificano quali valori delle variabili sono compatibili tra loro,

PROBLEMI DI VINCOLI CSP (Constraint satisfaction problems),, X ik. ) che specificano quali valori delle variabili sono compatibili tra loro, PROBLEMI DI VINCOLI CSP (Constraint satisfaction problems) Dato un insieme finito di variabili X, X,, X n D, D,, D n i cui valori appartengono a domini e un insieme di vincoli c(x i, X i,, X ik ) che specificano

Dettagli

Soluzione dei problemi di Programmazione Lineare Intera

Soluzione dei problemi di Programmazione Lineare Intera Fondamenti di Ricerca Operativa T-A a.a. 2015-2016 Soluzione dei problemi di Programmazione Lineare Intera Andrea Lodi, Enrico Malaguti, Paolo Tubertini, Daniele Vigo rev. 2. ottobre 2016 Fondamenti di

Dettagli

RICERCA OPERATIVA (a.a. 2018/19)

RICERCA OPERATIVA (a.a. 2018/19) Secondo appello //9 RICERCA OPERATIVA (a.a. 8/9) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: min y + y y y y y = y + y y = y, y, y, y Si verifichi se la soluzione ȳ =,,, sia ottima

Dettagli

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

2.6 Calcolo degli equilibri di Nash

2.6 Calcolo degli equilibri di Nash 92 2 Giochi non Cooperativi Per queste estensioni di giochi non finiti si possono provare risultati analoghi a quelli visti per i giochi finiti. Rimandiamo alla bibliografia per uno studio più approfondito

Dettagli

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

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore. ESERCIZIO MIN- Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore. B C D E F G H I J K L M N O P Q R S T U (6) (8) (5) (0) (-2) (2) (5) (8) (9) (2)

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 9 Febbraio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 9 Febbraio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti FONDAMENTI DI INTELLIGENZA ARTIFICIALE 9 Febbraio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si formalizzino le seguenti frasi in logica dei predicati: 1. Ogni opera di

Dettagli