# Genetische Algorithmen ## [Quiz vor der Vorlesung](https://ff-quizzes.netlify.app/en/ai/quiz/41) **Genetische Algorithmen** (GA) basieren auf einem **evolutionären Ansatz** der KI, bei dem Methoden der Evolution einer Population genutzt werden, um eine optimale Lösung für ein gegebenes Problem zu finden. Sie wurden 1975 von [John Henry Holland](https://wikipedia.org/wiki/John_Henry_Holland) vorgeschlagen. Genetische Algorithmen basieren auf den folgenden Ideen: * Gültige Lösungen des Problems können als **Gene** dargestellt werden. * Durch **Crossover** können zwei Lösungen kombiniert werden, um eine neue gültige Lösung zu erhalten. * **Selektion** wird verwendet, um mithilfe einer **Fitnessfunktion** optimalere Lösungen auszuwählen. * **Mutationen** werden eingeführt, um die Optimierung zu destabilisieren und uns aus lokalen Minima herauszuführen. Wenn Sie einen genetischen Algorithmus implementieren möchten, benötigen Sie Folgendes: * Eine Methode, um Problemlösungen mithilfe von **Genen** g∈Γ zu kodieren. * Auf der Menge der Gene Γ muss eine **Fitnessfunktion** fit: Γ→**R** definiert werden. Kleinere Funktionswerte entsprechen besseren Lösungen. * Einen **Crossover-Mechanismus**, um zwei Gene zu kombinieren und eine neue gültige Lösung zu erhalten: crossover: Γ²→Γ. * Einen **Mutationsmechanismus**: mutate: Γ→Γ. In vielen Fällen sind Crossover und Mutation recht einfache Algorithmen, die Gene als Zahlenfolgen oder Bitvektoren manipulieren. Die spezifische Implementierung eines genetischen Algorithmus kann je nach Fall variieren, aber die allgemeine Struktur ist wie folgt: 1. Wählen Sie eine Anfangspopulation G⊆Γ. 2. Wählen Sie zufällig eine der Operationen aus, die in diesem Schritt ausgeführt werden sollen: Crossover oder Mutation. 3. **Crossover**: * Wählen Sie zufällig zwei Gene g₁, g₂ ∈ G. * Berechnen Sie das Crossover g=crossover(g₁, g₂). * Wenn fit(g)