魔方吧·中文魔方俱乐部

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

二阶魔方状态转移图与应用 2010.4.15更新 [复制链接]

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

跳转到指定楼层
1#
发表于 2010-4-11 03:12:43 |只看该作者 |倒序浏览
首先建立了所有二阶魔方状态与集合{0,1,...,3674159}的一一对应从而实现了状态转移图的线性存储,达到快速访问的目的。

采用BFS,计算所有节点的距离(最少步还原的步数)。
状态转移图有很多用途,这里只实现了两种:
计算各距离下的的状态数(函数ana)最少步还原(函数solve)
时间关系,程序还有许多不足。
有错误请指出,谢谢。
Archive.zip (36.39 KB)

/**************************************************/
2010.4.15更新MiniCube.zip
代码进行了优化,占用内存减少。
第一次运行时将距离表写入磁盘,以后运行非常快。
添加180°转算两步的求解。
多重解,每个状态求出所有最少步解。
MiniCube.zip (9.28 KB)

[ 本帖最后由 yq_118 于 2010-4-15 09:34 编辑 ]

Archive.zip

36.39 KB, 下载次数: 51

MiniCube.zip

9.28 KB, 下载次数: 42

已有 1 人评分经验 收起 理由
noski + 15 加分鼓励~

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

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

2#
发表于 2010-4-11 03:15:24 |只看该作者
占楼备用......

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3923
帖子
2556
精华
6
UID
15558
性别
保密
WCA ID
2008CHEN27
兴趣爱好
理论

魔方理论探索者 国家(地区)纪录(NR) 十年元老

3#
发表于 2010-4-11 10:07:50 |只看该作者
那个,180度算两步的其实只要改一行,原来是尝试18种转动,现在把那行改成尝试12种90度转动即可。。。另外其实我寒假做了和楼主同样的事情,可以参考我那个二阶求解程序。。。

使用道具 举报

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

4#
发表于 2010-4-11 10:29:11 |只看该作者
原帖由 铯_猪哥恐鸣 于 2010-4-11 10:07 发表 那个,180度算两步的其实只要改一行,原来是尝试18种转动,现在把那行改成尝试12种90度转动即可。。。另外其实我寒假做了和楼主同样的事情,可以参考我那个二阶求解程序。。。
改一行不行,改几行还可以。
可以把图写入磁盘,以后就会快很多了。
可惜还缺一个GUI。

期待用循环变换的理论写的程序,不知道效率上有多大提高。

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3923
帖子
2556
精华
6
UID
15558
性别
保密
WCA ID
2008CHEN27
兴趣爱好
理论

魔方理论探索者 国家(地区)纪录(NR) 十年元老

5#
发表于 2010-4-11 10:44:28 |只看该作者
。。。你都搜索了所有状态了,显然就和循环变换扯不上关系了,那是用于因为状态数太多无法全部储存的时候做得剪枝算法。。。

使用道具 举报

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

6#
发表于 2010-4-11 11:00:28 |只看该作者
看来二阶魔方这种简单的东西没必要用“循环变换”,但要证明“循环变换”是正确的总要给点东西出来啊。

使用道具 举报

Rank: 1

积分
104
帖子
77
精华
0
UID
1251652
性别
保密
7#
发表于 2010-4-11 17:50:31 |只看该作者

回复 6# 的帖子

版主回复过了,老程序还不能调试,以后再说~

其实我是觉得这个定义挺好的,也不存在是正确,错误之类的。  
只是它更像一种方法或思路,有些贴把之吹得过了(尤其是早期的某些贴子里)~

不过魔方就是拿来把玩的,每人有自己的新思路就很好。

使用道具 举报

Rank: 8Rank: 8

积分
4787
帖子
1876
精华
12
UID
93
性别

魔方理论探索者 十年元老

8#
发表于 2010-4-13 00:38:47 |只看该作者
  
  
    看来楼主对 开解正六面体二阶魔方程序 有一定的研究,加精支持!
  
    希望推出功能更强大的后续版本!
  
  
  
~~ 宇宙在旋转运动 ~~ 魔方在循环变换 ~~

使用道具 举报

Rank: 4

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

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

9#
发表于 2010-4-14 17:54:54 |只看该作者
支持一下,很好的程序啊!
Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

Rank: 4

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

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

10#
发表于 2010-4-14 19:09:16 |只看该作者
你知道用了多少内存吗?
粗略看了一下,初始化完成后144632k。
大概内存泄露了?还是本来就要这么多?

已经很不错了,加油啊。
Enjoy cubing
Enjoy coding.
我喜欢的公式 U D F2 B2 U' D'

使用道具 举报

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

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

GMT+8, 2024-4-28 19:45

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部