FDRS / FCSR Classical Cube Foundations V
啟發式與剪枝:Admissibility、Pattern Database 與搜尋下界
英文題名: Heuristics and Pruning: Admissibility, Pattern Databases, and Search Lower Bounds
系列: FDRS / FCSR Classical Cube Foundations
系列編號: EML-FDRS-FCSR-CUBE-05
版本: v0.1
日期: 2026-08-20
作者: Neo.K
機構: 一言諾科技有限公司(EveMissLab)
狀態: Orthodox Origin Continuation / 經典地基第五篇
摘要
第四篇將 BFS、雙向搜尋、A* 與 IDA* 統一為對搜尋問題
採取不同 frontier 與 memory policy 的方法。本文進一步聚焦其中最能決定實際搜尋規模的部分:heuristic 與 pruning。
本文首先把 heuristic 從「經驗猜測」重新定義為可證明的剩餘成本下界。若真實最短剩餘成本為 ,admissibility 要求
這個不等式不是裝飾性質,而是 A* / IDA* 能安全排除搜尋分支、同時保留最短解保證的核心。本文進一步區分 admissibility 與 consistency,並證明多個 admissible heuristics 的最大值仍為 admissible;相反,直接相加一般不保證 admissible,除非各抽象問題之間具有適當的 cost partition / additive abstraction 結構。
在此基礎上,本文把 Pattern Database(PDB)寫成一個抽象搜尋圖上的精確距離表。設抽象映射為
若每個具體 move 在抽象圖中的成本不大於原 move 成本,則抽象最短距離
天然構成具體問題的 admissible lower bound。PDB 的本質因此不是「背答案」,而是預先求解一個較小的抽象問題,並把精確抽象距離重用為完整問題的下界證書。
本文亦重新檢查既有 FDRS 魔方 Demo 的 piece-count heuristic:
由於任一標準 face turn 僅改變四個 corners 與四個 edges,單步最多使四個 incorrect corners 或四個 incorrect edges 歸位,因此該 heuristic 不只可證 admissible,亦可證 consistent。這使原 Demo 中一個原本僅作工程直覺使用的 heuristic,可以被提升為正式 Search Kernel 的第一個 verified baseline。
本文最後建立四類 pruning:bound pruning、move-sequence pruning、duplicate / transposition pruning、symmetry / quotient pruning,並要求所有 pruning rule 都具有明確的 safety contract。新版 FCSR 可視化層將不再只顯示「節點被剪掉」,而會顯示下界來源、PDB lookup、支配關係與剪枝理由,使 heuristic search 的內部計算可以被直接觀察。
關鍵詞: heuristic、admissibility、consistency、Pattern Database、PDB、lower bound、pruning、IDA*、A*、cost partition、FCSR、FDRS
1. Heuristic 不是答案,而是下界
對搜尋狀態 ,令真實到目標集合的最短成本為:
heuristic:
若滿足:
對所有 成立,則稱為 admissible。
因此 admissible heuristic 的角色不是「猜答案有多遠」,而是聲明:
真實答案至少不會比這個數字更近。
也就是:
這個定位對形式驗證尤其重要。
2. 為什麼 lower bound 可以安全剪枝
考慮 IDA* 的 threshold:
目前節點 的已花成本為:
若:
又因:
則:
所以任何經過 到達 goal 的路徑,總成本都必然:
因此該 subtree 可以安全排除。
這給出本文第一個核心 theorem schema:
3. Admissibility 與 consistency 不同
heuristic 稱為 consistent,若對任意合法 edge
滿足:
並要求 goal 上:
consistency 可以理解為 heuristic 自己也滿足一種 triangle inequality。
若所有 edge cost 非負,consistent heuristic 自動 admissible。
但 converse 一般不成立:
這個差異對 graph-search A* 的 closed / reopen policy 很重要。
4. Zero heuristic、perfect heuristic 與 dominance
若:
則它永遠 admissible,但幾乎不提供方向。
若:
則它是 perfect heuristic。
所以 heuristic design 可以被理解成:
若兩個 admissible heuristics:
對所有 滿足:
則稱 dominates 。
較大的 admissible lower bound 在 bound quality 上不會比較弱,但實際 wall-clock time 還取決於 heuristic evaluation cost 與 memory access cost。
5. 最大值組合定理
若:
皆 admissible,定義:
因每個:
所以:
因此:
同理,若每個 consistent,則 亦 consistent。
6. 為什麼不能隨便相加
若:
且:
並不能推出:
因為兩個 heuristic 可能都在計算同一批真實 move 的成本。
因此:
要安全相加,必須證明成本沒有被重複計算,或使用更一般的 cost partition。
7. 從 representation 到 search abstraction
第三篇已建立 task-reduced representation:
本文把其中一類特別提升為 search abstraction。
令具體搜尋圖為:
抽象圖為:
以及抽象映射:
若每個具體 edge:
在抽象圖中都有對應 path 或 abstract edge:
且其成本不大於原成本,則任何具體 solution path 都投影成一條不更昂貴的抽象 path。
因此:
這直接給出 admissible heuristic:
8. 抽象下界定理
把上一節寫成正式命題。
若:
是 cost-nonincreasing abstraction,則:
滿足:
證明概念如下。
取任意具體最短解:
將 逐步投影到抽象圖,得到:
由 abstraction 不增加 edge cost:
又因抽象最短距離不大於任意抽象 path:
故:
9. Pattern Database 的本質
Pattern Database 的核心流程是:
先在較小的抽象 graph 上,對 abstract goal 反向計算所有可達 abstract states 的精確距離:
求解具體狀態 時,只需:
由抽象下界定理:
因此 PDB 是 admissible heuristic。
它不是預先儲存每一顆完整魔方的答案,而是儲存:
10. PDB 的 offline / online 分工
Pattern Database 把成本拆成兩個時期。
Offline
建立:
通常由 goal side 在 abstract graph 上執行 BFS、Dijkstra 或其他 exact distance computation。
Online
對每個搜尋節點 :
- 計算:
- 查表:
因此:
對固定規則、固定目標、會反覆求解大量 scramble 的 twisty puzzle,這種 offline / online 分工尤其自然。
11. Korf 1997 的 Rubik's Cube PDB 意義
Richard Korf 1997 的工作把 Pattern Database heuristic 與 IDA* 用於 Rubik's Cube optimal solving,展示大型預計算抽象表如何加強 admissible heuristic。
對本系列來說,歷史重要性不在於複製當年的硬體或表大小,而是建立一條清楚的算法鏈:
這條鏈把 representation engineering 與 search performance 直接接在一起。
12. Kociemba pruning table 與 PDB 的關係
Kociemba Two-Phase 實作使用 pruning tables。
其 index 可以由一個 coordinate,或兩到三個 coordinates 的組合產生;table 中保存的是到 phase goal / subgroup 的距離資訊,用於給出安全的搜尋下界與剪枝。
在概念上,它與 Pattern Database 有共同結構:
但工程術語、壓縮方式與具體表語義可以不同,因此本文不強迫把所有 Kociemba pruning table 都改名為 PDB。
更合適的關係是:
13. Symmetry 可以壓縮 heuristic table
第三篇已討論:
的 symmetry coordinate。
若:
代表兩個 coordinate states 在 puzzle symmetry 下等價,而 goal 與 move metric 對該 symmetry 保持相容,則它們的距離資訊可以共享。
因此可以把:
壓縮到 equivalence class:
這再次說明 symmetry reduction 不只是群論裝飾,而會直接影響 heuristic memory。
14. Disjoint Pattern Databases
假設問題可以分成多個 patterns:
各自建立:
最安全的通用組合是:
但若 patterns 與 operator costs 可以被適當分離,就可能使用:
歷史上的 disjoint PDB 方法利用互不重疊的子目標 / 狀態變數與 operator 影響結構,使不同 PDB 的成本可以相加而不 double count。
15. 更一般的 cost partition
對每個具體 operator ,成本為:
為第 個 abstraction 分配成本:
若對所有 operator:
則每個 abstraction 使用 計算其 exact abstract distance:
此時:
因此 additive heuristic 仍 admissible。
這比簡單說「pattern 不重疊就一定能加」更一般,也更精確。
16. Move pruning 與 heuristic pruning 不同
heuristic pruning 依賴:
move pruning 則在生成 successor 前,就根據 move sequence 結構排除冗餘操作。
例如:
等價於不做任何事。
所以 optimal path 不需要包含這種立即抵消。
又例如在 HTM move alphabet 中:
可以直接改寫為:
若 計作一 move,則 不是最短序列。
這類規則可以在不看 heuristic 的情況下直接排除。
17. Sequence dominance pruning
定義兩個 move sequences:
若它們對任意 relevant state 具有相同作用:
但:
則 dominates 。
任何最優搜尋都不需要保留被支配的 。
所以 move pruning 的正式安全條件可以寫成:
這比硬編「不准連續同面」更適合泛化到不同 twisty puzzle。
18. Commuting move canonicalization
若兩個 move:
滿足:
則:
與:
導向同一 state。
為避免兩條完全等價 search branches,可以固定 canonical ordering。
但這種規則必須依 puzzle 與 move set 證明 commutativity,不能把某一顆魔方上的 rule 直接複製到任意 twisty puzzle。
19. Duplicate / transposition pruning
若兩條 path:
到達同一 state ,且:
則在標準 Markovian shortest-path 問題中,較昂貴的 通常被 支配。
這就是 transposition / duplicate pruning 的基本來源。
但 IDA* 使用低記憶體 DFS,是否保存完整 transposition table、只保存當輪資訊、還是只做 path-cycle detection,是時間-空間 tradeoff,而不是語義必然。
20. Pruning safety contract
所有 pruning rule 都應具備一個明確聲明:
對 optimal solver,可以定義:
對只要求 completeness 的 solver,則可放寬為:
如此:
- heuristic bound pruning;
- move dominance pruning;
- symmetry pruning;
- duplicate pruning;
都可以用同一種 proof vocabulary 管理。
21. 舊 Demo heuristic:從直覺提升為 theorem
原 HTML 的 heuristic:
其中 為不在 solved position / orientation 的 corners 數, 為不在 solved position / orientation 的 edges 數。
任一標準 face turn 只作用於四個 corners 與四個 edges。
因此對一步:
有:
以及:
22. Demo corner / edge heuristic admissibility
若目前:
要讓所有 incorrect corners 歸位,每一步最多修正四個。
因此任何 solution 至少需要:
步。
所以:
同理:
由 max-combination theorem:
故:
23. Demo heuristic consistency
對任一步:
因最多四個 corner correctness statuses 改變,所以:
因此:
即:
所以 consistent。
同理 consistent。
而 max of consistent heuristics 仍 consistent,因此:
這是原 Demo 可以正式繼承進新版 Search Kernel 的第一個 verified heuristic candidate。
24. 為什麼這個 heuristic 很弱
若八個 corners 全部 incorrect:
則:
這只告訴我們「至少需要兩步」。
它沒有區分:
- pieces 距離 home 多遠;
- orientation 是否容易修正;
- permutation cycle structure;
- edges 與 corners 的耦合;
- subgroup distance。
所以它的優點是:
缺點是:
因此很適合作為:
而不是最終高效 solver heuristic。
25. Heuristic Registry
新版工程建議建立:
HeuristicSpec
name
inputRepresentation
lowerBoundType
admissible
consistent
additiveGroup
tableCardinality
memoryBytes
evalCost
precomputeCost
proofStatus
source
例如:
MisplacedPiecesOver4
inputRepresentation: Cubie
admissible: proven
consistent: proven
precomputeCost: none
Phase1Pruning
inputRepresentation: Phase1Coordinates
admissible: yes under exact-distance table semantics
precomputeCost: high
這讓 heuristic 不再只是程式碼裡的一個函數名稱。
26. PDB 建構器的工程接口
Pattern Database builder 可抽象成:
PatternSpec
project : FullState -> AbstractState
abstractMoves
abstractGoal
abstractCost
canonicalize
輸出:
PatternDatabase
distance : AbstractState -> Distance
metadata
checksum
proofOrValidationReport
若 abstract graph 可完全列舉,就可以用 reverse BFS / Dijkstra 計算 exact distances。
其 correctness contract:
27. 可視化:讓使用者看到「為什麼被剪」
每個 search node 可以顯示:
若被 PDB 剪枝:
PRUNED
reason: f > threshold
g: 7
PDB-corner: 5
PDB-edge: 6
h=max(...): 6
f: 13
threshold: 12
若被 move dominance 剪枝:
PRUNED
reason: dominated move sequence
sequence: R R
canonical replacement: R2
cost: 2 -> 1
若被 duplicate pruning:
PRUNED
reason: transposition
state: #A91F...
old g: 8
best known g: 6
這使「剪枝」從黑盒最佳化變成可以被人直接理解的證據鏈。
28. Heuristic inspection view
FCSR flat net、cubie view 與 search view 可以增加 heuristic inspection mode。
例如對當前 state:
UI 可以同步標示:
- 哪些 pieces 進入 pattern;
- 哪些資訊被 projection 忽略;
- PDB index;
- table distance;
- 最終 heuristic combination。
這正好回到 FDRS 的核心:
29. FDRS 的抽象-下界命題
本篇提供一個重要的 FDRS-Cube 橋樑。
若表示轉換:
不是單純畫面 relayout,而是 cost-nonincreasing abstraction,則:
因此:
這是比「低維比較容易看」更強的計算結果。
30. Abstraction 越小不一定 heuristic 越強
若 abstraction 過度合併 states:
很多具體困難差異會被消失。
可能出現:
即使:
很大。
所以 abstraction 有典型 tradeoff:
這可以成為後續實驗的重要軸。
31. PDB 記憶體估計
若 abstract state count 為:
且最大 abstract distance 為:
若每格只儲存整數距離,理論最低 bit width 量級為:
則裸距離表大小約:
bits。
實際實作還需考慮 sentinel、alignment、compression、symmetry index、metadata 與 disk / memory layout。
因此 PDB 是典型:
32. Heuristic 的評估不只看平均值
對測試集:
可以記錄:
但在具有 optimal ground truth 的子集上,更可以觀察:
此外還應記錄:
- heuristic distribution;
- zero-rate;
- node expansions;
- prune ratio;
- evaluation latency;
- memory;
- preprocessing time。
所以 heuristic quality 是多維 profile,而不是單一數字。
33. 形式驗證目標:Heuristic Kernel
第五篇對應的 Lean / proof targets:
H1. Lower-bound pruning theorem
H2. Max admissibility
H3. Abstraction admissibility
對 cost-nonincreasing abstraction:
H4. PDB lookup correctness
H5. Cost-partition additivity
若:
則:
H6. Demo heuristic admissibility
H7. Demo heuristic consistency
對任意 unit-cost face move:
34. 本文核心命題
命題 H-A:安全剪枝來自 lower-bound proof
命題 H-B:PDB 是 exact abstract solution table
命題 H-C:max 組合安全
保持 admissibility。
命題 H-D:sum 組合需要成本分配證明
不能無條件使用。
命題 H-E:move pruning 需要 dominance / equivalence proof
不是所有「看起來沒用」的 move 都能安全刪除。
命題 H-F:原 Demo heuristic 可以正式證明
是 admissible 且 consistent 的 baseline。
命題 H-G:FDRS abstraction 可以直接產生 search lower bound
若 abstraction 不增加成本,抽象 exact distance 就是原問題的 lower bound。
35. 結論
本文完成 FDRS/FCSR 經典魔方線從「搜尋策略」到「搜尋知識」的推進。
第四篇回答:
BFS、Bidirectional、A*、IDA* 如何安排探索?
本文回答:
搜尋器憑什麼知道哪些分支可以不看?
答案是:
Pattern Database 的價值不在於巨大查表本身,而在於它把:
轉換成:
這也使 FDRS 起源中的「改變表示」第一次獲得一個直接的演算法定理:
至此,我們已經具備進入 Two-Phase 的全部前置地基:
- legal state;
- representation;
- coordinate;
- search;
- admissible heuristic;
- pruning table;
- symmetry;
- subgroup / quotient 語言。
下一篇將正式處理:
《Two-Phase 與子群分解:經典高效魔方求解的結構化路徑》。
參考資料與來源定位
起源與既有實作
- [F2026-D]
FDRS_展開收斂_同步性.html,FDRS/FCSR permutation engine、piece-count heuristic、IDA*、FSM 與同步可視化原型。
外部啟發式搜尋基線
- [R1] Richard E. Korf, Finding Optimal Solutions to Rubik's Cube Using Pattern Databases, Proceedings of AAAI-97, 1997。
- [R2] Joseph C. Culberson, Jonathan Schaeffer, Pattern Databases, Computational Intelligence, 1998。
- [R3] Richard E. Korf, Ariel Felner, Disjoint Pattern Database Heuristics, Artificial Intelligence, 2002。
- [R4] Ariel Felner, Richard E. Korf, Sarit Hanan, Additive Pattern Database Heuristics, Journal of Artificial Intelligence Research, 2004。
- [R5] Herbert Kociemba, Pruning Tables,官方技術說明。
- [R6] Herbert Kociemba, Coordinates and Symmetry,官方技術說明。
- [R7] Herbert Kociemba, The Move Tables,官方技術說明。
- [R8] Herbert Kociemba, Two-Phase Algorithm Details,官方技術說明。
版本註記
v0.1 將 heuristic 統一定義為 lower-bound certificate,將 PDB 定義為 abstract exact-distance table,並將所有 pruning rule 納入 safety contract。
本篇亦首次把原 FDRS Demo 的 piece-count heuristic 從「工程直覺」提升為可證 admissible / consistent 的正式 baseline。
後續第六篇:
《Two-Phase 與子群分解:經典高效魔方求解的結構化路徑》。