6.6 Sequence Alignment

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "6.6 Sequence Alignment"

Transcript

1 6.6 Sequence Alignment

2 E capitato anche a voi? Di digitare sul computer una parola in maniera sbagliata (per esempio usando un dizionario sul Web): AGORITNI E sentirsi chiedere: «Forse cercavi ALGORITMI?» Come fanno a capirlo? Sanno veramente cosa abbiamo in mente???? Non trovando AGORITNI sul dizionario ha cercato una parola «simile», «vicina»

3 String Similarity How similar are two strings? ocurrance occurrence o c u r r a n c e - o c c u r r e n c e 6 mismatches, 1 gap o c - u r r a n c e o c c u r r e n c e 1 mismatch, 1 gap o c - u r r - a n c e o c c u r r e - n c e 0 mismatches, 3 gaps 3

4 Applications. Basis for Unix diff Speech recognition Edit Distance Computational biology (sequenze di simboli nel DNA rappresentano proprietà degli organismi) Edit distance. [Levenshtein 1966, Needleman-Wunsch 1970] Gap penalty ; mismatch penalty pq (you may assume pp =0). Cost = sum of gap and mismatch penalties. C T G A C C T A C C T - C T G A C C T A C C T C C T G A C T A C A T C C T G A C - T A C A T TC + GT + AG+ 2 CA 2 + CA 4

5 Sequence Alignment Goal: Given two strings X = x 1 x 2... x m and Y = y 1 y 2... y n find alignment of minimum cost. Def. An alignment M is a set of ordered pairs x i -y j such that each item occurs in at most one pair and no crossings. Def. The pair x i -y j and x i' -y j' cross if i < i', but j > j'. cost(m) x i y j (x i, y j ) M i : x i unmatched j : y j unmatched mismatch gap Ex: CTACCG vs TACATG. Sol: M = x 2 -y 1, x 3 -y 2, x 4 -y 3, x 5 -y 4, x 6 -y 6. 5 x 1 x 2 x 3 x 4 x 5 x 6 C T A C C - - T A C A T G G y 1 y 2 y 3 y 4 y 5 y 6

6 Sequence Alignment: Problem Structure Def. OPT(i, j) = min cost of aligning strings x 1 x 2... x i and y 1 y 2... y j. Case 1: OPT matches x i -y j. pay mismatch for x i -y j + min cost of aligning two strings x 1 x 2... x i-1 and y 1 y 2... y j-1 Case 2a: OPT leaves x i unmatched. pay gap for x i and min cost of aligning x 1 x 2... x i-1 and y 1 y 2... y j Case 2b: OPT leaves y j unmatched. pay gap for y j and min cost of aligning x 1 x 2... x i and y 1 y 2... y j-1 OPT( i, j) min i j x i y j OPT( i 1, j OPT( i 1, j) OPT( i, j 1) 1) if i 0 otherwise if j 0 6

7 Sequence Alignment: Algorithm Sequence-Alignment(m, n, x 1 x 2...x m, y 1 y 2...y n,, ) { for i = 0 to m M[0, i] = i for j = 0 to n M[j, 0] = j } for i = 1 to m for j = 1 to n M[i, j] = min( [x i, y j ] + M[i-1, j-1], + M[i-1, j], + M[i, j-1]) return M[m, n] Analysis. (mn) time and space. English words or sentences: m, n 10. Computational biology: m = n = 100, billions ops OK, but 10GB array? 7

8 Sequence Alignment: Linear Space Q. Can we avoid using quadratic space? Easy. Optimal value in O(m + n) space and O(mn) time. Compute OPT(i, ) from OPT(i-1, ). No longer a simple way to recover alignment itself. Theorem. [Hirschberg 1975] Optimal alignment in O(m + n) space and O(mn) time. Clever combination of divide-and-conquer and dynamic programming. Inspired by idea of Savitch from complexity theory. 8

9 Ricostruzione dell allineamento OPT( i, j) min i j x i y j OPT( i 1, j OPT( i 1, j) OPT( i, j 1) 1) if i 0 otherwise if j 0 Per ricostruire l allineamento seguiamo il percorso all indietro nella matrice Esempio: X = mean, Y= name = 2 costo mismatch fra vocali differenti=1 costo mismatch fra consonanti differenti=1 costo mismatch fra vocale e consonante=3 La freccia nella casella (i,j) proviene dalla casella usata per ottenere il minimo M[4,4]= min{ n e + M[3,3], + M[3,4], +M[4,3]}= = min { 3+ 5, 2+5, 2+4} =

10 Ricostruzione soluzione ottima

11 Una visione grafica del problema del sequence alignment Ad X = x 1 x 2 x 3 e Y = y 1 y 2 y 3 y 4 associamo il grafo G XY seguente: nodo (i,j) in corrispondenza di x i e y j costi archi orizzontali e verticali = costo arco diagonale verso (i,j) = xi, yj

