Αλγόριθμος Συνδυαστικού Ελέγχου Συνόλων για την Εύρεση Συχνών Στοιχείων σε Δυναμικές Ροές Δεδομένων
|
|
- Εκάτη Κακριδής
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Αλγόριθμος Συνδυαστικού Ελέγχου Συνόλων για την Εύρεση Συχνών Στοιχείων σε Δυναμικές Ροές Δεδομένων Κυριάκος Στεφανίδης Τμήμα Πληροφορικής Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Εργασία υποβληθείσα για την απόκτηση Πτυχίου Πληροφορικής
2 Στους φίλους μου
3 Ευχαριστίες Θα ήθελα να ευχαριστήσω τον επιβλέποντα της εργασίας αυτής, Επίκουρο Καθηγητή του Tμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης κ. Απόστολο Παπαδόπουλο, πρώτα απ όλα γιατί μου έδωσε αυτό το ενδιαφέρον θέμα, όπως επίσης για τις πολύτιμες συμβουλές και οδηγίες, αλλά και την υπομονή και κατανόηση που έδειξε μέχρι την ολοκλήρωση της εργασίας.
4 Περίληψη Το πρόβλημα της εύρεσης των συχνότερων στοιχείων αποτελεί ένα από τα κυριότερα ερευνητικά ζητήματα στο πεδίο των ροών δεδομένων. Από τη δεκαετία του 80 μέχρι σήμερα, έχουν προταθεί πολλοί αλγόριθμοι για την επίλυσή του, οι οποίοι διέπονται από παρόμοιες αρχές λειτουργίας. Τα τελευταία χρόνια υπάρχει έντονο ερευνητικό ενδιαφέρον γύρω από το πρόβλημα, λόγω του αυξημένου όγκου και της δυναμικότητας των δεδομένων. Σκοπός της παρούσας εργασίας είναι η περιγραφή, ανάλυση και πειραματικός έλεγχος μιας σχετικά νέας μεθόδου εύρεσης των συχνότερων στοιχείων, η οποία προτάθηκε το 2003 από τους Graham Cormode και S. Muthukrishnan. Ο αλγόριθμος βασίζεται στην τεχνική του Συνδυαστικού Ελέγχου Συνόλων (Combinatorial Group Testing), έχει εξαιρετικές επιδόσεις σε ακρίβεια, ανάκληση και χρόνο εκτέλεσης, ενώ το βασικότερο χαρακτηριστικό του είναι ότι μπορεί να εκτελεστεί χωρίς κάμια τροποποίηση σε δυναμικές ροές δεδομένων, δηλαδή σε ροές όπου υπάρχουν και διαγραφές στοιχείων.
5 Abstract The Frequent Items Problem (also known as Heavy Hitters Problem), is one of the most basic and well studied problems in the field of Data Streams. Dating back from the 80s until today, several algorithms have been proposed for its solution. Most recently, there has been an increased interest around this problem due to processing large data volumes and also, the dynamic nature of the data. The purpose of this work is to describe, analyse and experiment with a relatively new method for finding the most frequent items, proposed in 2003 by Graham Cormode and S. Muthukrishnan. The algorithm is based on Combinatorial Group Testing, it has an excellent performance on precision, recall and execution time, while its most important feature is that it can also handle dynamical data streams without any readjustments.
6 Περιεχόμενα Περιεχόμενα Κατάλογος Σχημάτων Κατάλογος Πινάκων Σημειογραφία v vii viii x 1 Εισαγωγή 1 2 Το Πρόβλημα της Εύρεσης των Συχνότερων Στοιχείων Ορισμός του Προβλήματος Ασυμπτωτικά Όρια στον Απαιτούμενο Χώρο Μνήμης Η Ιδιότητα της Μικρής Ουράς Μεθοδολογίες Επίλυσης του Προβλήματος Αλγόριθμοι Βασισμένοι σε Διατήρηση Μετρητών MAJORITY FREQUENT LOSSYCOUNTING SPACESAVING Αλγόριθμοι Βασισμένοι σε Διατήρηση Δομών Sketch COUNTSKETCH COUNTMIN HIERARCHICAL COUNTSKETCH / COUNTMIN Άλλα Είδη Αλγορίθμων v
7 ΠΕΡΙΕΧΟΜΕΝΑ 4 Ο Αλγόριθμος Συνδυαστικού Ελέγχου Συνόλων Η Βασική Ιδέα Ντετερμινιστικός Αλγόριθμος για την Εύρεση του Majority Στοιχείου Χρήση της Τυχαιότητας Ορισμός καλών υποσυνόλων Εύρεση του απαραίτητου πλήθους υποσυνόλων Επιλογή του τρόπου κατασκευής των υποσυνόλων Καθορισμός της πιθανότητας λάθους με εισαγωγή παραμέτρου Ανάλυση Χρονικής και Χωρικής Πολυπλοκότητας Εξέταση της Αξιοπιστίας και Ορθότητας Η σημαντικότητα της ιδιότητας μικρής ουράς Επίδραση της παραμέτρου κατωφλίωσης ϕ Ανεξαρτησία από τη σειρά επεξεργασίας των στοιχείων 33 5 Πειραματικά Αποτελέσματα Δομή Πειραμάτων και Μετρικές Αξιολόγησης Στατικές Ροές Μεταβάλλοντας την παράμετρο κατωφλίωσης ϕ Μεταβάλλοντας το μέγεθος της ροής Δυναμικές Ροές Μεταβάλλοντας την παράμετρο κατωφλίωσης ϕ Μεταβάλλοντας το μέγεθος της ροής Συμπεράσματα 47 Παράρτημα Α: Η Θεωρία του Group Testing 50 Παράρτημα B: Το Πρόβλημα της Συλλογής Κουπονιών 52 Αναφορές 54 vi
8 Κατάλογος Σχημάτων 3.1 Πράξεις στη διατήρηση μετρητών Ψευδοκώδικες αλγορίθμων που βασίζονται σε μετρητές Δομή sketch κατά τη φάση της ενημέρωσης Ψευδοκώδικες αλγορίθμων βασισμένων σε δομές sketch Μέθοδοι του αλγορίθμου CGT για τον εντοπισμό του majority στοιχείου Το πλήθος των tests που εφαρμόζονται στα στοιχεία Μέθοδοι του αλγορίθμου CGT για τον εντοπισμό των συχνότερων στοιχείων Μεταβολή του ϕ σε στατική ροή με Uniform κατανομή Μεταβολή του ϕ σε στατική ροή με Binomial κατανομή Μεταβολή του ϕ σε στατική ροή με Zipf κατανομή Μεταβολή του n σε στατική ροή με Uniform κατανομή Μεταβολή του n σε στατική ροή με Binomial κατανομή Μεταβολή του n σε στατική ροή με Zipf κατανομή Μεταβολή του ϕ σε δυναμική ροή με Uniform κατανομή Μεταβολή του ϕ σε δυναμική ροή με Binomial κατανομή Μεταβολή του ϕ σε δυναμική ροή με Zipf κατανομή Μεταβολή του n σε δυναμική ροή με Uniform κατανομή Μεταβολή του n σε δυναμική ροή με Binomial κατανομή Μεταβολή του n σε δυναμική ροή με Zipf κατανομή vii
9 Κατάλογος Πινάκων 4.1 Δυνατές περιπτώσεις στον έλεγχο για ύπαρξη συχνού στοιχείου σε κάποιο υποσύνολο viii
10 Σημειογραφία Λατινικά Σύμβολα c, C δομές sketch f i συχνότητα i-οστού στοιχείου ροής h i (x) συναρτήσεις κατακερματισμού οι οποίες τοποθετούν το στοιχείο x στη γραμμή i του sketch k n i (t) ˆf i S t i άνω όριο συχνών στοιχείων ροής πλήθος εμφανίσεων i-οστού στοιχείου στη ροή τη χρονική στιγμή t εκτίμηση συχνότητας i-οστού στοιχείου ροής ροή δεδομένων i-οστό στοιχείο ροής Ελληνικά Σύμβολα δ ϵ ϕ πιθανότητα λάθους μικρή ποσότητα παράμετρος κατωφλίωσης Εκθέτες m n πλήθος διαφορετικών στοιχείων ροής πλήθος στοιχείων ροής ix
11 Σημειογραφία Δείκτες i, j δείκτες στοιχείων ροής, ή διαφορετικών στοιχείων ροής Ακρωνύμια CGT CM CS LC SS Combinatorial Group Testing Count-Min Count-Sketch Lossy Counting Space Saving x
12 Κεφάλαιο 1 Εισαγωγή Πολλές διαδικασίες παραγωγής δεδομένων μπορούν να ονομαστούν και να μοντελοποιηθούν ως ροές δεδομένων (data streams). Παραδείγματα αποτελούν οι ακολουθίες ερωτημάτων προς τις μηχανές αναζήτησης στο Web, ή το συνόλο των συναλλαγών σε όλα τα υποκαταστήματα μιας αλυσίδας καταστημάτων. Αυτά τα δεδομένα συνήθως παράγονται σε πολύ υψηλούς ρυθμούς που μπορεί να φτάνουν και να ξεπερνούν την τάξη των εκατοντάδων gigabytes καθημερινά. Αν και η ανάλυση των δεδομένων θα γινόταν ευκολότερη με αποθήκευσή τους σε κάποια αποθήκη δεδομένων, αυτό δεν είναι λειτουργικά αποδεκτό καθώς το πλήθος τους είναι υπερβολικά μεγάλο, ενώ επίσης είναι σημαντικό να επεξεργαζόμαστε τα δεδομένα on the fly έτσι ώστε να καθίσταται δυνατή η άμεση ανάλυση τους και η ενημέρωση στις τρέχουσες τάσεις και συμπεριφορές. Έτσι λοιπόν, θα πρέπει οι μέθοδοι που χρησιμοποιούμε για την επεξεργασία των ροών δεδομένων να είναι πολύ γρήγορες υπολογιστικά, ενώ παράλληλα θα πρέπει να χρησιμοποιούν πόρους οι οποίοι να είναι πολύ μικρότεροι σε πλήθος από το πλήθος των δεδομένων της ροής. Αυτές οι ανάγκες για ταχύτατη επεξεργασία των ροών δεδομένων, οδήγησαν στην ανάπτυξη του λεγόμενου streaming μοντέλου. Στο μοντέλο αυτό, οι αλγόριθμοι προσπελαύνουν την είσοδό τους μόνο μια φορά, ενώ πρέπει να υπολογίζουν με ακρίβεια το αποτέλεσμα διαφόρων συναρτήσεων σε χρόνο και χώρο που είναι αυστηρά κατώτεροι του γραμμικού σε σχέση με την είσοδο - συγκεκριμένα θα θέλαμε να είναι λογαριθμικός ως προς το μέγε- 1
13 θος της εισόδου. Ενώ κάποια προβλήματα μπορούν να επιλυθούν εύκολα με βάση το μοντέλο αυτό, όπως για παράδειγμα ο υπολογισμός της μέσης τιμής ή της διασποράς των δεδομένων της ροής, τα περισσότερο σημαντικά προβλήματα όπως είναι η εύρεση δεύτερου όμοιου στοιχείου, απαιτούν την αποθήκευση μεγάλων ποσοτήτων πληροφορίας για τον υπολογισμό τους. Το πρόβλημα της εύρεσης συχνών στοιχείων (Frequent Items Problem, γνωστό και ως Heavy Hitters Problem), είναι ένα από τα πιο μελετημένα προβλήματα στο πεδίο των ροών δεδομένων. Οι προσπάθειες επίλυσής του ξεκίνησαν τη δεκαετία του 1980, ενώ αλγόριθμοι που στοχεύουν στην αποδοτέρη επίλυσή του σχεδιάζονται μέχρι σήμερα, σχηματίζοντας έτσι μια μεγάλη ποικιλία ευρετικών μεθόδων που όλες τους περιλαμβάνουν κάποιον συνδυασμό από μεθόδους δειγματοληψίας, κατακερματισμού, και μέτρησης στοιχείων. Άτυπα, δοσμένης μιας ακολουθίας στοιχείων το πρόβλημα συνίσταται στην εύρεση των στοιχείων εκείνων τα οποία εμφανίζονται πιο συνχά στην ακολουθία. Τυπικά, το πρόβλημα ορίζεται ως η εύρεση των στοιχείων εκείνων των οποίων η συχνότητά ξεπερνά ένα συγκεκριμένο ποσοστό του συνολικού πλήθους των στοιχείων της ακολουθίας. Σε μικρές παραλλαγές του προβλήματος, τα στοιχεία μπορεί να συνδέονται με βάρη, ενώ ακόμη, τα βάρη μπορεί να παίρνουν και αρνητικές τιμές. Οι εφαρμογές του προβλήματος είναι πολλές. Καταρχάς, η εύρεση των συχνότερων στοιχείων μιας κατανομής είναι μια χρήσιμη μετρική για τον υπολογισμό της συμμετρικότητας της κατανομής. Με αυτόν τον τρόπο, έχοντας τα ιστογράμματα των δεδομένων μπορούμε να φτιάξουμε περιλήψεις των κατανομών και να τις χρησιμοποιήσουμε για Selectivity Estimation. Τα ερωτήματα παγόβουνου (iceberg queries) αποτελούν γενίκευση του προβλήματος των συχνότερων στοιχείων. Τα ερωτήματα αυτά στοχεύουν στην επιλογή στοιχείων των οποίων οι τιμές βρίσκονται πάνω από ένα προκαθορισμένο κατώφλι. Σε ό,τι αφορά το Internet, τα στοιχεία μπορεί να αναπαριστούν πακέτα δικτύων ενώ τα βάρη το μέγεθος των πακέτων. Με αυτόν τον τρόπο, τα συχνότερα στοιχεία θα αναπαριστούν τους πιο συχνούς προορισμούς ή τους χρήστες με το μεγαλύτερο bandwidth. Η γνώση αυτή μπορεί να βοηθήσει στην βελτίωση του τρόπου λήψης αποφάσεων των δρομολογητών (routers), για καλύτερο caching, ή για εντοπισμό των περιοχών του 2
14 δικτύου που χρειάζεται μεγαλύτερη χωρητικότητα. Τέλος, τα στοιχεία μπορεί να αναπαριστούν ερωτήματα που γίνονται σε μία μηχανή αναζήτησης στο Web, ενώ τα συχνά στοιχεία τους πιο δημοφιλής όρους που εισάγουν οι χρήστες. Το πρόβλημα είναι ιδιαίτερα σημαντικό τόσο από μόνο του όσο και ως κομμάτι άλλων πιο σύνθετων προβλημάτων. Η πιο άμεση εφαρμογή του είναι στο πρόβλημα της εύρεσης των πιο συχνών στοιχειοσυνόλων. Επίσης, ο υπολογισμός της εντροπίας μιας ροής δεδομένων προϋποθέτει την εύρεση των συχνότερων στοιχείων ώστε να υπολογιστεί η συμμετοχή τους στην εντροπία και έτσι να αφαιρεθεί πριν τον προσεγγιστικό υπολογισμό της. Μια ακόμη σχετικά νέα χρήση του προβλήματος είναι στην ερευνητική περιοχή του Compressed Sensing. Το 2003, ένας νέος αλγόριθμος για την επίλυση του προβλήματος της εύρεσης συχνότερων στοιχείων σχεδιάστηκε και υλοποιήθηκε από τους ερευνητές της AT&T Graham Cormode και S. Muthukrishnan [7]. Πρόκειται για έναν τυχαίο (random) sketch αλγόριθμο, ο οποίος βασίζεται στη μέθοδο του συνδυαστικού ελέγχου συνόλων (Combinatorial Group Testing) και χρησιμοποιεί κώδικες διόρθωσης λαθών (Error-Correcting Codes) για την αναπαράσταση και τον εντοπισμό των συχνότερων στοιχείων μέσα στο sketch που διατηρεί. Ο αλγόριθμος έχει εξαιρετικές επιδόσεις στις μετρικές της ανάκλησης και ακρίβειας, καθώς και στον χρόνο εκτέλεσης. Οι επιδόσεις αυτές αντισταθμίζονται από το υψηλό κόστος σε απαιτήσεις χώρου που τον συνοδεύει. Το κυριότερο όμως πλεονέκτημα του αλγορίθμου είναι η δυνατότητα άμεσης εφαρμογής του σε δυναμικές ροές δεδομένων, δηλαδή σε ροές στις οποίες περιλαμβάνονται και διαγραφές στοιχείων. Το γεγονός αυτό καθιστά τον αλγόριθμο μοναδικό, καθώς οι περισσότεροι αλγόριθμοι αδυνατούν να χειριστούν διαγραφές στοιχείων, ενώ αυτοί που μπορούν, δεν έχουν τις ίδιες επιδόσεις και σταθερότητα για διαφορετικού είδους εισόδους. Η παρούσα εργασία έχει σαν στόχο την περιγραφή και ανάλυση του αλγορίθμου Συνδυαστικού Ελέγχου Συνόλων (CGT), καθώς και την πραγματοποίηση πειραματικών ελέγχων στη λειτουργία του σε δυναμικές και μη ροές δεδομένων. Το υπόλοιπο του εγγράφου αυτού οργανώνεται ως εξής: Στο Κεφάλαιο 2, δίνεται ο φορμαλιστικός ορισμός του προβλήματος της 3
15 εύρεσης συχνών στοιχείων καθώς και οι πιο σημαντικές ιδιότητες που το διέπουν. Στο Κεφάλαιο 3, παρουσιάζονται οι δύο κυριότερες μεθοδολογίες επίλυσης του προβλήματος με παραδείγματα τους γνωστότερους αλγορίθμους στην κατηγορία, όπως επίσης, και άλλες γνωστές μέθοδοι που δεν αποφέρουν τόσο καλά αποτελέσματα. Στο Κεφάλαιο 4, περιγράφονται τα βήματα κατασκευής του αλγορίθμου Συνδυαστικού Ελέγχου Συνόλων και αναλύεται η χωρική και χρονική πολυπλοκότητά του καθώς και η ορθότητα και αξιοπιστία του. Στο Κεφάλαιο 5, παρουσιάζονται τα πειράματα που πραγματοποιήσαμε χρησιμοποιώντας συνθετικά δεδομένα παραγμένα από διάφορες κατανομές. Το Κεφάλαιο 6 περιλαμβάνει τα συμπεράσματα που εξήχθησαν από την ανάλυση και τα πειράματα πάνω στον αλγόριθμο. Τέλος, τα Παραρτήματα A και B περιέχουν σύντομες περιγραφές της Θεωρίας του Group Testing και του Προβλήματος της Συλλογής Κουπονιών, αντίστοιχα, γνώσεις οι οποίες είναι προαπαιτούμενες για την κατανόηση του θέματος αυτής της εργασίας. 4
16 Κεφάλαιο 2 Το Πρόβλημα της Εύρεσης των Συχνότερων Στοιχείων Όπως αναφέρθηκε και στην Εισαγωγή, το πρόβλημα της εύρεσης των συχνότερων στοιχείων αποτελεί βασικό ζήτημα στις ροές δεδομένων, όπως επίσης και οι διάφορες παραλλαγές που αυτό μπορεί να έχει. Σε αυτό το Κεφάλαιο, δίνουμε τον φορμαλιστικό ορισμό του προβλήματος και των σημαντικών παραλλαγών του, ενώ έχοντας ορίσει τυπικά το πρόβλημα, συνεχίζουμε παρουσιάζοντας κάποιες σημαντικές ιδιότητες που χρησιμεύουν για την επίλυσή του. 2.1 Ορισμός του Προβλήματος Ο ορισμός της πρωταρχικής μορφής του προβλήματος δίνεται αφού ορίσουμε την έννοια της ροής δεδομένων και των συχνοτήτων f i των στοιχείων. Ορισμός 1. Δοσμένης μιας ροής δεδομένων S αποτελούμενης από n στοιχεία t 1... t n, η συχνότητα ενός στοιχείου i ορίζεται ως f i = {j t j = i}. Τα ακριβή ϕ-συχνά στοιχεία, αποτελούν το σύνολο {i f i > ϕn}. Ένας streaming αλγόριθμος ο οποίος βρίσκει τα ακριβή ϕ-συχνά στοιχεία, θα πρέπει να χρησιμοποιεί πολύ χώρο ακόμη και για μικρές τιμές του ϕ. Η απόδειξη για τα όρια του χώρου που απαιτείται σε αυτήν την μορφή του 5
17 2. Ορισμός του Προβλήματος προβλήματος δίνεται στην Ενότητα 2.2. Λόγω αυτής της δυσκολίας υπολογισμού των συχνών στοιχείων, μια προσεγγιστική έκδοση του προβλήματος ορίζεται με βάση μια ανοχή στο συνολικό σφάλμα, η οποία καθορίζεται από την παράμετρο ϵ. Ορισμός 2. Δοσμένης μιας ροής δεδομένων S αποτελούμενης από n στοιχεία, η ϵ-προσεγγιστική μορφή του προβλήματος των συχνών στοιχείων ορίζεται ως ένα σύνολο F έτσι ώστε για κάθε στοιχείο i F να ισχύει f i > (ϕ ϵ)n, και να μην υπάρχει i / F τέτοιο ώστε f i > ϕn. Εφόσον η ακριβής μορφή του προβλήματος (ϵ = 0) είναι γενικά ένα υπολογιστικά σκληρό (NP-Hard) πρόβλημα, χρησιμοποιούμε τον όρο συχνά στοιχεία ή το πρόβλημα των συχνών στοιχείων για να αναφερθούμε στην ϵ-προσεγγιστική μορφή του. Μια συγγενική μορφή του προβλήματος, είναι το λεγόμενο πρόβλημα της εκτίμησης συχνοτήτων (Frequency Estimation Problem). Το πρόβλημα ορίζεται ως εξής: Ορισμός 3. Δοσμένης μιας ροής δεδομένων S αποτελούμενης από n στοιχεία τα οποία ορίζουν τις συχνότητες f i όπως παραπάνω, το πρόβλημα της εκτίμησης συχνοτήτων αναφέρεται στην επεξεργασία της ροής έτσι ώστε δοσμένου ενός στοιχείου i να επιστρέφεται η συχνότητα ˆf i, ικανοποιώντας τον περιορισμό f i < ˆf i < f i + ϵn. Η λύση στο πρόβλημα της εκτίμησης συχνοτήτων δίνει λύση και στο πρόβλημα της εύρεσης συχνών στοιχείων: βρίσκοντας τη συχνότητα για κάθε στοιχείο i, μπορούμε να αναφέρουμε εκείνα τα στοιχεία των οποίων η συχνότητα f i είναι μεγαλύτερη από (ϕ ϵ)n. Οι αλγόριθμοι που παρουσιάζονται σε αυτήν την εργασία, μπορούν να δώσουν λύση και στα δύο προβλήματα που ορίσαμε παραπάνω. Αφού λοιπόν ορίσαμε το πρόβλημα για μη δυναμικές ροές δεδομένων, ήρθε η ώρα να το ορίσουμε και στην δυναμική μορφή του. Έστω ότι παρατηρούμε μια ακολουθία n συναλλαγών επί των στοιχείων της ροής. Χωρίς απώλεια της γενικότητας, θεωρούμε ότι τα αναγνωριστικά των στοιχείων είναι ακέραιοι αριθμοί από το 1 ως το m. Το πλήθος των εμφανίσεων ενός 6
18 2. Ασυμπτωτικά Όρια στον Απαιτούμενο Χώρο Μνήμης στοιχείου i τη χρονική στιγμή t, συμβολίζεται με n i (t) και ορίζεται ως το πλήθος των εισαγωγών του μείον το πλήθος των διαγραφών του. Έτσι, έχουμε τον παρακάτω ορισμό: Ορισμός 4. Ορίζοντας ως συχνότητα ενός στοιχείου i τη χρονική στιγμή t την ποσότητα f i (t) = n i (t)/ m j=1 n j(t), το πρόβλημα της εύρεσης των συχνών στοιχείων ορίζεται ως το σύνολο των στοιχείων τα οποία έχουν συχνότητα f i (t) > 1/(k + 1), δηλαδή τα στοιχεία εκείνα που εμφανίζονται σε ένα μεγάλο ποσοστό της συνολικής ροής. 2.2 Ασυμπτωτικά Όρια στον Απαιτούμενο Χώρο Μνήμης Στην εργασία τους το 1996, οι N. Alon, Y. Matias, και M. Szegedy απέδειξαν ότι ο υπολογισμός της μέγιστης συχνότητας f (t) = max i f i (t) σε μια ροή δεδομένων, είναι αδύνατος χρησιμοποιώντας o(m) χώρο [1]. Ο υπολογίσμός των συχνότερων στοιχείων με βάση τον παραπάνω ορισμό της μέγιστης συχνότητας, είναι ακόμη δυσκολότερος. Το γεγονός αυτό, οδήγησε την έρευνα σε απλοποιημένες (relaxed) εκδοχές του προβλήματος, μια από τις οποίες είναι και είναι αυτή που αναφέρθηκε στο προηγούμενο κεφάλαιο για εύρεση των στοιχείων {i : f i (t) > 1/(k + 1)}. Με αυτόν τον τρόπο, το κατώτερο όριο της [3] δεν δεσμεύει άμεσα το πρόβλημα. Παρόλα αυτά, με την παρακάτω απόδειξη από την Θεωρία Πληροφοριών, συμπεραίνουμε ότι το πρόβλημα εξακολουθεί να απαιτεί μεγάλες ποσότητες χώρου για την επίλυσή του. Λήμμα 1. Κάθε αλγόριθμος ο οποίος εγγυάται την εύρεση όλων και μόνον αυτών των στοιχείων τα οποία έχουν συχνότητα μεγαλύτερη από 1/(k+1), πρέπει να αποθηκεύει Ω(m) bits. Απόδειξη. Έστω το σύνολο S {1... m}. Μετασχηματίζουμε το S σε μια ροή από n = S στοιχεία, συμπεριλαμβάνοντας κάθε στοιχείο i ακριβώς μια φορά στην ροή αν και μόνον αν i S. Εκτελώντας τώρα τον προτεινόμενο αλγόριθμο πάνω στην ροή, μπορούμε να ξέρουμε αν i S ή όχι. Αυτό μπορεί 7
19 2. Η Ιδιότητα της Μικρής Ουράς να γίνει εισάγωντας n/k αντίγραφα του ζητούμενου στοιχείου i. Αν τώρα υποθέσουμε ότι i / S, τότε η συχνότητα του θα είναι n/k /(n + n/k ) = n/k / n(k + 1)k n/k /(k + 1) n/k = 1/(k + 1), οπότε το i δεν θα εμφανιστεί στα αποτελέσματα του αλγορίθμου. Αν πάλι υποθέσουμε ότι i S, τότε η συχνότητα του i θα είναι n/k + 1/(n + n/k ) > (n/k)/n + n/k = 1/(k + 1), οπότε το i θα είναι στα αποτελέσματα του αλγορίθμου. Επομένως, μπορούμε να εξάγουμε το σύνολο S, άρα ο χώρος που απαιτείται για αποθήκευση των στοιχείων πρέπει να είναι Ω(m). 2.3 Η Ιδιότητα της Μικρής Ουράς Η απόδειξη στην προηγούμενη ενότητα μας δείχνει, ουσιαστικά, ότι εάν πρόκειται να χρησιμοποιήσουμε χώρο μικρότερο από Ω(m), τότε αναγκαστικά κάποιες φορές θα παίρνουμε στα αποτελέσματά μας και στοιχεία τα οποία δεν είναι συχνά. Για να ξεπεράσουμε αυτό το μειονέκτημα, μπορούμε να υϊοθετήσουμε έναν περιορισμό που ονομάζεται ιδιότητα της Μικρής Ουράς και ο οποίος θα απλουστέυσει την ανάλυση της μεθόδου. Έστω ότι f 1 f m είναι οι συχνότητες των στοιχείων κάποια στιγμή στη ροή δεδομένων, διατεταγμένες κατά μη-αύξουσα σειρά. Ένα σύνολο συχνοτήτων λέγεται ότι έχει την ιδιότητα της μικρής ουράς, αν ( i>k f i) 1/(k + 1), δηλαδή αν τα στοιχεία εκτός των k συχνότερων, δεν αποτελούν σημαντικό ποσοστό της ροής. Εάν υπάρχουν k συχνά στοιχεία, τότε σίγουρα η ιδιότητα της μικρής ουράς ισχύει. Το αντίθετο όμως δεν ισχύει πάντα: αν η ιδιότητα της μικρής ουράς ισχύει, τότε είναι πιθανό να συμπεριλάβουμε στην έξοδο και στοιχεία τα οποία δεν είναι συχνά. Η ανάλυση του αλγορίθμου Συνδυαστικού Ελέγχου Συνόλων θα γίνει με-και-χωρίς την χρήση αυτής της ιδιότητας, ενώ θα αποδειχτεί ότι για τον συγκεκριμένο αλγόριθμο αρκεί μια λιγότερο ισχυρή συνθήκη για να εγγυηθούμε ότι κανένα μη-συχνό στοιχείο δεν θα εμφανιστεί στα αποτελέσματα. 8
20 Κεφάλαιο 3 Μεθοδολογίες Επίλυσης του Προβλήματος Οι βασικότερες μεθοδολογίες επίλυσης του προβλήματος των συχνών στοιχείων είναι δύο και αναλύονται στις δύο πρώτες ενότητες αυτού του Κεφαλαίου. Εκτός από αυτές όμως, υπάρχουν και άλλες μέθοδοι οι οποίες όμως δεν αποδίδουν τόσο καλά αποτελέσματα όσο οι δύο βασικές. Αυτές οι εναλλακτικές μέθοδοι αναφέρονται συνοπτικά στην τρίτη ενότητα. 3.1 Αλγόριθμοι Βασισμένοι σε Διατήρηση Μετρητών Στη μέθοδο που βασίζεται σε διατήρηση μετρητών, οι αλγόριθμοι εξετάζουν σε κάθε άφιξη νέου στοιχείου αν αυτό θα πρέπει να αποθηκευτεί, και αν όντως πρέπει, καθορίζουν ποιοί μετρητές πρέπει να ενημερωθούν κατάλληλα. Το κοινό χαρακτηριστικό των αλγορίθμων αυτής της μεθόδου είναι ότι για κάθε νέο στοιχείο γίνεται έλεγχος αν αυτό είναι ένα από τα k στοιχεία που διατηρεί ο αλγόριθμος και αν είναι τότε αυξάνεται ο μετρητής που αντιστοιχεί σε αυτό. Το κόστος από τις πράξεις σε αυτό το λεξικό στοιχείων, εξαρτάται από τον τρόπο υλοποίησης του. Μια απλή λύση είναι η χρήση ενός πίνακα κατακερματισμού για την αποθήκευση του συνόλου των στοιχείων, όμως με αυτόν τον τρόπο μετατρέπουμε μια ντετερμινιστική 9
21 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Μετρητών μέθοδο σε τυχαία, σε ό,τι αφορά την χρονική πολυπλοκότητα, καθώς αυτή αναμένεται O(1) για τις πράξεις πάνω στον πίνακα. Άλλα μοντέλα υποθέτουν ότι υπάρχει υποστήριξη από το υλικό για την εκτέλεση αυτών των πράξεων, όπως για παράδειγμα η χρήση Content Addressable μνήμης. Στην παρούσα μελέτη δεν θα μας απασχολήσουν τέτοια θέματα υλοποίησης, αφού εκτιμούμε μόνο το πλήθος των πράξεων λεξικού που χρειάζονται οι αλγόριθμοι MAJORITY Το πρόβλημα της εύρεσης συχνών στοιχείων είναι τουλάχιστον τόσο παλιό όσο είναι το πρόβλημα που έθεσε ο Moore το 1980: [J.Alg 2, P ] Έστω ότι έχουμε μια λίστα από n αριθμούς οι οποίοι αναπαριστούν τις ψήφους n επεξεργαστών για το αποτέλεσμα ενός υπολογισμού. Θα θέλαμε να αποφασίσουμε εάν υπάρχει πλειοψηφία για κάποια ψήφο και ποία είναι η ψήφος αυτή. Το παραπάνω δημοσιεύτηκε ως πρόβλημα στο τεύχος του Journal of Algorithms τον Ιούνιο το Οι Moore και Boyer, κατασκεύασαν τον αλγόριθμο MAJORITY το 1980, περιγράφοντάς τον σε μια τεχνική έκθεση στις αρχές του Στο τεύχος του Journal of Algorithms τον Δεκέμβριο του 1982, μια ακόμη λύση δημοσιεύτηκε από τους Fischer και Salzburg [10]. Η πρότασή τους, αν και φαινομενικά διαφορετική, ήταν ουσιαστικά όμοια με τον MAJORITY αλγόριθμο. Ο αλγόριθμος μπορεί να περιγραφεί ως εξής: αποθήκευσε το πρώτο στοιχείο και αρχικοποίησε έναν μετρητή στην τιμή 1. Για κάθε επόμενο στοιχείο, αν αυτό είναι ίδιο με το ήδη αποθηκευμένο στοιχείο, τότε αύξησε τον μετρητή κατά 1. Αν είναι διαφορετικό, τότε αν ο μετρητής είναι 0, αποθήκευσε το νέο στοιχείο αντί του παλιού και θέσε τον μετρητή στην τιμή 1, αλλιώς, μείωσε κατά 1 τον μετρητή. Μετά το τέλος της επεξεργασίας όλων των στοιχείων της εισόδου, ο παραπάνω αλγόριθμος εγγυάται ότι αν υπάρχει ένα majority στοιχείο τότε αυτό θα είναι το αποθηκευμένο. Η ορθότητα του αλγορίθμου βασίζεται σε 10
22 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Μετρητών μία υπόθεση που χρησιμοποιεί ζεύγη στοιχείων: αν κάθε στοιχείο που δεν είναι majority αντιστοιχηθεί με ένα που είναι, τότε θα απομείνουν μόνα τους πολλά majority στοιχεία. Αν και δεν τέθηκε σαν streaming αλγόριθμος, ο αλγόριθμος έχει στοιχεία του streaming μοντέλου: απαιτείται μόνο ένα πέρασμα της εισόδου (τα στοιχεία της οποίας μπορεί να έχουν οποιαδήποτε διάταξη) για να βρεθεί το majority στοιχείο. Για να αποδειχθεί οτί το στοιχείο που διατηρεί ο αλγόριθμος είναι πράγματι το majority στοιχείο, ένα δεύτερο πέρασμα της εισόδου χρειάζεται ώστε να μετρήσουμε τον πραγματικό αριθμό εμφανίσεων του αποθηκευμένου στοιχείου. Χωρίς το δεύτερο πέρασμα, ο αλγόριθμος παρέχει μόνο μερική εγγύηση για το αποτέλεσμά του: αν υπάρχει κάποιο majority στοιχείο, τότε αυτό βρίσκεται στο τέλος του πρώτου περάσματος, όμως ο αλγόριθμος δεν μπορεί να γνωρίζει αν όντως υπάρχει κάποιο. Επιπλέον, από τα αποτελέσματα που παρουσιάστηκαν στην Ενότητα 2.2 του Κεφαλαίου 2, κανείς αλγόριθμος δεν μπορεί να ξεχωρίζει τις περιπτώσεις που ένα στοιχείο βρίσκεται λίγο παραπάνω ή λίγο παρακάτω από το όριο να είναι majority, χωρίς να χρησιμοποιεί μεγάλη ποσότητα μνήμης FREQUENT Είκοσι χρόνια αργότερα, το πρόβλημα της εύρεσης συχνών στοιχείων ήταν μια ενεργή ερευνητική περιοχή, και μια γενίκευση του MAJORITY αλγορίθμου έδειχνε ότι μπορούσε να δώσει λύση στο πρόβλημα της εύρεσης όλων των στοιχείων των οποίων η συχνότητα τους στη ροή ξεπερνούσε το 1/k ποσοστό του συνολικού πλήθους στοιχείων. Αντί να διατηρήσει ένα στοιχείο και έναν μετρητή, ο αλγόριθμος FREQUENT αποθήκευε k 1 ζεύγη της μορφής (στοιχείο, μετρητής). Ως λογική γενίκευση της λειτουργίας του MAJORITY, κάθε νέο στοιχείο συγκρίνονταν με το σύνολο των ήδη αποθηκευμένων στοιχείων T, και αν ταυτοποιούνταν τότε αυξανόταν ο αντίστοιχος μετρητής. Σε αντίθετη περίπτωση, αν υπήρχε κάποιος μετρητής ο οποίος είχε την τιμή 0, τότε το αντίστοιχο αποθηκευμένο στοιχείο έδινε τη θέση του στο νέο στοιχείο και ο μετρητής έπαιρνε την τιμή 1. Εάν κανείς από τους k 1 μετρητές δεν είχε τιμή 0, τότε μειώνονταν όλοι τους κατά 1. 11
23 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Μετρητών Σχήμα 3.1: Πράξεις στη διατήρηση μετρητών Με ένα απλό επιχείρημα αποδεικνύεται ότι αν κάποιο στοιχείο της ροής έχει συχνότητα πάνω από n/k, τότε αυτό θα υπάρχει στα αποθηκευμένα στοιχεία του αλγορίθμου όταν αυτός τερματίσει. Στο Σχήμα 3.1 φαίνονται κάποιες από τις λειτουργίες που εκτελούνται πάνω στην διατήρηση μετρητών. Ο ψευδοκώδικας για τον αλγόριθμο δίνεται στο Σχήμα 3.2, και χρησιμοποιεί συμβολισμό συνόλων για την αναπαράσταση των πράξεων λεξικού στα αποθηκεμένα στοιχεία: τα στοιχεία προστίθενται και αφαιρούνται από το σύνολο με τις πράξεις της ένωσης συνόλων και διαφοράς συνόλων αντίστοιχα, ενώ επίσης, επιτρέπεται να διατρέξουμε το αποθηκευμένο σύνολο στοιχείων (κάθε υλοποίηση θα πρέπει να διαλέξει τον τρόπο με τον οποίο θα υλοποιήσει αυτές τις λειτουργίες). Υποθέτουμε επίσης, ότι κάθε στοιχείο j που είναι αποθηκευμένο στο σύνολο T έχει τον αντίστοιχο μετρητή του c j. Για στοιχεία που δεν είναι αποθηκευμένα στο σύνολο T, οι μετρητές τους θα έχουν τιμή 0 και γι αυτό δεν είναι ανάγκη να δεσμεύεται χώρος γι αυτούς. Το γεγονός είναι ότι αυτή η γενίκευση του αλγορίθμου MAJORITY πρωτοδημοσιεύτηκε από τους Misra και Gries ως Αλγόριθμος 3 στο [14] το Οι δημοσιεύσεις το 2002 ουσιαστικά ξανα-ανακάλυψαν τον αλγόριθμο. Για τον λόγο αυτό, ο αλγόριθμος ονομάζεται και Misra-Gries στις πρόσφατες εργασίες πάνω στους streaming αλγορίθμους. Κάποιες εργασίες διατείνονται ότι ο FREQUENT δεν λύνει με ακρίβεια το πρόβλημα της εκτίμησης συχνοτήτων. Αυτό όμως είναι λάθος. Όπως παρατηρήθηκε από τους 12
24 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Μετρητών Bose et al., αν εκτελέσουμε τον αλγόριθμο για k = 1/ϵ, διασφαλίζουμε ότι ο μετρητής που αντιστοιχεί σε κάθε αποθηκευμένο στοιχείο θα έχει το πολύ τιμή ϵn κάτω από την πραγματική τιμή που θα πρεπε να έχει. Η πολυπλοκότητα χρόνου του αλγορίθμου κυριαρχείται από τις O(1) πράξεις λεξικού σε κάθε ανανέωση, όπως επίσης και από το κόστος μείωσης των μετρητών. Οι Misra και Gries χρησιμοποίησαν ένα ισορροπημένο δένδρο αναζήτησης και έτσι έδειξαν ότι το κόστος μείωσης δεικτών μπορεί να γίνει παραμετροποιήσιμο O(1). Οι Karp at al. προτείνουν τη χρήση πίνακα κατακερματισμού για την υλοποίηση του λεξικού [11]. Τέλος, οι Demain et al. έδειξαν ότι το κόστος μείωσης των μετρητών μπορεί να γίνει στη χειρότερη περίπτωση O(1) αναπαριστώντας τους μετρητές χρησιμοποιώντας σχετικές διευθύνσεις και διατηρώντας πολλαπλά συνδεδεμένες λίστες [8] LOSSYCOUNTING Ο αλγόριθμος LOSSYCOUNTING προτάθηκε από τους Manku και Motwani το 2002 [13] μαζί με έναν τυχαίο, βασιζόμενο σε δειγματοληψία αλγόριθμο, και τεχνικές για επέκταση του αλγορίθμου από το πρόβλημα των συχνών στοιχείων στο πρόβλημα των συχνών στοιχειοσυνόλων. Ο LOSSYCOUNTING αποθηκεύει πλειάδες οι οποίες αποτελούνται από το στοιχείο, ένα κατώτατο όριο για το πλήθος του, και μια τιμή δέλτα ( ) η οποία καταγράφει τη διαφορά μεταξύ του ανώτατου και κατώτατου ορίου. Όταν γίνεται επεξεργασία του i-οστού στοιχείου στη ροή δεδομένων, αν η πλειάδα που αφορά το στοιχείο είναι ήδη αποθηκευμένη, τότε το κατώτατο όριο αυξάνεται κατά 1. Αλλιώς, μια νέα πλειάδα για το στοιχείο αυτό δημιουργείται, με το κατώτατο όριο να παίρνει τιμή 1 και το να παίρνει τιμή i/k. Περιοδικά, όλες οι πλειάδες των οποίων το ανώτατο όριο είναι μικρότερο από i/k διαγράφονται. Επειδή αυτά είναι τα σωστά ανώτατα και κατώτατα όρια του πλήθους κάθε στοιχείου, στο τέλος του stream όλα τα στοιχεία των οποίων το πλήθος ξεπερνά το n/k πρέπει να είναι αποθηκευμένα από τον αλγόριθμο. Όπως είχαμε και στην περίπτωση του FREQUENT, θέτωντας k = 1/ϵ διασφαλίζουμε ότι το λάθος σε οποιαδήποτε προσεγγιστική μέτρηση θα είναι το πολύ ϵn. Με μια προσεκτική μελέτη, μπορούμε 13
25 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Μετρητών να διαπιστώσουμε ότι το κόστος πολυπλοκότητας χώρου στη χειρότερη περίπτωση είναι O( 1 log (ϵn)), και για συγκεκριμένες χρονο-ανεξάρτητες κατανομές στην είσοδο φτάνει το O( 1). ϵ ϵ Η αποθήκευση των τιμών διασφαλίζει ότι τα στοιχεία τα οποία έχουν πολύ υψηλές συχνότητες και εμφανίζονται νωρίς στη ροή, θα έχουν πολύ ακριβείς προσεγγιστικές μετρήσεις του πλήθους τους. Το μειονέκτημα όμως είναι ότι έτσι σπαταλάμε περισσότερο χώρο. Μια εναλλακτική μορφή αυτού του αλγορίθμου προτάθηκε από τον Manku σε μια παρουσίαση της δημοσίευσης [13]. Στον νέο αλγόριθμο, δεν αποθηκεύονται ξεχωριστά τα σε κάθε πλειάδα, αλλά διατηρούνται σε μια διαμοιραζόμενη τιμή (i) = i/k. Έτσι, αποθηκεύονται μόνο ζεύγη τις μορφής (στοιχείο, μετρητής). Για κάθε στοιχείο της ροής, αν αυτό είναι αποθηκευμένο ήδη, τότε αυξάνεται ο μετρητής του κατά 1. Αλλιώς, αρχικοποιείται ο μετρητής στην τιμή 1. Κάθε φορά που το (i) αυξάνεται, όλοι οι μετρητές μειώνονται κατά 1, ενώ όλα τα στοιχεία με μετρητή 0 διαγράφονται από τη δομή. Η ίδια απόδειξη με παραπάνω αρκεί για να δείξει ότι η χωρική πολυπλοκότητα είναι O( 1 log (ϵn)). Η χρονική πολυπλοκότητα είναι O(1) πράξεις e λεξικού συν τις περιοδικές πράξεις συμπίεσης οι οποίες απαιτούν γραμμική προσπέλαση των αποθηκευμένων στοιχείων. Αυτό θα μπορούσε να γίνει σε κάθε O( 1 log (ϵn)) ενημερώσεις της δομής, που σημαίνει ότι το ελεγχόμενο e κόστος συμπίεσης είναι O(1). Ο ψευδοκώδικας της τελευταίας έκδοσης του αλγορίθμου δίνεται στο Σχήμα 3.2. Και πάλι, το T αναπαριστά το σύνολο των αποθηκευμένων στοιχείων το οποίο μπορεί να ενημερώνεται με πράξεις επί συνόλων, ενώ τα c j αναπαριστούν τους αντίστοιχους μετρητές των στοιχείων SPACESAVING Οι ντετερμινιστικοί αλγόριθμοι που παρουσιάστηκαν ως τώρα στο Κεφάλαιο αυτό, είχαν όλοι τους ένα κοινό χαρακτηριστικό: ένα σύνολο στοιχείων και μετρητών διατηρούνταν από τον αλγόριθμο, και διάφοροι απλοί κανόνες εφαρμόζονταν όταν ένα νέο στοιχείο ερχόταν για επεξεργασία. Ο αλγόριθμος SPACESAVING ο οποίος παρουσιάστηκε από τους Metwally et al., ακολουθεί 14
26 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Μετρητών Σχήμα 3.2: Ψευδοκώδικες αλγορίθμων που βασίζονται σε μετρητές και αυτός την ίδια λογική. Ο αλγόριθμος αυτός διατηρεί k ζεύγη της μορφής (στοιχείο, μετρητής), ενώ η αρχικοποίησή του γίνεται με αποθήκευση k διαφορετικών στοιχείων με τα επακριβή πλήθη τους. Ως συνήθως, όταν ένα νέο στοιχείο αντιστοιχεί σε κάποιο ήδη αποθηκεύμενο στοιχείο, ο μετρητής του αυξάνεται. Όμως, όταν το νέο στοιχείο δεν ανήκει στα αποθηκεύμενα, στο ζεύγος (στοιχείο, μετρητής) με την μικρότερη τιμή στον μετρητή αντικαθίσταται το παλιό στοιχείο με το νέο, ενώ ο μετρητής αυξάνεται. Με αυτή τη μέθοδο, ο χώρος που απαιτείται είναι O(k) (αντίστοιχα, O( 1 )), και μια ϵ μικρή απόδειξη μπορεί να δείξει ότι οι μετρήσεις όλων των αποθηκευμένων στοιχείων μπορούν λύσουν το πρόβλημα της εκτίμησης συχνοτήτων με λάθος n/k (αντίστοιχα, O(ϵn)). Ο αλγόριθμος έχει επίσης και μια σημαντική ιδιότητα που έχει και ο LOSSYCOUNTING: τα στοιχεία της ροής δεδομένων τα οποία διατηρεί από νωρίς και δεν διαγράφονται, έχουν πολύ ακριβείς εκτιμήσεις του πλήθους τους. Ο αλγόριθμος φαίνεται στο Σχήμα 3.2. Το κόστος σε χρόνο είναι φραγμένο από τις πράξεις λεξικού για αν ελέγξει αν ένα στοιχείο είναι αποθηκευμένο, όπως επίσης και της εύρεσης και διατήρησης του στοιχείου με τη μικρότερη τιμή στον μετρητή. Με απλές υλοποιήσεις σωρών (heap), μπορούμε να εντοπίζουμε το στοιχείο με τον μικρότερο μετρητή σε χρόνο O(log 1/ϵ) σε κάθε ενημέρωση. Όταν όλες οι ενημερώσης είναι μοναδιαίες, δηλαδή (+1), μια γρηγορότερη μέθοδος είναι να δανειστούμε ιδέες από την υλοποίηση 15
27 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Δομών Sketch του FREQUENT των Demaine et al., και να διατηρούμε τα στοιχεία σε σύνολα με ίσα πλήθη. Διατηρώντας έναν δείκτη στο σύνολο με το ελάχιστο πλήθος, η εύρεση του ελάχιστου στοιχείου καταναλώνει σταθερό χρόνο, ενώ η αύξηση των μετρητών απαιτεί O(1) πράξεις με δείκτες. 3.2 Αλγόριθμοι Βασισμένοι σε Διατήρηση Δομών Sketch Ο όρος sketch αναφέρεται σε μία δομή δεδομένων την οποία μπορούμε να φανταστούμε ως μια γραμμική προβολή της εισόδου. Συγκεκριμένα, αν θεωρήσουμε ότι η ροή δεδομένων ορίζει ένα διάνυσμα του οποίου το i-οστό στοιχείο είναι το f i, τότε η sketch δομή είναι το εσωτερικό γινόμενο του διανύσματος αυτού με έναν πίνακα. Προκειμένου ο αλγόριθμος να χρησιμοποιεί μικρό χώρο μνήμης, ο πίνακας αυτός θα πρέπει να ορίζεται χρησιμοποιώντας έναν μικρό αριθμό από bits. Οι sketch αλγόριθμοι οι οποίοι περιγράφονται παρακάτω, χρησιμοποιούν πίνακες κατακερματισμού για να ορίσουν τον πίνακα προβολής, ο οποίος με αυτόν τον τρόπο κατασκευής είναι πολύ αραιός. Και οι δύο θεωρήσεις του πίνακα (ως hashing ή ως γραμμική προβολή της εισόδου) βοηθούν στην επεξήγηση των αλγορίθμων, οπότε θα χρησιμοποιούνται και οι δύο συμπληρωματικά χωρίς να υπάρχει σύγχυση. Λόγω της γραμμικότητας τους προκύπτει αμέσως το συμπέρασμα ότι οι ενημερώσεις στοιχείων με αρνητικά βάρη μπορούν εύκολα να διαχειριστούν από τέτοιες μεθόδους sketching. Αυτό μας επιτρέπει να δεχόμαστε και να μελετάμε μοντέλα όπου συμβαίνουν και διαγραφές στοιχείων (όπως για παράδειγμα η αποτυχία ένος πακέτου στο δίκτυο, ή η επιστροφή ενός αντικειμένου σε ένα κατάστημα), ως ενημερώσεις με αρνητικά βάρη. Οι δύο αλγόριθμοι που περιγράφονται παρακάτω, λύνουν το πρόβλημα της εκτίμησης συχνοτήτων. Για την επίλυση του προβλήματος των συχνών στοιχείων χρειάζονται επιπλέον πληροφορίες. Έτσι λοιπόν, παραθέτουμε και τη μέθοδο της Ιεραρχίας η οποία επιτρέπει την εύρεση των συχνών στοιχείων σε μεθόδους sketch. Οι δύο αλγόριθμοι είναι τυχαίοι, που σημαίνει ότι εκτός από την παράμετρο ρύθμισης της ακρίβειας ϵ, χρησιμοποιούν και μια παρά- 16
28 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Δομών Sketch μετρο δ για την πιθανότητα λάθους έτσι ώστε (για τις τυχαίες επιλογές που γίνονται διαλέγοντας συναρτήσεις κατακερματισμού) η πιθανότητα λάθους να είναι το πολύ δ. Τυπικά στο δ δίνουμε μια πολύ μικρή τιμή (για παράδειγμα 10 6 ), ενώ παράλληλα κρατάμε τον χώρο που χρησιμοποιεί η sketch δομή, όσο μικρότερο γίνεται COUNTSKETCH Η πρώτη sketch δομή με την γνωστή σημασία του όρου, ήταν η AMS ή Tug-of-war sketch από τους Alon et al. [1]. Η δομή χρησιμοποιήθηκε για να υπολογίσει τη δεύτερη συχνοτική στιγμή F 2 = i f 2 i. Η δομή AMS ήταν πολύ αργή αφού απαιτούσε την ενημέρωση όλου του sketch σε κάθε εισαγωγή νέου στοιχείου. Ο αλγόριθμος COUNTSKETCH των Charikar et al. [4], βελτιώνει δραματικά την ταχύτητα αποδεικνύοντας ότι η ίδια τεχνική μπορεί να λειτουργήσει καλά αν κάθε ενημέρωση επιδρά μόνο σε ένα μικρό υποσύνολο της sketch δομής αντί σε ολόκληρη τη δομή. Η δομή αποτελείται από έναν διδιάστατο πίνακα C με d γραμμές και w μετρητές ως στήλες. Για κάθε μία γραμμή, υπάρχουν δύο συναρτήσεις κατακερματισμού: η h j (i) η οποία αντιστοιχεί το στοιχείο εισόδου i σε d μετρητές (j = 1,..., d), και η g j (i) η οποία για το στοιχείο i αποθηκεύει στην sketch δομή d τιμές 1 ή 1 στις θέσεις που δείχνει η h j (i). Για κάθε γραμμή j, η τιμή g j (i)c[j, h j (i)] είναι ένας μη-πολωμένος εκτιμητής της συχνότητας f i. Η συνολική εκτίμηση ˆf i είναι η μεσαία (median) από τις d εκτιμήσεις. Θέτοντας d = log 4 και w = O( 1 ), διασφαλίζουμε ότι η εκτίμηση f δ ϵ 2 i έχει λάθος το πολύ ϵf 1/2 2 ϵn με πιθανότητα 1 δ. Αυτή η εγγύηση προϋποθέτει ότι οι συναρτήσεις κατακερματισμού έχουν επιλεγεί τυχαία από μια οικογένεια αποτελούμενη από 4-wise independent συναρτήσεις κατακερματισμού. Ο συνολικός χώρος που χρησιμοποιεί ο αλγόριθμος είναι O(1/(ϵ 2 log 1)) ενώ ο χρόνος για κάθε ενημέρωση είναι O(log 1 ) στη χειρότερη περίπτωση. Στο Σχήμα 3.3 απεικονίζεται μια δομή sketch στη δ δ διαδικασία ενημέρωσής της, δηλαδή τη στιγμή που οι τιμές g j (i) προστίθενται στους μετρητές σε κάθε γραμμή της δομής. Ο ψευδοκώδικας του αλγορίθμου παρουσιάζεται στο Σχήμα
29 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Δομών Sketch Σχήμα 3.3: Δομή sketch κατά τη φάση της ενημέρωσης COUNTMIN Ο sketch αλγόριθμος COUNTMIN των Cormode και Muthukrishnan [5], μπορεί να περιγραφεί παρόμοια με τον COUNTSKETCH. Ο αλγόριθμος διατηρεί έναν πίνακα από d w μετρητές, όπως επίσης και d συναρτήσεις κατακερματισμού h j. Κάθε ενημέρωση επιδρά και πάλι σε d μετρητές στον πίνακα, όμως τώρα η h j (i) έχει πάντα τιμή 1, άρα οι μετρητές συνεχώς αυξάνονται. Επίσης διαφορετικό στον αλγόριθμο, είναι η επιλογή του εκτιμητή: τώρα ο εκτιμητής είναι ˆf i = min 1 j d C[j, h j (i)]. Η ανισότητα του Markov χρησιμεύει για να δείξει ότι η εκτίμηση για κάθε j υπερεκτιμάται λιγότερο από n/w, ενώ με d επαναλήψεις η πιθανότητα λάθους μειώνεται εκθετικά. Οπότε, θέτωντας d = log 1 και w = O( 1), διασφαλίζουμε ότι η εκτίμηση ˆf δ ϵ i έχει λάθος το πολύ ϵn με πιθανότητα τουλάχιστον 1 δ. Συνεπώς, ο απαιτούμενος χώρος είναι O( 1 log 1), ενώ ο χρόνος σε κάθε ενημέρωση O(log 1 ). Ο αλγόριθμος ϵ δ δ απεικονίζεται στο Σχήμα HIERARCHICAL COUNTSKETCH / COUNTMIN Εφόσον οι αλγόριθμοι που χρησιμοποιούν δομές sketch λύνουν το πρόβλημα της εκτίμησης συχνοτήτων και στην περίπτωση που οι συχνότητες μειώνονται, χρειάζονται πιο περίπλοκοι αλγόριθμοι για την εύρεση των συχνότερων στοιχείων. Γι αυτόν το λόγο, θα θεωρήσουμε μια πιο αυστηρή υποπερίπτωση του προβλήματος, στην οποία επιτρέπονται αρνητικές ενημερώσεις αλλά δεν επιτρέπονται αρνητικές συχνότητες. Με αυτόν τον τρόπο, 18
30 3. Αλγόριθμοι Βασισμένοι σε Διατήρηση Δομών Sketch Σχήμα 3.4: Ψευδοκώδικες αλγορίθμων βασισμένων σε δομές sketch ένας αλγόριθμος Διαίρει-και-Βασίλευε μπορεί να λύσει το πρόβλημα: χρειάζονται επιπλέον sketch δομές οι οποίες θα καθορίζουν ποιές περιοχές στοιχείων είναι συχνές [5]. Εάν μια περιοχή είναι συχνή, τότε μπορούμε να την διασπάσουμε και αυτήν σε -έστω- b μη επικαλυπτόμενες υποπεριοχές, ενώ η συχνότητα κάθε υποπεριοχής θα εκτιμάται από μια δομή sketch προσεγγιστικά, μέχρις ότου ένα μόνο στοιχείο να επιστραφεί ως αποτέλεσμα. Η επιλογή του b αντισταθμίζει τον χρόνο ενημέρωσης σε σχέση με τον χρόνο απάντησης ερωτήματος. Αν i {1... U}, δηλαδή αν υπάρχουν U διαφορετικά στοιχεία, τότε αρκούν log b U δομές sketch, όμως κάθε περιοχή χωρίζεται σε b > 1 υποπεριοχές όταν απαντώνται τα ερωτήματα. Επομένως, οι ενημερώσεις καταναλώνουν O(log b U log 1 ) πράξεις κατακερματισμού, και d O(1) ενημερώσεις μετρητών για κάθε hash. Τυπικά, οι τιμές του b είναι προκαθορισμένες (για παράδειγμα μεταξύ 2 και 256). Επίσης, η επιλογή του b να είναι δύναμη του 2, επιτρέπει να χρησιμοποιηθούν γρήγορα bit-shifts για τις απαντήσεις ερωτημάτων και τις ενημερώσεις των sketches, αντί για τις αργές πράξεις διαίρεσης και modulo. Η παραπάνω μέθοδος έχει ως αποτέλεσμα τους σύνθετους αλγορίθμους COUNTMIN SKETCH HIERARCHICAL και COUNTSKETCH HIERARCHICAL. 19
31 3. Άλλα Είδη Αλγορίθμων 3.3 Άλλα Είδη Αλγορίθμων Οι δύο παραπάνω μέθοδοι δεν αποτελούν τις μόνες μεθοδολογίες επίλυσης του προβλήματος της εύρεσης συχνών στοιχείων. Άλλες μεθοδολογίες στηρίζονται στην τυχαία δειγματοληψία στοιχείων από τη ροή δεδομένων. Επίσης, μέθοδοι κατασκευάζουνε περιλήψεις των κατανομών των στοιχείων προκειμένου να βρουν ποσοστιαία σημεία (quantiles) από τα οποία τα συχνά στοιχεία μπορούν να ανακαλυφθούν. Σημειώνουμε ότι οι μέθοδοι αυτοί δεν περιγράφονται αναλυτικά στο παρόν έγγραφο επειδή έχει αποδειχθεί πειραματικά [6] ότι δεν είναι τόσο αποτελεσματικές όσο οι μέθοδοι που περιγράφηκαν στις προηγούμενες ενότητες. 20
32 Κεφάλαιο 4 Ο Αλγόριθμος Συνδυαστικού Ελέγχου Συνόλων Στο Κεφάλαιο αυτό, παρουσιάζεται ο αλγόριθμος Combinatorial Group Testing (CGT) ο οποίος λύνει το πρόβλημα των συχνών στοιχείων και για δυναμικές ροές δεδομένων. Ο αλγόριθμος είναι τυχαίος και βασίζεται στις θεωρίες του Group Testing και των Κωδίκων Διόρθωσης Λαθών (Error Correcting Codes) [7]. Μετά την επεξήγηση των βασικών θεωριών και μεθόδων που αποτελούν τη βάση του και πριν περάσουμε στην περιγραφή της ολοκληρωμένης μορφής του, δίνεται η απλή περίπτωση χρήσης του αλγορίθμου για εύρεση του majority στοιχείου. Στο τέλος του Κεφαλαίου, δίνεται η ανάλυση πολυπλοκότητας για το χώρο και χρόνο, όπως επίσης και η ανάλυση της ορθότητας του αλγορίθμου για τα αποτελέσματά του. 4.1 Η Βασική Ιδέα Ο αλγόριθμος στηρίζεται στην ίδεα του Group Testing. Η μέθοδος αυτή έχει ιστορία 50 χρόνων και πρωτοχρησιμοποιήθηκε στον 2ο Παγκόσμιο Πόλεμο για τη διάγνωση της σύφιλης [9]. Η μέθοδος χωρίζεται σε δύο μορφές: adaptive και non-adaptive. Η βασική αρχή του non-adaptive Group Testing είναι η εξής: θέλοντας να εντοπίσουμε k ελλατωματικά στοιχεία από το συνολικό πληθυσμό, δημιουργούμε έναν αριθμό από tests καθένα από τα οποία 21
33 4. Η Βασική Ιδέα εφαρμόζεται σε ένα σύνολο m στοιχείων του πληθυσμού. Με τον ίδιο τρόπο βρίσκουμε και το ψεύτικο, βαρύτερο από το κανονικό, νόμισμα μέσα από ένα σύνολο γνήσιων νομισμάτων. Απλά πρέπει να ζυγίσουμε δύο σύνολα, και το ψεύτικο νόμισμα θα βρίσκεται στο σύνολο με το μεγαλύτερο βάρος. Αυτός ακριβώς είναι και ο στόχος μας στο πρόβλημα της εύρεσης συχνών στοιχείων: θέλουμε να εντοπίσουμε k συχνά στοιχεία τα οποία έχουν μεγαλύτερο βάρος από τα υπόλοιπα. Το ζήτημα είναι ότι η χρησιμοποίηση της μεθόδου του Group Testing θα πρέπει να γίνεται με όσο το δυνατόν μικρότερο αριθμό από tests, προκειμένου να μην επιβαρύνουμε την χωρική πολυπλοκότητα του αλγορίθμου. Συνοπτικά, η λειτουργία του αλγορίθμου είναι η εξής: αντιστοιχίζουμε κάθε ένα από τα m διαφορετικά στοιχεία της ροής, σε έναν προκαθορισμένο αριθμό συνόλων. Σε κάθε εισαγωγή ενός στοιχείου, ελέγχεται σε ποιά σύνολα ανήκει το στοιχείο αυτό και σε αυτά τα σύνολα γίνεται η αποθήκευσή του (με κάποια γραμμική μέθοδο), ενώ ακόμη, για κάθε σύνολο αυξάνεται ένας μετρητής που αφορά τον συνολικό αριθμό στοιχείων του συνόλου. Εφόσον η αποθήκευση των στοιχείων στα σύνολα γίνεται με χρήση γραμμικής αναπαράστασης, οι διαγραφές στοιχείων δεν διαφέρουν από τις εισαγωγές παρά μόνο αλλάζουν τα πρόσημα. Έτσι, η διαγραφή ενός στοιχείου είναι όμοια διαδικασία με την εισαγωγή, αντί όμως για αύξηση των μετρητών των συνόλων έχουμε μείωσή αυτών κατά 1. Κατά την φάση του query, δηλαδή όταν ο αλγόριθμος πρέπει να επιστρέψει ποιά είναι τα συχνότερα στοιχεία, πραγματοποιούνται τα tests πάνω στα σύνολα με τα αποθηκευμένα στοιχεία, ελέγχοντας αρχικά αν ο μετρητής των συνόλων ξεπερνά ένα κατώφλι (το 1/(k + 1)). Τα αποτελέσματα προκύπτουν από τον συνδυασμό όλων των tests. Τα ζητήματα που μένουν να απαντηθούν από την παραπάνω περιγραφή της μεθόδου είναι αρκετά. Αρχικά, η αναπαράσταση των στοιχείων της δομής πρέπει να είναι τέτοια ώστε τα στοιχεία να εισάγονται και να διαγράφονται με τον ίδιο τρόπο, ενώ παράλληλα, θα πρέπει να μην καταλαμβάνουν πολύ χώρο στη μνήμη. Το ίδιο ισχύει και για τον αριθμό των συνόλων που θα χρησιμοποιήσουμε: δεν θα πρέπει να έχει μεγάλο κόστος χώρου. Τέλος, ένα ακόμη πρόβλημα είναι ο τρόπος με τον οποίο θα εντοπίζουμε τα συχνά 22
34 4. Ντετερμινιστικός Αλγόριθμος για την Εύρεση του Majority Στοιχείου στοιχεία μέσα από τα σύνολα στοιχείων. 4.2 Ντετερμινιστικός Αλγόριθμος για την Εύρεση του Majority Στοιχείου Ο εντοπισμός του majority στοιχείου στην δυναμική έκδοση του προβλήματος είναι πολύ δυσκολότερος από την περίπτωση όπου έχουμε μόνο συναλλαγές εισαγωγής στη ροή δεδομένων. Στην απλή μορφή των εισαγωγώνμόνο, το πρόβλημα λύνεται σε σταθερό χρόνο και χώρο από τους αλγόριθμους των Boyer και Moore [2], και Salzberg και Fisher [10]. Αντιθέτως, στις δυναμικές ροές υπάρχει η περίπτωση να εντοπίσουμε κάποιο στοιχείο το οποίο είναι συχνό αλλά με την πάροδο του χρόνου να υποστεί έναν μεγάλο αριθμό διαγραφών και να μην είναι πια ανάμεσα στα συχνά στοιχεία. Έτσι, οι αλγόριθμοι εντοπισμού συχνών στοιχείων θα πρέπει να ενημερώνονται κατάλληλα γι αυτές τις αλλαγές στην κατανομή των στοιχείων της ροής, ώστε να δίνουν ακριβή αποτελέσματα ακόμη και μετά από μεγάλο πλήθος διαγραφών στοιχείων. Για την εύρεση του majority, ο CGT διατηρεί log 2 m + 1 μετρητές. Ο πρώτος από τους μετρητές αυτούς συμβολίζεται με c και χρησιμεύει στο να κρατάει τον αριθμό n(t) = i n i(t), δηλαδή το πλήθος των στοιχείων τα οποία είναι ζωντανά. Σε κάθε εισαγωγή στοιχείου, ο μετρητής αυξάνεται κατά ένα, ενώ αντίθετα σε κάθε διαγραφή μειώνεται κατά ένα. Οι υπόλοιποι μετρητές c j με j = 1... log 2 m, χρησιμοποιούνται για να αναπαραστήσουν ένα σύνολο αποθήκευσης στοιχείων, κρατώντας τη δυαδική αναπαράσταση των στοιχείων. Ακόμη, χρησιμοποιούνται δύο συναρτήσεις: bit(i, j): επιστρέφει την τιμή του j-οστού bit της δυαδικής αναπαράστασης του αριθμού i. gt(i, j): επιστρέφει 1 αν i > j ή 0 αντίθετα. Η λειτουργία του αλγορίθμου είναι η ακόλουθη: 23
35 4. Ντετερμινιστικός Αλγόριθμος για την Εύρεση του Majority Στοιχείου Σχήμα 4.1: Μέθοδοι του αλγορίθμου CGT για τον εντοπισμό του majority στοιχείου Εισαγωγή του στοιχείου i: Αύξησε τον μετρητή c κατά ένα, και τους μετρητές c j έτσι ώστε bit(i, j) = 1 σε χρόνο O(log m). Διαγραφή του στοιχείου i: Μείωσε τον μετρητή c κατά ένα, και τους μετρητές c j έτσι ώστε bit(i, j) = 1 σε χρόνο O(log m). Query: Αν υπάρχει majority στοιχείο, τότε αυτό δίνεται από τον τύπο log2 m j=1 2 j 1 gt(c j, c/2) σε χρόνο O(log m). Οι παραπάνω υπολειτουργίες, υλοποιούνται από δύο συναρτήσεις: μία η οποία διαχειρίζεται τις ενημερώσεις στοιχείων (update time) και μία η οποία εντοπίζει το majority στοιχείο (query time). Αυτές οι συναρτήσεις δίνονται στο Σχήμα 4.1. Παρακάτω, δίνεται ένα θεώρημα για την απόδειξη της ορθότητας του αλγορίθμου. Θεώρημα 1. Ο αλγόριθμος του Σχήματος 4.1, βρίσκει το majority στοιχείο εφόσον αυτό υπάρχει, σε χρόνο O(log m). Απόδειξη. Η απόδειξη χωρίζεται σε δύο μέρη: πρώτα, πρέπει να δειχθεί ότι η κατάσταση της δομής δεδομένων με την παρουσία διαγραφών, είναι ισοδύναμη με το να είχαμε ακολουθία c εισαγωγών μόνο. Έπειτα, ότι στην περίπτωση που έχουμε μόνο εισαγωγές, ο αλγόριθμος καταφέρνει και εντοπίζει το majority στοιχείο. Το πρώτο μέρος της απόδειξης είναι εύκολο να δειχθεί. Αρκεί να παρατηρήσουμε ότι η επίδραση μιας διαγραφής στοιχείου είναι ακριβώς η 24
36 4. Ντετερμινιστικός Αλγόριθμος για την Εύρεση του Majority Στοιχείου αναίρεση της εισαγωγής του στη δομή. Επομένως, μετά από I εισαγωγές και D διαγραφές, η κατάσταση της δομής θα είναι ακριβώς σαν να είχαμε μόνο I D = c εισαγωγές στοιχείων. Σχήμα 4.2: Το πλήθος των tests που εφαρμόζονται στα στοιχεία Η απόδειξη του δευτέρου μέρους, βασίζεται στο γεγονός ότι το majority στοιχείο θα έχει πάντα μετρητές που είναι μεγαλύτεροι του c/2. Η αποθήκευση των στοιχείων στην δυαδική τους μορφή, επιτρέπει τα log 2 m tests που θα γίνουν να φανερώσουν παράλληλα και το αναγνωριστικό του majority στοιχείου. Έτσι, η επιλογή των log 2 m tests είναι ικανή και αναγκαία για τον εντοπισμό του majority, εάν αυτό υπάρχει. Αυτή η διάταξη των tests που χρησιμοποιεί ο αλγόριθμος (Σχήμα 4.2), είναι standard στις μεθόδους group testing, ενώ επίσης, αντιπροσωπεύει την δομή του κώδικα Hamming για διόρθωση λαθών ενός bit. Αν θεωρήσουμε τη δυαδική αναπαράσταση των στοιχείων ως κωδικολέξη, τότε θα έχουμε έναν κώδικα με m κωδικολέξεις μήκους l. O αλγόριθμος διατηρεί l μετρητές, καθένας από τους οποίους αντιστοιχεί σε ένα bit της κωδικολέξης. Κάθε κωδικολέξη αποτελείται από 0 και 1, ενώ όταν γίνεται εισαγωγή ή διαγραφή των στοιχείων, οι μετρητές προσθέτουν ή αφαιρούν, αντίστοιχα, την κωδικολέξη από το άθροισμα που διατηρούν. Οι superimposed κώδικες τάξης k έχουν την ιδιότητα ότι το άθροισμά (λογικό-or-) οποιονδήποτε από τις k κωδικολέξεις, είναι διαφορετικό από οποιοδήποτε άλλο άθροισμα [12]. Έτσι, από το άθροισμα είναι δυνατόν να προσδιορίσουμε μοναδικά ποιές κωδικολέξεις συνείσφεραν στο ίδιο το άθροισμα. Οπότε, με χρήση τέτοιου 25
37 4. Χρήση της Τυχαιότητας είδους κωδίκων, βρίσκουμε εύκολα το αναγνωριστικό του majority στοιχείου από το άθροισμα που διατηρούν οι μετρητές. 4.3 Χρήση της Τυχαιότητας Εφόσον για την εύρεση του majority στοιχείου, ο αλγόριθμος που παρουσιάστηκε στην προηγούμενη ενότητα λειτουργεί ντετερμινιστικά και μπορεί να το βρει πάντοτε εάν αυτό πράγματι υπάρχει, θα μπορούσαμε να ανακαλύψουμε έναν τρόπο ώστε να τον χρησιμοποιήσουμε για την εύρεση των συχνότερων στοιχείων στη γενικότερη περίπτωση. Αυτό είναι δυνατόν να συμβεί χρησιμοποιώντας την τυχαιότητα για τον ορισμό τέτοιου πλήθους υποσυνόλων έτσι ώστε να μπορούμε σε κάθε υποσύνολο να εφαρμόζουμε τον αλγόριθμο για το majority. Ποιά μορφή όμως θα πρέπει να έχουν τα υποσύνολα και ποιό πρέπει να είναι το πλήθος τους; Αυτά τα θέματα αναλύονται στις παρακάτω υποενότητες Ορισμός καλών υποσυνόλων Η μορφή των υποσυνόλων θα πρέπει να είναι τέτοια ώστε ο αλγόριθμος για την εύρεση του majority στοιχείου να μπορεί να εφαρμοστεί χωρίς αλλαγές στο κάθε υποσύνολο, και επίσης να μπορεί να εντοπίζει πάντα το majority όταν αυτό υπάρχει. Λόγω αυτών των επιθυμητών τους ιδιοτήτων, τέτοια υποσύνολα θα τα ονομάζουμε καλά υποσύνολα. Δίνεται ο παρακάτω ορισμός: Ορισμός 5. Έστω F [1... m] το σύνολο των συχνών στοιχείων. Έχουμε ότι F k. Ορίζουμε ως καλό υποσύνολο ένα σύνολο S [1... m] τέτοιο ώστε S F = 1. Ο παραπάνω ορισμός μας λέει πολύ απλά ότι κάθε καλό υποσύνολο θα πρέπει να περιέχει ακριβώς ένα συχνό στοιχείο. Στόχος μας τώρα είναι να φροντήσουμε το συχνό στοιχείο του κάθε καλού υποσυνόλου να είναι το majority στοιχείο. 26
38 4. Χρήση της Τυχαιότητας Εύρεση του απαραίτητου πλήθους υποσυνόλων Το ερώτημα τώρα είναι το εξής: ποιός θα πρέπει να είναι ο αριθμός των υποσυνόλων που θα επιλέξουμε, έτσι ώστε κάθε ένα υποσύνολο να είναι καλό. Ακολουθεί το αντίστοιχο θεώρημα και η απόδειξή του: Θεώρημα 2. Επιλέγοντας O(k ln k) υποσύνολα εκλέγοντας (m/k) στοιχεία τυχαία από ομοιόμορφη κατανομή των στοιχείων [1... m], διασφαλίζει ότι με σταθερή πιθανότητα έχουμε συμπεριλάβει k υποσύνολα S 1... S k τέτοια ώστε κάθε S i να αποτελεί ένα καλό υποσύνολο, ενώ επίσης, i (F S i ) = F. Απόδειξη. Αν υπάρχουν k συχνά στοιχεία και διαλέξουμε ένα οποιοδήποτε στοιχείο από το σύνολο των m στοιχείων, τότε η πιθανότητα να διαλέξαμε κάποιο συχνό στοιχείο είναι k/m. Εάν επαναλάβουμε αυτήν την διαδικασία m/k φορές, τότε η πιθανότητα να διαλέξουμε ακριβώς ένα συχνό στοιχείο είναι p = m k (1 k ) m k 1 = m (1 k ) m k. Σε όλες εκτός των πολύ απλών k m m m k m περιπτώσεων, το k θα είναι φραγμένο ως εξής: 1 k m/2. Οπότε, η πιθανότητα για επιλογή ακριβώς ενός συχνού στοιχείου θα είναι επίσης φραγμένη: 1 p 2 3. Με άλλα λόγια, η πιθανότητα να είναι κάποιο τυχαία 4 e 4 επιλεγμένο υποσύνολο καλό, είναι σταθερή. Με βάση λοιπόν τις προηγούμενες υποθέσεις, η επιλογή του πλήθους των υποσυνόλων που απαιτούνται προκειμένου κάθε υποσύνολο να είναι καλό για κάθε συχνό στοιχείο, δίνεται από το πρόβλημα της Συλλογής Κουπονιών (Coupon Collector s problem [15]) και είναι O(k ln k) Επιλογή του τρόπου κατασκευής των υποσυνόλων Εάν επιλέγαμε να αποθηκεύουμε τα προκαθορισμένα υποσύνολα, θα απαιτούσε Ω(k log k log ( m m/k) ) = Ω(m log 2 k) χώρο, ο οποίος είναι υπερβολικά μεγάλος αφού υπάρχει η γραμμική εξάρτηση από το πλήθος m των στοιχείων της ροής. Μια άλλη λύση είναι να ορίζαμε τα υποσύνολα χρησιμοποιώντας καθολικές συναρτήσεις κατακερματισμού όπως αυτές των Carter και Wegman [3]. Ορίζουμε μια οικογένεια συναρτήσεων κατακερματισμού h a,b ως ακολούθως: επιλέγουμε έναν πρώτο (prime) αριθμό, έστω P, με P > 2k. Εκλέγουμε a και b τυχαία από ομοιόμορφη κατανομή στο διάστημα 27
39 4. Χρήση της Τυχαιότητας [0... P 1]. Τότε, θα έχουμε την μορφή h a,b (x) = ((ax + b mod P ) mod 2k). Οπότε, με βάση αυτόν τον ορίσμο της συνάρτησης κατακερματισμού, μπορούμε να ορίσουμε τα υποσύνολα ως εξής: S a,b,i = {x h a,b (x) = i}. Σχήμα 4.3: Μέθοδοι του αλγορίθμου CGT για τον εντοπισμό των συχνότερων στοιχείων Καθορισμός της πιθανότητας λάθους με εισαγωγή παραμέτρου Όπως αποδείχθηκε και στην ενότητα 4.3.2, ο απαιτούμενος αριθμός υποσυνόλων που θα πρέπει να οριστεί είναι O(n log n). Ο ακριβής αριθμός που θα επιλέξουμε όμως, καθορίζεται από μία πρόταση στο [3]: Γεγονός 1. Για όλες τις πιθανές επιλογές των παραμέτρων a και b, και για x y, ισχύει ότι Pr(h a,b (x) = h a,b (y)) 1/2k. Η παραπάνω πρόταση σημαίνει ότι για οποιοδήποτε ζευγάρι στοιχείων x και y, η πιθανότητα να καταταχθούν στο ίδιο υποσύνολο είναι το πολύ 1/2k. Αυτό μας οδηγεί στο να επιλέξουμε T = log k/δ τιμές για τα a και b, το οποίο έχει ως αποτέλεσμα τη δημιουργία 2kT = 2k log k/δ υποσυνόλων. 28
40 4. Χρήση της Τυχαιότητας Αυτό συμβαίνει επειδή κάθε ζευγάρι τιμών a και b ορίζει 2k hash τιμές, δηλαδή υποσύνολα. Η εισαγωγή της παραμέτρου δ στον ορισμό του πλήθους υποσυνόλων που θα δημιουργηθούν, δίνει τη δυνατότητα καθορισμού της πιθανότητας λάθους που αφορά την συμπερίληψη κάθε συχνού στοιχείου σε κάποιο από τα καλά υποσύνολα. Ακολουθεί το αντίστοιχο Λήμμα με την απόδειξή του: Λήμμα 2. Η πιθανότητα να συμπεριλάβουμε ένα συχνό στοιχείο σε τουλάχιστον ένα καλό υποσύνολο, είναι τουλάχιστον 1 δ. Απόδειξη. Κάθε συχνό στοιχείο j το βάζουμε σε T υποσύνολα. Για κάθε ένα υποσύνολο, επιλέγουμε να το βάλουμε σε μια από τις 2k θέσεις. Όσον αφορά τα υπόλοιπα στοιχεία που εισάγονται στα υποσύνολα, περιμένουμε να έχουν όλα μαζί άθροισμα συχνοτήτων i j f i/2k < 1/2(k + 1). Θυμίζουμε ότι κάθε test θα είναι επιτυχημένο εάν το βάρος των υπολοίπων στοιχείων στο υποσύνολο είναι μικρότερο της ποσότητας 1/(k + 1). Αυτό συμβαίνει λόγω της χρήσης του αλγορίθμου για την εύρεση του majority στοιχείου. Οπότε, η πιθανότητα να αποτύχουμε να εντοπίσουμε το majority στοιχείο σε κάποιο υποσύνολο εξαιτίας του ότι το βάρος των υπολοίπων στοιχείων ξεπερνά το 1/(k + 1), είναι φραγμένη από την ανισότητα του Markov για 1/2. Έτσι, η πιθανότητα να αποτύχουμε σε κάθε ένα από τα T tests είναι μικρότερη της 1/2 log k/δ = δ/k. Κάνοντας τώρα χρήση του Union Bound για όλα τα συχνά στοιχεία, η πιθανότητα να αποτύχει κάποιο από αυτά είναι μικρότερη του δ και άρα, κάθε συχνό στοιχείο βρίσκεται σε τουλάχιστον ένα καλό υποσύνολο με πιθανότητα 1 δ. Οι μέθοδοι του αλγορίθμου CGT απεικονίζονται στο Σχήμα 4.3. Η μέθοδος PROCESSITEM χρησιμοποιείται για την εισαγωγή ή διαγραφή στοιχείων από το sketch, αφού όμως πρώτα έχει κληθεί η INITIALIZE για να αρχικοποιήσει το sketch και τις υπόλοιπες βοηθητικές μεταβλητές. Η μέθοδος GROUPTEST χρησιμοποιείται για την εύρεση των συχνότερων στοιχείων, εκτελώντας τα απαραίτητα tests που αναφέρθηκαν στις προηγούμενες παραγράφους. 29
41 4. Ανάλυση Χρονικής και Χωρικής Πολυπλοκότητας 4.4 Ανάλυση Χρονικής και Χωρικής Πολυπλοκότητας Η χρονική πολυπλοκότητα του αλγορίθμου CGT δίνεται στο παρακάτω θεώρημα. Θεώρημα 3. Ο χρόνος για μια ενημέρωση είναι O(log k/δ log m), ενώ για να επιστραφούν όλα τα συχνά στοιχεία O(k log k/δ log m). Απόδειξη. Σε κάθε ενημέρωση, ο αλγόριθμος υπολογίζει τις τιμές T συναρτήσεων κατακερματισμού, και για κάθε τιμή ενημερώνονται log m μετρητές. Αυτό μας δίνει τη χρονική πολυπλοκότητα στη φάση των ενημερώσεων. Όσον αφορά τη φάση του query, ο αλγόριθμος πραγματοποιεί το πολύ 2kT = 2k log k/δ τεστ, καθένα από τα οποία έχει log m υποτεστ αφού συγκρίνουμε με τη δυαδική αναπαράσταση των στοιχείων προκειμένου να εντοπίσουμε τη θέση τους. Επομένως, η χρονική πολυπλοκότητα είναι O(k log k/δ log m). Συνεχίζοντας την ασυμπτωτική ανάλυση του αλγορίθμου, ακολουθεί το θεώρημα και η απόδειξη για τη χωρική πολυπλοκότητα του. Θεώρημα 4. Με πιθανότητα τουλάχιστον 1 δ, η κλήση της μεθόδου GROUPTEST(log k/δ, k, 1/(k+1)) βρίσκει όλα τα συχνά στοιχεία χρησιμοποιώντας O(k(log k + log 1/δ)) χώρο. Απόδειξη. Από το Λήμμα 2, γνωρίζουμε ότι θα έχουμε αρκετά καλά υποσύνολα για να καλύψουμε τα k συχνά στοιχεία, με προκαθορισμένη πιθανότητα. Από το Θεώρημα 1, γνωρίζουμε ότι μπορούμε να βρούμε ένα συχνό στοιχείο σε ένα οποιοδήποτε υποσύνολο, αν υπάρχει κάποιο τέτοιο στοιχείο, αφού θα πρέπει να είναι το majority στοιχείο του υποσυνόλου. Γενικά, ο χώρος που απαιτείται για την αναπαράσταση των υποσυνόλων, είναι ο χώρος για την αποθήκευση των αριθμών a και b, οι οποίοι είναι ακέραιοι και μικρότεροι του πρώτου αριθμού P. Επειδή τον αριθμό P τον επιλέγουμε να είναι O(m), ο χώρος που απαιτείται για να αναπαραστήσουμε ένα υποσύνολο είναι log m bits. Οπότε, ο συνολικός απαιτούμενος χώρος 30
42 4. Εξέταση της Αξιοπιστίας και Ορθότητας είναι O(k log k/δ(1 + log m )) μετρητές, με επιπλέον τις log k/δ τιμές των a και b. Όπως είναι προφανές, το κόστος σε χώρο κυριαρχείται από την αποθήκευση των μετρητών. Οι μετρητές μπορούν να αναπαρασταθούν ως λέξεις μηχανής, και έτσι ο χώρος που τελικά απαιτείται μπορεί να γίνει 2k log k/δ log 2m λέξεις. 4.5 Εξέταση της Αξιοπιστίας και Ορθότητας Σε αυτήν την ενότητα θα εξεταστεί το πόσο αξιόπιστος είναι ο CGT στα αποτελέσματά του. Η συμπεριφορά του αλγορίθμου, παρά το ότι επηρεάζεται από παράγοντες όπως η κατανομή των στοιχείων της ροής δεδομένων και η επιλογή των καθορισμένων από τον χρήστη παραμέτρων του, αποδεικνύεται ιδιαίτερα σταθερή και αξιόπιστη. Έτσι λοιπόν, παρακάτω παρουσιάζουμε τρεις παράγοντες που κρίθηκαν χρήσιμοι για τη μελέτη της ορθότητας και αξιοπιστίας του Η σημαντικότητα της ιδιότητας μικρής ουράς Η ιδιότητα αυτή των ροών δεδομένων, η οποία περιγράφηκε στην ενότητα 2.3, είναι ιδιαίτερα χρήσιμη στην κατασκεύη καλών υποσυνόλων. Το Λήμμα 3 δείχνει ότι γνωρίζοντας πως υπάρχει η ιδιότητα αυτή στην ροή, μπορούμε να γνωρίζουμε με ντετερμινιστικό τρόπο αν ένα οποιοδήποτε υποσύνολο είναι καλό ή όχι. Λήμμα 3. Δοσμένου ενός υποσυνόλου S a,b,i και των μετρητών του c 0... c log m, είναι δυνατόν να γνωρίζουμε ντετερμινιστικά αν το S a,b,i είναι καλό υποσύνολο, εάν ξέρουμε ότι η ροή δεδομένων έχει την ιδιότητα της μικρής ουράς. Απόδειξη. Υπάρχουν δύο περιπτώσεις στις οποίες ένα υποσύνολο αποτυγχάνει να είναι καλό: 1. Όταν δεν περιέχει κανένα συχνό στοιχείο. 2. Όταν περιέχει περισσότερα του ενός συχνά στοιχεία. 31
43 4. Εξέταση της Αξιοπιστίας και Ορθότητας Αν υποθέσουμε ότι η ροή δεδομένων έχει την ιδιότητα της μικρής ουράς, τότε και οι δύο παραπάνω περιπτώσεις μπορούν να εντοπιστούν. Στην πρώτη περίπτωση, αν δεν υπάρχει κανένα συχνό στοιχείο στο υποσύνολο, τότε ο μετρητής c 0 του υποσυνόλου θα έχει τιμή μικρότερη του c/(k + 1). Στην δεύτερη περίπτωση, αν υπάρχουν δύο ή περισσότερα συχνά στοιχεία στο υποσύνολο, τότε θα υπάρχει κάποιος μετρητής c j για τον οποίο θα ισχύει ότι c j > c/(k + 1) και c 0 c k > c/(k + 1). Έτσι λοιπόν, αν εντοπίσουμε είτε τη μία είτε την άλλη περίπτωση, τότε θα ξέρουμε ότι το συγκεκριμένο υποσύνολο δεν είναι καλό και επομένως θα μπορούμε να το απορρίψουμε. Οι δυνατές περιπτώσεις ελέγχου για τον εντοπισμό ένος συχνού στοιχείου μέσα σε κάποιο υποσύνολο, συνοψίζονται στον Πίνακα 4.1. c[i][j][l] > n k+1? c[i][j][0] c[i][j][l] > n k+1? Συμπέρασμα Όχι Όχι Δεν μπορεί να υπάρχει συχνό στοιχείο στο υποσύνολο, οπότε απέρριψε το υποσύνολο Όχι Ναι Αν ένα συχνό στοιχείο x είναι μέσα στο υποσύνολο, τότε πρέπει bit(l, x) = 0 Ναι Όχι Αν ένα συχνό στοιχείο x είναι μέσα στο υποσύνολο, τότε πρέπει bit(l, x) = 1 Ναι Ναι Δεν είναι δυνατόν να εντοπιστεί το συχνό στοιχείο, οπότε απέρριψε το υποσύνολο Πίνακας 4.1: Δυνατές περιπτώσεις στον έλεγχο για ύπαρξη συχνού στοιχείου σε κάποιο υποσύνολο Επιπλέον, ένα ακόμη χαρακτηριστικό αυτής της ιδιότητας είναι ότι η ύπαρξή της αποτελεί εγγύηση για το ότι ο αλγόριθμος δεν θα επιστρέψει στα αποτελέσματα στοιχεία τα οποία δεν είναι συχνά. Ακολουθούν το πόρισμα και η απόδειξή του. 32
44 4. Εξέταση της Αξιοπιστίας και Ορθότητας Πόρισμα 1. Δεδομένης της ιδιότητας μικρής ουράς, ο αλγόριθμος δεν θα επιστρέψει κανένα στοιχείο το οποίο δεν είναι συχνό. Απόδειξη. Χρησιμοποιώντας το Λήμμα 3, μπορούμε να ξέρουμε αν ένα υποσύνολο είναι καλό ή όχι. Επομένως, κάνοντας τους ελέγχους και απορρίπτωντας τα υποσύνολα τα οποία δεν είναι καλά, εγγυόμαστε ότι σίγουρα στα αποτελέσματά μας θα βρίσκονται μόνο στοιχεία τα οποία είναι συχνά Επίδραση της παραμέτρου κατωφλίωσης ϕ Αν καλέσουμε την μέθοδο GROUPTEST με μεγαλύτερο κατώφλι, δηλαδή με μεγαλύτερη παράμετρο ϕ = 1/(k + 1) : k < k, τότε ουσιαστικά ζητάμε στα αποτελέσματα λιγότερα συχνά στοιχεία - ζητάμε αυτά που ξεπερνούν μία ακόμη μεγαλύτερη συχνότητα. Η σταθερότητα του αλγορίθμου σε αυτήν την αλλαγή, συνοψίζεται στο Πόρισμα 2. Πόρισμα 2. Η πιθανότητα επιτυχίας εύρεσης των συχνών στοιχείων, θα παραμείνει 1 δ εάν καλέσουμε την GROUPTEST(log k/d, k, 1/(k + 1)) με k < k. Απόδειξη. Από το Λήμμα 2, γνωρίζουμε ότι προκειμένου να βρούμε k συχνά στοιχεία θα πρέπει για καθένα από αυτά το άθροισμα των συχνοτήτων των στοιχείων τα οποία βρίσκονται στο ίδιο υποσύνολο να είναι το πολύ 1/2(k + 1). Αυτό επιτυγχάνεται τοποθετώντας τα στοιχεία σε ένα από τα 2k υποσύνολα. Επομένως, αν επιλέξουμε να έχουμε περισσότερα από αυτά τα υποσύνολα (αν για παράδειγμα επιλέξουμε 2k υποσύνολα), τότε τόσο μεγαλύτερη γίνεται η πιθανότητα να έχουμε υποσυνόλα τα οποία είναι καλά. Άρα, αν εκτελέσουμε την GROUPTEST με μεγαλύτερο κατώφλι, η πιθανότητα να βρούμε τα k συχνά στοιχεία, είναι τουλάχιστον 1 δ Ανεξαρτησία από τη σειρά επεξεργασίας των στοιχείων Ένα ακόμη ερώτημα είναι πως θα συμπεριφερθεί ο αλγόριθμος σε διαφορετική σειρά των στοιχείων εισόδου. Αυτό το ερώτημα απαντάται στο 33
45 4. Εξέταση της Αξιοπιστίας και Ορθότητας Λήμμα 4 παρακάτω. Λήμμα 4. Η έξοδος του αλγορίθμου είναι η ίδια για οποιαδήποτε διάταξη των στοιχείων εισόδου του. Απόδειξη. Σε κάθε εισαγωγή ή διαγραφή στοιχείου, ο αλγόριθμος εκτελεί την αντίστοιχη πράξη χωρίς να ελέγχει ποιά στοιχεία βρίσκονται ήδη αποθηκεύμενα. Με άλλα λόγια, η εισαγωγή και διαγραφή στοιχείων είναι αποκλειστικά συναρτήσεις των στοιχείων εισόδου και του συνολικού αθροίσματος που διατηρούν οι μετρητές, όμως όχι των αποθηκευμένων στοιχείων ξεχωριστά. 34
46 Κεφάλαιο 5 Πειραματικά Αποτελέσματα Σε αυτό το Κεφάλαιο, παρουσιάζουμε αποτελέσματα πειραμάτων που πραγματοποιήσαμε προκειμένου να αξιολογήσουμε την απόδοση του CGT σε σχέση με τους υπόλοιπους αλγόριθμους που αναφέρθηκαν στο Κεφάλαιο 3. Τα πειράματα βασίζονται στο [6], και χωρίζονται σε δύο μεγάλες κατηγορίες: i. Αξιολόγηση σε στατικές ροές δεδομένων, ii. Αξιολόγηση σε δυναμικές ροές δεδομένων. Σε κάθε περίπτωση, εξετάζουμε έναν αριθμό από μετρικές απόδοσης (Ενότητα 5.1) ως προς τη μεταβολή της παραμέτρου κατωφλίωσης ϕ και του μεγέθους της ροής n (πλήθους στοιχείων της). Σε όλα τα πειράματα χρησιμοποιούμε μόνο συνθετικά δεδομένα, παραγμένα από τρια είδη κατανομών: Uniform, Binomial, και Zipf. Πριν ξεκινήσουμε την παρουσίαση των αποτελεσμάτων, περιγράφουμε τις λεπτομέρειες κατασκευής και εκτέλεσης των πειραμάτων. 5.1 Δομή Πειραμάτων και Μετρικές Αξιολόγησης Η υλοποίηση των πειραμάτων έγινε με βάση τον κώδικα του G.Cormode¹ που χρησιμοποιήθηκε για την εκτέλεση αντίστοιχων πειραμάτων στο [6]. Στην συγκεκριμένη εργασία, υλοποιούνται σε C++ όλοι οι αλγόριθμοι που ανήκουν στις δύο βασικές κατηγορίες (Κεφάλαιο 3). Για την υλοποίηση των πράξεων συνόλων που φαίνονται στους ψευδοκώδικες των αλγορίθμων, ¹ 35
47 5. Δομή Πειραμάτων και Μετρικές Αξιολόγησης χρησιμοποιούνται δομές δεδομένων που δίνουν καλύτερα αποτελέσματα σε σχέση με άλλες διαφορετικές δομές. Όλα τα πειράματα εκτελέστηκαν σε Desktop PC με 2GB RAM και λειτουργικό σύστημα WindowsXP Proffesional. Ο κώδικας έγινε build χρησιμοποιώντας την Microsoft Visual C Όπως αναφέρθηκε και στα προηγούμενα Κεφάλαια, μια στατική ροή είναι μια ροή που περιλαμβάνει μόνο εισαγωγές στοιχείων (μόνο θετικούς αριθμούς). Αντίθετα, σε μια δυναμική ροή έχουμε και διαγραφές στοιχείων (θετικούς και αρνητικούς αριθμούς) με αποτέλεσμα να υπάρχουν μεγάλες αλλαγές στην κατανομή των στοιχείων με το πέρασμα του χρόνου. Οι αλγόριθμοι που βασίζονται σε διατήρηση μετρητών, είναι κατασκευασμένοι μόνο για εισαγωγές στοιχείων και δεν μπορούν να εφαρμοστούν σε δυναμικές ροές. Αντιθέτως, οι sketch αλγόριθμοι εκτελούνται το ίδιο εύκολα και στα δύο είδη ροών. Λόγω του γεγονότος αυτού, τα πειράματα χωρίστηκαν στις δύο αυτές κατηγορίες, στην πρώτη από τις οποίες συγκρίνονται με τον CGT όλοι οι αλγόριθμοι, ενώ στην δεύτερη μόνο οι sketch. Οι μετρικές με τις οποίες αξιολογήσαμε την απόδοση των αλγορίθμων, είναι οι ακόλουθες: Ρυθμός Ενημέρωσης (Update Throughput) Χώρος Μνήμης (Space) Ακρίβεια Αποτελεσμάτων (Precision) Ο ρυθμός ενημέρωσης είναι ο ρυθμός με τον οποίο εισάγονται ή διαγράφονται τα στοιχεία από την δομή που διατηρεί ο κάθε αλγόριθμος. Η μονάδα μέτρησης είναι: αριθμός ενημερώσεων ανά millisecond. Η μετρική για τον χώρο μνήμης μας δίνει τον συνολικό χώρο που καταναλώνει ο κάθε αλγόριθμος και μετριέται σε bytes. Η ακρίβεια στα αποτελέσματα ορίζεται ως ο αριθμός των συχνών στοιχείων που εμφανίστηκαν στα αποτελέσματα του αλγορίθμου, προς τον συνολικό αριθμό αποτελεσμάτων που επέστρεψε. Αξίζει να αναφέρουμε ότι στο [6], για την μέτρηση της απόδοσης των αλγορίθμων χρησιμοποιούνται τρεις επιπλέον μετρικές: (i) η ανάκληση (Recall) 36
48 5. Στατικές Ροές η οποία ορίζεται ως το πλήθος των συχνών στοιχείων που βρήκε ο αλγόριθμος προς το πλήθος όλων των συχνών στοιχείων, (ii) το μέσο σχετικό λάθος στις συχνότητες των πραγματικών συχνών στοιχείων (ARE of true frequent items), (iii) το μέσο σχετικό λάθος στις συχνότητες των false-positive συχνών στοιχείων (ARE of false-positives). Στην παρούσα εργασία δεν παρουσιάζονται αποτελέσματα για τις μετρικές αυτές, λόγω του ότι η ανάκληση είναι γενικά για όλους τους αλγορίθμους πολύ υψηλή με συνέπεια να μην παρατηρούνται ιδιαίτερες διαφορές, ενώ τα δύο είδη μέσου συνολικού λάθους δεν αφορούσαν τους σκοπούς της μελέτης μας. Για κάθε είδος ροής δεδομένων, οι μετρικές απόδοσης μεταβάλλονται βάσει δύο ξεχωριστών περιπτώσεων: 1. Μεταβολή του ϕ 2. Μεταβολή του πλήθους στοιχείων της ροής n Για κάθε μία τιμή του ϕ ή του n αντίστοιχα, εκτελούνται 20 επαναλήψεις, σε κάθε μία από τις οποίες ο κάθε αλγόριθμος δέχεται ως είσοδο ένα όλο και μεγαλύτερο πλήθος συναλλαγών για ακριβέστερη εκτίμηση. 5.2 Στατικές Ροές Τα πρώτα πειράματα έγιναν χρησιμοποιώντας στατικές ροές δεδομένων ως είσοδο στους αλγορίθμους. Αυτό σημαίνει ότι έχουμε μόνο ένα είδος συναλλαγής στοιχείων, την εισαγωγή. Έτσι, σε αυτά τα πειράματα δοκιμάστηκαν και αλγόριθμοι που βασίζονται στη διατήρηση μετρητών. Οι sketchbased αλγόριθμοι που χρησιμοποιήθηκαν για την σύγκριση με τον CGT είναι ο COUNTMIN και ο COUNTSKETCH, ενώ από την κατηγορία των counter-based αλγορίθμων επιλέχθηκαν ο SPACESAVING και ο LOSSYCOUNTING. Η επιλογή αυτών των αλγορίθμων ως αντιπάλων του CGT στα πειράματά μας, προήλθε λόγω των πολύ καλών επιδόσεων τους βάσει των μετρικών που μας ενδιέφεραν. Η μελέτη μας περιλαμβάνει αρχικά την αξιολόγηση των αλγορίθμων ως προς τη μεταβολή της παραμέτρου ϕ η οποία ρυθμίζει το κατώφλι που πρέπει να ξεπερνούν οι συχνότητες των στοιχείων για να θεωρούνται συχνά. Στη 37
49 5. Στατικές Ροές συνέχεια, εξετάζουμε τη συμπεριφορά των αλγορίθμων για σταθερό ϕ και διαφορετικά μεγέθη ροών δεδομένων. Όπως αναφέρθηκε και στην ενότητα 5.1 του παρόντος Κεφαλαίου, επιλέξαμε τρία είδη κατανομών για την παραγωγή ροών διαφορετικής συμμετρίας: την Uniform κατανομή στην οποία κάθε στοιχείο εμφανίζεται με την ίδια πιθανότητα, την Binomial κατανομή η οποία αποτελεί μια προσέγγιση της Gaussian στο διακριτό χώρο, και τέλος την Zipf στην οποία λίγα στοιχεία έχουν πολύ μεγάλη πιθανότητα εμφάνισης ενώ τα περισσότερα δεν εμφανίζονται συχνά Μεταβάλλοντας την παράμετρο κατωφλίωσης ϕ Με μεταβολή του ϕ από σε 0.01 παρατηρήσαμε αλλαγές στον ρυθμό ενημέρωσης όλων των αλγορίθμων, με κάποια ελάχιστη επιρροή από το είδος της κατανομής είσόδου. Σημαντικές μεταβολές στην απόδοση κάποιων αλγορίθμων έγιναν ως προς την ακρίβεια, όπου η μεταβολή του ϕ αλλά και του είδους της ροής επηρέαζαν το αποτέλεσμα. Αντίθετα, ο απαιτούμενος χώρος μνήμης για αποθήκευση των μετρητών/sketches, επηρεάστηκε μόνο για τον CGT και μόνο ως προς το ϕ. Τα αποτελέσματα αυτά απεικονίζονται στα σχήματα 5.1, 5.2 και 5.3. Συγκεκριμένα, σε ό,τι αφορά τον ρυθμό ενημέρωσης, ο CGT επηρεαζόταν από τη μεταβολή του ϕ μόνο στην περίπτωση που η ροή ακολουθούσε Uniform κατανομή. Στην περίπτωση αυτή, η ταχύτητα επεξεργασίας αυξανόταν όσο αυξανόταν και το ϕ, και για το διάστημα τιμών που χρησιμοποιήσαμε, άρχιζε από 1944 εισαγωγές/ms και έφτασε τις 4640 εισαγωγές/ms για ϕ = Δηλαδή, με άλλα λόγια, ο CGT γινόταν όλο και γρηγορότερος όσο μεγαλύτερο γινόταν το ποσοστό συχνών στοιχείων. Στις άλλες δύο κατανομές εισόδου, ο CGT μπορεί να μην παρουσίαζε άνοδο στον ρυθμό ενημέρωσής του, όμως ο ρυθμός ενημέρωσης που διατηρούνταν σταθερός ήταν μεγαλύτερος από την περίπτωση της Uniform εισόδου, και συγκεκριμένα ήταν λίγο μεγαλύτερος από τις 5000 εισαγωγές/ms για την Binomial κατανομή και λίγο μεγαλύτερος από τις 6000 εισαγωγές/ms για την Zipf. Σε σχέση με τους υπόλοιπους αλγόριθμους, ο CGT έδειξε ότι ήταν γρηγορότερος και από τους δύο sketch-based αντιπάλους τους για μη Uniform 38
50 5. Στατικές Ροές κατανομές, ενώ στην περίπτωση που τα στοιχεία δεν ακολουθούσαν Zipf κατανομή, κατάφερε να είναι γρηγορότερος και από τον LOSSYCOUNTING. Σχήμα 5.1: Μεταβολή του ϕ σε στατική ροή με Uniform κατανομή Σχήμα 5.2: Μεταβολή του ϕ σε στατική ροή με Binomial κατανομή Σχήμα 5.3: Μεταβολή του ϕ σε στατική ροή με Zipf κατανομή Μεγάλες μεταβολές παρατηρήθηκαν ως προς τον απαιτούμενο χώρο διατήρησης της sketch δομής του CGT. Η σχέση της παραμέτρους κατωφλίωσης και του sketch που διατηρεί ο CGT φαίνεται ότι είναι εκθετικά αποσβενούμενη. Έτσι, όσο πιο μικρό είναι το ϕ, τόσο περισσότερα θα είναι τα συχνά 39
51 5. Στατικές Ροές στοιχεία και επομένως, τόσο μεγαλύτερο το sketch του CGT. Η σχέση αυτή είναι εντελώς ανεξάρτητη της κατανομής εισόδου, γι αυτό και στα τρία διαγράμματα έχει ακριβώς την ίδια μορφή. Για ϕ = ο CGT δέσμευσε bytes MB το οποίο είναι δραματικά μεγαλύτερο επί του δεύτερου κατά σειρά σπατάλης χώρου αλγορίθμου COUNTSKETCH, ο οποίος δεσμεύει μόλις 1.5 MB για το sketch του σε αυτό το κατώφλι. Αντίστοιχα, για ϕ = 0.01 ο CGT δέσμευσε bytes 3.1 MB ενώ ο COUNTSKETCH μόλις 15.7 KB, γεγονός που επιβεβαιώνει πως σε ό,τι αφορά τον απαιτούμενο χώρο αποθήκευσης, ο CGT έχει την χειρότερη απόδοση απ όλους. Μπορεί τα αποτελέσματα στη σπατάλη χώρου να μοιάζουν ανησυχητικά, όμως οι επιδόσεις του CGT στην ακρίβεια είναι εξαιρετικές. Σε οποιαδήποτε τιμή της παραμέτρου κατωφλίωσης στο εύρος που δοκιμάσαμε, ο αλγόριθμος παρουσίασε ακρίβεια 100%. Σε κάθε περίπτωση δηλαδή, ο αλγόριθμος επέστρεφε ένα σύνολο στοιχείων τα οποία όλα ήταν συχνά. Αν συνδυαστεί αυτό με το γεγονός ότι και η ανάκληση του είναι έπισης άριστη (δεν φαίνεται στα πειράματά μας), τότε μπορούμε να κατανοήσουμε το κόστος σε χώρο που πληρώνουμε από την χρήση του. Ο μεγαλύτερος αντίπαλος του CGT σε αυτήν την κατηγορία δεν ανήκει στους sketch αλγορίθμους, αλλά είναι ο SPACESAVING ο οποίος διατηρεί μετρητές. Ο SS έπεσε μόνο μία φορά στο 90% στην Uniform κατανομή εισόδου. Σε όλες τις άλλες περιπτώσεις είχε κι αυτός ακρίβεια 100%. Ο τρίτος κατά σειρά αλγόριθμος με εξαιρετικές επιδόσεις στην ακρίβεια ήταν ο COUNTMIN, ο οποίος πέτυχε παντού 100% εκτός από την περίπτωση που η ροή ακολουθούσε Binomial κατανομή για ϕ = 0.01, όπου είχε 93.47% και στην περίπτωση για Uniform κατανομή όπου για μια τιμή του ϕ η ακρίβειά του έπεσε κατακόρυφα στο 5%. Αυτή η παράξενη συμπεριφορά παρατηρήθηκε και στους υπόλοιπους αλγόριθμους και συνέβη μόνο για Uniform ροές. Στις υπόλοιπες κατανομές, η συμπεριφορές των αλγορίθμων (εκτός του CGT) είχαν και πάλι διακυμάνσεις, όμως ήταν πολύ πιο ομαλές απ ότι στην Uniform είσοδο. 40
52 5. Στατικές Ροές Μεταβάλλοντας το μέγεθος της ροής Διατηρώντας την παράμετρο κατωφλίωσης σταθερή και ίση με 0.001, παράγαμε ροές διαφορετικού μεγέθους ξεκινώντας από στοιχεία και φτάνοντας σε ροές 10 εκατομμυρίων στοιχείων. Με αυτές τις τιμές, προσπαθήσαμε να εξετάσουμε αν οι αλγόριθμοι εξακολουθούσαν να έχουν την ίδια συμπεριφορά για διαφορετικού μεγέθους εισόδους. Η μόνη μετρική η οποία φάνηκε να επηρεάζεται από τις αλλαγές στο μέγεθος των ροών ήταν ο ρυθμός ενημέρωσης. Ο απαιτούμενος χώρος μνήμης και η ακρίβεια των αποτελεσμάτων δεν παρουσίασαν ιδιαίτερες αλλαγές με την μεταβολή του n. Τα διαγράμματα με τη μεταβολή του n παρουσιάζονται στα σχήματα 5.4, 5.5, 5.6. Σχετικά με τον ρυθμό ενημέρωσης, ο CGT παρουσίαζε μειωμένη ταχύτητα μόνο για το μικρότερο μέγεθος εισόδου, δηλαδή για n = , και αυτό στην Uniform και Zipf κατανομή. Στις υπόλοιπες περιπτώσεις η ταχύτητά του φάνηκε να μην εξαρτάται από το μέγεθος της ροής. Όπως είχαμε παρατηρήσει και στα πειράματα μεταβολής του ϕ, η ταχύτητά του είναι μεγαλύτερη όταν επεξεργάζεται Zipf κατανομές και συνήθως είναι πάνω από 6000 εισαγωγές/ms, ενώ οι χαμηλότερες ταχύτητες παρατηρούνται για Uniform κατανομές όπου συνήθως δεν ξεπερνούν τις 2500 εισαγωγές/ms. Για κάθε τιμή του n που δοκιμάσαμε, ο CGT ήταν ταχύτερος από τους sketch-based αντιπάλους τους, ενώ στις περιπτώσεις με Uniform ή Binomial κατανομές, ξεπερνούσε σε ταχύτητα και τον SPACESAVING. Ο χώρος που δέσμευε ο CGT ήταν σταθερός και ίσος με bytes MB και αυτό επειδή το ϕ ήταν ίσο με Η απαιτήσεις του αλγορίθμου σε χώρο, είναι ανάλογες μόνο του ϕ και όχι του μεγέθους της ροής. Αυτό ισχύει και για τους υπόλοιπους αλγόριθμους που δοκιμάσαμε, είτε αυτοί στηρίζονταν σε sketch είτε στη διατήρηση μετρητών. Έτσι, και σε αυτήν την περίπτωση ο CGT είχε πολύ μεγαλύτερες απαιτήσεις σε μνήμη από τους ανταγωνιστές του. Τέλος, η ακρίβεια του CGT παρέμενε στο 100% ανεξαρτήτως του μεγέθους της ροής δεδομένων, όπως επίσης και του είδους της κατανομής που αυτή ακολουθούσε. Βασικοί ανταγωνιστές του ήταν ο COUNTSKETCH και ο 41
53 5. Δυναμικές Ροές SPACESAVING οι οποίοι έδειξαν την ίδια σταθερότητα σε όλες τις τιμές του n. Σχήμα 5.4: Μεταβολή του n σε στατική ροή με Uniform κατανομή Σχήμα 5.5: Μεταβολή του n σε στατική ροή με Binomial κατανομή Σχήμα 5.6: Μεταβολή του n σε στατική ροή με Zipf κατανομή 5.3 Δυναμικές Ροές Στα πειράματα αυτής της ενότητας, χρησιμοποιήσαμε δυναμικές ροές ως είσοδο στους αλγόριθμους. Αυτό σημαίνει ότι εκτός από εισαγωγές στοι- 42
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις
Κατακερματισμός (Hashing)
Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση
HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems
HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη
Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας
Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας 1. Πως δομούνται οι ιεραρχικές μνήμες; Αναφέρετε τα διάφορα επίπεδά τους από τον επεξεργαστή μέχρι τη δευτερεύουσα
Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί
Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης
Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.
Αλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση
Αξιοποίηση της συσχέτισης μεταξύ λέξεων για τη βελτίωση του προσεγγιστικού φιλτραρίσματος πληροφορίας
Αξιοποίηση της συσχέτισης μεταξύ λέξεων για τη βελτίωση του προσεγγιστικού φιλτραρίσματος πληροφορίας Σε ένα σύστημα φιλτραρίσματος πληροφορίας, ή αλλιώς σύστημα έκδοσης/συνδρομής, οι χρήστες εγγράφονται
Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση
Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους
Προβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων
ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ Κεφάλαιο 10 : Κωδικοποίηση καναλιού Χρήστος Ξενάκης Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων Περιεχόμενα Ομιλίας Απόσταση και βάρος Hamming Τεχνικές και κώδικες ανίχνευσης &
Στατιστική Ι (ΨΥΧ-1202) ιάλεξη 3
(ΨΥΧ-1202) Λεωνίδας Α. Ζαμπετάκης Β.Sc., M.Env.Eng., M.Ind.Eng., D.Eng. Εmail: statisticsuoc@gmail.com ιαλέξεις: ftp://ftp.soc.uoc.gr/psycho/zampetakis/ ιάλεξη 3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΨΥΧΟΛΟΓΙΑΣ Ρέθυμνο,
Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας
Κρυπτογραφία Έλεγχος πρώτων αριθών-παραγοντοποίηση Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία
Κατανεμημένα Συστήματα Ι
Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη
Κεφάλαιο 11 Ένωση Ξένων Συνόλων
Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά
Εισαγωγή στην επιστήμη των υπολογιστών
Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα
Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής
Θεωρία Πληροφορίας Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα Διακριτή πηγή πληροφορίας χωρίς μνήμη Ποσότητα πληροφορίας της πηγής Κωδικοποίηση
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ Ακαδ. Έτος 08-09 Διδάσκων: Βασίλης ΚΟΥΤΡΑΣ Επικ. Καθηγητής v.koutras@fme.aegea.gr Τηλ: 7035468 Εκτίμηση Διαστήματος
Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η
Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017
Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα
Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016
Υπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams
ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς
12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο
ΓΕΝΙΚΑ ΠΕΡΙ ΑΝΙΣΩΣΕΩΝ Έστω f σύνολο Α, g Α ΒΑΘΜΟΥ είναι δύο παραστάσεις μιας μεταβλητής πού παίρνει τιμές στο Ανίσωση με έναν άγνωστο λέγεται κάθε σχέση της μορφής f f g g ή, η οποία αληθεύει για ορισμένες
ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων
Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας
Αντισταθμιστική ανάλυση
Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα
Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος
d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1
Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών
Διαχρονικές δομές δεδομένων
Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΤΑΤΙΣΤΙΚΗ Ακαδ. Έτος 06-07 Διδάσκων: Βασίλης ΚΟΥΤΡΑΣ Λέκτορας v.koutras@fme.aegea.gr Τηλ: 7035468 Εκτίμηση Διαστήματος
ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014
ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014 Περιεχόμενα 1 Εισαγωγή 2 2 Μεγιστικός τελέστης στην μπάλα 2 2.1 Βασικό θεώρημα........................ 2 2.2 Γενική περίπτωση μπάλας.................. 6 2.2.1 Στο
7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ
Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα
Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)
Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit Διανύσματα Τεχνικές Κατακερματισμού & Συναρτήσεις
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium iv
Σ ΤΑΤ Ι Σ Τ Ι Κ Η i Statisticum collegium iv Στατιστική Συμπερασματολογία Ι Σημειακές Εκτιμήσεις Διαστήματα Εμπιστοσύνης Στατιστική Συμπερασματολογία (Statistical Inference) Το πεδίο της Στατιστικής Συμπερασματολογία,
1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ
Δ.Π.Θ. - Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2017-2018 Τομέας Συστημάτων Παραγωγής Εξάμηνο A Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης 03 ΟΚΤ 2017 ΜΑΘΗΜΑ : ΕΙΣΑΓΩΓΗ ΣΤΗΝ
Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:
Ορολογία bit (binary digit): δυαδικό ψηφίο. Τα δυαδικά ψηφία είναι το 0 και το 1 1 byte = 8 bits word: η θεμελιώδης μονάδα σύμφωνα με την οποία εκπροσωπούνται οι πληροφορίες στον υπολογιστή. Αποτελείται
Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών
44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.
Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
Κατανεμημένα Συστήματα Ι
Κατανεμημένα Συστήματα Ι Συναίνεση και Σφάλματα Διεργασιών Παναγιώτα Παναγοπούλου Περίληψη Συναίνεση με σφάλματα διεργασιών Το πρόβλημα Ο αλγόριθμος FloodSet Επικύρωση δοσοληψιών Ορισμός του προβλήματος
Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο
Πρόβλημα ο Ασκήσεις Φροντιστηρίου 5 o Φροντιστήριο Δίνεται το παρακάτω σύνολο εκπαίδευσης: # Είσοδος Κατηγορία 0 0 0 Α 2 0 0 Α 0 Β 4 0 0 Α 5 0 Β 6 0 0 Α 7 0 Β 8 Β α) Στον παρακάτω κύβο τοποθετείστε τα
Δυναμικός Κατακερματισμός
Δυναμικός Κατακερματισμός Καλό για βάση δεδομένων που μεγαλώνει και συρρικνώνεται σε μέγεθος Επιτρέπει τη δυναμική τροποποίηση της συνάρτησης κατακερματισμού Επεκτάσιμος κατακερματισμός μια μορφή δυναμικού
Αλγόριθμοι Ταξινόμησης Μέρος 4
Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να
Αλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου
5η Δραστηριότητα. Λύσε το γρίφο Η Θεωρία της Πληροφορίας. Περίληψη. Λπν τ φνντ π τν πρτσ. Ικανότητες. Ηλικία. Υλικά
5η Δραστηριότητα Λύσε το γρίφο Η Θεωρία της Πληροφορίας Περίληψη Πόση πληροφορία περιέχεται σε ένα βιβλίο των 1000 σελίδων; Υπάρχει περισσότερη πληροφορία σε έναν τηλεφωνικό κατάλογο των 1000 σελίδων ή
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση
ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ
ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :
Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).
Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).
1η Σειρά Γραπτών Ασκήσεων
1/20 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 1η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 1 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 2 3 4 5 2/20
Διαχείριση Πολιτισμικών Δεδομένων
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και
Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή
Κεφάλαιο 13 Αντισταθμιστική Ανάλυση
Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251
Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος
Κατανεμημένα Συστήματα Ι
Συναίνεση με σφάλματα διεργασιών Κατανεμημένα Συστήματα Ι 5η Διάλεξη 10 Νοεμβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 5η Διάλεξη 1 Συναίνεση με σφάλματα διεργασιών Προηγούμενη διάλεξη
Τηλεπικοινωνιακά Συστήματα ΙΙ
Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 11: Κωδικοποίηση Πηγής Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα 1. Αλγόριθμοι κωδικοποίησης πηγής Αλγόριθμος Fano Αλγόριθμος Shannon Αλγόριθμος Huffman
Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation
Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7 Οι σημειώσεις που ακολουθούν περιγράφουν τις ασκήσεις που θα συναντήσετε στο κεφάλαιο 7. Η πιο συνηθισμένη και βασική άσκηση αναφέρεται στο IP Fragmentation,
ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ
ΤΕΧΝΙΚΕΣ ΕΡΕΥΝΑΣ (# 252) Ε ΕΞΑΜΗΝΟ 9 η ΕΙΣΗΓΗΣΗ ΣΗΜΕΙΩΣΕΙΣ ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ ΛΙΓΗ ΘΕΩΡΙΑ Στην προηγούμενη διάλεξη μάθαμε ότι υπάρχουν διάφορες μορφές έρευνας
Σχεδίαση και Ανάλυση Αλγορίθμων
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros
ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση
ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης
Προσεγγιστικοί Αλγόριθμοι
Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)
ILP-Feasibility conp
Διάλεξη 19: 23.12.2014 Θεωρία Γραμμικού Προγραμματισμού Γραφέας: Χαρίλαος Τζόβας Διδάσκων: Σταύρος Κολλιόπουλος 19.1 Θεωρία Πολυπλοκότητας και προβλήματα απόφασης Για να μιλήσουμε για προβλήματα και τον
Ψευδοκώδικας. November 7, 2011
Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε
Αριθμητική Ανάλυση και Εφαρμογές
Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Ολοκλήρωση Εισαγωγή Έστω ότι η f είναι μία φραγμένη συνάρτηση στο πεπερασμένο
Δομή Ηλεκτρονικού υπολογιστή
Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann
Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων
Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή
Πληροφορική 2. Αλγόριθμοι
Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται
Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος
Μορφές αποδείξεων Μαθηματικά Πληροφορικής ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.
Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.
Δομές Δεδομένων Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο Φυσικό Επίπεδο RAM Πίνακας 8 10 17 19 22 Ταξινομημένος Πίνακας 5 8 10 12 17 Δένδρο 8 5 10 12 19 17
Δομές Δεδομένων & Αλγόριθμοι
Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν
ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ
ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ 3.1 Τυχαίοι αριθμοί Στην προσομοίωση διακριτών γεγονότων γίνεται χρήση ακολουθίας τυχαίων αριθμών στις περιπτώσεις που απαιτείται η δημιουργία στοχαστικών
Κεφ.11: Ευρετήρια και Κατακερματισμός
Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση
I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr
I ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ i e ΜΕΡΟΣ Ι ΟΡΙΣΜΟΣ - ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ Α Ορισμός Ο ορισμός του συνόλου των Μιγαδικών αριθμών (C) βασίζεται στις εξής παραδοχές: Υπάρχει ένας αριθμός i για τον οποίο ισχύει i Το σύνολο
Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών
Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών Συμβολισμοί Σε αναλογία με τους ορισμούς συμβολίζουμε μια ακολουθία: 1 είτε μέσω του διανυσματικού ορισμού, παραθέτοντας αναγκαστικά
Β Γραφικές παραστάσεις - Πρώτο γράφημα Σχεδιάζοντας το μήκος της σανίδας συναρτήσει των φάσεων της σελήνης μπορείτε να δείτε αν υπάρχει κάποιος συσχετισμός μεταξύ των μεγεθών. Ο συνήθης τρόπος γραφικής
Μέρος Β /Στατιστική. Μέρος Β. Στατιστική. Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua.
Μέρος Β /Στατιστική Μέρος Β Στατιστική Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua.gr/gpapadopoulos) Από τις Πιθανότητες στη Στατιστική Στα προηγούμενα, στο
1 Εισαγωγή στις Συνδυαστικές Δημοπρασίες - Combinatorial Auctions
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015 Συμπληρωματικές σημειώσεις για τον μηχανισμό VCG 1 Εισαγωγή στις Συνδυαστικές
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας
Τυχαία μεταβλητή (τ.μ.)
Τυχαία μεταβλητή (τ.μ.) Τυχαία μεταβλητή (τ.μ.) είναι μια συνάρτηση X ( ) με πεδίο ορισμού το δειγματικό χώρο Ω του πειράματος και πεδίο τιμών ένα υποσύνολο πραγματικών αριθμών που συμβολίζουμε συνήθως
* * * ( ) mod p = (a p 1. 2 ) mod p.
Θεωρια Αριθμων Εαρινο Εξαμηνο 2016 17 Μέρος Α: Πρώτοι Αριθμοί Διάλεξη 1 Ενότητα 1. Διαιρετότητα: Διαιρετότητα, διαιρέτες, πολλαπλάσια, στοιχειώδεις ιδιότητες. Γραμμικοί Συνδυασμοί (ΓΣ). Ενότητα 2. Πρώτοι
Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ
ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η
Εθνικό Μετσόβιο Πολυτεχνείο
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία PROJECT Συνοπτική Παρουσίαση του Κβαντικού Αλγόριθμου Παραγοντοποίησης
Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών
Εισαγωγή Ορισμός Frequency moments
The space complexity of approximating the frequency moments Κωστόπουλος Δημήτριος Μπλα Advanced Data Structures June 2007 Εισαγωγή Ορισμός Frequency moments Έστω ακολουθία Α = {a 1,a 2,...,a m ) με κάθε
Θεώρημα Βolzano. Κατηγορία 1 η. 11.1 Δίνεται η συνάρτηση:
Κατηγορία η Θεώρημα Βolzano Τρόπος αντιμετώπισης:. Όταν μας ζητούν να εξετάσουμε αν ισχύει το θεώρημα Bolzano για μια συνάρτηση f σε ένα διάστημα [, ] τότε: Εξετάζουμε την συνέχεια της f στο [, ] (αν η
ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX
ΚΕΦΑΛΑΙΟ 3 ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX 3.1 Εισαγωγή Ο αλγόριθμος Simplex θεωρείται πλέον ως ένας κλασικός αλγόριθμος για την επίλυση γραμμικών προβλημάτων. Η πρακτική αποτελεσματικότητά του έχει
Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης
Δομές Δεδομένων και Αλγόριθμοι Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Στόχοι Μαθήματος Η σχεδίαση και ανάλυση αλγορίθμων και δομών δεδομένων αποτελεί σημαντικό τμήμα της πληροφορικής.
Κεφάλαιο 9. Έλεγχοι υποθέσεων
Κεφάλαιο 9 Έλεγχοι υποθέσεων 9.1 Εισαγωγή Όταν παίρνουμε ένα ή περισσότερα τυχαία δείγμα από κανονικούς πληθυσμούς έχουμε τη δυνατότητα να υπολογίζουμε στατιστικά, όπως μέσους όρους, δειγματικές διασπορές
4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.
4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό
Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ
Μαθηματικά Πληροφορικής 2ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.
ΛΥΜΕΝΕΣ ΕΦΑΡΜΟΓΕΣ ΣΤΟ 2 ο ΚΕΦΑΛΑΙΟ
ΛΥΜΕΝΕΣ ΕΦΑΡΜΟΓΕΣ ΣΤΟ 2 ο ΚΕΦΑΛΑΙΟ 1. Έστω συνάρτηση ζήτησης με τύπο Q = 200 4P. Να βρείτε: α) Την ελαστικότητα ως προς την τιμή όταν η τιμή αυξάνεται από 10 σε 12. 1ος τρόπος Αν P 0 10 τότε Q 0 200 410
Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής
Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική
Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης
Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους
Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ
1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός