Нижні межі для структур даних


14

Чи відомі результати, які виключають існування структур "занадто хороших, щоб бути справжніми"?

Наприклад: чи можна додати функцію Split та Join до структури даних щодо обслуговування замовлень (див. Dietz і Sleator STOC '87 ) і все-таки отримати операції O(1) ?

Або: чи можна реалізувати впорядкований набір з цілими клавішами та операціями часу? Звичайно, це як мінімум так важко, як виявити алгоритм лінійного часу для сортування цілих чисел.O(1)

Чи було доведено, що відповідь ні на одне з цих питань не відповідає? Чи відомі результати нижньої межі для будь-якої природної структури даних?


Речі змінюються, якщо ми зможемо додати обмеження до проблемного простору. Наприклад, якщо у нас обмежений набір клавіш і достатньо пам'яті, ми можемо їх сортувати за лінійним часом, використовуючи бітовий вектор.
jetru

1
Я думаю, що причина, коли ви не отримуєте занадто багато відповідей на це питання, полягає в тому, що можливостей дуже багато. Багато, багато структур даних мають нижню межу, і важко не просто наткнутися на них. Пошук у Google "структури даних" "нижньої межі" включає для мене 5 статей, які ще мають бути згадані в цій темі. Думаю, ви отримали б більше успіху, отримавши відповідь на своє запитання, якби ви обмежили його, можливо, видаливши частину про "природну структуру даних [і]" і просто задавши питання про підтримку списку або впорядковані цілі набори (але не обидва в одному питанні).
jbapple

Я опустив, що 5 робіт, які я знайшов у пошуку Google, знаходилися лише на першій сторінці результатів пошуку.
jbapple

@jbapple: Ви праві! Я думаю, що кліки людей у ​​цій спільноті, які намагаються допомогти мені з моїм запитанням, піднесли хороші результати до початку списку. (Наприклад, ця сторінка зараз у списку!) Я не пам'ятаю, щоб вона була корисною, коли я вперше здійснила пошук, або я, мабуть, обмежувала б питання, як ви пропонуєте. (Або я був великим манекеном, це теж можливо. :))
Шон Харкер

Відповіді:


19

Існує дуже приємно говорити про динамічні нижніх оцінках на графіках Міхая Pătraşcu. Підсумовуючи (на стор. 20 слайдів), ми маємо нижні межі з точки зору часу запиту та часу оновлення t u (вставити край):tqtu

введіть тут опис зображення

Докладніше див. У статті . Деякі інші папери Михая є актуальними і приємними.

ОНОВЛЕННЯ: Я виявив, що його докторська дисертація " Нижньомежні методи для структур даних " забезпечує нижню межу для багатьох центральних проблем структури даних, використовуючи розроблені ним методи. Це, безумовно, варто прочитати.


1
Ця теза чудова, дуже дякую за те, що поділилися посиланням.
Шон Харкер

6

Відповідь на будь-яке ваше запитання залежить від моделі обчислення. Наприклад, на багатьох машинах множення цілих чисел дорожче, ніж їх додавання. Деякі моделі це відображають, а деякі - ні.

О(журналн/журналжурналн)


Приємно. Але, здається, ви завищили результат у папері Андерссона та Торупа. Це стосується лише лінійних просторових структур, а не всіх поліноміальних просторових структур.
Шон Харкер

2
Андерссон і Торруп цитують Беама і Фіха для поліноміального простору: "Нижня межа випливає з результату Беама і Фіха. Це показує, що навіть якщо ми просто хочемо підтримувати операції вставки і попередника в поліноміальному просторі, одна з цих двох операцій має найгірший зв'язаний Ω (sqrt (log n / log log n)), що відповідає нашій загальній верхній межі. Зауважимо, що для деяких окремих операцій можна знайти кращі межі та компроміси. Дійсно, ми підтримаємо min, max, попередник, наступник та видалення операцій за постійний час, і виконайте лише вставлення та пошук у Θ (sqrt (log n / log log n)) time. "
jbapple

Я бачу, лінійний простір надходить для реклами верхньої межі , але слідство 3.10 Беама і Фіха дає нижню межу поліпростору , як ви заявили, і я нерозумно суперечив. Мені також здається, що можна захотіти рекламувати найгірші випадки для верхніх меж, тоді як реклама амортизована для нижчих. Папір Андерссона і Торупа справді цитує (стор. 5) Беам і Фіх для амортизованої нижньої (і верхньої) межі. Але слідство 3.10 лише, здається, дає нижню межу в гіршому випадку. Можливо, хтось міг би підказати і мені на це?
Шон Харкер

2

На додаток до того, що ви згадуєте у своєму запитанні, одним класичним прикладом є те, що цілі числа не можуть бути відсортовані за допомогою порівнянь швидше, ніж О(нжурналн) для того, щоб довести відсутність надбудов.

Крім того, незвично використовувати аргументи теорії інформації (наприклад, складність Колмогорова) для доведення нижчих меж для структур даних.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.