12 Un esempio n a e m n a m e costi archi orizzontali e verticali = costo arco diagonale verso (i,j) = xi, yj = 2 costo mismatch fra vocali differenti=1 costo mismatch fra consonanti differenti=1 costo mismatch fra vocale econsonante=3 Trovare allineamento di costo minimo fra X e Y equivale a cercare il cammino di costo minimo in G XY dal nodo in basso a sinistra a quello in alto a destra. Prova per induzione (fare) Studieremo algoritmi per la ricerca di cammini di costo minimo in un grafo, ma non apporteranno miglioramenti al tempo di esecuzione.

13 Tale proprietà è detta: Proprietà della Sottostruttura Ottima.

14 Proprietà della sottostruttura ottima: Sequence Alignment 1 OPT(i, j) = min cost of aligning strings x 1 x 2... x i and y 1 y 2... y j OPT è un allineamento ottimale per x 1 x 2... x i and y 1 y 2... y j. Case 1: OPT matches x i -y j. pay mismatch for x i -y j + min cost of aligning two strings x 1 x 2... x i-1 and y 1 y 2... y j-1 Quindi OPT= { x i -y j } X, con X insieme di coppie ordinate Il punto cruciale qui è che X : è una soluzione, cioè è un allineamento per x 1 x 2... x i-1 e y 1 y 2... y j-1 (perché OPT lo è, quindi le posizioni non si incrociano etc.) è ottima, cioè ha cardinalità massima fra le soluzioni al sottoproblema per x 1 x 2... x i-1 e y 1 y 2... y j-1 (infatti, se così non fosse, esisterebbe una soluzione OPT per x 1 x 2... x i-1 e y 1 y 2... y j-1 di cardinalità OPT( i, j) OPT( i 1, j x i y j strettamente 14 superiore a quella di X e allora OPT {x i -y j } sarebbe una 1)

15 Proprietà della sottostruttura ottima: Sequence Alignment 2 OPT(i, j) = min cost of aligning strings x 1 x 2... x i and y 1 y 2... y j. Case 2a: OPT leaves x i unmatched. pay gap for x i and min cost of aligning x 1 x 2... x i-1 and y 1 y 2... y j Case 2b: OPT leaves y j unmatched. pay gap for y j and min cost of aligning x 1 x 2... x i and y 1 y 2... y j-1 In maniera analoga 15

16 Proprietà della sottostruttura ottima: Scheduling di attività Il punto cruciale qui è che O {n} : è una soluzione, cioè è un insieme di attività compatibili di {1,, p(n)} (perché le attività di O sono compatibili) è ottima, cioè ha cardinalità massima fra le soluzioni al sottoproblema relativo alle attività {1,, p(n)} (infatti, se così non fosse, esisterebbe una soluzione O per {1,, p(n)} di cardinalità strettamente superiore a quella di O {n} e allora O {n} sarebbe una soluzione strettamente migliore di O.

17

18 Esercizi: varianti al problema dello zaino

19

20 Dall elenco

21 Dall elenco

22 Esercizio 1 pag. 312 KT punto a) [continua ]

23 Esercizio 1 pag. 312 KT punti b) e c)

24 Prossime lezioni Lezione 2 nov: rinviata Lezione mercoledì 7 nov ore Lab P13

6.5 RNA Secondary Structure. 18 novembre 2014

