Matlab GA中的随机制服步长

时间:2018-08-21 21:03:11

标签: matlab genetic-algorithm

我正在尝试理解文档https://se.mathworks.com/help/gads/genetic-algorithm-options.html

中所述的随机统一选择算法
  

ga的默认选择功能(随机统一)布置了一条线,其中每个父级对应于一条与其比例值成比例的长度线段。该算法以相等的步长沿线移动。在每个步骤中,算法都会从其到达的部分中分配一个父对象。第一步是小于步长的统一随机数。

对于我自己来说,以上文档可以用两种方式解释:

  1. 最初将随机选择一个x,随后的所有“步骤”都只是它的倍数。

    Step size: 1 
    Random x e.g. 0.5 
    Location on line: 0.5, 1, 1.5, 2, 2.5 
    
  2. 该算法以固定的步长沿着直线移动,并且每次都会添加随机x <固定大小。

    Fixed Step size: 1 
    Random x varies all the time but < 1
    Location on line: 1.1, 2.3, 3.2, 4.5, 5.1 
    

数字1面临的问题是,如果选择的随机值太小,则只会选择最适合的个体,因为我们根本不会沿线移动。那么第二种解释正确吗?

据我所知,缩放后的适应度值总和将要生成的父母数量,因此步长并不总是1,因为我们可以精确地拟合多步*父母需要上线吗?

1 个答案:

答案 0 :(得分:1)

这是您的第三种解释。该算法以固定的步长沿直线移动。但是,起点小于步长。

Fixed step size: 1
Randomly chosen start: 0.32
Locations on line: 0.32 1.32 2.32 3.32 4.32 5.32

通过使用固定的步长,该算法确切知道将选择多少个父对象。例如,如果线长为100个单位,步长为1,则将恰好选择100个父级。但是选择哪个父母是由随机起点决定的。

这假设在每个长度为1的区间中都有多个父母可以选择,并且最适合的个体的缩放长度小于1。