Algoritmi di ricerca

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmi di ricerca"

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

Dettagli

Espansione: si parte da uno stato e applicando gli operatori (o la funzione successore) si generano nuovi stati.

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

Dettagli

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

Dettagli

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

Dettagli

Ricerca Automatica. Esercitazione 3. Intelligenza Artificiale Daniele Nardi, 2004 Esercitazione 3 0

Ricerca 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

Dettagli

Intelligenza Artificiale. Risoluzione dei Problemi

Intelligenza 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

Dettagli

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

Dettagli

Ricerca informata in uno spazio di stati

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

Dettagli

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 (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)

Dettagli

Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati

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

Dettagli

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

Dettagli

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

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi 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

Dettagli

Generare sequenze di azioni.

Generare 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

Dettagli

Algoritmi e Strutture Dati

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

Dettagli

Intelligenza Artificiale. Lezione 6bis. Sommario. Problemi di soddisfacimento di vincoli: CSP. Vincoli CSP RN 3.8, 4.3, 4.5.

Intelligenza 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

Dettagli

Il problema del commesso viaggiatore

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

Dettagli

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

Dettagli

2.2 Alberi di supporto di costo ottimo

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

Dettagli

Il valore di flusso che si ottiene è

Il 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

Dettagli

2.2 Alberi di supporto di costo ottimo

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

Dettagli

Algoritmi e giochi combinatori

Algoritmi 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

Dettagli

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

Dettagli

Soluzione del problema come ricerca in uno spazio degli stati:

Soluzione 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

Dettagli

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Indici 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

Dettagli

GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!

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

Dettagli

1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI

1 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

Dettagli

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à

Dettagli

Heap e code di priorità

Heap 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

Dettagli

Tecniche euristiche Ricerca Locale

Tecniche 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

Dettagli

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

Domini 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

Dettagli

Introduzione ai grafi

Introduzione 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

Dettagli

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

Intelligenza 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

Dettagli

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

Dettagli

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

Dettagli

Algoritmi di ricerca locale

Algoritmi 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

Dettagli

Problemi, istanze, soluzioni

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

Dettagli

Problema del cammino minimo

Problema 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

Dettagli

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

Dettagli

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

Dettagli

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

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

Dettagli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Ottimizzazione 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

Dettagli

3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI

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

Dettagli

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

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

Dettagli

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore.

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

Dettagli

1. Assestare la comprensione delle strategie di ricerca viste a lezione 2. Imparare ad utilizzare la libreria aima.search

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

Dettagli

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

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array 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

Dettagli

Tipi di dato e Strutture dati elementari

Tipi 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

Dettagli

Minimizzazione a più livelli di reti combinatorie Cristina Silvano

Minimizzazione 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

Dettagli

Progettazione di Algoritmi

Progettazione 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

Dettagli

1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi

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

Dettagli

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

Dettagli

Lucchetto con combinazione (3 numeri tra 0 e 39)

Lucchetto 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

Dettagli

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

Dettagli

TEST: RAGGIUNGIMENTO DEL GOAL La verifica può essere solo l appartenenza dello stato raggiunto all insieme dello stato (o degli stati) goal. A volte l

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

Dettagli

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

Dettagli

Programmazione a numeri interi: il metodo del Branch and Bound

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

Dettagli

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

Programmazione 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

Dettagli

Un secondo problema : Quadrato Magico

Un 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

Dettagli

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

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

Dettagli

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi

Corso 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

Dettagli

Problem-solving agents

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

Dettagli

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

Dettagli

Gestione della produzione e della supply chain Logistica distributiva

Gestione 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

Dettagli

trovare un percorso senza collisioni per passare da una configurazione ad un altra del sistema robotico

trovare 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

Dettagli

Notazione asintotica. notazione Ω. notazione O. notazione o notazione ω. Marina Zanella Algoritmi e strutture dati Richiami matematici 1

Notazione 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

Dettagli

Sviluppo di programmi

Sviluppo 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

Dettagli

Intelligenza Artificiale. Risoluzione dei Problemi

Intelligenza 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

Dettagli

Soluzione dei problemi di Programmazione Lineare Intera

Soluzione 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

Dettagli

Esempi. non. orientato. orientato

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

Dettagli

Agenti basati su Ricerca: Introduzione

Agenti 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

Dettagli

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

Dettagli

Programmazione Lineare Intera: Piani di Taglio

Programmazione 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

Dettagli

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

Dettagli

Soluzione dei problemi di Programmazione Lineare Intera

Soluzione 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

Dettagli

Algoritmo basato su cancellazione di cicli

Algoritmo 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

Dettagli

Pumping lemma per i linguaggi Context-free

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

Dettagli

Note per la Lezione 4 Ugo Vaccaro

Note 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

Dettagli

Soluzione del problema come ricerca in uno spazio degli stati:

Soluzione 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

Dettagli

Strutture dati per rappresentare grafi

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

Dettagli

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

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

Dettagli

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

Dettagli

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

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

Dettagli

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono

Algoritmi 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

Dettagli

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

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

Dettagli

2.3.3 Cammini ottimi nei grafi senza circuiti

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

Dettagli

Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.

Il 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

Dettagli

Esercizi proposti 10

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

Dettagli

INFORMATICA 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 INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze

Dettagli

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

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il 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

Dettagli

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

e 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

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello. livello

Minimizzazione 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

Dettagli

Costruzione di espressioni regolari 4

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

Dettagli

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

Dettagli

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Algoritmi 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

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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

Dettagli

SISTEMI BASATI SULLA CONOSCENZA: PRINCIPI ARCHITETTURALI

SISTEMI 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