当前位置: 首页 > 编程笔记 >

动力学数据结构

南宫松
2023-03-14
本文向大家介绍动力学数据结构,包括了动力学数据结构的使用技巧和注意事项,需要的朋友参考一下

基本概念

动力学数据结构被定义为实现为跟踪连续运动的几何系统的属性的数据结构。例如,动力学凸包数据结构跟踪一组n个运动点的凸包。

动力学数据结构的开发受到涉及连续运动的物理对象的计算几何问题的启发,例如机器人技术,动画或计算机图形学中的碰撞或可见性检测。

总览

运动数据结构是在系统上实现的,在该系统中,存在一组值以时间的函数形式以所谓的方式变化。因此,系统具有一些值,并且对于每个系统值v,它表示v = f(t)。运动数据结构允许在当前虚拟时间t上对系统进行查询,并执行两个附加操作

  • advance(t):到时间t的系统提前。

  • change(v,f(t)):从当前时间开始,值v到f(t)的轨迹已更改。

可以支持其他操作。例如,动力学数据结构经常以一组点来实现。在这种情况下,该结构通常允许插入和删除点。

与传统数据结构对比

动态数据结构允许存储在其中的值随时间连续变化。原则上,可以通过以固定的时间间隔对点的位置进行采样,然后将每个点删除并将其重新插入“静态”(传统)数据结构中来近似估算。但是,这种方法容易受到过采样或欠采样的影响,具体取决于实现的时间间隔,并且还可能浪费计算资源。

证书方式

可以采用以下一般方法来建立动力学数据结构

  • 存储当前时间t上系统上的数据结构。此数据结构允许在当前虚拟时间在系统上进行查询。

  • 带有证书的数据结构得到增强。证书被视为数据结构准确的条件。证书现在都是真实的,并且仅当其中一个证书不再真实时,数据结构才会变得完美或准确。

  • 计算每个证书的失败时间,即该证书不再为真的时间。

  • 证书存储在优先级队列中,以其失败时间作为密钥。

  • 要前进到时间t,请从优先级队列中查看具有最小故障时间的证书。如果证书在时间t之前失败,则将其从队列中删除或弹出,并修复数据结构,使其在失败时是完美的或准确的,并更新证书。重复此过程,直到除非在时间t之后优先级队列中失败时间最短的证书失败为止。如果优先级队列中具有最小故障时间的证书在时间t之后失败,则所有证书在时间t都声明为true,因此数据结构可以在时间t正确回答查询。

事件类型

证书失败称为“事件”。如果动力学数据结构维护的属性在事件发生时没有发生变化,则将事件声明为内部事件。如果由数据结构维护的属性在事件发生时发生更改,则将事件声明为外部事件。

性能

实施证书方法时,有四个绩效衡量指标。如果它是n的对数函数,或者对于随机小€为O(n€),我们称数量小,其中n被视为对象数。

 类似资料:
  • 本文向大家介绍Java数据结构之链表(动力节点之Java学院整理),包括了Java数据结构之链表(动力节点之Java学院整理)的使用技巧和注意事项,需要的朋友参考一下 单链表: insertFirst:在表头插入一个新的链接点,时间复杂度为O(1) deleteFirst:删除表头的链接点,时间复杂度为O(1) find:查找包含指定关键字的链接点,由于需要遍历查找,平均需要查找N/2次,即O(N

  • 本文向大家介绍Java数据结构与算法之栈(动力节点Java学院整理),包括了Java数据结构与算法之栈(动力节点Java学院整理)的使用技巧和注意事项,需要的朋友参考一下 stack,中文翻译为堆栈,其实指的是栈,heap,堆。这里讲的是数据结构的栈,不是内存分配里面的堆和栈。 栈是先进后出的数据的结构,好比你碟子一个一个堆起来,最后放的那个是堆在最上面的。 队列就是排队买苹果,先去的那个可以先买

  • IT岗,8.21投递,有测评,没有技术笔试 8.29 一面 综合面,hr面,12分钟 自我介绍就1分钟,也没介绍啥 说一个大学以来遇到的困难,以及如何克服的 说一个大学以来与他人合作的例子 为什么选择潍柴 单休,能接受吗 反问环节 下一步的流程?答曰技术面,等邮件 潍柴工作时间?8:30-11:30,13:30-18:00 出差情况?出差不多,会有 住房补贴?跟招聘信息里写的一样 8.30 二面

  • 主要内容:线性表,树存储结构,图存储结构通过上节我们知道, 数据结构是学习数据存储方式的一门学科,那么,数据存储方式有哪几种呢?本节将对数据结构的学习内容做一个简要的总结。 数据结构大致包含以下几种存储结构: 线性表,还可细分为顺序表、链表、栈和队列; 树结构,包括普通树,二叉树,线索二叉树等; 图存储结构; 下面对各种数据结构做详细讲解。 线性表 线性表结构存储的数据往往是可以依次排列的,就像小朋友手拉手,每位学生的前面和后面都仅有一

  • 本文向大家介绍C ++中的数学力量,包括了C ++中的数学力量的使用技巧和注意事项,需要的朋友参考一下 数字的幂是数字乘以自身的次数。也称为指数或指数。 a乘以b的乘积b是a乘以b的乘积。从7到2的幂是7 2也称为7平方,值为49。 一些常见的幂值为- 幂0的数字为1。 幂1的数字表示相同的数字,如前 ,乘以一次即表示相同。 负幂的数字是n次除法。例如--3 = 1 / a 3或(1 / a)*(

  • 问题内容: 我正在寻找一种轻量级的纯Java物理引擎来对机器人运动控制进行一些仿真。 我的要求: 刚体物理 共同的约束和力量 凸物体碰撞检测 轻巧的纯Java,因此可以将其嵌入到我的应用程序中 能够快速运行仿真 舒适地处理50-100个物体 开源的 除了重新发明轮子之外,您还能推荐任何适合该账单的现有库吗? ps:我已经用Google搜索了-我只是想从已经使用或实现了此类内容的人那里得到诚实的意见