Wie soll ich einen genetischen Algorithmus testen?

Ich habe einige genetische Algorithmen entwickelt. sie arbeiten (sie finden schnell eine vernünftige Lösung). Aber ich habe jetzt entdecktTDD. Gibt es eine Möglichkeit, agenetischen Algorithmus (die sich stark auf Zufallszahlen stützt) auf TDD-Weise?

Um die Frage allgemeiner zu stellen: Wie testen Sie eine nicht deterministische Methode / Funktion? Folgendes habe ich mir gedacht:

Verwenden Sie einen bestimmten Samen. Was nicht hilft, wenn ich einen Fehler im Code mache, aber beim Refactoring helfen kann, Fehler zu finden.

Verwenden Sie eine bekannte Liste von Nummern. Ähnlich wie oben, aber ich könnte den Code von Hand befolgen (was sehr mühsam wäre).

Verwenden Sie eine konstante Zahl. Zumindest weiß ich, was mich erwartet. Es wäre gut sicherzustellen, dass ein Würfel immer 6 anzeigt, wenn RandomFloat (0,1) immer 1 zurückgibt.

Versuchen Sie, den nicht deterministischen Code so weit wie möglich aus dem GA zu entfernen. was albern erscheint, da dies der Kern seines Zwecks ist.

Wir würden uns auch über Links zu sehr guten Testbüchern freuen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage