用树解决4拼图

时间:2014-04-08 11:20:29

标签: data-structures machine-learning artificial-intelligence reinforcement-learning q-learning

我正在尝试解决4盒拼图问题。根据我的经验,我的逻辑是每个数字都与空格交换,然后到达正确的位置。

我有这个:

1 3
2

我的目标状态:

1 2
3

使用该方法的是什么:(密钥:R->右,D->向下;向上 - >向上;向左 - >向左)

                    1 3
                    2
                 R/         D|  up\   \L
                 /           |     \   \
               1 3          1      (not possible boundary exists)    
                 2          2 3

         R/  D|  up\   \L
         /    |     \   \ 
                3       1 3
              1 2       2
         ...............
        .................

这是我正在做的事情,但我每次都在某个树状态相同,但不是正确的目标状态。如果我使用错误的树方法或算法请告诉我。因为我在通过互联网学习后实现了这种树。

2 个答案:

答案 0 :(得分:1)

算法没有错。没有解决方案。没有办法从最初的情况到最终的情况。

答案 1 :(得分:0)

并非所有 4个谜题的实例都是可解的,下图显示了状态图,可以看出有2个连接的组件。

https://stackoverflow.com/a/37421794/624706

如上图所示,目标状态(编码为 0123 )属于这些组件之一,此组件中的所有实例都是可解决的。从另一个组件中,无法达到目标状态,因此这些实例都不可解决。

我们也可以用 Q-learning 来解决 4-puzzle ,上图也显示了该问题的奖励表述。更多细节可以在 enter image description here