La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

UNIVERSITA DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA Corso di BIOINFORMATICA: TECNICHE DI BASE Prof. Giancarlo Mauri Lezione 1-2 Introduzione.

Presentazioni simili


Presentazione sul tema: "UNIVERSITA DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA Corso di BIOINFORMATICA: TECNICHE DI BASE Prof. Giancarlo Mauri Lezione 1-2 Introduzione."— Transcript della presentazione:

1 UNIVERSITA DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA Corso di BIOINFORMATICA: TECNICHE DI BASE Prof. Giancarlo Mauri Lezione 1-2 Introduzione agli algoritmi

2 2 Informatica e biologia FISICA XXI Secolo BIOLOGIA INFORMATICA INFORMATICA XX Secolo

3 3 Informatica e biologia: amore o interesse? Biologia Informatica Bioinspired computing: Reti neurali Progr. evolutiva DNA Computing Ant computing … Bioinformatica: Databases di sequenze Analisi di sequenze Folding di Proteine Simulazione di processi biologici …

4 4 Perché la bioinformatica?

5 Every attempt to employ mathematical methods in the study of biological questions must be considered profoundly irrational and contrary to the spirit of biology. If mathematical analysis should ever hold a prominent place in biology – an aberration which is happily almost impossible – it would occasion a rapid and widespread degeneration of that science. Auguste Comte, Pilosophie Positive, 1830

6 6 Perché i computer in biologia 4Le esigenze: Gestione di grandi banche dati di sequenze non omogenee distribuite e accessibili via rete Analisi dei dati (data mining) 4Gli obiettivi: Ricerca Genomica comparata Genomica funzionale Proteomica … Riduzione del time to market per lindustria farmaceutica

7 7 Le fasi 4Generare i dati Assemblaggio dei frammenti di DNA 4Estrarre un significato dai dati Capire la struttura del DNA nel nucleo (identificazione di geni) Capire come questa struttura governa la trascrizione del DNA Capire lespressione genica Capire levoluzione Capire le proteine Predizione della struttura delle proteine

8 8 Le fasi 4Usare la conoscenza Riparazione o sostituzione dei geni Progettazione di farmaci con un reale impatto sulla malattia senza alterare il delicato equilibrio dellorganismo

9 9 Livelli di Astrazione 4Sequenze Motivi Geni e genoma Evoluzione - Alberi filogenetici 4Espressione Tecniche per lanalisi di dati da microarrays 4Proteoma Struttura e funzione delle proteine 4Sistema Reti regolatorie Feedback e controllo

10 10 Le principali sfide computazionali 4Assemblaggio di sequenze 4Analisi di sequenze Mappaggio dei geni Confronto di sequenze (allineamento …) Ricerca di segnali 4Memorizzazione e recupero dellinformazione Organizzazione di dati di espressione genica 4Ricostruzione di alberi evolutivi 4Classificazione delle proteine 4Inferenza di reti regolatorie

11 11 Tecniche algoritmiche 4Il software per la bioinformatica richiede tecniche algoritmiche sofisticate programmazione dinamica algoritmi probabilistici/approssimati data mining algoritmi di apprendimento gestione di Very Large DataBases progetto di GUI ottimizzazione combinatoria inferenza statistica …….

12 12 Il gergo …DEL BIOLOGO MOLECOLARE Nucleotidi Lettere, Simboli …DELLINFORMATICO Sequenze Stringhe, Parole OligonucleotidiMotivi ProgrammiAlgoritmi MutazioniMismatches

13 13 Gli algoritmi Algoritmo (dal nome del matematico persiano Mohammed ibn-Musa al- Khowarismi - IX secolo d.C.)Successione finita non ambigua deterministica eseguibile di istruzioni la cui esecuzione permette di portare a termine un compito assegnato o di risolvere un problema

14 14 Gli algoritmi Lalgoritmo deve essere 4comprensibile al suo esecutore 4corretto 4efficiente Dati iniziali Manipolazione(algoritmo) Risultati

15 15 Gli algoritmi Esempi di problemi 4Calcolare la potenza n-esima di a 4Disporre in ordine crescente n interi assegnati 4Stabilire se, data una formula del calcolo proposizionale con n variabili, esiste una n-upla di valori booleani che la renda vera 4Stabilire se un polinomio in n variabili a coefficienti interi ammette radici intere

