Top Banner
Metodi di Ricerca Teoria e Implementazione
42

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

May 01, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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*.