ιπλωµατική Εργασία «Οµαδοποίηση δεδοµένων σε περιβάλλον υπηρεσιών καταλόγου»

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

Download "ιπλωµατική Εργασία «Οµαδοποίηση δεδοµένων σε περιβάλλον υπηρεσιών καταλόγου»"

Transcript

1 Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Τµήµα Πληροφορικής ιπλωµατική Εργασία «Οµαδοποίηση δεδοµένων σε περιβάλλον υπηρεσιών καταλόγου» Μπαλασάς Αντώνιος ΑΕΜ 638 Επιβλέπουσα Καθηγήτρια Βακάλη Αθηνά Θεσσαλονίκη 2005

2 ΠΕΡΙΕΧΟΜΕΝΑ Ενότητα 1: Εισαγωγή Ορισµός προβλήµατος Προγενέστερες προσεγγίσεις ιάρθρωση κεφαλαίων... 4 Ενότητα 2: Οµαδοποίηση εδοµένων Τι είναι οµαδοποίηση Τα βήµατα κατά την διαδικασία της οµαδοποίησης Είδη αλγορίθµων οµαδοποίησης δεδοµένων Ιεραρχικοί αλγόριθµοι οµαδοποίησης Παράδειγµα συσσωρευτικού αλγορίθµου απλού συνδέσµου Παράδειγµα συσσωρευτικού αλγορίθµου πλήρους συνδέσµου Παράδειγµα ιεραρχικού συσσωρευτικού αλγορίθµου ιαιρετικοί αλγόριθµοι οµαδοποίησης Αλγόριθµοι τε/κού σφάλµατος (Squared Error Algorithms) Παράδειγµα αλγορίθµου οµαδοποίησης τετραγωνικού λάθους Ο αλγόριθµος k-means Η θεωρία γράφων στην οµαδοποίηση Ενότητα 3: Υπηρεσίες Καταλόγων Εισαγωγή στους Καταλόγους Τι είναι υπηρεσίες καταλόγων (Directory services) Lightweight Directory Access Protocol Οργάνωση δεδοµένων στον LDAP Συναλλαγές και ερωτήσεις Οφέλη διαχείρισης και κόστη Τα αρχεία LDIF Ενότητα 4: Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE Ο αλγόριθµος ROCK Γείτονες Κατηγορικά δεδοµένα Σύνδεσµοι Συνάρτηση κριτηρίου Οµαδοποίηση µε το ROCK Ο αλγόριθµος S-GRACE Εισαγωγή Οµοιότητα ανάµεσα στα XML έγγραφα Το πλαίσιο εργασίας για την οµαδοποίηση XML εγγράφων Περιγραφή του S-GRACE

3 Ενότητα 5: ηµιουργία αλγορίθµου οµαδο/σης για δεδοµένα καταλόγων Περιγραφή δοµών δεδοµένων του αλγορίθµου οµαδοποίησης Περιγραφή λειτουργίας του Αλγορίθµου οµαδοποίησης Ενότητα 6: Εκτέλεση πειραµατικών δεδοµένων και σχολιασµός αποτελεσµάτων Κατασκευή LDAP δεδοµένων Εγκατάσταση του OpenLDAP Ο κατάλογος schema slapd.conf, το αρχείο ρυθµίσεων Εκκίνηση του slapd Εισαγωγή δεδοµένων Αποτελέσµατα εκτέλεσης Εκτίµηση αποτελεσµάτων Παράρτηµα Ι Ι.1 Κώδικας PHP για τη µετατροπή XML δεδοµένων σε LDIF I.2 Αρχεία ρυθµίσεων του OpenLDAP I.2.1 slapd.conf I.2.2 local.schema Παράρτηµα ΙΙ II.1 Πηγαίος κώδικας του αλγορίθµους οµαδοποίησης II.1.1 Algorithm.java II.1.2 AlgMatrixSG.java II.2.3 AlgLdapData.java II.1.4 AlgComputeDistance.java II.1.5 AlgComputeNeighbors.java II.1.6 AlgComputeLink.java II.1.7 AlgRemoveOutlier.java II.1.8 AlgDataUnits.java II.1.9 AlgGlobalMeasure.java II.1.10 AlgLocalMeasure.java II.1.11 AlgLoop.java Παράρτηµα ΙΙΙ III.1 ηµιουργία Σεναρίου φλοιού για την αναζήτηση στον LDAP Βιβλιογραφία

4 Εισαγωγή Ενότητα 1: Εισαγωγή 1.1 Ορισµός προβλήµατος Η οµαδοποίηση είναι µία τεχνική κατηγοριοποίησης ενός συνόλου δεδοµένων σε οµάδες µε τέτοιο τρόπο ώστε η κάθε οµάδα να συγκεντρώνει τα δεδοµένα εκείνα που έχουν τα περισσότερο όµοια χαρακτηριστικά. Η τεχνική αυτή χρησιµοποιείται για διάφορους σκοπούς για παράδειγµα στην εµπορική εκµετάλλευση κάποιων αγαθών µιας αγοράς που ανήκουν στην ίδια οµάδα, ώστε να δηµιουργηθούν προφίλ καταναλωτών. Έτσι η µείωση της τιµής ενός αγαθού A θα προκαλέσει µεγαλύτερη ζήτηση όχι µόνο για το προϊόν αυτό αλλά και για όλα τα προϊόντα B που βρίσκονται στην ίδια οµάδα µε αυτή του Α. Μπορούν ακόµα να τυπώνονται κατάλογοι προσφορών προϊόντων ανάλογα µε τη περιοχή διαµονής του πελάτη, το εισόδηµά του, την οικογενειακή του κατάσταση κ.τ.λ. Πέρα από την εµπορική της χρήση µε η οµαδοποίηση χρησιµοποιείται και για την κατάταξη των δεδοµένων και την καλύτερη κατανοµή τους σε µία βάση ώστε να βελτιώνει τους χρόνους αναζήτησης για τα ερωτήµατα που απευθύνονται σε αυτή τη βάση. Σκοπός της παρούσας διπλωµατικής εργασίας είναι να κατασκευάσει µια τεχνική οµαδοποίησης στο πρωτόκολλο LDAP, ένα από τα περισσότερο διαδιδόµενα και εφαρµόσιµα πρωτόκολλα για την αποθήκευση δεδοµένων σε δενδροειδή µορφή. Συγκεκριµένα γίνεται προσπάθεια κατάταξης των δεδοµένων σε κατάλληλα κλαδιά του δέντρου LDAP ώστε αναζητήσεις που γίνονται σε δεδοµένα µε συγγενή χαρακτηριστικά να «ψάχνουν» µόνο σε ένα µικρό υποδένδρο του αρχικού και έτσι να ελαχιστοποιείται ο χρόνος απόκρισης για την αναζήτηση των αποτελεσµάτων του ερωτήµατος. 1.2 Προγενέστερες προσεγγίσεις Η βιβλιογραφία αναφέρει ένα µεγάλο αριθµό αλγορίθµων οµαδοποίησης που µπορούν να χωριστούν σε πολλές κατηγορίες σχετικά µε το είδος των δεδοµένων που δέχονται, τον τρόπο που αναπαριστούν τα δεδοµένα και στο 3

5 Εισαγωγή τρόπο επεξεργασίας αυτών. Οι περισσότερο δηµοφιλείς τεχνικές επεξεργάζονται µεγάλο όγκο δεδοµένων µιας σχεσιακής βάσης δεδοµένων ή µιας XML βάσης. Ωστόσο καµιά τεχνική δεν έχει πειραµατιστεί µε την οµαδοποίηση δεδοµένων καταλόγων, µε τέτοιο τρόπο ώστε να ανακαλύψει σχέσεις βελτίωσης της αναζήτησης των δεδοµένων σε αυτή. Η παρούσα εργασία στηρίζεται σε δύο προγενέστερες: Στον αλγόριθµο ROCK και στον αλγόριθµο S-GRACE. Ο ROCK είναι ένας αλγόριθµος οµαδοποίησης κατηγορικών δεδοµένων ο οποίος εισάγει µια µετρική καταλληλότητας για να διαπιστώσει το κατά πόσο δύο οµάδες µπορούν να ενωθούν. Ο S-GRACE χρησιµοποιεί το ROCK για να οµαδοποιήσει XML δεδοµένα επιτυγχάνοντας µε τα αποτελέσµατα που επιστρέφει βελτίωση στο χρόνο αναζήτησης στη βάση που αποθηκεύει τα έγγραφα. Τα XML δεδοµένα έχουν αρκετές οµοιότητες κυρίως στη δενδρική τους µορφή σε σχέση µε τα LDAP δεδοµένα. Συνεπώς ο αλγόριθµος µας µπορεί να στηριχτεί από τους προγενέστερους και είναι αναµενόµενο να έχει την ίδια σχεδόν συµπεριφορά και αποτελέσµατα. 1.3 ιάρθρωση ρωση κεφαλαίων Η διπλωµατική εργασία απαρτίζεται από έξι ενότητες: Στη δεύτερη ενότητα γίνεται αναφορά σε όλα τα είδη αλγορίθµων οµαδοποίησης, στο τρόπο που εκτελούνται, στις δοµές δεδοµένων που υποστηρίζουν και στα αποτελέσµατα που αυτοί παράγουν. Παρουσιάζονται σε ψευδογλώσσα οι περισσότερο διαδεδοµένοι αλγόριθµοι και αποτυπώνονται τα αποτελέσµατα επεξεργασίας. Στη τρίτη ενότητα περιγράφεται το πλαίσιο εργασίας του LDAP, ο τρόπος αναπαράστασης των δεδοµένων, η αποθήκευση των δεδοµένων, η αρχιτεκτονική του πρωτοκόλλου, οι βασικές εντολές και ο µηχανισµός αναζήτησης στη βάση. Στη τέταρτη ενότητα γίνεται εκτενής αναφορά στους αλγορίθµους ROCK και S-GRACE οι οποίοι χρησιµοποιούνε ίδιες δοµές δεδοµένων και τεχνικές για να οµαδοποιήσουν τα δεδοµένα µε εκείνες του αλγορίθµου µας. Οι δύο αλγόριθµοι έχουν τη δυνατότητα να οµαδοποιήσουν κατηγορικά δεδοµένα, δεδοµένα δηλαδή που µπορούν 4

6 Εισαγωγή να έχουν ένα σύνολο από τιµές κάθε µία από τις οποίες αντιπροσωπεύει µια ιδιότητα των δεδοµένων. Η πέµπτη ενότητα περιγράφει την εκτέλεση του αλγορίθµου για τα δεδοµένα καταλόγων. Για την ευκολότερη παρακολούθηση από τους αναγνώστες ο αλγόριθµος έχει διασπαστεί σε 3 ενότητες κάθε µία από τις οποίες επιτελεί µια διαφορετική εργασία. Έτσι αναλύονται διαδοχικά ο τρόπος που τα δεδοµένα διαβάζονται από τον εξυπηρέτη καταλόγων, ο τρόπος κατασκευής και αρχικοποίησης των απαραίτητων για την οµαδοποίηση δοµών δεδοµένων καθώς και την επεξεργασία τους ώστε να διαχωριστούν οι οµάδες κάθε µία από τις οποίες αντιστοιχεί σε ένα υποσύνολο του αρχικού συνόλου δεδοµένων. Η έκτη ενότητα περνά από τη θεωρία των προηγούµενων κεφαλαίων στην υλοποίηση παρουσιάζοντας την πορεία που ακολουθήθηκε για την υλοποίηση του αλγορίθµου και την αποτίµηση των αποτελεσµάτων. Αναφέρεται, συνεπώς, ο τρόπος κατασκευής πειραµατικών δεδοµένων τα οποία θα χρησιµοποιηθούν για την εκτέλεση του αλγορίθµου, η διαδικασία εγκατάστασης του απαραίτητου λογισµικού και τα αποτελέσµατα εκτέλεσης του αλγορίθµου µαζί µε τα συµπεράσµατα που µπορούν να προκύψουν. Τα παραρτήµατα περιέχουν όλο τα απαραίτητα αρχεία για τη σωστή εκτέλεση του αλγορίθµου. Στο παράρτηµα Ι περιέχεται το PHP script που χρησιµοποιήθηκε για να µετατρέψει τα αρχεία XML σε εγγραφές LDIF. Επιπλέον περιέχει το αρχείο slapd.conf το οποίο είναι απαραίτητο για την εκτέλεση του OpenLDAP και το αρχείο local.schema το οποίο περιγράφει τη δοµή των δεδοµένων. Το παράρτηµα ΙΙ περιλαµβάνει την υλοποίηση του αλγορίθµου οµαδοποίησης δεδοµένων σε java κώδικα και συνεπώς µε τον τρόπο αυτό ο κώδικας είναι µεταφέρσιµος σε οποιαδήποτε πλατφόρµα µπορεί να διαθέτει µία ιδεατή µηχανή java και µία έκδοση εξυπηρέτη καταλόγων OpenLDAP. Το παράρτηµα ΙΙΙ περιέχει ένα shell script για αναζήτηση δεδοµένων στις εγγραφές του LDAP και εµφάνιση των χρόνων αναζήτησης. Αυτό 5

7 Εισαγωγή το σενάριο χρησιµοποιείται για την αναπαράσταση των χρόνων και τη µέτρηση της απόδοσης του αλγορίθµου σε σχέση µε τη προγενέστερη µη επεξεργασµένη µορφή των δεδοµένων όπου δεν έγινε χρήση του αλγορίθµου οµαδοποίησης. 6

8 Οµαδοποίηση δεδοµένων Ενότητα 2: Οµαδοποίηση εδοµένων 2.1 Τι είναι οµαδοποίηση Η οµαδοποίηση δεδοµένων είναι µία τεχνική στατιστικής ανάλυσης - µεγάλων κυρίως - σε µέγεθος δεδοµένων η οποία εφαρµόζεται σε πολλές περιοχές όπως η µηχανική µάθηση, η εξόρυξη δεδοµένων η αναγνώριση προτύπων η ανάλυση εικόνων και η βιοπληροφορική. Η λειτουργία της οµαδοποίησης στηρίζεται στo διαχωρισµό (partitioning) σε υποσύνολα (subset clusters) έτσι ώστε για κάθε αντικείµενο ενός υποσύνόλου στο οποίο εφαρµόζεται µία µετρική απόστασης (distance measure) να επιστρέφει τιµή περίπου ίση µε τα υπόλοιπα αντικείµενα του ίδιου συνόλου.[2] Η οµαδοποίηση δεδοµένων ανήκει στις διαδικασίες εκείνες που έχουν το γενικό όρο ανάλυση δεδοµένων. Η ανάλυση των δεδοµένων χρησιµοποιείται σε αρκετές υπολογιστικές διαδικασίες τόσο κατά τη φάση σχεδίασης της διαδικασίας αυτής όσο και κατά τη φάση όπου αυτή λειτουργεί. Άρα, οι διαδικασίες ανάλυσης δεδοµένων µπορούν να χωριστούν σε δύο κατηγορίες. Σ αυτές που προσπαθούν να ανακαλύψουν κάποια νέα στοιχεία ή χαρακτηριστικά για τα δεδοµένα και σ εκείνες που επιβεβαιώνουν την ισχύ ορισµένων χαρακτηριστικών. Το κύριο στοιχείο στα δύο αυτά είδη είναι ότι χρησιµοποιείται µία µετρική η οποία δίνει τις τιµές της 1. µε βάση το πόσο καλά προσεγγίζει ένα υποθετικό µοντέλο ή 2. βάσει οµαδοποίησης που προκύπτει µέσω της ανάλυσης. Σύµφωνα µε τα παραπάνω µπορούµε να δώσουµε ένα περισσότερο λεπτοµερή ορισµό για την οµαδοποίηση δεδοµένων: Οµαδοποίηση δεδοµένων είναι η οργάνωση µία συλλογής από πρότυπα δεδοµένων σε οµάδες τα οποία βασίζονται στην οµοιότητά τους. Τα πρότυπα, τα οποία βρίσκονται σε µία οµάδα είναι περισσότερο όµοια µεταξύ τους σε σχέση µε άλλα διαφορετικής οµάδας. Στο παρακάτω σχήµα (Σχ. 2.1) µπορούµε να δούµε τα αποτελέσµατα µίας υποθετικής οµαδοποίησης σε δισδιάστατα δεδοµένα. Αν υποθέσουµε λοιπόν ότι µετράµε 7

9 Οµαδοποίηση δεδοµένων τα δεδοµένα µας µε δύο υποθετικά χαρακτηριστικά (κάθε ένα αντιπροσωπεύεται από 1 άξονα) η διαδικασία οµαδοποίησης δηµιούργησε 4 οµάδες για το σύνολο των δεδοµένων. Σχήµα 2.1 Ένα σύνολο δεδοµένων µε δύο χαρακτηριστικά. Η οµαδοποίηση χρησιµοποιείται, συνήθως, σε προβλήµατα όπου υπάρχει λίγη διαθέσιµη πληροφορία σχετικά µε τα δεδοµένα και συνεπώς κατά τη πορεία της επεξεργασίας πρέπει να στηριχτούµε σε ορισµένους ισχυρισµούς. Αυτοί οι περιορισµοί µας δείχνουν ότι η διαδικασία της οµαδοποίησης είναι η καταλληλότερη µέθοδος για την εύρεση αλληλοσυσχετήσεων ανάµεσα στα διάφορα δεδοµένα ώστε να βγουν συµπεράσµατα για τη δοµή τους.[1] 2.2 Τα βήµατα κατά την διαδικασία της οµαδοποίησης Κάθε διαδικασία οµαδοποίησης ακολουθεί ορισµένα βήµατα που γενικά µπορεί να είναι: Αναπαράσταση των πρότυπων δεδοµένων (pattern representation) Ορισµός κατάλληλης µετρικής για τα πρότυπα που να µπορεί να εφαρµοστεί το χώρο των δεδοµένων Ο αλγόριθµος οµαδοποίησης Γενίκευση των δεδοµένων Σχολιασµός και αποτίµηση των αποτελεσµάτων. 8

10 Οµαδοποίηση δεδοµένων Στο σχήµα 2.2 µπορούµε να δούµε την αναπαράσταση των τριών πρώτων βηµάτων της προαναφερθείσας τεχνικής: Σχήµα 2.2 Τα κύρια βήµατα ενός αλγορίθµου οµαδοποίησης. Η αναπαράσταση προτύπων σχετίζεται µε τον αριθµό των κλάσεων, τον αριθµό των διαθέσιµων προτύπων και τον αριθµό, τύπο και κλίµακα των χαρακτηριστικών που υπάρχουν διαθέσιµα στον αλγόριθµο οµαδοποίησης. [1] Η επιλογή χαρακτηριστικών είναι η διαδικασία εκείνη που αναγνωρίζει ένα υποσύνολο αντικείµένων µε τα καλύτερα χαρακτηριστικά που πρέπει να χρησιµοποιηθεί κατά την οµαδοποίηση. Η εξαγωγή χαρακτηριστικών είναι η χρήση µετασχηµατισµών στα χαρακτηριστικά ώστε να παραχθούν νέα µε καλύτερες ιδιότητες. Η µετρική που χρησιµοποιείται για τα πρότυπα είναι συνήθως µια συνάρτηση απόστασης που εφαρµόζεται ανά ζεύγη. Οι συναρτήσεις µέτρησης ποικίλουν, καθεµία από τις οποίες µπορούν να χρησιµοποιηθούν για διαφορετικούς σκοπούς. Η Ευκλείδεια π.χ. απόσταση µετρά την ανοµοιότητα µεταξύ δύο προτύπων, ενώ αντίθετα άλλες µετρικές µπορούν να χρησιµοποιηθούν για να χαρακτηρίσουν την οµοιότητα µεταξύ δύο προτύπων. Η διαδικασία της οµαδοποίησης µπορεί να εκτελεστεί µε πολλούς διαφορετικούς τρόπους. Το αποτέλεσµα του αλγορίθµου οµαδοποίησης µπορεί να είναι σκληρό (τα δεδοµένα διαιρεµένα σε οµάδες) ή ασαφές (κάθε πρότυπο έχει ένα µεταβλητό βαθµό συµµετοχής σε καθεµία από τις οµάδες). Οι ιεραρχικοί αλγόριθµοι παράγουν ακολουθίες «φωλιασµένων» οµάδων βασισµένοι σε κριτήρια ένωσης ή διάσπασης οµάδων σύµφωνα µε την οµοιότητά αυτών. Οι αλγόριθµοι διαίρεσης αναγνωρίζουν την διαίρεση εκείνη που βελτιστοποιεί ένα κριτήριο για οµαδοποίηση. Μπορούν επιπλέον να 9

11 Οµαδοποίηση δεδοµένων χρησιµοποιηθούν τεχνικές που βασίζονται στη θεωρία πιθανοτήτων ή σε γράφους. Κατά την αφαίρεση δεδοµένων γίνεται εξαγωγή ενός περιεκτικού και απλού συνόλου δεδοµένων. Πως αξιολογείται η έξοδος ενός αλγορίθµου οµαδοποίησης; Τι ξεχωρίζει ένα αποτέλεσµα καλής οµαδοποίησης από ένα φτωχό; Όλοι οι αλγόριθµοι οµαδοποίησης δηµιουργούν οµάδες(clusters). Όλοι οι αλγόριθµοι οµαδοποίησης παράγουν οµάδες ανεξάρτητα αν τα δεδοµένα ανήκουν σε σύνολα (group). Αν τα δεδοµένα ανήκουν σε σύνολα, ορισµένοι αλγόριθµοι οµαδοποίησης µπορεί να δηµιουργήσουν καλύτερες οµάδες σε σχέση µ άλλους. Η αποτίµηση µιας διαδικασίας οµαδοποίησης έχει πολλές όψεις. Η αποτίµηση έχει να κάνει, συνήθως, µε το χώρο των δεδοµένων (data domain) παρά µε τον αλγόριθµο οµαδοποίησης. Η ανάλυση της εγκυρότητας των clusters, αντίθετα, είναι η αποτίµηση του αποτελέσµατος της διαδικασίας οµαδοποίησης. Συχνά αυτή η ανάλυση χρησιµοποιεί ένα συγκεκριµένο κριτήριο βελτιστοποίησης. Ωστόσο αυτά τα κριτήρια συνήθως προκύπτουν µε υποκειµενικό τρόπο. Για το λόγο αυτό δεν υπάρχουν κοινά αποδεκτά κριτήρια εκτός από κάποια καλά ορισµένα υποσύνολα δεδοµένων. Η αποτίµηση της εγκυρότητας είναι αντικειµενική και χρησιµοποιείται για να καθορίσει εάν το αποτέλεσµα έχει νόηµα. Όταν χρησιµοποιούνται στατιστικές προσεγγίσεις στην οµαδοποίηση ο έλεγχος της εγκυρότητας συνοδεύεται από στατιστικές µεθόδους και ελέγχους υποθέσεων. Υπάρχουν τρία είδη µελέτης εγκυρότητας [1] Η εξωτερική αποτίµηση (external assessment) της εγκυρότητας όπου συγκρίνει την ανακτώµενη δοµή µε µία υποθετική δοµή. Η εσωτερική εξέταση (internal examination) της εγκυρότητας προσπαθεί να καθορίσει εάν η δοµή είναι φυσική ως προς τα δεδοµένα. Η σχετική εξέταση συγκρίνει δύο δοµές και καταµετρά την σχετική τους τιµή. 10

12 Οµαδοποίηση δεδοµένων 2.3 Είδη αλγορίθµων οµαδοποίησης δεδοµένων. Οι αλγόριθµοι οµαδοποίησης δεδοµένων µπορούν να χωριστούν σε 2 κατηγορίες: Στους ιεραρχικούς αλγόριθµους. Οι ιεραρχικοί σχηµατίζουν οµάδες µε βάση της ήδη υπάρχουσες σχηµατισµένες οµάδες, δηλαδή λειτουργούν επαναληπτικά λαµβάνοντας υπ όψιν τους σε κάθε επανάληψη τις οµάδες που δηµιουργήθηκαν προηγουµένως. Οι ιεραρχικοί αλγόριθµοι µπορούν να σχεδιαστούν µε δύο τεχνικές, από πάνω προς τα κάτω ή από κάτω προς τα πάνω. Αυτό σηµαίνει πως κάθε στοιχείο του αρχικού συνόλου δεδοµένων µπορεί να θεωρηθεί στη αρχή ξεχωριστή οµάδα (από κάτω προς τα πάνω τεχνική), όπου στη συνέχεια εφαρµόζονται συγχωνεύσεις οµάδων. Ακόµα, µπορεί να θεωρηθεί ότι το σύνολο των δεδοµένων είναι µία οµάδα (από πάνω προς τα κάτω τεχνική) όπου στη συνέχεια θα διαιρείται. [1][2] Στους αλγόριθµους διαίρεσης στους οποίους οι οµάδες σχηµατίζονται χωρίς την επαναληπτική εκτέλεση.[2] Η ιεραρχική οµαδοποίηση δηµιουργεί µία ιεραρχία οµάδων. Η συνήθης αναπαράσταση της ιεραρχίας γίνεται µε ένα δέντρο όπου στο ένα του άκρο περιέχονται ξεχωριστά αντικείµενα και στο άλλο η οµάδα στην οποία ανήκει το αντικείµενο. Η οµαδοποίηση δεδοµένων µπορεί να κατηγοριοποιηθεί µε πολλές διαφορετικές προσεγγίσεις. Ένα υποσύνολο των κατηγοριών µπορούµε να δούµε στο επόµενο σχήµα: 11

13 Οµαδοποίηση δεδοµένων Σχήµα 2.3 Τα είδη αλγορίθµων οµαδοποίησης. Στο ανώτερο επίπεδο υπάρχει ο διαχωρισµός ανάµεσα σε ιεραρχικές και διαιρετικές προσεγγίσεις (οι ιεραρχικές µέθοδοι παράγουν µία εµφωλευµένη σειρά από οµάδες ενώ οι διαιρετικές µέθοδοι δηµιουργούν µόνο µία). Μπορούµε να κάνουµε τους εξής διαχωρισµούς: [1] Συσσωρευτικοί (agglomerative) και διαιρετικοί (divisive): Αυτός ο διαχωρισµός σχετίζεται µε την δοµή του αλγορίθµου και τις λειτουργίες του. Μία συσσωρευτική προσέγγιση ξεκινά µε κάθε δείγµα (pattern) να είναι µία ξεχωριστή οµάδα και διαδοχικά να ενώνει τις οµάδες έως να ικανοποιηθεί ένα κριτήριο τερµατισµού. Μια διαιρετική µέθοδος ξεκινά µε όλα τα δείγµατα να βρίσκονται σε µία µοναδικό οµάδα και σε κάθε βήµα οι οµάδες διαιρούνται έως να ικανοποιηθεί και πάλι ένα κριτήριο τερµατισµού. Μονοθετικοί (monothetic) και πολυθετικοί (polythetic): Ο χαρακτηρισµός ενός αλγορίθµου σαν µονοθετικός ή πολυθετικός σχετίζεται µε τη σειριακή ή ταυτόχρονη χρήση χαρακτηριστικών στη διαδικασία της οµαδοποίησης. Οι περισσότεροι αλγόριθµοι είναι πολυθετικοί που σηµαίνει ότι όλα τα χαρακτηριστικά συµµετέχουν στον υπολογισµό των αποστάσεων ανάµεσα στα δείγµατα και οι αποφάσεις βασίζονται σε αυτές τις αποστάσεις. Ένας απλός µονοθετικός αλγόριθµος χρησιµοποιεί τα χαρακτηριστικά σειριακά ώστε να διαιρέσει 12

14 Οµαδοποίηση δεδοµένων µία συλλογή δειγµάτων. Αυτό φαίνεται στο επόµενο σχήµα (Σχήµα 2.4): Σχήµα 2.4 ιαχωρισµός δεδοµένων από ένα µονοθετικό αλγόριθµο. Σύµφωνα µε το παραπάνω σχήµα η συλλογή διαιρείται σε δύο οµάδες (groups) χρησιµοποιώντας το χαρακτηριστικό x 1 (η κάθετη διακεκοµµένη γραµµή V τις διαχωρίζει). Κάθε µία από αυτές τις οµάδες διαιρείται περαιτέρω από το χαρακτηριστικό x 2 (όπως φαίνεται από τις γραµµές H 1 και H 2 ). Το κύριο πρόβληµα µε αυτόν τον αλγόριθµο είναι ότι παράγει οµάδες 2 διαστάσεων. Για τιµές διάστασης µεγαλύτερης του 2 (π.χ. 100 είναι ένας τυπικός αριθµός σε εφαρµογές ανάκτησης πληροφορίας) ο αριθµός των οµάδων που παράγονται από τον αλγόριθµο είναι τόσο µεγάλος όπου το σύνολο των δεδοµένων θα διαιρείται σε υπερβολικά µικρές οµάδες. Σκληροί (hard) και ασαφείς (fuzzy): Ένας σκληρός αλγόριθµος οµαδοποίησης κατανέµει κάθε δείγµα σε µία ξεχωριστή οµάδα κατά τη διάρκεια της λειτουργίας του και των αποτελεσµάτων του. Μια ασαφής µέθοδος οµαδοποίησης αναθέτει βαθµούς συµµετοχής σε αρκετές οµάδες για κάθε αρχικό δείγµα. Οι ασαφείς οµαδοποιήσεις µπορούν να µετατραπούν σε σκληρές οµαδοποιήσεις αναθέτοντας το κάθε δείγµα σε εκείνη την οµάδα µε την µεγαλύτερη µέτρηση συµµετοχής. 13

15 Οµαδοποίηση δεδοµένων Ντετερµινιστικοί (deterministic) και στοχαστικοί (stochastic): Ο χαρακτηρισµός αυτός έχει να κάνει περισσότερο µε τις διαιρετικές προσεγγίσεις και έχει σχεδιαστεί για να βελτιστοποιεί τη συνάρτηση τετραγωνικού σφάλµατος (squared error). Αυτή η βελτιστοποίηση µπορεί να συνοδευτεί χρησιµοποιώντας παραδοσιακές τεχνικές ή µέσα από τυχαία αναζήτηση του χώρου καταστάσεων ο οποίος αποτελείται από όλες τις πιθανές επιγραφές Αυξητικοί (incremental) και µη-αυξητικοί (non-incremental): Αυτός ο χαρακτηρισµός αναφέρεται όταν το µέγεθος των δεδοµένων που πρόκειται να οµαδοποιηθούν είναι µεγάλο και περιορισµοί στον χρόνο εκτέλεσης και το χώρο µνήµης επηρεάζουν τον αλγόριθµο. Η µεθοδολογία της οµαδοποίησης έως τώρα δεν περιείχε πολλά παραδείγµατα αλγορίθµων οµαδοποίησης που να χρησιµοποιούν µεγάλα σύνολα δεδοµένων, αλλά η σηµερινές τεχνολογίες της εξόρυξης δεδοµένων έχουν αναπτύξει αλγορίθµους οµαδοποίησης που µειώνουν τον αριθµό των σαρώσεων του συνόλου δειγµάτων (scan the pattern set), µειώνουν τον αριθµό των δειγµάτων που εξετάζονται κατά τη διάρκεια εκτέλεσης ή µειώνουν το µέγεθος των δοµών δεδοµένων που χρησιµοποιούνται για τις λειτουργίες του αλγορίθµου. 2.4 Ιεραρχικοί αλγόριθµοι οµαδοποίησης Η λειτουργία ενός ιεραρχικού αλγορίθµου οµαδοποίησης φαίνεται στο επόµενο σχήµα (Σχ. 2.5) όπου χρησιµοποιείται ένα σύνολο δεδοµένων δύο διαστάσεων (δηλαδή εξετάζονται οι τιµές τους σε δύο διαφορετικά χαρακτηριστικά). Το σχήµα αναπαριστά επτά δείγµατα, τα A, B, C, D, E, F και G σε τρία διαφορετικά clusters.ένας ιεραρχικός αλγόριθµος κατασκευάζει ένα δενδρόγραµµα που αναπαριστά την εµφωλευµένη οµαδοποίηση των δειγµάτων και τα επίπεδα οµοιότητας στα οποία σχηµατίζονται οι οµάδες. 14

16 Οµαδοποίηση δεδοµένων Σχήµα 2.5 εδοµένα 2 διαστάσεων κατά την οµαδοποίηση από ιεραρχικό αλγόριθµο. Ένα δενδρόγραµµα που αντιστοιχεί στα επτά σηµεία του προηγούµενου σχήµατος µπορεί να είναι το επόµενο (Σχ. 2.6). Το δενδρόγραµµα µπορεί να διασπαστεί σε διαφορετικά επίπεδα ώστε να σχηµατίσει διαφορετικές οµαδοποιήσεις των δεδοµένων. Σχήµα 2.6 ενδρόγραµµα που αναπαριστά όλα τα διαφορετικά επίπεδα όπου µπορούν να δηµιουργηθούν οµάδες. Οι περισσότεροι ιεραρχικοί αλγόριθµοι οµαδοποίησης διαφοροποιούνται στη χρήση µοναδικού συνδέσµου (single link), πλήρους συνδέσµου (complete 15

17 Οµαδοποίηση δεδοµένων link) και ελάχιστης διαφοράς. Οι αλγόριθµοι που χρησιµοποιούν µοναδικό και πλήρες σύνδεσµο είναι οι πιο δηµοφιλείς. Τα δύο αυτά είδη διαφέρουν στον τρόπο που χαρακτηρίζουν την οµοιότητα σε ένα ζευγάρι οµάδων. Για τους αλγόριθµους που χρησιµοποιούν τη µέθοδο απλού συνδέσµου η απόσταση µεταξύ δύο οµάδων είναι η ελάχιστη µεταξύ όλων των αποστάσεων που σχηµατίζονται από όλα τα ζεύγη δειγµάτων που απαρτίζουν κάθε οµάδα. Στους αλγόριθµους πλήρους συνδέσµου, η απόσταση ανάµεσα σε δύο οµάδες είναι η µέγιστη ανάµεσα σε όλα τα ζεύγη δειγµάτων των δύο οµάδων. Σε κάθε περίπτωση, οι δύο οµάδες ενώνονται για να σχηµατίσουν µία µεγαλύτερη η οποία βασίζεται στα κριτήρια ελάχιστης απόστασης. Οι αλγόριθµοι πλήρους συνδέσµου σχηµατίζουν στενά συνδεδεµένες και συµπαγείς οµάδες. Οι αλγόριθµοι απλού συνδέσµου, αντίθετα, υστερούν δηµιουργώντας στα αποτελέσµατά τους ένα φαινόµενο αλυσίδας. Παράγουν οµάδες οι οποίες έχουν την τάση να είναι επιµήκεις και µε ανακατεµένα δεδοµένα. Τα επόµενα σχήµατα (Σχ. 2.7 και Σχ. 2.8), δείχνουν οµάδες οι οποίες παράγονται από αλγορίθµους µοναδικού και πλήρους συνδέσµου. Σχήµα 2.7 Οµαδοποίηση µε µοναδικό σύνδεσµο. 16

18 Οµαδοποίηση δεδοµένων Σχήµα 2.8 Οµαδοποίηση µε πλήρη σύνδεσµο. Τα δύο σχήµατα δείχνουν δύο οµάδες που διαχωρίζονται από µια «γραµµή» δειγµάτων χωρίς σηµασία (noisy patterns). Στο πρώτο σχήµα βλέπουµε τα αποτελέσµατα του αλγορίθµου µοναδικού συνδέσµου, ενώ στο δεύτερο το σχηµατισµό του πλήρους συνδέσµου. Οι οµάδες που σχηµατίστηκαν από τον αλγόριθµο πλήρους συνδέσµου είναι περισσότερο συµπαγείς σε σύγκριση µε αυτές που σχηµατίστηκαν από τον απλό σύνδεσµο. Η οµάδα µε την ετικέτα 1 είναι επιµήκης εξαιτίας των δειγµάτων που προκαλούν το θόρυβο (εµφανίζονται µε *). Ο αλγόριθµος απλού συνδέσµου είναι πολύ διαφορετικός σε άλλη περίπτωση. Για παράδειγµα ο αλγόριθµος µπορεί να δηµιουργήσει οµόκεντρες οµάδες όπως αυτές που φαίνονται στο επόµενο σχήµα (Σχ. 2.9) σε αντίθεση µε τον αλγόριθµο πλήρους συνδέσµου που δεν έχει τέτοιες δυνατότητες. Σε πραγµατικές όµως εφαρµογές έχει διαπιστωθεί ότι οι αλγόριθµοι πλήρους συνδέσµου παράγουν περισσότερο χρήσιµες ιεραρχίες. 17

19 Οµαδοποίηση δεδοµένων Σχήµα 2.9 Οµόκεντρες οµάδες ύστερα από οµαδοποίηση µε χρήση αλγορίθµου απλού συνδέσµου Παράδειγµα συσσωρευτικοσ υσσωρευτικού αλγορίθµο θµου απλού συνδέσµου 1. Τοποθέτησε κάθε δείγµα σε µια ξεχωριστή οµάδα. Κατασκεύασε µια λίστα από αποστάσεις µεταξύ των δειγµάτων για κάθε δυνατό ζεύγος δείγµατος και ταξινόµησε τη λίστα σε αύξουσα σειρά. 2. ιέσχισε την ταξινοµηµένη λίστα των αποστάσεων, σχηµατίζοντας για κάθε ξεχωριστή τιµή ανοµοιότητας d k ένα γράφο δειγµάτων όπου τα ζεύγη δειγµάτων µικρότερα από d k συνδέονται µε µία ακµή αυτού του γράφου. Εάν όλα τα δείγµατα είναι µέλη συνδεδεµένου γράφου σταµάτα. ιαφορετικά εκτέλεσε πάλι το βήµα. 3. Το αποτέλεσµα του αλγορίθµου είναι µία εµφωλευµένη ιεραρχία γράφων η οποία µπορεί να «κοπεί» σε οποιοδήποτε επιθυµητό επίπεδο ανοµοιότητας δηµιουργώντας µία οµάδα, η οποία περιγράφεται από απλά συνδεδεµένα στοιχεία του αντίστοιχου γράφου Παράδειγµα συσσωρευτικού αλγορίθµου πλήρους συνδέσµου 1. Τοποθέτησε κάθε δείγµα σε µια ξεχωριστή οµάδα. Κατασκεύασε µια λίστα από αποστάσεις µεταξύ των δειγµάτων για κάθε δυνατό ζεύγος δείγµατος και ταξινόµησε τη λίστα σε αύξουσα σειρά. 2. ιέσχισε την ταξινοµηµένη λίστα αποστάσεων, σχηµατίζοντας για κάθε ξεχωριστή τιµή ανοµοιότητας d k ένα γράφο για τα δείγµατα όπου τα 18

20 Οµαδοποίηση δεδοµένων ζεύγη δειγµάτων µικρότερα από d k συνδέονται µε µία ακµή του γράφου. Εάν όλα τα δείγµατα είναι µέλη πλήρους συνδεδεµένου γράφου, σταµάτα. 1. Το αποτέλεσµα του αλγορίθµου είναι µία εµφωλευµένη ιεραρχία γράφων η οποία µπορεί να κοπεί σε οποιοδήποτε επιθυµητό επίπεδο ανοµοιότητας σχηµατίζοντας µία οµάδα η οποία περιγράφεται από πλήρως συνδεδεµένα στοιχεία στον αντίστοιχο γράφο. Οι ιεραρχικοί αλγόριθµοι είναι περισσότερο ασταθείς από τους διαιρετικούς. Για παράδειγµα, ο αλγόριθµος οµαδοποίησης απλού συνδέσµου λειτουργεί καλά σε σύνολα δεδοµένων που περιέχουν µη ισοτροπικά δεδοµένα συµπεριλαµβάνοντας καλώς διαχωρισµένα, αλυσιδωτά και οµόκεντρα δεδοµένα, ενώ ένας τυπικός διαιρετικός αλγόριθµος όπως ο k-means λειτουργεί µόνο σε σύνολα δεδοµένων που έχουν ισοτροπικές οµάδες. Η πολυπλοκότητα χρόνου και χώρου των διαιρετικών αλγορίθµων είναι µικρότερη σε σχέση µε τους ιεραρχικούς. Είναι ακόµη εφικτό να δηµιουργηθούν υβριδικοί αλγόριθµοι που συνδυάζουν µόνο τα θετικά στοιχεία των δύο κατηγοριών Παράδειγµα ιεραρχικού συσσωρευτικού αλγορίθµου 1. Υπολόγισε το πίνακα γειτνίασης που θα περιέχει την απόσταση µεταξύ κάθε ζεύγους δειγµάτων. Μεταχειρίσου κάθε δείγµα ως οµάδα. 2. Βρες το περισσότερο όµοιο ζεύγος οµάδων χρησιµοποιώντας τον πίνακα γειτνίασης. Ένωσε αυτές τις δύο οµάδες σε µία οµάδα. Ενηµέρωσε το πίνακα γειτνίασης ώστε να απεικονίζει την ένωση. 3. Αν όλα τα δείγµατα βρεθούν σε µία οµάδα, σταµάτα. ιαφορετικά πήγαινε ξανά στο βήµα 2. Στηριζόµενοι στο τρόπο που ενηµερώνεται ο πίνακας γειτνίασης (βήµα 2), µπορούν να σχεδιαστούν ένα πλήθος τεχνικών. Οι ιεραρχικοί αλγόριθµοι διαίρεσης (hierarchical divisive) αρχίζουν µε µία οµάδα που περιέχει όλα τα αντικείµενα (δείγµατα) και χωρίζουν την οµάδα σε µικρότερες στηριζόµενοι σε ένα κριτήριο που πρέπει να ικανοποιεί κάθε ξεχωριστή οµάδα. [1] 19

21 Οµαδοποίηση δεδοµένων 2.5 ιαιρετικοί αλγόριθµοι οµαδοποίησης Οι διαιρετικοί αλγόριθµοι οµαδοποίησης διατηρούν µία µοναδική οµάδα δεδοµένων αντί για µία δοµή οµαδοποίησης όπως ένα δενδρόγραµµα το οποίο κατασκευάζεται από µία ιεραρχική τεχνική. Οι διαιρετικές τεχνικές έχουν πλεονεκτήµατα σε εφαρµογές που χρησιµοποιούν µεγάλα σύνολα δεδοµένων των οποίων η κατασκευή δενδρογράµµατος είναι υπολογιστικά απαγορευτικό. Ένα πρόβληµα που συνοδεύει την χρήση των διαιρετικών αλγορίθµων είναι η επιλογή του αριθµού των παραγόµενων οµάδων. Οι διαιρετικές τεχνικές συνήθως παράγουν οµάδες βελτιστοποιώντας ένα κριτήρίο το οποίο είτε καθορίζεται τοπικά (σε ένα υποσύνολο των δειγµάτων) ή ολικά (ορίζεται δηλαδή σε όλα τα δείγµατα). Συνδυαστική αναζήτηση όλου του συνόλου για την βέλτιστη τιµή της συνάρτησης είναι υπολογιστικά απαγορευτική. Ωστόσο, στην πράξη o αλγόριθµος εκτελείται πολλές φορές µε διαφορετικές αρχικές καταστάσεις και η καλύτερη παραµετροποίηση που επιτυγχάνεται από το σύνολο των εκτελέσεων χρησιµοποιείται ως έξοδος του αλγορίθµου. [1] Αλγόριθµοι τετραγωνικού σφάλµατος (Squared Error Algorithms) Το περισσότερο προφανές και συχνότερα χρησιµοποιούµενο κριτήριο είναι το κριτήριο τετραγωνικού σφάλµατος, το οποίο λειτουργεί καλά µε αποµονωµένες και συµπαγείς οµάδες. Το τετραγωνικό σφάλµα µιας οµαδοποίησης C ενός συνόλου δειγµάτων P (το οποίο περιέχει K clusters) είναι ίσο µε: K j 2 e ( P, C) = n j= 1 i= 1 x ( j) i c j 2 (j) όπου x i είναι το i-στο δείγµα που ανήκει στην j-οστή οµάδα και c j είναι το κέντρο της j-οστής οµάδας. Ο k-means είναι ο απλότερος και ο περισσότερο χρησιµοποιούµενος αλγόριθµος που χρησιµοποιεί το κριτήριο τετραγωνικού σφάλµατος. Ξεκινά µε ένα τυχαία επιλεγµένο αρχικό δείγµα και αναθέτει τα δείγµατα σε οµάδες στηριζόµενος στην οµοιότητα ανάµεσα στο δείγµα και στο κέντρο της οµάδας έως να ικανοποιηθεί ένα κριτήριο σύγκλισης (π.χ. ώσπου να µην υπάρχει 20

22 Οµαδοποίηση δεδοµένων µετακίνηση ενός δείγµατος από µία οµάδα σε µια άλλη ή το τετραγωνικό σφάλµα σταµατά να µειώνεται σηµαντικά ύστερα από ένα αριθµό επαναλήψεων). Ο αλγόριθµος k-means χρησιµοποιείται ευρέως λόγω της ευκολίας του στην υλοποίηση και στην χρονική του πολυπλοκότητα η οποία είναι O(n), όπου n ο αριθµός των δειγµάτων. Ένα σηµαντικό πρόβληµα του αλγορίθµου είναι η ευαισθησία του στην επιλογή του αρχικού διαχωρισµού (partition) και µπορεί να συγκλίνει σε ένα τοπικό ελάχιστο του κριτηρίου (το οποίο είναι ουσιαστικά µια συνάρτηση) εάν ο αρχικός διαχωρισµός δεν επιλεγεί κατάλληλα. Το επόµενο σχήµα (Σχ. 2.10) δείχνει 7 δείγµατα δύο διαστάσεων. Σχήµα 2.10 Εφτά δείγµατα δύο διαστάσεων και οι οµάδες στις οποίες κατατάσσονται µε διαφορετικούς αλγορίθµους. Εάν ξεκινήσουµε µε τα δείγµατα A, B και C ως αρχικούς µέσους γύρω από τους οποίους χτίζονται τρεις οµάδες, καταλήγουµε τελικά στον επόµενο διαχωρισµό; A, B, C, D, E, F, G το οποίο φαίνεται από τις ελλείψεις. Η τιµή του κριτηρίου τετραγωνικού σφάλµατος είναι πολύ υψηλότερη για αυτό το διαχωρισµό σε σχέση µε τον βέλτιστο δυνατό διαχωρισµό ο οποίος είναι: A, B, C, D, E, F, G και φαίνεται από τα ορθογώνια του σχήµατος. Σε αυτό το διαχωρισµό αποδίδεται το ολικό ελάχιστο της τιµής του τετραγωνικού σφάλµατος για µια οµαδοποίηση που περιέχει τρεις οµάδες. Η σωστή επίλυση επιτυγχάνεται διαλέγοντας για παράδειγµα τις οµάδες A, D και F ως αρχικούς µέσους. 21

