ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING

Σχετικά έγγραφα
Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

Δομές Δεδομένων και Αλγόριθμοι

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

Κατακερματισμός (Hashing)

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Advanced Data Indexing

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

ΑΥΤΟΡΓΑΝΟΥΜΕΝΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: Δομές Δεδομένων και Αλγόριθμοι. Εαρινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Advanced Data Indexing

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Δομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

10. Πίνακες Κατακερματισμού

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n

ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING)

Διδάσκων: Κωνσταντίνος Κώστα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι

Δομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1

Μάθημα 8: Διαχείριση Μνήμης

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Δίαυλος Πληροφορίας. Η λειτουργία του περιγράφεται από:

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εισαγωγή στην Επιστήμη των Υπολογιστών

Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης

Πρόλογος 1. 1 Μαθηµατικό υπόβαθρο 9

Εισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων

Εισαγωγή στην Στατιστική (ΔΕ200Α-210Α)

β) 3 n < n!, n > 6 i i! = (n + 1)! 1, n 1 i=1

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

Εισαγωγή στην Στατιστική (ΔΕ200Α-210Α)

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

να είναι παραγωγίσιμη Να ισχύει ότι f Αν μια από τις τρεις παραπάνω συνθήκες δεν ισχύουν τότε δεν ισχύει και το θεώρημα Rolle.

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

5.1. Προσδοκώμενα αποτελέσματα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ)

ΚΕΦΑΛΑΙΑ 3 & 9 (ΠΙΝΑΚΕΣ)

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Διαδικασιακός Προγραμματισμός

Δυναμική Διατήρηση Γραμμικής Διάταξης

Αριθμητική Ανάλυση & Εφαρμογές

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη

Φροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Δηλαδή η ρητή συνάρτηση είναι πηλίκο δύο ακέραιων πολυωνύμων. Επομένως, το ζητούμενο ολοκλήρωμα είναι της μορφής

Εκτιμητές Μεγίστης Πιθανοφάνειας (Maximum Likelihood Estimators MLE)

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

Κρυπτογραφία. Συναρτήσεις μονής κατεύθυνσης - Συναρτήσεις κατακερματισμού. Άρης Παγουρτζής - Πέτρος Ποτίκας

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Εθνικό Μετσόβιο Πολυτεχνείο

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

Συνδυασμοί C(n, k): #επιλογών k από n διακεκριμένα αντικείμενα (διαθέσιμα σε ένα «αντίγραφο»).

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:

Κεφα λαιο 9 Κατακερματισμός

Α1. Να γράψετε τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη ΣΩΣΤΟ, αν είναι σωστή ή τη λέξη ΛΑΘΟΣ, αν είναι λανθασμένη.

Μαθηματικά Γ Γυμνασίου

Εισαγωγή Λογαριασμών από αρχείο ΚΕΠΥΟ

Εργαστηριακή άσκηση 8 η (EXCEL) ΣΥΝΑΡΤΗΣΕΙΣ-ΣΧΗΜΑΤΑ-ΕΙΚΟΝΕΣ- ΓΡΑΦΗΜΑΤΑ

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Transcript:

ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ saltogiann@ceid.upatras.gr ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΤΟ ΠΡOΒΛΗΜΑ ΤΟΥ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟY Θέλουμε τα δεδομένα που διαθέτουμε να μπορούν να αποθηκευτούν σε κάποιο πίνακα ή άλλη δομή και να χωράνε στη μνήμη του υπολογιστή που χρησιμοποιούμε. Ένα προς ένα αντιστοίχιση στοιχείων - Απευθείας διευθυνσιοδότηση Η διαθέσιμη μνήμη του υπολογιστή δεν μπορεί να ανταποκριθεί στον τεράστιο όγκο δεδομένων. ΛΥΣΗ: Η μέθοδος του κατακερματισμού Προσπαθεί να δώσει λύση στο πρόβλημα έλλειψης θέσεων σε μία δομή ή στη μνήμη του υπολογιστή, αντιστοιχίζοντας θέσεις της δομής/μνήμης στα δεδομένα με βάση κάποια συνάρτηση, ώστε να αποφεύγονται οι συγκρούσεις.

ΟΡΙΣΜOΣ Έστω: σύμπαν U = {0,1,..., Ν-1}, U = N πίνακας κατακερματισμού Τ[0,1,...,m-1], T = m συνάρτηση κατακερματισμού h:u [0,1,...,m-1], h = m Το στοιχείο x ϵ U θα αποθηκευτεί στην θέση T[h(x)]

