Τμήμα Πληροφορικής & Επικοινωνιών Θέμα “Μελέτη των αλγορίθμων ταξινόμησης “KD-tree” και “Box assisted” και εφαρμογή τους σε Σχεσιακά Μοντέλα Βάσεων Δεδομένων” Φοιτητές: Σκιαδάς Δημήτριος Τέττερης Μιχαήλ Επιβλέπων Καθηγητής: Δρ. Τσιμπίρης Αλκιβιάδης
Σκοπός της Πτυχιακής Εργασίας Σκοπός αυτής της πτυχιακής εργασίας είναι η υλοποίηση σε προγραμματιστικό περιβάλλον (C++), των αλγορίθμων συσχέτισης διαστάσεων KD-tree και Box assisted οι οποίοι θα αντλούν δεδομένα (Ν-διάστατα σημεία) από Βάσεις Δεδομένων (SQL Server). Ο χρήστης θα έχει τις παρακάτω επιλογές: Δημιουργία πινάκων σημείων Ταξινόμηση σημείων με χρήση των αλγορίθμων KD-tree και Box assisted. Αναζήτηση κοντινότερων γειτόνων με χρήση των δύο αλγορίθμων.
Συσχέτιση Διαστάσεων Η επινόηση των μεθόδων συσχέτισης διαστάσεων, προήλθε από την επιθυμία για γρήγορη εξόρυξη χωρικής γνώσης. Παλιότερα γινόταν χρήση της απλής (brute) μεθόδου: Αναζήτηση όλων των ζευγών αποστάσεων. Για Ν σημεία, Ν² υπολογισμοί αποστάσεων. Χρονοβόρα σε σχέση με τις μεταγενέστερες. Οι νέες μέθοδοι εφαρμόζουν ορισμένες τεχνικές, ώστε να μειωθεί ο αριθμός των υπολογισμών και να υπάρχει όφελος χρόνου.
Πεδία Εφαρμογής Οι μέθοδοι συσχέτισης διαστάσεων εφαρμόζονται στα παρακάτω πεδία: GIS (Συστήματα Γεωγραφικών Πληροφοριών) Γεωλογίας Περιβαλλοντικής επιστήμης Διαχείρισης πόρων Γεωργίας Ιατρικής Ρομποτικής Απεικόνιση τρισδιάστατων γραφικών Μουσική Βίντεο Εικόνα και άλλα...
Επίπεδα Εφαρμογής Βάση Δεδομένων Εφαρμογή Δημιουργία Πίνακα Σημείων Αλγόριθμος KD-tree Αλγόριθμος Box assisted Η σύνδεση της βάσης δεδομένων με την εφαρμογή πραγματοποιήθηκε με χρήση συστατικών ADO.
Δημιουργία Πίνακα Σημείων Αναγκαία η ύπαρξη πίνακα Ν-διάστατων σημείων ώστε να εφαρμοσθούν σε αυτά οι αλγόριθμοι. Τέσσερις τρόποι εισαγωγής δεδομένων: Δημιουργία νέου πίνακα και προσθήκη τυχαίων σημείων Προσθήκη τυχαίων σημείων σε ήδη υπάρχοντα πίνακα Προσθήκη δυσδιάστατων σημείων μέσω εικόνας Εισαγωγή σημείων μέσω αρχείου SQL
KD-tree Ταξινόμηση σημείων με χρήση του αλγορίθμου KD-tree: Εύρεση του άξονα (διάσταση) με τη μεγαλύτερη διασπορά Ταξινόμηση των σημείων, βάσει του άξονα αυτού Εύρεση του μέσου της τρέχουσας διάστασης Διαίρεση των σημείων σε δύο υποσύνολα. Όσα σημεία έχουν την τρέχουσα διάσταση τους μικρότερη από το μέσο ανήκουν στο αριστερό υπο-δένδρο, τα υπόλοιπα στο δεξί. Μετάβαση στον επόμενο άξονα και επανάληψη των βημάτων 2, 3 και 4. Η διαδικασία σταματάει όταν όλα τα υπο-δένδρα έχουν το πολύ ένα σημείο.
KD-tree Αναπαράσταση του τρόπου ταξινόμησης. Κάθε αλλαγή άξονα διχοτόμησης είναι και ένα νέο επίπεδο στο δένδρο.
KD-tree Αναζήτηση Κοντινότερου Γείτονα: εντοπίζει τη θέση του σημείου στο δένδρο ανεβαίνει ένα επίπεδο πάνω, οπότε εκτός από το σημείο αναζήτησης, βρίσκει και τον άλλο κόμβο παιδί εάν οι δύο αδερφοί κόμβοι είναι τερματικοί, τότε ο κοντινότερος γείτονας είναι ο κόμβος αδερφός του σημείου αναζήτησης εάν ο αδερφός κόμβος του σημείου αναζήτησης έχει παιδιά, τότε πρέπει να διαλέξει το κοντινότερο
KD-tree Αναζήτηση με χρήση ακτίνας: εντοπίζει τη θέση του σημείου στο δένδρο (κόκκινο) ανεβαίνει όσα επίπεδα έχει επιλέξει ο χρήστης (3) βρίσκει όλα τα παιδιά του κόμβου-πατέρα (μπλε) συγκρίνει την ευκλείδεια απόσταση καθενός από τα σημεία με το ζητούμενο σημείο (σημείο 15), για να διαπιστώσει εάν βρίσκονται εντός ακτίνας
Box assisted Ταξινόμηση σημείων με χρήση του αλγορίθμου Box assisted: Εισάγεται ένα πλέγμα πάνω στο επίπεδο, που το χωρίζει σε κουτιά Το πλάτος των κουτιών καθορίζεται από το χρήστη Το κάθε σημείο μπαίνει σε ένα κουτί ανάλογα με τις συντεταγμένες του
Box assisted Παραδείγματα κακής επιλογής μεγέθους κουτιού.
Box assisted Αναζήτηση Κοντινότερου Γείτονα: Εντοπίζει το κουτί με το σημείο του οποίου αναζητούμε τους κοντινότερους γείτονες (κόκκινο) Επιστρέφει όσα σημεία βρίσκονται στο κουτί αυτό, αλλά και στα γειτονικά του (πορτοκαλί) συγκρίνει την ευκλείδεια απόσταση καθενός από τα σημεία με το ζητούμενο σημείο για να βρεθεί το κοντινότερο
Συμπεράσματα Αλγόριθμος KD-tree Θετικά αξιόπιστος αποδοτικός γρήγορη αναζήτηση σημείων δεν χρειάζεται γνώση της κατανομής των σημείων Αρνητικά χρονοβόρα ταξινόμηση σημείων περίπλοκη υλοποίηση
Αλγόριθμος Box assisted Συμπεράσματα Αλγόριθμος Box assisted Θετικά απλή υλοποίηση αξιόπιστος γρήγορη ταξινόμηση σημείων γρήγορη αναζήτηση σημείων Αρνητικά χρειάζεται γνώση της κατανομής των σημείων η αναζήτηση δεν είναι το ίδιο αποδοτική για όλα τα σημεία