23 Οµαδοποίηση δεδοµένων Παράδειγµα αλγορίθµου οµαδοποίησης τετραγωνικού λάθους 1. ιάλεξε έναν αρχικό διαχωρισµό των δειγµάτων µε ένα συγκεκριµένο αριθµό οµάδων και κέντρων για το κάθε ένα. 2. Ανέθεσε κάθε δείγµα στο κοντινότερο κέντρο κάποιας οµάδας και υπολόγισε τα νέα κέντρα κάθε οµάδας. Επανέλαβε αυτή τη διαδικασία έως να επέλθει σύγκλιση, δηλαδή, έως η συµµετοχή του κάθε δείγµατος σε κάποια οµάδα είναι σταθερή. 3. Ένωσε και διέσπασε οµάδες στηριζόµενος σε κάποιες ευριστικές πληροφορίες, επαναλαµβάνοντας προαιρετικά το 2 ο βήµα Ο αλγόριθµος k-means 1. ιάλεξε k κέντρα οµάδων τέτοια ώστε να συµπίπτουν µε k τυχαία επιλεγµένα δείγµατα ή k τυχαία ορισµένα σηµεία µέσα στο χώρο που ορίζει το σύνολο δειγµάτων. 2. Ανέθεσε κάθε δείγµα στο κοντινότερο κέντρο οµάδας. 3. Υπολόγισε ξανά όλα τα κέντρα των οµάδων χρησιµοποιώντας τις τρέχουσες συµµετοχές όλων των δειγµάτων κάθε ξεχωριστής οµάδας. 4. Αν κάποιο κριτήριο σύγκλισης δεν έχει ικανοποιηθεί πήγαινε στο βήµα 2. Τυπικά κριτήρια σύγκλισης είναι Καθόλου (ή πολύ µικρή) ανακατάταξη των δειγµάτων σε νέα κέντρα οµάδων Ελάχιστη µείωση του τετραγωνικού σφάλµατος. Έχουν προταθεί αρκετές παραλλαγές του αλγορίθµου k-means. Μερικές από αυτές προσπαθούν να επιτύχουν ένα καλό αρχικό διαχωρισµό έτσι ώστε ο αλγόριθµος να µπορέσει να βρει το τοπικό ελάχιστο του κριτηρίου. Άλλες παραλλαγές επιτρέπουν τον διαχωρισµό και την ένωση των οµάδων που προκύπτουν σαν αποτέλεσµα. Τυπικά µία οµάδα διαχωρίζεται όταν η διακύµανση της είναι µεγαλύτερη από ένα όριο και δύο οµάδες ενώνονται όταν η απόσταση µεταξύ των κέντρων τους είναι µικρότερη από ένα άλλο όριο. Χρησιµοποιώντας αυτή την παραλλαγή, είναι δυνατόν να εντοπίσουµε το βέλτιστο διαχωρισµό ξεκινώντας από οποιονδήποτε αυθαίρετο αρχικό διαχωρισµό, µε την προϋπόθεση ότι παρέχονται κατάλληλες τιµές ορίων. Ο αλγόριθµος ISODATA χρησιµοποιεί τη τεχνική της ένωσης και του 22

24 Οµαδοποίηση δεδοµένων διαχωρισµού των οµάδων. Εάν δοθεί στον εν λόγω αλγόριθµο ο διαχωρισµός της έλλειψης που φαίνεται στο προηγούµενο σχήµα σαν αρχικός διαχωρισµός, θα παραχθεί ο βέλτιστος διαχωρισµός τριών-οµάδων. Ο ISODATA πρώτα θα ενώσεις τις οµάδες A και B,C σε µία οµάδα εξαιτίας της απόστασης των κέντρων τους και έπειτα θα διαχωρίσει την οµάδα D,E,F,G, η οποία έχει µεγάλη διακύµανση σε δύο οµάδες D,E και F,G Η θεωρία γράφων στην οµαδοποίηση Ο περισσότερο γνωστός αλγόριθµος οµαδοποίησης της θεωρίας γράφων στηρίζεται στην κατασκευή ενός ελάχιστου ζευγνύοντος δέντρου (minimal spanning tree) των δεδοµένων και στη διαγραφή των ακµών του µε το µεγαλύτερο µήκος για να δηµιουργηθούν οι οµάδες. Το επόµενο σχήµα (Σχ. 2.11) απεικονίζει ένα τέτοιο δέντρο το οποίο αποτελείται από εννέα σηµεία δύο διαστάσεων [1]. Σχήµα 2.11 Χρήση δέντρων για την οµαδοποίηση δεδοµένων. «Σπάζοντας» την ακµή µε όνοµα CD µε µήκος 6 µονάδες σχηµατίζονται δύο οµάδες (A, B, C και D, E, F, G, H, I). Η δεύτερη οµάδα µπορεί να διαιρεθεί επιπλέον σε δύο οµάδες «σπάζοντας» την ακµή EF η οποία έχει µήκος 4.5 µονάδες. 23

