python輪盤賭算法如何使用
說明
1、輪盤賭算法的精髓是可以根據個人適應度隨機選擇。
2、適應度越大的個人選擇的概率越高,群體規模越大,該算法可以比較真實地模擬自然狀態的狀況。
實例
defselect(chromosome_list,fitness_list):
"""
選擇(輪盤賭算法)
:paramchromosome_list:二維列表的種群
:paramfitness_list:適應度列表
:return:選擇之后的種群列表
"""
population_fitness=np.array(fitness_list).sum()#種群適應度
fit_ratio=[i/population_fitnessforiinfitness_list]#每個個體占種群適應度的比例
fit_ratio_add=[0]#個體累計概率
foriinfit_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_inchromosome_list]#生成和種群規模相等的隨機值列表,用于輪盤賭選擇個體
rand_list.sort()
fit_index=0
new_index=0
new_population=chromosome_list.copy()
'''個體選擇start'''
whilenew_index ifrand_list[new_index] new_population[new_index]=chromosome_list[fit_index] new_index=new_index+1 else: fit_index=fit_index+1 '''個體選擇end''' returnnew_population 以上就是python輪盤賭算法的使用,希望對大家有所幫助。更多Python學習教程請關注IT培訓機構:千鋒教育。