曼哈顿距离与切比雪夫距离相互转换

1. 曼哈顿距离与切比雪夫距离的定义

1.1 曼哈顿距离的定义

曼哈顿距离(Manhattan Distance),也称为L1距离或城市街区距离,是度量两个点在标准坐标系上的绝对轴距总和。如果有两个点P(x1,y1)Q(x2,y2),那么它们之间的曼哈顿距离dd可以通过以下公式计算: d(P,Q)=\left | x_{1}-x_{2} \right |+\left | y_{1}-y_{2} \right |

1.2 切比雪夫距离的定义

切比雪夫距离(Chebyshev Distance),也称为L_{\infty }距离或象棋距离,是度量两个点在所有坐标轴上的差值的最大值。对于同样的两个点P(x1,y1)Q(x2,y2),切比雪夫距离{d}'定义为: {d}'(P,Q)=max(\left | x_{1}-x_{2} \right |,\left | y_{1}-y_{2} \right |)

2.两者之间的数学关系

1.数学证明

曼哈顿距离:对于坐标点 P(x1,y1)Q(x2,y2),曼哈顿距离定义为:\left | x_{1}-x_{2} \right |+\left | y_{1}-y_{2} \right |因此可以化简为:

\left | x_{1}-x_{2} \right |+\left | y_{1}-y_{2} \right |=max(x_{1}-x_{2},x_{2}-x_{1})+max( y_{1}-y_{2}, y_{2}-y_{1})

可以重写为四个可能的表达式的最大值:

max(x_{1}-x_{2}+ y_{1}-y_{2},x_{1}-x_{2}+y_{2}-y_{1},x_{2}-x_{1}+y_{1}-y_{2},x_{2}-x_{1}+y_{2}-y_{1})

转换为:

max(x_{1}+ y_{1}-(x_{2}+y_{2}),x_{1}-y_{1}-(x_{2}-y_{2}),x_{2}-y_{2}-(x_{1}-y_{1}),x_{2}+ y_{2}-(x_{1}+y_{1}))

此时,我们可以重新引入绝对值,构造一个与原表达式结构相似的对称式子:

 max(\left | x_{1}+ y_{1}-(x_{2}+y_{2}) \right |,\left | x_{1}-y_{1}-(x_{2}-y_{2}) \right |)

其中:

\left\{\begin{matrix} {x}'_{1}=x_{1}+y_{1} & \\ {x}'_{2}=x_{2}+y_{2} & \end{matrix}\right. 

\left\{\begin{matrix} {y}'_{1}=x_{1}-y_{1} & \\ {y}'_{2}=x_{2}-y_{2} & \end{matrix}\right.

转换为:

 max(\left | {x_{1}}'-({x_{2}}') \right |,\left | {y_{1}}'-({y_{2}}') \right |)

 所以

\left | x_{1}-x_{2} \right |+\left | y_{1}-y_{2} \right |=max(\left | {x_{1}}'-({x_{2}}') \right |,\left | {y_{1}}'-({y_{2}}') \right |)

 新坐标系中的切比雪夫距离等于原坐标系中的曼哈顿距离。

2.几何解释

在二维空间中,曼哈顿距离可以通过坐标变换转化为切比雪夫距离。具体转换公式如下:

(x,y)\rightarrow (\frac{x+y}{2},\frac{x-y}{2})

这个转换过程可以这样理解:首先将曼哈顿距离坐标系中的点 (x,y) 投影到对角线上,然后将其分割成两部分,一部分是沿对角线方向的一半,另一部分是垂直于对角线方向的一半,这样就得到了切比雪夫距离坐标系中的点。

3 转换的应用场景

坐标转换在算法设计和优化中有着广泛的应用。例如,在某些搜索算法中,通过将问题从曼哈顿距离转换为切比雪夫距离,可以简化计算过程,提高算法的效率。此外,在多维空间中,坐标转换还可以帮助我们更好地理解和处理距离度量问题。

3.1 A*搜索算法

A*算法是一种常用的路径搜索算法,通过转换距离度量,可以针对不同的地图特性选择更合适的启发式函数,从而优化路径搜索过程。

3.2游戏开发

在游戏开发中,角色移动和敌人寻路经常使用到这两种距离度量。通过理解它们之间的转换关系,开发者可以根据游戏场景的需要灵活选择或转换使用。

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值