Μεταπτυχιακή ιπλωµατική Εργασία. «Εντοπισµός Θέσης σε Wi-Fi δίκτυα µέσω της πιθανοτικής µεθόδου Particle Filtering και χρήση σε m-commerce εφαρµογές»

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

Download "Μεταπτυχιακή ιπλωµατική Εργασία. «Εντοπισµός Θέσης σε Wi-Fi δίκτυα µέσω της πιθανοτικής µεθόδου Particle Filtering και χρήση σε m-commerce εφαρµογές»"

Transcript

1 Πανεπιστήµιο Πατρών Τµήµα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Μεταπτυχιακό Πρόγραµµα: «Επιστήµη και Τεχνολογία Υπολογιστών» Μεταπτυχιακή ιπλωµατική Εργασία «Εντοπισµός Θέσης σε Wi-Fi δίκτυα µέσω της πιθανοτικής µεθόδου Particle Filtering και χρήση σε m-commerce εφαρµογές» Βαρβάρας ηµήτριος ΑΜ: 602 Επίβλεψη: Αναπληρωτής καθ. κ. Γαροφαλάκης Ιωάννης Τριµελής Επιτροπή: κ.γαροφαλάκης Ιωάννης, κ.μακρής Χρήστος, κ.τσακαλίδης Αθανάσιος Πάτρα, εκέµβριος 2011

2 Eυχαριστίες Για την εκπόνηση της εργασίας αυτής καταναλώθηκε αρκετός χρόνος αναζήτησης και υλοποίησης.ιδιαίτερες ευχαριστίες στον κ.γαροφαλάκη Ιωάννη, καθηγητή του τµήµατος για την υποστήριξή του καθώς και την δυνατότητα που έδωσε να ασχοληθώ µε κάτι ιδιαιτέρως ενδιαφέρον. Η εργασία αυτή δεν θα είχε καταστεί έτοιµη δίχως την στήριξη της οικογένειας αλλά και των φίλων µου, τους οποίους ευχαριστώ θερµά. 2 Σελίδα

3 Περιεχόµενα Εισαγωγή 8 Κεφάλαιο 1 10 Η έννοια της εξόρυξης δεδοµένων Εισαγωγικά Αποθήκες δεδοµένων υνατότητες εξόρυξης γνώσης Παραδείγµατα εφαρµογής εξόρυξης γνώσης Ορισµός οµικές έννοιες εξόρυξης γνώσης E-commerce (Ηλεκτρονικό εµπόριο) M-commerce 17 Κεφάλαιο 2 21 Ανακάλυψη γνώσης από βάσεις δεδοµένων Εισαγωγικά Τα βήµατα της KDD διαδικασίας πιο αναλυτικά Τεχνικές εξόρυξης δεδοµένων Κλασσικές Τεχνικές Επόµενης Γενιάς Τεχνικές Λογισµικό Data mining 32 Κεφάλαιο 3 33 H πιθανοτική τεχνική εντοπισµού θέσης χρήστη Particle Filtering Εισαγωγικά Κανόνας του Bayes Τεχνικές εκτίµησης θέσης Bayesian Filtering Kalman Filtering Particle Filtering Ο αλγόριθµος του Particle Filtering 45 Κεφάλαιο 4 51 Market Basket Analysis και Decision Trees Εισαγωγή Market Basket Analysis Κανόνες συσχέτισης 53 3 Σελίδα

4 4.2.2 Ο αλγόριθµος Apriori Ψευδοκώδικας Αλγορίθµου Εξαγωγή Κανόνων Συσχέτισης Decision trees Αλγόριθµοι Decision Trees Ορισµοί O ID3 Αλγόριθµος Χρήση των λόγων κέρδους Ο C4.5 Αλγόριθµος Εξαγωγή κανόνων από τα Decision Trees 69 Κεφάλαιο 5 71 Περιγραφή και στόχοι εφαρµογής Γενική περιγραφή Στόχοι εφαρµογής 74 Κεφάλαιο 6 76 Υποσυστήµατα εφαρµογής Βασική Περιγραφή Υπάρχοντα συστήµατα εντοπισµού θέσης ιαχωρισµός υποσυστηµάτων εντοπισµού Περιγραφή υποσυστήµατος εντοπισµού θέσης Σύστηµα εξαγωγής γράφου ιαδικασία εξαγωγής γράφου Οφέλη χρήσης Γράφου Επιµέρους συστήµατα Κεντρικό σύστηµα εντοπισµού (Server) Σηµεία πρόσβασης (Access Points) Υπολογιστής διορθωτής (Sniffer) Σύστηµα πελάτη (Client) Προτερήµατα συστήµατος εντοπισµού θέσης σε σχέση µε προϋπάρχοντα Υποσύστηµα εξαγωγής γράφου (Map Extractor) ιαδικασία εξαγωγής Γράφου Αναλυτική περιγραφή εντοπισµού κορυφών Εντοπισµός µπλοκ περιοχών Εντοπισµός κέντρων κλειστής περιοχής Τοποθέτηση των κέντρων και των σηµείων προσπέλαση στο σύνολο V του γράφου 90 4 Σελίδα

5 6.5.6 Εξαγωγή ακµών γράφου Αναλυτική περιγραφή εντοπισµού ακµών Σχηµατισµός όλων των δυνατών ακµών ανά µπλοκ ιαδικασία κλαδέµατος ακµών Συγχώνευση του συνόλου των διαφορετικών λιστών Περιγραφή χρήσης υποσυστήµατος εξαγωγής γράφου Κεντρικό Σύστηµα εντοπισµού (Server) Επικοινωνία Server-Client Η βάση δεδοµένων Υλοποίηση του Particle Filter Ο αλγόριθµος του particle filtering Πολλαπλοί χρήστες Υπολογιστής διορθωτής (Sniffer) Κανόνες Λειτουργίας Υλοποίηση Sniffer λογικής Πλευρά του Sniffer Πλευρά του Server Σύστηµα πελάτη (Client) ιαδικασία fingerprint ιαδικασία Localization Υλοποίηση Client Σύστηµα εξόρυξης γνώσης Γενική περιγραφή Σουίτα εργαλείων διαχειριστή Υλοποίηση σουίτας εργαλείων Εξαγωγή κανόνων µε χρήση του market basket analysis _ Εξαγωγή δένδρου απόφασης Συµπληρωµατικά εργαλεία 136 Κεφάλαιο Αποτελέσµατα Εφαρµογής Αποτελέσµατα Σύγκριση προηγούµενης και παρούσας εργασίας 141 Κεφάλαιο Μελλοντική εργασία 144 Βιβλιογραφία Σελίδα

6 Ευρετήριο Σχηµάτων Σχήµα 2.1 Τα πεδία στα οποία βασίζεται το data mining 22 Σχήµα 2.2 Βήµατα της KDD διαδικασίας 24 Σχήµα 2.3 Τεχνικές και οντότητες οι οποίες εφαρµόζονται στο data mining 25 Σχήµα 2.4 Ιστόγραµµα 26 Σχήµα 2.5 Linear Regression 27 Σχήµα 2.6 Κοντινότερος γείτονας 28 Σχήµα 2.7.Συσταδοποίηση 29 Σχήµα 2.8 ένδρο απόφασης 30 Σχήµα 2.9 Νευρωνικό δίκτυο 30 Σχήµα 2.10 Σύνολα µε επεξεργασία των οποίων επιτελείται εξαγωγή κανόνων συσχέτισης 31 Σχήµα 3.1 Particle filtering 46 Σχήµα 3.2 Πρόβλεψη 49 Σχήµα 3.3 Ενηµέρωση 49 Σχήµα 3.4 Επαναδειγµατοληψία 50 Σχήµα 4.1 ιάγραµµα Venn 54 Σχήµα 4.2 Από 4 items σε ένα 4-itemset 57 Σχήµα 4.3: Ψευδοκώδικας Apriori αλγορίθµου 59 Σχήµα 4.4 Flow chart αλγορίθµου Apriori 60 Σχήµα 4.5 Decision Tree για το παράδειγµα 67 Σχήµα 4.6 ιαδικασία κλαδέµατος 69 Σχήµα 6.1.Ιεραρχική δοµή συστήµατος 79 Σχήµα 6.2. Χάρτης -Κάτοψη 85 Σχήµα 6.3. Εξαγόµενος Γράφος 85 Σχήµα 6.4 ιαχωριστές περιοχών και σηµεία προσπέλασης. 86 Σχήµα 6.5 Παράδειγµα προσδιορισµού κέντρων δύο διαφορετικών κλειστών περιοχών 89 Σχήµα 6.6 Παρουσίαση περίπτωσης πλεοναζουσών ακµών 92 Σχήµα 6.7 Ο πίνακας λιστών 93 Σχήµα 6.8 Ο πίνακας λιστών 94 Σχήµα 6.9 Παράδειγµα εφαρµογής αλγορίθµου κλαδέµατος πλεονάζουσων ακµών. 95 Σχήµα 6.10.Επιλογές διαχειριστή για εξαγωγή γράφου 96 Σχήµα 6.11.Προσδιορισµός περιοχής ενδιαφέροντος 97 Σχήµα 6.12 Συνδεσµολογία συστήµατος 98 Σχήµα 6.13 Αρχείο κειµένου 99 Σχήµα 6.14 ιαδικασίες Fingerprint και Localization 101 Σχήµα 6.15 Particle filter, αρχική οµοιόµορφη κατανοµή σωµατιδίων και εξέλιξη 107 Σχήµα 6.16 Flow chart του Particle Filtering 111 Σχήµα 6.17 Sniffer και Server επικοινωνία 114 Σχήµα 6.18 Κανόνας λειτουργίας Sniffer Σελίδα

7 Σχήµα 6.19.Επικοινωνία server-sniffer και server-client 118 Σχήµα 6.20 Η διαδικασία του fingerprint 119 Σχήµα 6.21 Η διαδικασία του localization 120 Σχήµα 6.22 Αρχική και οθόνη επιλογής της διαδικασίας που θα επιλεχθεί 122 Σχήµα 6.23 Fingerprint και Localization 122 Σχήµα 6.24 Αρχική οθόνη του Υποσυστήµατος εξόρυξης γνώσης 124 Σχήµα 6.25 Εµφάνιση κανόνων συσχέτισης 124 Σχήµα 6.26 Εργαλείο µηνυµάτων 125 Σχήµα 6.27 Εργαλείο περιοχών 126 Σχήµα 6.28 Οι επισκέψεις των πελατών 127 Σχήµα 6.29 Οι παράµετροι του market basket analysis 127 Σχήµα 6.30 Τα µονοπάτια που ακολουθήθηκαν από τους πελάτες 128 Σχήµα 6.31 Γράφηµα του πλήθους των πελατών ανά ηµεροµηνία 129 Σχήµα 6.32 Γράφηµα του ποσοστού επίσκεψης των περιοχών των διαφόρων πελατών 130 Σχήµα 6.33 Εφαρµογή των κανόνων στους πελάτες 131 Σχήµα 6.34 ένδρο απόφασης και τα στοιχεία του 131 Σχήµα 7.1 Συνάρτηση ακρίβειας µε χρόνο παραµονής σε κάθε περιοχή 139 Ευρετήριο Πινάκων Πίνακας 4.1 Χαρακτηριστικά δένδρου απόφασης 62 Πίνακας 4.2 εδοµένα εκµάθησης 63 Πίνακας 6.1 Ο πίνακας map_array 88 Πίνακας 6.2 Πίνακες της βάσης δεδοµένων του συστήµατος 102 Πίνακας 6.3 Εισαγόµενος πίνακας στον apriori αλγόριθµο 133 Πίνακας 6.4 Εισαγόµενος πίνακας για την κατασκευή του decision tree 134 Πίνακας 7.1.Πίνακας σύγκρισης προηγούµενου και παρόντος συστήµατος Σελίδα

8 Εισαγωγή Ενδιαφέρον παρουσιάζει η αυξηµένη ανάγκη για εφαρµογές εσωτερικού χώρου οι οποίες να είναι σε θέση να χρησιµοποιούν την ασύρµατη τεχνολογία για να εντοπίσουν την θέση των χρηστών µε σκοπό την εκµετάλλευση της πληροφορίας της θέσης τους για την αποστολή διαφόρων πληροφοριών ενδιαφέροντος. Στην εργασία αυτή προτείνεται ένα σύστηµα εντοπισµού θέσης του οποίου η εξαγόµενη πληροφορία χρησιµοποιείται σε m-commerce εφαρµογές (mobile commerce) µέσω τεχνικών εξόρυξης γνώσης (data mining). Στο κεφάλαιο 1 γίνεται µια εισαγωγή στην έννοια της εξόρυξης γνώσης από δεδοµένα τα οποία βρίσκονται σε βάσεις δεδοµένων. Έτσι περιγράφονται οι αποθήκες δεδοµένων ενώ δίνονται παραδείγµατα εξόρυξης γνώσης. Παράλληλα γίνεται αναφορά στο e-commerce αλλά και στην φυσική εξέλιξη του, το m- commerce. Στο κεφάλαιο 2 αναλύονται οι βασικές τεχνικές της εξόρυξης γνώσης. Περιγράφονται τα βήµατα της KDD διαδικασίας ενώ κατηγοριοποιούνται οι τεχνικές εξόρυξης και αναλύονται βάσει αυτής της κατηγοριοποίησης. Παράλληλα περιγράφεται το τι αναζητά το λογισµικό των τεχνικών εξόρυξης γνώσης. Στο κεφάλαιο 3 γίνεται αναφορά στα προβλήµατα τα οποία απαιτούν την εκτίµηση της κατάστασης ενός συστήµατος που αλλάζει µε την πάροδο του χρόνου, χρησιµοποιώντας µια ακολουθία θορυβωδών µετρήσεων που πραγµατοποιούνται στο σύστηµα. Η συγκεκριµένη κατηγορία προβληµάτων είναι ιδιαίτερα σηµαντική για µας µιας και το σύστηµα εντοπισµού που υλοποιείται στα πλαίσια της εργασίας αυτής ανήκει σε αυτή την κατηγορίας προβληµάτων. Αρχικά γίνεται µια περιγραφή της γενικής τάσης επίλυσης τέτοιων προβληµάτων. Παρουσιάζεται ο κανόνας του Bayes αλλά γίνεται και µια εισαγωγή στο Bayesian filtering. Στην εξέλιξη του κεφαλαίου περιγράφονται συνοπτικά οι τεχνικές Kalman filter και Extended Kalman filter. Τέλος περιγράφεται αναλυτικά η τεχνική particle filtering, η τεχνική η οποία χρησιµοποιείται για την υλοποίηση του συστήµατος εντοπισµού θέσης χρήστη που υλοποιήθηκε για αυτή την εργασία Στο κεφάλαιο 4 γίνεται µια περιγραφή των τεχνικών εξόρυξης γνώσης οι οποίες χρησιµοποιούνται στην παρούσα εργασία. Έτσι περιγράφονται εκτενώς και όπου κρίνεται απαραίτητο µε χρήση παραδειγµάτων, οι τεχνικές εξόρυξης γνώσης 8 Σελίδα

9 Market Basket Analysis (Ανάλυση Καλαθιού Αγορών) και Decision Trees ( ένδρα Απόφασης). Παράλληλα µε την περιγραφή των τεχνικών αναφέρεται και η διαδικασία εξαγωγής των κανόνων συσχέτισης ως απόρροια της εφαρµογής των τεχνικών αυτών. Στο κεφάλαιο 5 γίνεται µια γενική περιγραφή της εφαρµογής που υλοποιείται στα πλαίσια αυτής της εργασίας. Παράλληλα τίθενται οι στόχοι που καλείται η εφαρµογή αυτή να εκπληρώσει έτσι ώστε να θεωρηθεί επιτυχηµένη. Στο κεφάλαιο 6 γίνεται µια εκτενής περιγραφή του συστήµατος που υλοποιείται. Το σύστηµα αρχικά χωρίζεται σε δύο επιµέρους υποσυστήµατα. Το σύστηµα εντοπισµού και το σύστηµα εξόρυξης γνώσης. Στην συνέχεια το σύστηµα εντοπισµού διαχωρίζεται ξανά σε επιµέρους υποσυστήµατα. Το κεφάλαιο 6 παρουσιάζει το πώς οι τεχνικές οι οποίες παρουσιάστηκαν στα κεφάλαια 3 και 4 εφαρµόζονται πάνω στην κατασκευή ενός πραγµατικού συστήµατος. Στο κεφάλαιο 7 γίνεται µια παρουσιάση των αποτελεσµάτων της εφαρµογής αλλά και µια προσπάθεια αποτίµησης του κατά πόσο καλύφθησαν οι στόχοι οι οποίοι ετέθησαν στο κεφάλαιο 5. Παράλληλα γίνεται µια σύγκριση του υποσυστήµατος εντοπισµού που υλοποιήθηκε στα πλαίσια της παρούσας εργασίας µε το σύστηµα εντοπισµού που περιγράφεται στο [20]. Τέλος στο κεφάλαιο 8 παρουσιάζονται οι προτάσεις του συγγραφέα για µελλοντική εργασία πάνω στο σύστηµα. 9 Σελίδα

10 Κεφάλαιο 1 Η έννοια της εξόρυξης δεδοµένων 1.1 Εισαγωγικά Στην εποχή της πληροφορίας στην οποία ζούµε δεν έχει πλέον σηµασία το ποσό της πληροφορίας που έχει κάποιος στην κατοχή του αλλά το πώς αυτή η πληροφορία διαχειρίζεται, ελέγχεται και εκµεταλλεύεται έτσι ώστε να παραχθεί χρήσιµη γνώση. Η λογική της εξόρυξης δεδοµένων data mining- είναι η πρακτική της εκµαίευσης χρήσιµης γνώσης από έναν πλούτο πληροφοριών οι οποίες είναι αποθηκευµένες σε υπολογιστικά συστήµατα, βάσεις δεδοµένων, στοιχεία τηλεπικοινωνιών, καθώς και οικονοµικές, πωλήσεων και άλλων ειδών πληροφορίες. Με τις σύγχρονες εξελίξεις και ανάγκες η εξόρυξη δεδοµένων έχει εξελιχθεί ως προαπαιτούµενη επιχειρησιακή πρακτική και θεωρείται µείζονος σηµασίας από τις επιχειρήσεις. Τα ανταγωνιστικά περιβάλλοντα των αγορών οδηγούν τις επιχειρήσεις στην αξιοποίηση οποιουδήποτε στοιχείου µπορεί να τους προσφέρει πλεονέκτηµα έναντι των άλλων επιχειρήσεων [8]. Έτσι µε χρήση του data mining µπορούν τα εξάγουν επιχειρησιακά συµπεράσµατα τα οποία τις καθιστούν ανταγωνιστικότερες έναντι των άλλων επιχειρήσεων. Η εξόρυξη γνώσης προσφέρει µε χρήση κατάλληλου λογισµικού αναζήτησης µοτίβων πάνω σε τεράστιο όγκο δεδοµένων φιλοσοφηµένη ανάλυση δεδοµένων καθώς και εξαγωγή γνώσης η οποία θα βοηθήσει είτε στην αύξηση του µεριδίου της αγοράς που κατέχει η επιχείρηση είτε στην επαύξηση των κερδών της. Η ανάγκη για εξόρυξη γνώσης κορυφώθηκε µετά τα τέλη της δεκαετίας του 1990 αλλά και τις αρχές της δεκαετίας του 2000 όπου παρατηρήθηκε κατακόρυφη αύξηση των διαθέσιµων επιχειρησιακών δεδοµένων. Έτσι η χρήση τεχνικών εξόρυξης γνώσης ήταν πλέον αναγκαία. Η εξόρυξη γνώσης εστιάζεται στην κατάλληλη επεξεργασία των δεδοµένων έτσι ώστε να αναζητηθούν τα υποβόσκοντα µοτίβα τα οποία οδηγούν στην αύξηση της κατανόησης της αγοράς ενώ επίσης προσφέρεται µεγαλύτερο δυναµικό πρόβλεψης για την επιχείρηση. Γι αυτό τον λόγο οι επιχειρήσεις κάνουν χρήση της εξόρυξης γνώσης έτσι ώστε να προσδιορίσουν τις συνδέσεις µεταξύ των δεδοµένων αλλά και τα φαινόµενα τα οποία η συµβατική ανάλυση θα παρέβλεπε. Η εξαγωγή αυτής της γνώσης έχει ως αποτέλεσµα την καλύτερη διασαφήνιση των δυνατοτήτων 10 Σελίδα

11 της επιχείρησης σχετικά µε τις σπατάλες, τις ευκαιρίες σε διάφορες αγορές αλλά και στο πλεόνασµα. Παρά το γεγονός ότι ο όρος data mining αποτελεί έναν σχετικά νέο όρο, η τεχνολογία υπάρχει εδώ και καιρό. ιάφορες επιχειρήσεις ανέκαθεν χρησιµοποιούσαν ισχυρούς υπολογιστές για να επεξεργαστούν τεράστιους όγκους δεδοµένων, όπως για παράδειγµα δεδοµένα που προκύπτουν από τον σαρωτή προϊόντων (optical scanner ή barcode reader) κάποιας υπεραγοράς, µε σκοπό την παραγωγή διαφόρων αναφορών σχετικών µε την αγορά [1]. Η συνεχιζόµενη και αυξανόµενη εµφάνιση καινοτοµιών σχετικών µε την απόδοση των µοντέρνων υπολογιστικών συστηµάτων, την απόδοση και χωρητικότητα των συστηµάτων αποθήκευσης αλλά και την παραγωγή λογισµικού σχετικού µε την στατιστική ανάλυση, αυξάνουν δραµατικά την ακρίβεια και την χρησιµότητα της ανάλυσης των δεδοµένων αυτών, µειώνοντας παράλληλα το κόστος Αποθήκες δεδοµένων Οι εξελίξεις στην λήψη δεδοµένων, η αύξηση της επεξεργαστικής ισχύος αλλά και νέες δυνατότητες αποθήκευσης δεδοµένων επιτρέπουν στους διάφορους οργανισµούς να τοποθετήσουν τις επιµέρους ανεξάρτητες φαινοµενικά- βάσεις δεδοµένων τους σε data warehouses(αποθήκες δεδοµένων) [8]. Το data warehousing προσδιορίζεται ως η διαδικασία διαχείρισης συγκεντρωµένων δεδοµένων και η ανάκτηση αυτών. To data warehousing όπως και το data mining είναι ένας σχετικά νέος όρος παρά το γεγονός ότι η ιδέα υπάρχει εδώ και χρόνια. To data warehousing αναπαριστά την ιδανική κατάσταση της διατήρησης σε µια κέντρικη αποθήκη δεδοµένων όλων των δεδοµένων που χαρακτηρίζουν την επιχείρηση. Η συγκέντρωση των δεδοµένων σε κεντρικές αποθήκες οδηγεί σε επιπλέον δυνατότητες πρόσβασης αλλά και ανάλυσης. Οι τεχνολογικές εξελίξεις επιτρέπουν την πραγµατοποίηση αυτής της ιδανικής κατάστασης για πολλές επιχειρήσεις. Το data warehousing αποτελεί θεµέλιο λίθο για την πραγµατοποίηση χρήσιµου data mining πάνω στα επιχειρησιακά δεδοµένα. 1.2 υνατότητες εξόρυξης γνώσης Η εξόρυξη γνώσης χρησιµοποιείται σήµερα κυρίως από εταιρίες οι οποίες στοχεύουν στον πελάτη (consumer focus), επιχειρήσεις οικονοµικές, τηλεπικοινωνίες 11 Σελίδα

12 και marketing. Επιτρέπει σε αυτές τις εταιρίες τον προσδιορισµό των συσχετισµών µεταξύ των εσωτερικών παραγόντων (όπως η τιµή, η θέση του προϊόντος,η ικανότητα του προσωπικού) και των εξωτερικών παραγόντων (όπως οι οικονοµικοί δείκτες, ο ανταγωνισµός αλλά και το πελατειακό προφίλ). Έτσι δίνει στην επιχείρηση πλέον την δυνατότητα να προσδιορίσει τον αντίκτυπο στις πωλήσεις,την ικανοποίηση των πελατών αλλά και τα συνολικά κέρδη. Συµπερασµατικά δίνει στους επιχειρησιακούς παράγοντες την δυνατότητα πληροφόρησης για τα λεπτοµερή δεδοµένα των συναλλαγών. Η market research επιχείρηση International Data Corp. εκτίµησε ότι η βιοµηχανία λογισµικού ανάλυσης δεδοµένων θα παρουσίαζε αύξηση από $1.9 δις δολάρια το 1999 σε $5.2 δις το 2003 ενώ πιο συγκεκριµένα για το λογισµικό εξόρυξης γνώσης η αύξηση θα ήταν από $343 εκατοµµύρια δολάρια σε $1.4 δις δολάρια το Επιπρόσθετα όλο και περισσότερες από τις διεθνούς φήµης επιχειρήσεις εφαρµόζουν εξόρυξη γνώσης στις βασικές τους διαδικασίες είτε ως εσωτερική διαδικασία της ίδιας της επιχείρησης είτε δίνοντας την εργολαβία σε εξωτερικούς συνεργάτες. Αξίζει να σηµειωθεί βάσει της Forrester Research ότι ενώ το 1999 οι επιχειρήσεις οι οποίες είχαν εισαγάγει στην στρατηγική τους το data mining βρίσκονταν στο 18% το 2004 το πλήθος των επιχειρήσεων άγγιζε το 52%.Επίσης η Forrester κατέληξε στο συµπέρασµα ότι η πιο επιτυχηµένες εφαρµογές της εξόρυξης γνώσης πραγµατοποιούνταν στις επιχειρήσεις εκείνες οι οποίες είχαν ενσωµατώσει την εξόρυξη γνώσης στις καθηµερινές τους διαδικασίες Βάσει του νόµου του Malthus για την πληροφορία το νέο πληροφοριακό περιεχόµενο διπλασιάζεται κάθε χρόνο ενώ ο χρόνος που δαπανάται για την κατανάλωση πληροφοριών παραµένει σταθερός Παραδείγµατα εφαρµογής εξόρυξης γνώσης Μια αλυσίδα supermarkets χρησιµοποίησε τεχνικές data mining λογισµικού της Oracle έτσι ώστε να προχωρήσει στην ανάλυση των αγοραστικών µοτίβων και να καταλήξει στην εκµαίευση των αγοραστικών µοτίβων [5]. Μετά την λήξη της ανάλυσης κατέληξαν ότι όταν οι άντρες αγόραζαν πάνες την Τρίτη και το Σάββατο επίσης είχαν σε µεγάλο ποσοστό την τάση να αγοράσουν και µπύρα. Επιπλέον 12 Σελίδα

13 ανάλυση επί των δεδοµένων έδειξε ότι αυτοί οι αγοραστές έκαναν τα εβδοµαδιαία τους ψώνια το Σάββατο. Τις Τρίτες παρόλα αυτά αγόραζαν µόνο περιορισµένο αριθµό προϊόντων. Η εταιρία κατέληξε στο συµπέρασµα ότι οι πελάτες προχωρούσαν στην αγορά µπύρας έτσι ώστε να την έχουν διαθέσιµη για το επερχόµενο σαββατοκύριακο. Η αλυσίδα καταστηµάτων θα µπορούσε πλέον να χρησιµοποιήσει αυτή την νέα πρόσφατα εξαγόµενη γνώση µε διαφορετικούς τρόπους έτσι ώστε να αυξήσουν τα κέρδη τους. Για παράδειγµα θα µπορούσαν να µεταβούν σε χωροταξικές αλλαγές των δύο αυτών πλέον συσχετιζόµενων προϊόντων. Επίσης θα µπορούσαν να πωλούν την µπύρα και τις πάνες τις Τρίτες χωρίς έκπτωση. Με χρήση του data mining ο πωλητής έχει την δυνατότητα να κάνει χρήση της πληροφορίας των αγοραστικών συνηθειών των πελατών έτσι ώστε να στείλει στους πελάτες του στοχευόµενα µηνύµατα προώθησης προϊόντων βάσει του αγοραστικού τους ιστορικού. Από την εξόρυξη γνώσης από σχόλια η δελτία εγγύησης ο πωλητής θα µπορούσε να αναπτύξει προϊόντα και προωθητικές καµπάνιες έτσι ώστε να προσεταιριστεί συγκεκριµένες οµάδες πελατών. Για παράδειγµα η Blockbuster Entertainment κάνει χρήση της βάσης δεδοµένων ιστορικού ενοικιάσεων video έτσι ώστε να προτείνει ενοικιάσεις σε άλλους πελάτες. Η American Express µπορεί να προτείνει προϊόντα στους κατόχους πιστωτικών καρτών βάσει ανάλυσης πάνω στις µηνιαίες τους αγορές. Η WalMart κάνει χρήση πρωτοπόρου data mining έτσι ώστε να διασαφηνίσει τις σχέσεις της µε τους προµηθευτές της. Έτσι η WalMart αποθηκεύει κεντρικά τα στοιχεία για κάθε συναλλαγή όπου συµβαίνει σε κάθε ένα από τα 2,900 καταστήµατά της σε 6 χώρες. Έτσι σε κάθε συναλλαγή τα δεδοµένα της συναλλαγής µεταδίδονται στα κεντρικά έτσι ώστε να αποθηκευτούν στα 7.5 terrabyte data warehouse της. Μέσω του data warehousing δίνεται η δυνατότητα σε περισσότερους από 3,500 προµηθευτές η πρόσβαση σε αυτή την βάση έτσι ώστε να προχωρήσουν σε ανάλυση δεδοµένων. Οι προµηθευτές χρησιµοποιούν αυτά τα δεδοµένα για τον εντοπισµό αγοραστικών µοτίβων στο επίπεδο πώλησης. Αυτή η πληροφορία χρησιµοποιείται για την διαχείριση της απογραφής προϊόντων αλλά και για την αναζήτηση νέων δυνατοτήτων πώλησης. Το 1995 οι υπολογιστές της WalMart επιχειρούσαν πάνε σε 1 εκατοµµύριο περίπλοκα ερωτήµατα στην βάση δεδοµένων. Μεγάλο ενδιαφέρον παρουσιάζει µια data mining εφαρµογή, την οποία χρησιµοποιεί ο Εθνικός Σύνδεσµος Καλαθόσφαιρας της Αµερικής (National Basketball Association - NBA) [1] και η οποία χρησιµοποιεί στατιστικά δεδοµένα και εικόνες καταγραµµένες από καλαθοσφαιρικούς αγώνες για να αναλύσει τις κινήσεις 13 Σελίδα

14 των παιχτών, βοηθώντας τους προπονητές στην επιλογή κατάλληλων παιχτών και στρατηγικών. Για παράδειγµα, η κατάλληλη ανάλυση στατιστικών δεδοµένων κάποιου παιχνιδιού το 1995, έδειξε ότι όταν συγκεκριµένος παίχτης έπαιξε σε αµυντική θέση, τότε ένας άλλος παίχτης επιχείρησε τέσσερις βολές µε 100% επιτυχία. Αυτό ήταν σηµαντικό, επειδή το µοτίβο αυτό διαφοροποιείται κατά πολύ από τον µέσο όρο επιτυχηµένων βολών της οµάδας στο συγκεκριµένο παιχνίδι, ο οποίος ήταν µόλις 49.3%. Το data mining συνεισφέρει επίσης σε εφαρµογές διαχείρισης των σχέσεων µε τους πελάτες. Για παράδειγµα, µια επιχείρηση θα µπορούσε να εφαρµόσει data mining τεχνικές για την εύρεση των πελατών µε την µεγαλύτερη πιθανότητα να απαντήσουν σε κάποια δική τους προσφορά, παρά την µαζική αποστολή και ενηµερωτικών φυλλαδίων σε αυτούς. Ποιό εξειδικευµένες τεχνικές data mining µπορούν να χρησιµοποιηθούν στο να προβλέπουν και ποιες συγκεκριµένες προσφορές είναι πιθανότερο να ενδιαφέρουν κάποιο πελάτη. Ακόµα, αντί για ένα µοντέλο το οποίο να προβλέπει ποιοι από τους πελάτες θα αποδεχθούν τις προσφορές, µια επιχείρηση µπορεί να εφαρµόσει πολλά διαφορετικά µοντέλα για πολλούς διαφορετικούς χρήστες. Μια ακόµα εφαρµογή του data mining είναι σε τµήµατα ανθρωπίνων πόρων (human-resources departments). Σε τέτοιες περιπτώσεις, το ζητούµενο είναι το να προσδιοριστούν τα χαρακτηριστικά των πιο επιτυχηµένων υπαλλήλων µιας επιχείρησης. Τέτοια χαρακτηριστικά µπορεί να είναι για παράδειγµα το πανεπιστήµιο στο οποίο φοίτησαν, ούτως ώστε µελλοντικά να γίνει πρόσληψη περισσότερου ανθρώπινου δυναµικού από το πανεπιστήµιο αυτό. Στην περιοχή της ηλεκτρολογίας, data mining τεχνικές έχουν χρησιµοποιηθεί ευρέως για επίβλεψη της κατάστασης ηλεκτρολογικού εξοπλισµού υψηλής τάσης. Ο σκοπός της επίβλεψης είναι η λήψη πολύτιµης πληροφορίας που αφορά την κατάσταση της µόνωσης του εξοπλισµού. Στον τοµέα της γενετικής, ο στόχος είναι να βρεθεί το πώς οι αλλαγές στην αλυσίδα DNA κάποιου ατόµου επηρεάζουν το ρίσκο της ανάπτυξης κοινών ασθενειών, όπως είναι ο καρκίνος [1]. Αυτό είναι πολύ σηµαντικό για την βελτίωση της διάγνωσης, αποφυγής και θεραπείας των διαφόρων ασθενειών. Η τεχνική data mining που χρησιµοποιείται για την διαδικασία αυτή ονοµάζεται multifactor dimensionality reduction. 14 Σελίδα

15 Τέλος, το data mining εφαρµόζεται στην εκπαιδευτική έρευνα (educational research), όπου χρησιµοποιείται προς µελέτη των παραγόντων που οδηγούν τους µαθητές/φοιτητές σε δραστηριότητες, οι οποίες µειώνουν την µάθηση. 1.3 Ορισµός Εξόρυξη δεδοµένων (data mining) [7] είναι η διαδικασία ψαξίµατος σε µεγάλο όγκο δεδοµένων, µε σκοπό την περισυλλογή πληροφορίας [1]. Το data mining έχει περιγραφεί σαν: «η µη τετριµµένη εξαγωγή υπονοούµενης, ενδεχοµένως χρήσιµης και µέχρι στιγµής άγνωστης πληροφορίας από διάφορα δεδοµένα». Στις επιχειρήσεις,εξόρυξη δεδοµένων-data mining- (µερικές φορές καλείται και data ή knowledge discovery) είναι η διαδικασία ανάλυσης δεδοµένων από διαφορετικές οπτικές γωνίες και η ενοποίηση των δεδοµένων αυτών έτσι ώστε να σχηµατιστεί χρήσιµη πληροφορία- πληροφορία η οποία µπορεί να χρησιµοποιηθεί για αύξηση του κέρδους, µείωση κόστους ή και τα δύο. Το λογισµικό του data mining αποτελείται από ένα σύνολο αναλυτικών εργαλείων τα για την ανάλυση δεδοµένων. Επιτρέπει στους χρήστες την ανάλυση δεδοµένων από πολλές και διαφορετικές διαστάσεις και γωνίες, την κατηγοριοποίησή τους και την τελική περιγραφή των κρυµµένων συσχετίσεων που τα περιγράφουν. Τεχνικά η εξόρυξη δεδοµένων είναι η διαδικασία αναζήτησης συσχετίσεων ή µοτίβων (patterns) µεταξύ µεγάλου πλήθους πεδίων σε µεγάλες σχεσιακές βάσεις δεδοµένων. Μια σηµαντική µέθοδος εξόρυξης δεδοµένων είναι το market basket analysis. Η µέθοδος αυτή βασίζεται στην θεωρία ότι αν κάποιος πελάτης αγοράσει κάποιο συγκεκριµένο προϊόν (ή σύνολο προϊόντων), τότε είναι πολύ πιθανό να αγοράσει και ένα άλλο προϊόν (ή σύνολο προϊόντων). Χρησιµοποιείται στα τµήµατα πωλήσεων προϊόντων, για την επιλογή πελατών µε κάποιες συγκεκριµένες προτιµήσεις ή/και την επιλογή προϊόντων µε κάποια συγκεκριµένα χαρακτηριστικά. Επίσης µια άλλη τεχνική εξόρυξης γνώσης είναι τα δέντρα απόφασης [6]. Τα δέντρα απόφασης χρησιµοποιούνται ευρέως από τις επιχειρήσεις κυρίως για την διαδικασία του προσδιορισµού της στρατηγικής της επιχείρησης η οποία είναι πιο πιθανό να ικανοποιήσει τους στόχους της. 15 Σελίδα

