基于树状数组的高效轮盘赌算法

来源:互联网 发布:生也有涯 知也无涯 编辑:程序博客网 时间:2024/06/07 04:30

       在许多经典的遗传算法、蚁群算法的实现过程中,常常需要根据每个对象的生存能力在进行优胜劣汰从而获得尽可能最优的个体。该过程人们一般采用轮盘赌算法来实现。这是一种经典的随机选择算法,在网上只要搜索相关词条就有不少关于该算法的实现。然而,这些算法实现随机选择的过程往往是先生成一个0到1之间的随机值,然后用这个随机值对集合中的对象进行累计遍历,直到选出该随机值对应的对象。显然,该算法在最坏情况下需要遍历所有对象,因此该算法进行一次查询的复杂度为O(n)。不幸的是,轮盘赌算法在遗传算法、蚁群算法等智能算法中往往处于算法的核心区域,也就是说轮盘赌算法的效率很大程度上决定的整个智能算法的效率。因此,本文将提出一系列方法对轮盘赌算法进行改进,以提高这类算法的实现效率。





0 0