Edit distance. v intner RIMDMDMMI wri t ers
|
|
- Angelo Papi
- 7 anni fa
- Visualizzazioni
Transcript
1 L'allineamento
2 Edit distance Le operazioni permesse sono: I: insert (inserimento, inserzione) D: delete (cancellazione, delezione, rimozione) R: replacement (substition, sostituzione) M: match (corrispondenza, accoppiamento, uguaglianza) v intner RIMDMDMMI wri t ers
3 Edit transcript Definizione Una stringa su un alfabeto {I,D,R,M} che descrive una trasformazione da una stringa ad un'altra e' detta edit transcript (trascrizione) delle due stringhe. Date due stringhe A e B, sia T la trascrizione da A a B. Se in T sostituiamo le I con D e contemporaneamente le D con le I otteniamo una trascrizione T' da B ad A.
4 Esempio di commutatività v intner RIMDMDMMI wri t ers RDMIMIMMD v intner
5 Edit distance Definizione La edit distance fra due stringhe e' definita come il minimo numero di operazione di edit (inserzioni, delezioni e sostituzioni) necessarie a trasformare una stringa nell'altra. NOTA BENE: i match non sono contati! La edit distance e' conosciuta anche come Levenshtein distance
6 Edit distance problem L'edit distance problem e' computare la edit distance fra due stringhe date, in modo che l'edit transcript sia ottimale Traduzione: trovare il trascritto che minimizza la distanza. Molto spesso si usa come sinonimo problema dell'allineamento
7 Il problema dell'allineamento Definizione Un allineamento (globale) di due stringhe S1 e S2 è ottenuto inserendo spazi (o linee) all'interno o agli estremi di S1 e S2, così da poter posizione le due stringhe una di sopra all'altra in modo che ogni carattere o spazio delle due stringhe è allineato con un'unico carattere o un'unico spazio nell'altra stringa qac-dbd qawx-b-
8 Edit trascript vs Allineamento Descrivano una relazione fra due stringhe Matematicamente sono equivalenti (possono essere convertiti da uno all'altro) Un edit trascript descrive come trasformare una stringa in un'altra mentre l'allineamento mostra solo le relazioni
9 Edit trascript vs Allineamento Si può passa da un edit trascript ad un allineamento e viceversa Due caratteri contrapposti che non coincidono in un'allineamento corrispondono ad una sostituzione Uno spazio contenuto nella prima stringa da allineare coincide con un inserimento per la prima stringa Uno spazio contenuto nella seconda stringa da allineare coincide con una delezione per la prima stringa
10 Calcolo della Edit Distance Definizione Date due stringhe S1 e S2, definiamo D(i,j) come l'edit distance delle stringe S1[1..i] e S2[1..j] Se S1 =n e S2 =m, D(n,m) è il minimo numero di operazioni di edit per trasformare S1 in S2.
11 Funzione D D è definita come segue: D(i,0) = i 0 i n D(0,j) = j 0 j m per i e j maggiori contemporanemanete di 0: D(i,j) = min { D(i-1,j) + 1, D(i,j-1) + 1, D(i-1,j-1) + t(i,j) } t(i,j) = 0 se S1[i] = S2[j] t(i,j) = 1 se S1[i] S2[j]
12 Soluzione ricorsiva 1 function D(i, j) 2 if (i = 0) return j; 3 if (j = 0) return i; 4 if (S1[i] = S2[j]) then t := 0; else t := 1; 5 return min( D(i-1, j) + 1, 6 D(i, j-1) + 1, 7 D(i-1, j-1) + t ); 8 EditDistance = D(n, m);
13 Correttezza della funzione D Lemma Il valore di D(i,j) può essere D(i,j-1)+1, D(i- 1,j)+1 oppure D(i-1,j-1)+t(i,j). Non ci sono altre possibilità Lemma D(i,j) min{d(i-1,j)+1, D(i,j-1)+1, D(i-1,j-1)+t(i,j)} Teorema Quando i e j sono strettamente positivi D(i,j) = min{d(i-1,j)+1, D(i,j-1)+1, D(i-1,j-1)+t(i,j)}
14 Complessità Un simile programma è altamente inefficiente e richiede un numero esponenziale sulle lunghezze di S1 e S2 di chiamate alla funzione D gli stessi valori di D(i,j) vengono calcolati più volte E' una strategia top-down
15 Osservazioni Esistono solo (n+1)(m+1) possibili combinazioni per i e j, quindi esistono al massimo (n+1)(m+1) possibili chiamate ricorsive Possiamo salvare questi valori in un matrice Invece di partire dall'allineamento totale possiamo cominciare con i casi basi ed estendere le lunghezze delle stringhe SOLUZIONE: programmazione dinamica
16 Programmazione dinamica Consiste nel risolvere un'istanza di un problema usando le informazioni precalcolate su istanze più piccole. Prese due sequenze S1 e S2, invece di determinare la soluzione per le due stringhe nella loro interezza, costruiremo la soluzione determinando le similarità fra i possibili prefissi delle due sequenze E' una strategia bottom-up
17 Programmazione dinamica Dobbiamo definire: relazione di ricorrenza computazione tabulare traceback La relazione di ricorrenza è D
18 Computazione tabulare Memorizziamo tutti i valori calcolati da D(i,j) in una tabella (matrice di (n+1) righe per (m+1) colonne) Calcoliamo D(i,j) per valori piccoli di i e j la prima righa (i=0) e la prima colonna (j=0) saranno riempiti con i casi base della ricorsione Procediamo incrementando i e j incrementiamo i e poi calcoliamo D per tutti i possibili j, partendo da zero
19 Esempio w r i t e r s v i n t n e r
20 Algoritmo 1 function EditDistance(S1,S2) 2 n := S1 ; 3 m := S2 ; 4 for i := 0 to n do a[i,0] := i; 5 for j := 1 to m do a[0,j] := j; 6 for i := 1 to n do 7 for j := 1 to m do 8 if (S1[i] = S2[j]) then t := 0; else t := 1; 9 a[i,j] := min ( a[i-1,j]+1, a[i,j-1]+1, 10 a[i-1,j-1]+t ); 11 return a[n,m];
21 Tempo Teorema Utilizzando il metodo della programmazione dinamica possiamo completare una tabella per il calcolo dell'edit distance fra due stringhe di lunghezze n e m in tempo O(nm). Cioé l'edit distance D(n,m) fra due stringhe può essere calcolata in tempo O(nm). Osservazione: non è importante l'ordine con cui vengono calcolate le celle
22 Traceback Una volta calcolata la edit distance bisogna ricostruire gli edit trascript Bisogna cercare un cammino (minimo) che da (n,m) porti a (0,0) SOLUZIONE: utilizzare dei puntatori durante la costruzione della tabella
23 Puntatori Ogni volta che calcoliamo la cella (i,j) se D(i,j) = D(i,j-1)+1 allora inseriamo un puntatore da (i,j) a (i,j-1) se D(i,j) = D(i-1,j)+1 allora inseriamo un puntatore da (i,j) a (i-1,j) se D(i,j) = D(i-1,j-1)+t(i,j) allora inseriamo un puntatore da (i,j) a (i-1,j-1) le cella della prima riga e della prima colonna hanno un solo puntatore, le altre celle possono avere da uno a tre puntatori
24 Esempio w r i t e r s v 1 i 2 n 3 t 4 n 5 e 6 r
25 Interpretazione L'edit transcript si ricostruisce (al contrario) seguendo uno (o tutti) i cammini che da (n,m) portano a (0,0) un puntatore orizzontale (da (i,j) a (i,j-1)) è un inserimento (I) del carattere S2[j] in S1 un puntatore verticale (da (i,j) a (i-1,j)) è la cancellazione (D) del carattere S1[i] da S1 un puntatore diagolale (da (i,j) a (i-1,j-1)) può corrispondere a un match (M) se S1[i]=S2[j] oppure a una sostituzione (R) se S1[i] S2[j]
26 Algoritmo 1 function EditTranscript(i,j) 2 if (i = 0) and (j=0) then return ''; 3 if ( in a[i,j]) then 4 if S1[i] = S2[j] then T:='M' else T='R'; 5 return EditTranscript(i-1,j-1). 'T'; 6 if ( in a[i,j]) then 7 return EditTranscript(i,j-1). 'I'; 8 if ( in a[i,j]) then 9 return EditTranscript(i-1,j). 'D'; 10 transcript = EditTranscript(n,m);
27 Interpretazione alternativa Dal punto di vista dell'allineamento di S1 con S2: un puntatore orizzontale è uno spazio inserito in S1 un puntatore verticale è uno spazio inserito in S2 un puntatore diagonale può essere un match o un mismatch
28 Allineamenti ottimi Esistono 3 allineamenti ottimi (3 percorsi minimi) che portano da (7,7) a (0,0): vintner- v-intner- -vintner- RRRMDMMI RIMDMDMMI IRMDMDMMI writ-ers wri-t-ers wri-t-ers
29 Tempo e correttezza del traceback Teorema Dopo che la matrice della programmazione dinamica è stata completata con i puntatori, un edit trascript ottimale può essere calcolato in tempo O(n+m) Teorema Tutti i cammini da (n,m) a (0,0) che seguono i puntatori durante la computazione di D(i,j) forniscono un edit transcript minimo rispetto al numero di operazioni di edit. Viceversa, ogni edit transcript ottimale è specificato da un cammino da (n,m) a (0,0)
30 Operation weights Generalizziamo i costi di una operazione di edit una inserzione o una delezione avrà costo d una sostituzione avrà costo r un match avrà costo e Definizione Si chiama problema della edit distance con operazioni pesate il problema di determinare un edit trascript che trasforma una stringa S1 in una stringa S2 con peso minimo delle operazioni
31 Operation weights D è ri-definita come segue: D(i,0) = i*d 0 i n D(0,j) = j*d 0 j m per i e j maggiori contemporanemanete di 0: D(i,j) = min { D(i-1,j) + d, D(i,j-1) + d, D(i-1,j-1) + t(i,j) } t(i,j) = e se S1[i] = S2[j] t(i,j) = r se S1[i] S2[j] con d=1, r=0, r=1 otteniamo la funzione standard per l'edit distance
32 Esempio d=4 r=2 e=1 writ-ers vintner- Un'altro schema molto usato è: d=-2 r=-1 e=+1 ma in questo casi si cerca di massimizzare (score massimo)
33 Nota Bene Poiché lo scopo della funzione è quello di minimizzare il peso totale e poiché una sostituzione può essere vista come una delezione seguita da un inserimento, per permettere le sostituzioni il loro peso deve essere minore della somma di una cancellazione più un inserimento r < 2 * d
34 Esempio d=1 e=0 r=3 dna d-na RMM 3 DIMM 2 rna -rna
35 Algoritmo 1 function OperationWeightEditDistance(S1,S2) 2 n := S1 ; 3 m := S2 ; 4 for i := 0 to n do a[i,0] := i*d; 5 for j := 1 to m do a[0,j] := j*d; 6 for i := 1 to n do 7 for j := 1 to m do 8 if (S1[i] = S2[j]) then t := e; else t := r; 9 a[i,j] := min ( a[i-1,j]+d, a[i,j-1]+d, 10 a[i-1,j-1]+t ); 11 return a[n,m];
36 Alphabet-weight Edit Distance Un'altra generalizzazione è permettere di avere pesi diversi per una sostituzione a seconda di quale carattere viene rimosso e quale carattere viene aggiunto Ad esempio vorremmo che la sostituzione di una A con una T pesi di più rispetto alla G Similmente, per inserimenti e cancellazioni, vogliamo che a seconda del carattere inserito o cancellato il costo cambi NB: il peso è locale, non influenzato dalla posizione sulle stringhe
37 Quali sono i pesi migliori? In letteratura esistono diverse versioni per il DNA viene usata la matrice +5/-4 per gli aminoacidi viene usata la BLOSUM62 (sono le matrici usate da Dotter e BLAST) Sono proposti e verificati in modo sperimentale (utilizzandoli)
38 Come diventa D? (+5/-4) D è ri-definita come segue: D(i,0) = -4*i 0 i n D(0,j) = -4*j 0 j m per i e j maggiori contemporanemanete di 0: D(i,j) = max { D(i-1,j) - 4, D(i,j-1) - 4, D(i-1,j-1) + t(i,j) } t(i,j) = 5 se S1[i] = S2[j] t(i,j) = -4 se S1[i] S2[j] NB: in questo caso si vuole massimizzare
39 BLOSUM62 A R N D C Q E G H I L K M F P S T W Y V B Z X * A R N D C Q E G H I L K M F P S T W Y V B Z X * function t(i,j) C1 := S1[i]; C2 := S2[j]; COOR := [ 0, 20, 4, 3, 6,... ]; P1 := COOR[ord(C1)]; P2 := COOR[ord(C2)]; return BLOSUM32[P1, P2];
40 End-space free Un'altra variante assegna peso 0 agli spazi all'inizio e alla fine di un allineamento --cac-dbd ltcabbdb- solo spazi iniziali => la stringa e' suffisso dell'altra solo spazi finali => la stringa e' prefisso di un'altra spazi iniziali e finali => una stringa e' contenuta nell'altra
41 Gaps Definizione Un gap e' una sequenza massimale di spazi consecutivi di una singola stringa di un allineamento ccattcctaac--a-actccaactta cca-----cacccat-c------tta <gap> <gap>>
Distanza di Edit. Speaker: Antinisca Di Marco Data:
Distanza di Edit Speaker: Antinisca Di Marco Data: 14-04-2016 Confronto di sequenze Il confronto tra sequenze in biologia computazionale è la base per: misurare la similarità tra le sequenze allineamento
DettagliProgrammazione dinamica
Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione
DettagliAlgoritmi e strutture di dati 2
Paola Vocca Lezione 4: Programmazione dinamica 1 Caratteristiche Programmazione dinamica: paradigma basato sullo stesso principio utilizzato per il divide et impera o il problema viene decomposto in sotto-problemi
DettagliProblemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
DettagliA W T V A S A V R T S I A Y T V A A A V R T S I A Y T V A A A V L T S I
COME CALCOLARE IL PUNTEIO DI UN ALLINEAMENTO? Il problema del calcolo del punteggio di un allineamento può essere considerato in due modi diversi che, però, sono le due facce di una stessa medaglia al
DettagliCammini minimi fra tutte le coppie
Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)
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)
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
DettagliPROGRAMMAZIONE DINAMICA. Prof. Reho Gabriella Olimpiadi di Informatica
PROGRAMMAZIONE DINAMICA Quando si usa P.D.? La programmazione dinamica si usa nei casi in cui esista una definizione ricorsiva del problema, ma la trasformazione diretta di tale definizione in un algoritmo
DettagliASD Laboratorio 08. Cristian Consonni/Alessio Guerrieri 02/12/2016. Cristian Consonni/Alessio Guerrieri ASD Laboratorio 08 02/12/ / 14
ASD Laboratorio 08 Cristian Consonni/Alessio Guerrieri 02/12/2016 Cristian Consonni/Alessio Guerrieri ASD Laboratorio 08 02/12/2016 1 / 14 CALENDARIO (UPDATE) 25/11 Dinamica 1 02/12 Dinamica 2 09/12 No
DettagliCOME CALCOLARE IL PUNTEGGIO DI UN ALLINEAMENTO? Il problema del calcolo del punteggio di un allineamento può essere considerato in due modi diversi
COME CALCOLARE IL PUNTEGGIO DI UN ALLINEAMENTO? Il problema del calcolo del punteggio di un allineamento può essere considerato in due modi diversi che, però, sono le due facce di una stessa medaglia al
DettagliTempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
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
DettagliProgrammazione dinamica
Programmazione dinamica Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 29/21 I. Castelli Programmazione dinamica, A.A. 29/21 1/35
Dettagli4.5 Metodo del simplesso
4.5 Metodo del simplesso min z = c T x s.v. Ax = b x PL in forma standard Esamina una sequenza di soluzioni di base ammissibili con valori non crescenti della funzione obiettivo fino a raggiungerne una
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
DettagliEsercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen
Esercitazione Ricorsione May 31, 2016 Esercizi presi dal libro di Rosen Problema 2 a) sezione 5.3 Data la seguente funzione definita ricorsivamente come: f(n+1) = 2f(n) f(0) = 3 Determinare il valore di
DettagliSommario della lezione
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/27 Sommario della lezione Ancora altri esempi di applicazione della Programmazione Dinamica: Il Problema della
DettagliEsempio : i numeri di Fibonacci
Esempio : i numeri di Fibonacci La successione di Fibonacci F 1, F 2,... F n,... è definita come: F 1 =1 F 2 =1 F n =F n 1 F n 2,n 2 Leonardo Fibonacci (Pisa, 1170 Pisa, 1250) http://it.wikipedia.org/wiki/leonardo_fibonacci
DettagliPossibile applicazione
p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile
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
DettagliUNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi
DettagliCorso di Fondamenti di Informatica. La ricorsione
Corso di Fondamenti di Informatica La ricorsione La ricorsione Si dice che un oggetto (una struttura dati, una funzione matematica, un concetto ) è ricorsivo se è possibile darne una definizione in termini
DettagliMotivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali
Motivazione: Fattorizzazioni di matrici speciali Diminuire la complessità computazionale = evitare operazioni inutili = risparmiare tempo di calcolo Diminuire l occupazione di memoria Come si fa? Si tiene
DettagliProgrammazione 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)
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 1 Un introduzione informale agli algoritmi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione informale di algoritmo Insieme di istruzioni, definite
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
DettagliProblema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
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
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
Dettagli( ) TEORIA DELLE MATRICI. A. Scimone a.s pag 1
. Scimone a.s 1997 98 pag 1 TEORI DELLE MTRICI Dato un campo K, definiamo matrice ad elementi in K di tipo (m, n) un insieme di numeri ordinati secondo righe e colonne in una tabella rettangolare del tipo
Dettagli1.5 DIVISIONE TRA DUE POLINOMI
Matematica C Algebra. Le basi del calcolo letterale.5 Divisione tra due polinomi..5 DIVISIONE TRA DUE POLINOMI Introduzione Ricordiamo la divisione tra due numeri, per esempio 47:4. Si tratta di trovare
DettagliMatrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili
Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo del determinante Difficili Soluzione di sistemi lineari È veramente difficile? 1 Matrici.h
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
DettagliEsercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore
DettagliNote per la Lezione 7 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 7 Ugo Vaccaro Sempre sulla tecnica Programmazione Dinamica Ricordiamo che lo sviluppo di algoritmi basati sulla Programmazione Dinamica
DettagliAlberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
DettagliIl problema dello zaino
Il problema dello zaino (knapsack problem) Damiano Macedonio mace@unive.it Copyright 2010 2012 Moreno Marzolla, Università di Bologna (http://www.moreno.marzolla.name/teaching/asd2011b/) This work is licensed
DettagliSISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3
SISTEMI LINEARI. Esercizi Esercizio. Verificare se (,, ) è soluzione del sistema x y + z = x + y z = 3. Trovare poi tutte le soluzioni del sistema. Esercizio. Scrivere un sistema lineare di 3 equazioni
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,
DettagliProdotti scalari e matrici
Prodotti scalari e matrici 1 Forme bilineari e matrici In questa sezione vogliamo studiare la corrispondenza biunivoca che esiste tra l insieme delle forme bilineari su di un certo spazio vettoriale V
Dettagli2.6 Calcolo degli equilibri di Nash
92 2 Giochi non Cooperativi Per queste estensioni di giochi non finiti si possono provare risultati analoghi a quelli visti per i giochi finiti. Rimandiamo alla bibliografia per uno studio più approfondito
DettagliProgrammazione I Paolo Valente /2017. Lezione 6. Notazione posizionale
Lezione 6 Notazione posizionale Ci sono solo 10 tipi di persone al mondo: quelle che conoscono la rappresentazione dei numeri in base 2, e quelle che non la conoscono... Programmazione I Paolo Valente
DettagliFASTA: Lipman & Pearson (1985) BLAST: Altshul (1990) Algoritmi EURISTICI di allineamento
Algoritmi EURISTICI di allineamento Sono nati insieme alle banche dati, con lo scopo di permettere una ricerca per similarità rapida anche se meno accurata contro le migliaia di sequenze depositate. Attualmente
DettagliELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI
ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di
Dettagliin termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
DettagliLa principale modalità di calcolo è l applicazione di funzioni
1 La principale modalità di calcolo è l applicazione di funzioni Nei linguaggi funzionali puri non esistono strutture di controllo predefinite per la realizzazione di cicli quali for, while, repeat Un
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed
DettagliIntroduzione alla programmazione Esercizi risolti
Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma
Dettagli= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con
Definizione di matrice Una matrice (di numeri reali) è una tabella di m x n numeri disposti su m righe e n colonne. I numeri che compaiono nella tabella si dicono elementi della matrice. La loro individuazione
DettagliProf. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Operazioni sulle liste Definiamo una serie di procedure e funzioni per operare sulle liste. Usiamo liste di interi per semplicità, ma tutte le operazioni sono realizzabili in modo del tutto analogo su
DettagliCome si sceglie l algoritmo di allineamento? hanno pezzi di struttura simili? appartengono alla stessa famiglia? svolgono la stessa funzione?
Come si sceglie l algoritmo di allineamento? Domande: le due proteine hanno domini simili? hanno pezzi di struttura simili? appartengono alla stessa famiglia? svolgono la stessa funzione? hanno un antenato
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
DettagliAppunti su Indipendenza Lineare di Vettori
Appunti su Indipendenza Lineare di Vettori Claudia Fassino a.a. Queste dispense, relative a una parte del corso di Matematica Computazionale (Laurea in Informatica), rappresentano solo un aiuto per lo
DettagliIntroduzione al Calcolo Scientifico A.A Lab. 11
Introduzione al Calcolo Scientifico A.A. 2009-2010 - Lab. 11 Si consideri il problema dell allineamento di sequenze di proteine in biologia, legato per esempio all annotamento di genomi Si realizzi con
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
DettagliPumping lemma per i linguaggi Context-free
Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=
DettagliCorso di Matematica per la Chimica
Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica e Economia Università della Basilicata a.a. 2014-15 Propagazione degli errori introdotti nei dati
DettagliCorso di Geometria BIAR, BSIR Esercizi 2: soluzioni
Corso di Geometria 2- BIAR, BSIR Esercizi 2: soluzioni Esercizio Calcolare il determinante della matrice 2 3 : 3 2 a) con lo sviluppo lungo la prima riga, b) con lo sviluppo lungo la terza colonna, c)
DettagliSistemi di numerazioni e metodi di trasformazione
B Sistemi di numerazioni e metodi di trasformazione Nei calcolatori attuali vengono utilizzati quattro sistemi di numerazione: binario, in base otto, decimale ed esadecimale. Ognuno di essi ha pregi che
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
DettagliTipi di linea. Tipi di Linea - R.Virili 1
Tipi di linea Tipi di Linea - R.Virili 1 Tipi di linea standard AutoCAD offre 38 diversi tipi di linea che sono salvati nel file: ACADISO.LIN per le unità Metriche ACAD.LIN per le unità Inglesi Tipi di
DettagliI quadrati magici. Ivana Sacchi -
I quadrati magici Ivana Sacchi - ivana@ivana.it I numeri da 1 a 9 Un "quadrato magico" è una tabella suddivisa in celle nel quale la somma dei numeri contenuti in ciascuna riga (orizzontale), colonna (verticale)
DettagliEsercizi C su array e matrici
Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]
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,
DettagliMetodo di Gauss-Jordan 1
Metodo di Gauss-Jordan 1 Nota Bene: Questo materiale non debe essere considerato come sostituto delle lezioni. Ārgomenti svolti: Riduzione per righe e matrici equivalenti per righe. Forma echelon e sistemi
DettagliEsercizi Capitolo 7 - Hash
Esercizi Capitolo 7 - Hash Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive
DettagliUn ripasso di aritmetica: Conversione dalla base 10 alla base 2
Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre
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
DettagliEsercitazione n o 3 per il corso di Ricerca Operativa
Esercitazione n o 3 per il corso di Ricerca Operativa Ultimo aggiornamento October 17, 2011 Fornitura acqua Una città deve essere rifornita, ogni giorno, con 500 000 litri di acqua. Si richiede che l acqua
Dettagli5. L elasticità dei costi totali rispetto alla quantità, in termini semplificati si scrive come = AC
Capitolo 8 Le curve di costo Soluzioni delle Domande di ripasso 1. La curva del costo totale di lungo periodo mostra il costo totale minimo per ogni livello di output, tenendo fissi i prezzi degli input.
DettagliProgettazione di Algoritmi: Approccio Top-Down e Bottom Up
Progettazione di Algoritmi: Approccio Top-Down e Bottom Up Ci sono due approcci fondamentali per progettare algoritmi Servono ambedue ad aiutarci ad affrontare il problema Si chiamano "top-down" e "bottom-up"
Dettagli1 Definizione di sistema lineare omogeneo.
Geometria Lingotto. LeLing1: Sistemi lineari omogenei. Ārgomenti svolti: Definizione di sistema lineare omogeneo. La matrice associata. Concetto di soluzione. Sistemi equivalenti. Operazioni elementari
DettagliGeometria BIAR Esercizi 2
Geometria BIAR 0- Esercizi Esercizio. a Si consideri il generico vettore v b R c (a) Si trovi un vettore riga x (x, y, z) tale che x v a (b) Si trovi un vettore riga x (x, y, z) tale che x v kb (c) Si
DettagliL INTERFACCIA GRAFICA DI EXCEL
Dopo l avvio del foglio elettronico apparirà un interfaccia grafica nella quale verrà aperta una nuova cartella di lavoro alla quale il PC assegnerà automaticamente il nome provvisorio di Cartel1. La cartella
DettagliIl presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 1 settembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e
Dettagli1 Alcuni risultati sulle variabili Gaussiane multivariate
Il modello lineare-gaussiano e il filtro di Kalman Prof. P.Dai Pra 1 Alcuni risultati sulle variabili Gaussiane multivariate In questo paragrafo verranno enunciate e dimostrate alcune proprietà del valor
DettagliCOME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI
COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI In questa Appendice, mostreremo come un impresa possa individuare la sua combinazione di minimo costo dei fattori produttivi attraverso il calcolo
DettagliMetodo di Quine- McCluskey
Metodo di Quine- McCluskey Maurizio Palesi Maurizio Palesi Definizioni Date due funzioni f(x,x 2,,x n ) e g(x,x 2,,x n ) si dice che f copre g (oppure g implica f) e si scrive f g se f(x,x 2,,x n )= quando
DettagliLa riduzione a gradini e i sistemi lineari (senza il concetto di rango)
CAPITOLO 4 La riduzione a gradini e i sistemi lineari (senza il concetto di rango) Esercizio 4.1. Risolvere il seguente sistema non omogeneo: 2x+4y +4z = 4 x z = 1 x+3y +4z = 3 Esercizio 4.2. Risolvere
DettagliEsercitazioni di Algebra e Geometria
Esercitazioni di Algebra e Geometria Anno Accademico 2010 2011 Dott.ssa Elisa Pelizzari e-mail elisa.peli@libero.it Esercitazioni: lunedì 14.30 16.30 venerdì 14.30 16.30 Ricevimento studenti: venerdì 13.30
Dettagli1 Introduzione alle matrici quadrate 2 2 a coefficienti in R.
1 Introduzione alle matrici quadrate 2 2 a coefficienti in R Per introdurre il concetto di matrice, a 2 righe e 2 colonne, iniziamo col considerare griglie o tabelle di numeri Gli elementi della griglia,
DettagliSommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash
Funzioni Hash Sommario Tabelle ad indirizzamento diretto e hash Funzioni Hash Requisiti Metodo della divisione Metodo della moltiplicazione Funzione Hash Universale La ricerca Talvolta si richiede che
DettagliGeometria analitica del piano pag 32 Adolfo Scimone
Geometria analitica del piano pag 32 Adolfo Scimone CAMBIAMENTI DI SISTEMA DI RIFERIMENTO Consideriamo il piano cartesiano R 2 con un sistema di riferimento (O,U). Se introduciamo in R 2 un secondo sistema
DettagliVettori e geometria analitica in R 3 1 / 25
Vettori e geometria analitica in R 3 1 / 25 Sistemi di riferimento in R 3 e vettori 2 / 25 In fisica, grandezze fondamentali come forze, velocità, campi elettrici e magnetici vengono convenientemente descritte
DettagliTabelle. Verdi A. Bianchi B. Rossi C. 12/02 Trasferta a Milano. Corso in sede. Riunione Ispettori a Milano Riunione in sede.
1 Tabelle Una tabella è una griglia composta da righe e colonne: l intersezione fra una riga e una colonna si chiama cella ed è un elemento di testo indipendente che può avere un proprio formato. Spesso,
Dettagli4.3 Esempio metodo del simplesso
4.3 Esempio metodo del simplesso (P ) min -5x 4x 2 3x 3 s.v. 2x + 3x 2 + x 3 5 4x + x 2 + 2x 3 3x + 4x 2 + 2x 3 8 x, x 2, x 3 Per mettere il problema in forma standard si introducono le variabili di scarto
DettagliRappresentazione in complemento a 2: caratteristiche generali
Rappresentazione in complemento a 2: caratteristiche generali La rappresentazione non è completamente posizionale, ma in parte sì. Guardando il bit più significativo (MSB) si capisce se il numero è positivo
DettagliLEZIONE 4. { x + y + z = 1 x y + 2z = 3
LEZIONE 4 4.. Operazioni elementari di riga. Abbiamo visto, nella precedente lezione, quanto sia semplice risolvere sistemi di equazioni lineari aventi matrice incompleta fortemente ridotta per righe.
DettagliPARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliCodice Gray. (versione Marzo 2007)
Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.
DettagliMetodi per la risoluzione di sistemi lineari
Metodi per la risoluzione di sistemi lineari Sistemi di equazioni lineari. Rango di matrici Come è noto (vedi [] sez.0.8), ad ogni matrice quadrata A è associato un numero reale det(a) detto determinante
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
DettagliForme bilineari simmetriche
Forme bilineari simmetriche Qui il campo dei coefficienti è sempre R Definizione 1 Sia V uno spazio vettoriale Una forma bilineare su V è una funzione b: V V R tale che v 1, v 2, v 3 V b(v 1 + v 2, v 3
DettagliMinimo albero di copertura
apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.
DettagliINTRODUZIONE ALLA TEORIA DEI GIOCHI
Corso di Identificazione dei Modelli e Controllo Ottimo Prof. Franco Garofalo INTRODUZIONE ALLA TEORIA DEI GIOCHI A cura di Elena Napoletano elena.napoletano@unina.it Teoria dei Giochi Disciplina che studia
Dettaglietà (anni) manutenzione (keuro) ricavato (keuro)
.6 Cammini minimi. Determinare i cammini minimi dal nodo 0 a tutti gli altri nodi del seguente grafo, mediante l algoritmo di Dijkstra e, se applicabile, anche mediante quello di Programmazione Dinamica.
DettagliRicerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015
1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)
DettagliConcetti fondamentali
Concetti fondamentali elemento insieme sequenza tutto si riconduce a questi insieme: esempi {,3,5,7,9} insieme dei numeri dispari positivi minori di dieci {Antonio, Beatrice, Carlo, Daria} insieme dei
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
Dettagli