【轨迹压缩】Trajectory Simplification: On Minimizing the Direction-based Error [2015] [VLDB]

article/2025/10/29 7:43:19

一、一个动机

保护方向信息的方向保持轨迹简化(DPTS)已被证明表现良好,而现有关于 DPTS 的研究 要求用户指定一个容错,在某些情况下用户可能不知道如何正确设置(例如,容错只能在未来某个时间知道,简单地设置一个容错不能满足需要)因为简化的轨迹通常会在许多不同的应用程序中使用,这些应用程序接受不同的误差容限);

现有的基于位置的轨迹压缩算法,虽然能保证距离误差,但不能保证方向,而基于方向的轨迹压缩算法既能保证方向,也能保证距离;

所以,作者把 根据指定方向误差阈值压缩 这一 Min-Size 问题转换成了 根据指定压缩率寻得达到目标的最小方向误差,即 Min-Error 问题;简单来说,给出了一个存储预算,表示要存储的简化轨迹的最大大小(请注意,存储预算意味着压缩率要求),目标是最小化简化轨迹的误差;

二、两个思想

  1. 为了 精确 解决最小化误差问题,探索了 动态规划和二分法 的思想,产生了两种不同的算法,时间复杂度分别为: O ( W N 3 ) O(WN^3) O(WN3) O ( C N 2 l o g N ) O(CN^2logN) O(CN2logN),其中 W 为存储预算、C 小常数、N 为轨迹长度;
  2. 为了降低时间复杂度,开发了一种近似算法:该算法在 O(NlogN) 时间内运行,给出答案的近似值;

三、算法原理

3.1 问题定义

对于文章 Sec 2

在这里插入图片描述

Min-Error 问题:给定一条轨迹 T 和一个正整数 W(存储预算) ,最小误差问题是找到 T 的简化 T ’ 使得 |T '|≤W 和 ε(T ') 被最小化;

对于上面那个例子,如果 W=3,并且 T'=(p1,p5,p8) 就是最优解,因为我们找不到任何其他的 T 的简化,其大小最多为 3,其误差小于 ε ( T ′ ) ( = 0.785 ) ε(T') (= 0.785) ε(T)(=0.785)

Paper notations
在这里插入图片描述

3.2 精确算法

对于给定的原始轨迹 T 和存储预算 W,那么 F 是所有简化轨迹的集合,即 F 包含 W 的指数个简化轨迹,每个简化轨迹有 W 个点;

如何转换为动态规划问题

  • 如果 T ′ = ( p s 1 , p s 2 , . . . , p s m ) T'=(p_{s1},p_{s2},...,p_{sm}) T=(ps1,ps2,...,psm)是 输入 T [ S 1 : n ] T[S_{1}:n] T[S1:n] W W W 的最优解,那么 T ′ ′ = ( p s 2 , . . . , p s m ) T''=(p_{s2},...,p_{sm}) T′′=(ps2,...,psm) 就是 T [ S 2 : n ] T[S_{2}:n] T[S2:n] W − 1 W-1 W1 的最优解;
  • 如果把它认为是一个函数 func,那么 func(1,n,W)=func(2,n,W-1)+Psi

