Tecnologie informatiche multimediali 03 - 20 febbraio 2012

Università degli Studi di Ferrara
Facoltà di Lettere e Filosofia
Corso di Laurea in «Scienze e Tecnologie della Comunicazione»
aa 2011-2012
Tecnologie informatiche
multimediali
Prof. Giorgio Poletti
[email protected]
TEORIA E FONDAMENTI
ELEMENTI DI PROGETTAZIONE, CONSERVAZIONE E
GESTIONE DELLE INFORMAZIONI
Data Base Mangement System
Schema di linguaggi e strutture per la gestione
DML (DATA MANIPULATION LANGUAGE)
Programmi Utente
Area di Lavoro
DDL (DATA DEFINITION LANGUAGE)
Schema
Corrispondenza strutture logiche-strutture fisiche
DMCL (DEVICE MEDIA CONTROL LANGUAGE)
Strutture Fisiche di Memorizzazione
Data Base Mangement System
Schema della struttura del software di gestione
UTENTI E SOFTWARE APPLICATIVI
Sotto schema
1
Sotto schema
2
DBA
(Data Base Access)
Schema Logico
Schema Interno
SUPPORTI E DISPOSITIVI FISICI
DI MEMORIZZAZIONE DEI DATI
Sotto schema
3
Algoritmi di Ricerca Dati
Il concetto di Algoritmo
in informatica e matematica
Procedimento che risolve una determinata tipologia di
problemi attraverso un numero finito di passi
si basa
Teoria della calcolabilità (computabilità), e della ricorsione studio dei metodi per definire e
capire quali funzioni possono essere calcolate tramite un procedimento automatico e
indipendentemente dal fatto che si trattabile (ci siano o meno le risorse necessarie).
•
misurazione asintotica
•
caratterizzato
ci sono implementazioni dipendenti dai computer, NON si può
stimare un tempo preciso;
si intende dare un’’idea quantitativa della crescita del tempo di
elaborazione alla crescita dei dati da elaborare
ATOMICITÀ i passi sono «elementari» (non ulteriormente scomponibili);
NON AMBIGUITÀ i passi sono essere interpretabili in modo univoco sia da un esecutore umano che da una
macchina;
FINITEZZA i passi sono un numero finito, sono necessari un numero finito di dati in input;
TERMINAZIONE l'esecuzione terminerà dopo un tempo finito;
EFFETTIVITÀ l'esecuzione porterà ad un risultato univoco;
DETERMINISMO a d ogni un passo ne seguirà uno ed uno solo, sempre univocamente determinato.
Algoritmi di Ricerca Dati
Il concetto di Algoritmo
in informatica e matematica
Procedimento che risolve una determinata tipologia di
problemi attraverso un numero finito di passi
formalizzato
Risoluzione del matematico della «decisione» (1900), posto da Hilbert e
risolto, in maniera indipendente da Alonzo Church (1936) e Alan Turing
(1937)
generano
Modelli matematici
è
Macchina di Touring
di tipo
•
•
•
•
Deterministica
Non deterministica
Semplificata
Universale
Macchina immaginaria con una testina in grado di scrivere e leggere su un nastro potenzialmente infinito
Algoritmi di Ricerca Dati
Il concetto di Algoritmo
in informatica e matematica
tipologia
Procedimento che risolve una determinata tipologia di
problemi attraverso un numero finito di passi
Molteplici e rendono impossibile una catalogazione precisa e definitiva
consideriamo
Algoritmi di ordinamento
Algoritmi di ricerca
Algoritmi Genetici (evolutivi)
Algoritmi di visitazione degli alberi
Algoritmi di Ricerca Dati
Algoritmi di ORDINAMENTO
risultato
Criteri ed eccezioni
L’ordinamento è considerato totale, se
viene definito per aree si parla di algoritmi
di ordinamento topologico
Elenco degli elementi secondo un relazione d’ordine, tale che ogni elemento sia
minore o maggiore dei quello che lo segue in lista.
Tipo di relazione
•
•
Key Words
•
•
•
Naturale
Definita sulle necessità dell’applicazione
CONFRONTO-SCAMBIO
ADATTIVO (se esegue operazioni di scambio in funzione del risultato dei confronti)
STABILITÀ (se preserva l'ordine relativo dei dati con chiavi uguali in ordinamenti sucessivi)
Complessità in tempo
ordinamento per confronto
(NLogN) con N numero
di elementi da oridinare
Algoritmi di Ricerca Dati
Algoritmi di ORDINAMENTO (esempi)
•
•
•
BUBBLE SORT
MERGE SORT
ORDINAMENTO DELLE FRITTELLE
Bubble Sort (ordinamento a bolle): semplice algoritmo di ordinamento a
confronto-scambio
Opera
METODO GENERALE: ad ogni passo si confronta un elemento con l’elemento adiacente e
se non sono ordinati secondo il criterio definito si scambiano le posizioni. Si scorrono
tutti gli elementi finché avvengono scambi (circa N2/2 confronti e N2/2 scambi).
•
•
Conigli (scorrimento nel senso dell’’indice)
Tartarughe (scorrimento senso opposto all’indice)
•
Varianti e ottimizzazioni
•
Elementi
in una iterazione, non avviene alcuno scambio, l’ordine è necessariamente completo
ordinato e l'algoritmo può essere terminato
In una data iterazione non si sposta nessun elemento di posizione maggiore di un dato
valore i, l’algoritmo da quel momento limiterà le iterazioni successive con confronti fino alla
posizione i
Algoritmi di Ricerca Dati
Algoritmi di ORDINAMENTO (esempi)
•
•
•
Merge Sort (ordinamento per fusione):
algoritmo di ordinamento che si base su
un processo di risoluzione ricorsivo.
BUBBLE SORT
MERGE SORT
ORDINAMENTO DELLE FRITTELLE
Suddivide il problema in sotto-problemi,
stessa natura minore dimensione e di più
facile soluzione (paradigma del DIVIDI ET
IMPERA - JOHN VON NEUMANN, 1945)
Descrizione concettuale
1. La sequenza da ordinare ha lunghezza 0-1: è ordinata
altrimenti
2. La sequenza viene divisa (dividi) in 2 metà (in caso di
numero dispari di (2n+1) elementi in 2 sotto-sequenze di
n+1 e n elementi
con tecnica ricorsiva
3. Ogni sotto sequenza viene ordinata
conclusione
4. Le 2 sotto-sequenza ordinate vengono fuse (impera),
estraendo il minimo delle 2 sotto-sequenze e inserendoli nella
sequenza in uscita, sequenza ordinata
Principio
Fasi del
Paradigma
CASO BASE: inizio della funzione da
sviluppare, risolve in modo diretto il
problema (nel caso in cui la dimensione sia
inferiore alla soglia prevista)
DIVIDE: suddivisione dell'input in altri di
dimensione inferiore e alla chiamata
ricorsiva della stessa procedura con l'input
appena creato;
IMPERA: prevede di ricombinare l'output
ottenuto dalle precedenti chiamate
ricorsive al fine di ottenere il risultato finale.
Algoritmi di Ricerca Dati
Algoritmi di ORDINAMENTO (esempi)
•
•
•
BUBBLE SORT
MERGE SORT
ORDINAMENTO DELLE FRITTELLE
1. La sequenza da ordinare ha lunghezza 0-1: è ordinata
altrimenti
2. La sequenza viene divisa (dividi) in 2 metà (in caso di
numero dispari di (2n+1) elementi in 2 sotto-sequenze di
n+1 e n elementi
con tecnica ricorsiva
3. Ogni sotto sequenza viene ordinata
conclusione
4. Le 2 sotto-sequenza ordinate vengono fuse (impera),
estraendo il minimo delle 2 sotto-sequenze e inserendoli nella
sequenza in uscita, sequenza ordinata
Algoritmi di Ricerca Dati
Algoritmi di ORDINAMENTO (esempi)
•
•
•
Ordinamento delle frittelle (pancake sorting): algoritmodi
ordinamento in cui è permesso solo invertire una parte
iniziale della successione, parte detta prefisso da cui
anche il nome prefix reversal.
BUBBLE SORT
MERGE SORT
ORDINAMENTO DELLE FRITTELLE
Principio
Pancake sort algorith
Esempio
ordinare gli elementi nel
numero minore possibile di
inversioni
•
n valori necessitano di un numero di
operazioni compreso tra (17/16)n e
(5/3)n
•
•
una pila di frittelle in cui è possibile prendere le n
frittelle più in alto e rovesciarle
fare un'inversione per portare in cima alla pila la frittella più
Logica
grande non ancora ordinata
utilizzare un'altra frittella per metterla al suo posto corretto
proseguire fino all'ordinamento completo
2n−3 (Bill Gates, Christos Papadimitriou
limite
1975), migliorato nel 2008 da ricercatori
della Texas University1
(1) Team Bests Young Bill Gates With Improved Answer to So-Called Pancake Problem in Mathematics. University of Texas at Dallas News Center,
17 settembre 2008.
Algoritmi di Ricerca Dati
Algoritmi di ORDINAMENTO (esempi)
•
•
•
BUBBLE SORT
MERGE SORT
ORDINAMENTO DELLE FRITTELLE
Esiste anche il problema dell'ORDINAMENTO DELLE FRITTELLE ABBRUSTOLITE
(Burnt pancake problem), per cui il lato abbrustolito delle frittelle, alla fine
dell’ordinamento deve rimanere verso il basso (2007,Francesco Riglietti).
Nel 2008, un gruppo di studenti ha costruito un computer batterico che può
risolvere un semplice esempio di ordinamento delle frittelle abbrustolite,
programmando dei batteri E. coli in modo che invertano segmenti di DNA1
NUMERO DI INVERSIONI NECESSARIE
1 -1
2 -11
3 -1221
4 - 1 3 6 11 3
5 - 1 4 12 35 48 20
6 - 1 5 20 79 199 281 133 2
7 - 1 6 30 149 543 1357 1903 1016 35
8 - 1 7 42 251 1191 4281 10561 15011 8520 455
9 - 1 8 56 391 2278 10666 38015 93585 132697 79379 5804
10 - 1 9 72 575 3963 22825 106461 377863 919365 1309756 814678 73232
(1) Engineering bacteria to solve the Burnt Pancake Problem 20 maggio 2008 (Journal of Biological Engineering - http://www.jbioleng.org/content/2/1/8)