Tema-3 It

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 93

TEMA 3 - Strategie di ricerca di base

1
Introduzione
Strategie di rappresentazione dello spazio di stato
Ricerca disinformata o cieca
• Introduzione
• Ricerca di alberi
• Strategie
• Evitare gli stati ripetuti - Ricerca sulle reti
Ricerca euristica
• Introduzione
• Strategie
Strategie sulla rappresentazione per riduzione
Ricerca disinformata o cieca
• Introduzione
• Ricerca di alberi
• Strategie
Ricerca euristica
• Introduzione
• Caratteristiche delle funzioni di valutazione nelle reti YO
• Strategia YO*
Funzioni euristiche
L'effetto dell'accuratezza euristica sulle prestazioni
Progettazione di funzioni euristiche ammissibili
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
INTRODUZIONE

Per risolvere un problema è necessario:


• Set Goal: stati che soddisfano i criteri per essere goal o sottoproblemi impostati
come terminali (primitivi).
• Applicazione di un metodo di ricerca: processo che consiste nell'esaminare e
scoprire quale sequenza di azioni conduce a uno stato obiettivo o al problema
da risolvere. Per fare ciò, il metodo deve decidere:
• quali azioni e
• quali stati/sottoproblemi considerare.

Un metodo di ricerca utilizza come input un problema e restituisce come output una
sequenza di azioni che portano a un obiettivo finale.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Introduzione

In generale, un disegno semplice di questo processo dovrebbe essere "formulare,


cercare, eseguire".
la funzione TROUBLESHOOTING(percezione) restituisce un'azione
voci: percezione, una percezione
statico: problema: una formulazione del 2. Metodi per la funzione
problema sec: una sequenza di azioni SEARCH.
stato attuale o sottoprob
problema oggettivo o terminale (primitivo)
Ripetere
problema 🡨 FORM-TROUBLE() Avvio 🡨
FORM-START()
target 🡨 FORM-TARGET-
OBJECTIVE() sec 🡨
SEARCH(problema) action 🡨
FIRST(sequenza) return action
stato/sub-prob 🡨 UPDATE(stato/sub-prob,percezione)

Studieremo:
1. Il processo di formulazione del problema.
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
Presuppone
• Ambiente statico 🡺 in quanto la formulazione e la ricerca del
problema
viene effettuata senza prestare attenzione ai cambiamenti che
possono verificarsi nell'ambiente.
• Lo stato iniziale o del problema è noto.
• Ambiente discreto 🡺 elenco di ''corsi d'azione alternativi''.
• Ambiente deterministico 🡺 Le soluzioni sono sequenze di azioni
e vengono eseguite senza prestare attenzione alla
percezioni.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Introduzione

Indipendentemente dalla rappresentazione utilizzata, la struttura sottostante sarà


un normale albero o grafo o IO descritto da nodi e archi.
La rappresentazione di un nodo ''n'': struttura con questi 5 componenti minimi:

• STATO o SOTTOPROBLEMA: identifica il nodo.


• Nodo PARENTE: nodo dell'albero/rete di ricerca che ha generato questo nodo.
• ACTION: l'azione/operatore ''a'' da applicare al genitore per generare il nodo.
• COSTO DEL PERCORSO: il costo ''g(n)'' di un percorso indicato dai puntatori ai
genitori.
• PROFONDITÀ: il numero di passi lungo il percorso.

Da questa struttura di nodi si costruisce l'albero/rete di ricerca.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Introduzione
5

Border: raccolta di nodi generati ma non ancora


espansi. Chiuso
Chiuso: raccolta di nodi generati ed
espansi.

Confine
La strategia di ricerca è una funzione che seleziona dal confine il nodo successivo da
espandere.
Si supponga che la collezione di nodi sia implementata come una coda con le
operazioni seguenti:
EMPTY(coda), restituisce true se la coda è vuota. DELETE(coda,criterio),
elimina dalla coda i nodi che verificano il criterio. DELETE-FIRST(coda),
restituisce il primo elemento e lo elimina dalla coda.
INSERT(elemento,coda), inserisce un elemento e restituisce la coda.
INSERT-ALL(elementi,coda), inserisce gli elementi e restituisce la coda.
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
Introduzione

L'astrazione nella formulazione dei problemi

La formulazione dei problemi viene indicata in termini di stato iniziale o problema,


funzione successore, test obiettivo o sottoproblemi terminali (primitivi) e costo.
Questa formulazione è ragionevole, anche se molti aspetti possono essere omessi.
• Di stati o sottoproblemi: aspetti climatici, pressione dei bracci robotici, ecc.
• Di azioni: tempo richiesto, spesa per il carburante, inquinamento, ecc.

Il processo di rimozione dei dettagli da una rappresentazione si chiama astrazione.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Introduzione

Misurare le prestazioni nella risoluzione dei problemi

Il risultato di un metodo di risoluzione dei problemi è un fallimento o una


soluzione. Le prestazioni di un metodo vengono valutate attraverso il:
• Completezza: è garantito che si trovi una soluzione, se esiste?
• Ottimalità: è stata trovata la soluzione ottimale?
• Complessità temporale: quanto tempo occorre per trovare una soluzione?
• Complessità nello spazio: quanta memoria è necessaria per la ricerca?

La complessità temporale e spaziale viene sempre considerata rispetto a una


qualche misura della difficoltà del problema. Poiché in generale l'albero di ricerca
sarà rappresentato implicitamente dallo stato iniziale e dalla funzione successore,
la complessità sarà espressa in termini di tre quantità:
• b, fattore di ramificazione o numero massimo di successori di qualsiasi nodo;
• d, profondità del nodo target più superficiale;
• m, lunghezza massima di un percorso nello spazio di ricerca.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


8
STRATEGIE SU UNA RAPPRESENTAZIONE DELLO SPAZIO DI STATO

Abbiamo condotto lo studio di questa sezione secondo lo schema seguente:

Larghezza
disinformato o
Costo uniforme
cieco
Profondità
Metodi di
ricerca
Prima il miglior avara A
con informazioni
BPMR
o euristiche

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.

RICERCA DISINFORMATA O CIECA


• Introduzione
Impraticabili per problemi complessi, ma costituiscono la spina dorsale di tutti gli
altri. Non si fa uso di informazioni specifiche del problema o del dominio (non si
considerano le informazioni sul beneficio o sull'utilità di passare da uno stato
all'altro). In questa situazione si adotta un criterio arbitrario ma fisso.
Un problema di ricerca è costituito da 4 componenti:
1. Lo stato iniziale in cui inizia l'agente.
2. Descrizione delle azioni possibili.
Formulazione più comune:
SUCCESSOR(x) restituisce un insieme di coppie
ordinato <azione,
successore> azione 🡺 una delle azioni
legali in x successore 🡺 stato
raggiungibile da x

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024


Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca 10
Implicitamente lo stato iniziale e la funzione successore definiscono lo s p a z i o
d e g l i stati - l'insieme di tutti gli stati raggiungibili.
Sentiero: stati collegati da una sequenza di azioni.

3. Il test oggettivo, che determina se uno


Stato è uno Stato oggettivo.
4. Una funzione di costo che assegna un costo
numerico per ogni percorso
Costo individuale = costo non negativo di una quota ''a'' da ''x'' a ''y'' c(x,a,y)
o breve c(x,y)
Costo della strada = somma dei singoli costi

La qualità della soluzione è misurata dalla funzione di costo del percorso.


Una soluzione ottimale ha il costo minore tra tutte le soluzioni.
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca
In generale, nella ricerca di soluzioni si procede come segue:

Continuando con l'esempio del percorso:


Nodo radice: corrisponde allo stato iniziale,
En(A). Verificare se si tratta di uno stato di
destinazione.
Espandere lo stato corrente (si applica la funzione successore).
3 nuovi stati: En(S), En(T) e En(Z)
Scegliete quale di queste tre possibilità prendere in considerazione. Seguire.......

Lo stato da espandere è determinato dalla strategia di ricerca.


IMPORTANTE: distinguere tra spazio degli stati e albero di ricerca.
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
Nell'esempio: 20 stati -- numero infinito di nodi.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca
• Ricerca di alberi
La funzione RICERCA-TRE(problema,confine) restituisce una soluzione o un fallimento
border 🡨 INSERT(MAKE-NODE(STATE-INITIAL[problem]),border)
ciclo do
se VACIA(confine) allora restituire fallimento
nodo 🡨 DELETE-FIRST(confine)
se TEST-OBIETTIVO[problema] applicato a STATO[nodo] è vero allora restituisce SOLUZIONE(nodo)
confine 🡨 INSERT-ALL(EXPAND(nodo,problema),confine)

La funzione EXPAND(nodo,problema) restituisce un insieme di nodi


successori 🡨 insieme vuoto
per ogni (azione,risultato) in SUCCESSORE[problema](STATO[nodo]) fare
s 🡨 un nuovo NODO
STATE[s] 🡨 risultato
NODE-PARENT[s] 🡨
nodo ACTION[s] 🡨
azione
COST-PATH[s] 🡨 COST-PATH[nodo]+COST-INDIVIDUAL(nodo,azione,s)
DEPTH[s] 🡨 DEPTH[node]+1 restituire i successori
aggiungere s ai successori

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Le diverse strategie ordinano il
confine in modi diversi

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca
• Strategie
Tutte le strategie si distinguono per l'ordine di espansione dei nodi.
Cerca prima in larghezza
Implementato chiamando CERCA-TRE(problema,COLA-FIFO())
• È completo. - Il nodo di destinazione più superficiale non è necessariamente quello
ottimale.
• Totale nodi generati b + b2 + b3 + ... + bd + (bd+1-b) = O(bd+1).
• La complessità nello spazio è uguale alla complessità nel tempo.

Complessità. Si supponga:
b=10
1 milione di nodi generati al secondo. 1000 byte
di memoria per ogni nodo. il nodo di
destinazione è il primo nodo del livello d.
Laurea in Ingegneria Informatica Sistemi intelligenti
Anno accademico 2023-2024
Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca
Ricerca del costo dell'uniforme
Implementiamo SEARCH-TREE(problema,border_O()) dove border_O
è ordinato per g (costo del percorso) dal più basso al più alto.
• Completa se costo_individuale ≥ ε (piccola costante positiva).
• Questa condizione è anche sufficiente a garantire l'ottimalità.
• Complessità in tempo e spazio: O(b[C*/ε]), dove C* costa la soluzione ottimale.
L'albero di ricerca è infinito (compaiono cicli). Il metodo di ricerca ad albero non è
molto efficiente in questi casi. In caso di costo uniforme, il problema non sussiste.

Passare da S a G Confine
S(0)
10 B(2), A(10), C(15)
Soluzione = [S, B, G]
S 2 5 G
S(4), G(7), A(10), C(15)
B Costo del percorso: g
B(6), G(7), A(10), A(14), C(15), C(19)
15
G(7), S(8), A(10), G(11), A(14), C(15), C(19) =7
C
S(8), A(10), G(11), A(14), C(15), C(19)
Soluzione ottimale
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
costo
minimo

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca
Prima la ricerca approfondita
Questa strategia può essere implementata da SEARCH-ARBOLS con una coda
last-in-first-out (LIFO), nota anche come stack (SEARCH-
ARBOLS(problema,QUEUE-LIFO()).
• Non è completo.
• Non ottimale.
• Nodi totali generati (complessità temporale) O(bm).
• La complessità nello spazio O(bm) o O(m).

Ricerca di profondità limitata


Ricerca depth-first con un limite di profondità predeterminato l (introduce
un'ulteriore fonte di incompletezza). Può essere implementato con una semplice
modifica (per introdurre l) del metodo di ricerca ad albero.
• Se l<d non è né completo né ottimale; Se l>d è completo ma non ottimale.
• Complessità temporale O(bl).
• Complessità nello spazio O(bl).

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca
Profondità

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca
Ricerca a priorità di profondità con profondità iterativa
La ricerca di profondità iterativa è una ricerca di profondità limitata che aumenta il
suo limite fino a quando non viene trovato l'obiettivo (quando raggiunge d).
La funzione RICERCA-DROP-ITERATIVA-ITERATIVA(problema) restituisce una soluzione,
oppure un fallimento
voci: problema, un problema
per profondità 🡨 0 a ∞ fare
risultato 🡨 RICERCA-SUCCESSO-LIMITATO-DEEP(problema,profondità)
se risultato ≠ taglio allora restituire risultato

Combina i vantaggi della ricerca breadth-first (completezza, ottimalità) e della ricerca


depth-first (basso utilizzo di memoria).

Se b (fattore di ramificazione) è costante a tutti i livelli, generare nodi ripetutamente

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


non è così costoso.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su una rappresentazione dello spazio di stato
Ricerca disinformata o cieca
18
Profondità iterativa

Limite=0

Limite=1

Limite=2

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-


Strategie su una rappresentazione dello spazio di stato
Ricerca disinformata o cieca
Confronto tra strategie di ricerca non informate

Criterio Primo in Costo Primo Profondità Profondità


larghezza dell'unif approfondi limitata iterativa
orme mento
Completo? Sì 1 Sì 1,2 No No Sì 1

Il tempo O(bd+1) O(b[C*/ε]) O(bm) O(bl) O(bd)


Spazio O(bd+1) O(b[C*/ε]) O(bm) O(bl) O(bd)
Ottimale? Sì Sì No No Sì

dove:
b è il fattore di ramificazione;
d è la profondità del nodo di soluzione più superficiale (target);
m è la lunghezza massima di qualsiasi percorso nello spazio di ricerca; l
è il limite di profondità.

1 completo se b è finito;
2 si completa se i costi sono ≥ ε, per ε positivo;

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


3 ottimale a parità di costi.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca
• Evitare gli stati ripetuti - Ricerca sulle reti
Per alcuni problemi, gli alberi di ricerca infiniti 🡪 non riuscendo a rilevare gli stati
ripetuti, possono far sì che un problema risolvibile diventi irrisolvibile. Un metodo
che ricorda ogni stato visitato 🡪 scansiona direttamente dal grafico dello spazio
degli stati.
• Creare una nuova struttura di dati (elenco chiuso) che memorizzi i nodi espansi
(a volte il confine è chiamato elenco aperto).
• Nei problemi con molti stati ripetuti, la ricerca a grafo è più efficiente della
ricerca ad albero.
La funzione RICERCA-GRAFTS(problema,confine) restituisce una soluzione o un fallimento.
chiuso 🡨 insieme vuoto
border 🡨 INSERT(MAKE-NODE(STATE-INITIAL[problem]),border)
ciclo do
se EMPTY(confine) allora restituisce il nodo
fallito 🡨 DELETE-FIRST(confine)
se TEST-OBIETTIVO[problema](STATO[nodo]) allora restituire SOLUZIONE(nodo)
se STATE[nodo] non è impostato su closed,
allora aggiungere STATE[nodo] a closed
confine 🡨 INSERT-ALL(EXPAND(nodo,problema),confine)
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
Strategie su uno spazio di stati che rappresenta.
Ricerca disinformata o cieca 21

Esempio: andare da S a G (ricerca in rete, per costo uniforme).

Confine Chiuso
S
1 10 S(0)

A B
A(1), B(10) S(0)
S(2), B(10), C(16) S(0), A(1)
15
C C(12), C(16), S(20) S(0), A(1), B(10)
G(13), B(14), C(16), S(20), A(27) S(0), A(1), B(10), C(12)
1

G
B(14), C(16), S(20), A(27) S(0), A(1), B(10), C(12),G(13)

Soluzione=[S,B,C,G]. Costo del percorso: g=13 (sol.

ottimale) Complessità: tempo=6 nodi, memoria=9 nodi.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.

RICERCA EURISTICA
• Introduzione
Le strategie di ricerca non informate trovano soluzioni generando sistematicamente
nuovi stati e testandoli rispetto al test oggettivo.

Tremendamente inefficiente su problemi difficili

Alternativa: disporre di un meccanismo (euristica) per indirizzare la ricerca


verso le aree più promettenti e trovare soluzioni in modo più efficiente.

Le euristiche (come già detto), in senso generale, sono criteri, regole, punteggi o
metodi che aiutano a decidere quale sia l'alternativa migliore o più promettente, tra
le varie alternative possibili, per raggiungere un determinato obiettivo.
Questo meccanismo richiede la conoscenza del problema.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 23
Nel contesto dei sistemi di ricerca, le euristiche sono spesso utilizzate per
decidere:
• quale nodo espandere successivamente (il più promettente tra i candidati).
• che vengono generati i nodi successori (alcuni potrebbero essere ripetuti).
• quali nodi non dovrebbero mai essere considerati (diversi tipi di potatura).

Le strategie di ricerca informata o euristica sono:


• Strategie di ricerca che utilizzano alcuni meccanismi euristici per indirizzare la
ricerca verso le aree più promettenti e trovare soluzioni in modo più efficiente.
• Esistono diverse strategie che si basano sui metodi di base per la ricerca non
informata.
• Una ricerca informata può trovare soluzioni in modo più efficiente di una ricerca
non informata.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica
• Strategie
Cercare il meglio per primo è la strategia generale e più elementare della ricerca
informata.
È a caso particolare del metodo metodo generale
di RICERCA A TRE o RICERCA AD ALBERO.
Viene utilizzata una funzione di valutazione f(n) che, per ogni nodo n, restituisce
un valore numerico che indica quanto è promettente l'espansione del nodo.
• Questo valore viene utilizzato per ordinare l'elenco dei confini in modo che i
nodi più promettenti siano in cima.
• Tradizionalmente, il nodo più promettente è quello con l a valutazione più
bassa 🡪 viene interpretato come distanza dall'obiettivo.

Può essere implementato all'interno del nostro framework di ricerca generale con
una coda prioritaria (ordine crescente dei valori di f).
Esiste una famiglia di metodi Best First Search che utilizzano diverse funzioni di
valutazione.
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 25
Una componente fondamentale è il calcolo di una funzione euristica, h:
• h(n) è il costo stimato del percorso più economico dal nodo n al nodo di
destinazione, e
• se n è un nodo obiettivo, allora h(n)=0.
Le funzioni euristiche sono il modo più comune per trasmettere al metodo di ricerca
una conoscenza aggiuntiva del problema.

Esempio: mappa stradale


h(n)=hDLR (n)
A 366 B0 C 160 D 242
E 161 F 176 G 70 H 151
I 226 L 244 M 241 N 234
O 380 P 100 R 193 S 253
T 329 U 80 V 199 Z 374
Stimare il costo del percorso più economico
da qualsiasi nodo a B con la distanza in linea
retta.
Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-
Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 26
Cercare prima il miglior avara o vorace (avido)
Cerca prima il miglior avara espande il nodo che stima più vicino all'obiettivo. Valuta i
nodi con f(n) = h(n).
Complessità temporale e spaziale 🡪 O(bm).
Con una buona funzione h, la complessità si riduce notevolmente.
L'entità della riduzione dipende dal problema e dall'euristica.

Percorso da A a B
utilizzando h(n)=hDLR (n)

A 366 B0 C 160 D 242


E 161 F 176 G 70 H 151
I 226 L 244 M 241 N 234
O 380 P 100 R 193 S 253
Soluzione trovata: A-S-F-B, costo 450 (non ottimale)
Complessità: tempo=4 nodi, memoria=10 nodi T 329 U 80 V 199 Z 374

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024


Strategie su una rappresentazione dello spazio di stato
Ricerca euristica
Ricerca A*: minimizzazione del costo totale stimato della soluzione

Valuta i nodi per f(n)=g(n)+h(n)

g(n): costo del percorso da inizio a n;


h(n): costo stimato del percorso più economico da n all'obiettivo.

f(n): costo stimato del percorso più economico per raggiungere la


soluzione attraverso n

Se la funzione euristica h soddisfa determinate condizioni, la ricerca A* è:


ottimale
completo

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica
Esempio: f(n) = g(n) + hDLR (n)
hDLR funzione euristica
A 366 B0 C 160 D 242
E 161 F 176 G 70 H 151
I 226 L 244 M 241 N 234
O 380 P 100 R 193 S 253
T 329 U 80 V 199 Z 374

Soluzione trovata: A-S-R-R-P-B, costo 418


Complessità: tempo=6 nodi, memoria=15 nodi

Ottimale?

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-


Strategie su una rappresentazione dello spazio di stato
29
Un'euristica h() è ammissibile se non sovrastima mai il costo più basso possibile per
raggiungere l'obiettivo, vale a dire
h(n) ≤ h*(n), ∀ n
dove h*(n) è il costo più basso possibile per raggiungere l'obiettivo dal nodo n.
Conseguenza:
• Poiché f(n)=g(n)+h(n), e g(n) è il costo reale per raggiungere n
attraverso il percorso corrente, f(n) non sovrastima mai il costo
per raggiungere n attraverso il percorso corrente. g(n
)
della soluzione nel corso del a
l e di S casa
una strada che passa per n. to r
ea S
cos
C* n
f(n) ≤ C* costo reale
del n
soluzione o
h*(n) h (n) costo stimato
costo da n a G
effetti
vo
naG
G
obiettiv
f(n) co o sti ato della
st m soluzione
Anno accademico 2023-2024

Ricerca euristica

Laurea in Ingegneria Informatica Sistemi intelligenti


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 30
Le euristiche non ammissibili sono pessimistiche:
• Possono scartare un successore perché ''pensano'' che sia peggiore di
quanto sia in realtà.
• Questo impedisce l'ottimalità: le soluzioni ottimali possono andare perse.

Le euristiche ammissibili sono ottimistiche:


• Si presume che il costo della soluzione di un problema sia inferiore a quello reale.
• Questo consente l'ottimalità: un nodo sul percorso ottimale potrebbe non
sembrare così negativo da essere scartato.
L'euristica della distanza rettilinea, hDLR , è un'euristica ammissibile:
• La distanza in linea retta è la distanza più breve possibile tra due punti: sarà
sempre inferiore alla distanza stradale effettiva.

hDLR (n): costo stimato da n a G

n G
h*(n): costo reale da n a G

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 31
Ottimizzazione di A* per gli ARBOLI DI RICERCA
Teorema: se la funzione h è un'euristica ammissibile, allora la ricerca A* guidata da h
è ottimale.
Se h è ammissibile, allora A* è ottimale.
(poiché g(n) è il costo esatto per raggiungere n e h(n) non sovrastima h*(n),
f(n) non sovrastima mai il costo reale di una soluzione attraverso n).
Dimostrazione:
Sia C* il costo della soluzione ottimale. Supponiamo di avere sulla frontiera un
nodo obiettivo subottimale G2 .
• Poiché G2 è subottimale e h(G2 )=0 (perché è un nodo target):
f(G2 ) = g(G2 )+h(G2 ) = g(G2 ) > C*
• Consideriamo un nodo n al limite su un percorso di soluzione ottimale. Poiché
h è ammissibile:
f(n) = g(n)+h(n) ≤ g(n)+h*(n) = C*
• Pertanto, f(n) ≤ C* < f(G2 ). Di conseguenza, sceglierà n invece di G2 . A*
restituirà una soluzione ottimale.
Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024
Strategie su una rappresentazione dello spazio di stato
Ricerca euristica
Ottimizzazione di A* per i GRAFICI DI RICERCA
• L'ammissibilità non è sufficiente a garantire l'ottimalità.
• La dimostrazione fallisce e il metodo può restituire soluzioni non ottimali.
• Motivo: SEARCH-GRAFTS può ignorare il percorso ottimale se compare uno
stato ripetuto e viene scartato come già chiuso.
Dimostrazione per
h
controesempio:
ammissibile
h=1 n h(n) h*(n)
h(n)≤h*(n),
A A 1 5
∀n B 1
C
3
D 0 0
B h=1 h=4 C Confine Chiuso
1 A(1)
A1 A1
BA (4),CA (5) A(1)
CA (5),DB (6),AB (7),CB (8) A(1),BA (4) B4 C B
D
46
C
5
D AC (3),BC (3),DB (6),AB (7),CB A(1),BA (4),CA (5) 5
h=0
(8) (5)
Ottimale A-C-B-D A (7),CB (8) A(1),BA (4),CA (5),DB
Laurea in Ingegneria Informatica B Sistemi intelligenti Anno accademico 2023-
Soluzione: A-B-
D (6) non
ottimale
Strategie su uno spazio di stati che rappresenta.
Ricerca euristica
Abbiamo dimostrato che la RICERCA GRAFICA fallisce, escludendo nodi ripetuti
migliori e quindi possibili soluzioni ottimali.

Ci sono due possibilità:


1.- Estendere la RICERCA GRAFICA in modo che scarti il percorso più costoso di
due percorsi trovati verso lo stesso nodo. Complica il calcolo complementare
(meno efficiente) ma garantisce l'ottimalità.
2.- Richiedere una qualche proprietà, più rigorosa dell'ammissibilità, che garantisca
che il percorso ottimale verso qualsiasi stato ripetuto sia sempre il primo che
seguiamo.
-- Come nel caso della ricerca a costi uniformi.

La possibilità 2 (che assicura che il percorso ottimale verso qualsiasi stato ripetuto
sia sempre il primo che seguiamo) è valida se imponiamo una nuova condizione su
h(n): la condizione di coerenza.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica
Condizione di coerenza: una funzione euristica h è coerente se
h(n) ≤ K(n,as ,n') + h(n'), ∀ n, n'
dove K(n,as ,n') costa il percorso di n e n' attraverso la sequenza di azioni

versos . Questa è una condizione leggermente più rigida dell'ammissibilità (h(n) ≤

h*(n), ∀n).

Condizione di monotonicità: una funzione euristica h è monotona se

h(n) ≤ c(n,a,n') + h(n'), ∀ n, n', con n' successore immediato


di n
dove c(n,a,n') è il costo dell'arco che unisce n e n'.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Si può dimostrare che:
h è coerente ⬄ h è monotono

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su una rappresentazione dello spazio di stato
Ricerca euristica 35
I costi reali, h*(n), considerati come distanze, devono soddisfare la proprietà di
disuguaglianza triangolare.
Nessun lato di un triangolo ha una lunghezza maggiore della somma delle
lunghezze degli altri due lati.

h*(n) K(n, a,n')

G: nodo target più vicino


an

h*(n')

h*(n) ≤ K(n,as ,n') + h*(n'), ∀ n, n'


Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
Strategie su uno spazio di stati che rappresenta.
Ricerca euristica
La condizione di coerenza stabilisce che la proprietà di
della disuguaglianza triangolare anche per i costi stimati, h.

h(n) K(n, a,n')

G: nodo target più


vicino a n h(n')
hDLR è un'euristica
coerente essendo
una distanza metrica.
essere
h(n) ≤ K(n,as ,n') + h(n'), ∀ n, n'

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica
Teorema: se h è un'euristica coerente, allora h è ammissibile.

h coerente ⇒ h ammissibile
Dimostrazione:
Costo della strada
Sia n un nodo qualsiasi e G l'obiettivo più vicino.
che collega n a G
Poiché h è coerente, si ha che h(n) ≤ K(n,as ,G) + h(G). E
poiché h(G) = 0 e K(n,as ,G) = h*(n), concludiamo che: Costo
effettivo
h(n) ≤ h*(n), ∀n della strada
Allora h è ammissibile.

Non è vero il contrario. Un'euristica ammissibile non è sempre coerente.

euristica ammissibile

euristica coerente
Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024
Strategie su una rappresentazione dello spazio di stato
Ricerca euristica
I risultati più importanti della condizione di coerenza sono:

a) Se h è coerente, allora i valori di f, lungo qualsiasi percorso, non diminuiscono.


Sia n' un nodo nel percorso da n allora g(n')=g(n)+K(n,as ,n') per
una sequenza di azioni as

quindi, f(n') = g(n')+h(n') = g(n)+K(n,as ,n')+h(n') ≥ g(n)+h(n) = f(n).


per coerenza

Pertanto, la sequenza di nodi espansi da A* utilizzando la RICERCA GRAFICA


è in ordine non decrescente di f(n).

Il fatto che il costo f non diminuisca lungo nessun percorso significa che
possiamo tracciare delle curve di livello nello spazio degli stati, come le curve di
livello su una mappa topografica.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su una rappresentazione dello spazio di stato
Ricerca euristica
Poiché A* espande il nodo limite a costo f più basso (con f sempre crescente),
possiamo vedere che A* cerca verso l'esterno del nodo iniziale, aggiungendo
nodi in bande di costo f concentriche.

All'interno della linea di


contorno etichettata
417, tutti i nodi hanno
f(n) minore o uguale a
417, ecc.

f(S)=393, f(R)=413, f(F)=415, f(P)=417

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su una rappresentazione dello spazio di stato
Ricerca euristica 40

b) Se h è coerente, allora A* con la RICERCA GRAFICA è ottimale.


Se h è coerente, ogni volta che A* seleziona un nodo da espandere, è stato
trovato il percorso ottimale per quel nodo. Di conseguenza, il primo nodo target
selezionato per l'espansione deve essere una soluzione ottimale.

Teorema: se h è un'euristica coerente, allora la ricerca A* guidata da h è ottimale.


Dimostrazione:
Sia C* il costo della soluzione ottimale G. Supponiamo di avere sulla frontiera un
nodo obiettivo sub-ottimale G2 .
• G2 è subottimale e h(G2 )=0 (nodo obiettivo): f(G2 ) = g(G2 )+h(G2 ) = g(G2 ) > C*.
• Sia n un nodo n sulla frontiera del percorso di soluzione ottimale. Poiché h(n)
consiste in f(n) = g(n)+h(n) ≤ g(n)+k(n,G)+h(G) = g(G)+h(G) = g(G) = C*.
Pertanto, f(n) ≤ C* < f(G2 ) . D i c o n s e g u e n z a , sceglierà n invece di G2 . A*
restituirà una soluzione ottimale.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica
Ricognizione sull'ottimalità di A*:

• Se lo spazio degli stati è un albero e possiamo usare SEARCH-TREE, allora A*


con un'euristica ammissibile garantisce una soluzione ottimale.

• Se lo spazio degli stati è un grafo e dobbiamo usare la RICERCA GRAFICA,


allora A* con un'euristica coerente garantisce una soluzione ottimale.

• Se un'euristica è coerente, allora è ammissibile. Non è vero il contrario.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 42
La ricerca A* è:
completo, ottimale e ottimamente efficiente tra tutti i metodi.

Purtroppo, nessun significa che A* è la risposta risposta


a tutte nostre esigenze di ricerca.
Difficoltà 🡪 per la maggior parte dei problemi, il numero di nodi
all'interno della curva di contorno target nello spazio di ricerca è
ancora esponenziale nella lunghezza della soluzione.

Tuttavia, il tempo di calcolo non è il principale svantaggio di A*.


Poiché mantiene in memoria tutti i nodi generati, A* d i s o l i t o
esaurisce lo spazio prima di esaurire il tempo.

Esistono metodi successivi che hanno superato il problema dello spazio senza
sacrificare l'ottimalità o la completezza, con un piccolo costo in termini di tempo di
esecuzione.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 43
Ricerca ricorsiva di prima istanza con le migliori prestazioni (BPMR) o ricerca a
memoria limitata (BPMR)
Limitare il consumo di memoria nella ricerca euristica.
BPMR imita Best First, ma genera meno nodi e il consumo di memoria è
lineare. Evita di addentrarsi sempre di più in un percorso che potrebbe iniziare a
peggiorare.

• Utilizza una variabile limite per ricordare il valore f del miglior percorso alternativo
da qualsiasi antenato del nodo corrente.
• Se il nodo corrente supera questo limite, la ricorsione torna al percorso alternativo,
scaricare il sottoalbero corrente.
• Durante il backtracking, il metodo sostituisce il valore f di ogni nodo lungo il
percorso con un valore di riserva: il miglior valore f dei suoi figli.

L'idea generale è quella di ricordare il miglior valore f del sottoalbero

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


dimenticato, per decidere se vale la pena di espandere nuovamente il
sottoalbero in un momento successivo.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica

La funzione BPMR(problema) restituisce una soluzione o un fallimento.


BPMR-f(problema,DO-NODE(STATO-INIZIALE[problema]),∞)

La funzione BPMR-f(problema,nodo,confine) restituisce una soluzione o un fallimento e un nuovo


confine.

se TEST-OBIETTIVO[problema](stato) allora restituisce il nodo


successore 🡨 EXPAND(nodo,problema)
se i successori sono vuoti, restituire un fallimento, ∞
per ogni s nei successori fare f[s�🡨 max(g(s)+h(s),f[nodo])
ripetizione
migliore 🡨 il nodo con il più piccolo valore f di successori
se f[best] > flimite allora restituisce fallimento, f[best].
alternativa 🡨 il nodo con il secondo valore f più piccolo tra i successori risultato,f[best] 🡨
BPMR-f(problema,best,min(confine,alternativa))
se il risultato è ≠ fallito allora restituire il risultato

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 45

Stato iniziale: A; Stato finale: B

A 366 B0 C 160 D 242


E 161 F 176 G 70 H 151 Soluzione trovata: A-S-R-R-P-B
I 226 L 244 M 241 N 234
costo 418---
O 380 P 100 R 193 S 253
ottimale
T 329 U 80 V 199 Z 374

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica 46
Il BPMR è un metodo ottimale se la funzione h verifica le stesse condizioni di
ottimalità di A* (ammissibile in SEARCH-TREE e monotona in SEARCH-GRAFTS).
La sua complessità spaziale è O(bd), ma la sua complessità temporale è piuttosto
difficile da caratterizzare: dipende dalla precisione della funzione euristica e dalla
frequenza con cui il percorso migliore cambia quando i nodi vengono espansi.

Pertanto, BPMR:
• utilizza uno spazio lineare, perché tiene in memoria un solo albero.
• richiede molto tempo perché deve riespandere gli stessi nodi più volte.
Se fosse disponibile più memoria, avrebbe più senso applicare un metodo che
utilizza tutta la memoria disponibile in cambio di una minore complessità temporale.
Diversi metodi: uno di questi è A*MS (A* con memoria vincolata semplificata).
A*MS avanza come A*, espandendo la foglia migliore finché la memoria non è
piena. A questo punto, non è possibile aggiungere un nuovo nodo all'albero di
ricerca senza rimuoverne uno vecchio. A*MS rimuove sempre il nodo fogliare
peggiore (quello con il valore f più alto).

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie su uno spazio di stati che rappresenta.
Ricerca euristica
Come in BPMR, A*MS restituisce il valore del nodo dimenticato al suo genitore.
In questo modo, l'antenato di un sottoalbero dimenticato conosce la qualità del
miglior percorso del sottoalbero. Con queste informazioni, A*MS rigenera il
sottoalbero solo quando tutti i percorsi sembrano peggiori di quello dimenticato.
A*MS è completo se esiste una soluzione raggiungibile, cioè se d è minore della
dimensione della memoria (espressa in nodi).
È ottimale se è possibile ottenere una soluzione ottimale, altrimenti restituisce la
migliore soluzione ottenibile. In termini pratici, A*MS può essere il miglior metodo
generale per trovare soluzioni ottimali.

Un modo per perdere l'ottimalità, ma in modo controllato, è il seguente:


Possiamo aumentare di una quantità ''e'' il salto della frontiera di ottimalità i n
m o d o c h e se h*(n) < h(n), otteniamo h(n) ≤ h*(n)+e.
(eventualmente, per certi problemi, possiamo progettare efficacemente solo
euristiche che non sono ammissibili).
Queste sono chiamate euristiche ammissibili. Sono importanti perché ottengono
soluzioni e-ottimali, vale a dire che è subottimale solo di una ''e''.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


STRATEGIE DI RAPPRESENTAZIONE PER RIDUZIONE

Come nella sezione precedente, lo studio di questa nuova sezione si svolge secondo il
seguente schema:

disinformato o Larghezza
cieco Profondità
Metodi di
ricerca
con informazioni
YO*.
o euristiche

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
49
RICERCA DISINFORMATA O CIECA
• Introduzione
Inizialmente utilizzeremo a albero da albero di ricerca YO (più
successivamente generalizzare) per risolvere un problema. Per
farlo, specifichiamo:
• un nodo iniziale,
• insieme di nodi terminali (primitivi) e
• insieme di operatori per ridurre il problema in sottoproblemi.
Nodo O: L'applicazione di un operatore a un nodo n è
rappresentata da un arco diretto dal nodo n al nodo
successore.
• Riduce il problema a diversi sottoproblemi alternativi più
semplici.
• Per risolvere il problema, è sufficiente risolvere uno di 5,6,8,9,10,11 nodi terminali
essi.
Nodo Y: L'applicazione di un operatore a un nodo n è rappresentata da un insieme
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
di archi diretti dal nodo n a un insieme di nodi successori.
• Riduce il problema a un insieme di sottoproblemi più semplici.
• Per risolvere il problema, bisogna risolverli tutti.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca disinformata o cieca 50
Una soluzione al problema originale è data da un sottoalbero dell'albero YO sufficiente
a dimostrare che il nodo di partenza è risolvibile.
Caratteristiche comuni ai metodi di ricerca nello spazio degli stati: è presente
anche l'operazione di espansione.
I metodi si differenziano principalmente per l'ordine di espansione.
Facciamo due ipotesi semplificative:
• Lo spazio di ricerca è un albero AND e non un grafo AND generico e
• Quando un problema viene trasformato in un insieme di sottoproblemi, questi
possono essere risolti in qualsiasi ordine.

5, 6, 8, 9, 10 e 11 nodi terminali

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024


Strategie di rappresentazione per riduzione
Ricerca disinformata o cieca 51
Esempio di soluzioni di un albero YO: 1

8 9 10 11

• Ci sono tre possibili soluzioni (sottoalberi di soluzioni):


1 1 1

5 5

8 9 10

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca disinformata o cieca 52
• Ricerca di alberi
La funzione SEARCH-TROUBLESHELLS-YO(problema,confine) restituisce una soluzione o un
fallimento.
confine 🡨 INSERT(DO-NODO(PROBLEM-INICIAL[problema],confine)
ciclo do
se EMPTY(confine) allora restituire il nodo
fallito 🡨 DELETE-FIRST(confine)
confine 🡨 INSERT-ALL(EXPAND-ALL(nodo,problema),confine)
se EXPAND-YO(nodo,problema)={ } allora
nodo irrisolvibile 🡨
se il nodo rende irrisolvibile uno qualsiasi dei suoi antenati, allora gli antenati 🡨 irrisolvibili
se PROBLEMA-INIZIALE=irrisolvibile allora fallimento. ARRESTO
DELETE(confine) nodi con antenati non risolvibili
altrimenti, se sono stati generati nodi risolvibili, allora
etichettare questi nodi come risolvibili
se questi nodi rendono risolvibili alcuni dei loro antenati allora gli antenati 🡨 risolvibili
se PROBLEMA-INIZIALE=risolvibile allora restituire SOLUZIONE
DELETE(boundary) qualsiasi nodo etichettato come risolvibile o avente antenati risolvibili
La funzione EXPAND-YO(nodo,problema) restituisce un insieme di nodi
SUC 🡨 insieme vuoto
per ogni successore, m, del nodo
se m è un insieme di sottoproblemi, allora
SUC 🡨 INSERT(tutti i successori di m)

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


altrimenti SUC 🡨 INSERT(m)
restituire SUC

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca disinformata o cieca
• Strategie
Le strategie si distinguono per l'ordine di espansione dei nodi.
Cerca Prima in Larghezza in YO Trees
Implementato chiamando RICERCA-ALBERO-I(problema,COLA-FIFO())

Ricerca prima in profondità in YO Trees


Implementato chiamando CERCA-TREES-YO(problema,QUEUE-LIFO())

Ricerca in profondità limitata negli alberi YO


Il problema degli alberi illimitati può essere attenuato applicando la ricerca depth-first
con un limite di profondità predeterminato.
Il limite di profondità introduce inoltre un'ulteriore fonte di incompletezza, che potrebbe
lasciarci senza risolvere il problema principale.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione

RICERCA EURISTICA
• Introduzione
Passiamo ora al problema della ricerca euristica in una rete AND. La
presenza di nodi AND aggiunge complicazioni concettuali.
Grafi E 🡪 Ipergrafi.
Archi che collegano coppie di nodi 🡪 iperarchi che collegano un nodo
antenato a un insieme di nodi successori.
Connettori 🡪 iperarchi (connettore k indirizzato da a
nodo a un insieme di k nodi successori).

Soluzioni da n0
a {n7 , n }8

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024


Strategie di rappresentazione per riduzione
Ricerca euristica 55
Possiamo dare una definizione ricorsiva precisa di grafo soluzione. La definizione
presuppone che i nostri grafi YO non abbiano cicli.
Sia G' un grafo di soluzione dal nodo n a un insieme N di nodi in un grafo AND,
G.
G' è un sottografo di G.
• Se n è un elemento di N, G' consiste solo nel nodo n;
• altrimenti,
• se n ha un connettore k, a partire da esso, diretto ai nodi {n1 ,...,nk }, tale che
esiste un grafo soluzione fino a N da ciascuno degli ni con i=1,...,k, si verifica
che G' consiste:
• del nodo n,
• del connettore k,
• dei nodi {n1 ,...,nk }, e
• dei grafi di soluzione a N da ciascuno dei nodi {n1 ,...,n };k
• altrimenti non esiste un grafo delle soluzioni da n a N.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica 56
Analogamente all'assegnazione dei costi agli archi di una rete ordinaria, è conveniente
assegnare i costi ai connettori delle reti YO.
I costi dei connettori possono quindi essere utilizzati per calcolare il costo di una rete di
soluzioni.

Denotiamo con K(n,N) il costo di un grafo di soluzione dal nodo n a N.

• Se n è un elemento di N, K(n,N)=0
• altrimenti,
• se n ha un connettore che conduce da esso a un insieme di nodi successori
{n1 ,...,nk }, nella rete di soluzioni; sia cn il costo di quel connettore, allora
K(n,N)=cn +K(n1 ,N)+.... +K(nk ,N)

NOTA: questa definizione del costo di un grafo soluzione può contare più di una volta i costi
di alcuni dei suoi connettori. Per esempio, assumendo che il costo di ogni k-connettore sia
k, i costi dei grafi soluzione nelle figure sono, rispettivamente, 8 e 7.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica
Esempio di soluzione per la determinazione dei
costi di rete:
Soluzione:

K(n0 , {n7 , n8 }) = 2 + K(n5 , {n7 , n8 }) + K(n4 , {n7 , n8


}) K(n5 , {n7 , n8 }) = 2
K(n4, {n7 , n8 } = 1 + K(n5 , {n7 , n8 }) = 1 + 2 = 3

K(n0 , {n7 , n8 }) = 2 + K(n5 , {n7 , n8 }) + K(n4 , {n7 , n8 }) = 2 + 3 + 2 = 7

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica 58
• Caratteristiche delle funzioni di valutazione nelle reti YO

In generale, saremo interessati a trovare la rete di soluzioni con il costo minimo,


che chiameremo rete di soluzioni ottimali. Naturalmente, avremo una funzione
euristica h che stima il costo.

Il primo nodo, A, è stato espanso per produrre due connettori,


uno che conduce a B e l'altro a C e D.
I numeri in ogni nodo rappresentano il valore della funzione
euristica in quel nodo e assumiamo per semplicità che il costo
di ogni k-connettore sia k

Se consideriamo semplicemente i nodi e scegliamo per l'espansione quello con il


valore più piccolo di h (come farebbe A*), dobbiamo selezionare C.
Ma utilizzando le informazioni a nostra disposizione, sarebbe meglio esplorare il
percorso attraverso B, dal momento che per utilizzare C dobbiamo utilizzare anche
D, con un costo totale di 9, rispetto al costo di 6 che otterremmo per B.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica 59
Per effettuare una ricerca in una rete YO è necessario eseguire quattro azioni in ogni
fase:

AVANTI:
• Attraversare la rete partendo dal nodo iniziale e seguendo il miglior percorso
attuale, accumulando l'insieme dei nodi che si trovano su quel percorso e che
non si sono ancora espansi.
• Scegliere uno di questi nodi non espansi ed espanderlo. Aggiungete i suoi
successori al grafo e calcolate h per ciascuno di essi.

INDIETRO:
• Modificare la stima di h del nodo appena espanso per riflettere le nuove
informazioni fornite dai suoi successori. Propagare questa modifica a ritroso
attraverso la rete.
• Per ogni nodo visitato durante lo spostamento all'indietro nella rete, dobbiamo
decidere quale dei suoi connettori è più promettente e contrassegnarlo come
parte dell'attuale rete di soluzioni parziali migliori. Questa operazione può

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


causare la modifica della rete di soluzioni parziali.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica
Esempio per mostrare questo approccio in una rete YO.

Sempre, al nodo radice della struttura (problema principale) apparirà il costo della
rete di soluzioni corrente e un segno di spunta, che indica l'operatore che produce
questa rete di soluzioni.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica
• Strategia YO*
Non utilizziamo le due liste Frontiera e Chiusa. Un metodo YO* utilizza una singola
struttura G, che rappresenta la parte del grafo di ricerca che è stata generata
esplicitamente fino a quel momento (il grafo di esplorazione).
Si utilizza anche un valore di ''futilità'': se il costo stimato di una possibile soluzione
diventa maggiore di questo valore, si abbandona la ricerca.

La funzione YO*(problema) restituisce la rete di soluzioni


locale: grafi G, G'
G grafo vuoto
G 🡨 G+{start}
costo(inizio) 🡨 h(inizio)
se start ∈ TERMINAL allora start contrassegnato come risolto
ripetere fino a quando l'inizio contrassegnato non è risolto o
costo(inizio)>ftility Costruire G'⊆G con i connettori contrassegnati
nodo ∈ confine(G')
se non c'è un successore di EXPAND(nodo) allora costo(nodo)=profittabilità

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica
altrimenti ∀ successore ∈ EXPAND(nodo) do
G 🡨 G+{successore}
se successore∈TERMINALE allora successore segnato risolto e costo(successore)=0
se successore∉TERMINALE e non era in G allora
costo(successore)=h(successore) S={nodo} (S insieme di nodi che sono stati
contrassegnati come risolti o che hanno cambiato il loro costo) ripetere fino a quando
S è vuoto
corrente∈S in modo che nessun discendente in G di corrente sia in
S🡨S-{corrente}
per ogni k-connettore della corrente {ni1 ,ni2 ,...,nik } calcolare
costoi (effettivo)=c+c+costo(ni1 )+ ...+costo(nik )
costo(effettivo) 🡨 mini costoi (effettivo)
contrassegnare il connettore attraverso il quale è stato ottenuto questo minimo
(eliminare le altre marcature precedenti) se tutti i successori attraverso quel
connettore sono etichettati come risolti, allora etichettare come risolto attuale
se la corrente è stata etichettata come risolta o se il suo costo è stato modificato

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


poi propagano queste informazioni all'inizio della rete e S🡨S+{correnti antenati}

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica 63
Se esiste un grafo di soluzione dal nodo iniziale all'insieme dei nodi terminali e
se è soddisfatto che h(n) ≤ h*(n), ∀n (euristica ammissibile)

YO* finisce per fornire un grafico di soluzioni ottimali.

Una condizione importante, come nel caso dello spazio degli stati, è la condizione di
monotonicità della funzione euristica h in una struttura AND.

Condizione di monotonicità della funzione euristica h in una struttura AND:


Per qualsiasi k-connettore, nella rete implicita YO, diretto dal nodo n a i
successori {n1 , ..., nk } si verifica che
h(n) ≤ c(n, {n1 , ..., nk }) + h(n1 ) + ... + h(nk )
dove c(n, {n1 , ..., nk }) è il costo del k-connettore.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica
Partendo dalla condizione di monotonicità della funzione euristica h in una
struttura E possiamo dimostrarlo:
• Se per qualsiasi nodo terminale il valore di h è 0, allora la condizione di
monotonicità di h implica l'ammissibilità di h (cioè, h(n)≤h*(n), ∀n).
• Pertanto, un metodo YO* guidato da una funzione euristica monotona h troverà
la soluzione ottimale.
• Quando la condizione di monotonicità di h è verificata, le revisioni dei costi
effettuate in YO* possono consistere solo in incrementi. Pertanto, possiamo
semplificare la parte del metodo che consiste nella propagazione all'indietro
d e l l e nuove informazioni generate. La semplificazione consisterà nell'includere
in S solo i predecessori del nodo Actual tali che Actual sia uno dei suoi
successori attraverso connettori marcati.
se actual è stato etichettato come risolto o il suo costo è stato modificato, allora
propaga questa informazione all'inizio della rete e �🡨������������ di actual}

se actual è stato etichettato come risolto o il suo costo è stato modificato, allora
propaga questa informazione all'inizio della rete e �🡨������� i predecessori di
actual tali che actual è uno dei suoi successori tramite connettori etichettati}
Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024
Strategie di rappresentazione per riduzione
Ricerca euristica 65
Grafico YO con euristica non
monotonica.
28996687X
A

X 677 9 7 1 BC 8 8 8 5 5 5 8

X12 3533
D X F 14
E
522X
O 0X H G 3
K

11 X
I

J 0X

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Soluzione di rete: costo 7

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Strategie di rappresentazione per riduzione
Ricerca euristica
Tre commenti importanti:
• Metodo YO* su reti YO in cui non ci sono cicli (permette di eseguire la fase di
propagazione dell'informazione a ritroso e di garantire la terminazione del
metodo). Possibilità di modificare il metodo YO* per lavorare con reti YO
contenenti cicli.
• Definizione del costo di una rete di soluzioni. Si presuppone che un
sottoproblema possa essere risolto due (o più) volte, il che implica il conteggio del
costo della sua risoluzione più volte.
o Problema che coinvolge qualche processo ''fisico'' (le soluzioni fornite da YO*
sono ottimali).
o Se il processo di risoluzione non è tale, forse i costi non dovrebbero essere
conteggiati più di una volta (le soluzioni potrebbero non essere ottimali).
• Si è ipotizzato che ogni volta che un problema (un nodo) viene ridotto a una
congiunzione di sottoproblemi, questi possono essere risolti tutti in modo
indipendente.
o La soluzione di un sottoproblema non ha alcun effetto sulla soluzione di un altro
sottoproblema.
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
altro. In molti problemi questa ipotesi non è giustificata (il formalismo dei grafi
non è adeguato) 🡺 problemi di pianificazione.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


67
FUNZIONI EURISTICHE

Analizziamo alcune euristiche per il problema degli 8 puzzle, per a v e r e informazioni


sulla natura delle euristiche in generale.

1
5 5
8 1 8

Un tipico caso di puzzle a 8. La soluzione ha 26 passi

Esiste una lunga storia di euristiche per il puzzle a 8, il puzzle a 15, il puzzle a
24, ecc. Le due candidate comunemente utilizzate sono:

• h1 = numero di pezzi fuori posto.


• h2 = somma delle distanze dei pezzi dalle loro posizioni sul bersaglio

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


(distanza di Manhattan).

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Funzioni euristiche

L'EFFETTO DELL'ACCURATEZZA EURISTICA SULLE PRESTAZIONI


Un modo per caratterizzare la qualità di un'euristica è il fattore di ramificazione
effettivo b*.
Se il numero totale di nodi generati da un metodo per un problema è N e la
profondità della soluzione è d, il fattore di ramificazione efficace b* è il fattore
di ramificazione che un albero uniforme di profondità d dovrebbe avere per
contenere N+1 nodi.
N+1=1+b*+(b*)2+…+(b*)d

8-puzzle 🡪 costo medio delle soluzioni (prob. generato casualmente): circa 22 passi
Fattore di ramificazione medio: (4+3+3+3+3+3+3+2+2+2+2)/9=2.67
Ricerca esaustiva: 2,6722 ≈ 2,4×109 stati Verifica degli stati
ripetuti: 9!/2=181.440 stati
Puzzle da 15 🡪
Fattore di ramificazione medio: (4+4+4+4+4+3+3+3+3+3+3+3+2+2+2+2)/16=3
Controllo di stati ripetuti: 16!/2=10.461.394.944.000 ≈ 1013 stati
Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-
Funzioni euristiche
L'effetto dell'accuratezza euristica sulle prestazioni 69
Trovare una buona funzione euristica che riduca questi valori.

Per testare le funzioni euristiche h1 e h2 , abbiamo generato 1200 problemi casuali


a 8 puzzle con lunghezza delle soluzioni da 2 a 24 (100 per ogni numero pari).

Li risolviamo con: Costo della ricerca Fattore di ramificazione


effettivo
d BPI A*(h )1 A*(h )2 BPI A*(h )1 A*(h )2
• ricerca iterativa depth-first
10 2,45 1,79 1,79
(BPI) e con la ricerca A*
2,87 1,48 1,45
utilizzando sia h1
680 2,73 1,34 1,30
come h2 .
8 6.384 25 2,80 1,33 1,24
10 47.127 93 2,79 1,38 1,22
Una buona euristica
3.644.035 227 2,78 1,42 1,24
dovrebbe avere b* il più
-- 539 113 -- 1,44 1,23
vicino possibile a 1: ciò
-- 1.301 211 -- 1,45 1,25
consentirebbe di risolvere
-- 3.056 363 -- 1,46 1,26
problemi complessi in tempi
-- 7.276 676 -- 1,47 1,27
ragionevoli. -- 18.094 1.219 -- 1,48 1,28
-- 39.135 1.641 -- 1,48 1,26

Laurea in Ingegneria Informatica Sistemi intelligenti Anno accademico 2023-2024


Funzioni euristiche
L'effetto dell'accuratezza euristica sulle prestazioni 70
I risultati suggeriscono che A*(h2 ) è migliore di A*(h1 ) utilizzando la ricerca
iterativa depth-first (BPI). Possiamo dedurre che h2 è migliore di h1 .

Ci si potrebbe chiedere se h2 sia sempre migliore di h1 .


La risposta è sì.

Dalle definizioni delle due euristiche, h1 e h2 , è facile dimostrare che per qualsiasi
nodo n, h2 (n) ≥ h1 (n), ∀n

h2 domina h1

Il dominio si traduce direttamente in efficienza:


A* con h2 non espanderà mai più nodi di A* con h1 .

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Funzioni euristiche
71
PROGETTARE FUNZIONI EURISTICHE AMMISSIBILI
h1 e h2 sono euristiche abbastanza buone per il puzzle a 8 e che h2 è migliore.

Come è nato h2 . È possibile che un computer abbia inventato un'euristica di questo


tipo?

• Le funzioni h1 , h2 sono stime della lunghezza del percorso rimanente per l'n-
puzzle, ma sono anche lunghezze di percorso esatte per versioni
semplificate.

Se dovessimo rilassare le regole dell'n-puzzle in modo che una pedina possa


muoversi ovunque, invece che solo nella casella vuota adiacente, allora h1 darebbe
il numero esatto di passi nella soluzione più breve.
Allo stesso modo, se una pedina potesse muoversi in un quadrato in qualsiasi
direzione, anche in un quadrato occupato, allora h2 fornirebbe il numero esatto di

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


passi nella soluzione più breve.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Funzioni euristiche
Progettazione di funzioni euristiche ammissibili
Un problema con meno vincoli sulle azioni è detto problema rilassato. Il costo di
una soluzione ottimale in un problema rilassato è un'euristica ammissibile per il
problema originale.
L'euristica è ammissibile perché la soluzione ottimale nel problema originale è,
per definizione, anche una soluzione nel problema rilassato e quindi deve
essere almeno altrettanto costosa della soluzione ottimale nel problema
rilassato.

Problema scritto in linguaggio formale 🡺 costruire problemi automatici rilassati.


Puzzle a 8:
• Un contatore può spostarsi dalla casella A alla casella B se
• A è adiacente orizzontalmente o verticalmente a B e B è quello vuoto.
Possiamo generare diversi problemi rilassati eliminando una o entrambe le condizioni:
(a) Un pezzo può spostarsi dalla casella A alla casella B se A è adiacente a B.
(b) Un contatore può spostarsi dal quadrato A al quadrato B.
con (a) otteniamo h2 con (b) otteniamo h1

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Se altrimenti definito 🡪 nuova euristica.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-


Funzioni euristiche
Progettazione di funzioni euristiche ammissibili

Un problema della generazione di nuove funzioni euristiche è che spesso non si


riesce a trovare un'euristica "chiaramente migliore".

Se abbiamo a disposizione un insieme di euristiche ammissibili h1 , ... , hm per un


problema, e nessuna di esse domina le altre, quale dovremmo scegliere?

Non dobbiamo fare una scelta

h(n) = max { h1 (n), ..., hm (n) }, ∀n

Poiché le euristiche componenti sono ammissibili, h è ammissibile (è anche facile


dimostrare che h è coerente).

Inoltre, h domina tutte le euristiche che lo compongono.

Laurea in Ingegneria Sistemi intelligenti Anno accademico 2023-

You might also like