百科问答小站 logo
百科问答小站 font logo



能否通过计算机找到适合速拧的魔方解法? 第1页

  

user avatar   cs0x7f 网友的相关建议: 
      

我先回答第一个问题:我们能不能通过计算机去算出完成CFOP最好的策略,从而避免复杂,难观察的F2L,减少转体的数量,同时做好多组F2L等等。

对于某一个特定的状态,应该是可以的,但使用计算机搜索的结果很可能导致解法很奇怪。以CFOP为例,很可能在cross阶段为了后面的“流畅性”,选用了某一个很长的cross公式,比如10或11步,而且顺手性也会较差。但使用了软件“精心挑选”的cross公式后,你惊奇地发现后面的F2L,OLL异常流畅地完成了,并且还跳P了。也就是说,软件确实可以通过搜索,在还原的初期就预判到后面可能碰到的不利情况,从而在还原的初期就有意识的避开这些情况,或选择对后期更有利的解法,即便这会导致cross的步数多一些。

但很显然,这样的算法并不适用于人类。这主要是因为我们并不能像计算机一样预判地那么厉害。当然通过预判来避免不利情况出现的这个思路在速拧的应用还是比较常见的。例如很多单手玩家都会有意识的在做最后一组F2L的时候预判一下顶层是否会出现“点”的情况,从而改变最后一个块的插入方式,等等。但受限于人脑的推理能力,在15秒的观察时间,即使是世界顶尖选手至多也就预判到第二组F2L这样的水平,而且这还只是预判,并没有尝试避开不利情况。至于想往后预判OLL甚至PLL几乎不可能。而这对于计算机却轻而易举。

当然以上分析仅针对速拧,如果是最少步这类有相对充足的思考和尝试时间的,人类也能在一定程度上模仿计算机的这种预判。这一点你可以直接去围观各种最少步比赛中茫茫多的OP连跳就知道了。

总结一下:对于某个给定的速拧算法(如CFOP或桥式),计算机确实可以给出一个很惊人的、巧妙避开各种不利情况的解法,但这是基于计算机强大的推理和预判能力。对于人类速拧,由于观察时间有限且推理能力不足,很难模仿。



关于第二个问题:能否从中得出普适的一些规律?

我个人认为很困难。首先根据前面的回答,人类几乎无法做到“全预判”,所以几乎不可能直接模仿计算机的行为。那么有没有可能根据计算机给出的解法,尝试在一定程度上找出解法与状态的关系呢?我个人观点也是很困难。当我们在分析cross的时候,我们其实并不关注其他块的位置、方向等信息。也就是说其他块对我们来说其实是“灰色”的。

但如果不利用这部分信息,计算机的预判也是不可能的,这就是一组矛盾了。于是,找出解法和状态之间规律的尝试很可能变成Xcross,Multi-slot,ZBF2L等现有“预判”技术,很难产生其他新东西。




  

相关话题

  如何证明同一个魔方公式循环N遍后都会回到原状态? 
  算法书如何选择? 
  你为什么要学算法? 
  魔方最少知道几个方格就可以推算出其他所有格呢? 
  对于编程思想和能力有重大提升的书有哪些? 
  有的人玩魔方可以在十几秒内还原出来,这是靠背的还是?? 
  刷完 LeetCode 是什么水平?能拿到什么水平的 offer? 
  在中国象棋中,最少用多少只马才能控制住整个棋盘?(马控棋盘)? 
  为什么有些算法工程师从来不谈业务,不谈解决问题,不谈价值挖掘,开口闭口就是算法模型,炼丹调参工程化? 
  圆桌上 1000 个人轮流开枪,最后活下来的是几号? 

前一个讨论
近年中国的曲艺界是不是衰落了?
下一个讨论
有哪些影响世界的快餐?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利