怎么把 O ( n 3 ) O(n^3) O(n3)优化为 O ( n 2 l o g n ) O(n^2logn) O(n2logn)

  1. Let E be the set containing all ε ( p i p j ) ε(pipj) ε(pipj) 's for 1 ≤ i < j ≤ n, i.e., E = ε ( p i p j ) ∣ 1 ≤ i < j ≤ n E=ε(pipj)∣1≤i<j≤n E=ε(pipj)1i<jn. Note that ∣ E ∣ = O ( n 2 ) ∣E∣=O(n2) E∣=O(n2),如果直接用 ε ( p s k p s k + 1 ) = M A X s k ≤ h < s k + 1 △ ( θ ( p s k p s k + 1 ) , θ ( p h p h + 1 ) ) ε(pskpsk+1)=MAXsk≤h<sk+1 △(θ(pskpsk+1),θ(phph+1)) ε(pskpsk+1)=MAXskh<sk+1△(θ(pskpsk+1),θ(phph+1)),那么整个复杂度为 O ( n 3 ) O(n^3) O(n3);提出 基于 相反方向 的概念,降低它的复杂度为 O ( n 2 l o g n ) O(n^2logn) O(n2logn)
  2. 既然 ε ( p i p j ) ε(pipj) ε(pipj) 对应于 θ ( p i p j ) θ(pipj) θ(pipj) θ [ i : j ] θ[i:j] θ[i:j] 方向之间的最大角度差。因此,计算 ε ( p i p j ) ε(pipj) ε(pipj) 可以通过在 θ [ i : j ] θ[i:j] θ[i:j] 中找到与 θ ( p i p j ) θ(pipj) θ(pipj) 角度差最大的方向来完成,这个方向表示为 θ ∗ θ∗ θ
  3. 那么,现在的要点是如何快速地找到 θ ∗ θ∗ θ
  4. θ ( p i p j ) − θ(pipj)− θ(pipj) θ ( p i p j ) θ(pipj) θ(pipj) 相反的方向, θ ( p i p j ) − = [ ( θ ( p i p j ) + π ) m o d 2 π ] θ(pipj)−=[(θ(pipj)+π)mod2π] θ(pipj)=[(θ(pipj)+π)mod2π],那么 θ ∗ θ∗ θ 就是与 θ ( p i p j ) − θ(pipj)− θ(pipj) 角度差最小的方向,如图5所示:
    在这里插入图片描述
    θ ( p 2 p 3 ) θ(p2p3) θ(p2p3) θ [ 1 : 5 ] θ[1:5] θ[1:5] 中与 θ ( p 1 p 5 ) θ(p1p5) θ(p1p5) 的角度差最大的方向,它也是与 θ ( p 1 p 5 ) − θ(p1p5)− θ(p1p5) 角度差最小的方向;
  5. 分两步搜索 θ ∗ θ∗ θ
    1. 首先按升序排列 θ [ i : j ] θ[i:j] θ[i:j] 里的方向,排序结果为 θ 1 , θ 2 , θ 3 , . . . , θ j − 1 θ1,θ2,θ3,...,θj−1 θ1,θ2,θ3,...,θj1,这里是 O ( n l o g n ) O(nlogn) O(nlogn) 的成本;
    2. 然后在排序的列表中找到与 θ ( p i p j ) − θ(pipj)− θ(pipj) 有最小角度差的方向,即 θ ∗ θ∗ θ,排序列表找符合条件的某个元素 => 二分查找 l o g n logn logn
  6. 总的来说就是,先对所有的 θ ( p 1 p 2 ) , θ ( p 2 p 3 ) , . . . , θ ( p n − 1 p n ) θ(p1p2),θ(p2p3),...,θ(pn−1pn) θ(p1p2),θ(p2p3),...,θ(pn1pn) 按照角度升序排序 = O ( n l o g n ) O(nlogn) O(nlogn),排序完就定了,这个不需要反复执行;然后对 O ( n 2 ) O(n2) O(n2) ε ( p i p j ) ε(pipj) ε(pipj) 实例执行计算,每次计算都是找对应实例的 θ ∗ θ∗ θ,每次的成本为 l o g n logn logn,因此总成本为 O ( n l o g n + n 2 l o g n ) = O ( n 2 l o g n ) O(nlogn+n^2logn)=O(n^2logn) O(nlogn+n2logn)=O(n2logn);这个地方很关键;原文如下:
    在这里插入图片描述

3.3 近似算法 Span-Search

Span-Search:跨度搜索用于解决最小误差问题,该算法在 O ( n l o g 2 n ) O(nlog2n) O(nlog2n) 时间内运行并给出因子近似值; Min-Span 的新问题,其最优解对应于 Min-Error 问题的 2 因子近似;

Span:角度范围 [ θ 1 , θ 2 ] [θ1,θ2] [θ1,θ2] 的跨度 -> ξ ( [ θ 1 , θ 2 ] ) ξ([θ1,θ2]) ξ([θ1,θ2])