16 κεφάλαια. Οι δύο παραπάνω τεχνικές παρουσιάζονται εκτενέστερα σε επόµενα οµικές έννοιες εξόρυξης γνώσης Οι βασικές δοµικές έννοιες οι οποίες είναι απαραίτητες για την περιγραφή της διαδικασιας εξαγωγής γνώσης είναι τα δεδοµένα που εισάγονται στο σύστηµα εξόρυξης γνώσης, η πληροφορία η οποία ανακύπτει ως εξαγόµενο της επεξεργασίας των δεδοµένων και τελικά η γνώση η οποία αποκοµίζεται από την εξαγόµενη πληροφορία. Σαν δεδοµένα µπορούµε να ορίσουµε οτιδήποτε (αριθµούς, κείµενο κ.τ.λ.) µπορεί να επεξεργαστεί κάποιο υπολογιστικό σύστηµα. Σήµερα, διάφοροι οργανισµοί συγκεντρώνουν κολοσσιαίες ποσότητες δεδοµένων σε πολλές διαφορετικές τυποποιήσεις (formats) και βάσεις δεδοµένων. Τα δεδοµένα αυτά συµπεριλαµβάνουν: o Επιχειρησιακά δεδοµένα ή δεδοµένα συναλλαγών όπως πωλήσεις, απογραφές, µισθολόγια, λογιστικά. o Μη επιχειρησιακά δεδοµένα, όπως δεδοµένα προβλέψεων και µακροοικο-νοµικά δεδοµένα. o Μεταδεδοµένα (δεδοµένα που περιγράφουν δεδοµένα) όπως η σχεδίαση λογικών βάσεων δεδοµένων και προσδιορισµοί δεδοµένων λεξικών. Τα µοτίβα (patterns), οι συσχετίσεις (associations) και οι συνάφειες (relationships) µεταξύ όλων αυτών των δεδοµένων, µπορούν να παρέχουν πληροφορία. Για παράδειγµα, η ανάλυση δεδοµένων από συναλλαγές που έγιναν σε ένα σηµείο πώλησης προϊόντων (όπως µια υπεραγορά), µπορεί να παράγει πληροφορία σχετικά µε το ποια προϊόντα πωλούνται, πότε (χρονικά διαστήµατα) και πώς (µε ποια άλλα προϊόντα πωλούνται µαζί ). Η πληροφορία µε την σειρά της µπορεί να µετατραπεί σε γνώση, η οποία να αφορά µελλοντικές τάσεις της αγοράς. Στο παράδειγµα της υπεραγοράς πιο πάνω, η πληροφορία που κερδίζεται µε την ανάλυση των δεδοµένων από τις συναλλαγές, µπορεί να βοηθήσει στον προσδιορισµό της αγοραστικής συµπεριφοράς των πελατών, δηλαδή να γίνει γνωστή και να εκµεταλλευτεί η αγοραστική τάση του 16 Σελίδα

17 κοινού. Γνωρίζοντας την τάση αυτή, είναι εφικτός ο προσδιορισµός των προϊόντων εκείνων που είναι καλύτερα και πρέπει να προωθούνται περισσότερο. 1.4 E-commerce (Ηλεκτρονικό εµπόριο) Στον τοµέα του e-commerce (Ηλεκτρονικό εµπόριο), η εξόρυξη γνώσης προσφέρει έναν αριθµό επιπρόσθετων πλεονεκτηµάτων. Ποιοι συγκεκριµένα,καθώς οι διάφορες εταιρίες που δραστηριοποιούνται στο e-commerce εργάζονταν έτσι ώστε να µεγιστοποιήσουν τα κέρδη τα οποία θα τους προσέφερε ο παγκόσµιος ιστός διαφάνηκε ότι έπρεπε να προχωρήσουν στην παροχή εξατοµικευµένων υπηρεσιών και προϊόντων [3]. Η διαδικασία αυτή υποβοηθήθηκε τα µέγιστα µε χρήση τεχνικών εξόρυξης γνώσης. Με την σύνδεση της ανάλυσης εξόρυξης γνώσης µε τις βάσεις δεδοµένων εξυπηρέτησης πελατών και τις διαδικτυακές εφαρµογές τους οι εταιρίες µπορούν πλέον να προωθούν προϊόντα και υπηρεσίες στην κατεύθυνση της σύγκλισης µε τις συνήθεις και προτιµήσεις των πελατών τους, µεγιστοποιώντας έτσι τα κέρδη τους M-commerce To M-commerce (mobile commerce) περιγράφει την διαδικασία αγοράς και πώλησης αγαθών καθώς και διάθεσης υπηρεσιών µέσω ασύρµατων handheld συσκευών όπως κινητά τηλέφωνα (smart phones) ή προσωπικούς ηλεκτρονικούς βοηθούς (Personal Digital Assistants PDAs ) [4]. Το m-commerce θεωρείται ως το σύγχρονο e-commerce ή διαφορετικά ένα υποσύνολο αυτού µε µεγάλες δυνατότητες στο µέλλον. Με χρήση του m-commerce επιτρέπεται στους χρήστες να συνδεθούν στο Internet (καθώς και σε τοπικά δίκτυα) και να γίνουν αποδέκτες διαφόρων υπηρεσιών χωρίς την χρήση καλωδίου. Το m-commerce θεωρείται ως η επόµενη γενιά του e-commerce. Η ανάπτυξη των ασύρµατων τεχνολογιών και των κινητών δικτύων, έχει παίξει καταλυτικό ρόλο στην εµφάνιση του m-commerce, το οποίο παρέχει τα δικά του πλεονεκτήµατα, σε αντίθεση µε το παραδοσιακό e-commerce (ηλεκτρονικό εµπόριο) [4]. Πολλά µοναδικά χαρακτηριστικά του, όπως η ευκολότερη πρόσβαση πληροφορίας οποτεδήποτε και οπουδήποτε σε πραγµατικό χρόνο, η ανεξάρτητη από 17 Σελίδα

18 την τοποθεσία του χρήστη επικοινωνία, και η ευκολότερη λήψη δεδοµένων, προκάλεσαν την ευρεία αποδοχή των εφαρµογών και υπηρεσιών του. Τέτοιες υπηρεσίες είναι διαθέσιµες στο κοινό µέσω των ασύρµατων τεχνολογιών. Στα πρώτα βήµατα του m-commerce υπήρχε ο περιορισµός της υπάρχουσας τεχνολογίας. Έτσι τα πρώτα συστήµατα m-commerce περιορίζονταν κυρίως στην αποστολή και λήψη γραπτών µηνυµάτων (SMS) από το κινητό τηλέφωνο του χρήστη. Τέτοια παραδείγµατα είναι η πληρωµή για κάποια υπηρεσία µέσω γραπτού µηνύµατος, όπως για παράδειγµα σε συστήµατα parking. Παρόλα αυτά η χρήση γραπτών µηνυµάτων για την εφαρµογή του m-commerce δεν το ευνοούν, µιας και τα SMS είναι τρωτά σε ζητήµατα ασφάλειας καθώς και ζητήµατα δικτυακής συµφόρησης. Ως επακόλουθο η βιοµηχανία κινητής τηλεφωνίας κατασκεύασε νέες τεχνολογίες οι οποίες θα µπορούσαν να υποστηρίξουν τις νέες τάσεις. Μία από αυτές είναι το i-mode της NTT DoCoMo. Η τεχνολογία αυτή παρείχε πρόσβαση στο web, ηλεκτρονικό ταχυδροµείο καθώς και µια υποδοµή για την ανταλλαγή πακέτων δεδοµένων. Έτσι οι χρήστες του είχαν πρόσβαση σε διάφορες υπηρεσίες όπως e- mail, αποτελέσµατα αγώνων, οικονοµικές συναλλαγές, κλείσιµο εισιτηρίων, πρόγνωση καιρού κοκ. Κατασκευαστές όπως οι Ericsson, Nokia, Motorola και Qualcomm σε συνεργασία µε διάφορους φορείς κινητής τηλεφωνίας κινήθηκαν προς την κατεύθυνση κατασκευής κινητών συσκευών (κυρίως smart phones) οι οποίες θα εκµεταλλευόντουσαν την νέα τάση. Σηµαντικά βήµατα στο m-commerce έγιναν µε χρήση του πρωτοκόλλου WAP (Wireless Application Protocol) όπου κινητές συσκευές µε προεγκατεστηµένους περιορισµένης πολυπλοκότητας φυλλοµετρητές άνοιξαν στους χρήστες ένα παράθυρο προς το internet µέσω κινητής συσκευής. Χρησιµοποιώντας επιπλέον τεχνολογίες ( Bluetooth, Wi-Fi ) ένα σύγχρονο smart phone προσφέρει υπηρεσίες fax, ηλεκτρονικού ταχυδροµείου καθώς και υπηρεσίες κινητής τηλεφωνίας δηµιουργώντας την βασική υποδοµή για το m-commerce. Το mobile marketing έχει το δυναµικό να αλλάξει θεµελιωδώς τον τρόπο όπου το κλασσικό marketing διαδραµατίζεται. Αντί για µια γενική επιχειρησιακή στρατηγική υπάρχει η τάση κατεύθυνσης σε µια κατάσταση όπου οι πελάτες είναι πρόθυµοι να µοιραστούν πληροφορίες και οι πωλητές µπορούν πλέον να αξιοποιήσουν αυτές τις πληροφορίες µε χρήσιµο και επικερδή τρόπο. Η βασική λογική η οποία διαφοροποιεί το mobile marketing µε άλλα κανάλια είναι η ικανότητα του mobile marketing, της αποστολής του κατάλληλου µηνύµατος στο κατάλληλο άτοµο την κατάλληλη στιγµή. 18 Σελίδα

19 Όσο η διαδικασία διάθεσης δεδοµένων σε ασύρµατες συσκευές γίνεται όλο και ταχύτερη, ασφαλέστερη και πιο αρθρωτή, υπάρχει έντονα η εικασία ότι το m- commerce θα υποσκελίσει το συµβατικό e-commerce ως η επιλεγµένη µέθοδος για την διαδικασία εµπορικών συναλλαγών. Οι «βιοµηχανίες» οι οποίες επηρεάζονται από το m-commerce συµπεριλαµβάνουν[1]: Οικονοµικές υπηρεσίες, στις οποίες συµπεριλαµβάνεται το internet banking (όπου οι πελάτες χρησιµοποιούν τις κινητές τους συσκευές για να προσπελάσουν τον τραπεζικό τους λογαριασµό και να πληρώσουν τις οφειλές τους Mobile Banking) [2]. Επίσης σε χρηµατιστηριακές συναλλαγές όπου ερωτήµατα για τις µετοχές καθώς και συναλλαγές γίνονται από την ίδια φορητή συσκευή (Mobile Brokerage). Στις τηλεπικοινωνίες όπου οι διαδικασίες εξόφλησης λογαριασµών, ανάλυσης λογαριασµού, ενεργοποίησης / απενεργοποίησης επιπλέον υπηρεσιών αλλά και διάθεσης ψηφιακού υλικού µπορούν να επιτελούνται από την φορητή συσκευή. Ιδιαίτερης σηµασίας είναι η σύγκλιση η οποίας έχει επιτελεστεί µεταξύ κινητών τηλέφωνων, mp3 players καθώς και video players. Η σύγκλιση αυτή είναι σηµαντική µιας και πλέον η διάθεση ψηφιακού περιεχοµένου µπορεί να περιλαµβάνει εικόνες, µουσική ακόµη και ταινίες. Λιανικό εµπόριο, µιας και πλέον διευκολύνεται πολύ περισσότερο η διαδικασία αγοράς αγαθών ακόµη και εν κινήσει [4]. Πρόκειται για την µεγαλύτερη κατηγορία «βιοµηχανίας» µιας και πλέον ο οποιοσδήποτε µε κάποια κινητή συσκευή και πρόσβαση στο δίκτυο θα µπορεί οπουδήποτε να επισκέπτεται µέσω της κινητής του συσκευής το ηλεκτρονικό κατάστηµα που επιθυµεί. Επιπλέον το πρόσθετο όφελος στην περίπτωση του λιανικού εµπορίου µέσω του m-commerce είναι η δυνατότητα του ίδιου του εµπόρου να εντοπίζει τους πελάτες ανά πάσα στιγµή και να τους ενηµερώνει πολύ πιο εύκολα σχετικά µε νέα η υπάρχοντα προϊόντα. Υπηρεσίες παροχής πληροφοριών, στις οποίες περιλαµβάνονται η διάθεση πάσης φύσεως ειδήσεων όπως οικονοµικών, διαφηµιστικών, ενηµερωτικών ή και παροχή δεδοµένων κυκλοφορίας σε µία φορητή συσκευή. Στην περίπτωση που οι πληροφορίες οι οποίες παρέχονται στον χρήστη 19 Σελίδα

20 συσχετίζονται και µε την θέση του τότε µιλάµε για Location-based υπηρεσίες. Οι υπηρεσίες αυτές έχουν µια ιδιαίτερη δυναµική στο m- commerce µιας και µε την επιπλέον πληροφορία της θέσης του χρήστη οι πληροφορίες αυτές προσωποποιούνται. Στην παρούσα εργασία υλοποιείται ένα τέτοιο m-commerce σύστηµα το οποίο χρησιµοποιεί την επιπλέον πληροφορία της θέσης του χρήστη. 20 Σελίδα

21 Κεφάλαιο 2 Ανακάλυψη γνώσης από βάσεις δεδοµένων 2.1 Εισαγωγικά Η ανακάλυψη γνώσης από βάσεις δεδοµένων (knowledge discovery from databases-kdd) είναι η διαδικασία της αποκάλυψης ή παραγωγή λειτουργικής γνώσης, µέσω της ανάλυσης δεδοµένων από µεγάλες αποθήκες δεδοµένων [6]. Πρόκειται για εύρεση δοµών γνώσης που αναδεικνύουν γνώση (π.χ. συσχετίσεις ή κανόνες) που είναι κρυµµένη µέσα στα δεδοµένα και δεν µπορούν να εξαχθούν από τον άνθρωπο µε ευκολία. Η KDD διαδικασία είναι αλληλεπιδραστική και επαναληπτική, περιλαµβάνοντας πολλά βήµατα, καθώς και πολλές αποφάσεις που πρέπει να παρθούν από τον χρήστη. «KDD είναι η ντετερµινιστική διαδικασία αναγνώρισης έγκυρων, καινοτόµων, ενδεχοµένως χρήσιµων και εν τέλει κατανοητών προτύπων στα δεδοµένα.» (Frawley, Piatesky-Shaphiro and Matheus, 1991). Στον παραπάνω ορισµό τα δεδοµένα είναι Οντότητες ή συσχετίσεις του πραγµατικού κόσµου (π.χ. εγγραφές συναλλαγών τραπέζης, supermarket κλπ). Η έννοια του προτύπου προσδιορίζει Μια έκφραση σε µια γλώσσα που χαρακτηρίζει ένα υποσύνολο των δεδοµένων (π.χ. ένας κανόνας). Η εγκυρότητα έχει την έννοια της συνέπειας σε νέα δεδοµένα. Η χρησιµότητα προσδιορίζει την ανάγκη του να µπορούν τα εξαγόµενα της διαδικασίας να χρησιµοποιηθούν για κάποιο σκοπό (π.χ. λήψη αποφάσεων). Ο προσδιορισµός «κατανοητά πρότυπα» διασαφηνίζει ότι ένα κοινώς κατανοητό πρότυπο, θα µπορεί να είναι και κοινώς χρήσιµο. Παραδοσιακά, η έννοια της εύρεσης χρήσιµων µοτίβων σε δεδοµένα έχει πάρει µια πληθώρα ονοµάτων, συµπεριλαµβανοµένων των: εξόρυξη δεδοµένων - data mining, εξαγωγή γνώσης - knowledge extraction, ανακάλυψη γνώσης - information discovery, συγκέντρωση πληροφορίας - information harvesting, αρχαιολογία δεδοµένων - data archaeology και επεξεργασία µοτίβων δεδοµένων - data pattern processing. Η φράση Knowledge Discovery in Databases επινοήθηκε στο πρώτο KDD workshop το 1989, µε σκοπό να δοθεί έµφαση στο γεγονός ότι η γνώση είναι το τελικό αποτέλεσµα µιας ανακάλυψης που σχετίζεται µε επεξεργασία 21 Σελίδα

22 δεδοµένων. Το KDD έγινε δηµοφιλείς στους τοµείς Τεχνητής Νοηµοσύνης (AI - Artificial Intelligence) και machine-learning. Σύµφωνα µε τους Fayyad, Piatetsky- Shapiro και Smyth στο [6], το KDD αναφέρεται στην γενικότερη διαδικασία ανακάλυψης χρήσιµης γνώσης από δεδοµένα, ενώ το data mining αναφέρεται σε ένα συγκεκριµένο βήµα της διαδικασίας αυτής. Σύµφωνα µε αυτούς, το data mining είναι η εφαρµογή συγκεκριµένων αλγορίθµων για εξαγωγή µοτίβων από τα δεδοµένα. Τα επιπλέον βήµατα της KDD διαδικασίας, τα οποία δεν υφίστανται στο data mining, αφορούν την προετοιµασία δεδοµένων (data preparation), την επιλογή των δεδοµένων (data selection), τον «καθαρισµό» των δεδοµένων (data cleaning), την ενσωµάτωση κατάλληλης προηγούµενης γνώσης και την κατάλληλη ερµηνεία των αποτελεσµάτων [1]. Όλα αυτά τα βήµατα είναι, σύµφωνα µε τους συγγραφείς, απαραίτητα, για να εξασφαλιστεί ότι από τα δεδοµένα θα παραχθεί χρήσιµη γνώση. Το KDD έχει εξελιχθεί και συνεχίζει να εξελίσσεται, από την τοµή ερευνητικών πεδίων όπως το machine learning, η αναγνώριση µοτίβων (pattern recognition), οι βάσεις δεδοµένων, η στατιστική και άλλα. Στόχος, είναι η εξαγωγή υψηλού επιπέδου γνώσης από χαµηλού επιπέδου δεδοµένα (datasets). Το data mining τµήµα του KDD βασίζεται σε γνωστές τεχνικές από τα πεδία machine learning, pattern recognition, και στατιστική. Στόχος του data mining βήµατος της KDD διαδικασίας, είναι η εύρεση µοτίβων από δεδοµένα. Σχήµα 2.1 Τα πεδία στα οποία βασίζεται το data mining Τα βήµατα της KDD διαδικασίας πιο αναλυτικά 1. Επιλογή (Selection): Απόκτηση δεδοµένων από διάφορες ετερογενείς πηγές. Περιλαµβάνει επίσης την κατανόηση του πεδίου της εφαρµογής και της 22 Σελίδα

23 σχετικής µε αυτό προηγούµενης γνώσης, όπως επίσης και προσδιορισµός του στόχου της διαδικασίας από την οπτική πλευρά του πελάτη. 2. Προεπεξεργασία (Preprocessing): Εσφαλµένα, προβληµατικά ή ελλείποντα δεδοµένα τακτοποιούνται (µπορεί να απαιτήσει µεγάλο ποσοστό της προσπάθειας). Επιτελείται «Καθαρισµός δεδοµένων» και προεπεξεργασία. Αυτή η διαδικασία περιλαµβάνει την αποµάκρυνση του «θορύβου», την συλλογή της κατάλληλης πληροφορίας για µοντελοποίηση του «θορύβου», την απόφαση για το πώς θα διαχειριστούν τυχών απόντα πεδία δεδοµένων κ.α. 3. Μετασχηµατισµός (Transformation): Μετατροπή ετερογενών δεδοµένων σε κοινή τυποποίηση για επεξεργασία. Πρόκειται για µείωση όγκου δεδοµένων και προβολή τους: εύρεση χρήσιµων χαρακτηριστικών για αναπαράσταση των δεδοµένων, ανάλογα πάντα µε τον σκοπό της διαδικασίας. Με µείωση των διαστάσεων και κατάλληλες µεθόδους µετασχηµατισµού, ο αριθµός των µεταβλητών µπορεί να µειωθεί. 4. Εξόρυξη δεδοµένων (Data mining): Πρόκειται για την εφαρµογή αλγορίθµων για παραγωγή µοντέλου. Γίνεται η επιλογή των data mining αλγορίθµων και των µεθόδων επιλογής, για την αναζήτηση µοτίβων δεδοµένων (data patterns). Κατά την διαδικασία αυτή αποφασίζεται το ποια µοντέλα και παράµετροι είναι κατάλληλα (για παράδειγµα τα µοντέλα ρητών δεδοµένων είναι διαφορετικά από τα µοντέλα διανυσµάτων) και γίνεται αντιστοίχιση µιας συγκεκριµένης data mining µεθόδου, µε τα γενικότερα κριτήρια της KDD διαδικασίας (για παράδειγµα ο τελικός χρήστης µπορεί να ενδιαφέρεται περισσότερο στην κατανόηση του ίδιου του µοντέλου, παρά των προγνωστικών του ικανοτήτων). Ουσιαστικά επιτελείται αναζήτηση για µοτίβα που παρουσιάζουν κάποιο ενδιαφέρον σε µια συγκεκριµένη µορφή αναπαράστασης ή σε ένα σύνολο τέτοιων αναπαραστάσεων, συµπεριλαµβανοµένων των κανόνων ή δέντρων ταξινόµησης, της οπισθοχώρησης (regression) και του clustering. Ο χρήστης µπορεί να βοηθήσει σηµαντικά την data mining µέθοδο, µε το να εκτελέσει σωστά τα προηγούµενα βήµατα. 5. ιερµηνεία/αξιολόγηση (Interpretation/Evaluation): Παρουσίαση των αποτελεσµάτων της εξόρυξης δεδοµένων στους χρήστες για αξιολόγηση 23 Σελίδα

24 (χρήση µεθόδων οπτικοποίησης και GUI). Γίνεται µετάφραση των εξορυγµένων µοτίβων, µε πιθανόν επιστροφή σε κάποιο από τα βήµατα 1 µε 5 για περαιτέρω επεξεργασία. Πράξεις πάνω στην γνώση που έχει ανακαλυφθεί είτε απευθείας, είτε µε ενσωµάτωση της σε άλλο σύστηµα ή και µε απλή τεκµηρίωση και παρουσίασή της στους ενδιαφερόµενους. Η KDD διαδικασία µπορεί να περιλαµβάνει πολλές επαναλήψεις και βρόγχους µεταξύ οποιονδήποτε δύο βηµάτων[9]. Τα σηµαντικότερα βήµατα, φαίνονται στο σχήµα. Σχήµα 2.2 Βήµατα της KDD διαδικασίας 2.2 Τεχνικές εξόρυξης δεδοµένων Το ερευνητικό πεδίο της εξόρυξης γνώσης αποτελεί τοµή µεθόδων και εργαλείων που πηγάζουν από την στατιστική,την µηχανική µάθηση αλλά και τις βάσεις και τις αποθήκες δεδοµένων [9]. Αποτελεί σύγχρονη εξέλιξη, το πρώτο σχετικό συνέδριο πραγµατοποιήθηκε το Ουσιαστικά αυτό που αναζητείται είναι αλγόριθµοι εντοπισµού προτύπων και κανονικοτήτων στα δεδοµένα. 24 Σελίδα

25 ιασπώντας την data κυριότερα της στοιχεία: mining διαδικασία, µπορούµε να αναφέρουµε τα εξής 1 Εξαγωγή, µετασχηµατισµός και φόρτωση δεδοµένων συναλλαγών από και προς συστήµατα data warehouses. 2 Αποθήκευση και διαχείριση των δεδοµένων σε πολυδιάστατη βάση δεδοµένων. 3 Παροχή πρόσβασης στα δεδοµένα σε αναλυτές και επαγγελµατίες IT. 4 Ανάλυση δεδοµένων µέσω κατάλληλου λογισµικού εφαρµογών. 5 Παρουσίαση αποτελεσµάτων µε χρήσιµο τρόπο, όπως οι γραφικές παραστάσεις και οι πίνακες. Οι τεχνικές data mining χωρίζεται στις εξής δύο κατηγορίες Κλασσικές τεχνικές: Στατιστικές, Γείτονες και Συσταδοποίηση Επόµενης γενιάς τεχνικές: ένδρα, ίκτυα και Κανόνες, Γενετικοί αλγόριθµοι Η κατηγοριοποίηση στις παραπάνω κατηγορίες έχει να κάνει µε το πότε οι τεχνικές αναπτύχθηκαν αλλά και πότε ωρίµασαν τεχνικά έτσι ώστε να µπορούν να χρησιµοποιηθούν από τις επιχειρήσεις. Σχήµα 2.3 Τεχνικές και οντότητες οι οποίες εφαρµόζονται στο data mining 25 Σελίδα

26 2.2.1 Κλασσικές Τεχνικές Στατιστικές τεχνικές Με τον σαφή ορισµό η στατιστική επιστήµη δεν αποτελεί εξόρυξη γνώσης. Παρόλα αυτά στατιστικές τεχνικές είχαν χρησιµοποιηθεί στο παρελθόν για την ανακάλυψη µοτίβων αλλά και για την δηµιουργία µοντέλων πρόβλεψης. Βασική τεχνική η οποία λειτουργεί κάνοντας χρήση στατιστικών µεθόδων είναι η χρήση ιστογράµµατος. Από το ιστόγραµµα µπορούν να βγουν κάποια πρώτου βαθµού πολυπλοκότητας συµπεράσµατα σχετικά µε τα δεδοµένα. Σχήµα 2.4 Ιστόγραµµα Linear Regression Η βασική λογική του linear regression είναι ότι σχηµατίζεται ένα µοντέλο το οποίο αντιστοιχεί τιµές από προβλέψεις µε τέτοιο τρόπο ώστε να συσσωρεύεται το µικρότερο σφάλµα. Η πιο απλή µορφή regression περιλαµβάνει έναν predictor αλλά και µια prediction τιµή [6]. Η σχέση µεταξύ των δύο µπορεί να παρουσιαστεί σε έναν δύο διαστάσεων χώρο όπου οι προβλεπόµενες τιµές βρίσκονται στον ένα άξονα ενώ οι τιµές του µηχανισµού πρόβλεψης στον άλλο άξονα. 26 Σελίδα

27 Σχήµα 2.5.Linear Regression Κοντινότερος γείτονας Τεχνική που ταξινοµεί κάθε εγγραφή κάποιου dataset, µε βάση κάποιο συνδυασµό των κλάσεων των k-πιο-όµοιων του εγγραφών [6,9]. Oνοµάζεται και k- nearest neighbor τεχνική. Η τεχνική του κοντινότερου γείτονα είναι µια µέθοδος συσταδοποίησης [5] και είναι από τις παλαιότερες τεχνικές που χρησιµοποιούνται στην εξόρυξη γνώσης. Η λογική της είναι ότι για τον προσδιορισµό µιας τιµής πρόβλεψης η τεχνική κοιτάει γα παρόµοιες τιµές στην βάση δεδοµένων και χρησιµοποιεί την τιµή η οποία είναι πιο κοντά στην µη αποφασισµένη ακόµη τιµή. Χρησιµοποιεί µετρικές απόστασης για να αποφασίσει την εγγύτητα. Χρησιµοποιείται και για πρόβλεψη αλλά και για ενοποίηση. 27 Σελίδα

28 Συσταδοποίηση Σχήµα 2.6 Κοντινότερος γείτονας Η συσταδοποίηση (data clustering) είναι η µέθοδος στην οποία οι οντότητες συγκεντρώνονται σε οµάδες. Η συσταδοποίηση µερικές φορές περιγράφεται ως κατάτµηση (λόγω του γεγονότος ότι διαχωρίζει τον χώρο ενδιαφέροντος σε τµήµατα). Χρησιµοποιείται κυρίως για ενοποίηση σε ένα υψηλότερο επίπεδο αφαιρετικότητας [9]. Για την επίτευξη της δηµιουργίας της συστάδας µπορούν να χρησιµοποιηθούν επιπλέον µετρικές πέρα από µετρικές απόστασης για την µέτρηση της εγγύτητας. Η συσταδοποίηση διαχωρίζεται επιπλέον σε ιεραρχική και µη ιεραρχική. Η συσταδοποίηση δεδοµένων είναι η εργασία του καταµερισµού ενός ετερογενούς πληθυσµού σε ένα σύνολο συστάδων (clusters). Στην συσταδοποίηση δεν υπάρχουν προκαθορισµένες κατηγορίες. Οι εγγραφές οµαδοποιούνται σε σύνολα µε βάση την οµοιότητα που παρουσιάζουν µεταξύ τους. 28 Σελίδα

29 Σχήµα 2.7.Συσταδοποίηση Επόµενης Γενιάς Τεχνικές Οι τεχνικές αυτές εξελίχθηκαν κυρίως τις τελευταίες δύο δεκαετίες έρευνας και είναι οι πιο συχνά χρησιµοποιούµενες τεχνικές. έντρα απόφασης εντρικές δοµές που περιέχουν σύνολα αποφάσεων [6]. Οι αποφάσεις αυτές παράγουν κανόνες, µε σκοπό την ταξινόµηση κάποιου dataset (συνόλου δεδοµένων). Συγκεκριµένες τεχνικές που χρησιµοποιούν δέντρα αποφάσεων είναι τα έντρα Ταξινόµησης και Οπισθοδρόµησης (Classification and Regression Trees - CART) και η Αυτόµατη Ανίχνευση Αλληλεπιδράσεων Chi Square (Chi Square Automatic Interaction Detection - CHAID). Οι CART και CHAID τεχνικές παρέχουν ένα σύνολο κανόνων το οποίο µπορεί να εφαρµοστεί σε ένα καινούργιο, αταξινόµητο dataset, µε σκοπό την πρόβλεψη για το ποιες εγγραφές θα δώσουν κάποιο συγκεκριµένο αποτέλεσµα. Το δέντρο απόφασης είναι ένα µοντέλο πρόβλεψης το οποίο αναπαρίσταται από ένα δένδρο. Το κάθε κλαδί στο δένδρο είναι µια ερώτηση κατάταξης και τα φύλλα στο δένδρο είναι τµήµατα του dataset µε την κατηγορία στην οποία ανήκουν. Λόγω της δενδρικής τους δοµής και της ικανότητας να παράγουν κανόνες τα δένδρα απόφασης αποτελούν πολυχρησιµοποιηµένη τεχνική για την παραγωγή κατανοητών µοντέλων. 29 Σελίδα

30 Σχήµα 2.8 ένδρο απόφασης Νευρωνικά ίκτυα Πρόκειται για µη γραµµικά προγνωστικά µοντέλα, τα οποία µαθαίνουν µέσω εκπαίδευσης και που δοµικά µοιάζουν µε βιολογικά νευρωνικά δίκτυα. Χρησιµοποιούνται συχνά για την διαδικασία της συσταδοποίησης. Ένα τέτοιο παράδειγµα είναι το δίκτυο kohonen όπου χρησιµοποιείται για συσταδοποίηση αλλά και κατάτµηση της βάσης δεδοµένων. Σχήµα 2.9 Νευρωνικό δίκτυο Επαγωγή κανόνων - Rule induction Η επαγωγή κανόνων είναι από τις πιο βασικές τεχνικές της εξόρυξης γνώσης και η ποιο κοινή µορφή ανακάλυψης γνώσης σε συστήµατα εκµάθησης χωρίς επίβλεψη (unsupervised learning systems). Πρόκειται για την εξαγωγή από 30 Σελίδα

31 δεδοµένα χρήσιµων if-then κανόνων, µε βάση την στατιστική τους σπουδαιότητα. Είναι ίσως από τις µορφές εξόρυξης η οποία αναπαριστά το τι οι περισσότεροι άνθρωπου κατανοούν όταν ακούν τον όρο εξόρυξη γνώσης. Η εξαγωγή κανόνων συσχέτισης (Mining Association Rules) θεωρείται µια από τις σηµαντικότερες διεργασίες εξόρυξης δεδοµένων. Έχει προσελκύσει ιδιαίτερο ενδιαφέρον καθώς οι κανόνες συσχέτισης παρέχουν έναν συνοπτικό τρόπο για να εκφραστούν οι ενδεχοµένως χρήσιµες πληροφορίες που γίνονται εύκολα κατανοητές από τους τελικούς χρήστες. Οι κανόνες συσχέτισης ανακαλύπτουν κρυµµένες «συσχετίσεις» µεταξύ των γνωρισµάτων ενός συνόλου των δεδοµένων. Αυτοί οι συσχετισµοί παρουσιάζονται στην ακόλουθη µορφή: Α Β όπου το Α και το Β αναφέρονται στα σύνολα γνωρισµάτων που υπάρχουν στα υπό ανάλυση δεδοµένα Σχήµα 2.10 Σύνολα µε επεξεργασία των οποίων επιτελείται εξαγωγή κανόνων συσχέτισης Γενετικοί αλγόριθµοι - Genetic algorithms Πρόκειται για τεχνικές βελτιστοποίησης, οι οποίες χρησιµοποιούν τεχνικές όπως οι γενετικοί συνδυασµοί, η µετάλλαξη και η φυσική επιλογή. 31 Σελίδα

32 2.3 Λογισµικό Data mining Το λογισµικό data mining, βασισµένο σε ερωτήµατα (queries) τελικών χρηστών, αναλύει σχέσεις και µοτίβα σε αποθηκευµένα δεδοµένα συναλλαγών [7]. Γενικότερα, τέσσερα είδη σχέσεων αναζητούνται: Κλάσεις: Αποθηκευµένα δεδοµένα χρησιµοποιούνται για τον εντοπισµό άλλων δεδοµένων. Για παράδειγµα, µια αλυσίδα εστιατορίων θα µπορούσε να χρησιµοποιήσει data mining τεχνικές σε δεδοµένα συναλλαγών των πελατών της, για να καθορίσει πότε οι πελάτες επισκέπτονται τα εστιατόρια και τι παραγγέλνουν συνήθως. Η πληροφορία αυτή θα µπορούσε να χρησιµοποιηθεί για την δηµιουργία συγκεκριµένων ηµερήσιων προσφορών, µε σκοπό την αύξηση της πελατείας. Clusters: εδοµένα οµαδοποιούνται σύµφωνα µε λογικές συσχετίσεις ή προτιµήσεις πελατών. Για παράδειγµα, δεδοµένα θα µπορούσαν να εξορυχθούν, µε σκοπό τον εντοπισµό διαφόρων σχέσεων µεταξύ πελατών. Συσχετίσεις Associations: εδοµένα εξορύσσονται µε σκοπό τον προσδιορισµό συσχετίσεων. Έχει προσελκύσει ιδιαίτερο ενδιαφέρον καθώς οι κανόνες συσχέτισης παρέχουν έναν συνοπτικό τρόπο για να εκφραστούν οι ενδεχοµένως χρήσιµες πληροφορίες που γίνονται εύκολα κατανοητές από τους τελικούς χρήστες. Σειριακά µοτίβα - Sequential patterns: Στην περίπτωση αυτή, δεδοµένα υπόκεινται εξόρυξη µε σκοπό την πρόβλεψη συµπεριφορών και τάσεων. Για παράδειγµα, κάποιος πωλητής κατασκηνωτικών ειδών θα µπορούσε να προβλέψει την πιθανότητα αγοράς σακιδίου πλάτης, δεδοµένης της αγοράς από κάποιον πελάτη υπνόσακου και παπουτσιών ορειβασίας. 32 Σελίδα

33 Κεφάλαιο 3 H πιθανοτική τεχνική εντοπισµού θέσης χρήστη Particle Filtering 3.1 Εισαγωγικά Η µέθοδος particle filtering ανήκει στην ευρύτερη κατηγορία των Bayesian τεχνικών [16] και είναι µια ευρέως χρησιµοποιούµενη µέθοδος η οποία χρησιµοποιείται κυρίως στην ροµποτική [13] για την εκτίµηση της θέσης κινούµενου robot σε κάποια περιοχή ενδιαφέροντος. Κατά την εξερεύνηση του άγνωστου περιβάλλοντος τα robot διατηρούν ένα σύνολο υποθέσεων βάσει της θέσης τους αλλά και διαφόρων αντικειµένων γύρω τους. Η είσοδος για την ενηµέρωση αυτής της πεποίθησης της θέσης επιτελείται από διάφορους αισθητήρες που διαθέτει. Για την ενηµέρωση αυτής της πεποίθησης της θέσης µε όσο το δυνατόν µεγαλύτερη ακρίβεια µπορεί να χρησιµοποιηθεί ένας βέλτιστος εκτιµητής. Η θέση ενός εµποδίου στο παρελθόν µπορεί να ενηµερωθεί όποτε επιπλέον δεδοµένα από τους αισθητήρες καθίστανται διαθέσιµα. Επιπλέον µετά από µια κίνηση η εκτίµηση της θέσης του robot µπορεί να ενηµερωθεί βασιζόµενη σε δεδοµένα τα οποία συγκεντρώθηκαν µέχρι και αυτό το χρονικό διάστηµα. 3.2 Κανόνας του Bayes Η εξίσωση της δεσµευµένης πιθανότητας P(A,B)=P(A B)P(B) οδηγεί στην παρακάτω εξίσωση η οποία περιγράφεται ως ο κανόνας ας του Bayes [18] (1) Η ιδιότητα του κανόνα είναι ότι δεδοµένου του µοντέλου αλλά και της apriori γνώσης κρίνει ποια επιλογή παραµέτρων είναι η καταλληλότερη. Έτσι 33 Σελίδα

34 έστω P(A) η apriori γνώση εκτίµησης της θέσης. Ο όρος P(A B) είναι η εκ των υστέρων πιθανότητα aposteriori πιθανότητα. 3.3 Τεχνικές εκτίµησης θέσης Πολλά προβλήµατα απαιτούν την εκτίµηση της κατάστασης ενός συστήµατος που αλλάζει µε την πάροδο του χρόνου, χρησιµοποιώντας µια ακολουθία θορυβωδών µετρήσεων που πραγµατοποιούνται στο σύστηµα [14]. Επικεντρωνόµαστε στην προσέγγιση του χώρου κατάστασης στη µοντελοποίηση δυναµικών συστηµάτων, και ιδιαίτερα στη διατύπωση του προβλήµατος στο διακριτό χρόνο. Κατά συνέπεια, χρησιµοποιούνται εξισώσεις διαφορών για να µοντελοποιήσουν την εξέλιξη του συστήµατος µε το χρόνο, και οι µετρήσεις υποτίθεται ότι είναι διαθέσιµες σε διακριτές χρονικές στιγµές. Για την εκτίµηση δυναµικής κατάστασης, είναι κατάλληλη και ευρέως διαδεδοµένη η προσέγγιση διακριτού χρόνου. ίνεται προσοχή στο διάνυσµα κατάστασης ενός συστήµατος. Το διάνυσµα κατάστασης περιέχει όλες τις σχετικές πληροφορίες που απαιτούνται για να περιγράψουν το υπό εξέταση σύστηµα. Παραδείγµατος χάριν, σε προβλήµατα παρακολούθησης, αυτές οι πληροφορίες θα µπορούσαν να αφορούν τα κινηµατικά χαρακτηριστικά του στόχου. Το διάνυσµα µετρήσεων αντιπροσωπεύει τις (θορυβώδεις) παρατηρήσεις που συσχετίζονται µε το διάνυσµα κατάστασης και είναι γενικά (αλλά όχι απαραιτήτως) µικρότερης διάστασης από το διάνυσµα κατάστασης. Η προσέγγιση χώρου κατάστασης είναι κατάλληλη για το χειρισµό των δεδοµένων πολλών µεταβλητών και των µη γραµµικών/µη Gaussian προβληµάτων, και παρέχει ένα σηµαντικό πλεονέκτηµα έναντι των παραδοσιακών τεχνικών για αυτά τα προβλήµατα. Προκειµένου να αναλυθεί ένα δυναµικό σύστηµα και να εξαχθούν συµπεράσµατα για αυτό, απαιτούνται τουλάχιστον δύο µοντέλα: Κατ' αρχάς, ένα µοντέλο που περιγράφει την εξέλιξη της κατάστασης µε το χρόνο (το µοντέλο κίνησης ή µοντέλο συστήµατος) και, δεύτερον, ένα µοντέλο που σχετίζει τις θορυβώδεις µετρήσεις µε την κατάσταση (το µοντέλο µετρήσεων). Θα υποθέσουµε ότι αυτά τα µοντέλα είναι διαθέσιµα σε µια πιθανολογική µορφή. Η πιθανολογική διατύπωση του χώρου κατάστασης και η απαίτηση για την ενηµέρωση των πληροφοριών µετά τη λήψη των νέων µετρήσεων είναι απόλυτα κατάλληλες για την 34 Σελίδα

35 Bayesian προσέγγιση. Αυτό παρέχει ένα αυστηρό γενικό πλαίσιο για τα δυναµικά προβλήµατα εκτίµησης κατάστασης. Στη Bayesian προσέγγιση στη δυναµική εκτίµηση κατάστασης, γίνεται προσπάθεια για κατασκευή της εκ των υστέρων συνάρτησης πυκνότητας πιθανότητας (posterior probability density function - pdf) της κατάστασης, που βασίζεται σε όλες τις διαθέσιµες πληροφορίες, συµπεριλαµβανοµένου του συνόλου των λαµβανόµενων µετρήσεων. εδοµένου ότι η pdf ενσωµατώνει όλες τις διαθέσιµες στατιστικές πληροφορίες, µπορεί να θεωρηθεί ως η πλήρης λύση στο πρόβληµα εκτίµησης. Γενικά, από την pdf µπορεί να ληφθεί µια βέλτιστη (ως προς οποιοδήποτε κριτήριο) εκτίµηση της κατάστασης. Μπορεί επίσης να ληφθεί ένα µέτρο της ακρίβειας της εκτίµησης. Για πολλά προβλήµατα απαιτείται µια εκτίµηση κάθε φορά που παραλαµβάνεται µια µέτρηση. Σε αυτήν την περίπτωση, µια κατάλληλη λύση είναι ένα αναδροµικό φίλτρο [11]. Μια προσέγγιση αναδροµικού φιλτραρίσµατος σηµαίνει ότι τα λαµβανόµενα στοιχεία µπορούν να υποβληθούν σε επεξεργασία ακολουθιακά παρά ως σύνολο, ώστε να µην είναι απαραίτητο να αποθηκευτεί το σύνολο όλων των στοιχείων ούτε να επανεπεξεργάζονται τα υπάρχοντα στοιχεία όταν γίνεται διαθέσιµη µια νέα µέτρηση. Ένα τέτοιο φίλτρο αποτελείται από δύο στάδια: πρόβλεψη και ενηµέρωση. Το στάδιο πρόβλεψης χρησιµοποιεί το µοντέλο κίνησης για να προβλέψει την pdf της κατάστασης από έναν χρόνο µέτρησης στον επόµενο. εδοµένου ότι η κατάσταση υπόκειται συνήθως σε άγνωστες διαταραχές (που θεωρούνται ως τυχαίος θόρυβος), η πρόβλεψη γενικά µετασχηµατίζει και διαδίδει την pdf της κατάστασης. Η λειτουργία της ενηµέρωσης χρησιµοποιεί την πιο πρόσφατη µέτρηση για να τροποποιήσει την πρόβλεψη της pdf. Αυτό επιτυγχάνεται χρησιµοποιώντας το θεώρηµα Bayes, το οποίο είναι ο µηχανισµός για την ανανέωση της γνώσης για την κατάσταση του στόχου λαµβάνοντας υπόψη τις πρόσθετες πληροφορίες από τα νέα στοιχεία. H Bayesian προσέγγιση περιλαµβάνει αρκετές κατηγορίες φίλτρων. Μια ευρύτατα διαδεδοµένη τεχνική για την µείωση του σφάλµατος, βασισµένη στην λογική των ελαχίστων τετραγώνων είναι το Kalman Filtering.Στο [14] περιγράφεται η τεχνική εκτενέστερα ενώ µια συνοπτική περιγραφή των µεθόδων και διαδικασιών παρατίθεται σε επόµενο εδάφιο. Μια διαφορετική εκδοχή του Kalman filtering είναι το Extended Kalman filtering όπου γίνεται χρήση ενός µη γραµµικού Gaussian µοντέλου της κίνησης αλλά και των εξισώσεων των µετρήσεων.στο [14] 35 Σελίδα

36 περιγράφεται η υλοποίηση του Extended Kalman filtering σε µια ποικιλία εφαρµογών όπως εύρεση θέσης και χαρτογράφηση περιοχής. H κατηγορία µεθόδων η οποία έχει γίνει ιδιαιτέρως δηµοφιλής βρίσκεται στην κατηγορία των Monte Carlo µεθόδων. Η τεχνική του particle filtering ανήκει στην κατηγορία αυτή και παρουσιάστηκε στο [16] από τους Gordon et al.. Το particle filtering έχει εφαρµοστεί στην ροµποτική επιτυχώς για τον εντοπισµό θέσης κινούµενου robot αλλά και την πλοήγηση. Στο κλάδο του computer vision [10] (υπολογιστική όραση) η τεχνική χρησιµοποιήθηκε επίσης ευρέως µε την µετονοµασία condensation αλλά και particle filtering κυρίως λόγω της οπτικοποίησης της διαδικασίας µέσω ακολουθιών εικόνων. Η τεχνική επίσης χρησιµοποιήθηκε στον κλάδο του computer vision για τον εντοπισµό πολλαπλών κινούµενων αντικειµένων σε ακολουθίες video. H τεχνική του particle filtering είναι η τεχνική η οποία χρησιµοποιείται στο σύστηµα εντοπισµού στην παρούσα εργασία. Τα particle filters όπως και τα kalman filters όπως έχει ήδη αναφερθεί χρησιµοποιούνται για την περιγραφή της κατάστασης ενός δυναµικού συστήµατος για το οποίο υπάρχει διαθέσιµο ένα Bayesian µοντέλο. Αυτό σηµαίνει ότι αν υπάρχει ένα τέτοιο µοντέλο σχετικά µε το πώς το σύστηµα τροποποιείται βάσει του χρόνου, πιθανώς σε απόκριση από είσοδο, και ένα µοντέλο σχετικά µε τις παρατηρήσεις/µετρήσεις που θα πρέπει να παρατηρηθούν σε συγκεκριµένες καταστάσεις τότε ένα Bayesian φίλτρο µπορεί να χρησιµοποιηθεί για τον προσδιορισµό της κατάστασης στην οποία εµφανίζεται να βρίσκεται το σύστηµα. 3.4 Bayesian Filtering Ο όρος Bayesian filtering προσδιορίζει µια γενική κατηγορία µεθόδων για τις οποίες εφαρµόζεται η λογική κύκλου πρόβλεψης/ενηµέρωσης για την εκτίµηση της κατάστασης ενός δυναµικού συστήµατος µε χρήση µετρήσεων από αισθητήρες. Τα Kalman filters, τα Extended Kalman filters και τα Particle filters ανήκουν στην ευρύτερη κατηγορία των Bayesian Filtering τεχνικών.. Η Bayesian προσέγγιση [15] παρέχει ένα γενικό σύνολο µεθοδολογιών για την εκτίµηση της κατάστασης σε ένα σύστηµα (στην ροµποτική, εκτίµηση θέσης του robot και στην περίπτωση της εργασίας αυτή της θέσης του χρήστη) κάνοντας χρήση 36 Σελίδα

37 της συνάρτησης πυκνότητας πιθανότητας (pdf) βασιζόµενο στην διαθέσιµη πληροφορία. Για το πρόβληµα γραµµικής Gaussian εκτίµησης θέσης η απαιτούµενη pdf παραµένει Gaussian και το Kalman Filter παρέχει την αποδεδειγµένα βέλτιστη λύση. Στην περίπτωση όπου το σύστηµα είναι µη-γραµµικο Gaussian χρησιµοποιείται ευρέως το Extended Kalman filter το οποίο ουσιαστικά αποτελεί επέκταση του Kalman filter. Το Extended Kalman filter τελικά για να εφαρµοστεί µετατρέπει το µη-γραµµικό σύστηµα σε γραµµικό και εφαρµόζεται πάνω σε αυτό. Για την περίπτωση όπου το σύστηµα είναι µη γραµµικό και µη Gaussian θα πρέπει να επιλυθούν δύο συγκεκριµένες δυσκολίες. Αρχικά το πώς θα αναπαρασταθεί µια γενική pdf κάνοντας χρήση πεπερασµένου αποθηκευτικού χώρου και δευτερευόντως το πώς θα υλοποιηθούν τα ολοκληρώµατα τα οποία λαµβάνουν µέρος στην ενηµέρωση της pdf όταν συγκεντρώνονται νέες µετρήσεις. Κατά την διαδικασία η αβεβαιότητα η οποία σχηµατίζεται όσον αφορά την εκτίµηση της θέσης µεταφράζεται σε αβεβαιότητα της πραγµατικής θέσης. Για την επίτευξη ακρίβειας της θέσης θα πρέπει η διαδικασία να υλοποιηθεί σε διακριτά χρονικά διαστήµατα. Πιο τυπικά [13]: Η i-στη θέση σε χρόνο t=k αναπαρίσταται από το διάνυσµα κατάστασης x i = [ x i, y i, θ i ] Τ.Στην περίπτωση της ροµποτικής το κάθε robot λαµβάνει µια δράση k k k k ( α ) και η θέση του εξελίσσεται σύµφωνα µε την εξίσωση i k x = f ( x, u )(2) k a k 1 k όπου f a είναι η συνάρτηση αλλαγής θέσης η οποία µοντελοποιεί το πώς η δράση α πιθανοτικά µεταβάλει την θέση του robot και πως επηρεάζεται από τον θόρυβο u k. Η πραγµατική συνάρτηση µετάβασης faδεν είναι διαθέσιµη αναλυτικά. Γι αυτό τον λόγο χρησιµοποιείται µια προσοµοίωση της η οποία µοντελοποιεί το αποτέλεσµα του θορύβου και παρέχει την προσέγγιση f = f. a a 37 Σελίδα

38 Μετά από κάθε δράση το robot λαµβάνει µία νέα µέτρηση. Η κάθε µέτρηση η οποία λαµβάνεται σε χρόνο t=k συµπεριλαµβάνεται στο διάνυσµα µετρήσεων το οποίο αναπαρίσταται ως κατάστασης µέσω της εξίσωσης παρατήρησης: i z k. Αυτές οι µετρήσεις σχετίζονται µε το διάνυσµα z = g ( x, u )(3) k k k k Όπου η g k είναι η συνάρτηση µετρήσεων και ukείναι το µοντέλο θορύβου. Θεωρείται γενικά ότι η αρχική pdf P( x0 ) είναι γνωστή και ότι η απαραίτητη πληροφορία σε χρόνο t=k είναι το σύνολο µετρήσεων και το σύνολο των δράσεων µέχρι αυτό το χρόνο. Για την επίτευξη του υπολογισµού της επόµενης δράσης του robot είναι απαραίτητο να υπάρχει η γνώση της τρέχουσας θέσης ή εφόσον η γνώση της πραγµατικής θέσης δεν είναι γνωστή λόγω των θορυβωδών µετρήσεων τουλάχιστο η pdf της θέσης δεδοµένων των προηγούµενων δράσεων και µετρήσεων ( P( x x, a, z : j= 1... k) ). Αυτό µπορεί να επιτευχθεί αναδροµικά αρχικά k 0 j j υπολογίζοντας την apriori πιθανότητα του xk από την προηγούµενη θέση xk 1 (θεωρώντας ότι είναι διαθέσιµη) αλλά και της δράσης ak η οποία διαδραµατίστηκε, και έπειτα µε την επίτευξη ενηµέρωσης κάνοντας χρήση των τελευταίων µετρήσεων z k. Έτσι υπολογίζεται η aposteriori κατανοµή της θέσης xk δεδοµένης όλης της διαθέσιµης πληροφορίας. Η εξίσωση (4) προσδιορίζει τον τρόπο υπολογισµού της aposteriori πιθανότητας [17][10]. P( xk x0, ak, a j, z j : j= 1... k 1) = P( xk ak, xk 1) P( xk 1 x0, a j, z j : j= 1... k 1) dx (4) k 1 Ο όρος P( xk ak, xk 1) υπολογίζεται από το µοντέλο συστήµατος xk = fa( xk 1, uk ),τα γνωστά χαρακτηριστικά του θορύβου uk 1 και τον P( xk 1 x0, a j, z j : j= 1... k 1), όπου είναι η aposteriori του x σε χρόνο t=k-1. Όταν νέα δεδοµένα µετρήσεων καθίστανται διαθέσιµα µπορεί να χρησιµοποιηθεί ο κανόνας του Bayes έτσι ώστε να ενηµερωθεί η pdf του κινούµενου robot µε τις τελευταίες µετρήσεις. P( x x, a, z : j= 1... k) = k 0 j j P( zk xk ) P( xk x0, a j, z j : j= 1... k 1) (5) P( z x, a, z : j= 1... k 1) k 0 j j 38 Σελίδα

39 Η δεσµευµένη πιθανότητα των µετρήσεων zk δεδοµένης της θέσης xkαπό την οποία επετεύχθησαν µπορεί να εκτιµηθεί από την συνάρτηση gkκαι το µοντέλο θορύβου u k.τελικά ο παρονοµαστής µπορεί να υπολογιστεί µέσω της παρακάτω εξίσωσης. P( zk x0, a j, z j : j= 1... k 1) = P( zk xk ) P( xk x0, a j, z j : j= 1... k 1) dx (6) k Οι παραπάνω αναδροµικές σχέσεις αποτελούν την βάση για την βέλτιστη Bayesian λύση. Αυτή η αναδροµική διάδοση της εκ των υστέρων πυκνότητας είναι µόνο µια λύση η οποία γενικά δεν µπορεί να καθοριστεί αναλυτικά. Λύσεις υπάρχουν σε ένα περιορισµένο σύνολο περιπτώσεων συµπεριλαµβανοµένου του φίλτρου Kalman και Extended Kalman που περιγράφονται σε επόµενη ενότητα Kalman Filtering To φίλτρο kalman υποθέτει ότι η εκ των υστέρων και εκ των προτέρων πιθανότητα σε κάθε χρονική στιγµή είναι Gaussian και έτσι περιγράφεται από τις παραµέτρους µέση τιµή και συνδιακύµανση [14]. Το φίλτρο Kalman είναι ένας αναδροµικός εκτιµητής. Αυτό σηµαίνει ότι για την διαδικασία της εκτίµησης της τρέχουσας κατάστασης είναι απαραίτητες ως είσοδοι οι πληροφορίες της εκτιµώµενης κατάστασης από το προηγούµενο βήµα αλλά και η τρέχουσα µέτρηση. Το Kalman filter περιγράφεται γενικώς ως η εξελισσόµενη επαναλαµβανόµενη διαδικασία δύο βηµάτων. Πρόβλεψη και Ενηµέρωση. Η φάση πρόβλεψης χρησιµοποιεί την εκτίµηση της κατάστασης από το προηγούµενο βήµα έτσι ώστε να προχωρήσει σε υπολογισµό εκτίµησης της κατάστασης για το τρέχον βήµα. Αυτή η προβλεπόµενη εκτίµηση κατάστασης είναι επίσης γνωστή ως και η apriori εκτίµηση κατάστασης λόγω του ότι παρά το γεγονός ότι η εκτίµηση είναι της τρέχουσας κατάστασης δεν περιλαµβάνει πληροφορίες µετρήσεων από την τρέχουσα κατάσταση. Στην φάση της ενηµέρωσης η τρέχουσα apriori πρόβλεψη κατάστασης συνδυάζεται µε την τρέχουσα πληροφορία µέτρησης έτσι ώστε να βελτιώσει την εκτίµηση της κατάστασης. Αυτή η βελτιωµένη εκτίµηση ονοµάζεται aposteriori εκτίµηση κατάστασης. 39 Σελίδα

40 Τυπικά οι δύο φάσεις εναλλάσσονται µε την πρόβλεψη να προηγείται της ενηµέρωσης έως ότου µια νέα µέτρηση είναι διαθέσιµη. Παρόλα αυτά η διαδικασία αυτή δεν είναι πάντα απαραίτητη, αν µια παρατήρηση είναι µη διαθέσιµη για κάποιο λόγο η ενηµέρωση µπορεί να παραληφθεί και πολλαπλά βήµατα πρόβλεψης να εφαρµοστούν. Αντίστοιχα αν πολλαπλές ανεξάρτητες προβλέψεις είναι διαθέσιµες σε κάποιο χρόνο, πολλαπλά βήµατα ενηµέρωσης µπορούν να εφαρµοστούν. Πιο τυπικά [10]: Αν η P( xk 1 z1: k 1) είναι Gaussian µπορεί να αποδειχθεί ότι η P( xk z 1: k ) είναι επίσης Gaussian δεδοµένου ότι ισχύουν οι συγκεκριµένες προϋποθέσεις: i. Οι ukπροέρχονται από Gaussian κατανοµές γνωστών παραµέτρων ii. Η xk = fa( xk 1, uk ) είναι γνωστή και είναι γραµµική συνάρτηση των x και u. iii. Η z = g ( x, u ) είναι γνωστή και είναι γραµµική συνάρτηση των x και u. k k k k Αν ισχύουν οι παραπάνω περιορισµοί τότε οι εξισώσεις που περιγράφουν τα µοντέλα κίνησης και µετρήσεων µπορούν να γραφούν ως εξής: x = F x + u (7) k k k 1 k zk = H k xk + uk (8) Όπου F k και H κ είναι γνωστοί πίνακες που ορίζουν τις γραµµικές συναρτήσεις. Οι συνδιακυµάνσεις των u k για την κάθε εξίσωση είναι αντίστοιχα Q k-1 και R k. Εδώ θεωρείται η περίπτωση όπου οι u k έχουν µηδενική µέση τιµή και είναι στατιστικά ανεξάρτητες. Οι πίνακες µοντέλου κίνησης και µετρήσεων F k και Η k όπως και οι παράµετροι θορύβου µπορεί να µεταβάλλονται χρονικά. Ο αλγόριθµος του Kalman filter περιγράφεται από την παρακάτω αναδροµική σχέση: P( x z ) = N( x ; m, G ) k 1 1: k 1 k 1 k 1 k 1 k 1 k 1 P( x z ) = N( x ; m, G ) k 1: k 1 k k k 1 k k 1 P( x z ) = N( x ; m, G ) k 1: k k k k k k όπου: 40 Σελίδα

41 m = F m k k 1 k k 1 k 1 G = Q + F G F T k k 1 k 1 k k 1 k 1 k m = m + K ( z H m ) k k k k 1 k k k k k 1 G = G K H G k k k k 1 k k k k 1 και η N(x;m,G) είναι Gaussian πυκνότητα µε όρισµα x,µέση τιµή m και συνδιακύµανση G και οι όροι: T Sk = H kgk k 1H k + Rk (9),(10) K = G H S T 1 k k k 1 k k είναι η συνδιακύµανση του όρου zk H kmk k 1και το κέρδος Kalman αντίστοιχα. Αυτή είναι η βέλτιστη λύση του προβλήµατος παρακολούθησης αν ισχύουν οι παραπάνω προϋποθέσεις. Η έννοια του βέλτιστου είναι ότι κανείς αλγόριθµος δεν θα παράγει καλύτερο αποτέλεσµα από ένα φίλτρο Kalman. Επέκταση του Kalman filter είναι το Extended Kalman filter το οποίο χρησιµοποιείται ευρέως στην περίπτωση όπου το σύστηµα είναι µη γραµµικό Gaussian. Το Extended Kalman filter ουσιαστικά για να εφαρµοστεί µετατρέπει το µη-γραµµικό σύστηµα σε γραµµικό και εφαρµόζεται πάνω στο νέο µετασχηµατισµένο σύστηµα η λογική του Kalman filter. Για µια εκτενή περιγραφή του Kalman και Extended Kalman filter ο αναγνώστης παραπέµπεται στο [14]. Στο [19] περιγράφεται η υλοποίηση µιας εφαρµογής η οποιάς κάνει χρήση της µεθόδου Kalman filter Particle Filtering Η αναδροµική υλοποίηση της στατιστικής επεξεργασίας σήµατος που βασίζεται σε µεθόδους Monte Carlo είναι γνωστή ως particle filtering και αποτελεί το αντικείµενο µε το οποίο ασχολείται αυτή η παράγραφος [13]. Πρόκειται για στατιστική µέθοδο που βασίζεται στον κανόνα του Bayes. Η έρευνα γύρω από τη µέθοδο αυτή έχει προχωρήσει αρκετά τα τελευταία χρόνια. Το particle filtering πιθανόν να είναι µια αξιόλογη εναλλακτική λύση για τις εφαρµογές πραγµατικού χρόνου που παραδοσιακά προσεγγίζονται από βασισµένες σε µοντέλα τεχνικές Kalman φίλτρων, όπου απαιτούνται γραµµικά µοντέλα συστήµατος και θόρυβος Gaussian κατανοµής. Το κύριο πλεονέκτηµα του particle filtering είναι η δυνατότητα 41 Σελίδα

42 χειρισµού οποιασδήποτε µη γραµµικότητας και οποιασδήποτε κατανοµής θορύβου. Όσο πιο µη γραµµικό είναι το µοντέλο, ή όσο πιο µη Gaussian είναι ο θόρυβος, τόσο µεγαλύτερες δυνατότητες έχει το particle filtering. Επίσης, είναι σε θέση να αντιµετωπίσει σύνθετα περιβάλλοντα και είναι πολύ εύκολο να υλοποιηθεί. Η βασική ιδέα της µεθόδου είναι η χρήση δειγµάτων (particles) για την αναπαράσταση του µοντέλου του συστήµατος αντί για χρήση Gaussian κατανοµών ή οποιουδήποτε άλλου µοντέλου και η διάδοση µόνο των επικρατέστερων δειγµάτων [11]. Η µέθοδος του particle filtering έχει χρησιµοποιηθεί σε ποικίλες εφαρµογές. Οι περιοχές εφαρµογών είναι [17]: Εκτίµηση θέσης (Positioning), όπου το πρόβληµα είναι ο προσδιορισµός της θέσης κάποιου αντικειµένου. Πρόκειται µάλλον για ένα πρόβληµα φιλτραρίσµατος παρά ένα στατικό πρόβληµα εκτίµησης, όταν χρησιµοποιείται ένα σύστηµα πλοήγησης για να παρέχει τις µετρήσεις της κίνησης. Πλοήγηση (Navigation), όπου, εκτός από τη θέση, συµπεριλαµβάνονται στο πρόβληµα η γραµµική και γωνιακή ταχύτητα, η στάση και η κατεύθυνση, καθώς και η επιτάχυνση. Παρακολούθηση στόχου (Target Tracking), όπου το πρόβληµα είναι η εκτίµηση της θέσης ενός αντικειµένου βάσει µετρήσεων απόστασης και γωνιών από µια θέση αναφοράς. Μια άλλη σχετική εφαρµογή είναι ο εντοπισµός θέσης κινούµενου ροµπότ (mobile robot localization). Τα παραπάνω προβλήµατα έχουν κοινά σηµεία, δεδοµένου ότι µπορούν να περιγραφούν µε παρόµοια µοντέλα του χώρου κατάστασης (state space models), όπου το διάνυσµα κατάστασης περιέχει τη θέση και τις παραγώγους της θέσης. Οι τυπικές µέθοδοι που εφαρµόζονται είναι βασισµένες σε γραµµικοποιηµένα µοντέλα και Gaussian προσεγγίσεις θορύβου έτσι ώστε να µπορεί να εφαρµοστεί το φίλτρο Kalman και το Extended Kalman. Η έρευνα στρέφεται στον τρόπο µε τον οποίο µπορούν να χρησιµοποιηθούν διαφορετικές συντεταγµένες κατάστασης ή πολλαπλά µοντέλα για τον περιορισµό των 42 Σελίδα

43 προσεγγίσεων. Αντίθετα, το particle filtering προσεγγίζει τη βέλτιστη λύση αριθµητικά βάσει ενός φυσικού µοντέλου, αντί να εφαρµόζει ένα βέλτιστο φίλτρο σε ένα προσεγγιστικό µοντέλο. Ένα γνωστό πρόβληµα του particle filtering είναι ότι η απόδοσή του µειώνεται γρήγορα όταν αυξάνεται η διάσταση του χώρου κατάστασης. Οι εφαρµογές του particle filtering στην βιβλιογραφία είναι οι τοµείς του Robot Localisation, SLAM και robot fault diagnosis [11]. Ο βασικός λόγος για τον οποίο προτιµάται η χρήση των particle filters αντί των Kalman filters είναι λόγω του γεγονότος ότι τα particle filters σε υψηλής διάστασης προβλήµατα είναι επιλύσιµα ενώ τα kalman όχι. Η βασική ιδέα είναι ότι πολλές µέθοδοι όπως και η µέθοδος kalman filter για να επιλύσουν τα προβλήµατα τα µετασχηµατίζουν σε επιλύσιµα κάνοντας χρήση µιας απλοποιηµένης µορφής του πολύπλοκου πλήρους µοντέλου. Έπειτα εντοπίζουν µια ακριβή λύση χρησιµοποιώντας αυτό το απλοποιηµένο µοντέλο. Παρόλα αυτά µερικές φορές η ακριβής λύση είναι υπολογιστικά ιδιαιτέρως ακριβή για να υπολογιστεί και επίσης το µετασχηµατισµένο απλοποιηµένο µοντέλο δεν αρκεί. Εδώ ανακύπτει η ανάγκη για χρήση των particle filters στα οποία χρησιµοποιείται το πλήρες πολύπλοκο µοντέλο αλλά παρόλα αυτά δεν εντοπίζεται µια ακριβής λύση αλλά µια κατά προσέγγιση λύση. Ο εγγενής περιορισµός των kalman filters είναι το γεγονός ότι αναπαριστούν την κατάσταση του συστήµατος χρησιµοποιώντας µόνο Gaussian µεταβλητές. Αρκετές φορές είναι απαραίτητο να υπάρχουν πολυµορφικές υποθέσεις σχετικά µε την τρέχουσα κατάσταση. Αν θα πρέπει να παρθεί µια απόφαση µεταξύ δύο πιθανοτήτων (η πιο πιθανή) και γίνει λανθασµένη επιλογή τότε είναι εξαιρετικά δύσκολο για το σύστηµα να ανακάµψει από το λάθος αυτό. Τα particle filters διαθέτουν τόσες υποθέσεις όσα είναι και τα σωµατίδια, έτσι εάν επιπλέον πληροφορία εµφανιστεί η οποία θα αναγκάσει το σύστηµα να αλλάξει την υπόθεση του είναι κάτι πολύ εύκολο να συµβεί. Ο βασικός στόχος του particle filtering είναι ο εντοπισµός µιας µεταβλητής ενδιαφέροντος καθώς εξελίσσεται µε τον χρόνο τυπικά µε µία µη Gaussian και πιθανώς πολυµορφική πυκνότητα πιθανότητας. Η βάση της µεθόδου είναι η κατασκευή µιας αναπαράστασης βασισµένη σε µετρήσεις ολόκληρης της πυκνότητας πιθανότητας. Μια σειρά ενεργειών απαιτούνται από τις οποίες κάθε µία τροποποιεί την κατάσταση της µεταβλητής ενδιαφέροντος σύµφωνα µε κάποιο µοντέλο. Επιπροσθέτως σε συγκεκριµένες χρονικές στιγµές καταφθάνει στο σύστηµα επιπλέον πληροφορία από µετρήσεις η οποία περιορίζει την κατάσταση της µεταβλητής ενδιαφέροντος σε αυτό το χρόνο. Για την υλοποίηση της µεθόδου γίνεται χρήση πολλαπλών αντιγράφων (σωµατίδια) της µεταβλητής ενδιαφέροντος, όπου 43 Σελίδα

44 κάθε ένα από αυτά σχετίζεται µε ένα βάρος το οποίο προσδιορίζει την ποιότητα του συγκεκριµένου σωµατιδίου. Έτσι επιτυγχάνεται µια εκτίµηση της µεταβλητής ενδιαφέροντος από το σταθµισµένο άθροισµα όλων των σωµατιδίων. Ο αλγόριθµος καλείται επαναληπτικά και λειτουργεί σε δύο φάσεις, την πρόβλεψη και την ενηµέρωση. Μετά από κάθε φάση το κάθε σωµατίδιο τροποποιείται σύµφωνα µε το υπάρχον µοντέλο (φάση πρόβλεψης), συµπεριλαµβανοµένου τυχαίου θορύβου έτσι ώστε να προσοµοιωθεί και το αποτέλεσµα του θορύβου στην µεταβλητή ενδιαφέροντος. Έπειτα το βάρος του κάθε σωµατιδίου επαναϋπολογίζεται βασιζόµενο στην τελευταία πληροφορία µετρήσεων η οποία έχει ληφθεί (φάση ενηµέρωσης). Τα σωµατίδια µε απειροελάχιστα µικρά βάρη εξαλείφονται, µια διαδικασία η οποία καλείται επαναδειγµατοληψία. Πιο τυπικά [13] η µεταβλητή ενδιαφέροντος στην περίπτωση µας (η θέση του k k k k T χρήστη x = [ x, y, θ ] ) σε χρόνο t=k αναπαρίσταται από ένα σύνολο M δειγµάτων k k k (τα σωµατίδια) ( S = [ x, w ] : j = 1... M ),όπου ο δείκτης j αναπαριστά το σωµατίδιο i j j και όχι τον χρήστη, και όπου κάθε σωµατίδιο απαρτίζεται από ένα αντίγραφο της µεταβλητής ενδιαφέροντος και από ένα βάρος ( w ) το οποίο προσδιορίζει την συνεισφορά του σωµατιδίου στην καθολική εκτίµηση της µεταβλητής ενδιαφέροντος. Αν σε χρόνο t=k είναι γνωστή η πυκνότητα πιθανότητας του συστήµατος στον χρόνο t=k-1 (προηγούµενο χρόνο) τότε µοντελοποιείται το αποτέλεσµα την κίνησης ώστε να λάβουµε την apriori πυκνότητα πιθανότητας σε χρόνο t=k (πρόβλεψη). Έτσι η φάση πρόβλεψης κάνει χρήση ενός µοντέλου έτσι ώστε να προσοµοιώσει το αποτέλεσµα την κίνησης των σωµατιδίων (επιπρόσθετα του θορύβου). Η φάση ενηµέρωσης κάνει χρήση της πληροφορίας η οποία λαµβάνεται από µετρήσεις έτσι ώστε να προσαρµόσει τα βάρη των σωµατιδίων ώστε να περιγράψει ακριβέστερα την πυκνότητα πιθανότητας της θέσης του χρήστη. Ο αλγόριθµος σε παρακάτω εδάφιο παρουσιάζει την περιγραφή του particle filter. k j εδοµένης µιας κατανοµής σωµατιδίων µπορεί να διασαφηνιστεί η θέση του χρήστη. Υπάρχουν τρείς διαφορετικές τεχνικές για τον προσδιορισµό της θέσης µέσω της κατανοµής. Αρχικά ο βεβαρυµµένος µέσος ( P M est = wjx j ), το καλύτερο j= 1 σωµατίδιο (το P j όπου w j = max( wk ) : k = 1... M ) και τελικά ο βεβαρυµµένος µέσος σε ένα παράθυρο γύρω από το καλύτερο σωµατίδιο (robust mean). Η κάθε µέθοδος έχει πλεονεκτήµατα και µειονεκτήµατα. Η µέθοδος του βεβαρυµµένου µέσου 44 Σελίδα

45 αποτυγχάνει όταν έχει να επιχειρήσει πάνω σε πολυµορφικές κατανοµές, ενώ το καλύτερο σωµατίδιο παρουσιάζει το µεγαλύτερο σφάλµα. Η καλύτερη µέθοδος είναι ο robust mean αλλά είναι η πιο ακριβή υπολογιστικά µέθοδος. Στην παρούσα εργασία και υλοποίηση του particle filter γίνεται χρήση του βεβαρυµµένου µέσου, ενώ υπάρχει η υποδοµή ώστε να χρησιµοποιηθεί οποιαδήποτε άλλη µέθοδος. Ουσιαστικά η βασική ιδέα των particle filters είναι ότι οποιαδήποτε pdf µπορεί να αναπαρασταθεί ως ένα σύνολο από δείγµατα (σωµατίδια). Η περιοχή αυξηµένης πιθανότητας στην pdf αναπαρίσταται από µεγαλύτερη συγκέντρωση σωµατιδίων στην περιοχή αυτή. Αντίστοιχα στις περιοχές στις οποίες η pdf παίρνει µικρές τιµές τα σωµατίδια είναι πολύ πιο αραιά. Το κάθε σωµατίδιο παίρνει ένα σύνολο τιµών ως µεταβλητές κατάστασης. Αυτή η µέθοδος µπορεί να αναπαραστήσει µια οποιαδήποτε τυχαία κατανοµή και αυτό το στοιχείο την κάνει ιδιαιτέρως χρήσιµη για µη Guassian, πολυµορφικές pdf. Η βασική λογική είναι η εύρεση µιας κατά προσέγγιση αναπαράστασης ενός πολύπλοκου συστήµατος (για παράδειγµα οποιαδήποτε τυχαία pdf) παρά η ακριβής αναπαράσταση µιας απλοποιηµένης µορφής (Gaussian) Ο αλγόριθµος του Particle Filtering Η βασική ιδέα είναι απλή. Αυτό το οποίο διαδραµατίζεται είναι ότι διατηρούνται πολλές διαφορετικές εκδόσεις του διανύσµατος κατάστασης η κάθε µία ελαφρώς διαφορετική από την άλλη. Όταν µια µέτρηση λαµβάνεται εξετάζεται το πόσο καλά η κάθε έκδοση εξηγεί τα δεδοµένα. Συχνά δηµιουργούνται αντίγραφα σωµατιδίων και τα ίδια τα σωµατίδια µετακινούνται τυχαία έτσι ώστε να σχηµατιστεί µια νέα γενιά από πιθανές καταστάσεις. Τελικά αυτές οι χιλιάδες πιθανές καταστάσεις µαζί µε την βαρύτητά τους προσδιορίζουν την pdf που χρειάζεται να εκτιµηθεί [14]. Έτσι δεν χρειάζεται να γίνουν εκτιµήσεις Gaussian θορύβου ή να επιτελεστεί γραµµικοποίηση στο µοντέλο. Ο αλγόριθµος εξελίσσεται ως εξής: 1. Αρχικοποίησε n σωµατίδια σε κάποια περιοχή ενδιαφέροντος. Το κάθε σωµατίδιο αναπαριστά µια κατάσταση. 45 Σελίδα

