Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων

Σχετικά έγγραφα
Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων

Τυπικά θέματα εξετάσεων. ΠΡΟΣΟΧΗ: Οι ερωτήσεις που παρατίθενται ΔΕΝ καλύπτουν την πλήρη ύλη του μαθήματος και παρέχονται απλά ενδεικτικά

Ε ανάληψη. Α ληροφόρητη αναζήτηση

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Θεµελίωση Γενετικών Αλγορίθµων

Κεφάλαιο 7. Γενετικοί Αλγόριθµοι. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

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

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

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

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

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

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

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Υπολογιστική Νοηµοσύνη

Συστήματα Επιχειρηματικής Ευφυίας

Γενετικοί Αλγόριθμοι. Εισαγωγή

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

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

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

Τεχνολογία Συστημάτων Υδατικών Πόρων

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

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

ιοίκηση Παραγωγής και Υπηρεσιών

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Διαχείριση Υδατικών Πόρων

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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

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

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Πολυκριτηριακός Γραμμικός Προγραμματισμός. Συστήματα Αποφάσεων Εργαστήριο Συστημάτων Αποφάσεων και Διοίκησης

Αριθμητική Ανάλυση & Εφαρμογές

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

Αστικά υδραυλικά έργα

Αριθμητική Ανάλυση και Εφαρμογές

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

4.3. Γραµµικοί ταξινοµητές

ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ

6. Στατιστικές μέθοδοι εκπαίδευσης

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

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

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων.

ΑΕΠΠ Ερωτήσεις θεωρίας

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

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

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

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

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

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

min f(x) x R n b j - g j (x) = s j - b j = 0 g j (x) + s j = 0 - b j ) min L(x, s, λ) x R n λ, s R m L x i = 1, 2,, n (1) m L(x, s, λ) = f(x) +

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

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

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

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3.

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

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

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

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

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

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

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

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

Υπολογιστικό Πρόβληµα

ΕΞΕΛΙΚΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ: θεωρητικό Πλαίσιο

Περί της Ταξινόμησης των Ειδών

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

Μέθοδοι Φυλογένεσης. Μέθοδοι που βασίζονται σε αποστάσεις UPGMA Κοντινότερης γειτονίας (Neighbor joining) Fitch-Margoliash Ελάχιστης εξέλιξης

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1)

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

Γενετικός Προγραμματισμός

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Κεφάλαιο 14: Διαστασιολόγηση αγωγών και έλεγχος πιέσεων δικτύων διανομής

Συστήματα Επιχειρηματικής Ευφυίας. Οι αλγόριθμοι Hill Climbing, Simulated Annealing, Great Deluge, VNS, Tabu Search

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

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

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

ΚΕΦΑΛΑΙΟ 2 ΔΙΑΤΑΞΕΙΣ, ΜΕΤΑΘΕΣΕΙΣ, ΣΥΝΔΥΑΣΜΟΙ

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Αριθμητική Ανάλυση και Εφαρμογές

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

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

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

Ε ανάληψη. Ε αναλαµβανόµενες καταστάσεις. Αναζήτηση µε µερική ληροφόρηση. Πληροφορηµένη αναζήτηση. µέθοδοι αποφυγής

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

ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0

Διαχείριση Υδατικών Πόρων Πολυκριτηριακή ανάλυση

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πρόγραµµα Μεταπτυχιακών Σπουδών Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων Εργασία για το µάθηµα Τεχνητά Νευρωνικά ίκτυα και Μηχανική Μάθηση ιδάσκοντες: Καθηγητής Στέφανος Κόλλιας Καθηγητής Ανδρέας Σταφυλοπάτης Κωνσταντίνος Χ. Πατρούµπας ΑΘΗΝΑ ΙΑΝΟΥΑΡΙΟΣ 2005

