魔方吧·中文魔方俱乐部

标题: 状态集转换法学习笔记 [打印本页]

作者: aubell    时间: 2009-9-25 12:38:27     标题: 状态集转换法学习笔记


状态集转换法学习笔记






Thistlethwaite Method
Heise’s Human Thistlethwaite Method

Thistlethwaite's 52-move algorithm


状态集转换法



学习资料
http://bbs.mf8-china.com/viewthread.php?tid=7091
http://bbs.mf8-china.com/viewthread.php?tid=38810&extra=page%3D1
http://bbs.mf8-china.com/viewthread.php?tid=38810&extra=page%3D1&page=2
http://www.jaapsch.net/puzzles/thistle.htm







学习笔记(一)



理解这种方法
群论,令人望而却步。
然而,理解群论,有利于更好理解魔方;理解魔方,也可以更好的理解群论。群论另外学,这里只记录与魔方相关的一些体会。





先看G3G3=<U2 D2 R2 L2 B2 F2>



操作规则:任何面只用180度的旋转

对魔方的影响:从原始状态,只用180度旋转打乱魔方,打乱后,看上去好像不是那么乱,比较容易还原。


不乱的地方:究竟是什么原因,使得它不是那么凌乱呢,为什么好像乱了,又好像没乱?查看它的特征。



整体颜色的特征:相对的两面只包含这两面的颜色,一面里,相同颜色的角块为偶数个。



角的位置特征:面对角线上的块始终保持对角的关系
ULB,DLF,DRB,URF四个位置看成一个整体,称为轨道A;
其他的四个位置也整体称为轨道B
可以发现,轨道A里的只在轨道A中运动;轨道B里的只在轨道B里运动。相互不影响。
每个面上每种颜色的角块是偶数个



棱的位置特征:S环的永远在S环运动,E环的永远在E环运动,M环的永远在M环运动。互相不影响。

这里要重新认识魔方了。



整个魔方看成A,B两个轨道,SEM三个环。

[ 本帖最后由 aubell 于 2009-9-26 18:00 编辑 ]
作者: aubell    时间: 2009-9-25 12:41:27


不完全的讨论

G3群的操作能做什么?
公式特例
1. (R2U2)*3  各自的环里的两对互换
2. M2 U2 M2 U2 一个环内的四个棱两对换
   F2 U2 R2 L2 D2 R2 L2 F2 交叉也可以。
3. U2 D2 R2 F2 R2 U2 R2 F2 R2 D2 一个环内的三循环(非最短公式,都用180度)
   实际操作的时候用其他公式代替
4. 角:轨道A中两个角对换的同时轨道B中两个角对换


G3群的操作不能做什么?
1.翻角
2.翻棱
3.角的三循环
4.不同环棱的三循环
5.两个轨道之间的角互换
6.角的三循环
7.奇数个Parity

如何判断一种状态是否可以用G3群的操作还原?
G3群可还原的魔方具有某些特征,但是否具有这些特征的魔方就可由G3群还原?

特征1 对面色互相包含,每面同色角块偶数个,且任何一种G3操作不改变这种状态。
U2 R2 F2 D R2 B2 U2 B2 D' R2 U2 F2 U' R2
构成一种状态,满足对面色相包含,但某些面某种颜色个数为奇数,无法用G3来还原
因为这是一个两棱两角的Parity。还原时,90度的旋转总数一定是奇数。
D2 L2 F2 U' F2 U2 L2 U' F2 D2 F2 L2 D L2 ,也是390度旋转。

特征2 角都在相应的轨道内正确排列,棱也在相应的环里。
上面的一个Parity的例子,角在轨道内,棱也在环里,但角没有正确排列,奇数的色块就是标志所以不能用G3操作还原。

不太容易用简明的方式定义,一个状态是否能用G3还原。充分的条件详尽描述起来比较复杂,“排列正确”一类的描述则比较含混。所以我用“对面互含,偶数不变”来定义。

古典的做法是:分成两个步骤
先让角进入各自的自然轨道,然后在轨道内进行排列,G3群角的排列方式只有96种,同时把棱放进各自的环。

现代的人类方法通常是让角块上下分层,然后观察,在通往G3的时候,往往直接就把角块还原了。再把棱归环。

实践是检验真理的唯一标准。
实践的方法:
因为角块比较容易观察,可以很容易判断角块能否用G3还原。(试拧一下就知道了)
如果角块不能用G3还原,那整个魔方一定不能用G3还原。
如果角块可以用G3还原,再看棱:是否都归环了。如果所有的棱都方向正确的归环了,那么这个魔方就可以用G3还原。

实际操作的时候为了方便,不会严格判断,往往也不严格遵守G3的约束。

最简单的定义:能用G3打乱的就能用G3还原。


[ 本帖最后由 aubell 于 2009-9-25 12:42 编辑 ]
作者: aubell    时间: 2009-9-25 12:43:31

再看G2
G2=<U D L2 R2 F2 B2>

G2群能做什么?
当然比G3强大。
1.角的三循环
2.Parity   U F2 U' F2 D R2 B2 U B2 D' R2
3.棱的三循环

G2不能做什么?
1.翻棱
2.翻角
3.E环的棱移出E

然后看G1
G1=<U D L R F2 B2>
不能做的只有翻棱。

G0=<U D L R F B>
因为没有限制,所以无所不能。
所以尽管G0操作无所不能,但G0只做一件事,翻棱。

倒过来,就是操作的顺序
G0 翻棱
G1 E环的棱归环,翻好角
G2 角在轨道内正确排列,SM棱归环
G3 复原


[ 本帖最后由 aubell 于 2009-9-25 12:45 编辑 ]
作者: aubell    时间: 2009-9-25 12:46:07

学习笔记(二)

可用操作
Can'tDo
任务
记号
Stage
G0
<UDLRFB>

翻棱
FlipE
1
G1
<UDLRF2B2>
翻棱
E环归环
翻角
toE,OC
2
G2
<UDL2R2F2B2>
翻角,E环块外出
角正确入轨
棱归环
OrbitCircle
3
G3
<U2D2L2R2F2B2>
角的三循环,Parity
环间交互,轨间交互
还原
X2
4
G4
1
all
0







Stage
任务
简单公式
1
EdgeFlip

2
To E,OC
ToE公式  无
OC公式  RU' L2 UR'
3
Orbit,Circle
Orbit公式 R'FR' B2 RF'R (DLB<=>DRF,ULB<=>URB)
Circle公式 U M2 U'
4
X2
(R2U2)3
(U2 M2)2
M U2 M' U2



备忘:
复杂的公式将来再寻找,整理
节省步骤的方法也是

[ 本帖最后由 aubell 于 2009-9-26 18:00 编辑 ]
作者: aubell    时间: 2009-9-25 12:47:44

学习笔记(三)



一次还原过程
打乱
L' U' B' R2 D B2 R U' F' D' F D L B R

1.翻棱  U F' R' F
2.E环  D' R' U' D2 L
翻角  D'  R' U L2 U' R
3.轨道  U' R2 D
  环 CU' R U R' U' M2 U R U' R' M2 CU
还原 D2 B2 R2  (L2D2)3  CU M D2 M' D2 CU'

欢迎指正

[ 本帖最后由 aubell 于 2009-9-26 18:01 编辑 ]
作者: aubell    时间: 2009-9-25 12:51:37

等我慢慢把这个Java弄好
真的不好弄,CU和CU'也不能用吗?
哪位Java高手帮忙贴个图吧,多谢了。
Java难,从某种程度上看,比还原魔方还难。

打乱

L' U' B' R2 D B2 R U' F' D' F D L B R

[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]L' U' B' R2 D B2 R U' F' D' F D L B R[/param]
  [param=stickersFront]1,1,1,1,1,1,1,1,1[/param]
  [param=stickersRight]2,2,2,2,2,2,2,2,2[/param]
  [param=stickersDown]0,0,0,0,0,0,0,0,0[/param]
  [param=stickersBack]4,4,4,4,4,4,4,4,4[/param]
  [param=stickersLeft]5,5,5,5,5,5,5,5,5[/param]
  [param=stickersUp]3,3,3,3,3,3,3,3,3[/param]
[/java3]


翻棱
观察只有UB和FD两个棱需要翻动
[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]U F' R' F[/param]
  [param=initScrpt]L' U' B' R2 D B2 R U' F' D' F D L B R[/param]
  [param=stickersFront]1,1,1,1,1,1,1,1,1[/param]
  [param=stickersRight]2,2,2,2,2,2,2,2,2[/param]
  [param=stickersDown]0,0,0,0,0,0,0,0,0[/param]
  [param=stickersBack]4,4,4,4,4,4,4,4,4[/param]
  [param=stickersLeft]5,5,5,5,5,5,5,5,5[/param]
  [param=stickersUp]3,3,3,3,3,3,3,3,3[/param]
[/java3]


E层的棱归E层
[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]D' R' U' D2 L[/param]
  [param=initScrpt]L' U' B' R2 D B2 R U' F' D' F D L B R U F' R' F[/param]
  [param=stickersFront]1,1,1,1,1,1,1,1,1[/param]
  [param=stickersRight]2,2,2,2,2,2,2,2,2[/param]
  [param=stickersDown]0,0,0,0,0,0,0,0,0[/param]
  [param=stickersBack]4,4,4,4,4,4,4,4,4[/param]
  [param=stickersLeft]5,5,5,5,5,5,5,5,5[/param]
  [param=stickersUp]3,3,3,3,3,3,3,3,3[/param]
[/java3]

