魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 9749|回复: 24

处理奇偶的棱块固定借位法 [复制链接]

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:23:26 |显示全部楼层
本帖最后由 勺子 于 2018-9-13 10:01 编辑

手机或平板排版字太大的魔友,请拉到最下方选择“电脑版“页面,即可解决。

总纲与目录链接:三阶盲拧知识体系总纲
http://bbs.mf8-china.com/forum.p ... 08472&mobile=no

文章中所用编码为彳亍编码(如下图):

无底色编码图.png


前言

       最近开始研究全奇偶的魔友越来越多了,比如国外魔友Daniel Lin和国内魔友熊猫、鲁曦。有人开始研究全奇偶的方法之后大家又开始公认全奇偶是最好的奇偶处理方式,因为全奇偶的编码长度最短。接着也开始有人觉得反编固定棱块法(2.4章中讲过的《反编法处理奇偶变换》)跟全奇偶来比,某些情况在棱块的编码长度上有劣势,并不是一个好方法。
       后来我整合了和各个魔友的讨论结果,总结了一种既能保证所有情况棱块编码长度最短,又可以在某些情况下综合固定棱块奇偶公式好做的优势。建议进60之后或者棱块小循环完全熟练后学习这一方法,它的练习并不困难,甚至比反编法还要容易一些,没学过反编法、不会全奇偶公式的魔友也可以学习
       要感谢奋神、鲁曦、洽米、单胖在我写出推广反编法的帖子之后与我详细讨论更优化的编码方式。特别是奋神,他对理论统一的强烈追求促使了固定借位法理论的完整。另外和单胖讨论之后,他告诉我类似的方法在2013年就已经由带人过球(胡扬)提了出来,只不过当时研究技术的人比较少,所以并没有引起重视,原帖如下:
       http://bbs.mf8-china.com/forum.p ... 97545&mobile=no
已有 3 人评分经验 收起 理由
kexin_xiao + 20 赞一个!
cube_master + 20 很给力!
otischeng + 20 赞一个!

总评分: 经验 + 60   查看全部评分

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:25:18 |显示全部楼层
本帖最后由 勺子 于 2024-2-20 19:43 编辑

1.处理原则与打乱举例


1.1 处理原则
       抛开复杂的优劣分析和理论分析,我们先来看处理原则,这样对优劣或者原理不感兴趣的魔友可以直接看比较简洁的部分。首先声明固定借位法只和棱块编码方式有关系,角块也可以用,不过在目前比较普及的奇偶处理体系下没有意义。以UFR与UF缓冲为例,棱块第一次借位时必须保持色相借位(也就是01借位法),我们把棱块分为两种情况讨论:
       情况1:在遇到第一个小循环时,UR位置已经编码或还原(原地翻色也算位置还原)。
       此时直接按正常编码方式来就好,不用有任何处理方式的变化。
       情况2:在遇到第一个小循环时,UR位置还没有还原。
       此时借位UR,如果只有一个小循环那么最后则剩下UF-UR互换。但是如果遇到两个小循环呢?正常的方法是把UR还原并且再次借位,这样就无法保证最后是UF-UR互换了。固定借位法,则是再次遇到小循环时利用UR去借位(不必保持色相借位)缓冲块停在UR位置永远都不要再动它了,通过这样的方式保证最后留下UF-UR互换。

       情况1与情况2各占一半左右,不考虑某几个特殊情况的话可以直接看作50%(解释在2.2节)。下面我们通过几个打乱来看一下固定借位法到底是怎么操作棱块编码的。

蓝字为2024年2月20日经王子兴提示修改

使用道具 举报

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:29:38 |显示全部楼层
本帖最后由 勺子 于 2020-5-5 01:37 编辑

1.2 打乱分析
        情况1很简单,这里举2个例子:
        例1.1:D2 B U' L U2 F2 D' R U2 D' F2 R2 U2 F' L2 U' F2 R
        正常编码:WN #HP R*F YE CJ LT C
        来看一下这串编码,在遇到第一个小循环时(*所标明的编码),UR位置已经被编码(#所标明的编码),所以这一情况属于情况1,正常处理即可。(最后剩的编码可以选择加编码G,也可以选择setup到G,也可以进阶学习对应的奇偶公式,处理方法很灵活。另外在有翻棱的时候还可以用翻棱编码法处理翻棱。)

        例1.2:F2 L2 D' R2 B D L' F2 L' F U L D2 R F2 D2 U' L
        正常编码:WD LI QE* TZ S
        这个情况在遇到第一个小循环时(*所标明的编码),发现UR位置本来就是还原的,所以这一情况属于情况1,正常处理即可。(注:如果UR位置是原地翻色状态,处理方法很灵活,但初学还是正常处理即可。)


        下面是情况2,循序渐近地用4个例子讲解:
        例1.3:D2 U F2 D' R' D B2 R2 B2 F2 U2 L2 R B2 U2 R2
        正常编码:SE CQ W*G IM
        这是有一个小循环的例子。在首次遇到小循环时(标注*处),UR位置还没有还原,则借位UR。由于只有一个小循环,所以最后自然剩下UF-UR互换。

        例1.4:B' R2 U B2 F2 R B' F2 R2 B' L2 F' R2 U' L2 R B'
        正常编码:KC* GQ NZ SG# EO JX E
        固定借位:KC* GQ NZ S#E OJ XE G
        这是有两个小循环的例子。在首次遇到小循环时(标注*处),UR位置还没有还原,则借位UR位置。正常编码在第二次遇到小循环时(标注#处)是先还原G再去借位,这样编到最后的棱块编码完全是随机的。而固定借位法则是第二次遇到小循环时,不去动UR位置的缓冲块,而是直接找另外一个位置去借位。以此来保证最后会剩下UF-UR互换,并且编码长度不变,不会因为最后强行加一个G编码而造成多一组编码。

        以下是情况1的特例:(蓝字部分由20200505更新,感谢欧阳韵奇、彭永强和王逸帆的讨论发现了之前教程的Bug)
        例1.5:B2 U' L F2 U2 L' D R' U' L' R' U R D2 R2 D
        正常编码:CQ WI MG# *ES E
        这还是有一个小循环的例子,但是稍有不同,UF已经在UR位置了,这种情况大家还按照正常编码处理即可。因为按照观察的顺序,编码过程中我们还是先观察到了UR棱,再有借位行为的。
        而对于这种情况还有一种可选的其他方法,固定借位法本来的目的就是让一半的情况都可以剩下UF-UR互换,而这个打乱刚开始缓冲块就在UR位置并且色相正确,所以处理方法还是不动UR位置,直接去找下一位置借位。编码方式如下:CQ WI M#E SE G。只要UF块已经在UR位置了,那么无论遇到什么情况都不必再把它编出来了

        例1.6:B' R2 B U2 R2 U' L' D' B' U' B' R2 U' L U2 F' U F'
        正常编码:CR XJ NH# ES E
        这是一个情况1里的另一个特例。初始状态就是缓冲块在UR位置并且色相错误,按照正常编码方法处理即可。


        固定借位法的本质就是小循环借位到UR位置之后缓冲块停在UR再也不动了,如果是只对方法应用感兴趣的人看到这里就足够了。这一方法虽然听上去复杂,但是实际需要优化编码方式的情况只有50%,如果理解了原理练习起来可以很快熟练。如果看我这篇帖子没看懂,我和鲁曦讨论之后他也经过自己总结形成了一篇文章,可以去看一下他的讲解思路,链接如下:http://tieba.baidu.com/p/5876618466?pid=121938511459

        目前比较成熟的奇偶优化方式是棱块编码用这章讲的固定借位法,角块编码学习翻角编码法处理即有奇偶又有翻角的情况(这一方法在2.2章的例1.3中讲过,不会的一定要看一下,这个方法很重要),另外再学习固定两个棱块前提下的21条角奇偶公式(UFR一般固定UF-UR,UFL一般固定UF-UL)。总结一下就是:初级奇偶优化 = 固定借位法+翻角编码法+21条角奇偶公式,用这套方法至少可以保证sub30之前奇偶处理起来都会很舒服。
        另外,如果想再延伸拓展一下可以看第3节,第3节讲了一些固定借位法的延伸应用和优化。第2节先来看具体分析一下为什么要用固定借位法。

使用道具 举报

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:31:50 |显示全部楼层

2.优势与理论分析


2.1 固定借位法的优势
        首先来分析一下纯固定棱块编码法和纯全奇偶编码法的优劣。
        对于固定棱块来说,优势肯定是奇偶公式好做,二棱一角连在一个1x2x2中奇偶公式是最好做的,这个基本是共识了,劣势则是在某些情况下编码会多一组。对于全奇偶来说,首先优势在于编码长度是最短的,但劣势是很多奇偶公式其实是很不顺手的。
        注意刚才说到固定棱块的劣势是在某些情况下编码会多一组,而不是所有情况编码都多一组。所以说如果能在两种方法长度一样的情况下使用固定棱块法来保证奇偶公式好做,而在固定棱块法编码更长时使用全奇偶,则把两种方法结合了起来——也就是这章所讲的固定借位法。对于情况1来说,初期可以选择加编码到UR或者setup到UR,后期可以选择背某几个位置的全奇偶公式。对于情况2来说,可以直接留下UF-UR互换,初期使用21角奇偶公式即可,后期甚至还可以衔接奇偶带翻角。
        那么固定借位法其实也是有劣势的,那就是它固定的棱块必须有一个是缓冲块,假设UBL-UF/DF缓冲,固定借位法不能像反编法一样固定UB-UL的位置。但是它相对于反编法来说有另外一个优势,可以无视奇偶性,这个放在3.2去讲解。

使用道具 举报

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:33:53 |显示全部楼层
本帖最后由 勺子 于 2018-9-13 09:52 编辑

2.2 理论分析

        这一节主要解释为什么情况1和情况2出现的概率各占50%。
        情况1和情况2的处理原则其实就是在编码的过程中先看到UF棱还是先看到UR棱,在编码过程中先看到UF和UR的概率应该是相等的,各占50%。因为先看到哪个块和缓冲块并没有关系,所有块在循环中的位置概率都是相等的。所以如果不考虑UR位置的特殊情况,情况1和情况2的概率就是各占50%。
        下面来看一下UR位置的4个特殊的初始状态:
        1)UF在UR位置色相正确;
        2)UF在UR位置色相错误;
        3)UR位置正确;
        4)UR位置原地翻色。
        经过第1节的举例我们可以发现,状态1是可以用固定借位法将缓冲块控制到UR位置的,状态2和状态3是不可以的。状态4在第1节中没有细讲,实际上还要再细分情况讨论,如果只有UR位置一个原地翻色(或奇数个),那么最后则可以用翻棱编码法将缓冲块控制到UR。但是如果有两个原地翻色(或偶数个),那么如果用翻棱编码法控棱则最后还需要做一个翻色(如果用两次翻色编码法则会把一对翻棱做成两个公式),这样处理起来从公式数上来说就更麻烦了,所以不能将其控到UR位置。
        也就是说这4个特殊状态有2.5个是不能用控棱到UR位置的,有1.5个可以控在UR位置。所以如果考虑这一细节,使用最后控棱到UR的概率要略低于50%,但由于UR位置原地翻色的概率很低,可以当作50%来考虑。