ΕΙΔΗ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΎ Κατακερματισμός με αλυσίδες Σε κάθε θέση του πίνακα υπάρχουν συνδεδεμένες αλυσίδες και μπορούν να επεκταθούν δυναμικά Τεχνική κλειστής διεύθυνσης Κλειστός κατακερματισμός Δεν χρησιμοποιεί δείκτες για το χειρισμό των πινάκων Τεχνική ανοικτής διεύθυνσης Γραμμική Δοκιμή, Τετραγωνική Δοκιμή, Διπλός κατακερματισμός

ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ ΜΕ ΑΛΥΣΙΔΕΣ Στις αλυσίδες, υπάρχει μία δομή record όπου το πρώτο πεδίο χρησιμοποιείται για την αποθήκευση των δεδομένων ενώ το δεύτερο πεδίο, αποτελεί δείκτη προς το επόμενο ζευγάρι της αλυσίδας. π.χ. για h(x) = x mod m Search(x) Insert(x) Delete(x)

ΚΛΕΙΣΤOΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜOΣ Αντιμετωπίζει τις συγκρούσεις χωρίς να χρησιμοποιεί επιπλέον χώρο Το x ϵ U αντιστοιχίζεται σε σε μία ακολουθία θέσεων του πίνακα κατακερματισμού Πιο σύνθετη συνάρτηση κατακερματισμού h(x,0),, h(x,m-1) I = 0,,m-1 προσπάθεια εύρεσης κατάλληλης θέσης

ΚΛΕΙΣΤOΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜOΣ ΓΡΑΜΜΙΚΗ ΔΟΚΙΜΗ εξετάζονται διαδοχικές θέσεις του πίνακα για την ανεύρεση ελεύθερης θέσης χρησιμοποιώντας συνάρτηση κατακερματισμού που δέχεται δύο ορίσματα, την τιμή έναρξης και το βήμα h x, i = h 1 x + i mod x, i = 0, 1,, m 1 h 1 x = x mod m Παράδειγμα m=11 S = {52, 12, 71, 56, 5, 10, 19, 90}

ΚΛΕΙΣΤOΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜOΣ ΤΕΤΡΑΓΩΝΙΚΗ ΔΟΚΙΜΗ Η συνάρτηση κατακερματισμού είναι της μορφής: (h 1 x + c 1 i 2 + c 2 i 2 ) mod m Το i δηλώνει τις προσπάθειες για την εύρεση κενής θέσης και ισχύει i = 0,1,2 και οι c 1, c 2 είναι σταθερές. Εξετάζεται η πρώτη θέση για i = 0 και έπειτα αναζητούνται θέσεις σε αποστάσεις ανάλογες του τετραγώνου του i. Με αυτόν τον τρόπο, αποφεύγεται να καταλαμβάνονται συνεχόμενα μεγάλα τμήματα του πίνακα Α στον οποίο εισάγονται τα κλειδιά. Μεγαλύτερη απόδοση από την γραμμικτή δοκιμή

ΚΛΕΙΣΤOΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜOΣ ΤΕΤΡΑΓΩΝΙΚΗ ΔΟΚΙΜΗ Παράδειγμα m=11 S = {52, 12, 71, 56, 5, 10, 19, 90} c 1 = 1, c 2 = 2.

ΚΛΕΙΣΤOΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜOΣ ΔΙΠΛΟΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ Πιο αποτελεσματική μέθοδος από τις άλλες 2. h x, i = (h 1 x + ih 2 (x)) mod m h 1, h 2 κλασικές συναρτήσεις κατακερματισμού Αν προκύψει νέα σύγκρουση, τότε υπολογίζεται η επόμενη θέση σε ίση απόσταση από τη δεύτερη θέση σύγκρουσης. Στην περίπτωση που το πηλίκο που προκύπτει είναι ίσο με 0, εξισώνεται με 1 ώστε αν κάποια κλειδιά συγκρούονται στην ίδια αρχική θέση, να μην συγκρουστούν σε επόμενη θέση. Το μέγεθος του πίνακα να είναι πρώτος αριθμός, για να προσπελαστούν όλες οι θέσεις του πίνακα.

ΚΛΕΙΣΤOΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜOΣ Παράδειγμα Ας εισάγουμε στην παρακάτω δομή με m=11 και n=8, τα στοιχεία S = {52, 12, 71, 56, 5, 10, 19, 90} με h 1 x = x mod m και h 2 x = x m mod m.

ΙΔΑΝΙΚΟΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ ΙΔΑΝΙΚΟΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ perfect hashing Μπορούμε κατά τη σχεδίαση μίας δομής να επιλέξουμε συνάρτηση κατακερματισμού που να αποφεύγει τις συγκρούσεις. Μία συνάρτηση h:u = [0,1,,N-1] [0,1,,m-1] είναι ιδανική συνάρτηση κατακερματισμού για το S [0,1,,N-1] αν για όλα τα x, y S ισχύει h(x) h(y).

ΠΑΓΚΟΣΜΙΟΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ ΠΑΓΚΟΣΜΙΟΣ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ universal hashing Μπορούμε να επιλέξουμε για συνάρτηση κατακερματισμού μέσα από μία κλάση ομοιόμορφων συναρτήσεων. Μία συλλογή συναρτήσεων H={h : U =[0,1,,N-1] =[0,1,,m-1]} καλείται c-universal με c R αν για κάθε x, y U, x y, ισχύει: h: h H, h(x)=h(y) c H m