politecnico di torino intelligenza artificiale 2012 esempio: visita in profondità carlo prone...
TRANSCRIPT
![Page 1: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/1.jpg)
Politecnico di TorinoINTELLIGENZA ARTIFICIALE 2012
Esempio: visita in profondità
Carlo [email protected]
![Page 2: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/2.jpg)
Problema: da Arad a Bucarest
![Page 3: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/3.jpg)
Problema• Trovare un percorso dalla
città di Arad alla città di Bucarest sul grafo appena visto
Metodo risolutivo• Visita in profondità del grafo
![Page 4: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/4.jpg)
Visita in profondità – in breve
• Si visita il primo nodo di una lista di OPEN• Tutti i suoi figli non ancora etichettati vengono
segnati OPEN e inseriti IN TESTA ALLA LISTA con ordine arbitrario
• Il nodo diventa CLOSED• Primo passo: il nodo di partenza (radice
dell’albero) in OPEN
![Page 5: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/5.jpg)
Visita in profondità – in breve
• Terminazione:– nodo goal raggiunto (successo)– OPEN vuota (fallimento)
• Possibile introdurre un limite di profondità:se il nodo attuale ha una distanza maggiore o uguale a un limite fissato e non è soluzione NON proseguo l’esplorazione sui suoi discendenti, ma altrove (BACKTRACKING)– non si hanno garanzie di trovare soluzione, se esiste– non adottato in questo esempio
![Page 6: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/6.jpg)
Visita in profondità – in breve
• Stesso procedimento di una visita in ampiezza ma utilizzando una STACK (LIFO) piuttosto che una QUEUE (FIFO) per i nodi OPEN
• Si scende sull’albero piuttosto che esplorare esaustivamente un livello
• Inserimento dei nodi figli in OPEN con ordine ARBITRARIO– approccio greedy: figli con costo minore
![Page 7: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/7.jpg)
Step 0
• OPEN:– Arad
Arad0
Zerind75
Sibiu140
Timisoara118
• CLOSED:(empty)
![Page 8: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/8.jpg)
Step 1
• OPEN:– Zerind– Timisoara– Sibiu
Arad0
Zerind75
Sibiu140
Timisoara118
• CLOSED:– Arad
![Page 9: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/9.jpg)
Step 2
• OPEN:– Oradea– Timisoara– Sibiu
Zerind
Oradea
• CLOSED:– Arad– Zerind
![Page 10: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/10.jpg)
Step 3
ATTENZIONE:nodo Sibiu già presente in OPEN, nessun nodo
successore da etichettare BACKTRACK
Oradea
Sibiu
![Page 11: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/11.jpg)
Step 3
• OPEN:– Timisoara– Sibiu
Oradea
Sibiu
• CLOSED:– Arad– Zerind– Oradea
![Page 12: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/12.jpg)
Step 4
• OPEN:– Lugoj– Sibiu
Timisoara
Lugoj
• CLOSED:– Arad– Zerind– Oradea– Timisoara
![Page 13: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/13.jpg)
Step 5
• OPEN:– Mehadia– Sibiu
Lugoj
Mehadia
• CLOSED:– Arad– Zerind– Oradea– Timisoara– Lugoj
![Page 14: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/14.jpg)
Step 6
• OPEN:– Dobreta– Sibiu
Mehadia
Dobreta
• CLOSED:– Arad – Mehadia– Zerind– Oradea– Timisoara– Lugoj
![Page 15: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/15.jpg)
Step 7
• OPEN:– Craiova– Sibiu
Dobreta
Craiova
• CLOSED:– Arad – Mehadia– Zerind – Dobreta– Oradea– Timisoara– Lugoj
![Page 16: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/16.jpg)
Step 8
• OPEN:– Pitesti– Rimnicu Vilcea– Sibiu
Craiova
Pitesti Rimnicu Vilcea
• CLOSED:– Arad – Mehadia– Zerind – Dobreta– Oradea– Craiova– Timisoara– Lugoj
![Page 17: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/17.jpg)
Step 9
• OPEN:– Bucharest– Rimnicu Vilcea– Sibiu
Pitesti
Bucharest Rimnicu Vilcea
• CLOSED:– Arad – Mehadia– Zerind – Dobreta– Oradea– Craiova– Timisoara– Lugoj – Pitesti
![Page 18: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/18.jpg)
Albero finaleArad
0
Zerind75
Oradea71
Timisoara118
Lugoj111
Mehadia70
Dobreta75
Craiova120
Pitesti138
Bucharest101
Rimnicu Vilcea
146
Sibiu140
![Page 19: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/19.jpg)
Percorso finaleArad
0
Zerind75
Oradea71
Timisoara118
Lugoj111
Mehadia70
Dobreta75
Craiova120
Pitesti138
Bucharest101
Rimnicu Vilcea
146
Sibiu140
![Page 20: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/20.jpg)
Soluzione trovata NON ottima
Costo percorso finale• Arad 0• Timisoara 118• Lugoj 111• Mehadia 70• Dobreta 75• Craiova 120• Pitesti 138• Bucharest 101
TOTALE 733
Costo percorso ottimo• Arad 0• Sibiu 140• Rimnicu Vilcea 80• Pitesti 97• Bucharest 101
TOTALE 418
![Page 21: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/21.jpg)
Considerazioni finali
• Trovata una soluzione (SUCCESSO)• Non necessariamente percorso migliore (soluzione
NON OTTIMA)• Implementazione diversa avrebbe potuto dare:– diversa ottimalità della soluzione– un altro albero esplorato – tempo d’esecuzione differente
ALGORITMO NON DETERMINISTICO(ex: no approccio greedy ma ordine casuale, o alfabetico sul nome)
![Page 22: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/22.jpg)
Euristiche
• È possibile introdurre delle valutazioni di tipo euristico con l’intento di migliorare le prestazioni dell’algoritmo
• Valutazione euristica dei nodi:– espandere il figlio "più promettente" anziché uno
a caso– abbandonare un nodo senza esplorare tutta la sua
discendenza e ripartire da un predecessore su un altro figlio (leap-frogging)
![Page 23: Politecnico di Torino INTELLIGENZA ARTIFICIALE 2012 Esempio: visita in profondità Carlo Prone carlo.prone@studenti.polito.it](https://reader035.vdocuments.mx/reader035/viewer/2022070313/5542eb75497959361e8dec5b/html5/thumbnails/23.jpg)
Euristiche
• Possibili criteri euristici per valutare se un nodo è subversive (ovvero non porterà mai a una soluzione e non ha senso esplorarne la discendenza)– distanza finora compiuta maggiore del risultato
che mi aspetto– direzione errata (so che devo andare verso sud, il
nodo è a nord, necessita di informazioni aggiuntive)