Skip to content

Commit 3834ea6

Browse files
committed
.
1 parent a84f89f commit 3834ea6

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/solver/cut_vertex.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
# 割点(Cut vertex)
22

3+
求解器通过推动箱子来创建新的状态, 而这需要判断玩家是否可以移动到箱子的侧边.
4+
一种简单的方法是使用**寻路算法**来寻找这条路径, 并将其作为通往新状态的动作序列.
5+
然而, 推箱子关卡所能产生的大部分状态无法通往最终状态, 创建这些状态时寻找的具体路径也将被抛弃, 导致大量计算浪费.
6+
**割点**可以提供一种比寻路算法更高效的算法, 可以在无需求出具体路径的情况下判断路径是否存在.
7+
只记录玩家移动的起点和终点, 待找到答案后再通过寻路算法找出最短路径, 以补全完整的解决方案.
8+
39
割点可以用于**快速**判断图中任意两个顶点之间的连通性.
410

511
本章节所说的图不是指求解时以关卡状态为节点的有向图, 而是以地图上地板为节点的无向图.
612

713
Tarjan 算法.
14+
15+
## 参考
16+
17+
- <http://sokoban.ws/blog/?p=843>.

0 commit comments

Comments
 (0)