Ερωτήματα κορυφογραμμής υποχώρων σε συστήματα ομότιμων κόμβων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Ερωτήματα κορυφογραμμής υποχώρων σε συστήματα ομότιμων κόμβων"

Transcript

1 Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Ερωτήματα κορυφογραμμής υποχώρων σε συστήματα ομότιμων κόμβων Πτυχιακή Εργασία Δημήτρης Σουραβλιάς Επιβλέπουσα καθηγήτρια: Ευαγγελία Πιτουρά Οκτώβριος 2008

2 Πρόλογος Η παρούσα εργασία εκπονήθηκε στα πλαίσια του προπτυχιακού προγράμματος σπουδών του Τμήματος Πληροφορικής του Πανεπιστημίου Ιωαννίνων. Θα ήθελα να απευθύνω τις θερμές μου ευχαριστίες στην επιβλέπουσα καθηγήτριά μου, Κυρία Ευαγγελία Πιτουρά, για την πολύτιμη βοήθειά της. Ιωάννινα, Οκτώβριος 2008 Δημήτρης Σουραβλιάς Περίληψη Θέμα της πτυχιακής εργασίας είναι ο αποδοτικός υπολογισμός ερωτημάτων κορυφογραμμής (skyline) υποχώρων σε συστήματα ομότιμων κόμβων, με χρήση δυαδικής (bitmap) αναπαράστασης των σημείων εισόδου. Αρχικά παρουσιάζουμε έναν αποδοτικό τρόπο υπολογισμού του συνόλου κορυφογραμμής με τη βοήθεια της δυαδικής αναπαράστασης των σημείων εισόδου σε κεντρικοποιημένο περιβάλλον. Στη συνέχεια, παρουσιάζουμε την επέκταση της προσέγγισης αυτής σε ένα σύστημα ομότιμων κόμβων (BitPeer). Εξετάζουμε το ρόλο της ύπαρξης ενδιάμεσης μνήμης για τον αποδοτικό υπολογισμό ερωτημάτων κορυφογραμμής. Τέλος, ασχολούμαστε με την απάντηση συνεχών ερωτημάτων κορυφογραμμής. 2

3 Περιεχόμενα ΚΕΦΑΛΑΙΟ 1: Εισαγωγή Αντικείμενο της εργασίας Σκοπός της εργασίας Διάρθρωση της εργασίας... 6 ΚΕΦΑΛΑΙΟ 2: Η έννοια της κορυφογραμμής Ορισμός κορυφογραμμής Βασικοί αλγόριθμοι υπολογισμού κορυφογραμμής Χωρίς επέκταση του συστήματος διαχείρισης βάσης δεδομένων Αλγόριθμος για σημεία δύο διαστάσεων Αλγόριθμος Block Nested Loops Αλγόριθμος διαίρει και βασίλευε Αλγόριθμος δυαδικής αναπαράστασης Δυαδική αναπαράσταση Βασικός αλγόριθμος Κορυφογραμμή υποχώρων Εκτεταμένη κορυφογραμμή Ορισμός εκτεταμένης κορυφογραμμής Ιδιότητες Αλγόριθμος δυαδικής αναπαράστασης για την εκτεταμένη κορυφογραμμή Βασικός αλγόριθμος Βελτιώσεις Χρήση κάδων Ανάθεση κάδων Λογαριθμική μείωση μεγέθους κάδων Εμφάνιση false negatives ΚΕΦΑΛΑΙΟ 3: BitPeer Περιγραφή του συστήματος

4 3.2 Υπολογισμός κορυφογραμμής υποχώρων σε συστήματα ομότιμων κόμβων Υπολογισμός και διαχείριση εκτεταμένης κορυφογραμμής Εισαγωγές και διαγραφές σημείων Δρομολόγηση και υπολογισμός ερωτήματος ΚΕΦΑΛΑΙΟ 4: Ενδιάμεση μνήμη Υπολογισμός ερωτημάτων με χρήση ενδιάμεσης μνήμης Δρομολόγηση Παράγοντες που επηρεάζουν την απόδοση της ενδιάμεσης μνήμης Απάντηση παρόμοιων ερωτημάτων κορυφογραμμής ΚΕΦΑΛΑΙΟ 5: Συνεχή ερωτήματα κορυφογραμμής υποχώρων Είδη συνεχών ερωτημάτων Ομαδοποίηση συνεχών ερωτημάτων κορυφογραμμής Ομαδοποίηση ερωτημάτων με βάση την ομοιότητα Ομαδοποίηση περιοδικών ερωτημάτων ΚΕΦΑΛΑΙΟ 6: Πειραματικά αποτελέσματα Μέγεθος συνόλου κορυφογραμμής και εκτεταμένης κορυφογραμμής Εκτίμηση απόδοσης κάδων Χρήση ενδιάμεσης μνήμης Συνεχή ερωτήματα κορυφογραμμής ΚΕΦΑΛΑΙΟ 7: Σχετικές εργασίες Skypeer Skycube Κορυφογραμμές πολλών υποχώρων ΚΕΦΑΛΑΙΟ 8: Συμπεράσματα και μελλοντικές επεκτάσεις Αναφορές

5 Κεφάλαιο 1 ο : Εισαγωγή 1.1 Αντικείμενο της εργασίας Οι σύγχρονες ανάγκες των χρηστών των μεγάλων πληροφοριακών συστημάτων για συλλογή, επεξεργασία και ανάλυση δεδομένων συνεχώς πληθαίνουν. Ο μέσος χρήστης επιθυμεί την εύκολη και γρήγορη επεξεργασία δεδομένων ανεξάρτητα από την πολύπλοκη δομή και τις πολλές διαστάσεις που μπορεί να έχουν. Η διαρκής απαίτηση του μέσου χρήστη για σύγκριση δεδομένων σε περισσότερες της μίας διάστασης, οδήγησε στην πρόταση για επέκταση των συστημάτων βάσεων δεδομένων με τον τελεστή κορυφογραμμής. Η κορυφογραμμή, ως έννοια, υπάρχει εδώ και αρκετά χρόνια. Μόλις πρόσφατα (το 2001), ωστόσο, έχει προταθεί η υλοποίηση του τελεστή κορυφογραμμής, ως επέκταση των συστημάτων βάσεων δεδομένων. Στις μέρες μας, τα συστήματα ομότιμων κόμβων αποτελούν συχνή επιλογή του μέσου χρήστη για την αναζήτηση και ανταλλαγή πληροφορίας. Η κατανομή δεδομένων σε περισσότερους του ενός κόμβους σε συνδυασμό με τις πολλές διαστάσεις που έχουν, δυσχεραίνει την αναζήτηση δεδομένων, σύμφωνα με τα γνωρίσματα που επιλέγει ο χρήστης. Η δυσκολία αυτή αποτελεί σημαντικό κίνητρο για την ανάπτυξη αποδοτικών μεθόδων για τον υπολογισμό του συνόλου κορυφογραμμής σε κατανεμημένα περιβάλλοντα, τόσο από πλευράς κόστους υπολογισμού, όσο και από πλευράς χρόνου ή ακόμη και επάρκειας χώρου αποθήκευσης ενδιάμεσων αποτελεσμάτων. 1.2 Σκοπός της εργασίας Σκοπός της πτυχιακής εργασίας είναι η παρουσίαση αποτελεσματικών μεθόδων και αλγοριθμικών τεχνικών για τον αποδοτικό υπολογισμό του συνόλου κορυφογραμμής αρχικά σε ένα κεντρικοποιημένο σύστημα και στη συνέχεια σε ένα αδόμητο σύστημα ομότιμων κόμβων. Η δυαδική αναπαράσταση των σημείων εισόδου στόχο έχει τον 5

6 απλό τρόπο υπολογισμού του συνόλου κορυφογραμμής, τη μείωση του απαραίτητου αποθηκευτικού χώρου και του μεγέθους των μηνυμάτων που ανταλλάσσονται στο δίκτυο. Επιπλέον, η ύπαρξη ενδιάμεσης μνήμης αποτελεί σημαντικό πλεονέκτημα για τη μείωση του υπολογιστικού κόστους και της συμφόρησης στο δίκτυο ομότιμων κόμβων, λόγω ανταλλαγής μηνυμάτων. Για το λόγο αυτό εξετάζεται η απόδοσή της τόσο για απλά (ad hoc), όσο και για συνεχή (continuous) ερωτήματα κορυφογραμμής. 1.3 Διάρθρωση της εργασίας Η εργασία είναι δομημένη ως εξής: Στο 2 ο κεφάλαιο εισάγεται η έννοια της κορυφογραμμής, παρουσιάζονται διάφοροι αλγόριθμοι υπολογισμού της κορυφογραμμής σε κεντρικοποιημένα συστήματα, εισάγεται η έννοια της κορυφογραμμής σε υποχώρους και της εκτεταμένης κορυφογραμμής, παρουσιάζεται o αλγόριθμος δυαδικής αναπαράστασης (bitmap) και εξετάζονται διάφορες τεχνικές χρήσης κάδων. Στο 3 ο κεφάλαιο αναλύουμε το σύστημα ομότιμων κόμβων που υλοποιήσαμε για τον υπολογισμό ερωτημάτων κορυφογραμμής υποχώρων, στο 4 ο εξετάζουμε το ρόλο της ενδιάμεσης μνήμης και στο 5 ο παρουσιάζουμε τα συνεχή ερωτήματα κορυφογραμμής. Τα πειραματικά αποτελέσματα βρίσκονται στο 6 ο κεφάλαιο, οι σχετικές εργασίες παρουσιάζονται στο 7 ο και τα συμπεράσματα και μελλοντικές επεκτάσεις στο 8 ο κεφάλαιο της εργασίας. Σημαντικά τμήματα του πηγαίου κώδικα που υλοποιήσαμε για τα πειράματα υπάρχουν στο Παράρτημα. 6

