弗雷歇距离 matlab,如何理解弗雷歇距离(fréchet distance)

《如何理解弗雷歇距离(fréchet distance)》由会员分享,可在线阅读,更多相关《如何理解弗雷歇距离(fréchet distance)(4页珍藏版)》请在金锄头文库上搜索。

1、如何理解弗雷歇距离(Frchet distance)作者:陈郁葱定义设二元组 是一个度量空间,其中 是 上的度量函数,在无需指明度量函数的情(,) 况下,我们把度量空间简称为 。定义 1 如果定义在单位区间 上的映射 是连续映射,则称 为 上的0,1 :0,1 连续曲线。定义 2 如果从单位区间到其自身的映射 ,即函数 ,满足如下三个条件: :0,10,1是连续的, 是非降的,即对于任意 ,且 ,都有 成 1 2 ,0,1 ()()立, 是满射,则称函数 为单位区间 的重参数化函数,且此时有 , 3 0,1 (0)=0。特别地,当 为恒等函数 时,称 为平凡重参数化函数,否则,称 (1)=1 。

2、()= 为非平凡重参数化函数。显然,单位区间的重参数化函数有无穷多个。有了以上设定,我们来正式定义度量空间中两条曲线之间的弗雷歇距离。定义 3 设 和 是 上的两条连续曲线,即 , ;又设 和 :0,1 :0,1 是单位区间的两个重参数化函数,即 , ;则曲线 与曲线 :0,10,1 :0,10,1 的弗雷歇距离 定义为:(,) (,)=inf,max0,1(),()其中 是 上的度量函数。 几个引理为了更好地理解弗雷歇距离,我们先引入如下几个概念与命题。定义 4 对于度量空间 上的任一连续曲线 ,我们称 为该曲线的起点,称 :0,1 (0)为该曲线的终点;如果参数 ,且 ,则称 在 的前面,。

3、也称 (1) ,0,1 () ()在 的后面。() ()命题 1 连续曲线上某点是起点,当且仅当它在所有点的前面;连续曲线上某点是终点,当且仅当它在所有点的后面。证明:命题显然为真,证略。 定义 5 设度量空间 上有一连续曲线 ,单位区间上有一重参数化函数 :0,1,我们把复合映射 称为曲线 在重参数化函数 作用下的重:0,10,1 :0,1 参数化曲线 ,即 。 =命题 2 度量空间中连续曲线的重参数化曲线不改变原曲线上各点的前后关系。证明:设连续曲线为 ,任取参数 ,且 ,则 在 的前面。又设 ,0,1 () ()重参数化函数为 ,则重参数化曲线为 ,故参数 与 在 上对应的点分别 = 为。

4、 与 ,又由重参数化函数的性质可()=()()=() ()=()()=()知, ,且 ,故 在 的前面,即 在 (),()0,1 ()() () () () ()的前面,因此参数 与 在 与 上对应两点之间的前后关系保持一致,又因为参数 是任取的,所以重参数化曲线不改变原曲线上各点的前后关系,证毕。, 推论 度量空间中连续曲线的重参数化曲线不改变原曲线的起点与终点。证明:由命题 1 知,原曲线的起点在原曲线上所有点的前面,故由命题 2 可知,位于重参数化曲线上与原曲线起点参数对应的点也在重参数化曲线上所有点的前面,再由命题 1 即可知该点就是重参数化曲线的起点,因此连续曲线的重参数化曲线不改变。

5、原曲线的起点;终点的证明同理;证毕。 理解弗雷歇距离下面我们回到定义 3 中对弗雷歇距离的定义中来,为了更加直观的理解,我们用图 1 中二维欧氏平面上的两条曲线来解释弗雷歇距离。图 1 二维欧氏平面上两条曲线之间的弗雷歇距离的计算示意图思想按照定义 3,曲线 与曲线 的弗雷歇距离 定义为: (,)(,)=inf,max0,1(),()其中 是 上的度量函数。 在 的计算公式中,先固定最外层的 与 ,也就是对每一个选定的 与 的组(,) 合,计算下式:,(,)=max0,1(),()上式中 均视为被固定住的已知函数,只将 当作变量。此时,由于变量 将在, 单位区间 内遍历所有连续取值(无穷多个)。

