Ricerca non informata
|
|
|
- Cipriano Donati
- 7 anni fa
- Просмотров:
Транскрипт
1 Ricerca non informata Corso di Intelligenza Artificiale, a.a Prof. Francesco Trovò 05/03/2018
2 Ricerca non informata Definizione del problema della ricerca Architettura necessaria Blind search techniques
3 Agente risolutore di problemi Agente basato su obbiettivi hanno una valutazione interna del fatto che l obbiettivo sia stato raggiunto Rappresentazione atomica dello stato Dobbiamo generare una sequenza di azioni atomiche per raggiungere un dato stato obbiettivo A priori dobbiamo dare: Formulazione obbiettivo: determinare la situazione corrente e quella in cui l obbiettivo è raggiunto Formulazione problema: decisione obbiettivo, azioni e stati da considerare
4 Esempio: raggiungere Bucarest partendo da Arad
5 Proprietà dell ambiente Completamente osservabile / parzialmente osservabile Agente singolo / multiagente Deterministico / stocastico Episodico / sequenziale Statico / dinamico / semidinamico Discreto / continuo Noto / ignoto
6 Formulazione problema Soluzione: elenco di azioni che specificano cosa compiere in quale stato (banale in questo caso, non in generale) Ricerca: analisi di sequenze di azioni per trovare una soluzione Esecuzione: attuazione della soluzione trovata precedentemente Formulazione del problema: Insieme degli stati Stato iniziale Azioni ammissibili (in ogni stato) Modello di transizione (grafo) Test obbiettivo Costo di passo Soluzione ottima: soluzione con costo di cammino minima
7 Esempio viaggio Formulazione del problema: Insieme degli stati: città raggiungibili Stato iniziale: Arad Azioni ammissibili (in ogni stato): determinate dai collegamenti Modello di transizione (grafo): deterministico, il nuovo stato corrisponde alla città di arrivo Test obbiettivo: positivo solo a Bucharest Costo di passo: distanza tra due città
8 Cercare soluzioni Formalizziamo il processo di ricerca con un albero di ricerca: Nodi stati nello spazio degli stati del problema Archi azioni Ad ogni passo verificheremo che il nodo raggiunto non sia un nodo obbiettivo In caso negativo dobbiamo espandere lo stato corrente per comprendere nuovi nodi stato I nuovi nodi saranno figli degli stati correntemente considerati
9 Iniziando da Arad Arad Frontiera Sibiu Timisoara Zerind Arad Fagaras Oradea Rimnicu Vilcea Attenzione: la sequenza Arad, Sibiu, Arad, Sibiu,... continua all infinito albero di profondità infinita Ricerca: scelta di quale degli stati della frontiera espandere ulteriormente
10 Evitare i cicli Il processo di espansione viene iterato fino a che non si raggiunge uno stato obbiettivo Affinchè il processo sia efficace dobbiamo definire una strategia di ricerca Con questa rappresentazione potremmo anche espandere lo stesso nodo più volte Mantenendo un insieme che contiene i nodi esplorati posso ovviare al problema (ricerca su grafo), dove la frontiera è quell insieme di nodi che divide i nodi esplorati da quelli inesplorari
11 Dall idea all implementazione Una volta capito che cosa dobbiamo fare per risolvere il problema dovremo operativamente scrivere un programma che lo risolva Decidere le strutture dati (per i nodi, la frontiera) Valutare se l algoritmo è valido per il problema affrontato Nel caso medio Nel caso pessimo In termini temporali In termini spaziali
12 Stuttura dati nodo Ogni nodo deve avere specificato: Lo stato corrispondente Un puntatore al nodo padre (che l ha generato) Un azione (applicata al padre per ottenere il nodo) Un costo di cammino (dallo stato iniziale al nodo corrente) Esempio: Fagaras - Fagaras - Sibiu - Vai a Fagaras = 239 Così trovata una soluzione possiamo trovare la sequenza di azioni per ragggiungerla
13 Rappresentazione della frontiera Nella frontiera devo poter: Controllare se è vuota (la ricerca finisce) Estrarre un elemento (FIFO, LIFO, priorità) Inserire un elemento La scelta di appropriate strutture dati può rendere la ricerca più o meno efficiente (e.g., tabella hash per controllare facilemente gli stati ripetuti) Fondamentale che si definisca una forma canonica dei dati che renda facile il controllo dell uguaglianza tra nodi
14 Valutazione dell algoritmo Per determinare se un algoritmo è valido per risolvere un problema dovremo verificare la sua: Completezza: garantisce di trovare una soluzione Ottimalità: la soluzione trovata è ottima (rispetto al costo di cammino) Complessità temporale: numero di passi utilizzati per arrivare alla soluzione Complessità spaziale: quantità di dati utilizzati durante l esecuzione La complessità solitamente è espressa in termini di dimensioni del grafo che spesso è infinito, quindi valutiamo: b branching factor d profondità (depth) m lunghezza massima dei cammini
15 Efficienza di un algoritmo di ricerca A seconda del problema possiamo considerare come misura di efficienza dell algoritmo di ricerca: Costo della ricerca: costo temporale per trovare una soluzione più potenzialmente un costo relativo alla memoria utilizzata Costo totale: costo temporale della ricerca e costo del cammino corrispondente alla soluzione trovata Non è detto che due algoritmi siano facilmente confrontabili (non esiste una conversione km e sec nel caso del viaggio)
16 Blind search Se non abbiamo informazioni sul problema dobbiamo utilizzare una delle tecniche di ricerca non informata Non ho altre informazioni riguardo i nodi se non quella data dalla definizione del problema Ricerca in ampiezza Ricerca a costo uniforme Ricerca in profondità Raffinamenti Più avanti vedremo anche algoritmi di ricerca informata (o euristica)
17 Ricerca in ampiezza (breadth first)
18 Ricerca in ampiezza (breadth first) Idea: non espando un nodo prima che quelli sul livello superiore dell albero siano già tutti stati espansi Implementabile facilmente con una lista FIFO sulla frontiera Il test obbiettivo è applicato quando il nodo viene generato e non quando viene espanso (risparmio un livello di espansione) Sto implicitamente cercando dei cammini il più corti possibili (in termine di azioni)
19 Analisi ricerca in ampiezza Completezza: se il branch factor è finito arrivo alla soluzione meno profonda (se esiste) Ottimalità: non necessariamente (sì se le azioni hanno tutte lo stesso costo) Complessità temporale: b + b 2 + b 3 = O(b d ) Complessità spaziale: O(b d 1 ) nodi esplorati, O(b d ) nodi inesplorati con b = 10, 1 ns per il controllo di un nodo, 1 kbyte per nodo Profondità Nodi Tempo Memoria ms 10.6 MB s 1 GB min 103 GB h 10 TB d 1 PB
20 Ricerca a costo uniforme
21 Ricerca a costo uniforme Se i costi sono tutti uguali la ricerca in ampiezza e a costo uniforme coincidono In questo caso il test obbiettivo viene attuato quando è selezionato per l espansione Infatti: se il nodo viene aggiunto più volte alla frontiera viene scelto il cammino a costo minimo
22 Analisi ricerca a costo uniforme Completezza: se il branch factor è finito e ogni passo ha costo almeno ε, arrivo alla soluzione Ottimalità: vado a selezionare la soluzione con costo di cammino minore (se ne esistesse un altro l avrei espanso prima) Definiamo C costo del cammino ottimo e ε costo minimo di cammino C 1+ Complessità temporale: O(b ε ) C 1+ Complessità spaziale: O(b ε ) Idea: esploro prima i nodi con costo piccolo e poi quelli con costo grande
23 Ricerca in profondità
24 Ricerca in profondità (su albero)
25 Ricerca in profondità Anche in questo caso possiamo implementare l algoritmo di ricerca come una coda LIFO L implementazione più diretta utilizza la ricorsione sui figli per generare la soluzione (a patto di mettere un controllo sulla profondità massima) Se utilizziamo una ricerca su grafo arriviamo ad espandere l intero spazio, con la ricerca su albero potrebbe rimanere in un loop
26 Analisi della ricerca in profondità Completezza: su grafo è completa, su albero no Ottimalità: non ottimale Definiamo m profondità massima di un cammino (potenzialmente molto più profonda di quella della soluzione ottima) Complessità temporale: O(b m ) Complessità spaziale: O bm Backtracking: espando un solo nodo alla volta invece che tutti e segno quali azioni ho già fatto Richiede una memoria di O m nodi
27 Ricerca a profondità limitata Nel caso in cui m sia infinito la ricerca in profondità fallisce Idea: limitare la profondità massima l Potremmo impostare una profondità troppo piccola e introdurre dell incompletezza nell algoritmo Se conosco il diametro del problema posso impostare quello come profondità massima Spesso non ho informazioni relative al diametro finchè non risolvo il problema
28 Ricerca ad approfondimento iterativo Idea: provo a trovare la soluzione con profondità massima l = 1, se non la trovo provo con l = 2, se non la trovo provo con l = 3, etc. Completezza: come la ricerca in ampiezza Ottimalità: trova la soluzione con profondità minima Complessità temporale: db + d 1 b b d = O(b d ) poichè passo sugli stessi nodi più volti Complessità spaziale: O bd come la ricerca in profondità
29 Ricerca bidirezionale Riduzione della ricerca in ampiezza a O(b d 2) Problema: richiede di conoscere esplicitamente lo stato obbiettivo
Algoritmi di Ricerca
Algoritmi di Ricerca Contenuto Algoritmi non informati Nessuna conoscenza sul problema in esame Algoritmi euristici Sfruttano conoscenze specifiche sul problema Giochi Quando la ricerca è ostacolata da
Intelligenza Artificiale. Ricerca euristica Algoritmo A*
Intelligenza Artificiale Ricerca euristica Algoritmo A* Marco Piastra Metodi di ricerca - Ricerca non informata Ricerca nello spazio degli stati Definizione di un grafo come spazio degli stati I nodi rappresentano
Intelligenza Artificiale
Intelligenza Artificiale 17 Marzo 2005 Nome e Cognome: Matricola: ESERCIZIO N 1 Ricerca Cieca 5 punti 1.A) Elencare in modo ordinato i nodi (dell'albero sotto) che vengono scelti per l'espansione dalle
METODI DELLA RICERCA OPERATIVA
Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco ([email protected]) i i Dott.ing. Maria Ilaria Lunesu ([email protected])
3.4 Metodo di Branch and Bound
3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land
Il metodo dei Piani di Taglio (Cutting Planes Method)
Il metodo dei Piani di Taglio (Cutting Planes Method) E un metodo di soluzione dei problemi (IP) di tipo generale. L idea di base: Se la soluzione di (RL) non è intera allora la soluzione ottima intera
Visite in Grafi BFS e DFS
Visite in Grafi BFS e DFS Visita di un Grafo Obiettivo: Visitare una sola volta tutti i nodi del grafo. Es.: visitare un porzione del grafo del Web Difficoltà: Presenza di cicli: Marcare i nodi visitati
Intelligenza Artificiale. Lezione 3. Intelligenza Artificiale Daniele Nardi, 2004/05 Lezione 3 0
Intelligenza Artificiale ezione 3 Intelligenza Artificiale Daniele Nardi, 2004/05 ezione 3 0 isoluzione automatica di problemi Prolem solving sommario(ussell&norvig Cap. 3) Agenti risolutori di problemi
Algoritmo di Branch & Bound
Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Algoritmo di Branch & Bound Docente: Renato Bruni [email protected] Corso di: Ottimizzazione Combinatoria
5.1 Metodo Branch and Bound
5. Metodo Branch and Bound Si consideri il problema min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva)
UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014
A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità
Intelligenza Artificiale. Problem Solving -Agenti risolutori di problemi
Intelligenza Artificiale Problem Solving -Agenti risolutori di problemi Ragionare per cercare soluzioni Un problema viene risolto ricercandone la soluzione in un ampio spazio di possibili soluzioni. La
INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD
UNIVERSITA' DEGLI STUDI DI BERGAMO Dipartimento di Ingegneria INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD FONDAMENTI DI RETI E TELECOMUNICAZIONE A.A. 2012/13 - II Semestre Esercizio 1 Sia dato il grafo G=
UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013
A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N
12.1 IL PROBLEMA DEL CAMMINO MINIMO: L ALGORITMO DI DIJKSTRA
Problemi strutturati. IL PROBLEMA DEL CAMMINO MINIMO: L ALGORITMO DI DIJKSTRA Esercizio.. Dato il grafo di Figura.., trovare il peso dei cammini minimi dal nodo a tutti gli altri nodi del grafo (il peso
Parte III: Algoritmo di Branch-and-Bound
Parte III: Algoritmo di Branch-and-Bound Divide et Impera Sia z * max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore
Esercizi d'esame su strategie di ricerca, CSP e Giochi. Compiti d'esame 2017 e 2018
Esercizi d'esame su strategie di ricerca, CSP e Giochi Compiti d'esame 2017 e 2018 1 Giugno 2018 Strategia a costo uniforme Si consideri il seguente grafo in cui gli archi sono annotati col costo e si
Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.
Il Branch & Bound Il metodo Branch & Bound è una tecnica che permette di risolvere all ottimo un generico problema di Programmazione Lineare Intera. Tale metodo si basa su due concetti cardine: quello
Possibile applicazione
p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile
Grafi: definizioni e visite
Grafi: definizioni e visite Grafi (non orientati) Grafo (non orientato): G = (V, E) V = nodi (o vertici) E = archi fra coppie di nodi distinti. Modella relazioni fra coppie di oggetti. Parametri della
Definizione FONDAMENTI DI INFORMATICA. Esempio di algoritmo: determinare il maggiore di due numeri interi x, y. Proprietà degli algoritmi
Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 201/2017 Docente: Gian Luca Marcialis
Cammini minimi fra tutte le coppie
Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)
