Algoritmi di Ricerca
|
|
- Marco Spinelli
- 6 anni fa
- Visualizzazioni
Transcript
1 Algoritmi e Strutture Dati Autunno 01 Algoritmi di Ricerca Dip. Informatica ed Appl. Prof. G. Persiano Università di Salerno 1 Ricerca esaustiva 1 2 Backtrack Backtrack per enumerazione Backtrack per ottimizzazione Algoritmo backtrack per il problema dello zaino Branch and Bound Il puzzle del Branch and Bound per ottimizzazione Lower bounding Ricerca esaustiva Consideriamo problemi computazionali le cui soluzioni ammissibili sono descritte da vettori (x 1,, x n ) dove ciascun x i appartiene ad un insieme S i. A secondo dei casi, vorremo risolvere un problema di ottimizzazione: trovare un vettore (x 1,, x n ) che minimizza (o massimizza) un certo criterio P (x 1,, x n ); oppure un problema di enumerazione: enumerare tutti i vettori (x 1,, x n ) che soddisfano il criterio P (x 1,, x n ). La tecnica della ricerca esaustiva semplicemente considera tutti i possibili Π n S i vettori. La discussione degli algoritmi di ricerca è facilitata se consideriamo lo spazio delle soluzioni organizzato ad albero. La radice (posta al livello 1) rappresenta la soluzione parziale in cui nessuna delle n componenti è stata ancora specificata. Un nodo a livello i ha S i figli: uno per ciascun possibile valore di x i e per comodità consideriamo questo valore come etichetta dell arco. In tal modo la soluzione parziale rappresentata dal nodo v è ottenuta leggo le etichette degli archi che costituiscono il cammino dalla radice al nodo v. Un nodo foglia è una soluzione. Esempio 1 [Subset Sum]. Sono dati in input n interi positivi w 1,, w n ed un intero target M. Desideriamo trovare un sottoinsiemi degli interi w i la cui somma è M. Se abbiamo n = 4 interi positivi (11, 13, 24, 7) ed M = 31, il problema Subset Sum ammette 2 soluzione (11, 13, 7) e (24, 7). Possiamo descrivere le soluzioni del problema Subset Sum mediante un vettore (x 1,, x k ) ove 1. ogni intero x i è compreso tra 1 ed n; 2. gli interi sono in ordine crescente: x i < x i+1 per i = 1, k 1; 3. la somma degli interi il cui indice appare in (x 1,, x k ) è M: w xj = M. j=1 Alternativamente, una soluzione può essere descritta da un vettore binario: se l i-esima componente è uguale a 0, l i-esimo elemento non appartiene al sottoinsieme soluzione; se invece l i-esima componente è uguale a 1, l i-esimo elemento appartiene al sottoinsieme soluzione (vedi Figura 1). In generale, differenti rappresentazioni dello spazio delle soluzioni sono possibili per lo stesso problema. Una volta definito l albero che rappresenta lo spazio delle soluzioni, lo stesso può essere visitato parto dalla radice e generando ad ogni passo un nodo dell albero. Un nodo che è stato generato ma i cui figli non sono
2 Algoritmi di Ricerca 2 6 x1=0 x1=1 6 6 x2=0 x2=1 x2=0 x2= x3=0 x3=1 x3=0 x3=1 x3=0 x3=1 x3=0 x3= x4=1 x4=1 x4=1 x4=1 x4=1 x4=1 x4=1 x4=1 x4=0 x4=0 x4=0 x4=0 x4= x4=0 x4=0 x4= Figura 1: L albero degli stati per il problema SubsetSum con 4 interi. La topologia dell albero non dipe dai valori input. stati tutti generati è detto vivo. Il nodo vivo di cui si sta attualmente generando un figlio è detto l E-nodo. Un nodo v invece è detto morto se tutti i suoi figli sono stati generati o abbiamo deciso che non è utile espandere v ulteriormente. Differenti algoritmi di ricerca si ottengono specificando: Criterio di espansione. Come scegliere il prossimo E-nodo tra tutti i nodi vivi; Criterio di taglio. Come decidere se è inutile espandere un nodo vivo. La ricerca esaustiva ad esempio non taglia mai un nodo e può decidere di espandere i nodi in un ordine qualsiasi. Ad esempio, un espansione in profondità è ottenuta seguo la seguenti regole: 1. ogni volta che un nodo x figlio dell E-nodo corrente y è generato, x diviene immediatamente il nuovo E-nodo; 2. se il corrente E-nodo invece non ha figli che non siano stati ancora generati, allora il padre di y diviene il prossimo E-nodo; 3. se y non ha padre (cioé y è la radice) e tutti i suoi figli sono stati generati, allora la ricerca termina. La ricerca esaustiva può essere espressa usando il seguente pseudocodice. PEsaustivaTutte() stampa tutte le soluzioni al problema. PEsaustivaMinima invece restituisce nella variabile la soluzione S di costo minimo (P contiene il costo di S è deve essere inzializzato a + ). PEsaustivaTutte(x 1,, x k 1 ) print (x 1,, x k ); PEsaustivaTutte (x 1,, x k ) PEsaustivaMinima(x 1,, x k 1 ) if P (x 1,, x k ) < P ; P = P (x 1,, x k ); S = (x 1,, x k ); PEsaustivaMinima(x 1,, x k )
3 Algoritmi di Ricerca 3 2 Backtrack La tecnica del backtrack ci permette, per alcune istanze del problema, di non esaminare tutte le soluzioni utilizzando una funzione di bounding per decidere il taglio dei nodi. 2.1 Backtrack per enumerazione Consideriamo prima il problema di enumerazione. Il backtrack genera i nodi eseguo una visita in profondità ed utilizza una funzione di bounding B con la seguente proprietà: Bounding per enumerazione. se B(x 1,, x k ) restituisce Falso allora non esiste nessun cammino con prefisso (x 1,, x k ) che porta ad un nodo soluzione. Pertanto, se durante l esplorazione dello spazio delle soluzioni giungiamo ad un nodo v corrispondente ad una soluzione parziale (x 1,, x k ) per cui B vale Falso, è inutile esplorare il sottoalbero radicato in v. Di seguito riportiamo una descrizione in pseudocodice del backtrack. BacktrackTutte(x 1,, x k 1 ) print (x 1,, x k ); if B(x 1,, x k ) BacktrackTutte(x 1,, x k ) Torniamo al problema SubsetSum e consideriamo la rappresentazione delle soluzioni mediante vettori binari (come in Figura 1). Supponiamo senza perdita di generalità che gli interi w i siano ordinati in ordine crescente. Per definire la funzione B, facciamo le due seguenti osservazioni. Supponiamo di avere una soluzione parziale descritta dal vettore (x 1, x k ). 1. Se w i x i + i=k+1 w i < M allora anche sommando tutti i rimanenti interi w k+1,, w n otteniamo un valore minore di M. Pertanto il vettore (x 1, x k ) non può essere esteso ad una soluzione. In altre parole, giunti al nodo v specificato dal cammino (x 1, x k ) è inutile esplorare l albero radicato in v in quanto non vi troveremo alcuna soluzione. 2. Se w i x i + w k+1 > M aggiungo un qualsiasi intero tra quelli ancora da considerare w k+1,, w n otterremo certamente un valore maggiore di M (nota che w k+1 è il minore degli elementi ancora da considerare). Come prima, l albero radicato nel nodo v specificato dal cammino (x 1, x k ) non contiene alcuna soluzione. Con queste osservazioni in mente, scriviamo il seguente algoritmo Backtrack per il problema SubsetSum. Lo stato corrente è memorizzato nell array globale (x 1,, x n ). Gli argomenti s, k e r hanno il seguente significato: s contiene il valore della somma corrente; k è l indice del prossimo elemento da considerare; r, invece, contiene la somma degli elementi ancora da considerare. La chiamata iniziale è SubsetSum(0, 1, n w i). Assumiamo che w 1 M e che n w i M. SubsetSum(s, k, r) 01. r = r w k ; 02. x k = 0; 03. if s + r M and s + w k+1 M 04. SubsetSum(s, k + 1, r);
4 Algoritmi di Ricerca x k = 1; 06. if s + w k = M 07. print (x 1,, x k ); 08. return; s = s + w k ; 11. if s + w k+1 M 12. SubsetSum(s, k + 1, r); Notiamo che alla linea 11 non è necessario controllare che Infatti, vale certamente che k 1 i=k+1 w i M. w i M altrimenti non avremo effettuato la chiamata corrente e, poiché x k = 1, abbiamo k Backtrack per ottimizzazione w i = i=k i=k Se intiamo utilizzare la tecnica del backtrack per risolvere un problema di massimizzazione la funzione di bounding deve soddisfare la seguente condizione: Bounding per massimizzazione. B(x 1,, x k ) restituisce un limite superiore (upper bound) al costo della migliore soluzione ottenuta espando la soluzione parziale (x 1,, x k ). Supponiamo che la migliore soluzione trovata finora abbia costo u. Allora se B(x 1,, x k ) u, è inutile esplorare l albero radicato nel nodo (x 1,, x k ). Possiamo pertanto scrivere il seguente pseudocodice. BacktrackMassima(x 1,, x k 1 ) if P (x 1,, x k ) > u u = P (x 1,, x k ); S = (x 1,, x k ); if B(x 1,, x k ) > u BacktrackMassima(x 1,, x k ) La variabile u è inizializzata uguale a. i=k Algoritmo backtrack per il problema dello zaino Consideriamo il problema di massimizzazione dello zaino intero. Riceviamo in input n pesi positivi w 1,, w n, n profitti positivi p 1,, p n ed un intero M. Vogliamo trovare una sequenza 0/1 tale che w i x i M w i.
5 Algoritmi di Ricerca 5 e il profitto p i x i sia massimo. Lo spazio delle soluzioni consiste di tutti i vettori binari con n componenti. Osserviamo che la soluzione ottima dello zaino intero ha un profitto che è certamente non maggiore del profitto della soluzione ottima dello zaino frazionario. Quindi se i valori di x i per i = 1,, k sono stati già determinati un limite superiore si ottiene calcolando la soluzione ottima per il problema dello zaino in cui la condizione x i {0, 1} è rilassata a x i [0, 1] per i = k + 1,, n. Come è noto con il vincolo di interezza rilassato il problema dello zaino può essere risolto efficientemente. 3 Branch and Bound Algoritmi branch-and-bound sono caratterizzati da un diverso criterio di espansione: un nodo resta E-nodo finché non muore (cioé tutti i suoi figli sono stati generati). Una volta che tutti i figli dell E-nodo corrente sono stati generati, il prossimo E-nodo può essere scelto in vari modi: il nodo vivo che è stato generato da più tempo (disciplina FIFO) o il nodo vivo che è stato generato da meno tempo (disciplina LIFO). Un modo più sofisticato consiste nell assegnare ad ogni nodo vivo x un valore c(x) e scegliere ad ogni passo come prossimo E-nodo, il nodo vivo con il valore c(x) più piccolo. Ad esempio, nel caso in cui è cercata una qualsiasi soluzione, c(x) potrebbe essere definito come la distanza dalla radice della piú vicina soluzione che si trova nell albero radicato in x. Ovviamente, valutare c( ) su un nodo risulta essere tanto difficile quanto risolvere il problema stesso. Dobbiamo pertanto accontentarci di una funzione ĉ( ) che approsimi la funzione c. Tipicamente si scegli una funzione ĉ( ) della forma ĉ(x) = f(h(x)) + ĝ(x) ove h è la distanza di x dalla radice, f è una funzione non decrescente e ĝ(x) è una stima della distanza di x da una soluzione. La ricerca che si ottiene in tal modo viene detta ricerca LeastCost e può essere descritta nel modo seguente. LeastCost(T, ĉ) if T soluzione then print T ; return; E T ; Q ; while (1) foreach X child of E if X soluzione then print cammino da T a X; return; Q = Q {X}; P (X) = E; if Q = then print Nessuna soluzione ; E ExtractMin(Q); 3.1 Il puzzle del 15 Il puzzle del 15 è un puzzle molto diffuso è si gioca su un riquadro 4 per 4 con 15 tessere numerate che lasciano uno spazio vuoto. Il gioco consiste nel sistemare parto da una configurazione arbitrarie le tessere numerate da 1 a 15 in ordine crescente. Le uniche mosse consentite sono quelle di scambiare di posto lo spazio vuoto con una tessera numerata adiacente. In questo caso ogni nodo dell albero dello spazio delle soluzioni consiste in una configurazione (permutazione) delle tessere ed ha come figli le configurazione ottenibili effettuando una mossa. Per questo problema un buon candidato per la funzione ĉ è la funzione h(x) + ĝ(x) ove h(x) è la profondità del nodo x e ĝ(x) è il numero di tessere che si trovano fuori posto.
6 Algoritmi di Ricerca 6 Figura 2: Un istanza per cui LeastCost non restituisce la soluzione ottima. 3.2 Branch and Bound per ottimizzazione In questa sezione consideriamo problemi di minimizzazione ed in tal caso la funzione c(x) restituisce il costo minimo di una soluzione presente nell albero radicato in x. Ovviamente, calcolare c(x) è tanto difficile quanto risolvere il problema input e pertanto dobbiamo accontentarci di una sua approssimazione ĉ. La ricerca LeastCost non necessariamente restituisce la soluzione di costo minimo: si veda l esempio in Figura 2. Il problema in questo caso è causato dal fatto che per due nodi x e y abbiamo che ĉ(x) < ĉ(y) sebbene c(x) > c(y). Proviamo ora che se nessuna inversione si verifica allora la ricerca LeastCost raggiunge una soluzione di costo minimo. Teorema 1 Sia la funzione ĉ tale che, per ogni x e y, ĉ(y) < ĉ(x) se e solo se c(y) < c(x). Allora la ricerca LeastCost su un albero finito raggiunge un nodo di costo minimo. Dim.: È facile convincersi che la LeastCost trova sempre una soluzione su un albero finito. Supponiamo invece che la ricerca LeastCost restituisca una soluzione g di costo c(g) > c, ove c è il costo di una soluzione ottima. Sia u l antenato più vicino a g il cui sottoalbero contiene una soluzione g di costo minimo e siano α 1,, α k e β 1,, β l i nodi che si trovano lungo il camino tra u e g e u e g, rispettivamente. Per definizione di u, l albero radicato in β 1 non contiene nessuna soluzione di costo c. Per definizione della funzione c abbiamo che mentre invece Per la proprietà di ĉ, ciò implica che c(u) = c(α 1 ) = c(α 2 ) = = c(α k ) = c(g ) c(β 1 ),, c(β l ), c(g) > c(u). ĉ(α 1 ),, ĉ(α k ) > ĉ(β 1 ). Pertanto β 1 verrà espaso dopo che α 1,, α k sono stati espasi e pertanto LeastCost incontrerà prima la soluzione g. 3.3 Lower bounding Il teorema precedente ci dà una condizione sotto la quale la ricerca LeastCost ci conduce alla soluzione ottima. Purtroppo è difficile definire funzioni ĉ che soddisfano la proprietà. Pertanto consideriamo una ricerca Least- Cost leggermente modificata che però garantisce la soluzione ottima sotto assunzioni meno stringenti. Infatti è sufficiente che la funzione ĉ sia, per ogni x, un lower bound alla c(x). Teorema 2 Sia ĉ(x) c(x) per tutti i nodi e ĉ(x) = c(x) per tutti i nodi soluzione. LeastCostMod resituisce sempre una soluzione di costo minimo. Allora la ricerca Dim.: Nel momento in cui viene trovata una soluzione E, abbimao che ĉ(e) ĉ(l) per tutti i nodi vivi L. Per assunzione ĉ(e) = c(e) e ĉ(l) c(l). Pertanto c(e) c(l) per tutti i nodi vivi e quindi E è una soluzione di costo minimo. LeastCostMod(T, ĉ) E T ; Q ; while (1) if E soluzione then print cammino da T a E; return; foreach X child of E Q = Q {X}; P (X) = E; if Q = then print Nessuna soluzione ; E ExtractMin(Q); La versione aggiornata di questo documento si trova all url giuper/asdi/note/search.pdf.
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
DettagliParte V: Rilassamento Lagrangiano
Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice
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
DettagliAlgoritmi e Strutture Dati - II modulo Soluzioni degli esercizi
Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi Francesco Pasquale 6 maggio 2015 Esercizio 1. Su una strada rettilinea ci sono n case nelle posizioni 0 c 1 < c 2 < < c n. Bisogna installare
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
Dettagli5.5 Metodi generali per la soluzione di problemi
5.5 Metodi generali per la soluzione di problemi di PLI I problemi di PLI hanno caratteristiche molto diverse dai problemi di PL. In alcuni casi, la soluzione del problema lineare rilassato, ottenuto cioè
DettagliProgettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [labirinto] Nel testo dell'esercizio abbiamo considerato come lunghezza del percorso il numero di bivi ma possiamo stimare meglio la lunghezza reale
DettagliAlgoritmi e Strutture Dati. HeapSort
Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene
DettagliI. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.
ESERCIZI SVOLTI DI ALGEBRA LINEARE (Sono svolti alcune degli esercizi proposti nei fogli di esercizi su vettori linearmente dipendenti e vettori linearmente indipendenti e su sistemi lineari ) I. Foglio
DettagliAlberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
Dettaglia) Determinare il dominio, i limiti agli estremi del dominio e gli eventuali asintoti di f. Determinare inoltre gli zeri di f e studiarne il segno.
1 ESERCIZI CON SOLUZIONE DETTAGLIATA Esercizio 1. Si consideri la funzione f(x) = e x 3e x +. a) Determinare il dominio, i limiti agli estremi del dominio e gli eventuali asintoti di f. Determinare inoltre
DettagliIntroduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard
Introduzione al Metodo del Simplesso Giacomo Zambelli 1 Soluzioni di base e problemi in forma standard Consideriamo il seguente problema di programmazione lineare (PL), relativo all esempio di produzione
DettagliCercare il percorso minimo Ant Colony Optimization
Cercare il percorso minimo Ant Colony Optimization Author: Luca Albergante 1 Dipartimento di Matematica, Università degli Studi di Milano 4 Aprile 2011 L. Albergante (Univ. of Milan) PSO 4 Aprile 2011
DettagliL algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013
L algoritmo AKS Seminario per il corso di Elementi di Algebra Computazionale Oscar Papini 22 luglio 2013 Test di primalità Come facciamo a sapere se un numero n è primo? Definizione (Test di primalità)
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
DettagliDati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi
Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Dimostrare che un albero non vuoto con n nodi interni, dove ogni nodo interno ha almeno
DettagliVISITA IL SITO PER ALTRO MATERIALE E GUIDE
COPYRIGHT SEGO LICENSE Questo documento viene fornito così come è: se pensate che faccia schifo problemi vostri, nessuno vi obbliga a leggerlo. Se pensate che sia qualcosa di positivo e/o avete suggerimenti
DettagliLinguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi
Linguaggi di Programmazione Corso C Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Grammatiche
DettagliCorso di Calcolo Numerico
Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Risoluzione di Equazioni Algebriche Le equazioni
DettagliAlgoritmi e Strutture Dati - Prof. Roberto De Prisco A.A Seconda prova di verifica (4 Febbraio 2005)
Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A. 004-00 Seconda prova di verifica (4 Febbraio 00) Laurea/Diploma in Informatica Università di Salerno Nome e Cognome: Matricola: 1 3 4 TOTALE /1
DettagliLinguaggi e Grammatiche Liberi da Contesto
N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica
DettagliInformatica Generale Homework di Recupero 2016
Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola
DettagliLa codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
DettagliTecniche Algoritmiche /2 Paradigma selettivo: la tecnica enumerativa e la tecnica di backtracking
Tecniche Algoritmiche /2 Paradigma selettivo: la tecnica enumerativa e la tecnica di backtracking Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola
Dettagli11.4 Chiusura transitiva
6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)
DettagliAlberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliEsempio: rappresentare gli insiemi
Esempio: rappresentare gli insiemi Problema: rappresentare gli insiemi Vedremo che la scelta della rappresentazione per implementarli non è così ovvia come era stato per i numeri razionali In realtà ci
DettagliMetodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)
Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I) Luigi De Giovanni Giacomo Zambelli 1 Problemi di programmazione lineare Un problema
DettagliMetodi generali per la soluzione di problemi di PLI
10 Metodi generali per la soluzione di problemi di PLI Per la soluzione di problemi di PLI non esistono metodi universalmente efficienti. Molto spesso è necessario utilizzare algoritmi ad hoc che siano
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
DettagliEsercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
DettagliAlgoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5
Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 5 In questa lezione inizieremo a studiare gli algoritmi di approssimazione per problemi di ottimizzazione NP-hard
DettagliCorso di Laurea in Matematica Geometria 2. Foglio di esercizi n. 2 a.a Soluzioni
Corso di Laurea in Matematica Geometria 2 Foglio di esercizi n. 2 a.a. 2015-16 Soluzioni Gli esercizi sono presi dal libro di Manetti. Per svolgere questi esercizi, studiare con cura i paragrafi 3.5, 3.6,
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella gfarinella@dmi.unict.it www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)
DettagliSommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP
Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP I conjecture that there is no good algorithm for the traveling salesman problem. My reasons are the same
DettagliCorso di Matematica per la Chimica
Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Pivoting e stabilità Se la matrice A non appartiene a nessuna delle categorie precedenti può accadere che al k esimo passo risulti a (k) k,k = 0, e quindi il
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
DettagliDerivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)
Derivazione numerica Introduzione al calcolo numerico Il calcolo della derivata di una funzione in un punto implica un processo al limite che può solo essere approssimato da un calcolatore. Supponiamo
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 =
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
DettagliGrafi pesati Minimo albero ricoprente
Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene
Dettagli20 + 2y = 60 2y y = 10
Esercizio 7.1 Il testo dell esercizio richiede di calcolare il prezzo ottimale per l impresa in concorrenza monopolistica (noto questo prezzo, è infatti possibile calcolare la variazione di prezzo richiesta).
DettagliGrafi (non orientati e connessi): minimo albero ricoprente
Grafi (non orientati e connessi): minimo albero ricoprente Una breve presentazione Definizioni Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è
DettagliESERCIZI SVOLTI SUL CALCOLO INTEGRALE
ESERCIZI SVOLTI SUL CALCOLO INTEGRALE * Tratti dagli appunti delle lezioni del corso di Matematica Generale Dipartimento di Economia - Università degli Studi di Foggia Prof. Luca Grilli Dott. Michele Bisceglia
DettagliECONOMIA APPLICATA ALL INGEGNERIA (Docente: Prof. Ing. Donato Morea)
ESERCIZIO n. 1 - La produzione ed i costi di produzione (1 ) Un impresa utilizza una tecnologia descritta dalla seguente funzione di produzione: I prezzi dei fattori lavoro e capitale sono, rispettivamente,
DettagliOrdinamenti per confronto: albero di decisione
Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto
DettagliEquazioni differenziali lineari del secondo ordine a coefficienti costanti
Equazioni differenziali lineari del secondo ordine a coefficienti costanti 0.1 Introduzione Una equazione differenziale del secondo ordine è una relazione del tipo F (t, y(t), y (t), y (t)) = 0 (1) Definizione
DettagliRiassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.
Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo
DettagliUniversità degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni
Università degli Studi di Udine Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni 1 Automi e Linguaggi 1. Sia dato p N, p > 0 dimostri che il linguaggio è regolare. L p = { a 0 a 1... a
DettagliApplicazioni lineari tra spazi euclidei. Cambi di base.
pplicazioni lineari tra spazi euclidei. Cambi di base. Esercizio. Data la seguente applicazione lineare f : R R : f(x, y, z) = (x z, x + y, y + z), scrivere la matrice B, rappresentativa di f rispetto
DettagliSISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI
SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI Appunti presi dalle lezioni del prof. Nedo Checcaglini Liceo Scientifico di Castiglion Fiorentino (Classe 4B) January 17, 005 1 SISTEMI LINEARI Se a ik, b i R,
DettagliOttimizza la somma. Supponete di avere in input un vettore di n interi positivi distinti V [1... n] e un valore W. Scrivere un algoritmo che:
Ottimizza la somma Supponete di avere in input un vettore di n interi positivi distinti V [1... n] e un valore W. Scrivere un algoritmo che: 1 restituisca il massimo valore X = n i=1 x[i]v [i] tale che
DettagliSottospazi vettoriali. Nota Bene: Questo materiale non deve essere considerato come sostituto delle lezioni.
Politecnico di Torino. Sottospazi vettoriali. Nota Bene: Questo materiale non deve essere considerato come sostituto delle lezioni. Argomenti: Sottospazi. Generatori. Confrontando sottospazi: intersezione.
DettagliMicroeconomia - Problem set 4 - soluzione
Microeconomia - Problem set 4 - soluzione (Prof Paolo Giordani - TA: Pierluigi Murro) 2 Maggio 2015 Esercizio 1 Calcolare i prodotti marginali di ciascun fattore produttivo (P M 1, P M 2 ) e il saggio
DettagliContenuto e scopo presentazione. Modelli Lineari Interi/Misti. Piani di taglio. Piani di taglio. Piani di taglio Versione 31/08/
Contenuto e scopo presentazione Contenuto: viene presentato un altro metodo di soluzione di problemi di ILP o di MILP. Modelli Lineari Interi/Misti Piani di taglio Versione /8/. Scopo: fornire le capacità
DettagliUNIVERSITÀ di ROMA TOR VERGATA
UNIVERSITÀ di ROMA TOR VERGATA Corso di PS-Probabilità P.Baldi Tutorato 9, 19 maggio 11 Corso di Laurea in Matematica Esercizio 1 a) Volendo modellizzare l evoluzione della disoccupazione in un certo ambito
DettagliCalcolo integrale. Regole di integrazione
Calcolo integrale Linearità dell integrale Integrazione per parti Integrazione per sostituzione Integrazione di funzioni razionali 2 2006 Politecnico di Torino Proprietà Siano e funzioni integrabili su
Dettagli8. Completamento di uno spazio di misura.
8. Completamento di uno spazio di misura. 8.1. Spazi di misura. Spazi di misura completi. Definizione 8.1.1. (Spazio misurabile). Si chiama spazio misurabile ogni coppia ordinata (Ω, A), dove Ω è un insieme
DettagliUniversita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni
Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni ANALISI NUMERICA - Primo Parziale - TEMA A (Prof. A.M.Perdon)
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,
DettagliSviluppi e derivate delle funzioni elementari
Sviluppi e derivate delle funzioni elementari In queste pagine dimostriamo gli sviluppi del prim ordine e le formule di derivazioni delle principali funzioni elementari. Utilizzeremo le uguaglianze lim
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 10 novembre 2010 1 La bandiera nazionale (problema 4.7 del libro di testo). Il problema della bandiera
DettagliIn molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.
Definizione Oggetto del calcolo combinatorio è quello di determinare il numero dei modi mediante i quali possono essere associati, secondo prefissate regole, gli elementi di uno stesso insieme o di più
DettagliEsercizi di Matematica per la prova di ammissione alla Scuola Galileiana /16
Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana - 015/16 Esercizio 1 Per quali valori n Z \ {0} l espressione è un numero intero positivo? (n + 5)(n + 6) 6n Soluzione. Il problema
DettagliLa fattorizzazione e la phi di Eulero
La fattorizzazione e la phi di Eulero Di Cristiano Armellini, cristiano.armellini@alice.it Supponiamo di voler trovare i fattori p, q del numero intero n (anche molto grande). Dalla Teoria dei numeri sappiamo
DettagliAnno 4 Matrice inversa
Anno 4 Matrice inversa 1 Introduzione In questa lezione parleremo della matrice inversa di una matrice quadrata: definizione metodo per individuarla Al termine della lezione sarai in grado di: descrivere
DettagliAlgoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc
Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Grafo Un grafo G è una coppia (V, E) ove V è un
DettagliMassimi e minimi vincolati
Massimi e minimi vincolati Data una funzione G C 1 (D), dove D è un aperto di R 2, sappiamo bene dove andare a cercare gli eventuali punti di massimo e minimo relativi. Una condizione necessaria affinché
Dettaglia + 2b + c 3d = 0, a + c d = 0 c d
SPAZI VETTORIALI 1. Esercizi Esercizio 1. Stabilire quali dei seguenti sottoinsiemi sono sottospazi: V 1 = {(x, y, z) R 3 /x = y = z} V = {(x, y, z) R 3 /x = 4} V 3 = {(x, y, z) R 3 /z = x } V 4 = {(x,
DettagliLEZIONE 15. (15.1.2) p(x) = a 0 x n + a 1 x n a n 1 x + a n = a h x n h.
LEZIONE 15 15.1. Polinomi a coefficienti complessi e loro e loro radici. In questo paragrafo descriveremo alcune proprietà dei polinomi a coefficienti complessi e delle loro radici. Già nel precedente
DettagliInsiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative.
Insiemi Specifiche, rappresentazione e confronto tra realizzazioni alternative. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro Definizione
DettagliEsercizi sui sistemi di equazioni lineari.
Esercizi sui sistemi di equazioni lineari Risolvere il sistema di equazioni lineari x y + z 6 x + y z x y z Si tratta di un sistema di tre equazioni lineari nelle tre incognite x, y e z Poichè m n, la
DettagliMetodo dei minimi quadrati e matrice pseudoinversa
Scuola universitaria professionale della Svizzera italiana Dipartimento Tecnologie Innovative Metodo dei minimi quadrati e matrice pseudoinversa Algebra Lineare Semestre Estivo 2006 Metodo dei minimi quadrati
DettagliSIMULAZIONE - 29 APRILE QUESITI
www.matefilia.it SIMULAZIONE - 29 APRILE 206 - QUESITI Q Determinare il volume del solido generato dalla rotazione attorno alla retta di equazione y= della regione di piano delimitata dalla curva di equazione
DettagliCap. 2 - Rappresentazione in base 2 dei numeri interi
Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:
DettagliCorso di Laurea in Fisica. Geometria. a.a Canale 3 Prof. P. Piazza Magiche notazioni
Corso di Laurea in Fisica. Geometria. a.a. 23-4. Canale 3 Prof. P. Piazza Magiche notazioni Siano V e W due spazi vettoriali e sia T : V W un applicazione lineare. Fissiamo una base B per V ed una base
DettagliEquazioni, funzioni e algoritmi: il metodo delle secanti
Equazioni, funzioni e algoritmi: il metodo delle secanti Christian Ferrari 1 Introduzione La risoluzione di equazioni in R ci ha mostrato che solo per le equazioni polinomiali di primo e secondo grado,
DettagliCorso di Laurea in Matematica Geometria 2. Foglio di esercizi n. 5 a.a Soluzioni
Corso di Laurea in Matematica Geometria 2 Foglio di esercizi n. 5 a.a. 2015-16 Soluzioni Gli esercizi sono presi dal libro di Manetti. Per svolgere questi esercizi, studiare con cura i paragrafi 10.1,
DettagliLezione 17 Ugo Vaccaro
Teoria dell Informazione II Anno Accademico 2015 2016 Lezione 17 Ugo Vaccaro Nella Lezione scorsa abbiamo introdotto una classe di codici a correzione di errore (codici di Hamming) in grado di correggere
DettagliConversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due
Conversione di base Dato N>0 intero convertirlo in base b dividiamo N per b, otteniamo un quoto Q 0 ed un resto R 0 dividiamo Q 0 per b, otteniamo un quoto Q 1 ed un resto R 1 ripetiamo finché Q n < b
DettagliProblemi di Flusso: Il modello del Trasporto
Problemi di Flusso: Il modello del rasporto Andrea Scozzari a.a. 2014-2015 April 27, 2015 Andrea Scozzari (a.a. 2014-2015) Problemi di Flusso: Il modello del rasporto April 27, 2015 1 / 25 Problemi su
DettagliLaboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso
Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso
Dettagli2. Algoritmi e Programmi
12 2. Algoritmi e Programmi Dato un problema, per arrivare ad un programma che lo risolva dobbiamo: individuare di cosa dispongo: gli input; definire cosa voglio ottenere: gli output; trovare un metodo
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
DettagliCAPITOLO 1 LA FUNZIONE DI PRODUZIONE E LA CRESCITA ECONOMICA
CAPITOLO 1 LA FUZIOE DI PRODUZIOE E LA CRESCITA ECOOMICA 11 La funzione di produzione Data una funzione di produzione in cui la quantità prodotta () dipende dalla quantità di capitale () e di lavoro ()
DettagliStudio di circuiti contenenti diodi Uso di modelli semplificati
STUDIO DI CIRCUITI CONTENENTI DIODI USO DI MODELLI SEMPLIFICATI 1 Primo modello 2 Secondo modello 4 Terzo modello 6 La caratteristica e la retta di carico 8 Studio di circuiti contenenti diodi Uso di modelli
DettagliPrimo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale
Primo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini luca@chiodini.org - l.chiodini@campus.unimib.it 10 marzo 2016 Programma 1. Lettura di un problema tratto dalle
DettagliCorso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
DettagliProblema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi :
Per almeno una delle soluzioni ottime { P i, i r } del problema generalizzato, l unione dei cammini P i forma un albero di copertura per G radicato in r e orientato, ossia un albero la cui radice è r i
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
DettagliRilassamento Lagrangiano
Rilassamento Lagrangiano AA 2009/10 1 Rilassamento Lagrangiano Tecnica più usata e conosciuta in ottimizzazione combinatoria per il calcolo di lower/upper bounds (Held and Karp (1970)). Si consideri il
DettagliRouting. Forwarding e routing
Routing E necessario stabilire un percorso quando host sorgente e destinazione non appartengono alla stessa rete Router di default si occupa di instradare il traffico all esterno della rete Router sorgente:
Dettaglipercorso 4 Estensione on line lezione 2 I fattori della produzione e le forme di mercato La produttività La produzione
Estensione on line percorso 4 I fattori della produzione e le forme di mercato lezione 2 a produzione a produttività Una volta reperiti i fattori produttivi necessari l imprenditore dovrà decidere come
DettagliLEZIONE 23. ax 2 + bxy + cy 2 + dx + ey + f
LEZIONE 23 23.1. Riduzione delle coniche a forma canonica. Fissiamo nel piano un sistema di riferimento Oxy e consideriamo un polinomio di grado 2 in x, y a meno di costanti moltiplicative non nulle, diciamo
DettagliFunzioni elementari: funzioni potenza
Funzioni elementari: funzioni potenza Lezione per Studenti di Agraria Università di Bologna (Università di Bologna) Funzioni elementari: funzioni potenza 1 / 36 Funzioni lineari Come abbiamo già visto,
DettagliSoluzione Problema 1
Soluzione Problema 1 1. Ricordiamo che una funzione h(x) è derivabile in un punto c se esiste finita la sua derivata nel punto c. Per il significato geometrico della derivata ciò significa che esiste ed
DettagliScopo del laboratorio
p. 1/1 Scopo del laboratorio Imparare ad usare programmi che implementino metodi di ottimizzazione: simplesso, branch and bound ecc. utilizzarli per risolvere un problema proposto Modellatori Solver p.
DettagliComplementi di Analisi Matematica Ia. Carlo Bardaro
Complementi di Analisi Matematica Ia Carlo Bardaro Capitolo 1 Elementi di topologia della retta reale 1.1 Intorni, punti di accumulazione e insiemi chiusi Sia x 0 IR un fissato punto di IR. Chiameremo
DettagliLezione 3 - Teoria dei Numeri
Lezione 3 - Teoria dei Numeri Problema 1 Trovare il più piccolo multiplo di 15 formato dalle sole cifre 0 e 8 (in base 10). Il numero cercato dev'essere divisibile per 3 e per 5 quindi l'ultima cifra deve
Dettagli