溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中輪盤賭算法的使用示例

發(fā)布時(shí)間:2021-05-14 15:25:43 來源:億速云 閱讀:989 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)python中輪盤賭算法的使用示例的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

1、說明

輪盤賭博算法的精髓是可以根據(jù)個(gè)人適應(yīng)度隨機(jī)選擇,適應(yīng)度越大的個(gè)人選擇的概率越高,群體規(guī)模越大,該算法可以比較真實(shí)地模擬自然狀態(tài)的狀況。

2、實(shí)例

def select(chromosome_list, fitness_list):
    """
    選擇(輪盤賭算法)
    :param chromosome_list: 二維列表的種群
    :param fitness_list: 適應(yīng)度列表
    :return: 選擇之后的種群列表
    """
    population_fitness = np.array(fitness_list).sum()  # 種群適應(yīng)度
    fit_ratio = [i / population_fitness for i in fitness_list]  # 每個(gè)個(gè)體占種群適應(yīng)度的比例
    fit_ratio_add = [0]  # 個(gè)體累計(jì)概率
    for i in fit_ratio:
        fit_ratio_add.append(fit_ratio_add[len(fit_ratio_add) - 1] + i)     # 計(jì)算每個(gè)個(gè)體的累計(jì)概率,并存放到fit_ratio_add中
    fit_ratio_add = fit_ratio_add[1:]   # 去掉首位的0
 
    rand_list = [random.uniform(0, 1) for _ in chromosome_list]     # 生成和種群規(guī)模相等的隨機(jī)值列表,用于輪盤賭選擇個(gè)體
    rand_list.sort()
    fit_index = 0
    new_index = 0
    new_population = chromosome_list.copy()
    '''個(gè)體選擇 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
    '''個(gè)體選擇 end'''
    return new_population

Python主要用來做什么

Python主要應(yīng)用于:1、Web開發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲;4、嵌入式應(yīng)用開發(fā);5、游戲開發(fā);6、桌面應(yīng)用開發(fā)。

感謝各位的閱讀!關(guān)于“python中輪盤賭算法的使用示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI