Question

Je suis en train de mettre en œuvre la distribution de probabilité non uniforme dans l'algorithme génétique.

Dans la mise en œuvre du programme génétique, j'ai une expérience qui a 3 résultats, où chaque résultat a des probabilités différentes. Disons, probabilite d'un résultat est de 0,85, 0,01 et autre dernier est 0,14?

P.S: Je suis venu récemment à savoir qu'il est appelé distribution non uniforme de la probabilité. Je la mise en œuvre en Java, peut-on dire la théorie derrière prob non uniforme. la distribution et aussi les paquets Java mise en œuvre.

Ne hésitez pas à me demander sais, si u besoin de plus d'informations sur le problème!

Merci à l'avance!

Était-ce utile?

La solution

Pour une simple distribution discrète, vous pouvez écrire un sampler qui renverra vos résultats avec la fréquence souhaitée en utilisant les probabilités cumulées.

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

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

Ceci renvoie les nombres 0, 1 et 2 avec une probabilité de 0,85, 0,01 et 0,14.

En ce qui concerne la théorie des distributions de probabilités non uniformes, vous pouvez commencer par cet article de Wikipedia sur distributions de probabilité ; prendre note spéciale des sections réductibles au bas de la page. Vous trouverez qu'il ya des dizaines de distribution non uniforme (à la fois continues et discrètes) avec des propriétés différentes.

Autres conseils

Dans votre cas particulier, il est préférable d'obtenir une valeur aléatoire dans [0; 100) en utilisant une distribution uniforme et vérifier quelle gamme il tombe: [0; 85) [85; 99), [99, 100)

D'après votre description, il me semble que vous parlez de remise en forme de sélection proportionnelle (également connue sous le nom de sélection roulette).
http://en.wikipedia.org/wiki/Roulette-wheel_selection

Je pense que nailxx » réponse est une jolie description compacte ce que vous devez faire.

voir aussi Sélection Roulette en algorithmes génétiques
Roulette algorithme de sélection de la roue

Si je me trompe, voici quelques bibliothèques qui pourraient vous être utiles:
http://www.ee.ucl.ac.uk/~ mflanaga / java / Stat.html
http: //commons.apache. org / math / apidocs / org / apache / communes / math / aléatoire / package-summary.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top