創作內容

33 GP

2022/09/16 基因演算法

作者:熾炎之翼│2022-09-16 23:12:26│巴幣:1,112│人氣:1437
前天花了五小時寫好決賽的大招
也就是Multiprocessing Genetic Algorithm
中文就是多行程基因演算法


從很久以前就對基因演算法很有興趣
因為完全模仿現實物競天擇的機制讓我覺得很酷
而且一代強於一代的「演化機制」也讓成果往往令人滿意
就算到參加這個去識別化競賽也妄想可以運用
但是礙於沒有回饋機制也沒有寫過的經驗就沒有使用到
可是自從我幾天前寫出了評價程式
相當於提供了缺少的回饋機制 這個方法就重見天日了

其實這五小時裡大概一半時間都在處理multiprocessing
因為這是要拿去系上伺服器去跑的
我可不打算浪費這120核的CPU的運算資源
基本上一般寫的程式都只會在單核心跑
唯有透過這種平行程式設計才能最大化利用所有的核心

但是這當然沒這麼容易
畢竟會牽扯到參數、記憶體不共享的問題
所以花了蠻多時間在找解決辦法

而至於演算法本身我原本是想上網參考
但因為比賽機制的特殊性 無法直接套用
到最後我還是憑他的算法邏輯自己去設計了
記得寫完這個演算法的時候已經2點了 笑死

至於昨天則是透過自己對遺傳學的理解
又多改進了如「基因突變」、「基因遺失」、「基因重組」等機制
也把環境負載量、新移入個體、繁殖率的參數進行更改
而且也再度精進了評價系統
到今天跑到2000多代 已經可以到達0.85分了(滿分為1)


看著一代比一代更加茁壯
這種像種植花草一樣的感受讓我滿開心的XD


程式就到此為止
這幾天也買了去日本的機票
申請了電子簽證 擬定了給學校的經費表
總共要了14萬 研發處會想殺了我
反正文書工作也是搞了一大堆 累爆

不過今天晚餐還跟交大幫一起去烤肉
大口吃肉 好爽好爽



差不多就這樣
今天開始就展開為期17天的決賽去識別化階段
好好加油吧

然後明後兩天又是虹咲5th的next Tokimeki公演
我自己是會看D2 劇場版、第三季趕快宣布吧


生活還真的蠻充實的XD
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5559524
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 12 篇留言

娃娃音
寶,比賽加油

09-16 23:13

熾炎之翼
謝謝寶 [e5]09-16 23:14
M mango
佬。我都看不懂
我公演兩天都要看[e5]

09-16 23:15

熾炎之翼
我上週末兩天都看了 看四天太傷荷包 [e3]09-16 23:25
豪 棒棒
佬,比賽加油
我不會多核平行運算的程式設計教ㄇ

09-16 23:22

熾炎之翼
估狗multiprocessing 我上個月才自學的 現在還是只會基本的 嘻嘻09-16 23:26
M mango
真的,吃土吃爛了,而且我還訂了雪菜巨趴,荷包要死了[e3]

09-16 23:28

熾炎之翼
幹巨的一隻快五千台幣 有夠貴09-16 23:36
無鹽粄條
酷酷的東西......

09-16 23:40

熾炎之翼
超讚…我又重新喜歡上生物(X09-16 23:44
M mango
本體4000多還要被代購賺兩千走,貴死

09-16 23:41

熾炎之翼
雖然2000很多 但海關運費應該很可觀 所以其實還好XDDD09-16 23:45
班尼.史克斯
python multiprocessing教ㄇ

09-17 00:03

熾炎之翼
唉 資應大佬怎麼可能不會09-17 00:13
希無冀
一直在約吃飯 現充吧…

09-17 00:21

熾炎之翼
八卦是明天(禮拜六)晚餐又有一攤09-17 00:24
樂小呈
https://memeprod.ap-south-1.linodeobjects.com/user-template/8bae56d04169ae33a8c2129e071098d3.png

09-17 07:15

熾炎之翼
小呈去估狗一下就馬上搞懂了吧[e12]09-17 11:46
♙♲⚙\~O_O~/⚙♲♙
看來是修了陳穎平老師的課呢

09-17 14:17

熾炎之翼
沒修過 我自己亂學的 [e20]09-17 15:56
edison
有點好奇你是怎麼平行selection, mutation, crossover 的之前想用Dask實作但是效果沒有想像中好


09-17 21:38

熾炎之翼
因為我是對應識別化比賽修
所以我是把所謂的「步驟」用order存到list(可以看作基因
而中間過判斷式去過你說的的關卡
來讓list存的參數等出現變化
然後最後真正平行化設計的
就是拿這list去用各核分別生成去識別化檔案
並從評鑑系統拿到score09-17 21:54
edison
圖片看來是用了 Process 來存步驟
然後每一個generation 做一次整體的運算(?)
這樣看來應該也算是 lazy的做法
那請問gene 裡面存了甚麼樣的資料

09-18 00:23

熾炎之翼
對 用Process的資料
然後每一代個體上限也對應核心數去跑
其實我是直接把Process看成gene啦XD
裡面資料是放要跑哪一種去識別化function(k匿名、rr、dp等等) 以及各個function 對應的參數

交配時也是由個體去把自己的Process遺傳給下一代
變異則是讓其中某一個步驟產生參數甚至function都改變
基因遺失則是隨機delete某一個步驟
重組就是shuffle整個Process

我同時也有設計移入新個體機制
也就是讓Process只有一步驟的個體加入交配
以保證整個族群不會太快收斂
一定程度上保證了彈性09-18 00:30
我要留言提醒:您尚未登入,請先登入再留言

33喜歡★H32902227 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:2022/09/14 開... 後一篇:LL虹咲 5th liv...

追蹤私訊切換新版閱覽

作品資料夾

damage922可憐...
以後就只剩7-11和全聯了, 真正便宜的大潤發就只能存在於個人美好的回憶裡面了...看更多我要大聲說3小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】