ξ ( [ θ 1 , θ 2 ] ) = { θ 2 − θ 1 if  θ 2 ≥ θ 1 2 π − ( θ 1 − θ 2 ) if  θ 2 < θ 1 ξ([θ1,θ2])= \begin{cases} \theta_2 - \theta_1 & \text{ if } \theta_2 \ge \theta_1 \\ 2\pi-(\theta_1 - \theta_2) & \text{ if } \theta_2 < \theta_1 \end{cases} ξ([θ1,θ2])={θ2θ12π(θ1θ2) if θ2θ1 if θ2<θ1

ξ ( [ θ 1 , θ 2 ] ) ξ([θ1,θ2]) ξ([θ1,θ2]) 始终>= 0,并且 ξ ( [ θ 1 , θ 2 ] ) + ξ ( [ θ 2 , θ 1 ] ) = 2 π ξ([θ1,θ2]) + ξ([θ2,θ1]) = 2\pi ξ([θ1,θ2])+ξ([θ2,θ1])=2π

Let D be the set of the directions of all possible segments in T , i.e., D = θ [ 1 : n ] D = θ[1 : n] D=θ[1:n]. Note that ∣ D ∣ = n − 1 |D|= n−1 D=n1,就是说 |D| 中段的个数为 n-1 段;

举例:下图中 D ′ = θ [ 1 : 5 ] = { θ ( p 1 p 2 ) , θ ( p 2 p 3 ) , θ ( p 3 p 4 ) , θ ( p 4 p 5 ) } D' = θ[1:5] = \{θ(p1p2), θ(p2p3), θ(p3p4), θ(p4p5)\} D=θ[1:5]={θ(p1p2),θ(p2p3),θ(p3p4),θ(p4p5)} m c a r ( D ′ ) = [ θ ( p 2 p 3 ) , θ ( p 3 p 4 ) ] mcar(D')=[θ(p2p3),θ(p3p4)] mcar(D)=[θ(p2p3),θ(p3p4)],因为后者覆盖了 D ′ D' D 中的所有方向;

在这里插入图片描述

请注意, m c a r ( D ′ ) mcar(D') mcar(D) 的两个边界始终来自 D ′ D' D,否则范围可能会进一步缩小并且它没有最小跨度;

以一个轨迹为例:

在这里插入图片描述

3.3 跨度搜索概述

成对方向差异 Θ [ i ] [ j ] = θ j − θ i Θ[i][j]= \theta_j - \theta_i Θ[i][j]=θjθi if j ≥ i j \ge i ji,否则 Θ [ i ] [ j ] = 2 π − ( θ i − θ j ) Θ[i][j]=2\pi-(\theta_i-\theta_j) Θ[i][j]=2π(θiθj),确保 Θ Θ Θ 均大于0;

在这里插入图片描述

下面就是一系列时间复杂度的证明,证明 Span-Search 的复杂度为 O ( n l o g 2 n ) O(nlog^2n) O(nlog2n),公式太多,就不多叙述了,有需要的自行深入分析;

四、实验部分

本文比较的是两个经典的算法:

  • wavelet transformation 小波变换,时序数据处理的经典算法
  • DP 算法,轨迹数据压缩的经典算法

数据集也是经典的很多人用的数据集:

  • Geolife:Geolife3 记录了 182 名用户在 5 年内的户外活动;
  • T-Drive:-Drive4 是北京的一组出租车轨迹;

在这里插入图片描述

允许时间比 DP 快,我也是有些质疑,DP的复杂度为 O ( n 2 ) O(n^2) O(n2),而作者的精确算法复杂度为 O ( n 2 l o g n ) O(n^2logn) O(n2logn),按理说应该没有 DP 快;

在这里插入图片描述

误差衡量一般都是选取对自身有利的指标,想这里它选取的就是方向误差,因为它是基于方向的轨迹压缩算法,而 DP 是基于 PED 距离的轨迹压缩算法,作者应该选取另一个 基于方向 的算法作为基线比较,或者与DP算法再比较一下 PED 误差;

五、最后总结

  1. 这篇文章思想是以角度误差为指标来进行轨迹压缩,精确的算法(动态规划)复杂度较高 O ( n 3 ) O(n^3) O(n3),可以用二分优化,复杂度为 O ( n 2 l o g n ) O(n^2logn) O(n2logn);后面提供一种近似算法,具有很低的时间复杂度 O ( n l o g 2 n ) O(nlog2n) O(nlog2n)
  2. 感觉这篇文章的原理,即使用角度误差为指标进行压缩 不算难,仔细一看就能懂,比较难的是近似算法的证明那部分,这种优化的思路可以学习;
  3. 由于我的目的在于浮现他的算法,所以懂了精确算法部分的原理就够了,不考虑时间复杂度,后续有时间再考虑把近似算法也搞出来吧;

http://chatgpt.dhexx.cn/article/T31wkxra.shtml

相关文章

VLDB 2021 EAB最佳论文:深度解析机器学习的基数估计为何无法实现?

©作者 | 曲昌博单位 | 西蒙菲莎大学近日&#xff0c;IEEE 数据工程新星奖王健楠团队论文《Are We Ready for Learned Cardinality Estimation?》夺得数据库顶会 VLDB 2021 年度的 EA&B 最佳论文奖。 数据库是企业管理和查询数据的复杂软件系统。 近年来随着机器学习以…

Transformers如何处理表格数据?【VLDB2022教程】Transformer表格数据表示:模型和应用...

来源&#xff1a;专知 本文为教程介绍&#xff0c;建议阅读5分钟最近的研究工作通过开发表格数据的神经表示扩展了语言模型。 在过去的几年中&#xff0c;自然语言处理界见证了基于transformer的语言模型(LM)在自由文本的神经表示方面的进展。鉴于关系表中可用知识的重要性&…

openGauss亮相VLDB2020,展示内存优化研究成果

VLDB&#xff08;Very Large Data Base&#xff09;作为数据库领域的三大顶级国际会议之一&#xff0c;是面向数据库研究人员&#xff0c;内核开发人员&#xff0c;开发商以及用户的年度国际会议论坛&#xff0c;代表数据库系统领域最杰出的研究和工程进展。在2020年&#xff0…

VLDB 2023 | 北大河图发布分布式训练神器Galvatron,一键实现大模型高效自动并行...

©作者 | 北京大学河图团队 单位 | 北京大学数据与智能实验室 北大河图团队提出了一套面向大模型的自动并行分布式训练系统 Galvatron&#xff0c;相比于现有工作在多样性、复杂性、实用性方面均具有显著优势&#xff0c;论文成果已经被 VLDB 2023 接收。 最近一段时间&…

利用 Map-Reduce 从文件中找到出现频率最高的 10 个 URL(2021 VLDB Summer School Lab0)

这篇博文主要是对 2021 VLDB Summer School Lab0 的一个总结 这个lab与MIT 6.824 的 lab1 相似&#xff0c;个人感觉比MIT 6.824 的 lab1 要稍微简单些&#xff0c;更容易上手。通过这个lab&#xff0c;可以学习到一些 Golang 的基础知识并对分布式系统有一个基础的了解&#…

Flink OLAP 助力 ByteHTAP 亮相数据库顶会 VLDB

复杂查询 QPS 破百&#xff0c;字节跳动 Flink OLAP 助力 ByteHTAP 亮相数据库顶会 VLDB。 2022 年 9 月 5 日至 9 月 9 日&#xff0c;VLDB 2022 在澳大利亚悉尼举行。字节跳动基础架构研究成果《ByteHTAP: ByteDance’s HTAP System with High Data Freshness and Strong Dat…

湖南大学计算机专业硕士研究导师,湖南大学研究生导师李睿科研论文被世界顶级数据库学术会议VLDB刊发...

李睿老师的论文被国际数据库顶级会议Very Large Data Bases接受并发表。 刊发的论文。 日前&#xff0c;以湖南大学信息科学与工程学院计算机科学系研究生导师李睿为第一作者&#xff0c;湖南大学为第一作者单位的科研论文“Fast Range Query Processing with Strong Privacy P…

PM-LSH: A Fast and Accurate LSH Framework for High-Dimensional Approximate NN Search(VLDB)

由于维数灾难的影响&#xff0c;高维空间中的最近邻(NN)搜索本质上是计算开销巨大的。局部敏感哈希(locality-sensitive hashing, LSH)是一种著名的近似神经网络搜索算法&#xff0c;能够以恒定概率在亚线性时间内回答c-近似神经网络(c-ANN)查询。现有的LSH方法主要基于哈希桶建…

Updatable Learned Index with Precise Positions(VLDB2022)

在现代数据库引擎中&#xff0c;索引在加速查询处理方面起着至关重要的作用。“学习索引”的新范式极大地改变了DBMS中索引结构的设计方式。关键的见解是&#xff0c;索引可以被视为预测数据集中查找键位置的学习模型。虽然这类研究在查找时间和索引大小方面都显示出良好的结果…

VLDB 2023 | 北大河图发布分布式训练神器Galvatron, 一键实现大模型高效自动并行...

关注公众号&#xff0c;发现CV技术之美 本文转自机器之心。 北大河图团队提出了一套面向大模型的自动并行分布式训练系统Galvatron&#xff0c;相比于现有工作在多样性、复杂性、实用性方面均具有显著优势&#xff0c;论文成果已经被 VLDB 2023 接收。 最近一段时间&#xff0c…

Benchmarking Learned Indexes(VLDB2021)

最近学习索引结构的进步建议用近似学习模型来替代现有的索引结构&#xff0c;比如b树。在这项工作中&#xff0c;我们提出了一个统一的基准&#xff0c;它将三种已经学习过的索引结构的优化实现与几种最先进的传统基准进行比较。通过使用四个真实的数据集&#xff0c;我们证明了…

阿里云数据库再获学术顶会认可,一文全览VLDB最新亮点

一年一度的数据库领域顶级会议VLDB 2019于当地时间8月26日-8月30日在洛杉矶圆满落幕。在本届大会上&#xff0c;阿里云数据库产品团队浓墨登场&#xff0c;不仅有多篇论文入选Research Track和Industrial Track&#xff0c;为了进一步加深产学研学术交流&#xff0c;阿里云还在…

2019计算机研究生暑期学校,2019年度VLDB暑期学校

由CCF数据库专业委员会、VLDB中国数据库学院主办&#xff0c;中国人民大学信息学院与数据工程与知识工程教育部重点实验室承办的2019年度VLDB暑期学校(VLDB Summer School 2019)于2019年7月22日在中国人民大学信息楼报告厅隆重举行开班仪式。出席开班仪式的嘉宾有&#xff1a;中…

13 种高维向量检索算法全解析!数据库顶会 VLDB 2021 论文作者干货分享

编者按&#xff1a; 以图搜图、商品推荐、社交推荐等社会场景中潜藏了大量非结构化数据&#xff0c;这些数据被工程师们表达为具有隐式语义的高维向量。为了更好应对高维向量检索这一关键问题&#xff0c;杭州电子科技大学计算机专业硕士王梦召等人探索并实现了「效率和精度最…

Deep Upsupervised Cardinality Estimation 解读(2019 VLDB)

Deep Upsupervised Cardinality Estimation 解读&#xff08;2019 VLDB&#xff09; Deep Upsupervised Cardinality Estimation选择度&#xff08;基数&#xff09;估计问题定义选择度和数据联合分布的关系深度自回归模型如何计算joint distribution编码解码策略具体执行属性的…

VLDB 2021 COCO 论文阅读

Epoch-based Commit and Replication in Distributed OLTP Databases 记录一篇之前读过的论文。。。 整篇论文的核心在于Epoch&#xff0c;将传统数据库以事务为粒度提交和恢复变成了以Epoch为粒度来提交和恢复&#xff0c;这样做的好处就是可以减少2PC和同步复制的时间开销。…

【区块链论文整理】VLDB篇

VLDB (Very Large Data Base&#xff09;是数据库三大顶会之一&#xff0c;近几年也发表了不少水平很高的文章。本文主要针对VLDB 会议中区块链相关的论文进行简单整理。 2021 SlimChain: Scaling Blockchain Transactions through Off-Chain Storage and Parallel Processing…

入选数据库顶会 VLDB:如何有效降低产品级内存数据库快照尾延迟?

阿里云操作系统团队、阿里云数据库团队以及上海交通大学新兴并行计算研究中心一起合作的论文 “Async-fork: Mitigating Query Latency Spikes Incurred by the Fork-based Snapshot Mechanism from the OS Level” 被数据库系统领域顶会 Very Large Data Bases Conferences (V…

VLDB 2023 | 基于擦除的浮点无损压缩(附论文和源码)

大量浮点时间序列数据正以前所未有的高速率生成。一种高效、紧凑、无损的时间序列数据压缩方法对海量数据的应用场景至关重要。现有的大多数浮点无损压缩方法是基于异或操作&#xff0c;但它们没有充分利用尾随零&#xff0c;这通常会导致压缩率不尽如人意。本次为大家带来重庆…

运算符—逻辑运算符

目录 5.逻辑运算符 5.1逻辑运算符概述 5.2短路逻辑运算符 5.逻辑运算符 &#xff08;学完之后要求能够使用逻辑运算符完成逻辑运算&#xff09; 5.1逻辑运算符概述 在数学中&#xff0c;一个数据x&#xff0c;大于3&#xff0c;小于6&#xff0c;我们可以写为这样来表示&am…