25 Υπηρεσίες Καταλόγων Ενότητα 3: Υπηρεσίες Καταλόγων 3.1 Εισαγωγή στους Καταλόγ αταλόγους Ο Κατάλογος είναι ένα είδος βάσης δεδοµένων η οποία είναι µε τέτοιον τρόπο δοµηµένη ώστε να είναι κατάλληλη για την εύκολη ανάκτηση, ανάγνωση και αναζήτηση ανάµεσα σε µεγάλο όγκο πληροφοριών δεδοµένων που αφορούν ένα ίδρυµα ή µια επιχείρηση. Οι υπηρεσίες καταλόγων διευκολύνουν τη πρόσβαση σε πληροφορίες οι οποίες οργανώνονται κάτω από ένα πλήθος εφαρµογών. [7] 3.2 Τι είναι υπηρεσίες καταλόγων (Directory ( services) Υπηρεσία καταλόγων είναι µια βάση δεδοµένων που επιτρέπει µόνο εξουσιοδοτηµένους χρήστες και υπηρεσίες να βρουν πληροφορίες σχετικές µε ανθρώπους, υπολογιστές, δικτυακές συσκευές αλλά και εφαρµογές. Οι κυριότερες διαφορές των υπηρεσιών καταλόγου σε σύγκριση µε µια σχεσιακή βάση δεδοµένων φαίνονται παρακάτω: [7] Η υπηρεσία καταλόγων χρησιµοποιείται (εποµένως είναι και βελτιστοποιηµένη) κυρίως για ανάγνωση. ικαιώµατα εγγραφής έχουν πολύ λίγοι χρήστες και για ένα µικρό κοµµάτι των δεδοµένων. Αντίθετα οι βάσεις δεδοµένων έχουν αυξηµένες απαιτήσεις τόσο σε ανάγνωση όσο και εγγραφή µε αποτέλεσµα την απαίτηση για όσο το δυνατόν συχνότερη ενηµέρωση των δεδοµένων. Σηµαντική διαφορά επίσης, αποτελεί το γεγονός ότι σε πολλές περιπτώσεις υλοποίησης λογισµικού υπηρεσιών καταλόγου δεν υποστηρίζεται η έννοια της συναλλαγής (transaction). Μια συναλλαγή είναι µια ατοµική λειτουργία (µε την έννοια των λειτουργικών συστηµάτων), δηλαδή είτε θα εκτελεσθεί το σύνολο των εντολών που αυτή περιέχει ή θα αποτύχει εντελώς. Οι βάσεις δεδοµένων συνήθως 24

26 Υπηρεσίες Καταλόγων υποστηρίζουν τέτοιου είδους συναλλαγές, γεγονός που καθιστά την υλοποίηση τους και την λειτουργία τους περισσότερο πολύπλοκη. Τέλος, σηµαντική διαφορά µεταξύ των βάσεων δεδοµένων και των υπηρεσιών καταλόγου είναι ο τρόπος µε τον οποίο πραγµατοποιείται η πρόσβαση στα δεδοµένα. Τα περισσότερα συστήµατα βάσεων δεδοµένων υποστηρίζουν την πρόσβαση στα δεδοµένα µε χρήση της SQL (Structured Query Language) η οποία υποστηρίζει πολύπλοκες ενηµερώσεις και συναρτήσεις αναζητήσεων. Αντίθετα η πρόσβαση στα δεδοµένα των υπηρεσιών καταλόγου πραγµατοποιείται µε χρήση ενός πολύ απλουστευµένου πρωτοκόλλου. Τα τελευταία χρόνια η ανάγκη για πληροφορίες µε µορφή καταλόγων γίνεται ιδιαίτερα δηµοφιλής και αποτελεί µια κοινή επιλογή για κατανεµηµένες εφαρµογές. Στον τοµέα της πληροφορικής, καταλόγους συναντάµε σε πολλές περιπτώσεις. Το password file του UNIX είναι ένας κατάλογος λογαριασµών. Η υπηρεσία ονοµατολογίας (DNS) λειτουργεί επίσης σαν µια υπηρεσία καταλόγου παρέχοντας πληροφορίες σχετικά µε τους υπολογιστές ενός δικτύου. Οι εφαρµογές υπολογιστών περιέχουν συχνά την έννοια του καταλόγου. Ο Apache web server αποθηκεύει τα ονόµατα και τους κωδικούς πρόσβασης σε ένα αρχείο δεδοµένων το οποίο αποτελεί έναν κατάλογο χρηστών. [7] 3.3 Lightweight Directory Access Protocol Ο LDAP (Lightweight Directory Access Protocol) είναι µια τεχνολογία που παρέχει πρόσβαση σε πληροφορίες καταλόγων χρησιµοποιώντας δοµές δεδοµένων ανάλογες του πρωτοκόλλου X.500. Η τεχνολογία διαδίδεται περισσότερο εξ αιτίας της επεκτασιµότητας και της συµβατότητας µε τις υπάρχουσες εφαρµογές. Όπως γίνεται αντιληπτό και από το όνοµά του ο LDAP είναι η «ελαφριά» - lightweight έκδοση του πρωτοκόλλου πρόσβασης καταλόγων. [7] Είναι απόγονος του X.500 (το οποίο είναι heavyweight) του πιο συνηθισµένου πρωτοκόλλου διαχείρισης καταλόγων. Παρότι χρησιµοποιούν ίδια δοµή για την αναπαράσταση των δεδοµένων έχουνε αρκετές βασικές διαφορές µεταξύ τους.[6] 25

27 Υπηρεσίες Καταλόγων Οι κυριότερες διαφορές µπορούν να συνοψιστούν στις παρακάτω: [6] Ο LDAP λειτουργεί στα επίπεδα TCP/IP ενώ αντίστοιχα το X.500 στο πρωτόκολλο OSI. Το πρωτόκολλο κωδικοποίησης στοιχείων είναι λιγότερο σύνθετο σε σύγκριση µε του X.500. Κάθε LDAP server διαθέτει ένα µηχανισµό αναφοράς. Εάν δε µπορεί να απαντήσει σε µία αίτηση πελάτη τότε δίνει ένα URL ενός άλλου LDAP server που πιθανώς να µπορεί να ικανοποιήσει την αίτηση του χρήστη. Αντίθετα ο X.500 server βρίσκει και επικοινωνεί µόνος του µε τον εναλλακτικό server και επιστρέφει την απάντηση χωρίς να παρουσιάσει στον client που είναι αποθηκευµένα τα δεδοµένα. Συνεπώς ο LDAP ακολουθεί την εξής διαδικασία: Όταν ένας client στείλει ένα ερώτηµα σε ένα server και αν σε αυτόν δεν είναι διαθέσιµη η απάντηση τότε έρχεται µία αναφορά σε έναν άλλο server που πιθανότατα έχει την απάντηση. Η διαδικασία φαίνεται στο επόµενο σχήµα (Σχ. 3.1). [6] Σχήµα 3.1 ιαδικασία ερωτήµατος στον LDAP. Σύµφωνα µε το σχήµα η διαδικασία ερωτήµατος στον LDAP ακολουθεί τα επόµενα βήµατα: 1. Ο πελάτης ζητεί πληροφορίες 2. O server 1 επιστρέφει πληροφορίες για το µηχάνηµα που µπορεί να δώσει απάντηση στο ερώτηµα του πελάτη 3. Ο πελάτης ζητά εκ νέου πληροφορίες στο server 2. 26

28 Υπηρεσίες Καταλόγων 4. Ο server 2 επιστρέφει τα δεδοµένα στο πελάτη. Οι λειτουργίες του LDAP στηρίζονται στο client/server µοντέλο. Κάθε LDAP client χρησιµοποιεί το πρωτόκολλο LDAP το οποίο τρέχει πάνω από το TCP/IP και έχει τη δυνατότητα να ανακτήσει τα δεδοµένα τα οποία είναι αποθηκευµένα στη βάση δεδοµένων του directory server. Οι LDAP clients ελέγχονται είτε από έναν εγκατεστηµένο LDAP server ή από εφαρµογή η οποία συνεργάζεται µε τον LDAP. Στο επόµενο σχήµα (Σχ. 3.2) βλέπουµε γραφικά την αρχιτεκτονική του πρωτοκόλλου LDAP. Σχήµα 3.2 Το πρωτόκολλο LDAP. O client δηµιουργεί ένα µήνυµα που περιέχει ένα αίτηµα και το αποστέλλει στο server. Ο server επεξεργάζεται το αίτηµα και αποστέλλει τα αποτελέσµατα στον client σαν µια σειρά µηνυµάτων. Επειδή το πρωτόκολλο LDAP βασίζεται στη µεταφορά µηνυµάτων, επιτρέπει στον client να στέλνει ταυτόχρονα πολλά αιτήµατα. [7] O LDAP είναι βελτιστοποιηµένος για εκείνες τις περιπτώσεις όπου τα δεδοµένα γενικά διαβάζονται περισσότερες φορές από το να γράφονται, έτσι δε συµβαίνουν συχνές συναλλαγές. Η δοµή των δεδοµένων µπορεί να έχει δύο µορφές: Ιεραρχική µορφή δεδοµένων, όπου οι εγγραφές του LDAP έχουν δενδρική µορφή η οποία έχει το όνοµα ένδρο πληροφοριών καταλόγου Directory Information Tree (Σχ. 3.3). [6] 27

29 Υπηρεσίες Καταλόγων Σχήµα 3.3 ενδρική µορφή LDAP δεδοµένων. Επίπεδη µορφή δεδοµένων όπου σχεδόν όλα τα δεδοµένα βρίσκονται στο ίδιο επίπεδο ιεραρχίας, δηλαδή όλες οι εγγραφές βρίσκονται κάτω από τον ίδιο κόµβο (Σχ. 3.4). [6] Σχήµα 3.4 Επίπεδη µορφή LDAP δεδοµένων. Το επόµενο σχήµα (Σχ. 3.5) δείχνει ένα µέρος του πλαισίου εργασίας (framework) του LDAP όπου πολλές συσκευές (π.χ. routers και εκτυπωτές) και servers µπορούν να διαχειριστούν τα δεδοµένα. [5] 28

30 Υπηρεσίες Καταλόγων Σχήµα 3.5 Πλαίσιο εργασίας του LDAP. Οι LDAP clients που συνδέονται µε τους LDAP servers µπορούν να πιστοποιηθούν µέσω µηχανισµών εξουσιοδότησης οι οποίοι µπορούν να υλοποιούν διάφορα πρωτόκολλα ασφάλειας. Η δηµιουργία αντιγράφων κατά την οποία ο βασικός LDAP server στέλνει ενηµερώσεις σε έναν server αντιγραφής (replication) µόνο για ανάγνωση είναι συνηθισµένη διαδικασία για τους συνεργαζόµενους LDAP servers. ύο στοιχεία είναι κρίσιµα στον LDAP: η ειδική βάση φτιαγµένη για το LDAP (backend db) και η µορφή αναπαράστασης των δεδοµένων (data representation) η οποία στηρίζεται στην XML.[5] 3.4 Οργάνωση δεδοµένων στον LDAP Οι κατάλογοι LDAP είναι βάσεις δεδοµένων οργανωµένες ως ιεραρχικά δέντρα αναπαριστώντας πληροφορίες για τον οργανισµό που περιγράφουν. Το επόµενο σχήµα (Σχ. 3.6) δείχνει ένας παράδειγµα ιεραρχίας τριών επιπέδων. 29

31 Υπηρεσίες Καταλόγων Σχήµα 3.6 Ιεραρχία τριών επιπέδων. Η δοµική µονάδα δεδοµένων του LDAP βασίζεται στην έννοια της εγγραφής. Μια εγγραφή αποτελείται από ένα σύνολο από χαρακτηριστικά (attributes) τα οποία είναι ενός συγκεκριµένου τύπου και µπορούν να έχουν µία ή περισσότερες τιµές. Κάθε χαρακτηριστικό σχετίζεται µε µια συγκεκριµένη σύνταξη η οποία ορίζει το είδος των τιµών που µπορούν να αποθηκευτούν. Το παρακάτω σχήµα (Σχ. 3.7) δείχνει τη σχέση µεταξύ µιας εγγραφής, των χαρακτηριστικών που αυτή έχει και των τιµών που έχουν αυτά. [7] Σχήµα 3.7 Σχέσεις εγγραφής, χαρακτηριστικών και τιµών. Σύµφωνα µε τα παραπάνω έχουµε το θεωρητικό υπόβαθρο για να εξηγήσουµε το σχήµα 3.6 αναλυτικά. Κάθε εγγραφή του LDAP αναγνωρίζεται και διαφοροποιείται από τις υπόλοιπες από ένα ξεχωριστό όνοµα (distinguished name dn) που δηλώνει τη θέση του στην ιεραρχία. Η δοµή της ιεραρχίας σχηµατίζει ένα δέντρο πληροφοριών καταλόγου (directory information tree - DIT) το οποίο αρχικοποιείται από τη ρίζα µε ένα rootdn. Το 30

32 Υπηρεσίες Καταλόγων ακρωνύµιο dc αποτελείται από τις λέξεις domain component, το ou organizational unit, το uid userid. Άρα το rootdn από το DIT του σχήµατος µεταχειρίζεται δεδοµένα χρηστών ενός οργανισµού στην Ελλάδα (dc = organization-name,dc=gr). Εποµένως το dn για την εισαγωγή ενός εξουσιοδοτηµένου χρήστη θα είναι uid=avakali, ou=people, dc=organizationname, dc=gr. Στη παράγραφο 3.2 αναφερθήκαµε στις διαφορές των υπηρεσιών καταλόγου µε µια σχεσιακή βάση δεδοµένων. Ειδικά για τον LDAP, µπορούµε να αναφέρουµε κάποιες επιπλέον διαφορές µε τις βάσεις δεδοµένων: Στην αναπαράσταση και δοµή των δεδοµένων, Στα οφέλη και κόστη λειτουργίας. Στις σχεσιακές βάσεις δεδοµένων οι χρήστες ορίζουν το σχήµα (το «τρόπο αναπαράστασης»), αντίθετα στον LDAP ένα κεντρικό σχήµα ελέγχει την ιεραρχία καταλόγων. Ακόµα, ενώ τα αντικείµενα στον LDAP περιέχονται σε ιεραρχίες τα αντικείµενα των σχεσιακών βάσεων σχετίζονται το ένα µε το άλλο µέσω κυρίων και ξένων κλειδιών τα οποία συνδέονται µε αντικείµενα δεδοµένων. Επιπλέον οι τύποι και οι δοµές δεδοµένων στον LDAP είναι περισσότερο ευέλικτες και επεκτάσιµες [5]. 3.5 Συναλλαγές και ερωτήσεις Στις σχεσιακές βάσεις δεδοµένων, ο επεξεργαστής ερωτήσεων είναι ανεξάρτητος από τις σχέσεις ανάµεσα στα αντικείµενα τις βάσης. Αντίθετα στον LDAP οι σχέσεις αυτές γίνονται αντιληπτές κατά τη διαδικασία των ερωτηµάτων. Τα ερωτήµατα στον LDAP µπορούν να ποικίλουν αναλόγως µε το επίπεδο του DIT στο οποίο ξεκινά η αναζήτηση. Για παράδειγµα µπορούµε να έχουµε τους επόµενους τύπους ερωτηµάτων: Query 1: ldapsearch -h localhost b dc=organization-name,dc=gr uid=avakali Query 2: ldapsearch -h localhost -b ou=people,dc=organization-name,dc=gr businesscategory=assistant Professor 31

33 Υπηρεσίες Καταλόγων Η παράµετρος h δηλώνει τον υπολογιστή στον οποίο θα εκτελεστεί το ερώτηµα και b δηλώνει το σηµείο στο DIT στο οποίο θα ξεκινήσει η εύρεση. Το πρώτο ερώτηµα αναφέρεται στην εγγραφή του χρήστη µε uid=avakali (η εύρεση ξεκινά από το κλαδί µε dn dc=organization-name, dc=gr ), ενώ το δεύτερο ερώτηµα αναφέρεται σε όλες τις εγγραφές για τις οποίες το χαρακτηριστικό buisinesscategory είναι ίσο µε Assistant Professor (ξεκινώντας από το κλαδί µε dn ou=people, dc=organization-name, dc=gr ). Αντίθετα µε τις σχεσιακές βάσεις δεδοµένων, ο LDAP δεν παρέχει υποστήριξη σε επίπεδο πρωτοκόλλου για σχεσιακή ακεραιότητα, συναλλαγές και άλλα στοιχεία διαχείρισης σχεσιακών βάσεων. Για παράδειγµα, επειδή µια εγγραφή του LDAP µπορεί να έχει µία τιµή οι πολλαπλές αταξινόµητες τιµές ο LDAP υποστηρίζει πεδία τιµών που µπορούν να είναι πολλαπλών τιµών. Αυτή η ιδιότητα έρχεται σε αντίθεση µε το πρώτο κανόνα κανονικοποίησης, ο οποίος επισηµαίνει ότι πεδία µε επαναλαµβανόµενες τιµές πρέπει να τοποθετηθούν σε διαφορετικούς πίνακες. Ακόµα ο LDAP δεν υποστηρίζει στοιχεία των σχεσιακών βάσεων δεδοµένων όπως όψεις (views) και τα ερωτήµατα τύπου join [5]. 3.6 Οφέλη διαχείρισης και κόστη Στις σχεσιακές βάσεις δεδοµένων τόσο οι συναλλαγές εγγραφής όσο και η απόδοση κατά την ανάγνωση είναι κρίσιµες, ενώ στον LDAP οι κατάλογοι χρησιµοποιούνται περισσότερο για ανάγνωση. Επιπρόσθετα: Οι περισσότεροι LDAP servers είναι απλοί τόσο στην εγκατάσταση όσο και στην διαχείριση, ενώ αντίθετα τα RDBMS έχουν σηµαντικές απαιτήσεις διαχείρισης. Οι κατάλογοι LDAP µπορούν να κατανεµηθούν σε µεγάλου βαθµό, ενώ αντίθετα οι σχεσιακές βάσεις δεδοµένων είναι τυπικά κεντρικές σε ένα µόνο server. Οι LDAP servers µπορούν να αντιγράψουν (replicate) µερικά ή όλα τους τα δεδοµένα χρησιµοποιώντας µία ενσωµατωµένη και εύκολα παραµετροποιήσιµη τεχνολογία αντιγραφής. Τα δεδοµένα στον LDAP µπορούν να είναι κατανεµηµένα δηλαδή διαφορετικά µέρη των 32

34 Υπηρεσίες Καταλόγων δεδοµένων να βρίσκονται αποθηκευµένα σε διαφορετικούς υπολογιστές όπως περιγράφεται στο επόµενο σχήµα (Σχ. 3.8). Σχήµα 3.8 Κατανοµή των δεδοµένων σε διαφορετικές τοποθεσίες. Αρκετοί κατασκευαστές των RDBMS θεωρούν τέτοιες λειτουργίες σαν προαιρετικές και συνεπώς υπάρχει γι αυτές επιπλέον χρέωση. Επιπλέον, οι σχεσιακές βάσεις δεδοµένων υποστηρίζουν αποδοτικά σύνθετες σχέσεις µεταξύ αντικειµένων αντιθέτως, στους κατάλογους LDAP είναι δύσκολη η αναπαράσταση σχέσεων που δεν είναι ιεραρχικές ανάµεσα στα αντικείµενα [5]. 3.7 Τα αρχεία LDIF Τα LDIF αρχεία (Lightweight Directory Interchange Format) αναπαριστούν εγγραφές του LDAP σε µορφή κειµένου, τα οποία είναι κατανοητά από τους ανθρώπους. Με αυτό τον τρόπο είναι εύκολη η τροποποίηση των πληροφοριών που περιέχονται µέσα σε αυτά. Ένα παράδειγµα LDIF εγγραφής παρουσιάζεται στο επόµενο σχήµα (Σχ. 3.9). Κάθε εγγραφή έχει ένα dn και έναν αριθµό από objectclasses και χαρακτηριστικά τα οποία εξηγούνται στις objectclass που δηλώθηκαν.[7] 33

35 Υπηρεσίες Καταλόγων dn: uid=bmarshal,ou=people,dc=pisoftware,dc=com uid: bmarshal cn: Brad Marshall objectclass: account objectclass: posixaccount objectclass: top loginshell: /bin/bash uidnumber: 500 gidnumber: 120 homedirectory: /mnt/home/bmarshal gecos: Brad Marshall,,,, userpassword: cryptkdnoouyn7neac Σχήµα 3.9 Ένα LDIF αρχείο. Τα LDIF αρχεία χρησιµοποιούνται για την εξαγωγή δεδοµένων και το συγχρονισµό αυτών ανάµεσα στους servers µέσω της βοήθειας που προσφέρουν οι DSAs (Directory System Agents) Το πρώτο βήµα στο συγχρονισµό των καταλόγων του LDAP είναι η εξαγωγή όλων των περιεχοµένων ή µέρους του αρχικού καταλόγου και η µορφοποίηση των περιεχοµένων του σε ένα αρχείο LDIF. Το αρχείο LDIF στέλνεται σε ένα robot συγχρονισµού καταλόγων µε όνοµα DIRBOT. Μετά από πολλά βήµατα το τελικό LDIF αρχείο συγκρίνεται µε το αρχικό. Έπειτα αποφασίζονται οι εντολές εισαγωγής, διαγραφής ή τροποποίησης που απαιτούνται. Αυτές οι ενηµερώσεις χρησιµοποιούνται για να συγχρονιστούν όλοι οι κατάλογοι του LDAP [8]. 34

36 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE Ενότητα 4: Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE 4.1 Ο αλγόριθµος ROCK Ο αλγόριθµος ROCK (Robust Clustering using links) ανήκει στην τάξη των συσσωρευτικών ιεραρχικών αλγορίθµων. Προτού να περιγράψουµε τον αλγόριθµο θα εξηγήσουµε τις βασικές έννοιες του γείτονα, των κατηγορικών δεδοµένων, του συνδέσµου και της συνάρτηση κριτηρίου την οποία είδαµε προηγουµένως Γείτονες Ο γείτονας ενός σηµείου (µε τον όρο σηµείο εννοούµε ένα δείγµα και τη θέση που αυτό βρίσκεται στο χώρο σύµφωνα µε τις τιµές των χαρακτηριστικών του) είναι όλα εκείνα τα σηµεία που είναι παρόµοια µε αυτό. Ας υποθέσουµε ότι sim(p i,p j ) είναι µία συνάρτηση οµοιότητας και µπορεί να δώσει µια εκτίµηση για το πόσο κοντά βρίσκονται τα σηµεία p i και p j. Μπορούµε ακόµη να υποθέσουµε ότι η sim έχει πεδίο τιµών το διάστηµα 0 έως 1, όπου µεγάλες τιµές, κοντά στο 1 να δείχνουν ότι το ζεύγος σηµείων είναι περισσότερο όµοιο. οθέντος ενός ορίου θ ανάµεσα σε 0 και 1 ένα ζεύγος σηµείων p i και p j ορίζονται γείτονες αν ισχύει: sim(p i,p j ) θ Στην παραπάνω εξίσωση, το θ ορίζεται από το χρήστη και χρησιµοποιείται για να ελέγχει πόσο κοντά πρέπει να είναι δύο σηµεία για να θεωρούνται γείτονες. Συνεπώς οι υψηλές τιµές του θ αντιστοιχούν σε υψηλό όριο οµοιότητας των δύο σηµείων για να θεωρηθούν γείτονες. Άρα αν θεωρήσουµε θ=1 τότε ένα σηµείο θα έχει γείτονες µόνο τα σηµεία που ταυτίζονται στην ίδια ακριβώς θέση. Εάν θ=0, τότε όλοι οι δυνατοί συνδυασµοί ζευγών θεωρούνται µεταξύ τους γείτονες. Η απόφαση µας για τη τιµή του θ παίρνεται βάσει της τιµής για τον αριθµό γειτόνων που θέλουµε να υπάρχουν και το πόσο κοντά θέλουµε να βρίσκονται αυτοί [3]. 35

37 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE Κατηγορικά δεδοµένα Τα σύνολα δεδοµένων που χρησιµοποιεί ο ROCK έχουν κατηγορικά χαρακτηριστικά δηλαδή χαρακτηριστικά τα οποία οι επιτρεπτές τιµές χωρίζονται σε κατηγορίες. Τα κατηγορικά δεδοµένα είναι συνήθως σταθερής διάστασης δηλαδή κάθε ξεχωριστή εγγραφή δεδοµένων έχει τον ίδιο αριθµό χαρακτηριστικών. Ωστόσο είναι πιθανό ότι σε ορισµένες εγγραφές θα λείπουν ορισµένα χαρακτηριστικά. Ο χειρισµός των κατηγορικών χαρακτηριστικών που δεν έχουν τιµή στηρίζεται στη µοντελοποίηση κάθε εγγραφής σαν συναλλαγή. Για κάθε ένα χαρακτηριστικό A και κάθε πιθανή τιµή του v εισάγουµε το αντικείµενο A;v. Μία συναλλαγή T i για µια εγγραφή περιέχει το A;v αν και µόνο αν η τιµή η τιµή του χαρακτηριστικού A είναι v. Συνεπώς εάν η τιµή ενός χαρακτηριστικού λείπει, τότε η αντίστοιχη συναλλαγή δεν περιέχει αντικείµενα για το χαρακτηριστικό. Η συνάρτηση οµοιότητας µπορεί να χρησιµοποιηθεί για να υπολογιστεί η οµοιότητα ανάµεσα στις εγγραφές, καθορίζοντας την οµοιότητα ανάµεσα στις συναλλαγές. Είναι προφανές ότι η παραπάνω τακτική αποτελεί µόνο ένα παράδειγµα από πολλά που µπορούν να προταθούν για το χειρισµό των ελλιπών τιµών και ίσως να µη µπορεί να λειτουργήσει καλά για ένα άλλο πεδίο τιµών [3] Σύνδεσµοι Η οµαδοποίηση των σηµείων που βασίζεται µόνο στην εγγύτητα ή οµοιότητα ανάµεσα σε αυτά δεν είναι ικανή να ξεχωρίσει δυο οµάδες που δεν είναι καλά διαχωρισµένες. Αυτό συµβαίνει επειδή τα σηµεία διαφορετικών οµάδων είναι πολλές φορές γείτονες. Σ αυτή τη περίπτωση ακόµη και αν ένα ζεύγος σηµείων p i και p j ανήκουν σε διαφορετικές οµάδες είναι απίθανο το ζεύγος να έχει µεγάλο αριθµό κοινών γειτόνων. Αυτή η παρατήρηση χρησιµοποιήθηκε για τον ακόλουθο ορισµό του συνδέσµου ο οποίος στηρίζεται στην έννοια της εγγύτητας ανάµεσα στα σηµεία για να καθορίσει περισσότερο αποδοτικά πότε σηµεία που βρίσκονται κοντά µεταξύ τους ανήκουν στην ίδια οµάδα. Συνεπώς, ορίζουµε link(pi,pj) τον αριθµό των κοινών γειτόνων ανάµεσα στο pi και το pj. Από τον ορισµό των συνδέσµων φαίνεται ότι αν το link(pi,pj) έχει 36

38 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE µεγάλη τιµή, είναι πολύ πιθανό ότι τα σηµεία pi και pj ανήκουν στην ίδια οµάδα. Ο αλγόριθµος ROCK λοιπόν χρησιµοποιεί αυτή τη τιµή των συνδέσµων όταν παίρνει αποφάσεις σχετικά µε το ποια σηµεία θα ενώσει σε µία οµάδα. Οι περισσότερες υλοποιήσεις αλγορίθµων οµαδοποίησης έως τότε χρησιµοποιούσαν µετρικές που µετρούσαν µόνο τα υποψήφια προς οµαδοποίηση σηµεία. Σε κάθε βήµα δηλαδή τα σηµεία που ήταν περισσότερο όµοια ενωνόντουσαν σε µία οµάδα. Αυτή η µετρική οµοιότητας που χρησιµοποιείται σε ένα ζεύγος µόνο σηµείων λαµβάνει υπόψη της µόνο τα χαρακτηριστικά των δύο αυτών σηµείων και συνεπώς µπορεί να µετρήσει τοπικά µόνο χαρακτηριστικά. Συνεπώς η προσέγγιση είναι επιρρεπής σε λάθη αφού δύο ξεχωριστές οµάδες µπορεί να έχουν µερικά σηµεία τα οποία είναι πολύ κοντά το ένα στο άλλο και εποµένως οι δύο αυτές οµάδες να ενωθούν αδικαιολόγητα. Η τεχνική βασισµένη σε συνδέσµους υιοθετεί µια καθολική προσέγγιση στο πρόβληµα της οµαδοποίησης. Συνδέει την καθολική γνώση που µπορούµε να έχουµε για τα γειτονικά σηµεία µε τη σχέση των ξεχωριστών ζευγών από σηµεία. Καθώς ο ROCK αξιοποιεί την πληροφορία που του παρέχουν οι σύνδεσµοι ανάµεσα στα σηµεία, όταν παίρνει αποφάσεις για τα σηµεία που θα ενωθούν σε µία οµάδα, ταυτόχρονα είναι αξιόπιστος. Η έννοια του συνδέσµου ανάµεσα σε ένα ζεύγος σηµείων, είναι ουσιαστικά, ο αριθµός των ξεχωριστών µονοπατιών µήκους 2 ανάµεσα στα σηµεία p i και p j τέτοιο ώστε κάθε ζεύγος συνεχών σηµείων να είναι γείτονες. Εναλλακτικοί ορισµοί των συνδέσµων, όπου το µονοπάτι έχει µήκος 3 η και περισσότερο είναι εφικτοί ωστόσο δεν ακολουθούνται για τους εξής λόγους: Ο υπολογισµός των µονοπατιών µήκους 2 είναι περισσότερο υπολογιστικά εφικτός. Τα σηµεία που συνδέονται µε µονοπάτια µήκους 2 αναπαριστούν περισσότερο στενά συνδεδεµένα σηµεία σε σχέση µε τα σηµεία που συνδέονται µε µονοπάτια µεγαλύτερου µήκους. Τέλος, τα µονοπάτια µήκους 2 αποτελούν τον πιο απλό και πιο εφικτό από άποψη κόστους, τρόπο για να αποτυπώσουµε τη γνώση µας σχετικά µε τις γειτονιές που δηµιουργούν τα σηµεία. Η επιπλέον γνώση 37

39 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE που µπορούµε να αποκτήσουµε από µονοπάτια µεγαλύτερου µήκους δεν µπορεί να είναι το ίδιο χρήσιµη. Ακολουθεί ένα παράδειγµα χρήσης συνδέσµων. Έστω ότι ένα µαγαζί προσφέρει τα αγαθά 1, 2, 3, 4, 5, 6, 7, 8, 9 και έστω ότι οι πελάτες ψωνίζουν προϊόντα πάντα ανά τριάδες. Έστω ότι έγιναν 14 συναλλαγές οι οποίες είναι: 1,2,3, 1,2,4, 1,2,5, 1,2,6, 1,2,7, 1,3,4, 1,3,5, 1,4,5, 1,6,7, 2,3,4, 2,3,5, 2,4,5, 2,6,7, 3,4,5. Χρησιµοποιώντας σαν µετρική οµοιότητας την sim(t i,t j ) = T i T j / T i UT j, θ=0.5 δηλαδή ο αριθµός των κοινών αντικειµένων προς τον συνολικό αριθµό διαφορετικών αντικειµένων. Μπορούµε να δούµε π.χ. ότι link(1,2,6,1,2,7) = 5 και link(1,2,6,1,2,3) = 3. Το επόµενο σχήµα (Σχ. 4.1) δείχνει τις 14 αυτές συναλλαγές και την οµαδοποίησή τους σε δύο ξεχωριστές οµάδες. Μπορούµε να παρατηρήσουµε ότι µία συναλλαγή έχει µεγαλύτερη τιµή συνδέσµου µε µία άλλη που βρίσκεται στην ίδια οµάδα σε σχέση µε µία που βρίσκεται εκτός οµάδος [3]. Σχήµα 4.1 Σύνολο 14 συναλλαγών αποτελούµενες από 3-άδες αντικειµένων και η κατανοµή τους σε δύο οµάδες Συνάρτηση κριτηρίου Αν µπορούσαµε µε µαθηµατικό τρόπο να χαρακτηρίσουµε τις καλύτερες οµάδες τότε αυτό θα µας οδηγούσε στην ανάπτυξη αλγορίθµων που θα έψαχναν για τις καλύτερες οµάδες. Σ αυτή την ενότητα παρουσιάζεται µία συνάρτηση κριτηρίου σύµφωνα µε την οποία καλύτερες οµάδες θα είναι αυτές που µεγιστοποιούν την τιµή της συνάρτησης. Στόχος µας είναι κάθε οµάδα να έχει µεγάλο βαθµό συνεκτικότητας και έτσι θα θέλαµε το µέγιστο του αθροίσµατος link(p i,p j ) για τα ζεύγη p i και p j που ανήκουν στην ίδια οµάδα και ταυτόχρονα να ελαχιστοποιήσουµε το άθροισµα 38

40 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE link(p l,p m ) όπου p l και p m βρίσκονται σε διαφορετικές οµάδες. Αυτό µας οδηγεί στην παρακάτω συνάρτηση κριτηρίου η οποία για k οµάδες θα θέλαµε να µεγιστοποιείται: E l = link( p, p ) k q r n i 1+ 2 f ( θ ) i= 1 pq pr C n i i όπου Ci δείχνει στην i-στή οµάδα. Ίσως να φαίνεται λογικό πως από τη στιγµή που ο σκοπός µας είναι να µεγιστοποιήσουµε το link(p q,p r ) η επόµενη συνάρτηση να είναι αρκετή: k E l = i = 1 pq pr ci link( p, p ) η οποία απλά αθροίζει τους συνδέσµους ανάµεσα στα ζεύγη σηµείων σε κάθε οµάδα. Η συνάρτηση αυτή όµως δεν µπορεί να µας προφυλάξει από µία οµαδοποίηση όπου όλα τα σηµεία ανατίθενται σε µία µόνο οµάδα. εν δείχνει στα σηµεία µε λίγους συνδέσµους µεταξύ τους να διασπαστούν σε διαφορετικές οµάδες. Για να ξεπεραστεί το προηγούµενο πρόβληµα, στη συνάρτηση κριτηρίου θα κάνουµε διαίρεση του συνολικού αριθµού των συνδέσµων που περιέχουν τα ζεύγη σηµείων στην οµάδα C i µε τον αναµενόµενο συνολικό αριθµό των συνδέσµων στο C i και έπειτα κανονικοποιούµε αυτή τη ποσότητα µε n i, τον αριθµό δηλαδή των σηµείων στο C i. Η εκτίµηση του συνολικού αριθµού συνδέσµων στην οµάδα C i είναι n 1+2f(θ) i, µε f(θ) µία συνάρτηση η οποία εξαρτάται από το σύνολο των δεδοµένων καθώς επίσης και από το είδος των οµάδων που ενδιαφερόµαστε και έχει την ακόλουθη σηµαντική ιδιότητα: κάθε f(θ) σηµείο που ανήκει στην οµάδα C i έχει n i γείτονες στο C i. Αν µια τέτοια συνάρτηση f υπάρχει, τότε αφού µπορούµε να υποθέσουµε ότι τα σηµεία έξω από το C i συντελούν στην δηµιουργία πολύ λίγων συνδέσµων µε τα σηµεία του C i, κάθε σηµείο στην οµάδα C i συνεισφέρει n 2f(θ) i συνδέσµους - έναν για 1+2f(θ) κάθε ζεύγος των γειτόνων του. Εποµένως, n i θα είναι ο αναµενόµενος αριθµός συνδέσµων ανάµεσα στα ζεύγη σηµείων στο C i. ιαιρώντας µε τον αναµενόµενο αριθµό συνδέσµων η E l αποµακρύνει σηµεία µε λίγους συνδέσµους µεταξύ τους στο να τοποθετηθούν στην ίδια οµάδα, αφού η ανάθεση στην ίδια οµάδα µπορεί να προκαλέσει τον αναµενόµενο αριθµό συνδέσµων της οµάδος να αυξηθεί περισσότερο σε σχέση µε τον πραγµατικό q r 39

41 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE αριθµό των συνδέσµων και το αποτέλεσµα είναι µικρότερη τιµή στην συνάρτηση κριτηρίου. Η δηµιουργία µιας ακριβούς τιµής για την f(θ) δεν είναι καθόλου εύκολη διαδικασία. Ωστόσο εάν οι οµάδες είναι καλώς ορισµένες, ακόµη και µια ανακριβής, εκτίµηση της f(θ) θα µπορέσει να λειτουργήσει καλά µε πραγµατικά δεδοµένα. Επιπλέον, στην E l κάθε οµάδα κανονικοποιείται από n 1+2f(θ) i. Έτσι οποιαδήποτε σφάλµατα στη εκτίµηση της f(θ) επηρεάζουν την οµοιότητα όλων των οµάδων και δεν τροποποιούν µόνο µία οµάδα έναντι των υπολοίπων [3] Οµαδοποίηση µε το ROCK Τα βήµατα που ακολουθούνται κατά την οµαδοποίηση µε τη χρήση του ROCK φαίνονται στο επόµενο σχήµα. Σχήµα 4.2 Τα βήµατα οµαδοποίησης µε χρήση του ROCK. Αρχικά επιλέγεται ένα τυχαίο σύνολο δειγµάτων από τη σύνολο των δεδοµένων (που βρίσκεται αποθηκευµένο συνήθως σε µια βάση). Στη συνέχεια εφαρµόζεται ο ιεραρχικός αλγόριθµος οµαδοποίησης ο οποίος χρησιµοποιεί συνδέσµους (links) στα δειγµατοληπτούµενα δεδοµένα. Στο τέλος, οι οµάδες που σχηµατίζονται και περιέχουν µόνο τα δειγµατοληπτούµενα δεδοµένα χρησιµοποιούνται για να κατηγοριοποιήσουν τα υπόλοιπα δεδοµένα στις κατάλληλες οµάδες. Τα καλύτερα προς οµαδοποίηση δείγµατα, όπως είδαµε, είναι εκείνα που δίνουν τις υψηλότερες τιµές στη συνάρτηση κριτηρίου. Συνεπώς ο ROCK στοχεύει στο να βρει µια κατάλληλη µετρική (παρόµοια µε τη συνάρτηση κριτηρίου) µε την οποία να ανιχνεύει σε κάθε βήµα εκτέλεσης του τα καλύτερα ζεύγη προς ένωση. Για ένα ζεύγος οµάδων C i και C j, link[c i,c j ] είναι ο αριθµός pq Ci, pr Cj link( pq, pr) και εποµένως: = ( n + n ) link[ Ci, Cj] n g ( Ci, Cj) 1+ 2 f ( θ ) 1+ 2 f ( θ ) 1+ 2 f ( θ ) i j i j n 40

42 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE Το ζεύγος των οµάδων για το οποίο η παραπάνω συνάρτηση µεγιστοποιείται είναι το καλύτερο ζεύγος προς ένωση. Μπορεί να γίνει αντιληπτό ότι γενικά όσο µεγαλύτερη είναι η τιµή link[ci,c j ] τόσο καλύτερες είναι οι οµάδες προς ένωση. Ωστόσο χρησιµοποιώντας µόνο αυτή την τιµή ως ένδειξη για την καταλληλότητα ενός ζεύγους µπορεί να πέσουµε σε λάθος. Η προσέγγιση αυτή θα λειτουργήσει άριστα σε καλά διαχωρισµένες οµάδες αλλά στη περίπτωση οµάδων για τις οποίες υπάρχουν σηµεία που είναι γειτονικά τότε θα σχηµατιστεί µια µεγάλη οµάδα που περιέχει πολλές διαφορετικές µικρότερες. Αυτό συµβαίνει γιατί µια µεγάλη οµάδα συνήθως περιέχει µεγάλο αριθµό συνδέσµων µε άλλες οµάδες. Έτσι, για να επιλυθεί το πρόβληµα, διαιρούµε την ποσότητα link[c i,c j ] µε τον αναµενόµενο αριθµό συνδέσµων ανάµεσα στις οµάδες. Έτσι, αν κάθε σηµείο f(θ) του C i έχει n i γείτονες τότε ο αναµενόµενος αριθµός συνδέσµων τότε ο αναµενόµενος αριθµός συνδέσµων που περιέχουν µόνο σηµεία µέσα στην οµάδα είναι n 1+2f(θ) i. Συνεπώς για µεγάλες οµάδες µπορούµε να υποθέσουµε ότι τα σηµεία εκτός οµάδας συνεισφέρουν ελάχιστα στον συνολικό αριθµό των συνδέσµων ανάµεσα σε ζεύγη σηµείων µέσα στην οµάδα. Σαν αποτέλεσµα συνεπάγεται ότι αν δύο µεγάλες οµάδες µε µεγέθη n i και n j ενωθούν, ο αριθµός των συνδέσµων ανάµεσα στα ζεύγη σηµείων τους στη νέα οµάδα είναι (n i + n j ) 1 + 2f(θ), ενώ ο αριθµός των συνδέσµων σε κάθε οµάδα πριν την 1 + 2f(θ) 1+2f(θ) ένωση ήταν n i και n j αντίστοιχα. Εποµένως, ο αναµενόµενος αριθµός συνδέσµων ανάµεσα στα ζεύγη σηµείων διαφορετικών οµάδων είναι (n i + n j ) 1 + 2f(θ) n 1+2f(θ) i n 1+2f(θ) j. procedure cluster(s, k) begin 1. link := compute links(s) 2. for each s -> S do 3. q[s] := build_local_heap(link, s) 4. Q := build global heap(s, q) 5. while size(q) > k do 6. u := extract max(q) 7. v := max(q[u]) 8. delete(q; v) 9. w := merge(u, v) 10. for each x є q[u] U q[v] do 11. link[x,w] := link[x, u] + link[x, v] 12. delete(q[x], u); delete(q[x], v) 41

43 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE 13. insert(q[x], w, g(x;w)); insert(q[w], x, g(x;w)) 14. update(q, x, q[x]) insert(q,w, q[w]) 17. deallocate(q[u]); deallocate(q[v]) 18. end Σχήµα 4.3 Ο αλγόριθµος ROCK Ο αλγόριθµος ROCK δέχεται ως είσοδο ένα σύνολο S, n δειγµατολητούµενων δεδοµένων για οµαδοποίηση (τα οποία έχουν επιλεγεί µε τυχαίο τρόπο από το σύνολο δεδοµένων) και έναν επιθυµητό αριθµό οµάδων k. Η διαδικασία ξεκινά υπολογίζοντας τον αριθµό των συνδέσµων ανάµεσα στα ζεύγη σηµείων στο πρώτο βήµα. Αρχικά κάθε σηµείο είναι µια ξεχωριστή οµάδα. Για κάθε οµάδα i κατασκευάζεται ένας τοπικός σωρός q[i] και οι σωροί αυτοί ανανεώνονται και διατηρούνται κατά τη διάρκεια εκτέλεσης του αλγορίθµου. Ο q[i] περιέχει κάθε οµάδα j µε την οποία ισχύει link[i, j] 0. Οι οµάδες j στο q[i] ταξινοµούνται σε φθίνουσα σειρά ανάλογα µε τη τιµή τους στην µετρική καταλληλότητας g(i,j). Εκτός των τοπικών σωρών ο αλγόριθµος διατηρεί έναν καθολικό σωρό Q ο οποίος περιέχει όλες τις οµάδες. Επιπλέον, οι οµάδες στον Q ταξινοµούνται σε φθίνουσα σειρά σύµφωνα µε την συνάρτηση καταλληλότητας τους, g(i, max(q[i])). Max(q[i]) είναι το στοιχείο που περιέχεται στην q[i] και είναι η καλύτερη οµάδα για ένωση µε το i. Σε κάθε βήµα η µέγιστη οµάδα στο Q έστω i και η καλύτερη οµάδα στο q[i] είναι το καλύτερο ζευγάρι προς ένωση. Ο βρόγχος while στη γραµµή 5 εκτελεί επαναληπτικά τις ενέργειες έως ότου µείνουν k οµάδες στο καθολικό σωρό Q. Επιπλέον υπάρχει περίπτωση να σταµατήσει αν ο αριθµός των συνδέσµων ανάµεσα σε κάθε ζεύγος των εναποµεινάντων οµάδων είναι 0. Σε κάθε βήµα του βρόγχου while η µέγιστη οµάδα u εξάγεται από το Q µε τη βοήθεια της συναρτήσεως extract_max και το q[u] χρησιµοποιείται για να καθορίσει την καλύτερη οµάδα v για αυτό. Οι καταχωρήσεις των u και v δεν χρειάζονται άλλο αφού αυτές οι δύο οµάδες θα ενωθούν και άρα µπορούν να διαγραφούν από τον καθολικό σωρό Q. Οι οµάδες u και v ενώνονται στη γραµµή 9 σε µια καινούρια οµάδα έστω w η οποία περιέχει u + v σηµεία. ύο εργασίες πρέπει να γίνουν όταν οι οµάδες u και v ενωθούν. 42

44 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE 1. Κάθε οµάδα που περιέχει το u και v στο τοπικό σωρό της πρέπει να αντικαταστήσει την αναφορά στις παλιές οµάδες µε την νέα w. 2. Πρέπει α δηµιουργηθεί ένας νέος τοπικός σωρός. Αυτές οι δύο εργασίες επιτελούνται στο βρόγχο for στις γραµµές Ο αριθµός των συνδέσµων ανάµεσα στις οµάδες x (όπου x είναι όλες εκείνες οι οµάδες που υπάρχουν στο σύνολο q[u] U q[v]) και w είναι το άθροισµα του αριθµού των συνδέσµων ανάµεσα στο x και u και x και v. Το άθροισµα είναι απαραίτητο για να υπολογιστεί το g(x,w), η νέα µετρική καταλληλότητας για το ζεύγος οµάδων x και w αυτή τη φορά. Οι δύο αυτές οµάδες καταχωρούνται η µία στον τοπικό σωρό της άλλης. Παρατηρούµε ακόµα ότι ο q[w] µπορεί να περιέχει µόνο οµάδες που προηγουµένως υπήρχαν στο q[u] και/η στο q[v], διότι είναι οι µόνες οµάδες που έχουνε µη µηδενικούς συνδέσµους µε την οµάδα w. Ακόµη παρατηρούµε ότι σαν αποτέλεσµα της συγχώνευσης των οµάδων u & v, είναι πιθανό η οµάδα u ή v να ήταν η καλύτερη προς συγχώνευση µε το x και συνεπώς, τώρα η w γίνεται η καλύτερη οµάδα προς ένωση. Επιπλέον, είναι πιθανό ότι ούτε το u ούτε το v είναι η καλύτερη οµάδα προς ένωση µε το x, τώρα όµως το w να είναι καλύτερη οµάδα προς ένωση µε το x. Για τέτοιες περιπτώσεις, οποτεδήποτε η καλύτερη οµάδα του τοπικού σωρού x αλλάζει ο αλγόριθµος πρέπει να αναδιατάσσει το x στο καθολικό σωρό Q έτσι ώστε να υποδεικνύει τις πληροφορίες που έχουν σχέση µε τη νέα καλύτερη οµάδα. [3] 4.2 Ο αλγόριθµος S-GRACE Εισαγωγή Η XML έχει αναγνωριστεί σαν ένα πρότυπο αναπαράστασης δεδοµένων διαπλατφορµικότητας στο διαδίκτυο. Η σύνταξη XML στις σελίδες του web έχει αρχίσει να εµφανίζεται. Ανάµεσα στην επίπεδη αποθήκευση σε αρχεία, στις αντικειµενοστραφείς βάσεις δεδοµένων και στις XML βάσεις δεδοµένων οι προγραµµατιστές χρησιµοποιούν την περισσότερο ώριµη τεχνολογία των σχεσιακών βάσεων δεδοµένων για να αποθηκεύσουν ηµιδοµηµένα δεδοµένα ακολουθώντας και 2 εναλλακτικές λύσεις την αποτύπωση σε σχήµα (schema mapping) και την αποτύπωση στη δοµή (structure mapping). Στη πρώτη 43

45 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE περίπτωση το σχεσιακό σχήµα προέρχεται από το Document Type Definition των XML εγγράφων. Η δεύτερη προσέγγιση δηµιουργεί ένα σύνολο γενικών πινάκων στα οποία αποθηκεύεται η πληροφορία δόµησης, τα µονοπάτια και τα χαρακτηριστικά των εγγράφων. Οι δύο µέθοδοι αποσυνθέτουν τα έγγραφα και εισάγουν τα στοιχεία τους σε ένα σύνολο πινάκων. Ωστόσο αυτό φέρνει υπερβολικό κατακερµατισµό (fragmentation), ο οποίος δηµιουργεί ένα σοβαρό αντίκτυπο στη διαδικασία ερωτηµάτων. Ο αριθµός των ενώσεων (joins) που απαιτείται για την επεξεργασία µιας έκφρασης ενός µονοπατιού (path expressions) έχει περίπου το µήκος του µονοπατιού. Εάν η συλλογή των εγγράφων αποτελείται από XML αρχεία µε διαφορετικές δοµές, µπορούµε να παρατηρήσουµε ότι το πρόβληµα του κατακερµατισµού µπορεί να καταπολεµηθεί οµαδοποιώντας τα έγγραφα σύµφωνα µε τα δοµικά τους χαρακτηριστικά και αποθηκεύοντας κάθε οµάδα σε ένα διαφορετικό σύνολο πινάκων. Για παράδειγµα η βάση δεδοµένων του DBLP µπορεί να κατηγοριοποιηθεί σε άρθρα περιοδικών και papers συνεδρίων. Σύµφωνα µε τα στοιχεία και τις σχέσεις που διέπουν γονέα και παιδιά µέσα στα έγγραφα, τα άρθρα αποτελούνται από πολύ διαφορετική πληροφορία δόµησης σε σχέση µε τα papers συνεδρίων. Στο επόµενο σχήµα (Σχ. 4.4) το άρθρο περιοδικού και το paper του συνεδρίου έχουν κοινά στοιχεία όπως ο συγγραφές (author), ο τίτλος (title) και µερικά διαφορετικά στοιχεία όπως το inproceedings και το article. Η κύρια διαφορά δεν οφείλεται στον µικρό αριθµό ξεχωριστών στοιχείων αλλά στο µεγάλο αριθµό διαφορετικών ακµών.(δηλαδή στις σχέσεις γονέα παιδιού) ανάµεσα στα στοιχεία. Στην πραγµατικότητα όλες οι ακµές αυτού του παραδείγµατος είναι διαφορετικές. Μερικές φορές ένα διαφορετικό στοιχείο µπορεί να φτιάξει πολλές ακµές οι οποίες ξεχωρίζουν τη µία οµάδα εγγράφων από την άλλη. Η οµαδοποίηση των εγγράφων σύµφωνα µε την πληροφορία δόµησής τους θα βελτίωνε την ικανότητα αναζήτησης των ερωτηµάτων αφού τα ερωτήµατα κατασκευάζονται συνήθως στηριζόµενα σε εκφράσεις µονοπατιών. Για παράδειγµα τα ερωτήµατα που περιέχουν την ακµή (article/volume) δεν χρειάζονται πρόσβαση στα δεδοµένα των συνεδρίων. 44

46 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE Σχήµα 4.4 XML εγγραφές ενός paper συνεδρίου και ενός άρθρου περιοδικού. Τα XML έγγραφα έχουν διαφορετικούς τύπους πληροφορίας δόµησης (εκτός από τις ακµές) σε διαφορετικά επίπεδα λεπτοµέρειας. Όταν ορίζουµε την απόσταση ανάµεσα σε δύο έγγραφα, η επιλογή ενός απλού δοµικού στοιχείου σαν βάση θα έκανε την οµαδοποίηση γρήγορη. Από την άλλη πλευρά, µία µετρική βασισµένη σε πολύ ακριβή στοιχεία θα µπορούσε να τη κάνει λιγότερο αποδοτική και µη πρακτική. Μια πολύ καλή επιλογή είναι η χρήση κατευθυνόµενων ακµών ανάµεσα στα δύο XML έγγραφα. Αυτή η µετρική µάλιστα µπορεί να εφαρµοστεί όχι µόνο σε έγγραφα, αλλά επίσης και σε οµάδες εγγράφων. Αυτή η προσέγγιση κάνει την οµαδοποίηση XML εγγράφων κλιµακωτή (scalable) για µεγάλες συλλογές. Από τη στιγµή που η οµαδοποίηση επιτελείται σε έγγραφα, δεν θα αποθηκευτούν δεδοµένα ενός εγγράφου σε πίνακες που σχετίζονται µε διαφορετικές οµάδες εκτός αυτού στο οποίο ανήκει το έγγραφο. Ωστόσο, αν ένα ερώτηµα αναφέρεται σε ένα η περισσότερα έγγραφα, ίσως είναι απαραίτητη η ένωση των πινάκων, δύο η περισσοτέρων οµάδων [4] Οµοιότητα ανάµεσα στα XML έγγραφα Επειδή τα ηµιδοµηµένα δεδοµένα δεν ήταν ένας δηµοφιλής τρόπος αναπαράστασης µέχρι τον καιρό εµφάνισης της XML, στις έως τότε συµβατικές τεχνικές οµαδοποίησης που υπήρχαν δεν δόθηκε έµφαση σε αυτό το τύπο. Πως όµως µπορούµε να προσδιορίσουµε ποια είναι η καλύτερη προσέγγιση για την οµαδοποίηση ηµιδοµηµένων δεδοµένων; Ας θεωρήσουµε ορισµένες επιλογές για τον ορισµό της οµοιότητας ανάµεσα στα XML έγγραφα. Μπορούµε να µεταχειριστούµε τα στοιχεία ενός εγγράφου σαν χαρακτηριστικά και να µετατρέψουµε το έγγραφο σε µια συναλλαγή (transaction) δυαδικών χαρακτηριστικών. Ο Ιακωβιανός συντελεστής (Jaccard 45

47 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE Coefficient) ή η συνάρτηση συνηµίτονου ανάµεσα σε πολλές άλλες µετρικές µπορούν να χρησιµοποιηθούν για να µετρήσουν την οµοιότητα ανάµεσα στα έγγραφα. Ωστόσο, µερικά δοµικά διαφορετικά έγγραφα έχουν σχεδόν το ίδιο σύνολο στοιχείων. Στο επόµενο σχήµα (Σχ. 4.5) τα doc 1 και doc 2 έχουν ένα µόνο διαφορετικό στοιχείο, αλλά θα πρέπει να τοποθετηθούν σε διαφορετικές οµάδες, υποθέτοντας ότι αρκετές εφαρµογές θα ήθελαν να αποστέλλουν ερωτήµατα για περιοδικά και συνέδρια ξεχωριστά. Με άλλα λόγια τα doc 2 και doc 3 πρέπει να διαφοροποιηθούν από το doc 1 για να σχηµατίσουν µία οµάδα. Από τη στιγµή που τα XML έγγραφα µπορούν να µοντελοποιηθούν σαν δέντρα, µια άλλη επιλογή θα ήτα η χρήση της απόστασης µεταξύ δένδρων (tree distance) για την µέτρηση οµοιότητας. Ωστόσο, το κόστος υπολογισµού της απόστασης των δέντρων δύο εγγράφων είναι υψηλό (τετραγωνικό σε σχέση µε το µέγεθός τους) κάνοντάς τη ακατάλληλη για µια συλλογή πολλών εγγράφων. Σχήµα 4.5 Τρία δέντρα για τα οποία γίνεται µέτρηση απόστασης σύµφωνα µε την τεχνική tree edit distance. Έχει προταθεί η ανάθεση διαφορετικού κόστους για τις τρεις ενέργειες επεξεργασίας (εισαγωγή κόµβου, διαγραφή κόµβου και µετονοµασία κόµβου). Πρακτικά δεν υπάρχει κάποιος απλός τρόπος για να γίνει η ανάθεση έτσι ώστε το αποτέλεσµα της οµαδοποίησης να ανταποκρίνεται καλά. Για παράδειγµα το επόµενο σχήµα, µε την προϋπόθεση ότι η διαγραφή υποδένδρου κοστίζει λιγότερο σε σχέση µε την µετονοµασία του, τότε dist(doc 1, doc 2 ) < dist(doc 1,doc 3 ). Η κατάσταση θα χειροτέρευε, εάν δεν µπορούσαµε να βρούµε µια κατάλληλη ανάθεση κόστους για όλα τα έγγραφα και εποµένως θα υπήρχαν διαφορετικά κόστη για διαφορετικά υποδένδρα. 46

48 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE Εκτός από το παραπάνω, σε µερικές περιπτώσεις, δεν είναι εύκολο να διαχωρίσουµε τα έγγραφα, τα οποία είναι δοµικά διαφορετικά χρησιµοποιώντας την απόσταση επεξεργασίας. Στο επόµενο σχήµα (Σχ. 4.6) η δενδρική απόσταση ανάµεσα στο doc 1 και doc 2 θα είναι η ίδια µε την απόσταση των doc 2 και doc 3, αφού µόνο µία ενέργεια µετονοµασίας χρειάζεται για να µετατρέψουµε το ένα δέντρο στο άλλο. Αν οµαδοποιήσουµε τα doc 1 και doc 2 µαζί το DTD που τα περιγράφει θα πρέπει να έχει τη δήλωση <!ELEMENT A(B,C,E,F)*> το οποίο έχει τέσσερις µόνο ακµές. Αν οµαδοποιούσαµε το doc 2 και doc 3 µαζί το DTD θα είχε τις δηλώσεις <!ELEMENT A (B,C,E)*> και <!ELEMENT D (B,C,E)*>, εξι δηλαδή συνολικές ακµές. Παρατηρούµε ότι τα έγγραφα στη τελευταία περίπτωση πρέπει να οµαδοποιηθούν χωριστά αφού τα Α και D είναι µάλλον διαφορετικού τύπου όπως τα paper περιοδικών και συνεδρίων στη βάση δεδοµένων του DBLP. Εποµένως η µετρική απόστασης ανάµεσα σε δέντρα δεν είναι πολλές φορές ικανή να διαχωρίσει δοµικές διαφορές. Σχήµα 4.6 Μέτρηση απόστασης ανάµεσα στα τρία δέντρα. οθέντων ενός συνόλου XML εγγράφων C, ο γράφος δόµησης (structure graph) του C, sg(c) = (N,E) είναι ένας κατευθυνόµενος γράφος, όπου το N είναι το σύνολο όλων των στοιχείων και χαρακτηριστικών του C και (α,b) є E αν και µόνο αν το α είναι ένα στοιχείο που είναι πατέρας του στοιχείου b ή το b είναι ένα χαρακτηριστικό του στοιχείου α σε κάποιο έγγραφο C. Οι γράφοι δόµησης παράγονται από τα XML έγγραφα, όχι από τα DTD τους. Για παράδειγµα sg(doc 1,doc 2 ) δύο εγγράφων doc 1 και doc 2 είναι το σύνολο των κόµβων και των ακµών που παρουσιάζονται σε κάθε έγγραφο όπως φαίνεται στο επόµενο σχήµα. 47

49 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE Σχήµα 4.7 Αναπαράσταση ενός γράφου δόµησης σύµφωνα µε ένα έγγραφο. Με τον ίδιο τρόπο µία έκφραση µονοπατιού q µπορεί να κωδικοποιηθεί σαν ένας γράφος (N, E) όπου το N είναι το σύνολο των στοιχείων ή των χαρακτηριστικών στο q και E είναι το σύνολο των ζευγών στοιχείων µε σχέση γονέα παιδιού ή των ζευγών στοιχείων µε χαρακτηριστικό. οθείσας, λοιπόν, µιας έκφρασης µονοπατιού q η οποία έχει µια απάντηση σε ένα XML έγγραφο X, ο κατευθυνόµενος γράφος που αναπαριστά το q είναι ένας υπογράφος του µεγάλου γράφου Χ. Συνεπώς από εδώ και στο εξής θα αναφερόµαστε στο γράφο µιας έκφρασης µονοπατιού q µε τον όρο q. Άρα µπορούµε να καταλήξουµε στο επόµενο συµπέρασµα: οθέντων ενός συνόλου XML εγγράφων C, αν µια έκφραση µονοπατιού q έχει κάποια απάντηση σε κάποιο έγγραφο στο C, τότε το q είναι ένας υπογράφος του sg(c). Ακόµα, ο sg(c) θα είναι ο µικρότερος γράφος που έχει αυτή την ιδιότητα. Το γεγονός ότι ο sg(c) είναι ο µικρότερο γράφος, απορρέει από την παρατήρηση ότι κάθε υπογράφος του sg(c) δεν περιέχει όλες τις εκφράσεις µονοπατιού που µπορούν να απαντηθούν από κάθε έγγραφο του C. Εποµένως ο γράφος είναι µια συµπαγής αναπαράσταση όλων των εγγράφων του C σύµφωνα µε τις εκφράσεις µονοπατιού. οθέντων δύο συνόλων XML εγγράφων C 1 και C 2, εάν µια έκφραση µονοπατιού q έχει µια απάντηση σε ένα έγγραφο του C 1 και σε ένα έγγραφο του C 2 τότε το q είναι υπογράφος των sg(c 1 ) και sg(c 2 ) ταυτόχρονα. Άµεση συνέπεια του παραπάνω είναι ότι αν οι γράφοι δόµησης των δύο συνόλων των εγγράφων έχουν µερικές επικαλυπτόµενες ακµές, τότε υπάρχουν πολύ 48

50 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE λίγες εκφράσεις µονοπατιού που να µπορούν να απαντηθούν και από τα δύο σύνολα. Άρα, δικαιολογηµένα µπορούµε να αποθηκεύουµε κάθε σύνολο σε ένα ξεχωριστό πίνακα. Από τα παραπάνω προτείνεται η επόµενη µετρική απόστασης για δύο XML έγγραφα C 1 και C 2 : dist(c, C ) 1 2 sg( C1) sg( C2 ) = 1 max sg( C ), sg( C 1 2 ) όπου sg(c i ) είναι ο αριθµός των ακµών του sg(c i ) i=1, 2 και sg(c 1 ) sg(c 2 ) είναι το σύνολο των κοινών ακµών του sg(c 1 ) και sg(c 2 ). Εάν ο αριθµός των κοινών ζευγών στοιχείων γονέα παιδιού ανάµεσα στα C 1 και C 2 είναι µεγάλος, η απόσταση µεταξύ γράφων θα είναι µικρή και αντίστροφα. Στο επόµενο σχήµα (Σχ. 4.8) έχουµε τους γράφους δόµησης τριών εγγράφων. Χρησιµοποιώντας την µετρική που µόλις περιγράψαµε έχουµε dist(doc 2,doc 3 ) = 0.25 και dist(doc 1,doc 2 ) = dist(doc 1,doc 3 ) = 1. Ένας αλγόριθµος οµαδοποίησης θα ένωνε τα doc 2 και doc 3, και θα άφηνε το doc 1 έξω. Αυτό δείχνει ότι η µέθοδος είναι αποδοτική στο διαχωρισµό εγγράφων τα οποία είναι δοµικά διαφορετικά. Είναι σηµαντικό να επισηµάνουµε ότι η χρήση των γράφων δόµησης επιτρέπει στην εφαρµογή τη χρήση εγγράφων η συνόλου εγγράφων µιας διαδικασίας που απλοποιεί τη µέθοδο της οµαδοποίησης. Σχήµα 4.8 Γράφοι δόµησης τριών εγγραφών. Η µετρική εµφανίζει ένα ακόµη σπουδαίο χαρακτηριστικό. Προφυλάσσει έναν γράφο ο οποίος είναι υπογράφος ενός άλλου γράφου από το να συγχωνευθεί από τον µεγαλύτερο. Στο σχήµα (Σχ. 4.9) έχουµε τρεις γράφους όπου ισχύει 49

51 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE dist(g 2,g 3 ) = 0.25 και dist(g 1,g 2 ) = dist(g 1,g 3 ) = 0.6. Ένας αλγόριθµος οµαδοποίησης µε αυτή τη µετρική µπορεί να ξεχωρίσει τα έγγραφα που σχετίζονται µε τα g 2 και g 3 από αυτά µε το g 1, ακόµη και αν τα g 2 και g 3 είναι υπογράφοι του g 1. Λόγω του προηγουµένου, έγγραφα µε µεγάλους γράφους δεν θα απορροφήσουν (λανθασµένα) έγγραφα µε γράφους οι οποίοι είναι υποοµάδες των µεγάλων γράφων [4]. Σχήµα 4.9 Γράφοι δόµησης για τους οποίους ισχύει ότι g 2 & g 3 είναι υποσύνολα του g Το πλαίσιο εργασίας για την οµαδοποίηση XML εγγράφων O S - GRACE συνεπώς οµαδοποιεί τα XML αρχεία σύµφωνα µε τη δοµή τους. Η δοµή τους «ανακεφαλαιώνεται» µέσα σε γράφους δόµησης και χρησιµοποιώντας την προηγούµενη µετρική απόστασης γίνεται ανεύρεση των οµάδων. Γενικά µπορούµε να τον διασπάσουµε 2 βήµατα. 1 ο βήµα, Αναζήτησε και κωδικοποίησε την δοµική πληροφορία. Αυτό το βήµα υπολογίζει τους γράφους δόµησης και τους κωδικοποιεί σε κάποια δοµή δεδοµένων. 2 ο βήµα, Εκτέλεσε την οµαδοποίηση στη δοµική πληροφορία: Σε αυτό το βήµα ένας κατάλληλος αλγόριθµος οµαδοποίησης χρησιµοποιείται για να δηµιουργήσει οµάδες. Αρχικά, οι γράφοι δόµησης όλων των εγγράφων υπολογίζονται και αποθηκεύονται σε µια δοµή µε ονοµασία SG. Ένας γράφος δόµησης µπορεί να αναπαρασταθεί µε µια συµβολοσειρά bits η οποία κωδικοποιεί τις ακµές του γράφου. Κάθε στοιχείο στον SG έχει δύο πεδία πληροφόρησης: 50

52 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE 1. Μια συµβολοσειρά bits η οποία αναπαριστά τις ακµές του γράφου δόµησης. 2. Ένα σύνολο το οποίο περιέχει τα αναγνωριστικά (ids) όλων των εγγράφων των οποίων οι γράφοι δόµησης αναπαριστούνται µε αυτή τη συµβολοσειρά των bit. Συνεπώς, γράφοι στους οποίους δεν αντιστοιχεί κανένα έγγραφο δε θα περιέχονται στον SG. Στο επόµενο σχήµα (Σχ. 4.10) αναπαρίστανται τρία έγγραφα και η δοµή SG. Aπ τη στιγµή που πολλά έγγραφα µπορούν να έχουν τον ίδιο γράφο δόµησης το µέγεθος του SG είναι πολύ µικρότερο σε σχέση µε το συνολικό αριθµό των εγγράφων. Γενικά ο SG πρέπει να έχει τέτοιο µέγεθος που να χωράει στην µνήµη του υπολογιστή, ολόκληρος. Στην εξαιρετική περίπτωση που δεν χωράει, τότε χρησιµοποιείται δειγµατοληψία. Από τη στιγµή που ο SG υπολογίζεται, η οµαδοποίηση µπορεί να εφαρµοστεί στις σειρές των bit. Συνεπώς µετασχηµατίζουµε το πρόβληµα οµαδοποίησης των εγγράφων XML σε οµαδοποίηση µικρών συνόλων συµβολοσειρών bit. Σχήµα 4.10 ηµιουργία πίνακα SG σύµφωνα µε τα έγγραφα.. Όπως µπορούµε να παρατηρήσουµε στα παρακάτω, έχει διαχωριστεί η διαδικασία της κωδικοποίησης και εξαγωγής της δοµικής πληροφορίας από την διαδικασία της οµαδοποίησης. Υπάρχουν αρκετοί κατάλληλοι αλγόριθµοι που µπορούν να χρησιµοποιηθούν για να οµαδοποιήσουν τους γράφους δόµησης. Ωστόσο δεν είναι σωστό να διαχειριζόµαστε την πληροφορία των γράφων σαν αριθµητικά δεδοµένα επειδή αυτοί κωδικοποιούνται σαν δυαδικά 51

53 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE χαρακτηριστικά µε δύο µόνο πεδία τιµών. Συνεπώς ένα αλγόριθµος οµαδοποίησης κατηγορικών δεδοµένων είναι καλύτερη λύση [4] Περιγραφή του S-GRACE Ο S-GRACE είναι ένας ιεραρχικός αλγόριθµος οµαδοποίησης XML εγγράφων. Ο S-GRACE υλοποιεί ουσιαστικά το ROCK στους γράφους δόµησης. Όπως είδαµε, στο ROCK η οµαδοποίηση σύµφωνα µε τη µέτρηση απόστασης δεν είναι αποδοτική σε κατηγορικά και δυαδικά δεδοµένα. Ο ROCK προσπαθεί επίσης, να χειριστεί την περίπτωση σύµφωνα µε την οποία µερικά σηµεία (δεδοµένων) δεν είναι κοντά (σε απόσταση) µεταξύ τους αλλά µοιράζονται έναν µεγάλο κοινό αριθµό γειτόνων και τα κατατάσσει στην ίδια οµάδα. Αυτή η παρατήρηση µας βοηθά να οµαδοποιήσουµε τους γράφους δόµησης οι οποίοι µοιράζονται έναν µεγάλο αριθµό κοινών γειτόνων. Ο ψευδοκώδικας του S-GRACE φαίνεται παρακάτω. /*Input D: a set of XML documents*/ /*Input θ: a similarity threshold*/ /*Input α: an integer*/ /*Input β: a control parameter for labeling outliers*/ /*Input k: a control parameter for the number of clusters*/ /*Output Q: a set of clusters; O: outlier set*/ 1)SG = pre_clustering(d); 2)DIST = compute_distance(sg); 3)LINK = compute_link(dist, SG, θ); 4)O = remove_outlier(link, SG, β); 5)for each s є SG do 6) q[s]=build_local_heap(link, s) 7)Q=build_global_heap(SG, q); 8)while size(q) > a x k do 9) u=extravt_max(q); 10) v = max(q[u]) ; 11) delete(q, v); 12) w = merge(u, v); 13) for each x є q[u] U q[v] do 14) LINK[x, w] = LINK[x, u] + LINK[x, v]; 15) delete(q[x], u); delete(q[x], v); 16) insert(q[x], w, g(x,w)); insert(q[w], x, g(x,w)); 17) update(q, x, q[w]); 18) 19) insert(q, w, q[w]); 20) deallocate(q[u]); deallocate(q[v]); 21) 52

54 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE 22)O = O U remove_outlier(link, Q, α, β) 23)second_cluster(LINK, Q, q, k); Σχήµα Ο αλγόριθµος S-GRACE. Η είσοδος D είναι ένα σύνολο XML δεδοµένων. Αρχικά, οι γράφοι δόµησης των εγγράφων υπολογίζονται και αποθηκεύονται στο πίνακα SG. Η διαδικασία pre_clustering (γραµµή 1) υλοποιεί το πίνακα SG από το D. Στον SG, δύο γράφοι δόµησης είναι γείτονες αν η απόστασή τους είναι µικρότερη από ένα όριο θ. Η διαδικασία compute_distance (γραµµή 2) υπολογίζει την απόσταση ανάµεσα σε όλα τα ζευγάρια των γράφων δόµησης του SG και τα αποθηκεύει στο πίνακα DIST. Ο ROCK χρησιµοποιεί την ιδιότητα του συνδέσµου (link property) για να επιλέξει το καλύτερο ζεύγος οµάδων για συγχώνευση κατά την διαδικασία ιεραρχικής συγχώνευσης. οθέντων δύο γράφων δόµησης x και y στον SG, link(x,y) είναι ο αριθµός των κοινών γειτόνων των x και y, όπου ένας γράφος δόµησης z είναι γείτονας µε τον x αν και µόνο αν dist(x,z) θ (το θ δίνεται στην αρχή). Στον S-GRACE, ο αριθµός των γειτόνων ενός γράφου δόµησης βασίζεται και στον αριθµό των εγγράφων που αναπαριστά. Για ένα ζεύγος οµάδων C i και C j link[c i,c j ] είναι ο αριθµός όλων των συνδέσµων ανάµεσα σε διαφορετικές οµάδες ή pq Ci, pr Cj link( p q, p r ). Ακόµη, µια µετρική καταλληλότητας g(c i,c j ), ανάµεσα στα ζεύγη των οµάδων C i και C j δηλώνεται ως: g ( Ci, Cj) = 1+ 2 f ( θ ) 1+ 2 f ( θ ) 1+ 2 f ( θ ) i j i j ( n + n ) link[ Ci, Cj] n n όπου n i και n j είναι ο αριθµός των εγγράφων στο C i και C j και f(γ) ένας δείκτης για την εκτίµηση του αριθµού των γειτόνων στα C i και C j. Στην πραγµατικότητα ο παρονοµαστής, είναι ο αναµενόµενος αριθµός των συνδέσµων ανάµεσα στις δύο οµάδες. Στη συνέχεια, η διαδικασία Compute_Link (γραµµή 3), υπολογίζει την τιµή του συνδέσµου ανάµεσα σε όλα τα υπάρχοντα ζεύγη των γράφων του SG και τα αποθηκεύει στο πίνακα LINK. Η διαδικασία remove_outlier αποµακρύνει τις οµάδες που δεν έχουν γείτονες. Αρχικά κάθε εγγραφή του SG είναι µια ξεχωριστή οµάδα. Για κάθε οµάδα i δηµιουργείται 53

55 Οι αλγόριθµοι οµαδοποίησης ROCK & S-GRACE ένας τοπικός σωρός q[i], και αυτός επεξεργάζεται κατά τη διάρκεια εκτέλεσης του αλγορίθµου. Το q[i] περιέχει όλες τις οµάδες j για τις οποίες ισχύει ότι link(i,j) δεν είναι µηδέν. Οι οµάδες στο q[i] ταξινοµούνται σε φθίνουσα σειρά σύµφωνα µε τη µετρική καταλληλότητας και το i. ηλαδή ταξινοµούµε σύµφωνα µε τις τιµές που επιστρέφει η g(i,j) όπου j είναι κάθε φορά µία οµάδα που βρίσκεται στο q[i]. Επιπρόσθετα, ο αλγόριθµος διατηρεί ένα καθολικό σωρό Q που περιέχει όλες τις οµάδες. Οι οµάδες i του Q ταξινοµούνται σε φθίνουσα διάταξη σύµφωνα µε τη µετρική καταλληλότητας g(i,max(q[i])), όπου max(q[i]) είναι το στοιχείο του q[i] το οποίο έχει τη µέγιστη µετρική καταλληλότητας. Ο βρόγχος while (γραµµές 8-21) εκτελείται επαναληπτικά έως να µείνουν a x k οµάδες στο καθολικό σωρό όπου a είναι ένας µικρός ακέραιος ο οποίος ελέγχει τη διαδικασία της συγχώνευσης. Κατά τη διάρκεια κάθε επανάληψης, ο αλγόριθµος συγχωνεύει το ζεύγος οµάδων από τα Q και q[i] (αν i είναι η οµάδα που επιλέχτηκε από το Q) που έχουν την υψηλότερη τιµή στη µετρική καταλληλότητας και ενηµερώνει τους σωρούς και το πίνακα LINK. Ο γράφος δόµησης µιας οµάδας που δηµιουργείται από την ένωση δύο οµάδων περιέχει όλους τους κόµβους και τις ακµές των δύο οµάδων. Έξω από το βρόγχο, µε τη remove_outlier αποµακρύνονται κάποια µικρά σύνολα τα οποία συνδέονται ελάχιστα µε τις σχηµατισµένες οµάδες. Η εντολή second_cluster (γραµµή 23) συνδυάζει περαιτέρω τις οµάδες έως να µείνουν k στον αριθµό. Η ένωση γίνεται µε ένα ζεύγος σε κάθε χρονική στιγµή. 54

56 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Ενότητα 5: ηµιουργία αλγορίθµου ου οµαδοποίησης για δεδοµένα καταλόγων 5.1 Περιγραφή δοµών δεδοµένων του αλγορίθµου οµαδοποίησης Ο αλγόριθµος που υλοποιήθηκε έχει πολλά κοινά χαρακτηριστικά µε τον S- GRACE ως προς το είδος των δοµών δεδοµένων που χρησιµοποιεί αλλά και ως προς τις λειτουργίες που επιτελεί. Αναλυτικά οι κοινές δοµές δεδοµένων που µπορούµε να εντοπίσουµε είναι: Πίνακας SG Όπως γνωρίζουµε η κύρια δοµή δεδοµένων του S-GRACE είναι ένας πίνακας µε κατευθυνόµενους γράφους όπου οι κόµβοι παριστάνουν τα εκάστοτε στοιχεία (elements) της εγγραφής του XML αρχείου. Οι ακµές δείχνουν ότι ένα στοιχείο περιέχεται σε ένα άλλο. Παρόµοια, για τον LDAP θεωρούµε ότι µία κλάση δεδοµένων (objectclass) αποτελεί ένα κόµβο και όλες οι ακµές που φεύγουν από αυτό τον κόµβο δείχνουν προς τα χαρακτηριστικά της υπό εξέταση εγγραφής. Το επόµενο σχήµα δείχνει την αναλογία ενός γράφου στις δύο µορφές παράστασης δεδοµένων. <!DOCTYPE dblp SYSTEM "/dblp.dtd" [. ]> <dblp> <article mdate=" " key="tr/ibm/lilog44"> <author>kurt Rothermel</author> <title>an Effective Representation of Complex Clauses in a Relational Database</title> <journal>lilog-report</journal> <volume>44</volume> <year>1988</year> <publisher>ibm Deutschland GmbH</publisher> </article> </dblp> dn: key=1,dc=publications, dc=dblp objectclass: ARTICLE key: 1 author: Kurt Rothermel title: An Effective Representation of Complex Clauses in a Relational Database journal: LILOG-Report volume: 44 year: 1988 publisher: IBM Deutschland GmbH 55

57 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Σχήµα 5.1 Παράδειγµα XML αρχείου, LDAP αρχείου και ο παραγόµενος γράφος. Παρατηρούµε ότι το χαρακτηριστικό key στην εγγραφή του LDAP δεν δηµιουργείται στο αντίστοιχο δέντρο αφού αυτό είναι κοινό σε όλες τις εγγραφές. Εποµένως στο πίνακα SG περιέχεται το σύνολο όλων των διαφορετικών δοµών που µπορούν να έχουν οι εγγραφές του LDAP. Πίνακας distance Σ αυτό το πίνακα αποθηκεύονται οι τιµές που προκύπτουν από την µετρική distance (η οποία είναι όµοια µε αυτή που χρησιµοποιείται στον S-GRACE). Συνεπώς για δύο γράφους 1 και 2, distance[1,2] = 0.4 θα σηµαίνει ότι η τιµή που δίνει η συνάρτηση distance είναι 0.4. Πίνακας neighbors Κάθε στοιχείο αυτού του πίνακα αντιπροσωπεύει ένα γράφο και περιέχει µια συνδεδεµένη λίστα στην οποία περιέχονται όλοι οι γείτονες του γράφου αυτού. Αν δηλαδή δύο γράφοι 1 & 2 είναι γείτονες (που αποδεικνύεται µέσω κάποιας µερικής) τότε ο πίνακας neighbors[1] = 2,.,.,. και neighbors[2] = 1,.,.,.,.. Πίνακας LINK Η ιδιότητα LINK αφού υπολογιστεί αποθηκεύεται στον αντίστοιχο πίνακα, συνεπώς LINK[1,2] επιστρέφει την ιδιότητα ανάµεσα στους γράφους 1 & 2. 56

58 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Τοπικοί σωροί q Κατά την εκτέλεση των αλγορίθµων δηµιουργούνται τόσοι σωροί όσες και οι οµάδες που σχηµατίζονται. Κάθε σωρός διατηρεί µια λίστα µε τις οµάδες εκείνες που θεωρούνται καταλληλότερες προς ένωση µε την οµάδα που αντιπροσωπεύει ο σωρός. Καθολικός σωρός Q Σ αυτό το πίνακα περιέχονται όλες οι οµάδες ταξινοµηµένες µε τέτοιο τρόπο ώστε στο πρώτο στοιχείο του πίνακα να αντιστοιχεί η επόµενη οµάδα για ένωση. Ο καθολικός σωρός στο πέρας εκτέλεσης της οµαδοποίησης θα περιέχει τις τελικές οµάδες δηλαδή τα αποτελέσµατα της εκτέλεσης. Οι πίνακες LINK και distance αλλά και η έννοια της γειτνίασης έχουν µία σηµαντική ιδιότητα: είναι συµµετρικοί. Αυτό σηµαίνει πως για τους δύο γράφους 1 & 2 LINK[1,2] = LINK[2,1], distance[1,2] = distance[2,1]. Ακόµα αν ο 1 είναι γείτονας µε το 2 τότε και ο 2 γειτνιάζει µε το 1. ευτερεύουσες δοµές Μία επιπλέον δοµή του χρησιµοποιείται από τον αλγόριθµό µας είναι ο πίνακας entries. Όπως γνωρίζουµε σε κάθε γράφο του πίνακα SG µπορούν να αντιστοιχούν περισσότερες από µία εγγραφές του LDAP. Ο αριθµός των εγγραφών που αναπαρίστανται από ένα γράφο είναι σηµαντικός όπως θα δούµε στη συνέχεια. 5.2 Περιγραφή λειτουργίας του Αλγορίθµου οµαδοποίησης Ο ψευδοκώδικας που ακολουθεί (Σχ. 5.2) δείχνει τις βασικές λειτουργίες του αλγορίθµου. 1. graph_array = create_graphs(ldap_entries); 2. distance_array = compute_distance(graph_array); 3. neighbor_vector = find_neighbors(distance_array) ; 4. link_array = compute_link(neighbor_vector); 5. remove_outliers(graph_array); 6. for(i=0;i<count(graph_array);i++) local_heap[i] = build_local_heap(link_array); 7. global_heap = build_global_heap(graph_array); 8. number_of_clusters = count(global_heap); 57

59 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων 9. while (number_of_clusters < stop_parameter) 10. cluster_to_merge1 = first_item(global_heap); 11. cluster_to_merge2 = first_item(local_heap[cluster_to_merge1]); 12. remove_from_global(cluster_to_merge1); 13. remove_from_global(cluster_to_merge2); 14. new_cluster = merge(cluster_to_merge1,cluster_to_merge2); 15. for (every c that belongs to local heaps cluster_to_merge1 or cluster_to_merge2 and c is not equal to cluster_to_merge1 and cluster_to_merge2) 16. link_array[c,new_cluster] = link_array[c,cluster_to_merge1] + link_array[c,cluster_to_merge2]; 17. remove(local_heap[c],cluster_to_merge1); 18. remove(local_heap[c],cluster_to_merge2); 19. insert(local_heap[c],new_cluster); 20. insert(local_heap[new_cluster], c); 21. sort_local(c); 22. sort_local(new_cluster); insert(global_heap, new_cluster); 25. sort_global(); 26. delete_local_heap(cluster_to_merge1); 27. delete_local_heap(cluster_to_merge2); 28. number_of_clusters--; 29. Σχήµα 5.2 Ψευδοκώδικας του αλγορίθµου οµαδοποίησης. Μπορούµε να διαχωρίσουµε το ψευδοκώδικα σε τρεις σηµαντικές ενότητες: 1 η ενότητα η οποία µετασχηµατίζει τα δεδοµένα από τον LDAP σε γράφους (γραµµή 1). 2 η ενότητα η οποία προετοιµάζει όλες τις δοµές δεδοµένων για την επόµενη ενότητα (γραµµές 2-7) 3 η ενότητα όπου επιτελείται η λειτουργία της οµαδοποίησης (γραµµές 8-29) 1 η Ενότητα Στη πρώτη ενότητα ο αλγόριθµος συνδέεται µε τον OpenLDAP server για την άντληση όλων των δεδοµένων (γραµµή 1). Τα δεδοµένα αυτά µετασχηµατίζονται σε γράφους και καταχωρούνται στον πίνακα SG όπως 58

60 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων περιγράψαµε προηγουµένως. Ταυτόχρονα και για κάθε γράφο γίνεται αρίθµηση των εγγραφών που αντιπροσωπεύουν αυτό το γράφο. 2 η Ενότητα Είναι σηµαντικό να επισηµάνουµε πως κάθε γράφος αποτελεί µια ξεχωριστή οµάδα γι αυτό από εδώ και στο εξής οι δύο αυτές έννοιες θεωρούνται ταυτόσηµες. Στη δεύτερη ενότητα και µε βάση του σχηµατισµένους γράφους εφαρµόζεται κάποια τεχνική µέτρησης απόστασης (γραµµή 2). Αυτή η µετρική είναι ο επόµενος τύπος: distance(graph1, graph2) common_branches(graph 1, graph2 ) = 1 max _branches(graph1, graph2 ) Σύµφωνα µε τον τύπο οι γράφοι του σχήµατος (Σχ. 5.3) έχουν απόσταση µεταξύ τους 1-4/6 ή 0,33 αφού 4 είναι τα κοινά τους κλαδιά και 6 είναι ο µέγιστος αριθµός κλαδιών ανάµεσα στους δύο. Σχήµα 5.3 Σύγκριση µεταξύ γράφων. 59

