Dynamization
This article needs additional citations for verification. (February 2023) |
In computer science, dynamization is the process of transforming a static data structure into a dynamic one.[1] 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 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). 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 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 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, then .
References
- ^ Mathieu, Claire; Rajaraman, Rajmohan; Young, Neal E.; Yousefi, Arman (2024-10-11). "Competitive Data-Structure Dynamization". ACM Trans. Algorithms. 20 (4): 37:1–37:28. arXiv:2011.02615. doi:10.1145/3672614. ISSN 1549-6325.
Dynamization is a generic technique for transforming any static container data structure into a dynamic one that supports insertions and queries intermixed arbitrarily.
Further reading
- Kurt Mehlhorn, Data structures and algorithms 3, . An EATCS Series, vol. 3, Springer, 1984.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.