ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων Κ. Πατρούµπας 27 Ιανουαρίου 2005 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 1
Υπολογιστική Νοηµοσύνη «Μπορούν οι υπολογιστές να αναπτύξουν ικανότητα εκµάθησης, εφευρετικότητα και δηµιουργικότητα;» Νευρωνικά δίκτυα (Neural Networks) Μηχανική µάθηση (Machine Learning) Ασαφής Λογική (Fuzzy Logic) Εξελικτικός υπολογισµός (Evolutionary Computing) Γενετικοί Αλγόριθµοι (Holland, 1975) Γενετικός Προγραµµατισµός (Koza, 1992) 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 2
Γενετικοί Αλγόριθµοι (Genetic Algorithms) Αρχική έµπνευση: Θεωρία της βιολογικής εξέλιξης των ειδών «Επιβιώνουν αυτοί που προσαρµόζονται καλύτερα» Μίµηση µηχανισµών της Βιολογίας (DNA, χρωµοσώµατα, εξέλιξη) Αναπαράσταση λύσεων ενός προβλήµατος µε ακολουθίες bits (0,1) Εφαρµογή τελεστών ( ιασταύρωση, Μετάλλαξη, Επιλογή) Αναπαραγωγή για έναν ορισµένο αριθµό γενεών Η βέλτιστη λύση µπορεί να προκύψει στο τέλος 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 3
Αναπαράσταση του πληθυσµού Χρωµόσωµα συµβολοσειρά σταθερού µήκους S 1 = 0 1 1 0 1 0 Γονίδια (δοµικά στοιχεία του χρωµοσώµατος) τα σύµβολα (λ.χ. bits) που συγκροτούν το χρωµόσωµα Locus η θέση ενός ψηφίου στην ακολουθία Allele οι τιµές ενός ψηφίου στην ακολουθία (0,1) Τρόποι κωδικοποίησης υαδική Με αλφάβητο συµβόλων Με πραγµατικούς αριθµούς Με ακέραιους αριθµούς 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 4
Επιλογή (Selection) Ποια µέλη θα επιβιώσουν στην επόµενη γενιά Εξέλιξη κατά γενιές (generations) Επιλογή σταθερής κατάστασης (steady-state selection) Συνάρτηση προσαρµογής (Fitness function) Σταδιακή σύγκλιση προς τη βέλτιστη λύση αλλά κίνδυνος εγκλωβισµού σε τοπικά ακρότατα Σταθερός πληθυσµός: όσοι προσαρµόζονται καλύτερα φθίνουσα ποικιλία Αναπαραγωγή λόγος προσαρµογής κατά σειρά κατάταξης ανταγωνιστική επιλογή Κίνδυνος πρόωρης σύγκλισης Κλιµάκωση προσαρµογής 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 5
ιασταύρωση (Crossover) ιασταύρωση ενός σηµείου (One-point crossover): Γονείς S 1 = 0 1 1 0 1 0 S 2 = 1 1 0 1 1 1 Απόγονοι S 1 = 0 1 1 0 1 1 S 2 = 1 1 0 1 1 0 ιασταύρωση δύο σηµείων (Two-point crossover): Γονείς S 1 = 0 1 1 0 1 0 S 2 = 1 1 0 1 1 1 Απόγονοι S 1 = 0 1 0 1 1 0 S 2 =1 1 1 0 1 1 Ρυθµός διασταύρωσης (Crossover rate) p c 0.7-0.8 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 6
Μετάλλαξη (Mutation) Εναλλαγή της τιµής ενός ψηφίου σε κάποια τυχαία θέση της συµβολοσειράς (λ.χ. k=2) S 2 = 1 1 0 1 1 0 S 2 = 1 0 0 1 1 0 ευτερεύουσα λειτουργία σε σχέση µε την διασταύρωση ιατήρηση ποικιλίας στον πληθυσµό Ρυθµός µετάλλαξης (mutation probability, mutation rate) p m 0.001 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 7
Κύκλος ζωής ενός γενετικού αλγορίθµου 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 8
Εισαγωγές στοιχείων στο R-δένδρο (συνέχεια) Γενετικός Προγραµµατισµός (Genetic Programming) Αρχική έµπνευση: Μπορούν οι υπολογιστές να παράγουν µόνοι τους προγραµµατιστικό κώδικα; Σύλληψη αντίστοιχη µε τους γενετικούς αλγορίθµους: Αναπαράσταση πληθυσµού: συναρτήσεις (functions) τερµατικοί όροι (terminals) Εφαρµογή τελεστών διασταύρωση µετάλλαξη επιλογή Αναπαραγωγή για έναν ορισµένο αριθµό γενεών 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 9
Εισαγωγές Αναπαράσταση στοιχείων στο πληθυσµού R-δένδρο (συνέχεια) ένδρα δοµικής ανάλυσης (Parse trees) Κόµβοι: συναρτήσεις Φύλλα: τελεστές (SQRT ( * A ( * A A ))) LISP S-expressions Ιεραρχική δοµή των δένδρων Ιδιότητες της αναπαράστασης: Κλειστότητα Επάρκεια 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 10
ιασταύρωση (Crossover) Γονείς: (* A (- (* A A ) (SQRT ( A )))) (/ A (/ (/ A A) (/ A A))) Απόγονοι: (* A (- (* A A ) A ))) (/ A (/ (/ (SQRT ( A)) A) (/ A A))) Αλλά ίδιοι γονείς δεν δίνουν πάντοτε ίδιους απογόνους! 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 11
Τελεστές & Παραλλαγές Μετάλλαξη σηµείου (point mutation) υποδένδρου (subtree mutation) Επιλογή κίνδυνος πρόωρης σύγκλισης κλιµάκωση προσαρµογής (windowing, sigma scaling, linear scaling) Τερµατισµός εκτέλεσης Προκαθορισµένος αριθµός γενεών Μικρή πρόοδος στις πρόσφατες γενιές Αυτόµατα ορισµένες συναρτήσεις (ADF) Επαναχρησιµοποίηση του κώδικα Παράλληλος γενετικός προγραµµατισµός (Parallel GP) µοντέλο αφέντη-σκλάβου ( master-slave ) εξέλιξη γενεών σε πολλαπλές ταχύτητες (asynchronous) 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 12
Κύκλος ζωής διαδικασίας γενετικού προγραµµατισµού 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 13
Θεµελίωση αρχής λειτουργίας Γονότυπος (Genotype): [Search space] Το σύνολο των χρωµοσωµάτων που κωδικοποιούν πιθανές λύσεις Φαινότυπος (Phenotype): [Solution space] Αποκωδικοποίηση των χρωµοσωµάτων ώστε να προκριθούν οι καλύτεροι εκπρόσωποι του πληθυσµού. Γιατί λειτουργούν οι γενετικές τεχνικές; Θεώρηµα Σχηµάτων (Holland, 1975): Μικρά αλλά αποτελεσµατικά δοµικά στοιχεία (σχήµατα) λαµβάνουν εκθετικά αυξηµένη πιθανότητα αναπαραγωγής από γενιά σε γενιά δίνοντας προοδευτικά καλούς απογόνους. 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 14
Ερωτήµατα σε βάσεις δεδοµένων σχεσιακό σχήµα: employees (emp-id, emp-name, salary, dept) departments (dept-id, dept-name, floor) δηλωτική γλώσσα ερωταποκρίσεων (λ.χ. SQL): «ποια τµήµατα έχουν υπαλλήλους µε µισθό πάνω από 3000 ;» SELECT dept-id, dept-name FROM employees, departments WHERE dept=dept-id AND salary>3000 σχεσιακοί τελεστές, όπως: Επιλογή (selection, σ ) Προβολή (projection, π ) Σύνδεση (join, ) Καρτεσιανό γινόµενο (cartesian product, ) 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 15
Εκτέλεση ερωτηµάτων Προσχέδιο εκτέλεσης ερωτήµατος: Πολλοί εναλλακτικοί τρόποι εκτέλεσης (σειρά εφαρµογής τελεστών, αλγόριθµοι υλοποίησης πράξεων) Η σύνδεση (join) είναι η πιο ακριβή πράξη Αναζήτηση του φθηνότερου δένδρου 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 16
Εκτέλεση ερωτηµάτων πολλαπλών συνδέσεων Ερωτήµατα πολλαπλών συνδέσεων π.χ. A B C D E F Γράφοι ερωτήµατος: ένδρα εκτέλεσης ερωτηµάτων: θαµνώδες αριστεροβαθές 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 17
Βελτιστοποίηση ερωτηµάτων Αλγόριθµος δυναµικού προγραµµατισµού (System-R) διατάξεις ενδιαφέροντος (interesting orderings) διερεύνηση µόνο σε αριστεροβαθή δένδρα σταδιακή κατασκευή του δένδρου εκτέλεσης εκθετικός χρόνος: πρόβληµα για µεγάλο (>10) αριθµό συνδέσεων Τυχαιοποιηµένοι αλγόριθµοι τυχαίοι περίπατοι (random walks) στο χώρο λύσεων µετασχηµατισµός υπαρχόντων προσχεδίων προσοµοιωµένη ανόπτηση επαναληπτική βελτίωση βελτιστοποίηση δύο φάσεων Γενετική βελτιστοποίηση µε γενετικούς αλγορίθµους µε γενετικό προγραµµατισµό 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 18
Γενετικός αλγόριθµος βελτιστοποίησης τοπικής γειτονιάς m A n C m B m D n E n F n 1 a n 2 r m 3 a m 4 r n 5 a Η τιµή προσαρµογής κάθε χρωµοσώµατος µεταδίδεται στα γειτονικά του ιασταύρωση σε τοπικό επίπεδο: modified two swap, εναλλαγή ζεύγους γονιδίων µεταξύ γονέων CHUNK, αντικατάσταση συµπαγών υπακολουθιών Μετάλλαξη: εναλλαγή σειράς πινάκων, αλλαγή αλγορίθµου σύνδεσης Υστερεί για αριστεροβαθή, αλλά ικανοποιητικός για θαµνώδη δένδρα 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 19
Γενετικός αλγόριθµος βέλτιστης σειράς συνδέσεων Αναπαράσταση χρωµοσωµάτων διατεταγµένη λίστα πινάκων ή σειράς συνδέσεων τακτικοί αριθµοί ιασταύρωση ανταλλαγή υπακολουθιών για κωδικοποίηση διατεταγµένης λίστας ανταλλαγή υπακολουθιών για κωδικοποίηση µε τακτικούς αριθµούς Ανταλλαγή υποτµηµάτων µε ίδια γονίδια Επιλογή κατά σειρά κατάταξης εκλεκτικισµός Μετάλλαξη ανταλλαγή γονιδίων σε κάποιο χρωµόσωµα 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 20
Βελτιστοποίηση µε γενετικό προγραµµατισµό Γονείς Απόγονοι => ενδρική αναπαράσταση Τερµατικοί όροι: πίνακες Συναρτήσεις: συνδέσεις ιασταύρωση Postorder διάσχιση προγόνων Ανασύσταση µε προσθήκη των υποδένδρων και στους 2 απογόνους 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 21
Γενετική βελτιστοποίηση στην PostgreSQL 7.3 Γενετικός βελτιστοποιητής ερωτηµάτων ειδικά για υπεράριθµες (>10-15) συνδέσεις για τις υπόλοιπες συνδέσεις: δυναµικός προγραµµατισµός Πρώιµο στάδιο υλοποίησης µόνο για αριστεροβαθή δένδρα εκτέλεσης τα χρωµοσώµατα κωδικοποιούν σχεσιακούς πίνακες Σταδιακή αντικατάσταση του πληθυσµού steady-state selection απόρριψη ακριβών προσχεδίων εκτέλεσης ιασταύρωση επανασυνδυασµού ακµών τεχνική για το πρόβληµα του «περιοδεύοντος πωλητή» εξετάζεται µόνο ποιοι πίνακες συµµετέχουν στη σύνδεση όχι η σειρά µε την οποία εµφανίζονται Μετάλλαξη τελεστής µειωµένης σηµασίας, δεν εφαρµόζεται 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 22
Αξιολόγηση γενετικής βελτιστοποίησης ερωτηµάτων Ανεπαρκής για ερωτήµατα µε µικρό αριθµό συνδέσεων καλύτερα εξαντλητική αναζήτηση µε δυναµικό προγραµµατισµό Ικανοποιητική για ερωτήµατα πολλαπλών συνδέσεων παραπλήσιες επιδόσεις µε τυχαιοποιηµένους αλγορίθµους για θαµνώδη δένδρα φτάνουν συντοµότερα σε καλές λύσεις για αριστεροβαθή δένδρα υστερούν στην εύρεση του βέλτιστου Γενετικοί αλγόριθµοι : ευαίσθητοι στην κωδικοποίηση Γενετικός προγραµµατισµός: χωρίς κόστος αποκωδικοποίησης Γενετικές τεχνικές σε ερωτήµατα απαιτούν προσεκτική ρύθµιση παραµέτρων µόνο προσεγγιστική εκτίµηση κόστους (τιµή προσαρµογής) µικρή ανταπόκριση σε εµπορικά Σ Β Ερευνητικά θέµατα Παραλληλία, δειγµατοληψία, pipelining για ταχύτερη αναζήτηση 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 23
Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων Κύριες Παραποµπές [BFI91] K. Bennett, M.C. Ferris, and Y. Ioannidis. A Genetic Algorithm for Database Query Optimization. In Proceedings of the 4th International Conference on Genetic Algorithms, pp. 400-407, 1991. [Gol89] D.E. Goldberg. Genetic Algorithms in Search, Optimization & Machine Learning. Addison-Wesley, Reading, MA, 1989. [Lan98] W. B. Langdon. Genetic Programming and Data Structures: Genetic Programming + DataStructures = Automatic Programming. Kluwer Academic Publishers, Norwell, MA, 1998. [SMK97] M. Steinbrunn, G. Moerkotte, and A. Kemper. Heuristic and Randomized Optimization for the Join Ordering Problem. VLDB Journal, 6(3):191-208, May 1997. [SS96] M. Stillger and M. Spiliopoulou. Genetic Programming in Database Query Optimization. In Proceedings of the First Annual Conference on Genetic Programming, Stanford, California, USA, July 1996. 27/01/2005 Τεχνητά Νευρωνικά ίκτυα & Μηχανική Μάθηση 24