Πίνακας περιεχοµένων 1 Εισαγωγή... 3 2 Βασικές αρχές των γενετικών µεθόδων... 4 2.1 Γενετικοί αλγόριθµοι... 4 2.1.1 Αναπαράσταση του πληθυσµού... 4 2.1.2 Συνάρτηση προσαρµογής... 5 2.1.3 Επιλογή... 5 2.1.4 Αναπαραγωγή... 5 2.1.5 ιασταύρωση... 6 2.1.6 Μετάλλαξη... 6 2.1.7 Στάδια εκτέλεσης γενετικού αλγορίθµου... 6 2.2 Γενετικός προγραµµατισµός... 6 2.2.1 Αναπαράσταση του πληθυσµού... 7 2.2.2 Τελεστές και συναρτήσεις... 7 2.2.3 Τερµατισµός εκτέλεσης... 8 2.2.4 Εκτέλεση διαδικασίας γενετικού προγραµµατισµού... 8 2.2.5 Παράλληλος γενετικός προγραµµατισµός... 8 2.3 Αξιολόγηση των γενετικών τεχνικών... 9 3 Βελτιστοποίηση ερωτηµάτων σε βάσεις δεδοµένων... 9 3.1 Στρατηγικές βελτιστοποίησης ερωτηµάτων... 9 3.2 Πρότυπες υλοποιήσεις... 10 3.2.1 Ο κύριος αλγόριθµος δυναµικού προγραµµατισµού... 11 3.2.2 Τυχαιοποιηµένοι αλγόριθµοι... 11 4 Γενετική βελτιστοποίηση ερωτηµάτων σύνδεσης... 11 4.1 Τεχνικές γενετικών αλγορίθµων... 12 4.1.1 Αλγόριθµος τοπικής γειτονιάς... 12 4.1.2 Αλγόριθµος βέλτιστης σειράς σύνδεσης... 12 4.2 Τεχνικές γενετικού προγραµµατισµού... 13 4.3 Γενετική βελτιστοποίηση στην PostgreSQL... 14 4.4 Αξιολόγηση... 14 5 Συµπεράσµατα... 15 Παραποµπές... 15 Ορολογία... 16 ΣΗΜΕΙΩΣΕΙΣ: * Τα σχήµατα 1, 2, 5, 6 και 7 έχουν ληφθεί από άλλες πηγές (αναγράφονται εντός του κειµένου). * Το παράδειγµα ερωτήµατος στην ενότητα 3.1 αποτελεί προσαρµογή από τον [Ion96]. * Εικόνα εξωφύλλου: Η πορεία σύγκλισης ενός αλγορίθµου γενετικού προγραµµατισµού µε χρήση παράλληλης επεξεργασίας για ένα ερώτηµα 70 συνδέσεων σε µια µικρή και µια µεγάλη βάση δεδοµένων (Πηγή: [SSF96]). 2

Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων Κ. Πατρούµπας kpatro@dblab.ece.ntua.gr Σύνοψη Τα ερωτήµατα που υποβάλλονται σε µια βάση δεδοµένων, πριν εκτελεστούν και επιστρέψουν αποτελέσµατα, περνούν από ένα στάδιο βελτιστοποίησης κατά το οποίο αναδιατυπώνονται και επιλέγονται γι αυτά αποδοτικότεροι αλγόριθ- µοι επεξεργασίας. Για κάθε ερώτηµα, ο βελτιστοποιητής οφείλει να παράγει ένα κατάλληλο προσχέδιο εκτέλεσης, προτιµώντας το φθηνότερο από άποψη υπολογιστικού κόστους, αφού κάνει µια προσεγγιστική εκτίµηση ανάµεσα σε πλήθος εναλλακτικών λύσεων. Εδώ και πάνω από µια δεκαετία διερευνάται η δυνατότητα αξιοποίησης τεχνικών του λεγόµενου εξελικτικού υπολογισµού για την επιλογή του καταλληλότερου προσχεδίου εκτέλεσης. Οι µέθοδοι που βασίζονται σε γενετικούς αλγορίθµους ή γενετικό προγραµµατισµό συναγωνίζονται µε αξιοσηµείωτη επιτυχία δοκιµασµένες τεχνικές δυναµικού προγραµµατισµού, ιδίως για περιπτώσεις ερωτηµάτων µε πολλαπλές συνδέσεις πινάκων. Στην εργασία αυτή, δίνεται µια συνοπτική θεµελίωση κρίσιµων πτυχών της θεωρίας του εξελικτικού υπολογισµού. Κατόπιν, ανασκοπούνται επιλεκτικά από την πρόσφατη βιβλιογραφία χαρακτηριστικές γενετικές τεχνικές που έχουν προταθεί ειδικά για βελτιστοποίηση ερωτηµάτων και σχολιάζονται οι επιδόσεις τους συγκριτικά προς τους συµβατικούς αλγορίθµους. Τέλος, περιγράφεται η πρακτική εφαρµογή της γενετικής βελτιστοποίησης ερωτηµάτων στο ευρέως διαδεδοµένο σύστηµα βάσεων δεδοµένων PostgreSQL. 1 Εισαγωγή Οι επιδόσεις ενός Συστήµατος ιαχείρισης Βάσεων εδοµένων (Σ Β ) κρίνονται σε σηµαντικό βαθµό από την ικανότητά του ν ανταποκρίνεται µε ταχύτητα κι αποτελεσµατικότητα στα ερωτήµατα (queries) που υποβάλλουν οι χρήστες. Συνήθως, τα ερωτήµατα διατυπώνονται σε µια δηλωτική γλώσσα ερωταποκρίσεων (όπως η SQL), προσδιορίζοντας απλώς τα δεδοµένα που ενδιαφέρουν, αλλά όχι τον τρόπο ανάκτησης ή υπολογισµού τους. Αυτόν τον κρίσιµο ρόλο αναλαµβάνει το υποσύστηµα του βελτιστοποιητή ερωτηµάτων (query optimizer), αναζητώντας την καταλληλότερη στρατηγική εκτέλεσης και έχοντας να επιλέξει ανάµεσα σε πολλές µεθόδους προσπέλασης των δεδοµένων και διαθέσιµους αλγόριθµους υλοποίησης των χρησιµοποιούµενων σχεσιακών τελεστών. Η διαδικασία απάντησης του ερωτήµατος προϋποθέτει την εξεύρεση του κατάλληλου προσχεδίου εκτέλεσης ερωτήµατος (query execution plan), δηλαδή µιας ακολουθίας σχεσιακών τελεστών που θα παράγει το τελικό αποτέλεσµα. Συνήθως, υπάρχουν διάφορες υποψήφιες εναλλακτικές στρατηγικές, ισοδύναµες µεν ως προς την απάντηση που επιστρέφουν, αλλά µε διαφορετικό κόστος εκτέλεσης, όπως αυτό προκύπτει προσµετρώντας τα επιµέρους κόστη των εµπλεκόµενων τελεστών. Ανάλογα µε τα χαρακτηριστικά της βάσης δεδοµένων όπου θα εφαρµοστούν, δύο προσχέδια εκτέλεσης µπορεί να εµφανίσουν τεράστιες αποκλίσεις στο συνολικό τους κόστος. Προφανώς, η διαδικασία βελτιστοποίησης επιχειρεί να εντοπίσει το βέλτιστο προσχέδιο, ώστε ο χρήστης να λάβει την απάντηση ταχύτερα, µε την καλύτερη δυνατή διαχείριση των πόρων του συστήµατος (δίσκος, µνήµη, χρόνος CPU). Οι περισσότερες προσεγγίσεις που έχουν προταθεί περιστρέφονται γύρω από το χειρισµό των συνδέσεων (joins) µεταξύ πινάκων. Πρόκειται για την πλέον απαιτητική υπολογιστικά σχεσιακή πράξη, ιδίως σε ό,τι αφορά την βελτιστοποίηση πολλαπλών συνδέσεων (multi-way joins), αφού πρέπει ν αποφασιστεί η πιο βολική σειρά υπολογισµού ανά ζεύγη σχεσιακών πινάκων. Για τα περισσότερα συµβατικά συστήµατα βάσεων δεδοµένων είναι σπάνιο φαινόµενο να εµφανιστούν πάνω από 10 συνδέσεις σε κάποιο ερώτηµα. Έτσι, ο χώρος λύσεων του προβλήµατος, δηλαδή ο συνολικός αριθµός των προσχεδίων που χρειάζεται να εξεταστούν, παρότι υψηλός, παραµένει εντός των δυνατοτήτων του συστήµατος ακόµη και για εξαντλητική αναζήτηση (exhaustive search) της βέλτιστης απ όλες τις εναλλακτικές στρατηγικές. Ήδη από τη δεκαετία του 70 έχουν προταθεί διάφορες προσεγγίσεις, όπως δυναµικός προγραµµατισµός, παράλληλη εκτέλεση, συνδυαστική βελτιστοποίηση κ.ά. που προσπαθούν να περιορίσουν την διερεύνηση του καταλληλότερου προσχεδίου σε επιλεγµένες περιοχές του χώρου λύσεων αποφεύγοντας περιττές αναζητήσεις. Ωστόσο, σε πολλές σύγχρονες εφαρµογές, όπως βιολογικές βάσεις δεδοµένων (λ.χ. για τη µελέτη γονιδίων, αποκωδικοποίηση DNA), σχεδιαστικές ή χωρικές βάσεις δεδοµένων (CAD, GIS) ή χειρισµό κανόνων σε επαγωγικές βάσεις δεδοµένων, ο αριθµός των συνδέσεων µπορεί να ανέλθει σε µερικές δεκάδες, οδηγώντας γενικότερα σε αυξηµένη πολυπλοκότητα. Τότε η εξαντλητική αναζήτηση γίνεται όχι απλώς ασύµφορη, αλλά εντελώς αδύνατη για περίπλοκα ερωτήµατα όπου οι τελεστές εµφανίζονται σε ποικίλους συνδυασµούς. Γι αυτό, δοκιµάστηκε µεταξύ άλλων η χρήση τυχαιοποιηµένων αλγορίθµων (randomized algorithms), µε τεχνικές που βασίζονται σε προσοµοιωµένη ανόπτηση (simulated annealing), επαναληπτική βελτίωση (iterative improvement) ή συγκερασµό τους (two-phase optimization). Ωστόσο, από τις αρχές της δεκαετίας του 90, άρχισε να διερευνάται η εφαρµογή εννοιών του εξελικτικού υπολογισµού (evolutionary computation), µια µεθοδολογία που αναπτύχθηκε στο χώρο της Υπολογιστικής Νοηµοσύνης και που αποσκοπεί στην επίλυση τυπικών προβληµάτων βελτιστοποίησης. Στην 3

Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων. πράξη φάνηκε ότι ο συνδυασµός των γενετικών τεχνικών µε παράλληλες υλοποιήσεις των αλγορίθµων βελτιστοποίησης ερωτηµάτων µπορεί όντως ν αποδειχθεί ανταγωνιστικός των συµβατικών µεθόδων που βασίζονται σε δυναµικό προγραµ- µατισµό, ενώ το όφελος προσαυξάνεται σε περιπτώσεις ερωτηµάτων µε µεγάλο αριθµό σχεσιακών συνδέσεων. Στην συνέχεια της εργασίας, προτάσσεται µια συνοπτική παρουσίαση των θεµελιωδών αρχών του εξελικτικού υπολογισµού, επιµένοντας περισσότερο σε πτυχές που εφαρµόζονται σε προβλήµατα βάσεων δεδοµένων. Ακολούθως, περιγράφεται το πρόβληµα της βελτιστοποίησης ερωτηµάτων, ενώ ανασκοπούνται διεξοδικά οι κύριες γενετικές τεχνικές που έχουν εµφανιστεί στην πρόσφατη βιβλιογραφία. Επίσης, επιχειρείται µια συγκριτική αποτίµηση αυτών των µεθόδων σε σχέση µε τη συµβατική βελτιστοποίηση ερωτηµάτων, συνεκτιµώντας την υλοποίηση µιας παραλλαγής της γενετικής βελτιστοποίησης ερωτηµάτων όπως παρέχεται από το σύστηµα διαχείρισης βάσεων δεδοµένων PostgreSQL. Τέλος, εξάγονται συµπεράσµατα σχετικά µε τις επιδόσεις της γενετικής βελτιστοποίησης ερωτηµάτων και διακρίνονται οι κύριοι άξονες της τρέχουσας διερεύνησης του προβλήµατος. 2 Βασικές αρχές των γενετικών µεθόδων Ο εξελικτικός υπολογισµός συγκαταλέγεται στις σύγχρονες τάσεις για την αντιµετώπιση υπολογιστικών ζητηµάτων κατά κύριο λόγο, βελτιστοποίηση και µιµείται τους µηχανισµούς της φυσικής εξέλιξης όπως είναι γνωστοί απ τη Βιολογία. Σύµφωνα µε τη δαρβινική θεωρία, ένας πληθυσµός εξελίσσεται προοδευτικά απορρίπτοντας τα πιο αδύναµα µέλη του και αναπαράγοντας τα πιο ισχυρά ώστε να γεννήσουν ακόµη καλύτερους απογόνους. Οι στοχαστικές αυτές µέθοδοι είναι συγγενικές µε τα νευρωνικά δίκτυα (neural networks) και την εκµάθηση µηχανών (machine learning) και αξιοποιούν τις ισχυρές δυνατότητες των σηµερινών υπολογιστικών συστηµάτων. Μάλιστα, ο συνδυασµός τους µε µη συµβατικές αλγοριθµικές τεχνικές (λ.χ. παράλληλη επεξεργασία) επιτρέπει τη δηµιουργία περισσότερο ευέλικτων και αποτελεσµατικών µοντέλων όταν πρόκειται να εξερευνηθούν εκτεταµένοι χώροι αναζήτησης πιθανών λύσεων ενός προβλήµατος. ύο κύριοι εκπρόσωποι εξελικτικών αλγορίθµων (evolutionary algorithms) είναι οι γενετικοί αλγόριθµοι (genetic algorithms) και ο γενετικός προγραµµατισµός (genetic programming). Οι γενετικοί αλγόριθµοι είναι αρκετά εδραιωµένοι ως µέθοδος και έχουν κριθεί ιδιαίτερα αποδοτικοί για συνδυαστικά προβλήµατα ή εκτίµηση παραµέτρων. Εξάλλου, ο γενετικός προγραµµατισµός εµφανίζει έντονη διάδοση κατά την τελευταία δεκαετία, βρίσκοντας αρκετές εφαρµογές και προσφέροντας σηµαντικές δυνατότητες στη µοντελοποίηση µη τετριµµένων προβληµάτων, ιδιαίτερα όταν ιδανική λύση δεν υπάρχει ή οι παράµετροι του προβλήµατος µεταβάλλονται διαρκώς. 2.1 Γενετικοί αλγόριθµοι Στα 1975 ο John Holland µε το βιβλίο του Adaptation in Natural and Artificial Systems εισηγήθηκε την αξιοποίηση εννοιών της βιολογικής εξέλιξης των ειδών για τη µελέτη υπολογιστικών ζητηµάτων. Η συλλογιστική του δεν αποσκοπούσε τόσο στην επινόηση αλγορίθµων για την επίλυση συγκεκριµένων προβληµάτων, όσο κυρίως στη διερεύνηση της δυνατότητας µεταφοράς των αφηρηµένων µηχανισµών της Γενετικής και της Βιολογίας στα συστήµατα υπολογιστών. Ο Holland πρότεινε την χρήση δυαδικών αναπαραστάσεων µε 0 και 1 για τις υποψήφιες λύσεις των προβληµάτων, ιδέα που σαφώς µιµείται τη δόµηση του DNA των κυττάρων από τα χρωµοσώµατα. Η βασική ιδέα ήταν ότι οι καλύτεροι εκπρόσωποι κάθε γενιάς, όταν αναπαράγονται, τείνουν να µεταβιβάζουν τα γονίδιά τους στους απογόνους, εκείνοι µε τη σειρά τους στους δικούς τους κ.ο.κ. Έτσι, από γενιά σε γενιά εκτιµάται ότι προοδευτικά κάποιοι απόγονοι θα εµφανίζουν βελτιωµένα χαρακτηριστικά, δηλαδή θ αντιπροσωπεύουν αποδοτικότερες λύσεις. Έκτοτε ο όρος γενετικός αλγόριθµος έχει λάβει ευρύτερη σηµασία και παρουσιάζει µεγαλύτερη ευελιξία ως προς την αρχική σύλληψή του. Πράγµατι, η δυνατότητα ταυτόχρονης διερεύνησης ανάµεσα σε πληθώρα πιθανών λύσεων µε χρήση παραλλήλων αρχιτεκτονικών, συνοδεύεται από την επιδίωξη της προσαρµοστικότητας του αλγορίθµου στις διαρκώς µεταβαλλόµενες παραµέτρους του προβλήµατος [Gol89, Mic99, Mit97]. 2.1.1 Αναπαράσταση του πληθυσµού Στην πιο κοινή µορφή γενετικών αλγορίθµων, κάθε σηµείο του χώρου αναζήτησης των λύσεων του προβλήµατος κωδικοποιείται µε µια σταθερού µεγέθους συµβολοσειρά (string) που αποκαλείται χρωµόσωµα (chromosome). Τα δοµικά στοιχεία που απαρτίζουν τη συµβολοσειρά ονοµάζονται γονίδια (genes): συνήθως πρόκειται για ακολουθίες δυαδικών ψηφίων (bits) µε ενδεχόµενες τιµές 0 ή 1 (allele). Επίσης, έχουν προταθεί αναπαραστάσεις των χρωµοσωµάτων µε ακεραίους ή πραγµατικούς αριθµούς, καθώς και µε δυαδικούς αριθµούς κατά κώδικα Gray. Κάθε ψηφίο έχει συγκεκριµένη θέση (locus) στην ακολουθία, όπως δηλώνεται από τη διάταξή του στην κωδικοποίηση του χρωµοσώµατος. Ο σχηµατισµός των χρωµοσωµάτων που θ αποτελέσουν τον αρχικό πληθυσµό γίνεται µε τυχαίο τρόπο. Για την κωδικοποίηση των συµβολοσειρών, υιοθετούνται δύο βασικές αρχές [Gol89]: Η αρχή των σηµαντικών δοµικών στοιχείων (meaningful building blocks) επιτάσσει την επιλογή όσο το δυνατόν µικρότερων συµβολοσειρών µε διακριτά δοµικά στοιχεία (γονίδια) στις διάφορες θέσεις τους. Σύµφωνα µε την αρχή του ελάχιστου αλφαβήτου (minimal alphabet), υπάρχει προτίµηση για το µικρότερο δυνατό αλφάβητο συµβόλων που να παρέχει επαρκή έκφραση του προβλήµατος, επιτρέποντας ακόµη και µη δυαδικές αναπαραστάσεις (λ.χ. ακεραίους αριθµούς). Έπειτα, εφαρµόζεται ένας εξαιρετικά απλός στη σύλληψή του επαναληπτικός µηχανισµός: συµβολοσειρές αντιγράφονται αυτούσιες ή συντίθενται καινούργιες από υποτµήµατα άλλων προγενέστερων σε αλλεπάλληλους κύκλους (γενιές), διατηρώντας κάθε φορά έναν σταθερό πληθυσµό µε τους καλύτερους εκπροσώπους κάθε γενιάς. Η απλότητα της µεθόδου εξηγεί και τη σηµαντική διάδοσή της κατά τις δύο τελευταίες δεκαετίες στο πεδίο της Υπολογιστικής Νοηµοσύνης. Το σύνολο των χρωµοσωµάτων που κωδικοποιούν πιθανές λύσεις αναφέρεται συχνά στη βιβλιογραφία ως γονότυπος (genotype), ενώ η αποκωδικοποίησή τους που υλοποιείται βάσει 4

Βασικές αρχές των γενετικών µεθόδων Σχήµα 1: Η σταδιακή σύγκλιση των τιµών της συνάρτησης προσαρµογής σε γενετικές τεχνικές. (Πηγή: [JMF99], σελ. 286) µιας συνάρτησης προσαρµογής ώστε να προκριθούν οι καταλληλότεροι, αποκαλείται φαινότυπος (phenotype). Στην πραγµατικότητα ο γονότυπος περιλαµβάνει σηµεία στο χώρο αναζήτησης των λύσεων (search space), ενώ ο φαινότυπος αναφέρεται σε σηµεία στο χώρο των λύσεων (solution space). Η διάκριση µεταξύ των δύο χώρων µπορεί να φανεί αντλώντας ένα παράδειγµα απ τη Βιολογία: το DNA είναι δυνατόν να θεωρηθεί ως γονότυπος, αφού περιλαµβάνει άπειρους συνδυασµούς γονιδίων, ενώ φαινότυπος είναι λ.χ. οι πρωτεΐνες που αποτελούν ένα υποσύνολο µε συγκεκριµένη δοµή και ιδιότητες (ενώσεις αµινοξέων που ικανοποιούν συγκεκριµένη «συνάρτηση προσαρµογής») [Gol89]. 2.1.2 Συνάρτηση προσαρµογής Η διερεύνηση µε τη µέθοδο των γενετικών αλγορίθµων είναι κατά κάποιο τρόπο «τυφλή»: µια αντικειµενική συνάρτηση, η λεγόµενη συνάρτηση προσαρµογής (fitness function), χρησιµοποιείται για ν αξιολογήσει την ποιότητα του πληθυσµού κάθε γενιάς και να καθοδηγήσει τον σχηµατισµό της επόµενης. ιαισθητικά, η συνάρτηση προσαρµογής εκφράζει τη βιωσιµότητα (viability) κάθε µέλους του πληθυσµού, δηλαδή την πιθανότητα αυτό να επιβιώσει στην επόµενη γενιά, καθώς επίσης και τη γονιµότητά του (fertility), όπως προσδιορίζεται από τον αριθµό των απογόνων που µπορεί να δώσει. Είναι αξιοσηµείωτο ότι οι τιµές της συνάρτησης ίσως εµφανίζουν απότοµες αυξοµειώσεις από γενιά σε γενιά, όµως σταδιακά συγκλίνουν προς την περιοχή της λύσης του προβλήµατος (βλ. Σχ. 1). εν υπάρχουν προκαθορισµένες συναρτήσεις προσαρµογής γενικής χρήσεως, εφόσον η εκλογή της καταλληλότερης συνδέεται άρρηκτα µε τη φύση του προβλήµατος. Λ.χ. σ ένα πρόβληµα κατάταξης στοιχείων σε κατηγορίες προτιµάται η ελαχιστοποίηση του µέσου τετραγωνικού σφάλµατος, ενώ σε κάποιο άλλο πρόβληµα µπορεί να βολεύει η µεγιστοποίηση του προσδοκώµενου κέρδους (λ.χ. στην πρόβλεψη της εξέλιξης της τιµής µετοχών). 2.1.3 Επιλογή Κατά τη λειτουργία της επιλογής (selection), γονείς και απόγονοι µιας γενιάς επιβιώνουν στην επόµενη ενώ άλλοι απορρίπτονται ώστε να διατηρηθεί σταθερός ο πληθυσµός. Μετά από µερικές γενιές, κάποιοι εκπρόσωποι θα περιλαµβάνουν χρωµοσώµατα που αποτελούν αποδεκτές λύσεις του προβλήµατος, επιτυγχάνοντας απόλυτο µέγιστο ή έστω ένα καλό τοπικό µέγιστο στη συνάρτηση προσαρµογής. Ο βαθµός προσαρµογής των απογόνων αποτελεί κρίσιµη παράµετρο για τη σύγκλιση της διαδικασίας και την ανεύρεση της λύσης. Καθώς οι γενιές εξελίσσονται, η διαφορά ανάµεσα στον καλύτερο και τον χειρότερο εκπρόσωπο της καθεµιάς ολοένα θα ελαττώνεται. Αυτό που κυρίως πρέπει ν αποφευχθεί είναι η κυριαρχία κάποιων µελών ήδη από τις πρώτες γενιές, φαινόµενο που χαρακτηρίζεται ως πρόωρη σύγκλιση (premature convergence) του αλγορίθµου. Εάν από κάθε γενιά επιλέγονται κάθε φορά µόνο οι καλύτεροι απόγονοι, είναι πιθανόν η αναζήτηση να εγκλωβιστεί πολύ γρήγορα σε τοπικά µέγιστα. Αν πάλι δεν προκρίνονται οι καλύτεροι, η πρόοδος από γενιά σε γενιά θα είναι πολύ µικρή, µην επιτυγχάνοντας ικανοποιητικό αποτέλεσµα ακόµη κι ύστερα από αρκετές επαναλήψεις. Χρειάζεται λοιπόν κάποιος ρυθµιστικός µηχανισµός του τρόπου επιλογής των απογόνων, πράγµα που επιτυγχάνεται µε κλιµάκωση της προσαρµογής (fitness scaling). Πιο συγκεκριµένα, η τιµή της συνάρτησης προσαρµογής µετασχηµατίζεται µε κάποιο τρόπο, ώστε αφενός να εµποδίζεται η κυριαρχία κάποιων καλών απογόνων ήδη από τις πρώτες γενιές, ενώ αργότερα ενθαρρύνεται ο υγιής ανταγωνισµός µεταξύ περίπου ισότιµων χρωµοσωµάτων. Για κάθε γενιά t και κάθε µέλος S i του πληθυσµού, η νέα συνάρτηση προσαρµογής f (S i (t )) µπορεί εναλλακτικά να συνδέεται µε την αρχική f (S i (t )) σύµφωνα µε µια γραµµική, σιγµοειδή ή εκθετική σχέση [Gol89]. 2.1.4 Αναπαραγωγή Η αναπαραγωγική διαδικασία φροντίζει για την αντιγραφή κάποιων συµβολοσειρών αυτούσιων και στην επόµενη γενιά. Η επιλογή των µελών που θα αντιγραφούν γίνεται βάσει της επίδοσής τους, µε τρεις κυρίως µεθόδους: Στην πλέον τυπική περίπτωση, η επιλογή ελέγχεται από το λόγο προσαρµογής (fitness-proportionate selection) P i, βάσει του οποίου το i-στό χρωµόσωµα θα αναπαραχθεί τόσες φορές όσες και το πηλίκο της τιµής προσαρµογής του προς τη µέση τιµή προσαρµογής για όλο τον πληθυσµό της γενιάς t: f ( Si ( t)) Pi = f ( S( t)) Εναλλακτικά, η επιλογή µπορεί να γίνει µε βάση τη σειρά κατάταξης (ranking selection) της τιµής προσαρµογής των µελών και όχι µε την απόλυτη τιµή. Η τεχνική αυτή, αν και πιο χρονοβόρα λόγω της ανάγκης ταξινόµησης (sorting) των τιµών, αποτρέπει πρόωρη σύγκλιση του αλγορίθµου και τείνει να διατηρήσει την ποικιλία του πληθυσµού. Τρίτη µέθοδος είναι η ανταγωνιστική επιλογή (tournament selection). Αρχικά επιλέγονται τυχαία δύο χρωµοσώµατα από τον πληθυσµό της τρέχουσας γενιάς και για το καθένα υπολογίζεται η τιµή προσαρµογής του. Ένας τυχαίος αριθµός r από το διάστηµα [0..1] συγκρίνεται µε µια σταθερά k (λ.χ. 0.75). Εάν k>r, θα υπερισχύσει το χρωµόσωµα µε την υψηλότερη τιµή προσαρµογής, αλλιώς εκείνο µε το χαµηλότερο βαθµό. Τα δύο αρχικά χρωµοσώµατα δεν αποκλείονται από επόµενη επιλογή. 5

Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων. Από απόψεως υπολογιστικού χρόνου, η ανταγωνιστική επιλογή είναι περισσότερο αποτελεσµατική από τις δύο προηγούµενες, επειδή ο µεν λόγος προσαρµογής απαιτεί υπολογισµό σε δύο γύρους (πρώτα της µέσης τιµής προσαρµογής για όλο τον πληθυσµό και έπειτα της εκτιµώµενης τιµής για κάθε χρωµόσωµα), ενώ η επιλογή µε τη σειρά κατάταξης προϋποθέτει ταξινόµηση όλων των τιµών προσαρµογής. Η εξέλιξη του γενετικού αλγορίθµου κατά γενιές δεν είναι φυσικά η µόνη δυνατή. ιάφορες εφαρµογές έχουν στηριχτεί στην διαδοχική επικάλυψη των γενεών σε κάποιο βαθµό, όπου ένα τµήµα µιας γενιάς διατηρείται αυτούσιο και στην επόµενη. Το ποσοστό των νέων µελών χαρακτηρίζεται ως «χάσµα γενεών» ( generation gap ). Η επιλογή σταθερής κατάστασης (steady-state selection) εφαρµόζεται µε αξιοσηµείωτη επιτυχία σε συστήµατα που βασίζονται σε κανόνες απόφασης (rule-based systems). Η λειτουργία της προβλέπει τη διαρκή αντικατάσταση των λιγότερο προσαρµοσµένων µελών του πληθυσµού από απογόνους των πιο επιτυχηµένων, όπως αυτοί προκύπτουν έπειτα από διασταύρωση και µετάλλαξη. 2.1.5 ιασταύρωση Αφού αντιγραφούν, οι νέες συµβολοσειρές διασταυρώνονται µεταξύ τους µε τυχαίο τρόπο. Στην περίπτωση διασταύρωσης ενός σηµείου (one-point crossover), για κάθε ζευγάρι προσδιορίζεται η θέση k της συµβολοσειράς όπου θα διασταυρωθούν. Η θέση k επιλέγεται βάσει µιας οµοιόµορφης τυχαίας κατανοµής από το διάστηµα [1..l-1], όπου l είναι το µέγεθος των συµβολοσειρών (ο αριθµός των δυαδικών τους ψηφίων). ύο νέες συµβολοσειρές δηµιουργούνται µε την ανταλλαγή (swap) όλων των ψηφίων µεταξύ των θέσεων k+1 και l. Για παράδειγµα, έστω ότι πρόκειται να διασταυρωθούν οι εξής συµβολοσειρές µιας γενιάς: S 1 = 0 1 1 0 1 0 S 2 = 1 1 0 1 1 1 Αν η θέση διασταύρωσης είναι k=4 (όπως δηλώνεται µε το σύµβολο ), τότε ως αποτέλεσµα της διασταύρωσης θα εναλλαγούν τα δύο τελευταία τµήµατα κάθε συµβολοσειράς και θα προκύψουν δύο καινούργια µέλη της νέας γενιάς: ' S 1 = 0 1 1 0 1 1 S = 1 1 0 1 1 0 ' 2 Επειδή τα άκρα των συµβολοσειρών παραµένουν ανέπαφα µετά τη διασταύρωσή τους, διατυπώθηκε η επιφύλαξη ότι ο αλγόριθµος συµπεριφέρεται χαριστικά προς ορισµένα σηµεία του χώρου λύσεων. Γι αυτό το λόγο, ιδίως για δυαδικές αναπαραστάσεις, προτάθηκε η τεχνική της διασταύρωσης δύο σηµείων (two-point crossover), βάσει της οποίας επιλέγονται δύο θέσεις στην ακολουθία και ανταλλάσσονται τα ενδιάµεσα τµήµατα των συµβολοσειρών. Η επιλογή του τρόπου διασταύρωσης είναι πάντως στενά συνυφασµένη µε το προς επίλυση πρόβληµα και στη βιβλιογραφία δεν διατυπώνεται σαφής προτίµηση προς µια από τις δύο µεθόδους. Στις πιο πρόσφατες υλοποιήσεις, άλλοτε ακολουθείται η διασταύρωση δύο σηµείων και άλλοτε η οµοιό- µορφη διασταύρωση ενός σηµείου µε προκαθορισµένο ρυθµό διασταύρωσης p c 0.7-0.8, ο οποίος εκφράζει το ποσοστό του πληθυσµού κάθε γενιάς που θα προκύπτει από διασταύρωση. 2.1.6 Μετάλλαξη Ενώ η διασταύρωση αποτελεί το βασικό µοχλό παραγωγής νέων και ποικίλων συµβολοσειρών, η µετάλλαξη (mutation) παίζει δευτερεύοντα ρόλο επιδιώκοντας να αποτρέψει τη σταθεροποίηση κάποιων γονιδίων σε συγκεκριµένες θέσεις της συµβολοσειράς και να ενισχύσει την ποικιλία του πληθυσµού. Σε µια απλή δυαδική αναπαράσταση του πληθυσµού, µετάλλαξη συµβαίνει όταν σε κάποια τυχαία θέση της συµβολοσειράς δίνεται η συµπληρωµατική τιµή του υφιστάµενου ψηφίου. Λ.χ. είναι πιθανόν να αλλάξει η τιµή στη δεύτερη θέση της συµβολοσειράς S 2 και το 1 να γίνει 0: S 2 = 1 0 0 1 1 0 Η πιθανότητα p m να συµβεί αυτό το φαινόµενο σε κάθε γενιά χαρακτηρίζεται ως ρυθµός µετάλλαξης (mutation probability, mutation rate) και είναι γενικά πολύ µικρή (συνήθως µια µετάλλαξη για κάθε 1000 δυαδικά ψηφία, άρα p m 0.001). 2.1.7 Στάδια εκτέλεσης γενετικού αλγορίθµου Συνοπτικά, για κάποιο δεδοµένο πρόβληµα και µε προσδιορισµένη την αναπαράσταση των υποψηφίων λύσεων, ένας γενετικός αλγόριθµος λειτουργεί ως εξής: 1. Πρώτα ορίζεται ο αρχικός πληθυσµός µε τυχαίο τρόπο (λ.χ. γεννήτρια ψευδοτυχαίων αριθµών) αποτελούµενος από n l-ψήφια χρωµοσώµατα S i που αντιπροσωπεύουν τις υποψήφιες λύσεις του προβλήµατος για τη γενιά t=1. 2. Για κάθε χρωµόσωµα S i (µε i=1..n) της γενιάς t υπολογίζεται η τιµή της συνάρτησης προσαρµογής f (S i (t )). 3. Τα ακόλουθα βήµατα επαναλαµβάνονται µέχρις ότου προκύψουν n απόγονοι για την επόµενη γενιά t+1: i. Επιλέγεται για αναπαραγωγή ένα ζεύγος χρωµοσωµάτων της παρούσας γενιάς µε πιθανότητα ανάλογη της υπολογισµένης τιµής της συνάρτησης προσαρµογής. εν αποκλείεται το ίδιο χρωµόσωµα να αναπαραχθεί πολλές φορές σε µία γενιά. ii. Με βάση τον προκαθορισµένο ρυθµό διασταύρωσης p c το ζεύγος των χρωµοσωµάτων διασταυρώνεται σε µια τυχαία επιλεγµένη θέση της συµβολοσειράς (υπόθεση οµοιόµορφης κατανοµής), οπότε προκύπτουν δύο απόγονοι. Εάν δεν συµβεί διασταύρωση, οι απόγονοι είναι αυτούσιοι οι επιλεγέντες γονείς. iii. Κατόπιν, οι δύο απόγονοι υφίστανται µετάλλαξη µε προκαθορισµένη πιθανότητα p m (ο ρυθµός µετάλλαξης) σε τυχαία θέση της συµβολοσειράς και το αποτέλεσµα που προκύπτει εντάσσεται στον νέο πληθυσµό. 4. Εφόσον τα νέα µέλη προστίθενται ανά ζεύγη, αν ο πληθυσµός n είναι περιττός αριθµός, τότε ένα µέλος του νέου πληθυσµού (κάποιος από τους απογόνους) πρέπει να διαγραφεί µε τυχαίο τρόπο. Ο νέος πληθυσµός αντικαθιστά τον υπάρχοντα και η διαδικασία επαναλαµβάνεται από το στάδιο 2. Κάθε επανάληψη αντιστοιχεί σε µια γενιά. 2.2 Γενετικός προγραµµατισµός Ο John Koza εισήγαγε την έννοια γενετικός προγραµµατισµός (genetic programming) το 1992 ως µετεξέλιξη των γενετικών 6

