Σε γενικές γραμμές
Οι γενετικοί αλγόριθμοι είναι καλοί στην επίλυση προβλημάτων που περιλαμβάνουν χρονοπρογραμματισμό και προγραμματισμό. Έχουν επίσης εφαρμοστεί στη μηχανική. Χρησιμοποιούνται συχνά για την επίλυση προβλημάτων συνολικής βελτιστοποίησης.
Ως γενικός κανόνας, οι γενετικοί αλγόριθμοι μπορεί να είναι χρήσιμοι σε τομείς προβλημάτων που έχουν ένα πολύπλοκο τοπίο καταλληλότητας, καθώς η ανάμειξη έχει σχεδιαστεί για να απομακρύνει τον πληθυσμό από τα τοπικά βέλτιστα στα οποία μπορεί να κολλήσει ένας παραδοσιακός αλγόριθμος αναρρίχησης λόφου. Οι κοινώς χρησιμοποιούμενοι τελεστές διασταύρωσης δεν μπορούν να αλλάξουν κανέναν ομοιόμορφο πληθυσμό. Η μετάλλαξη από μόνη της μπορεί να παρέχει εργοδικότητα της συνολικής διαδικασίας του γενετικού αλγορίθμου (θεωρούμενη ως αλυσίδα Markov).
Παραδείγματα προβλημάτων που επιλύονται με γενετικούς αλγορίθμους περιλαμβάνουν: κάτοπτρα σχεδιασμένα να διοχετεύουν το ηλιακό φως σε έναν ηλιακό συλλέκτη, κεραίες σχεδιασμένες να λαμβάνουν ραδιοσήματα στο διάστημα, μέθοδοι περιπάτου για φιγούρες υπολογιστών, βέλτιστος σχεδιασμός αεροδυναμικών σωμάτων σε πολύπλοκα πεδία ροής.
Στο Εγχειρίδιο σχεδίασης αλγορίθμων, ο Skiena συμβουλεύει να μην χρησιμοποιούνται γενετικοί αλγόριθμοι για οποιαδήποτε εργασία: "Είναι αρκετά αφύσικο να μοντελοποιούμε εφαρμογές με όρους γενετικών τελεστών όπως η μετάλλαξη και η διασταύρωση σε συμβολοσειρές bit. Η ψευδοβιολογία προσθέτει άλλο ένα επίπεδο πολυπλοκότητας ανάμεσα σε εσάς και το πρόβλημά σας. Δεύτερον, οι γενετικοί αλγόριθμοι χρειάζονται πολύ μεγάλο χρονικό διάστημα σε μη τετριμμένα προβλήματα. [...] Η αναλογία με την εξέλιξη -όπου η σημαντική πρόοδος απαιτεί [sic] εκατομμύρια χρόνια- μπορεί να είναι αρκετά κατάλληλη. [...] Ποτέ δεν αντιμετώπισα κάποιο πρόβλημα όπου οι γενετικοί αλγόριθμοι μου φάνηκαν ο σωστός τρόπος για να το αντιμετωπίσω. Επιπλέον, δεν έχω δει ποτέ κανένα υπολογιστικό αποτέλεσμα που να έχει αναφερθεί με τη χρήση γενετικών αλγορίθμων που να με έχει εντυπωσιάσει θετικά. Μείνετε στην προσομοιωμένη ανόπτηση για τις ανάγκες σας σε ευρετικές αναζητήσεις βουντού".
Επιτραπέζια παιχνίδια
Τα επιτραπέζια παιχνίδια αποτελούν ένα πολύ σημαντικό μέρος του τομέα των γενετικών αλγορίθμων που εφαρμόζονται σε προβλήματα θεωρίας παιγνίων. Μεγάλο μέρος των πρώτων εργασιών για την υπολογιστική νοημοσύνη και τα παιχνίδια κατευθύνθηκε προς τα κλασικά επιτραπέζια παιχνίδια, όπως το tic-tac-toe,[3] σκάκι και ντάμα.[4] Τα επιτραπέζια παιχνίδια μπορούν πλέον, στις περισσότερες περιπτώσεις, να παιχτούν από έναν υπολογιστή σε υψηλότερο επίπεδο από τους καλύτερους ανθρώπους, ακόμη και με τεχνικές τυφλής εξαντλητικής αναζήτησης. Το γκο αποτελεί σημαντική εξαίρεση σε αυτή την τάση και μέχρι στιγμής έχει αντισταθεί στην επίθεση των μηχανών. Οι καλύτεροι παίκτες του Γκο από υπολογιστή παίζουν τώρα στο επίπεδο ενός καλού αρχάριου.[5][6] Η στρατηγική του Γκο λέγεται ότι βασίζεται σε μεγάλο βαθμό στην αναγνώριση προτύπων και όχι μόνο στη λογική ανάλυση, όπως στο σκάκι και σε άλλα παιχνίδια που δεν εξαρτώνται από τα κομμάτια. Ο τεράστιος αποτελεσματικός παράγοντας διακλάδωσης που απαιτείται για την εύρεση λύσεων υψηλής ποιότητας περιορίζει σημαντικά την προοπτική που μπορεί να χρησιμοποιηθεί σε μια αναζήτηση ακολουθίας κινήσεων.
Παιχνίδια υπολογιστών
Ο γενετικός αλγόριθμος μπορεί να χρησιμοποιηθεί σε ηλεκτρονικά παιχνίδια για τη δημιουργία τεχνητής νοημοσύνης (ο υπολογιστής παίζει εναντίον σας). Αυτό επιτρέπει μια πιο ρεαλιστική εμπειρία παιχνιδιού- αν ένας ανθρώπινος παίκτης μπορεί να βρει μια ακολουθία βημάτων που οδηγούν πάντα στην επιτυχία, ακόμη και όταν επαναλαμβάνονται σε διαφορετικά παιχνίδια, δεν μπορεί να μείνει καμία πρόκληση. Αντίθετα, αν μια τεχνική μάθησης, όπως ένας γενετικός αλγόριθμος για έναν στρατηγικό παίκτη, μπορεί να αποφύγει την επανάληψη των λαθών του παρελθόντος, το παιχνίδι θα έχει μεγαλύτερη δυνατότητα αναπαραγωγής.
Οι γενετικοί αλγόριθμοι απαιτούν τα ακόλουθα μέρη:
- Μέθοδος αναπαράστασης της πρόκλησης ως προς τη λύση (π.χ. δρομολόγηση στρατιωτών σε μια επίθεση σε ένα παιχνίδι στρατηγικής)
- Μια συνάρτηση καταλληλότητας ή αξιολόγησης για τον προσδιορισμό της ποιότητας μιας περίπτωσης (π.χ. μια μέτρηση της ζημίας που προκαλείται σε έναν αντίπαλο σε μια τέτοια επίθεση).
Η συνάρτηση καταλληλότητας δέχεται μια μεταλλαγμένη ενσάρκωση μιας οντότητας και μετρά την ποιότητά της. Η συνάρτηση αυτή προσαρμόζεται στον τομέα του προβλήματος. Σε πολλές περιπτώσεις, ιδίως σε αυτές που αφορούν τη βελτιστοποίηση κώδικα, η συνάρτηση καταλληλότητας μπορεί να είναι απλώς μια συνάρτηση χρονισμού του συστήματος. Μόλις οριστεί μια γενετική αναπαράσταση και μια συνάρτηση καταλληλότητας, ένας γενετικός αλγόριθμος θα ενσαρκώσει αρχικούς υποψηφίους όπως περιγράφηκε προηγουμένως και στη συνέχεια θα βελτιωθεί μέσω της επαναλαμβανόμενης εφαρμογής των τελεστών μετάλλαξης, διασταύρωσης, αντιστροφής και επιλογής (όπως ορίζονται σύμφωνα με το πεδίο του προβλήματος).