pan528 发表于 2017-10-7 20:52:35

解关器的使用心得

本帖最后由 pan528 于 2017-10-8 08:46 编辑

解关器只是一个推箱子的辅助工具,对初学者,想要快速获得答案或解题思路很有帮助。
解关器目前还有很大的局限,不能解大关卡或复杂的小关,要解全部的关卡目前还做不到。
要想成为推箱子高手,显然不能依赖它。

关于解关器的比较,网上已有论证。如,WIKI sokobano wiki 网页:
http://sokobano.de/wiki/index.php?title=Solver_Statistics





从上述论证看,这五款解关器的解关综合能力依次为:Takaken、Sokolution、YASS、BoxSearch、JSoko。
注意:
从上述解关数量分布看,可以看出,每款解关器对不同关的解答是存在差异的,估计是算法各有所长,因此排名靠前者并不意味着能解排名靠后程序的所有能解之关。
当然,这只是对 3424 个常见的较简单关卡的测试,其排名并不能说明这五款软件的全部能力。

pan528 发表于 2017-10-7 20:53:10

本帖最后由 pan528 于 2017-10-8 08:31 编辑

我使用最多的解关器是 Takaken、YASS、JSoko。下面分享一下我的心得:

1、小关卡集用 Takaken 解关较快。
Takaken 最大支持关卡图形(宽=50,高=50,箱子=64),最大支持一次批解关9999个关卡。而且解关速度较快,综合解关能力较强。
经初步测试(没有纪录详细数据),Takaken 能解的关卡绝大多数在300秒内能完成,因此,为了提高效率,解关时间设置为300秒,这样1000关的关卡集只要8个多小时就可以历遍关卡,判断关卡能否解,能解则生成答案。

当然,如果有足够的时间和耐心,也可以挑出未解之关,让 YASS 再筛一遍,解答可解的漏网之鱼,提高程序解关率。

2、特定关卡偿试不同工具。如:
(1)相对 Takaken 而言,YASS 能解较大的关,对斜行运行的关的解关能力较强,如:

--------##########
--------#-.---.--#
-------##.$$..$$.#
------##.$$..$$.##
-----##.$$..$$.##-
----##.$$..$$.##--
---##.$$..$$.##---
--##.$$..$$.##----
-##.$$..$$.##-----
##-$$.-$$.##------
#-@------##-------
##########--------
Title: Warehouse 111
Author: Iroh

这一关刚入门的人都能快速解的关。但 Takaken 不能解,YASC 解得很轻松。

rrrrrUdllllURURURURURURURURldldldldldldlddrrruRURURURURURURUR
优化后:
rURURURURURURURURldldldldldldlddrrrURURURURURURURUR

JSoko 1.78 也能解
rrrrrURdlllllURUddrrurrURlddlllluuRURURUdldldlddrrurrurURldlddlllluurururuRURldldldldlddrrurrururURldldlddlllluurururururURUdldldldldldlddrrurrurururURldldldlddlllluururururururuRldldldldldldlddrrurrururururURURUR


pan528 发表于 2017-10-7 20:53:49

本帖最后由 pan528 于 2017-10-8 08:31 编辑

3、高版本的程序不一定都能解低版本能解的关卡。如:

---------####
------####-@#
------#--#--####
---####-$#-$#--#
---#--#--$--$-$#
---#..$--#-$#--#
---#..#-$---$-$####
--##..-#$#-$#--#--#
--#..#-#----#-$-$-#
-##...--#-#--$-#--#
-#....----##-#-$$-#
##.######-##-#-#--#
#-.------------#--#
#---#########-----#
#####-------####--#
---------------#--#
---------------####
Title: Revenge 214 R--2
Author: Yasuhiro Morita, unknown

(一)Takaken 7 能解; Takaken 7.22 不能解
Takaken 7 解关原步骤(36''):
dlddddddlddlluluuluuRRllddrddrdrruuruurDuluurUdlddddlddlluluuluurrdRRlluurDldRuuluurDDldllddrddrdrruururuUluLLrrdrddldlddlluluuluurrUddrUluRuulDDrdLLLulDDDDurrddlLdlUrrrrdrruururuuluLLulDrdLLrurrrdrddldlddlluluululuurDDldddrrrdrruulUUUdddrruruululLulDrdLLrrdddrddllullluuuuurDrrurrrdDLruulldllllddddrrrdrruuluUUdrruulLulDrdLLLulDDDDuuurrrrdddrddlllllluRRdrrrruurUruLLrddlluUUdrruulLulDrdLLLulDDDDuuurrrrdddrddlllluLrdrrrrddrrruuulUdrdddrruuuLuuuLLLLrddlluUUdrruulLulDrdLLLulDDDDDrdrrrrddllllllluurRRRRRllluluuuurrrrdddrdDDulllllllddrrrrrrRRRRllluuuuruuuuurDlddrrruuLLLLLulDrdLLLulDDDDDrdrrrrddllllllluurRRRRRllluluuuurrrrdddrdDlllllllddrrrrrrrUUlllluluuuurrrrdrrddrUluuurrrddlLdlUUdrrruullLLLulDrdLLLulDDDDDrdrrrrddllllllluurRRuluuuurrrrdrrrUdrruulLLLLulDrdLLLulDDDDDrdLLruuuuurrrrdrrrrrdddrdddLLLLLLLLLLLdlUrrrrrrrrrrrruuuluuullddllDDDuuuruurrrdddrdddllllLLLLLLLrrrrrruuuuruuuuuuurDDlddrdrruulLLLLulDrdLLLulDDDDDrdLuuuuurrrrdddrddlluLrdLrrruuruurrrdrDDuuluurDlllddllddddrrrrrdrruuruuuLLLdlUUUlluurrDrdLLLdlUUruLLLulDrdLLLulDDDDDuuuurrrrdrrrrrrDulllddllddddrrrrrdrruuruuullLdlUUruLLLdlUUruLLLulDrdLLLulDDDDuuurrrurrrrrrurDDDDulllddllddddrrrrrdrruuruuullLdlUUUUruLLLLLLulDrdLLLulDDDuurrrrdddrddddrrrrruUUddddrruuruuullLdlUUUUruLLLLLLulDrdLLLulDDurrrrdrrrdddRRldddrruuUddddrruuruuullLdlUUUUruLLLLLLulDrdLLLulDrrrrdrrrrrrddrrrdddlUUruLLLdlUUUUruLLLLLLulDrdLLLrrrdrrrrrrddddRldddrruuUUruLLLdlUUUUruLLLLLLulDrdLL