Βασικές αρχές των γενετικών µεθόδων αλγορίθµων: ο πληθυσµός αντί να αποτελείται από δυαδικές αναπαραστάσεις, συνίσταται από συµβολικές µαθηµατικές εκφράσεις, δηλαδή προγράµµατα υπολογιστών. Κύριος στόχος του γενετικού προγραµµατισµού είναι να παρέχει γενικές µεθόδους επίλυσης προβληµάτων µε τις οποίες κτίζεται ένα πρόγραµµα βάσει της ανάλυσης απαιτήσεων. Ξεκινώντας από µια σειρά τυχαία κατασκευασµένων προγραµµάτων, η τεχνική αυτή προοδευτικά εξελίσσει ένα πληθυσµό προγραµµάτων επί σειρά γενεών, ακολουθώντας τις βιολογικές έννοιες της διασταύρωσης, της µετάλλαξης και της φυσικής επιλογής. Όπως µια οµάδα προγραµµατιστών επιφέρουν προοδευτικές βελτιώσεις στον κώδικα ενός προγράµµατος σε αλλεπάλληλες εκδοχές (versions), έτσι και µε το γενετικό προγραµµατισµό δηµιουργούνται νέα προγράµ- µατα από ήδη υπάρχοντα, αρκεί να είναι συντακτικά σωστά και εκτελέσιµα [Lan98]. Τα προγράµµατα που αποτελούν τον πληθυσµό κάθε γενιάς είναι σύνθεση συναρτήσεων (αριθµητικών πράξεων, λογικών και ανισωτικών τελεστών, ειδικών συναρτήσεων του προβλήµατος) µε τερµατικούς όρους (terminals, λ.χ. σταθερές, µεταβλητές). Έτσι περιττεύει η αναγκαιότητα µετασχηµατισµού δυαδικών αναπαραστάσεων σ ένα µοντέλο, παρέχοντας µεγαλύτερη ευελιξία. Η επιλογή κατάλληλων συναρτήσεων και τερµατικών όρων προσδιορίζει το χώρο λύσεων του προβλήµατος και τελικά κρίνει την επιτυχία της διαδικασίας. 2.2.1 Αναπαράσταση του πληθυσµού Τα προγράµµατα αναπαρίστανται µε τη µορφή S-εκφράσεων σε γλώσσα LISP (LISt Processing language) και µάλιστα µε προθεµατικό συµβολισµό (prefix notation). Οι εκφράσεις αυτές µπορούν να αναπαρασταθούν και ως δένδρα δοµικής ανάλυσης (parse trees) των οποίων οι κόµβοι περιέχουν τις συναρτήσεις ενώ τα φύλλα τηρούν τους τερµατικούς όρους. Έτσι επιτυγχάνεται καλύτερη εποπτεία των δοµών που χρησιµοποιούνται και διευκολύνεται η διαισθητική κατανόηση των λειτουργιών που θα εφαρµοστούν στα µέλη κάθε γενιάς (Σχ. 2). Από το συνδυασµό ενός αρχικού συνόλου συναρτήσεων και ενός αντίστοιχου συνόλου τερµατικών όρων (µεταβλητών και σταθερών), µπορεί να σχηµατιστεί ένας πολύ µεγάλος αριθµός µαθηµατικών εκφράσεων µεταβαλλόµενου µήκους και πολυπλοκότητας. Η βασική διαφορά από την δυαδική αναπαράσταση που χρησιµοποιούν οι γενετικοί αλγόριθµοι είναι ότι µε το γενετικό προγραµµατισµό επιτυγχάνεται ιεραρχική δοµή, γι αυτό άλλωστε είναι δυνατή η δενδρική αναπαράσταση. Παρόλο που η φύση του προβλήµατος επηρεάζει την επιλογή των συναρτήσεων και των όρων που θα σχηµατίσουν τις µαθηµατικές εκφράσεις, από κοινού τα δύο σύνολα πρέπει να εµφανίζουν δύο βασικές ιδιότητες: Κλειστότητα (closure). Το σύνολο των συναρτήσεων είναι κλειστό όταν κάθε συνάρτηση µπορεί να δεχθεί ως όρισµα όποια τιµή ή τύπο δεδοµένων επιστρέφεται από κάποια άλλη συνάρτηση ή λαµβάνεται από κάποιο τερµατικό όρο. Έτσι, λ.χ. προλαµβάνεται διαίρεση µε 0 ή µπορεί να οριστεί ότι το αποτέλεσµα µιας τέτοιας διαίρεσης είναι 1. Αυτό εγγυάται ότι τα προγράµµατα που θα προκύψουν θα είναι συντακτικά ορθά και συνήθως επιτυγχάνεται επιλέγοντας συναρτήσεις και όρους από το ίδιο πεδίο τιµών (λ.χ. ακεραίους). Σχήµα 2: ένδρα δοµικής ανάλυσης για τις µαθηµατικές εκφράσεις (* A (- (* A A ) A))) και (/ A (/ (/ (SQRT ( A)) A) (/ A A))). (Πηγή: [Mit96], σελ.39) Επάρκεια (sufficiency). Το σύνολο των συναρτήσεων και των τερµατικών όρων όχι µόνο µπορεί να εκφράσει τη λύση του προβλήµατος, αλλά είναι ικανό να οδηγήσει σ αυτήν τη λύση µετά από πεπερασµένο αριθµό γενεών. Όπως και στους γενετικούς αλγορίθµους, µε τη συνάρτηση προσαρµογής αποφασίζεται πόσο καλή είναι η λύση που κάποιο πρόγραµµα δίνει στο προς επίλυση πρόβληµα. Το αποτέλεσµα της συνάρτησης προσαρµογής συνδέεται στενά µε το µέγεθος των µελών. Ο γενετικός προγραµµατισµός είναι δυνατόν να οδηγήσει σε ανεξέλεγκτα µεγάλες εκφράσεις (προγράµµατα) µε πολύ µικρή πρακτική αξία. Για την καταπολέµηση του φαινοµένου, η έννοια της φειδούς (parsimony) προβλέπει εξαναγκασµό των µελών να µην υπερβαίνουν ένα ορισµένο µέγεθος, συνήθως ένα προκαθορισµένο µέγιστο µήκος προγράµµατος ή ύψος δένδρου. 2.2.2 Τελεστές και συναρτήσεις Οι τελεστές που χρησιµοποιούνται για το γενετικό προγραµµατισµό είναι αντίστοιχοι όσων εφαρµόζονται στους γενετικούς αλγορίθµους: Επιλογή. Συνήθως, χρησιµοποιείται η απόλυτη τιµή της προσαρµογής κάθε λύσης σε σχέση µε τις υπόλοιπες της ίδιας γενιάς. Έτσι, µε συνάρτηση προσαρµογής f (S i (t )) για τη λύση S i στη γενιά t, η πιθανότητα επιλογής της στην επόµενη γενιά δίνεται από το λόγο προσαρµογής P i = M j= 1 f ( S ( t)) i f ( S ( t)) όπου ο παρονοµαστής είναι το άθροισµα των τιµών προσαρµογής για όλα τα µέλη της γενιάς t. Όσο υψηλότερη είναι η πιθανότητα, τόσο πιο σίγουρη είναι η αντιγραφή του µέλους αυτού στη νέα γενιά. Ο κίνδυνος πρόωρης σύγκλισης είναι πιθανός όταν ο αρχικός πληθυσµός περιλαµβάνει προγράµµατα που δίνουν σχετικά καλές λύσεις. Όπως και στους γενετικούς αλγορίθµους, διάφορες τεχνικές κλιµάκωσης προσαρµογής (µε windowing, sigma scaling ή linear scaling) αποπειρώνται να αποκλείσουν το ενδεχό- µενο κάποιο µέλος να κυριαρχήσει επί των υπολοίπων ήδη από τις πρώτες γενιές. Επίσης, εφαρµόζονται οι µέθοδοι της επιλογής κατά σειρά κατάταξης και της ανταγωνιστικής επιλογής. j 7

Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων. ιασταύρωση. Αρχικά, βάσει της τιµής προσαρµογής επιλέγονται οι δύο γονείς και στη συνέχεια, ανεξάρτητα για κάθε γονέα, το σηµείο διασταύρωσης (crossover point), δηλαδή το σηµείο όπου θα αποκοπεί ένας κλάδος (branch, subtree) απ τον καθένα, χωρίς να είναι απαραίτητο να διαλεχτεί στην ίδια θέση για κάθε γονέα. Η διασταύρωση συνίσταται στην ανταλλαγή (swap) του επιλεγµένου κλάδου κάθε γονέα µε τον αντίστοιχο κλάδο του άλλου, οπότε από δύο γονείς παράγονται ακριβώς δύο απόγονοι. Σε αντίθεση µε τους γενετικούς αλγορίθµους, όπου διασταυρώσεις ίδιων γονέων οδηγούν σε απαράλλαχτους απογόνους, µε την µεθοδολογία του γενετικού προγραµµατισµού ακόµη και δύο πανοµοιότυποι γονείς θα δώσουν δύο διαφορετικούς απογόνους εάν το σηµείο διασταύρωσης δεν επιλεγεί στην ίδια θέση. Εποµένως, δύο ταυτόσηµες λύσεις είναι δυνατόν να δώσουν στην επόµενη γενιά δύο εντελώς διαφορετικές, γεγονός που αποτελεί συγκριτικό πλεονέκτηµα ως προς τους γενετικούς αλγορίθµους. Επιπλέον, αντί να υπάρχουν σταθερού µήκους δοµές σε κάθε γενιά, επιτρέπονται και αναπαράγονται µεταβλητά µεγέθη προγραµµάτων, γεγονός που προσδίδει περισσότερο δυναµισµό στην τεχνική αυτή. Βέβαια, προκειµένου να αποφευχθούν υπερβολικά µεγάλες και συνεπώς υπολογιστικά περίπλοκες εκφράσεις, συνήθως τίθεται ένα όριο στο µέγιστο βάθος του δένδρου, ώστε ο αριθµός των επιπέδων να µην ξεπερνά κάποιον σταθερό αριθµό. Μετάλλαξη. Ένα µικρό ποσοστό από τα µέλη κάθε γενιάς θα υποστεί µετάλλαξη, µε δύο διαφορετικούς τρόπους. Στην πρώτη περίπτωση, µια συνάρτηση από το σύνολο των συναρτήσεων που έχουν προκαθοριστεί µπορεί να αντικαταστήσει µιαν άλλη συνάρτηση ή ένας τερµατικός όρος κάποιον άλλο τερµατικό όρο (point mutation). Εναλλακτικά, ένας ολόκληρος κλάδος µπορεί να υποκατασταθεί απ έναν άλλο κλάδο ορισµένου βάθους που δηµιουργείται κατά τυχαίο τρόπο (subtree mutation). 2.2.3 Τερµατισµός εκτέλεσης Η εκτέλεση µιας διαδικασίας γενετικού προγραµµατισµού µπορεί να τερµατιστεί είτε όταν συµπληρωθεί ένας αριθµός γενεών (συνήθως 50) είτε όταν επιτευχθεί ένα προκαθορισµένο επίπεδο της συνάρτησης προσαρµογής. Βέβαια, χρειάζεται αρκετός πειραµατισµός ώστε να οριστεί ο κατάλληλος αριθµός γενεών ή ένα ικανοποιητικό επίπεδο τιµών προσαρµογής, δεδοµένου ότι δεν είναι γνωστό εκ των προτέρων εάν και πού ακριβώς η συνάρτηση εµφανίζει µέγιστο. Άλλες προσεγγίσεις όσον αφορά τον τερµατισµό διακόπτουν τη διαδικασία όταν δεν παρατηρείται αξιοσηµείωτη βελτίωση επί σειρά γενεών ή όταν η ποικιλία του γενετικού υλικού έχει µειωθεί ιδιαίτερα (µικρός αριθµός συναρτήσεων και τερµατικών όρων). Επιπλέον, απαιτείται ιδιαίτερη προσοχή για να µην συµβεί πρόωρη σύγκλιση της διαδικασίας σε κάποιο τοπικό µέγιστο. Τελικά, το καλύτερο πρόγραµµα που εµφανίστηκε σε κάποια γενιά (εκείνο µε την υψηλότερη τιµή της συνάρτησης προσαρµογής) αποτελεί τη βέλτιστη λύση και είναι το τελικό εξαγόµενο της διαδικασίας. 2.2.4 Εκτέλεση διαδικασίας γενετικού προγραµµατισµού Παρακάτω, συνοψίζονται τα βασικά στάδια εκτέλεσης όπως προβλέπονται από τη µέθοδο του γενετικού προγραµµατισµού: 1. Αρχικά επιλέγονται τα σύνολα των συναρτήσεων και των τερµατικών όρων που θα συµµετάσχουν στο πρόγραµµα. εδοµένου ότι δεν είναι γνωστό ευθύς εξαρχής ποιες είναι οι κατάλληλες συναρτήσεις και όροι, ο χρήστης θα πρέπει να κάνει καλή επιλογή των µελών κάθε συνόλου, κρίνοντας από τη φύση του προβλήµατος που πρέπει να επιλυθεί. 2. Από τις επιλεγµένες συναρτήσεις και όρους δηµιουργείται ένας αρχικός πληθυσµός µε µαθηµατικές εκφράσεις (προγράµµατα που απεικονίζονται και ως δένδρα). Αυτές οι εκφράσεις επιτρέπεται να είναι µεταβλητού µεγέθους, πρέπει όµως να είναι συντακτικά σωστές. 3. Η τιµή προσαρµογής κάθε προγράµµατος υπολογίζεται εκτελώντας το για έναν ορισµένο αριθµό χαρακτηριστικών περιπτώσεων (ενδεικτικές τιµές εισόδου, των οποίων το σωστό αποτέλεσµα είναι γνωστό). Για κάθε πρόγραµµα, η τιµή αυτή ισούται προς τον αριθµό των περιπτώσεων που εκτελέστηκε σωστά ή για όσες το αποτέλεσµα προσεγγίζει τη σωστή τιµή µε κάποια ανοχή. Είναι εύλογο ότι τα τυχαία προγράµµατα που συγκροτούν τον αρχικό πληθυσµό µάλλον δεν θα επιτύχουν να βρούν τη λύση ωστόσο, αν ο πληθυσµός είναι αρκετά µεγάλος, υπάρχουν ελπίδες κάποια απ αυτά κατά τύχη να προκύψουν ευνοϊκά. 4. Ακολούθως, µε τους τελεστές της επιλογής, της διασταύρωσης και της µετάλλαξης δηµιουργείται η καινούργια γενιά. Προφανώς, ως αποτέλεσµα της διασταύρωσης το µέγεθος των εκφράσεων (ισοδύναµα, των δένδρων) µπορεί να αυξοµειώνεται. 5. Τα δύο προηγούµενα βήµατα (3 και 4) επαναλαµβάνονται για έναν ορισµένο αριθµό γενεών. 2.2.5 Παράλληλος γενετικός προγραµµατισµός Μια από τις πλέον σηµαντικές τεχνολογικές εξελίξεις της τελευταίας δεκαετίας αποτελεί η ανάπτυξη υπολογιστών υψηλών επιδόσεων (high performance computing), µε κύρια αιχµή την υιοθέτηση τεχνικών παράλληλης επεξεργασίας µε πολλαπλούς επεξεργαστές οργανωµένους σε συστοιχίες (λ.χ. δοµή υπερκύβου). Ο φόρτος του συστήµατος ρυθµίζεται µε κατάλληλο λογισµικό που στηρίζεται στην κατανοµή των υπολογισµών στους επεξεργαστές και στην ανταλλαγή µηνυµάτων µεταξύ τους. Ο στόχος είναι φυσικά η ταχύτερη εκτέλεση των υπολογισµών, κάτι που επιχειρούν να εκµεταλλευτούν και οι τεχνικές του γενετικού προγραµµατισµού και των γενετικών αλγορίθµων. Συνήθως ακολουθείται ένα µοντέλο «αφέντησκλάβου» ( master-slave ), όπου ένας επεξεργαστής ( master ) αρχικοποιεί τον πληθυσµό και κατευθύνει την εξελικτική διαδικασία, ενώ οι υπόλοιποι επεξεργαστές ( slaves ) απλώς αξιολογούν τα µέλη βάσει της συνάρτησης προσαρµογής. Η διαδικασία είναι ασύγχρονη (asynchronous), εξαιτίας του διαφορετικού µεγέθους κάθε µέλους, αφού το βάθος των δένδρων ποικίλει. Συνεπώς, η εκτίµηση της προσαρµογής δεν τελειώνει το ίδιο γρήγορα για όλα τα µέλη της γενιάς. Άρα, τα µέλη κάθε γενιάς είναι δυνατόν να ανανεώνονται όχι κατά ολόκληρες γενιές, όπως ήταν η αρχική αντιµετώπιση, αλλά εξελίσσοντας κάθε γενιά σταθερά και σταδιακά (steady-state approach), καταργώντας και δηµιουργώντας νέα µέλη, όπως άλλωστε συµβαίνει και στη φύση. 8