46 2. Εφάρµοσε το µοντέλο κίνησης σε κάθε σωµατίδιο. Επιπλέον της εφαρµογής του µοντέλου κίνησης εισάγεται στο σύστηµα θόρυβος (Προστίθεται στο κάθε σωµατίδιο). 3. Για κάθε σωµατίδιο πρόβλεψε την µέτρηση που θα έπρεπε να παρατηρήσει. Η µέτρηση που λαµβάνεται συγκρίνεται µε την µέτρηση που το κάθε σωµατίδιο θα έπρεπε να παρατηρήσει βάσει της θέσης του. Γίνεται χρήση µιας συνάρτησης πιθανοφάνειας της οποίας τελικά το αποτέλεσµα προσδιορίζει το βάρος του κάθε σωµατιδίου. 4. Επέλεξε τα σωµατίδια τα οποία εξηγούν καλύτερα την µέτρηση. Η διαδικασία αυτή επιτελείται επιλέγοντας σταθµισµένα τυχαία από το σύνολο σωµατιδίων βάσει του βάρους του κάθε σωµατιδίου. Έτσι αν ένα σωµατίδιο έχει µεγάλο βάρος τότε είναι πιο πιθανό να επιβιώσει από ότι ένα σωµατίδιο µε µικρό βάρος. 5. Επανέλαβε το βήµα 2. Σχήµα 3.1 1) Αρχικό βήµα, υπάρχουν 10 σωµατίδια όλα µε το ίδιο βάρος 2) Ο αλγόριθµος αναθέτει σε κάθε σωµατίδιο ένα βάρος αναλόγως µε το πόσο καλά εξηγεί τις µετρήσεις 3) Τα σωµατίδια µε υψηλό βάρος επιβιώνουν της διαδικασίας ενώ τα αυτά µε το χαµηλό βάρος απορρίπτονται 4) Τελικά στα σωµατίδια προστίθεται µια τυχαία κίνηση 46 Σελίδα

47 Ο αλγόριθµος του particle filtering που περιγράφεται εδώ είναι της κατηγορίας SIR (Sequential Importance Resampling) [16]. Στην βιβλιογραφία υπάρχουν και άλλες µορφές αλγορίθµων όπως για παράδειγµα ο SIS (Sequential Importance Sampling) στον οποίο δεν εµπεριέχεται βήµα επαναδειγµατοληψίας. Για µια εκτενή περιγραφή των διαφορετικών αλγορίθµων για το particle filtering µπορεί κανείς να ανατρέξει στο [13]. Για την εκκίνηση του αλγορίθµου χρειαζόµαστε την πίστη για την αρχική κατάσταση p(x 0) [10][17]. Αυτή αποτελεί µια αρχική εκτίµηση για την pdf. Σε κάθε χρονικό βήµα ο αλγόριθµος αποτελείται από τρεις φάσεις: πρόβλεψη, ενηµέρωση, επαναδειγµατοληψία. Αλγόριθµος Particle Filtering Όπως ήδη αναφέρθηκε στο εδάφιο Bayesian filtering από τον τύπο του Bayes προκύπτει η εξίσωση (5): P( zk xk ) P( xk x0, z j : j= 1... k 1) P( xk x0, x j, z j : j= 1... k) = (5) P( z x, z : j= 1... k 1) Με εφαρµογή της εξίσωσης Chapman-Kolmogorov και θέτοντας η τον παρονοµαστή: k 0 j P( xk x0, x j, z j : j= 1... k) = ηp( zk xk ) P( xk xk 1) P( xk 1 z j : j= 1... k 1) dx (11) k 1 όπου η είναι ο παρονοµαστής και είναι ένας συντελεστής κανονικοποίησης. ιαφορετικά η εξίσωση (11) µπορεί να γραφεί ως: Όπου p( x) w( x) q( x) = (12) 47 Σελίδα

48 p( x) = P( x x, x, z : j= 1... k) k 0 j j w( x) = ηp( z x ) k k q( x) = P( x x ) P( x z : j= 1... k 1) dx k k 1 k 1 j k 1 (13) Η εξίσωση (5) παρουσιάζει µια τυποποίηση των βηµάτων τα οποία επιτελέστηκαν για τον αλγόριθµο. Η εξίσωση αυτή ανακύπτει από την εφαρµογή του Bayes κανόνα στο posterior και έπειτα εφαρµογή της Markov υπόθεσης. Ενώ εκτελείται ο αλγόριθµος ο υπολογισµός της εξίσωσης γίνεται από δεξιά προς αριστερά [11]. Αρχικά ο αλγόριθµος ξεκινά µε την pdf από το προηγούµενο βήµα η οποία πολλαπλασιάζεται µε το µοντέλο κίνησης στο βήµα πρόβλεψης έτσι ώστε να ληφθεί η prior πιθανότητα. Το ολοκλήρωµα αναπαριστά την λογική του ότι µπορούµε να καταλήξουµε στην ίδια κατάσταση στον χρόνο t από περισσότερες από µία καταστάσεις στον χρόνο t-1 και γι αυτό θα πρέπει να αθροιστούν όλες αυτές οι πιθανότητες από το χρονικό σηµείο t-1. Επόµενο βήµα είναι ο υπολογισµός των βαρών των σωµατιδίων κάνοντας χρήση του µοντέλου µετρήσεων και η κανονικοποίηση έτσι ώστε να αθροίζουν στο 1. Πρόβλεψη (q(x)) Στο βήµα αυτό εφαρµόζεται το µοντέλο κίνησης στα σωµατίδια και προστίθεται σε κάθε σωµατίδιο µια τυχαία µεταβλητή (θόρυβος). Έτσι όπως φαίνεται στο παρακάτω σχήµα η εκτιµώµενη θέση από το µοντέλο κίνησης θα είναι κάπου στο νέφος σωµατιδίων. Η εκτιµώµενη κατανοµή σωµατιδίων προσεγγίζει την prior κατανοµή. Στην εξίσωση (12) το βήµα αυτό αναπαρίσταται από την q(x) δηλαδή από το ολοκλήρωµα το οποίο µε την σειρά του αντιστοιχεί στην apriori πιθανότητα. 48 Σελίδα

49 Σχήµα 3.2 Πρόβλεψη Ενηµέρωση (w(x)) Κατά το βήµα ενηµέρωσης λαµβάνονται οι µετρήσεις από τον αισθητήρα και ανατίθεται σε κάθε σωµατίδιο από ένα βάρος το οποίο είναι ίσο µε την πιθανότητα παρατήρησης της µέτρησης του αισθητήρα από την συγκεκριµένη θέση του σωµατιδίου. Αυτά τα βάρη έπειτα κανονικοποιούνται έτσι ώστε να συναθροίζουν στο 1. Στο παρακάτω σχήµα ανατίθενται τιµές βάρους για το κάθε σωµατίδιο. Τα πιο σκούρα σωµατίδια έχουν µεγαλύτερες τιµές βάρους. Στην εξίσωση (12) το βήµα αυτό προσδιορίζεται από το w(x), το οποίο αντιστοιχεί στην διαδικασία αντιστοίχισης βαρών. Σχήµα 3.3 Ενηµέρωση 49 Σελίδα

50 Επαναδειγµατοληψία (p(x)) Τελικά στο βήµα επαναδειγµατοληψίας ένα νέο σύνολο σωµατιδίων επιλέγεται έτσι ώστε το κάθε σωµατίδιο να επιβιώνει αναλόγως του βάρους του. Όπως φαίνεται και στο σχήµα ο νέφος σωµατιδίων στα δεξιά µετασχηµατίζεται στο νέφος που φαίνεται στα αριστερά. Τα σωµατίδια τα οποία είναι χαµηλού βάρους δεν επιλέγονται ενώ τα σωµατίδια τα οποία διαθέτουν υψηλό βάρος κοντά στο κέντρο του νέφους αντιγράφονται έτσι ώστε η περιοχή υψηλής πιθανότητας να έχει υψηλή πυκνότητα για να αναπαριστά σωστά την posterior κατανοµή. Στην εξίσωση (12) το βήµα αυτό αναπαρίσταται µε την p(x) δηλαδή την aposteriori πιθανότητα. Η διαδικασία της επαναδειγµατοληψίας έχει ως σκοπό την αποφυγή του φαινοµένου του εκφυλισµού των σωµατιδίων. Αυτό συµβαίνει όταν τα περισσότερα σωµατίδια εξαλείφονται η διαθέτουν πάρα πολύ µικρά βάρη και µόνο ελάχιστα διαθέτουν αξιοσηµείωτο βάρος. Αυτό έχει ως αποτέλεσµα να υποβαθµίζεται η µορφή της παραγόµενης πυκνότητας πιθανότητας. Για την αποφυγή αυτού του φαινοµένου γίνεται χρήση του βήµατος επαναδειγµατοληψίας. Σχήµα 3.4 Επαναδειγµατοληψία Εκτενής περιγραφή των particle filters γίνεται στα [12][16] και [16]. Για ευκολότερη κατανόηση του particle filtering στο [14] παρατίθεται πρόγραµµα σε Matlab το οποίο επιτελεί διαδικασία particle filtering. 50 Σελίδα

51 Κεφάλαιο 4 Market Basket Analysis και Decision Trees 4.1 Εισαγωγή Η αφαιρετική περιγραφή της υλοποίησης του συστήµατος που περιγράφει η εργασία αυτή οδηγεί στον χωρισµό της υλοποίησης σε δύο φαινοµενικά ανεξάρτητα υποσυστήµατα. Το πρώτο υποσύστηµα είναι υπεύθυνο για την εξαγωγή της εκτίµησης της θέσης ενός χρήστη σε ένα Wi-Fi περιβάλλον ενώ το δεύτερο είναι υπεύθυνο για την διαδικασία εξαγωγής κανόνων συσχέτισης µε δεδοµένο εισόδου τις θέσεις των χρηστών κατά το παρελθόν. Έτσι το δεύτερο υποσύστηµα εφόσον λάβει τις πληροφορίες των θέσεων των χρηστών τις επεξεργάζεται αναζητώντας συσχετίσεις και εξαρτήσεις µεταξύ αυτών. Τα εξαγόµενα της διαδικασίας αυτής είναι η πληροφορία συσχέτισης µεταξύ διαφορετικών θέσεων. Το δεύτερο υποσύστηµα εφαρµόζει data mining τεχνικές πάνω στα δεδοµένα θέσης των χρηστών. Στην παρούσα εργασία γίνεται χρήση δύο εκ των πολλών τεχνικών data mining. Η τεχνική market basket analysis (Ανάλυση καλαθιού αγορών) Η τεχνική των decision trees ( ένδρα απόφασης) Οι παραπάνω τεχνικές περιγράφονται στο παρόν κεφάλαιο. 4.2 Market Basket Analysis Η τεχνική Market Basket Analysis -ανάλυση καλαθιού αγορών- αποτελεί ένα εργαλείο για την ανακάλυψη γνώσης µέσω της συνύπαρξης αντικειµένων σε συναλλαγές. Πρόκειται για µια τεχνική data mining η οποία έχει ως στόχο να παράγει τις σχέσεις συνόλων δεδοµένων. Η είσοδος της τεχνικής είναι οι συναλλαγές των πελατών µιας αγοράς και η έξοδος οι κανόνες οι οποίοι προκύπτουν από τις συναλλαγές αυτές. Μέσω της ανάλυσης των αγορασµένων προϊόντων πολλών πελατών µια επιχείρηση εξάγει συµπεράσµατα σχετικά µε τις υποκείµενες εξαρτήσεις. Βασίζεται στην λογική ότι αν κάποιος πελάτης αγοράσει κάποιο συγκεκριµένο προϊόν (ή σύνολο προϊόντων), τότε είναι πολύ πιθανό να αγοράσει και 51 Σελίδα

52 ένα άλλο προϊόν (ή σύνολο προϊόντων). Η παρακάτω ανάλυση είναι δανεισµένη από το [1]. Ως itemset ορίζεται το σύνολο των προϊόντων που αγοράζει ένας πελάτης κατά την διάρκεια µιας αγοράς. Ο στόχος της τεχνικής είναι η ανάλυση των δεδοµένων που προκύπτουν από τις αγορές των πελατών, µε σκοπό την ανακάλυψη συσχετίσεων µεταξύ των διαφόρων προϊόντων. Τυπικά, µια συσχέτιση µεταξύ δύο προϊόντων είναι της µορφής: IF { προϊόν Α } THEN { προϊόν Β } Η πιο πάνω συσχέτιση, δείχνει την σχέση µεταξύ των δύο προϊόντων. Φυσικά, µια συσχέτιση θα µπορούσε να περιλαµβάνει, αντί για µεµονωµένα προϊόντα, σύνολα προϊόντων. Ο όρος Market Basket Analysis αφορά την ανάλυση διαφόρων υποσυνόλων αντικειµένων (προϊόντων), τα οποία επιλέχθηκαν µέσα από κάποιον µεγαλύτερο πληθυσµό αντικειµένων [31][1]. Ένα παράδειγµα κανόνα είναι το Α Β, όπου υποδηλώνει ότι: «εάν το αντικείµενο Α υπάρχει στο καλάθι αγορών (ή στην συναλλαγή), τότε υπάρχει και το αντικείµενο Β». Το Α ονοµάζεται προηγηθέν αντικείµενο (antecedent item) Το Β συνεπακόλουθο (consequent) Έχοντας έναν κανόνα, µπορεί αυτός ενώ είναι αληθής, δηλαδή ενώ ισχύει, τα επιµέρους στοιχεία του να µην ισχύουν. Αυτό συµβαίνει, επειδή οι κανόνες στο market basket analysis συσχετίζονται µε στατιστικές οι οποίες τους χαρακτηρίζουν. Τέτοιες είναι οι confidence και support στατιστικές. Το support κάποιου κανόνα ΑΒ ορίζεται σαν: Αν τα Α και Β ισχύουν µαζί για τουλάχιστον Χ% των συναλλαγών, τότε το support του κανόνα είναι το X. Το confidence κάποιου κανόνα ΑΒ ορίζεται σαν: Από όλες τις συναλλαγές που περιέχουν το Α, αν τουλάχιστον X% περιέχουν επίσης το Β, τότε το confidence του κανόνα είναι X. 52 Σελίδα

53 Το support παρέχει ένα µέτρο για το πόσο συχνά ένας κανόνας συµβαίνει (σε πόσες συναλλαγές είναι αυτός αληθής), στο σύνολο όλων γενικότερα των συναλλαγών. Χρησιµοποιώντας το support, ένας αναλυτής µπορεί να συµπεράνει κατά πόσο αξίζει την προσοχή του κάποιος κανόνας. Έστω ότι η βάση δεδοµένων D αποτελείται από συναλλαγές T 1, T 2, T m όπου D = {T 1, T 2,, T m}.έστω ένα itemset Α το οποίο είναι υποσύνολο της συναλλαγής T k,, Α T k. Το support ορίζεται ως: { Tk D A Tk } sup( A) = (15) D Η σχέση αυτή συγκρίνει τον αριθµό των συναλλαγών που περιλαµβάνει το itemset Α µε ολόκληρο τον αριθµό των συναλλαγών στην βάση δεδοµένων. Το confidence προσδιορίζει ότι ο κανόνας ισχύει µε κάποια συγκεκριµένη πιθανότητα. Χρησιµοποιώντας το confidence, µπορεί κάποιος να διαβεβαιώσει ότι κάποιος κανόνας ισχύει αρκετά συχνά, ώστε να διαδραµατίσει ρόλο κατά την λήψη αποφάσεων. Η χρήση του confidence από την άλλη, περιλαµβάνει και κάποιο ρίσκο. Αυτό συµβαίνει, όταν το συνεπακόλουθο αντικείµενο κάποιου κανόνα εµφανίζεται γενικότερα στις συναλλαγές, τότε το confidence του κανόνα µπορεί να είναι αρκετά µεγάλο, άσχετα µε το αν τα δύο αντικείµενα (προηγηθέν και συνεπακόλουθο) δεν συσχετίζονται στην πραγµατικότητα σε τόσο µεγάλο βαθµό. Έστω ότι η βάση δεδοµένων D αποτελείται από συναλλαγές T 1, T 2, T m, D = {T 1, T 2,, T m}. Έστω ότι υπάρχει ένας κανόνας X a X b έτσι ώστε τα itemset X a και X b να είναι υποσύνολα της συναλλαγής T k, δηλαδή: X a T k X b T k. Επίσης έστω X a X b =.Το confidence ορίζεται ως: sup( X a X b) conf ( X a, Xb) = (14) sup( X ) Η σχέση αυτή συγκρίνει τον αριθµό των συναλλαγών όπου περιλαµβάνουν και τα δύο itemset X a και X b µε τον αριθµό των συναλλαγών που περιλαµβάνουν µόνο το itemset X a a Κανόνες συσχέτισης Οι κανόνες συσχέτισης, ή αλλιώς association rules, είναι κανόνες οι οποίοι εκφράζουν συσχετίσεις µεταξύ αντικειµένων. Οι κανόνες προκύπτουν από την 53 Σελίδα

54 ανάλυση επί των εξαγόµενων τεχνικών data mining. Για την εξαγωγή των κανόνων γίνεται κατάλληλη ανάλυση των δεδοµένων που είναι αποθηκευµένα σε βάσεις δεδοµένων, για ανακάλυψη χρήσιµων συσχετίσεων µεταξύ αντικειµένων, όπως για παράδειγµα η εύρεση προϊόντων τα οποία αγοράστηκαν µαζί. Οι κανόνες συσχέτισης χρησιµοποιούνται ως εργαλείο ευρέως από επιχειρήσεις πώλησης προϊόντων, οπότε οι συσχετίσεις που εκφράζουν είναι µεταξύ των διαφόρων προϊόντων που αγοράζουν οι πελάτες. Κανόνες συσχέτισης χρησιµοποιούνται σε εφαρµογές Market Basket Analysis. Στο [37], χρησιµοποιήθηκαν κανόνες συσχέτισης για την ανακάλυψη οµοιοτήτων µεταξύ προϊόντων σε µεγάλες βάσεις δεδοµένων. ίνοντας πιο τυπικό ορισµό των κανόνων συσχέτισης, έχουµε: ΑΒ: Αν έχει αγοραστεί το προϊόν Α, υπάρχει µεγάλη πιθανότητα να έχει αγοραστεί ή να υπάρχει µεγάλο ενδιαφέρον για το προϊόν Β. Το προϊόν Α ονοµάζεται προηγηθέν, ενώ το Β συνεπακόλουθο. Για παράδειγµα, εάν ο κανόνας {προϊόν Α, προϊόν Β} { προϊόν Γ } εξαγόταν από τα δεδοµένα συναλλαγών πελατών σε µια αγορά, αυτό θα σήµαινε ότι δεδοµένης της αγοράς των προϊόντων Α και Β από κάποιον πελάτη, υπήρχε µεγάλη πιθανότητα να είχε αγοραστεί ή να υπήρχε µεγάλο ενδιαφέρον για Γ. Τέτοια πληροφορία µπορεί να χρησιµοποιηθεί σαν βάση για λήψη αποφάσεων που σχετίζονται µε το marketing, όπως η τιµολόγηση και η τοποθέτηση των προϊόντων στους χώρους της αγοράς. Στο [37], παρατίθενται κάποια χρήσιµα αποτελέσµατα που µπορούν να προσφέρουν οι κανόνες συσχέτισης. Οι τιµές των confidence και support περιγράφουν την αξία του κάθε κανόνα και κατ επέκταση το βαθµό τον οποίο αναπαριστά τις συναλλαγές. Πελάτες οι οποίοι αγοράζουν το προϊόν Β Πελάτες οι οποίοι αγοράζουν το προϊόν Α Πελάτες οι οποίοι αγοράζουν το προϊόν Α και το προϊόν Β Σχήµα 4.1 ιάγραµµα Venn 54 Σελίδα

55 Έτσι συµπεραίνουµε ότι οι κανόνες συσχέτισης µπορούν να προσφέρουν αξιοποιήσιµη πληροφορία που σχετίζεται µε τα προϊόντα. Με χρήση της πληροφορίας αυτής, µπορεί να γίνει καλύτερη τιµολόγηση των προϊόντων, να αποφασιστούν ποια προϊόντα θα βγουν σε εκπτώσεις και προσφορές και ποια όχι, να µελετηθούν οι επιπτώσεις σε άλλα προϊόντα από τυχόν κατάργηση κάποιου προϊόντος, να αποφασιστεί η διαρρύθµιση των προϊόντων στα ράφια κ.α. Επιπλέον, εκτός από το market basket analysis, οι κανόνες συσχέτισης χρησιµοποιούνται και σε άλλες εφαρµογές, όπως το web usage mining, intrusion detection και στην βιοπληροφορική (bioinformatics) Ο αλγόριθµος Apriori Στο παρόν εδάφιο γίνεται µελέτη της εξόρυξης δυαδικών frequent itemsets (συχνών συνόλων προϊόντων) τα οποία εξάγονται από την διαδικασία του market basket analysis. Η παρουσίαση του αλγορίθµου Apriori [36], οι συµβολισµοί, οι ορισµοί καθώς και τα παραδείγµατα που χρησιµοποιούµε είναι δανεισµένα από το [1]. O αλγόριθµος Aprioρi είναι ο βασικός αλγόριθµος για εύρεση frequent itemsets. Με χρήση κατάλληλων µεθόδων από τα frequent itemsets προκύπτουν οι κανόνες συσχέτισης. Υπάρχουν αλγόριθµοι οι οποίοι αποτελούν βελτιώσεις του Apriori. Στα πλεονεκτήµατα του Apriori είναι η ευκολία παραλληλοποίησης καθώς και η ευκολία υλοποίησης. Το κύριο αρνητικό του αλγορίθµου είναι ότι απαιτεί πολλαπλά περάσµατα της βάσης δεδοµένων. Ο αλγόριθµος Apriori χρησιµοποιήθηκε στα πλαίσια της διπλωµατικής αυτής κυρίως λόγω της απλότητας και της κατανοησιµότητάς του. Ο Apriori προτάθηκε από τους R.Agrawal και R.Srikant το 1994[37]. Στόχος τους ήταν η εξόρυξη frequent itemsets για Boolean κανόνες συσχέτισης. Το όνοµα βασίζεται στο γεγονός ότι ο αλγόριθµος χρησιµοποιεί «προηγούµενη γνώση» (prior knowledge) ιδιοτήτων των frequent itemsets. Για την περιγραφή του αλγορίθµου είναι απαραίτητο να προσδιοριστούν τα εξής: Itemset: Σύνολο από αντικείµενα (items). k-itemset: σύνολο από k αντικείµενα π.χ. Ένα 3-itemset: {I 1, I 2, I 3} Σύνολο L k: σύνολο από frequent k-itemsets Σύνολο C k: σύνολο από υποψήφια frequent k-itemsets 55 Σελίδα

56 Σύνολο από k-itemsets: Σύνολο από k-άδες items. Το σύνολο αυτό περιέχει υποσύνολα, όπου κάθε υποσύνολο περιέχει k items το καθένα π.χ. σύνολο από 3-itemsets: {{I 1, I 2, I 3} {I 1, I 2, I 5} {I 2, I 4, I 5} } minimum support threshold (min_sup): Κατώφλι το οποίο πρέπει να ικανοποιούν τα itemsets για να είναι frequent. Ένα itemset ικανοποιεί το κατώφλι και είναι frequent, αν ο αριθµός εµφανίσεων του στην Βάση εδοµένων είναι µεγαλύτερος ή ίσος από το κατώφλι αυτό. frequent itemset: Ένα itemset Ι είναι frequent, αν ο αριθµός εµφανίσεων του στην Βάση εδοµένων είναι µεγαλύτερος ή ίσος από το minimum support threshold. P(I) min_sup Apriori ιδιότητα: Όλα τα µη άδεια υποσύνολα ενός frequent itemset θα πρέπει επίσης να είναι frequent. Ο αλγόριθµος χρησιµοποιεί την προσέγγιση level-wise, κατά την οποία k- itemsets χρησιµοποιούνται για την εύρεση k+1-itemsets. Η βελτίωση της απόδοσης κατά την εύρεση των frequent itemsets παρουσιάζεται µε χρήση της ιδιότητας Apriori (Apriori property). Η ιδιότητα αυτή χρησιµοποιείται για µείωση του πεδίου αναζήτησης (search space).άλλωστε βασικό µειονέκτηµα του Apriori αλγορίθµου είναι τα πολλαπλά περάσµατα στην βάση δεδοµένων. Μέσω της χρήσης της ιδιότητας Apriori επιτυγχάνεται µείωση των αναζητήσεων. Η Apriori ιδιότητα βασίζεται στην λογική ότι εάν ένα itemset I δεν ικανοποιεί το minimum support threshold, δηλαδή P(I)<min_sup, τότε δεν είναι frequent itemset. Αν ένα item A προστεθεί στο itemset Ι, τότε το αποτέλεσµα θα είναι το itemset (Ι Α), το οποίο δεν µπορεί να εµφανιστεί περισσότερες φορές από το itemset Ι. Έτσι θα ισχύει ισχύει P(I A)<min_sup και το itemset (Ι Α) δεν θα είναι frequent. 56 Σελίδα

57 Αλγόριθµος Apriori 1. Προσδιορίζεται το σύνολο των frequent 1-itemsets (k=1) που ικανοποιούν τον περιορισµό του min support. Tο αποτέλεσµα είναι το σύνολο L Βρίσκουµε το σύνολο των frequent 2-itemsets (k=2) χρησιµοποιώντας το σύνολο L 1. Το αποτέλεσµα το ονοµάζουµε σύνολο L Ακολουθώντας την ίδια διαδικασία, βρίσκουµε τελικά το σύνολο L k χρησιµοποιώντας το σύνολο L k-1. Για την εύρεση κάθε L n n=1 =1 k, απαιτείται ένα πλήρες ψάξιµο (full scanning) όληςτηςβάσης εδοµένων Ο αλγόριθµος επαναλαµβάνει διαδοχικά δύο βασικά βήµατα, Τα βήµατα join (βήµα συνένωσης) και pruning (βήµα κλαδέµατος). Το σύνολο L k προκύπτει µετά από τις διαδικασίες join και pruning δύο συνόλων L k-1 και L k-1. Όπως είπαµε και προηγουµένως, το σύνολο L k θα βρεθεί από το σύνολο L k-1.. Για να βρεθεί το L k, πρέπει πρώτα να βρεθεί το σύνολο C k των υποψήφιων itemsets (candidate). Το σύνολο C k θα βρεθεί αφού γίνει joined το L k-1 µε τον εαυτό του. Η διαδικασία του join επιτελείται µόνο στα itemsets του L k-1 που είναι joinable. ύο k-1-itemsets είναι joinable, εάν τα items τους µέχρι και το k-2 είναι τα ίδια. Στο παρακάτω σχήµα απεικονίζεται ένα παράδειγµα όπου από 4 items ο αλγόριθµος καταλήγει σε ένα 4- itemset. Σχήµα 4.2 Από 4 items σε ένα 4-itemset 57 Σελίδα

58 To σύνολο C k από k-itemsets είναι υπερσύνολο του L k, το οποίο θέλουµε να βρούµε. Ισχύει ότι τα k-itemsets-µέλη του C k µπορεί να είναι η να µην είναι frequent, αλλά όλα τα frequent k-itemsets συµπεριλαµβάνονται στο C k. Το ποια από τα itemsets αυτά είναι frequent και ποια όχι, καθορίζεται µε ένα ψάξιµο στην Βάση εδοµένων για κάθε itemset και µέτρηση του πλήθους των εµφανίσεων του κάθε ενός από αυτά. Frequent είναι µόνο τα itemset που έχουν αριθµό εµφανίσεων µεγαλύτερο ή ίσο του minimum support. Επειδή το C k µπορεί να είναι τεράστιο, γίνεται µια διαδικασία ελαχιστοποίησης των itemsets του. Χρησιµοποιείται η Apriori ιδιότητα όπως αναφέρθηκε η οποία προστάζει ότι οποιοδήποτε k-1-itemset δεν είναι frequent, δεν µπορεί να είναι υποσύνολο κάποιου frequent k-itemset. Έτσι, αν οποιοδήποτε από τα k-1-itemsets κάποιου υποψήφιου k-itemset στο C k δεν υπάρχει στο L k-1, τότε το υποψήφιο k-itemset δεν µπορεί να είναι frequent και αφαιρείται από το C k. Με τον τρόπο αυτό, για κάθε τέτοιο k-itemset (που σίγουρα δεν είναι frequent), γλιτώνουµε την προσπέλαση στον πίνακα συναλλαγών και την µέτρηση του αριθµού των εµφανίσεων του, δηλαδή τις πράξεις που θα κάναµε για να δούµε αν θα ικανοποιούσε το minimum support. Με την pruning διαδικασία δεν προκύπτουν τα frequent k-itemsets, αλλά τα k-itemsets που αποκλείεται να είναι frequent. Έτσι, µετά το pruning, χρειάζεται η προσπέλαση της βάσης δεδοµένων για κάθε ένα από τα εναποµείναντα itemsets στο C k, ώστε να καθοριστεί αν ικανοποιούν το minimum support. Μόνο αν το ικανοποιούν θα είναι frequent itemsets Ψευδοκώδικας Αλγορίθµου Στο παρακάτω σχήµα βλέπουµε τον ψευδοκώδικα του Apriori αλγορίθµου. Αρχικά υπολογίζεται το σύνολο L 1, δηλαδή τα frequent 1-itemsets. Στην συνέχεια, τα υπόλοιπα σύνολα L k θα βρεθούν µε χρήση των L k-1. Άρα το L 2 θα βρεθεί µε χρήση του L 1, το L 3 µε χρήση του L 2 κ.ο.κ. Έπειτα εκτελείται ο επαναληπτικός βρόγχος, ο οποίος αφού ελέγξει το L k-1 αν είναι µη κενό, στην συνέχεια χρησιµοποιεί τη συνάρτηση generate για την δηµιουργία του C k. Η συνάρτηση generate εκτελεί τις διαδικασίες join και pruning που περιγράφησαν παραπάνω. Παίρνει σαν όρισµα το σύνολο L k-1, το οποίο αποτελείται από τα frequent k-1-itemsets και για κάθε τέτοιο itemset, 58 Σελίδα

59 ελέγχει αν είναι joinable µε όλα τα υπόλοιπα k-1-itemsets του L k-1 items τους µέχρι και το k-2 είναι τα ίδια). (αν δηλαδή τα Αν τo L k-1 είναι joinable τότε εκτελείται η join διαδικασία. Το k-itemset c περιλαµβάνει το αποτέλεσµα της join διαδικασίας. Το c στην συνέχεια πρέπει να περάσει από την pruning διαδικασία, ελέγχοντας αν όλα τα k-1-itemsets του είναι frequent, δηλαδή αν περιέχονται στο σύνολο L k-1.στην συνέχεια θα βρεθεί ο αριθµός των εµφανίσεων, στον πίνακα συναλλαγών T, του κάθε υποψηφίου frequent k- itemset του συνόλου C k k, ούτως ώστε να εισέλθουν στο σύνολο L k αυτά που ικανοποιούν το minimum support και να διαγραφούν τα υπόλοιπα. Στη συνέχεια, για κάθε συναλλαγή t στον πίνακα συναλλαγών T, µε χρήση της συνάρτησης subset, όλα τα υποσύνολα c της συναλλαγής t τα οποία είναι και υποψήφια frequent k-itemsets, δηλαδή ανήκουν στο σύνολο C k, τοποθετούνται στο C t. Ακολούθως, για κάθε k- itemset c στο C t, αυξάνεται ο δείκτης που αντιστοιχεί στον αριθµό εµφανίσεων του c. Τελικά, το k-itemset c θα εισαχθεί στο σύνολο των frequent itemsets L k αν έχει αριθµό εµφανίσεων µεγαλύτερο ή ίσο του minimum support, δηλαδή: L k = { c C k c.count min_sup} (16) Ακολουθεί ο ψευδοκώδικας. Apriori (T,ε) large 1-itemsets that appear in more than ε transactions } while Generate(L k 1) for transactions Subset(C k,t) for candidates return Σχήµα 4.3: Ψευδοκώδικας Apriori αλγορίθµου 59 Σελίδα

60 Εξαγωγή Κανόνων Συσχέτισης Έχοντας βρει τα frequent itemsets των συναλλαγών µιας βάσης δεδοµένων (ή πίνακα συναλλαγών), µπορούµε πλέον να εξάγουµε τους κανόνες συσχέτισης µεταξύ των itemsets αυτών. Στο παρακάτω σχήµα παρουσιάζεται το flow chart του αλγορίθµου Αpriori και η διαδικασία εξαγωγής κανόνων. Οι κανόνες αυτοί λέγονται strong association rules επειδή ικανοποιούν και το minimum support και το minimum confidence. Βήµα 1 Σάρωσε την βάση δεδοµένων έτσι ώστε να προσδιορίσεις το support S από κάθε 1-itemset, σύγκρινε το S µε το min_sup και εξήγαγε ένα σύνολο frequent 1-itemsets, L 1 Βήµα 3 Σάρωσε την βάση δεδοµένων έτσι ώστε να προσδιορίσεις το support S από κάθε candidate k-itemset στο τελικό σύνολο, σύγκρινε το S µε το min_sup και εξήγαγε ένα σύνολο frequent k-itemsets, L k Βήµα 2 Εφάρµοσε join στο L k-1, L k-1 join L k-1 για την παραγωγή candidate k- itemsets. Κάνε χρήση της Apriori ιδιότητας για την διαγραφή των µη frequent k-itemsets από αυτό το σύνολο OXI Candidate συνολο == NULL NAI Βήµα 6 Για κάθε µη κενό υποσύνολο s του l εξήγαγε τον κανόνα «s=>(l-s)» αν confidence C του κανόνα «s=>(l-s)» (=support S of l/support S of s > min_conf) Βήµα 5 Για κάθε frequent itemset l, δηµιούργησε όλα τα µη κενά υποσύνολα του l Σχήµα 4.4 Flow chart αλγορίθµου Apriori Οι κανόνες συσχέτισης προκύπτουν µε χρήση της εξίσωσης: sup( A B) confidence( A B) = P( B A) = (17) sup( A) Η σχέση αυτή δείχνει σε τι ποσοστό των συναλλαγών ισχύει το itemset Β, εφόσον ισχύει το itemset Α. Όπως βλέπουµε, αυτό ισοδυναµεί µε την πιθανότητα να βρεθεί το itemset Β σε µια συναλλαγή, δεδοµένου ότι βρέθηκε το itemset Α. Η πιθανότητα αυτή, εκφράζεται στην συνέχεια περιλαµβάνοντας στην εξίσωση το support count των itemsets, όπου sup (A B) είναι το σύνολο των συναλλαγών που περιλαµβάνουν το itemset Α Β, ενώ sup (A) είναι το σύνολο των συναλλαγών που 60 Σελίδα

