Algoritmi di Ricerca
|
|
|
- Marco Spinelli
- 8 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
Parte 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
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
Algoritmi 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
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
5.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è
Progettazione 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
Algoritmi 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
I. 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
Alberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
a) 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
Introduzione 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
Cercare 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
L 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à)
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
Dati 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
Linguaggi 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 ([email protected]) Dipartimento di Informatica Università degli Studi di Bari Grammatiche
Corso 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
Linguaggi 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
Informatica 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
La 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
Tecniche 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
11.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)
Alberi 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
Metodi 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
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
Esercitazione 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
Corso 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,
Alberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella [email protected] www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
Appunti 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 ([email protected])
Sommario. 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
Corso 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
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
Derivazione 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
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 =
Esercizi 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
Grafi 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
20 + 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).
ESERCIZI 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
ECONOMIA 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,
Ordinamenti 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
Equazioni 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
Riassumiamo 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
SISTEMI 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,
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:
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
Sottospazi 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.
Microeconomia - 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
Contenuto 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à
UNIVERSITÀ 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
Calcolo 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
8. 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
Universita 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)
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,
Sviluppi 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
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 10 novembre 2010 1 La bandiera nazionale (problema 4.7 del libro di testo). Il problema della bandiera
In 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ù
Esercizi 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
La fattorizzazione e la phi di Eulero
La fattorizzazione e la phi di Eulero Di Cristiano Armellini, [email protected] Supponiamo di voler trovare i fattori p, q del numero intero n (anche molto grande). Dalla Teoria dei numeri sappiamo
Anno 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
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 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
Massimi 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é
a + 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,
LEZIONE 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
Insiemi 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
Esercizi 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
Metodo 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
SIMULAZIONE - 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
Cap. 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:
Corso 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
Equazioni, 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,
Corso 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,
Conversione 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
Problemi 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
Laboratorio 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
2. 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
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
CAPITOLO 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 ()
Studio 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
Primo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale
Primo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini [email protected] - [email protected] 10 marzo 2016 Programma 1. Lettura di un problema tratto dalle
Corso 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
Problema 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
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
Rilassamento 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
Routing. 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:
percorso 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
LEZIONE 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
Funzioni 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,
Soluzione 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
Complementi 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
Lezione 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
