Startseite Algorithmen & KI Differentialevolution-Optimierer

🧬 Differentialevolution-Optimierer

Differentialevolution (DE/rand/1/bin): Mutant v = x_r1 + F(x_r2 - x_r3), Kreuzung mit Rate CR. Selbstadaptive Variante passt F und CR an. Benchmark auf Rosenbrock, Rastrigin, Ackley.

Algorithmen & KI3DMittel60 FPS
differential-evolution ↗ Eigenständig öffnen
DRAG · SCROLL · CLICK — direkt im Simulationsfenster steuern.

Über diese Simulation

Differentialevolution optimiert eine Zielfunktion, indem sie eine Population von Kandidatenlösungen mithilfe von Differenzvektoren zwischen zufällig gewählten Populationsmitgliedern mutiert und kreuzt. Dieser Simulator visualisiert die Population auf Benchmark-Funktionen wie Rosenbrock, Rastrigin und Ackley und zeigt, wie die Regler F, CR und die Populationsgröße NP die Konvergenzgeschwindigkeit und -robustheit beeinflussen.

🔬 Was gezeigt wird

Eine Population von Kandidatenlösungen, die sich über Generationen hinweg auf dem Höhenlinienplot einer gewählten Benchmark-Funktion bewegt, begleitet von einer log-skalierten Konvergenzkurve der besten gefundenen Fitness.

🎮 Bedienung

Wählen Sie eine Benchmark-Funktion (Rosenbrock, Rastrigin, Ackley), stellen Sie F, CR und Populationsgröße NP ein, und beobachten Sie, wie die Population über Generationen konvergiert.

💡 Wussten Sie schon?

Differentialevolution wurde 1995 von Storn und Price entwickelt und gehört bis heute zu den robustesten Optimierungsalgorithmen für nichtlineare, nicht differenzierbare Zielfunktionen, ohne dass Ableitungen berechnet werden müssen.

Häufig gestellte Fragen

Warum benötigt der Algorithmus drei Zufallsvektoren pro Update?

Zwei davon (x_r2, x_r3) bilden einen Differenzvektor, der eine plausible Suchrichtung und Schrittweite aus der aktuellen Streuung der Population kodiert; der dritte (x_r1) verankert den Mutanten. Diese selbstbezügliche Stichprobenziehung ermöglicht es DE, seine Schrittweite automatisch anzupassen, während die Population konvergiert.

Was passiert, wenn ich CR nahe 1,0 setze?

Fast jede Dimension des Testvektors stammt vom Mutanten statt vom Ziel, sodass die Suche aggressiver erkundet — nützlich für separierbare, multimodale Funktionen wie Rastrigin, aber oft langsamer bei der Feinabstimmung des endgültigen Minimums.

Warum sieht Rosenbrock auf den Höhenlinien einfach aus, konvergiert aber langsam?

Sein gekrümmtes Tal ist breit und deutlich sichtbar, sodass die Population es in wenigen Generationen findet, aber der Talboden nahe (1,1) ist in Bewegungsrichtung fast flach, sodass Fitnessverbesserungen winzig werden und die logarithmische Konvergenzlinie abflacht.

Warum ist die Populationsgröße (NP) wichtig?

Eine größere NP tastet pro Generation mehr Differenzvektoren ab, was einen reicheren Satz an Mutationsrichtungen ergibt und das Risiko vorzeitiger Konvergenz bei multimodalen Landschaften wie Rastrigin verringert, auf Kosten von mehr Funktionsauswertungen pro Generation.

Ähnliche Simulationen