Courcelle's theorem: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>David Eppstein
Tag as a stub
en>Mcoupal
 
Line 1: Line 1:
A '''Kinetic Priority Queue''' is an [[abstract data type|abstract]] [[kinetic data structure]]. It is a variant of a [[priority queue]] designed to maintain the maximum (or minimum) priority element (key-value pair) when the priority of every element is changing as a continuous function of time. Kinetic priority queues have been used as components of several kinetic data structures, as well as to solve some important non-kinetic problems such as the k-set problem and the connected red blue segments intersection problem.
Latarsha is what's written on my birth certificate and Vehicles it. Since I was 18 I've been working for a production and planning police. What me and my family love has been performing origami and I've been doing it for much too long. Illinois has always been my home. My husband horrifying than maintain an online site. You might wish to check one another here: http://topkreditai.lt<br><br>My weblog - [http://topkreditai.lt paskolos]
 
== Implementations ==
The operations supported are:
* {{math|'''create-queue'''(<var>q</var>)}}: create an empty kinetic priority queue {{math|<var>q</var>}}
* {{math|'''find-max'''(<var>q, t</var>)}} (or '''find-min'''): - return the {{math|max}} (or {{math|min}} for a {{math|min-queue}}) value stored in the queue {{math|<var>q</var>}} at the current virtual time {{math|<var>t</var>}}.
* {{math|'''insert'''(<var>X</var>, f<sub><var>X</var></sub>, <var>t<var>)}}: - insert a key {{math|<var>X</var>}} into the kinetic queue at the current virtual time{{math|<var>t</var>}}, whose value changes as a continuous function {{math|f<sub><var>X</sub></var>(<var>t</var>)}} of time {{math|<var>t</var>}}.
* {{math|'''delete'''(<var>X</var>, <var>t</var>)}} - delete a key {{math||<var>X</var>}} at the current virtual time {{math|<var>t</var>}}.
 
There are several variants of kinetic priority queues, which support the same basic operations but have different performance guarantees. Some of the most common implementations are [[kinetic heap]]s which are simple to implement but don't have tight theoretical performance bounds, and their randomized variants - [[kinetic heater]]s and [[kinetic hanger]]s - which are easier to analyze. There is also a heap-like structure based on the [[dynamic convex hull]] data structure<ref name="dch"/> which achieves better performance for affine motion of the priorities, but doesn't support curved trajectories. The [[kinetic tournament]] is another commonly used implementation. It achieves, deterministically, the same performance bounds as the heater or hanger, however it is less local and responsive than the heap-based data-structures.
{| class="wikitable" border="1"
|+ Time complexities of kinetic priority queue implementations <ref name="hanger"/>
!  Trajectory of element priorities !! Kinetic heap !! Kinetic hanger, heater & tournament !! Dynamic convex hull
|-
| Lines || <math>O(n\log^2 n)</math> || <math>O(n\log^2 n)</math> || <math>O(n\log n)</math>
|-
| Line segments || <math>O(m\sqrt{n}\log^{\frac{3}{2}}n)</math> || <math>O(m \alpha(n)\log^2 n)</math> || <math>O(m\log n \log \log n)</math>
|-
| {{math|&delta;}}-intersecting curves|| <math>O(n^2\log n)</math> || <math>O(\lambda_\delta(n)\log n)</math> || n/a
|}
 
Here, <math>\alpha(x)</math> denotes the [[Ackermann function#Inverse|inverse Ackermann function]].<math>\delta</math>-intersecting curves refer to curves where each pair has at most <math>\delta</math> intersections, and <math>\lambda_\delta(n)</math> refers to a term in the [[Davenport-Schinzel sequence]], which gives the maximum size of the upper envelope of <math>n</math>  <math>\delta-</math>intersecting curves. <math>n</math> is the largest number of elements in the queue at any given time, while <math>m</math> refers to the total number of elements that are ever in the queue.
 
== Applications ==
Kinetic priority queues are used as part of other kinetic data structures/algorithms such as [[kinetic closest pair]], [[kinetic max-cut]]<ref name="max-cut"/> or [[kinetic clustering]].<ref name="clustering"/>
 
They can also be used to solve problems such as [[broadcast scheduling]]<ref name="tarjan"/> or the connected red blue segments intersection problem.<ref name="red-blue"/>
 
== References ==
{{Reflist|refs=
<ref name="tarjan">
{{cite conference| url= http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.12.2739 | title = Faster kinetic heaps and their use in broadcast scheduling | publisher=ACM | accessdate=May 17, 2012| author = K. H., Tarjan, R. and T. K. | booktitle=Proc. 12th ACM-SIAM Symposium on Discrete Algorithms|pages=836–844| year=2001}}
</ref>
<ref name="hanger">
{{cite web | url=http://www.uniriotec.br/~fonseca/hanger.pdf | title=Kinetic hanger|publisher=Information Processing Letters | accessdate=May 17, 2012 |author=da Fonseca, Guilherme D. and de Figueiredo, Celina M. H. and Carvalho, Paulo C. P. | pages=151–157}}
</ref>
<ref name="red-blue">
{{cite book| url=http://dx.doi.org/10.1007/3-540-61680-2_64 | author=Basch, Julien; Guibas, Leonidas; Ramkumar, G. | title=Reporting red-blue intersections between two sets of connected line segments | booktitle=Algorithms — ESA '96| year=1996| publisher=Springer Berlin / Heidelberg|isbn=978-3-540-61680-1}}
</ref>
<ref name="max-cut">
{{cite conference | url=http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/32977.pdf|title=Efficient kinetic data structures for MaxCut | accessdate=May 17, 2012 | author=Czumaj, Arthur; Frahling, Gereon; Sohler, Christian | year=2007 | conference=Canadian Conference on Computational Geometry}}
</ref>
 
<ref name="clustering">
{{cite conference | url=http://dl.acm.org/citation.cfm?id=1014129| title= Clustering moving objects| author = Li, Yifan; Han, Jiawei; Yang, Jiong| publisher=ACM| conference=SIGKDD|booktitle=Proceedings of the tenth ACM SIGKDD international conference on knowledge discovery and data mining|pages=617–622}}
</ref>
<ref name="dch">
{{cite conference| url=http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1181985&tag=1| author=Brodal, G.S.; Jacob, R.|pages=617–626| conference=FCS|year=2002|booktitle=Proc. The 43rd Annual IEEE Symposium on Foundations of Computer Science| title=Dynamic planar convex hull}}
</ref>
}}
 
<!--- Categories --->
 
[[Category:Articles created via the Article Wizard]]
[[Category:Kinetic data structures]]
[[Category:Abstract data types]]
[[Category:Priority queues]]

Latest revision as of 11:00, 24 September 2014

Latarsha is what's written on my birth certificate and Vehicles it. Since I was 18 I've been working for a production and planning police. What me and my family love has been performing origami and I've been doing it for much too long. Illinois has always been my home. My husband horrifying than maintain an online site. You might wish to check one another here: http://topkreditai.lt

My weblog - paskolos