Algoritmi e Strutture Dati

Slides:



Advertisements
Presentazioni simili
Corsi di allenamento 2013 Congetturare e dimostrare.
Advertisements

LIMITI:DEFINIZIONI E TEOREMI
Disegna un quadrato di 8 quadretti per lato
INDIVIDUARE PROPRIETÀ. TROVA 3 NUMERI DISPARI LA CUI SOMMA SIA 100 Se formalizziamo, tenendo conto di tutti i fattori 2k+1+2h+1+2j+1=100 Cioè 2(k+h+j+1)+1=100.
Macchine di Turing e ricorsività generale
Il gioco del 15 Il gioco del quindici fu inventato da Sam Loyd piu' di un secolo fa. Lo scopo del gioco e' quello di ordinare le caselle dal numero 1 al.
Il problema: un percorso ad ostacoli
Il Mot.
Problema e algoritmo Prof. Baldassare Galia 2002.
SPIM Esercizi. Esercizio 1 – il comando li Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
Il grande geometra Ilaria Cozzucoli.
Semantiche dei linguaggi di programmazione
Elementi di Algoritmi e Strutture Dati
La matematica per risolvere problemi reali
In questa unità d’apprendimento abbiamo verificato un legame tra la matematica e la musica. Infatti il valore delle note corrisponde a delle frazioni.
Rotazione di un corpo rigido attorno ad un asse fisso
Modelli e Algoritmi per la Logistica Branch & Bound Prof. Carlo Mannino Prof. Antonio Sassano Dipartimento di Informatica e Sistemistica Università di.
Alla scoperta di una regolarità…
Intelligenza Artificiale
Conflitto creato dalla relatività ristretta
Contatore: esempio di circuito sequenziale
Meccanica del moto circolare
RAPPRESENTAZIONE DELL'INFORMAZIONE
LABORATORIO di MATEMATICA
DAL MICRO AL MACROCOSMO
La misura delle grandezze
Elementi di Informatica di base
Invariante spazio temporale
Particolari terne numeriche e teorema di PITAGORA
Algoritmi e Strutture Dati
Passo 3: calcolo del costo minimo
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Problemi facili, problemi difficili
misura dell’altezza del sole
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
DIDATTICA DELLA MATEMATICA TFA A059
Le funzioni Prof.ssa A. Sia.
il problema dei problemi
EQUAZIONI E DISEQUAZIONI
….e la risoluzione dei problemi
Complessità di un algoritmo
Algoritmi e Strutture dati a.a. 2013/2014 Informazioni sul corso
Quante sono le diagonali di un poligono convesso?
Algoritmi e Strutture dati a.a. 2012/2013 Informazioni sul corso Dr Maria Federico.
Matematica Elementare Silvia Dimmito
Equazioni di primo grado
Le Linee della Pista. La fascia di riposo Costa azzurra o "fascia di riposo". E' una fascia di colore azzurro larga almeno il 10% della larghezza della.
Teoria degli algoritmi e della computabilità Approfondimento: Un modo divertente di parlare di complessità computazionale: puzzle, matematica e algoritmi.
DIDATTICA DELLA MATEMATICA
Prof. Francesco Gaspare Caputo
Informatica dilettevole e curiosa
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 1 Cicli ed asserzioni Corso di Informatica 2 a.a. 2003/04 Lezione 1.
L’addizione e la sottrazione nell'Insieme N dei numeri naturali
8-14 dicembre L’Ora del Codice
La rappresentazione delle informazioni in un computer Seconda parte.
Il Mot.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
L'apprendistato al senso dei simboli in algebra LEZIONE 3 L'apprendistato al senso dei simboli in algebra 3.1.
Il problema della ricerca Algoritmi e Strutture Dati.
Compitino del 2004 Alberi Generici. Idea Si vuole un tipo di dato astratto che definisca una struttura ad albero in cui nodi e foglie hanno associato.
Da qui è nato il mio interesse per la simmetria
Problemi risolvibili con la programmazione dinamica Abbiamo usato la programmazione dinamica per risolvere due problemi. Cerchiamo ora di capire quali.
Frazioni e problemi.
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
Algoritmi e Strutture Dati Luciano Gualà
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Algebra e logica Ragionare, simbolizzare, rappresentare.
NRD – Nucleo di Ricerca in Didattica della Matematica
Transcript della presentazione:

Algoritmi e Strutture Dati Luciano Gualà guala@mat.uniroma2.it www.mat.uniroma2.it/~guala

Picture-Hanging Puzzles Algoritmi ricorsivi e equazioni di ricorrenza: uno scenario meno comune [riferimento:] E. Demaine, M. Demaine, Y. Minsky, J.Mitchell, R. Rivest, M. Patrascu, Picture-Hanging Puzzles, FUN’12

Un modo perverso di attaccare quadri: puzzle, matematica, algoritmi …e un paio di cose che ho imparato sull’informatica

Un modo classico di appendere un quadro: Che succede al quadro se rimuoviamo un chiodo?

Un modo classico di appendere un quadro: Che succede al quadro se rimuoviamo un chiodo?

Un modo classico di appendere un quadro: Che succede al quadro se rimuoviamo un chiodo? niente: il quadro resta appeso sull’altro chiodo!

Puzzle (versione base) … un modo più perverso. Puzzle (versione base) Siano dati due chiodi allineati su un muro, una corda e un quadro. Appendere il quadro al muro arrotolando opportunamente la corda intorno ai chiodi in modo tale che rimuovendo uno qualsiasi dei due chiodi il quadro (per forza di gravità) cada.

…tentativi…

soluzione per due chiodi adesso se rimuoviamo un chiodo (qualsiasi)? cade!!! e se volessi farlo con n chiodi? n=3,4,…,100,…,1.000.000…

Prima cosa che ho imparato dell’informatica: …agli informatici piace pensare in grande.

Puzzle (versione più generale) …ancora più perverso. Puzzle (versione più generale) Siano dati n chiodi allineati su un muro, una corda e un quadro. Appendere il quadro al muro arrotolando opportunamente la corda intorno ai chiodi in modo tale che rimuovendo uno qualsiasi degli n chiodi il quadro (per forza di gravità) cada.

un’interessante relazione: anelli di Borromeo tre anelli agganciati, ma rimuovendone uno qualsiasi gli altri due sono liberi Stemma della famiglia Borromeo, famiglia nobile milanese

anelli di Borromeo: 3D tre anelli agganciati, ma rimuovendone uno qualsiasi gli altri due sono liberi

Un’interessante relazione anelli di Borromeo: un altro modo di disegnarli è la soluzione del puzzle con due chiodi!

Puzzle (versione più generale) …torniamo ai quadri. Puzzle (versione più generale) Siano dati n chiodi allineati su un muro, una corda e un quadro. Appendere il quadro al muro arrotolando opportunamente la corda intorno ai chiodi in modo tale che rimuovendo uno qualsiasi degli n chiodi il quadro (per forza di gravità) cada.

Il nucleo matematico del problema, ovvero: la formalizzazione

Una astrazione utile che usa i gruppi liberi 2n simboli: x1, x1 , x2 , x2 , . . . , xn , xn -1 -1 -1 xi : rappresenta un “giro” intorno al chiodo i in senso orario xi : -1 rappresenta un “giro” intorno al chiodo i in senso antiorario x1 x2 x1 x2 -1 -1

…tentativi… x1 x2 x1 -1 x1 x2 x1 x1 x2 x1 x2 -1 x1 x2 -1

Perché formalizzare? per capire proprietà del problema perché una volta formalizzato posso “ragionare” usando la matematica

Proprietà Data un’espressione/arrotolamento, il quadro cade se e solo se l’espressione si cancella. (e si cancellano solo i termini adiacenti del tipo xi xi ). -1 E cosa vuol dire nel modello rimuovere il chiodo i? Semplice: cancellare tutte le occorrenze di xi e xi -1

…un esempio… x2 x1 x2 x1 non cade! cade! x1 x1 …se rimuovo primo chiodo… x2 x1 x2 x1 -1 non cade! …se rimuovo secondo chiodo… cade! x1 x1 -1

…un altro esempio… x1 x2 x1 x2 x2 x2 cade! cade! x1 x1 …se rimuovo primo chiodo… x1 x2 x1 x2 -1 -1 x2 x2 -1 cade! …se rimuovo secondo chiodo… cade! x1 x1 -1

Dalla formalizzazione all’algoritmo (in questo caso ricorsivo) Idea: costruire Sn a partire da Sn-1.

soluzione per n chiodi: un algoritmo ricorsivo Proprietà algebriche: (x y…z)-1= z-1…y-1x-1 (x -1)-1 = x x1 x2 x1 x2 -1 -1 S2 = commutatore, denotato con [x1 , x2] S3 = [ S2 , x3] -1 -1 = S2 x3 S2 x3 x1 x2 x1 x2 x3 (x1 x2 x1 x2 ) x3 -1 -1 = -1 -1 -1 -1 -1 -1 -1 -1 = x1 x2 x1 x2 x3 x2 x1 x2 x1 x3 -1

soluzione per tre chiodi 3 1 2 x1 x2 x1 x2 x3 x2 x1 x2 x1 x3 -1 -1 -1 -1 -1

Soluzione ricorsiva [ Sn-1 , xn] Sn = = Sn-1 xn Sn-1 xn S2 S3 S4 S5 S6

Una domanda da informatici: quanto è buona la soluzione? quanto serve lunga la corda (in funzione di n)? quanti simboli ha Sn?

Valutare l’algoritmo, ovvero: analisi della complessità

Analisi della complessità Sn = [ Sn-1 , xn] -1 -1 = Sn-1 xn Sn-1 xn L(n): lunghezza (#di simboli) di Sn L(n)= 2 L(n-1) + 2 L(n)=(2n) un conto più preciso (si può dimostrare per induzione) L(n) = 2n + 2n-1 - 2 se per ogni simbolo/giro servissero 5 cm, con n=20 chiodi la corda dovrebbe essere lunga > 78 km!!!

Un’altra cosa che ho imparato dell’informatica: Se un problema lo risolvi male, è come se non l’hai risolto per niente.

L’eterno tarlo dell’algoritmista: si potrà fare meglio? Idea: costruire Sn in modo più “bilanciato”, in termini di Sn/2 e non di Sn-1.

Una soluzione più efficiente E(i :j) : soluzione per i chiodi da i a j E(1:2) E(3:4) E(5:6) E(7:8) E(1:4) E(5:8) E(1:8) E(i : i) = xi E(i : i+1) = [xi , xi+1] = xi xi+1 xi xi+1 -1 E(i : j) = E(i : (i+j)/2 ), E( (i+j)/2+1 : j)

Analisi della complessità E(i :j) : soluzione per i chiodi da i a j E(i : i) = xi E(i : i+1) = [xi , xi+1] = xi xi+1 xi xi+1 -1 -1 E(i : j) = E(i : (i+j)/2 ), E( (i+j)/2+1 : j) L(n): lunghezza (#di simboli) di Sn corda eponenzialemnte più corta! L(n)= 4 L(n/2) L(1)= 1 L(2)= 4 L(n)=(n2)

Le due soluzioni a confronto L(n): lunghezza (#di simboli) di Sn prima soluzione seconda soluzione L(2)= 4 L(2)= 4 L(4)= 22 L(4)= 16 L(8)= 382 L(8)= 64 L(16)= 98.302 L(16)= 256 L(n)  2n L(n)  n2 se per ogni simbolo/giro servissero 5 cm, con n=20 chiodi la corda dovrebbe essere lunga > 78 km!!! con n=20 chiodi serve un corda di circa 20 metri!

…grazie per l’attenzione…

soluzione per quattro chiodi x1 x2 x1 x2 x3 x4 x3 x4 -1 -1 -1 -1 x2 x1 x2 x1 x4 x3 x4 x3 -1 -1 -1 -1