Frage

Ich versuche, nicht einheitliche Wahrscheinlichkeitsverteilung in genetischem Algorithmus zu implementieren.

Bei der Durchführung des genetischen Programms, ich habe ein Experiment, das 3 Ergebnisse hat, wobei jedes Ergebnis unterschiedliche Wahrscheinlichkeiten hat. Lassen Sie sagen, probablity von einem Ergebnis 0,85 ist, andere 0,01 und letzte ist 0,14?

P. S: Ich kam vor kurzem zu wissen, dass es Wahrscheinlichkeitsverteilung nicht einheitlich bezeichnet wird. Ich bin die Umsetzung es in Java, kann jeder der Theorie hinter ungleichmäßigen prob erzählen. Verteilung und auch alle Java-Pakete es zu implementieren.

Fühlen Sie sich frei fragen Sie mich wissen, wenn u mehr Informationen über das Problem benötigen!

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Für eine einfache diskrete Verteilung, können Sie einen Sampler schreiben, die Ihre Ergebnisse mit der gewünschten Frequenz zurückkehren werden durch die kumulativen Wahrscheinlichkeiten.

Random r = new Random();
double v = r.nextDouble();

if (v <= 0.85) { return 0; }
if (v <= 0.86) { return 1; }
return 2;

Dies wird wieder die Zahlen 0, 1 und 2 mit einer Wahrscheinlichkeit von 0,85, 0,01 und 0,14.

Soweit die Theorie auf ungleichmäßigen Wahrscheinlichkeitsverteilungen, können Sie mit diesem Wikipedia-Artikel über Wahrscheinlichkeitsverteilungen starten ; nimmt ihre besondere Note der zusammenklappbaren Abschnitte am unteren Rande der Seite. Sie werden feststellen, dass es Dutzende von nicht-gleichmäßiger Verteilung (sowohl kontinuierliche als auch diskrete) mit unterschiedlichen Eigenschaften.

Andere Tipps

In Ihrem speziellen Fall ist es besser, einen zufälligen Wert in [0 zu erhalten; 100) eine gleichmäßige Verteilung und anschließend überprüfen, was es im Bereich fällt: [0; 85), [85; 99), [99, 100)

Auf der Basis Ihrer Beschreibung scheint es mir, dass Sie Fitness verhältnismäßig Auswahl sprechen über (auch als Roulette-Rad Auswahl bekannt).
http://en.wikipedia.org/wiki/Roulette-wheel_selection

Ich denke, nailxx‘Antwort eine ziemlich kompakte Beschreibung ist das, was Sie tun müssen.

siehe auch Roulette-Auswahl in Genetic Algorithms
Roulette-Rad-Auswahlalgorithmus

Wenn ich hier falsch bin sind einige Bibliotheken, die Sie nützlich finden können:
http://www.ee.ucl.ac.uk/~ mflanaga / java / Stat.html
http: //commons.apache. org / math / apidocs / org / apache / commons / math / random / Paket-summary.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top