一个最短路径问题
假设你在M点,需要先到河边再回到C点,如何规划路线最短?
假设:
河流曲线满足方程 (g(x,y) = 0)(例如 如果它是一个圆:(g(x,y)=x^2+y^2-r^2=0)),用P表示河边上的任意 (P(x,y)) 点,用 (d(M,P)) 表示M,P之间距离,那么问题可以描述为:$max f(P) $, 约束于 (g(P)=0)。(g(x,y)=x^2+y^2-r^2=0)
如何求解问题?
1. 从几何意义中获得灵感:
首先,(f(P)) 是一个标量(只有大小没有方向),那么在上图的二维空间中必然存在了一个标量场 (f(P)),即对于每一个点P都对应着一个 (f(P))值,它代表经过该点的路径总和是多少。
如果我们画出它的等值线(场线),就会发现它呈椭圆向外辐射:
显然,(f(P))的等值线与河边曲线的交点P即为我们想求的点。
那么问题来了: 这样的点满足何种性质?(如果没有性质也就无法列出关系式进行求解,但是这么特殊的点极有可能存在良好某种特性)
最直观的性质: 等值线(椭圆)在P点的法向量n与河边曲线的法向量m平行:
(n= lambda m)
而在多元微积分中,一个函数h在某一点P的梯度是点P所在等值线(二维)或等值面(三维)的法向量,即(n= abla h(P)) ,所以对于函数 f , g :
(n = lambda m Rightarrow abla f(P) = lambda \, abla g(P) Rightarrow egin{pmatrix} f_{x}\ f_{y} end{pmatrix} = lambdaegin{pmatrix} g_{x}\ g_{y} end{pmatrix} Rightarrow f_{x} = lambda g_{x} ; (1) \ f_{y} = lambda g_{y} ; (2))
即由相交点的性质我们得到了2个关系式(因为是二维平面,对于三维则可以得到三个关系式,以此类推),
再加上我们的约束条件:
(g(P)=g(x,y)=0 ; (3))
一共三个关系式。由线性代数中知识可知3个关系式,3个未知量,((x,y,lambda)) 极可能有唯一解,当然也不排除会出现多个解甚至无穷多解 (例如下图河边是一条直线,且M,C就在河边时)。
2. 从数学公式中获得灵感
仍然是问题:
(max f(P) = d(M,P) + d(P, C))
(subject to: g(P) = 0)
我们知道在多元微积分中如果想求一个函数的极值一般的做法是把 ( abla f(P)=0) ,如何把这个公式和我们的约束条件 (g(P)=0) 统一在一起呢?
答案是引入(lambda) 并且定义一个新的函数 (F(P,lambda)=f(P)- lambda g(P)) ,
令: ( abla F(P, lambda) = abla F(x,y, lambda)= egin{pmatrix}F_{x} \F_{y} \F_{lambda}end{pmatrix}=0) 与我们要求解的优化问题是等价的。
(F_{x} = 0 Rightarrow f_{x} - lambda g_{x} = 0 Rightarrow f_{x} = lambda g_{x} ; (1) \F_{y} = 0 Rightarrow f_{y} - lambda g_{y} = 0 Rightarrow f_{y} = lambda g_{y} ; (2)\g(x,y) = 0 ; (3))