(二)JSoko 1.77 能解,JSoko 1.78 不能解
JSoko 1.78 不能解 JSoko 1.77 解关原步骤(4:33'27''):
dlddddddlddlluluuluuRRllddrdddrrrddrrrrruuuLuuuurDuluurDlddddRluurDuluurDlddddrdddllllluulluluuluurrdRlullddrdddrrruuruuuurRllddddlddlluluuluurrurRRllluurDlddllddrdddrrruuruuuulLrrddddlddlluluuluurrUrrrddddrdRluluuuulllddrUluRuulDDrdLLLulDDDDDldRRRRRllllllddrrrrrrrrrruuululldDDuuurrdrdddllLLLLLLLrrrrrruuuuruuuuLLulDrdLLLulDDDDDldRRRRRluluuluurrurrrddddrdrdddllluUddrrruuululllUUUdddrruuuulLulDrdLLLulDDDDDrdLuuuuurrrurrrddLrddlluUUdrruulLulDrdLLLulDDDDldRRdrruLdlluRdrruLdlluRdrrrrddrrrrruuuLuuuLLLLrddlluUUdrruulLulDrdLLLulDDDDuuurrrdrrrrrrdddrdddllllluulllluLuuuurrrdrddrrrUlullulllddldddrrrrrddrrrrruuuluuulLLLrddlluUUdrruulLulDrdLLrdrrrrrrdddrdddllllluulllluluuuuurDDurrdrrrrrruruulDlLLLLulDrdLLLulDDDDuuurrrdrrrrrrUruLLLLLLulDrdLLrdrrrrrrdddrdddllllllllllldlluRuuRRRRRllllUdrruLuuuuurDrrdrrrrrrdddrdddllllllllllLdlUrrrrrrruuLLLrrrddrrrrruuuluuulllllulllldddddRRRlluluuuurrrdrddrDDDuuuruurrrdddrdddllllLLLLLLLrrrrrruuuuruuuuuurDldddrrruulLLLLulDrdLLLulDDDDDrdLLruuuuurrrdrrrrUdrruulLLLLulDrdLLLulDDDDDrdLrrruLdlluuuuurrrdrddrddLLLrrruuruurrrdrDDuulullddllddddrrrrdrrruuruulDuruulDLLdlUUUUruLLLLLLulDrdLLLulDDDDDuuuurrrurrrrrrdrDDulllddllddddrrrrdrrruruuuullLdlUUUUruLLLLLLulDrdLLLulDDDDuuurrrdrddrddddrrrrruUUddddrruruuuullLdlUUUUruLLLLLLulDrdLLLulDDDuurrrdrrrrrrddrrrrddlUruLLLdlUUUUruLLLLLLulDrdLLLulDDurrrdrddrrrdRRldddrruuUddddrruruuuullLdlUUUUruLLLLLLulDrdLLLulDrrrdrrrrrrddrrrddLrrdddllluuUUdrruulLdlUUUUruLLLLLLulDrdLLLrrdrddrddddrrrrdrrruUUUruLLLdlUUUUruLLLLLLulDrdLL

混合优化后:

ldddrUldddrDldlddllluuuluuRRdRRlluurDluuurDDldllddrdddrrruururuUluLLrrdrddldlddllluuuluurrdRUlURuulDDrdLLLulDDDDldRRdrrrruururuuluurDDulLLulDrdLLLulDDDDDrdrrrruuruUUruLLLulDrrrdddrUlddllUUULLLulDDDDlddRRRRRllluLdlUdlddrrrrrrrrrruuulUluuuulLulDrrrddLrddlluUULLrrdddrdDDullllluuuuuurDDurrrdrruulLulDrdLLLulDDDDDldRRRRRlllluuuuurrrrdddrrrdrdddrruuuLuurDluuurDlLLrruuLLLuuurDDldLLulDrdLLLulDDDDuuurrrrdddrruUrrruulLLLLulDrdLLrrdddrdDlllllllddrrrrrrRUUlllluLuuuuurDrrrdrrrUdrruulLLLLulDrdLLLulDDDDDrdrrrrddllllllluurRRluuuuurrrrdrrUruLLLulDrdLLLulDDDDDrdLLruuuuurrrrdddrrrUddRdddlLLLLLLLLdlUrrrrrrrrrrrrdrrruuuuuLLLDLUUUrDullLdlUUruLLLulDrdLLLulDDDDDrdLuuuuurrrrurrrrrurDDDlUruLLLLLLulDrdLLLulDDDDDuuuurrrrdddrDDDuuurrdRdddllLLLLLLLrrrrrrrrrrrdrruuUruullLdLUUUUruLLLLLLulDrdLLLulDDDDuuurrrrdddrddddrrrrruUUddddrruuuLrruullLdlUUUUruLLLLLLulDrdLLLulDDDuurrrrdrrrrrdddrDrrUruLLLdlUUUUruLLLLLLulDrdLLLulDDurrrrdrrrrrrDlddrdrruulLdlUUUUruLLLLLLulDrdLLLulDrrrrdddrrrdRRurrrddllUdrruulLdlUUUUruLLLLLLulDrdLLLrrrdddrddlluLrdLrrrddrrrrrUUUdrruulLdlUUUUruLLLLLLulDrdLL

pan528 发表于 2017-10-7 20:54:20

本帖最后由 pan528 于 2017-10-8 08:31 编辑

4、有的程序对某些关解得快,并不等于对这一类关卡都能解决。如:

---------------#####-------
---####--------#---######--
---#--#--------#-$----$-#--
---#--####-----#--$##$--###
---#-----#########--#-$-$-#
---#------..........#---$-#
-######-##....@###--#-$$--#
-#----#-#####.##-#-##---$-#
-#------------#--#$--$$-$-#
####-#--#####-#--#--$--#--#
#----#-#------#--###---####
#------#--#---#----#####---
#---#-----#####------------
#####-----#----------------
----#######----------------
Title: Skinner 36
Author: David W. Skinner

YASS 一秒搞定
但,下列小变异,YASS 用了 52'13'' 却不能解。

---------------#####-------
---####--------#---######--
---#--#--------#-$----$-#--
---#--####-----#--$##$--###
---#-----#########--#-$-$-#
---#-----...........#-$-$-#
-######-##....@###--#-$$--#
-#----#-#####.##-#$##-$-$-#
-#------------#--#------$-#
####-#--#####-#--#-$$--#--#
#----#-#------#--###---####
#------#--#---#----#####---
#---#-----#####------------
#####-----#----------------
----#######----------------
Title: New-SZ 1286 Skinner 36-2
Author: David W. Skinner and York Shen

pan528 发表于 2017-10-7 20:54:55

本帖最后由 pan528 于 2017-10-8 08:32 编辑

5、有的大关可以切小来解
如,下列关卡其实是几个小关有组合:

-----------###-----------
----------#---#----------
---------#--*--#---------
--------#--*-*--#--------
--------#-*$*$*-#--------
--------#--.-.--#--------
---------#-$*$-#---------
----------#-.-#----------
---###-----#.#-----###---
--#---#---#---#---#---#--
-#--*--#-#--*--#-#--*--#-
#--*$.$-#--.$.--#-$.$*--#
#-*-*-*-.-*****-.-*-*-*-#
#--*$.$-#--.$.--#-$.$*--#
-#--*--#-#--*--#-#--*--#-
--#---#---#-@-#---#---#--
---###-----#.#-----###---
----------#-.-#----------
---------#-$*$-#---------
--------#--.-.--#--------
--------#-*$*$*-#--------
--------#--*-*--#--------
---------#--*--#---------
----------#---#----------
-----------###-----------

Title: Four Leaved Clover a2 (MF8 74th Sokoban Competition, Extra)
Author: Andrej Cerjak + anian

pan528 发表于 2017-10-7 20:55:26

本帖最后由 pan528 于 2017-10-8 08:32 编辑

6、有的关卡难点可让解关器帮助你找思路。

如:“alfa  a”直接用解关器不能完成。

1)原关:
--####--####--
-##--##-#--#--
-##---###--##-
##--**--#.--##
#--*--*-#*#--#
#-*----**--#-#
#-*-##-*---#-#
##-*--*#*#-#-#
-#$-**-#-*-#-#
-#@#--##-----#
-##--####--###
--#--#--####--
--#--#--------
--####--------

Title: alfa  a
Author: drfogh + stopheart

2)先打通路经,只用了18推。
--####--####--
-##--##-#--#--
-##-$-###$-##-
##--+*--#.--##
#--*--*$#.#--#
#-*-$--.*--#-#
#-*$##-.---#-#
##$.-$.#*#$#-#
-#--..-#-*-#-#
-#-#--##-----#
-##--####--###
--#-$#--####--
--#--#--------
--####--------

UrUrDDDurUrUURRRurDulUUdddllULLulU

3)用 Takaken 解关(耗时97秒,898移步/138推步)
lldRdDuuuuurDrDrrDDllLrrruullLrrrddlllUUddrUdrruul
LdllllddRUluRRRdrrruullDurrddldddllllUUddrrrruuurR
drruLdlLuuulldllllddrddrrrruUrrruLdlUrruurrdrddddd
lllluUUdddrruLdlUrrdrruuuuulullddrdDDuuuluurrdrddd
ddlLdlUruuullllddlllluuluurrrrurrDDuulldRlllllddrd
drrrruuUrRdrUllldddlllluuluurrrdRRRRdrruLdlLullull
llddrddrrrruUruLrRdllddlllluuluurDDuurrdLullddrUlu
RdrrRRdrruLLrrdrruLrddddrruuuuulullDurrdrdddddlluu
ulllulLrdddllllUUddrruLUdrdrruurrrUdlluRllluurrDDl
luRddddllululluurRRRuuLDrddrdddllululluuruRRldlldd
rrdrdrruuurrdLulluLulldlddrrdrdrruUddllululluurDuu
rrdLulDurruulDrddlluRdrUdlDurrdRdddllulUUddrdrruuu
lululldlddRluururrdrdrdddllulUdrdrruurruLdlddllulu
lluururrdLDDlluuRurDllddrUluRurrdrdRdrruLdlddllllU
UrDldRRululluururrdrdRdrruLrdrruLrddddrruuuuululuu
lDrdrdrdddddlluuulllldLLdddlddrUUUUlluurDldRuRlull
uururrdLDDlddrUluluuRlddrdrrRllluluurDuurrdrdLLruu
luurDrDulldldRuurrdrrDDuullulldddrrUdllDurruLrdR

用 YASS 解关(用时3分33秒,503移步/70推步)
lldRdDuullddRUluRuruurDrDrrDDRlldddllllUUluururRlldlddrddrrrruuurrdrruLdlLulDulLUUddrrrdrruLruurrdrdddddlllluUUlluUddrrrrDDuuuluurrdrdddddlLuuulllluurDRdrUllllluRdrrrrrdddLrddlUrrruuuuululuulDrdrdrdddddllllUdrruuuulllllluulldlddrddrrrrUUddlllluuluururrddrRRllluuluurDrDDlUlldlddrddrrrruuuruuLrddldddlllluuluurDuurrddRRlluullddRluurrdrdrdddlllluUddrruLdrrruuululLdDlluuRurrdrdrdddllllUdrrrruuulululldldRuurrdrdrdddlllluUddrrddlddrUUUruruuulululldlddrddrRlluurDldRurRllluluurDuurrdLDDulluRurrdrdLLruuluurD

