Algoritmi di ricerca
|
|
- Massimiliano Lanza
- 6 anni fa
- Visualizzazioni
Transcript
1 Intelligenza Artificiale Elementi Università degli Studi di Milano Bicocca Algoritmi di ricerca Matteo Palmonari
2 Outline 1. Problemi come spazio delle soluzioni Alcuni esempi di problemi Stati e transizioni Rappresentazione dello spazio degli stati con grafi Alberi di ricerca 2. Algoritmo generale di ricerca e ricerca non informata Algoritmo generale di ricerca Algoritmi di ricerca non informata: deep-first, breat-first, iterative deepening (IDA). Accenni a problemi di complessità 3. Euristiche e ricerca informata Il concetto di euristica Ricerca best-first: ricerca golosa e A* IDA*
3 Risolvere problemi... PROBLEM SOLVING Capacità di risolvere problemi Un fattore deve attraversare un fiume portando lupo, capra e cavolo con una barca a due posti. Non possono stare soli lupo con capra o capra con cavoli. Quale sequenza per trasbordare tutti sani e salvi? conosenza simbolica incerta conosenza simbolica apprendimento abilità linguistica
4 I Problemi come spazio delle soluzioni
5 Outline 1. Problemi come spazio delle soluzioni Alcuni esempi di problemi Stati e transizioni Rappresentazione dello spazio degli stati con grafi Alberi di ricerca 2. Algoritmo generale di ricerca e ricerca non informata Algoritmo generale di ricerca Algoritmi di ricerca non informata: deep-first, breat-first, iterative deepening (IDA). Accenni a problemi di complessità 3. Euristiche e ricerca informata Il concetto di euristica Ricerca best-first: ricerca golosa e A* IDA*
6 Esempio di soluzione di problemi (1) Un fattore deve attraversare un fiume portando lupo, capra e cavolo con una barca a due posti. Non possono stare soli lupo con capra o capra con cavoli. Quale sequenza per trasbordare tutti sani e salvi? [Bechet de Merizac, Lione 1613] F L Cp Cv F L Cp Cv stato stato Transizione tra i due stati in seguito ad un azione Rappresentazione: specifica ciò che è vero di una situazione e omette ciò che non è vero (ad esempio, non c è un ponte più avanti sul fiume). Astrarre caratteristiche rilevanti
7 Esempio di soluzione di problemi (2) Un contenitore parzialmente riempito di acqua contiene un litro di una soluzione alcohol-acqua al 90%. Quanta acqua deve essere aggiunta per diluire la soluzione all 80% di alcohol? (1) A 1 + da = A 2 (2) W 1 + dw = W 2 (3) L 1 + dl = L 2 (4) A 1 + W 1 = L 1 (5) A 2 + W 2 = L 2 (6) da + d W = dl (7) da = 0 (8) A 1 = 0.9 * L 1 (9) A 2 = 0.8 * L 2 (10) L 1 = 1 Trovare dw: (a): (10) in (8) A 1 = 0.9 (b): (a) + (7) in (1) A 2 = 0.9 (c): (b) in (9) L 2 = (d): (c) e (10) in (3) dl = - 1 (e): (d) e (7) in (6) dw = - 1 Rappresentazione: solo (8), (9) e (10) sono esplicite, le altre implicite (leggi di conservazione: conoscenza di senso comune). Ricerca: ci sono altre 21 sequenze di soluzione (da 5 a 7 passi). Non determinismo: gli operatori (di trasformazione delle equazioni) dicono cosa si può fare, non cosa si deve fare e in che ordine
8 Cammino minimo Qual è la strada più breve per raggiungere Bucarest partendo da Oradea?...a partire da X (Oradea) : dove mi trovo?...per raggiungere Y (Bucarest) : dove devo andare? stato transizione stato
9 Tipi di problemi principali Di cosa sono a conoscenza? Ho conoscenza del mio stato interno? Ho conoscenza dell effetto delle mie azioni? Problema a stati singoli: Ho percezione dello stato corrente e di quello prodotto da ogni singola azione Ogni azione da uno stato a un altro Problemi a stato multiplo: non ho percezione (certa) dello stato in cui mi trovo. Devo ragionare sull insieme di stati a cui ogni azione potrebbe condurmi. Ogni azione da un insieme di stati a un insieme di stati non so con precisione che stato produce ogni azione. Ogni azione da uno stato a un insieme di stati Transizioni su insiemi di stati Problemi di contingenza: Capacità di rilevamento che dipende dalla fase di esecuzione. Ambieti dinamici
10 Problemi ben definiti Problema un insieme di informazioni Soluzione = ricerca della soluzione + esecuzione A noi interessa soprattutto la ricerca di una soluzione: Input: Problema Output: Soluzione Questo output dovrà essere tale da poter essere passato come input nell eventuale fase di esecuzione. La definizione del problema è fondamentale perchè la sua soluzione possa essere cercata in modo algoritmico! Astrazione: estrarre le caratteristiche rilevanti
11 Problemi a stato singolo Formulazione: individuare gli aspetti rilevanti e il grado di dettaglio specificare lo spazio degli stati stato iniziale stato/i finale/i (esplicito o con test obiettivo) azioni (transizioni/operatori/mosse) che conducono da uno stato all altro specificare il costo di ogni azione Risoluzione: trovare un cammino dal costo ottimale dallo stato iniziale allo stato finale Un cammino è una sequenza di azioni una soluzione è un cammino dallo stato iniziale allo stato finale il costo cammino è la somma dei costi delle azioni componenti costo totale = costo della soluzione + costo della ricerca
12 Problemi a stato multiplo Nei problemi a stato multiplo: Il punto di partenza è un insieme di stati iniziali. Per ciascuna azione gli operatori specificano un insieme Y di stati raggiungibili a partire da un insieme X. Gli operatori sono funzioni da insiemi di stati ad altri insiemi. [Y è l unione degli stati raggiugibili da ciascuno stato elemento di X] Il cammino collega insiemi di stati In sostanza si tratta di raggiungere una soluzione in condizione di incertezza rispetto allo stato iniziale.
13 Problema a stato singolo FILETTO o TRIS (TIC-TAC-TOE) Spazio degli stati Vi sono: 9 prime mosse 8 risposte a ognuna di esse 7 risposte a ognuna di esse.. In totale: 9 x 8 x 7 x x 1 = 9! =
14 Gioco dell 8 E' più semplice muovere lo 'spazio vuoto'. Quattro possibili mosse: muovi lo spazio verso l'alto (UP) muovi lo spazio verso il basso (DOWN) muovi lo spazio a destra (RIGHT) muovi lo spazio a sinistra (LEFT) Esercizio: GIOCO DELL 8 in prolog (rappresentazione stati e azioni) UP LEFT DOWN RIGHT LEFT RIGHT UP DOWN LEFT RIGHT UP DOWN
15 Risolvere problemi... Rappresentazione del problema Definizione dello spazio degli stati ragionamento : sfruttare la rappresentazione per trovare la soluzione conosenza simbolica incerta conosenza simbolica apprendimento PROBLEM SOLVING Capacità di risolvere problemi abilità linguistica Costruzione della ricerca nello spazio degli stati: Albero di ricerca
16 Rappresentazione dello spazio degli stati con grafi Lo spazio del problema è rappresentato da un grafo. Uno spazio degli stati è una quadrupla < N, A, I, F >: N = insieme di nodi (non necessariamente finito) A = insieme di archi (connettono coppie di nodi) I N nodi iniziali (I Ø ) F N nodi finali (F Ø ) I nodi rappresentano gli stati, e gli archi le transizioni del problema Una sequenza di nodi [N 1,N 2,N 3...,N n ] in cui ogni N j -1,N j (1< j n) è un arco, è detto un cammino di lunghezza n. Se N 1 =N n il cammino è detto ciclo dato un nodo N i, ogni nodo N J, con j < i è detto antenato di N i ogni nodo N J, con I < j è detto discendente di N i il nodo N i -1 è detto genitore il nodo N i +1 è detto figlio Un nodo N i è detto radice se non ha genitori è detto foglia se non ha figli Il grafo è detto DAG (Directed Acyclic Graph) se non contiene cicli albero se ogni nodo ha al massimo un genitore Un cammino è detto cammino soluzione se il primo nodo è un nodo iniziale e l'ultimo è un nodo finale Obiettivo della ricerca è trovare attraverso lo spazio degli stati un cammino (o più cammini) soluzione
17 Esempi di grafi D A C B F G E H
18 Alberi di ricerca nello spazio degli stati Processo di ricerca come costruzione di un albero di ricerca n 0 p = 0 n 1 n 2 n 3 n 4 p = 1 n 11 n 12 n 13 n 14 Parametri di struttura: profondità p fattore di ramificazione r nell'esempio : p = 2, r = 4 Lo spazio di ricerca non è dato (memorizzato) in anticipo, ma si costruisce passo per passo mediante regole p = 2
19 I nodi degli alberi di ricerca I nodi sono strutture di dati. Un nodo n è una n-upla {s, ngen, o, p, c} s: stato a cui corrisponde il nodo ngen: nodo genitore o: operatore da cui ottenuto n p: profondità del nodo c: costo cammino da stato iniziale (Russel Norvig) I nodi non coincidono con gli stati! (Due nodi diversi possono corrispondere a medesimi stati a cui si è arrivati da differenti cammini) Gli stati costituiscono i nodi nello spazio degli stati. I nodi degli alberi sono strutture dati. Lo spazio degli stati non è l albero di ricerca (l albero parte sempre da un nodo: ha una radice). La collezione di nodi in attesa di essere espansi è detta frontiera o confine.
20 Rappresentazione dello spazio degli stati: esplicita/implicita Non sempre è possibile rappresentare esaustivamente uno spazio degli stati Rappresentazione esplicita: lo spazio degli stati è rappresentato in una struttura dati (che contiene tutti gli stati e le rispettive transizioni) Ex. Navigazione tra le città Rappresentazione implicita: gli stati sono rappresentati attraverso caratteristiche astratte, e metodi che, dato uno stato, consentono di ottenere uno stato raggiungibile attraverso una transizione Ex. Tris Quando si ha una rappresentazione esplicita la definizione dello spazio degli stati viene per lo più demandata alla costruzione dell albero di ricerca
21 Missionari e cannibali Esempio: missionari e cannibali Su una sponda di un fiume ci sono tre missionari: Rossi, Rossini e Rossetti, e tre cannibali: Bingo, Bongo e Bango. Si può attraversare il fiume con una barca che porta al più due persone. Se il numero di cannibali supera il numero di missionari presenti su una delle due sponde, i missionari vengono mangiati. Come usare la barca per trasbordare attraverso il fiume tutti i missionari e i cannibali senza rischi?
22 Problema di soddisfacimento di vincoli (CSP) Stati: valori di un insieme di variabili Stato iniziale: nessun assegnamento di valori alle variabili Stato finale: assegnamento di valori a tutte le variabili che soddisfa tutti i vincoli dati Operatore: assegna a una variabile un valore del suo dominio Profondità dell albero = numero n di variabili Metodi di soluzione: naif: generazione (assegnare valori a tutte le variabili) e prova (verificare se tutti i vincoli sono soddisfatti) in sequenza migliorativo: generazione e prova sono intrecciati (per ogni assegnamento di valori a una variabile verificare se soddisfa i vincoli) euristico: si possono applicare le ricerche iterative
23 Esempio: CSP: criptoaritmetica S E N D + M O R E = M O N E Y Assegnare una cifra (0-9) a ciascuna lettera in modo che: cifre distinte corrispondano a lettere distinte le somme dei numeri ottenuti sostituendo lettere con cifre rispettino i vincoli dell aritmetica VINCOLI
24 CSP: puzzle logico I coniugi Brillante hanno cinque figli, che tengono fede al loro nome. Alle età di 4,5,6,7 e 8 anni, Rosa e i suoi fratelli mostrano un buon talento ciascuno in un campo diverso da quello degli altri. Determinare l'età e il talento di ognuno dei figli, sapendo che: Uno di loro suona bene il piano Carla ha 4 anni, e non è la Brillante matematica Il mago del computer è di un anno più vecchio di Stefano Il violinista ha 7 anni Giovanna non è quella di 8 anni All'età di 5 anni, Roberto è più giovane del Brillante bravo nel nuoto. VINCOLI Domini: età: {4,5,6,7,8} figlio: {carla, giovanna, roberto,rosa, stefano} talento: {matematica,violino,nuoto,computer,piano) Soluzione: (4,carla,piano),(5,roberto,matematica), (6,giovanna,nuoto),(7,stefano,violino),(8,rosa,computer)
25 Un esempio noto di ricerca... n 0 n 1 n 2 n 3 n 4 SLD-Risoluzione n 11 n 12 n 13 n 14 Spazio degli stati: Quali sono gli stati e quali le transizioni? Stato iniziale e stato obiettivo? Costruzione dell albero?
26 II Algoritmo generale di ricerca e ricerca non informata
27 Outline 1. Problemi come spazio delle soluzioni Alcuni esempi di problemi Stati e transizioni Rappresentazione dello spazio degli stati con grafi Alberi di ricerca 2. Algoritmo generale di ricerca e ricerca non informata Algoritmo generale di ricerca Algoritmi di ricerca non informata: deep-first, breat-first, iterative deepening (IDA). Accenni a problemi di complessità 3. Euristiche e ricerca informata Il concetto di euristica Ricerca best-first: ricerca golosa e A* IDA*
28 Algoritmo generale di ricerca 1. L: lista di nodi da esaminare (inizialmente: i nodi iniziali) 2. Se L vuota, fallimento. Altrimenti, selezionare un nodo n da L. 3. Se n è un nodo finale, terminare restituendo il cammino dal nodo iniziale a n. 4. Altrimenti, cancellare n da L e aggiungere a L tutti i figli di n, ciascuno con il suo cammino dal nodo iniziale. Tornare al passo 2. LE STRATEGIE DI RICERCA DIFFERISCONO NELLA SCELTA DEL NODO DA ESPANDERE E NEL MODO IN CUI I NODI FIGLI SONO AGGIUNTI ALLA FRONTIERA
29 Strategie di ricerca E' garantito che la ricerca trovi una soluzione (se c è)? COMPLETEZZA E garantito che la soluzione trovata è ottimale? Soluzione = cammino dal costo minore OTTIMALITA Qual è la complessità in tempo e spazio della ricerca? EFFICIENZA Si possono sfruttare caratteristiche specifiche del problema per ridurre la complessità? Dipende dalla strategia di ricerca adottata Criteri di valutazione tra strategie
30 Ricerca informata e non informata Ricerca non informata: l algoritmo di ricerca procede adottando strategie generali indipendenti dal problema specifico. Quali nodi espando, in che modo? Deep First, Breadth First, Iterative Deepening Ricerca informata: si usano informazioni sul problema specifico per indirizzare la ricerca verso la soluzione. Funzioni euristiche: misura dell avvicinamento allo stato obiettivo. Best First, Greedy search, A*, IDA*, etc.
31 Risolvere problemi... Rappresentazione del problema Definizione dello spazio degli stati ragionamento : sfruttare la rappresentazione per trovare la soluzione conosenza simbolica incerta conosenza simbolica apprendimento PROBLEM SOLVING Capacità di risolvere problemi abilità linguistica Costruzione della ricerca nello spazio degli stati: Albero di ricerca
32 Ricerca Euristica... Rappresentazione del problema + ragionamento : sfruttare la rappresentazione per trovare la soluzione Funzione di valutazione euristica Definizione dello spazio degli stati Costruzione della ricerca nello spazio degli stati: Albero di ricerca
33 Ricerca non informata
34 Ricerca in profondità (depth-first) Lista L gestita come stack: [n 0 ] p = 0 m = 1 si seleziona il nodo di testa [n 1,n 2,n 3,n 4 ] p = 1 m = 4 si aggiungono i figli generati in testa [n 11,n 12,n 13,n 14,n 2,n 3,n 4 ] p = 2 m = 7 1 n 0 2 n 1 7 n 2 12 n 3 17 n 4 n 11 n 12 n 13 n M: numero di nodi da memorizzare M = p (r - 1) + 1 per r fissato: p (r - 1) + 1 = O (rp) Complessità in spazio lineare rispetto alla profondità T: numero di nodi da esaminare se nodo soluzione il più a sinistra: T = p p se nodo soluzione il più a destra: T = 1+ r + r + r ( r - 1) 2 3 p p in media, per p grande: T = 1+ r + r + r ( r -1) = O( r ) Complessità in tempo esponenziale rispetto alla profondità
35 Ricerca in ampiezza (breadth-first) Lista L gestita come coda: [n 0 ] p = 0 si seleziona il nodo di testa [n 1,n 2,n 3,n 4 ] p = 1 si aggiungono i figli generati in coda [n 2,n 3,n 4,n 11,n 12,n 13,n 14 ] p = 2 1 n 0 2 n 1 3 n 2 4 n 3 5 n n 11 n 12 n 13 n p p Numero massimo di nodi espansi: 1+ r + r + r ( r - 1) = O( r ) La frontiera è la parte più impegnativa. Complessità in spazio anch'essa esponenziale. (RICERCA IN AMPIEZZA: UN CASO SPEC IALE DI RICERCA A COSTO UNIFORME)
36 Consumo risorse per complessità r p Ipotesi: fattore ramificazione r = nodi/sec 100 bytes/nodo profondità p nodi tempo memoria msec 100 b ,1 sec 11 Kb sec 1Mb min 111 Mb ore 11 Gb giorni 1 Tb anni 111 Tb anni Tb
37 Depth-first vs. Breadth-first Ricerca in profondità e ricerca in ampiezza entrambe esponenziali in tempo, ma: complessità in spazio: lineare in profondità esponenziale in ampiezza ottenimento della soluzione: garantita in ampiezza non garantita in profondità ottimalità della soluzione: in ampiezza, la prima soluzione trovata è quella del cammino più corto (ottimale se costo cammino costante) in profondità non è garantita
38 Scelta della strategia PAROLE CROCIATE (una parola per volta) p = A G O A M O A V O.... p = A M O R.... p = 2 O 1. Qual è la profondità della soluzione? 2. Qual è il fattore di ramificazione? 3. Preferibile ricerca in profondità o in ampiezza? [preferibile in profondità perchè è fissata (4) e ogni nodo di profondità 4 è soluzione]
39 Riduzione dello spazio di ricerca Utilizzare caratteristiche peculiari del problema per ridurne la complessità riducendo lo spazio di ricerca. Si individuano classi di equivalenza degli stati per simmetria per astrazione.
40 FILETTO o TRIS Riduzione per simmetria in angolo al centro al centro di un lato 12 x 7! = anzicchè 9! =
41 Riduzione per astrazione Esempio: missionari e cannibali Su una sponda di un fiume ci sono tre missionari: Rossi, Rossini e Rossetti, e tre cannibali: Bingo, Bongo e Bango. Si può attraversare il fiume con una barca che porta al più due persone. Se il numero di cannibali supera il numero di missionari presenti su una delle due sponde, i missionari vengono mangiati. Come usare la barca per trasbordare attraverso il fiume tutti i missionari e i cannibali senza rischi? ASTRAZIONE: le identità individuali non contano Primo trasbordo: 5 operatori: 3M, 3C-0M,0C 1c, 1m, 2c, 2m, 2cm 3M,2C-0M,1C 3M,1C-0M,2C 2M,2C-1M,1C
42 Controllo di loop Se il grafo (dello spazio degli stati) contiene cicli occorre evitare loop per evitare di generare rami infiniti Si usano 2 liste: lista aperta: nodi da esaminare lista chiusa: nodi già esaminati Un nodo selezionato dalla lista aperta viene espanso solo se non compare già nella lista chiusa Ricerca a profondità limitata: Si fissa una soglia massima di profondità pt. Va bene quando è nota la profondità della soluzione ps. Altrimenti: se pt < ps: soluzione non trovata se pt > ps: tempo di esecuzione maggiore del necessario In generale: come scegliere pp?
43 Iterative deepening: : ID (1) Provare la ricerca a profondità limitata con tutti i pt finchè soluzione: si inizia con pt = 0, si finisce con pt = p: è ottimale! Simile a ricerca in ampiezza ma non memorizzo tutti i nodi che esploro: riduco la complessità nello spazio. Espando dei nodi più di una volta. Questo costo aggiuntivo è spesso preferibile alla memorizzazione di tutti i nodi. I nodi che vengono espansi più volte sono i nodi vicini alla radice In generale preferito quando grande spazio di ricerca e non si conosce la profondità della soluzione
44 Soglia di profondità s, incrementata ad ogni iterazione s, ricerca in profondità, ma comportamento in ampiezza; i nodi sono rigenerati e non memorizzati 0. s = 1 (soglia iniziale). 1. L: lista dei nodi iniziali: la radice. Iterative deepening: ID (2) 2. Se L è vuota [fallimento] incrementare s e tornare al passo 1. Altrimenti, selezionare un nodo n da L. 3. Se n è un nodo finale, terminare restituendo n e il cammino dal nodo iniziale a n. 4. Altrimenti, cancellare n da L. Se la profondità di n è minore di s, aggiungere a L tutti i figli di n, ciascuno con il suo cammino dal nodo iniziale. Tornare al passo 2. 1, 2, 7 3, 8 4, 13 5,18 6, p 2 p Numero di espansioni: ( + 1)1+ ( p) r+ ( p - 1) r r - + 2r - per r fissato e p grande: tempo O (r p ) ; spazio O (rp) E' la procedura di ricerca esaustiva asintoticamente ottimale 1 p + 1r p
45 Direzioni di ricerca Due possibili direzioni + loro combinazione: in avanti (forward chaining, data-driven): dallo stato iniziale (dai dati del problema) generando gli stati intermedi verso lo stato finale (obiettivo) all'indietro (backward chaining, goal-driven): dall'obiettivo da raggiungere esaminando le condizioni per raggiungerlo (sotto-obiettivi) verso i dati del problema bidirezionale, alternando le due direzioni Lo spazio di ricerca è lo stesso, differisce il numero di stati effettivamente esaminati Quale direzione preferire dipende dal problema
46 Scelta della direzione di ricerca All'indietro preferibile se: l'obiettivo è formulato chiaramente vi è un gran numero di regole che corrispondono ai dati del problema, generando molte possibili conclusioni i dati del problema devono essere acquisiti (nella diagnosi, molti test sono possibili) esempio: dimostrare un teorema In avanti preferibile se: vi sono molti dati iniziali vi sono poche regole è difficile formulare l'obiettivo esempio: formulazione chimica In generale: conviene passare dall'insieme di stati più piccolo a quello più grande conviene procedere nella direzione di minore fattore di ramificazione
47 III Euristiche e ricerca informata
48 Outline 1. Problemi come spazio delle soluzioni Alcuni esempi di problemi Stati e transizioni Rappresentazione dello spazio degli stati con grafi Alberi di ricerca 2. Algoritmo generale di ricerca e ricerca non informata Algoritmo generale di ricerca Algoritmi di ricerca non informata: deep-first, breat-first, iterative deepening (IDA). Accenni a problemi di complessità 3. Euristiche e ricerca informata Il concetto di euristica Ricerca best-first: ricerca golosa e A* IDA*
49 Valutazione euristica degli stati (Es. 1) Esempio: tris Euristica: valutare per ogni stato il numero di tris potenziali
50 Valutazione euristica degli stati (Es.( 2) Esempio: gioco dell'8 Euristica 1: per ogni stato: n 1 = quadrati fuori posto [per lo stato (a): n 1 = 7] sottostima la distanza dallo stato finale (b) (con una mossa, al più un quadrato può andare a posto) (a) (b) (c) Euristica 2: per ogni stato, n 2 = somma delle distanze dalla destinazione di ogni quadrato fuori posto [per lo stato (a): n 2 = = 17] sottostima distanza da stato finale (con una mossa avanza al più un quadrato e al più di un passo) Euristica 2 più accurata di Euristica 1: n 2 n 1 Non adeguate a inversione di quadrati (nello stato (c) i quadrati 5 e 6 sono da invertire)
51 Ricerca euristica Usa informazione specifica del dominio per scegliere quali nodi espandere Associa allo spazio degli stati una funzione euristica di valutazione che assegna un valore ad ogni stato Strategia euristica: espandere il nodo più 'promettente' (ritenuto più vicino al nodo finale) Esempio:
52 Ricerca in salita (hill( climbing) Detta anche metodo del gradiente Seleziona uno stato successivo solo se migliora la condizione attuale secondo l euristica in uso, fallisce se non c e. MEMORIZZA SOLO I NODI APPARTENENTI AL CAMMINO ATTIVO (IN PROFONDITA')
53 Esempio (MONDO DEI BLOCCHI) MOSSE: spostare un blocco libero per volta o sul tavolo o su un altro blocco (1) stato finale (2) stato iniziale Ricerca in salita con euristiche diverse D C B A A D C B D C B A C B D A C B A D (1) (2) (3) (4) (5) (3) stato dopo la prima mossa (2), (4), (5) stati possibili dallo stato (3) (1): +4 (2): 0 (3): +2 (4): 0 (5): 0 Euristica 1 (locale): +1 blocco in posizione corretta -1 blocco in posizione errata Nello stato (3) la ricerca in salita si ferma: (2), (4), (5) non sono migliori di (3) Euristica 2 (globale): +n blocco sopra n-1 blocchi corretti - n blocco sopra n-1 blocchi errati (1): +10 (2): -10 (3): -5 (4): -4 (5): -3 Nello stato 3 la ricerca in salita sceglie lo stato (5) che porta verso la soluzione
54 La ricerca in salita non può procedere quando incontra: Massimo locale: Ricerca in salita: problemi stato migliore di tutti i vicini ma non migliore di altri più lontani Pianoro: tutti gli stati vicini sono di pari valore Crinale: vi sono stati vicini di valore migliore ma non raggiungibili con una singola mossa
55 Soluzioni ai limiti della ricerca in salita Massimo locale: tornare a uno stato precedente e spostarsi in un'altra direzione Pianoro: saltare in qualche direzione verso una nuova zona (simulated annealing) Crinale: fare due o più mosse insieme (aggiramento) prima di valutare i prossimi stati (macroregole) Ma tutte le euristiche sono: fallibili difficili da individuare da verificare sperimentalmente su campioni di prova
56 Ricerca best-first 1. L: lista dei nodi iniziali. 2. Se L è vuota, fallimento. Altrimenti, selezionare da L [un] il nodo n migliore. 3. Se n è un nodo finale, terminare restituendo n ed il cammino dal nodo iniziale a n. 4. Altrimenti, cancellare n da L e aggiungere a L tutti i figli di n, ciascuno con il suo cammino. Tornare al passo 2. IL NODO DA ESPANDERE E' SCELTO TRA I FIGLI DEI NODI ESPANSI IN TUTTI I PASSI PRECEDENTI
57 Greedy Search (Ricerca Golosa): minimizzare la distanza dall obiettivo Funzione di valutazione degli stati h: distanza da obiettivo [h(n) = 0 se n è l obiettivo]. Distanza stimata da obiettivo. Simile a Hill-Climbing ma vero e proprio albero: espando sempre i nodi valutati più vicini a obiettivo Ex. Cammino da Arad a Bucarest: distanza in linea d aria da obiettivo come funzione di valutazione Nodi non necessari espansi, (false partenze) e oscillazioni causate da loop Simile a Deep First... Incompleta e non ottimale, ma se la funzione euristica è buona può essere molto veloce Trovare una buona h è in generale molto difficile
58 Ricerca Golosa (esempio) h: distanza in linea d aria Supponiamo di voler andare da Iasi a Fagaras Oscillazione (loop) Supponiamo di avere un nuovo nodo x... False partenze x la soluzione può non essere ottimale
59 Costo dei cammini Misura della lunghezza di un cammino tra due stati Esempio: problema del commesso viaggiatore Partendo dalla sede visitare n città ciascuna una sola volta, e tornare in sede percorrendo la minima distanza possibile. E' data la distanza tra le diverse città. E A B C 100 D 100 A 150 B 250 C D E 275 D C D E E 325 E C D A B C E 425 A Per N città vi sono (N - 1)! cammini E
60 Branch and bound: minimizzare il costo cammino Memorizza tutti i cammini e i loro costi, espandendo ad ogni passo il cammino di costo minore rispetto a tutti quelli generati. Algoritmo: 1. Lista L dei cammini dal nodo iniziale (inizialmente: nodo iniziale, cammino di lunghezza nulla) 2. Finchè L è vuota o si è raggiunto un nodo finale: se il primo cammino in L contiene un nodo finale, termina con successo, altrimenti rimuovi il cammino da L e forma nuovi cammini espandendo di un passo il cammino rimosso calcola il costo dei nuovi cammini e aggiungili in L ordina i cammini in L per costi crescenti dei cammini 3. Altrimenti, termina con fallimento Trova sicuramente il cammino di costo minimale Utile quando esistono più cammini da nodo iniziale a nodo finale
61 Funzione di valutazione totale: ricerca A f ( n ) = g ( n ) + h ( n ) g ( n ) : misura lunghezza effettiva cammino da nodo iniziale a nodo n h ( n ) : stima euristica distanza nodo n da nodo finale f ( n ) : costo totale cammino da nodo iniziale a nodo finale attraverso nodo n a g ( n ) = (obiettivo) b 3 c 3 d e 3 f 4 g f ( c ) = g ( c ) + h ( c ) = = 4 f ( e ) = g ( e ) + h ( e ) = = 5 A parità paritàdi di stima, stima, scelto scelto nodo nodo c c più piùvicino a nodo nodo iniziale iniziale Algoritmo Algoritmo A: A: best-first best-first con con funzione funzione di di valutazione valutazione totale totale g ( n ) = 1 g ( n ) = 2
62 Funzione di valutazione totale: ricerca A f ( n ) = g ( n ) + h ( n ) g ( n ) : misura lunghezza effettiva cammino da nodo iniziale a nodo n h ( n ) : stima euristica distanza nodo n da nodo finale f ( n ) : costo totale cammino da nodo iniziale a nodo finale attraverso nodo n a g ( n ) = (obiettivo) b 3 c 3 d e 3 f 4 g f ( c ) = g ( c ) + h ( c ) = = 4 f ( e ) = g ( e ) + h ( e ) = = 5 A parità paritàdi di stima, stima, scelto scelto nodo nodo c c più piùvicino a nodo nodo iniziale iniziale Algoritmo Algoritmo A: A: best-first best-first con con funzione funzione di di valutazione valutazione totale totale g ( n ) = 1 g ( n ) = 2
63 Ricerca A*: : h ammissibile Una funzione è ammissibile se non sopravvaluta mai la distanza effettiva all obiettivo A* è un algoritmo con funzione di valutazione totale dove la funzione euristica h è ammissibile. f * ( n ) = g * ( n ) + h * ( n ) g* ( n ) = costo cammino più corto da nodo iniziale a nodo n h* ( n ) = costo effettivo cammino più corto da nodo n a nodo finale f * ( n ) = costo effettivo cammino ottimale da nodo iniziale a nodo finale attraverso nodo n Funzioni g*, h*, f * non note g, h, f loro approssimazioni Usualmente g ( n ) g * ( n ) Algoritmo A* : algoritmo A con funzione f in cui h ( n ) h * ( n ) A* è ottimale e completo
64 Ottimalità e completezza Ottimale: I nodi in tutte le frontiere successive hanno un costo f più grande Prima o poi frontiera: cammino reale A* è ottimamente efficiente: non esiste nessun altro algoritmo ottimale che garantisce di espandere un minor numero di nodi di A*
65 Informatività Funzioni a valutazione totale: f ( n ) = g ( n ) + h ( n ) La ricerca breadth-first è un algoritmo A * con h = 0 e costo cammino costante per ogni arco, cioè f ( n ) = g ( n ) La ricerca branch and bound è un algoritmo A* con h = 0 e g diverso per ogni arco Sono ammissibili, perchè, essendo h = 0, n 0 h* ( n ) Date due euristiche A*: h 1 e h 2, h 2 è più informata di h 1 se n h 1 ( n ) h 2 ( n ) Più un'euristica è informata, minore è il numero di nodi da espandere per trovare la soluzione ottimale: E sempre meglio utilizzare una funzione euristica più informativa a meno che non sopravvaluti
66 Informatività (2): ex. Il gioco dell 8 Ex. Gioco dell' euristica h 1 (numero quadrati fuori posto) euristica h 2 (somma spostamenti minimi dei quadrati) Si ha: 0 h 1 h 2 h* entrambe ammissibili entrambe migliori di breadth-first euristica h 2 più informata di euristica h 1
67 Efficacia delle euristiche Confronto tra ID (Iterative Deepening) e A*, media su 100 istanze nel gioco dell 8 Costo della ricerca Fattore di ramificazione effettivo p ID A*(h 1 ) A*(h 2 ) ID A*(h 1 ) A*(h 2 ) Euristiche per CSP Effettuare per prima la sostituzione più vincolata. Esempio di criptoaritmetica: la cifra più a sinistra può avere solo valore 0 o 1
68 Iterative deepening A* (IDA*) (1) Iterative deepening con funzione di valutazione totale ammissibile. LIMITE DI COSTO al posto di limite di profondità 0. s = f(stato iniziale). 1. L: lista dei nodi iniziali. 2. Se L è vuota incrementare s a next_s e tornare al passo 1. Altrimenti, selezionare un nodo n da L. 3. Se n è un nodo finale, terminare restituendo n e il cammino dal nodo iniziale a n. 4. Altrimenti, cancellare n da L. Aggiungere in testa a L ogni figlio n' di n per cui f(n') s, ciascuno con il suo cammino dal nodo iniziale. Settare next_s come il min(f(n )) tale che f(n ) > s. Tornare al passo 2. Ricerca completa ed ottimale (euristiche ammissibili) Funzione euristica usata per potare nodi, non per determinare l'ordine di espansione, che rimane in profondità
69 Iterative deepening A* (IDA*) (2) Complessità in spazio esponenziale in p per A*, lineare in p per IDA* Complessità in tempo dipende da euristica Asintoticamente espande lo stesso numero di nodi di A* A* include una funzione di ordinamento: costo aggiuntivo! Minore è il range di valori dell euristica minore è il numero di espansioni Problemi con domini complessi (ampio range della funzione euristica) Se il valore euristico cambia ad ogni stato: ciascuna frontiera un solo stato in più rispetto a quella precedente! Se A* espande n nodi, IDA* n iterazioni: espande n nodi Una Unasoluzione: IDA* IDA* ε-ammissibile Incrementare il il limite limite di di costo costo di di una una quantità fissata fissata ε Si Si riduce riduce il il costo costo di di ricerca, ricerca, ma ma la la soluzione può può non non essere essere peggiore rispetto rispetto all ottimale, al al più piùdi di un un valore valore pari pari aε(ma aε(ma sempre sempre completa) Un altra SMA*:Simplified Memory-Bounded A*
70 Un esempio: la formulazione chimica High-level Prop of XYZ Low-level Prop of XYZ Recipe."XYZ" Desired High-level Properties Test obiettivo, euristiche Desired Low-level Properties? Done Wanted Recipe satisfying the given goals
71 Scoperta di euristiche Nel gioco dell 8: h 1 = n 0 tessere fuori posto h 2 = distanza di Manhattan (somma delle distanze dalla posizione finale) sono lunghezze di cammino effettive per versioni semplificate con condizioni rilassate. Regola del gioco: Una tessera può muovere dal quadrato A al quadrato B (i) se A è adiacente a B e (ii) se B è vuoto Rilassando (ii) si ottiene h 2 Rilassando sia (i) che (ii) si ottiene h 1 Nota n: h 2 (n) h 1 (n) h 2 domina h 1 Se ci sono k euristiche h 1,, h k nessuna delle quali domina le altre, allora h (n) = max (h 1 (n),, h k (n)) è dominante ATTENZIONE a costo di esecuzione di funzioni euristiche
72
73 Minimax Giochi a 2 (MIN e MAX) a mosse alternate e informazione perfetta ESEMPIO: gioco del NIM N fiammiferi, mossa: dividere una fila in due sottofile non vuote e non uguali MIN MAX MIN MAX MIN MAX Ad ogni nodo foglia: valore 0 se vincente per MIN - valore 1 se vincente per MAX Propagazione dei valori a ritroso: ai genitori MAX (MIN), valore massimo (minimo) dei figli (nell'esempio, MAX può vincere per qualunque prima mossa di MIN) In grafi grandi, si danno valori di stima ai nodi n mosse più avanti, si propagano a ritroso, e si usano per selezionare la prossima mossa. 0 (N=7, MIN muove per primo)
74 Alfa-Beta Procede in profondità, potando rami Valore alfa (con MAX), non decrescente MAX 3 A beta (con MIN), non crescente MIN 3 B 2 C MAX 3 D 2 F MIN E 2 1 val (D) = max (5,E) BETA val (B) = min (3,max (5,E)) = 3 E (E potato) appena trova un figlio di D con valore BETA, ignora gli altri val (C) = min (2,F) ALFA val (A) = max (3,min (2,F)) = 3 F (F potato) appena trova un figlio di C con valore ALFA, ignora gli altri Si esaminano tutte le possibilità di un giocatore (ramificazione r) e la migliore risposta a ognuna di esse dell'altro giocatore (ramificazione 1). A profondita' p: p/2 nodi con r figli e p/2 nodi con 1 figlio. Numero totale di nodi: 2 r p/2 anzicchè r p
75 (a) (obiettivo) (c)
TECNOLOGIE INFORMATICHE MULTIMEDIALI
TECNOLOGIE INFORMATICHE MULTIMEDIALI ««Gli errori sono necessari, utili come il pane e spesso anche belli: per esempio, la torre di Pisa.» (Gianni Rodari, Il libro degli errori) Prof. Giorgio Poletti giorgio.poletti@unife.it
DettagliEspansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati.
CERCARE SOLUZIONI Generare sequenze di azioni. Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati. Strategia di ricerca: ad ogni passo scegliere
DettagliIntelligenza 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
DettagliAlgoritmi 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
DettagliRicerca Automatica. Esercitazione 3. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0
Ricerca Automatica Esercitazione 3 Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0 Ascensore In un grattacielo ci sono 3 coppie formate da marito e moglie. Il cancello delle scale viene
DettagliIntelligenza Artificiale. Risoluzione dei Problemi
Intelligenza Artificiale Risoluzione dei Problemi Strategie non-informate: principali 1. breadth-first; 2. depth-first; 3. depth-first a profondità limitata; 4. ad approfondimento iterativo. Ricerca in
DettagliIntelligenza 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
DettagliRicerca informata in uno spazio di stati
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_3 V2.5 Ricerca informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli studenti,
DettagliMETODI DELLA RICERCA OPERATIVA
Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)
DettagliAgenti che risolvono problemi attraverso la ricerca in uno spazio di stati
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_1 V1.4 Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati Il contenuto del documento è
Dettagli3.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
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 8 Settembre 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 8 Settembre 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si formalizzino in logica dei predicati del I ordine le seguenti frasi: 1.
DettagliAlgoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio
Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi
DettagliGenerare sequenze di azioni.
Cercare soluzioni L idea è quella di mantenere ed estendere un insieme di sequenze soluzioni parziali. Un agente con diverse opzioni immediate di esito sconosciuto può decidere cosa fare esaminando prima
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
DettagliIntelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5.
Sommario Intelligenza Artificiale CSP RN 3.8, 4.3, 4.5 Giochi RN 5 Lezione 6bis Intelligenza Artificiale Daniele Nardi, 2004 Lezione 6bis 0 Intelligenza Artificiale Daniele Nardi, 2004 Lezione 6bis 1 Problemi
DettagliIl problema del commesso viaggiatore
Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università
DettagliUNIVERSITÀ 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
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
DettagliIl valore di flusso che si ottiene è
1) Si consideri un insieme di piste da sci e di impianti di risalita. Lo si modelli con un grafo orientato che abbia archi di due tipi: tipo D (discesa e orientato nel senso della discesa) e tipo R (risalita
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di
DettagliAlgoritmi e giochi combinatori
Algoritmi e giochi combinatori Panoramica Giochi combinatori Programmi che giocano Albero di un gioco L algoritmo Minimax 1 Perché studiare i giochi? Problemi che coinvolgono agenti in competizione tra
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 26 Gennaio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 26 Gennaio 2017 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si formalizzino le seguenti frasi in logica dei predicati del I ordine: - I
DettagliSoluzione del problema come ricerca in uno spazio degli stati:
Soluzione del problema come ricerca in uno spazio degli stati: Gran parte dei problemi di Intelligenza Artificiale hanno la ricerca (o controllo) come componente fondamentale. I problemi si possono modellare
DettagliIndici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2
INDICI MULTILIVELLO DINAMICI Indici multilivello dinamici (B-alberi e B + -alberi) Gli indici multilivello dinamici (B-alberi e B + -alberi) sono casi speciali di strutture ad albero. Un albero è formato
DettagliGRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!
G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono
Dettagli1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI
1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI Questo capitolo tratta della possibilità di risolvere problemi analizzando le diverse possibilità prodotte dalla scelta dell agente. Abbiamo già visto come un agente
DettagliUNIVERSITÀ 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à
DettagliHeap e code di priorità
Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010
DettagliTecniche euristiche Ricerca Locale
Tecniche euristiche Ricerca Locale PRTLC - Ricerca Locale Schema delle esercitazioni Come ricavare la soluzione ottima Modelli Solver commerciali Come ricavare una stima dell ottimo: rilassamenti Rilassamento
DettagliDomini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):
UNIVERSITA DEGLI STUDI DI SALERNO C.d.L. in INGEGNERIA GESTIONALE Esercizi di Ricerca Operativa Prof. Saverio Salerno Corso tenuto nell anno solare 2009 I seguenti esercizi sono da ritenersi di preparazione
DettagliIntroduzione ai grafi
TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale
DettagliIntelligenza Artificiale. Logica proposizionale: calcolo automatico
Intelligenza Artificiale Logica proposizionale: calcolo automatico Marco Piastra Logica formale (Parte 3) - Parte 3 Calcolo automatico Forme normali ed a clausole Risoluzione e refutazione Forward chaining
DettagliIntelligenza 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
DettagliCOMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I. 2 Dicembre 2008 (Tempo a disposizione 2h ; su 32 punti)
COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I 2 Dicembre 2008 (Tempo a disposizione 2h ; su 32 punti) Esercizio 1 (punti 5) Rappresentare le seguenti frasi:
DettagliAlgoritmi di ricerca locale
Algoritmi di ricerca locale Utilizzati in problemi di ottimizzazione Tengono traccia solo dello stato corrente e si spostano su stati adiacenti Necessario il concetto di vicinato di uno stato Non si tiene
DettagliProblemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
DettagliProblema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
DettagliGrafi: 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
DettagliRipasso di teoria ed esercizi in preparazione al terzo compito. 26 gennaio 2004
Ripasso di teoria ed esercizi in preparazione al terzo compito 26 gennaio 2004 Teoria: domande tipo per il terzo compitino 1. Metaprogrammazione: In cosa consiste la metaprogrammazione? Quali sono alcuni
DettagliIntroduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione
Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):
DettagliOttimizzazione Combinatoria e Reti (a.a. 2007/08)
o Appello 6/07/008 Ottimizzazione Combinatoria e Reti (a.a. 007/08) Nome Cognome: Matricola: ) Dopo avere finalmente superato l esame di Ricerca Operativa, Tommaso è pronto per partire in vacanza. Tommaso
Dettagli3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI
3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI ESISTENZA DI UN PUNTO DI OTTIMO VINCOLATO Il problema di ottimizzazione vincolata introdotto nel paragrafo precedente può essere formulato nel modo seguente:
DettagliINFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)
INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell
DettagliESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore.
ESERCIZIO MIN- Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore. B C D E F G H I J K L M N O P Q R S T U (6) (8) (5) (0) (-2) (2) (5) (8) (9) (2)
Dettagli1. Assestare la comprensione delle strategie di ricerca viste a lezione 2. Imparare ad utilizzare la libreria aima.search
Strategie di ricerca Seminario del 13 e 21 ottobre 2016 Scopo: 1. Assestare la comprensione delle strategie di ricerca viste a lezione 2. Imparare ad utilizzare la libreria aima.search Com è organizzata
DettagliI giochi con avversario. I giochi con avversario. Introduzione. Giochi come problemi di ricerca. Il gioco del NIM.
I giochi con avversario I giochi con avversario Maria Simi a.a. 26/27 Regole semplici e formalizzabili eterministici, due giocatori, turni alterni, zero-sum, informazione perfetta (ambiente accessibile)
DettagliArray e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
DettagliTipi di dato e Strutture dati elementari
Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia
DettagliMinimizzazione a più livelli di reti combinatorie Cristina Silvano
Minimizzazione a più livelli di reti combinatorie Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione Milano (Italy) Sommario Modello booleano e modello algebrico
DettagliProgettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 29/01/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via
Dettagli1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi
Argomenti della Lezione 1) Codici convoluzionali 2) Circuito codificatore 3) Diagramma a stati e a traliccio 4) Distanza libera 5) Algoritmo di Viterbi 1 Codici convoluzionali I codici convoluzionali sono
DettagliIl 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
DettagliLucchetto con combinazione (3 numeri tra 0 e 39)
Complessita computazionale ed il problema P / NP Fondamenti di Informatica 2011/12 Lucchetto con combinazione (3 numeri tra 0 e 39) Perche e sicuro? (escludendo che lo si rompa) Combinazione di 3 numberi
DettagliIl 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
DettagliTEST: RAGGIUNGIMENTO DEL GOAL La verifica può essere solo l appartenenza dello stato raggiunto all insieme dello stato (o degli stati) goal. A volte l
Soluzione del problema come ricerca in uno spazio degli stati: Gran parte dei problemi di Intelligenza Artificiale hanno la ricerca (o controllo) come componente fondamentale. I problemi si possono modellare
DettagliFONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti
FONDAMENTI DI INTELLIGENZA ARTIFICIALE 14 Gennaio 2016 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (6 punti) Si rappresentino in logica dei predicati del I ordine, le seguenti affermazioni:
DettagliProgrammazione a numeri interi: il metodo del Branch and Bound
Programmazione a numeri interi: il metodo del Branch and Bound L. De Giovanni G. Zambelli Un problema di programmazione lineare intera è una problema della forma z I = maxc T x Ax b x 0 x i Z, i I. (1)
DettagliProgrammazione Lineare: problema del trasporto Ing. Valerio Lacagnina
Problemi di trasporto Consideriamo un problema di programmazione lineare con una struttura matematica particolare. Si può utilizzare, per risolverlo, il metodo del simplesso ma è possibile realizzare una
DettagliUn secondo problema : Quadrato Magico
Un secondo problema : Quadrato Magico E dato un quadrato di 10 caselle per 10 (in totale 100 caselle). Nello stato iniziale tutte le caselle sono vuote tranne la più in alto a sinistra che contiene il
DettagliCOMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04
COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04 Esercizio 1 Si risolva con il metodo branch-and-bound il seguente problema di PLI max x 1 + x 4x 1 + x + x = 0 x 1 + x + x 4 = x 1, x, x, x 4 0 x 1, x,
DettagliCorso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi
Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Problem Solving Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/30 Tipi di Problemi Primitivi Risolubili
DettagliProblem-solving agents
Problem-solving agents 1 Formulazione del problema :! lo stato iniziale;" Descrizione delle azioni possibili che sono disponibili da parte dell agente (operatori che trasformano uno stato in un altro o
DettagliGrammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione
Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio
DettagliGestione della produzione e della supply chain Logistica distributiva
Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non
Dettaglitrovare un percorso senza collisioni per passare da una configurazione ad un altra del sistema robotico
Problemi da risolvere navigazione trovare un percorso senza collisioni per passare da una configurazione ad un altra del sistema robotico copertura passare un sensore o un attuatore su tutti i punti che
DettagliNotazione asintotica. notazione Ω. notazione O. notazione o notazione ω. Marina Zanella Algoritmi e strutture dati Richiami matematici 1
Notazione asintotica Sebbene si possa talvolta determinare il tempo esatto di esecuzione di un algoritmo, l estrema precisione non giustifica lo sforzo del calcolo; infatti, per input sufficientemente
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
DettagliIntelligenza Artificiale. Risoluzione dei Problemi
Intelligenza Artificiale Risoluzione dei Problemi Metodi di ricerca con informazione parziale I metodi esposti prima adottano l ipotesi che l ambiente sia completamente osservabile e deterministico e che
DettagliSoluzione dei problemi di Programmazione Lineare Intera
Fondamenti di Ricerca Operativa T-A a.a. 2014-2015 Soluzione dei problemi di Programmazione Lineare Intera Andrea Lodi, Enrico Malaguti, Daniele Vigo rev. 1.1.a ottobre 2014 Fondamenti di Ricerca Operativa
DettagliEsempi. non. orientato. orientato
Definizione! Un grafo G = (V,E) è costituito da un insieme di vertici V ed un insieme di archi E ciascuno dei quali connette due vertici in V detti estremi dell arco.! Un grafo è orientato quando vi è
DettagliAgenti basati su Ricerca: Introduzione
Agenti basati su Ricerca: Introduzione Intelligenza Artificiale Prof. Alfonso E. Gerevini Dipartimento Ingegneria dell Informazione Università degli Studi di Brescia Un Agente Risolutore di Problemi Segue
DettagliPossibile 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
DettagliProgrammazione Lineare Intera: Piani di Taglio
Programmazione Lineare Intera: Piani di Taglio Andrea Scozzari a.a. 2014-2015 April 22, 2015 Andrea Scozzari (a.a. 2014-2015) Programmazione Lineare Intera: Piani di Taglio April 22, 2015 1 / 23 Programmazione
DettagliAlgoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II
Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Classificazione digli archi Sia G la foresta DF generata da DFS sul grafo G. Arco d albero: gli
DettagliSoluzione dei problemi di Programmazione Lineare Intera
Fondamenti di Ricerca Operativa T-A a.a. 2015-2016 Soluzione dei problemi di Programmazione Lineare Intera Andrea Lodi, Enrico Malaguti, Paolo Tubertini, Daniele Vigo rev. 2. ottobre 2016 Fondamenti di
DettagliAlgoritmo basato su cancellazione di cicli
Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile
DettagliPumping lemma per i linguaggi Context-free
Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=
DettagliNote per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
DettagliSoluzione del problema come ricerca in uno spazio degli stati:
Soluzione del problema come ricerca in uno spazio degli stati: Gran parte dei problemi di Intelligenza Artificiale hanno la ricerca (o controllo) come componente fondamentale. I problemi si possono modellare
DettagliStrutture dati per rappresentare grafi
lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Strutture dati per rappresentare grafi opyright 2004 - The Mcraw - Hill ompanies, srl lgoritmi e strutture dati amil emetrescu,
DettagliRicerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015
1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)
DettagliIntelligenza 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
Dettagli2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
. Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,
DettagliAlgoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono
Algoritmi e Strutture Dati Laboratorio 15/12/2008 Problema della compressione Rappresentare i dati in modo efficiente Impiegare il numero minore di bit per la rappresentazione Goal: risparmio spazio su
DettagliGrafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
Dettagli2.3.3 Cammini ottimi nei grafi senza circuiti
.. Cammini ottimi nei grafi senza circuiti Sia un grafo G = (N, A) orientato senza circuiti e una funzione di costo che assegna un valore c ij R ad ogni arco (i, j) A circuito Proprietà I nodi di un grafo
DettagliIl tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
DettagliEsercizi proposti 10
Esercizi proposti 10 In questo gruppo di esercizi assumiamo, dove non sia specificato diversamente, di rappresentare i grafi mediante liste di archi, con il tipo di dati così dichiarato: type a graph =
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno
INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze
DettagliRISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine
RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
Dettaglie Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità
Intelligenza Artificiale I Soddisfacibilità e Algoritmi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema
DettagliMinimizzazione di Reti Logiche Combinatorie Multi-livello. livello
Minimizzazione di Reti Logiche Combinatorie Multi-livello livello Maurizio Palesi Maurizio Palesi 1 Introduzione I circuiti logici combinatori sono molto spesso realizzati come reti multi-livello di porte
DettagliCostruzione di espressioni regolari 4
ostruzione di espressioni regolari 4 Indicando con d uno dei possibili digits {,, 2,,9} --possiamo esprimere il sotto linguaggio dei digits come d = ( + + 2 +.. + 9) Quale linguaggio produce l espressione:
DettagliEsercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:
Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati
DettagliAlgoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo
1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme
DettagliSISTEMI BASATI SULLA CONOSCENZA: PRINCIPI ARCHITETTURALI
SISTEMI BASATI SULLA CONOSCENZA: PRINCIPI ARCHITETTURALI Ogni sistema basato sulla conoscenza deve riuscire ad esprimere due tipi di conoscenza in modo separato e modulare: Conoscenza sul dominio dell'applicazione
Dettagli