UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Informatica Generale Marzia Buscemi
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA
Algoritmi e Strutture Dati
Ricorrenze Il metodo di sostituzione Il metodo iterativo
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
PROGRAMMARE IN PASCAL (le basi)
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Informatica Generale Alessandra Di Pierro
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA
Corso di Laurea in Informatica
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
Bioinformatica Prof. Mauro Fasano
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Semantiche dei linguaggi di programmazione
Come nasce la Bioinformatica? Progetti di sequenziazione del genoma Sforzi sperimentali per determinare la struttura e le funzioni di molecole biologiche.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Reti Logiche A Lezione n.1.4 Introduzione alle porte logiche
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
File.
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Processi Aleatori : Introduzione – Parte I
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Raffaella Rizzi DISCO Dipartimento di Informatica Sistemistica e Comunicazione Edificio U14 - primo piano - stanza.
Algoritmi e Strutture Dati (Mod. A)
Risorse e Stallo.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Seminario su clustering dei dati – Parte II
Algoritmi.
Bioinformatica Andrea G. B. Tettamanzi.
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Elementi di Informatica
Equazioni differenziali Applicazioni Economiche
Elementi di Informatica di base
Algoritmi e Strutture dati Introduzione al corso
INFORMATICA MATTEO CRISTANI.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
Algoritmi e Strutture Dati Introduzione agli algoritmi
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
Informatica e Informatica di Base
Complessità Computazionale
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

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

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

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

Perché la bioinformatica?

“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

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

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

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

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

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

Tecniche algoritmiche Il 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 …….

…DEL BIOLOGO MOLECOLARE Il gergo …DEL BIOLOGO MOLECOLARE …DELL’INFORMATICO Nucleotidi Lettere, Simboli Sequenze Stringhe, Parole Oligonucleotidi Motivi Programmi Algoritmi Mutazioni Mismatches

Gli algoritmi Algoritmo Successione (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

Gli algoritmi L’algoritmo deve essere comprensibile al suo esecutore Dati iniziali L’algoritmo deve essere comprensibile al suo esecutore corretto efficiente Manipolazione (algoritmo) Risultati

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

Che consuma poche “risorse” 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”

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

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

Complessità degli algoritmi A1 sfrutta la definizione di potenza come iterazione del prodotto A2 sfrutta la rappresentazione binaria di n e la proprietà delle potenze ak+j = akaj

Complessità degli algoritmi Il confronto di efficienza tra A1 e A2 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

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

Complessità degli algoritmi Analisi di A2 Conteggio delle operazioni aritmetiche nel caso peggiore begin x:=a; y:=1; u:=0; z:=n; while z > 0 do 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

Complessità degli algoritmi Confronto di efficienza tra A1 e A2 Per n < 8, è più efficiente A1 Per n > 8 , è più efficiente A2

Complessità degli algoritmi L’efficienza di un algoritmo è misurata dalla complessità in tempo e spazio La complessità è funzione della dimensione dell’input n O(nk): tempo polinomiale rispetto alla dimensione dell’input (fattibile) O(kn): tempo esponenziale rispetto alla dimensione dell’input (infattibile)

Complessità degli algoritmi

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

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

Un po’ di gergo Def: Problema di ottimizzazione P Tra l’insieme 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 P Un algoritmo A è di approssimazione per P, se per ogni input I di P, A produce in tempo polinomiale una soluzione S tale che il valore della funzione costo c su S verifichi la relazione: c(S) ≤ r(|I|) x OPTP(I) (r ≥ 1) Esempio: algoritmo 2-approssimante se r=2