# 🎯 1. 背景与目标
# 📌 应用场景
轨迹数据广泛存在于以下应用中:
- GPS 路径(车辆、手机用户行驶轨迹)
- 雷达 / 卫星跟踪(如台风移动路径)
- 动物迁徙轨迹(如候鸟、鲸鱼)
- 运动轨迹数据(如跑步者、球员移动)
这些轨迹数据常常由很多点组成,呈折线状。
# 🧠 分析目标:
从这些轨迹中提取有意义的行为模式,例如:
- 找出聚集区域(多个个体集中活动);
- 分析路径形状(如迁徙路线);
- 进行预测分析(如风暴路径预测)。
# ❓ 要解决的两个核心问题
相似性问题:
- 给定两条轨迹,如何判断它们的相似程度?
- 哪些方法能更准确刻画 “形状是否接近”?
压缩问题(简化问题):
- 给定一条很长的轨迹,如何用更少的点表示它?
- 如何在保留形状的同时减少点数,加快处理速度?
# 📏 2. 曲线相似性度量方法
在轨迹分析中,我们需要定义 “相似性” 来比较两条曲线是否形状接近。下面是几种主流方法:
# 🧩 2.1 一般方法
这些方法大多源自信号处理或字符串比较,适用于等长或对齐轨迹。
向量化方法:
- 将曲线转为高维向量比较;
- 但要求点数相同、对齐,不适用于实际轨迹。
常见度量方式:
- Hausdorff 距离:比较最大最小点对距离,忽略匹配顺序;
- DTW(Dynamic Time Warping):允许 “拉伸时间” 对齐点序;
- LCSS(Longest Common Subsequence):基于离散子序列匹配,容忍缺失点。
# 🐕 2.2 Fréchet Distance(牵狗人模型)
更几何、连续、顺序敏感的度量方式。
# ✅ 直观解释:
- 人牵着狗,分别沿着两条曲线行走;
- 两人都不能后退,牵引绳最短长度就是 Fréchet 距离;
- 强调连续性与 “全局匹配”,能捕捉曲线整体形状的相似性。
# ✅ 特点:
- 比 Hausdorff 更强,因为它考虑了曲线 “行进过程” 的顺序;
- 离散版本只在顶点上比较,误差大;
- 通常用 ** 自由空间图(Free Space Diagram)** 来判断 是否成立。
# 📐 3. Fréchet 距离计算算法
我们关心的问题是:如何计算两条曲线的 Fréchet 距离?也就是牵狗人模型中 “最短牵引绳长度”。
# 🔎 3.1 决策算法(是否 ≤ 某个阈值 r)
这是 Fréchet 计算中的基础问题:
给定两条曲线 和 以及一个数 ,判断它们的 Fréchet 距离是否 ?
# ✅ 解决方法:使用 “自由空间图(Free Space Diagram)”
- 构建一个二维网格,每个单元格表示 的一条边和 的一条边的交互;
- 在每个格子中标记哪些 对应点满足 ;
- 然后检查是否存在一条从左下角到右上角的非递减路径,沿着 “白色区域” 前进。
如果存在这样一条路径,就说明 Fréchet 距离 。
# ⏱️ 时间复杂度:
其中 和 是两条曲线的点数。
# 🧮 3.2 精确计算 Fréchet 距离
真正的 Fréchet 距离是:满足上面路径条件的 “最小 r” 是多少?
# ✅ 解法思路:
- 将所有可能的临界距离(例如点对之间的距离)排序;
- 用二分法或者参数搜索,在这些候选值中找到最小的满足条件的 ;
- 每次都调用上面的决策算法。
# ⏱️ 时间复杂度:(当前最优)
# ❓ 3.3 开放问题
尽管已有算法很优秀,但仍有几个悬而未决的问题:
是否存在亚二次时间的精确算法?
- 也就是说,是否能做到 的精度计算?
是否可以更快地逼近 Fréchet 距离?
- 对于某些特殊类型的曲线,比如:
- c-packed 曲线(即 “不会绕太多圈” 的轨迹),
- 存在近似 Fréchet 距离的线性时间算法!
- 对于某些特殊类型的曲线,比如:
# ✂️ 4. 曲线简化(Trajectory Simplification)
# 🧭 4.1 动机(为什么需要简化?)
- 实际轨迹数据中包含大量 GPS 或传感器采样点,点数可能成千上万;
- 如果直接用这些点计算 Fréchet 距离或执行聚类、比对等操作:
- 会很慢,占内存,甚至难以可视化;
- 所以我们希望:
在不改变轨迹形状的前提下,尽可能少地保留点数
# 📚 4.2 常见算法(不同需求下的选择)
# 1️⃣ Ramer–Douglas–Peucker(RDP)算法
- 核心思想:递归分割曲线,保留转折大的点,删掉 “直线段上多余的点”;
- 误差度量:基于 Hausdorff 距离;
- 适用性:简单好用,适合快速粗略压缩;
- 复杂度:
- 最坏 (所有点都要递归比较);
- 通常情况下为 。
# 2️⃣ Simple Simplification(Driemel et al., 2012)
- 核心思想:从起点开始向前走,每段简化边长度 ≥ ;
- 只要 Fréchet 距离误差不超过 ,就可以 “跳过中间点”;
- 误差度量:Fréchet 距离,控制整体形状保留;
- 优点:运行快,代码简单;
- 时间复杂度:,线性时间;
- 适用性:非常实用,适合大数据下快速处理。
# 3️⃣ Agarwal et al. 算法(2005)
- 目标:在 Fréchet 距离约束下,找出 “最短长度” 的简化曲线(最少点数);
- 方法:将曲线简化建模为图最短路径问题;
- 误差度量:Fréchet 距离,结果理论上最优;
- 时间复杂度:;
- 适用性:适合精确压缩任务,对点数敏感的分析任务非常有效。
# ✅ 总结建议
算法 | 精度依据 | 时间复杂度 | 简要评价 |
---|---|---|---|
RDP | Hausdorff | 快速粗略压缩 | |
Simple | Fréchet | 快速、实用、误差受控 | |
Agarwal et al. | Fréchet | 点数最优但较复杂 |
# ✅ 5. 总结
本节课程围绕轨迹曲线的相似性与简化,重点内容包括:
# 📌 核心主题:
- 介绍了 Fréchet 距离,它是一种考虑曲线连续性与顺序的相似性度量;
- 特别适用于比较真实轨迹数据(如 GPS 路径、人和动物运动等)。
# 🔧 技术要点:
- 自由空间图:作为判断 Fréchet 距离是否小于某个阈值的几何工具;
- Fréchet 计算方法:包括判定算法与最优距离计算,时间复杂度最优为 ;
- 三种曲线简化算法:
- RDP(基于 Hausdorff);
- Simple Simplification(线性时间、误差控制);
- Agarwal 最优算法(结果点数近似最小)。
# 📈 应用意义:
- 曲线简化 与 相似性比较 是空间数据分析中最常用、最重要的基础操作;
- 广泛应用于轨迹挖掘、聚类、可视化、预测分析等实际任务。