Динамизация - Dynamization

В информатике , динамизацией это процесс преобразования статической структуры данных в динамическом один. Хотя статические структуры данных могут обеспечивать очень хорошую функциональность и быстрые запросы, их полезность ограничена из-за их неспособности быстро увеличиваться / уменьшаться, что делает их неприменимыми для решения динамических проблем , когда объем входных данных изменяется. Методы динамизации обеспечивают единообразные способы создания динамических структур данных.

Разложимые проблемы поиска

Задачу поиска совпадения предиката в множестве определим как . Проблема является разложимой , если множество можно разбить на подмножества и существует операция на результате объединения таких , что .

Разложение

Декомпозиция - это термин, используемый в информатике для разбиения статических структур данных на более мелкие единицы неравного размера. Основной принцип заключается в том, что любое десятичное число можно преобразовать в представление в любой другой системе отсчета. Для получения дополнительных сведений по теме см. Декомпозиция (информатика) . Для простоты в этой статье будет использоваться двоичная система, но также можно использовать любую другую основу (а также другие возможности, такие как числа Фибоначчи ).

При использовании двоичной системы набор элементов разбивается на подмножества размеров с

элементов , где является -й бит в двоичной системе . Это означает , что если имеет -й бит равен 0, то соответствующий набор не содержит каких - либо элементов. Каждое из подмножеств имеет то же свойство, что и исходная статическая структура данных. Операции, выполняемые с новой динамической структурой данных, могут включать в себя обход наборов, сформированных путем декомпозиции. В результате это добавит фактор в отличие от операций со статической структурой данных, но позволит добавить операцию вставки / удаления.

Курт Мельхорн доказал несколько уравнений для временной сложности операций над структурами данных, динамизованными в соответствии с этой идеей. Перечислены некоторые из этих равенств.

Если

 = time to build the static data structure
 = time to query the static data structure
 = time to query the dynamic data structure formed by decomposition
 = amortized insertion time

затем

 
 

Если хотя бы полиномиальный , то .

дальнейшее чтение