SD e LSD Lezione tenuta dal Presentazione di: Prof. P. D’Arco

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Strutture dati per insiemi disgiunti
Alberi binari Definizione Sottoalberi Padre, figli
2. Introduzione alla probabilità
Algoritmi e Strutture Dati (Mod. B)
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
RB-alberi (Red-Black trees)
Alberi binari di ricerca
Code con priorità Ordinamento
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Algoritmi e Strutture Dati
Università degli Studi di Roma Tor Vergata
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Algoritmi e Strutture Dati
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Esercizio 1 Due collegamenti in cascata, AB e BC hanno una velocità rispettivamente di 100 Mb/s e 50 Mb/s e tempi di propagazione pari a 1 ms e 1.2 ms.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 15/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmi e strutture Dati - Lezione 7
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Interrogazioni.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Unintroduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Algoritmi e Strutture Dati
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati
Algoritmi e strutture dati
Albero: insieme di punti chiamati NODI e linee chiamate EDGES
Algoritmi e Strutture Dati 20 aprile 2001
Tabelle hash.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Esercizi su alberi binari
Heap binari e HeapSort.
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
RB-insert(T, z) // z.left = z.right = T.nil Insert(T, z) z.color = RED // z è rosso. Lunica violazione // possibile delle proprietà degli alberi // rosso-neri.
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
1 PerfectFit06 Sistema di personalizzazione dei contenuti per gli scavi archeologici di Ercolano Candidato: Vincenzo Scognamiglio Relatore: Prof. Ernesto.
alberi completamente sbilanciati
Capitolo 6 Alberi di ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche
Algoritmi e strutture Dati - Lezione 7 1 Algoritmi di ordinamento ottimali L’algoritmo Merge-Sort ha complessità O(n log(n))  Algoritmo di ordinamento.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Transcript della presentazione:

SD e LSD Lezione tenuta dal Presentazione di: Prof. P. D’Arco Gaetano Ragozzino

SD (Subset Difference) Obiettivo:Ridurre la lunghezza dell’header da O(r*lg(N/r)) a O(r) Idea: Ampliare la collezione di sottoinsiemi {S1…Sn} con cui ricoprire N\R

1)Collezione di sottoinsiemi S1…Sw con cui ricoprire N\R Si,j={sottoinsiemi di foglie discendenti da vi ma non da vj} SD={tutti i sottoinsiemi differenza Si,j} vi vi vj vj … … …

2)Assegnamento di chiavi Li,j ai sottoinsiemi Si,j 1°Caso: Li,j scelte indipendentemente e uniformemente a caso 2°Caso: Li,j calcolate attraverso un generatore pseudo casuale

3) Partizionamento di N\R=U Si Dato R, calcoliamo l’albero di Steiner (ST(R)) e poniamo T=ST(R) 1 2 3 4 5 6 9 11 13 18 22 27

Procedura di partizionamento 1.Siano vi e vj due foglie t.c. il più piccolo antenato v non contenga altre foglie di T. Siano ve e vk figli di v t.c. vi discende da ve e vj da vk. 2.Se ve è diverso da vi aggiungi Se,i. Se vk è diverso da vj aggiungi Sk,j. 3.Rimuovi da T tutti i discendenti di v e trasforma v in una foglia. 4.Se rimane una foglia termina, altrimenti ritorna al passo 1.

R={18,22,27}; vi=18; vj=22; v=2; ve=4; vk=5; 1) 3) 1 v 2 3 ve vk 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 R R R R={18,22,27}; vi=18; vj=22; v=2; ve=4; vk=5; 2)S4,18, S5,22

1) 3) v vk ve=vi Rimane solo la radice vj=R 2 3 Rimane solo la radice 6 7 12 13 14 15 24 25 26 27 28 29 30 31 vj=R vi=2; vj=27; v=1; ve=2; vk=3; 2)S4,18, S5,22,, S3,27

