NFL定理——没有免费的午餐No Free Lunch Theorem

算法宝典西瓜书里绪论里提到了NFL定理,即“没有免费的午餐”,虽然道理很简单,但是证明却稍显简陋。我在拜读了Wolpert在1996年发表的论文后,将整个证明过程阐明如下:
对于某个给定问题,假设存在搜索路径为 x 0 → x 1 → x 2 → . . . → x m x_0\rightarrow x_1\rightarrow x_2\rightarrow ...\rightarrow x_m x0→x1→x2→...→xm,损失函数为 f ( x ) f(x) f(x),并且假设算法不存在随机性,并且 x 0 → x 1 → x 2 → . . . → x m x_0\rightarrow x_1\rightarrow x_2\rightarrow ...\rightarrow x_m x0→x1→x2→...→xm不存在重复的搜索路径,即 x 0 , x 1 , . . . , x m x_0,x_1,...,x_m x0,x1,...,xm互不相等.定义搜寻过程中损失为为 c ⃗ = \vec{c}= c={
f ( x 0 ) , f ( x 1 ) , . . . , f ( x m ) f(x_0),f(x_1),...,f(x_m) f(x0),f(x1),...,f(xm)},搜寻范围为 d m x d^x_m dmx,损失函数范围为 d m y d^y_m dmy,记 d m d_m dm为 d m x d^x_m dmx和 d m y d^y_m dmy组成的空间,记算法为 a a a,搜寻次数为 m m m, ∣ y ∣ |y| ∣y∣和 ∣ x ∣ |x| ∣x∣为 d m x d^x_m dmx和 d m y d^y_m dmy的容量。
当 m = 1 m=1 m=1时, ∑ f P ( d 1 y ∣ f , m = 1 , a ) = ∑ f σ P ( d 1 y , f ( d 1 x ) ) = ∣ y ∣ ∣ x ∣ − 1