Teoria e Implementazione

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Algoritmi e Strutture dati Mod B
I bridge Standard IEEE 802.1D.
Sistemi dinamici discreti e computabilità intrinseca
Algoritmi e Strutture Dati (Mod. B)
Estendere i linguaggi: i tipi di dato astratti
Ricerca euristica Maria Simi a.a. 2006/ /03/2017
Intelligenza Artificiale Simbolica
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Intelligenza Artificiale Risoluzione di Problemi
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Strategie per il problem solving
Problemi con soddisfacimento dei vincoli
Grafi Rappresentazione mediante liste di adiacenza:
Algoritmi online Maria Simi, a.a. 2007/08 Problemi di esplorazione  Gli agenti per il problem-solving assumono:  ambienti deterministici e osservabili.
Ricerca euristica Maria Simi a.a. 2008/2009 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più.
Olimpiadi di Informatica 2010 Giornate preparatorie
Esecuzione di un Programma [P] Una computazione corrisponde al tentativo di dimostrare, tramite la regola di risoluzione, che una formula (goal) segue.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non.
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Intelligenza Artificiale Risoluzione di Problemi
Capitolo 11 Visite di grafi Algoritmi e Strutture Dati.
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi Agostino Poggi Stefano Cagnoni.
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Gli agenti per il problem solving Maria Simi a.a 2007/2008.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Grafi: rappresentazione e visita
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2013/2014.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Ricerca euristica Maria Simi a.a. 2013/2014 Ricerca euristica  La ricerca esaustiva non è praticabile in problemi di complessità esponenziale  Noi.
Algoritmi e Strutture Dati Luciano Gualà
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Unità di apprendimento 6
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

Teoria e Implementazione Metodi di Ricerca Teoria e Implementazione

Introduzione ai metodi di Ricerca Problem Solving  Metodi Deboli di Risoluzione dei Problemi (Weak Methods) Definizione di “Problema” : ho un obiettivo da raggiungere e non so come fare per conseguirlo. Problemi “logici” vs. problemi “di buon senso”.

I “Problemi Giocattolo” Studio di quei fenomeni che non potrebbero essere esaminati nella complessità con cui si manifestano in natura Condizioni sperimentali semplificate e strettamente controllate Uso di “Giochi” (il gioco dell’Otto, gli Scacchi, il Tris, etc.)

Lo Spazio degli Stati – Il problema della Rappresentazione E’ l’insieme di tutti gli stati possibili che il sistema può assumere Es: Gioco dell’Otto: 9! = 362880 configurazioni possibili Lo Spazio Problemico è un sottoinsieme dello Spazio degli Stati, ed è l’insieme degli stati con cui ci si deve effettivamente confrontare per risolvere un problema.

Applicazione di “operatori” STATO INIZIALE OPERATORI STATO FINALE

Applicazione di “operatori” Intuitivamente, un operatore è un’azione che ci permette di trasformare uno stato del problema in un nuovo stato. Nelle simulazioni che vedremo, la macchina mantiene una rappresentazione astratta dello stato del sistema attraverso un grafo.

Cos’è un “Grafo”? Un grafo è una struttura algebrica . E’ composto da “nodi” uniti tra loro da “archi”. Deve rispondere a caratteristiche strutturali ben precise per poter essere definito un grafo

Cos’è un “Grafo”? Questo è un grafo

Cos’è un “Grafo”? Questo non è un grafo

In sostanza Abbiamo visto tre concetti legati tra loro da una relazione di inclusione

Metodi di Ricerca Ricerca “in avanti” = Forward Search = Data Driven Search. Si parte dallo stato iniziale, si applicano gli operatori applicabili generando nuovi stati fino al raggiungimento di uno stato finale, coincidente con un obiettivo.

Metodi di Ricerca Ricerca “all’indietro” = Goal Driven Search. Ricerca bidirezionale N.B. La ricerca è un problema “non banale”. (vedi le applicazioni informatiche)

Metodi di Ricerca Il problema della ricerca è un problema “esteso”. Es. : Ricercare un elemento in un vettore Es.2 : Verificare se due elementi appartenenti a una rete (grafo) sono collegati : aumentando il numero di elementi aumenta esponenzialmente il costo della ricerca. Applicazioni pratiche.

Bontà della soluzione in termini di “costo” Due tipi di costo a) Il costo della ricerca = (“Quanto ci metto a trovare un parcheggio?”); b) Il costo della soluzione = (“Quanto è lontano dalla mia destinazione il parcheggio che ho trovato?” Utilizziamo delle particolari “funzioni di costo”.

Ricerca di una soluzione attraverso un percorso: il pathfinding STRATEGIE DI RICERCA “BRUTE FORCE” (Ricerca cieca) STRATEGIE DI RICERCA EURISTICA

Strategie di “Ricerca Cieca” Ricerca in profondità (Depth First ) Ricerca in ampiezza (Breadth First)

Problema: “ Dato un punto di partenza costituito da una città, esiste un percorso che congiunge questa con un’altra definita come punto d’arrivo?” Lo spazio degli stati è rappresentabile con una struttura dati a grafo, dove i nodi rappresentano le città gli archi le strade principali che le connettono.

Lo Spazio degli Stati:

Ricerca in Profondità L’algoritmo depth first search segue una singola ramificazione dell’albero di ricerca dal punto di partenza fino al punto di arrivo o fino a una dead end (vicolo cieco) Nel caso di dead end l’algoritmo “torna indietro sui suoi passi” e prova un’altra strada.

Ricerca in Profondità Rochester  Wasau

Ricerca in Profondità Rochester  Wasau

Ricerca in Profondità GOAL START Rochester  Wasau

Ricerca in Profondità GOAL START Rochester  Wasau

Ricerca in Profondità GOAL START Rochester  Wasau

Ricerca Depth First : Algoritmo a) Crea una coda ed inserisci nella coda il primo nodo. b) Loop: b1) Se la coda è vuota, esci altrimenti b2) Rimuovi il primo nodo della coda b3) Se il nodo in questione è il goal, esci, il nodo trovato è la soluzione altrimenti espandi i figli del nodo e aggiungili in cima alla coda .

Ricerca in Ampiezza L’algoritmo Breadth First opera una ricerca nello spazio degli stati “costruendo” una struttura gerarchica ad albero cosistente di un insieme di nodi e di legami. L’algoritmo si “muove” attraverso la struttura ad albero esaminando i valori dei nodi in modo sistematico, così da trovare, prima o poi, il/un nodo obiettivo.

Ricerca in Ampiezza GOAL START Rochester  Wasau

Ricerca in Ampiezza GOAL START Rochester  Wasau

Ricerca Breadth First : Algoritmo a) Crea una coda ed inserisci nella coda il primo nodo. b) Loop: b1) Se la coda è vuota, esci altrimenti b2) Rimuovi il primo nodo della coda b3) Se il nodo in questione è il goal, esci, il nodo trovato è la soluzione altrimenti espandi i figli del nodo e aggiungili in fondo alla coda.

Limiti dei metodi “Brute Force”(Ricerca Cieca) Depth First : con un po’ di fortuna può trovare una soluzione subito, ma può anche visitare molte dead end prima di arrivare al goal. Breadth First : trova sicuramente una soluzione, se c’è, ma impiega molto tempo a controllare tutti i nodi di ciascun livello.

Ricerche Euristiche Ci sono problemi intrattabili attraverso i metodi di ricerca cieca. Ad esempio il gioco degli scacchi è soggetto all’esplosione combinatoria della numerosità dello spazio del problema. Conviene sfruttare delle strategie di ottimizzazione per raggiungere il goal.

Ricerche Euristiche Le euristiche sono criteri per decidere quale opzione, fra diverse possibili, risulta più promettente per raggiungere un determinato obiettivo. In qualche modo si tratta di una formalizzazione del concetto di “intuito”, “conoscenza derivante dall’esperienza”.

Ricerche Euristiche Le R.E. rappresentano un compromesso fra l’esigenza di avere dei criteri facili da applicare e, contemporaneamente, efficaci. L’euristica funziona bene nella maggior parte dei casi.

Ricerche Euristiche Rivestono un ruolo essenziale nel processo di risoluzione in quanto permettono di limitare in modo drastico il numero delle possibili alternative. Uso di una funzione euristica che mi da una misura della “bontà” di una soluzione.

Esempi di funzioni euristiche Distanza in linea d’aria “The more, the better” Gioco dell’otto: f(n) = numero di tessere che devono cambiare posizione Hill Climbing

Implementazione: La Ricerca Best First Prende in considerazione tutti i nodi che sono stati esaminati fino a un dato momento ed estende il nodo che sembra più promettente. Ne risulta la scelta del cammino che sembra il migliore in relazione alle valutazioni fornite dalla funzione euristica In sostanza abbiamo una “buona soluzione”.

Implementazione: La Ricerca Best First In sintesi si tratta di una strategia sistematica di controllo Combina la forza della breadth first con quella della best first Tornando al problema del percorso per raggiungere una città…

Ricerca in Profondità Grand Forks  Rochester

Ricerca in Best First GrandForks  Rochester

Ricerca in Profondità International Falls  Rochester

Ricerca in Best First International Falls  Rochester

Conclusioni Al giorno d’oggi, nei problemi “reali”, sono necessarie ottimizzazioni dei tradizionali algoritmi di ricerca, anche se per alcune classi di problemi i good old fashioned search methods si rivelano ancora la scelta migliore La ricerca è andata avanti rispetto a best first, vedi ad esempio l’algoritmo A*.