• 沒有找到結果。

課堂補充 by TreapKing Enumeration

N/A
N/A
Protected

Academic year: 2022

Share "課堂補充 by TreapKing Enumeration"

Copied!
38
0
0

全文

(1)

Enumeration

課堂補充 by TreapKing

(2)

Q&A Q&A

• 影片都看過了嗎?

• 對於影片的內容有沒有什麼問題?

• 如果是三分搜不懂的話,等等我會再解釋。

(3)

題目在說什麼 題目在說什麼

• 給你一堆二次函數,要請你找出最小值。

• 影片中提到的「超車」到底是什麼意思?

• 函數的圖形長什麼樣子?

(4)

題目在說什麼 題目在說什麼

(5)

影片的片段 影片的片段

(6)

影片的片段 影片的片段

• Case1: S(a)<S(b)<S(c)<S(d)

(7)

影片的片段 影片的片段

• Case2: S(a)>S(b)<S(c)<S(d)

(8)

影片的片段 影片的片段

• Case3: S(a)>S(b)>S(c)<S(d)

(9)

影片的片段 影片的片段

• Case4: S(a)>S(b)>S(c)>S(d)

(10)

影片的片段 影片的片段

• 試著遮掉一些東西看看。

• 只要比較中間兩項的大小就好!

(11)

圖解三分搜 圖解三分搜

(12)

圖解三分搜 圖解三分搜

(13)

圖解三分搜 圖解三分搜

(14)

圖解三分搜 圖解三分搜

(15)

水平線水平線

• 有些題目的單調性會是非嚴格遞增,二分搜的時候這並不成問題

,因為二分搜時會是越右 ( 左 ) 邊越好之類的,所以你會知道要 往哪一邊砍。

• 那麼三分搜呢?如果函數圖形有水平線也可以三分搜?

• 答案是不太行。

• 廢話要是可以的話我幹嘛特別提出來。

• 那為什麼不行呢?不太行又是怎麼一回事?

(16)

水平線 - 圖解 水平線 - 圖解

(17)

水平線 - 圖解 水平線 - 圖解

(18)

水平線 - 圖解 水平線 - 圖解

(19)

水平線 - 結論 水平線 - 結論

• 三分搜在有水平線的情況下,如果可以確定水平線的地方一定是 答案的話,才可以用三分搜找極值。

• 否則的話,三分搜有可能會壞掉。

(20)

踏實感踏實感

• 所以說,哪些函數可以用三分搜找極值?

• 有沒有數學一點的寫法?

• for any (a, b), a<=b, if f(a)≤f(b), arg min f(x)≤b

• 要怎麼用數學表示那種先遞減再遞增的函數?

• 存在 (a, b) 使得 a≤b

• f(x)=f(a) for all x in [a, b]

• f on (-∞, a] 遞減 , g on [b, ∞) 遞增

• ( 嚴格 ) 遞增:對於任意 (a, b), 如果 a<b ,則 f(a)<f(b)

(21)

影片最後的想一想 影片最後的想一想

(22)

影片最後的想一想 影片最後的想一想

• Lotto 中,當 M=k 時, DFS 與 BFS 的空間差距會多大?

• 其實影片裡面有答案

• By 二項式定理, ΣMi=0CMi=2M

• M=10 時, 2M=1024

• M=20 時, 2M=1048576

(23)

影片最後的想一想 影片最後的想一想

• 數獨問題如果跑完所有可能的話,複雜度會是多少?

• 每個位子都可以填 1~9 ,有 81 個格子。

• 這樣有 981≈1.966*1077 種可能。

(24)

影片最後的想一想 影片最後的想一想

• 假如在暴搜的時候搜索的 k 層,通常大部分時間會花在哪一層?

• 基本上都會是在第 k 層。

• 暴搜的狀態樹的節點數通常隨著深度都是指數成長。

• 如果每層都長三倍的話,最後一層的節點數就跟前面所有其他層 加起來的兩倍差不多了。

(25)

影片最後的想一想 影片最後的想一想

• 如果有個估價函數,花時間計算估價函數可以減少狀態樹的節點 數,應不應該用呢?

• 這不好說。

• 看題目而定,通常需要試過了才知道會不會變快。

(26)

凸函數凸函數

• 數學上有一個很類似的定義叫做凸函數 (convex function)

• 上下顛倒後就叫凹函數 (concave function)

(27)

凸函數凸函數

• convex set:

• 凸函數一定可以三分搜,可以三分搜不一定是凸函數

(28)

凸函數凸函數

• 直線應該是凸函數還是凹函數?

• 都是,直線是凸函數也是凹函數

(29)

凸函數的一些性質 凸函數的一些性質

• 若 f(x), g(x) 皆為凸函數,則以下的函數皆為凸函數:

1. f’(x) = af(x)+b 2. f’(x) = f(ax+b) 3. f’(x) = f(x)+g(x)

4. f’(x) = max(f(x), g(x))

• 凸函數的區域極小值 (local minima) 即為全域最小值 (global m inima)

• f(x) 為凸函數  -f(x) 為凹函數

• 凹函數同理,只差在 max 變成 min

(30)

2014 TOI 1! 模考題 2014 TOI 1! 模考題

• 給你一張無向圖,圖上的每個邊有兩個權重 a, b ,你要決定一 個神秘數字 k ,讓圖上的每個邊的花費變成 ak+b 。

• 問你用哪一個 k 可以讓這張圖的最小生成樹權重和最大?

• n, m <= 100,000

• a, b <= 1,000,000,000

(31)

最小生成樹?

最小生成樹?

• 生成樹:從原圖中挑一些邊把所有點連起來,而且要是一棵樹

• 最小生成樹:所有生成樹中權重和最小的。

• 請情感上相信我有一個

O(ElogE) 的方法可以找到 最小生成樹

(32)

思考思考

• 設 T={t1, t2…} 為所有生成樹組成的集合

• cost(t, k) 為 t 在神秘數字為 k 時的權重和 ( t 為生成樹)

• 題目的要求為找出

• 對於每一顆生成樹 t , cost(t, k) 對於 k 成線性關係

• 所以 f(k) 在某個位子上為所有 cost(t, k) 的最小值

• f(k) 的函數圖形為許多直線的最小值

• 直線為凹函數 f(k) 為凹函數

• 凹函數  可以三分搜找最大值!

(33)

解法解法

• 對於 k 做三分搜。

(34)

最佳化最佳化

• 數學上的「最佳化」指的是找到函數的最低點的過程

• 有許多問題都可以轉成最佳化問題來得到解

• ( 雖然可以轉成最佳化跟解得出來是兩回事 )

• 機器學習的模型訓練過程其實就是最佳化

• 多數是找出一個近似解

• 但可能可以證明可以花 O(1/ε) 的時間讓誤差小於 O(ε) 之類的

• 接下來介紹幾個簡單的 ( 不一定有用的 ) 最佳化算法

(35)

模擬退火模擬退火

• 名字好像是因為要模擬金屬降溫的時候分子的移動模式之類的

• 理念簡單明瞭:靠賽 (?

• 每一次隨機看一個附近的點

• 如果那裡的函數值比較低就跳過去

• 否則就再換一個點

• 步長可以考慮每次乘 0.9 ,讓他慢慢停到最低點

(36)

這東西應該有名字但我忘記了 這東西應該有名字但我忘記了

• 在座標平面上給你 N 個點

• 要你找到一個點 ( 不用是 N 個點的其中一個 ) ,

• 使得這個點到那 N 個點的距離盡量小

(37)

模擬退火動起來 模擬退火動起來

• 對,這題用模擬退火真的 ( 可能 ) 解得出來

• 可能需要花些時間調步長 & 收斂速度

(38)

梯度下降梯度下降

• 如果我數學比較好,知道往哪邊走會降最快怎麼辦?

• 我可以每次算個切線斜率,然後往斜率的方向走!

• 高維度情況下,也可以算出類似的東西

• 很多主流的機器學習模型是用這種方法

參考文獻

相關文件

Weierstrass 是用級數來研究與刻劃複變函數的性質, 在第一講與第二講中我們已提到全 純函數的冪 級數展開, 以及 Weierstrass M -

生成函數 (generating function) 是藉由冪級數中的係數來呈現數列, 是研究數列性質非 常有用的工具。 他能用於解很多不同類型的計數 (組合)

– 在宣告函式的參數名稱前加上&amp;表示該參數是 reference.

本文前兩部分引入階梯函數、 脈衝函數與廣義函數, 利用運算數學的思路來求得函數的傅 立葉轉換。 第三與第四部分則利用在轉換域的關係式, 進而避開直接由定義去做的繁複計算來 求解。 尤其是求

(Lebesgue Criterion): Dirichlet 函數 D(x) 不是 Riemann 可積。 Dirichlet 函數也精準 地說明 Riemann 積分的本質, 按照 Riemann 的定義 :

於是我們若想要在已知函數值的某一點,了解附近大概的函

二次導數 f‘’ 對函數 f

對任意連續函數,每個小區間上的取樣點 x 都選擇在函數最 大值與最小值發生的點。如下圖,淺色方塊的高度都挑選小

從幾何圖形上來看,所有指數函數,在 (0,1) 的切線斜率恰 好為一的函數也只有惟一一個,因此

如果函數是由基本函數所組成,至少需要注意:分式函 數分母會等於 0

從幾何上看,一個在區間上的每一點都連續的函數,其函數 圖形沒有分斷。直觀上,這樣的連續圖形我們可以一筆劃完

相對應的,由於這些函數可以跟雙曲線上的點做對應,所以 稱為雙曲函數,其中主要的奇組合稱為 hyperbolic sine 雙曲 正弦函數,偶組合稱為

對於給定的一個 x 值,經過某一對應方式後得到「唯一」的 y 值,這種對應方式我們稱 為函數,其中 x 是自變數,y 是應變數。. 而在表

前一章我們學過了一次函數,本章將繼續延伸到二次函數。二次函數的函數圖形為拋

前一章我們學過了一次函數,本章將繼續延伸到二次函數。二次函數的函數圖形為拋

學生已在 2000 年版小學數學課程學習單位 4N4「倍數和因數」中認識因

There would be no special value in &#34;creative leaps,&#34; no fundamental gap between solving a problem and recognizing the solution once it's found. Everyone who could

• 當我們在歸類一個問題為 問題時,等於不在乎他的複雜度是 還是 之類的,只要是多項式時間就好。.

•  三分搜在有水平線的情況下,如果可以確定水平線的地方一定是 答案的話,才可以用三分搜找極值。..

課堂補充 by

課堂補充 by TreapKing modified

課堂補充 by qazwsxedcrfvtg14 補充 by boook... Rolling hash

由於傳統線性函數型態之邊際價值固定且等於其估計係數,因此本研究分別