Βελτιστοποίηση ερωτηµάτων σε βάσεις δεδοµένων 2.3 Αξιολόγηση των γενετικών τεχνικών Η λειτουργία των γενετικών αλγορίθµων θεµελιώνεται πάνω στο λεγόµενο Θεώρηµα Σχηµάτων (Schema Theorem) που διατύπωσε ο Holland. Το θεώρηµα προβλέπει ότι µικρά, αλλά αποτελεσµατικά δοµικά στοιχεία (σχήµατα) λαµβάνουν εκθετικά αυξηµένη πιθανότητα αναπαραγωγής από γενιά σε γενιά, δίνοντας πολύ καλούς απογόνους. Αυτό το γεγονός εξηγεί το δυναµισµό των γενετικών τεχνικών και δικαιολογεί την αποτελεσµατικότητά τους. Βεβαίως, στο επίπεδο της υλοποίησης έχουν γίνει αρκετές παραδοχές, παραλλαγές ή και απλουστεύσεις, καθώς και ανάµιξη στοιχείων από άλλα πεδία (λ.χ. ευρετικές τεχνικές). Επιπλέον, η κωδικοποίηση µε δενδρικές δοµές (tree-encoding) συντελεί στην διερεύνηση ενός ανοικτού χώρου λύσεων, χωρίς να υφίσταται περιορισµούς από τους πολλούς αλλά πεπερασµένους συνδυασµούς της τυπικής κωδικοποίησης µε σταθερό µέγεθος συµβολοσειρών. Πράγµατι, η κωδικοποίηση της αναπαράστασης µαζί µε τους γενετικούς τελεστές κρίνουν την αποτελεσµατικότητα της λύσης. Οι τελεστές της διασταύρωσης και της µετάλλαξης που χρησιµοποιούνται από τις γενετικές µεθόδους είναι δυνατό να δώσουν λύσεις ριζικά διαφορετικές από τις υπάρχουσες. Η λειτουργία της διασταύρωσης παρέχει τον κύριο µηχανισµό αναζήτησης λύσεων για το πρόβληµα, γι αυτό και συνήθως της αποδίδεται υψηλή πιθανότητα (της τάξης του 70%) να συµβεί. Η σηµασία της είναι ιδιαίτερα µεγάλη κατά τα αρχικά στάδια της εκτέλεσης (τις πρώτες γενιές), όταν αναζητείται η περιοχή του χώρου λύσεων του προβλήµατος όπου πιθανόν εντοπίζεται το ολικό µέγιστο. Απεναντίας, η µετάλλαξη λαµβάνει σηµαντικά µικρότερη πιθανότητα εµφάνισης (της τάξης του 1% ή λιγότερο) και ο ρόλος της έγκειται κυρίως στη διατήρηση της ποικιλίας στον πληθυσµό κάθε γενιάς. Γι αυτό και η σηµασία της γίνεται ολοένα και µεγαλύτερη κατά τα τελευταία στάδια της εκτέλεσης, όταν γίνονται πλέον µικροβελτιώσεις στη διαφαινόµενη λύση. Οι γενετικές µέθοδοι έχουν ιδιαίτερη συµβολή στη µελέτη προβληµάτων βελτιστοποίησης (optimization). Αν η βέλτιστη λύση ενός προβλήµατος αναζητείται µε τυπικές ντετερµινιστικές µεθόδους, ελλοχεύει ο κίνδυνος να προσδιοριστεί τελικά κάποιο τοπικό ακρότατο (µέγιστο ή ελάχιστο, ανάλογα µε τη συνάρτηση προσαρµογής), αφού κάθε φορά ερευνάται ένα διαφορετικό σηµείο του χώρου λύσεων. Αντίθετα, µε τις γενετικές τεχνικές πολλαπλά σηµεία του χώρου λύσεων αναζητούνται ταυτόχρονα, οπότε η πιθανότητα εγκλωβισµού σε τοπικά ακρότατα περιορίζεται δραστικά. Επειδή, τέλος, τα µέλη του πληθυσµού επιλέγονται µε τυχαίο τρόπο, η αναζήτηση κατευθύνεται προς περιοχές του χώρου λύσεων που είναι πιθανότερο να οδηγήσουν σε βελτιωµένα αποτελέσµατα. Βασικό ζήτηµα έρευνας στον τοµέα των γενετικών µεθόδων αποτελεί η ευρωστία τους (robustness), δηλαδή πώς η αποτελεσµατικότητα της προτεινόµενης λύσης συµβαδίζει µε την ικανότητα επίλυσης σε διαφορετικά περιβάλλοντα. Η έννοια αυτή συµπυκνώνει το ερώτηµα κατά πόσο είναι δυνατή η δηµιουργία αλγορίθµων που να µην απαιτούν επανασχεδιασµό ή επαναπρογραµµατισµό, αλλά να είναι δυνατόν να προσαρµόζονται στις απαιτήσεις του εκάστοτε προβλήµατος. ιάφορες προηγµένες τεχνικές έχουν προταθεί κατά καιρούς. Ο εκλεκτικισµός (elitism) προνοεί ώστε οι εκλεκτότεροι εκπρόσωποι κάθε γενιάς να διατηρούνται πάντοτε άθικτοι και στην επόµενη, προστατεύοντάς τους από τυχόν παραποίηση λόγω διασταύρωσης ή µετάλλαξης. Άλλη ενδιαφέρουσα τεχνική είναι η λεγόµενη επιλογή κατά Boltzmann, όπου αρχικά τα κριτήρια είναι µεν χαλαρά για να εξασφαλίζεται µεγαλύτερη ποικιλία στον πληθυσµό, βαθµιαία όµως γίνονται αυστηρότερα καθώς ο αλγόριθµος πλησιάζει προς την σύγκλιση. 3 Βελτιστοποίηση ερωτηµάτων σε βάσεις δεδοµένων Σύµφωνα µε το σχεσιακό µοντέλο βάσεων δεδοµένων, τα στοιχεία είναι οργανωµένα σε σχεσιακούς πίνακες (relations), καθένας από τους οποίους περιλαµβάνει ένα σύνολο από οµοειδείς πλειάδες (tuples). Για την πλειονότητα των ερωτηµάτων που τίθενται, οι πίνακες συσχετίζονται µεταξύ τους µε τον σχεσιακό τελεστή σύνδεσης (join), τα περιεχόµενά τους φιλτράρονται προκειµένου να επιλεγούν (selection) όσα ικανοποιούν τις συνθήκες που τίθενται από το ερώτηµα ή προβάλλονται (projection) οι τιµές που εµφανίζουν σε ορισµένα γνωρίσµατά τους (attributes). Τέτοια ερωτήµατα αποκαλούνται συνήθως SPJ ερωτήµατα (από τα αρχικά των λειτουργιών SELECT-PROJECT-JOIN) ή συζευκτικά ερωτήµατα (conjunctive queries) επειδή επιτρέπονται µόνον συζεύξεις στις συνθήκες. Όπως προαναφέρθηκε, η πλέον ακριβή σχεσιακή πράξη είναι η σύνδεση πινάκων, καθώς ελέγχεται αν οι τιµές επιλεγµένων γνωρισµάτων κάθε πλειάδας του πρώτου ταιριάζουν µε τιµές σε αντίστοιχες πλειάδες του δεύτερου. Ως αποτέλεσµα επιστρέφεται ένας νέος σχεσιακός πίνακας που προκύπτει από τη συνένωση των αντίστοιχων ζευγών πλειάδων. Ευθύς αµέσως θα εξηγηθούν οι κύριες πτυχές της βελτιστοποίησης ερωτηµάτων σύνδεσης όπως αντιµετωπίζονται από ντετερµινιστικούς και τυχαιοποιηµένους αλγορίθµους. 3.1 Στρατηγικές βελτιστοποίησης ερωτηµάτων Το πρωταρχικό µέληµα του βελτιστοποιητή ερωτηµάτων είναι ν αποφασίσει µε ποια σειρά θα εκτελεστούν οι συνδέσεις και ποιοι αλγόριθµοι θα χρησιµοποιηθούν για τον υπολογισµό της καθεµιάς. Η βέλτιστη σειρά εκτέλεσης των συνδέσεων είναι πρόβληµα NP-hard, οπότε, για περισσότερες από 8-10 συνδέσεις αναζητείται µια ικανοποιητική προσεγγιστική λύση. Εφόσον στις συνδέσεις πινάκων ισχύει η αντιµεταθετική και η προσεταιριστική ιδιότητα, το πλήθος των δυνατών συνδυασµών πολλαπλών συνδέσεων ανεβαίνει εκθετικά µε τον αριθµό των συνδέσεων. Αν βέβαια ληφθεί υπ όψιν ότι για την υλοποίηση των συνδέσεων πινάκων έχουν επινοηθεί διάφοροι αλγόριθµοι (nested-loops join, sort-merge join, hash join) [Gra93], ενώ είναι πιθανή η ύπαρξη δεικτών (indices) για την αποτελεσµατικότερη προσπέλαση των πλειάδων, ο αριθµός των προσχεδίων εκτέλεσης που µπορεί να εξεταστούν αυξάνει ακόµη περισσότερο. Για την απεικόνιση ερωτήµατος κατά το στάδιο της βελτιστοποίησης χρησιµοποιείται ο λεγόµενος γράφος ερωτήµατος (query graph). Συνήθως πρόκειται για δένδρα αποτελούµενα από κόµβους που αντιπροσωπεύουν σχεσιακούς πίνακες και από µη κατευθυνόµενες ακµές για τους τελεστές (σύνδεση, προβολή, ένωση κλπ.). Τέτοιοι γράφοι προκύπτουν έπειτα από αναδιατύπωση (query rewriting), συνήθως τροποποιώντας την σύνταξη του ερωτήµατος. Στη συνέχεια, θα εξεταστούν µόνο γράφοι συνδέσεων (join graphs) σαν αυτούς του Σχ. 4(α), αφού 9

