background image

66 | 

9 4

 

 

Σε κάθε γενιά ο αριθμός του πληθυσμού πρέπει να παραμένει σταθερός διότι αν αλλάζει 

μπορεί μετά από κάποιες γενιές να εξαφανιστεί ή να έχουμε υπερπληθυσμό αλλά όχι καλών 

λύσεων γιατί θα είναι λύσεις των αρχικών γενεών.  

3.7.7  Διασταύρωση (Crossover) 

 

Η  διασταύρωση  γίνεται  με  βάση  την  τμηματοποίηση.  Το  καθένα  τμήμα  αντιστοιχίζεται 

και σε ένα χρωμόσωμα και  για κάθε ένα από αυτά,  με τυχαίο τρόπο επιλέγεται ένα εκ των 

δύο γονέων. 

Foreach group 

Pick randomly from parent1, parent 2 

Child.add parent.group 

   

 

3.7.8  Μετάλλαξη (Mutation) 

 

Κατά  την  διαδικασία  της  μετάλλαξης  επιλέγουμε  ένα  αντικείμενο  τυχαία  και  του 

δίνουμε  νέα  θέση  και  προσανατολισμό  μέσα  στο  ίδιο  τμήμα.  Η  μετάλλαξη  πυροδοτείται 

σύμφωνα με την πιθανότητα που ορίσαμε στην μεταβλητή αρχικοποίησης. Μετά από δοκιμές 

είδαμε ότι συνήθως μία σχετικά μικρή πιθανότητα μετάλλαξης (μικρότερη του 25%) δίνει το 

καλύτερο αποτέλεσμα διότι προσθέτει ποικιλία στις λύσεις η οποία βοηθάει στο ξεφύγουμε 

από τοπικά ακρότατα για να πλησιάσουμε προς το ολικό. Από την άλλη, μία σχετικά μεγάλη 

πιθανότητα μετάλλαξης (μεγαλύτερη του 50%) δεν επιτρέπει στις γενιές να διατηρήσουν τα 

καλά  χαρακτηριστικά  τους  κατά  την  διαδικασία  της  εξέλιξης.  Αυτούς  τους  παράγοντες  θα 

πρέπει  να  τους  λάβουμε  υπόψη  για  μπορέσουμε  να  βρούμε  μία  ικανοποιητική  πιθανότητα 

μετάλλαξης. 

 

Στο πρόγραμμά μας συγκεκριμένα, επιλέγεται τυχαία ένα αντικείμενο από ένα τμήμα 

του  κυκλώματος  και  η  καινούρια  του  θέση  θα  πρέπει  να  είναι  στο  ίδιο  τμήμα.  Αυτό  το 

κάνουμε για να κρατήσουμε ανεπηρέαστη την διάρθρωση των τμημάτων που ορίσαμε.