Ricerca non informata

Размер: px
Начинать показ со страницы:

Download "Ricerca non informata"

Транскрипт

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 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* 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 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

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 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) 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 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. 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

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.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

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 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

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

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

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 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 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 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. 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

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: 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

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

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)

Подробнее