翻角
[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]D' R' U L2 U' R[/param]
  [param=initScrpt]L' U' B' R2 D B2 R U' F' D' F D L B R U F' R' F D' R' U' D2 L[/param]
  [param=stickersFront]1,1,1,1,1,1,1,1,1[/param]
  [param=stickersRight]2,2,2,2,2,2,2,2,2[/param]
  [param=stickersDown]0,0,0,0,0,0,0,0,0[/param]
  [param=stickersBack]4,4,4,4,4,4,4,4,4[/param]
  [param=stickersLeft]5,5,5,5,5,5,5,5,5[/param]
  [param=stickersUp]3,3,3,3,3,3,3,3,3[/param]
[/java3]

角正确入轨
[java3=300,300]
  [param=scrptLanguage]SupersetENG[/param]
  [param=scrpt]U' R2 D[/param]
  [param=initScrpt]L' U' B' R2 D B2 R U' F' D' F D L B R U F' R' F D' R' U' D2 L D' R' U L2 U' R[/param]
  [param=stickersFront]1,1,1,1,1,1,1,1,1[/param]
  [param=stickersRight]2,2,2,2,2,2,2,2,2[/param]
  [param=stickersDown]0,0,0,0,0,0,0,0,0[/param]
  [param=stickersBack]4,4,4,4,4,4,4,4,4[/param]
  [param=stickersLeft]5,5,5,5,5,5,5,5,5[/param]
  [param=stickersUp]3,3,3,3,3,3,3,3,3[/param]
[/java3]

棱入环
[java3=300,300]
  [param=scrptLanguage]HarrisENG[/param]
  [param=scrpt]F U F' U' S2 U F U' F' S2[/param]
  [param=initScrpt]L' U' B' R2 D B2 R U' F' D' F D L B R U F' R' F D' R' U' D2 L D' R' U L2 U' R U' R2 D[/param]
  [param=stickersFront]1,1,1,1,1,1,1,1,1[/param]
  [param=stickersRight]2,2,2,2,2,2,2,2,2[/param]
  [param=stickersDown]0,0,0,0,0,0,0,0,0[/param]
  [param=stickersBack]4,4,4,4,4,4,4,4,4[/param]
  [param=stickersLeft]5,5,5,5,5,5,5,5,5[/param]
  [param=stickersUp]3,3,3,3,3,3,3,3,3[/param]
[/java3]

最后的步骤

[java3=300,300]
  [param=scrptLanguage]HarrisENG[/param]
  [param=scrpt]D2 B2 R2 L2 D2 L2 D2 L2 D2 S D2 S' D2[/param]
  [param=initScrpt]L' U' B' R2 D B2 R U' F' D' F D L B R U F' R' F D' R' U' D2 L D' R' U L2 U' R U' R2 D F U F' U' S2 U F U' F' S2[/param]
  [param=stickersFront]1,1,1,1,1,1,1,1,1[/param]
  [param=stickersRight]2,2,2,2,2,2,2,2,2[/param]
  [param=stickersDown]0,0,0,0,0,0,0,0,0[/param]
  [param=stickersBack]4,4,4,4,4,4,4,4,4[/param]
  [param=stickersLeft]5,5,5,5,5,5,5,5,5[/param]
  [param=stickersUp]3,3,3,3,3,3,3,3,3[/param]
[/java3]

[ 本帖最后由 aubell 于 2009-9-25 13:41 编辑 ]
作者: jinlongze2007    时间: 2009-9-25 13:00:39

虽然从头到尾都看不懂,但还是顶了,先把盲拧连进2分,再练桥式,估计降群法最后会成为最小步数的御用法了

我Ri!这个一共才用了41步!而且还是不太成熟的解法(不知道我理解的对否?)如果再成熟加以完善的话估计拿来用在最小步上面应该不成问题啊。
但对于速拧来说最后一步似乎不好观察

这么好的解法,想不学都不行了

[ 本帖最后由 jinlongze2007 于 2009-9-25 16:58 编辑 ]
作者: lernem    时间: 2009-9-25 16:14:15

今儿真是开了眼界了 小弟一定认真拜读!
作者: LYQ    时间: 2009-9-25 16:30:27

字数很多,看得头都晕了,顶了再慢慢看吧!
作者: aubell    时间: 2009-9-25 17:33:46

顶一下,期待更多的人玩这种方法。
真的很适合 Killing Time。
作者: aubell    时间: 2009-9-25 18:11:44     标题: 回复 7# 的帖子

方法是成熟的方法(计算机用了很多年),只是我才初学,可能理解还有些偏差。
这个是Lucky Case,呵呵。

[ 本帖最后由 aubell 于 2009-9-25 18:13 编辑 ]
作者: cxren    时间: 2009-9-25 18:32:58

看不懂啊
详细讲讲吧
作者: aubell    时间: 2009-9-25 19:23:36

难道这种方法是阳春白雪吗?
作者: aubell    时间: 2009-9-26 17:43:46

自己顶顶,真没劲。
这么有趣的玩法,没多少人玩。




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2