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




  

相关话题

  EM算法存在的意义是什么? 
  正负样本极不平衡的问题? 
  腾讯面试题,如何寻找一个数组里面唯一不重复的元素?要求时间复杂度o(n)和空间复杂度o(1)? 
  C++笔试算法题允许用stl函数吗? 
  为什么 Google 翻译只重算法不重语言学的语法结构和规则? 
  如何看待阿里 P8 加面 coding 环节,而 P7 却做不出头条算法题? 
  如何面对算法竞赛的焦虑? 
  失传的缀数法最有可能是什么方法? 
  非计算机专业,想刷leetcode,请问在此之前需要做什么准备? 
  Alice 和 Bob 各有一个 0-9 的数,他们怎样能在不暴露自己数的前提下知道双方数字是否相同? 

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





© 2024-05-19 - tinynew.org. All Rights Reserved.
© 2024-05-19 - tinynew.org. 保留所有权利