Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Agente risolutore di problemi (basato su obiettivi) PROBLEMA Obiettivo + Mezzi per raggiungere lobiettivo RICERCA Processo di esplorazione Cosa possono fare i mezzi a disposizione
Agente risolutore di problemi (basato su obiettivi) Gli obiettivi aiutano lagente ad organizzare il comportamento limitando gli scopi che lagente sta cercando di raggiungere. Un obiettivo è l insieme degli stati del mondo in cui è soddisfatto lobiettivo stesso. Le azioni sono causa di transizioni tra stati del mondo. Lagente deve scegliere una sequenza di azioni (tra tutte quelle possibili) che lo conduce ad uno stato obiettivo.
Agente risolutore di problemi (basato su obiettivi) Formulazione dellobiettivo (basata sulla situazione attuale) Formulazione del problema (processo di decisione di quali azioni e stati della risoluzione del problema considerare, susseguentemente alla formulazione dellobiettivo)
Agente risolutore di problemi (basato su obiettivi) Ove esistono più alternative (sequenze di azioni che raggiungono lobiettivo), lagente Se non 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.
Ricerca Ricerca è il processo per lindividuazione / 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 Lesecuzione coincide con la realizzazione delle azioni suggerite dalla soluzione
Agente risolutore di problemi (basato su obiettivi) Formulato un obiettivo ed un problema da risolvere, lagente attiva una procedura di ricerca per risolverlo, quindi usa la soluzione per guidare le proprie azioni Eseguita la soluzione, lagente individuerà un nuovo obiettivo
Agente di ricerca Formulazione dellobiettivo (basata sulla situazione attuale). Obiettivo = Insieme degli stati del mondo che soddisfano lobiettivo Formulazione del problema (processo di scelta di azioni e stati da considerare) Ricerca (esaminare differenti sequenze di possibili azioni e poi scegliere la migliore Esecuzione della sequenza di azioni
Algoritmo di risoluzione / ricerca 1.INPUT = problema 2.OUTPUT = soluzione nella forma di sequenze di azioni 3.ESECUZIONE = realizzazione/implementazione delle sequenze di azioni
Agente risolutore di problemi Soluzione di problema offline; una soluzione di problema online richiede lagire senza una completa conoscenza del problema e della soluzione
Processo di formulazione di problemi Conoscenza che lagente ha sulle sue azioni e sugli stati Ciò dipende da come lagente è connesso al suo ambiente, attraverso le percezioni e le azioni. Quindi elementi fondamentali nella definizione di un problema sono gli stati e le azioni
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 (costo di cammino g) Il test obiettivo è applicato dallagente alla descrizione di un singolo stato per determinare se è in uno stato obiettivo.
Formulazione di problemi Loutput di un algoritmo di ricerca è una soluzione, ovvero un cammino dallo stato iniziale allo stato che soddisfa il test obiettivo
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 allalbero di ricerca i nodi risultanti
Struttura dati di un Nodo datatype NODO components: 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)
Conoscenza e Tipi di problemi Problemi a stato singolo (deterministico, accessibile) Problemi a stati multipli (deterministico, inaccessibile) Problemi di contingenza (nondeterministico, inaccessibile) Problemi di esplorazione (spazio degli stati sconosciuto)
Conoscenza e Tipi di problemi Problemi a stato singolo (mondo accessibile, conoscenza effetto delle azioni, quindi agente può calcolare lo stato dopo la sequenza delle azioni) Problemi a stati multipli (mondo non accessibile, conoscenza effetto delle azioni, agente ragiona su insiemi di stati raggiungibili dopo la sequenza di azioni) Problemi di contingenza (ignoranza dellagente 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)
Problemi a stato singolo Caso 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 lagente può calcolare esattamente in quale stato sarà dopo qualsiasi sequenza di azioni
Formulazione di problemi a stato singolo Un tale problema è definito da 4 caratteristiche: 1.Stato iniziale 2.Operatore / funzione successore S(x) 3.Test obiettivo 4.Funzione costo cammino Una soluzione è una sequenza di operatori che conducono dallo stato iniziale ad uno stato obiettivo
Problemi a stati multipli Lagente 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 allinsieme degli stati) Lagente deve ragionare su insiemi di stati in cui potrebbe giungere invece che su stati singoli, in quanto il mondo non è completamente accessibile
Formulazione di problemi a stati multipli Un tale problema è definito da 4 caratteristiche: 1.Insieme di stati iniziali 2.Insieme di operatori / funzione successore S(x) (per ciascuna azione viene specificato linsieme di stati raggiunti da qualsiasi stato considerato. Un cammino collega insiemi di stati) 3.Test obiettivo 4.Funzione costo cammino Una soluzione è un cammino che conduce ad un insieme di stati che sono tutti stati obiettivo. Spazio dellinsieme di stati
Problemi di contingenza pianificazione Talvolta lignoranza impedisce allagente di trovare una sequenza di azioni che garantisca di arrivare alla soluzione Capacità di rilevamento durante la fase di esecuzione Lagente deve calcolare un intero albero di azioni piuttosto che una singola sequenza di azioni (un ramo dellalbero tratta una situazione contingente possibile che si potrebbe verificare) Nel mondo reale si incontrano molti problemi di contingenza poiché la predizione esatta è impossibile
Problemi di contingenza pianificazione Necessari algoritmi complessi Lagente può agire prima di aver trovato un piano garantito (comincia effettivamente lesecuzione e vede quali soluzioni contingenti si verificano veramente) Date le informazioni supplementari lagente può poi continuare a risolvere il problema
Problemi di esplorazione Lagente non ha alcuna informazioni sugli effetti delle proprie azioni Lagente 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
Efficacia della ricerca Misura dellefficacia 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
Costo della ricerca Lagente deve decidere quali risorse dedicare alla ricerca e quali allesecuzione. Per spazi degli stati piccoli, si considera il costo di cammino più basso Per problemi complessi trovare punto di equilibrio (lagente 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)
Risoluzione di problemi 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 leliminazione di più dettagli possibili mantenendo la validità ed assicurando che le azioni astratte siano facili da realizzare
Classi di problemi Problemi giocattolo (Rompicapo dell8 – Mondo dellaspirapolvere) Problemi del mondo reale (Ricerca di itinerario)
Rompicapo dell8 tessera vuota Operatore: la tessera vuota cambia posto con la tessera alla sua sinistra
Rompicapo dell8 Formulazione del problema tessera vuota Stati: specifica della posizione di ciascuna delle 8 tessere + tessera 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)
Mondo dellaspirapolvere Spazio degli stati Archi/azioni: L=spostati a sn, R=spostati a dx, S=aspira
Mondo dellaspirapolvere semplificato Agente conosce la propria posizione e le posizioni di tutte le parti con sporcizia; aspira bene. Stati: uno degli stati di figura Operatori: spostati a sn, spostati a dx, aspira Test obiettivo: non lasciare sporcizia nei quadrati Costo di cammino: ciascuna azione costa 1 Soluzione: da un qualsiasi stato di partenza seguire le frecce fino ad uno stato obiettivo
Mondo dellaspirapolvere senza sensori In qualsiasi istante lagente si trova in un insieme di stati ma non sa in quale stato di quellinsieme sia
Mondo dellaspirapolvere senza sensori Laspirapolvere non ha alcun sensore e deve raccogliere tutta la sporcizia Insiemi di stati: sottoinsiemi di stati della figura Operatori: spostati a sn, spostati a dx, aspira Test obiettivo: ogni stato dellinsieme degli stati non contiene sporcizia Costo di cammino: ciascuna azione costa 1 Soluzione: dallinsieme iniziale degli stati (tutti) seguire le frecce fino a raggiungere un insieme di stati senza sporcizia
Strategia di ricerca Criteri di valutazione della strategia : Completezza (se esiste una soluzione viene trovata sempre) Complessità temporale Complessità spaziale Ottimalità
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 allobiettivo 1.Ricerca informata ( euristica) Si hanno informazioni di preferenze tra gli stati Ricerca informata più efficace di quella non informata
Ricerca in ampiezza Tutti i nodi di profondità d nellalbero si espandono prima dei nodi di profondità d+1 Strategia sistematica (esaminati prima i cammini di lunghezza i, poi i+1,poi i+2,…)
Ricerca in ampiezza Se esiste una sola soluzione, la ricerca in ampiezza la trova Se esistono più soluzioni, viene trovato per prima lo stato obiettivo più alto (quindi a costo minimo) Valutazione: ricerca completa ed ottimale
Ricerca in ampiezza Se esiste una sola soluzione, la ricerca in ampiezza la trova Se esistono più soluzioni, viene trovato per prima lo stato obiettivo più alto (quindi a costo minimo) Valutazione: ricerca completa ed ottimale
Ricerca in ampiezza 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 è (lobiettivo non viene espanso)
Ricerca in ampiezza Complessità spaziale coincide con complessità temporale perché tutti i nodi foglia dellalbero di ricerca devono essere mantenuti in memoria contemporaneamente
Ricerca a costo uniforme La ricerca a costo uniforme trova gli obiettivi più superficiali. 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 La prima soluzione trovata è quella più conveniente
Ricerca a costo uniforme Si trova sempre la soluzione più economica se si verifica che il costo del cammino non decresce mai quando lo percorriamo. Il costo del cammino di un nodo è somma dei costi degli operatori che determinano il cammino
Ricerca a costo uniforme
Ricerca in profondità La ricerca in profondità espande sempre il primo dei nodi al livello più profondo dellalbero. La ricerca torna indietro 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
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
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
Ricerca bidirezionale La ricerca bidirezionale ricerca contemporaneamente sia in avanti, dallo stato iniziale, sia allindietro, dallobiettivo, 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
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?
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. Evitare riduzioni di stati può generare una riduzione esponenziale del costo di ricerca.
Ripetizioni di stati Suggerimenti: Non ritornare allo stato da cui si proviene Non creare cammini che abbiano cicli Non generare alcuno stato già generato prima