dinamizzazione - Dynamization
In informatica , dinamizzazione è il processo di trasformazione di una struttura di dati statici in una dinamica uno. Anche se le strutture di dati statici possono fornire ottime funzionalità e domande veloci, la loro utilità è limitata a causa della loro incapacità di crescere / ridursi rapidamente, rendendoli così inapplicabili per la soluzione di problemi dinamici , in cui la quantità delle modifiche dei dati di ingresso. Tecniche di dinamizzazione forniscono modi uniformi per la creazione di strutture dati dinamiche.
problemi di ricerca scomponibili
Definiamo problema di cercare il predicato partita nel set come . Problema è decomponibile se l'insieme può essere scomposto in sottoinsiemi ed esiste un'operazione di unificazione risultato tale che .
Decomposizione
La decomposizione è un termine usato in informatica per rompere le strutture di dati statici in unità più piccole di dimensioni diverse. Il principio di base è l'idea che qualsiasi numero decimale può essere convertito nella rappresentazione in qualsiasi altra base. Per maggiori informazioni sull'argomento vedi decomposizione (informatica) . Per semplicità, sistema binario sarà utilizzato in questo articolo, ma qualsiasi altra base (così come altre possibilità, come numeri di Fibonacci ) può anche essere utilizzato.
Se si utilizza il sistema binario, un insieme di elementi è suddiviso in sottoinsiemi di formati con
elementi dove è il bit -esimo in binario. Ciò significa che se ha -esimo bit uguale a 0, l'insieme corrispondente non contiene alcun elemento. Ciascuno dei sottoinsieme ha la stessa struttura come struttura dati statica originaria. Operazioni eseguite sulla nuova struttura dati dinamica possono comportare l'attraversamento insiemi formati da decomposizione. Di conseguenza, questo aggiungerà fattore in contrasto con le operazioni di struttura dati statici, ma permetterà inserimento / cancellazione operazione da aggiungere.
Kurt Mehlhorn dimostrato diverse equazioni per tempo complessità delle operazioni sulle strutture dati dinamizzati secondo questa idea. Alcuni di questi sono elencati uguaglianze.
Se
= 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
poi
Se è almeno polinomiale , allora .
ulteriore lettura
- Kurt Mehlhorn, strutture dati e algoritmi 3,. Un EATCS Series, vol. 3, Springer, 1984.