整理~ 概率~应用


看到  http://www.zhizhihu.com/html/y2013/4381.html  的一段:

集合里面的样本,每个样本一个概率pi, sum(pi)=1;

每次采样只采一个样本出来。

生成一个0~1的随机数p,

从第一个元素开始遍历,如果sum(pj) >= p了,第j个元素被采出来,break。这之后也可以重新分配一下剩余元素的概率,从而保证每次采样都会有样本采进来。sum(p_new)=1.

上面这种简单有效的方法,你可以简单想成在一个圆盘上有很多区间,有个指针随机转动,停在哪个区间就是你的结果。

想想Monte Carlo采样相关的方法?


然后搜了下   http://wenku.baidu.com/link?url=hIII9kly8wGLRqzp0xwGUZe2E1jqfvpWAkm-5JrpTYdi7iqyzvuZnUAGqWBxjzrRhA_YUPvhV5-op04IMNbrSVjGlONMr3YRz_kYHs-bP43


Monte-Carlo算法引导 
      首先,我们来看一个有意思的问题:在一个1平方米的正方形木板上,随意画一个圈,求这个圈的面积。 
      我们知道,如果圆圈是标准的,我们可以通过测量半径r,然后用 S = pi * r^2 来求出面积。可是,我们画的圈一般是不标准的,有时还特别不规则,如下图是我画的巨难看的圆圈。 

显然,这个图形不太可能有面积公式可以套用,也不太可能用解析的方法给出准确解。不过,我们可以用如下方法求这个图形的面积: 
      假设我手里有一支飞镖,我将飞镖掷向木板。并且,我们假定每一次都能掷在木板上,不会偏出木板,但每一次掷在木板的什么地方,是完全随机的。即,每一次掷飞镖,飞镖扎进木板的任何一点的概率的相等的。这样,我们投掷多次,例如100次,然后我们统计这100次中,扎入不规则图形内部的次数,假设为k,那么,我们就可以用 k/100 * 1 近似估计不规则图形的面积,例如100次有32次掷入图形内,我们就可以估计图形的面积为0.32平方米。 
      以上这个过程,就是Monte-Carlo算法直观应用例子。


&&

遗传算法中轮盘赌选择方法

   http://zhidao.baidu.com/question/219114380.html?qbl=relate_question_0

轮盘赌 并不是一种特别好的选择算子,但它容易实现。
首先要明白一点,由于交叉、变异等算子,并不能控制进化方向,所以进化的重任落在选择算子上。


如果明白了这一点,就好办了。


轮盘赌,就是积累概率来实现的,通常适应度大的被选择的几率较高。
假如:fit为适应度数组,共m个
for i=1 to m  '先求和
    sum=sum+fit(i)
next i
For i = 1 To n ‘n-是要生成多少个个体
    temp = temp + fit(i)
    If rnd <= temp / sum Then
         输出 i 就是结果
        Exit Function
    End If
Next i


有两个问题需要解决:
1.在适应度相差不大的情况下,和随机选一个没有区别,不利于控制进化速度和方向
2.这个东东,是有放回的选择,在一些工程应用中,有时候是无放回的选择


另:比如控制子代无重复等等,也是需要考虑的。


现在,选择算子有很多,国内学术就不提了,基本就是这个。其实明白了道理,自己设计一个有针对性的算子更有实际意义,不要怕麻烦。

你可能感兴趣的:(整理~ 概率~应用)