1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI
|
|
- Sabrina Orlando
- 7 anni fa
- Visualizzazioni
Transcript
1 1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI Questo capitolo tratta della possibilità di risolvere problemi analizzando le diverse possibilità prodotte dalla scelta dell agente. Abbiamo già visto come un agente possa essere rappresentato da una esecuzione (un run), e come questa sia il risultato della scelta di quale azione intraprendere ad ogni stato ambientale raggiunto dall agente; una volta applicata l azione, si raggiungerà un altro stato ambientale (o si rimarrà nello stesso, qualora l azione sia ininfluente), e così via fino a raggiungere auspicabilmente uno degli stati che interessa all agente: La definizione data implica che in ogni stato ambientale ci sia, almeno in linea di principio, la possibilità di scegliere tra diverse azioni, ; se così non fosse, non vi sarebbe alcuna scelta e quindi sarebbe inutile qualsiasi atto di ragionamento. Negli altri casi invece, avremo che a fronte di una situazione ambientale si potrà scegliere più di un azione, e quindi si procederà verso diversi stati ambientali, non necessariamente già non esplorati. a 1 e 0 a 3 a 2 a 1 e 1 a3 e 2 e 3 a 2 e 4 e 1 e 7 FIGURA 1IL GRAFO DEGLI STATI TRAMITE LE AZIONI Noi siamo interessati principalmente alla risoluzione di problemi, e quindi vogliamo utilizzare uqesto meccanismo per trovare un modo razionale ed efficiente di farlo. 1.1 DEFINIZIONE DI UN PROBLEMA Il primo passo sarà analizzare i problemi che vogliamo risolvere e definirli in modo che possano essere tradotti in una navigazione su un grafo. Per far questo dobbiamo definire lo spazio degli stati che abbiamo a disposizione, ovvero i nodi del grafo e gli archi per passare da un nodo all altro: 1. lo stato ambientale iniziale, ovvero da quale contesto parte l agente. 2. Le azioni che l agente può compiere; poiché le azioni ci permettono di raggiungere altri nodi stati ambientali, possiamo dire che le azioni sono funzioni successori di quello stato, ovvero una cerca azione j è uno S j (e i ), cioè restituisce l insieme degli stati raggiungibili dallo stato ambientale e i una volta applicata. 1 Introduzione all Intelligenza Artificiale Stefano De Luca
2 È evidente dunque che i nodi sono gli stati ambientali e gli archi le azioni che si possono applicare al nodo sorgente per arrivare agli altri nodi. Ad es., per un navigatore satellitare lo stato iniziale sarà la posizione in cui ci troviamo, ed eventualmente la conoscenza del mezzo che deve guidare (un automobile, una bicicletta, una persona a piedi). Poiché possiamo vedere le diverse strade già come un grafo, le azioni saranno la scelta di una strada piuttosto che un altra (di un arco del grafo stradale); una volta percorsa quella strada, ci troveremo in un altra posizione. Nel caso di una partita a scacchi, la posizione iniziale sarà quella iniziale della scacchiera, le azioni saranno i movimenti dei diversi pezzi che ci permetteranno di trovarci in una diversa posizione della scacchiera. Per l acquisto di un bene su Internet, lo stato iniziale sarà la quantità di soldi che l agente ha a disposizione, e le azioni saranno le ricerche sui siti di e-commerce, e l acquisto su di essi. Naturalmente, non tutti i nodi sono uguali. Poiché abbiamo un obiettivo da raggiungere, abbiamo bisogno di una funzione che ci dica se con quel particolare nodo abbiamo lo abbiamo raggiunto; nel caso del navigatore, avremo raggiunto l obiettivo nel caso che siamo arrivati a destinazione (che è un singolo caso); per gli scacchi, una qualsiasi posizione in cui avremo vinto dando scaccomatto (e sono numerosi casi); per l acquisto del bene, il raggiungimento dell obiettivo sarà dato dall acquisizione del bene, indipendentemente da dove questo sia stato acquistato. Abbiamo quindi bisogno di una funzione obiettivo, che restituisca un booleano che segnali il raggiungimento dell obiettivo; questa funzione può anche restituire un valore numerico, che segnali quanto è adeguato quel nodo all obiettivo (dove 0 è totalmente inadeguato e 1 totalmente adeguato), e che permetta all agente di stabilire se andare avanti a cercare una soluzione migliore o accontentarsi di quella già trovata. Da ultimo, poiché non sempre le azioni hanno lo stesso costo, dovremmo tenere conto di questo per non raggiungere l obiettivo in tempi troppo lunghi, o con azioni tropo costose. Per poter calcolare questo costo usiamo una funzione di costo, che indichi quanto il passaggio da un nodo all altro usando quella particolare azione sia costoso; la funzione di costo prenderà quindi in considerazione lo stato iniziale e l azione, g(e i, a j ), per segnalare quanto questa sia efficace. In alcuni problemi tutte le azioni hanno lo stesso costo, ad es. nel gioco degli scacchi, mentre in altri no, come negli altri esempi del navigatore (il costo può essere dato dalla lunghezza del percorso, o dal tempo stimato di percorrenza), e degli acquisti (il costo è dato dall inversa di quanto si spende, o dal tempo di acquisizione del bene). Come si vede dagli esempi, non è sempre facile definire una funzione di costo, e questa può essere il risultato di diversi parametri combinati tra loro, eventualmente ognuno definito con un suo peso; ad es. per l acquisto di un bene si potrà stabilire che la funzione costo è dato dal 70% dal costo economico del bene e dal 30% dal tempo di consegna. Percorrendo tutto l albero, dallo stato iniziale a quello finale, potremo calcolare il costo totale sommando i valori del costo di ogni singolo arco. Ricapitolando, gli elementi necessari per la definizione di un problema sono la definizione di: 1. stato iniziale; 2. funzione successore, ovvero le azioni applicabili; 3. funzione di raggiungimento dell obiettivo; 4. funzione di costo. 2 Introduzione all Intelligenza Artificiale Stefano De Luca
3 1.2 STRATEGIE DI RICERCA Una volta definito un problema fornendo i quattro elementi testé elencati, si dovrà scegliere come navigare all interno del grafo prodotto dall elaborazione dei successori a partire dal nodo base. Il punto è questo: la base del problema è il nodo iniziale, ovvero l iniziale stato ambientale; a partire da questo, dovremo andare oltre questo nodo tramite un operazione di espansione, ovvero di raggiungimento degli altri stati ottenuti tramite azioni. La scelta di quali nodi espandere corrisponde ad una strategia di ricerca, ovvero un modo di creare e navigare tutti gli stati possibili. Esistono diverse strategie di ricerca, che differiscono per le principali proprietà: completezza: una strategia è completa se garantisce il raggiungimento dell obbiettivo, assunto che ne esista uno; complessità nel tempo: quanto tempo impiega l algoritmo ad essere eseguito; complessità nello spazio: di quanta memoria ha necessità; ottimalità: supposto che esistano diverse soluzioni, ordinabili per valore, l algoritmo ci garantisce che viene trovata la migliore? Gli algoritmi di ricerca si dividono ancora in non informati, ovvero dove non si sa nulla del problema su cui si opera, ed informati, dove è possibile ottimizzare la ricerca usando informazioni specifiche al problema RICERCA PER PROFONDITÀ (DEPTH FIRST) La ricerca per profondità (depth first search) è in assoluto il più popolare algoritmo di ricerca; questo è dovuto alla sua facilità implementativa e alla buona velocità di esecuzione. L idea dell algoritmo è quella di espandere il primo nodo figlio e da là continuare a scendere finché non si raggiunge un nodo obiettivo o non si può più andare avanti; in quest ultimo caso, si torna indietro (backtracking) al nodo più recente di cui non siano stati espansi tutti i nodi. FIGURA 2RICERCA PER PROFONDITÀ, ORDINE DI ESPANSIONE DEI NODI Il limite principale di questo algoritmo è che, qualora il grafo contenga dei cicli, l algoritmo rimarrà bloccato in esso e nessun risultato sarà dato. Guardando la prossima figura, si vede come l algoritmo 3 Introduzione all Intelligenza Artificiale Stefano De Luca
4 procederà passando dal nodo 1 al 2, al 3, e poi, una volta arrivato al 4 tornerà indietro nuovamente al 2, ripetendo il ciclo già detto. FIGURA 3FINIRE IN UN CICLO Si può evitare la caduta nel ciclo mantenendo in memoria i nodi già attraversati, ed evitando di tornare su di essi. Nell esempio, da 4 non si andrà su 2 (già attraversato), ma si passerà invece al 5. Evidentemente c è un incremento della memoria usata, ma a vantaggio della solidità dell algoritmo. Rispetto alle specifiche suddette, possiamo dire che la ricerca in profondità: non è completo, in quanto in presenza di cicli può non trovare la soluzione; la sua complessità nel tempo è O(b m ), dove b è il branching factor, ovvero di quanto si espande l albero, e m è la massima profondità dell albero; potenzialmente questo vuol dire che bisogna navigare tutto l albero per trovare la soluzione. la sua complessità nello spazio è O(bm), che è senz altro buona; non è ottimale, in quanto è possibile trovare una soluzione sub-ottimale prima di una migliore, e in linea di principio quella migliore potrebbe essere dietro un ciclo RICERCA PER AMPIEZZA (DEPTH FIRST SEARCH) La ricerca per ampiezza differisce da quella in profondità perché prova a navigare il grafo livello livello per livello; in questo modo si evita di cadere in cicli infiniti, e diventa possibile trovare sempre la soluzione, se esiste, e la soluzione ottima se ne esiste più di una. 4 Introduzione all Intelligenza Artificiale Stefano De Luca
5 FIGURA 4NAVIGAZIONE TRAMITE ALGORITMO PER AMPIEZZA L idea dell algoritmo è esplorare tutti i nodi figli prima di scendere ulteriormente in profondità. I nodi esplorati vanno a comporre una coda, che verrà usata per navigare il livello sottostante una volta che non vi siano altri nodi figli. Rispetto alle specifiche suddette, possiamo dire che la ricerca in profondità: è completo, in quanto può scendere senza incontrare cicli fino a raggiungere la soluzione; la sua complessità nel tempo è O(b d ), dove b è il branching factor, ovvero di quanto si espande l albero, e d è la profondità della soluzione; come si vede, è migliore di quella per profondità. la sua complessità nello spazio è sempre O(b d ), che è invece decisamente non buona; è ottimale, in quanto è possibile trovare tutte le soluzioni, ottimali e sub-ottimali ITERATIVE DEEPENING Abbiamo visto come i due algoritmi di depth first e breadth first abbiamo ognuno degli elementi di criticità, il primo perché è soggetto ai cicli, il secondo per un uso eccessivo di memoria. Esiste un algoritmo che cerca di prendere gli elementi migliori da entrambi; già dal nome, iterative deepening, approfondimento iterativo, vediamo quale sia la strategia scelta: l idea è di partizionare il grafo in fasce della stessa ampiezza, ovvero si sceglierà una profondità n (1, 2, 3 ) e si esploreranno tutti i nodi a partire dalla radice che siano a distanza n; la distanza indica quanti archi bisogna attraversare dal nodo iniziale a quello di interesse. Entro questa fascia, si utilizzerà l algoritmo di depth first, che non potrà entrare in cicli infiniti, visto che la discesa sarà limitata dal parametro di approfondimento n. Una volta esplorati tutti i nodi, verranno posti in una coda tutti i nodi sulla frontiera, ovvero quelli raggiunti esattamente a profondità n. Da là si partirà con il medesimo approccio dell algoritmo breadth first, per ulteriori n livelli. 5 Introduzione all Intelligenza Artificiale Stefano De Luca
6 FIGURA 5NAVIGAZIONE DI UN GRAFO: ITERATIVE DEEPENING Rispetto alle specifiche suddette, possiamo dire che l iterative deepening sia : è completo, in quanto trova sempre la soluzione, se questa esiste; la sua complessità nel tempo è O(b d ), come nel caso del depth first la sua complessità nello spazio è O(bd), di nuovo come il depth first; è ottimale, in quanto è possibile raggiungere tutte le soluzioni. L uso di questo algoritmo è preferito nel caso di un grande spazio di esplorazione e non sia nota la profondità della (possibile) soluzione. 1.3 RICERCHE INFORMATE Gli algoritmi visti finora non presuppongono alcuna conoscenza del problema; ci basterà conoscere la funzione successore che ci permette di passare da un nodo all altro. Esiste però la possibilità di avere informazioni aggiuntive sul problema, come il costo (peso) del passaggio da un nodo all altro o una stima della distanza verso la soluzione, che possono consentire di migliorare in modo importante i tempi di ricerca e la quantità di memoria necessaria ALGORITMO GOLOSO (GREEDY) Il più semplice di questi algoritmi è l algoritmo goloso, o greedy. Per poterlo applicare, abbiamo bisogno di un grafo dove ogni arco sia etichettato con il costo, o peso, dell attraversamento. Un esempio semplice, vedi anche Figura 6, sono le distanze in chilometri tra due città. Lo stesso arco può 6 Introduzione all Intelligenza Artificiale Stefano De Luca
7 avere anche diversi pesi: nel caso del grafo stradale, possiamo avere un altro peso che ci indica la quantità di tempo necessaria prendendo in considerazione i limiti di velocità, un altro peso che indica la pericolosità della strada, o un altro che misura la sua bellezza paesaggistica. FIGURA 6ESEMPIO DI GRAFO PESATO: DISTANZE TRA CITTÀ L algoritmo greedy opera in modo molto semplice: a partire da un nodo, lo si espanderà tramite la funzione successore, e si sceglierà il nodo successivo in cui l arco abbia il costo minore. Ovviamente questo algoritmo è troppo semplice; immaginiamo di partire da Oradea e voler andare a Sibiu. L algoritmo sceglierà l arco che porta a Zerind, che ha un peso di 71, piuttosto che quello diretto con un costo superiore 151. Ma una volta passati a Zerind, si dovrà andare necessariamente ad Arad, con un costo complessivo di 146, e da là a Sibiu, con un costo complessivo di ben 286, mentre il percorso migliore è ovviamente soltanto 151. Per migliorare questo algoritmo (che in questa modalità è detto anche best-first, ovvero si procede per primi verso il nodo immediatamente migliore), si potrò usare una euristica. L euristica è una funzione che approssimi la soluzione finale cercando di stimare il percorso nel grafo migliore; per quanto l euristica sia necessariamente imperfetta (se fosse perfetta, non servirebbe alcun algoritmo di ricerca su grafo, si seguirebbero semplicemente le indicazioni dell euristica), può darci una prima approssimazione e indirizzarci, anche se non sempre, verso la soluzione migliore. Per un grafo stradale, una semplice euristica può essere la distanza in linea d aria (straight line) tra un nodo, una città nel nostro esempio, e la città obiettivo. Nella precedente figura a destra vi sono le distanze in linea d aria di ogni città verso Bucharest. Non è importante che la funzione sia precisa, ma è importante che rispetti queste due caratteristiche: Restituire 0 se il nodo di cui si calcola l euristica sia un nodo obiettivo. Restituire un valore comunque inferiore a quello reale, potremmo dire con approccio ottimista. 7 Introduzione all Intelligenza Artificiale Stefano De Luca
8 Vediamo che la distanza in linea d aria rispetta questi due vincoli: la distanza in linea d aria tra una città obiettivo e se stessa sarà sempre 0, e non sarà mai possibile che la strada percorsa da una città all altra sia inferiore alla distanza in linea d aria. Ora è possibile usare l euristica anche nell algoritmo greedy. Partendo da Arad e volendo arrivare a Bucharest, si sceglierà Sibiu e non Timisoara, poiché la funzione euristica dei nodi, potremmo definirla h(x), è h(sibiu) = 253, mentre h(timisoara) = 329. Naturalmente l algoritmo continua a non essere ottimale, ovvero a non necessariamente trovare il percorso migliore; basterà pensare a una città raggiungibile da due intermedie, con una distanza in linea d aria quasi similare: se quella con minore distanza in linea d aria ha un numero maggiore di curve e deviazioni, sarà sub-ottimale (ovvero non la migliore) rispetto all alternativa che magari percorrerà in via diretta il percorso. In più, l algoritmo greedy non è nemmeno completo, perché seguendo il percorso di minore costo momentaneo può portarci in porzioni del grafo che non ci consentono di raggiungere l obiettivo. <todo> ALGORITMO DI RICERCA A* 8 Introduzione all Intelligenza Artificiale Stefano De Luca
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
DettagliEspansione: 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
DettagliIntelligenza 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
DettagliIntelligenza 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
DettagliIntelligenza 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
DettagliIntelligenza 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
DettagliIntelligenza 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
DettagliRicerca 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
DettagliIntelligenza 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
DettagliRicerca 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,
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013
A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N
DettagliAlgoritmi 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
DettagliIntelligenza 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
DettagliRicerca 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
DettagliIntroduzione 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
DettagliTECNOLOGIE 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
Dettagli3 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
DettagliRisoluzione 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
Dettagli2 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
DettagliIl problema del commesso viaggiatore
Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università
DettagliAgenti 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 è
DettagliProblemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
DettagliGenerare sequenze di azioni.
Cercare soluzioni L idea è quella di mantenere ed estendere un insieme di sequenze soluzioni parziali. Un agente con diverse opzioni immediate di esito sconosciuto può decidere cosa fare esaminando prima
DettagliConstraint 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
DettagliRicerca euristica. Funzioni di valutazione euristica. Esempi di euristica. Strategia best-first: esempio. Algoritmo di ricerca Best-First 3/17/11
Ricerca euristica Ricerca euristica Maria Simi a.a. 2010/2011 La ricerca esaustiva non è praticabile in problemi di complessità esponenziale Noi usiamo conoscenza del problema ed esperienza per riconoscere
DettagliEsercizi 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
DettagliIl 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
Dettagli3.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
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 3 Cammini minimi: algoritmo di Dijkstra Cammini minimi in grafi: cammini minimi a singola sorgente (senza pesi negativi) Cammini minimi in grafi pesati Sia G=(V,E,w)
DettagliProblem-solving agents
Problem-solving agents 1 Formulazione del problema :! lo stato iniziale;" Descrizione delle azioni possibili che sono disponibili da parte dell agente (operatori che trasformano uno stato in un altro o
DettagliRelazione su Gioco dell'otto
Martorana Nicola 18/4/25 Relazione su Gioco dell'otto Search problem: 8-puzzle Introduzione ai Search Problem : Si considera un problema di ricerca come un' indagine su un numero elevato di possibili configurazione.
DettagliRicerca Automatica. Esercitazione 3. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0
Ricerca Automatica Esercitazione 3 Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0 Ascensore In un grattacielo ci sono 3 coppie formate da marito e moglie. Il cancello delle scale viene
DettagliK 4 è planare? E K 3,3 e K 5 sono planari? Sì! No! (Teorema di Kuratowski) K 5. Camil Demetrescu, Irene Finocchi, Giuseppe F.
K 4 è planare? Sì! E K 3,3 e K 5 sono planari? K 5 No! (Teorema di Kuratowski) 1 Un albero è un grafo bipartito? SÌ! Ma un grafo bipartito è sempre un albero?? 2 Algoritmi e Strutture Dati Capitolo 11
DettagliCorso 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
DettagliEsercitazione 2. Progettare un algoritmo che risolva tale problema in tempo O( E + V log V ).
Esercitazione 2 Problema 4: Dato un grafo G = (V, E) con pesi positivi sugli archi ed un insieme di k centri C = {c 1, c 2, c k } V, si richiede di partizionare l insieme V in k insiemi V 1, V 2, V k in
DettagliAlgoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II
Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Classificazione digli archi Sia G la foresta DF generata da DFS sul grafo G. Arco d albero: gli
DettagliPROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:
PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 1,v 2,...,v k ) è la somma dei costi degli archi
DettagliINSTRADAMENTO: ALGORITMO DI BELLMAN-FORD
UNIVERSITA' DEGLI STUDI DI BERGAMO Dipartimento di Ingegneria INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD FONDAMENTI DI RETI E TELECOMUNICAZIONE A.A. 2012/13 - II Semestre Esercizio 1 Sia dato il grafo G=
DettagliEsercizi 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
DettagliEsercitazione 3. Osserviamo che, dato un grafo con pesi distinti, questo ammette un unico MST.
Esercitazione 3 Problema 6: Sia G = (V, E) un grafo con pesi distinti sugli archi ed e E un arco di G. Progettare un algoritmo lineare in grado di determinare se esiste un MST di G che contiene l arco
DettagliBioinformatica. Grafi. a.a Francesca Cordero. Grafi Bioinformatica
fcordero@di.unito.it Introduzione cknowledgement Lucidi da. Horváth,. emetrescu et al, lgoritmi e strutture dati, McGraw-Hill 3 efinizione: che cosa sono i grafi? definizione astratta: un grafo G = (V,)
DettagliUnità 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
DettagliIl 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
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Dijkstra (*) (ACM in grafi diretti e non diretti senza archi di peso negativo) Punto della situazione Algoritmo basato sull ordinamento
DettagliProgettazione di Algoritmi - lezione 11
Progettazione di Algoritmi - lezione 11 Discussione dell'esercizio [rifornimenti] Un algoritmo greedy per questo problema è quello che si presenta naturalmente: facciamo rifornimento solo quando è necessario,
DettagliProgrammazione a numeri interi: il metodo del Branch and Bound
Programmazione a numeri interi: il metodo del Branch and Bound L. De Giovanni G. Zambelli Un problema di programmazione lineare intera è una problema della forma z I = maxc T x Ax b x 0 x i Z, i I. (1)
DettagliStrutture dati per rappresentare grafi
lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Strutture dati per rappresentare grafi opyright 2004 - The Mcraw - Hill ompanies, srl lgoritmi e strutture dati amil emetrescu,
DettagliProgrammazione dinamica
p. 1/1 Programmazione dinamica La programmazione dinamica è un altro approccio che consente di risolvere problemi in modo esatto. Considereremo solo problemi di massimo ma piccole modifiche consentono
DettagliPROBLEMI SU GRAFO (combinatori)
PROLMI SU GRO (combinatori) In molti problemi il numero di soluzioni ammissibili è finito. Questi problemi sono quasi sempre descritti su grafi. Rete stradale: come andare da a in tempo minimo? Grafo orientato
DettagliProblema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
DettagliGrafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);
Algoritmi e Strutture di Dati II 2 Grafi diretti Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove V è u n i n s i e m e d i nodi (o vertici); E µ V V è u n i n s i e m e d i archi. Denotiamo
DettagliIntelligenza 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
DettagliPossibile 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
DettagliPLANNING LINEARE FORWARD. Esercizio in Prolog
PLANNING LINEARE FORWARD Esercizio in Prolog 1 Prendiamo l esempio noto come anomalia di Sussman: Stato iniziale: Planning lineare in Prolog c" b a " Stato finale: a " b" c " 2 Stato Per rappresentare
Dettagli4c. Esercizi sul livello di Rete Instradamento in Internet
c. sul livello di Rete Instradamento in Internet c- o Si consideri la rete in figura. Si rappresenti, mediante un grafo, la rete per il calcolo dei cammini minimi (solo i nodi e gli archi no reti). Si
DettagliEsercizi 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
Dettagli1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;
1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; c 24 = 15; c 25 = 12; c 34 = 32; c 35 = 55; c 45 = 24 Si calcoli l ottimo duale (formulazione
DettagliTECNICA BACKTRACKING
TECNICA BACKTRACKING 1. Introduzione Il Backtracking è un modo sistematico di muoversi tra tutte le possibili configurazioni di uno spazio. Queste configurazioni ad esempio possono essere tutti i possibili
DettagliEsercizi proposti 10
Esercizi proposti 10 In questo gruppo di esercizi assumiamo, dove non sia specificato diversamente, di rappresentare i grafi mediante liste di archi, con il tipo di dati così dichiarato: type a graph =
DettagliAlgoritmi 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
Dettagli2 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
DettagliNote sull implementazione in virgola fissa di filtri numerici
Note sull implementazione in virgola fissa di filtri numerici 4 settembre 2006 1 Introduction Nonostante al giorno d oggi i processori con aritmetica in virgola mobili siano molto comuni, esistono contesti
DettagliI 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)
DettagliSuffix Trees. Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017
Complementi di Algoritmi e Strutture Dati Suffix Trees Docente: Nicolò Cesa-Bianchi versione 21 settembre 2017 In generale, possiamo trovare tutte le occorrenze di un pattern y in un testo x in tempo O(
Dettagli2 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
DettagliProgettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai
DettagliGestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena
Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Un algoritmo per il flusso a costo minimo: il simplesso
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 11 Gennaio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 11 Gennaio 2018 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si formalizzino le seguenti frasi in logica dei predicati: 1. Chi conosce la
DettagliProgettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [acqua 2] Vogliamo trovare una sequenza di versamenti che sia buona e parsimoniosa. Consideriamo quindi il grafo i cui nodi sono le possibili configurazioni
DettagliRisoluzione di un problema di VRP
Risoluzione di un problema di VRP Un problema di VRP (Vehicle Routing Problem) è un tipico problema di programmazione lineare in cui l obiettivo primario è quello di individuare, su una rete generica,
DettagliA UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 13 giugno 2011
A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Stdi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia gigno Nome: Cognome: Matricola: voglio sostenere la prova orale il giorno venerdì //
DettagliAlgoritmi e Strutture Dati
Introduzione ai grafi Grafi: Definizione e Algoritmi di visita Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Introduzione ai
DettagliProgettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via
Dettagli5.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
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013
A Ricerca Operativa 1 Seconda prova intermedia Si è rotto un aereo che doveva trasportare un elevato numero di persone dalla città 3 alla città 8. Si rende quindi necessario utilizzare i posti disponibili
DettagliAlberi binari di ricerca
Alberi binari di ricerca Gli alberi binari di ricerca sono ottime strutture dati per memorizzare coppie di elementi (k, e) chiave elemento di un dizionario. Un albero binario di ricerca T è un albero binario
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento
UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa Esercizi sul problema dell assegnamento Richiami di Teoria Ricordiamo che, dato un grafo G=(N,A),
DettagliAlberi di Decisione (2)
Alberi di Decisione (2) Corso di AA, anno 2017/18, Padova Fabio Aiolli 25 Ottobre 2017 Fabio Aiolli Alberi di Decisione (2) 25 Ottobre 2017 1 / 18 Apprendimento di alberi di decisione: Bias induttivo Come
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014
A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità
DettagliGestione della produzione e della supply chain Logistica distributiva
Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non
DettagliNote per la Lezione 22 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 0 09 Note per la Lezione Ugo Vaccaro Nella lezione scorsa abbiamo introdotto la vista in ampiezza di grafi. Essenzialmente, esso è un metodo per esplorare in
DettagliAlgoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford
Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio II: cammini minimi a singola sorgente (per grafi
DettagliIntelligenza Artificiale
Intelligenza Artificiale A n n o A c c a d e m i c o 2 0 0 8-2 0 0 9 La Rappresentazione della Conoscenza: I Sistemi di Produzione Sommario Formalismi dichiarativi e procedurali Le regole di produzione
DettagliProblemi 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.
DettagliEspansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati.
Strategie di ricerca Esercitazione del 12 Marzo 2010 Scopo: 1. Assestare la comprensione delle strategie di ricerca viste a lezione 2. Imparare ad utilizzare la libreria aima.search, che vi potrà essere
DettagliRICERCA 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
DettagliIntelligenza Artificiale. A n n o A c c a d e m i c o La Rappresentazione della Conoscenza: I Sistemi di Produzione
Intelligenza Artificiale A n n o A c c a d e m i c o 2 0 0 8-2 0 0 9 La Rappresentazione della Conoscenza: I Sistemi di Produzione 1 Sommario Formalismi dichiarativi e procedurali Le regole di produzione
DettagliCammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo
Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo
DettagliAlgoritmi e Strutture di Dati II 2. Visite di grafi
Algoritmi e Strutture di Dati II 2 Visite di grafi Gli algoritmi di visita di un grafo hanno come obiettivo l esploraione di tutti i nodi e gli archi del grafo. Vi sono due modi principali per esplorare
DettagliAppunti lezione Capitolo 13 Programmazione dinamica
Appunti lezione Capitolo 13 Programmazione dinamica Alberto Montresor 12 Novembre, 2015 1 Domanda: Fattore di crescita dei numeri catalani Vogliamo dimostrare che cresce almeno come 2 n. La nostra ipotesi
DettagliSoluzioni della settima esercitazione di Algoritmi 1
Soluzioni della settima esercitazione di Algoritmi 1 Beniamino Accattoli 19 dicembre 2007 1 Grafi Un grafo è non orientato se descrivendo un arco come una coppia di vertici (i,j) l ordine è ininfluente
DettagliParte 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)
DettagliAlberi di Decisione (2)
Alberi di Decisione (2) Corso di AA, anno 2018/19, Padova Fabio Aiolli 05 Novembre 2018 Fabio Aiolli Alberi di Decisione (2) 05 Novembre 2018 1 / 19 Apprendimento di alberi di decisione: Bias induttivo
Dettagli