Γενετικές Μέθοδοι Βελτιστοποίησης Ερωτηµάτων σε Βάσεις εδοµένων. Σχήµα 3: ένδρο εκτέλεσης για ένα τυπικό SPJ ερώτηµα. πρόκειται για την πλέον ενδιαφέρουσα αλλά και δυσκολότερη περίπτωση. Τέτοιοι γράφοι παραµένουν µια δηλωτική µορφή αναπαράστασης του ερωτήµατος, η οποία µπορεί περαιτέρω να εξειδικευθεί σε διάφορα προσχέδια εκτέλεσης (query execution plans), δηλαδή εναλλακτικούς τρόπους επεξεργασίας. Ο χώρος αναζήτησης λύσεων περιλαµβάνει όλα τα προσχέδια εκτέλεσης του ερωτήµατος που µπορούν να υπολογίσουν το αποτέλεσµα. Κάθε σηµείο του χώρου λύσεων αντιστοιχεί σ ένα προσχέδιο και έχει ένα ορισµένο κόστος που υπολογίζεται βάσει των χρησιµοποιούµενων τελεστών. Το προσχέδιο εκτέλεσης απεικονίζεται συνήθως µε τη µορφή ενός δένδρου επεξεργασίας (query processing tree) του οποίου τα φύλλα αντιπροσωπεύουν σχεσιακούς πίνακες της βάσης δεδοµένων (µόνο µια φορά ο καθένας), ενώ οι ενδιάµεσοι κόµβοι συµβολίζουν σχεσιακούς τελεστές (απλές συνδέσεις, στην προκειµένη περίπτωση). Οι ακµές δηλώνουν τη ροή των δεδοµένων από τα φύλλα προς τη ρίζα του ρίζα όπου λαµβάνεται το τελικό αποτέλεσµα για το ερώτηµα. Επίσης, προσδιορίζονται οι µέθοδοι προσπέλασης των πλειάδων και οι αλγόριθµοι υλοποίησης των συνδέσεων. Ως ένα απλουστευµένο παράδειγµα, ας θεωρηθεί η βάση δεδοµένων µιας εταιρείας µε σχεσιακούς πίνακες της µορφής employees ( emp-id, emp-name, salary, dept) departments (dept-id, dept-name, floor) Το ερώτηµα «βρες ποια τµήµατα έχουν υπαλλήλους µε µισθό πάνω από 3000 ευρώ», διατυπώνεται σε SQL ως εξής: SELECT dept-id, dept-name FROM employees, departments WHERE dept=dept-id AND salary>3000 Ένα από τα πιθανά προσχέδια εκτέλεσης εικονίζεται στο Σχ. 3, ως ένα δένδρο επεξεργασίας που αντλεί πλειάδες από τους πίνακες στα φύλλα και τις διοχετεύει µέσω των σχεσιακών τελεστών προς τη ρίζα, δίνοντας την απάντηση στο ερώτηµα. Το πρόβληµα της βελτιστοποίησης ανάγεται λοιπόν στην εξεύρεση του σηµείου s 0 µε το µικρότερο κόστος στο χώρο λύσεων S που συγκροτούν όλα τα πιθανά προσχέδια εκτέλεσης ερωτηµάτων. Επιγραµµατικά: cost (s 0 ) = min cost (s) s S Η εκτίµηση του κόστους στη ρίζα υπολογίζεται αναδροµικά για κάθε κόµβο του δένδρου, συνυπολογίζοντας το κόστος ανάγνωσης των πλειάδων από τους απογόνους του και το κόστος σύνδεσης, το οποίο εξαρτάται από τον αλγόριθµο που θα επιλεγεί (λ.χ. sort-merge join). Το µοντέλο κόστους συνήθως λαµβάνει υπόψη διάφορες παραµέτρους, όπως στατιστικά στοιχεία για τους πίνακες και τους δείκτες (αριθµός πλειάδων, αριθµός σελίδων, πλήθος διακριτών τιµών ανά γνώρισµα), εκτίµηση της επιλεκτικότητας (selectivity) των κατηγορηµάτων, καθώς και τους χρόνους επεξεργασίας (CPU time) και ανάγνωσης/εγγραφής δεδοµένων (I/O time). Μολονότι ο χώρος λύσεων S περιλαµβάνει ποικιλόµορφα δένδρα (βλ. Σχ. 4β), περισσότερο ενδιαφέρον παρουσιάζουν τα αριστεροβαθή (left-deep trees) και τα θαµνώδη δένδρα (bushy trees). Η πρώτη κατηγορία συγκροτείται από δένδρα που η δεξιά (εσωτερική) σχέση της σύνδεσης είναι ένας σχεσιακός πίνακας της βάσης δεδοµένων και όχι ένα ενδιάµεσο αποτέλεσµα κάποιας άλλης σύνδεσης. Απεναντίας, η κατηγορία µε θαµνώδη δένδρα είναι ευρύτερη, αφού επιτρέπεται και οι δύο συνδεόµενες σχέσεις να είναι ενδιάµεσα αποτελέσµατα προηγούµενων συνδέσεων. Προφανώς, το πλήθος των προσχεδίων που ανήκουν στη δεύτερη κατηγορία είναι σηµαντικά αυξηµένο. 3.2 Πρότυπες υλοποιήσεις Οι περισσότεροι βελτιστοποιητές ερωτηµάτων δεν διερευνούν όλο το χώρο λύσεων, αλλά µόνο κάποιους υποχώρους, µε την ελπίδα ότι, ακόµη κι αν δεν βρεθεί το βέλτιστο προσχέδιο, θα προκύψει τουλάχιστον κάποιο µε σχεδόν παραπλήσιο κόστος. Προκειµένου να µειώσουν τον αριθµό των περιπτώσεων που θα χρειαστεί να εξετάσουν, τα συµβατικά συστήµατα βάσεων δεδοµένων καταφεύγουν σε ευρετικούς κανόνες [Ion96]: (α) (β) Σχήµα 4: (α) ύο ενδεικτικοί γράφοι σύνδεσης για το ερώτηµα πολλαπλών συνδέσεων A B C D E F. Οι κόµβοι δηλώνουν σχεσιακούς πίνακες, ενώ οι αριθµοί των ακµών εκφράζουν τη σειρά υπολογισµού των συνδέσεων. (β) Τα αντίστοιχα δένδρα εκτέλεσης του ερωτήµατος, αριστεροβαθές για την πρώτη περίπτωση και θαµνώδες για τη δεύτερη. 10

