我正在研究遗传算法中的不同选择方法。我的问题是关于随机通用抽样 (SUS) 选择方法。我知道每个人将根据其适应度值占据一条线,然后等间距的指针将放置在这条线上。
我想知道指针之间的距离是如何确定的。我已经看到 1/6 和 1/4 作为指针之间的距离。我想根据情况动态选择指针的数量。我想知道什么条件或因素会影响这个距离的确定。例如,我们什么时候决定选择 1/4 作为距离?我想知道是否可以根据不同的条件或情况改变每次迭代中的样本数。如果有,这些条件是什么?
我正在研究遗传算法中的不同选择方法。我的问题是关于随机通用抽样 (SUS) 选择方法。我知道每个人将根据其适应度值占据一条线,然后等间距的指针将放置在这条线上。
我想知道指针之间的距离是如何确定的。我已经看到 1/6 和 1/4 作为指针之间的距离。我想根据情况动态选择指针的数量。我想知道什么条件或因素会影响这个距离的确定。例如,我们什么时候决定选择 1/4 作为距离?我想知道是否可以根据不同的条件或情况改变每次迭代中的样本数。如果有,这些条件是什么?
正如 James Baker 1989 年在减少选择算法中的偏差和效率低下的论文中最初设想的那样,随机通用抽样接受包含以下内容的总体个人,以及一些要抽样的父母,表示. 假设适应度值被归一化,因此它们总和为,在每一步,一个新的指针被放置在一个与分数大小相等的步长上在前一个指针的位置之前(并且第一个指针的位置设置为范围 [0,))。因此,例如,如果您想从大小为 10 的总体中抽取 6 个个体,您需要设置大小步长, 将指针间隔均匀.
现代的实现,比如维基百科上的实现,有时并没有清楚地记录这一事实,尽管如果你已经理解了这个方法,那么它的意图是显而易见的。他们经常将步长写为, 在哪里是人口的总适应度,没有讨论它与人口规模的关系。额外的规范化步骤实际上并不是必需的,因此现代实现通常似乎跳过了它。
总而言之,步长如果种群的适应度值总和为,并且您要选择个人。如果要选择更多个体,请使用更高的值. 如果您想选择更少,请使用较低的值,它会相应地更新您的步长。
这个参数的值或者建议实现可能是将适应度值的总和归一化为 N,然后自动使用参数作为乘法因子。这是一个相当合理的设计。您可以将这些值解释为“选择人口”和“选择人口”。
请注意,这种方式将您的问题提升了一个层次:您如何选择要保留的人口比例?这个问题没有一个明确的答案,而选择它通常是专家通过实践开发的艺术。它与探索/开发权衡非常密切相关。
您可能会选择的一些方法: