# 第 814 題：有向無環圖的拓撲排序

[返回所在分頁 5](https://ocme.evemisslab.com/zh-Hant/questions/page/5/)

[← 逐題詳解目錄](https://ocme.evemisslab.com/zh-Hant/questions/) · [原題批次](https://ocme.evemisslab.com/zh-Hant/practice/batch-20261015-advance-20261116-r06-topological-ordering-dag-foundations/#q-20261015-advance-20261116-r06-topological-ordering-dag-0064)

本頁是已完成第二對話 AI 數理與中英語義覆核的教學詳解，只支持本題明示的模型與前提。沒有人工審查或新 Lean 證明，也不提升原題或 MKO 的 Canonical 真值狀態。

P1000-0814 · q-20261015-advance-20261116-r06-topological-ordering-dag-0064



## 原題與已知條件

finite digraph、完整vertex permutation與all-edge order責任。操作=toposort-kahn-trace；資料={"vertices":["v0","v1","v2","v3","v4","v5"],"edges":[["v0","v2"],["v0","v3"],["v0","v4"]]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。


- G001 — finite digraph、完整vertex permutation與all-edge order責任。操作=toposort-kahn-trace；資料={"vertices":["v0","v1","v2","v3","v4","v5"],"edges":[["v0","v2"],["v0","v3"],["v0","v4"]]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。





## 定義與適用範圍

每輪以剩餘邊重算入度，取字典序第一個零入度點並刪除其出邊。


- [mko-topological-ordering-dag](https://ocme.evemisslab.com/zh-Hant/mko/mko-topological-ordering-dag/)





## 逐步推導

S001 · implies操作前

V=[v0, v1, v2, v3, v4, v5]

操作後

all directed edges=[[v0, v2], [v0, v3], [v0, v4]]

條件：無

這是完整指定的有限有向圖，不是圖論術語的完全圖。

步驟識別與依賴規則：full_directed_graph · 依賴：G001





S002 · implies操作前

remaining=[v0, v1, v2, v3, v4, v5]; active edges=[[v0, v2], [v0, v3], [v0, v4]]

操作後

indegrees=[[v0, 0], [v1, 0], [v2, 1], [v3, 1], [v4, 1], [v5, 0]]; sources=[v0, v1, v5]

條件：無

每次都以尚未移除的邊重新計算入度，不以原始入度硬套全部步驟。

步驟識別與依賴規則：remaining_indegree · 依賴：G001, S001





S003 · implies操作前

zero-indegree choices=[v0, v1, v5]

操作後

choose=v0; new prefix=[v0]

條件：無

按已宣告的字典序挑第一個零入度點，並移除它發出的邊。

步驟識別與依賴規則：lexicographic_kahn_choice · 依賴：G001, S002





S004 · implies操作前

remaining=[v1, v2, v3, v4, v5]; active edges=[]

操作後

indegrees=[[v1, 0], [v2, 0], [v3, 0], [v4, 0], [v5, 0]]; sources=[v1, v2, v3, v4, v5]

條件：無

每次都以尚未移除的邊重新計算入度，不以原始入度硬套全部步驟。

步驟識別與依賴規則：remaining_indegree · 依賴：G001, S003





S005 · implies操作前

zero-indegree choices=[v1, v2, v3, v4, v5]

操作後

choose=v1; new prefix=[v0, v1]

條件：無

按已宣告的字典序挑第一個零入度點，並移除它發出的邊。

步驟識別與依賴規則：lexicographic_kahn_choice · 依賴：G001, S004





S006 · implies操作前

remaining=[v2, v3, v4, v5]; active edges=[]

操作後

indegrees=[[v2, 0], [v3, 0], [v4, 0], [v5, 0]]; sources=[v2, v3, v4, v5]

條件：無

每次都以尚未移除的邊重新計算入度，不以原始入度硬套全部步驟。

步驟識別與依賴規則：remaining_indegree · 依賴：G001, S005





S007 · implies操作前

zero-indegree choices=[v2, v3, v4, v5]

操作後

choose=v2; new prefix=[v0, v1, v2]

條件：無

按已宣告的字典序挑第一個零入度點，並移除它發出的邊。

步驟識別與依賴規則：lexicographic_kahn_choice · 依賴：G001, S006





S008 · implies操作前

remaining=[v3, v4, v5]; active edges=[]

操作後

indegrees=[[v3, 0], [v4, 0], [v5, 0]]; sources=[v3, v4, v5]

條件：無

每次都以尚未移除的邊重新計算入度，不以原始入度硬套全部步驟。

步驟識別與依賴規則：remaining_indegree · 依賴：G001, S007





S009 · implies操作前

zero-indegree choices=[v3, v4, v5]

操作後

choose=v3; new prefix=[v0, v1, v2, v3]

條件：無

按已宣告的字典序挑第一個零入度點，並移除它發出的邊。

步驟識別與依賴規則：lexicographic_kahn_choice · 依賴：G001, S008





S010 · implies操作前

remaining=[v4, v5]; active edges=[]

操作後

indegrees=[[v4, 0], [v5, 0]]; sources=[v4, v5]

條件：無

每次都以尚未移除的邊重新計算入度，不以原始入度硬套全部步驟。

步驟識別與依賴規則：remaining_indegree · 依賴：G001, S009





S011 · implies操作前

zero-indegree choices=[v4, v5]

操作後

choose=v4; new prefix=[v0, v1, v2, v3, v4]

條件：無

按已宣告的字典序挑第一個零入度點，並移除它發出的邊。

步驟識別與依賴規則：lexicographic_kahn_choice · 依賴：G001, S010





S012 · implies操作前

remaining=[v5]; active edges=[]

操作後

indegrees=[[v5, 0]]; sources=[v5]

條件：無

每次都以尚未移除的邊重新計算入度，不以原始入度硬套全部步驟。

步驟識別與依賴規則：remaining_indegree · 依賴：G001, S011





S013 · implies操作前

zero-indegree choices=[v5]

操作後

choose=v5; new prefix=[v0, v1, v2, v3, v4, v5]

條件：無

按已宣告的字典序挑第一個零入度點，並移除它發出的邊。

步驟識別與依賴規則：lexicographic_kahn_choice · 依賴：G001, S012





S014 · implies操作前

output=[v0, v1, v2, v3, v4, v5]; remaining=[]

操作後

blocked=否; complete valid order=是

條件：無

完成後仍逐邊檢查最終排列；停住與成功用不同旗標保留。

步驟識別與依賴規則：kahn_final_audit · 依賴：G001, S013









## 逐步反向核對


- S014 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S013 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S012 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S011 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S010 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S009 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S008 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S007 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S006 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S005 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S004 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S003 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S002 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。
- S001 · premise_and_result_audit — 核對完整頂點與邊；一個失敗次序不等於有環，全部合法分支不能漏列。





## 結論

([[[v0, v1, v2, v3, v4, v5], [v0, v1, v5], v0], [[v1, v2, v3, v4, v5], [v1, v2, v3, v4, v5], v1], [[v2, v3, v4, v5], [v2, v3, v4, v5], v2], [[v3, v4, v5], [v3, v4, v5], v3], [[v4, v5], [v4, v5], v4], [[v5], [v5], v5]], [v0, v1, v2, v3, v4, v5], 否, 是, each_step_removes_lexicographically_first_zero_indegree_source)

上述完整代值與條件核對得到原題答案；欄位次序及真假標記保持原始合約。





## 本題覆核與來源綁定

覆核日期：2026-10-26

原題、答案、步驟表達式、數值 AST 與既有歷史保持原樣；原來的候選狀態屬於來源歷史，不覆寫為形式化證明。

來源雜湊與覆核憑證
- input commit: 0f7be61e2c22317a4075561dc822c87d881a50db
- original question SHA-256: 04c5afb46bc38fa5077709fbc40950b3179f1412f85cef84af0996030bf443d1
- candidate record SHA-256: 365fc2967b02d4f37a94a5ad3047f712b51767dca96e00f14b1b74c8b6e4a13f
- semantic review receipt SHA-256: 6c2c6d46aded7582a11ac41a8c0b3bdde2669a53bdb6e796eea2039994a02772
- question-first witness SHA-256: 77e43898df9efdbf8094ad81fe4ab91cf4b4bd82f481eb9b4699b73cb4da612b
- Lean: NOT_RUN · human review: NOT_PERFORMED

[同源完整 JSON](https://ocme.evemisslab.com/data/question-derivations/questions/q-20261015-advance-20261116-r06-topological-ordering-dag-0064.json)