6、 ,为了便于直观理解,我们将该区间作离0,1散化处理,即在该区间采样若干个点来作分析,然后通过逐渐增加采样点的个数来提高精度,最后通过求极限的思想来理解两条曲线的弗雷歇距离。数列在原曲线上的点列在单位区间 中任意抽取由 个互不相同的数构成单调递增数列 ,使0,1 (+2) ()+1=0得 , ,且满足 。0=0 +1=1 +1将 与 分别称为数列 分别在曲线 与 上的点列。()+1=0 ()+1=0 ()+1=0 其中, (即 )与 (即 )分别是曲线 的起点与终点, (即(0) (0) (+1) (1) (0))与 (即 )分别是曲线 的起点与终点。 与 (0) (+1) (1) ()+1=。

7、0 ()+1=0在图 1 中由黑点标出。分别连接 与 相互对应的点,即 与 连接,即图 1 中()+1=0 ()+1=0 () ()两曲线之间的黑色连接线, 与 之间的距离为 。() () (),()数列在重参数化曲线上的点列现在引入曲线的重参数化函数,设作用于曲线 的重参数化函数分别是 ,它们对应, ,的重参数化曲线分别为 ,则 , 。, = =类似地,将 (即 ) 与 (即 ) 分别称()+1=0 ()+1=0 ()+1=0 ()+1=0为数列 分别在重参数化曲线 与 上的点列,或分别称为数列 分别()+1=0 ()+1=0在重参数化函数分别是 与 的曲线 与 上的点列。两曲线的重参数化点。

8、列 与 在图 1 中由红点标出。()+1=0 ()+1=0类似地,分别连接 与 相互对应的点,即 与 连接,()+1=0 ()+1=0 () ()即图 1 中两曲线之间的红色连接线, 与 之间的距离为 ,也即 () () (),()。(),()重参数化前后点列之间的关系由命题 2 及其推论可知,数列 在每条曲线重参数化前后的点列保持了各点之间的()+1=0前后关系,即图 1 中每条曲线上的红点的排列顺序与黑点的排列顺序保持一致。用极限思想理解弗雷歇距离的离散化计算公式为,(,) ,(,)= max+1=0(),()因此, 的离散化计算公式为(,)(,)=inf,(,)=inf, max+1=0。

9、(),()再令 , , 的极限就是 max0,|+1|0(,) (,)(,)= limmax0,|+1|0(,)= limmax0,|+1|0inf, max+1=0(),()用两串珠子理解弗雷歇距离将图 1 中的两条曲线 设想为两条坚硬的、被固定住的、不会变形的钢丝,每条钢丝都,串上同样数目的 个珠子(即图 1 中的黑点) ,再用可任意无限自由伸缩的橡皮筋把两串珠子上对应的珠子连接起来(即图 1 中两曲线之间连接两曲线上黑点的黑线) ,最后再用橡皮筋连接两条钢丝对应的端点(如图 1 所示) 。此时即为初始状态。接下来准备好纸、笔和尺子,我们开始操作、测量和记录: 首先,测量初始状态下各条橡皮筋的长度,并记录下它们中的最大值 ;0 用手任意挪动两条钢丝上的若干珠子使其到达新位置(即图 1 中的红点) (注意:每条钢丝上的珠子之间都是不能相互跨越的) ,测量各条橡皮筋的长度,并记录下它们中的最大值 ;1 再重复上一步 次( 足够大) ;(1) 最后共得到 个值 ,它们的最小值 即可作为曲线 与曲线 的(+1) =0 min 弗雷歇距离 的近似值。(,)为了提高近似值的准确度,可以增大 与 的值。 。

你可能感兴趣的:(弗雷歇距离,matlab)