基於樹狀數組的高效輪盤賭算法

       在許多經典的遺傳算法、蟻羣算法的實現過程中,常常需要根據每個對象的生存能力在進行優勝劣汰從而獲得儘可能最優的個體。該過程人們一般採用輪盤賭算法來實現。這是一種經典的隨機選擇算法,在網上只要搜索相關詞條就有不少關於該算法的實現。然而,這些算法實現隨機選擇的過程往往是先生成一個0到1之間的隨機值,然後用這個隨機值對集合中的對象進行累計遍歷,直到選出該隨機值對應的對象。顯然,該算法在最壞情況下需要遍歷所有對象,因此該算法進行一次查詢的複雜度爲O(n)。不幸的是,輪盤賭算法在遺傳算法、蟻羣算法等智能算法中往往處於算法的核心區域,也就是說輪盤賭算法的效率很大程度上決定的整個智能算法的效率。因此,本文將提出一系列方法對輪盤賭算法進行改進,以提高這類算法的實現效率。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章