------------------------------------分割线------------------------------------


        以上证明其实不完全严密,大家感兴趣可以看看鲁曦帖子最后的理论部分,原帖如下:
        http://tieba.baidu.com/p/5876618466?pid=121938511459
        另外如果各位魔友有其他更精准的论证思路非常欢迎一起讨论。

使用道具 举报

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:35:50 |显示全部楼层
本帖最后由 勺子 于 2020-4-19 22:41 编辑

3.延伸拓展


        固定借位法另外有两个比较好的应用方向,下面分别介绍。

3.1 固定借位法的顺次借位策略

        如果我们确定只固定借位UR,那么应用的概率确实只有50%(后期根据lucy数据应修正为49.24,后同,修改于2020-04-19)。那么在另外不能使用的50.76%情况里,如果继续考虑另外一个稍微差一点的棱块位置,使用UB的固定借位法,则可以控制棱块奇偶的概率增大到了65.49%。那么如果在剩下的情况里继续使用UL的固定借位法,则可以控制棱块奇偶的概率增大到了73.74%。那么结论就是如果我们顺次采用借位UR/UB/UL的固定借位法,最后棱块奇偶可控的概率就非常高了。对于UFR缓冲来说,UF-UR采用的则是基础的21条角奇偶公式,对于UF-UB可以采用setup为T-perm(PLL08)的思路(后期进阶也可以再背21条角奇偶公式),对于UF-UL来说比较麻烦,可能需要单独背对应的21条角奇偶公式。
        当然如果在另外的情况里面再使用DF的固定借位法(DF的奇偶处理可以参考UB的),棱块奇偶可控的概率就会高达78.22%,这已经是比较高的概率了。也就是说如果后期要学习全奇偶,配合固定借位法的这种策略,只背4个棱块位置的84条公式则可以解决绝大部分的奇偶情况
        注意以上所说顺序UR-UB-UL-DF未必是最佳顺序,只是这一顺序会更好讲解,如果真的考虑最优顺序最好自己参考一下全奇偶公式。鲁曦已经掌握了一些全奇偶公式,他自己采用的顺序是UR-UB-UL-FR,所以如果决定采用这种方法最好自己对比一下各个棱块位置奇偶公式的顺手程度。
       
        这里只举一个例子,我们还是来看最一开始的例1.1。
        例1.1:D2 B U' L U2 F2 D' R U2 D' F2 R2 U2 F' L2 U' F2 R
        正常编码:WN #HP R*F YE CJ LT C
        固定借位:WN #HP R*F Y#C JL TC E
        我们在看到第一个小循环时(标注*处),前面已经编过UR位置了,所以继续顺次考虑UB,发现UB还没有还原则借位UB。注意原则还是——缓冲块进到UB位置了就永远不要再动它了,因为这里认为UB是仅次于UR的奇偶位置(有待考证)。所以下面再遇到编码E时不编E,继续找下一个借位位置(标注#处),最后则可以保证UF-UB互换。

        关于固定借位法的顺次策略,可以用下面这句话概括——在首次借位时按照预定的顺序选择借位位置,并且在后续再次借位时永远不再动缓冲块。最终达到的效果则是——首次借位在哪个位置,最后棱块奇偶就留在哪个位置。虽然一个棱块的固定借位法练习起来不难,但是多个棱块的固定借位法还是需要大练习量才能熟练,建议sub40之后再考虑这一方法。

使用道具 举报

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:37:55 |显示全部楼层
本帖最后由 勺子 于 2018-9-13 09:32 编辑

3.2 无视奇偶性(无视观察顺序)的固定借位法

        首先要知道,棱块反编法的一个使用条件就是观察必须先角后棱,需要先观察角来确定奇偶性,才可以知道棱块应该用何种策略。从某种程度上来说这也是缺点,虽然现在很多人都接受了先角后棱的观察方式,但是还有很多魔友观察是先棱后角的(比如熊猫大佬)。
那么对于固定借位法来说,可以再看一下第1节所讲的情况1和情况2的处理原则,会发现在其中并没有写任何和奇偶性相关的判断标准,而是用循环属性去判断应该如何借位。说到这里就引出了固定借位法的另一个重大优势——它可以不依赖奇偶性来使用,也就是说可以无视观察顺序
        对比一下固定借位法和反编法。固定借位法对缓冲有要求(最后固定的两个棱块必须有一个是缓冲块)但是可以无视观察顺序;反编法对于观察顺序有要求(反编棱块时观察必须先角后棱)但是可以反编任意两个棱块、可以适应任何棱角缓冲的组合。

        假设不考虑顺次借位策略,只采用UR位置的固定借位法,下面用3个例子来说明为什么固定借位法可以无视奇偶性(考虑顺次借位策略也可以无视奇偶性但举例会比较麻烦)。
        例3.1:F2 U' R B2 F' R2 D' U' R F' D B2 L2 D F' B2
        正常编码:S#G WI OR M*F DL ZE
        可以看到在遇到小循环(*所标注位置)之前,UR位置已经被编码(#所标注位置),所以这属于情况1,正常编码即可。

        例3.2:D' L' B R' F2 D B L' B' L U R' B2 U L B'
        正常编码:MZ OI WE C*G QT KG
        这是有一个小循环的打乱。在遇到小循环时(*所标注位置),UR位置还没还原,属于情况2,所以借位UR位置。直到编到最后发现最后一对编码的最后一个是G,循环结束,说明没有奇偶。

        例3.3:R2 F' L2 B' L R' U L2 F' L' F' D F R' U' F' D'
        正常编码:*HO JT EG# CN QC
        固定借位:*HO JT E#C NQ CG
        这是有两个小循环的打乱。在第一次遇到小循环时(*所标注位置),UR位置还没还原,属于情况2,所以借位UR位置。在第二次遇到小循环时(#所标注位置),正常编码法破坏掉G继续借位其他位置,而固定借位法则是保持UR位置不变而去借位其他位置,最后一对编码的第二个编码是G,说明循环结束没有奇偶。

        以上3个例子还是基于第1节讲的情况1与情况2来处理,完全不需要知道奇偶性,棱块编到最后自然就知道了。而且通过例3.3可以看出,就算是没有奇偶,采用固定借位法也不会造成编码变多,可以观察一下正常编码和固定借位的编码对比,固定借位法只是将编码串了一下而已。

使用道具 举报

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:40:25 |显示全部楼层
本帖最后由 勺子 于 2018-9-13 09:32 编辑

总结

        以上三节分别从实战、理论、拓展应用三个方面讲解了固定编码法,个人觉得在UFL/UFR-UF缓冲体系下这一方法以后会变成主流,毕竟它即保证了编码最短又保证了绝大部分情况下可以控棱奇偶。最后再用一句话总结固定借位法:在棱块编码过程中控棱(控制棱块最后出现的编码),掌握的棱块奇偶位置越多控棱概率就越大。有疑问或者有新想法的魔友欢迎跟帖留言或者找我讨论,再次感谢各位提供思路的魔友以及现在盲拧圈的技术氛围!

使用道具 举报

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:43:38 |显示全部楼层
占楼备用,最近写帖子状态很差,这篇写了两天才写出来。但是因为很重要,所以状态不好还是坚持写了。

使用道具 举报

Rank: 4

积分
1752
帖子
467
精华
17
UID
101485
性别

八年元老

发表于 2018-9-12 18:45:52 |显示全部楼层
占楼备用,占两楼够啦,完毕!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-3-29 01:39

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部