魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 2454057|回复: 94
打印 上一主题 下一主题

非专业分析KCube [复制链接]

Rank: 4

积分
1928
帖子
1060
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

跳转到指定楼层
1#
发表于 2010-4-14 20:15:40 |只看该作者 |正序浏览
目前,Kociemba是我们学习最少步数时无法绕开的名字。

我准备把 Greg Schmidt的程序KCube1.0分析一下,希望真正
对2-phase理解。

大名鼎鼎的CubeTwister里有一个求解的程序,大家在网上下载到源码以后,
在这个目录层次下可以找到:
cubetwister-2.0alpha125src\CubeTwister\src\main\ch\randelshofer\rubik\solver

这个程序是把KCube用Java重写了,喜欢看java代码的朋友可以看看。

遇到难的地方,大家一定要不吝赐教啊。

有人支持吗?

感谢大家的支持

夜雨听风
329774632
AlphaCB
mengfl
斜月

yanzi7816
今夜微凉
zbyxzh
dangerxxxx
r_517

yq_118
臭虫
ynyht
superflip
oyyq99999
superacid
铯_猪哥恐鸣
ggglgq
cube_master

[ 本帖最后由 aubell 于 2010-5-1 15:52 编辑 ]

KCube1.0.rar

58.91 KB, 下载次数: 109

已有 2 人评分经验 收起 理由
oyyq99999 + 20 重量级技术贴
ynjyht + 10 精品文章,加分支持

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

Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

积分
2
帖子
2
精华
0
UID
1347885
性别
保密
居住地
南昌市
兴趣爱好
破解
95#
发表于 2018-8-17 16:31:37 |只看该作者
支持支持楼主呢

使用道具 举报

积分
2
帖子
2
精华
0
UID
1347885
性别
保密
居住地
南昌市
兴趣爱好
破解
94#
发表于 2018-8-17 16:30:09 |只看该作者
感谢楼主。在8年前就研究了。我这小小辈学习呢。不过现在我用VS2017编译是出好多错误的,

使用道具 举报

Rank: 2

积分
299
帖子
266
精华
0
UID
108068
性别

四年元老

93#
发表于 2011-2-6 13:38:26 |只看该作者
支持一下,虽然看不懂。。。

使用道具 举报

Rank: 4

积分
1928
帖子
1060
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

92#
发表于 2011-2-6 13:35:01 |只看该作者

回复 91# 的帖子

伪码是这样的:
  1. maxLength=9999

  2. function Kociemba ( position p)
  3.   for depth d from 0 to maxLength
  4.     Phase1search( p; d )
  5.   endfor
  6. endfunction

  7. function Phase1search( position p; depth d )
  8.   if d=0 then
  9.     if subgoal reached and last move was a quarter turn of R, L, F, or B then
  10.       Phase2start( p )
  11.     endif
  12.   elseif d>0 then
  13.     if prune1[p]<=d then
  14.       for each available move m
  15.         Phase1search( result of m applied to p; d-1 )
  16.       endfor
  17.     endif
  18.   endif
  19. endfunction  
  20. function Phase2start ( position p)
  21.   for depth d from 0 to maxLength - currentDepth
  22.     Phase2search( p; d )
  23.   endfor
  24. endfunction

  25. function Phase2search( position p; depth d )
  26.   if d=0 then
  27.     if solved then
  28.       Found a solution!
  29.       maxLength = currentDepth-1
  30.     endif
  31.   elseif d>0 then
  32.     if prune2[p]<=d then
  33.       for each available move m
  34.         Phase2search( result of m applied to p; d-1 )
  35.       endfor
  36.     endif
  37.   endif
  38. endfunction  
复制代码
不是去掉-1。我想我要慢慢理解这个2-phase。
Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

银魔

狼情野性

Rank: 7Rank: 7Rank: 7

积分
4202
帖子
1961
精华
8
UID
8227
兴趣爱好
速度
破解

国家(地区)纪录(NR) 八年元老

91#
发表于 2010-5-2 21:30:18 |只看该作者

回楼上

把-1去掉不行,我后来试的另一个打乱出现了两个16步解,而且第二个是在threshold=15的时候第一阶段16步,第二阶段0步
一剑凌云山海情
弃剑封刀,大隐归闹市,自觉逍遥。
我的成绩

使用道具 举报

Rank: 4

积分
1928
帖子
1060
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

90#
发表于 2010-5-2 12:28:10 |只看该作者
回楼上:
     if (depth >= min_solution_length-1)
            return OPTIMUM_FOUND;
这一句
把-1去掉就有了。
Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

银魔

狼情野性

Rank: 7Rank: 7Rank: 7

积分
4202
帖子
1961
精华
8
UID
8227
兴趣爱好
速度
破解

国家(地区)纪录(NR) 八年元老

89#
发表于 2010-5-1 19:08:51 |只看该作者
有个问题,试试 R L U2 R' L' F 这个打乱,最后解出来的不是最短
一剑凌云山海情
弃剑封刀,大隐归闹市,自觉逍遥。
我的成绩

使用道具 举报

Rank: 4

积分
1928
帖子
1060
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

88#
发表于 2010-5-1 15:51:00 |只看该作者
话说这么小的程序,还要动用VC6的IDE环境吗?
用notepad++就好了。
感觉再用 .NET 下的VC编译环境,就像用炮轰小鸟了。

我已经out很久了,还没用上 .NET,也还没学习Java。准备改投gcc 的怀抱了。
他们说:.NET和Java是一个金碧辉煌的坑。我还没勇气跳下去。
用免费的,但不是盗版的gcc,心安一点。

自己写的代码也贴出来了,分析工作结束了。
最关键一行是直接Copy的,那一行还要细细品味。
整个程序,就那一行代码最关键。

感谢祖国。
感谢大家的支持。感谢 GNU的gcc ,感谢Notepad++,感谢 LarryWall 的Perl。
感谢无私的人们与我们分享智慧的果实。
Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

Rank: 4

积分
1928
帖子
1060
精华
6
UID
17579
性别
保密

魔方理论探索者 论坛建设奖 六年元老

87#
发表于 2010-5-1 15:35:47 |只看该作者
这个貌似同头文件的包含次序有关系,VC下的常见错误。
以下内容是Copy来的:

VC6中的解决方法:
菜单--〉项目--〉设置...,出现“项目设置”对话框,左边展开项目,在“源文件”中找到出错的文件,然后在右边选择“C/C++”属性页,在Category下拉框中选择“Precompiled Headers”,然后在下面选择“Not using precompiled headers”,重新编译一般就没问题了。
Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

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

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

GMT+8, 2024-5-12 22:22

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部