HOME

TheInfoList



OR:

In
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied 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 quickly, thus making them inapplicable for the solution of dynamic problems, where 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 S_i and there exists an operation + of result unification such that P(M,S) = P(M,S_0) + P(M,S_1) + \dots + P(M,S_n).


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) Decomposition in computer science, also known as factoring, is breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain. Overview Different types of decomposition are defined in computer sc ...
. For simplicity, binary system will be used in this article but any other base (as well as other possibilities such as
Fibonacci number In mathematics, the Fibonacci sequence is a Integer sequence, sequence in which each element is the sum of the two elements that precede it. Numbers that are part of the Fibonacci sequence are known as Fibonacci numbers, commonly denoted . Many w ...
s) can also be utilized. If using the binary system, a set of n elements is broken down into subsets of sizes with :2^*n_ elements where n_ 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 \log_\left(n\right) sets formed by decomposition. As a result, this will add O(\log\left(n\right)) factor as opposed to the static data structure operations but will allow insert/delete operation to be added.
Kurt Mehlhorn Kurt Mehlhorn (born 29 August 1949) is a German theoretical computer scientist. He has been a vice president of the Max Planck Society and is director of the Max Planck Institute for Computer Science. Education and career Mehlhorn graduated in ...
proved several equations for time complexity of operations on the data structures dynamized according to this idea. Some of these equalities are listed. If * P_S\left(n\right) is the time to build the static data structure * Q_S\left(n\right) is the time to query the static data structure * Q_D\left(n\right) is the time to query the dynamic data structure formed by decomposition * \overline is the amortized insertion time then * Q_D\left(n\right) = O\left(Q_S\left(n\right)\cdot\log\left(n\right)\right) * \overline{I}=O\left(\left(P_S\left(n\right)/n\right)\cdot\log\left(n\right)\right). If Q_S\left(n\right) is at least
polynomial In mathematics, a polynomial is a Expression (mathematics), mathematical expression consisting of indeterminate (variable), indeterminates (also called variable (mathematics), variables) and coefficients, that involves only the operations of addit ...
, then Q_D\left(n\right)=O\left(Q_S\left(n\right)\right).


Further reading

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