Limiti inferiori per le strutture dati


14

Sono noti risultati che escludono l'esistenza di strutture di dati "troppo buone per essere vere"?

Ad esempio: si può aggiungere e funzionalità di una struttura dati mantenimento dell'ordine (vedi Dietz e Sleator STOC '87 ) e ancora ottenere operazioni di tempo?SplitJoinO(1)

Oppure: è possibile implementare un set ordinato con chiavi intere e operazioni temporali ? Naturalmente questo è difficile almeno quanto scoprire un algoritmo di tempo lineare per ordinare gli interi.O(1)

La risposta è stata dimostrata negativa per una di queste domande? Sono noti risultati con limite inferiore per qualsiasi struttura di dati naturali?


Le cose cambiano se siamo in grado di aggiungere limiti allo spazio problematico. Ad esempio, se disponiamo di un numero limitato di chiavi e memoria sufficiente, possiamo ordinarle in tempo lineare usando un vettore bit.
jetru,

1
Penso che il motivo per cui non stai ricevendo troppe risposte a questa domanda è che ci sono così tante possibilità. Molte, molte strutture di dati hanno limiti inferiori noti ed è difficile non inciampare su di essi. Una ricerca di Google per "struttura dei dati" "limite inferiore" include, per me, 5 documenti che devono ancora essere menzionati in questa discussione. Penso che avresti più successo nel rispondere alla tua domanda se la limitassi, forse rimuovendo la parte relativa a "strutture di dati naturali" e chiedendo semplicemente la manutenzione dell'elenco o gli insiemi ordinati interi (ma non entrambi in una domanda).
jbapple,

Ho omesso che i 5 documenti che ho trovato nella ricerca di Google fossero solo sulla prima pagina dei risultati della ricerca.
jbapple,

@jbapple: hai ragione! Penso che i clic delle persone in questa community che cercano di aiutarmi con la mia domanda abbiano spinto i buoni risultati in cima alla lista. (Ad esempio, QUESTA pagina è ora nell'elenco!) Non ricordo che sia utile quando ho fatto la ricerca per la prima volta, o probabilmente avrei limitato la domanda come suggerisci. (O ero un grande manichino, anche questo è possibile. :))
Shaun Harker,

Risposte:


19

C'è una bella chiacchierata sui limiti inferiori dinamici sui grafici di Mihai Pătraşcu. In sintesi (a p.20 delle diapositive), abbiamo i limiti inferiori in termini di tempo di query e tempo di aggiornamento t u (inserire un bordo):tqtu

inserisci qui la descrizione dell'immagine

Vedi il documento per i dettagli. Anche altri articoli di Mihai sono pertinenti e piacevoli.

AGGIORNAMENTO: ho scoperto che la sua tesi di dottorato " Tecniche di limiti inferiori per le strutture di dati " fornisce limiti inferiori per molti problemi centrali della struttura dei dati utilizzando le tecniche che ha sviluppato. Merita sicuramente una lettura.


1
Questa tesi è meravigliosa, grazie mille per aver condiviso il link.
Shaun Harker,

6

La risposta a qualsiasi tua domanda dipende dal modello di calcolo. Ad esempio, su molte macchine, moltiplicare numeri interi è più costoso che aggiungerli. Alcuni modelli riflettono questo, mentre altri no.

O(logn/loglogn)


Bello. Ma sembra che tu abbia esagerato il risultato nel documento di Andersson e Thorup. Si applica solo alle strutture spaziali lineari, non a tutte le strutture spaziali polinomiali.
Shaun Harker,

2
Andersson e Thorup citano Beame e Fich per lo spazio polinomiale: "Il limite inferiore deriva da un risultato di Beame e Fich. Mostra che anche se vogliamo solo supportare operazioni di inserimento e predecessore nello spazio polinomiale, una di queste due operazioni ha un limite peggiore di Ω (sqrt (log n / log log n)), corrispondente al nostro limite superiore comune. Notiamo che si possono trovare limiti e compromessi migliori per alcune delle singole operazioni. In effetti, supporteremo min, max, predecessore, successore ed operazioni di eliminazione in tempo costante e inserire e cercare solo nel tempo Θ (sqrt (log n / log log n)). "
jbapple,

Vedo, lo spazio lineare entra per pubblicizzare il limite superiore , ma il Corollario 3.10 di Beame e Fich dà il limite inferiore del polispazio , come hai affermato e io sono scioccamente contraddetto. Mi viene anche in mente che si potrebbe voler pubblicizzare i tempi peggiori per i limiti superiori mentre si pubblicizzano i tempi ammortizzati per i limiti inferiori. Il documento di Andersson e Thorup cita infatti (pagina 5) Beame e Fich per un limite inferiore (e superiore) ammortizzato. Ma Corollary 3.10 sembra dare solo il limite inferiore per il caso peggiore. Forse qualcuno potrebbe darmi un suggerimento anche su questo?
Shaun Harker,

2

O(nlogn)

Inoltre, non è insolito utilizzare argomenti di teoria dell'informazione (ad es. Complessità di Kolmogorov) al fine di dimostrare limiti inferiori per le strutture di dati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.