7 Κεφάλαιο 2 ο : Η έννοια της κορυφογραμμής Σε αυτό το κεφάλαιο αρχικά εισάγουμε την έννοια της κορυφογραμμής, αναλύουμε διάφορους αλγόριθμους υπολογισμού του συνόλου κορυφογραμμής, εισάγουμε την έννοια της κορυφογραμμής υποχώρων και της εκτεταμένης κορυφογραμμής, εξηγούμε αναλυτικά τον αλγόριθμο δυαδικής αναπαράστασης υπολογισμού του συνόλου κορυφογραμμής και εκτεταμένης κορυφογραμμής και αναφέρουμε τεχνικές χρήσης κάδων. 2.1 Ορισμός κορυφογραμμής Έστω D ένας χώρος που ορίζεται από ένα σύνολο k διαστάσεων {d 1, d 2,, d k }και S ένα σύνολο σημείων στο χώρο D. Η κορυφογραμμή του συνόλου S στο χώρο D είναι τα σημεία εκείνα που δεν κυριαρχούνται από κανένα άλλο σημείο του συνόλου S. Με άλλα λόγια στην κορυφογραμμή ανήκουν όλα τα σημεία που δεν είναι χειρότερα από κάθε άλλο σημείο του συνόλου σε μία τουλάχιστον διάσταση. Πιο αναλυτικά, η έννοια της κυριαρχίας σημείου από σημείο έχει ως εξής: Ένα σημείο p 1 κυριαρχείται από ένα άλλο σημείο p 2 αν και μόνο αν το σημείο p 2 είναι το ίδιο καλό σε όλες τις διαστάσεις με το σημείο p 1 και υπερέχει τουλάχιστον σε μία διάσταση. Το σύνολο των σημείων που δεν κυριαρχούνται από κανένα άλλο σημείο του αρχικού συνόλου S, καλούνται ενδιαφέροντα σημεία και ανήκουν στο σύνολο κορυφογραμμής. Υπάρχει η περίπτωση να μην υπάρχει η δυνατότητα σύγκρισης σημείων. Για παράδειγμα, έστω δύο σημεία p 1 και p 2, καθένα από τα οποία είναι καλύτερο από το άλλο σε τουλάχιστον μία διάσταση. Ονομάζουμε τα σημεία αυτά μη συγκρίσιμα. Σημειώνουμε δε ότι κάθε σημείο του συνόλου S που είναι μη συγκρίσιμο με κάθε άλλο σημείο του S ανήκει στην κορυφογραμμή του συνόλου S. Για την ευκολότερη κατανόηση της έννοιας της κορυφογραμμής ενός συνόλου παραθέτουμε το εξής παράδειγμα : 7

8 Έστω ότι θέλουμε να επιλέξουμε ένα πλοίο από ένα στόλο επιβατικών πλοίων για να ταξιδέψουμε σε κάποιο νησί του Αιγαίου. Θέλουμε να επιλέξουμε εκείνο το πλοίο που έχει το φθηνότερο εισιτήριο, έχει ναυπηγηθεί πιο πρόσφατα και με το οποίο αναμένεται να φθάσουμε στον προορισμό μας πιο γρήγορα (κινείται με μεγαλύτερη μέση ταχύτητα). Το σύστημα διαχείρισης βάσεων δεδομένων που περιλαμβάνει όλες τις ναυτιλιακές εταιρίες με τα χαρακτηριστικά των πλοίων τους είναι αδύνατον να μας ενημερώσει πιο είναι το καταλληλότερο πλοίο που ικανοποιεί τις ανάγκες μας. Ωστόσο μπορεί να μας ενημερώσει για ένα σύνολο πλοίων που μας ενδιαφέρουν. Πλοία, δηλαδή, που δεν είναι χειρότερα από κάθε άλλο πλοίο της βάσης δεδομένων στις τρεις διαστάσεις. Αυτό το σύνολο πλοίων ανήκει στην κορυφογραμμή του συνόλου δεδομένων. Με τη γνώση του συνόλου κορυφογραμμής και με βάση την απόφαση μας για το πόσο μας ενδιαφέρει η κάθε διάσταση καταλήγουμε στην τελική απόφαση για την επιλογή του πλοίου. Το Σχήμα 2.1 δείχνει τα πλοία που ανήκουν στην κορυφογραμμή όταν μας ενδιαφέρει η τιμή του εισιτηρίου και τα έτη που κάνουν δρομολόγια. Σχήμα 2.1 Τα πλοία που ανήκουν στην κορυφογραμμή ως προς την τιμή του εισιτηρίου και τα έτη που κάνουν δρομολόγια. 8

9 Η έννοια της κορυφογραμμής προτάθηκε ως τελεστής SQL σε ένα σύστημα διαχείρισης βάσης δεδομένων από τους [BoKS01]. Η σύνταξη έχει ως εξής : SELECT FROM WHERE GROUP BY HAVING SKYLINE OF [DISTINCT] d1[min MAX DIFF],...,dm [MIN MAX DIFF] ORDER BY όπου d 1,..., d m είναι οι διαστάσεις και MIN, MIN, DIFF αν θέλουμε να ελαχιστοποιήσουμε, μεγιστοποιήσουμε, ή διαφοροποιήσουμε το χαρακτηριστικό αντίστοιχα. Ο τελεστής κορυφογραμμής εκτελείται σύμφωνα με τη σειρά που σημειώνεται παραπάνω, δηλαδή έπειτα από τα SELECT FROM WHERE GROUP BY HAVING αλλά πριν από τελεστές όπως ORDER BY ή TOP N. Αν δύο πλειάδες έχουν την ίδια τιμή για όλα τα χαρακτηριστικά που αναφέρονται στο SKYLINE OF και επιπλέον δεν κυριαρχούνται από καμία άλλη πλειάδα τότε μπορούμε με τη χρήση του τελεστή DISTINCT να απορρίψουμε μία από τις δύο από το αποτέλεσμα μας. Το ποια από τις δύο θα απορριφθεί με χρήση του DISTINCT αποτελεί αυθαίρετη επιλογή. 2.2 Βασικοί αλγόριθμοι υπολογισμού κορυφογραμμής Χωρίς επέκταση του συστήματος διαχείρισης βάσης δεδομένων Αρχικά έγινε μια προσπάθεια υπολογισμού του συνόλου των σημείων που ανήκουν στην κορυφογραμμή χωρίς την υλοποίηση του τελεστή κορυφογραμμής. Για παράδειγμα έστω ότι θέλουμε να επιλέξουμε ένα πλοίο το οποίο έχει το φθηνότερο εισιτήριο, έχει ναυπηγηθεί πιο πρόσφατα και με το οποίο αναμένεται να φθάσουμε στον προορισμό μας πιο γρήγορα. Προορισμός μας είναι η Σέριφος. Χωρίς τη χρήση του τελεστή κορυφογραμμής η αντίστοιχη ερώτηση σε SQL θα είναι: 9

10 SELECT Name FROM Ships s WHERE S.harbor = SERIFOS AND NOT EXISTS( SELECT * FROM Ships s1 WHERE S1.harbor = SERIFOS AND s1.price <= s.price AND s1.year >= s.year AND s1.speed >= s.speed AND (s1.price < s.price OR s1.year > s.year OR s1.speed > s.speed)); H προσέγγιση αυτή για τον υπολογισμό του συνόλου κορυφογραμμής έχει πολύ κακή απόδοση, ως προς το χρόνο υπολογισμού. Για το λόγο αυτό προτείνεται η υλοποίηση του τελεστή κορυφογραμμής ως επέκταση των συστημάτων βάσεων δεδομένων. Οι αλγόριθμοι που ακολουθούν αφορούν αυτή ακριβώς την υλοποίηση Αλγόριθμος για σημεία δύο διαστάσεων Ο συγκεκριμένος αλγόριθμος αφορά τον υπολογισμό κορυφογραμμής για σημεία (πλειάδες) με δύο διαστάσεις. Ο αλγόριθμος βασίζεται στην ταξινόμηση των δεδομένων εισόδου. Η ταξινόμηση γίνεται ως εξής: Ταξινομούμε τις πλειάδες ως προς μία διάσταση και αν δύο ή περισσότερες πλειάδες έχουν την ίδια τιμή στη διάσταση αυτή, τότε για την ταξινόμηση βασιζόμαστε στις τιμές της άλλης διάστασης. Στη συνέχεια συγκρίνουμε την κάθε πλειάδα με την αμέσως προηγούμενη πλειάδα (τον προκάτοχό της) που ανήκει σίγουρα στην κορυφογραμμή. Αν μπορεί να γίνει η σύγκριση, τότε η πλειάδα που μόλις συγκρίναμε εξαλείφεται (elimination) και δεν ανήκει στην κορυφογραμμή. Αν η πλειάδα που συγκρίνουμε δεν μπορεί να συγκριθεί με τον προκάτοχό της, γιατί η καθεμία είναι καλύτερη από την άλλη σε μία ακριβώς διάσταση, τότε η πλειάδα ανήκει στην κορυφογραμμή. Για να γίνει πιο κατανοητός ο αλγόριθμος παραθέτουμε ένα παράδειγμα : Έστω ότι έχουμε τις πλειάδες του Σχήματος 2.2 ταξινομημένες ως προς τις 2 διαστάσεις : 10

11 (s1, 21.28, 2005) (s2, 24.50, 2004) (s3, 25.00, 2006) (s4, 25.00, 2005) (s5, 25.32, 2007) Σχήμα 2.2: Υπολογισμός κορυφογραμμής σημείων δύο διαστάσεων. Οι πλειάδες έχουν να κάνουν με 5 πλοία, την τιμή τους και το χρόνο ναυπήγησής τους. Ενδιαφέρουσες πλειάδες θεωρούμε αυτές που έχουν το φθηνότερο εισιτήριο και τον πιο πρόσφατο χρόνο ναυπήγησης. Αρχικά, το πλοίο με τη φθηνότερη τιμή εισιτηρίου (s1) ανήκει στην κορυφογραμμή. Συγκρίνουμε την πλειάδα s2 με τον προκάτοχό της, παρατηρούμε ότι είναι χειρότερη και στις δύο διαστάσεις, άρα δεν είναι μέρος της λύσης. Αξίζει να προσέξουμε την περίπτωση που η πλειάδα s3 συγκρίνεται με την πλειάδα s1 ( η πλειάδα s2 έχει εξαλειφθεί από την s1). Οι δύο πλειάδες είναι μη συγκρίσιμες, άρα η πλειάδα s3 αποτελεί μέρος της λύσης. Ο συγκεκριμένος αλγόριθμος δεν μπορεί να χρησιμοποιηθεί για περισσότερες των δύο διαστάσεων, καθώς η ταξινόμηση που περιγράψαμε πιο πάνω δε δουλεύει για περισσότερες των δύο διαστάσεων για τον υπολογισμό της κορυφογραμμής. Στη συνέχεια παρατίθενται οι βασικοί αλγόριθμοι που περιγράφονται από τους [BoKS01]. Οι αλγόριθμοι αυτοί έχουν ως στόχο την ελαχιστοποίηση χρήσης της κύριας μνήμης σε κεντρικοποιημένα συστήματα βάσεων δεδομένων. Προϋποθέτουν δε τη γνώση όλων των δεδομένων της βάσης και για το λόγο αυτό δεν είναι δυνατό να χρησιμοποιηθούν σε συστήματα ομότιμων κόμβων Αλγόριθμος Block-Nested-loops Η ιδέα του BNL αλγορίθμου είναι η εξής: Κάθε πλειάδα της εισόδου συγκρίνεται με όλες τις υπόλοιπες πλειάδες. Αυτό βέβαια μπορεί να υλοποιηθεί με έναν απλό (naive) αλγόριθμο, χρονικής πολυπλοκότητας O(n 2 ), όπου n o αριθμός των σημείων. Ωστόσο το υπερβολικό κόστος I/O ανάμεσα στη δευτερεύουσα μνήμη (π.χ. σκληρός δίσκος) και την κύρια μνήμη, με τον απλό αυτό αλγόριθμο, επιβάλλει μια πιο 11

12 αποδοτική λύση. Είναι δυνατόν να κρατούμε ένα σύνολο πλειάδων (παράθυρο) στην κύρια μνήμη. Κάθε πλειάδα της εισόδου θα συγκρίνεται με τις πλειάδες που βρίσκονται στο παράθυρο. Αν κάποια από τις πλειάδες που ανήκουν στο παράθυρο κυριαρχεί της πλειάδας που έχουμε ως είσοδο, τότε αυτή δεν ανήκει στη λύση και δε λαμβάνεται υπόψη σε επόμενες συγκρίσεις. Αν η πλειάδα κυριαρχεί μία ή περισσότερες πλειάδες εντός του παραθύρου, τότε αυτές διαγράφονται από το παράθυρο και εξαλείφονται από τη λύση. Ο BNL δεν τις λαμβάνει ξανά υπόψη του. Αν η πλειάδα δεν είναι δυνατόν να συγκριθεί με τις πλειάδες του παραθύρου τότε εισάγεται σε αυτό. Αν δεν υπάρχει χώρος, τότε η πλειάδα εισάγεται σε ένα προσωρινό αρχείο. Το αρχείο αυτό το επεξεργάζεται ο αλγόριθμος στην επόμενη επανάληψή του. Πρέπει να παρατηρήσουμε ότι η πλειάδα που έρχεται πρώτη ως είσοδος τοποθετείται στο αρχικά άδειο παράθυρο. Επιπλέον στο τέλος της κάθε επανάληψης του αλγορίθμου, κάποιες από τις πλειάδες που βρίσκονται στο παράθυρο, βρίσκονται σίγουρα στη λύση. Είναι οι πλειάδες που έχουν συγκριθεί και με τις πλειάδες του προσωρινού αρχείου. Στην επόμενη επανάληψη του αλγορίθμου η είσοδος προέρχεται από το προσωρινό αρχείο και μόνο. Συνοπτικά ο αλγόριθμος BNL χωρίζει την είσοδο σε 4 το πολύ ομάδες : 1 η ομάδα : πλειάδες που έχουν εξαλειφθεί από τη λύση 2 η ομάδα : πλειάδες που βρίσκονται στο παράθυρο 3 η ομάδα : πλειάδες που βρίσκονται στο προσωρινό αρχείο και αποτελούν την είσοδο στην επόμενη επανάληψη του αλγορίθμου. 4 η ομάδα : πλειάδες που ανήκουν στην κορυφογραμμή. Η ομάδα αυτή προκύπτει από τη 2 η ομάδα, διαγράφοντας από το παράθυρο τις πλειάδες εκείνες που έχουν συγκριθεί με όλες τις πλειάδες της εισόδου, στο τέλος της κάθε επανάληψης. Για να γίνει επιλογή των πλειάδων της 2 ης ομάδας που θα ανήκουν τελικά στη λύση (4 η ομάδα), θα πρέπει να γνωρίζουμε αν έχει γίνει η σύγκρισή τους με όλες τις πλειάδες. Μια έξυπνη στρατηγική είναι η χρήση χρονικών σφραγίδων (timestamps). H χρονική σφραγίδα είναι ένας μετρητής για κάθε πλειάδα που εισάγεται είτε στο παράθυρο, είτε στο προσωρινό αρχείο. Αν η χρονική σφραγίδα μιας πλειάδας που 12

13 βρίσκεται στο προσωρινό αρχείο είναι t 1, τότε οποιαδήποτε πλειάδα που ανήκει στο παράθυρο και έχει χρονική σφραγίδα μικρότερη από t 1 ανήκει στην κορυφογραμμή. Επιπλέον υπάρχουν 2 παραλλαγές του βασικού αλγορίθμου: Μπορούμε να οργανώσουμε το παράθυρο ως μια self-organizing λίστα. Με αυτό τον τρόπο πλειάδες που βρίσκονται στο παράθυρο και έχουν πολύ καλές τιμές ως προς τις διαστάσεις που μας ενδιαφέρουν, τοποθετούνται στην αρχή του παραθύρου για να εξαλείψουν γρηγορότερα πλειάδες από την αρχική είσοδο. Η 2 η παραλλαγή αφορά στην αντικατάσταση πλειάδων από το παράθυρο με πλειάδες που είναι πιο «ισχυρές». Οι πλειάδες αυτές είναι «ισχυρές» ως προς τη μεγιστοποίηση (ή ελαχιστοποίηση) των χαρακτηριστικών που μας ενδιαφέρουν (π.χ. πλοία με πολύ φθηνή τιμή εισιτηρίου και που έχουν ναυπηγηθεί πρόσφατα). Οι ισχυρές αυτές πλειάδες έχουν μεγαλύτερες πιθανότητες να εξαλείψουν πλειάδες της αρχικής εισόδου. Ο BNL αλγόριθμος έχει πολυπλοκότητα O(n) στην καλύτερη περίπτωση. Στη χειρότερη περίπτωση, όμως, ασυμπτωτικά έχει την ίδια πολυπλοκότητα με τον απλό (naive) αλγόριθμο. Η συμπεριφορά του, όμως, ως προς το I/O κόστος, είναι πολύ καλύτερη από τον απλό αλγόριθμο Αλγόριθμος διαίρει και βασίλευε Για τον υπολογισμό της κορυφογραμμής ενός συνόλου σημείων έχει προταθεί από τους [BoKS01] και ένας αλγόριθμος που βασίζεται στην τεχνική του «διαίρει και βασίλευε». Σημειώνουμε ότι η τεχνική αυτή, γενικά, αποτελείται από δύο στάδια. Το στάδιο της διαίρεσης (divide) και το στάδιο της συγχώνευσης (merge). Ο αλγόριθμος έχει ως εξής: Στο στάδιο της διαίρεσης, διαιρούμε την είσοδο σε δύο υποσύνολα με βάση τη μέση τιμή των τιμών κάποιας διάστασης. Στη συνέχεια εφαρμόζουμε αναδρομικά τον αλγόριθμο σε κάθε ένα από τα δύο υποσύνολα. Υποδιαιρούμε, δηλαδή, συνεχώς το αρχικό πρόβλημα, εφαρμόζοντας τον αλγόριθμο αναδρομικά. Η φάση της διαίρεσης τερματίζει όταν τα υποσύνολα περιέχουν ένα μικρό αριθμό σημείων, οπότε ο 13

14 υπολογισμός της κορυφογραμμής σε καθένα από αυτά είναι τετριμμένος. Θα πρέπει να σημειώσουμε ότι σε κάθε υποσύνολο που προκύπτει μπορούμε να εφαρμόσουμε οποιονδήποτε αλγόριθμο για τον υπολογισμό της κορυφογραμμής. Στη στάδιο της συγχώνευσης υπολογίζουμε τα σημεία που βρίσκονται στην κορυφογραμμή μεταξύ των ομάδων που διαιρέσαμε. Για να γίνει κατανοητός ο αλγόριθμος παραθέτουμε το εξής παράδειγμα: Έστω ότι θέλουμε να υπολογίσουμε τα σημεία που ανήκουν στην κορυφογραμμή ενός συνόλου σημείων S. Υποδιαιρούμε το S σε δύο υποσύνολα τα S 1 και S 2 με βάση τη μέση τιμή μιας διάστασης (m p ). Έστω ότι στο υποσύνολο S 1 υπάρχουν τα σημεία με τιμή καλύτερη ή ίση με τη μέση τιμή της διάστασης που υπολογίσαμε. Αντίστοιχα στο υποσύνολο S 2 υπάρχουν τα σημεία με χειρότερη τιμή. Κατά τη φάση της συγχώνευσης υπολογίζουμε τα σημεία που ανήκουν στην κορυφογραμμή συγχωνεύοντας τα υποσύνολα S 1 και S 2. Τα σημεία που ανήκουν στην κορυφογραμμή είναι όλα τα σημεία που ανήκουν στο S 1 και τα σημεία που ανήκουν στο S 2,, τα οποία δεν κυριαρχούνται από κάποιο σημείο του S 1. Σημεία τα οποία ανήκουν στο S 1 δεν είναι δυνατό να κυριαρχούνται από κάποιο σημείο του S 2 λόγω του τρόπου διαίρεσης του συνόλου S. Μια έξυπνη στρατηγική στο στάδιο της συγχώνευσης είναι η συγχώνευση με βάση τις μέσες τιμές διαφορετικών διαστάσεων. Θα μπορούσαμε δηλαδή να θεωρήσουμε τη μέση τιμή μιας διάστασης d g d p και να συγχωνεύσουμε 2 υποομάδες που προκύπτουν από τη διαίρεση του S 1 για παράδειγμα. Με άλλα λόγια, σε διαφορετικές συγχωνεύσεις είναι δυνατό να χρησιμοποιήσουμε μέσες τιμές διαφορετικών διαστάσεων. Επιπλέον έχουν προταθεί δύο παραλλαγές του βασικού αλγορίθμου: Υπάρχει περίπτωση η κύρια μνήμη να μην είναι αρκετή για να χωρέσει την αρχική είσοδο. Σε αυτή την περίπτωση, χωρίζουμε την είσοδο σε m υποσύνολα, έτσι ώστε καθένα από αυτά να χωράει στην κύρια μνήμη. Η τεχνική αυτή ονομάζεται m-way partitioning. Ένας άλλος τρόπος για να αντιμετωπίσουμε την έλλειψη κύριας μνήμης είναι να φορτώσουμε τη διαθέσιμη μνήμη με όσες πλειάδες της εισόδου χωράνε και να εφαρμόσουμε τον βασικό αλγόριθμο «Διαίρει και βασίλευε». Με αυτόν τον τρόπο εξαλείφουμε από τη λύση μας πλειάδες που δεν ανήκουν στην κορυφογραμμή σε ένα αρχικό στάδιο (early skyline). 14

15 Συνοψίζοντας, ο αλγόριθμος «διαίρει και βασίλευε» έχει καλύτερη απόδοση από τον BNL αλγόριθμο στη χείριστη περίπτωση. Η πολυπλοκότητά του είναι Ο (n * (logn) d-2 ) + O(n * logn) στην χειρότερη και την καλύτερη περίπτωση, όπου n το πλήθος των σημείων εισόδου και d ο αριθμός των διαστάσεων. Έτσι, κάτω από τις καλύτερες συνθήκες ο BNL αλγόριθμος είναι πιο αποδοτικός. 2.3 Αλγόριθμος δυαδικής αναπαράστασης (bitmap) Στη συνέχεια ακολουθεί ο αλγόριθμος που περιγράφεται από τους [TaEO01]. Ο αλγόριθμος αυτός βασίζεται σε μια «δυαδική» προσέγγιση. Αρχικά θα σκιαγραφήσουμε πώς γίνεται η αναπαράσταση των σημείων σε πίνακες από bits Δυαδική αναπαράσταση Έστω x ένα σημείο της εισόδου d διαστάσεων, δηλαδή x = (x 1, x 2, x 3,, x d ). Κάθε x i το αναπαριστούμε με k i bits. Οπότε m = d j=1k j. Άρα κάθε τιμή μιας διάστασης d i, x i την αναπαριστούμε με τόσα bits όσες και οι διαφορετικές τιμές που λαμβάνει η διάσταση d i. Επομένως αν έχουμε n διαστάσεις τότε θα έχουμε και n πίνακες. Ο κάθε πίνακας θα είναι διάστασης Ν x M, όπου Ν ο αριθμός των διαφορετικών τιμών x i για τη διάσταση d i που παρατηρείται στα σημεία εισόδου και Μ ο αριθμός των σημείων της εισόδου. Με απλά λόγια κάθε τιμή x i μιας διάστασης d i θα αναπαρίσταται με μια γραμμή ενός πίνακα από bits (με ένα διάνυσμα από bits, διάστασης m). Ο κάθε πίνακας κατασκευάζεται ως εξής: Έστω ότι μια διάσταση d i έχει τιμή q i. Για κάθε τιμή x i >q i της d i διάστασης θέτουμε στην αντίστοιχη θέση του πίνακα 0 (μηδέν), αλλιώς για κάθε x i <=q i θέτουμε 1 (ένα). Να σημειώσουμε ότι σε κάθε γραμμή του πίνακα έχουμε μια ιδιόμορφη bit ακολουθία με την έννοια ότι δεν είναι δυνατό να υπάρχει 0 πριν από το 1 όπως βλέπουμε τον πίνακα από δεξιά προς τα αριστερά. Αυτό οφείλεται στον τρόπο κατασκευής του πίνακα, με τον οποίο οι τιμές της κάθε διάστασης 15

16 αντιστοιχίζονται με φθίνουσα διάταξη στις στήλες του πίνακα από αριστερά προς τα δεξιά. Ο κάθε πίνακας αποθηκεύεται σε αρχείο κατά στήλες (slices). Για την πιο εύκολη κατανόηση της δυαδικής αναπαράστασης παραθέτουμε ένα παράδειγμα : Έστω τα 4 σημεία 3 διαστάσεων που φαίνονται στον Πίνακα 2.1. d 1 d 2 d Πίνακας 2.1: Τα σημεία εισόδου d 1 d 2 d Πίνακας 2.2: Η δυαδική αναπαράσταση των σημείων Βασικός αλγόριθμος H γενική ιδέα στην οποία στηρίζεται ο αλγόριθμος είναι η εξής: Για κάθε σημείο της εισόδου έχουμε: Από κάθε πίνακα παίρνουμε τις στήλες που αναφέρονται στην διαφορετική τιμή της κάθε διάστασης και εκτελούμε τη λογική πράξη AND. Έστω ότι το αποτέλεσμα το αποθηκεύουμε σε ένα πίνακα A. Η ιδιότητα που ισχύει είναι ότι το v-οστό bit είναι 1 αν και μόνο αν το ν- οστό σημείο έχει τιμή μεγαλύτερη ή ίση από την αντίστοιχη τιμή του σημείου που εξετάζουμε σε κάθε διάσταση. 16

17 Με άλλα λόγια, σε αυτό το βήμα, ανακαλύπτουμε σημεία της εισόδου που είναι τουλάχιστον το ίδιο ενδιαφέροντα με το σημείο που εξετάζουμε ως προς τις διαστάσεις που μας ενδιαφέρουν. Εξαλείφουμε, επομένως, από τη λύση σημεία που κυριαρχούνται από το σημείο που εξετάζουμε (bit 0 στην αντίστοιχη στήλη της κάθε διάστασης). Στη συνέχεια παίρνουμε τις στήλες που αναφέρονται στις αμέσως μεγαλύτερες τιμές από αυτές που έχει το σημείο μας στις n διατάσεις του. Εκτελούμε τη λογική πράξη OR με τις στήλες αυτές. Αν δεν υπάρχει στήλη με την παραπάνω ιδιότητα, δηλαδή το σημείο έχει σε μία διάσταση του τη μέγιστη τιμή που μπορεί να πάρουν τα σημεία της εισόδου σε αυτή τη διάσταση, θεωρούμε μια στήλη που αποτελείται από 0. Έστω ότι το αποτέλεσμα αποθηκεύεται σε έναν πίνακα Β. Η ιδιότητα που ισχύει είναι ότι το ν-οστό bit είναι 1 αν και μόνο αν το v-οστό σημείο έχει τουλάχιστον μία τιμή μεγαλύτερη σε κάποια διάσταση από το σημείο που εξετάζουμε. Εκτελούμε την λογική πράξη AND μεταξύ των πινάκων A και Β. Αν όλα τα bit του αποτελέσματος είναι 0, τότε το σημείο ανήκει στην κορυφογραμμή. Αν το v-οστό bit του αποτελέσματος είναι 1, τότε το σημείο δεν ανήκει στην κορυφογραμμή αλλά κυριαρχείται από το ν-οστό σημείο της εισόδου. Να σημειώσουμε ότι τα bit του αποτελέσματος, κοιτώντας τα από αριστερά προς τα δεξιά, τα αριθμούμε με 1, 2,... n. Δηλαδή το bit που βρίσκεται στην πιο αριστερή θέση είναι το 1 ο bit, αυτό που ακολουθεί το 2 ο κλπ. Στη συνέχεια ακολουθεί παράδειγμα εφαρμογής του αλγορίθμου. Έστω είσοδος του αλγορίθμου τα σημεία του πίνακα 2.1. Θα εξετάσουμε αν τα σημεία (4, 1, 3) και (2, 1, 1) ανήκουν στην κορυφογραμμή. Για το σημείο (4, 1, 3) έχουμε: Για την τιμή της κάθε διάστασης του σημείου εκτελούμε τη λογική πράξη AND μεταξύ των αντίστοιχων στηλών της δυαδικής αναπαράστασης, όπως φαίνεται στον Πίνακα

18 Για παράδειγμα για την τιμή της 1 ης διάστασης (την τιμή 4 δηλαδή), παίρνουμε τη στήλη (bitslice) του πίνακα d 1 που δεικτοδοτείται από την τιμή 4. Η στήλη αυτή είναι η Οπότε Α = (0100) AND (1111) AND (1100) ή Α = 0100 Για την αμέσως μεγαλύτερη τιμή της κάθε διάστασης του σημείου εκτελούμε τη λογική πράξη OR μεταξύ των αντίστοιχων στηλών της δυαδικής αναπαράστασης. Ενδεικτικά για την τιμή 4 της 1 ης διάστασης του σημείου θεωρούμε μια στήλη με μηδενικά, αφού το 4 είναι η μέγιστη τιμή που μπορεί να έχει η 1 η διάσταση των σημείων εισόδου. Οπότε Β = (0000) OR (1000) OR (0000) ή Β = 1000 Τέλος εκτελούμε τη λογική πράξη AND μεταξύ των Α και Β. Οπότε C = A AND B = (0100) AND (1000) ή C = 0000 Όλα τα bits του αποτελέσματος (πίνακας C) είναι μηδέν. Άρα το σημείο (4, 1, 3) ανήκει στην κορυφογραμμή. Έχουμε ανάλογα για το σημείο (2, 1, 1): 1 ο βήμα: Α = (0111) AND (1111) AND (1111) ή Α = ο βήμα: Β = (0110) OR (1000) OR (1110) ή Β = ο βήμα: C = A AND B = (0111) AND (1110) ή C = 0110 To σημείο (2, 1, 1) δεν ανήκει στην κορυφογραμμή, αφού υπάρχουν bits στον πίνακα C διάφορα του μηδενός. Το συγκεκριμένο σημείο κυριαρχείται από το 2 ο και 3 ο σημείο εισόδου (όπου υπάρχουν bits ίσα με 1 στον πίνακα C), αριθμώντας τα bits από αριστερά προς τα δεξιά. 2.4 Κορυφογραμμή υποχώρων Θεωρούμε ένα σύνολο σημείων S, τα οποία έχουν d διαστάσεις, με d D. Πιθανώς το ενδιαφέρον μας να εστιάζεται σε ένα υποσύνολο των διαστάσεων (χαρακτηριστικών) των σημείων. Έτσι εισάγεται η έννοια της κορυφογραμμής υποχώρων, του συνόλου, δηλαδή, των σημείων που ανήκουν στην κορυφογραμμή ως προς ένα υποσύνολο του συνόλου των d διαστάσεων που μας ενδιαφέρουν. Πιο συγκεκριμένα: 18

19 Έστω U ένα μη κενό υποσύνολο U του D. To σύνολο U D καλείται υπόχωρος του D. Έστω ακόμη p ένα σημείο d διαστάσεων, τέτοιο ώστε p S. Θεωρούμε p u την προβολή του σημείου p στο σύνολο U, δηλαδή p u είναι το σημείο (p(d i1 ), p(d i2 ), p(d i3 ),...p(d i u )), όπου d i1, d i2, d i3,...d i u U. Το σημείο p ανήκει στην κορυφογραμμή του υποχώρου U αν και μόνο αν το σημείο p u ανήκει στην κορυφογραμμή του U (SKY U (S)). Με άλλα λόγια p SKY U (S) αν και μόνο αν το σημείο p u δεν είναι χειρότερο σε τουλάχιστον μια διάσταση από κάθε σημείο q u U για όλα τα σημεία q S. ΘΕΩΡΗΜΑ: Έστω S ένα σύνολο δεδομένων που αποτελείται από σημεία D διαστάσεων. Έστω δύο υπόχωροι U D και V D του D έτσι ώστε U V. Στον υπόχωρο V, για κάθε σημείο q που ανήκει στην κορυφογραμμή του υπόχωρου U ισχύει ένα από τα παρακάτω: Το σημείο q κυριαρχείται από κάποιο σημείο p SKY U (S). Τo σημείο q ανήκει στο SKY V (S). Επομένως, το παραπάνω θεώρημα γενικά αναφέρει ότι για δύο υπόχωρους U και V του D με U V δεν υπάρχει σχέση υποσυνόλου μεταξύ των σημείων που ανήκουν στο σύνολο κορυφογραμμής κάθε υποχώρου. ΠΟΡΙΣΜΑ: Έστω S ένα σύνολο δεδομένων που αποτελείται από σημεία d διαστάσεων. Για οποιαδήποτε δύο σημεία p και q, με p(d i ) q(d i ), d i D, και για οποιουσδήποτε δύο υποχώρους U D και V D του D με U V ισχύει SKY U (S) SKY V (S). Άρα με τον περιορισμό ότι p(d i ) q(d i ), d i D και p,q S υπάρχει σχέση υποσυνόλου μεταξύ των συνόλων κορυφογραμμής διαφορετικών υποχώρων. 19

20 2.5 Εκτεταμένη κορυφογραμμή Η προσπάθεια αποδοτικού υπολογισμού ερωτημάτων κορυφογραμμής σε υποχώρους και η αποτροπή εμφάνισης false negatives οδήγησε στην εισαγωγή της έννοιας της εκτεταμένης κορυφογραμμής Ορισμός εκτεταμένης κορυφογραμμής Έστω S ένα σύνολο σημείων d διαστάσεων με d U και U D. Θεωρούμε δύο σημεία p, q τέτοια ώστε p, q S. Το σημείο q ext-κυριαρχείται από το σημείο p στον υπόχωρο U αν και μόνο αν p(d i ) > q(d i ), για κάθε d i U. Με απλά λόγια, αν δύο σημεία p, q ανήκουν στην εκτεταμένη κορυφογραμμή ισχύει ένα από τα παρακάτω: Τα σημεία είναι μη συγκρίσιμα. (Το p δεν κυριαρχείται από το q και το q δεν κυριαρχείται από το p). (1) Έχουν την ίδια τιμή σε τουλάχιστον μία διάσταση. (2) Το (2) είναι ο λόγος που το σύνολο εκτεταμένης κορυφογραμμής αποτελεί υπερσύνολο του συνόλου κορυφογραμμής. Συμπερασματικά, η έννοια της ext-κυριαρχίας εμπεριέχει την έννοια της κυριαρχίας σημείου σε σημείο όπως περιγράφτηκε στον ορισμό της κορυφογραμμής (παράγραφος 2.1), αν θεωρήσουμε ότι δεν υπάρχει ισότητα μεταξύ των τιμών των διαστάσεων μεταξύ των σημείων που ανήκουν και που δεν ανήκουν στην εκτεταμένη κορυφογραμμή Ιδιότητες ΙΔΙΟΤΗΤΑ 1: Κάθε σημείο που ανήκει στην κορυφογραμμή του υποχώρου U, με U D, ανήκει και στην εκτεταμένη κορυφογραμμή του υποχώρου U. Δηλαδή, SKY U ext-sky U. 20

21 ΙΔΙΟΤΗΤΑ 2: Κάθε σημείο που ανήκει στην κορυφογραμμή ενός υποχώρου V του U (V U), ανήκει και στο εκτεταμένη κορυφογραμμή του υποχώρου U. Δηλαδή, SKY V ext-sky U. Επομένως, σύμφωνα με τη 2 η ιδιότητα αρκεί να υπολογίσουμε την εκτεταμένη κορυφογραμμή όλων των διαστάσεων για να υπολογίσουμε την κορυφογραμμή οποιουδήποτε υποχώρου. ΙΔΙΟΤΗΤΑ 3: Έστω ένα σύνολο σημείων S στο χώρο διαστάσεων D και έστω σύνολα U και V τέτοια ώστε V D και V U. Ισχύει ότι ext-sky v (S) ext-sky u (S). 2.6 Αλγόριθμος δυαδικής αναπαράστασης για την εκτεταμένη κορυφογραμμή Στην παράγραφο 2.3 περιγράφθηκε ένας αλγόριθμος δυαδικής αναπαράστασης για τον υπολογισμό της κορυφογραμμής ενός συνόλου σημείων. Εδώ θα περιγράψουμε μια παραλλαγή του αλγόριθμου αυτού για τον υπολογισμό των σημείων που ανήκουν στην εκτεταμένη κορυφογραμμή Βασικός Αλγόριθμος Ο αλγόριθμος έχει ως εξής: Για κάθε σημείο p της εισόδου παίρνουμε τις στήλες που αντιστοιχούν στις αμέσως μεγαλύτερες τιμές που έχει το σημείο στην κάθε διάσταση και εκτελούμε τη λογική πράξη AND. Αν το σημείο p έχει σε κάποια διάσταση τη μέγιστη τιμή που μπορεί να έχει ένα σημείο της εισόδου για τη διάσταση αυτή, τότε παίρνουμε μια στήλη με μηδενικά. Το αποτέλεσμα αποθηκεύεται σε έναν πίνακα C. Το σημείο p ανήκει στην 21

22 εκτεταμένη κορυφογραμμή, αν όλα τα στοιχεία του πίνακα C είναι ίσα με το μηδέν. Αντίθετα, αν υπάρχει άσσος στη n-οστή θέση του πίνακα C, τότε το σημείο p extκυριαρχείται από το n-οστό σημείο της εισόδου. Με άλλα λόγια, το n-οστό bit του πίνακα C είναι 1, αν το n-οστό σημείο της εισόδου είναι καλύτερο από το σημείο p σε όλες τις διαστάσεις. Για κατανόηση του αλγορίθμου παραθέτουμε ένα παράδειγμα: Έστω τα σημεία του Πίνακα 2.1 και η δυαδική αναπαράσταση τους (Πίνακας 2.2). d 1 d 2 d Πίνακας 2.1: Τα σημεία της εισόδου d 1 d 2 d Πίνακας 2.2: Η δυαδική αναπαράσταση των σημείων Θα ελέγξουμε αν το σημείο (2, 1, 1) ανήκει στην εκτεταμένη κορυφογραμμή. Στην παράγραφο δείξαμε ότι το σημείο αυτό δεν ανήκει στην κορυφογραμμή. Παίρνουμε τις στήλες που αναφέρονται στις αμέσως μεγαλύτερες τιμές του σημείου και εκτελούμε την πράξη AND. Έχουμε: C = (0110) AND (1000) AND (1110) ή C = 0000 Ο πίνακας C είναι μηδενικός. Επομένως το σημείο (2, 1, 1) δεν ext-κυριαρχείται. Άρα ανήκει στην εκτεταμένη κορυφογραμμή. 22

23 2.6.2 Βελτιώσεις Στη συνέχεια παρουσιάζουμε έναν αποδοτικό τρόπο για τη γρηγορότερη εύρεση σημείων που ανήκουν ή δεν ανήκουν στην εκτεταμένη κορυφογραμμή με τη βοήθεια της δυαδικής αναπαράστασης. Έστω πως γνωρίζουμε ότι το σημείο p ανήκει στην εκτεταμένη κορυφογραμμή. Ισχύει ένα από τα παρακάτω: Τα σημεία που έχουν μεγαλύτερη τιμή από τις τιμή του σημείου p σε τουλάχιστον μία διάσταση ανήκουν στην εκτεταμένη κορυφογραμμή. Τα σημεία αυτά τα ονομάζουμε definitely extended skyline (DSK) σημεία. Τα σημεία που έχουν χειρότερη τιμή από την τιμή του σημείου p σε όλες τις διαστάσεις δεν ανήκουν στην εκτεταμένη κορυφογραμμή. Ονομάζουμε τα σημεία αυτά definitely not extended skyline (DNSK) σημεία. Για να υπολογίσουμε γρήγορα κάποια σημεία που ανήκουν στο εκτεταμένη κορυφογραμμή παίρνουμε τις στήλες που αντιστοιχούν στις αμέσως μεγαλύτερες τιμές του σημείου p (το οποίο θεωρήσαμε ότι ανήκει στην εκτεταμένη κορυφογραμμή) και εκτελούμε τη λογική πράξη OR. Το αποτέλεσμα το αποθηκεύουμε σε έναν πίνακα D. Το n-οστό στοιχείο του πίνακα D είναι 1 αν και μόνο αν το n-οστό σημείο της εισόδου δεν είναι χειρότερο από το σημείο p σε τουλάχιστον μία διάσταση (DSK test). Προσθέτουμε τα σημεία με την ιδιότητα αυτή στην εκτεταμένη κορυφογραμμή. Για τη γρηγορότερη εξάλειψη σημείων που δεν ανήκουν στην εκτεταμένη κορυφογραμμή παίρνουμε τις στήλες που αντιστοιχούν στις τιμές του σημείου p και εκτελούμε τη λογική πράξη OR. Το αποτέλεσμα αποθηκεύεται σε έναν πίνακα E. Η ιδιότητα που ισχύει είναι η εξής: Το n-οστό στοιχείο του πίνακα Ε είναι 0 αν και μόνο αν το n-οστό σημείο της εισόδου είναι χειρότερο από το σημείο p σε όλες τις διαστάσεις (DNSK test). Εξαλείφουμε τα σημεία με την ιδιότητα αυτή από την εκτεταμένη κορυφογραμμή. Η αποτελεσματικότητα των παραπάνω μεθόδων εξαρτάται από την επιλογή του σημείου p. Γενικά, επιλέγουμε σημείο που είναι πολύ καλύτερο από όλα τα άλλα σημεία της εισόδου σε τουλάχιστον μία διάσταση. Ένας τρόπος για να γίνει αυτό 23

24 είναι αρχικά η επιλογή μιας διάστασης και στη συνέχεια η επιλογή του σημείου εκείνου που έχει τιμή 1 στην πιο αριστερή στήλη της διάστασης αυτής. Ένας γρήγορος υπολογισμός μερικών σημείων που ανήκουν στην εκτεταμένη κορυφογραμμή, χρησιμοποιώντας μια παραλλαγή των παραπάνω μεθόδων, γίνεται ως εξής: 1. Επιλέγουμε τις στήλες που αντιστοιχούν στην μεγαλύτερη τιμή της κάθε διάστασης. 2. Ελέγχουμε ποια σημεία έχουν τιμή 1 στις στήλες αυτές. Τα σημεία αυτά ανήκουν στην εκτεταμένη κορυφογραμμή καθώς έχουν τη μεγαλύτερη τιμή σε κάποια διάσταση. 3. Από αυτά τα σημεία επιλέγουμε εκείνο που έχουν τα περισσότερα 1. Το σημείο αυτό είναι το σημείο p για τον υπολογισμό των DSK και DNSK σημείων. 2.7 Χρήση κάδων Ανάθεση κάδων Υπάρχει περίπτωση να έχουμε το πεδίο ορισμού της κάθε διάστασης να είναι συνεχές. Τότε, οι διαστάσεις μπορεί να πάρουν άπειρο πλήθος τιμών και επομένως να χάσουμε την καλή ιδιότητα της δυαδικής αναπαράστασης που είναι το μικρό μέγεθός της. Μια στρατηγική είναι να χωρίσουμε το διάστημα τιμών της κάθε διάστασης σε έναν αριθμό από κάδους. Σε κάθε κάδο αντιστοιχεί ένα εύρος τιμών, υποσύνολο του πεδίου ορισμού της διάστασης. Οι τιμές που αντιστοιχούνται σε έναν κάδο θεωρούμε ότι είναι ίσες. Η δυσκολία της στρατηγικής αυτής, ωστόσο, είναι να αποφασίσουμε ποιο θα είναι το μέγεθος του κάθε κάδου. Πώς, δηλαδή, θα χωρίσουμε αποδοτικά το πεδίο ορισμού της κάθε διάστασης και κατ επέκταση ποιο θα είναι το πλήθος των κάδων που θα «δώσουμε» στην κάθε διάσταση. Αν μειώσουμε υπερβολικά το μέγεθος των κάδων, τότε θα αυξηθεί το μέγεθος της δυαδικής αναπαράστασης. Από την άλλη πλευρά, αν 24

25 αυξήσουμε υπερβολικά το μέγεθος των κάδων, τότε θα χάσουμε σημαντικά σε ακρίβεια ως προς την εύρεση σημείων που ανήκουν στην κορυφογραμμή Μια προσέγγιση είναι να έχουμε μικρό πλήθος από κάδους αλλά να μην έχουν ίδιο μέγεθος. Πιο συγκεκριμένα αν ενδιαφερόμαστε για το ΜΙΝ στον υπολογισμό της κορυφογραμμής τότε μπορούμε να «δώσουμε» περισσότερους κάδους στις μικρότερες και πιο λίγους στις μεγαλύτερες τιμές. Για παράδειγμα, αν έχουμε ένα διάστημα τιμών (0,10) και 20 κάδους τότε μπορούμε να έχουμε 10 κάδους στο διάστημα (0,2) και τους υπόλοιπους 10 στο (2,10). Αυτή η τεχνική ονομάζεται «adaptive bucket allocation» ή «heuristic buckets» Λογαριθμική μείωση μεγέθους κάδων Μια διαφορετική τεχνική είναι να κατανέμουμε τους κάδους ακολουθώντας τη λογαριθμική κατανομή. Δηλαδή το μέγεθος των κάδων να μειώνεται λογαριθμικά όσο πάμε από τις μικρότερες στις μεγαλύτερες τιμές μιας διάστασης ή το αντίθετο. Πιο συγκεκριμένα, αν ενδιαφερόμαστε για το MAX στον υπολογισμό της κορυφογραμμής, τότε μπορούμε να μειώνουμε λογαριθμικά το μέγεθος του κάθε κάδου καθώς πηγαίνουμε από τις μικρότερες στις μεγαλύτερες τιμές των διαστάσεων. Αυτό που θέλουμε να πετύχουμε είναι ουσιαστικά μια ομαλή μείωση του μεγέθους των κάδων, έτσι ώστε να εξετάσουμε πώς μεταβάλλεται το πλήθος των σημείων που ανήκουν στην κορυφογραμμή για independent, correlated και anti-correlated βάσεις δεδομένων. Όσον αφορά την υλοποίηση, αρχικά θεωρούμε ένα πεδίο ορισμού για τις διαστάσεις και έστω Ν το πλήθος των κάδων. Στη συνέχεια, αρχίζοντας από το πεδίο ορισμού των διαστάσεων, μειώνουμε το μέγεθος του λογαριθμικά. Επομένως, ο 1 ος κάδος έχει μέγεθος ίσο με το δυαδικό λογάριθμο του μήκους του αρχικού πεδίου ορισμού. Ο 2 ος κάδος θα έχει μέγεθος ίσο με το δυαδικό λογάριθμο του μήκους μεγέθους του 1 ου κάδου κ.ο.κ. Η λογαριθμική μείωση γίνεται μέχρις ότου εξαντληθεί το πλήθος Ν των κάδων. Αν το συνολικό μέγεθος που καλύπτουν όλοι οι κάδοι είναι μικρότερο του αρχικού διαστήματος (δηλ. του πεδίου ορισμού) μένει ένα υποδιάστημα που δεν καλύπτεται. Το διάστημα αυτό το κατανέμουμε εξίσου στους Ν/2 πρώτους κάδους. 25

26 Όπως γνωρίζουμε, το μέγεθος ενός διαστήματος είναι ένας θετικός ακέραιος αριθμός. Εφαρμόζοντας τη δυαδική λογαριθμική συνάρτηση όπως περιγράψαμε πιο πάνω υπάρχει η περίπτωση το μέγεθος κάποιου κάδου να έχει αρνητική ή μηδενική τιμή. Αυτό μπορεί να συμβεί στην περίπτωση που το μέγεθος κάποιου κάδου γίνει μικρότερο ή ίσο της μονάδας. Συνεπώς, το μέγεθος του αμέσως επόμενου κάδου θα είναι ίσο με την τιμή του δυαδικού λογάριθμου κάποιου αριθμού το πολύ ίσου με τη μονάδα, άρα το μέγεθός του θα έχει μηδενική ή αρνητική τιμή. Αυτό που κάνουμε όταν συμβαίνει αυτό, είναι να μειώνουμε το μέγεθος του επόμενου κάδου κατά το ήμισυ σε σχέση με το μέγεθος του προηγούμενου κάδου και όχι λογαριθμικά. Η γραμμική και όχι λογαριθμική αυτή μείωση δεν μας απομακρύνει από το στόχο μας, που είναι η ομαλή μείωση του μεγέθους των κάδων από τις μικρότερες στις μεγαλύτερες τιμές του πεδίου ορισμού Εμφάνιση false negatives Ο καθορισμός του μεγέθους των κάδων που θα ανατεθούν στις διαστάσεις έχει επιπτώσεις στην ακρίβεια της εύρεσης των σημείων που ανήκουν στην κορυφογραμμή. Όταν το μέγεθος των κάδων είναι μεγάλο τότε μπορεί να εμφανιστούν false negatives, σημεία, δηλαδή, που ανήκουν στην κορυφογραμμή, αλλά που τελικά ο αλγόριθμος δυαδικής αναπαράστασης υπολογισμού της κορυφογραμμής τα εξαλείφει από τη λύση. Για παράδειγμα, έστω ότι έχουμε 2 διαστάσεων σημεία με τιμές σε κάθε διάσταση στο (0,10) και έστω ότι έχουμε 10 κάδους ανά διάσταση. Η τιμή της διάστασης ενός σημείου ανήκει στον κάδο k, όπου 0 k 9, αν και μόνο αν ανήκει στο διάστημα (k, k + 1). Ας θεωρήσουμε τα σημεία (5.77, 3.24) και (5.87, 1.32). Παρατηρούμε ότι είναι μη συγκρίσιμα (κανένα δεν κυριαρχεί το άλλο) επομένως ανήκουν και τα δύο στην κορυφογραμμή. Ωστόσο με τη χρήση κάδων, τα σημεία αναπαρίστανται ως (5,3) και (5,1), οπότε παρατηρούμε ότι το 2 ο σημείο κυριαρχείται από το 1 ο. Επομένως, το σημείο (5,1) δεν εμφανίζεται στη λύση. Το πρόβλημα παρατηρείται στις τιμές της 1 ης διάστασης των σημείων, όπου το 2 ο είναι ελάχιστα καλύτερο από το 1 ο. Ωστόσο και οι δύο τιμές 26

27 αντιστοιχίζονται στον ίδιο κάδο. Επομένως, η εμφάνιση των false negatives αποτελεί άμεση συνέπεια της ανάθεσης μη αποδοτικού πλήθους κάδων. Το πρόβλημα της εμφάνισης των false negatives αντιμετωπίζεται με την εύρεση των σημείων που ανήκουν στην εκτεταμένη κορυφογραμμή. Στην εκτεταμένη κορυφογραμμή ανήκουν τα σημεία που είναι καλύτερα ή ίσα σε μια τουλάχιστον διάσταση με τα σημεία εισόδου. Επομένως τα σημεία που ανήκουν στην εκτεταμένη κορυφογραμμή είναι ένα υπερσύνολο των σημείων που ανήκουν στην κορυφογραμμή. Έχουμε έτσι την εμφάνιση false positives, αφού υπάρχουν σημεία που ανήκουν στην εκτεταμένη κορυφογραμμή αλλά όχι στην κορυφογραμμή του συνόλου δεδομένων. Συμπερασματικά, η εμφάνιση false positives είναι προτιμότερη από την εμφάνιση false negatives καθώς είναι εφικτό να αποκλείσουμε από την τελική μας λύση σε κάποιο επόμενο στάδιο τα σημεία που ανήκουν στην εκτεταμένη κορυφογραμμή, αλλά όχι στην κορυφογραμμή. Με την εμφάνιση false negatives είναι αδύνατο να ανακαλύψουμε τα σημεία εκείνα που ανήκουν στην κορυφογραμμή, αλλά έχουν εξαλειφθεί από τη λύση στο αρχικό στάδιο της αντιστοίχισης των τιμών της κάθε διάστασης σε κάδους. 27

28 Κεφάλαιο 3 ο : BitPeer Το κεφάλαιο αυτό εστιάζει στον κατανεμημένο υπολογισμό των ερωτήσεων κορυφογραμμής υποχώρων. Το σύστημα που υλοποιήσαμε περιγράφεται στο [FoPi08] και αναφέρεται στον αποδοτικό υπολογισμό ερωτημάτων κορυφογραμμής σε υποχώρους με χρήση της δυαδικής αναπαράστασης σε συστήματα ομότιμων κόμβων. 3.1 Περιγραφή του συστήματος Θεωρούμε ότι το σύνολο των δεδομένων είναι κατανεμημένο σε έναν αριθμό Ν από κόμβους. Συγκεκριμένα, έστω ότι κάθε κόμβος P i, 1 i N, έχει αποθηκευμένο τοπικά ένα σύνολο S i σημείων με διαστάσεις που ανήκουν στο χώρο D. Το σύνολο δεδομένων S του συστήματος αποτελείται από την ένωση των συνόλων δεδομένων των κόμβων (S = i S i ). Κάθε κόμβος P i μπορεί να υποβάλλει ερωτήματα κορυφογραμμής υποχώρων στο σύστημα. Στόχος μας είναι να υπολογίσουμε τα ερωτήματα κορυφογραμμής που υποβάλλονται στο σύστημα σε οποιοδήποτε υπόχωρo U του D (U D) πάνω στο σύνολο S των δεδομένων. Δεν υποθέτουμε κάποια συγκεκριμένη τοπολογία για τους κόμβους. Επίσης, η τοποθέτηση των δεδομένων σε κάθε κόμβο είναι τυχαία. Ένα τέτοιο σύστημα μπορεί να χαρακτηριστεί ως ένα αδόμητο σύστημα ομότιμων κόμβων. Σε ένα αδόμητο σύστημα ομότιμων κόμβων, ο κάθε κόμβος συνδέεται με έναν μικρό αριθμό άλλων κόμβων. Επομένως, ο κάθε κόμβος γνωρίζει μόνο για τους κόμβους με τους οποίους συνδέεται και δεν έχει πληροφορίες για όλο το δίκτυο ομότιμων κόμβων. Κάποιοι από τους κόμβους του συστήματος, που χαρακτηρίζονται για τη σταθερότητά τους και την επάρκειά τους σε υπολογιστικούς επικοινωνιακούς και αποθηκευτικούς πόρους, αναλαμβάνουν επιπλέον ρόλους και καλούνται υπερκόμβοι. Όλοι οι άλλοι κόμβοι του συστήματος καλούνται απλοί κόμβοι. Κάθε απλός κόμβος, γενικά, μπορεί να ανατεθεί σε έναν ή περισσότερους υπερκόμβους. Στο σύστημα που υλοποιούμε, ωστόσο, κάθε απλός κόμβος ανατίθεται σε έναν και μόνο υπερκόμβο ο οποίος είναι υπεύθυνος για τη λειτουργία του. 28

29 Επομένως, το σύστημα ομότιμων κόμβων αποτελείται από ένα σύνολο απλών κόμβων και ένα αρκετά μικρότερο σύνολο υπερκόμβων. Κάθε κόμβος που εισέρχεται στο σύστημα συνδέεται αμέσως με έναν από τους υπερκόμβους. Κάθε υπερκόμβος συνδέεται με έναν αριθμό απλών κόμβων και με έναν μικρότερο αριθμό υπερκόμβων του δικτύου, όπως φαίνεται στο Σχήμα 3.1. Σε συστήματα ομότιμων κόμβων όπου υπάρχει μια αρχιτεκτονική υπερκόμβων, τα ερωτήματα που υποβάλλονται, αρχικά δρομολογούνται στο υποδίκτυο των υπερκόμβων και στη συνέχεια αν είναι απαραίτητο δρομολογούνται στο υποδίκτυο των απλών κόμβων. Θα πρέπει να τονίσουμε ότι στο σύστημα που υλοποιούμε, κάθε υπερκόμβος έχει στις περισσότερες περιπτώσεις τις απαραίτητες πληροφορίες για τους περισσότερους απλούς κόμβους για τους οποίους είναι υπεύθυνος. Σχήμα 3.1 Η τοπολογία του δικτύου ομότιμων κόμβων Επομένως, για τη δρομολόγηση ενός ερωτήματος κορυφογραμμής κάθε υπερκόμβος δε χρειάζεται να επικοινωνεί με όλους τους απλούς κόμβους του. Επιπλέον, ένας παράγοντας που φαίνεται να επηρεάζει τη δρομολόγηση των ερωτημάτων κορυφογραμμής είναι η τοπολογία του δικτύου των υπερκόμβων. Ωστόσο, στην προσέγγιση που υλοποιούμε θεωρούμε ότι η τοπολογία έχει καθοριστεί εξ αρχής και προσπαθούμε να βελτιώσουμε αποδοτικά την επικοινωνία μεταξύ υπερκόμβων και απλών κόμβων για την απάντηση ερωτημάτων κορυφογραμμής. 29

30 3.2 Υπολογισμός κορυφογραμμής υποχώρων σε συστήματα ομότιμων κόμβων Υπολογισμός και διαχείριση εκτεταμένης κορυφογραμμής Κάθε απλός κόμβος, που συνδέεται στο δίκτυο ομότιμων κόμβων, υπολογίζει την εκτεταμένη κορυφογραμμή της τοπικής πληροφορίας του και το στέλνει στον υπερκόμβο του με τη μορφή δυαδικής αναπαράστασης. Ο υπερκόμβος με τη σειρά του υπολογίζει την εκτεταμένη κορυφογραμμή όλων των απλών κόμβων για τους οποίους είναι υπεύθυνος, χρησιμοποιώντας τον αλγόριθμο δυαδικής αναπαράστασης. Κάθε υπερκόμβος αποθηκεύει τοπικά την εκτεταμένη κορυφογραμμή του συνόλου δεδομένων των απλών κόμβων του και των δικών του δεδομένων. Θα πρέπει να τονίσουμε τη σημασία αυτής της προσέγγισης, καθώς κατά τη δρομολόγηση των ερωτημάτων κορυφογραμμής, αρκεί η επικοινωνία ανάμεσα στους υπερκόμβους του συστήματος, οι οποίοι είναι πολύ λιγότεροι από τους απλούς κόμβους, όπως περιγράφτηκε πιο πάνω. Αν κάποιος απλός κόμβος αποσυνδεθεί από το δίκτυο, τότε χειριζόμαστε το συμβάν σαν να έχουμε διαγραφή όλων των σημείων του συνόλου δεδομένων του κόμβου αυτού. Η υπολογιστικά ακριβή αυτή περίπτωση ενημέρωσης του συνόλου δεδομένων περιγράφεται στην παράγραφο Εισαγωγές και διαγραφές σημείων Στην περίπτωση που ένα σημείο προστεθεί στο σύνολο δεδομένων ενός απλού κόμβου, ο κόμβος ελέγχει αν το σημείο ανήκει στην εκτεταμένη κορυφογραμμή των δεδομένων του. Εάν κάτι τέτοιο ισχύει, το σημείο μεταφέρεται σε δυαδική αναπαράσταση στον αντίστοιχο υπερκόμβο, όπου και πάλι με χρήση του αλγόριθμου δυαδικής αναπαράστασης υπολογίζεται η εκτεταμένη κορυφογραμμή του. Ωστόσο, στην περίπτωση διαγραφής ενός σημείου από το σύνολο δεδομένων ενός απλού κόμβου το υπολογιστικό κόστος εύρεσης της εκτεταμένης κορυφογραμμής του 30

31 υπερκόμβου του αυξάνεται στην περίπτωση που επηρεάζεται η εκτεταμένη κορυφογραμμή του κόμβου αυτού. Ο λόγος είναι γιατί κάθε απλός κόμβος θα πρέπει να αποστέλλει στον υπερκόμβο αυτό την εκτεταμέν η κορυφογραμμή του και ο υπερκόμβος με τη σειρά του, με χρήση του αλγορίθμου δυαδικής αναπαράστασης, υπολογίζει την εκτεταμένη κορυφογραμμή των δεδομένων του. Αυτή η υπολογιστικά ακριβή διαδικασία συμβαίνει, γιατί το σημείο που διαγράφτηκε μπορεί να ext-κυριαρχούσε σημεία του συνόλου δεδομένων, τα οποία μετά τη διαγραφή του πιθανώς ανήκουν στην εκτεταμένη κορυφογραμμή. Για να αποφευχθεί η επιβάρυνση του δικτύου με ενημερώσεις που οδηγούν σε πολλαπλούς υπολογισμούς της εκτεταμένης κορυφογραμμής των δεδομένων, οι ενημερώσεις μπορεί να γίνουν σε δέσμες. Πιο συγκεκριμένα, ένας απλός κόμβος ειδοποιεί τον υπερκόμβο του για ενημερώσεις στο σύνολο δεδομένων του, μόνον αφού μεταβληθεί ένα ελάχιστο ποσοστό u% του συνόλου δεδομένων του Δρομολόγηση και υπολογισμός ερωτήματος Οποιοσδήποτε κόμβος του δικτύου μπορεί να υποβάλλει ένα ερώτημα κορυφογραμμής ως προς ένα σύνολο διαστάσεων στο σύστημα, είτε είναι απλός κόμβος, είτε υπερκόμβος. Ωστόσο, ο υπολογισμός του ερωτήματος είναι ευθύνη των υπερκόμβων. Με άλλα λόγια, στην περίπτωση που κάποιος απλός κόμβος υποβάλλει ένα ερώτημα κορυφογραμμής, το ερώτημα προωθείται στον υπερκόμβο στον οποίο έχει ανατεθεί και στο εξής αυτός είναι υπεύθυνος για τον υπολογισμό του. Όσον αφορά τη δρομολόγηση του ερωτήματος, αυτή εξαρτάται από την τοπολογία του δικτύου των υπερκόμβων. Γενικά, το ζητούμενο είναι το ερώτημα να επισκεφτεί όλους τους υπερκόμβους του δικτύου. Το καλύτερο, βέβαια, είναι, όσον αφορά την απόδοση, το ερώτημα να επισκεφθεί κάθε υπερκόμβο ακριβώς μία φορά. Για να επιτευχθεί αυτό, όταν ο γράφος που μοντελοποιεί το δίκτυο των υπερκόμβων έχει κύκλο, τότε μια ιδέα είναι να αναθέσουμε σε κάθε ερώτημα κορυφογραμμής ένα μοναδικό αναγνωριστικό (id), για να μειώσουμε τον αριθμό των διπλότυπων μηνυμάτων. Κατά τη δρομολόγηση κάθε ερωτήματος, όταν ο υπερκόμβος λάβει ένα αντίγραφο του ερωτήματος με το ίδιο αναγνωριστικό, δεν προωθεί το ερώτημα στον επόμενο υπερκόμβο. 31

32 Γενικά, για τη δρομολόγηση ενός ερωτήματος κορυφογραμμής σε οποιοδήποτε υπόχωρο διαστάσεων, χρησιμοποιείται ο αλγόριθμος της πλημμύρας. Με άλλα λόγια, όταν ένας υπερκόμβος λάβει ένα ερώτημα, το προωθεί στους γειτονικούς υπερκόμβους. Κάθε γειτονικός υπερκόμβος το προωθεί στους γείτονές κ.ο.κ. Όταν όλοι οι υπερκόμβοι του δικτύου έχουν προσπελαστεί, σε μια αντίστροφη διαδικασία κάθε ένας από αυτούς στέλνει στους γείτονες του την εκτεταμένη κορυφογραμμή που έχει υπολογίσει βάσει του συνόλου δεδομένων του. Θα πρέπει να τονιστεί ότι η πληροφορία που μεταφέρει το ερώτημα στους υπερκόμβους είναι το σύνολο των διαστάσεων που ενδιαφέρουν τον κόμβο που έθεσε το ερώτημα. Επομένως, κάθε υπερκόμβος με βάση αυτές τις διαστάσεις υπολογίζει την απάντηση στο ερώτημα χρησιμοποιώντας τον αλγόριθμο δυαδικής αναπαράστασης και τη στέλνει σε δυαδική αναπαράσταση στο γειτονικό κόμβο από τον οποίο έλαβε το ερώτημα. Η διαδικασία αυτή ακολουθείται αναδρομικά έως ότου το αποτέλεσμα φθάσει στον super κόμβο που έθεσε το ερώτημα. Πιο συγκεκριμένα, αν ο υπερκόμβος λάβει από δύο γειτονικούς του κόμβους τα σύνολα ext-sky(s 1 ) και ext-sky(s 2 ), όπου S 1 και S 2 τα σύνολα δεδομένων τους, υπολογίζει την εκτεταμένη κορυφογραμμή της ένωσής τους, δηλαδή το ext-sky(s 1 S 2 ) και το συνενώνει με την εκτεταμένη κορυφογραμμή των δεδομένων του. Επιπλέον, σε αυτή τη διαδικασία μπο ρούν να εφαρμοστούν διάφορες βελτιώσεις. Για παράδειγμα, όπως περιγράφθηκε στην παράγραφο 2.5.2, η επιλογή ενός κατάλληλου σημείου από το σύνολο ext-sky (S 1 S 2 ) μπορεί να χρησιμοποιηθεί για να απαλείψει όσο το δυνατόν περισσότερα σημεία από το τοπικό σύνολο δεδομένων (DNSK test). 32

33 Κεφάλαιο 4 ο : Χρήση ενδιάμεσης μνήμης Στον κόσμο της πληροφορικής η ιδέα της ενδιάμεσης μνήμης χρησιμοποιείται ευρύτατα. Ο όρος αναφέρεται στη συλλογή ενός συνόλου δεδομένων ή αποτελεσμάτων, πιστών αντιγράφων της αρχικής πληροφορίας, τα οποία προσπελαύνοντα ι συχνά και στην αποθήκευσή τους σ ε μια ενδιάμεση μνήμη (μνήμη cache). Με τη χρήση ενδιάμεσης μνήμης, ο χρόνος που απαιτείται για τη ν πρόσβαση σε ίδια δεδομένα ή το κόστος υπολογισμού αποτελεσμάτων που έχουν ήδη υπολογιστεί στο παρελθόν είναι μικρότερος σε σύγκριση με την ανάκτηση της αυθεντικής πληροφορίας. Αυτό που χρειάζεται είναι ένα «διάβασμα» των δεδομένων της ενδιάμεσης μνήμης. 4.1 Χρήση ενδιάμεσης μνήμης σε ερωτήματα κορυφογραμμής Στο σύστημα ομότιμων κόμβων που υλοποιούμε, κάθε υπερκόμβος έχει υπολογίσει και αποθηκεύσει την εκτεταμένη κορυφογραμμή των δεδομένων του και των δεδομένων των απλών κόμβων για τους οποίους είναι υπεύθυνος. Στόχος είναι η μείωση του υπολογιστικού και επικοινωνιακού κόστους με χρήση του συνόλου εκτεταμένης κορυφογραμμής που έχει υπολογιστεί για προηγούμενα ερωτήματα. Με βάση το στόχο αυτό, σε κάθε υπερκόμβο υπάρχει μια ενδιάμεση μνήμη στην οποία αποθηκεύεται το αποτέλεσμα προηγούμενων ερωτημάτων. Να σημειώσουμε ότι η εκτεταμένη κορυφογραμμή που έχει αποθηκευτεί στην ενδιάμεση μνήμη του υπερκόμβου δεν είναι το ολικό αποτέλεσμα του ερωτήματος. Το αποτέλεσμα έχει υπολογιστεί με βάση την τοπική πληροφορία ενός συνόλου υπερκόμβων, που συμμετείχαν στον υπολογισμό ενός μέρους του αποτελέσματος του ερωτήματος κορυφογραμμής. Όσον αφορά το περιεχόμενο της ενδιάμεσης μνήμης κάθε εγγραφή της περιλαμβάνει: Το αναγνωριστικό (id) του ερωτήματος, του οποίου έχουμε αποθηκεύσει την εκτεταμένη κορυφογραμμή του. Ερωτήματα που αναφέρονται σε ίδιες διαστάσεις έχουν ίδια αναγνωριστικά. 33

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