61 περιλαµβάνουν το itemset Α. Το confidence factor είναι ένα µέτρο δύναµης του κανόνα που δείχνει σε τι ποσοστό ισχύει το συνεπακόλουθο itemset, εφόσον ισχύουν τα προηγηθέντα itemsets, ενώ το support προορίζεται για στατιστική χρήση και περιλαµβάνει το ποσοστό των συναλλαγών που ικανοποιούν τον κανόνα, στο σύνολο όλων των συναλλαγών. εδοµένης της αγοράς του προϊόντος Α, υπάρχει µεγάλη πιθανότητα να έχει αγοραστεί ή να υπάρχει µεγάλο ενδιαφέρον για το προϊόν Β. Με βάση την προηγούµενη εξίσωση, οι κανόνες συσχέτισης προκύπτουν ως εξής: Για κάθε frequent itemset l, δηµιούργησε όλα τα µη κενά υποσύνολα του l. Για κάθε µη κενό υποσύνολο s του l, εξέτασε τις παραµέτρους του min_conf και αν ικανοποιείται η ανισότητα εξήγαγε τον κανόνα Αν s ( l s ) (18) Support _ count( l) min_ conf Support _ count( s) όπου min_conf είναι το κατώφλι minimum confidence. Εφόσον οι κανόνες έχουν δηµιουργηθεί από frequent itemsets, τότε εξορισµού ικανοποιούν το minimum support κατώφλι. Με τον πιο πάνω περιορισµό, ικανοποιούν και το minimum confidence, οπότε έχουµε την παραγωγή strong association rules, οι οποίοι ικανοποιούν και το minimum support και το minimum confidence. 4.3 Decision trees Τα Decision Trees ( ένδρα Απόφασης) αποτελούν µια σηµαντική τεχνική δανεισµένη από το machine learning (εκµάθηση µηχανής) τα οποία χρησιµοποιούνται ευρέως στην εξόρυξη γνώσης. Προσφέρουν την δυνατότητα παραγωγής περιγραφών των τάσεων των υποκείµενων συσχετίσεων ενός συνόλου δεδοµένων σε ευανάγνωστη µορφή και χρησιµοποιούνται για εργασίες classification αλλά και πρόβλεψης. Η τεχνική των decision trees είναι ιδιαιτέρως επιτυχηµένη σε διάφορους τοµείς όπως ιατρική διάγνωση, στην γεωπονία αλλά και για την επιτέλεση στρατηγικών marketing. 61 Σελίδα

62 4.3.1 Αλγόριθµοι Decision Trees Οι πιο βασικοί αλγόριθµοι για τον σχηµατισµό δένδρων απόφασης είναι οι ID3 και C4.5 και παρουσιάστηκαν από τον Quinlan [33][34][35]. Η βασική λογική είναι η εξής. Μας δίνεται ένα σύνολο εγγραφών. Η κάθε εγγραφή έχει ίδια δοµή, δηλαδή αποτελείται από έναν αριθµό ζευγών χαρακτηριστικών / τιµών. Ένα από αυτά τα χαρακτηριστικά αναπαριστά την κατηγορία της εγγραφής. Το πρόβληµα συνίσταται στον σχηµατισµό ενός δένδρου απόφασης το οποίο θα µπορεί να απαντά σχετικά µε την κατηγορία στην οποία ανήκουν νέα δεδοµένα. Έτσι ουσιαστικά έχοντας ως είσοδο τα χαρακτηριστικά (πέραν της κατηγορίας) ο αλγόριθµος θα αποφαίνεται για την κατηγορία στην οποία ανήκει η νέα εγγραφή. Για την καλύτερη κατανόηση των παραπάνω περιγράφεται το παρακάτω παράδειγµα. Έστω ότι µέσω δεδοµένων το παρακάτω δένδρο απόφασης θα εξάγει την απόφαση σχετικά µε το αν θα πρέπει να γίνει ένα παιχνίδι golf ή όχι βάσει καιρικών στοιχείων. Η κατηγορία των δεδοµένων στην οποία θα µπορούν να ανήκουν είναι δύο τιµών,play ή Not Play. Τα χαρακτηριστικά είναι: ATTRIBUTE Outlook Temperature Humidity Windy Πίνακας 4.1 POSSIBLE VALUES sunny, overcast, rain Continuous Continuous true, false Και τα δεδοµένα εκµάθησης είναι τα εξής: OUTLOOK TEMPERATURE HUMIDITY WINDY PLAY sunny False Don t Play sunny True Don t Play overcast False Play rain False Play rain False Play rain True Don t Play overcast True Play sunny False Don t Play sunny False Play rain False Play 62 Σελίδα

63 sunny True Play overcast True Play overcast False Play rain True Don t Play Πίνακας 4.2 Στο παρόν παράδειγµα δύο από τα χαρακτηριστικά (Temperature και Humidity) έχουν αριθµητικές τιµές. Ο αλγόριθµος ID3 δεν µπορεί να χειριστεί άµεσα τέτοια χαρακτηριστικά. Ένα δένδρο απόφασης είναι σηµαντικό όχι λόγω του γεγονότος του ότι συγκεντρώνει την γνώση που έχουµε ήδη, αλλά λόγω του γεγονότος ότι ελπίζουµε ότι θα κατατάσσει σωστά νέα δεδοµένα. Για αυτό το λόγο στην κατασκευή µοντέλων classification (µοντέλων κατάταξης) είναι πολύ σηµαντικό να υπάρχουν πέρα από τα δεδοµένα εκµάθησης (training set) και δεδοµένα εξέτασης του σφάλµατος (test data). Έτσι ώστε να προσδιορίζεται η ορθότητα του αλγορίθµου. Οι βασικές ιδέες πίσω από τον αλγόριθµο ID3 είναι οι εξής: Στα δένδρα απόφασης ο κάθε κόµβος του δένδρου αναπαριστά ένα χαρακτηριστικό και η κάθε ακµή µια πιθανή τιµή του χαρακτηριστικού αυτού. Ένα φύλλο στο δένδρο προσδιορίζει την αναµενόµενη τιµή της κατηγορίας για τις εγγραφές που περιγράφεται διαπερνώντας το δένδρο από την ρίζα έως και το φύλλο αυτό. Σε ένα δένδρο απόφασης σε κάθε κόµβο θα πρέπει να είναι συσχετισµένο το χαρακτηριστικό το οποίο είναι το πιο σηµαντικό από άποψης πληροφορίας µεταξύ των χαρακτηριστικών τα οποία δεν έχουν ακόµη εισαχθεί στο µονοπάτι από την ρίζα. Η εντροπία χρησιµοποιείται ως το µέτρο του πόσο σηµαντικός από άποψη πληροφορίας είναι ένας κόµβος. Ο αλγόριθµος C4.5 είναι µια επέκταση του ID3 αλγορίθµου ο οποίος δίνει λύση στην περίπτωση ελλιπών τιµών, αριθµητικών χαρακτηριστικών, κλάδευσης του δένδρου και εξαγωγής κανόνων Ορισµοί Αν υπάρχουν n ισοπίθανα µηνύµατα τότε η πιθανότητα p του κάθε µηνύµατος είναι 1/n και η πληροφορία που αποδίδεται σε κάθε µήνυµα είναι -log(p) = log(n) [Σε όλους τους λογαρίθµους της περιγραφής θεωρείται ότι η βάση του λογαρίθµου είναι 63 Σελίδα

64 το 2]. Έτσι αν για παράδειγµα υπάρχουν 16 µηνύµατα τότε log(16) = 4 και απαιτούνται 4 bits για την αναπαράσταση του κάθε µηνύµατος Γενικά αν δίδεται µια κατανοµή πιθανότητας P= (p 1, p 2,.., p n) τότε η πληροφορία που αποδίδεται σε αυτή την κατανοµή καλείται επίσης εντροπία της P [38] και είναι: I(P) = -(p1*log(p1) + p2*log(p2) pn*log(pn)) Όσο πιο οµοιόµορφη είναι µια κατανοµή πιθανότητας τόσο µεγαλύτερη είναι η πληροφορία που η κατανοµή εµπεριέχει. Εάν ένα σύνολο Τ εγγραφών διαχωριστεί σε C 1,..C k κλάσεις βάσει της τιµής του χαρακτηριστικού της κατηγορίας τότε η πληροφορία που απαιτείται για την αναγνώριση της κλάσης µιας εγγραφής του συνόλου T είναι Info(T)=I(P), όπου P είναι η κατανοµή πιθανότητας τη κατάτµησης (C 1, C 2,.., C k): P = ( C1 / T, C2 / T,..., Ck / T ) Στο παράδειγµα του golf έχουµε Info(T)=I(9/14,5/14)=0.94 Αν αρχικά διαχωρίσουµε το T βάσει των τιµών ενός χαρακτηριστικού (αλλά όχι του χαρακτηριστικού της κατηγορίας) X σε σύνολα T 1, T n τότε η πληροφορία που απαιτείται για την αναγνώριση της κλάσης του στοιχείου του T µετατρέπεται στον σταθµισµένο µέσο όρο της πληροφορίας που απαιτείται για την αναγνώριση της κλάσης ενός αντικειµένου στο T i: n Ti inf o( X, T) = Info( Ti ) T i= 1 θα έχουµε: Στην περίπτωση του παραδείγµατος του golf για το χαρακτηριστικό Outlook Info(Outlook,T)=5/14*I(2/5,3/5)+4/14*I(4/4,0)+5/14*I(3/5,2/5) = Ας θεωρήσουµε την ποσότητα Gain(X,T) που ορίζεται ως: 64 Σελίδα

