Σπύρος Καζαρλής
Γενετικοί Αλγόριθμοι (ΓΑ) Genetic Algorithms (GAs) Είναι το πιο αντιπροσωπευτικό και δημοφιλές είδος Εξελικτικού Αλγόριθμου Χρησιμοποιούνται κυρίως ως αλγόριθμοι γενικής βελτιστοποίησης (global optimization algorithms) και αναζήτησης λύσεων Χρονολογούνται από το 1962 (John Holland). Έχουν χρησιμοποιηθεί σε πολλές και διαφορετικές εφαρμογές και με πολλές διαφορετικές παραλλαγές και τροποποιήσεις και ως υβριδικά σχήματα μαζί με άλλους αλγορίθμους. Έχουν γενική εφαρμογή. Δεν θέτουν περιορισμούς ως προς το είδος του προβλήματος. Εκτελούνται offline καθώς απαιτούν σημαντικό υπολογιστικό χρόνο. Έχουν κάποια θεωρητική βάση (Θεωρία Σχημάτων Schema Theory) που εξηγεί το γιατί και πως λειτουργούν κάτω από συγκεκριμένες συνθήκες και παραδοχές.
Η υλοποίηση ενός ΓΑ στηρίζεται σε πέντε βασικές αρχές : 1. Αρχική παραγωγή και τήρηση ενός πληθυσμού κωδικοποιημένων λύσεων. Οι λύσεις κωδικοποιούνται σε συμβολοσειρές (συνήθως δυαδικές) που προσομοιώνουν την αλυσίδα DNA των έμβιων όντων. Νεότερες υλοποιήσεις έχουν λειτουργήσει και χωρίς κωδικοποίηση των λύσεων (φυσιολογική αναπαράσταση). 2. Ύπαρξη μιας συνάρτησης ποιότητας (fitness function) που να μπορεί να αξιολογεί τις παραγόμενες λύσεις, 3. Επιλογή των καλύτερων ατόμων-λύσεων του πληθυσμού για αναπαραγωγή (επιβίωση των καλύτερων), 4. Ανασυνδυασμός των χαρακτηριστικών των γονέων για την παραγωγή των απογόνων. Μετάλλαξη των απογόνων με μικρή πιθανότητα ανά bit. 5. Αντικατάσταση των γονέων από τους απογόνους (ολική ή μερική).
Πληθυσμός Λύσεων S1 S2 S3 S4 Sn Si, i=1..n : Κατανομή των λύσεων στον χώρο λύσεων S3 S2 S1 S5 S4 Επιλογή γονέων με τον Τροχό της Ρουλέτας 2 1 49,2% 14,4% Par.1 Par.2 Ο τελεστής Crossover 5,5% 30,9% 3 4 Off.1 Off.2
Αρχικοποίηση και αξιολόγηση του πληθυσμού Πιθανοτική επιλογή δύο γονέων για αναπαραγωγή Η «λογική» ενός ΓΑ είναι πολύ απλή, γεγονός που τους καθιστά εύκολα εφαρμόσιμους. Δύο ένθετοι βρόχοι : 1. Βρόχος παραγωγής απογόνων 2. Βρόχος παραγωγής γενεών Οχι Οχι Crossover Mutation Παραγωγή και αξιολόγηση του απογόνου γονότυπου Συμπληρώθηκε ο πληθυσμός Ναί Η γενιά συμπληρώθηκε. Αντικατάσταση των γονέων Ικανοποιείται το κριτήριο τερματισμού Ναί Τέλος του Γενετικού Αλγόριθμου
Οι λύσεις-άτομα του πληθυσμού σε ένα ΓΑ δεν διατηρούνται με την κανονική τους μορφή - φαινότυπο (π.χ. σαν ανύσματα πραγματικών αριθμών) αλλά με μία κωδικοποιημένη μορφή γονότυπο, έτσι ώστε να προσομοιώσουν τα βιολογικά χρωμοσώματα, και να μπορέσουν να εφαρμοστούν πάνω τους οι γενετικοί τελεστές. Έτσι κάθε λύση-φαινότυπος είναι κωδικοποιημένη σε μία συμβολοσειρά (string) από σύμβολα γονότυπος τα οποία λαμβάνονται από ένα κατά το δυνατό ολιγομελές σύνολο συμβόλων. Το πιο συνηθισμένο σύνολο συμβόλων που χρησιμοποιείται είναι το σύνολο των δυαδικών συμβόλων (0,1), που δίνει και την απλούστερη μορφή κωδικοποίησης. Με αυτό το σύνολο συμβόλων, κάθε λύση κωδικοποιείται σε μία δυαδική συμβολοσειρά από 0 και 1 συγκεκριμένου μήκους L, προσομοιώνοντας (σε απλούστερη βέβαια μορφή) τα πραγματικά βιολογικά χρωμοσώματα
Μεταβλητή 1 Μεταβλητή.. 2.. Μεταβλητή N 1 1 1 0 0... 1 Συμβολοσειρά 1 0 1 0 1 1... 1 Συμβολοσειρά 2.. 1 0 1 1 0... 0 Συμβολοσειρά Ν 01110.. 0 11100.. 1.. 00011.. 0 Ενιαία συμβολοσειρά λύσης Το μήκος της συμβολοσειράς, L, και η σημασία του κάθε bit καθορίζεται ανάλογα με το πρόβλημα.
Έστω το πρόβλημα βελτιστοποίησης De Jong F5 (Shekel s foxholes): maximize f ( x) 0.002 25 j 1 x i [-65536,65536] Κάθε μεταβλητή x i, παίρνει 131072=65536x2 διαφορετικές τιμές και μπορεί να κωδικοποιηθεί με 17 bits (2 17 =131072). Το συνολικό χρωμόσωμα θα έχει μήκος 34 bits. γονότυπος x1 x2 2 i 1 00000000000000000 00000000000000000-65536 -65536 00000000000000001 00000000000000000-65535 -65536 11111111111111111 00000000000000000 65536-65536 11111111111111111 00000000000000001 65536-65535 11111111111111111 11111111111111111 65536 65536 j 1 ( x i a ij 6 )
Μετατροπή γονότυπου σε φαινότυπο : 1. Λαμβάνεται ο γονότυπος που παράγεται από τον ΓΑ 2. Χωρίζεται σε χρωμοσώματα (ένα ανά μεταβλητή) 3. Για κάθε χρωμόσωμα / μεταβλητή κάνουμε το εξής : 4. Μεταβλητή(i) = integer(χρωμόσωμα(i)) + Min(i) (Μετατρέπουμε τον δυαδικό αριθμό σε ακέραιο και προσθέτουμε το κάτω όριο του διαστήματος ορισμού της μεταβλητής.) Παράδειγμα : Μετατροπή του γονότυπου : 01010101010101010 10101010101010101 Integer(χρωμόσωμα) = 43690 87381 Φαινότυπος (λύση) = 43690-65536 87381-65536 = -21846 21845 x1 = -21846, x2 = 21845
Στην δυαδική κωδικοποίηση οι αριθμοί 01111111 και 10000000 αν και συνεχόμενοι (127,128) έχουν απόσταση Hamming 8 (διαφέρουν κατά 8 bits). Άρα μικρές αλλαγές στον χώρο φαινότυπων (ακέραιοι) μπορεί να δημιουργούν μεγάλες αλλαγές στον χώρο γονότυπων (binary strings). Γι αυτό μπορεί στην κωδικοποίηση να χρησιμοποιηθεί εναλλακτικά ο κώδικας Gray : Ακέραιος Δυαδικός Gray 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 0111 0100
Έστω το πρόβλημα βελτιστοποίησης De Jong F1(sphere) : maximize f ( x) n i 1 2 x i x i [-5.12,5.12] Κάθε μεταβλητή x i, παίρνει άπειρες διαφορετικές τιμές. Στις δυαδικές συμβολοσειρές πεπερασμένου μήκους κωδικοποιούνται πεπερασμένες διαφορετικές τιμές. Έτσι αποφασίζουμε το πλήθος των bits για κάθε μεταβλητή, που ορίζει το πλήθος των διακριτών τιμών που θα κωδικοποιηθούν. Αν λάβουμε 8 bits για κάθε μεταβλητή: Πλήθος bits = 8 / μεταβλητή, Κωδικ. Τιμές = 2 8 = 256 Βήμα διακριτοποίησης = (Max-Min) / (Κωδικ.Τιμές -1) = (5.12-(-5.12))/255 = 0.04015686
Ακέραιος Δυαδικός Πραγματικός 0 00000000-5.1200 1 00000001-5.0798 2 00000010-5.0396 127 01111111-0.0200 128 10000000 0.0200 255 11111111 5.1200 Εάν το βήμα διακριτοποίησης δεν είναι αρκετά μικρό τότε αυξάνουμε τα bits κωδικοποίησης. Έτσι αν θέσουμε 10 bits για κάθε μεταβλητή: Κωδικ. Τιμές = 2 10 = 1024 Βήμα διακριτοποίησης = (Max-Min) / (Κωδικ.Τιμές -1) = (5.12-(- 5.12))/1024 = 0.0100392
Μετατροπή γονότυπου σε φαινότυπο : 1. Λαμβάνεται ο γονότυπος που παράγεται από τον ΓΑ 2. Χωρίζεται σε χρωμοσώματα (ένα ανά μεταβλητή) 3. Για κάθε χρωμόσωμα / μεταβλητή κάνουμε το εξής : 4. Μεταβλητή(i) = integer(χρωμόσωμα(i)) x Βήμα Διακριτ.(i) + Min(i) (Μετατρέπουμε τον δυαδικό αριθμό σε ακέραιο, τον πολλαπλασιάζουμε επί το βήμα διακριτοποίησης και προσθέτουμε το κάτω όριο του διαστήματος ορισμού της μεταβλητής.) Παράδειγμα : Μετατροπή του γονότυπου : 0000011111 1111100000 Integer(χρωμόσωμα) = 31 992 Φαινότυπος (λύση) = 31xΒήμα-5.12 992xΒήμα -5.12 = -4.8096 4.8096 x1 = -4.8096, x2 = 4,8096
Για να εφαρμοστούν οι ΓΑ απαιτούν την ύπαρξη μίας Συνάρτησης Ποιότητας (Fitness Function Quality Function) Η Συνάρτηση ποιότητας ορίζει μία απεικόνιση από το σύνολο S N των συμβολοσειρών με μέγεθος Ν bits, στο σύνολο των πραγματικών R. S N R Μέσω της συνάρτησης ποιότητας ο ΓΑ μπορεί και αξιολογεί δείγματα του χώρου λύσεων και οδηγείται εξελικτικά προς το βέλτιστο. Δεν υπάρχουν προϋποθέσεις για την μορφή της συνάρτησης ποιότητας (συνεχής, παραγωγίσιμη, κυρτή, κ.λ.π.). Μπορεί επίσης να μην είναι κάν συνάρτηση αλλά να υπολογίζεται με αλγόριθμο. Πρέπει να υπολογίζεται γρήγορα. Δεν πρέπει να είναι ευαίσθητη σε θόρυβο (ίδιος γονότυπος ίδια λύση) Το κριτήριο των πόρων που έχει χρησιμοποιήσει ένας ΓΑ δεν είναι ο αριθμός των γενεών αλλά ο αριθμός των αξιολογήσεων λύσεων μέσω της συνάρτησης ποιότητας (no of fitness function evaluations)
Για την υλοποίηση της «επιβίωσης του καλύτερου» θα πρέπει οι γονείς να επιλέγονται από τον πληθυσμό με πιθανότητα ανάλογη της ποιότητάς τους. Λύσεις καλής ποιότητας θα επιλέγονται πολύ συχνά για αναπαραγωγή Λύσεις κακής ποιότητας θα επιλέγονται σπανίως ή και καθόλου. Η επιλογή και λύσεων κακής ποιότητας «αφήνεται» να συμβεί με μικρή πιθανότητα, καθώς ο ανασυνδυασμός μίας καλής και μίας κακής λύσης, ενδέχεται να δώσει λύση ακόμα καλύτερης ποιότητας. Υπάρχουν τέσσερις βασικές μέθοδοι επιλογής γονέων : 1. Επιλογή με τον Τροχό της Ρουλέτας (Roulette Wheel Parent Selection) 2. Ντετερμινιστική δειγματοληψία (Deterministic Sampling) 3. Επιλογή με Τουρνουά (Tournament Selection) 4. Επιλογή με Διαβάθμιση (Ranking Selection)
Επιλέγει γονείς με πιθανότητα ευθέως ανάλογη της ποιότητάς τους 2 49,2% 14,4% 1 Α/Α Χρωμόσωμα Ποιότητα % επί συνόλου 5,5% 30,9% 3 4 1 2 3 4 00110110 10111001 00101111 11101100 169 576 64 361 14.4 % 49.2 % 5.5 % 30.9 % ΣΥΝΟΛΟ 1170 100 % Η μέθοδος του Tροχού της Rουλέτας (Roulette Wheel Parent Selection)
Πλεονεκτήματα Εύκολο στο να υλοποιηθεί Η πιθανότητα επιλογής είναι απευθείας ανάλογη της ποιότητας των ατόμων Μειονεκτήματα Μπορεί να οδηγήσει σε πρώιμη σύγκλιση καθώς τα άτομα με καλές ποιότητες μπορεί να κυριεύσουν ταχύτατα τον πληθυσμό. Σε μικρούς πληθυσμούς συμβαίνουν στατιστικά σφάλματα. Όταν οι τιμές ποιότητας των ατόμων του πληθυσμού είναι παρόμοιες, τότε δεν υπάρχει «πίεση επιλογής» (selection pressure) προς τις καλύτερες λύσεις. Θα πρέπει οι τιμές ποιότητας των ατόμων να είναι θετικές ποσότητες. Συμπεριφέρεται διαφορετικά στην αντίστροφη συνάρτηση ποιότητας : f (x) = 1/(f(x) (transposed version)
Υπολογίζει τον εκτιμώμενο αριθμό φορών που πρέπει να επιλεγεί ένας γονέας i ως εξής : Ei = Num_Of_Parent_Selections * f(i)/σf(i) όπου f(i) είναι η ποιότητα του γονέα i, Σf(i) το άθροισμα των ποιοτήτων όλων των γονέων και Num_Of_Parent_Selections o συνολικός αριθμός φορών που πρέπει να επιλεγεί ένας γονέας (συνήθως 2*πληθυσμός). Ο αριθμός Ei είναι εν γένει δεκαδικός αριθμός. Έτσι ο γονέας i προ-επιλέγεται τόσες φορές όσες και το ακέραιο μέρος του Ei, SELi = int (Ei). Επειδή μπορεί Σ SELi < Num_Of_Parent_Selections : 1. Οι γονείς ταξινομούνται ως προς το δεκαδικό μέρος του Ei 2. Οι γονείς που υπολείπονται για επιλογή επιλέγονται ανάμεσα στα άτομα που βρίσκονται υψηλότερα στην ταξινόμηση Έτσι η μέθοδος αυτή δεν αφήνει στην τύχη το πόσες φορές θα πρέπει να επιλεγεί ο κάθε γονέας, αλλά το καθορίζει με απόλυτο τρόπο.
Επιλέγει k υποψήφιους γονείς από τον πληθυσμό με ομοιόμορφη κατανομή πιθανότητας (ισοπίθανα), με ή χωρίς αντικατάστασή τους ξανά στον πληθυσμό. Ο καλύτερος από τους k είναι ο νικητής και επιλέγεται ως γονέας. Ο αριθμός k ονομάζεται tournament size.
Τα Ν άτομα του πληθυσμού ταξινομούνται σε φθίνουσα σειρά με βάση την ποιότητά τους. Η θέση του κάθε ατόμου στον ταξινομημένο πίνακα (1..Ν) ονομάζεται «διαβάθμιση» (rank). Αντί να ληφθεί υπ όψιν η ποιότητα της κάθε λύσης, λαμβάνεται υπ όψιν η διαβάθμιση και μέσω μίας συνάρτησης επιλέγονται άτομα από την ταξινομημένη λίστα. Η συνάρτηση επιλέγει περισσότερες φορές άτομα με υψηλή διαβάθμιση (δηλαδή με καλή ποιότητα). Παράδειγμα : Fitness: f(a) = 5, f(b) = 2, f(c) = 19 Rank: r(a) = 2, r(b) = 3, r(c) = 1 Συνάρτηση : n r( x) 1 h( x) 100% r( x) n=3, Σ(r(x))=6 Function: h(a) = 33,33%, h(b) = 16,66%, h(c) = 50%
Δυαδικό Crossover: 1. Crossover ενός σημείου (One Point Crossover) 2. Crossover δύο (2) σημείων (Two Point Crossover) 3. Crossover πολλών σημείων (Multi Point Crossover) 4. Ομοιόμορφο Crossover (Uniform Crossover) Crossover ενός σημείου : σε γονότυπο μήκους L, ο δυνατός αριθμός σημείων Crossover είναι L-1. Επιλέγεται το σημείο στην τύχη. Ο Απόγονος λαμβάνει τμήματα της λύσης από τους δύο γονείς: Γονέας 1 Γονέας 2 Crossover point Απόγονος 1 Απόγονος 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 parents offspring
Επιλέγονται δύο σημεία crossover στην τύχη (1..L-1). Οι γονεις χωρίζονται σε τρία (3) τμήματα και ο απόγονος λαμβάνει τμήματα της λύσης από τους δύο γονείς με τον εξής τρόπο: Γονέας1- Γονέας2-Γονέας1 ή Γονέας2-Γονέας1-Γονέας2. Γονέας 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Γονέας 2 Απόγονος 1 Απόγονος 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CP1 CP2 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 Πετυχαίνει καλύτερο ανασυνδυασμό των λύσεων σε σχέση με το Crossover ενός σημείου, γι αυτό και προτιμάται.
Το Crossover 2 σημείων μπορεί να επεκταθεί και για Ν σημεία. Επιλέγονται Ν σημεία crossover στην τύχη (1..L-1). Ο απόγονος παράγεται λαμβάνοντας εναλλάξ τμήματα από τον πρώτο και τον δεύτερο γονέα μεταξύ των σημείων τομής. Γονέας 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Γονέας 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CP1 CP2 CPN Απόγονος 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 Απόγονος 2 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 Χρησιμοποιείται σε προβλήματα με μεγάλους γονότυπους όπου το Crossover 2 σημείων δεν επαρκεί.
Uniform Crossover: Δεν υπάρχουν σημεία Crossover. Το κάθε bit του απογόνου λαμβάνεται από τον έναν ή τον άλλο γονέα με ίση πιθανότητα: Γονέας 1 Γονέας 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Απόγονος 1 Απόγονος 2 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 1 Έχει επιβεβαιωθεί πειραματικά ότι το uniform crossover υπερτερεί των άλλων, σε δύσκολα προβλήματα βελτιστοποίησης, εκτελώντας τον πλέον αποδοτικό ανασυνδυασμό πληροφορίας που αναπαρίσταται σε μορφή συμβολοσειρών.
Η Μετάλλαξη γενικά θα πρέπει : 1. Να επιτρέπει την παραγωγή λύσεων σε όλο το χώρο λύσεων 2. Να παράγει αποδεκτές λύσεις 3. Να μπορεί η «ένταση» και ο «ρυθμός» της μετάλλαξης να ελέγχεται πλήρως από τον Γ.Α καθώς είναι κρίσιμα. Binary Mutation : με μικρή πιθανότητα το κάθε bit μεταλλάσσεται από 1 σε 0 ή από 0 σε 1. Ικανοποιεί τα παραπάνω κριτήρια. Η πιθανότητα Mutation ανά bit είναι περίπου στο 0.01 (1%). Αυτό σημαίνει ότι κατά μέσο όρο μεταλλάσσεται 1 στα 100 bits του απογόνου. Απόγονος πρίν Mutation point Απόγονος μετά 1 0 1 1 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1
H γενιά των γονέων αντικαθίσταται πλήρως από την γενιά των απογόνων. Λόγω της δυναμικής του ΓΑ υπάρχει σημαντική πιθανότητα η καλύτερη λύση μιας γενιάς να μην μπορέσει να μεταφερθεί στην επόμενη καθώς: 1. Θα διαφοροποιείται μέσω των τελεστών ανασυνδυασμού 2. Θα παραλλάσσεται μέσω των τελεστών μετάλλαξης Για την σωστή απόδοση του ΓΑ θα πρέπει η καλύτερη κάθε φορά λύση να οδεύει μονότονα προς το βέλτιστο και να μην υπάρχουν οπισθοχωρήσεις σε προηγούμενες υπο-βέλτιστες τιμές. Έτσι εφαρμόζεται η τεχνική του Ελιτισμού (Elitism) : Η καλύτερη λύση κάθε γενιάς μεταφέρεται αυτούσια και στην επόμενη γενιά, ώστε να διατηρηθεί, Έτσι σε ένα ΓΑ με πληθυσμό Ν, σε κάθε γενιά παράγονται N-1 απόγονοι, καθώς ο Ν-οστός είναι ο καλύτερος της προηγούμενης
Οι Γ.Α. μπορούν πολύ εύκολα να συνδυαστούν με άλλες μεθόδους βελτιστοποίησης, όπως αναλυτικές μεθόδους (gradient descent), μεθόδους επιχειρησιακής έρευνας (operations research, π.χ. Δυναμικός Προγραμματισμός - Dynamic Programming), ή άλλες ευριστικές (heuristic) μεθόδους όπως η Προσομοιωμένη Ανόπτηση (Simulated Annealing) κ.α Ο συνδυασμός μπορεί να γίνει πολύ εύκολα εξάγοντας την καλύτερη λύση του ΓΑ στην γενιά g, και εισάγοντάς την σαν αρχική λύση στην δεύτερη μέθοδο. Όταν η δεύτερη ολοκληρωθεί, παίρνουμε την λύση της μεθόδου και την επαν-εισάγουμε στον πληθυσμό του ΓΑ στην γενιά g+1. GA Best Solution Other Method Έτσι θα έχουμε ένα σχήμα με δύο συνεργαζόμενες μεθόδους που εκτελούνται παράλληλα με αμοιβαία συνεργασία. Ένα συνηθισμένο υβριδικό σχήμα είναι η ενσωμάτωση στους ΓΑ τελεστών αναρρίχησης (hill climbing operators).
Οι Γ.Α. έχουν εξαιρετική ικανότητα στον εντοπισμό των περιοχών του χώρου λύσεων που έχουν σημαντικό ενδιαφέρον (δηλαδή καλές ποιότητες) αλλά επιδεικνύουν σημαντική καθυστέρηση στο να συγκλίνουν στο ακριβές και απόλυτο βέλτιστο. Για να επιταχυνθεί λοιπόν ο εντοπισμός του βέλτιστου, χρησιμοποιούμε τελεστές αναρρίχησης (Hill-Climbing Operators). Οι τελεστές αυτοί εφαρμόζονται πάνω στην καλύτερη λύση της κάθε γενιάς, προσπαθώντας να προάγουν τη λύση προς το βέλτιστο με μονοσήμαντο τρόπο. Καλύτερη Λύση S2 S1 Hill Climbing operator S3 S5 Λύσεις του πληθυσμού S4
Οι τελεστές αναρρίχησης εφαρμόζονται με το εξής σκεπτικό : 1. Πάρε την καλύτερη λύση του πληθυσμού 2. Εφάρμοσε μέθοδο τοπικής αναζήτησης (local search) για εξερεύνηση της «γειτονιάς» της καλύτερης λύσης. 3. Μετά από κάθε μικρο-μεταβολή της λύσης κάνε αξιολόγησή της μέσω της συνάρτησης ποιότητας fitness function. 4. Αν η ποιότητα της αλλαγμένης λύσης είναι καλύτερη από την αρχική τότε η αλλαγή οριστικοποιείται και η λύση επαν-εισάγεται στον πληθυσμό του ΓΑ. 5. Αν η ποιότητά της αλλαγμένης λύσης είναι χειρότερη της αρχικής τότε η αλλαγή ματαιώνεται και η λύση έρχεται στην αρχική της μορφή 6. Μετά από επιτυχημένη ή αποτυχημένη μεταβολή, ο τελεστής μπορεί είτε να τερματίσει, είτε να δοκιμάσει και νέα μεταβολή. Η παραπάνω μεθοδολογία εγγυάται ότι ο τελεστής αναρρίχησης θα βελτιώνει μονοσήμαντα την καλύτερη λύση του ΓΑ προς το βέλτιστο
Ο τελεστής αυτός λειτουργεί σε προβλήματα συνεχών παραμέτρων όπου κάθε λύση X είναι ένα άνυσμα πραγματικών (x 1 x n ) ως εξής: 1. Εκτελεί ένα βρόχο για όλες τις παραμέτρους του προβλήματος 1..n 2. Για κάθε μεταβλητή x i δοκιμάζει να προσθέσει και να αφαιρέσει μία μικρή και μία μεγάλη μετατόπιση που εξαρτάται από το πεδίο ορισμού της x i (π.χ. ±0.01 και ±1.0). 3. Σε κάθε δοκιμή η λύση αξιολογείται μέσω της συνάρτησης ποιότητας. 4. Αν η νέα ποιότητα είναι καλύτερη της προηγούμενης τότε η μεταβολή υιοθετείται, αλλιώς η μεταβολή αναιρείται και ξαναγυρνάμε στην αρχική λύση. Ο τελεστής αυτός δοκιμάζει μικρο-μεταβολές θετικές και αρνητικές κατά μήκος ενός άξονα κάθε φορά (μίας μεταβλητής) και υιοθετεί κάθε μεταβολή που θα δώσει καλύτερη λύση από την αρχική. Ο τελεστής αυτός προσθέτει n*4 αξιολογήσεις της συνάρτησης ποιότητας (fitness function evaluations) σε κάθε γενιά, αλλά επιταχύνει δραματικά την σύγκλιση προς το απόλυτο βέλτιστο.
Ο τελεστής προχωρά με «ορθογώνια» βήματα προς το βέλτιστο. Βέλτιστο x Μικρό βήμα Μεγάλο βήμα y
Q = evaluate (Λ) Λ αρχ =Λ Επανάληψη για όλες τις μεταβλητές x i, i=1..n Επανάληψη για Βήμα = Large, small, -small, -Large Λ x i = Λ x i + Βήμα Q test = evaluate (Λ) Q test > Q Λ = Λ αρχ OXI NAI Q = Q test ΤΕΛΟΣ
Η αντικατάσταση του πληθυσμού των γονέων από τον πληθυσμό των απογόνων γίνεται με δύο διαφορετικούς τρόπους: 1. Γενεαλογική Αντικατάσταση (Generational Replacement): όπου κατά την αναπαραγωγή οι δύο πληθυσμού συνυπάρχουν και όταν συμπληρωθεί ο πληθυσμός των απογόνων τότε αντικαθιστά πλήρως τον πληθυσμό των γονέων. 2. Αναπαραγωγή Σταθερής Κατάστασης (Steady State Reproduction): όπου υπάρχει μόνο ένας πληθυσμός αυτός των γονέων και κάθε φορά που παράγεται ένας απόγονος τότε αυτός αντικαθιστά στον πληθυσμό τον χειρότερο από τους γονείς. Στην πρώτη μέθοδο υπάρχει ξεκάθαρα η έννοια της γενιάς, και υπάρχει δραστική μεταβολή της σύστασης του πληθυσμού σε κάθε γενιά, που μπορεί να οδηγήσει σε απώλεια λύσεων αν δεν υπάρχει Ελιτισμός. Στην δεύτερη μέθοδο δεν υπάρχει η έννοια της γενιάς, ενώ η μεταβολή της σύστασης του πληθυσμού είναι σταδιακή.