百科问答小站 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等现有“预判”技术,很难产生其他新东西。




  

相关话题

  如何理解算法时间复杂度的表示法,例如 O(n²)、O(n)、O(1)、O(nlogn) 等? 
  什么是 hash? 
  既然使用神经网络也可以解决分类问题,那SVM、决策树这些算法还有什么意义呢? 
  量子计算机的出现会给实际生活带来怎样的改变? 
  哪些看似与图论无关的问题可用图论模型解决? 
  蒙特卡罗算法是什么? 
  计算器或计算机如何进行比较复杂的数学计算? 
  戴克斯特拉算法(Dijkstra)的本质是贪心,还是动态规划? 
  [题]两个数的最小公倍数是36,最大公因数是6,这两个数可能是多少? 
  算法研究属于数学专业还是计算机专业? 

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





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