您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關python中輪盤賭算法的使用示例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1、說明
輪盤賭博算法的精髓是可以根據個人適應度隨機選擇,適應度越大的個人選擇的概率越高,群體規模越大,該算法可以比較真實地模擬自然狀態的狀況。
2、實例
def select(chromosome_list, fitness_list): """ 選擇(輪盤賭算法) :param chromosome_list: 二維列表的種群 :param fitness_list: 適應度列表 :return: 選擇之后的種群列表 """ population_fitness = np.array(fitness_list).sum() # 種群適應度 fit_ratio = [i / population_fitness for i in fitness_list] # 每個個體占種群適應度的比例 fit_ratio_add = [0] # 個體累計概率 for i in fit_ratio: fit_ratio_add.append(fit_ratio_add[len(fit_ratio_add) - 1] + i) # 計算每個個體的累計概率,并存放到fit_ratio_add中 fit_ratio_add = fit_ratio_add[1:] # 去掉首位的0 rand_list = [random.uniform(0, 1) for _ in chromosome_list] # 生成和種群規模相等的隨機值列表,用于輪盤賭選擇個體 rand_list.sort() fit_index = 0 new_index = 0 new_population = chromosome_list.copy() '''個體選擇 start''' while new_index < len(chromosome_list): if rand_list[new_index] < fit_ratio_add[fit_index]: new_population[new_index] = chromosome_list[fit_index] new_index = new_index + 1 else: fit_index = fit_index + 1 '''個體選擇 end''' return new_population
Python主要應用于:1、Web開發;2、數據科學研究;3、網絡爬蟲;4、嵌入式應用開發;5、游戲開發;6、桌面應用開發。
感謝各位的閱讀!關于“python中輪盤賭算法的使用示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。