Dynamic problem (algorithms)

Dynamic problem (algorithms)

Dynamic problems in computational complexity theory are problems stated in terms of the changing input data. In the most general form a problem in this category is usually stated as follows:

  • Given a class of input objects, find efficient algorithms and data structures to answer a certain query about a set of input objects each time the input data is modified, i.e., objects are inserted or deleted.

Problems of this class have the following measures of complexity

  • Memory space to store the required data structure
  • Initial construction time for the data structure
  • Insertion time, time required for the update of the data structure when one more input element is added
  • Deletion time, time required for the update of the data structure when an input element is deleted
  • Query time: time required to answer
  • Other operations specific to the problem in question

The overall set of computations for a dynamic problem is called a dynamic algorithm.

Many algorithmic problems stated in terms of fixed input data (called static problems in this context and solved by static algorithms) have meaningful dynamic versions.

Online algorithms present a special case of dynamic algorithms, in which only additions of elements are allowed, possibly starting from the empty/trivial input data.

Contents

Examples

Maximal element

Static problem 
For a set of N numbers find the maximal one.

The problem may be easily solved in O(N) time.

Dynamic problem 
For an initial set of N numbers, dynamically maintain the maximal one when insertion and deletions are allowed.

A well-known solution for this problem is using a self-balancing binary search tree. It takes space O(N), may be initially constructed in time O(N log N) and provides insertion, deletion and query times in O(log N).

The priority queue maintenance problem 
It is a simplified version of this dynamic problem, where one requires to delete only the maximal element. This version may do with simpler data structures.

Graphs

Given a graph, maintain its parameters, such as connectivity, maximal degree, shortest paths etc., when insertion and deletion of its edges are allowed.[1]

See also

References

  1. ^ D. Eppstein, Z. Galil, and G. F. Italiano. "Dynamic graph algorithms". In CRC Handbook of Algorithms and Theory of Computation, Chapter 22. CRC Press, 1997.

Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Dynamic programming — For the programming paradigm, see Dynamic programming language. In mathematics and computer science, dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. It is applicable to problems… …   Wikipedia

  • Dynamic priority scheduling — is a type of scheduling algorithm in which the priorities are calculated during the execution of the system. The goal of dynamic priority scheduling is to adapt to dynamically changing progress and form an optimal configuration in self sustained… …   Wikipedia

  • Dynamic game difficulty balancing — Dynamic game difficulty balancing, also known as dynamic difficulty adjustment (DDA) or dynamic game balancing (DGB), is the process of automatically changing parameters, scenarios and behaviors in a video game in real time, based on the player s …   Wikipedia

  • Dynamic convex hull — The dynamic convex hull problem is a class of dynamic problems in computational geometry. The problem consists in the maintenance, i.e., keeping track, of the convex hull for the dynamically changing input data, i.e., when input data elements may …   Wikipedia

  • Dynamic time warping — Not to be confused with the Time Warp mechanism for discrete event simulation, or the Time Warp Operating System that used this mechanism. Dynamic time warping (DTW) is an algorithm for measuring similarity between two sequences which may vary in …   Wikipedia

  • Dynamic range compression — This article is about a process that intentionally reduces the dynamic range of audio signals. For similar reductions caused by circuit imperfections, see Gain compression. For processes that reduce the size of digital audio files, see Audio… …   Wikipedia

  • Dynamic programming — Dynamische Programmierung ist ein Paradigma zum algorithmischen Lösen von Optimierungsproblemen. Der Begriff wurde in den 1940er Jahren von dem amerikanischen Mathematiker Richard Bellman eingeführt, der diese Methode auf dem Gebiet der… …   Deutsch Wikipedia

  • Dynamic antisymmetry — Antisymmetry is a theory of syntactic linearization presented in Richard Kayne s 1994 monograph The Antisymmetry of Syntax. The crux of this theory is that hierarchical structure in natural language maps universally onto a particular surface… …   Wikipedia

  • Ant colony optimization algorithms — Ant behavior was the inspiration for the metaheuristic optimization technique. In computer science and operations research, the ant colony optimization algorithm (ACO) is a probabilistic technique for solving computational problems which can be… …   Wikipedia

  • Subset sum problem — In computer science, the subset sum problem is an important problem in complexity theory and cryptography. The problem is this: given a set of integers, does the sum of some non empty subset equal exactly zero? For example, given the set { −7, −3 …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”