Торгуйте між часом та складністю запиту


18

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

Мені цікаво працювати в класичній чи квантовій літературі, але надаю приклади з КК, оскільки я більш знайомий.

Деякі відомі алгоритми, такі як пошук Гровера і пошук періоду Шора, складність часу знаходяться в межах полі-логарифмічних факторів складності запиту. Для інших, таких як проблема прихованої підгрупи, ми маємо складність поліноміального запиту , але алгоритми поліноміального часу не відомі.

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

Чи є приклади компромісів між складністю часу та запиту?

Чи є проблеми, коли найвідоміший алгоритм складності часу має іншу складність запиту, ніж найкращий алгоритм складності запитів? Іншими словами, чи можемо ми виконати більше запитів, щоб полегшити операції між запитами?

Або є аргумент, який показує, що завжди існує версія асимптотично оптимального алгоритму запитів, що має реалізацію з найкращою асимптотикою за часом?


Ви хочете природну проблему чи це також штучна проблема?
Робін Котарі

2
Природні проблеми воліють, але штучні проблеми краще, ніж відповіді.
Артем Казнатчеєв

Відповіді:


9

Ось спроба створити штучну функцію із таким властивістю:

  • Проблема може бути вирішена за допомогою запитів , але вимагає часу exp ( n ) .О(журналн)досвід(н)
  • Проблему можна вирішити за допомогою часу, але для цього потрібні O ( n ) запитиО(н)О(н)

Нехай розмір вводу буде . Нехай перший журнал n бітів (назвемо цей рядок x) кодує вхід до проблеми, завершеної для EEXP. Наступні n бітів (назвемо цей рядок y) мають властивість, що всі вони дорівнюють нулю, якщо і лише тоді, коли x - НЕ екземпляр проблеми, завершеної EEXP.н+журналнжурналнн

Словом, перший біт кодує важку проблему, а наступний n біт дає вам підказку щодо вирішення проблеми. Однак, щоб з'ясувати рішення, переглянувши n бітову рядок, ви робите Ω ( n ) запити.журналнннΩ(n)

Таким чином, цю проблему можна вирішити або зчитуванням лише першого бітів і витрачанням exp (n) часу, або зчитуванням n бітів та використанням лише лінійного часу.lognn

Ця ж функція проходить і для квантової складності запиту. Вставте квадратні кореневі знаки, де це необхідно.


7

Більш екстремальна версія прикладу Робіна:

Нехай розмір вводу буде , причому перші n - 1 біт (називайте цю рядок x ), що кодує машину Тюрінга T x . Зафіксуйте деяку функцію f ( n ) . Нехай останній біт рядка дорівнює 1, якщо машина Тюрінга T x зупиняється менше, ніж f ( n ) кроків. Проблема полягає в тому, щоб визначити, чи зупиняється T x менше, ніж f ( n ) кроків, і парність x є парною.nn1xTxf(n)1Txf(n)Txf(n)x

Таким чином, роблячи запитів, проблема може бути вирішена в часі O ( f ( n ) ) , тоді як шляхом n запитів проблема може бути вирішена в часі O ( n ) .n1O(f(n))nO(n)


Ви, мабуть, мали на увазі, що останній біт буде таким, що парність x - це навіть якщо машина Тьюрінга зупиняється в часі (інакше для запитання потрібен лише один запит;)). Це приємно і може бути модифіковане, щоб дати будь-який поділ, який ми хочемо, між часом і запитом. Розглянемо будь-яку функцію і g ( n ) < n , тоді нехай перші g ( n ) біти x - опис машини, що обертається. Нехай інші n - g ( n ) з xg(n)=ω(1)g(n)<ng(n)xng(n)xбіти повинні бути такими, що парність рівна, якщо iff T x зупиняється менше, ніж f ( n ) > n кроків. Тоді ми маємо g ( n ) проти n запитів за вартістю Θ ( f ( n ) ) проти n в часі. xTxf(n)>ng(n)nΘ(f(n))n
Артем Казнатчеєв

Ігноруйте перше речення мого попереднього коментаря.
Артем Казнатчеєв

7

Мені подобається відповідь Робіна Котарі та модифікація Джо Фіцсімонса. При очевидному розширенні їх відповідей вони можуть досягти будь-якого коефіцієнта поділу (крім постійного проти постійного) між меншою та більшою складністю запитів та більшою та меншою часовою складністю. Однак очевидного способу зробити їх функції не частковими. Я хочу вказати на природну проблему, коли ми маємо поділ, і показати, що великі поділи складніші для загальних функцій.


Природна проблема

Бен Рейхардт вказав електронною поштою проблему оцінки формули. Квантова складність запиту для оцінювання загальної формули зчитування одноразово AND-OR на змінних становить Θ ( n. ОднакO(Θ(n)алгоритм запиту не є ефективним у часі. Тутпоказано найшвидший відомий алгоритм складанняO(O(n)запити і запускаються в часі полілогарифмічно гірше. Таким чином, ми маємо природну тотальну проблему, коли відоме розділення. Хоча немає доказів того, що цей поділ має існувати.O(nlogn)

Загальні функції важче розділити?

Мені здається, що важче знайти тотальні функції з відомими відокремленнями. Щоб показати, що випадок загальної та часткової функцій різний, я наведу аргумент про найбільший поділ між складністю запиту на алгоритми запиту - оптимальні та оптимально за часом для загальної функції.

mΩ(logm)mnnmm0

(складність запиту,часова складність)(q1(н),т1(н))(q2(н),т2(н))q2(н)f(q1(н))f(н)=О(2н)

[1] HU Simon, "Міцний Z (loglogn) - пов'язаний з часом паралельної оперативної пам'яті для обчислення невироджених булевих функцій", у: Symp. про основи теорії обчислень, конспекти лекцій з інформатики, т. 158, Спрингер, Берлін, 1983, стор. 439–444.

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