bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

python中遺傳算法優化過程的實例-創新互聯

小編給大家分享一下python中遺傳算法優化過程的實例,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名與空間、虛擬空間、營銷軟件、網站建設、井研網站維護、網站推廣。

問題描述

一個名為Robby的機器人生活在一個充滿垃圾的二維網格世界中,周圍有4堵墻(如下圖所示)。這個項目的目標是發展一個很好的控制策略,使他能夠有效地撿垃圾,而不是撞墻。

問題圖片所示:

python中遺傳算法優化過程的實例

涉及方法

任何GA的優化步驟如下:

l 生成問題初始隨機解的“種群”

l 個體的“擬合度”是根據它解決問題的程度來評估的

l 最合適的解決方案進行“繁殖”并將“遺傳”物質傳遞給下一代的后代

l 重復第2步和第3步,直到我們得到一組優化的解決方案、

應用的遺傳算法代碼展示:

在下面的代碼中,我們生成一個初始的機器人種群,讓自然選擇來運行它的過程。我應該提到的是,當然有更快的方法來實現這個算法(例如利用并行化)。

# 初始種群
pop = [Robot() for x in range(pop_size)]
results = []
 
# 執行進化
for i in tqdm(range(num_gen)):
    scores = np.zeros(pop_size)
 
    # 遍歷所有機器人
    for idx, rob in enumerate(pop):
        # 運行垃圾收集模擬并計算擬合度
        score = rob.simulate(iter_per_sim, moves_per_iter)
        scores[idx] = score
 
    results.append([scores.mean(),scores.max()]) # 保存每一代的平均值和較大值
 
    best_robot = pop[scores.argmax()] # 保存好的機器人
 
    # 限制那些能夠交配的機器人的數量
    inds = np.argpartition(scores, -num_breeders)[-num_breeders:] # 基于擬合度得到頂級機器人的索引
    subpop = []
    for idx in inds:
        subpop.append(pop[idx])
    scores = scores[inds]
 
    # 平方并標準化
    norm_scores = (scores - scores.min()) ** 2
    norm_scores = norm_scores / norm_scores.sum()
 
    # 創造下一代機器人
    new_pop = []
    for child in range(pop_size):
        # 選擇擬合度優秀的父母
        p1, p2 = np.random.choice(subpop, p=norm_scores, size=2, replace=False)
        new_pop.append(Robot(p1.dna, p2.dna))
 
pop = new_pop

效果展示:

python中遺傳算法優化過程的實例

看完了這篇文章,相信你對python中遺傳算法優化過程的實例有了一定的了解,想了解更多相關知識,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!

標題名稱:python中遺傳算法優化過程的實例-創新互聯
當前鏈接:http://vcdvsql.cn/article8/csesop.html

成都網站建設公司_創新互聯,為您提供微信小程序品牌網站建設全網營銷推廣網站建設電子商務做網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管