<S4,18, S5,22, S3,27, EL4,18(k), EL5,22(k), EL3,27(k), Ek(M)> 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 R R R S4,18 S5,22 S3,27 <S4,18, S5,22, S3,27, EL4,18(k), EL5,22(k), EL3,27(k), Ek(M)> Header

Taglia Header? Lemma. Dato un qualsiasi insieme di revocati R, il metodo precedente partiziona N\R in al più 2r-1 sottoinsiemi disgiunti. Ad ogni passo vengono aggiunti alla copertura al più due sottoinsiemi differenza e il numero di revocati diminuisce di uno ad eccezione dell’ultimo passo che potrebbe non ridurre il numero di revocati e aggiungere un sottoinsieme.

2k+(2k -1) -1= 2*2k -2 posizioni Quanto vale |SD|? Ipotesi: numero utenti N potenza di 2. vi vi 1 1 vj vj vj vj Sia vi il nodo radice di un albero di altezza k. Allora vj può assumere: 2k+(2k -1) -1= 2*2k -2 posizioni 2 3 2 3 vj vj vj vj S1,2 S1,3 4 5 6 7 |SD|=2 S1,2 S1,3 S1,4 S1,5 S1,6 S1,7 |SD|=6

Quanto vale |SD|? Quante posizioni vi può assumere? Consideriamo l’albero T con altezza k=2 vi #sottoalberi di altezza k=2 => 2lg4-2=1 1 vi vi 2 3 #sottoalberi di altezza k=1 => 2lg4-1=2 4 5 6 7

Quanto vale |SD|? Quindi: #Si,j= S [2*2k-2]*2lgN-k #sottoalberi Ti di altezza k #posizioni che vj può assumere in Ti = 2* S 2k*2lgN-k -2* S 2lgN-k lgN lgN k=1 k=1

Quanto vale |SD|? =2* S N -2* S 2lgN-k Sia l=lgN-k; Per k=1, si ha l=lgN-1; Per k=lgN, si ha l=0; Poichè S 2i=2m+1-1, risulta = 2* S N -2* S 2l = 2*N*lgN -2N+2 = O(N*lgN) k=1 k=1 m i=0 lgN lgN-1 k=1 l=0

2)Assegnamento di chiavi Li,j a Si,j 1°Caso: Li,j scelte indipendentemente e uniformemente a caso Quanto vale |Iu|? Tk vj non è sulla path k u memorizza #chiavi Li,j proporzionale al #nodi di Tk che non si trovano sulla path u-root u

Quanto vale |Iu|? Relativamente all’albero Tk Iu=2k+2k-1-(k+1)=2*2k-k-2 Quindi occorre tener conto di tutti gli alberi di altezza k, per 1<=k<=lgN path #foglie #nodi interni

Quanto vale |Iu|? Iu= S (2k+1-k-2)= S 2k+1 – S (k+2) lgN lgN lgN Iu= S (2k+1-k-2)= S 2k+1 – S (k+2) = 2* S 2k - S k -2*lgN Poichè S h =m(m+1)/2 e S 2i=2m+1-1, risulta = 2*(2lgN+1-2) –lgN(lgN+1)/2 -2*lgN = 4*N -4 –lgN(lgN+1)/2 -2lgN = O(N) k=1 k=1 k=1 lgN lgN k=1 k=1 m m h=1 i=0

2)Assegnamento di chiavi Li,j a Si,j 2°Caso: Li,j calcolate attraverso un generatore pseudo casuale G:{0,1}n {0,1}3n S – label casuale del nodo, G_L(S) – label del figlio sinistro, G_R(S) – label del figlio destro, G_M(S) – chiave del nodo. S G_L (S) G_R (S) G (S) = G_L (S) G_M (S) G_R (S)