61 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Στη συνέχεια µε βάση το πίνακα αποστάσεων γίνεται εύρεση των γειτόνων (γραµµή 3). Για την εύρεση γειτόνων ορίζεται ένας αριθµός ως όριο για τον οποίο ισχύει ότι δύο γράφοι είναι γείτονες αν η απόσταση µεταξύ τους είναι µικρότερη η ίση από αυτό το όριο. Αν δηλαδή θεωρήσουµε ότι το όριο είναι 0.5 τότε οι δύο γράφοι είναι γείτονες ενώ αν το όριο ήταν ίσο µε 0.2 αυτοί θα έπαυαν να είναι. Ακολουθεί ο υπολογισµός της ιδιότητας LINK (γραµµή 4) η εύρεση της οποίας γίνεται µε τη µέτρηση κοινών γειτόνων των δύο οµάδων πολλαπλασιασµένων µε τον αριθµό των εγγραφών που αντιπροσωπεύονται από κάθε οµάδα. Για να γίνει αντιληπτή η έννοια µπορούµε να υποθέσουµε ότι η οµάδα C 1 έχει τη αντιπροσωπευτική δοµή 20 LDAP εγγραφών και το cluster C 2 το οποίο έχει τη δοµή 50 LDAP εγγραφών. Επιπλέον µπορούµε να κάνουµε την υπόθεση ότι οι δύο αυτές οµάδες έχουν 4 κοινούς γείτονες. Τότε LINK[C 1,C 2 ] = 20 * 50 * 4 = Μετά την ολοκλήρωση και το σχηµατισµό του πίνακα LINK ελέγχεται για κάθε οµάδα ο αριθµός των γειτόνων της (γραµµή 5). Αν µια οµάδα έχει µηδενικούς γείτονες τότε απορρίπτεται µε τη remove_outliers. Έπειτα σχηµατίζονται τοπικοί σωροί τόσοι όσος είναι ο αριθµός των οµάδων µας (γραµµή 6). Σε κάθε τοπικό σωρό αντιστοιχίζεται µια οµάδα και περιέχει τις οµάδες εκείνες που η ιδιότητα LINK δεν είναι µηδέν. Αν π.χ.. Link[C 1,C 2 ] <> 0 τότε local_heap[c 1 ] =,C 2,... Ακόµη, τα στοιχεία σε κάθε σωρό ταξινοµούνται µε βάση µια µετρική g τέτοια ώστε το πρώτο στοιχείο του σωρού να δείχνει στην πιο ευνοϊκή ένωση. Η µετρική δέχεται δύο ορίσµατα - οµάδες. Η πρώτη οµάδα είναι εκείνη της οποίας ο τοπικός σωρός δηµιουργείται και η δεύτερη είναι εκείνη την οποία εξετάζουµε. Εάν π.χ. φτιάχνουµε τη τοπική σωρό της οµάδας 1 και εξετάζουµε την οµάδα 6 τότε θα καλέσουµε το g(1,6). Οι καλύτερες προς ένωση οµάδες είναι πρώτες σε κάθε σωρό. Αυτή η µετρική είναι η: = ( n + n ) link[ Ci, Cj] n g ( Ci, Cj) 1+ 2 f ( γ ) 1+ 2 f ( γ ) 1+ 2 f ( γ ) i j i j n 60

62 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Ο συµβολισµός n είναι o αριθµός των εγγραφών για κάθε οµάδα. Οι οµάδες ταξινοµούνται κατά φθίνουσα σειρά σύµφωνα µε τη µετρική του g. Η δηµιουργία του καθολικού σωρού (γραµµή 7) γίνεται περίπου µε την ίδια διαδικασία. Η µετρική που περιγράφηκε προηγουµένως χρησιµοποιείται πάλι µε ορίσµατα το i-στο στοιχείο και το max(local_heap[i]) το στοιχείο µε τη µεγαλύτερη τιµή g. Έτσι η επόµενη οµάδα προς ένωση είναι αυτή που βρίσκεται πρώτη στο καθολικό σωρό. 3 η Ενότητα Στο τρίτο µέρος γίνεται εκτέλεση ενός επαναληπτικού βρόγχου ο οποίος σταµατά όταν ο αριθµός των οµάδων γίνει ο επιθυµητός (γραµµή 9). Η διαδικασία ανεύρεσης των δύο οµάδων που θα ενωθούν είναι απλή: Όπως περιγράφηκε προηγουµένως η καλύτερη προς ένωση οµάδα σε κάθε επανάληψη είναι αυτή που βρίσκεται στη πρώτη θέση του καθολικού σωρού (γραµµή 10). Έπειτα µεταβαίνουµε στο τοπικό σωρό της οµάδας που εξάγαµε από το καθολικό σωρό. Από αυτόν εξάγουµε επίσης το πρώτο στοιχείο (γραµµή 11). Οι δύο αυτές οµάδες θα ενωθούν σε µια καινούρια (γραµµή 14) αφού πρώτου διαγραφούν από το καθολικό σωρό οι δύο παλαιότερες (γραµµές 12-13). Στη συνέχεια εκτελούνται επαναληπτικά οι ακόλουθες ενέργειες: ηµιουργείται µία νέα γραµµή στο πίνακα LINK για την καινούρια οµάδα (γραµµή 16). ιαγράφονται όλες οι αναφορές των τοπικών σωρών στις οµάδες που ενώθηκαν (γραµµές 17-18). Εισάγονται νέες αναφορές για την καινούρια οµάδα στους σωρούς εκείνους που είχαν πληροφορίες για τις οµάδες που ενώθηκαν (γραµµή 19). ηµιουργείται µια νέα τοπική σωρός για την καινούρια οµάδα, η οποία περιέχει όλα τις οµάδες που περιέχονταν στις σωρούς των δύο παλιότερων (γραµµή 20). Ταξινοµούνται οι τοπικοί σωροί στις οποίες εισήχθησαν καινούρια στοιχεία - οµάδες, σύµφωνα µε τη µετρική g που περιγράφηκε προηγουµένως (γραµµές 21-22). 61

63 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Ακολουθεί η ενηµέρωση του καθολικού σωρού στον οποίο εισάγεται η νέα οµάδα (γραµµή 24). Ο σωρός ταξινοµείται µε τη προηγούµενη µετρική (γραµµή 25) και τα παλαιά στοιχεία αποµακρύνονται (γραµµές 26-27). Αυτό έχει σαν αποτέλεσµα στο τέλος της επανάληψης να µειωθεί ο αριθµός των οµάδων στον καθολικό σωρό κατά ένα (γραµµή 28). Ο αλγόριθµος υλοποιήθηκε σε Java κυρίως λόγω του πλούτου των κλάσεων που διαθέτει η γλώσσα σε δοµές δεδοµένων, αλλά και διασύνδεσιµότητας µε τον OpenLDAP. Συνολικά υλοποιήθηκαν οι επόµενες κλάσεις κάθε µία από τις οποίες είναι υπεύθυνη για την ανάπτυξη τµήµατος του αλγορίθµου: Algorithm.java: Η πρωταρχική κλάση που συντονίζει όλες τις υπόλοιπες κατά τη διάρκεια εκτέλεσης του αλγορίθµου. AlgLdapData.java: Είναι η υπεύθυνη κλάση για τη σύνδεση µε τον OpenLDAP και την άντληση δεδοµένων από αυτόν. AlgComputeDistance.java: Ο υπολογισµός της απόστασης µεταξύ δύο γράφων γίνεται µε τη βοήθεια της κλάσης. AlgComputeNeighbors.java: Σ αυτή τη κλάση κάθε οµάδα εντοπίζει τους γείτονές της. AlgComputeLink.java: Η κλάση αυτή υπολογίζει τη τιµή link µε τη βοήθεια των δύο παραπάνω κλάσεων όπως έχει αναλυθεί στις προηγούµενες παραγράφους. AlgRemoveOutlier.java: Όλες οι οµάδες που δεν έχουν γείτονα απορρίπτονται όταν ο κώδικας της κλάσης εκτελείται. AlgMatrixSG.java: Το αντικείµενο της κλάσης αυτής αποθηκεύει τον SG πίνακα που είναι η υλοποίηση του γράφου. AlgDataUnits.java: Η κλάση αυτή ουσιαστικά δηµιουργεί και ενηµερώνει τον καθολικό και τους τοπικούς σωρούς AlgLoop.java: Εδώ εκτελείται η επαναληπτική δοµή του αλγορίθµου, σε κάθε επανάληψη του οποίο συγχωνεύονται δύο οµάδες σε µία. Υλοποιεί ουσιαστικά το τρίτο µέρος του αλγορίθµου. AlgLocalMeasure.java: Η κλάση αυτή υλοποιεί την µετρική g η οποία καθορίζει πως θα κατανεµηθούν οι οµάδες µέσα στους τοπικούς σωρούς. 62

64 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων AlgGlobalMeasure.java: Όµοια µε πριν αυτή η κλάση χρησιµοποιεί την ίδια µετρική για να διατάξει τις οµάδες µέσα στον καθολικό σωρό. Ο αλγόριθµος περιγράφεται στο Παράρτηµα ΙΙ.1. 63

65 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Ενότητα 6: Εκτέλεση πειραµατικών δεδοµένων και σχολιασµός αποτελεσµάτων 6.1 Κατασκευή LDAP δεδοµένων Για να µπορέσουµε να πειραµατιστούµε µε τον αλγόριθµο που δηµιουργήσαµε ήταν απαραίτητη η δηµιουργία ενός µεγάλου αριθµού δεδοµένων ώστε τα συµπεράσµατα που θα έβγαιναν µετά την εκτέλεση του να είναι έγκυρα και σαφή. Εξ αιτίας της απουσίας µεγάλου συνόλου δεδοµένων για LDAP στο διαδίκτυο έπρεπε να βρεθεί µία τεχνική ώστε να µπορέσουµε να δηµιουργήσουµε δικά µας. Τα LDAP δεδοµένα παρουσιάζουν µεγάλη οµοιότητα ως προς την δενδρική τους µορφή µε τα XML δεδοµένα. Ήδη µελετώντας τον S-GRACE είδαµε πως το σύνολο δεδοµένων που χρησιµοποιήθηκε ήταν το DBLP [11] το οποίο περιείχε περισσότερες από εγγραφές αριθµός που είναι αρκετά ικανοποιητικός. Χρειάστηκε εποµένως µία τεχνική (ή ένας µικρός αλγόριθµος) που να µετατρέπει τα XML δεδοµένα σε αρχεία LDIF ώστε να µπορούν αυτά να εισαχθούν στον server του LDAP. Η λύση που δόθηκε είναι ένα script που διαβάζει το xml αρχείο µε τις εγγραφές του DBLP και το µετατρέπει σε σύνταξη LDAP. Η γλώσσα που χρησιµοποιήθηκε για το script ήταν η PHP λόγω των πλούσιων δοµών και συναρτήσεων που προσφέρει και της ευελιξίας της. Αναλυτικά ο κώδικας του script περιγράφεται στο παράρτηµα I.1. Όπως µπορούµε να δούµε και στο επόµενο σχήµα (Σχ. 6.1) το script µε δεδοµένη είσοδο (α) παράγει την έξοδο (β): <!DOCTYPE dblp SYSTEM "/dblp.dtd" [. ]> <dblp> <article mdate=" " key="tr/ibm/lilog44"> <author>kurt Rothermel</author> <title>an Effective Representation of Complex Clauses in a Relational Database</title> <journal>lilog-report</journal> <volume>44</volume> <year>1988</year> dn: key=1,dc=publications, dc=dblp objectclass: ARTICLE key: 1 author: Kurt Rothermel title: An Effective Representation of Complex Clauses in a Relational Database journal: LILOG-Report volume: 44 year: 1988 publisher: IBM Deutschland GmbH 64

66 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων <publisher>ibm Deutschland GmbH</publisher> </article> </dblp> Είσοδος α Έξοδος β Σχήµα 6.1 Μετατροπή XML εγγραφής σε αντίστοιχη LDIF. Τα χαρακτηριστικά (attributes) στην XML περιέχουν µετα-δεδοµένα και εποµένως δεν σχετίζονται άµεσα µε το περιεχόµενο της πληροφορίας. Για το λόγο αυτό το script αγνοεί τα χαρακτηριστικά του XML αρχείου αφού αυτά δεν µπορούν να τροποποιήσουν την δοµή του δένδρου. Παρατηρούµε λοιπόν πως κάθε στοιχείο εγγραφή του XML αρχείου αντιστοιχεί σε ένα κλαδί του κόµβου dc=publications,dc=dblp στον LDAP. Τα δεδοµένα µας λοιπόν µετά την εισαγωγή θα έχουν µία flat µορφή αφού όλα θα βρίσκονται στο ίδιο επίπεδο, µε τον ίδιο πατέρα. Το επόµενο σχήµα δίνει σχηµατικά το αποτέλεσµα: Σχήµα 6.2 Αναπαράσταση δέντρου δεδοµένων στον LDAP. Ακόµα σε κάθε εγγραφή δίνεται ένας µοναδικός αύξων αριθµός (key) έτσι ώστε κάθε κλειδί να ορίζεται µονοσήµαντα. Τέλος, παρατηρούµε το objectclass χαρακτηριστικό, η λειτουργία του οποίου είναι η ίδια µε το dtd αρχείο στην XML. Ορίζει όλα τα χαρακτηριστικά και τις τιµές που αυτά µπορούν να πάρουν. Στο τέλος αυτής της διαδικασίας έχουµε ένα µεγάλο σε µέγεθος LDIF αρχείο ώστε να καταχωρηθεί στον OpenLDAP. 6.2 Εγκατάσταση του OpenLDAP Ο OpenLDAP προσφέρεται για πολλές εκδόσεις λειτουργικών συστηµάτων. Στην παρούσα εργασία χρησιµοποιήθηκε η έκδοση για Windows (2.0.27) και Linux (2.2.24). Η εγκατάσταση των Windows ήταν απλή και τυπική καθώς συνοδευόταν από έτοιµο πρόγραµµα εγκατάστασης (setup wizard) [9]. 65

67 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Σε Linux περιβάλλον η εγκατάσταση ήταν περισσότερο απαιτητική και ακολουθήθηκαν τα παρακάτω βήµατα (έστω ότι βρισκόµαστε στο µονοπάτι /root): Αποσυµπίεση του αρχείου openldap tar µε την εντολή tar ihv openldap tar Στη συνέχεια, µεταφερόµαστε στο κατάλογο που δηµιουργήσαµε µε cd openldap Κατόπιν κάνουµε τις ανάλογες ρυθµίσεις εκτελώντας την εντολή./configure --enable-shell --enable-ldbm --disable bdb. Έτσι ρυθµίσαµε τον LDAP ώστε στην εγκατάσταση να χρησιµοποιήσει σαν backend βάση το ldbm και όχι το bdb (Berkeley DB). Ο τρόπος εγκατάστασης του LDAP µε την bdb είναι ελαφρά διαφορετικός. Στη συνέχεια ενηµερώνουµε το σύστηµα ώστε να βρούµε όλα τα αρχεία εκείνα τα οποία θα είναι απαραίτητα για τη λειτουργία του OpenLDAP make depend Έπειτα ακολουθεί η εγκατάσταση του OpenLDAP µε τις εντολές: make και make install. Η προκαθορισµένη εγκατάσταση του OpenLDAP στο Linux είναι το path /usr/local/etc/openldap για το αρχεία configuration, δηλαδή τα schemas, το slapd.conf, το ldap.conf κ.α., /usr/local/libexec για τα daemons που ενεργοποιούν τον OpenLDAP (slapd) και τα δεδοµένα βρίσκονται στο path /usr/local/var/openldap-data Ο κατάλογος schema Στο path /usr/local/etc/openldap/schema βρίσκονται τα αρχεία που περιγράφουν όλες τις δυνατές κλάσεις δεδοµένων που µπορούν να εισαχθούν στον OpenLDAP. Για την εισαγωγή των δεδοµένων µας δηµιουργήσαµε ένα καινούριο αρχείο local.schema τα οποίο περιλαµβάνει όλες εκείνες τις κλάσεις και χαρακτηριστικά που είναι απαραίτητα. To local.schema φαίνεται ολόκληρο στο παράρτηµα Ι.2. Τα χαρακτηριστικά που δηλώθηκαν είχαν την εξής σύνταξη: 66

68 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων attributetype ( NAME 'EDITOR' EQUALITY caseignorematch ORDERING caseignoreorderingmatch SYNTAX ) Η δήλωση αυτή περιγράφει µόνο ένα παράδειγµα χαρακτηριστικού το οποίο έχει όνοµα EDITOR τύπου δεδοµένων συµβολοσειράς (SYNTAX µε αυτό τον τρόπο δηόνονται οι τύποι δεδοµένων). Ακόµη γίνεται δήλωση ώστε να µην λαµβάνεται υπόψη η διάκριση κεφαλαίων-πεζών κατά την αναζήτηση του χαρακτηριστικού (EQUALITY caseignorematch). Επιπλέον µε τον όρο ORDERING caseignoreorderingmatch πληροφορούµε το server ότι κατά την επιστροφή των αποτελεσµάτων η ταξινόµηση µπορεί να είναι ανεξάρτητη από διάκριση πεζών κεφαλαίων. Οι κλάσεις που δηλώθηκαν είχαν την εξής σύνταξη: objectclass ( NAME 'ARTICLE' SUP top STRUCTURAL DESC 'The article objectclass' MUST key MAY ( author $ editor $ titlos $ booktitle $ pages $ year $ address $ journal $ volume $ number $ month $ url $ ee $ cdrom $ cite $ publisher $ note $ crossref $ isbn $ series $ school $ chapter ) ) Η παραπάνω δήλωση δηµιουργεί µία κλάση µε όνοµα ARTICLE και η οποία µπορεί να περιλαµβάνει οπωσδήποτε το χαρακτηριστικό key και προαιρετικά τα χαρακτηριστικά author, editor, titlos, booktitle, pages Επίσης, γνωρίζουµε ότι όλες οι κλάσεις κληρονοµούν από την ανώτερη κλάση (top), για το λόγο αυτό γράφεται και η δήλωση SUP top. Η δήλωση STRUCTURAL δείχνει ότι είναι βασική, δηλαδή, µπορούν να δηµιουργηθούν άµεσα στιγµιότυπά της και όχι αφηρηµένη ώστε να δηµιουργούνται µόνο υποκλάσεις. [9] slapd.conf conf,, το αρχείο ρυθµίσεων Το slapd.conf περιέχει όλες εκείνες τις ρυθµίσεις που είναι απαραίτητες για την λειτουργία του OpenLDAP server. Στο αρχείο αυτό ορίζονται και τα σχήµατα που περιέχουν όλες τις κλάσεις δεδοµένων, κωδικοί χρηστών, η backend βάση, οι αρχικοί κόµβοι κ.α.. Οι τροποποιήσεις που γίνονται 67

69 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων σχετίζονται µε την περίληψη του local.schema ώστε τα δεδοµένα που θα εισάγουµε να έχουν έγκυρες κλάσεις όπως επίσης και τη τροποποίηση του αρχικού κόµβου (rootdn). Εποµένως γράφουµε τα εξής: include /usr/local/etc/openldap/schema/local.schema και rootdn dc=publications,dc=dblp Ο προκαθορισµένος κωδικός είναι secret και συνίσταται να µη τροποποιηθεί όταν πρόκειται για χρήση από ένα χρήστη [9] Εκκίνηση του slapd Για να εκκινήσουµε τον OpenLDAP µεταφερόµαστε στο path /usr/local/etc/libexec/ Εκεί µπορούµε δίνοντας την εντολή./slapd ο LDAP ξεκινάει. Ο daemon slapd µπορεί να δεχτεί σαν όρισµα την d xx παράµετρο όπου xx ένας αριθµός από -1 έως 256 που συµβολίζει το debug level, που θα θέλαµε να παρακολουθούµε στο παρασκήνιο. Έτσι, γράφοντας./slapd d 256 µπορούµε να παρακολουθούµε τις βασικές λειτουργίες που επιτελούνται στο υπόβαθρο κατά τη λειτουργία του daemon. ίνοντας./slapd d 1 βλέπουµε όλες τις κινήσεις που επιτελεί ο LDAP κάθε χρονική στιγµή [9] Εισαγωγή δεδοµένων Τα δεδοµένα εισάγονται πολύ εύκολα στον LDAP µε την εντολή ldapadd. Η εντολή χρησιµοποιείται µε τις εξής παραµέτρους: ldapadd -x, ζητάµε απλή πιστοποίηση αυθεντικότητας -D "cn=manager,dc=publications,dc=dblp",δίνουµε το rootdn -w secret, ο κωδικός είναι secret -c, σε περίπτωση αποτυχίας εισαγωγής µίας εγγραφής ζητάµε από το daemon να συνεχίσει. -f file.ldif, όπου file.ldif είναι το αρχείο LDIF που θέλουµε να εισάγουµε. 68

70 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων Έτσι µπορούµε να εισάγουµε όλες τις έγγραφες του DBLP από το LDIF αρχείο που δηµιουργήθηκε προηγουµένως χρησιµοποιώντας το script µετατροπής από XML.[7] Προηγουµένως όµως πρέπει οπωσδήποτε να δηµιουργηθεί ο κόµβος κάτω από τον οποίο θα φιλοξενηθούν όλα τα δεδοµένα (dc=publications,dc=dblp). Αυτός ο κόµβος είναι µία εγγραφή όπως και τα υπόλοιπα δεδοµένα και έχει τη εξής σύνταξη: dn: dc=publications,dc=dblp objectclass: top objectclass: domain dc: publications Η παραπάνω εγγραφή πρέπει να αποθηκευτεί κανονικά σε αρχείο και να καταχωρηθεί πρώτη (επίσης µε την εντολή ldapadd) έτσι ώστε οι υπόλοιπες να µπορέσουν να εισαχθούν επιτυχώς. Πρέπει να παρατηρήσουµε επίσης ότι δεν πρέπει να υπάρχει κενή γραµµή στο τέλος του αρχείου εισαγωγής εγγραφών. 6.3 Αποτελέσµατα εκτέλεσης Η εφαρµογή του αλγορίθµου της προηγούµενης ενότητας στα DBLP δεδοµένα κατάφερε να δηµιουργεί οµάδες οι οποίες ποικίλουν στον αριθµό τους ανάλογα µε το πλήθος που θα ζητήσουµε [10]. Για τη δηµιουργία τόσων οµάδων όσοι είναι και οι ξεχωριστοί τύποι δεδοµένων (δηλαδή 6) δηµιουργήθηκαν οι εξής οµάδες: 1. Όλες οι εγγραφές που αντιπροσωπεύουν articles. 2. Όλες οι εγγραφές που αντιπροσωπεύουν inproceedings. 3. Όλες οι εγγραφές που αντιπροσωπεύουν phdthesis. 4. Όλες οι εγγραφές που αντιπροσωπεύουν masterthesis. 5. Όλες οι εγγραφές που αντιπροσωπεύουν proceedings. 6. Όλες οι εγγραφές που αντιπροσωπεύουν www. Πρέπει να παρατηρήσουνε ότι αν δηλώναµε ως επιθυµητό αριθµό οµάδων κάποιο αριθµό µεγαλύτερο του αυτά τότε κάποια από τις οµάδες θα ήταν 69

