Single crossing condition: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Lotje
m Punctuation
 
fixed punctuation -- periods to commas inside sentence
 
Line 1: Line 1:
Nice to satisfy you, my title is Refugia. Hiring is her day occupation now but she's usually wanted her personal business. The factor she adores most is physique building and now she is trying to earn money with it. Years ago he moved to North Dakota and his family members loves it.<br><br>Feel free to visit my blog post std testing at home - [http://www.gaysphere.net/user/KJGI simply click the following website page],
In [[computer science]], '''dynamization''' is the process of transforming a [[static data structure]] into a [[dynamic data structure|dynamic]] one. Although static data structures may provide very good functionality and fast queries, their utility is limited because of their inability to grow/shrink fast, thus making them inapplicable for the solution of [[dynamic problem (algorithms)|dynamic problem]]s, where the amount of the input data changes. Dynamization techniques provide uniform ways of creating dynamic data structures.
 
==Decomposable search problems==
We define problem <math>P</math> of searching for the predicate <math>M</math> match in the set <math>S</math> as <math>P(M,S)</math>. Problem <math>P</math> is ''decomposable'' if the set <math>S</math> can be decomposed into subsets <math>S_i</math> and there exists an operation <math>+</math> of result unification such that <math>P(M,S) = P(M,S_0) + P(M,S_1) + \dots + P(M,S_n)</math>.
 
==Decomposition==
Decomposition is a term used in computer science to break static data structures into smaller units of unequal size. The basic principle is the idea that any decimal number can be translated into a representation in any other base. For more details about the topic see [[Decomposition (computer science)]]. For simplicity, binary system will be used in this article but any other base (as well as other possibilities such as [[Fibonacci number]]s) can also be utilized.
 
If using the binary system, a set of <math>n</math> elements is broken down into subsets of sizes with
 
:<math>2^{i}*n_{i}</math>   
 
elements where <math>n_{i}</math> is the  <math>i</math>-th bit of <math>n</math> in binary. This means that if <math>n</math> has <math>i</math>-th bit equal to 0, the corresponding set does not contain any elements. Each of the subset has the same property as the original static data structure. Operations performed on the new dynamic data structure may involve traversing <math>\log_{2}\left(n\right)</math> sets formed by decomposition. As a result, this will add <math>O(\log\left(n\right))</math>  factor as opposed to the static data structure operations but will allow insert/delete operation to be added.  
 
[[Kurt Mehlhorn]] proved several equations for time complexity of operations on the data structures dynamized according to this idea. Some of these equalities are listed.  
 
If
 
<math>P_S\left(n\right)\,\!</math> = time to build the static data structure
<math>Q_S\left(n\right)\,\!</math> = time to query the static data structure
<math>Q_D\left(n\right)\,\!</math> = time to query the dynamic data structure formed by decomposition
<math>\overline{I}</math> = amortized insertion time
 
then
 
  <math>Q_D\left(n\right) = O(Q_S\left(n\right)\log\left(n\right))\,\!</math>
  <math>\overline{I}=O(\left(P_S\left(n\right)/n\right)\log\left(n\right))</math>
 
If <math>Q_S\left(n\right)</math> is at least [[polynomial]], then <math>Q_D\left(n\right)=O\left(Q_S\left(n\right)\right)</math>.
 
==Further reading==
Kurt Mehlhorn, [http://www.mpi-sb.mpg.de/~mehlhorn/DatAlgbooks.html Data structures and algorithms] 3, . An EATCS Series, vol. 3, Springer, 1984.
 
[[Category:Data structures]]

Latest revision as of 11:17, 4 February 2013

In computer science, dynamization is the process of transforming a static data structure into a dynamic one. Although static data structures may provide very good functionality and fast queries, their utility is limited because of their inability to grow/shrink fast, thus making them inapplicable for the solution of dynamic problems, where the amount of the input data changes. Dynamization techniques provide uniform ways of creating dynamic data structures.

Decomposable search problems

We define problem P of searching for the predicate M match in the set S as P(M,S). Problem P is decomposable if the set S can be decomposed into subsets Si and there exists an operation + of result unification such that P(M,S)=P(M,S0)+P(M,S1)++P(M,Sn).

Decomposition

Decomposition is a term used in computer science to break static data structures into smaller units of unequal size. The basic principle is the idea that any decimal number can be translated into a representation in any other base. For more details about the topic see Decomposition (computer science). For simplicity, binary system will be used in this article but any other base (as well as other possibilities such as Fibonacci numbers) can also be utilized.

If using the binary system, a set of n elements is broken down into subsets of sizes with

2ini

elements where ni is the i-th bit of n in binary. This means that if n has i-th bit equal to 0, the corresponding set does not contain any elements. Each of the subset has the same property as the original static data structure. Operations performed on the new dynamic data structure may involve traversing log2(n) sets formed by decomposition. As a result, this will add O(log(n)) factor as opposed to the static data structure operations but will allow insert/delete operation to be added.

Kurt Mehlhorn proved several equations for time complexity of operations on the data structures dynamized according to this idea. Some of these equalities are listed.

If

PS(n) = time to build the static data structure
QS(n) = time to query the static data structure
QD(n) = time to query the dynamic data structure formed by decomposition
I = amortized insertion time

then

 QD(n)=O(QS(n)log(n))
 I=O((PS(n)/n)log(n))

If QS(n) is at least polynomial, then QD(n)=O(QS(n)).

Further reading

Kurt Mehlhorn, Data structures and algorithms 3, . An EATCS Series, vol. 3, Springer, 1984.