65 Gain(X,T) = Info(T) - Info(X,T) Το µέγεθος αυτό αναπαριστά την διαφορά µεταξύ της πληροφορίας που απαιτείται για την αναγνώριση ενός στοιχείου του T και της πληροφορίας που απαιτείται για την αναγνώριση ενός στοιχείου του T µετά από την άφιξη της τιµής του χαρακτηριστικού X. Αυτή η ποσότητα ονοµάζεται το κέρδος πληροφορίας λόγω του χαρακτηριστικού X. Στο παράδειγµα του golf το κέρδος του χαρακτηριστικού Outlook είναι: Gain(Outlook,T) = Info(T) - Info(Outlook,T) = = Αν αντίστοιχα εξετάσουµε το χαρακτηριστικό Windy τότε Info(Windy,T) είναι και Gain(Windy,T) είναι Έτσι καταλήγουµε στο ότι το χαρακτηριστικό Outlook προσφέρει µεγαλύτερο κέρδος πληροφορίας από ότι το χαρακτηριστικό Windy. Για την κατασκευή των δένδρων απόφασης χρησιµοποιείται το κέρδος πληροφορίας ώστε να γίνει µια ταξινόµηση των χαρακτηριστικών. Η κατασκευή γίνεται µε τέτοιο τρόπο ώστε σε κάθε κόµβο να βρίσκεται το χαρακτηριστικό µε το µεγαλύτερο κέρδος σε σχέση µε τα άλλα χαρακτηριστικά τα οποία δεν έχουν ακόµη επιλεγεί στο µονοπάτι από την ρίζα του δένδρου. Ο σκοπός αυτής της ταξινόµησης είναι διπλός: Μέσω αυτής της µεθόδου σχηµατίζονται µικρά δένδρα απόφασης έτσι ώστε οι εγγραφές να µπορούν να προσδιοριστούν (όσον αφορά την κατηγορία στην οποία ανήκουν) µε χρήση λίγων µόνο ερωτήσεων. Έτσι ώστε να επιτευχθεί ελαχιστοποίηση της διαδικασίας απόφασης (Βάσει του Occam's Razor) O ID3 Αλγόριθµος Ο ID3 αλγόριθµος χρησιµοποιείται για την κατασκευή ενός δένδρου απόφασης δεδοµένου ενός συνόλου χαρακτηριστικών C 1,.C n αλλά και του χαρακτηριστικού της κατηγορίας C καθώς και ενός συνόλου εκµάθησης T εγγραφών. 65 Σελίδα

66 function ID3 (R: a set of non-categorical attributes, C: the categorical attribute, S: a training set) returns a decision tree; begin If S is empty, return a single node with value Failure; If S consists of records all with the same value for the categorical attribute, return a single node with that value; If R is empty, then return a single node with as value the most frequent of the values of the categorical attribute that are found in records of S; [note that then there will be errors, that is, records that will be improperly classified]; Let D be the attribute with largest Gain(D,S) among attributes in R; Let {d j j=1,2,.., m} be the values of attribute D; Let {S j j=1,2,.., m} be the subsets of S consisting respectively of records with value d j for attribute D; Return a tree with root labeled D and arcs labeled d 1, d 2,.., d m going respectively to the trees C, S m ); end ID3; ID3(R-{D}, C, S 1 ), ID3(R-{D}, C, S 2 ),.., ID3(R-{D}, Στο παράδειγµα του golf λαµβάνουµε το παρακάτω δένδρο απόφασης: 66 Σελίδα

67 Σχήµα 4.5 Decision Tree για το παράδειγµα Χρήση των λόγων κέρδους Η έννοια του κέρδους που παρουσιάστηκε προηγουµένως έχει την τάση να τάσσεται υπέρ χαρακτηριστικών τα οποία έχουν µεγάλο εύρος τιµών. Για παράδειγµα έστω το χαρακτηριστικό D το οποίο έχει διακριτή τιµή σε κάθε εγγραφή, τότε Info (D,T) πολύ µικρό, οπότε το Gain(D,T) µεγιστοποιείται. Για την αποφυγή αυτού του φαινοµένου ο Quinlan [34][35] προτείνει την χρήση του λόγου κέρδους αντί του κέρδους: Gain( D, T ) GainRatio( D, T ) = SplitInfo( D, T ) όπου SplitInfo(D,T) είναι η πληροφορία λόγω του διαχωρισµού του T βάσει των τιµών του χαρακτηριστικού D. Έτσι SplitInfo(D,T) είναι: T1 T2 T SplitInfo( D, T ) = I(,,..., m ) T T T όπου {T 1, T 2,.. T m} είναι η κατάτµηση του T που επάγεται από την τιµή του D. Στην περίπτωση του παραδείγµατος του golf είναι : SplitInfo(Outlook,T)= -5/14*log(5/14) -4/14*log(4/14) -5/14*log(5/14) = GainRatio(Outlook,T)= 0.246/1.577 = Επίσης SplitInfo(Windy,T)=-6/14*log(6/14) - 8/14*log(8/14) = Σελίδα

68 GainRatio(Windy,T)=0.048/0.985 = Ο C4.5 Αλγόριθµος Ο αλγόριθµος C4.5 [34]παρουσιάζει ένα σύνολο επεκτάσεων πάνω στoν αλγόριθµο ID3 Στην κατασκευή του δένδρου καθίσταται πλέον δυνατή η χρήση συνόλων εκµάθησης τα οποία έχουν εγγραφές µε άγνωστες τιµές χαρακτηριστικών µέσω της εκτίµησης του κέρδους ή του λόγου κέρδους (για ένα χαρακτηριστικό ) µόνο από εγγραφές όπου το χαρακτηριστικό αυτό είναι δηλωµένο. Στην χρήση ενός δένδρου δίνεται πλέον η δυνατότητα να γίνει απόφαση για εγγραφές οι οποίες έχουν άγνωστες τιµές χαρακτηριστικών µέσω της εκτίµησης της πιθανότητας από τα διάφορα πιθανά αποτελέσµατα. Στο παράδειγµα του golf, αν δοθεί µια νέα εγγραφή όπου το χαρακτηριστικό outlook έχει την τιµή sunny αλλά το χαρακτηριστικό humidity είναι άγνωστο ο αλγόριθµος εξελίσσεται ως εξής: Μετακινούµαστε από τον Outlook κόµβο ρίζας στον Humidity κόµβο ακολουθώντας την ακµή 'sunny'. Σε αυτό το σηµείο εφόσον δεν γνωρίζουµε την τιµή του χαρακτηριστικού Humidity παρατηρούµε ότι εάν το humidity είναι το πολύ 75 υπάρχουν δύο εγγραφές όπου κάποιος play, και εάν το humidity είναι πάνω από 75 υπάρχουν τρεις εγγραφές όπου κάποιος does not play. Έτσι η απάντηση είναι οι πιθανότητες (0.4, 0.6) για το play και για το does not play. Μέσω του C4.5 δίνεται επιπλέον η δυνατότητα για την χρήση συνεχόµενου εύρους τιµών χαρακτηριστικών (αριθµητικών τιµών) ως εξής. Έστω ότι το χαρακτηριστικό C i είναι συνεχόµενου εύρους τιµών. Εξετάζουµε τις τιµές για αυτό το χαρακτηριστικό στο σύνολο εκµάθησης. Ας θεωρήσουµε ότι είναι µε αυξανόµενη σειρά A 1, A m. Για κάθε τιµή A j, j=1..m διαχωρίζουµε τις εγγραφές σε αυτές για τις οποίες το C i είναι µικρότερο ή ίσο του A j και σε αυτές για τις οποίες το C i είναι µεγαλύτερο του A j. Για κάθε διαχωρισµό υπολογίζουµε το κέρδος, ή τον λόγο κέρδους, και επιλέγουµε τον διαχωρισµό ο οποίος µεγιστοποιεί το κέρδος. Στο παράδειγµα του golf,για το χαρακτηριστικό humidity, αν T είναι το σύνολο εκµάθησης, προσδιορίζουµε την πληροφορία για κάθε διαχωρισµό και βρίσκουµε τον καλύτερο διαχωρισµό στο 75. Έπειτα το εύρος για αυτό το 68 Σελίδα

69 χαρακτηριστικό καθίσταται {<=75 και >75}. Αξίζει να σηµειωθεί ότι αυτή η µέθοδος είναι υπολογιστικά ακριβή Εξαγωγή κανόνων από τα Decision Trees Το δένδρο απόφασης το οποίο χτίστηκε κάνοντας χρήση του συνόλου εκµάθησης, λόγω του τρόπου κατασκευής του, αποφασίζει σωστά για τις περισσότερες από τις εγγραφές στο σύνολο εκµάθησης. Στην πραγµατικότητα,για να επιτευχθεί κάτι τέτοιο το δένδρο µπορεί να γίνει ιδιαιτέρως περίπλοκο µε µεγάλου µήκους και ανόµοια µονοπάτια. Το κλάδεµα (pruning) ενός δένδρου απόφασης επιτελείται αντικαθιστώντας ένα ολόκληρο υποδένδρο µε έναν κόµβο φύλλου. Η αντικατάσταση λαµβάνει µέρος αν ένας κανόνας απόφασης προσδιορίσει ότι το αναµενόµενο σφάλµα στο υποδένδρο είναι µεγαλύτερο από ότι στο φύλλο. Για παράδειγµα το παρακάτω δένδρο απόφασης Σχήµα 4.6 ιαδικασία κλαδέµατος λαµβάνεται από το σύνολο εκµάθησης από µία success red εγγραφή και από δύο failure blue εγγραφές του συνόλου εκµάθησης καθώς και από τρείς failure red εγγραφές και µία success blue εγγραφή του συνόλου test data. Έτσι αν αντικαταστήσουµε το υποδένδρο αυτό µε έναν µόνο κόµβο failure θα έχουµε µόνο δύο λάθη αντί για τέσσερεις αποτυχίες. Ο Winston [32] παρουσιάζει το πώς να γίνει χρήση του κλαδέµατος για την απόφαση του εάν ένα χαρακτηριστικό κατηγορίας είναι εξαρτηµένο από κάποιο άλλο χαρακτηριστικό. Αν δεν είναι, τότε τα χαρακτηριστικά αυτά (όχι το χαρακτηριστικό κατηγορίας) δεν είναι αναγκαίο να εµφανίζεται στο τρέχον µονοπάτι του δένδρου απόφασης. Οι Quinlan και Breiman [33] προτείνουν επιπλέον ευρυστικές µεθόδους κλαδέµατος. 69 Σελίδα

70 Η διαδικασία εξαγωγής συνόλου κανόνων από ένα δένδρο απόφασης είναι µια απλή διαδικασία. Για κάθε µονοπάτι από την ρίζα προς ένα φύλλο εξάγεται και από ένας κανόνας. Σε αυτούς του κανόνες το αριστερό µέρος λαµβάνει το όνοµα του από το όνοµα των κόµβων και τα ονόµατα των ακµών. Το σύνολο κανόνων που εξάγεται µπορεί να απλοποιηθεί: Έστω ότι LHS είναι το αριστερό τµήµα ενός κανόνα. Έστω ότι το LHS λαµβάνεται από το LHS επιτελώντας εξάλειψη σε κάποιες από τις συνθήκες. Μπορούµε να αντικαταστήσουµε το LHS µε το LHS σε αυτόν τον κανόνα αν το υποσύνολο του συνόλου εκµάθησης το οποίο ικανοποιεί το LHS είναι ίδιο µε το υποσύνολο που ικανοποιεί το LHS. Ένας κανόνας µπορεί να εξαλειφθεί κάνοντας χρήση default τιµών όπως για παράδειγµα «if no other rule applies» 70 Σελίδα

71 Κεφάλαιο 5 Περιγραφή και στόχοι εφαρµογής 5.1 Γενική περιγραφή Στο παρόν κεφάλαιο παρουσιάζονται οι προδιαγραφές και οι στόχοι της εφαρµογής η οποία υλοποιείται στα πλαίσια της παρούσας εργασίας. Τα τελευταία χρόνια παρατηρείται έντονη ανάπτυξη και ανάγκη m-commerce εφαρµογών.η ανάγκη αυτή επιτάσσεται κυρίως από τις επιχειρήσεις οι οποίες αναζητούν τρόπους ανάλυσης της πληθώρας πλέον από πληροφορίες τις οποίες διατηρούν σχετικά µε τις συναλλαγές των πελατών τους έτσι ώστε να εδραιώσουν την θέση τους στην αγορά αλλά και να προσφέρουν εστιασµένες στον πελάτη υπηρεσίες. Το m-commerce όπως έχει ήδη αναφερθεί αποτελεί παρακλάδι του e- commerce. Αποτελεί την φυσική εξέλιξη του e-commerce λόγω κυρίως της αναµενόµενης εξέλιξης των κινητών συσκευών οι οποίες πλέον διαδραµατίζουν µείζονα ρόλο στις ζωές των ανθρώπων. Έτσι οι επιχειρήσεις αναζητούν τρόπους για παροχή υπηρεσιών και προϊόντων µέσω της χρήσης των κινητών συσκευών των χρηστών. Ιδιαίτερη έµφαση έχει δοθεί στον τοµέα του m-commerce ο οποίος σχετίζεται µε την διαφήµιση µέσω κινητής συσκευής (mobile advertising). Η εξέλιξη των ασύρµατων δικτύων παρέχει µια πλειάδα τρόπων χρήσης των κινητών συσκευών των χρηστών για διαφήµιση. Έτσι πλέον οι κινητές συσκευές µέσω των δικτυακών διεπαφών τους αλλά και της αυξηµένης πλέον υπολογιστικής τους δύναµης αποτελούν πιθανό εργαλείο των επιχειρήσεων για διαφηµιστικούς σκοπούς. Με χρήση τεχνολογιών όπως το Wi-Fi, το Bluetooth, το δίκτυο δεδοµένων κινητής τηλεφωνίας αλλά και πιο πρόσφατα του NFC (Near Field Communication) [39] η συσκευή µετατρέπεται σε µέσο διαφήµισης αλλά και εξαγωγής χρήσιµης γνώσης από την πλευρά των επιχειρήσεων. Η τοµή των παραπάνω τεχνολογιών µε υπηρεσίες εντοπισµού όπως για παράδειγµα το GPS (Global Positioning System) δίνει την δυνατότητα για ακόµη πιο προσωποποιηµένες τεχνικές διαφήµισης. Έτσι µε την επιπλέον χρήση µοντέλου εξόρυξης γνώσης δίνεται η δυνατότητα στην επιχείρηση να προσφέρει υπηρεσίες εστιασµένες στον πελάτη (client focused). Στο παράδειγµα µιας επιχείρησης πώλησης προϊόντων µε χρήση data mining πάνω στα δεδοµένα των συναλλαγών των πελατών της µπορεί να επιτελεστεί εξόρυξη γνώσης σχετικά µε τις αγοραστικές συνήθειες. Επιπρόσθετα ο συνδυασµός 71 Σελίδα

72 των παραπάνω τεχνολογιών κινητών συσκευών µε την εξόρυξη γνώσης προσφέρει την δυνατότητα για παροχή υπηρεσιών οι οποίες κινούνται προς το συµφέρον της επιχείρησης. Στο παράδειγµα µιας επιχείρησης αγορών η διαδικασία του data mining µπορεί να επιτελεστεί πάνω σε δεδοµένα των συναλλαγών, της θέσης του πελάτη κατά την διαδικασία των αγορών αλλά και επιπρόσθετης πληροφορίας σχετικά µε τον χρόνο των αγορών. Έτσι µε δεδοµένα για παράδειγµα της πορείας κάποιου πελάτη µέσα σε ένα κατάστηµα αλλά και στοιχεία όπως το χρονικό διάστηµα στο οποίο παρέµεινε σε κάποιο συγκεκριµένο σηµείο (το οποίο πιθανώς τον ενδιέφερε περισσότερο) εξάγονται κανόνες µε χρήση τεχνικών εξόρυξης γνώσης. Έτσι τα στοιχεία την κίνησης των πελατών σε µια επιχείρηση µπορούν να αποθηκεύονται σε βάσεις δεδοµένων µαζί µε τον χρόνο που αφιέρωσαν σε κάθε θέση για περαιτέρω επεξεργασία. Στην παρούσα εργασία αρχικά υλοποιείται σύστηµα εντοπισµού θέσης σε Wi- Fi δίκτυο. Η ανάγκη για ένα τέτοιο σύστηµα παρουσιάζεται εκτενώς στο [20] και δεν θα γίνει αναφορά στην παρούσα εργασία. Τα εξαγόµενα του εντοπισµού θέσης των χρηστών από το σύστηµα εισάγονται σε ένα δεύτερο σύστηµα το οποίο κάνοντας περάσµατα από την βάση δεδοµένων εξάγει κανόνες συσχέτισης µεταξύ των διαφορετικών περιοχών όπου κάποιος πελάτης επισκέφτηκε. Οι κανόνες που προκύπτουν µπορούν να χρησιµοποιηθούν από την επιχείρηση για την εξόρυξη γνώσης πάνω στα ζητήµατα της αγοράς, όπως για παράδειγµα δηµοφιλή προϊόντα ή οµάδες προϊόντων αλλά και χωροταξικά ζητήµατα όπως σηµεία πώλησης τα οποία θα πρέπει να βρίσκονται πιο κοντά µεταξύ τους. Ο εντοπισµός της θέσης του πελάτη επιτελείται µε τεχνική εντοπισµού δανεισµένη από την ροµποτική, το particle filtering,ενώ αντίστοιχα η εξαγωγή γνώσης η οποία εφαρµόζεται πάνω στα δεδοµένα των θέσεων επιτελείται µε τις τεχνικές data mining, market basket analysis και δένδρα απόφασης. Η τεχνική particle filtering παρουσιάζεται εκτενώς στο κεφάλαιο 3 ενώ οι παραπάνω τεχνικές data mining στο κεφάλαιο 4. Όσον αφορά την παρούσα εργασία θεωρούµε το παράδειγµα µιας αγοράς στην οποία τίθεται σε λειτουργία το συγκεκριµένο σύστηµα. Ο κάθε πελάτης της αγοράς θεωρείται ότι διαθέτει στην κινητή του συσκευή το λογισµικό εντοπισµού που υλοποιήθηκε στα πλαίσια της εργασίας. Παράλληλα για την ορθή διαδικασία 72 Σελίδα

73 εξαγωγής θέσης του συστήµατος γίνεται χρήση διαφόρων σηµείων πρόσβασης αλλά και ενός κεντρικού υπολογιστή ο οποίος διαδραµατίζει τον σηµαντικότερο ρόλο στην εξαγωγή της θέσης. Προαιρετικά µπορεί να γίνει χρήση ενός επιπλέον υπολογιστή για την αύξηση της ακρίβειας του συστήµατος εντοπισµού θέσης. Στο επόµενο κεφάλαιο γίνεται εκτενής περιγραφή του συστήµατος. Οι συσκευές των πελατών επικοινωνούν µε τον κεντρικό υπολογιστή µέσω του Wi-Fi στέλνοντας του κατάλληλα δεδοµένα και ο κεντρικός υπολογιστής µε κατάλληλη επεξεργασία αποθηκεύει τα δεδοµένα αυτά σε µια βάση δεδοµένων. Έχοντας όλα τα στοιχεία της πορείας των χρηστών αποθηκευµένα στην βάση γίνεται η χρήση των τεχνικών data mining πάνω στα δεδοµένα αυτά έτσι ώστε να εντοπισθούν οι συσχετίσεις µεταξύ των διαφόρων θέσεων των διαφόρων πελατών της αγοράς. Φυσική επέκταση ενός τέτοιου συστήµατος θα αποτελούσε και η χρήση των barcodes των προϊόντων που αγοράστηκαν έτσι ώστε οι τεχνικές εξόρυξης γνώσης να εµπλουτίσουν τα εξαγόµενά τους και µε αυτό το επιπλέον στοιχείο. Στην παρούσα εργασία υλοποιείται το σύστηµα το οποίο εξάγει γνώση µόνο από την πορεία του χρήστη. Η παραπάνω διαδικασία έχει ως αποτέλεσµα την εξαγωγή κανόνων συσχέτισης µεταξύ των διαφόρων περιοχών όπου οι πελάτες επισκέφτηκαν. ιάφοροι κανόνες συσχέτισης µπορούν να προκύψουν, οι οποίοι να προσφέρουν πολύτιµη πληροφορία που να αφορά τα τµήµατα της αγοράς. Τέτοια πληροφορία µπορεί να περιλαµβάνει την γνώση σχετικά µε ποια άλλα τµήµατα συσχετίζεται κάποιο συγκεκριµένο τµήµα, ποια τµήµατα θα επηρεαστούν σε αριθµό επισκέψεων πελατών αν καταργηθεί κάποιο συγκεκριµένο τµήµα της αγοράς, ποια άλλα τµήµατα της αγοράς προτιµούν οι πελάτες οι οποίοι ανιχνεύονται σε κάποιο συγκεκριµένο τµήµα, ποια τµήµατα της αγοράς συσχετίζονται περισσότερο µεταξύ τους, ώστε αυτά να τοποθετηθούν γειτονικά κ.τ.λ. Όσον αφορά την m-commerce συνιστώσα το σύστηµα το οποίο υλοποιείται δίνει επιπρόσθετα την δυνατότητα για αποστολή κατάλληλων διαφηµιστικών µηνυµάτων στις κινητές συσκευές των πελατών τους. Όπως έχει ήδη αναφερθεί οι κινήσεις των πελατών της αγοράς καταγράφονται στην κεντρική βάση δεδοµένων και ο συνδυασµός και η ανάλυση πολλών διαφορετικών πορειών διαφορετικών πελατών οδηγεί στην εξαγωγή γνώσης σχετικά µε της υποβόσκουσες συσχετίσεις. Παράλληλα µε κριτήριο τον βαθµό επισκεψιµότητας στο κάθε τµήµα / περιοχή δίνεται η δυνατότητα αποστολής συγκεκριµένου διαφηµιστικού µηνύµατος στην κινητή συσκευή του πελάτη που θα τον παροτρύνει για επιπλέον αγορές. Έτσι η διαδικασία η οποία επιτελείται έχει ως αποτέλεσµα τον προσδιορισµό των συνηθειών 73 Σελίδα

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

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

76 Κεφάλαιο 6 Υποσυστήµατα εφαρµογής 6.1 Βασική Περιγραφή Το σύστηµα το οποίο προτείνεται αποτελείται από δύο κεντρικά υποσυστήµατα. Το πρώτο υποσύστηµα αποτελεί ένα σύστηµα εντοπισµού θέσης του χρήστη µέσω της κινητής του συσκευής µέσα σε ένα Wi-Fi δίκτυο. Το δεύτερο υποσύστηµα περιλαµβάνει την λογική για την εξόρυξη δεδοµένων από το πληροφοριακό περιεχόµενο της θέσης των χρηστών ώστε να µπορεί να χρησιµοποιηθεί στον εµπορικό τοµέα. Το υποσύστηµα εντοπισµού θέσης το πρώτο υποσύστηµα λαµβάνει ως είσοδο τον χάρτη του χώρου στον οποίο θα εγκατασταθεί το σύστηµα. Βασικός στόχος είναι οι δυνατότητες κλιµάκωσης και η ακρίβεια -παρά τις αλλαγές του περιβάλλοντος- ενός τέτοιου συστήµατος. Το σύστηµα κάνοντας επεξεργασία στον χάρτη εισόδου σχηµατίζει έναν γράφο αναπαράστασης του περιβάλλοντος ο οποίος αποτελεί σηµαντικό στοιχείο για την ορθή διαδικασία εξαγωγής της θέσης. Μέσω αυτού του γράφου επιτυγχάνεται αποδοτική εύρεση θέσης, µεγαλύτερη ανοχή στα σφάλµατα -τα οποία συσσωρεύονται λόγω της γενικότερης αστάθειας του ασύρµατου µέσου- αλλά και δυνατότητα πρόβλεψης της πορείας του χρήστη. Για την εξαγωγή της θέσης του χρήστη υλοποιείται πιθανοτική τεχνική παρµένη από την ροµποτική. Η τεχνική αυτή ονοµάζεται Particle Filtering και δίνει την δυνατότητα στο σύστηµα να αφοµοιώνει πιθανά σφάλµατα µέτρησης λόγω της φύσης του ασύρµατου µέσου. Παράλληλα το σύστηµα είναι δυναµικό στις αλλαγές του περιβάλλοντος µιας και έχει την δυνατότητα να αφουγκράζεται το περιβάλλον και να επεµβαίνει στην διαδικασία ανατροφοδοτώντας την διαδικασία εξαγωγής θέσης. Επιπροσθέτως χρησιµοποιείται επιπλέον υπολογιστικό σύστηµα το οποίο αναλαµβάνει τον ρόλο διορθωτή των fingerprinted σηµάτων έτσι ώστε να είναι πάντα ενηµερωµένα. Όσον αφορά το δεύτερο υποσύστηµα, επιτελείται τεχνική εξόρυξης γνώσης πάνω στα δεδοµένα θέσης που εξάγονται από το πρώτο υποσύστηµα. Υποθέτουµε ότι το σύστηµα θα χρησιµοποιηθεί σε µία αγορά. Έτσι µε βάση τη γνώση της θέσης των πελατών το σύστηµα θα προσπαθεί να ανακαλύψει τα κρυµµένα patterns από τις επισκέψεις στα διάφορα τµήµατα της αγοράς οι οποίες πραγµατοποιήθηκαν. 76 Σελίδα

77 Χρησιµοποιούνται τεχνικές εξόρυξης γνώσης πάνω στα δεδοµένα των συναλλαγών ώστε να µπορούν να προβλεφθούν πιθανά προϊόντα τα οποία θα ενδιαφέρουν τον χρήστη. Το σύστηµα ως αποτέλεσµα των υπολογισµών αποστέλλει κατάλληλα στοχευµένα µηνύµατα στην κινητή συσκευή του πελάτη ώστε να τον παροτρύνει για επιπλέον αγορές. 6.2 Υπάρχοντα συστήµατα εντοπισµού θέσης Στην βιβλιογραφία υπάρχει µεγάλος αριθµός συστηµάτων τα οποία έχουν υλοποιηθεί για χρήση σε εσωτερικούς χώρους. Οι λόγοι χρήσης ενός τέτοιου συστήµατος περιγράφονται λεπτοµερώς στο [20]. Τα συστήµατα τα οποία έχουν υλοποιηθεί χωρίζονται σε διάφορες κατηγορίες ανάλογα τον επιπλέον εξοπλισµό τον οποίο χρησιµοποιούν για την ανίχνευση, της βασικής µεθόδου υπολογισµού αλλά και της τεχνολογίας της οποίας κάνουν χρήση. Στο [20] γίνεται εκτενής περιγραφή διαφόρων τέτοιων συστηµάτων τα οποία θα µπορούσαν να χαρακτηριστούν ως 1 ης γενιάς συστήµατα εντοπισµού. Στην παρούσα ενότητα γίνεται περιγραφή των συστηµάτων τα οποία κάνουν χρήση πιο φιλοσοφηµένων τεχνικών για τον εντοπισµό της θέσης όπως για παράδειγµα µε χρήση τεχνικών filtering αλλά και πιθανοτικών µοντέλων τα οποία εφαρµόζονται σε Wi-Fi περιβάλλοντα. Στο [23] γίνεται εκτενής αναφορά πάνω στις υπολογιστικές µεθόδους οι οποίες χρησιµοποιούνται για τον εντοπισµό. Έτσι πιο συγκεκριµένα περιγράφεται η χρήση του κεντροειδούς ως µεθόδου εντοπισµού, η χρήση αποτυπωµάτων σήµατος (fingerprinting) αλλά και η εφαρµογή των particle filters στην διαδικασία εντοπισµού. Στην συγκεκριµένη εργασία γίνεται σύγκριση των αποτελεσµάτων και ακρίβειας την οποία επιτυγχάνουν οι τεχνικές αυτές. Ένα σύστηµα το οποίο κάνει επίσης χρήση του Wi-Fi για τον εντοπισµό περιγράφεται στο [22] όπου γίνεται εφαρµογή monte carlo µεθόδων αλλά και εφαρµογής fingerprint για τα δεδοµένα σήµατος συνδυασµένη µε interpolation. Στο [21] περιγράφεται ένα σύστηµα εντοπισµού θέσης το οποίο κάνει χρήση της γραµµής ηλεκτροδότησης. Το σύστηµα περιγράφεται ως PLP (Powerline Positioning) και οι συγγραφείς προτείνουν µια εξέλιξη του PLP το οποίο καλείται WPLP (Wideband Powerline Positioning). Η ακρίβεια εντοπισµού µε χρήση της συγκεκριµένης µεθόδου παρόλα αυτά είναι δύσκολο να επιτευχθεί. Στο [26] περιγράφεται το σύστηµα εντοπισµού CLS το οποίο κάνει χρήση κυψελών στις οποίες ανατίθενται 77 Σελίδα

78 βάρη τα οποία προσδιορίζουν την εκτίµηση της θέσης του χρήστη. Παράλληλα στις παραλλαγές του CLS υλοποιείται διαφορετική τεχνική εντοπισµού κάθε φορά όπως η χρήση particle filter, καθώς και η χρήση της µετρικής percentiles. Στο [27] γίνεται µια προσπάθεια από τους συγγραφείς έτσι ώστε να επιλυθούν τα προβλήµατα τα οποία δηµιουργούνται σε τέτοια συστήµατα εντοπισµού από την χρήση διαφορετικών συσκευών Wi-Fi. Έτσι γίνεται χρήση ενός µοντέλου το οποίο ενεργεί πάνω στο σήµα έτσι ώστε να καταφέρει να το ζυγοσταθµίσει. Στο [28] υλοποιείται µοντέλο σε Wifi περιβάλλοντα το οποίο κάνει χρήση όχι του λαµβανόµενου σήµατος απ ευθείας αλλά αποφασίζει την θέση του χρήστη βάσει µιας διάταξης των λαµβανόµενων σηµάτων. Στο [25] περιγράφεται η υλοποίηση ενός συστήµατος το οποίο κάνει χρήση Support Vector Machines πάνω σε συµβολικά ονόµατα περιοχών παρά ακριβείς συντεταγµένες θέσεις. Στο [24] υλοποιείται το σύστηµα SIMPLE το οποίο κάνει χρήση χάρτη σηµάτων,smoothing συνάρτησης πάνω στα σήµατα αυτά αλλά και µιας clustering συνάρτησης η οποία αποφασίζει για ένα σύνολο πιθανών θέσεων του χρήστη. Παράλληλα η υλοποίηση του SIMPLE σύµφωνα µε τους συγγραφείς περιλαµβάνει την λογική για χρήση σε πολυεπίπεδα περιβάλλοντα όπως για παράδειγµα σε διαφορετικούς ορόφους ενός κτηρίου. 6.3 ιαχωρισµός υποσυστηµάτων εντοπισµού Το σύστηµα το οποίο υλοποιείται περιλαµβάνει όπως έχει ήδη αναφερθεί δύο βασικά υποσυστήµατα. Στην παρούσα ενότητα κρίνεται απαραίτητη για λόγους κατανόησης η διάσπαση του πρώτου υποσυστήµατος στα συνδεόµενα µεταξύ τους συστήµατα από τα οποία αποτελείται. Το σύστηµα εντοπισµού είναι αρθρωτής λογικής και περιλαµβάνει τα εξής επιµέρους συστήµατα: 1. Σύστηµα εξαγωγής γράφου και µεταδεδοµένων (από εδώ και πέρα θα αναφέρεται ως σύστηµα εξαγωγής γράφου) (Map Extractor) 2. Κεντρικό σύστηµα εντοπισµού (Server) 3. Σύστηµα διορθωτή διαδικασίας εντοπισµού (Sniffer) 4. Σύστηµα πελάτη (Client) 78 Σελίδα

79 Τα τρία πρώτα συστήµατα ανήκουν στην κατηγορία συστηµάτων χρήσης του διαχειριστή ενώ το τελευταίο υλοποιεί την λογική που απαιτείται από την πλευρά του πελάτη. Το πρώτο σύστηµα είναι ένα offline σύστηµα το οποίο εκτελείται µία φορά µόνο και είναι ένα απαραίτητο βήµα για την λειτουργία του συστήµατος εντοπισµού. Το σύστηµα αυτό λαµβάνει από τον διαχειριστή τα χωρικά δεδοµένα της περιοχής ενδιαφέροντος στην οποία θα λειτουργήσει το συνολικό σύστηµα όπως ο χάρτης, οι θέσεις των σηµείων πρόσβασης, η θέση του υπολογιστή διορθωτή και εξάγει σε κατάλληλη µορφή έναν γράφο που αναπαριστά την περιοχή ενδιαφέροντος, µεταδεδοµένα του χάρτη και επίσης αρχικοποιεί την βάση η οποία θα χρησιµοποιηθεί έπειτα για την εξόρυξη της γνώσης. Τα εξαγόµενα του συστήµατος εξαγωγής γράφου χρησιµοποιούνται από το κεντρικό σύστηµα για την διαδικασία εξαγωγής της θέσης. Σχήµα 6.1.Ιεραρχική δοµή συστήµατος Τα συστήµατα 2 και 3 υλοποιούν την διαδικασία εξαγωγής της θέσης του χρήστη. Στο κεντρικό σύστηµα εντοπισµού εκτελείται η λογική του εξυπηρετητή µε τον οποίο συνδέεται ο πελάτης και αποστέλλει τα δεδοµένα προς επεξεργασία. Στο σύστηµα αυτό υλοποιείται ο αλγόριθµος particle filtering. Το σύστηµα διορθωτή της διαδικασίας αποτελεί ένα επιπλέον υπολογιστικό σύστηµα το οποίο αναλαµβάνει το ρόλο της ζυγοστάθµισης της διαδικασίας εξαγωγής της θέσης. Επικοινωνεί διαρκώς µε το κεντρικό σύστηµα και µε βάση τα δεδοµένα της επικοινωνίας τους το κεντρικό σύστηµα επιτελεί διαδικασία διόρθωσης αποθηκευµένα και στα εξαγόµενα αποτελέσµατα. Και τα δύο συστήµατα είναι online συστήµατα και εκτελούνται σε ατέρµονο βρόγχο. Το σύστηµα 4 (σύστηµα πελάτη) αποτελεί την διεπαφή του πελάτη µε το γενικότερο σύστηµα εντοπισµού και εξαγωγής κανόνων. Το σύστηµα εντοπισµού έχει ως στόχο τον εντοπισµό του συστήµατος του πελάτη. Το σύστηµα του πελάτη 79 Σελίδα

80 υλοποιεί την λογική για την αποστολή των δεδοµένων σήµατος που λαµβάνει και επίσης την λογική για την λήψη και εµφάνιση των στοχευµένων διαφηµιστικών µηνυµάτων που λαµβάνει από το κεντρικό σύστηµα. 6.4 Περιγραφή υποσυστήµατος εντοπισµού θέσης Σύστηµα εξαγωγής γράφου Σε πρώτο πλάνο το σύστηµα λαµβάνει ως είσοδο από τον διαχειριστή τον χάρτη του εσωτερικού χώρου όπου θα εκτελεστεί το σύστηµα. Για την συγκεκριµένη λειτουργικότητα υλοποιείται λογισµικό σε java το οποίο εκτελείται µια φορά και εξάγει από τον χάρτη έναν γράφο µέσω του οποίου υποστηρίζεται αποτελεσµατικά η χρήση του συστήµατος. Πιο συγκεκριµένα ο διαχειριστής του συστήµατος καλείται να εισάγει στο λογισµικό τον χάρτη του κτηρίου αλλά και να προσδιορίσει την θέση των σηµείων πρόσβασης αλλά και του υπολογιστή-διορθωτή ο οποίος θα βρίσκεται στον χώρο. Έτσι το λογισµικό έχοντας ως είσοδο τον χάρτη εξάγει σε αρχεία τα οποία θα χρησιµοποιηθούν στο στάδιο του εντοπισµού θέσης από το σύστηµα- τον γράφο που δηµιουργείται από τις δυνατές θέσεις αλλά και τις πιθανές διαδροµές στις οποίες µπορεί να βρίσκεται ο χρήστης καθώς και αρχεία για τις θέσεις πάνω στον χάρτη των σηµείων πρόσβασης (routers) αλλά και του υπολογιστή διορθωτή. Παράλληλα αρχικοποιείται η βάση για την διαδικασία εξόρυξης γνώσης ιαδικασία εξαγωγής γράφου Με δεδοµένο τον χάρτη της κάτοψης το λογισµικό σε πρώτη φάση αναγνωρίζει τις ανεξάρτητες περιοχές (δωµάτια) και την γειτνίασή τους. Έτσι το κάθε δωµάτιο προσδιορίζεται µε ένα µοναδικό id. Οι δυνατές θέσεις του χρήστη σε κάθε δωµάτιο προσδιορίζονται στην περίπτωση όπου το δωµάτιο έχει ίσες πλευρές η σχεδόν ίσες από µία µόνο θέση όπου είναι το κέντρο του δωµατίου. Εάν το δωµάτιο είναι µακρόστενο τότε προσδιορίζονται περισσότερα δυνατά σηµεία κατά µήκος της µεγαλύτερης διάστασης του δωµατίου. Τα σηµεία εισόδου στα δωµάτια προσδιορίζονται στον χάρτη από τον διαχειριστή και αυτή η γνώση συµπεριλαµβάνεται στον πίνακα γειτνίασης των δωµατίων. εδοµένου ότι έχουν εξαχθεί τα δυνατά σηµεία θέσης µέσα στα δωµάτια από το προηγούµενο βήµα ο αλγόριθµος συνεχίζει περιλαµβάνοντας στα δυνατά 80 Σελίδα

81 σηµεία θέσης τα σηµεία που ενώνουν µεταξύ τους τα δωµάτια. Αυτά τα σηµεία είναι τα σηµεία εισόδου στα δωµάτια. Έτσι πλέον το σύνολο κόµβων του γράφου περιλαµβάνει τα κέντρα των δωµατίων αλλά και τα σηµεία εισόδου στα δωµάτια. Το επόµενο στάδιο για την ολοκλήρωση του γράφου είναι η συνένωση των κόµβων του γράφου µε τέτοιο τρόπο έτσι ώστε να αναπαριστούν τις δυνατές διαδροµές οι οποίες µπορούν να εδραιωθούν. Έτσι τα σηµεία εισόδου συνδέονται σε πρώτη φάση µε τα κέντρα των δωµατίων µε τα οποία γειτνιάζουν. Σε δεύτερη φάση γίνεται διαγραφή των ενώσεων για αδύνατες διαδροµές ή για διαδροµές οι οποίες αναπαρίστανται µε άθροισµα ήδη υπαρχουσών διαδροµών. Έτσι από τον χάρτη του κτηρίου εξάγεται ένας γράφος όπου οι κόµβοι του αναπαριστούν τις δυνατές θέσεις όπου θα µπορεί να βρίσκεται κάποιος και οι ενώσεις µεταξύ των κόµβων τις δυνατές διαδροµές µεταξύ γειτονικών κόµβων. Ο γράφος είναι πάντα συνεκτικός Οφέλη χρήσης Γράφου Τα οφέλη από την χρήση γράφου στο σύστηµα είναι πολλά. Αρχικά µειώνονται δραµατικά τα σηµεία στα οποία θα πρέπει να γίνει χαρτογράφηση σηµάτων. Μέσω της χρήσης γράφου προσδιορίζονται τα σηµεία-κλειδιά που παίζουν ρόλο στην ακρίβεια του συστήµατος. Επιπλέον ο γράφος δίνει την δυνατότητα στο σύστηµα να αποφύγει πιθανές λανθασµένες προβλέψεις θέσεων λόγω λανθασµένης απόφασης του συνολικού συστήµατος και να αυτοδιορθωθεί. Έτσι για παράδειγµα αποφεύγονται αδύνατες διαδροµές όπως διαπεράσεις τοίχων αλλά και άλµατα θέσεων όπως για παράδειγµα το να βρίσκεται κάποιος σε µια θέση x την δεδοµένη στιγµή t και την χρονική στιγµή t+1 να βρίσκεται στην άλλη άκρη του κτηρίου. Εποµένως ο γράφος προσδιορίζει µια συνέχεια στις πιθανές θέσεις που αποφασίζονται από το σύστηµα Επιµέρους συστήµατα Κεντρικό σύστηµα εντοπισµού (Server) O Server είναι λογισµικό γραµµένο σε java και λαµβάνει ως είσοδο τον γράφο και τα δεδοµένα τα οποία εξήχθησαν στο πρωταρχικό στάδιο. Ο Server επιτελεί τον πυρήνα του συστήµατος. Αυτός αποφασίζει την θέση αλλά και σε αυτόν εκτελείται 81 Σελίδα

82 και το λογισµικό για την εξόρυξη της γνώσης από τα δεδοµένα θέσης των πελατών. Ο Server είναι συνδεδεµένος µε κάποιο σηµείο πρόσβασης έστω AP1 (Access Point AP σηµείο πρόσβασης). Στο ασύρµατο δίκτυο του AP1 συνδέεται ο Client για τον εντοπισµό της θέσης του. Παράλληλα στην περιοχή ενδιαφέροντος υπάρχουν άλλα δύο σηµεία πρόσβασης. Τα AP2 και AP3 όπως και το AP1- βρίσκονται και αυτά στον χώρο και από αυτά λαµβάνονται από τον Client οι στάθµες σήµατος που εκπέµπουν (RSS). Ο Sniffer λαµβάνει διαρκώς σήµατα από τα AP και αποστέλλει τα σήµατα αυτά στον Server 24 ώρες το 24ωρο. Η λειτουργία του συστήµατος απαρτίζεται από δύο φάσεις, offline και online. Κατά την offline φάση σχηµατίζεται ένας χάρτης σηµάτων του χώρου (fingerprint). Η διαδικασία αυτή αποτελεί προπαρασκευαστικό στάδιο του συστήµατος. Στην φάση αυτή στα σηµεία τα οποία προσδιορίζονται από τους κόµβους του γράφου που εξάχθηκε από τον χάρτη του κτηρίου λαµβάνονται οι στάθµες σήµατος των APs. Έτσι σχηµατίζεται µία αντιστοίχηση κόµβων γράφου µε τις στάθµες των σηµάτων στα σηµεία αυτά. Τα δεδοµένα αυτά αποθηκεύονται στον Server και χρησιµοποιούνται για την Online φάση. Κατά την Online φάση ο Client ζητά από τον Server να του αποστείλει την πληροφορία θέσης του. Για να γίνει αυτό ο Client αποστέλλει στον Server τα δεδοµένα σήµατος που λαµβάνει από την θέση που βρίσκεται. Έπειτα από επεξεργασία ο Server αποστέλλει στον Client την θέση του. O Server για να εντοπίσει την θέση του Client χρησιµοποιεί τα εξής δεδοµένα: 1. Πληροφορία σήµατος από τον Client µε χρήση της συσκευής του 2. Χάρτες σήµατος που δηµιουργήθηκαν κατά την offline φάση 3. Πληροφορίες από τον Sniffer 4. Ο γράφος που εξήχθη από τον χάρτη Η συνάρτηση θέσης που επιτελεί ο server υλοποιεί µέθοδο particle filtering για τον εντοπισµό της θέσης του Client παρµένη από την ροµποτική.πρόκειται για πιθανοτική µέθοδο µέσω της οποίας ξεκινά µια πιθανή εκτίµηση για το που βρίσκεται ο χρήστης η οποία έχει µεγάλο σφάλµα και κάθε φορά που λαµβάνεται µια µέτρηση από τον Server (που του αποστέλλει ο Client) το σφάλµα αυτό µειώνεται.σηµαντικό ρόλο στον εντοπισµό λαµβάνει ο γράφος που εξήχθη στην πρώτη φάση. Μέσω αυτού υποστηρίζεται η διαδικασία του particle filtering µιας και αποτελεί την βάση του µοντέλου µετρήσεων του αλγορίθµου. Επίσης τα δεδοµένα του Sniffer 82 Σελίδα

83 χρησιµοποιούνται για την βελτίωση της ακρίβειας του συστήµατος µιας και παρέχει διαρκώς δεδοµένα στον Server τα οποία αποτελούν µια εκτίµηση του περιβάλλοντος Σηµεία πρόσβασης (Access Points) Απαραίτητη προϋπόθεση για την λειτουργία του συστήµατος εντοπισµού είναι η χρήση τριών ή και περισσότερων σηµείων πρόσβασης τα οποία βρίσκονται στον χώρο ενδιαφέροντος. Τα εκπεµπόµενα σήµατα των σηµείων πρόσβασης λαµβάνονται από τον Client και αποστέλλονται από την πλευρά του στον Server προς επεξεργασία. Είναι µείζονος σηµασίας η περιοχή ενδιαφέροντος να καλύπτεται στο σύνολο της από τις εµβέλειες των σηµείων πρόσβασης. Σε ένα από αυτά τα σηµεία πρόσβασης είναι συνδεδεµένος ο Server µέσω Wi-Fi ή και Ethernet καλωδίου. Έτσι ο Client µε την σειρά του κατά την λειτουργία του συστήµατος συνδέεται µε το ίδιο σηµείο πρόσβασης έτσι ώστε να δηµιουργηθεί το µονοπάτι επικοινωνίας µεταξύ Server και Client για την αποστολή και λήψη δεδοµένων Υπολογιστής διορθωτής (Sniffer) Ο Sniffer αποτελεί ένα υπολογιστικό σύστηµα,βασική λειτουργία του οποίου είναι η απρόσκοπτη αποστολή σηµάτων που λαµβάνει από τα APs στον Server. Η χρήση του Sniffer είναι σηµαντική µιας και µέσω αυτού µπορούν να εντοπιστούν αλλαγές στο περιβάλλον οι οποίες επηρεάζουν την ορθή λειτουργία του συστήµατος Σύστηµα πελάτη (Client) Ο Client είναι λογισµικό γραµµένο σε Android το οποίο τρέχει σε κινητή συσκευή (smartphone) και λαµβάνει τις στάθµες σήµατος από τα σηµεία πρόσβασης του συστήµατος, τις οποίες αποστέλλει στον server (εφόσον συνδεθεί πρώτα µαζί του) και αναµένει την απάντηση της θέσης του. Στην συσκευή του Client επίσης αποστέλλονται και τα διαφηµιστικά µηνύµατα του συστήµατος εξόρυξης. 83 Σελίδα

84 6.4.3 Προτερήµατα συστήµατος εντοπισµού θέσης σε σχέση µε προϋπάρχοντα Τα βασικά πλεονεκτήµατα του παρόντος συστήµατος εντοπισµού που υλοποιείται στα πλαίσια της εργασίας αυτής είναι τα εξής: Πιθανοτική εκτίµηση θέσης o Η εκτίµηση θέσης µέσω πιθανοτήτων αποτελεί ένα βήµα µπροστά στα συστήµατα εντοπισµού θέσης µιας και η αστάθεια του ασύρµατου µέσου δεν δίνει την δυνατότητα για σωστή εκτίµηση µε χρήση ντετερµινιστικών λύσεων. υναµικό σύστηµα µέσω του Sniffer αλλά και της γνώσης της εγγύτητας στα routers o Ένα σύστηµα εντοπισµού θέσης το οποίο θα µπορεί να προσαρµόζεται στις µεταβολές του περιβάλλοντος περιλαµβάνει το άλφα και το ωµέγα όσον αφορά την ακρίβεια τέτοιων συστηµάτων µιας και µεταβολή του περιβάλλοντος µπορεί ακόµη και να αχρηστέψει ένα τέτοιο σύστηµα. Το σύστηµα που περιγράφεται εδώ χρησιµοποιεί τον Sniffer για να αφουγκραστεί αλλαγές στο περιβάλλον αλλά και εσωτερικές τεχνικές στην µέθοδο particle filtering. Αρθρωτή σχεδίαση o Ο αρθρωτός σχεδιασµός επιτρέπει σε µελλοντική επαύξηση της λειτουργίας του συστήµατος µε χρήση επιπλέον διαφορετικών τεχνολογιών για την επίτευξη ακόµη µεγαλύτερης ακρίβειας. Χρήση γράφου για αύξηση ακρίβειας, µείωση λαθών αλλά και ευελιξίας στην εφαρµογή του o Η χρήση γράφου σε ένα τέτοιο σύστηµα αυξάνει κατά πολύ την αποτελεσµατικότητα του συστήµατος µιας και έχει ως αποτέλεσµα αύξηση της ακρίβειας, µείωση της υπολογιστικής ισχύος η οποία απαιτείται για την εξαγωγή της θέσης αλλά και ανάκαµψη από πιθανά σφάλµατα στα οποία µπορεί να υποπέσει το σύστηµα. Ευκολία χρήσης του συστήµατος o Η µετατροπή όλων των διαδικασιών που είναι απαραίτητες για την εξαγωγή της θέσης σε αυτόµατες λειτουργίες λειτουργεί σε όφελος της αφαιρετικότητας µιας και πλέον ο διαχειριστής του συστήµατος δεν 84 Σελίδα

85 είναι απαραίτητο να γνωρίζει σε βάθος τα επιµέρους στοιχεία που απαρτίζουν την εφαρµογή παρά µόνον την διεπαφή. 6.5 Υποσύστηµα εξαγωγής γράφου (Map Extractor) Το υποσύστηµα Εξαγωγής Γράφου έχει βασική ευθύνη για την ορθή λειτουργία του συστήµατος εντοπισµού χρήστη. Πιο συγκεκριµένα το υποσύστηµα αυτό λαµβάνει ως είσοδο τον χάρτη κάτοψη του κτηρίου στο οποίο θα στηθεί το σύστηµα εντοπισµού και εξάγει έναν γράφο ο οποίος αναπαριστά τα δυνατά σηµεία στα οποία θα µπορεί να βρίσκεται κάποιος µε βάση κάποια λογική δηλαδή ουσιαστικά το σύνολο των δυνατών σηµείων εντοπισµού - καθώς και τις δυνατές µεταβάσεις από σηµείο προς σηµείο. Ο γράφος που σχηµατίζεται είναι τελικά ένας συνεκτικός µη κατευθυνόµενος γράφος µε τα εξής χαρακτηριστικά: G = (V, E) Όπου V είναι το σύνολο των δυνατών σηµείων στα οποία µπορεί να βρίσκεται ο χρήστης κόµβοι του γράφου. Όπου E είναι το σύνολο των δυνατών µεταβάσεων µεταξύ γειτονικών σηµείων στα οποία µπορεί να βρίσκεται ο χρήστης πλευρές του γράφου. Ο γράφος που εξάγεται είναι ουσιαστικά µια αναπαράσταση -µε µορφή κατανοητή από το σύστηµα- του χώρου ενδιαφέροντος έτσι ώστε να είναι πλήρως εκµεταλλεύσιµες οι ιδιοµορφίες και ιδιαιτερότητες του χώρου αυτού. Έτσι το σύστηµα κάνοντας χρήση του γράφου µπορεί να εξάγει πιο αποτελεσµατικά τα συµπεράσµατα για την θέση του χρήστη αλλά και να ανακάµψει από εσφαλµένες ετυµηγορίες για την πληροφορία θέσης. Στο παρακάτω σχήµα παρουσιάζεται η κάτοψη του χώρου ενδιαφέροντος και δίπλα ο εξαγόµενος από το σύστηµα γράφος ο οποίος αναπαριστά το κτήριο. Σχήµα 6.2. Χάρτης -Κάτοψη Σχήµα 6.3. Εξαγόµενος Γράφος 85 Σελίδα

86 6.5.1 ιαδικασία εξαγωγής Γράφου Το λογισµικό εξόδου γράφου χρησιµοποιεί ως είσοδο την κάτοψη του κτηρίου. Για την εξαγωγή του γράφου κρίνεται απαραίτητο να περιγραφεί αναλυτικά η µορφή της κάτοψης η οποία λαµβάνεται ως είσοδος. Έτσι πιο συγκεκριµένα το υποσύστηµα εξαγωγής γράφου λαµβάνει από τον χάρτη πληροφορίες σχετικά µε: ιαχωριστές περιοχών (τοίχοι του κτηρίου) Σηµεία προσπέλασης µεταξύ των περιοχών (πόρτες του κτηρίου) Σηµεία εξοπλισµού - κεραιών πρόσβασης (WiFi Access Point) Σηµεία εξοπλισµού - υπολογιστή διορθωτή (Sniffer) Ο χάρτης της κάτοψης µετασχηµατίζεται τελικά σε ένα n x n πλέγµα στα κελιά του οποίου αναπαρίστανται ται οι παραπάνω πληροφορίες. Ισοδύναµα µεταφράζεται σε έναν δισδιάστατο πίνακα ο οποίος αναπαριστά στα κελιά του µε την τιµή 0 τον κενό χώρο, µε α έναν διαχωριστή περιοχής, µε β ένα σηµείο προσπέλασης µεταξύ µπλοκ, µε γ σηµείο κεραίας πρόσβασης και µε δ σηµείο υπολογιστή διορθωτή. Βασικοί περιορισµοί του εξαγωγέα, έτσι ώστε να εξάγονται ορθές υλοποιήσεις γράφων είναι στην κάτοψη είσοδος να περιλαµβάνονται κλειστές διαδροµές διαχωριστών περιοχών και τα σηµεία προσπέλασης µεταξύ των περιοχών να βρίσκονται πάνω στους διαχωριστές περιοχών και όχι έξω από αυτούς. Οι περιορισµοί αναπαρίστανται στο παρακάτω σχήµα: Ορθή Χρήση Οι διαχωριστές περιοχών δηµιουργούν κλειστή διαδροµή και κατ επέκταση κλειστή περιοχή Μη Ορθή Χρήση Οι διαχωριστές περιοχών δεν δηµιουργούν κλειστή διαδροµή και κατ επέκταση κλειστή περιοχή Σχήµα 3 Περιορισµοί Ορθή Χρήση Το σηµείο προσπέλασης βρίσκεται πάνω στους διαχωριστές περιοχών Μη Ορθή Χρήση Το σηµείο προσπέλασης βρίσκεται εκτός των διαχωριστών περιοχών n x n πλέγµα Σχήµα 6.4 Με µαύρο χρώµα στην κάτοψη αναπαρίστανται οι διαχωριστές περιοχών ενώ µε πράσινο αναπαρίστανται τα σηµεία προσπέλασης. 86 Σελίδα

87 Οι περιορισµοί αυτοί δηµιουργούνται έτσι ώστε να διευκολύνουν την εξαγωγή του γράφου από το σύστηµα. Αλγόριθµος εξαγωγής κορυφών εδοµένων των βασικών περιορισµών, ο αλγόριθµος έχοντας ως είσοδο τον δισδιάστατο πίνακα (ο οποίος αποτελεί ακριβή αναπαράσταση της κάτοψης) περνά στην επεξεργασία του η οποία αποτελείται από τα εξής βήµατα: 1. Εντοπίζει τις κλειστές διαδροµές των διαχωριστών περιοχών - µπλοκ περιοχής 2. Εντοπίζει τα κέντρα των µπλοκ περιοχής 3. Τοποθετεί τα κέντρα στο σύνολο V του Γράφου 4. Τοποθετεί τα σηµεία προσπέλασης που ανήκουν στα σύνορα του µπλοκ περιοχής στο σύνολο V του γράφου Αναλυτική περιγραφή εντοπισµού κορυφών Ο εντοπισµός των κλειστών διαδροµών είναι µια διαδικασία η οποία εκτελείται πάνω στον χάρτη. Όπως έχει αναφερθεί η κάτοψη προγραµµατιστικά αναπαρίσταται από µια δοµή πίνακα ο οποίος αναπαριστά µε την σειρά του το n x n πλέγµα. Ο πίνακας αριθµείται από αριστερά προς τα δεξιά και από πάνω προς τα κάτω. Στην συγκεκριµένη υλοποίηση είναι διαστάσεων 40 x 40. Έτσι σχηµατίζονται 1600 κελιά στον χάρτη. Έτσι σε περίπτωση που υπάρχει διαχωριστής περιοχής στην πάνω αριστερά γωνία της κάτοψης, ο πίνακας έστω map_array θα περιέχει στην θέση map_array[0][0] την τιµή α. Σε περίπτωση κενού χώρου τότε ο πίνακας θα περιέχει στην αντίστοιχη θέση την τιµή 0, την τιµή β για ένα σηµείο προσπέλασης µεταξύ µπλοκ, την τιµή γ για ένα σηµείο κεραίας πρόσβασης και την τιµή δ για ένα σηµείο υπολογιστή διορθωτή. Στον παρακάτω πίνακα παρουσιάζεται ο πίνακας map_array στον οποία αναπαρίσταται µια κλειστή περιοχή, ένα σηµείο προσπέλασης πάνω στα όρια της κλειστής περιοχής αλλά και ένα σηµείο εξοπλισµού στο κέντρο της κλειστής περιοχής. Πέρα από τις αριθµητικές τιµές γίνεται χρήση χρωµάτων έτσι ώστε να γίνει πιο εµφανής η κάτοψη µε την οποία ισοδυναµεί. 87 Σελίδα

88 Map_array[3][2] Map_array[7][1] Map_array[0][0] α α α α α α α α α α α α α α α 1 α β α 2 α 0 0 γ α α 3 α α α 4 α α α α α α α β α 5 α α α α α β α α α α α α α α α α α α α 0 0 δ 0 α α α α α α α α α map_array Πίνακας 6.1 Η µέτρηση του map_array ξεκινά από πάνω αριστερά και κινείται πρώτα οριζόντια προς τα δεξιά και µετά κάθετα προς τα κάτω. Το τελευταίο στοιχείο του πίνακα είναι το κάτω δεξιά. Ενδεικτικά αναφέρονται διάφορα σηµεία πάνω στον πίνακα Εντοπισµός µπλοκ περιοχών Για τον εντοπισµό των µπλοκ περιοχών σε πρώτη φάση ο αλγόριθµος αναζητά άνω αριστερές γωνίες οι οποίες είναι πιθανές κλειστές περιοχές. Έτσι σαρώνοντας τον πίνακα από την αρχή προς το τέλος για κάθε x,y αναζητά τιµές του x και y για τις οποίες: (x,y) = {map_array[x][y] ==α AND map_array[x+1][y]==α AND map_array[x][y+1]==α } Έτσι στον παραπάνω πίνακα το σηµείο (0,0) αποτελεί ένδειξη κλειστής περιοχής όπως ορίστηκε προηγούµενα όπως επίσης και τα σηµεία (7,0),(0,7),(5,7),(7,4). Επόµενο βήµα είναι η ένδειξη για κλειστή περιοχή να γίνει βεβαιότητα. Αυτό υλοποιείται ακολουθώντας τα όρια της περιοχής ξεκινώντας από τα σηµεία που βρέθηκαν στο προηγούµενο βήµα. Έτσι ξεκινώντας πχ από το σηµείο (0,0) και κινούµενος δεξιόστροφα ο αλγόριθµος ακολουθεί ελάχιστο συνεχές µονοπάτι από τιµές για τις οποίες ισχύει map_array[x ][y ]==α ή 88 Σελίδα

89 map_array[x ][y ]==β. Εάν το µονοπάτι αυτό καταλήξει στο κελί του πίνακα από το οποίο ξεκίνησε τότε πρόκειται για µία κλειστή διαδροµή και άρα για κλειστή περιοχή Εντοπισµός κέντρων κλειστής περιοχής εδοµένου ότι πλέον έχουν αναγνωριστεί οι κλειστές περιοχές επιτελείται ο προσδιορισµός του κέντρου /κέντρων της κλειστής περιοχής τα οποία θα είναι και κόµβοι του γράφου. Εάν οι πλευρές της κλειστής περιοχής είναι περίπου ίσες τότε προσδιορίζεται ένα µοναδικό κέντρο. Στην περίπτωση όπου οι πλευρές είναι άνισες τότε προσδιορίζονται τόσα κέντρα όσες ακέραιες φορές είναι µεγαλύτερη η µία από την άλλη. Τα κέντρα αυτά αποκτούν συντεταγµένες τέτοιες ώστε να αναπαραστήσουν αποδοτικότερα την ιδιοµορφία της κλειστής περιοχής (Σχήµα 6.5). Κέντρο τετράγωνης κλειστής περιοχής α α α α α α α α α α α β α α α α α α α α α α α α α α α α α α α α α α α α α α α α α α α α α α α α ο κέντρο µακρόστενης περιοχής 2 ο κέντρο µακρόστενης περιοχής Σχήµα 6.5 Παράδειγµα προσδιορισµού κέντρων δύο διαφορετικών κλειστών περιοχών 89 Σελίδα

90 6.5.5 Τοποθέτηση των κέντρων και των σηµείων προσπέλαση στο σύνολο V του γράφου Τελικό βήµα αποτελεί η συγκέντρωση όλων των σηµείων τα οποία προσδιορίστηκαν στα προηγούµενα στάδια. Έτσι πλέον το σύστηµα έχει υπολογίσει τις συντεταγµένες κέντρων για κάθε κλειστή περιοχή. Στο σύνολο των κέντρων των κλειστών περιοχών προσθέτονται και τα σηµεία προσπέλασης των οποίων οι συντεταγµένες προσδιορίζονται απευθείας από το map_array. Πρόκειται για τα κελιά µε τιµή β. Πλέον έχει υλοποιηθεί το πρώτο σκέλος του αλγορίθµου δηλαδή έχει κατασκευαστεί το σύνολο V του Γράφου. Στο επόµενο σκέλος θα πρέπει να συµπληρωθεί το σύνολο E το οποίο περιλαµβάνει τις ακµές µεταξύ των κόµβων Εξαγωγή ακµών γράφου Βασικό δοµικό στοιχείο για την κατασκευή των ακµών του γράφου είναι το µπλοκ περιοχής. Μέσα σε κάθε µπλοκ περιοχής βρίσκονται σηµεία του γράφου. Αρχικά γίνονται όλες οι δυνατές συνδέσεις µεταξύ των σηµείων που περιλαµβάνονται σε ένα µπλοκ περιοχής. Έτσι αν τα σηµεία του γράφου σε ένα µπλοκ περιοχής είναι n τότε οι ακµές που σχηµατίζονται είναι n(n-1)/2.η κάθε ακµή αναπαριστά δυνατότητα µετάβασης. Έτσι οι ακµές αυτές αναπαριστούν την δυνατότητα κάποιου ο οποίος βρίσκεται µέσα στο µπλοκ περιοχής να κινηθεί σε οποιοδήποτε σηµείο βρίσκεται µέσα στο µπλοκ περιοχής µιας και δεν υπάρχει διαχωριστής περιοχής ο οποίος να αποτελεί εµπόδιο. Έτσι εσωτερικά σε κάθε µπλοκ περιοχής σχηµατίζεται ένας πλήρης υπογράφος (Βήµατα 1,2,3) ο οποίος µέσω των σηµείων προσπέλασης ενώνεται µε τους υπογράφους των µπλοκ περιοχής µε τους οποίους γειτνιάζει το µπλοκ περιοχής στο οποίο περιλαµβάνεται. Πιο τυπικά, Αν G={V,E} ο γράφος τότε G=G 1 G 2 ένωση G 3.G n όπου n ο αριθµός των πλήρων υπογράφων (πλήθος µπλοκ περιοχής) και G x ο κάθε υπογράφος για x=1..n. Για τα G 1,G 2,G 3 G n ισχύει ότι Ε 1 τοµή Ε 2 τοµή Ε 3 τοµή. τοµή Ε n= κενό µιας και τα µόνα κοινά σηµεία µεταξύ υπογράφων µπορούν να είναι το κενό σύνολο κορυφών (για υπογράφους οι οποίοι ανήκουν σε µπλοκ περιοχής τα οποία δεν γειτνιάζουν) ή υποσύνολο του συνόλου κορυφών (για υπογράφους οι οποίοι ανήκουν ες µπλοκ περιοχής τα οποία γειτνιάζουν) που ανήκουν στην κατηγορία σηµεία προσπέλασης. 90 Σελίδα

91 Για κάθε υπογράφο G x={v x,e x} ισχύει ότι V x=v κ ένωση V π όπου V κ τα κέντρα του µπλοκ περιοχής και V π τα σηµεία προσπέλασης που ανήκουν στο συγκεκριµένο µπλοκ περιοχής. Αντίστοιχα για τις ακµές ισχύει ότι E x=e κπ ένωση Ε κκ ένωση Ε ππ όπου Ε κπ οι ακµές που ενώνουν κέντρα µπλοκ περιοχής µε σηµεία προσπέλασης του ίδιου µπλοκ περιοχής, Ε κκ οι ακµές που ενώνουν κέντρα µπλοκ περιοχής µε κέντρα του ίδιου µπλοκ περιοχής και Ε ππ οι ακµές που ενώνουν σηµεία προσπέλασης µε σηµεία προσπέλασης του ίδιου µπλοκ περιοχής. Παρόλα αυτά σε κάθε υπογράφο κάποιες ακµές αποτελούν πλεόνασµα µιας και θα µπορούσαν να αναπαρασταθούν από άλλες πιο βασικές. Οι πλεονάζουσες αυτές ακµές αναπαριστούν θεωρητικά την δυνατότητα µετάβασης µεταξύ των σηµείων που ενώνουν αλλά πρακτικά η µετάβαση από την αρχή της ακµής στο τέλος της µονοµιάς θα ήταν αδύνατη. Ο λόγος για τον οποίο αυτές οι συνδέσεις είναι αδύνατες είναι λόγω του γεγονότος ότι µεταξύ των κόµβων που ενώνουν οι ακµές αυτές βρίσκονται άλλοι κόµβοι οι οποίοι θα πρέπει να διαπεραστούν για να ολοκληρωθεί η µετάβαση. Έτσι οι ακµές αυτές διαγράφονται. Η ακµή διαγράφεται εάν στο τρίγωνο που σχηµατίζεται µεταξύ των κόµβων που ενώνει η ακµή και του ενδιάµεσου σηµείου (ή σηµείων) η απέναντι γωνία από την ακµή είναι µεγαλύτερη κάποιας συγκεκριµένης τιµή. Η τιµή αυτή έχει επιλεγεί ως η γωνία 120 µοιρών. Η γωνία αυτή προσδιορίζει την απόσταση του απέναντι σηµείου από την ακµή υπό εξέταση µε την ακµή αυτή. Όσο µεγαλύτερη η γωνία τόσο µικρότερη η απόσταση του σηµείου από την ακµή. Στην περίπτωση µεγάλης γωνίας η µετάβαση από το ένα άκρο της ακµής στο άλλο έχει µεγαλύτερο νόηµα ως µετάβαση µε χρήση του ενδιάµεσου σηµείου (απέναντι σηµείο της ακµής υπό εξέταση) παρά απευθείας. Στο επόµενο σχήµα παρουσιάζεται µια πλεονάζουσα ακµή. 91 Σελίδα

92 Α µπλοκ περιοχής Γωνία >120 ο Β µπλοκ περιοχής Πλεονάζουσες ακµές Οι ακµές αυτές θεωρούνται πλεονάζουσες και διαγράφονται. Κριτήριο για το αν µια ακµή είναι πλεονάζουσα είναι απέναντι της να βρίσκεται γωνία µεγαλύτερη από 120 µοίρες. Γωνία >120 ο Σχήµα 6.6 Παρουσίαση περίπτωσης πλεοναζουσών ακµών. Στο πρώτο σχήµα παρουσιάζεται ο χώρος ενδιαφέροντος και στο δεύτερο παρουσιάζεται ο ισοδύναµος γράφος µαζί µε τις πλεονάζουσες ακµές του δεύτερου µπλοκ περιοχής οι οποίες πρόκειται να διαγραφούν. Το εναποµένον σύνολο ακµών µετά την διαγραφή αποτελεί το σύνολο E των ακµών του γράφου. Αλγόριθµος Εξαγωγής Ακµών Για κάθε µπλοκ περιοχής 1. Σχηµάτισε όλες τις δυνατές ακµές µεταξύ σηµείων προσπέλασης που ανήκουν στο ίδιο µπλοκ 2. Σχηµάτισε όλες τις δυνατές ακµές µεταξύ των κέντρων που ανήκουν στο ίδιο µπλοκ 3. Σχηµάτισε όλες τις δυνατές ακµές µεταξύ των κέντρων και των σηµείων προσπέλασης που ανήκουν στο ίδιο µπλοκ. 4. Για κάθε τρίγωνο που σχηµατίζεται από τις ακµές µέσα στο µπλοκ περιοχής, υπολόγισε τις γωνίες του τριγώνου. Εάν κάποια γωνία είναι µεγαλύτερη από 120 µοίρες τότε διέγραψε την απέναντι πλευρά. Τελικά θα καταλήξουµε στο σύνολο E το οποίο ζητείται Αναλυτική περιγραφή εντοπισµού ακµών εδοµένων των στοιχείων που έχουν συγκεντρωθεί κατά το στάδιο εξαγωγής των κορυφών-κόµβων του γράφου η διαδικασία προσδιορισµού των ακµών 92 Σελίδα

93 επιτελείται επίσης ανά κλειστή περιοχή-µπλοκ περιοχής. Η δυνατότητα προσδιορισµού των ακµών ανά κλειστή περιοχή δίνεται λόγω της φύση του γράφου όπου το σύνολο των ακµών του κάθε υπογράφου είναι ξένο µε το σύνολο των ακµών κάθε άλλου υπογράφου. Ο γράφος αναπαρίσταται προγραµµατιστικά ως πίνακας συνδεδεµένων λιστών. Η προγραµµατιστική αναπαράσταση παρουσιάζεται στο επόµενο σχήµα. Κορυφές 1,4 2,6 7,5 2,6 1,4 7,5 1,4 4,4 3,4 4,4 7,5 3,4 7,5 6,7 6,7 3,4 Σχήµα 6.7 Οι κορυφές του γράφου αναπαρίστανται στην πρώτη στήλη του πίνακα λιστών. Σε κάθε γραµµή υπάρχει και από µια λίστα η οποία προσδιορίζει µε ποιες κορυφές συνδέεται το πρώτο στοιχείο της γραµµής. Έτσι η κορυφή 1,4 συνδέεται µε τις 2,6 και 7, Σχηµατισµός όλων των δυνατών ακµών ανά µπλοκ Σε πρώτη φάση σχηµατίζεται ανά κλειστή περιοχή από ένας πίνακας λιστών. Η κάθε γραµµή του πίνακα αναπαριστάνει και µια λίστα. Το πρώτο στοιχείο τα γραµµής προσδιορίζει την κορυφή για την οποία θα εξεταστεί η σύνδεση της µε τις υπόλοιπες κορυφές του υπογράφου της κλειστής περιοχής. Έτσι αρχικά ο πίνακας λιστών συµπληρώνεται µε τόσες λίστες (και κατ επέκταση µε τόσες γραµµές) όσες και οι κορυφές του γράφου. Έτσι τοποθετούνται ανά γραµµή (ή αλλιώς ανά κορυφή) από µια λίστα. Οι κορυφές που τοποθετούνται ανήκουν στο σύνολο Vκ και Vπ. Το δεύτερο βήµα περιλαµβάνει την εγκατάσταση όλων των δυνατών συνδέσεων µεταξύ των διαφορετικών κορυφών. Όπως έχει αναφερθεί αυτό το στάδιο αυτό έχει σαν αποτέλεσµα την δηµιουργία ενός πλήρους υπογράφου. Στο επόµενο σχήµα προσδιορίζεται η µορφή του πίνακα λιστών για το στάδιο του σχηµατισµού του πλήρους υπογράφου. Στο παράδειγµα αυτό οι κορυφές είναι πέντε και παρουσιάζονται στην πρώτη στήλη. 93 Σελίδα

94 Κορυφές 1,4 2,6 7,5 4,4 3,4 2,6 1,4 7,5 4,4 3,4 7,5 1,4 2,6 4,4 3,4 4,4 1,4 2,6 7,5 3,4 3,4 1,4 2,6 7,5 4,4 Σχήµα 6.8 Οι κορυφές του γράφου αναπαρίστανται στην πρώτη στήλη του πίνακα λιστών. Σε κάθε γραµµή υπάρχει και από µια λίστα η οποία προσδιορίζει µε ποιες κορυφές συνδέεται το πρώτο στοιχείο της γραµµής. Στο στάδιο αυτό του αλγορίθµου όλες οι κορυφές συνδέονται µεταξύ τους ιαδικασία κλαδέµατος ακµών Το επόµενο βήµα του αλγορίθµου είναι το κλάδεµα των πλεοναζουσών ακµών. Για την επιτέλεση αυτού του βήµατος χρησιµοποιείται η δοµή πίνακα λιστών των προηγούµενων βηµάτων. Ο αλγόριθµος σαρώνει τον πίνακα προς τα κάτω. Χρησιµοποιώντας την κορυφή της πρώτης στήλης την κύρια κορυφή - ως σταθερή κορυφή ο αλγόριθµος δηµιουργεί όλους τους διαφορετικούς συνδυασµούς τριγώνων που σχηµατίζονται µε κορυφές, την κορυφή της πρώτης στήλης και όλους τους διαφορετικούς συνδυασµούς κορυφών από το σύνολο κορυφών που υπάρχουν στην λίστα της κύριας κορυφής. Η διαδικασία αυτή έχει ως αποτέλεσµα τον σχηµατισµό όλων των τριγώνων τα οποία περιέχουν την κύρια κορυφή ως κορυφή τους. Επιλέγονται όλοι οι πιθανοί συνδυασµοί 2 διαφορετικών κορυφών από την λίστα της πρώτης κορυφής. Για κάθε δυνατό συνδυασµό η κύρια κορυφή µαζί µε τις 2 που έχουν επιλεγεί σχηµατίζουν ένα τρίγωνο. Σκοπός του αλγόριθµου είναι να εξετάσει αν οι ακµές οι οποίες σχηµατίζονται από την κύρια κορυφή και την κάθε µία κορυφή από τις 2 κορυφές που επιλέχθησαν είναι πλεονάζουσες. Για να γίνει αυτό ο αλγόριθµος στο κάθε τρίγωνο που σχηµατίζεται εφαρµόζει νόµο συνηµίτονων µε σκοπό να εντοπίσει την γωνία η οποία βρίσκεται απέναντι από την κάθε µία από τις δύο ακµές. Στα τρίγωνα που σχηµατίζονται µπορεί να εφαρµοστεί ο νόµος των συνηµίτονων έτσι ώστε να υπολογιστούν οι γωνίες οι οποίες είναι µεγαλύτερες από 120 µοίρες. Σε περίπτωση που η γωνία βρεθεί µεγαλύτερη από 120 µοίρες τότε η κορυφή η οποία πρόσκειται στην ακµή εξάγεται από την λίστα και κατ επέκταση κλαδεύεται η ακµή αυτή. Στο παρακάτω σχήµα παρουσιάζεται η διαδικασία. 94 Σελίδα

95 α β γ δ Σχήµα 6.9 Παράδειγµα εφαρµογής αλγορίθµου κλαδέµατος πλεονάζουσων ακµών. (Ρόζ: Κορυφή α, Κόκκινο: Κορυφή β, Μωβ: Κορυφή γ, Θαλασσί: Κορυφή δ ) Στο α παρουσιάζεται ο πλήρης υπογράφος της κλειστής περιοχής και στα σχήµατα β,γ,δ στιγµιότυπα κλαδέµατος πλεοναζουσων ακµών. Στο σχήµα 7 παρουσιάζεται η διαδικασία κλαδέµατος. Ο αλγόριθµος ξεκινάει µε τον πλήρη υπογράφο που παρουσιάζεται στο σχήµα 7.α. Θα εξεταστεί το κλάδεµα των πλεοναζουσών ακµών που αντιστοιχούν στην κορυφή β. Οι ακµές προς εξέταση επιλέγονται ανά δύο. Έτσι από τις 3 κορυφές που σχηµατίζουν τις 2 ακµές (µιας και η κύρια κορυφη- εδώ η κορυφή β-παραµένει σταθερή) σχηµατίζεται ένα τρίγωνο. Στην περίπτωση του σχήµατος 7.β επιλέγονται οι ακµές βα και βγ. Σχηµατίζεται το τρίγωνο ΑΒΓ. Στο τρίγωνο αυτό που σχηµατίζεται εφαρµόζεται ο νόµος συνηµίτονων για να εντοπιστούν οι γωνίες οι οποίες είναι απέναντι από τις ακµές αυτές. Έτσι στην περίπτωση όπου η απέναντι γωνία για την υπό εξέταση ακµή είναι µεγαλύτερη από 120 µοίρες η κορυφή η οποία µαζί µε την κύρια κορυφή σχηµατίζει την ακµή διαγράφεται από την λίστα ακµών της κύριας ακµής. Η ίδια διαδικασία εφαρµόζεται για όλους τους δυνατούς συνδυασµούς ακµών µε την ίδια κύρια κορυφή Συγχώνευση του συνόλου των διαφορετικών λιστών Η εκτέλεση του αλγορίθµου εξαγωγής ακµών έχει ως αποτέλεσµα την εξαγωγή από έναν πίνακα λιστών για κάθε υπογράφο. Τελικό στάδιο για την 95 Σελίδα

96 διαδικασία εξαγωγής ακµών είναι η συγχώνευση όλων αυτών των πινάκων λιστών σε έναν µοναδικό πίνακα λιστών ο οποίος αναπαριστά το σύνολο των ακµών του γράφου. Έτσι ξεκινώντας από κάποιον από τους υπογράφους τους οποίους έχουµε υπολογίσει συγχωνεύουµε τα στοιχεία του µε όλους τους υπόλοιπους προσθέτοντας τις επιπλέον ακµές στο τέλος του πρώτου υπογράφου. Τελικά θα έχει σχηµατιστεί ένας πίνακας λιστών ο οποίος θα έχει πλήθος λιστών το άθροισµα των λιστών όλων των υπογράφων. Στον πίνακα λιστών αυτόν σε κάθε γραµµή θα υπάρχει στο πρώτο στοιχείο κάποια κορυφή και στα υπόλοιπα στοιχεία οι κορυφές οι οποίες συνδέονται µε ακµή µε αυτή την κορυφή. Τελικό βήµα αποτελεί την διαγραφή διπλών τιµών από την συγχώνευση. Οι διπλές τιµές εµφανίζονται για τις κοινές κορυφές των υπογράφων. Οι κορυφές αυτές είναι κορυφές οι οποίες αναπαριστούν σηµεία προσπέλασης τα οποία ανήκουν στο σύνολο κορυφών των γειτονικών υπογράφων. Ο αλγόριθµος είναι κατηγορίας διαίρει και βασίλευε µιας και αρχικά σπάει το πρόβληµα σε κ ανεξάρτητα τµήµατα -όπου κ ο αριθµός των υπογράφων-, επιλύει το κάθε υποπρόβληµα και τελικά τα συνενώνει για να εξάγει την τελική λύση Περιγραφή χρήσης υποσυστήµατος εξαγωγής γράφου Το υποσύστηµα εξαγωγής γράφου είναι γραµµένο σε κώδικα java. Μέσω του υποσυστήµατος εξάγονται βασικά µεταδεδοµένα τα οποία χρησιµοποιούνται από τα υπόλοιπα υποσυστήµατα της εφαρµογής. Παράλληλα αρχικοποιείται η βάση δεδοµένων η οποία χρησιµοποιείται από το σύστηµα εξόρυξης γνώσης. Σχήµα Ο διαχειριστής επιλέγει για το αν θέλει να εισάγει τα δεδοµένα ενός νέου χάρτη, να διαγράψει έναν υπάρχοντα χάρτη η να τον επεξεργαστεί. 96 Σελίδα

97 Για την σύνδεση του γενικότερου java κώδικα του εξαγωγέα µε την βάση δεδοµένων mysql γίνεται η χρήση της βιβλιοθήκης mysql-connector-java bin[43].Στα επόµενα σχήµατα παρουσιάζεται η διεπαφή του υποσυστήµατος εξαγωγής γράφου. Σχήµα Στο συγκεκριµένο περιβάλλον δίνεται η δυνατότητα στον διαχειριστή να προσδιορίσει την περιοχή ενδιαφέροντος αλλά και τα σηµεία στα οποία βρίσκονται τα σηµεία πρόσβασης και ο υπολογιστής διορθωτής. Εφόσον η είσοδος έχει ολοκληρωθεί ο διαχειριστής µπορεί να επιλέξει την εξαγωγή του γράφου, την εξαγωγή των µεταδεδοµένων των σηµείων πρόσβασης και του υπολογιστή διορθωτή, της εικόνας του χάρτη για χρήση της από τον Client αλλά και την αρχικοποίηση της βάσης δεδοµένων για την εφαρµογή της εξόρυξης γνώσης 6.6 Κεντρικό Σύστηµα εντοπισµού (Server) Το σύστηµα του Server υλοποιείται σε java και τρέχει σε υπολογιστικό σύστηµα Windows 7. Στο σύστηµα αυτό εκτελούνται παράλληλα ένας ftp server (µέσω του οποίου γίνεται η µεταφορά πληροφορίας µεταξύ Client και Server) και το mysql module (το οποίο αποτελεί την βάση δεδοµένων του συστήµατος). Το κεντρικό σύστηµα εντοπισµού αποτελεί την λογική για την επικοινωνία µε τον Client, την διαδικασία εξαγωγής θέσης αλλά και την επικοινωνία µε τον Sniffer. Ο αλγόριθµος ακούει επαναληπτικά σε ένα socket για πιθανούς χρήστες (Clients). Σε 97 Σελίδα

98 περίπτωση που βρεθεί κάποιος χρήστης (Client) τότε συνδέεται µε αυτόν και εξυπηρετείται από ένα νέο νήµα έτσι ώστε να µπορεί το σύστηµα να εξυπηρετήσει ταυτόχρονα και άλλους χρήστες. Παράλληλα µε το socket για την διαδικασία επικοινωνίας µε τον πελάτη ο αλγόριθµος ορίζει επίσης ένα socket σε ένα επιπλέον παράλληλο νήµα µε την βασική διεργασία. Το socket αυτό ορίζεται για την επικοινωνία µε τον Sniffer και την λήψη δεδοµένων από αυτόν. Το δευτερεύον αυτό νήµα εκτελείται σε ατέρµονα βρόγχο και η εργασία την οποία επιτελεί είναι το να ακούει στο socket για νέες συνδέσεις από τον Sniffer και να τις εξυπηρετεί η αντίστοιχη λογική για βελτίωση της ακρίβειας. Το πώς επιτελείται η διαδικασία αυτή παρουσιάζεται σε επόµενο εδάφιο Επικοινωνία Server-Client Εφόσον κάποιος νέος πελάτης συνδεθεί µε τον Server δηµιουργείται το νήµα εξυπηρέτησης για τον πελάτη αυτόν και η βασική διεργασία παραµένει στο socket για νέους πελάτες. Όσον αφορά το νήµα που εξυπηρετεί τον πελάτη, µέσω του socket στέλνεται η επιλογή του χρήστη για την διαδικασία την οποία θέλει να φέρει εις πέρας. Ο χρήστης έχει δύο δυνατότητες. 1. Επιλογή Fingerprint 2. Επιλογή Localization Σχήµα 6.12 Συνδεσµολογία συστήµατος 98 Σελίδα

99 Αναλόγως της επιλογής του χρήστη, το σύστηµα τον εξυπηρετεί διαφορετικά. Η επιλογή του fingerprint αφορά την διαδικασία offline κατά την οποία το σύστηµα σχηµατίζει τον χάρτη αντιστοίχησης σηµάτων µε περιοχές για χρήση των στην διαδικασία localization. Αποτελεί διαχειριστικό εργαλείο που χρησιµοποιείται για το στήσιµο του συστήµατος. Στα πλαίσια της εργασίας αυτής δόθηκε αυτή η δυνατότητα στον πελάτη για λόγους καθαρά αποσφαλµάτωσης. Η διαδικασία του localization είναι η διαδικασία η οποία έχει περιγραφεί ήδη πιο πριν και αφορά τον εντοπισµό της πορείας του χρήστη και την αποστολή πίσω στον χρήστη στοχευόµενων διαφηµιστικών µηνυµάτων βάσει των αγοραστικών συνηθειών του. Επιπρόσθετα µε την επιλογή του χρήστη στέλνονται και οι στάθµες των σηµάτων που λαµβάνει η συσκευή του από τα σηµεία πρόσβασης πίσω στον Server. Στην περίπτωση όπου επιτελείται fingerprint στέλνεται µια ακόµη πληροφορία, αυτή της θέσης για την οποία γίνεται το fingerprint. Στην περίπτωση του fingerprint το σύστηµα αποθηκεύει τα δεδοµένα σήµατος που αντιστοιχούν στην θέση η οποία έγινε fingerprinted και το νήµα τερµατίζει. Τα δεδοµένα αποθηκεύονται µε µορφή αρχείων κειµένου. Η µορφή των αρχείων κειµένου είναι η εξής: 00:05:59:30:77: :1f:33:b7:57:e :1e:2a:f6:ee: Σχήµα 6.13 Αρχείο κειµένου Στο αρχείο αυτό αναγράφονται ανά γραµµή τα λαµβανόµενα σήµατα ανά σηµείο πρόσβασης. Έτσι στην πρώτη γραµµή αναφέρεται ότι λήφθηκε σήµα έντασης -68 dbm από το σηµείο πρόσβασης µε MAC διεύθυνση 00:05:59:30:77:96. Η τρίτη στήλη αναγράφει το κανάλι στο οποίο εκπέµπει το συγκεκριµένο σηµείο πρόσβασης. Τα δεδοµένα των συγκεκριµένων αρχείων χρησιµοποιούνται έπειτα για την διαδικασία localization όπου τα δεδοµένα που περιέχουν διαβάζονται από το σύστηµα έτσι ώστε να χρησιµοποιηθούν στον αλγόριθµο particle filtering. Σε περίπτωση που επιλεχθεί fingerprint για κάποια θέση όπου έχει γίνει ήδη fingerprint τα προηγούµενα δεδοµένα σήµατος αντικαθίστανται από τα νέα. Αξίζει εδώ να σηµειωθεί ότι fingerprint γίνεται στις κορυφές-κόµβους που έχουν εξαχθεί από το σύστηµα εξαγωγέα γράφου. 99 Σελίδα

100 Στην περίπτωση του localization ο αλγόριθµος λαµβάνει ξανά τα δεδοµένα σήµατος από τον πελάτη όπως και στην διαδικασία fingerprint. Παρόλα αυτά στην περίπτωση του localization γίνεται κλήση στην διαδικασία particle filtering η οποία εξάγει την εκτίµηση της θέσης του χρήστη. Η διαδικασία του particle filtering επιστρέφει την εκτίµηση της θέσης. Η εκτίµηση αυτή αποστέλλεται στον Client ενώ παράλληλα γίνονται οι κατάλληλες διαδικασίες από την πλευρά της εξόρυξης γνώσης. Η διαδικασία του particle filtering περιγράφεται παρακάτω όπως και οι διαδικασίες για την εξόρυξη γνώσης. Αξίζει να σηµειωθεί ότι η αποστολή των δεδοµένων σήµατος από τον Client προς τον Server δεν γίνεται µέσω των socket. Τα sockets χρησιµοποιούνται γενικά για τον έλεγχο της διαδικασίας. Έτσι είτε στην περίπτωση fingerprint είτε στην localization ο Client δηµιουργεί τα αρχεία κειµένου και αποθηκεύει σε αυτά τα δεδοµένα σήµατος τοπικά στην συσκευή του χρήστη. Τα αρχεία δεδοµένων αυτά λαµβάνουν ένα όνοµα που αποτελείται από την MAC διεύθυνση της συσκευής του χρήστη και στοιχεία ηµεροµηνίας και ώρας όπου δηµιουργήθηκαν. Τα αρχεία αυτά αποστέλλονται στον Server µέσω ftp (File Transfer Protocol).Μέσω των socket ο Client ενηµερώνει τον Server σχετικά µε το όνοµα του αρχείου που έχει σταλεί µέσω ftp (έτσι ώστε ο Server να διαχειριστεί µε την σειρά του το σωστό έγκυρο αρχείο). Πιο συγκεκριµένα στην περίπτωση επιλογής της διαδικασίας fingerprint από τον Client στον Server αποστέλλεται µέσω του socket αλφαριθµητικό της µορφής "FP_CODE"+"##"+FileNameSentThroughFTP+"##"+PositionForFP και µέσω ftp στέλνεται στον Server το αρχείο δεδοµένων. Το παραπάνω αλφαριθµητικό περιγράφεται από τρία πεδία χωρισµένα µεταξύ τους µε την ακολουθία συµβόλων ##. Το πρώτο πεδίο περιγράφει την διαδικασία την οποία επέλεξε ο χρήστης. Στην περίπτωσή µας αυτή είναι η fingerprint (FP_CODE-εκ της λέξης FingerPrint). Στην περίπτωση όπου ο χρήστης επέλεγε localization το πρώτο πεδίο θα περιείχε το αλφαριθµητικό (FL_CODE-εκ των αρχικών του Find Location). Το δεύτερο πεδίο προσδιορίζει το όνοµα του αρχείου το οποίο εστάλη στον Server µέσω ftp. Το αρχείο αυτό αναφέρθηκε και προηγουµένως και είναι της µορφής «MAC του πελάτη, Ηµεροµηνία, Ώρα». Το πεδίο αυτό είναι κοινό και για τις δύο διαδικασίες (Fingerprint και Localization). Στην περίπτωση του localization το πεδίο αυτό προσδιορίζει το αρχείο στο οποίο βρίσκονται αποθηκευµένα τα δεδοµένα σήµατος έτσι ώστε ο Server να γνωρίζει που είναι για να προχωρήσει στην διαδικασία εντοπισµού θέσης. Το τρίτο πεδίο προσδιορίζει την 100 Σελίδα

101 θέση (κορυφή-κόµβο του γράφου) για την οποία γίνεται το fingerprint. Το πεδίο αυτό χρησιµοποιείται µόνο για την διαδικασία του fingerprint. Στην περίπτωση του localization το πεδίο αυτό είναι κενό. Οι θέσεις έχουν ονόµατα χαρακτήρων του λατινικού αλφαβήτου και προσδιορίζονται από το προπαρασκευαστικό βήµα της εξαγωγής γράφου µαζί µε τις συντεταγµένες τους. Στο παρακάτω σχήµα περιγράφεται η λογική για κάθε περίπτωση επιλογής του χρήστη Σχήµα 6.14 ιαδικασίες fingerprint και Localization Στην περίπτωση του localization τον νήµα τερµατίζει µε την αποστολή της εκτιµώµενης θέσης και του διαφηµιστικού µηνύµατος πίσω στον Client. Παρόλα αυτά από την πλευρά του Client η διαδικασία του localization σταµατά µόνο µε ρητή εντολή από τον χρήστη της συσκευής. Έτσι µετά από κάποιο χρονικό διάστηµα από την πλευρά του Client γίνεται αυτόµατα ξανά προσπάθεια localization για σύνδεση µε τον Server. Η διαδικασία εξυπηρετείται όπως και προηγουµένως και έτσι για κάθε επανάληψη δηµιουργείται και καταστρέφεται ένα νέο νήµα Η βάση δεδοµένων Η βάση δεδοµένων η οποία εξυπηρετεί το σύστηµα περιέχει πίνακες οι οποίοι χρησιµοποιούνται για την διαδικασία εξόρυξης γνώσης και επίσης εµπεριέχουν την πληροφορία των στοχευόµενων διαφηµιστικών µηνυµάτων (m-commerce) που στέλνονται από το σύστηµα. Η πίνακες της βάσης δεδοµένων αρχικοποιούνται από το σύστηµα εξαγωγής γράφου. Πιο συγκεκριµένα οι πίνακες που βρίσκονται στην βάση είναι οι εξής: 101 Σελίδα

102 Clientappear id mac date time nodea nodeb NodeZ Clientpath id mac date time path Sysconf confidence Support Sumclientappear id mac date time nodea nodeb NodeZ Instantmessage id date time message Messages Id zones message Sent Rules Zones Id rules Id zones namezone min_visits Πίνακας 6.2 Πίνακες της βάσης δεδοµένων του συστήµατος Πίνακας Clientappear Στον πίνακα αυτόν σε κάθε εµφάνιση του χρήστη σε κάποια περιοχή τοποθετείται µια νέα εγγραφή σχετικά µε το σε ποια θέση εντοπίστηκε ο χρήστης (nodea,nodeb,.,nodez) ποια είναι η mac του χρήστη η ηµεροµηνία και ώρα του εντοπισµού. Τα πεδία nodea,nodeb, nodez είναι Boolean, λαµβάνουν την τιµή 0 και 1 και είναι ουσιαστικά οι κορυφές του γράφου. To 1 αναπαριστά εντοπισµό και το 0 µη εντοπισµό στην θέση αυτή. Πίνακας Sysconf Στον πίνακα αυτόν αποθηκεύονται οι τιµές των δύο στατιστικών µεταβλητών confidence και support οι οποίες χρησιµοποιούνται αργότερα από το σύστηµα εξαγωγής κανόνων συσχέτισης µέσω της τεχνικής market basket analysis. Πίνακας Clientpath Στον πίνακα clientpath αποθηκεύονται τα µονοπάτια που ακολουθήθηκαν από τον πελάτη (ο οποίος διακρίνεται µέσω της mac διεύθυνσής του που 102 Σελίδα

103 αποθηκεύεται στο πεδίο mac του πίνακα) µε την µορφή ακολουθίας χαρακτήρων καθώς και το πότε πραγµατοποιήθηκε το µονοπάτι. Πίνακας Sumclientappear Η λογική είναι παρόµοια µε τον πίνακα clientappear µόνο που εδώ αποθηκεύονται συνολικές εµφανίσεις σε κάθε θέση. Ο πίνακας αυτός χρησιµοποιείται για την αποστολή των διαφηµιστικών µηνυµάτων στον πελάτη. Έτσι στα πεδία της µορφή node X αποθηκεύονται ακέραιοι οι οποίοι αναπαριστούν τον συνολικό αριθµό εµφανίσεων του πελάτη σε αυτή την θέση. Πίνακας Instantmessage Ο πίνακας αυτός χρησιµοποιείται για την αποθήκευση του άµεσου µηνύµατος. Το σύστηµα δίνει την επιπλέον δυνατότητα στον διαχειριστή του να αποστείλει άµεσο µήνυµα σε όλους του πελάτες του. Πίνακας Μessages Στον πίνακα αυτό αποθηκεύονται τα διαφηµιστικά µηνύµατα τα οποία θα αποστέλλονται στους πελάτες βάσει της επισκεψιµότητά τους σε διάφορες περιοχές. Το πεδίο zones της κάθε εγγραφής συσχετίζει το µήνυµα µε την περιοχή στην οποία αναφέρεται. Το πεδίο sent είναι ο ακέραιος ο οποίος εµφανίζει το πλήθος των συγκεκριµένων µηνυµάτων που έχουν αποσταλεί. Πίνακας Rules Στον πίνακα αυτό αποθηκεύονται ανά εγγραφή από ένας κανόνας συσχέτισης µε την µορφή αλφαριθµητικού. Πίνακας Zones Ο πίνακας αυτός συσχετίζει αλφαριθµητικά µε περιοχές. Χρησιµοποιείται κυρίως έτσι ώστε να δίδονται στις περιοχές του συστήµατος (κορυφές του γράφου) πραγµατικά ονόµατα. Το πεδίο min_visits προσδιορίζει τον ελάχιστο αριθµό των επισκέψεων που θα πρέπει κάποιος να έχει στην περιοχή που το πεδίο zones δηλώνει, έτσι ώστε να του σταλεί διαφηµιστικό µήνυµα. Σε κάθε διαδικασία εντοπισµού (επιστροφή από τον αλγόριθµο particle filtering) το σύστηµα ενηµερώνει την βάση δεδοµένων: 103 Σελίδα

104 Αρχικά εισάγει µια νέα εγγραφή µε τα τρέχοντα χρονικά και ηµερολογιακά στοιχεία στον πίνακα clientappear για την θέση στην οποία εντοπίστηκε καθώς και για ποιον πελάτη. Ελέγχει στον πίνακα sumclientappear αν υπάρχει εγγραφή για την συγκεκριµένη ηµέρα από τον ίδιο πελάτη. Αν υπάρχει τότε αυξάνει τον µετρητή εµφανίσεων της περιοχής στην οποία εµφανίστηκε. Αν δεν υπάρχει η εγγραφή δηµιουργεί µια νέα εγγραφή και την ενηµερώνει για την εµφάνιση του πελάτη στην συγκεκριµένη περιοχή. Αξίζει να σηµειωθεί εδώ ότι θεωρούνται ξεχωριστές συναλλαγές οι συναλλαγές όπου γίνονται διαφορετικές µέρες. Έτσι συναλλαγές οι οποίες γίνονται την ίδια µέρα θεωρούνται από το σύστηµα ως µία συναλλαγή. Προσθέτει την νέα θέση στην οποία εντοπίστηκε ο χρήστης, στο µονοπάτι του χρήστη clientpath. Αν δεν υπάρχει εγγραφή για τον χρήστη τότε δηµιουργεί ένα όπως περιγράφηκε πιο πάνω για τον sumclientappear. Ο πίνακας clientpath χρησιµοποιείται από το σύστηµα για την εξαγωγή των δεδοµένων τα οποία χρησιµοποιούνται ως είσοδος από τις τεχνικές εξόρυξης γνώσης. Η διαδικασία περιγράφεται σε επόµενο εδάφιο. Εφόσον το σύστηµα ενηµερώσει την βάση, κάνει τα κατάλληλα ερωτήµατα στην βάση δεδοµένων σχετικά µε τα πιθανά διαφηµιστικά µηνύµατα που θα πρέπει να στείλει στον Client. Έτσι: Αν πληρούνται οι προδιαγραφές για αποστολή µηνύµατος τότε επιστρέφεται το µήνυµα για αποστολή, διαφορετικά επιστρέφεται <κενό> για αποστολή. Η διαδικασία αυτή ελέγχει τον πίνακα sumclientappear για τις εµφανίσεις στις διάφορες περιοχές. Συγκρίνει τον αριθµό εµφανίσεων της περιοχής µε το πεδίο min_visits του πίνακα zones που αντιστοιχεί στην περιοχή αυτή. Αν το min_visits είναι µικρότερο τότε στέλνει το µήνυµα από τον πίνακα messages το οποίο αντιστοιχεί στην συγκεκριµένη περιοχή. Παράλληλα θέτει το πεδίο των επισκέψεων της περιοχής του sumclientappear στην τιµή 0. Ελέγχεται επίσης αν ο πίνακας instantmessage διαθέτει κάποιο άµεσο µήνυµα για αποστολή. Αν όχι αποστέλλεται το µήνυµα αν υπάρχει- από την προηγούµενη διαδικασία. Αν υπάρχει άµεσο µήνυµα τότε το µήνυµα αυτό 104 Σελίδα

105 υποσκελίζει το µήνυµα που αποφασίστηκε µέσω της χρήσης του πίνακα sumclientappear και αποστέλλεται το άµεσο. Για την σύνδεση του γενικότερου java κώδικα του Server µε την βάση δεδοµένων mysql γίνεται η χρήση της βιβλιοθήκης mysql-connector-java bin Υλοποίηση του Particle Filter Στην παρούσα ενότητα περιγράφεται η υλοποίηση του αλγορίθµου particle filtering ο οποίος χρησιµοποιείται στο σύστηµα εντοπισµού θέσης. Πρόκειται για τον αλγόριθµο ο οποίος αποφασίζει ή καλύτερα εκτιµά την θέση του χρήστη βάσει των δεδοµένων σήµατος των οποίων παραλαµβάνει από αυτόν. Όπως έχει ήδη αναφερθεί ο αλγόριθµος εκτελείται κατά την διαδικασία εντοπισµού σε ένα επιπλέον νήµα από ότι της βασικής διεργασίας έτσι ώστε το σύστηµα να µπορεί να εξυπηρετεί ταυτόχρονα πολλούς πελάτες. Η λογική του συστήµατος έτσι όπως έχει ήδη αναφερθεί από τα προηγούµενα κεφάλαια η επαναληπτική εκτέλεση δύο βασικών διαδικασιών. Πρόβλεψη και Ενηµέρωση. Για την εκτέλεση του κάθε βήµατος προσδιορίζεται από ένα µοντέλο, το µοντέλο κίνησης και το µοντέλο µετρήσεων αντίστοιχα. Τα µοντέλα αυτά αποτελούν τον πυρήνα της διαδικασίας. Τα δεδοµένα που έχει διαθέσιµα ο αλγόριθµος για να εκτελεστεί είναι τα δεδοµένα σήµατος από την διαδικασία του fingerprint (η οποία έχει ήδη εκτελεστεί σε offline χρόνο) καθώς και τα δεδοµένα των τρεχόντων σηµάτων τα οποία αποστέλλονται σε αυτόν µέσω της διαδικασίας του localization. Το µοντέλο κίνησης αναπαριστάται µε µια απλή οµοιόµορφα τυχαία µεταβλητή µεταβλητής διακύµανσης. Η διαισθητική αντίληψη της χρήσης της τυχαίας µεταβλητής είναι ότι η συσκευή (και κατ επέκταση ο χρήστης) µπορεί να επιτελέσει οποιαδήποτε κίνηση ο χρήστης θελήσει. Σε περίπτωση όπου υπάρχουν επιπλέον δεδοµένα σχετικά µε την κίνηση του χρήστη το µοντέλο κίνησης θα περιελάµβανε εξισώσεις κίνησης στις οποίες θα προστίθεντο και ο θόρυβος. Η περιγραφή για αυτή την περίπτωση βρίσκεται στο κεφάλαιο µελλοντική εργασία. εδοµένου ότι το µοντέλο κίνησης περιλαµβάνει µόνο την πρόσθεση της τυχαίας µεταβλητής δεν προστίθεται θόρυβος µιας και θεωρείται ότι περιλαµβάνεται στην τυχαία µεταβλητή. Όσον αφορά το προσδιορισµό του µοντέλου µετρήσεων γίνεται χρήση των δεδοµένων σήµατος τα οποία συγκεντρώθηκαν κατά την διαδικασία του fingerprint. ιαισθητικά το µοντέλο µετρήσεων θα πρέπει να συσχετίζει θέσεις µε µετρήσεις. Πιο 105 Σελίδα

106 τυπικά µε χρήση του µοντέλου µετρήσεων θα πρέπει να προσδιορίζεται η πιθανότητα να ληφθούν οι τρέχουσες µετρήσεις από τις διάφορες θέσεις. Για την υλοποίηση γίνεται χρήση πολλαπλών Gaussian συναρτήσεων οι οποίες επενεργούν πάνω στα δεδοµένα σήµατος. Έτσι για την κάθε διαφορετική περιοχή περιγράφεται και από µια Gaussian συνάρτηση. Οι συναρτήσεις αυτές επενεργούν πάνω στα δεδοµένα σήµατος για κάθε θέση και εξάγουν την πιθανότητα η τρέχουσα µέτρηση να λαµβάνεται από την συγκεκριµένη θέση. Έτσι σε κάθε θέση-κόµβο (οι θέσεις εξάγονται από το σύστηµα εξαγωγής γράφου) ορίζεται και από µια Gaussian. Η Gaussian η οποία ορίζεται είναι τόσων διαστάσεων όσα είναι τα διαφορετικά σηµεία πρόσβασης. Έτσι στην περίπτωση της παρούσας εργασίας όπου γίνεται χρήση τριών σηµείων πρόσβασης η Gaussian είναι τρισδιάστατη. Σε κάθε θέση προσδιορίζεται η εξής συνάρτηση: x x0 y y0 z z0 ( + + ) σ 2σ 2σ x y z f ( x, y, z) = Ae Όπου τα x 0,y 0,z 0 προσδιορίζονται από τις στάθµες των σηµάτων που ελήφθησαν κατά την διαδικασία fingerprint για το κάθε σηµείο πρόσβασης. Αντίστοιχα οι τα σ χ2,σ y2,σ 2 z είναι οι τιµές διακύµανσης για την κάθε διάσταση. Ο συντελεστής Α δεν θα µας απασχολήσει στην µέθοδο µιας έχει σταθερή τιµή. Η τιµές των διακυµάνσεων έχουν επιλεχθεί να είναι σ χ2 =σ y2 =σ z2 =16. Η τιµή αυτή προσδιορίστηκε πειραµατικά. Από την θεωρία των Gaussian συναρτήσεων είναι γνωστό ότι στο παράδειγµα της µονοδιάστατης Gaussian το άθροισµα έξι τυπικών αποκλίσεων καλύπτει σχεδόν ολόκληρη την περιοχή όπου η συνάρτηση δεν λαµβάνει µηδενική τιµή. Έτσι έχοντας σ 2 =16 προκύπτει σ=4. Η τιµή του σ έχει την ίδια µονάδα µέτρησης µε τις τιµές των x,y,z δηλαδή dbm. Με βάση τα παραπάνω για περιοχή τριών σ γύρω από την µέση τιµή η συνάρτηση δεν θα λαµβάνει µηδενική τιµή. Στο παράδειγµα η εφαρµογής αυτό µεταφράζεται ως εξής. Αν τα δεδοµένα σήµατος που λαµβάνονται απέχουν το πολύ 3 Χ 4 = 12 dbm από τα δεδοµένα σήµατος τα οποία λήφθησαν κατά το fingerprint για κάθε σηµείο πρόσβασης η συνάρτηση δεν θα επιστρέψει µηδενική τιµή. Έτσι η χρήση των σ χ2,σ y2,σ 2 z δίνει την δυνατότητα στο σύστηµα να µπορεί να διαχειριστεί καταστάσεις αστάθειας του σήµατος (κάτι το οποίο είναι κανόνας στο ασύρµατα δίκτυα Wi-Fi) Ο αλγόριθµος του particle filtering Στο προηγούµενο εδάφιο έγινε µια περιγραφή των δύο βασικών µοντέλων τα οποία αποτελούν τον πυρήνα του particle filtering. εδοµένων των µοντέλων ο 106 Σελίδα

107 αλγόριθµος του particle filtering εκτελούµενος επαναληπτικά (βήµατα πρόβλεψης και ενηµέρωσης) επιτελεί εκτίµηση της θέσης του χρήστη. Πιο συγκεκριµένα µε το που ξεκινήσει η διαδικασία του particle filtering για πρώτη φορά γίνεται µια κατανοµή των σωµατιδίων στον χώρο. Έχει επιλεγεί το πλήθος των σωµατιδίων να είναι 1000 σωµατίδια. Η κατανοµή αυτή είναι µια οµοιόµορφη κατανοµή και φράσσεται από τις διαστάσεις του χώρου ενδιαφέροντος (κάτοψη κτιρίου).η διαδικασία παρουσιάζεται στο παρακάτω σχήµα. Σχήµα 6.15 Particle filter, αρχική οµοιόµορφη κατανοµή σωµατιδίων Τα σωµατίδια βρίσκονται πλέον στον χώρο ενδιαφέροντος και εφαρµόζεται πλέον συνάρτηση η οποία έχει ως στόχο την διαγραφή σωµατιδίων τα οποία βρίσκονται µεν στον χώρο ενδιαφέροντος αλλά εκτός της περιµέτρου της κάτοψης. Η λογική που ακολουθείται δεν είναι ακριβώς η διαγραφή αλλά ο προσδιορισµός βαρύτητας αυτών των σωµατιδίων στην τιµή µηδέν έτσι ώστε να µην επιλεχθούν ξανά. Τα σωµατίδια έχουν στο βήµα αυτό όλα την ίδια τιµή βάρους η οποία προσδιορίζεται από την τιµή 1 εκτός των σωµατιδίων τα οποία # σωµατιδίων έλαβαν την τιµή 0 στο βάρος τους επειδή ήταν εκτός περιοχής. Στο επόµενο βήµα δεδοµένου ότι έχει ληφθεί µια µέτρηση (η οποία θα έχει ήδη ληφθεί εκ των προτέρων µιας και αποτελεί προϋπόθεση για την εκτέλεση του αλγορίθµου) ο αλγόριθµος προχωρά στον υπολογισµό των βαρών του κάθε σωµατιδίου. Το βάρος αυτό όπως ήδη αναφέρθηκε εκφράζει την πιθανότητα η νέα µέτρηση η οποία µόλις λήφθηκε να έχει ληφθεί από το κάθε σωµατίδιο. Για τον 107 Σελίδα

108 υπολογισµό του βάρους γίνεται χρήση του µοντέλου µετρήσεων. Πιο συγκεκριµένα στο κάθε σωµατίδιο ανατίθεται βάρος ίσο µε την τιµή που επιστρέφεται από την εφαρµογή της Gaussian συνάρτησης που αντιστοιχεί στο συγκεκριµένο σωµατίδιο (στα x,y,z της Gaussian τοποθετούνται οι τιµές δεδοµένων σήµατος που ελήφθησαν από τον Client). Το κάθε σωµατίδιο σχετίζεται µε την Gaussian η οποία αντιστοιχεί στον κόµβο-θέση ο οποίος βρίσκεται εγγύτερα στο σωµατίδιο. Εφόσον η διαδικασία της ανάθεσης βαρών έχει ολοκληρωθεί ο αλγόριθµος συνεχίζει µε την εφαρµογή της διαδικασίας της επαναδειγµατοληψίας. Στο βήµα αυτό τα σωµατίδια τα οποία έχουν υψηλότερο βάρος είναι πιο πιθανό να επιλεγούν για επιβίωση από ότι τα σωµατίδια µε µικρότερα βάρη. Έτσι για να διατηρείται ο αριθµός των συνολικών σωµατιδίων σταθερός αλλά και για να πυκνώσουν τα σωµατίδια στις περιοχές οι οποίες η πιθανότητα της πραγµατικής θέσης του χρήστη είναι µεγαλύτερη, τα σωµατίδια µε µικρά βάρη δεν επιλέγονται ενώ τα σωµατίδια µε µεγαλύτερα βάρη αντιγράφονται. Τελικώς ο αριθµός των σωµατιδίων παραµένει σταθερός και στις περιοχές αυξηµένης πιθανότητας βρίσκονται τα περισσότερα σωµατίδια. Η διαδικασία επιλογής για επιβίωση ακολουθεί πιθανοτική λογική. Πιο συγκεκριµένα τα αρχικά βάρη όλων των σωµατιδίων κανονικοποιούνται στο φάσµα 0 έως 1. Έπειτα κατασκευάζεται η αθροιστική πυκνότητα πιθανότητας των σωµατιδίων. Τα σωµατίδια µε υψηλά βάρη λαµβάνουν µεγαλύτερο τµήµα του άξονα x στην αθροιστική πυκνότητα πιθανότητας ενώ αντίστοιχα τα σωµατίδια µικρότερου βάρους µικρότερη περιοχή. Στο επόµενο βήµα γίνεται χρήση τυχαίας µεταβλητής η οποία λαµβάνει οµοιόµορφα τιµές στο φάσµα 0 έως 1. Μέσω της τυχαίας αυτής µεταβλητής γίνεται η επιλογή των σωµατιδίων προς επιβίωση. Οι τιµές της τυχαίας µεταβλητής αντιστοιχούν στα σωµατίδια τα οποία επιλέγονται. Έτσι σωµατίδια τα οποία καταλαµβάνουν µικρότερο χώρο στην αθροιστική πυκνότητα πιθανότητας (άρα διαθέτουν µικρότερο βάρος) είναι λιγότερο πιθανό να επιλεγούν από ότι τα σωµατίδια τα οποία καταλαµβάνουν µεγαλύτερο χώρο στην αθροιστική πυκνότητα πιθανότητας (άρα διαθέτουν µεγαλύτερο βάρος). Με αυτόν τον τρόπο σωµατίδια τα οποία έχουν πολύ υψηλό βάρος (άρα αναπαριστούν καλύτερα τις µετρήσεις) θα επιλεχθούν περισσότερες από µία φορές ενώ σωµατίδια µε πολύ χαµηλό βάρος (άρα δεν αναπαριστούν τις µετρήσεις) δεν θα επιλεγούν καµία φορά. Παρόλα αυτά για να δοθεί η δυνατότητα του αλγορίθµου να ανακάµπτει από πιθανές εσφαλµένες εκτιµήσεις ένα 10-20% επί του πλήθους των σωµατιδίων δεν λαµβάνει µέρος στην παραπάνω διαδικασία. 108 Σελίδα

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

110 Σχήµα 6.15 Particle filter,τα σωµατίδια συγκεντρώνονται στις περιοχές µε υψηλή πιθανότητα Η λογική της χρήσης µεταβλητής διακύµανσης µε τέτοια τιµή είναι ότι αυτή αναπαριστά την τυχαία κίνηση του χρήστη µέσα στον χώρο ενδιαφέροντος. Έτσι επιλέγοντας τιµή διακύµανσης όπως περιγράφηκε πιο πριν διαβεβαιώνεται ότι γύρω από τους κόµβους οι οποίοι γειτνιάζουν µε τον κόµβο ο οποίος βρίσκεται τώρα εγγύτερα του βαρυκέντρου θα υπάρχει ικανοποιητικός αριθµός σωµατιδίων. Αν υπάρχουν σωµατίδια και στους τριγύρω κόµβους τότε σε επόµενη φάση θα επιτελεστεί υπολογισµός βαρών και για αυτά µε χρήση της Gaussian συνάρτησης αυτή την φορά η οποία αντιστοιχεί στους τριγύρω κόµβους. Έτσι στην περίπτωση όπου ο χρήστης µετακινείται η κίνηση του αυτή θα µπορεί να γίνει αντιληπτή από το σύστηµα µιας και τα σωµατίδια τα οποία βρίσκονται εγγύτερα στον κόµβο που αντιστοιχεί στην θέση του χρήστη θα λάβουν µεγαλύτερη τιµή από ότι τα σωµατίδια τα οποία βρίσκονται κοντά σε κόµβο ο οποίος δεν αντιστοιχεί στην θέση του χρήστη. Τέλος µετά το βήµα εφαρµογής του µοντέλου κίνησης στα σωµατίδια, εφαρµόζεται ξανά η διαδικασία διαγραφής σωµατιδίων τα οποία βρίσκονται εκτός της περιµέτρου της περιοχής ενδιαφέροντος. Η επανάληψη του βήµατος αυτού κρίνεται απαραίτητη µιας και στο προηγούµενο βήµα τα σωµατίδια µετακινήθηκαν στον χώρο. Έτσι πρέπει να εντοπιστεί πλέον αν λόγω της κίνησης του προηγούµενου βήµατος υπήρξαν σωµατίδια τα οποία κινήθηκαν εκτός της περιµέτρου της περιοχής 110 Σελίδα

111 (ή κινήθηκαν σε αδύνατες περιοχές) ενδιαφέροντος και αν ναι να διαγραφούν όπως περιγράφηκε και στο αρχικό (και σε προηγούµενο) βήµα. Τέλος γίνεται ένας υπολογισµός του βαρυκέντρου της κατανοµής των σωµατιδίων το οποίο βαρύκεντρο είναι η εκτίµηση της θέσης των σωµατιδίων. Ο υπολογισµός του βαρυκέντρου είναι ουσιαστικά η εφαρµογή των παρακάτω εξισώσεων. x com N w x = N = i i i i i= 1 i= 1, ycom N w y Η τιµές x com και y com είναι οι συντεταγµένες του βαρυκέντρου ενώ αντίστοιχα N είναι ο αριθµός των σωµατιδίων (στην εργασία αυτή Ν=1000) x i,y i οι συντεταγµένες του σωµατιδίου i και w i το βάρος του σωµατιδίου i. Εφόσον υπολογιστούν οι συντεταγµένες του βαρυκέντρου γίνεται ο υπολογισµός του κόµβου-θέσης (του γράφου) ο οποίος βρίσκεται εγγύτερα στο βαρύκεντρο. Ο κόµβος αυτός αποτελεί την εκτίµηση της θέσης του χρήστη και επιστρέφεται από τον αλγόριθµο. N ΑΡΧΗ pf.initialdistribution() pf.particlesonmapdetection() pf.computelikelihoods() pf.composecdf() pf.interpolation() pf.diversitycalibration() pf.adddiversitytoparticles() pf.particlesonmapdetection() Με την επιστροφή της εκτιµώµενης θέσης ο αλγόριθµος θέτει τα βάρη των σωµατιδίων στην τιµή 1,τερµατίζει, και # σωµατιδίων αποθηκεύει τα δεδοµένα της θέσης των σωµατιδίων για χρήση στο επόµενο βήµα. Σε επόµενο υπολογισµό της θέσης του χρήστη η διαδικασία επαναλαµβάνεται όπως περιγράφηκε πριν εκτός του αρχικού βήµατος της οµοιόµορφης κατανοµής των σωµατιδίων. pf.getlocation() Επανάληψη? ΤΕΛΟΣ Σχήµα 6.16 Flowchart του particle filtering 111 Σελίδα

112 Το flow chart του αλγορίθµου παρουσιάζεται στο πιο πάνω σχήµα. Η συνάρτηση InitialDistribution είναι υπεύθυνη για την αρχική οµοιόµορφη κατανοµή των σωµατιδίων και η ParticlesOnMapDetection για την διαγραφή των σωµατιδίων τα οποία βρίσκονται εκτός της περιµέτρου της περιοχής ενδιαφέροντος. Οι συναρτήσεις ComputeLikelihoods,ComposeCDF και Interpolation περιλαµβάνουν την λογική για τον υπολογισµό των βαρών, την κατασκευή της αθροιστικής πυκνότητας πιθανότητας και τέλος την διαδικασία της επαναδειγµατοληψίας. Αντίστοιχα η συνάρτηση DiversityCalibration υπολογίζει την τιµή της διακύµανσης του µοντέλου κίνησης, η AddDiversityToParticles εφαρµόζει το µοντέλο κίνησης και τέλος η GetLocation επιστρέφει την εκτιµώµενη θέση που υπολογίστηκε Πολλαπλοί χρήστες Στην παρούσα υλοποίηση υποστηρίζονται µέχρι και 5 ταυτόχρονοι Clients. Λόγω του γεγονότος ότι η εξυπηρέτηση του κάθε Client επιτυγχάνεται µε χρήση νηµάτων έτσι ώστε να µην µπλοκάρει η βασική διεργασία, κρίνεται απαραίτητη η χρήση κοινού χώρου µεταβλητών πάνω στις οποίες θα επενεργεί το κάθε νήµα. Για τον σκοπό αυτό γίνεται χρήση ενός πίνακα που περιέχει σε κάθε θέση αντικείµενα particle filter µεγέθους 5 (όσο και το µέγιστο πλήθος ταυτόχρονων Clients). Τα αντικείµενα particle filter περιέχουν όλες τις µεταβλητές αλλά και τις µεθόδους µέσω των οποίων υλοποιείται ο αλγόριθµος particle filter. Σε αντιστοιχία µε τον πίνακα των particle filter ορίζονται δύο ακόµη πίνακες. Ο πίνακας των mac διευθύνσεων και ο πίνακας χρόνων. Και οι δύο πίνακες είναι µεγέθους 5 και αυτοί. Στην περίπτωση όπου κάποιος πελάτης συνδεθεί στον Server και επιλέξει Localization αν βρει κενή δεσµεύει µια θέση στον πίνακα mac µέσω της mac διεύθυνσης του. Επίσης στην αντίστοιχη θέση του πίνακα των mac αλλά στον πίνακα των χρόνων τοποθετείται το χρονόσηµο έναρξης της διαδικασίας του Localization. Αν δεν βρεθεί κενή θέση, ελέγχει τον πίνακα των χρόνων και αν ο χρόνος που αναγράφεται στον πίνακα µε τον τρέχοντα χρόνο διαφέρουν κατά 120 δευτερόλεπτα, θεωρεί ότι ο προηγούµενος πελάτης διέκοψε την διαδικασία Localization οπότε δεσµεύει την θέση που αυτός κατείχε, τοποθετώντας στον mac πίνακα την mac διεύθυνσή του και αναγράφοντας στον πίνακα των χρόνων το δικό του χρονόσηµο. Παράλληλα διαγράφει από τον πίνακα των particle filters το particle fitler του προηγούµενου χρήστη, και τοποθετεί ένα νέο αντικείµενο particle filter. Αν ο πίνακας των particle filters είναι γεµάτος και ο πίνακας χρόνων δεν διαθέτει 112 Σελίδα

113 απαρχαιωµένα δεδοµένα τότε δεν δίνεται η δυνατότητα του Client να συνδεθεί στο σύστηµα. Η όλη λογική είναι απαραίτητη µιας και στην περίπτωση όπου ο χρήστης διακόψει το Localization ο Server δεν ενηµερώνεται µιας και έχει καταστραφεί (έχει κλείσει το socket) το κανάλι επικοινωνίας µεταξύ Client και Server. Έτσι κρίνεται απαραίτητη η χρήση της παραπάνω δοµής. Επιπρόσθετα ο πίνακας mac είναι ο πίνακας στον οποίο δηλώνονται οι χρήστες οι οποίοι εξυπηρετούνται από το σύστηµα. Ένας επιπλέον λόγος χρήσης της παραπάνω δοµής είναι για την αποφυγή φαινοµένων σύγκρουσης δεδοµένων µιας και στους παραπάνω πίνακες επενεργούν όλα τα νήµατα όλων των πελατών. Οπότε θα πρέπει να υπάρχει ένα είδος συγχρονισµού. 6.7 Υπολογιστής διορθωτής (Sniffer) Αναπόσπαστο κοµµάτι του συστήµατος εντοπισµού θέσης αποτελεί η χρήση του Sniffer. Η λειτουργία του Sniffer προσδίδει στο σύστηµα την δυναµικότητα που χρειάζεται έτσι ώστε να είναι αποδοτικό διαχρονικά. Το ασύρµατο µέσο έχει συγκεκριµένες ιδιαιτερότητες που καθιστούν την διαδικασία εντοπισµού θέσης µε χρήση του λαµβανόµενου σήµατος µια ιδιαίτερα δύσκολη δουλειά. Βασικό χαρακτηριστικό του σήµατος είναι η γενικότερη αστάθεια του. Ποιο συγκεκριµένα στα ηλεκτροµαγνητικά κύµατα παρουσιάζονται φαινόµενα µικρής και µεγάλης εξασθένησης τα οποία µπορούν περαιτέρω να αναλυθούν σε σκέδαση, ανάκλαση και διάθλαση. Αυτά τα φυσικά φαινόµενα τα οποία βρίσκουν εφαρµογή πάνω στο ηλεκτροµαγνητικό κύµα έχουν ως αποτέλεσµα την αύξηση του θορύβου σε συστήµατα τα οποία κάνουν χρήση του λαµβανόµενου σήµατος. Ποιο συγκεκριµένα στο σύστηµα που περιγράφεται στην εργασία αυτή, ο Sniffer είναι ένα υπολογιστικό σύστηµα εφοδιασµένο µε κάρτα ασύρµατου δικτύου το οποίο αναλαµβάνει την διαδικασία της διαρκούς ακρόασης του περιβάλλοντος. Ο Sniffer αφουγκράζεται συνεχώς τα λαµβανόµενα σήµατα από τα σηµεία πρόσβασης και αποστέλλει τα σήµατα που λαµβάνει ανά τακτά χρονικά διαστήµατα στον εξυπηρετητή του συστήµατος. Ο εξυπηρετητής του συστήµατος πέρα από τον πρωταγωνιστικό ρόλο που κατέχει ως ο εξαγωγέας της θέσης του χρήστη λαµβάνει τα σήµατα από τον Sniffer και τα χρησιµοποιεί για να τροποποιήσει πιθανώς τα 113 Σελίδα

114 fingerprinted σήµατα που έχουν ληφθεί στο παρελθόν από τους κόµβους της περιοχής ενδιαφέροντος. Στο παρακάτω διάγραµµα παρουσιάζεται η διαδικασία χρήσης του Sniffer στο σύστηµα. Σχήµα 6.17 Sniffer και Server επικοινωνία Κανόνες Λειτουργίας Ο Sniffer καθόλη την διάρκεια όπου το σύστηµα του Server είναι σε λειτουργία αποστέλλει διαρκώς σε αυτόν τις στάθµες σήµατος που λαµβάνει από τα σηµεία πρόσβασης. Έτσι ουσιαστικά ο Server έχει την γνώση για το τι ακούει ο Sniffer κάθε χρονική στιγµή. Τα δεδοµένα σήµατος που λαµβάνονται κατά την διάρκεια της διαδικασίας fingerprint από τον πελάτη αποθηκεύονται στον server αλλά επιπλέον στον Server αποθηκεύονται και τα δεδοµένα σήµατος από την πλευρά του Sniffer την στιγµή που συνέβη το fingerprint.έτσι µε το πέρας της διαδικασίας fingerprint για κάθε κόµβο-θέση ο Server διαθέτει για κάθε οµάδα σηµάτων από τον client και µια αντίστοιχη οµάδα σηµάτων από την πλευρά του Sniffer. Τα δεδοµένα σήµατος από την πλευρά του Sniffer προσδιορίζουν την κατάσταση του ασύρµατου µέσου την στιγµή του fingerprint για κάθε σηµείο πρόσβασης. Έχοντας αυτά τα δεδοµένα σήµατος εκ της διαδικασίας του fingerprint αλλά και από τον Sniffer ο εξυπηρετητής καθ όλη την διάρκεια όπου το σύστηµα είναι σε λειτουργία χρήσης, 114 Σελίδα

115 µεταβάλει τα fingerprinted δεδοµένα σήµατος για κάθε κόµβο ανάλογα µε την διαφορά των τρεχόντων δεδοµένων σήµατος του Sniffer αλλά και των δεδοµένων σήµατος του Sniffer που λήφθηκαν όταν πραγµατοποιήθηκε fingerprint. Η διαδικασία αυτή βασίζεται στην λογική ότι τα fingerprinted δεδοµένα σήµατος για κάποιο κόµβο χ συσχετίζονται µε τα δεδοµένα σήµατος που ελήφθησαν την ίδια χρονική στιγµή από τον sniffer. Η συσχέτιση µεταξύ των δύο αυτών οµάδων σήµατος είναι αντιστρόφως ανάλογη της απόστασης µεταξύ sniffer και κόµβου. Έτσι ο Sniffer µεταβάλει τα fingerprinted δεδοµένα (τα οποία παίζουν τον καταλυτικό ρόλο κατά την διάρκεια του Localization) ανάλογα µε τα δεδοµένα σήµατος που λαµβάνει από τα σηµεία πρόσβασης ο Sniffer, συγκρινόµενα µε δεδοµένα σήµατος που έλαβε ο Sniffer κατά την διάρκεια του fingerprint για κάθε κόµβο. Τελικά τα fingerprinted δεδοµένα για κόµβους οι οποίοι βρίσκονται δίπλα στο Sniffer επηρεάζονται τα µέγιστα από αλλαγές των παρελθόντων και τρεχόντων σηµάτων που έλαβε ο Sniffer, ενώ αντίθετα δεδοµένα κόµβων οι οποίοι βρίσκονται µακριά από τον Sniffer δεν επηρεάζονται καθόλου, µιας και τα σήµατα που λαµβάνονται από τον Sniffer και από µια πιθανή συσκευή στην ζώνη αυτή θεωρούνται ασυσχέτιστα. Στο παρακάτω σχήµα περιγράφεται η διαδικασία Σχήµα 6.18 Τα fingerprinted δεδοµένα των σηµείων τα οποία βρίσκονται εγγύτερα στον Sniffer επηρεάζονται ως αποτέλεσµα της λειτουργίας του Sniffer. Το µείζονος σηµασίας στοιχείο µιας τέτοιας διαδικασίας δεν είναι άλλο από την συνάρτηση η οποία αποφασίζει την µεταβολή των fingerprinted δεδοµένων και πως προσµετρά την παράµετρο της απόστασης µεταξύ Sniffer και κόµβου για την µεταβολή αυτή. Στην συγκεκριµένη εργασία επιλέχθηκε η χρήση µιας «συνάρτησης πρόσηµου» η οποία ουσιαστικά αποφασίζει αναλόγως της απόστασης του κόµβου από την θέση του Sniffer, βάσει του χρονικού διαστήµατος κατά το οποίο η διαφορά 115 Σελίδα

116 τρεχόντων και παρελθόντων σηµάτων από τον Sniffer έχει το ίδιο πρόσηµο. Αυτό που µεταβάλλεται βάσει απόστασης είναι το χρονικό διάστηµα το οποίο είναι απαραίτητο να καλυφθεί έτσι ώστε να σηµατοδοτηθεί ανάγκη για επικαιροποίηση των fingerprinted δεδοµένων σήµατος. Έτσι τελικά για κόµβους-περιοχές οι οποίοι γειτνιάζουν µε τον Sniffer, η συνάρτηση αποφασίζει το χρονικό διάστηµα που σηµατοδοτεί αλλαγή, να είναι µικρότερο για κόµβους οι οποίοι είναι κοντά στον Sniffer, από ότι για κόµβους-περιοχές οι οποίοι βρίσκονται µακρύτερα από τον Sniffer. Η συνάρτηση η οποία αποφασίζει το χρονικό διάστηµα είναι η εξής: fi = w dist( Sniffer, i) Όπου i ο κάθε κόµβος, dist(sniffer,i) η απόσταση µεταξύ του κόµβου i και του Sniffer καθώς και w ένα βάρος. Το βάρος w προσδιορίζει σε µεγάλο βαθµό τον βαθµό επηρεασµού του Sniffer πάνω στα fingerprinted δεδοµένα. Το χρονικό διάστηµα που αποφασίζεται τελικά είναι άµεση συνάρτηση της απόστασης µεταξύ Sniffer και κόµβου-περιοχής και ποιο συγκεκριµένα αναλογία µεταξύ των δύο µεγεθών. Η αναλογία αυτή επηρεάζεται από το τρίτο µέγεθος της συνάρτησης τον συντελεστή της απόστασης- το οποίο µέγεθος προσδιορίζεται από τον διαχειριστή του συστήµατος και αποτελεί µια παράµετρο κανονικοποίησης Υλοποίηση Sniffer λογικής Πλευρά του Sniffer Τον ρόλο του Sniffer αναλαµβάνει ένας υπολογιστής ο οποίος τρέχει λειτουργικό σύστηµα Ubuntu. Για την εκµαίευση των σηµάτων σήµατος από την κάρτα δικτύου χρησιµοποιείται τo εργαλείο iwlist από το πακέτο εργαλείων wirelesstools το οποίο αποτελεί ένα σύνολο εργαλείων για την διαχείριση του ασύρµατου δικτύου σε περιβάλλον linux. Πιο συγκεκριµένα επιτελείται scan στον υπολογιστή αυτό ανά τακτά χρονικά διαστήµατα της τάξης των 5 δευτερολέπτων. Ο σαφής προσδιορισµός του χρονικού διαστήµατος επανάληψης δεν είναι δυνατόν να προβλεφθεί µιας και το εργαλείο iwlist ενώ κάνει αιτήσεις για scan στον οδηγό της ασύρµατης κάρτας ανά συγκεκριµένο χρονικό διάστηµα, ο οδηγός απαντά όταν έχει τα δεδοµένα έτοιµα. Με το που απαντήσει ο οδηγός από το scan τα δεδοµένα εξάγονται σε ένα αρχείο κειµένου και γίνεται νέα αίτηση για scan. Πρόκειται για ένα 116 Σελίδα

117 ατέρµονα βρόγχο ο οποίος αιτείται για scan στον οδηγό και γράφει τα δεδοµένα απάντησης σε ένα αρχείο κειµένου. Η υλοποίηση της παραπάνω λογικής επιτελείται από ένα bash script. Παράλληλα µε την εκτέλεση του bash script εκτελείται κώδικας σε java ο οποίος τρέχοντας και αυτός σε ατέρµονα βρόγχο διαβάζει τα δεδοµένα από το αρχείο (που εξήχθησαν από το bash script) και αποστέλλει τα δεδοµένα αυτά µέσω socket επικοινωνίας στον Server του συστήµατος Πλευρά του Server Από την πλευρά του Server η λογική για την διαδικασία του Sniffer υλοποιείται στην ίδια διεργασία µε την βασική λογική του Server η οποία είναι υπεύθυνη για την εξαγωγή της θέσης του χρήστη. Για την αποφυγή επηρεασµού της διαδικασίας του Sniffer µε την γενικότερη διαδικασία εξαγωγής θέσης η λογική για την επικοινωνία µε τον Sniffer καθώς και για την περαιτέρω επεξεργασία των δεδοµένων που περιγράφηκε παραπάνω υλοποιείται σε νήµα (thread) το οποίο τρέχει παράλληλα µε την κύρια λογική του Server. Το νήµα αυτό ακούει για συνδέσεις από τον Sniffer όπου και εξυπηρετεί ενώ σε κάθε λήψη σήµατος από τον Sniffer γίνονται οι έλεγχοι για το αν πληρούνται οι προϋποθέσεις µεταβολής των fingerprinted δεδοµένων. Σε κάθε νέα ακρόαση του Sniffer ο Server λαµβάνει τα δεδοµένα σήµατος από τον Sniffer. Τα δεδοµένα αυτά σε περίπτωση όπου έχει επιλεχθεί παράλληλα µια fingerprint διαδικασία αποθηκεύονται ως τα παρελθόντα δεδοµένα για τον κόµβο για τον οποίο επιτελέστηκε το fingerprint. Ως επόµενο βήµα υπολογίζεται το χρονικό διάστηµα διαδοχικών διαφορών παρελθόντων και τρεχόντων επιπέδων σήµατος (όπως περιγράφηκε σε προηγούµενο εδάφιο) µέσω της «συνάρτησης πρόσηµου» για κάθε κόµβο. Έτσι στην περίπτωση όπου δεν επιτελείται fingerprint ο Server εξετάζει για κάθε κόµβο βάσει τα νέα δεδοµένα σήµατος από τον Sniffer αν πληρούνται οι προδιαγραφές για µεταβολή των fingerprinted δεδοµένων. Σε περίπτωση που πληρούνται οι προδιαγραφές για κάποιο κόµβο ο Server επιτελεί αυτές τις αλλαγές. Στην παρούσα υλοποίηση επιλέχθηκε η µεταβολή για τα fingerprinted δεδοµένα να είναι της τάξης το 1dbm. Έτσι για το χρονικό διάστηµα που ορίζει η συνάρτηση πρόσηµου του κάθε κόµβου, αν οι στάθµες σήµατος που λαµβάνονται από τον Sniffer για κάποιο σηµείο πρόσβασης είναι µεγαλύτερες από τις στάθµες που λήφθηκαν όταν έγινε fingerprinted ο κόµβος αυτός, προστίθεται στα fingerprinted δεδοµένα σήµατος για τον κόµβο αυτόν 1dbm. Αντίστοιχα αν είναι µικρότερες αφαιρείται 1dbm από τα fingerprinted δεδοµένα. Αξίζει να σηµειωθεί εδώ 117 Σελίδα

118 ότι η µεταβολή γίνεται ανά κόµβο, ανά σηµείο πρόσβασης. Το παρακάτω σχήµα διασαφηνίζει την λογική που υλοποιεί ο server. Σχήµα 6.19.Επικοινωνία server-sniffer και server-client 6.8 Σύστηµα πελάτη (Client) Βασικό τµήµα του συστήµατος είναι η εφαρµογή του πελάτη µέσω της οποίας γίνεται ο εντοπισµός θέσης και κατ επέκταση η υλοποιείται η m-commerce πλευρά της λογικής. Η εφαρµογή του Client είναι εγκατεστηµένη σε android συσκευή. Μέσω της συσκευής του αυτής ο πελάτης αποστέλλει δεδοµένα σήµατος στον server ο οποίος µετά από κατάλληλη επεξεργασία (Όπως αναφέρθηκε σε προηγούµενα εδάφια) αποφαίνεται για την θέση του Client και του αποστέλλει κατάλληλα m- commerce µηνύµατα. Η εφαρµογή του Client αποτελεί την λογική για τις εξής διαδικασίες: α)μέσω της εφαρµογής του Client στην παρούσα εργασία υλοποιείται το fingerprint το οποίο είναι προαπαιτούµενο στάδιο της διαδικασίας εντοπισµού θέσης β)η εφαρµογή του Client χρησιµοποιείται κατά την διαδικασία localization αποστέλλοντας στον Server τα δεδοµένα σήµατος που λαµβάνει 118 Σελίδα

119 γ)μέσω της εφαρµογής αποστέλλονται στον Client µηνύµατα m-commerce που τον αφορούν. Κατά την εκκίνηση της η εφαρµογή συνδέεται µε τον Server και κατεβάζει µέσω ftp τον χάρτη της περιοχής ενδιαφέροντος έτσι ώστε να παρουσιάζεται στον χρήστη κατά τις διαδικασίες fingerprint και localization. Επίσης λαµβάνονται επιπλέον αρχεία τα οποία είναι απαραίτητα για την ορθή λειτουργία του συστήµατος. Τα αρχεία αυτά έχουν εξαχθεί από το υποσύστηµα εξαγωγής γράφου. Πιο συγκεκριµένα λαµβάνονται: (α) το αρχείο κειµένου nodesnames.txt το οποίο περιλαµβάνει τα ονόµατα των κόµβων-περιοχών µαζί µε τις συντεταγµένες τους (β) το αρχείο κειµένου graphfrommap.txt το οποίο περιλαµβάνει την λογική µετάβασης µεταξύ των διαφορετικών κόµβων-ζωνών (ο εξαγόµενος γράφος) ιαδικασία fingerprint O Client αφού επιτελέσει scan αποθηκεύει τα δεδομένα του Scan τοπικά και έπειτα τα στέλνει στον Server μέσω ftp. Παράλληλα του στέλνει μέσω Socket το όνομα του αρχείου δεδομένων που του έστειλε μόλις μέσω ftp και την περιοχή για την οποία θέλει να κάνει το fingerprint WiFiServer Επικοινωνία με Client RSSI από το AP1 Λήψη και αποστολή δεδομένων μέσω του AP1 μέσω Sockets αλλά και ftp Smartphone RSSI από το AP2 RSSI από το AP3 Access Point 1 Access Point 2 Access Point 3 Σχήµα 6.20 Η διαδικασία του fingerprint 119 Σελίδα