# 章節包:人工智慧導論(AI)W2(9/17)第 06 章「Greedy 與 A* 搜尋」
影片 1:56:41–2:11:49,YouTube ID hNZQIO0q74o,逐字稿 C:\D槽\TAICA課程\人工智慧導論\第二周1150917\W2_人工智慧導論_朱威達.逐字稿.txt。Notion 章節頁 https://app.notion.com/p/3e6fc631b03081f7acf6d56761c8225c(頁 ID 3e6fc631-b030-81f7-acf6-d56761c8225c),頁面標題「06 Greedy 與 A* 搜尋(1:56–2:11)」。
## 1. 第一行(直接照抄,不要改)
[人工智慧導論](https://app.notion.com/p/3e6fc631b0308131b213f0a3d93fe91d) › [W2(9/17)](https://app.notion.com/p/3e6fc631b0308175a433e5fa4bc500df) › 06|影片 [1:56:41–2:11:49](https://www.youtube.com/watch?v=hNZQIO0q74o&t=7001s)|投影片 Ch3 p.27–35|上一章 [05 DFS 家族與雙向搜尋(1:23–1:43)](https://app.notion.com/p/3e6fc631b03081bda674f874680e4a09)|下一章 [07 局部搜尋與爬山演算法(2:11–2:35)](https://app.notion.com/p/3e6fc631b03081e896bdc677065a3376)
## 1b. 最後一行(直接照抄,放在 Self-check 後面,當全頁最後一行)
讀完了嗎?下一章:[07 局部搜尋與爬山演算法(2:11–2:35)](https://app.notion.com/p/3e6fc631b03081e896bdc677065a3376)|回到週頁:[W2(9/17)](https://app.notion.com/p/3e6fc631b0308175a433e5fa4bc500df)
## 2. 各段標題(照順序;每段一個 ## 標題,直接照抄連結)
- `## [1:56:41](https://www.youtube.com/watch?v=hNZQIO0q74o&t=7001s) Informed search 與 heuristic h(n)` 老師講什麼:除了問題定義,還多知道離目標多遠的估計,也就是 heuristic function h(n);羅馬尼亞例子用各城市到 Bucharest 的直線距離(像在空照圖上畫直線)。
- `## [1:58:47](https://www.youtube.com/watch?v=hNZQIO0q74o&t=7127s) Greedy best-first search` 老師講什麼:只用 h(n) 評估,每次走直線距離最近的鄰居,A→S→F→B 很快就找到解。
- `## [2:00:15](https://www.youtube.com/watch?v=hNZQIO0q74o&t=7215s) Greedy 找到的不是最佳解` 老師講什麼:這條路比經過 R、P 的路多 32 公里,所以不是最佳解;不過好的 heuristic 能大幅降低複雜度,不用像 BFS、DFS 慢慢找。
- `## [2:02:15](https://www.youtube.com/watch?v=hNZQIO0q74o&t=7335s) A*:f(n)=g(n)+h(n)` 老師講什麼:A* 是最有名的 best-first search,g(n) 是走到 n 已花的成本,h(n) 是從 n 到目標的估計成本,兩者相加決定先走哪條。
- `## [2:03:17](https://www.youtube.com/watch?v=hNZQIO0q74o&t=7397s) A* 走一次羅馬尼亞` 老師講什麼:從 A 出發,S=140+253=393 最小先走 S,再比較 F=415、R=413 等,最後得到 A→S→R→P→B;勝過 greedy 是因為同時考慮過去成本與未來估計。
- `## [2:05:50](https://www.youtube.com/watch?v=hNZQIO0q74o&t=7550s) A* 最佳的條件:admissible` 老師講什麼:heuristic 符合 admissibility 與 consistency 時,A* 是 complete 且 optimal(詳細證明不講);admissible 是永遠不高估到目標的成本,直線距離就是例子。
- `## [2:08:07](https://www.youtube.com/watch?v=hNZQIO0q74o&t=7687s) Consistency 就是三角不等式` 老師講什麼:h(n) 不大於「n 走到 n' 的成本加上 h(n')」,老師畫圖說明這就是三角不等式;第三章到這裡結束。
## 3. 老師強調/會考/不考的地方(原句已驗證;寫進筆記時 ASR 錯字要改正)
- (2:10:37) [不考] 「那詳細的證明我們就不講了,我們只講它的特性是怎樣」 → A* 最佳性的詳細證明不講(2:06:01 也說過),只要會 admissible、consistent 兩個條件;老師說的是「不講」,沒有明說「不考」
## 3b. 數學段候選(程式抓的,只是提示;寫「跳過提示」行用)
0 段候選(門檻 3.0 字/30 秒)
## 4. 這章摘要與重要度
Informed search 多知道「離目標多遠」的 heuristic:greedy best-first 只看 h(n),快但不保證最佳;A* 用 f(n)=g(n)+h(n),在 admissible 與 consistent 條件下是最佳的。(核心)
## 5. 整堂課的提醒(ASR 錯字、老師口誤、投影片缺公式等;只用跟這章有關的)
- 影片開頭缺幾分鐘:YouTube 標題 AI2026_0917_3。0:00:00–0:01:43 老師在設定直播畫面,0:01:46 起接著講到一半的 HW1 說明,HW1 前段不在影片裡。
- 1:02:22–1:02:52 約 30 秒逐字稿是 ASR 亂碼(重複「我用這個」「有一個」),剛好是八皇后問題的開場,寫筆記時以投影片 Ch3 p.7 為準。
- 兩次下課:0:40:28–0:53:20、1:43:47–1:56:41。下課時段的逐字稿時間戳有跳動(0:43:20→0:53:20、1:52:41→1:56:41 都剛好差整數分鐘),Ch3 與 informed search 的起點建議開影片確認。
- HW1 說明前段不在影片裡,本機投影片也沒有 HW1 說明頁(Lecture 0 只有一行 project proposal),研究動機之前講了什麼無法得知。
- 0:03:10「所以這邊會佔75%的比例」不確定指哪幾塊(introduction 加方法?),筆記建議只寫老師提到 75%,不要自行解讀。
- ASR 錯字(寫筆記時要改):0:06:52「CPPR的格式」應為 CVPR;0:06:57「體驗報告」推測是「提案報告」;0:07:02「角角的期限」應為「繳交期限」;2:28:58「無極」應為 ridge(屋脊);2:30:5x「8的84%17個million」應為 8^8 ≈ 17 million;另外多處 Asian=agent、Socastic=stochastic、Pass Cost=path cost、heel climbing=hill climbing、None=known、Amstrong Search/Active=A* search/optimal。
- 1:29:16「GPD-6 ASTRON」不確定原詞,大概是某個 GPT 的 agent 產品,筆記建議寫「現在的 AI agent」即可。
- 1:02:22–1:02:52 逐字稿亂碼約 30 秒(八皇后開場,老師好像在說買了一個小棋盤),內容以 Ch3 p.7 補。
- 時間戳疑似漂移:0:43:20「好接下來呢」→0:53:20、1:52:41「第二個部分」→1:56:41,都剛好差整數分鐘;章節起點採後者,建議開影片確認。
- 老師口誤或 ASR:1:12:54、1:17:25 把 BFS、UCS 說成「Informed Search」,投影片 p.12–17 標的是 Uninformed,筆記照投影片寫。
- 老師口頭說法跟投影片不同(筆記照投影片寫,並加「注意」):(a) 1:21:5x 說「BFS 也可以找最佳解」,課本是步驟成本都一樣時才是;(b) 2:01:2x 說 greedy「有解一定會找到」,p.30 寫的是只在有限狀態空間才 complete;(c) 2:06 說 A* 要同時符合 admissible 與 consistent 才最佳,p.33 說 consistency 是稍強的條件,只有 graph search 才需要。
- 投影片內容有、老師沒明講的地方,Exam-ready 要補原句:Ch3 p.23(IDDFS 是搜尋空間大、解的深度未知時的首選)、Ch2 p.25(utility-based 能處理 stochastic/部分可觀察環境的不確定性)、Ch4 p.6 後半(有多個最好的鄰居時隨機挑)。
- 投影片 _text 缺公式(p.14、p.19、p.20、p.25 的 O(b^d)、O(b^m)、O(bm)、O(b^(d/2)) 都是空白),寫 Exam-ready 前要看投影片圖確認。
- 下課時段講台邊的對話(1:44:44–1:52:27)分不清誰是老師、誰是學生,例如 1:45:54「就是有自己的想法這才是那個重點」不確定是誰說的;「這週要記得」只用確定是老師回答的部分。
- 0:11:10「沒有點名」推測是回答 Slido 上「有沒有點名」的問題,但沒看到原問題,不確定。
## 6. 投影片文字(這章範圍)
**這幾頁的公式或內容只在圖裡(文字檔抓不到),寫 Exam-ready 與公式前先用 Read 看這幾張圖:**
- Ch3 p.27 → C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\brief_Ch3_p027.png
- Ch3 p.28 → C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\brief_Ch3_p028.png
- Ch3 p.29 → C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\brief_Ch3_p029.png
- Ch3 p.30 → C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\brief_Ch3_p030.png
- Ch3 p.31 → C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\brief_Ch3_p031.png
- Ch3 p.32 → C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\brief_Ch3_p032.png
--- Ch3 p.27 ---
• Informed search strategy—one that uses problem-specific
knowledge hints about the location of goals—can find
solutions more efficiently than can an uninformed strategy.
• The hints come in the form of a heuristic function, denoted
h(n):
• h(n) = estimated cost of the cheapest path from the state at
node n to a goal state.
Informed (Heuristic) Search Strategies
27
--- Ch3 p.28 ---
• Greedy best-first search
• Expand the node that is closest to the goal, on the grounds that this is
likely to lead to a solution quickly. Thus, it evaluates nodes by using just
the heuristic function; that is, f(n) = h(n).
• In this example, use the straight-line distance heuristic
Informed (Heuristic) Search Strategies
28
--- Ch3 p.29 ---
• Greedy best-first search
• Greedy best-first search using
hSLD finds a solution without
ever expanding a node that is
not on the solution path;
hence, its search cost is
minimal.
• However, this solution is not
optimal
Informed (Heuristic) Search Strategies
29
--- Ch3 p.30 ---
• Greedy best-first search
• This solution is not optimal, however: the path via Sibiu and Fagaras to
Bucharest is 32 kilometers longer than the path through Rimnicu Vilcea
and Pitesti.
• Greedy best-first tree search is complete in finite state spaces, but not
in infinite ones.
• With a good heuristic function, the complexity can be reduced
substantially.
Informed (Heuristic) Search Strategies
30
--- Ch3 p.31 ---
• A* search
• The most widely known form of best-first search
• It evaluates nodes by combining g(n), the cost to reach the node, and
h(n), the cost to get from the node to the goal.
• g(n) gives the path cost from the start node to node n, and h(n) is the
estimated cost of the cheapest path from n to the goal.
• f(n) = g(n) + h(n) is the estimated cost of the cheapest solution through
n.
Informed (Heuristic) Search Strategies
31
--- Ch3 p.32 ---
• A* search: conditions for optimality – admissibility and
consistency
• The first condition we require for optimality is that h(n) be
an admissible heuristic. An admissible heuristic is one that
never overestimates the cost to reach the goal.
• Example: straight-line distance that we used in getting to
Bucharest
Informed (Heuristic) Search Strategies
32
--- Ch3 p.33 ---
• A* search: conditions for optimality – admissibility and consistency
• A second, slightly stronger condition called consistency (or sometimes
monotonicity) is required only for applications of A* to graph search.
• A heuristic h(n) is consistent if, for every node n and every successor n’
of n generated by any action a, the estimated cost of reaching the goal
from n is no greater than the step cost of getting to n’ plus the estimated
cost of reaching the goal from n’
This is a form of the general triangle inequality.
Informed (Heuristic) Search Strategies
33
--- Ch3 p.34 ---
• A* search
Informed (Heuristic) Search Strategies
34
--- Ch3 p.35 ---
• A* search
Informed (Heuristic) Search Strategies
35
## 7. 逐字稿(1:56:41 前後各多 1 分鐘,原始行)
[01:56:41] 第二個部分呢
[01:56:42] 就是所謂的informed search
[01:56:44] 或者是heuristic search
[01:56:47] 那他的定義就是說
[01:56:49] 除了原本
[01:56:51] 問題的
[01:56:52] 該給的資訊之外
[01:56:54] 他還額外多知道了
[01:56:57] 一些
[01:56:58] 離目標有多遠的資訊
[01:57:02] 那一般來講
[01:57:03] 你多知道了一些資訊
[01:57:04] 你就能夠更有效率的
[01:57:07] 解決這個問題
[01:57:09] 那這個額外多知道的資訊呢
[01:57:12] 我們稱呼它叫做
[01:57:13] heuristic function
[01:57:16] 寫成h of n
[01:57:18] 那比如說
[01:57:19] 這個h of n呢
[01:57:20] 可以是
[01:57:22] 我從某一個
[01:57:24] 某一個都市
[01:57:26] 某一個狀態
[01:57:28] 到
[01:57:29] 我的
[01:57:30] 目的地的這個狀態
[01:57:32] 的最小的pass cost
[01:57:36] 可以定義成是這個heuristic function
[01:57:39] 好
[01:57:40] 所以舉個例子啊
[01:57:41] 剛剛的這個羅馬尼亞的這個地圖啊
[01:57:44] 我除了知道這個地圖
[01:57:46] 我除了知道說
[01:57:47] 我從A走到Z的里程是多少
[01:57:51] A走到S的里程是多少之外
[01:57:54] 假設我還知道
[01:57:56] 每一個都市
[01:57:57] 到
[01:57:58] Bucharest的直線距離
[01:58:02] 假設我知道
[01:58:04] 那這個就成為我的heuristic
[01:58:07] 所以這個heuristic呢
[01:58:09] 其實就是任何的某一個都市
[01:58:11] 到B這個都市的
[01:58:14] 最小的pass cost
[01:58:16] 因為直線距離是直線距離
[01:58:18] 它不見得真的有一條路啊
[01:58:20] 它只是在地圖上的直線距離而已啊
[01:58:23] 所以舉例啊
[01:58:25] A到B的直線距離是360
[01:58:27] C到B的直線距離160
[01:58:30] D到B的直線距離242
[01:58:33] 這樣
[01:58:34] 好
[01:58:35] 這是等於說
[01:58:36] 從空中往下拍
[01:58:38] 空照圖
[01:58:39] 然後畫一條直線
[01:58:41] 這個兩個都市之間的直線距離
[01:58:43] 這樣
[01:58:44] 假設我知道這個
[01:58:46] 好
[01:58:47] 那如果是這樣子的話呢
[01:58:49] 欸
[01:58:50] 我就可以開發出另外一種
[01:58:52] info search的辦法
[01:58:54] 這個叫做greedy best first
[01:58:56] first search
[01:58:58] 好
[01:58:59] 貪婪的
[01:59:00] 貪婪的優先搜尋演算法
[01:59:04] 好
[01:59:05] 比如說我今天從A要出發嘛
[01:59:07] 那我知道說呢
[01:59:09] 欸我的分支就是S T跟Z
[01:59:13] 好
[01:59:14] 那我要往哪裡走比較好勒
[01:59:16] 欸我有這個啊
[01:59:18] S距離目標的直線距離253
[01:59:22] 對不對
[01:59:23] T329
[01:59:24] Z374
[01:59:25] R
[01:59:26] 哪一個離目標最近
[01:59:28] 直線距離最近
[01:59:29] S最近
[01:59:30] 所以我就決定
[01:59:31] 我走到S
[01:59:33] 好
[01:59:34] 依次類推我從S往下走
[01:59:35] 我可以走到A
[01:59:38] 我可以走到F
[01:59:39] 可以走到O
[01:59:40] 可以走到R
[01:59:41] 好
[01:59:42] 那哪一個直線距離離
[01:59:45] Bucharest的最近呢
[01:59:47] F最近
[01:59:49] 欸那我就走F
[01:59:50] 好
[01:59:51] 那再繼續從F
[01:59:52] F再走到B
[01:59:53] 結束
[01:59:54] 我找到解了
[01:59:55] 我從A走到S
[01:59:56] S走到F
[01:59:57] 再走到B
[01:59:58] 這樣
[01:59:59] 這個就所謂的Greedy First Search演算法
[02:00:02] 好
[02:00:03] 很棒吧
[02:00:04] 好
[02:00:05] 我就看說
[02:00:06] 我的分支裡面
[02:00:07] 哪一個離Bucharest的最近
[02:00:10] 這樣
[02:00:11] 好
[02:00:12] 這個是在有這個Huristic的情況之下
[02:00:15] 但是但是以這個例子來講
[02:00:18] 不幸的事情是
[02:00:19] 從A走到S再走到F跟走到B
[02:00:22] 它雖然是一種走法
[02:00:24] 但這個走法不是最佳解
[02:00:27] 好
[02:00:28] 所以它是在告訴你說
[02:00:30] 欸即使你有空照圖
[02:00:33] 即使你有最短的直線距離的額外資訊
[02:00:37] 你利用這樣子來找
[02:00:39] 雖然很開心
[02:00:40] 很快就找到解了
[02:00:42] 但是它的解可能不是最佳解
[02:00:45] 好
[02:00:46] 實際上呢
[02:00:47] 你如果先走到R
[02:00:50] 再走到P
[02:00:51] 再走到B的話呢
[02:00:53] 你的整體的里程數是會最低的
[02:00:57] 所以剛剛這樣子講
[02:00:59] 你真正走這條路
[02:01:01] 從A走到S走到F再走到B
[02:01:03] 你真正所需花的Cost
[02:01:05] 你還是要回歸到你地圖上面
[02:01:08] 你A走到S的里程數
[02:01:10] S走到F的里程數
[02:01:11] 跟F走到B的里程數
[02:01:13] 你怎麼加起來
[02:01:15] 其實是比
[02:01:16] 你走到R再走到P再走到B
[02:01:19] 會多32公里
[02:01:21] 好
[02:01:22] 所以
[02:01:26] 什麼意思
[02:01:27] 就是如果有解的話
[02:01:28] 他一定會找到解
[02:01:29] 但是呢
[02:01:30] 他不是optimal
[02:01:32] 他不見得保證找到最佳解
[02:01:36] 好
[02:01:37] 那一般來講啊
[02:01:39] 雖然雖不中亦不遠矣嘛
[02:01:41] 對不對
[02:01:42] 他雖然找到的不是最佳解
[02:01:43] 但是找的解也挺不錯的啦
[02:01:46] 對不對
[02:01:47] 才差32公里嘛
[02:01:49] 那一般來講
[02:01:51] 如果你的heuristic越好
[02:01:54] 你
[02:01:57] 你的這個complexity呢
[02:01:59] 就可以大幅的下降
[02:02:01] 你看嘛
[02:02:02] 你有了這個heuristic
[02:02:03] 你是不是就不用在那邊BFS DFS
[02:02:06] 在那邊弄半天對不對
[02:02:08] 你這樣子很快就找到解啦
[02:02:10] 你的complexity可以大幅的降低
[02:02:14] 好
[02:02:15] 那可是剛剛這個畢竟不是最佳解嘛
[02:02:19] 好
[02:02:20] 所以說呢
[02:02:21] 在info search或者heuristic search這邊呢
[02:02:24] 也有很著名的演算法
[02:02:26] 叫做A star search
[02:02:28] 好
[02:02:29] A star search
[02:02:30] 它是最著名的best first search
[02:02:33] 它的概念是
[02:02:35] 欸
[02:02:36] 我呢
[02:02:37] 就整合剛剛的past cost GN
[02:02:41] 跟還有剛剛的heuristic HN
[02:02:45] 我把它合在一起
[02:02:47] 來一起當作我
[02:02:50] 判斷
[02:02:52] 哪一條路應該優先走的依據
[02:02:55] 所以
[02:02:56] GN代表的是past cost
[02:02:59] HN代表的是heuristic
[02:03:01] 就是the estimated cost of the cheapest path
[02:03:04] 所以
[02:03:05] 決定走哪一條路
[02:03:08] 我是靠GN加FN的結果
[02:03:11] 的這個FN
[02:03:12] 來
[02:03:14] 幫忙決定我要走哪一條路
[02:03:17] 那我們直接先看一個例子好了
[02:03:19] 直接看例子
[02:03:20] 比如說我今天要從A出發
[02:03:22] A呢
[02:03:24] 它可以走到S T跟Z
[02:03:29] 那我現在的評估
[02:03:31] 我要走哪一條路呢
[02:03:33] 我從A走到S
[02:03:35] 我其實要花140
[02:03:38] 我的里程數是140
[02:03:40] 然後呢S
[02:03:42] 它距離Bucharest的直線長度是253
[02:03:47] 我把這兩個加起來
[02:03:48] 也就是說
[02:03:49] 我考慮的點是
[02:03:50] 我如果走到S呢
[02:03:52] 我需要花的cost
[02:03:54] 以及我從S出發
[02:03:56] 走到目的地要花的預估的cost
[02:04:00] 加起來是393
[02:04:03] 好 一直被推
[02:04:04] 我如果走到T呢
[02:04:05] 4447
[02:04:06] 我如果走到Z呢
[02:04:07] 449
[02:04:08] 哪一個最少
[02:04:10] S最少
[02:04:11] 好 那我就走去S
[02:04:13] 你從S可以再繼續往下走
[02:04:16] 好 你所需花的cost是多少呢
[02:04:20] 比如說你S走到F的話
[02:04:22] 你從S走到F
[02:04:24] 你本來就要花239
[02:04:29] 那你從F到Bucharest的直線距離是176
[02:04:34] 所以呢你如果走F的話呢
[02:04:36] 這裡要預估要花415
[02:04:41] 那走到O的話671
[02:04:43] 走到R的話413
[02:04:45] 所以在這個時候呢
[02:04:47] 我就決定走R這條路
[02:04:49] 那一直被推
[02:04:50] R這個再繼續往下走
[02:04:52] 我就挑P這條路
[02:04:54] P再繼續往下走
[02:04:55] 然後你就可以發現
[02:04:56] 就走到Bucharest
[02:04:59] 所以呢它這樣子找出來的路徑呢
[02:05:02] 在這裡
[02:05:03] 走到P
[02:05:04] P再往下走
[02:05:05] 走到這裡
[02:05:06] 所以它找出來的最佳路徑就是
[02:05:08] A走到S
[02:05:10] 走到R
[02:05:11] 走到P
[02:05:12] 再走到B
[02:05:13] 那它之所以比剛剛的
[02:05:17] 這個Greedy Best First Search
[02:05:22] 優越的地方就在於說
[02:05:26] 就是考慮了我過去的歷史
[02:05:31] 我的Past Cost
[02:05:33] 以及我預估未來我要走的Cost有多少
[02:05:38] 兩個一起合併考量
[02:05:40] 那這樣子就可以找到最好的那條路徑
[02:05:44] Cost最低的那條路徑
[02:05:47] 這就是A Star Search
[02:05:50] 你會有點懷疑說
[02:05:52] 欸真的嗎
[02:05:54] 這樣子保證一定可以
[02:05:56] 找到最佳解嗎
[02:05:59] 事實上這是可以證明的
[02:06:01] 當然我們不會講仔細的證明啦
[02:06:05] 理論上我們可以證明
[02:06:06] 這樣子的A Star Search呢
[02:06:09] 是Optimal
[02:06:10] 它可以找到Complete and Optimal
[02:06:13] 只要
[02:06:16] 只要什麼呢
[02:06:18] 只要你的Heuristic Function
[02:06:20] 符合兩個特性
[02:06:23] 一個叫做Admissibility
[02:06:27] 一個叫做
[02:06:28] Consistency
[02:06:30] 你的Heuristic
[02:06:32] 如果你可以證明你的Heuristic Function
[02:06:34] 符合Admissible
[02:06:36] 跟Consistent
[02:06:38] 你就一定能夠說
[02:06:40] A Star Search
[02:06:42] 是Optimal
[02:06:44] OK
[02:06:45] 詳細的證明我們不是
[02:06:46] 不講
[02:06:47] 因為那個很長
[02:06:49] 那但是呢我們講一下什麼叫Admissible
[02:06:52] Admissible是說
[02:06:55] 如果這個Heuristic是Admissible
[02:06:58] 就代表它呢
[02:07:00] Never overestimate the cost to reach the goal
[02:07:04] 你這個Heuristic呢
[02:07:06] 永遠不會過度估計了某一個State
[02:07:13] 走到目標那個State所需花的Cost
[02:07:17] 這樣
[02:07:18] 所以我們剛剛講的這個
[02:07:20] 羅馬尼亞地圖這一個
[02:07:22] 你從Z這個都市
[02:07:24] 到B這個都市
[02:07:26] 的最有可能的最短路徑
[02:07:29] 就像照圖
[02:07:30] 直接畫一條線的直線距離
[02:07:32] 它一定會比你走實際的道路
[02:07:35] 的Cost來的低
[02:07:37] 對不對
[02:07:38] 因為實際是實體世界上
[02:07:41] 沒有一條路剛好是直通
[02:07:44] 從Z直通到B的嘛
[02:07:46] 那我利用Z直通到B這個都市的
[02:07:50] 直線距離
[02:07:52] 來當成是我的Heuristic的事
[02:07:55] 所以它Never overestimate
[02:07:57] 永遠不會過度估計
[02:07:59] 所以呢
[02:08:01] 這樣子的Heuristic
[02:08:02] 我們就說它符合它的Misable
[02:08:05] 這個特性
[02:08:07] 另外一個它同時也要符合
[02:08:10] Consistency的特性
[02:08:12] Consistency的特性是什麼呢
[02:08:15] 就是說我們如何可以說
[02:08:17] 一個Heuristic是Consistent呢
[02:08:20] 那就是
[02:08:22] For every node n
[02:08:24] and every successor n'
[02:08:27] of n
[02:08:29] 就是n的往下分支
[02:08:32] Generated by any action
[02:08:35] 不管是做哪一個動作
[02:08:36] 反正就是所謂的分支的意思吧
[02:08:38] The estimated cost of reaching the goal from n
[02:08:43] is no longer than the step cost
[02:08:47] from n to n'
[02:08:50] plus the estimated cost
[02:08:52] reaching the goal from n'
[02:08:54] 好像在繞口令
[02:08:55] 其實很簡單
[02:08:57] 就是說
[02:08:58] 就是說我從n裡的這個Heuristic
[02:09:05] 我預估的這個Cost
[02:09:07] 一定會小於等於
[02:09:09] 我從n走到n'
[02:09:11] 我說花的花費
[02:09:14] 再加上
[02:09:15] 我從n'的這個Estimation Cost
[02:09:20] 還是很奇怪
[02:09:25] 但事實上這件事情就是三角不等式
[02:09:28] 這個就是三角不等式
[02:09:30] 對不對
[02:09:31] 我們畫一下
[02:09:33] 這個畫很怪異嗎
[02:09:34] 這很簡單啊
[02:09:36] N在這裡
[02:09:39] 然後呢
[02:09:40] 它的分支N'在這裡
[02:09:43] 這個很難用
[02:09:44] 因為我用滑鼠
[02:09:46] 目的地是G
[02:09:48] 在這裡
[02:09:49] 對不對
[02:09:51] HN是什麼意思
[02:09:53] HN就是
[02:09:55] 這個的直線距離
[02:09:56] 這叫HN
[02:09:58] HN一定小於等於什麼
[02:10:02] 這個是什麼
[02:10:03] 這個就是從n走到N'
[02:10:06] 這個是什麼
[02:10:07] 這個就是從N'走到G
[02:10:09] 所以說你看
[02:10:10] 它是不是在講
[02:10:11] 這一條距離一定小於等於這個
[02:10:15] 加上這個
[02:10:17] 這不就是三角不等式嗎
[02:10:20] 數學裡面的三角不等式嗎
[02:10:22] 所以只要你的Heuristic Function
[02:10:24] 符合三角不等式
[02:10:26] 也符合Admissible
[02:10:28] 過去的學者就已經證明瞭
[02:10:33] 這個Amstrong Search的演算法是Active
[02:10:37] 那詳細的證明我們就不講了
[02:10:43] 我們只講它的特性是怎樣
[02:10:47] 好
[02:10:48] 那這個就是Informed Search的部分
[02:10:51] 我們第三章講完了
[02:10:53] 都不針對課程內容問題
[02:11:11] 大家都在注意那些
[02:11:14] 沒有問題我們要繼續往下走
[02:11:26] 再來
[02:11:29] 好
[02:11:49] 剛剛在第三章呢
[02:11:50] 我們知道
[02:11:52] 有一些問題我們可以把它
[02:11:55] 描寫在一顆Tree上面
[02:11:58] 對不對
[02:11:59] 那我們就可以在Tree上面運作
[02:12:01] 來找到我們的解答
[02:12:04] 好
[02:12:05] 那接下來到了第四章呢
[02:12:06] 我們要來講一個更複雜一點的
[02:12:09] 就是如果我今天我的問題
[02:12:12] 無法表達在Tree上面的話怎麼辦
[02:12:19] 所以他說呢
[02:12:20] 這個講到這邊為止呢
[02:12:22] 前面都是說
[02:12:23] 我可以這個表達在Tree上面啊
[02:12:27] 那我在Tree上面走來走去走走走
[02:12:30] 我去做不同的Action走
[02:12:32] 我就找到我的目的地
[02:12:33] 我就找到我的答案了
[02:12:34] 好
[02:12:35] 那但是在很多的問題裡面啊
[02:12:38] 呃
[02:12:39] 我抵達目的地
[02:12:42] 或者是抵達我達到我要的目標
[02:12:45] 這件事情呢
[02:12:46] 跟你怎麼走
[02:12:47] 可能是沒有什麼關係的
## 8. 寫作規則
(這是 `_筆記SOP.md` 第 3.1、4、5、6 節的濃縮版。兩者衝突時以 SOP 為準。)
讀者:碩士生,兩門課期末是英文考試。要只看筆記就能學會,講得比老師好懂。畫面要簡潔。
**最高原則:Notion 是主教材,不是輔助(2026-10-04 主理人)**。主理人看不懂老師的英文簡報、數學和底層內容,**不看影片、不看投影片,只讀這一章也要學得會**。寫完用這三題自我檢查,任一題答「否」就補:
1. **數學段**:每個收起來的數學段,預設看得到的地方有沒有一句白話說明「這段公式想解決什麼問題、算出來代表什麼」?(例:「這段推導的目的是找出走哪個方向分數上升最快,結果就是梯度。」)只寫「可跳過」不算。
2. **英文圖**:每張投影片圖,下面有沒有把圖上的英文重點翻成中文(2–5 點)並說明這張圖在講什麼?
3. **底層知識**:這章用到、但老師沒解釋的東西(數學名詞、程式名詞、前幾週的概念),有沒有用白話補上(一兩句或「要先懂什麼?」摺疊)?前幾週學過的概念,附一句提醒+連結。
**概念優先(2026-09-26 主理人)**:主理人只想懂概念,不想補數學、不想看程式碼和座標圖。兩門課的考試也都是問答題、不考算式(AI W1 1:16:52;NLP W3 1:47:41、2:48:36)。所以:
- 每段預設看得到的只有:白話摘要(2–4 句)+**一句生活比喻**(例:模擬退火像投資理財,年輕時敢冒險、越老越保守)+「考試可能怎麼問」一句。
- 數學推導、公式、手算、程式碼、座標圖,全部收進標題寫「(進階,可跳過)」的摺疊,例如「它到底怎麼運作?(進階,可跳過)」。每段最多一個進階摺疊,不要寫長篇計算。
- 演算法要能「用文字說出步驟」(考試可能要你描述),這一點放在預設看得到的地方,不用數字。
- **重心比例**:白話理論與概念模式(它在解決什麼問題、核心想法、跟別的方法差在哪、優缺點、生活比喻)占主要篇幅;數學與程式細節只用一兩句帶過,細節收進進階摺疊。
**圖文並茂(2026-09-26 主理人:不要只有文字)**:
- 每章至少 2–3 個圖,放在**預設看得到**的地方,每個圖前後各用一兩句白話說明「這張圖在看什麼」。
- 流程、步驟、因果、比較 → 用 mermaid 流程圖(```mermaid,flowchart LR 或 TD;節點文字用中文、加雙引號;一張圖不超過 10 個節點)。
- 投影片上的示意圖、架構圖 → 用 [[IMG: …]] 放投影片圖。
- 仍守「每個 ## 段落最多一種視覺元素」。
### 輸出兩個檔
1. `chNN.md`(Notion 寫法,不含頁面標題),結構固定:
- 第一行:章節包第 1 節那行,原樣照抄。
- 第二行起(有數學段才寫):**跳過提示**,每段一行,讓主理人看影片時知道從哪跳到哪。用章節包第 3b 節的候選當提示,對照第 7 節逐字稿確認(只標老師連續講公式、推導、矩陣、微積分、機率計算、程式細節超過約 1 分鐘的段落;概念講解和比喻不算):
`跳過提示:(1:31:02–1:35:40) 老師在推導梯度公式,聽不懂可以直接跳到 [1:35:40](YouTube 連結),接著講「步長 α 怎麼選」。`
- `## 重點`:三點中文,每點一到兩句。
- `## Exam-ready`:3–10 行英文,**從章節包的投影片文字逐字抄**,每行 `- **Term**: "原句"(Ch3 p.14)`。老師有明確證據才在行尾加 `【老師強調】(h:mm:ss)`。
**每一行下面一定要有一行縮排的中文解釋**(主理人英文不好,看不懂的英文等於沒用):
```
- **Hill climbing**: "It keeps track of one current state and on each iteration moves to the neighboring state with highest value."(Ch4 p.5)
- 中文:爬山法只記住「現在這一個狀態」,每一輪都移到分數最高的鄰居。白話:一直往比較高的地方走一步。
```
中文要先把句子意思講清楚,再補一句白話;最後用「英文(中文)」列出這句裡 1–3 個難字,例:sparse(稀疏)、distinct terms(不重複的字)。
**一行只放一句投影片原句**。同一頁有多句要考就拆成多行,每行各接一行中文;不要用分號串三句以上,不要把計算量 O(...) 塞進去。
- 章節包第 2 節的每一段:`## [h:mm:ss](連結) 標題`(照抄),下面 2–4 句白話摘要,其餘全部收進摺疊:
```
問句(例:用生活例子講,BFS 在做什麼?)
內容
```
摺疊種類(需要才放):用生活例子講?/它到底怎麼運作?/要先懂什麼?(老師假設你會的數學或概念,短版教學)/老師原話是什麼?(「原話」(h:mm:ss),只放重要的,最多 5 句)。
- 「它到底怎麼運作?」要用一組小數字把這段的演算法**真的跑 1–3 步**(例:算出梯度、更新一次、比較兩個 α),不是只示範定義的加減乘除。全章盡量沿用同一組數字,讓前一段的答案能在下一段被驗證。
- 每段正文要回答讀者最可能卡住的一個「為什麼」。投影片公式方向跟題目相反、或投影片說「解不出來」時,用一兩句講出原因,自己補的標(我補充)。
- 投影片句子停在公式前(公式在圖裡)時:Exam-ready 在粗體詞條上補公式、引號內保持原句;正文寫出同一條式子。公式圖看章節包第 6 節列出的 PNG。
- `## Self-check`:2–4 題英文考題,答案收摺疊。**至少一題考老師強調的內容**;只出 explain/why/compare 這類問答題,**不出要代數字計算的題目**(考試不考算式);不出「老師和投影片哪裡不同」這類不會考的題目。每題格式:
```
Q1. English question?(中文:中文題目)
**Answer**: English answer.
中文:把答案完整講一遍(不是只翻一句),讓看不懂英文的人也知道要怎麼答。
```
- **最後一行**:章節包第 1b 節那行(下一章連結),原樣照抄。讓讀完的人直接點下一章。
- 不要把章節包或這份規則裡的指示句寫進筆記(例如「寫筆記時照投影片寫」「已改正 ASR 錯字」)。
- 長度:全文不超過 16,000 字元(跟 check_note.py 同一個數字)。**不要為了壓字數反覆刪改**(實測一章最多花 12 輪在刪字);超過時只刪進階摺疊裡的第二組算例,比喻、比較表、圖說、「老師說不用背」的提醒都不刪。
- 預設看得到的正文不放計算量 O(...)、代號對照(例如 SMART 字母)、課本出處考據,一律移進進階摺疊。
2. `chNN.concepts.json`:JSON 陣列,4–12 個考試可能問的術語,每個物件:
`name`(英文)、`zh`、`type`(概念/演算法/公式/人物事件/前置知識/行政)、`signal`("老師說會考"/"老師強調"/"核心(我判斷)"/"")、`evidence`(有 signal 前兩種時必填:原句+時間)、`definition_en`(投影片原句;沒有就註明 (textbook)/(lecture)/(my wording))、`plain`(一句中文)、`a4`(≤150 字元英文,可夾極短中文;期末拼貼用的小方塊)、`time`、`slides`、`prereq`(英文名陣列)。
### 風格鐵律
- 不用 emoji 或裝飾符號(✓✗★⚠ 都不要;→ 可以)。不用 callout。不用 `$`。時間不要用 code 樣式。
- 每個 `##` 段落最多一種視覺元素:一張圖、或一個表格、或一個 mermaid。
- 摺疊標題是問句,前面不加符號。
- 圖片最多 3 張,只放文字取代不了的圖。放法:單獨一行 `[[IMG: | 中文圖說]]`,PNG 用 `slides_to_png.py <圖片資料夾> <頁> --dpi=110` 產生。
- 考試訊號只在老師明確說時標。老師只說「不用背」「不講」就寫「注意:……」。
- 老師口誤或跟投影片不同:照投影片寫,加「注意:老師口頭說的是……」。
- 引用老師的話時,ASR 錯字改成正確的字。
### 沒有投影片時
不要憑記憶逐字重現課本段落或數值表。英文定義用自己的話寫、句尾標 (my wording);Exam-ready 每行標「(自擬,投影片待補)」。例子只用老師講的。
### 寫完之後(只做一次)
跑檢查:
`C:\Users\user\.cache\meeting-record\venv\Scripts\python.exe C:\Users\user\.claude\scripts\check_note.py --transcript <逐字稿> --slides <投影片 txt …> --start <起> --end <訖> --vid <影片 ID>`
- STYLE/VISUAL/TIME/FORMAT:全部改掉。
- QUOTE:確認是不是你改正了 ASR 錯字(是就保留),不是就改成原文或拿掉引號。
- ENGLISH:確認是不是投影片斷行造成的(是就保留),不是就改成投影片原句。
**省額度守則**:章節包裡已經有你需要的全部資料。不要再去讀整份逐字稿、整份投影片、segments.json 或手冊。一次寫好整個檔(Write 一次),檢查後集中修改。