词条 | Kinetic data structure |
释义 |
A kinetic data structure is a data structure used to track an attribute of a geometric system that is moving continuously.[1][2][3][4] For example, a kinetic convex hull data structure maintains the convex hull of a group of moving points. The development of kinetic data structures was motivated by computational geometry problems involving physical objects in continuous motion, such as collision or visibility detection in robotics, animation or computer graphics. OverviewKinetic data structures are used on systems where there is a set of values that are changing as a function of time, in a known fashion. So the system has some values, and for each value , it is known that . Kinetic data structures allow queries on a system at the current virtual time , and two additional operations:
Additional operations may be supported. For example, kinetic data structures are often used with a set of points. In this case, the structure typically allows points to be inserted and deleted. Contrast with traditional data structuresA kinetic data structure allows the values stored in it to change continuously with time. In principle, this can be approximated by sampling the position of the points at fixed intervals of time, and deleting and re-inserting each point into a "static" (traditional) data structure. However, such an approach is vulnerable to oversampling or undersampling, depending on what interval of time is used, and can also be wasteful of computational resources. Certificates approachThe following general approach can be used to construct kinetic data structures:[5]
Types of eventsCertificate failures are referred to as "events". An event is considered internal if the property maintained by the kinetic data structure does not change when the event occurs. An event is considered external if the property maintained by the data structure changes when the event occurs. PerformanceWhen using the certificates approach, there are four measures of performance. We say a quantity is small if it is a polylogarithmic function of , or is for arbitrarily small , where is the number of objects: ResponsivenessResponsiveness is the worst case amount of time required to fix the data structure and augmenting certificates when a certificate fails. A kinetic data structure is responsive if the worst case amount of time required for an update is small. LocalityThe maximum number of certificates any one value is involved in. For structures involving moving points, this is that maximum number of certificates any one point is involved in. A kinetic data structure is local if the maximum number of certificates any one value is involved with is small. CompactnessThe maximum number of certificates used to augment the data structure at any time. A kinetic data structure is compact if the number of certificates it uses is or for arbitrarily small . (a small factor more than linear space) EfficiencyThe ratio of the worst case number of events that can occur when the structure is advanced to to the worst case number of "necessary changes" to the data structure. The definition of "necessary changes" is problem dependent. For example, in the case of a kinetic data structure maintaining the kinetic hull of a set of moving points, the number of necessary changes would be the number of times the kinetic hull changes as time is advanced to . A kinetic data structure is said to be efficient if this ratio is small. Types of TrajectoriesThe performance of a certain kinetic data structure may be analyzed for certain types of trajectories. Typically, the following types of trajectories are considered:
Examples
References1. ^{{Cite thesis |last1=Basch |first1=Julien |title=Kinetic Data Structures |publisher=Stanford University |url=http://www.basch.org/phdthesis |year=1999}} 2. ^{{Citation |first=Leonidas J. |last=Guibas |author-link=Leonidas J. Guibas |contribution=Kinetic Data Structures |contribution-url=http://graphics.stanford.edu/projects/lgl/papers/g-KDS_DS-Handbook-04/g-KDS_DS-Handbook-04.pdf |title=Handbook of Data Structures and Applications |editor-first=Dinesh P. |editor-last=Mehta |editor2-first=Sartaj |editor2-last=Sahni |publisher=Chapman and Hall/CRC |isbn=978-1-58488-435-4 |pages=23-1–23-18 |year=2001}} 3. ^{{Cite thesis |last1=Abam |first1=Mohammad Ali |title=New Data Structures and Algorithms for Mobile Data |publisher=Eindhoven University of Technology |url=http://repository.tue.nl/630204 |year=2007}} 4. ^{{Cite thesis |last1=Rahmati |first1=Zahed |title=Simple, Faster Kinetic Data Structures |publisher=University of Victoria |url=http://hdl.handle.net/1828/5627 |year=2014}} 5. ^{{Citation| first = Leonidas J.| last = Guibas| author-link = Leonidas J. Guibas| contribution = Kinetic Data Structures: A State of the Art Report| contribution-url = http://graphics.stanford.edu/courses/cs428-03-spring/Papers/readings/CollaborativeProcessing/g-kds.pdf| title = Robotics: The Algorithmic Perspective (Proceedings of the 3rd Workshop on the Algorithmic Foundations of Robotics)| editor-first = Pankaj K.| editor-last = Agarwal| editor2-first = Lydia E.| editor2-last = Kavraki| editor3-first = Matthew T.| editor3-last = Mason| publisher = A K Peters/CRC Press| isbn = 978-1-56881-081-2| pages = 191–209| year = 1998}} External links 1 : Kinetic data structures |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。