解关合成并用YASS优化,最终只有377移步/88推步
UrUrDDrUrUURRRurDlllULLulUlldRdDuullddRUruuuurDrDrrDDldddllllUUluuRurRlldlddrddrrrruuurRdLulDrrrruLLrUUrrdrdddddlllluUUrrDDLdlUrruuuluuruulDrdrdrdddddlLdlUruuulllluUrDRdrUllllLURlUluurDrDDldRRRuuLrddllluUlldlddrddrrrrUUddlllluuluurDRluurrdrdRdddlllluUddrruLdrrruuululLdDlluRluRurrdrdrdddllllUUddrrdDlddrUUUruruuulululldlddrddrRlluurDldRurRllluluururrdLDDlluuRDuurrdrdLLruuluurD

pan528 发表于 2017-10-7 20:55:59

本帖最后由 pan528 于 2017-10-8 10:07 编辑

又如:Skinner 123 2
1)原关:
###############
#----#---#----#
#-#--#---#--#-#
#--**$***$**--#
#--*-.---.-*--#
###$.##-##.$###
#--*-#---#-*--#
#--*-#-@-#-*--#
#--*-#---#-*--#
###$.#####.$###
#--*-.---.-*--#
#--**$***$**--#
#-#--#---#--#-#
#----#---#----#
###############

Title: Skinner 123 2
Author: David W. Skinner + QQ Sokoban Group

2)打通路经
###############
#----#---#----#
#-#-$#$-$#-$#-#
#-$..$.*.$..$-#
#-$*-.---.-*$-#
###-.##-##.-###
#-$*-#---#-*$-#
#--.-#---#-.--#
#-$*-#---#-*$-#
###-+#####.-###
#-$.$.---.$.$-#
#-$..-***-..$-#
#-#-$#---#$-#-#
#----#---#----#
###############

3)用 Takaken 解关,并用YASS优化,最终答案如下:
uuurrrRUdlddRUlullllllLUlluurrrdDldRddLUrdddLUrdddLUrdDLurrrrrrrRDrrddllluUruLLLDRulLLLrDRddlUUrurrdLulLdddrrUlluurrrrrdrrddllUdrruuuLLLuuRDuUrrdLLulDuuurDDrruLdlluurDluuUrDDuurruulllDDDllURdrrurruullldDlldllULLuulllddrRRdRRuRDllldddddlddrUUUUUUlURdddlUUrddddddlddlluuuRRdrUdRllddrUdllluuRuruUruulDDDuulldRluuRdrruulDruuuuulllddrRDDuulldRluuurrDrDDRRuLrrRRdlLLruuulDurrDlddDDlddrUUUUrruRuurrrddlLdLrurrdLruuullD

再如:Numbers
下列关卡可切开几段,让解关器分别计算,帮助你找出思路。

这题留给你思考。

##################################################
#--.--**---**--*-*--****---*-****--**---**---**--#
#-**#*#-*-*#-*-*-*--*----#*#-#--*-*--*-*--*-*--*-#
#--*----*----*-*-*--*--#-*-----*--*--*-*--*-*--*-#
#-#*--**-#-#*--****-#**--***--#*--#**#-$***-*-#*-#
#--*-*-##----*---*-----*-*--*-*-#-*--*-#--*-*--*-#
#--*-*----*--*--#*-#*-#*-*--*-*-#-*--*---*--*--*-#
#--*-****--**-#--*---**---**--*----**---*----**-@#
##################################################

sfkgi漷 发表于 2017-10-8 15:10:03

弱弱的问一句这是啥呀

kukufeicong 发表于 2017-10-9 23:17:06

希望楼主能分享这些好的解关程序.

anian 发表于 2017-10-10 01:45:33

kukufeicong 发表于 2017-10-9 23:17 static/image/common/back.gif
希望楼主能分享这些好的解关程序.

群文件里面已经有。   

对解关卡的人来说, 用解关器会有依赖性, 自己难进步。
其实这些程序, 我建议还是少用为好。   

对研究编写解关器的人来说还不错, 可以有些比较。  可惜的是, 除了公开代码
的那些解关器, 其它的程序都是没有公开说用什么方法解。 这样对研究解关器帮
助不大, 但有资料比较总是比什么没有好。   除了作者, 目前还没有人知道TAKAKEN用
什么方法去解关卡。  只是知道肯定不是传统的DFS / BFS / IDA。  这些方法已经
被研究过, 这些方法无法解开很多TAKAKEN目前解开的关卡。
页: [1] 2
查看完整版本: 解关器的使用心得