Prob_Solve 板


LINE

第一個是日本網站 http://kamoland.com/wiki/wiki.cgi?RensaWiki
1F:推 H45:他的 AI 構築策略大體上來說就是權重法 <- 可以說明一下嗎... 12/04 20:06
突然被問到,我才有種不知道是否用錯名詞、講得太隨便的疑慮 其實最近才在和組員看程式流程,不保證講的概念一定很對 ... 我就試著大概說明一下 @@" 首先捏... 上面那個網站,頁面左側有個開發kit -> AI-COM SDK 這就是 source code。 在看 code 之前其實也要先說明一下這個 AI 當然不是 「只有」權重判段 puyo 落點的設計,仍然有許多經驗法則和規則整理, 譬如說一對新的 puyo 下來共有 22 手不同落點方式, 在 RensaInfo 的「積み込み決定手法の概要」裡有詳盡說明 由此可知當一組新的 puyo 從上方出現時,盤面的 evaluation 基本上就有 22 種不同的下法要去做判斷。 (特別提醒,這 code 可能不是很好看,連鎖的命名就用 "rensa"(羅馬拼音) 而非 combo or chain 之類的,然後註解都是日文 ... 裡面還會看到很多 "Yomi" "Tumi" ...好像就是 "読み" "積み" 還有 Tumi 的複數形 Tumos (淦!明明是羅馬拼音啊 !!!????) 「干擾」泡泡就直接寫 "Jama" (邪魔,日文阻礙之意)) 在 source code 中 kamoland/rensacommon/ai/ 裡, class TumiDeciderCaller 就是決策器,而 TumiDecider 與 TumiDeciderWithPruning 則是分數評價器的 interface 兩個 Decider 的差異在於,當決策器(Caller)發現本次對戰使用帶有 TumiDeciderWithPruning 介面的分數評價器 impl, 在評價各手時就會去判斷此步到底適不適合下 (當然這部份是須要去 implement 那個 interface 的) 例如當目前狀況不需做緊急消除,而下這手會導致誤發火 (消到不該消的) 或是目前狀況需要緊急消除,下這手沒辦法馬上引發反擊、 還是說這手一下下去就是自殺之類的 ... Pruning 的意思也就是刪去,把 22 手中不合時宜的幾步刪掉。 此 SDK 讓使用者撰寫的主要就是去實作 TumiDecider 介面, 也就是實際上每一手的評價系統。 已經有許多版本在 ai/decider/ 資料夾中可供參考。 AiBasedCom 介面只是在評價器中多加上一些電腦對手的參數 (譬如說思考的時間間隔、AI叫啥名字之類的 ..) 每個評價器的 impl 都還有非常瑣碎的內容,各種不同狀況的考慮 與不同的算分方式、甚至是考慮再下一手的狀況也加入這手的評分之中, 每個實作的寫法差異都頗大,網站上還辦過四次的 puyo AI 連鎖比賽。 不過我想 .. 這種用分數評價的方式應該就是 brute force 了, 因為除了一些經驗法則刪去不合時宜的幾手之外,剩下的每一種下法 都要評價,再走評價最高的那一步,而判斷評價的標準往往都是 實際推演一次看誰連鎖最大,原則上來說就是暴力法吧 ...。 只是說這個暴力法有經過一些經驗法則的規畫這樣 ..... 其實看起來效率上沒什麼問題,打起來 AI 也實在不弱。 之前想說用 learning、NN 之類的可能太 overkill 了。 (當然,還是可以以這個 SDK 為基礎去用 learning 或 NN 發展評價系統, 電腦會依據自己的紀錄來調整評分的比重 ...etc... 好像是不用演變到這麼誇張 XD) 大概就這樣 @@" 希望沒講錯太多東西 ** 補充一下 ** 看到 RensaYomi6ABC 這個實作有個我覺得已經是很難輸的設計了 他有一紅二紅三紅的概念,阿,我絕對沒有說是這個 Xbox 360, 這個版本的實作在評價時會考慮這一手與預測下一手 (資訊已知, puyo 向來都看得見下一手) 一紅的狀況以下,完全不會考慮這一手的連鎖,會考慮連下兩手的最高連鎖 (當然這是暴力法找出來的),二紅的時候就是有點危險, 評分上會分別考慮這一手的連鎖 + 下一手的連鎖, 三紅的時候則是只考慮這一手的連鎖,力求馬上反擊 所以當敵人對它造成的威脅一直很低的時候, 它永遠都會考慮下一手,永遠不會在這一手就把連鎖擊發, 所以除非運氣不好,遇到非消不可的狀況 (22 手都會發火)、 或是這一手非得堵死自己的發火點, (連續來無用的顏色,自己現有盤面完全無法配合) 要不然它的連鎖很自然的會一直越堆越高。 要避免掉那些狀況除了計算更多手之外好像沒別的辦法, (如果計算範圍已經超過已知範圍,變成是顏色未知的 puyo, 那可能性就太恐怖了,做到這邊應該是已經沒意義? 或是PS猴大講的... 讓電腦偷偷知道多好多步 ...會太強就是了 XD) 與其計算更多步,可能比較重要的是預留活路, 譬如說盡量保持有第二、第三發火點的做法以應變意外狀況, 每一手下下去之後的發火點數量也要納入評價考量之內, 以防對手突然間用小連鎖瘋狂快攻之類的。 好啦 XD 其實已經花太多時間在打文章 XDDDDD... 基礎程式都還沒寫完呢 :~ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.72.57.78 ※ 編輯: linjack 來自: 203.72.57.78 (12/04 23:24)
2F:推 PsMonkey:純推.... 12/04 23:27
※ 編輯: linjack 來自: 203.72.57.78 (12/04 23:54)
3F:推 linjack:慘 XD 我修到誰的推文 Sorry @_@" 12/04 23:55
※ 編輯: linjack 來自: 203.72.57.78 (12/04 23:57)
4F:推 yoco315:哇 好讚 @@ 12/05 01:45
5F:推 seanwu:PuyoFever的AI感覺還不弱... 12/05 19:09
6F:推 march20:我對 AI 完全不瞭, 但還是覺得很厲害 @@ 12/06 06:27
7F:推 H45:阿,就是修到我的推文呀 XD 12/06 18:36







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP