f*******a 发帖数: 663 | 1 上周发了个帖询问转珠算法,感谢fanfan21的回复,拿到pndopt的代码看了看,然后自
己搭了个框架,重新实现了一遍
原代码的主要处理步骤基本是按步穷举:
1. 初始化,把每个位置作为起始位置,放入solution列表
2. 对每个solution的每个可能移动方向,生成一个新solution,计算weight放入列表
3. 循环完成后solution列表按weight排序,保留一定量的最优solution。
重复2,3步直到最大步数。
思路不错,效率高,够实用,但剪枝可能会造成非理论最优解。
做了一些测试,发现其实和人的处理思路是很不一样的,例如看附件图,这样的combo
不是一般人的计算模式,在网上看高手的转珠视频(短时间转高combo)也不是这样的
处理模式,所以这个问题是很有意思的,人脑是以什么样的模式来解析转珠规则的?非
常欢迎各位分享自己的转珠经验,也好让我学习学习。我自己的一点粗浅理解是,局部
特定模式形成强化刺激,多次练习后可有效降低运算时间。
此外,目前这个优化算法并不能保证取到理论最优,因为解空间过大的缘故。这种每步
都剪枝的处理对麒麟队这种往往难以奏效,比如某色就3个珠而且隔的很远,需要大量
移动,然后突然达到一个全局最优。在这种情况下,人脑分析显然是从整体到局部的处
理思路,也是一个很有意思的问题。 |
I******e 发帖数: 6478 | 2 不明觉厉
这种一般都是一锤子买卖,有没有谁也开发一下深V,先排一轮珠
combo
【在 f*******a 的大作中提到】 : 上周发了个帖询问转珠算法,感谢fanfan21的回复,拿到pndopt的代码看了看,然后自 : 己搭了个框架,重新实现了一遍 : 原代码的主要处理步骤基本是按步穷举: : 1. 初始化,把每个位置作为起始位置,放入solution列表 : 2. 对每个solution的每个可能移动方向,生成一个新solution,计算weight放入列表 : 3. 循环完成后solution列表按weight排序,保留一定量的最优solution。 : 重复2,3步直到最大步数。 : 思路不错,效率高,够实用,但剪枝可能会造成非理论最优解。 : 做了一些测试,发现其实和人的处理思路是很不一样的,例如看附件图,这样的combo : 不是一般人的计算模式,在网上看高手的转珠视频(短时间转高combo)也不是这样的
|
f*******a 发帖数: 663 | 3 下一步打算从简单的入手,做双色转珠,研究一下图案间的相似性和连通性,看看怎么
能最大combo。
还有什么样的需求吗?
【在 I******e 的大作中提到】 : 不明觉厉 : 这种一般都是一锤子买卖,有没有谁也开发一下深V,先排一轮珠 : : combo
|
c*c 发帖数: 2983 | 4 和电脑不一样的是电脑可以算掉落,pndopt经常给出的solution都是靠好几层掉落,但
是就算是高手,也很少有用1层以上的掉落。
高手一般都有自己的规律,很多人录像里面总结出来的规律是从边角开始,慢慢手动玩
改变世界,能做多少做多少。当然,手快是关键。
挑一个简单的角落,先弄出
oooooo
oooooo
oooooo
oooooo
xxxooo
然后在弄
oooooo
oooooo
oooooo
yyyooo
xxxooo
在下面怎么弄就看盘面如何,可以继续往yyy上叠,或者可以开始弄xxx旁边的,实在不
行就开始靠边搞竖着的三个。 |
d**********6 发帖数: 4434 | 5 如果你用的是剪枝,智能点在于heuristic function计算weight,这个可简单可复杂
人的思维方式肯定跟计算机不一样,更多的是pattern recognition,这个要模拟太难
了。但对于很多问题,尤其是有穷尽的变化的问题,pattern recognition还不如计算
方法,比如统计、剪枝等 |
y**********0 发帖数: 1302 | |
f*******a 发帖数: 663 | 7 多谢经验指点。感觉确实如此,在多层掉落分析这种问题上AI的计算更占优势,但人脑
的分析在这方面不如AI的情况下依然有非常好甚至更好的表现,这就是值得探索的地方。
我看视频的感觉是,高手尽量连着横或者连着竖(当然这需要NB的斜切技巧),除角落
外很少横竖交错,这是一种人力可及的pattern,在特定的情况下再加1~2c的掉落,感
觉这已经非常NB了。
改变世界的规则对于AI来说其实倒反而是一个简单的问题,订好组合尽量朝一个方向拉
就是了,反正没有失误。
【在 c*c 的大作中提到】 : 和电脑不一样的是电脑可以算掉落,pndopt经常给出的solution都是靠好几层掉落,但 : 是就算是高手,也很少有用1层以上的掉落。 : 高手一般都有自己的规律,很多人录像里面总结出来的规律是从边角开始,慢慢手动玩 : 改变世界,能做多少做多少。当然,手快是关键。 : 挑一个简单的角落,先弄出 : oooooo : oooooo : oooooo : oooooo : xxxooo
|
b********t 发帖数: 1500 | 8 讲一个民科的感觉,
用pndopt 计算转珠, 通常都很多层掉落,
可是掉完以后 ,不常看到天降,
通常算出来8C就是8C,
如果是自己乱转, 转出4-6C, 常常天降到7-8C,
是PAD会自动给转珠新手好处吗? |
f*******a 发帖数: 663 | 9 多谢意见。其实在考虑这个问题的时候,不是太想按照常规的优化方法来处理(虽然现
在还是这么实现的)。换句话说,人的学习和强化机制、全局模糊处理在现有框架下是
没有体现的,每次运算都是一个崭新的开始。但是目前的机器学习理论想直接用上来貌
似很困难,采用什么样的特征?设计什么样的输出?这么高的维度怎么处理?等等,有
不少问题。但从人的角度而言,全局统筹、局部特征以及经验应用这三方面起到了重要
的作用,可能在这方面做一点尝试。
其实单纯的转珠输出在有针对性的定义下,如
a) 最大攻击输出(给BOSS一击)
b) 最大群体攻击输出
c) 适量加血+低攻击/适量攻击(存技)
d) 存珠
等,不说全局最优解,局部最优是没有问题的。但有些问题还需要预测,如麒麟断珠,
是个人都知道怎么办,但AI处理就麻烦的多了。
个人的一点业余兴趣,以前还做过一点星际的AI。PAD貌似简单,其实有不少很有意思
的智力挑战,也正是这样才这么有吸引力,试试看吧
【在 d**********6 的大作中提到】 : 如果你用的是剪枝,智能点在于heuristic function计算weight,这个可简单可复杂 : 人的思维方式肯定跟计算机不一样,更多的是pattern recognition,这个要模拟太难 : 了。但对于很多问题,尤其是有穷尽的变化的问题,pattern recognition还不如计算 : 方法,比如统计、剪枝等
|
f*******a 发帖数: 663 | 10 这个可能和掉落的算法有关。但从PAD的联机机制来看,开始游戏的时候已经把所有需
要的信息传到本地,这样才能在无连接的情况下也正常游戏,但随机数的种子可能和本
地时间有关。所以你说的动态调整如果有的话,那也只能在本地计算。但感觉这样做的
话又要保证伪随机其实不容易,所以可能只是RP问题?呵呵
【在 b********t 的大作中提到】 : 讲一个民科的感觉, : 用pndopt 计算转珠, 通常都很多层掉落, : 可是掉完以后 ,不常看到天降, : 通常算出来8C就是8C, : 如果是自己乱转, 转出4-6C, 常常天降到7-8C, : 是PAD会自动给转珠新手好处吗?
|
u********l 发帖数: 2105 | 11 因为pndopt算的时候多层掉落,所以剩下的珠子里2个珠子连一块的比较少了;而手动
连得时候,经常会有2个珠子在一块,但第三个没连上的情况,这样天降成combo就更可
能了。
【在 b********t 的大作中提到】 : 讲一个民科的感觉, : 用pndopt 计算转珠, 通常都很多层掉落, : 可是掉完以后 ,不常看到天降, : 通常算出来8C就是8C, : 如果是自己乱转, 转出4-6C, 常常天降到7-8C, : 是PAD会自动给转珠新手好处吗?
|
f*******a 发帖数: 663 | 12 一点个人爱好,见笑了。在别人的框架下玩,不如在自己的框架下玩的开心,呵呵。特
别是很多事情无数人已经做过了,加我一个也不过如此,所以要找点不一样的玩法。
【在 y**********0 的大作中提到】 : 太佩服了,俺就是玩游戏的,上面的都是设计游戏的
|