metodi di ricerca teoria e implementazione. introduzione ai metodi di ricerca problem solving metodi...

42
Metodi di Ricerca Teoria e Implementazione

Upload: luigino-antonini

Post on 01-May-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Metodi di Ricerca

Teoria e Implementazione

Page 2: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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”.

Page 3: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.)

Page 4: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 5: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Applicazione di “operatori”

OPERATORI

STATO FINALE

STATO INIZIALE

Page 6: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 7: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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

Page 8: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Cos’è un “Grafo”?

• Questo è un grafo

Page 9: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Cos’è un “Grafo”?

• Questo non è un grafo

Page 10: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

In sostanza

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

Page 11: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 12: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Metodi di Ricerca

• Ricerca “all’indietro” = Goal Driven Search.

• Ricerca bidirezionale

• N.B. La ricerca è un problema “non banale”. (vedi le applicazioni informatiche)

Page 13: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 14: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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”.

Page 15: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca di una soluzione attraverso un percorso: il pathfinding

• STRATEGIE DI RICERCA “BRUTE FORCE” (Ricerca cieca)

• STRATEGIE DI RICERCA EURISTICA

Page 16: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Strategie di “Ricerca Cieca”

• Ricerca in profondità (Depth First )

• Ricerca in ampiezza (Breadth First)

Page 17: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 18: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Lo Spazio degli Stati:

Page 19: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 20: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Profondità

Rochester Wasau

Page 21: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Profondità

Rochester Wasau

Page 22: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Profondità

Rochester Wasau

START

GOAL

Page 23: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Profondità

Rochester Wasau

START

GOAL

Page 24: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Profondità

Rochester Wasau

START

GOAL

Page 25: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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 .

Page 26: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 27: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Ampiezza

Rochester Wasau

START

GOAL

Page 28: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Ampiezza

Rochester Wasau

START

GOAL

Page 29: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 30: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 31: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 32: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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”.

Page 33: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 34: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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.

Page 35: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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

Page 36: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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”.

Page 37: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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à…

Page 38: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Profondità

Grand Forks Rochester

Page 39: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Best First

GrandForks Rochester

Page 40: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Profondità

International Falls Rochester

Page 41: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

Ricerca in Best First

International Falls Rochester

Page 42: Metodi di Ricerca Teoria e Implementazione. Introduzione ai metodi di Ricerca Problem Solving Metodi Deboli di Risoluzione dei Problemi (Weak Methods)

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*.