In
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
, dynamization is the process of transforming a
static data structure
Static may refer to:
Places
*Static Nunatak, a nunatak in Antarctica
United States
*Static, Kentucky and Tennessee
*Static Peak, a mountain in Wyoming
** Static Peak Divide, a mountain pass near the peak
Science and technology Physics
*Static el ...
into a
dynamic
Dynamics (from Greek δυναμικός ''dynamikos'' "powerful", from δύναμις ''dynamis'' "power") or dynamic may refer to:
Physics and engineering
* Dynamics (mechanics)
** Aerodynamics, the study of the motion of air
** Analytical dynam ...
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 amount of the input data changes. Dynamization techniques provide uniform ways of creating dynamic data structures.
Decomposable search problems
We define problem
of searching for the predicate
match in the set
as
. Problem
is ''decomposable'' if the set
can be decomposed into subsets
and there exists an operation
of result unification such that
.
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
There are different types of decomposition defined in compu ...
. 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 numbers, commonly denoted , form a sequence, the Fibonacci sequence, in which each number is the sum of the two preceding ones. The sequence commonly starts from 0 and 1, although some authors start the sequence from ...
s) can also be utilized.
If using the binary system, a set of
elements is broken down into subsets of sizes with
:
elements where
is the
-th bit of
in binary. This means that if
has
-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
sets formed by decomposition. As a result, this will add
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
*
is the time to build the static data structure
*
is the time to query the static data structure
*
is the time to query the dynamic data structure formed by decomposition
*
is the amortized insertion time
then
*
*
If
is at least
polynomial
In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An exa ...
, then
.
Further reading
*Kurt Mehlhorn
Data structures and algorithms3, . An EATCS Series, vol. 3, Springer, 1984.
Data structures