# 章節包:人工智慧導論(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 一次),檢查後集中修改。