59
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Embed Size (px)

Citation preview

Page 1: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Sistemi basati su conoscenzaRicerca di soluzioni a problemi

Prof. M.T. PAZIENZA

a.a. 2005-2006

Page 2: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

…tipologie di programmi di agente

Agente con riflessi semplici (rispondono alle percezioni)Agenti che tengono conto del mondo (considerano

l’evolversi del mondo circostante)… … agenti che reagiscono a stimoli dell’ambienteagenti che reagiscono a stimoli dell’ambiente

Agenti basati su obiettiviAgenti basati su obiettivi (agiscono per raggiungere i (agiscono per raggiungere i propri obiettivi)propri obiettivi)

Agenti basati su utilità (cercano di massimizzare le propria utilità)

Page 3: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Agenti basati su obiettivi / Pianificatori

Conoscere lo stato attualeattuale dell’ambiente non è sufficiente per decidere cosa fare

Bisogna avere un obiettivoBisogna avere un obiettivo

Ricerca di una soluzione al problema di una soluzione al problema

Pianificazione

Page 4: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca di una soluzione

La ricerca è l’enumerazione di un insieme di potenziali soluzioni parziali di un problema che possono essere testate per identificare quelle che sono soluzioni reali o che potrebbero condurre a soluzioni reali del problema. Per sviluppare una ricerca è necessario definire:

• una soluzione potenziale• un metodo chiaro per la generazione di soluzioni

potenziali• un metodo per verificare quale soluzione potenziale

costituisca una soluzione reale

Page 5: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca di una soluzione

Il meccanismo generale della ricerca si può esprimere in termini di ricerca di cammini in un grafo

Per risolvere un problema si deve esplicitare il sottostante spazio di ricerca ed applicare un algoritmo di ricerca a tale spazio

Page 6: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca di una soluzione

Gli umani usano l’intuizione per risolvere problemi di difficile soluzione; ciò porta a ricercare soluzioni ad hoc e non generali.

Analogamente un agente potrebbe accedere a conoscenza specifica per trovare una soluzione. Tale conoscenza extra al di là dello spazio di ricerca è la cosiddetta conoscenza euristica.

Page 7: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Agente risolutore di problemi(basato su obiettivi)

PROBLEMAObiettivo + Mezzi per raggiungere l’obiettivo

RICERCAProcesso di esplorazione Cosa possono fare i mezzi a disposizione

La ricerca è una parte necessaria per la risoluzione di un problema

Page 8: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Agente risolutore di problemi(basato su obiettivi)

Gli obiettivi aiutano l’agente ad organizzare il comportamento limitando gli scopi che l’agente sta cercando di raggiungere.

Un obiettivo è l’ insieme degli stati del mondo in cui è soddisfatto l’obiettivo stesso.

Le azioni sono causa di transizioni tra stati del mondo.

L’agente deve scegliere una sequenza di azioni (tra tutte quelle possibili) che lo conduce ad uno stato obiettivo.

Page 9: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Agente risolutore di problemi(basato su obiettivi)

Formulazione dell’obiettivo (basata sulla situazione attuale)

Formulazione del problema (processo di decisione di quali azioni e stati della risoluzione del problema considerare,susseguentemente alla formulazione dell’obiettivo)

Page 10: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Agente risolutore di problemi(basato su obiettivi)

Ove esistono più alternative (sequenze di azioni che raggiungono l’obiettivo), l’agente

Senon conosce lo stato risultante dopo aver compiuto

ciascuna azione, né altre informazioni addizionali, potrà solo scegliere a caso

Se possiede informazioni sugli stati nei quali potrebbe

portarsi e sulle azioni che potrebbe compiere, userà queste informazioni per scegliere la sequenza di azioni da intraprendere.

Page 11: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca

Ricerca è il processo per l’individuazione / scelta della migliore sequenza di azioni che conducono a stati di esito conosciuto effettuata da parte di un agente che abbia diverse opzioni immediate di esito sconosciuto

La soluzione di un problema, proposta da un algoritmo di ricerca, è quella sequenza di azioni individuata a fronte di un particolare input

L’esecuzione coincide con la realizzazione delle azioni suggerite dalla soluzione

Page 12: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Agente risolutore di problemi(basato su obiettivi)

Formulato un obiettivo ed un problema da risolvere, l’agente attiva una procedura di ricerca per risolverlo, quindi usa la soluzione per guidare le proprie azioni

Eseguita la soluzione, l’agente individuerà un nuovo obiettivo

Page 13: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Agente di ricerca

• Formulazione dell’obiettivo (basata sulla situazione attuale). Obiettivo = Insieme degli stati del mondo che soddisfano l’obiettivo

• Formulazione del problema (processo di scelta in base alla collezione di informazioni dell’agente di azioni e stati da considerare)

• Ricerca (esaminare differenti sequenze di possibili azioni e poi scegliere la migliore

• Esecuzione della sequenza di azioni

Page 14: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Algoritmo di risoluzione / ricerca

1. INPUT = problema

2. OUTPUT = soluzione nella forma di sequenze di azioni

3. ESECUZIONE = realizzazione/implementazione delle sequenze di azioni

Page 15: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Algoritmo generale di ricerca

Dato un problema, una strategia ed un insieme di candidati

Ripeti fino ad esaurimento dei candidati:

Se non esistono candidati da espandere,

Allora non c’è soluzione al problema

Altrimenti scegli un nodo foglia da espandere secondo strategia

Se il nodo contiene stato obiettivo soluzione trovata

Altrimenti espandi nodo secondo strategia

Aggiungi all’ albero di ricerca i nodi risultanti

Page 16: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Agente risolutore di problemi

Soluzione di problema offline; una soluzione di problema online richiede l’agire senza una completa conoscenza del problema e della soluzione

Page 17: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Processo di formulazione di problemi

Conoscenza che l’agente ha sulle sue azioni e sugli stati del mondo

Ciò dipende da come l’agente è connesso al suo ambiente, attraverso le “percezioni e le azioni”.

Elementi fondamentali nella definizione di un problema sono gli stati e le azioni

Page 18: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Formulazione di problemi

Spazio degli stati del problema ( insieme di tutti gli stati raggiungibili dallo stato iniziale attraverso qualsiasi sequenza di azioni) (operatore / funzione successore S)

Un cammino nello spazio degli stati è una qualsiasi sequenza di azioni che conduce da uno stato ad un altro (funzione costo di cammino g)

Il test obiettivo è applicato dall’agente alla descrizione di un singolo stato per determinare se è in uno stato obiettivo.

Page 19: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Formulazione di problemi

L’output di un algoritmo di ricerca è una soluzione, ovvero un cammino dallo stato iniziale allo stato che soddisfa il test obiettivo

Page 20: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Conoscenza e Tipi di problemi

Problemi a stato singolo (mondo accessibile, conoscenza effetto delle azioni; l’agente può calcolare lo stato dopo la sequenza delle azioni)

Problemi a stati multipli (mondo non accessibile (no sensori), conoscenza effetto delle azioni, l’agente ragiona su insiemi di stati raggiungibili dopo la sequenza di azioni)

Problemi di contingenza (ignoranza dell’agente sulla sequenza di azioni, quindi definizione alberi di azioni = pianificazione)

Problemi di esplorazione (nessuna conoscenza sugli effetti delle proprie azioni, attraverso la sperimentazione scoprire gradualmente effetti delle azioni e stati esistenti)

Page 21: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Problemi a stato singoloCaso più semplice

Agente riceve dai sensori informazioni sufficienti sullo stato in cui si trova (mondo accessibile) e

Conosce esattamente le conseguenze di ciascuna azione

Quindi l’agente può calcolare esattamente in quale stato sarà dopo qualsiasi sequenza di azioni

Page 22: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Formulazione di problemia stato singolo

Un tale problema è definito da 4 caratteristiche:

1. Stato iniziale2. Operatore / funzione successore S(x)3. Test obiettivo4. Funzione costo cammino Una soluzione è una sequenza di operatori che conducono dallo stato iniziale ad uno stato obiettivo

Page 23: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Problemi a stati multipli

L’agente conosce tutti gli effetti delle sue azioni, ma

Ha un accesso limitato allo stato del mondo (per esempio può non avere sensori – sa solo che il suo stato iniziale appartiene all’insieme degli stati)

L’agente deve ragionare su insiemi di stati in cui potrebbe giungere invece che su stati singoli, in quanto il mondo non è completamente accessibile

Page 24: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Formulazione di problemia stati multipli

Un tale problema è definito da 4 caratteristiche:1. Insieme di stati iniziali2. Insieme di operatori / funzione successore S(x) (per

ciascuna azione viene specificato l’insieme di stati raggiunti da qualsiasi stato considerato. Un cammino collega insiemi di stati)

3. Test obiettivo4. Funzione costo cammino

Una soluzione è un cammino che conduce ad un insieme di stati che sono tutti stati obiettivo.

Spazio dell’insieme di stati

Page 25: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Problemi di contingenzapianificazione

Talvolta l’ignoranza impedisce all’agente di trovare una sequenza di azioni che garantisca di arrivare alla soluzione

Capacità di rilevamento durante la fase di esecuzione

L’agente deve calcolare un intero albero di azioni piuttosto che una singola sequenza di azioni (un ramo dell’albero tratta una situazione contingente possibile che si potrebbe verificare)

Nel mondo reale si incontrano molti problemi di contingenza poiché la predizione esatta è impossibile

Page 26: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Problemi di contingenzapianificazione

Necessari algoritmi complessi

L’agente può agire prima di aver trovato un piano garantito (comincia effettivamente l’esecuzione e vede quali soluzioni contingenti si verificano veramente)

Date le informazioni supplementari l’agente può poi continuare a risolvere il problema

Page 27: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Problemi di esplorazione

L’agente non ha alcuna informazioni sugli effetti delle proprie azioni

L’agente deve sperimentare scoprendo gradualmente cosa produrranno le sue azioni e quali tipi di stati esistono.

La ricerca si svolge nel mondo reale e non in un modello: agire può comportare danni significativi per un agente privo di conoscenza

Se sopravvive, acquisisce conoscenza che può riusare per problemi successivi

Page 28: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Efficacia della ricerca

Misura dell’efficacia

1. Si trova almeno una soluzione?2. E’ una buona soluzione (con un costo di

cammino basso)?3. Qual è il costo della ricerca associato al tempo ed

alla memoria richiesti per trovare una soluzione?

Costo totale = costo di cammino + costo di ricerca

Page 29: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Costo della ricerca

L’agente deve decidere quali risorse dedicare alla ricerca e quali all’esecuzione.

Per spazi degli stati piccoli, si considera il costo di cammino più basso

Per problemi complessi trovare il punto di equilibrio (l’agente può cercare per un tempo molto lungo di ottenere una soluzione ottimale, oppure può cercare per un tempo più breve ed ottenere una soluzione con costo di cammino lievemente maggiore)

Page 30: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Risoluzione di problemi: rappresentazione

Decidere cosa inserire nella descrizione degli stati e degli operatori e cosa tralasciare (rappresentazione)

Il processo di eliminare dettagli da una rappresentazione viene chiamato astrazione (astrazione nella descrizione dello stato e delle azioni)

Una buona astrazione comporta l’eliminazione di più dettagli possibili mantenendo la validità ed assicurando che le azioni astratte siano facili da realizzare

Page 31: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Rappresentazione

Un nodo dell’albero di ricerca può essere rappresentato da una struttura dati a cinque componenti:

1. Stato nello spazio degli stati a cui corrisponde il nodo

2. Nodo genitore di quello corrente

3. Operatore applicato per generare il nodo

4. Numero nodi del cammino dalla radice (profondità)

5. Costo del cammino dallo stato iniziale

Page 32: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Struttura dati di un Nodo

datatype NODOcomponents: STATO, NODO-GENITORE, OPER.,

PROFONDITA’, COSTO-CAMMINO

Evitare ripetizioni di stati:Non ritornare allo stato da cui si proviene

(NO successore=padre)Non creare cammini che abbiano cicli

(NO successore=antenato)Non generare nessuno stato già generato prima

(NO successore=any prima)

Page 33: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Classi di problemi

Problemi giocattolo

(Rompicapo dell’8 – Mondo dell’aspirapolvere)

Problemi del mondo reale

(Ricerca di itinerario)

Page 34: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Rompicapo dell’8

Operatore: la tessera vuotatessera vuota cambia posto con la tessera alla sua sinistra

Page 35: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Rompicapo dell’8Formulazione del problema

Stati: specifica della posizione di ciascuna delle 8 tessere + tessera vuotatessera vuota

Operatori: : muovere la tessera vuota a sinistra, destra, sopra, sotto (nessun salto ammesso)

Test obiettivo: verifica della configurazione finale

Costo di cammino: ciascun passo costa 1 (costo del cammino = lunghezza del cammino)

Page 36: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Mondo dell’aspirapolvere

Spazio degli statiArchi/azioni: L=spostati a sn, R=spostati a dx,

S=aspira

Page 37: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Mondo dell’aspirapolveresemplificato

Agente conosce la propria posizione e le posizioni di tutte le parti con sporcizia; aspira bene.

Stati: uno degli stati di figuraOperatori: spostati a sn, spostati a dx, aspiraTest obiettivo: non lasciare sporcizia nei quadratiCosto di cammino: ciascuna azione costa 1

Soluzione: da un qualsiasi stato di partenza seguire le frecce fino ad uno stato obiettivo

Page 38: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Mondo dell’aspirapolvere senza sensori

In qualsiasi istante l’agente si trova in un insieme di stati ma non sa in quale stato di quell’insieme sia

Page 39: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Mondo dell’aspirapolvere senza sensori

L’aspirapolvere non ha alcun sensore e deve raccogliere tutta la sporcizia

Insiemi di stati: sottoinsiemi di stati della figuraOperatori: spostati a sn, spostati a dx, aspiraTest obiettivo: ogni stato dell’insieme degli stati

non contiene sporciziaCosto di cammino: ciascuna azione costa 1Soluzione: dall’insieme iniziale degli stati (tutti)

seguire le frecce fino a raggiungere un insieme di stati senza sporcizia

Page 40: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Strategia di ricerca

Il problema determina il grafo di rappresentazione degli stati e l’obiettivo (ovvero ciò che rappresentano i vicini di un nodo) ma non definisce la modalità di selezione di un nodo o come aggiungere un nodo alla frontiera dell’esplorazione.

Una strategia di ricerca specifica quali elementi devono essere selezionati nella frontiera; strategie diverse di ricerca si differenziano per le modalità di selezione e di aggiunta di un nodo alla frontiera.

Page 41: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Strategia di ricerca

Criteri di valutazione della strategia :

• Completezza (se esiste una soluzione viene trovata sempre)

• Complessità temporale

• Complessità spaziale

• Ottimalità

Page 42: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Strategie di ricerca

1. Ricerca non informata ( o cieca)Non si ha alcuna informazione sul numero di

passi o sul costo di cammino dallo stato attuale all’obiettivo

1. Ricerca informata ( euristica) Si hanno informazioni di preferenze tra gli stati

Ricerca informata più efficace di quella non informata

Page 43: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca in ampiezza

Tutti i nodi di profondità d nell’albero si espandono prima dei nodi di profondità d+1

Strategia sistematica (esaminati prima i cammini di lunghezza i, poi i+1,poi i+2,…); si assume che ciascun arco pesi 1.

Page 44: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca in ampiezza

Se esiste una sola soluzione, la ricerca in ampiezza la trova (completezza)

Se esistono più soluzioni, viene trovato per prima lo stato obiettivo più alto/superficiale - quindi a costo minimo (ottimalità)

(tutti gli archi hanno uguale peso 1)

Valutazione: ricerca completa ed ottimale

Page 45: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca in ampiezza (complessità)

Se fattore di ramificazione = b

al livello i si avrà ramificazione =

Se la soluzione si trova dopo un cammino di lunghezza d, il numero massimo (soluzione peggiore) di nodi espansi è

(l’obiettivo non viene espanso)

ib

)()1(...1 32 dd bObbbb

Page 46: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca in ampiezza

Complessità spaziale coincide con complessità temporale perché tutti i nodi foglia dell’albero di ricerca devono essere mantenuti in memoria contemporaneamente

Page 47: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca a costo uniforme

Quando si hanno archi di costo non unitario, esiste l’interesse a trovare la soluzione che minimizzi il costo totale del cammino.

Costi possono essere le distanze tra i punti rappresentati dai nodi, oppure costi possono essere le risorse richieste dall’agente per realizzare il task associato ad un nodo; e si vuole minimizzare i costi.

Page 48: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca a costo uniforme

Il più semplice algoritmo che garantisce di trovare un cammino minimo è di tipo ricerca in ampiezza con la selezione del cammino a costo minimo.

La ricerca a costo uniforme modifica la strategia in ampiezza espandendo sempre il nodo sul confine con il costo più basso (misurato con il costo del cammino g(n)), invece del nodo di profondità minima

Page 49: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca a costo uniforme

La ricerca a costo uniforme si implementa gestendo i nodi di frontiera con una coda a priorità ed ordinandola tramite la funzione g(n)

Si trovatrova sempre la soluzione più economica se si verifica la soluzione più economica se si verifica che il costo del cammino non decresce mai quando lo che il costo del cammino non decresce mai quando lo percorriamo.percorriamo.

Il costo del cammino di un nodo è somma dei costi degli operatori che determinano il cammino

)())(( ngnSuccessoreg

Page 50: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca a costo uniforme

Page 51: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca in profondità

La ricerca in profondità espande sempre il primo dei nodi fino a raggiungere il livello più profondo dell’albero.

La ricerca torna indietro (backtracking) ed espande nodi a livelli più superficiali solo quando arriva ad un nodo foglia non obiettivo.

La funzione di ricerca userà un meccanismo di inserimento in un pila (l’elemento estratto è sempre l’ultimo che era stato inserito)

Page 52: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca in profondità

Page 53: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca in profondità

Occupazione di memoria modesta (memorizza un solo cammino dalla radice al nodo foglia, oltre ai nodi fratelli di ciascun nodo del cammino che rimangono non espansi)

Con uno spazio degli stati con fattore di ramificazione b e profondità massima m, la ricerca in profondità memorizza bm nodi

Complessità temporale della ricerca in profondità :

La ricerca in profondità può rimanere bloccata in un cammino sbagliato di lunghezza infinita.

Valutazione: né completa, né ottimale

)( mbO

Page 54: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca a profondità limitata

Si impone un taglio/limite alla profondità massima di un cammino (se si conosce bene il problema)

Suggerimento:

Taglio=profondità obiettivo più superficiale

Page 55: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca bidirezionale

Le strategie di ricerca di soluzione di un problema sono simmetriche nel senso che non c’è alcuna preferenza a cominciare dallo stato iniziale per giungere allo stato obiettivo, o cominciare dallo stato obiettivo e giungere a quello iniziale (ove possibile)

Nei casi in cui l’obiettivo è esplicito, può essere più efficiente cominciare da questo.

Principio generale: si ricerca in avanti o in indietro a seconda del costo di ramificazione

Page 56: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca bidirezionale

Per ridurre i tempi della ricerca, la ricerca bidirezionale ricerca contemporaneamente sia in avanti (dallo stato iniziale), sia all’indietro (dall’obiettivo), fermandosi quando le due ricerche si incontrano.

Con fattore di ramificazione pari a b in entrambe le direzioni e soluzione a profondità d, allora la soluzione verrà trovata in )()2( 2/2/ dd bObO

Page 57: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca bidirezionale

Page 58: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ricerca bidirezionale

Problemi:

• Definire predecessori di un nodo n (quei nodi che abbiano n come successore)

• Gli operatori in genere non sono reversibili, per cui il calcolo dei predecessori in genere risulta complesso.

• Cosa succede quando si hanno più stati obiettivo?

Page 59: Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a. 2005-2006

Ripetizioni di stati

Si possono semplificare alberi di ricerca infiniti dovuti a ripetizioni di stati, generando solo la porzione di albero che ricopre il grafo dello spazio degli stati.

Suggerimenti: • Non ritornare allo stato da cui si proviene• Non creare cammini che abbiano cicli• Non generare alcuno stato già generato prima