как реализовать неравномерное распределение вероятностей? - PullRequest
2 голосов
/ 22 июня 2010

Я пытаюсь реализовать неравномерное распределение вероятностей в генетическом алгоритме.

При реализации генетической программы у меня есть эксперимент, который имеет 3 результата, где каждый результат имеет разные вероятности. Допустим, вероятность одного исхода составляет 0,85, другого - 0,01, а последний - 0,14?

П.С .: Я недавно узнал, что это называется неравномерным распределением вероятности. Я реализую это на Java, может кто-нибудь рассказать теорию, стоящую за неоднородных проб. дистрибутив, а также любые пакеты Java, реализующие его.

Не стесняйтесь спрашивать меня, если вам нужна дополнительная информация по проблеме!

Заранее спасибо!

Ответы [ 3 ]

9 голосов
/ 22 июня 2010

Для простого дискретного распределения вы можете написать сэмплер, который будет возвращать ваши результаты с желаемой частотой, используя кумулятивные вероятности.вероятность 0,85, 0,01 и 0,14.

Что касается теории неравномерного распределения вероятностей, вы можете начать с этой статьи в Википедии о распределениях вероятности ;обратите особое внимание на складные разделы внизу страницы.Вы обнаружите, что существуют десятки неравномерного распределения (как непрерывного, так и дискретного) с различными свойствами.

4 голосов
/ 22 июня 2010

В вашем конкретном случае лучше получить случайное значение в [0;100) используя равномерное распределение, а затем проверьте, в какой диапазон он попадает: [0;85), [85; 99), [99, 100)

2 голосов
/ 22 июня 2010

Исходя из вашего описания, мне кажется, что вы говорите о пропорциональном выборе фитнеса (также известном как выбор колеса рулетки).
http://en.wikipedia.org/wiki/Roulette-wheel_selection

Я думаю, что ответ nailxx - довольно компактное описание того, что вам нужно сделать.

см. Также Выбор рулетки в генетических алгоритмах
Алгоритм выбора колеса рулетки

Если я ошибаюсь, вот несколько библиотек, которые могут вам пригодиться:
http://www.ee.ucl.ac.uk/~mflanaga/java/Stat.html
http://commons.apache.org/math/apidocs/org/apache/commons/math/random/package-summary.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...