java 板


LINE

※ 引述《wendly777 (小水)》之铭言: : → AmosYang:大略地看了一下, **感觉** 与 LolAI 的想法很接近… 10/09 13:45 : → AmosYang:但 LolAI 对上 TkcnAI 胜率硬是只有三成 XD 10/09 13:46 : → AmosYang:是故…还是不能靠感觉… ... 10/09 13:53 : → tkcn:我总觉得最近都睡不好... 10/09 14:30 XD : → wendly777:刚刚看到LolAI最新的code,抓下来PK500场,结果半小时过 10/09 14:51 : → wendly777:了还没跑完= =,我自己跟自己PK大概45秒就跑完500场了 10/09 14:52 : → wendly777:你可能先最佳化一下比较好抓问题,可能太复杂产生bug 10/09 14:54 : → wendly777:讲错应该是500张地图,另外GeminiAI运算速度跟我差不多 10/09 15:02 LolAI 0.5 的 perf 问题在於我一开始对整个架构的需求作了错误的假设 演算法本身的复杂度并不高,但实作的部分很「浪费」 所谓错误的假设, 1. 就是我以为物件的生命周期是 cross-session, 而非仅限於该次 "shoot" 2. 我以为棋盘的大小会是像 30*30 或 50*50 这种规模 (後来才知道是 16*16 XD) 易言之,在我一开始的想法里,整个东西应该是这样运作: GameEngine 通知 AI: 「轮到你了」 -> AI check 上次计算的资料有没有剩下来 没有的话,AI 开始重新计算 (LolAI 的 initialization 很贵,付了很多为了把实作抽象化的税) -> AI 计算完成,得到 a set of "shoot" candidates 这些 candidates 肯定是地雷 -> AI 从 shoot candidates 挑一个喂给 GameEngine 剩下没用到的部分 cache 起来 只要之前计算出来的 candidate 还没用完, LolAI 就不用重新计算 但事实上,整个东西是这样运作: GameEngine 通知 AI: 「轮到你了」 -> AI 开始计算 -> AI 计算完成,得到 a set of "shoot" candidates -> AI 从 shoot candidates 挑一个喂给 GameEngine -> AI object 生命周期必须结束 因为 game engine 并没有 session 的观念 也就是说,AI 并没有办法针对 sesstion 来 cache 资料 所以,一开始我预期为了实作抽象化的税应该不会太惨 且我觉得在大棋盘上,cache 资料会比每回合重新算来得好 但在现行的架构下, LolAI 每一回合都要付这些税… perf 就炸了 XD 又,所谓「实作抽象化」就是 LolAI 可以很简单地用来计算 不同的棋盘上的踩地雷,例如三角形格子、六角形格子 这种实作的 perf 比直接对一个 2D array 作存取来得慢,但写起来比较爽 XD 有兴趣的话可以比较看看, 「如果今天要把 AI 改写成处理六角格的棋盘,或着是 3D 或着是更不规则的形状,看看各种 AI 的实作有多少部分需要重写」 :D 总结: 1. LolAI 因为对整个架构的估计错误, perf 就爆炸了 (但其演算法其实很简洁…虽然 v0.5 里有 50% 的计算是不必要的) 2. LolAI 作者对「抽象化」有异常的执着, perf 就又爆炸了 3. 不管 perf 有没有炸, LolAI 目前只能在 「根据现有的资料判断一定是地雷的格子」这点上与其他 AI 分庭抗礼 在「根据现有的资料判断有可能是地雷的格子」这点上是确实输给其他 AI 的 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 24.148.239.184 易言之, LolAI 可以说是完全惨败 画蛇添足的下场就是 perf 吃的比别人凶,且胜率没有也比较高 要扭转战局只能砍掉重练,得先去写个一、两百题 ACM 把脑残治好 XD ※ 编辑: AmosYang 来自: 24.148.239.184 (10/09 23:13)
1F:推 godfat:我只有 nearby method 需要重写,其他都不用动 :D 10/10 02:01
2F:→ AmosYang:我的是叫 getNeighbors() :D 10/10 07:00
3F:→ wendly777:我有定义一个point物件,将x与y座标化为一个唯一id,利 10/10 10:59
4F:→ wendly777:用id来判断是否重叠,整个演算法只涉及id,所以完全不 10/10 11:00
5F:→ wendly777:用改,只需要建构新的point3D,另外比对id比较快 10/10 11:02







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灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP