首先你有一個函數f(k),表示選k個物品時的代價。
如果f(k)是個整數,那麼附加代價可以只在整數內二分。
如果出現了附加代價爲t時選了k+1個物品,而附加代價爲t+1時選了k−1個物品,(DP時代價相同取物品數較多的方案)那麼一定有f(k)+kt=f(k+1)+(k+1)t
因爲如果是這種情況:
f(k−1)+(k−1)t≥f(k)+kt>f(k+1)+(k+1)tf(k−1)+(k−1)(t+1)<f(k)+k(t+1)≤f(k+1)+(k+1)(t+1)
而上下的三者之差只有1的區別,就會得到:
f(k−1)+(k−1)t=f(k)+kt=f(k+1)+(k+1)t+1
做差就會有:
f(k−1)−f(k)=tf(k)−f(k+1)=t+1
這個函數凹了!
於是前面提到的結論成立。
而函數的凸性怎麼證?即證f(k−1)−f(k)≥f(k)−f(k+1)
首先要求決策具有單調性,即設p(i)爲i的最優決策點中最靠右的點,則對於 j<i 要求 p(j)≤p(i)
決策的單調性可以通過代價函數的凸性得知。比如說平方函數,越大增速越快。
然後是論文裏提到的證明:
論文中提到的"僅在最後一段大小不唯一處不可導"的意思是左導數不等於右導數(p′(i,x)變化)。
我模擬了一下2 1 3 x分兩段算最小平方和的情況:
第一項爲分兩段的最小平方和,第二項爲p′(2,x),第三項爲x,在p=2時導數爲x+3,在p=3時導數爲x,可以明顯地看出這一點,在45.00000附近變化率縮小了兩倍。
因此,記Δ1=Δx→0limans(i,x+Δx)−ans(i,x),Δ2=Δx→0limans(i+1,x+Δx)−ans(i+1,x)
可以得到Δ1≥Δ2,即ans(i,x)−ans(i+1,x)隨x增大單調不降。令x→0和x→∞即可得到最終的結論。