6.5 RNA Secondary Structure. 18 novembre 2014 6.5 RNA Secondary Structure 18 novembre 2014 Calendario Oggi è la lezione 17/24: ultima lezione su Programmazione dinamica Metodo greedy: 18, 19 Grafi: 20, 21, 22, 23 Reti di flusso: 23, 24 (=mercoledì

Dettagli

6.5 RNA Secondary Structure

6.5 RNA Secondary Structure 6.5 RNA Secondary Structure Struttura di una biomolecola Biomolecola: DNA, RNA Struttura primaria: descrizione esatta della sua composizione atomica e dei legami presenti fra gli atomi Struttura secondaria:

Dettagli

Subset sums. Input n job 1,2,,n il job i richiede tempo w i > 0. Un limite W al tempo per il quale il processore puo` essere utilizzato

Subset sums. Input n job 1,2,,n il job i richiede tempo w i > 0. Un limite W al tempo per il quale il processore puo` essere utilizzato Subset sums Input n job,2,,n il job i richiede tempo w i >. Un limite W al tempo per il quale il processore puo` essere utilizzato Obiettivo: selezionare un sottoinsieme S degli n job tale che sia quanto

Dettagli

Programmazione dinamica (II parte)

Programmazione dinamica (II parte) Programmazione dinamica (II parte) Progettazione di Algoritmi a.a. 2017-18 Matricole congrue a 1 Docente: Annalisa De Bonis 41 Esercizio 27 cap. 6 I proprietari di una pompa di carburante devono confrontarsi

Dettagli

Programmazione dinamica: Selezione di intervalli pesati. 12 ottobre 2015

Programmazione dinamica: Selezione di intervalli pesati. 12 ottobre 2015 Programmazione dinamica: Selezione di intervalli pesati 12 ottobre 2015 Appello 29 gennaio 2015 Quesito 2 (24 punti) Dopo la Laurea in Informatica avete aperto un campo di calcetto che ha tantissime richieste

Dettagli

Tipici tempi di esecuzione. Martedì 7 ottobre 2014

Tipici tempi di esecuzione. Martedì 7 ottobre 2014 Tipici tempi di esecuzione Martedì 7 ottobre 2014 Punto della situazione Abbiamo definito il tempo di esecuzione di un algoritmo Scelto l analisi asintotica Abbiamo definito le notazioni asintotiche che

Dettagli

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2.

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. Sono date le seguenti regole: regola(1,[p,q],a) regola(2,[b,x,a],w) regola(3,[h],c) regola(4,[a,n,q],v)

Dettagli

Progettazione di Algoritmi (4, 6, 9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 30 Gennaio 2019.

Progettazione di Algoritmi (4, 6, 9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 30 Gennaio 2019. COGNOME: Nome: Progettazione di Algoritmi (4, 6, 9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 30 Gennaio 2019 Attenzione: Inserire i propri dati nell apposito spazio soprastante

Dettagli

Algoritmi Priority-Driven RT. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo

Algoritmi Priority-Driven RT. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo Algoritmi Priority-Driven RT Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo 2 Algoritmi Real Time Earliest Due Date (statico) Seleziona il task con la deadline relativa più

Dettagli

Programmazione dinamica: Selezione di intervalli pesati. 4 novembre 2014

Programmazione dinamica: Selezione di intervalli pesati. 4 novembre 2014 Programmazione dinamica: Selezione di intervalli pesati 4 novembre 2014 6.1 Weighted Interval Scheduling Interval scheduling problem. Interval Scheduling Job j starts at s j, finishes at f j. Two jobs

Dettagli

Finite Model Theory / Descriptive Complexity: bin

Finite Model Theory / Descriptive Complexity: bin , CMPSCI 601: Recall From Last Time Lecture 19 Finite Model Theory / Descriptive Compleity: Th: FO L DSPACE Fagin s Th: NP SO. bin is quantifier-free.!#"$&% ('*), 1 Space 0 1 ) % Time $ "$ $ $ "$ $.....

Dettagli

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2.

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. Siano date le seguenti regole: regola(1,[a,p,f],g) regola(2,[c,x],n) regola(3,[n,g],w) regola(4,[p,c,x],d)

Dettagli

Ottimizzazione Combinatoria J and 6.855J and ESD.78J

Ottimizzazione Combinatoria J and 6.855J and ESD.78J Ottimizzazione Combinatoria 2 Cammino Minimo Vincolato Un esempio basato sulle slide della seguente lezione del Corso Network Optimization MITOpenCourseware http://ocw.mit.edu/courses/sloan-school-of-management/-082j-network-optimization-fall-200/.082j

Dettagli

Programmazione dinamica. Progettazione di Algoritmi a.a Matricole congrue a 1 Docente: Annalisa De Bonis

Programmazione dinamica. Progettazione di Algoritmi a.a Matricole congrue a 1 Docente: Annalisa De Bonis Programmazione dinamica Progettazione di Algoritmi a.a. 2016-17 Matricole congrue a 1 Docente: Annalisa De Bonis 1 Paradigmi della Progettazione degli Algoritmi Greedy. Costruisci una soluzione in modo

Dettagli

Algoritmo di Huffman: correttezza (Coin changing) Grafi

Algoritmo di Huffman: correttezza (Coin changing) Grafi Algoritmo di Huffman: correttezza (Coin changing) Grafi Punto Analisi di algoritmi (notazioni asintotiche, relazioni di ricorrenza) Tecniche di progettazione: divide et impera, programmazione dinamica,

Dettagli

Programmazione dinamica. Progettazione di Algoritmi a.a Matricole congrue a 1 Docente: Annalisa De Bonis

Programmazione dinamica. Progettazione di Algoritmi a.a Matricole congrue a 1 Docente: Annalisa De Bonis Programmazione dinamica Progettazione di Algoritmi a.a. 2015-16 Matricole congrue a 1 Docente: Annalisa De Bonis 1 Paradigmi della Progettazione degli Algoritmi reedy. Costruisci una soluzione in modo

Dettagli

Corso di Perfezionamento

Corso di Perfezionamento Programmazione Dinamica 1 1 Dipartimento di Matematica e Informatica Università di Camerino 15 febbraio 2009 Tecniche di Programmazione Tecniche di progettazione di algoritmi: 1 Divide et Impera 2 Programmazione

Dettagli

Allineamento multiplo di sequenze

Allineamento multiplo di sequenze Allineamento multiplo di sequenze Bioinformatica a.a. 2008/2009 Letterio Galletta Università di Pisa 22 Maggio 2009 Letterio Galletta (Università di Pisa) Allineamento multiplo di sequenze 22 Maggio 2009

Dettagli

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2.

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. Sono date le seguenti regole: regola(1,[p,d,r],w) regola(2,[a,t,u],p) regola(3,[a,b,r],u)

Dettagli

la edit distance tra X e Y è la distanza relativa all allineamento (o agli allineamenti) che minimizza tale distanza.

la edit distance tra X e Y è la distanza relativa all allineamento (o agli allineamenti) che minimizza tale distanza. Algoritmica 14/15 EDIT DISTANCE Il problema della edit distance (distanza di edizione, in una versione in italiano scarsamente usata) è alla base dei problemi di confronto fra sequenze perché il meccanismo

Dettagli

Calcolo dell n-esimo numero di Fibonacci

Calcolo dell n-esimo numero di Fibonacci Calcolo dell n-esimo numero di Fibonacci Formulazione F n F F F 0 1 n 0 1 F, n 2 1 n2 Algoritmo numerico F n 1 5 n n 1 2 5 1 2 5, 1 Algoritmo ricorsivo Complessità T ( n) 2 T ( n 1) T ( n 2) T ( n) 3F

Dettagli

Optmization Methods for Machine Learning. Gradient method for multilayer perceptron

Optmization Methods for Machine Learning. Gradient method for multilayer perceptron Optmization Methods for Machine Learning Laura Palagi http://www.dis.uniroma1.it/ palagi Dipartimento di Ingegneria informatica automatica e gestionale A. Ruberti Sapienza Università di Roma Via Ariosto

Dettagli

Programmazione Dinamica (PD)

Programmazione Dinamica (PD) Programmazione Dinamica (PD) Altra tecnica per risolvere problemi di ottimizzazione, piu generale degli algoritmi greedy La programmazione dinamica risolve un problema di ottimizzazione componendo le soluzioni

Dettagli

Introduzione a Matlab

Introduzione a Matlab Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie dell Informazione via Bramante 65, 26013 Crema (CR), Italy ruggero.donida@unimi.it Perché? MATLAB is a high-level technical computing

Dettagli

Open walk: Nodo di partenza diverso da quello di arrivo Close walk: Nodo di partenza coincidente con quello di arrivo

Open walk: Nodo di partenza diverso da quello di arrivo Close walk: Nodo di partenza coincidente con quello di arrivo Connettività WALK, TRAIL, PATH Walk (passeggiata) Walk (passeggiata): Una passeggiata è una sequenza di nodi e link che inizia e finisce con un nodo, in cui ogni nodo è incidente allo spigolo che lo precede

Dettagli

Introduzione Presentazione del problema. Soluzione standard Primo algoritmo Premesse e definizioni. Secondo algoritmo. Conclusioni.

Introduzione Presentazione del problema. Soluzione standard Primo algoritmo Premesse e definizioni. Secondo algoritmo. Conclusioni. Introduzione Presentazione del problema Analogiecon problemi noti Stato dell arte Soluzione standard Primo algoritmo Premesse e definizioni Idee generali Implementazione ed analisi della complessità Secondo

Dettagli

ESISTENZA DI INFINITI NUMERI PRIMI REGOLARI. Francesco Di Noto, Michele Nardelli. In this paper we describe about the regular prime

ESISTENZA DI INFINITI NUMERI PRIMI REGOLARI. Francesco Di Noto, Michele Nardelli. In this paper we describe about the regular prime ESISTENZA DI INFINITI NUMERI PRIMI REGOLARI Gruppo B. Riemann * Francesco Di Noto, Michele Nardelli *Gruppo amatoriale per la ricerca matematica sui numeri primi, sulle loro congetture e sulle loro connessioni

Dettagli

Pairwise Sequence Alignment BIOINFORMATICA. Corso di Laurea in Ingegneria Informatica e Biomedica. Università Magna Graecia Catanzaro

Pairwise Sequence Alignment BIOINFORMATICA. Corso di Laurea in Ingegneria Informatica e Biomedica. Università Magna Graecia Catanzaro Pairwise Sequence Alignment BIOINFORMATICA Corso di Laurea in Ingegneria Informatica e Biomedica Università Magna Graecia Catanzaro Outline Similarità Allineamento Omologia Allineamento Esatto di Coppie

Dettagli

Corso di Bioinformatica. Docente: Dr. Antinisca DI MARCO

Corso di Bioinformatica. Docente: Dr. Antinisca DI MARCO Corso di Bioinformatica Docente: Dr. Antinisca DI MARCO Email: antinisca.dimarco@univaq.it Analisi Filogenetica Gene Ancestrale duplicazione genica La filogenesi è lo studio delle relazioni evolutive tra

Dettagli

U Corso di italiano, Lezione Quattordici

U Corso di italiano, Lezione Quattordici 1 U Corso di italiano, Lezione Quattordici F Hi. A bit of grammar today Do you remember? In Italian, there are two ways to address people. You can either talk to someone in an informal way, for example

Dettagli

ALLINEAMENTO DI SEQUENZE

ALLINEAMENTO DI SEQUENZE ALLINEAMENTO DI SEQUENZE Procedura per comparare due o piu sequenze, volta a stabilire un insieme di relazioni biunivoche tra coppie di residui delle sequenze considerate che massimizzino la similarita

Dettagli

Scuola Sec. Sec. grado IND. Gara 3-16/17

Scuola Sec. Sec. grado IND. Gara 3-16/17 ESERCIZIO 1 Si faccia riferimento alla GUIDA - OPS 2017, problema ricorrente MOVIMENTO DI UN ROBOT O DI UN PEZZO DEGLI SCACCHI. PROBLEMA In un campo di gara il robot è nella casella [10,12] con orientamento

Dettagli

Graphs: Cycles. Tecniche di Programmazione A.A. 2012/2013

Graphs: Cycles. Tecniche di Programmazione A.A. 2012/2013 Graphs: Cycles Tecniche di Programmazione Summary Definitions Algorithms 2 Definitions Graphs: Cycles Cycle A cycle of a graph, sometimes also called a circuit, is a subset of the edge set of that forms

Dettagli

Ottimizzazione Combinatoria Introduzione

Ottimizzazione Combinatoria Introduzione Ottimizzazione Combinatoria Introduzione ANTONIO SASSANO Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Roma, 2010 Problema di Decisione Soluzioni S = insieme delle possibili

Dettagli

Allineamento di Sequenze

Allineamento di Sequenze Allineamento di Sequenze (e strutture dati) Alberto Policriti Dipartimento di Matematica e Informatica Istituto di Genomica Applicata 2 Maggio, 2017 A. Policriti Allineamento e 1/31 The Plan Allineamento

Dettagli

Metodo greedy. 26 novembre esima lezione

Metodo greedy. 26 novembre esima lezione Metodo greedy 26 novembre 2014 19-esima lezione Calendario 19. Mercoledì 26 novembre (oggi): Greedy 2 20. Martedì 2 dicembre 9-11: Greedy 3:Huffman 21. Mercoledì 3 dicembre: Grafi 1 22. Martedì 9 dicembre:

Dettagli

Constant Propagation. A More Complex Semilattice A Nondistributive Framework

Constant Propagation. A More Complex Semilattice A Nondistributive Framework Constant Propagation A More Complex Semilattice A Nondistributive Framework 1 The Point Instead of doing constant folding by RD s, we can maintain information about what constant, if any, a variable has

Dettagli

Esercizi Programming Contest

Esercizi Programming Contest Esercizi Programming Contest Alberto Montresor 22 maggio 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Programmazione dinamica

Programmazione dinamica Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)

Dettagli

Algoritmi e Strutture Dati. Capitolo 10 Tecniche algoritmiche

Algoritmi e Strutture Dati. Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati Capitolo 10 Tecniche algoritmiche Programmazione Dinamica: principi generali 1) identificare un numero piccolo di sottoproblemi es: calcolare l II di peso massimo di G j, j=1,,n

Dettagli

Biologia Molecolare Computazionale

Biologia Molecolare Computazionale Biologia Molecolare Computazionale Paolo Provero - paolo.provero@unito.it 2008-2009 Argomenti Allineamento di sequenze Ricostruzione di alberi filogenetici Gene prediction Allineamento Allineamento di

Dettagli

Aree. ! Bioinformatica. ! Teoria dei Controlli. ! Teoria dell Informazione. ! Ricerca Operativa.

Aree. ! Bioinformatica. ! Teoria dei Controlli. ! Teoria dell Informazione. ! Ricerca Operativa. 0// Paradigmi algoritmici Chapter Dynamic Programming reedy. Costruisce la soluzione incrementalmente, ottimizzando qualche criterio locale. Divide-and-conquer. Divide un problema in diversi sottoproblemi,

Dettagli

Tempo di esecuzione e Analisi asintotica

Tempo di esecuzione e Analisi asintotica Tempo di esecuzione e Analisi asintotica Corso di Algoritmi Progettazione e analisi di algoritmi Progettazione: tecnica Divide-et-impera, Greedy, Programmazione dinamica Analisi «asintotica» delle risorse

Dettagli

Dizionari Liste invertite e Trie

Dizionari Liste invertite e Trie Dizionari Liste invertite e Trie Lucidi tratti da Crescenzi Gambosi Grossi, Strutture di dati e algoritmi Progettazione, analisi e visualizzazione Addison-Wesley, 2006 Dizionari Universo U delle chiavi

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Golosi (Greedy) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino un algoritmo goloso correttezza Problema della selezione di attività

Dettagli

! Bioinformatica. ! Teoria dei Controlli. ! Teoria dell Informazione. ! Ricerca Operativa. ! Informatica: teoria, grafica, Inteligenza Artificiale,.

! Bioinformatica. ! Teoria dei Controlli. ! Teoria dell Informazione. ! Ricerca Operativa. ! Informatica: teoria, grafica, Inteligenza Artificiale,. Paradigmi algoritmici Chapter Dynamic Programming reedy. Costruisce la soluzione incrementalmente, ottimizzando qualche criterio locale. Divide-and-conquer. Divide un problema in due (o più) sottoproblemi,

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

Cammini minimi. Damiano Macedonio

Cammini minimi. Damiano Macedonio Cammini minimi Damiano Macedonio mace@unive.it Copyright 2010 2012, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/asd2011b/) Modifications Copyright c 2015, Damiano

Dettagli

Tempo di esecuzione e Analisi asintotica

Tempo di esecuzione e Analisi asintotica Tempo di esecuzione e Analisi asintotica Corso di Algoritmi Progettazione e analisi di algoritmi Progettazione: tecnica Divide-et-impera, Greedy, Programmazione dinamica Analisi «asintotica» delle risorse

Dettagli

Maps. a.k.a, associative array, map, or dictionary

Maps. a.k.a, associative array, map, or dictionary Maps a.k.a, associative array, map, or dictionary Definition } In computer science, an associative array, map, or dictionary is an abstract data type composed of (key, value) pairs, such that each key

Dettagli

Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford

Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio II: cammini minimi a singola sorgente (per grafi

Dettagli

Fisica Computazionale

Fisica Computazionale Fisica Computazionale Lavori in Corso a Fisica 2016 Alessandro Gabbana Universitá Degli Studi di Ferrara November 22, 2016 A.Gabbana, R.Tripiccione Fisica Computazionale November 22, 2016 1 / 11 Introduzione

Dettagli

Algoritmi e strutture di dati 2

Algoritmi e strutture di dati 2 Algoritmi e strutture di dati 2 Paola Vocca Lezione 2: Tecniche golose (greedy) Lezione1- Divide et impera 1 Progettazione di algoritmi greedy Tecniche di dimostrazione (progettazione) o Greedy algorithms

Dettagli

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea

Dettagli

Massima sottosequenza comune

Massima sottosequenza comune Massima sottosequenza comune Luca Foschini Il problema Supponiamo di volere confrontare 2 stringhe di caratteri per stabilire quanto differiscano l una dall altra. Innazitutto dovremmo definire il concetto

Dettagli

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Esercizi Union-Find e su Grafi. Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 0 07 Esercizi Union-Find e su Grafi. Ugo Vaccaro. Esercizio: Scrivere pseudocodice per Make-Set, Union, e Find-Set usando la rappresentazione attraverso liste

Dettagli

Tesi di Laurea di Mauro Baluda matr. 038208

Tesi di Laurea di Mauro Baluda matr. 038208 Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Algoritmi per l'allineamento di Sequenze Tesi di Laurea di matr. 038208 Relatore:

Dettagli

Question 1: algorithms, data structures, problem classes, and algorithmic techniques

Question 1: algorithms, data structures, problem classes, and algorithmic techniques Question 1: alg. s, data struct. s, problem classes, and alg. techniques Question 1: algorithms, data structures, problem classes, and algorithmic techniques What is a dynamic data structure? (4 points).

Dettagli

Analisi algoritmi ricorsivi e relazioni di ricorrenza

Analisi algoritmi ricorsivi e relazioni di ricorrenza Analisi algoritmi ricorsivi e relazioni di ricorrenza Punto della situazione Finora abbiamo affrontato: il tempo di esecuzione di un algoritmo, l analisi asintotica con le notazioni asintotiche e la tecnica

Dettagli

Algoritmi e Strutture Dati. Luciano Gualà

Algoritmi e Strutture Dati. Luciano Gualà Algoritmi e Strutture Dati Luciano Gualà guala@mat.uniroma2.it www.mat.uniroma2.it/~guala Programmazione dinamica una tecnica di progettazione algoritmica molto potente Sommario La tecnica della programmazione

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 19 novembre 2008 Elementi di programmazione dinamica Parte

Dettagli

Progettazione di Algoritmi (9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 27 Giugno 2018.

Progettazione di Algoritmi (9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 27 Giugno 2018. COGNOME: Nome: Progettazione di Algoritmi (9 CFU) Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 27 Giugno 2018 Attenzione: Inserire i propri dati nell apposito spazio soprastante

Dettagli

Quicksort Moltiplicazione di interi Master Theorem Valutazione del tempo di esecuzione di algoritmi iterativi e ricorsivi

Quicksort Moltiplicazione di interi Master Theorem Valutazione del tempo di esecuzione di algoritmi iterativi e ricorsivi Quicksort Moltiplicazione di interi Master Theorem Valutazione del tempo di esecuzione di algoritmi iterativi e ricorsivi Algoritmi basati sulla tecnica Divide et Impera In questo corso: Ricerca binaria

Dettagli

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Capitolo 6 - Array Array Array Gruppo di locazioni di memoria consecutive Stesso nome e tipo Per riferirsi a un elemento, specificare Nome dell array Posizione Formato: arrayname[ position number ] Primo

Dettagli

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea

Dettagli

Universita degli Studi di Siena

Universita degli Studi di Siena Universita degli Studi di Siena Facolta di Ingegneria Dispense del corso di Sistemi di Supporto alle Decisioni I La Programmazione Dinamica Chiara Mocenni Corso di Laurea triennale in Ingegneria Gestionale

Dettagli

Cammini minimi in grafi:

Cammini minimi in grafi: Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate

Dettagli

PROBLEMI DI VINCOLI CSP (Constraint satisfaction problems),, X ik. ) che specificano quali valori delle variabili sono compatibili tra loro,

PROBLEMI DI VINCOLI CSP (Constraint satisfaction problems),, X ik. ) che specificano quali valori delle variabili sono compatibili tra loro, PROBLEMI DI VINCOLI CSP (Constraint satisfaction problems) Dato un insieme finito di variabili X, X,, X n D, D,, D n i cui valori appartengono a domini e un insieme di vincoli c(x i, X i,, X ik ) che specificano

Dettagli

Prima prova Intermedia di Ricerca Operativa 2 COMPITO A Esercizio 1 (7 punti): LIFO

Prima prova Intermedia di Ricerca Operativa 2 COMPITO A Esercizio 1 (7 punti): LIFO Prima prova Intermedia di Ricerca Operativa 2 COMPITO A 13 novembre 2015 Nome e Cognome Matricola: Esercizio 1 (7 punti): Si consideri il seguente problema di programmazione lineare intera. max 32x 1 +

Dettagli

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo

Dettagli

Cammini Minimi. Algoritmo di Dijkstra

Cammini Minimi. Algoritmo di Dijkstra Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo

Dettagli

Fisher Linear discriminant analysis (pag 228)

Fisher Linear discriminant analysis (pag 228) Fisher Linear discriminant analysis (pag 228) 1 Nell Analisi delle componenti proncipali PCA si trovano quelle componenti utili per la rappresentazione dei dati Tali componenti non sono utili a discriminare

Dettagli

Informatica Generale Homework di Recupero 2016

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

Dettagli

Introduzione al Corso di Algoritmi

Introduzione al Corso di Algoritmi Introduzione al Corso di Algoritmi Di cosa parliamo oggi: Una discussione generale su cosa studieremo, perchè lo studeriemo, come lo studieremo,... Un esempio illustrativo di cosa studeriemo Informazione

Dettagli

Accesso Mul*plo - modelli

Accesso Mul*plo - modelli Accesso Mul*plo - modelli Conceptual Model of Mul/ple Access A B C D Station A Station B Station C Station D Master Channel The Master does not know if and how many packets are present in each queue (i.e.,

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

Dati e Algoritmi 1: A. Pietracaprina. Text Processing

Dati e Algoritmi 1: A. Pietracaprina. Text Processing Dati e Algoritmi 1: A. Pietracaprina Text Processing 1 Campi Applicativi text editing web searching computational biology (e.g., DNA analysis) vision... 2 Definizioni Stringa P P P[0]P[1]... P[m 1] (lunghezza

Dettagli

Corso di Algoritmi e Strutture Dati con Laboratorio. The JCF(continua): L interfaccia Map

Corso di Algoritmi e Strutture Dati con Laboratorio. The JCF(continua): L interfaccia Map Corso di Algoritmi e Strutture Dati con Laboratorio The JCF(continua): L interfaccia Map Unamappaè unaraccolta (oggetto che contiene elementi: es: array, oggetto di tipo Collection) in cui ogni elemento

Dettagli

Tempo di esecuzione e Analisi asintotica

Tempo di esecuzione e Analisi asintotica Tempo di esecuzione e Analisi asintotica Corso di Algoritmi Progettazione e analisi di algoritmi Progettazione: tecnica Divide-et-impera, Greedy, Programmazione dinamica Analisi «asintotica» delle risorse

Dettagli

Le coniche furono studiate già 2000 anni fa dagli antichi Greci in particolare da Apollonio (III secolo a.c) che ne scoprì numerose proprietà.

Le coniche furono studiate già 2000 anni fa dagli antichi Greci in particolare da Apollonio (III secolo a.c) che ne scoprì numerose proprietà. Coniche 1 3 Ci sono alcune curve, dette coniche, che fanno la loro comparsa in moltissimi ambiti, apparentemente diversi fra loro; per esempio: le traiettorie dei pianeti sono coniche; le superficie delle

Dettagli

Informatica Grafica. Gianluigi Ciocca, Simone Bianco F1801Q120

Informatica Grafica. Gianluigi Ciocca, Simone Bianco F1801Q120 Informatica Grafica Gianluigi Ciocca, Simone Bianco F80Q20 Renderingdi primitive 2D Filling () Scan Line Polgon Fill Algorithm Per ogni riga dell immagine (line) Determinare le intersezioni con gli edge

Dettagli

Laboratorio di Informatica 2004/ 2005 Corso di laurea in biotecnologie - Novara Viviana Patti Esercitazione 7 2.

Laboratorio di Informatica 2004/ 2005 Corso di laurea in biotecnologie - Novara Viviana Patti Esercitazione 7 2. Laboratorio di Informatica 2004/ 2005 Corso di laurea in biotecnologie - Novara Viviana Patti patti@di.unito.it Esercitazione 7 1 Info&Bio Bio@Lab Allineamento di sequenze Esercitazione 7 2 1 Es2: Allineamento

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Tecniche di Programmazione Tecniche di progettazione e

Dettagli

HALF YEARLY EXAMINATIONS CLUSTERING FEBRUARY FORM 3 (1st year) ITALIAN TIME: 6 min ORAL EXAMINATION EXAMINER S PAPER (GROUPS A & B)

HALF YEARLY EXAMINATIONS CLUSTERING FEBRUARY FORM 3 (1st year) ITALIAN TIME: 6 min ORAL EXAMINATION EXAMINER S PAPER (GROUPS A & B) FORM 3 (1st year) ITALIAN TIME: 6 min Instructions to Examiners ORAL EXAMINATION (GROUPS A & B) i) Make the candidates feel at ease. ii) Remind candidates that in all three parts of this oral they are

Dettagli

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni

Dettagli

Esame di Ricerca Operativa del 18/06/18

Esame di Ricerca Operativa del 18/06/18 Esame di Ricerca Operativa del 8/0/8 (Cognome) (Nome) (Numero di Matricola) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max x x x +x x x x +x x x x + x

Dettagli

Problema del trasporto

Problema del trasporto p. 1/1 Problema del trasporto Supponiamo di avere m depositi in cui è immagazzinato un prodotto e n negozi che richiedono tale prodotto. p. 1/1 Problema del trasporto Supponiamo di avere m depositi in

Dettagli

ASD Laboratorio 07. Alessio Guerrieri/Lorenzo Ghiro 28/02/2018. Alessio Guerrieri/Lorenzo Ghiro ASD Laboratorio 07 28/02/ / 11

ASD Laboratorio 07. Alessio Guerrieri/Lorenzo Ghiro 28/02/2018. Alessio Guerrieri/Lorenzo Ghiro ASD Laboratorio 07 28/02/ / 11 ASD Laboratorio 07 Alessio Guerrieri/Lorenzo Ghiro 28/02/2018 Alessio Guerrieri/Lorenzo Ghiro ASD Laboratorio 07 28/02/2018 1 / 11 CALENDARIO 28/02 Dinamica 1 07/03 Dinamica 2 21/03 Progetto Dinamica 16/05

Dettagli

Algoritmi Avanzati Soluzioni dello scritto del 2 febbraio 2004 (appello straordinario)

Algoritmi Avanzati Soluzioni dello scritto del 2 febbraio 2004 (appello straordinario) Algoritmi Avanzati Soluzioni dello scritto del febbraio 004 (appello straordinario) 1. Tengo nascosto nel taschino della giacca un grafo misterioso di 7 nodi. Vi dico solo che listando le valenze (= numero

Dettagli

GARA SECONDARIA PRIMO GRADO - INDIVIDUALI. ESERCIZIO 1 Si faccia riferimento alla GUIDA - OPS 2018, problema ricorrente REGOLE E DEDUZIONI.

GARA SECONDARIA PRIMO GRADO - INDIVIDUALI. ESERCIZIO 1 Si faccia riferimento alla GUIDA - OPS 2018, problema ricorrente REGOLE E DEDUZIONI. GARA 6 2018 SECONDARIA PRIMO GRADO - INDIVIDUALI ESERCIZIO 1 Si faccia riferimento alla GUIDA - OPS 2018, problema ricorrente REGOLE E DEDUZIONI. PROBLEMA Siano date le seguenti regole: regola(1,[d,p],q).

Dettagli

Notazioni asintotiche. Martedì 30 settembre 2014

Notazioni asintotiche. Martedì 30 settembre 2014 Notazioni asintotiche Martedì 30 settembre 2014 Punto della situazione Cos è un algoritmo Tempo di esecuzione T(n) Analisi di algoritmi: analisi asintotica di T(n) Argomento di oggi: Notazioni asintotiche:

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di

Dettagli

FASTA. Lezione del

FASTA. Lezione del FASTA Lezione del 10.03.2016 Omologia vs Similarità Quando si confrontano due sequenze o strutture si usano spesso indifferentemente i termini somiglianza o omologia per indicare che esiste un rapporto

Dettagli

Serie di numeri di diverse origini. Marcata asimmetria in favore dei digits bassi nella prima cifra. Legge di Benford. Processi moltiplicativi

Serie di numeri di diverse origini. Marcata asimmetria in favore dei digits bassi nella prima cifra. Legge di Benford. Processi moltiplicativi Serie di numeri di diverse origini Marcata asimmetria in favore dei digits bassi nella prima cifra Legge di Benford Processi moltiplicativi Primi 3 digits dei titoli di borsa: 60%,2 e 3 40% da 4 a 9 s

Dettagli

Appunti lezione Capitolo 13 Programmazione dinamica

Appunti lezione Capitolo 13 Programmazione dinamica Appunti lezione Capitolo 13 Programmazione dinamica Alberto Montresor 12 Novembre, 2015 1 Domanda: Fattore di crescita dei numeri catalani Vogliamo dimostrare che cresce almeno come 2 n. La nostra ipotesi

Dettagli

Algoritmi. Matricole dispari Prof.ssa Anselmo. Appello del 29 Gennaio Attenzione:

Algoritmi. Matricole dispari Prof.ssa Anselmo. Appello del 29 Gennaio Attenzione: COGNOME: Nome: Algoritmi Matricole dispari Prof.ssa Anselmo Appello del 29 Gennaio 2015 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante. Non voltare la pagina finché non

Dettagli

Scelta di uno scambiatore di calore serie aria /olio

Scelta di uno scambiatore di calore serie aria /olio Scelta di uno scambiatore di calore serie aria /olio Di seguito spiegheremo brevemente come procedere alla scelta dello scambiatore di calore più idoneo a partire dai dati in proprio possesso. La scelta

Dettagli