16 16 Gli algoritmi Questione logica Dato un problema P, esiste almeno un algoritmo di soluzione di P? Esempio di problema indecidibile: 10° problema di Hilbert Questione Computazionale Dato un problema decidibile P, esiste almeno un buon algoritmo di soluzione per P? Che consuma poche risorse

17 17 Complessità degli algoritmi 4Quanto costa risolvere un problema? Analisi degli Algoritmi 4E possibile diminuire questo costo? Disegno di algoritmi efficienti Determinazione di estremi inferiori di complessità

18 18 Complessità degli algoritmi Algoritmo A 1 Problema: calcolo di a n Algoritmo A 2 begin x:=a; y:=1; u:=0; z:=n; while z > 0 do begin u:=z mod 2; z:=z div 2; if u = 1 then y:=x*y; x:=x*x; end begin x:=1; z:=n; while z > 0 do begin x:=x*a; z:=z-1; end

19 19 e la proprietà delle potenze a k+j = a k a j Complessità degli algoritmi 4A 1 sfrutta la definizione di potenza come iterazione del prodotto 4A 2 sfrutta la rappresentazione binaria di n

20 20 Complessità degli algoritmi 4Il confronto di efficienza tra A 1 e A 2 avviene scegliendo: il criterio di confronto Tempo di computazione Occupazione di memoria il metodo di confronto Empirico: tempo di calcolo su macchina reale che dipende da macchina dati iniziali Ideale: numero di istruzioni eseguite in funzione della dimensione dei dati iniziali

21 21 Complessità degli algoritmi Analisi di A 1 Conteggio delle operazioni aritmetiche nel caso peggiore begin x:=1; z:=n; while z > 0 do begin x:=x*a; z:=z-1; end NB: Ogni esecuzione di repeat decrementa z di 1 => n esecuzioni per avere z=0 NB: Ogni esecuzione di repeat decrementa z di 1 => n esecuzioni per avere z=0

22 22 Complessità degli algoritmi Analisi di A 2 Conteggio delle operazioni aritmetiche nel caso peggiore begin x:=a; y:=1; u:=0; z:=n; while z > 0 do begin u:=z mod 2; z:=z div 2; if u = 1 then y := x * y; x:=x*x; end NB: ogni esecuzione dimezza z => [log n ]+1 esecuzioni per avere z=0 NB: ogni esecuzione dimezza z => [log n ]+1 esecuzioni per avere z=0

23 23 Complessità degli algoritmi Confronto di efficienza tra A 1 e A 2 4Per n < 8, è più efficiente A 1 4Per n > 8, è più efficiente A 2

24 24 Complessità degli algoritmi 4Lefficienza di un algoritmo è misurata dalla complessità in tempo e spazio 4La complessità è funzione della dimensione dellinput n O(n k ): tempo polinomiale rispetto alla dimensione dellinput (fattibile) O(k n ): tempo esponenziale rispetto alla dimensione dellinput (infattibile)

25 25 Complessità degli algoritmi

26 26 Complessità degli algoritmi I problemi si possono dividere in 4trattabili hanno almeno un algoritmo di soluzione di complessità polinomiale 4intrattabili non hanno algoritmi di soluzione di complessità polinomiale

27 27 Un po di gergo Def: Problema di decisione Def: Problema di decisione Loutput di è YES o NO nella classe P nella classe P risolto da un algoritmo polinomiale (efficiente in tempo) nella classe NP nella classe NP Si verifica, tramite un certificato, in tempo polinomiale se una istanza di ammette risposta YES NP-Completo NP-Completo Ogni altro problema in NP può essere risolto tramite un algoritmo polinomiale che risolve, e è nella classe NP

28 28 Un po di gergo Def: Problema di ottimizzazione Def: Problema di ottimizzazione Tra linsieme delle soluzioni possibili, si sceglie quella di costo minimo (o di beneficio massimo). Esempio: allineamento di minimo costo tra due sequenze Algoritmo di approssimazione per Algoritmo di approssimazione per Un algoritmo A è di approssimazione per, se per ogni input I di, A produce in tempo polinomiale una soluzione S tale che il valore della funzione costo c su S verifichi la relazione: c(S) (|I|) x OPT P (I) ( 1) Esempio: algoritmo 2-approssimante se =2


Scaricare ppt "UNIVERSITA DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA Corso di BIOINFORMATICA: TECNICHE DI BASE Prof. Giancarlo Mauri Lezione 1-2 Introduzione."

Presentazioni simili


Annunci Google