71 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων διαιρηµένη σε δύο µικρότερες όπου κάθε µία να περιέχει τις εγγραφές εκείνες που περιέχουν όµοια χαρακτηριστικά. 6.4 Εκτίµηση αποτελεσµάτων Σύµφωνα µε την οµαδοποίηση δηµιουργούµε ένα νέο δέντρο στον LDAP το οποίο θα έχει την επόµενη µορφή: Σχήµα 6.3 Το νέο σχήµα της βάσης του DBLP. Κάτω από τον αρχικό κόµβο δηµιουργούνται έξι καινούριοι, ένας για κάθε είδος εγγραφής που υπάρχει. Το νέο δέντρο που σχηµατίζεται αποτελεί την clustered µορφή. Με τη βοήθεια του script (Παράρτηµα III.1) πραγµατοποιήθηκαν µετρήσεις τόσο για την unclustered (flat) µορφή του δέντρου όσο και για την clustered µορφή. Τα επόµενα αποτελέσµατα δείχνουν ότι στο πλείστο των περιπτώσεων ο πραγµατικός χρόνος εκτέλεσης βελτιώνεται αλλά δεν µπορούν να βγουν συµπεράσµατα για το χρόνο χρήστη ο οποίος είναι πολύ µικρός. 70

72 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων ΕΡΩΤΗΜΑ 1 : Εύρεση όλων των objects ldapsearch -x -h localhost -b "dc=publications,dc=dblp" -D "cn=manager,dc=publications,dc=dblp" -w secret "objectclass=*" real time user time clustered 371, ,1542 unclustered 472, ,177 ΕΡΩΤΗΜΑ 2 : Εύρεση όλων των articles ldapsearch -x -h localhost -b "dc=publications,dc=dblp" -D "cn=manager,dc=publications,dc=dblp" -w secret "objectclass=article" real user time time clustered 118, ,6279 unclustered 175,7618 9,5285 clustered under dc=articles 116, ,

73 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων ΕΡΩΤΗΜΑ 3 : Εύρεση όλων που έχουν attribute year = 2000 ldapsearch -x -h localhost -b "dc=publications,dc=dblp" -D "cn=manager,dc=publications,dc=dblp" -w secret "YEAR=2000" Search all entries with year= Seconds real time clustered user time clustered real time unclustered user time unclustered real time user time clustered 101,9277 4,0504 unclustered 78,6901 2,3988 ΕΡΩΤΗΜΑ 4 : Εύρεση όλων των inproceedings που έχουν attribute year = 2000 ldapsearch -x -h localhost -b "dc=publications,dc=dblp" -D "cn=manager,dc=publications,dc=dblp" -w secret "(&(objectclass=inproceedings)(year=2000))" real time user time clustered 42,9819 2,6 unclustered 68,6598 1,5598 under dc=inproceedings

74 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων ΕΡΩΤΗΜΑ 5 : Εύρεση όλων των articles που έχουν attribute year = 1999 ldapsearch -x -h localhost -b "dc=article,dc=publications,dc=dblp" -D "cn=manager,dc=publications,dc=dblp" -w secret "YEAR=1999" real time user time clustered 19,3767 0,872 unclustered 26,622 0,4812 under dc=article 18,0941 0,8712 ΕΡΩΤΗΜΑ 6 : Εύρεση µε συγκεκριµένα κλειδιά ldapsearch -x -h localhost -b "dc=publications,dc=dblp" -D "cn=manager,dc=publications,dc=dblp" -w secret key Search Keys Seconds real time clustered user time clustered real time unclustered user time unclustered real time user time clustered 169, ,5534 unclustered 154, ,

75 ηµιουργία αλγορίθµου οµαδοποίησης για δεδοµένα καταλόγων ΕΡΩΤΗΜΑ 7 : Εύρεση όλων των www ldapsearch -x -h localhost -b "dc=publications,dc=dblp" -D "cn=manager,dc=publications,dc=dblp" -w secret "objectclass=www" > r real time user time clustered 0,3009 0,0325 unclustered 0,4019 0,0305 under dc=www 0,2771 0,032 74

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων:

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων: Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων: Oμαδοποίηση: Μέρος B http://delab.csd.auth.gr/~gounaris/courses/dwdm/ gounaris/courses/dwdm/ Ευχαριστίες Οι διαφάνειες του μαθήματος σε γενικές γραμμές ακολουθούν

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Χατζηλιάδη Παναγιώτα Ευανθία

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Χατζηλιάδη Παναγιώτα Ευανθία ΜΠΣ «ΜΕΘΟΔΟΛΟΓΙΑ ΒΪΟΙΑΤΡΙΚΗΣ ΕΡΕΥΝΑΣ, ΒΙΟΣΤΑΤΙΣΤΙΚΗ ΚΑΙ ΚΛΙΝΙΚΗ ΒΙΟΠΛΗΡΟΦΟΡΙΚΗ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «Ανάπτυξη λογισμικού σε γλώσσα προγραματισμού python για ομαδοποίηση

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

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής. Εξόρυξη Γνώσης από εδοµένα (Data Mining) Συσταδοποίηση. Γιάννης Θεοδωρίδης

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής. Εξόρυξη Γνώσης από εδοµένα (Data Mining) Συσταδοποίηση. Γιάννης Θεοδωρίδης Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Εξόρυξη Γνώσης από εδοµένα (Data Mining) Συσταδοποίηση Γιάννης Θεοδωρίδης Οµάδα ιαχείρισης εδοµένων Εργαστήριο Πληροφοριακών Συστηµάτων http://isl.cs.unipi.gr/db

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

ΟΜΑΔΕΣ. Δημιουργία Ομάδων

ΟΜΑΔΕΣ. Δημιουργία Ομάδων Δημιουργία Ομάδων Μεθοδολογίες ομαδοποίησης δεδομένων: Μέθοδοι για την εύρεση των κατηγοριών και των υποκατηγοριών που σχηματίζουν τα δεδομένα του εκάστοτε προβλήματος. Ομαδοποίηση (clustering): εργαλείο

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

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων Ενότητα 8: Ομαδοποίηση Μέρος B Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν

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

Clustering. Αλγόριθµοι Οµαδοποίησης Αντικειµένων

Clustering. Αλγόριθµοι Οµαδοποίησης Αντικειµένων Clustering Αλγόριθµοι Οµαδοποίησης Αντικειµένων Εισαγωγή Οµαδοποίηση (clustering): οργάνωση µιας συλλογής από αντικείµενα-στοιχεία (objects) σε οµάδες (clusters) µε βάση κάποιο µέτρο οµοιότητας. Στοιχεία

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

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

Ομαδοποίηση ΙΙ (Clustering)

Ομαδοποίηση ΙΙ (Clustering) Ομαδοποίηση ΙΙ (Clustering) Πασχάλης Θρήσκος PhD Λάρισα 2016-2017 pthriskos@mnec.gr Αλγόριθμοι ομαδοποίησης Επίπεδοι αλγόριθμοι Αρχίζουμε με μια τυχαία ομαδοποίηση Βελτιώνουμε επαναληπτικά KMeans Ομαδοποίηση

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

"Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0"

Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0 "Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0" Βλαχάκης Εμμανουήλ Οικονομάκης Σπυρίδων Εισηγητής: Δ.Ν. Καλλέργης, MSc. Εργ. Συνεργάτης

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

ιαµέριση - Partitioning

ιαµέριση - Partitioning ιαµέριση - Partitioning ιαµέριση ιαµέριση είναι η διαµοίραση αντικειµένων σε οµάδες µε στόχο την βελτιστοποίηση κάποιας συνάρτησης. Στην σύνθεση η διαµέριση χρησιµοποιείται ως εξής: Οµαδοποίηση µεταβλητών

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

Ομαδοποίηση Ι (Clustering)

Ομαδοποίηση Ι (Clustering) Ομαδοποίηση Ι (Clustering) Πασχάλης Θρήσκος PhD Λάρισα 2016-2017 pthriskos@mnec.gr Αλγόριθμοι ομαδοποίησης Επίπεδοι αλγόριθμοι Αρχίζουμε με μια τυχαία ομαδοποίηση Βελτιώνουμε επαναληπτικά KMeans Ομαδοποίηση

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

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6.

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6. Πανεπιστήµιο Πειραιώς - Τµήµα Πληροφορικής Εξόρυξη Γνώσης από εδοµένα (Data Mining) Εξόρυξη Γνώσης από χωρικά δεδοµένα (κεφ. 8) Γιάννης Θεοδωρίδης Νίκος Πελέκης http://isl.cs.unipi.gr/db/courses/dwdm Περιεχόµενα

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

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

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

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων Ενότητα 7: Ομαδοποίηση Μέρος Α Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

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

Αναγνώριση Προτύπων Ι

Αναγνώριση Προτύπων Ι Αναγνώριση Προτύπων Ι Ενότητα 1: Μέθοδοι Αναγνώρισης Προτύπων Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

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

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

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

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

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

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

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

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

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

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

Ανάλυση κατά Συστάδες. Cluster analysis

Ανάλυση κατά Συστάδες. Cluster analysis Ανάλυση κατά Συστάδες Cluster analysis 1 H ανάλυση κατά συστάδες είναι µια µέθοδος που σκοπό έχει να κατατάξει σε οµάδες τις υπάρχουσες παρατηρήσεις χρησιµοποιώντας την πληροφορία που υπάρχει σε κάποιες

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

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Όπως έχουμε ήδη αναφέρει, τα δίκτυα τεχνολογίας / χρησιμοποιούν διεύθυνση 32 bits, προκειμένου να δρομολογήσουν ένα αυτοδύναμο πακέτο στο προορισμό του. Κατά σύμβαση έχει επικρατήσει οι διευθύνσεις να

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

Σύστηµα Αρχείων και Καταλόγων

Σύστηµα Αρχείων και Καταλόγων ΕΠΛ 003 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Σύστηµα Αρχείων και Καταλόγων ιάλεξη 7 (Κεφάλαιο 11 του βιβλίου) Στόχοι Κεφαλαίου Περιγραφή της έννοιας του αρχείου, συστήµατος

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Βασικές Έννοιες - εδοµένα { Νίκος, Μιχάλης, Μαρία, Θάλασσα, Αυτοκίνητο }, αριθµοί, π.χ. {1, 2, 3, 5, 78}, συµβολοσειρές (strings) π.χ. { Κώστας, 5621, ΤΡ 882, 6&5 #1, +

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

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

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ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. Περίληψη Συνεισφοράς

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

Αποθήκες εδοµένων και Εξόρυξη Γνώσης (Data Warehousing & Data Mining)

Αποθήκες εδοµένων και Εξόρυξη Γνώσης (Data Warehousing & Data Mining) Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Αποθήκες εδοµένων και Εξόρυξη Γνώσης (Data Warehousing & Data Mining) Εξόρυξη Γνώσης από Χωρικά εδοµένα (spatial data mining) Γιάννης Θεοδωρίδης, Νίκος Πελέκης

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

Βάσεις δεδομένων και Microsoft Access

Βάσεις δεδομένων και Microsoft Access Περιεχόμενα Κεφάλαιο 1 Βάσεις δεδομένων και Microsoft Access... 7 Κεφάλαιο 2 Microsoft Access 2010... 16 Κεφάλαιο 3 Σχεδιασμός βάσης δεδομένων και δημιουργία πίνακα... 27 Κεφάλαιο 4 Προβολές πινάκων και

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

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΑΡΧΗ 1 ης ΣΕΛΙΔΑΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών Θέμα 1 ο Α. Να χαρακτηρίσετε κάθε μία από

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

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

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

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

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

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων:

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων: Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων: Oμαδοποίηση: Μέρος Α http://delab.csd.auth.gr/~gounaris/courses/dwdm/ gounaris/courses/dwdm/ Ευχαριστίες Οι διαφάνειες του μαθήματος σε γενικές γραμμές ακολουθούν

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

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

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά Νίκος Πασσαράς

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

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Όνοµα: Νικολαΐδης Αντώνιος Επιβλέπων: Τ. Σελλής Περίληψη ιπλωµατικής Εργασίας Συνεπιβλέποντες: Θ. αλαµάγκας, Γ. Γιαννόπουλος

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

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

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

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

Β Γραφικές παραστάσεις - Πρώτο γράφημα Σχεδιάζοντας το μήκος της σανίδας συναρτήσει των φάσεων της σελήνης μπορείτε να δείτε αν υπάρχει κάποιος συσχετισμός μεταξύ των μεγεθών. Ο συνήθης τρόπος γραφικής

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

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ... ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ...1 1. Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...3 Κατηγορίες των Γεωγραφικών εδοµένων...3 Γεωγραφικές οντότητες...3 ιαστάσεις

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

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο Πρωτόκολλα Διαδικτύου Μέρος 2ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Internet Protocol (IP) Στο επίπεδο δικτύου της τεχνολογίας TCP/IP, συναντάμε το πρωτόκολλο IP. Η λειτουργία του IP βασίζεται αποκλειστικά

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

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112 Πλωτάρχης Γ. ΚΑΤΣΗΣ ΠΝ Γιατί χρησιµοποιούµε δίκτυα? Δίκτυο Σύνολο Η/Υ και συσκευών Συνδεδεµένα µε κάποιο µέσο Stand-alone

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

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

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

7.8 Σύστηµα ονοµάτων περιοχών (Domain Name System, DNS)

7.8 Σύστηµα ονοµάτων περιοχών (Domain Name System, DNS) 7.8 ύστηµα ονοµάτων περιοχών (Domain Name System, DNS) Ερωτήσεις 1. Γιατί χρησιµοποιούµε συµβολικά ονόµατα αντί για τις διευθύνσεις; 2. ε τι αναφέρονται το όνοµα και η διεύθυνση ενός υπολογιστή; Πώς και

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

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

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

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

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

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

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

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

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει. οµηµένες τεχνικές Ο στόχος των δοµηµένων τεχνικών είναι: Υψηλής ποιότητας προγράµµατα Εύκολη τροποποίηση προγραµµάτων Απλοποιηµένα προγράµµατα Μείωση κόστους και χρόνου ανάπτυξης. Οι βασικές αρχές τους

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

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε Οµοφωνία σε σύγχρονο σύστηµα µε αϖοτυχίες κατάρρευσης διεργασιών Παναγιώτα Φατούρου Κατανεµηµένος Υπολογισµός 1 Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash

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

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

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

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

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

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

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

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

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

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

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

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

Εισαγωγή Αλγόριθµοι Αποτελέσµατα Επίλογος Ορισµός του Προβλήµατος Ευθυγράµµιση : Εύρεση ενός γεωµετρικού µετασχηµατισµού που ϕέρνει κοντά δύο τρισδιάσ

Εισαγωγή Αλγόριθµοι Αποτελέσµατα Επίλογος Ορισµός του Προβλήµατος Ευθυγράµµιση : Εύρεση ενός γεωµετρικού µετασχηµατισµού που ϕέρνει κοντά δύο τρισδιάσ Εισαγωγή Αλγόριθµοι Αποτελέσµατα Επίλογος Αλγόριθµοι Ευθυγράµµισης Τρισδιάστατων Αντικειµένων Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό & Καποδιστριακό Πανεπιστήµιο Αθηνών 20 Οκτωβρίου 2005 Εισαγωγή

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

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

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

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

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

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

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Βυζαντινά Σφάλματα Τι θα δούμε σήμερα Κάτω Φράγμα για Αλγόριθμους Συμφωνίας με Βυζαντινά Σφάλματα: n > 3f Αλγόριθμος Συμφωνίας

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

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

Εξαγωγή κανόνων από αριθµητικά δεδοµένα

Εξαγωγή κανόνων από αριθµητικά δεδοµένα Εξαγωγή κανόνων από αριθµητικά δεδοµένα Συχνά το σύστηµα που θέλουµε να µοντελοποιήσουµε η να ελέγξουµε αντιµετωπίζεται ως µαύρο κουτί και η πληροφορία για τη λειτουργία του διατίθεται υπό µορφή ζευγών

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

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Data Mining - Classification Data Mining Ανακάλυψη προτύπων σε μεγάλο όγκο δεδομένων. Σαν πεδίο περιλαμβάνει κλάσεις εργασιών: Anomaly Detection:

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

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

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας Τεχνικές Μείωσης Διαστάσεων Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας 1 Εισαγωγή Το μεγαλύτερο μέρος των δεδομένων που καλούμαστε να επεξεργαστούμε είναι πολυδιάστατα.

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

Επαναληπτικές Ασκήσεις Μαθήματος

Επαναληπτικές Ασκήσεις Μαθήματος Επαναληπτικές Ασκήσεις Μαθήματος Ερώτηση: EAM1. Ποιο από τα παρακάτω χαρακτηριστικά δεν αποτελεί κριτήριο κατηγοριοποίησης δικτύων. Κλίμακα Τεχνολογία μετάδοσης Πλήθος τερματικών εντός του δικτύου Ερώτηση:

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης Βασικές αρχές μεθόδων ελαχιστοποίησης Μέθοδοι μονοδιάστατης ελαχιστοποίησης Οι μέθοδοι ελαχιστοποίησης είναι επαναληπτικές. Ξεκινώντας από μια αρχική προσέγγιση του ελαχίστου (την συμβολίζουμε ) παράγουν

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών 1 Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Κωτσογιάννη Μαριάννας Περίληψη 1. Αντικείµενο- Σκοπός Αντικείµενο της διπλωµατικής αυτής εργασίας

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

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

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

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

Υπερπροσαρμογή (Overfitting) (1)

Υπερπροσαρμογή (Overfitting) (1) Αλγόριθμος C4.5 Αποφυγή υπερπροσαρμογής (overfitting) Reduced error pruning Rule post-pruning Χειρισμός χαρακτηριστικών συνεχών τιμών Επιλογή κατάλληλης μετρικής για την επιλογή των χαρακτηριστικών διάσπασης

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

Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3)

Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3) ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΑΠΟΦΟΙΤΟΙ ΣΕΙΡΑ: 1η ΗΜΕΡΟΜΗΝΙΑ: 28/11/2011 ΘΕΜΑ Α Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3) (β). ίνεται ο παρακάτω πίνακας που στην Στήλη 1 υπάρχουν κριτήρια κατηγοριοποίησης

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

Δροµολόγηση (Routing)

Δροµολόγηση (Routing) Δροµολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναµικός Προγραµµατισµός Dijkstra s Algorithm Αλγόριθµοi Δροµολόγησης Link State Distance Vector Δροµολόγηση σε Κινητά Δίκτυα Δροµολόγηση

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

P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης

P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης ιπλωµατική Εργασία του Θεοδώρου Ι. Γαλάνη ΠΕΡΙΛΗΨΗ Γενικά Με την εξάπλωση του διαδικτύου όλο και περισσότεροι

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

Οπτική αντίληψη. Μετά?..

Οπτική αντίληψη. Μετά?.. Οπτική αντίληψη Πρωτογενής ερεθισµός (φυσικό φαινόµενο) Μεταφορά µηνύµατος στον εγκέφαλο (ψυχολογική αντίδραση) Μετατροπή ερεθίσµατος σε έννοια Μετά?.. ΓΙΑ ΝΑ ΚΑΤΑΝΟΗΣΟΥΜΕ ΤΗΝ ΟΡΑΣΗ ΠΡΕΠΕΙ ΝΑ ΑΝΑΛΟΓΙΣΤΟΥΜΕ

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ ο (2.5 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις 26 Ιανουαρίου 2004 ιάρκεια: 2 ώρες (9:00-:00) Στην παρακάτω

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

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε Οµοφωνία σε σύστηµα µε αϖοτυχίες διεργασιών Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν

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

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Περίληψη Επίλυση προβληµάτων χρησιµοποιώντας Greedy Αλγόριθµους Ελάχιστα Δέντρα Επικάλυψης Αλγόριθµος του Prim Αλγόριθµος του Kruskal Πρόβληµα Ελάχιστης Απόστασης

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

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή Γ Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή Η χρήση των ηλεκτρονικών υπολογιστών στο τεχνικό σχέδιο, και ιδιαίτερα στο αρχιτεκτονικό, αποτελεί πλέον μία πραγματικότητα σε διαρκή εξέλιξη, που επηρεάζει

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

7.8 Σύστημα Ονομάτων Περιοχών (Domain Name System, DNS)

7.8 Σύστημα Ονομάτων Περιοχών (Domain Name System, DNS) 7.8 Σύστημα Ονομάτων Περιοχών (Domain Name System, DNS) 1 Τι είναι το όνομα ενός υπολογιστή ή ενός δικτύου; Επειδή οι χρήστες δεν μπορούν να θυμούνται τις IP διευθύνσεις (οι οποίες έχουν τη μορφή τεσσάρων

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

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

ΚΕΦΑΛΑΙΟ 3. Περιγραφή της Μεθόδου ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΜΕΘΟΔΟΥ

ΚΕΦΑΛΑΙΟ 3. Περιγραφή της Μεθόδου ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΜΕΘΟΔΟΥ ΚΕΦΑΛΑΙΟ 3 Περιγραφή της Μεθόδου Το αντικείμενο αυτής της εργασίας είναι η χρήση μιας μεθόδου προσέγγισης συναρτήσεων που έχει προταθεί από τον hen-ha huang και ονομάζεται Ασαφώς Σταθμισμένη Παλινδρόμηση

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης Βασικές αρχές μεθόδων ελαχιστοποίησης Μέθοδοι μονοδιάστατης ελαχιστοποίησης Οι μέθοδοι ελαχιστοποίησης είναι επαναληπτικές. Ξεκινώντας από μια αρχική προσέγγιση του ελαχίστου (την συμβολίζουμε ) παράγουν

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η και ο στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Γενικές αρχές ανάλυσης και σχεδιασµού Τα βήµατα της ανάλυσης και του σχεδιασµού Συµπεράσµατα 2 3 Η ανάλυση

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

7.6 ιευθυνσιοδότηση. Ερωτήσεις

7.6 ιευθυνσιοδότηση. Ερωτήσεις 7.6 ιευθυνσιοδότηση Ερωτήσεις 1. Να εξηγήσετε τους όρους διεύθυνση, όνοµα και διαδροµή στην τεχνολογία TCP/IP και να εξηγήσετε πώς σχετίζονται αυτοί µεταξύ τους. 2. Τι είναι η φυσική διεύθυνση ή διεύθυνση

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

7.2 Τεχνολογία TCP/IP

7.2 Τεχνολογία TCP/IP 7.2 Τεχνολογία TCP/IP Ερωτήσεις 1. Πώς χρησιµοποιείται σήµερα ο όρος TCP/IP; ε ποια πρωτόκολλα αναφέρεται και γιατί έχει επικρατήσει αυτή η ονοµασία; 2. Ποια ανάγκη οδήγησε στην επικράτηση της τεχνολογίας

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

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ Tel.: +30 2310998051, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Ιστοσελίδα: http://users.auth.gr/theodoru ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

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

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΚΥΡΙΑΚΗ 23/04/2017 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ ( 7) ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν γράφοντας στο

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

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) ΕΡΓΑΣΙΑ (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) Τίτλος: Εφαρμογή Διαδικτύου Ηλεκτρονικού Καταστήματος Ζητούμενο: Να αναπτυχθεί web εφαρμογή,

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

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

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

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

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

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

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

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