Διαβάστε περισσότερα

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

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

Διαβάστε περισσότερα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Επεξεργασία Ερωτήσεων Αρχεία ευρετηρίου Κατάλογος συστήματος Αρχεία δεδομένων ΒΑΣΗ Ε ΟΜΕΝΩΝ Σύστημα Βάσεων εδομένων (ΣΒ ) Βάσεις Δεδομένων 2007-2008

Διαβάστε περισσότερα

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

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων

Διαβάστε περισσότερα

Κεφ.11: Ευρετήρια και Κατακερματισμός

Κεφ.11: Ευρετήρια και Κατακερματισμός Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

Διαβάστε περισσότερα

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά

Διαβάστε περισσότερα

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

Διαβάστε περισσότερα

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

Διαβάστε περισσότερα

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

Διαβάστε περισσότερα

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

Κατακερματισμός (Hashing) Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση

Διαβάστε περισσότερα

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

Διαβάστε περισσότερα

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

Διαβάστε περισσότερα

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 7 η Βασίλης Στεφανής Αλγόριθμοι ταξινόμησης Στην προηγούμενη διάλεξη είδαμε: Binary search Λειτουργεί μόνο σε ταξινομημένους πίνακες Πώς τους ταξινομούμε? Πολλοί τρόποι. Ενδεικτικά:

Διαβάστε περισσότερα

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #06 Πιθανοτικό Μοντέλο 1 Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

Διαβάστε περισσότερα

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΣΔΒΔ Σύνολο από προγράµµατα για τη διαχείριση της ΒΔ Αρχεία ευρετηρίου Κατάλογος ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Αρχεία δεδοµένων συστήµατος Σύστηµα Βάσεων Δεδοµένων (ΣΒΔ)

Διαβάστε περισσότερα

Detecting Duplicates over Distributed Data Sources. Δημήτρης Σουραβλιάς

Detecting Duplicates over Distributed Data Sources. Δημήτρης Σουραβλιάς Detecting Duplicates over Distributed Data Sources Δημήτρης Σουραβλιάς Δομή παρουσίασης Εισαγωγή Ορισμός του προβλήματος Παράδειγμα Αρχιτεκτονικές ανίχνευσης διπλότυπων Γενικές παρατηρήσεις Αναφορές DMOD

Διαβάστε περισσότερα

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :

Διαβάστε περισσότερα

Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής Θεωρία Πληροφορίας Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα Διακριτή πηγή πληροφορίας χωρίς μνήμη Ποσότητα πληροφορίας της πηγής Κωδικοποίηση

Διαβάστε περισσότερα

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου

Διαβάστε περισσότερα

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7 Οι σημειώσεις που ακολουθούν περιγράφουν τις ασκήσεις που θα συναντήσετε στο κεφάλαιο 7. Η πιο συνηθισμένη και βασική άσκηση αναφέρεται στο IP Fragmentation,

Διαβάστε περισσότερα

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Επεξεργασία Ερωτήσεων Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL)

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ταξινόμηση. Σαλτογιάννη Αθανασία

Ταξινόμηση. Σαλτογιάννη Αθανασία Ταξινόμηση Σαλτογιάννη Αθανασία Ταξινόμηση Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Ταξινόμηση Τι εννοούμε όταν

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Εισαγωγή Σ Β Σύνολο από προγράμματα για τη διαχείριση της Β Αρχεία ευρετηρίου Κατάλογος ΒΑΣΗ Ε ΟΜΕΝΩΝ Αρχεία δεδομένων συστήματος Σύστημα Βάσεων εδομένων (ΣΒ ) 2 :

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2017-2018 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό

Διαβάστε περισσότερα

Το εσωτερικό ενός Σ Β

Το εσωτερικό ενός Σ Β Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή Εισαγωγή εδοµένων

Διαβάστε περισσότερα

Τμήμα Πληροφορικής ΑΠΘ

Τμήμα Πληροφορικής ΑΠΘ Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ 2013-2014 2 Σκοπός του 2 ου εργαστηρίου Σκοπός αυτού του εργαστηρίου είναι: Η μελέτη ερωτημάτων σε μία μόνο σχέση. Εξετάζουμε τους τελεστές επιλογής

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

Διαβάστε περισσότερα

Σχεδίαση και Ανάλυση Αλγορίθμων

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

Διαβάστε περισσότερα

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων Ταξινόμηση: Εισαγωγικά Ταξινόμηση (Sor ng) Ορέστης Τελέλης Βασικό πρόβλημα για την Επιστήμη των Υπολογιστών. π.χ. αλφαβητική σειρά, πωλήσεις ανά τιμή, πόλεις με βάση πληθυσμό, Μπορεί να είναι ένα πρώτο

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός

Δυναμικός Κατακερματισμός Δυναμικός Κατακερματισμός Καλό για βάση δεδομένων που μεγαλώνει και συρρικνώνεται σε μέγεθος Επιτρέπει τη δυναμική τροποποίηση της συνάρτησης κατακερματισμού Επεκτάσιμος κατακερματισμός μια μορφή δυναμικού

Διαβάστε περισσότερα

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

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση Δομές Αναζήτησης χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1 Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών

Διαβάστε περισσότερα

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

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 7 «Διαχείριση Μνήμης» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Κύρια Μνήμη 1. Εισαγωγή 2. Βασική διαχείριση μνήμης 3. Μνήμη και πολυπρογραμματισμός 4. Τμηματοποίηση

Διαβάστε περισσότερα

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

Διαβάστε περισσότερα

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

Διαβάστε περισσότερα

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 3 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο

Διαβάστε περισσότερα

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Η τακτοποίηση των δεδομένων με ιδιαίτερη σειρά είναι πολύ σημαντική λειτουργία που ονομάζεται

Διαβάστε περισσότερα

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Ταξινόμηση με Εισαγωγή. Ταξινόμηση με Επιλογή Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση Η ταξινόμηση sortg τοποθετεί ένα σύνολο κόμβων ή εγγραφών σε μία συγκεκριμένη διάταξη

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής»

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Μελέτη του Προβλήματος των Κίβδηλων Νομισμάτων Ονοματεπώνυμο

Διαβάστε περισσότερα

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

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΑΚΑΔ. ΕΤΟΣ 2011-12 ΔΙΔΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής Τιμολέων Σελλής Καθηγητής Άσκηση 1

Διαβάστε περισσότερα

Διαχρονικές δομές δεδομένων

Διαχρονικές δομές δεδομένων Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Γραμμικός Προγραμματισμός Μέθοδος Simplex ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

Διαβάστε περισσότερα

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 4 ο Πράξεις με bits Δρ. Γκόγκος Χρήστος Κατηγορίες πράξεων με bits Πράξεις με δυαδικά ψηφία Αριθμητικές πράξεις

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ Συνεκτικότητα Γραφημάτων 123 ΚΕΦΑΛΑΙΟ 4 ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ 4.1 Τοπική και Ολική Συνεκτικότητα Γραφημάτων 4.2 Συνεκτικότητα Μη-κατευθυνόμενων Γραφημάτων 4.3 Συνεκτικότητα Κατευθυνόμενων Γραφημάτων

Διαβάστε περισσότερα

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2-Γ3

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2-Γ3 ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2-Γ3 ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

7.1 Επίπεδο δικτύου. Ερωτήσεις. λέξεις κλειδιά:

7.1 Επίπεδο δικτύου. Ερωτήσεις. λέξεις κλειδιά: 7.1 Επίπεδο δικτύου Ερωτήσεις 1. Με ποιες ενέργειες ασχολείται το επίπεδο δικτύου; Ποιες συσκευές συμμετέχουν σε αυτές τις ενέργειες; 2. Ποιο είναι το χαμηλότερο επίπεδο στο μοντέλο OSI που ασχολείται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

f(t) = (1 t)a + tb. f(n) =

f(t) = (1 t)a + tb. f(n) = Παράρτημα Αʹ Αριθμήσιμα και υπεραριθμήσιμα σύνολα Αʹ1 Ισοπληθικά σύνολα Ορισμός Αʹ11 (ισοπληθικότητα) Εστω A, B δύο μη κενά σύνολα Τα A, B λέγονται ισοπληθικά αν υπάρχει μια συνάρτηση f : A B, η οποία

Διαβάστε περισσότερα

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια υλοποίησης Ανάλυση της απόδοσης Θεωρητική

Διαβάστε περισσότερα

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251

Διαβάστε περισσότερα

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

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ Εισαγωγή στην επιστήμη των υπολογιστών Πράξεις με μπιτ 1 Πράξεις με μπιτ 2 Αριθμητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός, Διαίρεση 3 Πρόσθεση στη μορφή συμπληρώματος ως προς δύο

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2014-2015 Πάτρα 5/5/2015 Ονοματεπώνυμο:.. Θέμα Α Α1. α. Να γράψετε στο τετράδιό σας τον

Διαβάστε περισσότερα

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

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια Ευαγγελία Πιτουρά 1 τιμή γνωρίσματος Ευρετήρια Ένα ευρετήριο (index) είναι μια βοηθητική δομή αρχείου που κάνει πιο αποδοτική την αναζήτηση μιας εγγραφής σε ένα αρχείο Το ευρετήριο καθορίζεται

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη

Διαβάστε περισσότερα

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να

Διαβάστε περισσότερα

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης. Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης. Ένα από τα γνωστότερα παραδείγματα των ΕΑ είναι ο Γενετικός

Διαβάστε περισσότερα

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

Διαβάστε περισσότερα

3. Προσομοίωση ενός Συστήματος Αναμονής.

3. Προσομοίωση ενός Συστήματος Αναμονής. 3. Προσομοίωση ενός Συστήματος Αναμονής. 3.1. Διατύπωση του Προβλήματος. Τα συστήματα αναμονής (queueing systems), βρίσκονται πίσω από τα περισσότερα μοντέλα μελέτης της απόδοσης υπολογιστικών συστημάτων,

Διαβάστε περισσότερα