曼哈顿距离、欧几里得距离、闵氏距离(p→∞为切比雪夫距离)

 

曼哈顿距离:

是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。

曼哈顿距离——两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|。

对于一个具有正南正北、正东正西方向规则布局的城镇街道,从一点到达另一点的距离正是在南北方向上旅行的距离加上在东西方向上旅行的距离,因此,曼哈顿距离又称为出租车距离。

 

 

欧几里得距离:

欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。

 

计算公式

欧几里得度量二维空间的公式
0ρ = sqrt( (x1-x2)^2+(y1-y2)^2 ) | x| = √( x2 + y2 )
欧几里得度量三维空间的公式
0ρ = √( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 ) | x| = √( x2 + y2 + z2 )
欧几里得度量n维空间的公式

 

n维欧氏空间是一个点集,它的每个点 X 或向量 x 可以表示为 (x[1],x[2],…,x[n]) ,其中 x[i](i = 1,2,…,n) 是实数,称为 X第i个坐标
两个点 A = (a[1],a[2],…,a[n]) 和 B = (b[1],b[2],…,b[n]) 之间的距离 ρ( AB) 定义为下面的公式:
ρ( AB) =√ [ ∑( a[i] - b[i] )^2 ] (i = 1,2,…,n)
向量 x = (x[1],x[2],…,x[n]) 的自然长度 | x| 定义为下面的公式:
| x| = √( x[1]^2 + x[2]^2 + … + x[n]^2 )
 
 
闵氏距离:
又叫做闵可夫斯基距离,是欧氏空间中的一种测度,被看做是欧氏距离的一种推广,欧氏距离是闵可夫斯基距离的一种特殊情况。
定义式:ρ( AB) = [ ∑( a[i] - b[i] )^p ]^(1/p) (i = 1,2,…,n)
闵可夫斯基距离公式中,当p=2时,即为欧氏距离;当p=1时,即为曼哈顿距离;当p→∞时,即为切比雪夫距离。
 
 
 

转载于:https://www.cnblogs.com/ZERO-/p/7107629.html

### 不同距离度量方法在路径规划中的应用 #### 欧几里得距离的应用 欧几里得距离适用于无障碍物的理想环境下的最短路径计算,在二维平面上表示为两点间直线距离。对于机器人导航或无人机飞行这类应用场景,如果环境中障碍较少且移动体能够沿任意角度前进,则采用此距离作为启发式估计较为合适。 ```python import math def euclidean_distance(point_a, point_b): """Calculate Euclidean distance between two points.""" return math.sqrt((point_a[0] - point_b[0])**2 + (point_a[1] - point_b[1])**2) # Example usage of the function with two points A and B. A = (0, 0) B = (3, 4) print(f"The Euclidean Distance from {A} to {B}: ", euclidean_distance(A, B)) ``` #### 曼哈顿距离的应用 曼哈顿距离更适合于网格状布局的城市街道网络或是棋盘格形式的地图上寻找最佳路线问题;在这种环境下,实体只能沿着水平线或垂直线运动而无法斜向穿越单元格边界。因此,它能更贴近实际情况来衡量从起点到达终点所需经过的实际步数。 ```python def manhattan_distance(point_a, point_b): """Calculate Manhattan distance between two points on a grid.""" return abs(point_a[0] - point_b[0]) + abs(point_a[1] - point_b[1]) C = (0, 0) D = (7, 9) print(f"The Manhattan Distance from {C} to {D}: ", manhattan_distance(C, D)) ``` #### 切比雪夫距离的应用 切比雪夫距离则用于描述在一个无限大正方形网格内,两个位置之间最大坐标差绝对值的情况。这特别适合那些允许八个方向自由行走(上下左右以及四个对角线)的情形下估算成本开销最小化的问题解决方案[^3]。 ```python def chebyshev_distance(point_a, point_b): """Calculate Chebyshev distance between two points.""" return max(abs(point_a[0] - point_b[0]), abs(point_a[1] - point_b[1])) E = (-5, -8) F = (6, 3) print(f"The Chebyshev Distance from {E} to {F}: ", chebyshev_distance(E, F)) ``` 这些不同的距离测量方式各有优劣之处,并取决于具体应用场景的选择: - 如果不高于实际到目标顶点的距离,则一定可以求出最优解,而且越小,需要计算的节点越多,算法效率越低。 - 常见的评估函数有欧几里得距离曼哈顿距离切比雪夫距离,评估函数就是告诉算法往哪个方向进行搜索[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值