LABELi,j = G_R(G_L(G_L (Li))) Calcolo della chiave Li,j associata a Si,j S=Li vi G_L (Li) G_R (Li) G_L(G_L (Li)) G_R(G_L(G_L (Li))) G_L(G_L(G_L (Li))) vj … … … LABELi,j = G_R(G_L(G_L (Li))) Li,j = G_M (LABELi,j )

Calcolo e distribuzione delle etichette LABELi,j Ogni utente corrisponde ad una foglia dell’albero. Ad ogni nodo interno vi viene associato un valore casuale Li Le etichette LABELi,j associate ai sottoinsiemi differenza Si,j sono calcolate a partire da Li

Calcolo e distribuzione delle etichette LABELi,j Per ogni antenato vi di u con label casuale Li, u riceve tutte le etichette pseudocasuali LABELi,j associate ai nodi vj che sono a distanza uno dalla path da vi ad u. A partire da esse, l’utente u può calcolare le etichette di tutti i sottoinsiemi differenza Si,j a cui appartiene, relativamente all’albero radicato in vi. Calcolata l’etichetta LABELi,j, l’utente può calcolare la chiave Li,j vi u

#totetichette = S (k-1)+1 Quante etichette deve memorizzare u per poter calcolare le chiavi Li,j di tutti i sottoinsiemi differenza a cui appartiene? Ogni path con k nodi contribuisce con k-1 etichette, quindi #totetichette = S (k-1)+1 = lgN*(logN+1)/2+1 = O(lg2N) lgN+1 k=1

Perché funziona? (light …) Osservazione 1. Ogni nodo vj che non è un antenato di u in Ti ha un’etichetta LABELi,j che può essere calcolata a partire da un’etichetta di un nodo a distanza uno dalla path u – root di Ti Osservazione 2. Un utente u non è in grado di calcolare chiavi associate a sottoinsiemi differenza a cui non appartiene

LSD (Layered Subset Difference) Idea: “sfoltire” la collezione di sottoinsiemi di SD {S1…Sw} e permettere di ricoprire N\R ancora con O(r) sottoinsiemi ma in modo tale che l’utente u memorizzi O(lg3/2N) etichette

vi 1 vk 2 3 vj 4 5 6 7 8 9 10 11 12 13 14 15 Si,,j = Si,k U Sk,,j Se vi,vk,vj sono vertici che occorrono in questo ordine lungo una path radice-foglia allora Si,j può sempre essere ottenuto come l’unione di Si,k e Sk,j, cioè, se “serve” Si,j si possono usare Si,k e Sk,j

La collezione di insiemi Si,j in LSD si ottiene restringendo i livelli in cui i vertici vi e vj possono stare Livello Speciale lgN Strato 2lgN

Livelli speciali e strati Identifichiamo nell’albero lgN livelli speciali. I livelli tra due livelli speciali compresi gli estremi formano uno strato. Si,j è nella collezione di sottoinsiemi di LSD se e solo se : vi giace su un livello speciale vi e vj appartengono allo stesso strato

Esempio di funzionamento v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 SD: Sv4,u1, Sv10,u5, Sv11,u8, Sv3,u12; LSD: Sv4,u1, Sv10,u5, Sv11,u8, Sv3,v6, Sv6,u12; Livelli speciali Strati

Collezione di sottoinsiemi LSD Insiemi Si,j che soddisfano le condizioni sono detti utili lgN(lgN* lgN) + lgN*lgN = 0(lg3/2N) #strati #livelli speciali #posizioni di vj nel caso peggiore(vi sul 1°livello speciale) #etichette di ogni strato

Riferimenti D. Naor, M. Naor and J. Lotspiech. Revocation and Tracing Schemes for Stateless Receivers. Advances in Cryptology, Proceedings of Crypto'01, Lecture Notes in Computer Science, Vol. 2139, pp. 41--62, 2001. D. Halevy and A. Shamir. The LSD Broadcast Encryption Scheme. Advances in Cryptology, Proceedings of Crypto '02, Lecture Notes in Computer Science, Vol. 2442, pp. 47--60, 2002.