Γενετική βελτιστοποίηση ερωτηµάτων σύνδεσης i. Οι τελεστές επιλογής και προβολής εφαρµόζονται χωρίς να χρειαστεί ν αποθηκεύσουν αποτελέσµατα σε ενδιάµεσους πίνακες. Η επιλογή (δηλώνεται µε σ) γίνεται κατά την πρώτη προσπέλαση των πλειάδων µιας σχέσης, ενώ η προβολή (µε σύµβολο π) εκτελείται µόλις παραχθούν τα αποτελέσµατα των υπόλοιπων τελεστών. ii. εν υπολογίζονται καρτεσιανά γινόµενα ( ) µεταξύ πινάκων, εκτός κι αν ζητούνται ρητώς από το ερώτηµα. Σχέσεις σχηµατίζονται µόνο από την εκτέλεση συνδέσεων ( ). iii. Η εσωτερική σχέση µιας σύνδεσης είναι πάντα ένας σχεσιακός πίνακας της βάσης δεδοµένων και ποτέ ένα ενδιάµεσο αποτέλεσµα. Είναι σαφές ότι οι παραπάνω κανόνες ευνοούν το σχηµατισµό αριστεροβαθών δένδρων εκτέλεσης, µε την πεποίθηση ότι το καλύτερο προσχέδιο αυτής της κατηγορίας δεν θα υστερεί σηµαντικά του βέλτιστου προσχεδίου. Ο ισχυρισµός είναι βάσιµος αν προϋπάρχουν δείκτες για τους εσωτερικούς σχεσιακούς πίνακες των συνδέσεων. Αν µάλιστα χρησιµοποιείται ο αλγόριθµος σύνδεσης nested-loops join για όλες τις συνδέσεις, τότε δεν απαιτείται αποθήκευση των ενδιάµεσων αποτελεσµάτων (τεχνική pipelining). 3.2.1 Ο κύριος αλγόριθµος δυναµικού προγραµµατισµού Η τεχνική του δυναµικού προγραµµατισµού εφαρµόστηκε για πρώτη φορά σε προβλήµατα βελτιστοποίησης ερωτηµάτων στο πρωτότυπο System-R [SAC+79]. Πρόκειται για έναν αλγόριθµο εξαντλητικής αναζήτησης στον υποχώρο των αριστεροβαθών δένδρων σύνδεσης. Η µέθοδος εισάγει την έννοια των διατάξεων ενδιαφέροντος (interesting orderings), δηλαδή της σειράς παραγωγής των ενδιάµεσων αποτελεσµάτων ανάλογα µε τα γνωρίσµατα που συµµετέχουν σε συνδέσεις ή εµπλέκονται σε ταξινοµήσεις και οµαδοποιήσεις στοιχείων. Κατά τη διαδικασία βελτιστοποίησης, αν κάποιο ενδιάµεσο αποτέλεσµα παράγει πλειάδες ταξινοµηµένες ως προς κάποιο γνώρισµα των διατάξεων ενδιαφέροντος, τότε το σχετικό προσχέδιο πρέπει να αντιµετωπιστεί µε ειδικό τρόπο. Ο αλγόριθµος εκτελείται επαναληπτικά τόσες φορές όσες και οι σχέσεις που συµµετέχουν στο ερώτηµα, κτίζοντας σταδιακά το δένδρο από τα φύλλα προς τη ρίζα. Καταρχήν, για κάθε σχεσιακό πίνακα που αναφέρεται στο ερώτηµα, εξετάζονται όλοι οι δυνατοί τρόποι προσπέλασης, από την απλή σειραϊκή σάρωση των πλειάδων µέχρι και τους δείκτες που τυχόν υπάρχουν για κάποια γνωρίσµατά του. Στο επόµενο στάδιο, απορρίπτεται κάθε προσχέδιο για το οποίο υπάρχει φθηνότερο ισοδύναµο δένδρο, δηλαδή κάποιο µικρότερου κόστος προσχέδιο που να επιστρέφει τα ίδια µεν αποτελέσµατα, αλλά ταξινοµηµένα βάσει των διατάξεων ενδιαφέροντος. Στην k-στή επανάληψη της διαδικασίας, το σύνολο των µερικών λύσεων µε k σχέσεις δηµιουργείται από το ήδη σχηµατισµένο σύνολο των προσχεδίων µε k-1 σχέσεις. Στο στάδιο αυτό, τα µερικά προσχέδια που έχουν αναδειχθεί φθηνότερα µέχρι τότε συνδυάζονται µε τους υπολειπόµενους σχεσιακούς πίνακες που δεν έχουν ακόµη συµπεριληφθεί στο προσχέδιο. Στο τέλος, από τα κατασκευασµένα δένδρα που εµπλέκουν όλους τους πίνακες του ερωτήµατος, επιλέγεται το φθηνότερο. Αν υποτεθεί ότι το ερώτηµα περιέχει n συνδέσεις, τότε η διαδικασία δυναµικά απορρίπτει προσχέδια ελέγχοντας µόνο O(n 2 n-1 ) απ αυτά και αποφεύγοντας την εξέταση όλων των δυνατών συνδυασµών O(n!) του χώρου λύσεων [Cha98]. Το µεγάλο µειονέκτηµα της µεθόδου εντοπίζεται στην υπερβολική κατανάλωση µνήµης λόγω της ανάγκης τήρησης όλων των ηµιτελών προσχεδίων που παράγονται σε κάθε στάδιο και πρόκειται να εξεταστούν στο αµέσως επόµενο, φαινόµενο που εντείνεται στις τελευταίες φάσεις. Εφόσον και ο χρόνος εκτέλεσης αυξάνει εκθετικά µε τον αριθµό των συνδέσεων, η διαδικασία αυτή αποδεικνύεται ιδιαίτερα προβληµατική για ερωτήµατα µε περισσότερες από 10-15 συνδέσεις. 3.2.2 Τυχαιοποιηµένοι αλγόρι θµοι Για ν αντιµετωπίσουν το πρόβληµα βελτιστοποίησης ερωτη- µάτων πολλαπλών συνδέσεων, οι τυχαιοποιηµένοι αλγόριθµοι πραγµατοποιούν τυχαίους περιπάτους (random walks) εκτελώντας κινήσεις σ έναν γράφο που αντιπροσωπεύει τις λύσεις. Αντί να επιχειρείται η σταδιακή κατασκευή καλών προσχεδίων, όπως στο δυναµικό προγραµµατισµό, δοκιµάζεται ο µετασχηµατισµός υπαρχόντων προσχεδίων µε τρεις µεθόδους [Ion96]: H προσοµοιωµένη ανόπτηση εκτελεί τυχαίους περιπάτους αποδεχόµενη πάντοτε καθοδικές κινήσεις προς σηµεία µε µικρότερο κόστος, αλλά και ανοδικές κινήσεις µε κάποια πιθανότητα η οποία µειώνεται µε την πάροδο του χρόνου. Όταν η πιθανότητα γίνει τελικά µηδέν, η εκτέλεση παύει. H επαναληπτική βελτίωση εκτελεί αρκετές τοπικές βελτιστοποιήσεις: ξεκινώντας από έναν τυχαίο κόµβο, αποδέχεται όσες καθοδικές κινήσεις καταλήγουν σε τοπικά ελάχιστα. Όπως και στην προσοµοιωµένη ανόπτηση, ως τελικό εξαγόµενο επιστρέφεται το χαµηλότερο τοπικό ελάχιστο που εντοπίστηκε σε κάποιο βήµα. H βελτιστοποίηση δύο φάσεων συνδυάζει τις δύο προηγού- µενες τεχνικές. Στην αρχή εκτελείται για λίγο η επαναληπτική βελτίωση για να βρεθεί µια τοπικά βέλτιστη λύση. Κατόπιν, η λύση αυτή δίνεται ως είσοδος στην προσοµοιωµένη ανόπτηση, ώστε να ελεγχθεί η εγγύς περιοχή του χώρου λύσεων, παρέχοντας στον αλγόριθµο τη δυνατότητα να βρει ένα πιθανόν καλύτερο ελάχιστο. Παρά την πιθανοτική τους συµπεριφορά («στρίφοντας νοµίσµατα»), οι τυχαιοποιηµένοι αλγόριθµοι αποδεικνύονται αρκετά ικανοί στο χειρισµό υπεράριθµων συνδέσεων σε ερωτήµατα. Η επαναληπτική βελτίωση βρίσκει σύντοµα ένα ικανοποιητικό προσχέδιο, ενώ η προσοµοιωµένη ανόπτηση µπορεί να προτείνει κάποιο ακόµη καλύτερο, αν και µε αυξηµένο χρόνο εκτέλεσης. Τέλος, η βελτιστοποίηση δύο φάσεων τείνει να συγκεράσει τα πλεονεκτήµατα των άλλων δύο, δίνοντας καλά προσχέδια σε ακόµη συντοµότερο χρόνο. 4 Γενετική βελτιστοποίηση ερωτηµάτων σύνδεσης Όπως ήδη έχει τονιστεί, η επιτυχία της χρήσης γενετικών τεχνικών σε προβλήµατα βελτιστοποίησης κρίνεται από την αναπαράσταση του πληθυσµού των λύσεων και τις παρα- µέτρους των γενετικών τελεστών που εφαρµόζονται. Στην περίπτωση της βελτιστοποίησης ερωτηµάτων τα χρωµοσώµατα συµβολίζουν αριστεροβαθή ή θαµνώδη δένδρα επεξεργασίας και ζητούµενο είναι η ελαχιστοποίηση του κόστους εκτέλεσης. Στη συνέχεια της ενότητας, αφού αναπτυχθούν οι σηµαντικότερες απόπειρες επίλυσης του προβλήµατος µε γενετικές 11