2

유전 알고리즘에서 비 균일 확률 분포를 구현하려고합니다.비 균일 확률 분포를 구현하는 방법은 무엇입니까?

유전 프로그램의 구현에서 나는 각 결과가 다른 확률을 갖는 3 가지 결과를 갖는 실험을 가진다. 즉, 한 결과의 확률은 0.85이고, 다른 것은 0.01이며, 마지막 것은 0.14입니까?

P.S : 나는 최근에 이것이 확률의 불균일 분포라고 불리는 것을 알게되었습니다. Java로 구현하고 있습니다. 누구나 비 균일 문제에 대한 이론을 말할 수 있습니까? 배포 &도 구현하는 모든 Java 패키지.

문제에 대한 추가 정보가 필요하면 언제든지 알려주세요.

미리 감사드립니다.

+0

당신이 명확히 수 분포? 컴퓨터에서 생성하는 임의의 밸류를 예측하려고합니까? 게다가, 첫 번째 문장에서 유전 알고리즘을 만들고 있다고 말하면서 두 번째 문장에서 유전 프로그램을 작성한다고 말하면서 두 유전자 사이에 약간의 차이가 있습니다. 그래서 어느 것이 더 명확한지를 밝힐 수 있습니다 당신은 구현하고 있습니까? – Kiril

+0

유전자 알고리즘을 구현하는 자바 프로그램을 작성한다는 의미입니다. 불규칙한 prob를 구현해야하는 이유는 실행할 작업을 결정해야하기 때문입니다. 여기 오퍼레이션은 크로스 오버, 돌연변이 및 복제로 각각 0.85, 0.01 & 0.14입니다. 나는 lucas & nailxx가 대답했다고 생각한다. 나는 그들의 대답을 옳다고 가정하고있다. 제발 다른 사람이 있으면 알려주세요. – Reddy

+0

내 대답은 더 좋습니다 http://stackoverflow.com/a/15237795/1698887 –

답변

9

간단한 이산 분포의 경우 누적 확률을 사용하여 원하는 빈도로 결과를 반환하는 샘플러를 작성할 수 있습니다.

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

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

이렇게하면 확률이 0.85, 0.01 및 0.14 인 숫자 0, 1 및 2가 반환됩니다.

불균일 확률 분포에 관한 한,이 위키 백과 문서의 probability distributions에서 시작할 수 있습니다. 페이지 하단의 접을 수있는 섹션에 특히주의하십시오. 서로 다른 속성을 가진 수십 개의 비 균일 분포 (연속 및 개별)가 있음을 알 수 있습니다.

+0

안녕 루카스! 당신은 ur 대답을 정당화 해 주시겠습니까? 코딩이 아니라 논리적인 것! – Reddy

+2

[0.0, 1.0]의 균일 한 분포 값으로 시작한 다음 해당 간격을 확률에 비례하는 섹션으로 슬라이스합니다. – Lucas

+1

@Reddy Lucas가 제공 한 wiki 링크를 클릭 했습니까? 링크를 파헤 치면 왜 작동하는지 이해할 수 있습니다. Lucas가 제안한 알고리즘을 실행하고 Prob (draw = 0) = 0.85 등으로 자신을 만족시킬 수 있습니다. – vad

4

특정 경우에 임의 값을 [0; 100)을 사용하여 균일 한 분포를 얻은 다음 어떤 범위에 속하는 지 확인하십시오 : [0; 85), [85,99], [99, 100)

+0

감사합니다 nalixx! 나는 u & lucas가 같다고 생각한다. .. – Reddy

2

귀하의 설명에 따르면 당신은 피트니스 비례 선택 (룰렛 휠 선택이라고도 함)에 대해 이야기하고있는 것으로 보입니다.
http://en.wikipedia.org/wiki/Roulette-wheel_selection

네일 릭스의 답변은 당신이해야 할 일을 아주 간결하게 묘사 한 것 같아요.

Roulette Selection in Genetic Algorithms
Roulette wheel selection algorithm

참조 내가 여기 틀렸다 경우 유용하게 사용할 수있는 몇 가지 라이브러리입니다 : 당신이 비 균일 확률이 필요한 이유
http://www.ee.ucl.ac.uk/~mflanaga/java/Stat.html
http://commons.apache.org/math/apidocs/org/apache/commons/math/random/package-summary.html

관련 문제