Структура даних для мінімальних точкових запитів продукту


19

Rn⟨⋅,⋅⟩mv1,v2,…,vmx∈RnПро ( п т ) п = 2 O ( увійти 2 м )mini⟨x,vi⟩O(nm)n=2O(log2⁡m)

Єдине, що я можу придумати, - це наступне. Безпосереднім наслідком леми Джонсона-Лінденштраусса є те, що для кожного і розподілу на існує лінійне відображення (який можна оцінити за час ) таким чином, що . Отже, за часом O ((n + m) \ log m) ми можемо обчислитиD R n f : R n → R O ( журнал m )ε>0DRnf:Rn→RO(log⁡m)O(nlog⁡m)Prx∼D[∀i⟨x,vi⟩−ε(‖x‖+‖vi‖)2≤⟨f(x),f(vi)⟩≤⟨x,vi⟩+ε(‖x‖+‖vi‖)2]≥1−εO((n+m)log⁡m)щось, яке в деякому сенсі близьке до mini⟨x,vi⟩ для більшості x (принаймні, якщо норми ‖x‖ та ‖vi‖ малі).

UPD Вищезазначене обмеження може бути дещо заточене до часу запиту O(n+m) якщо ми використовуємо хеш-чутливість до місцевості. Точніше, ми вибираємо k:=O(1ε2) незалежні гауссові вектори r1,r2,…,rk . Тоді ми відображаємо Rn до {0,1}k так: v↦(⟨r1,v⟩≥0,⟨r2,v⟩≥0,…,⟨rk,v⟩≥0) . Тоді ми можемо оцінити кут між двома векторами в межах додаткової помилки ε , ℓ1 у зображенні цього відображення. Таким чином, ми можемо оцінити крапкові продукти в межах помилки добавкиε‖x‖‖vi‖в O(1ε2) час.



Я не впевнений, чи це працює чи допомагає, але ваша проблема (після переключення знаку v_i для перетворення на максимізацію) виглядає пов'язаною з діаграмами Вороного. Можливо, можливо змінити алгоритми діаграм Вороного до цієї проблеми, але навіть якщо це можливо, це буде корисно лише для малих n.
— Цуйосі Іто

Я не знаю, чи це одне і те ж спостереження ... Усі x можна нормалізувати на одиничний вектор і не змінити результат, ми можемо зробити все в одиничному n-кубі, орієнтованому за походженням. Знайдіть, яка область куба мінімізує крапковий добуток з vi для кожного i (кожна область повинна бути багатогранною). Я не пов'язаний з кількістю політопів. Якщо він менший від експоненціальної у nm , у вас є щось краще, ніж O(nm) , виконуючи запит розташування n-мірних точок.
— Чао Сю

який параметр вам більше цікавий? зазвичай, якщо ви хочете отримати підлінійку в m, ви почнете отримувати експоненціальну в n.
— Суреш Венкат

@Suresh Ну добре було б зрозуміти різні можливі компроміси. Приблизна версія теж цікава.
— ilyaraz

Швидка примітка: для випадку n = 2 двійковий пошук на опуклому корпусі дає час запиту . O(log⁡n)
— Джеффрі Ірвінг

Відповіді:


16

Розглянемо особливий випадок, коли ви просто хочете визначити, чи ваш запит вектор ортогональний деякому вектору вашої попередньо обробленої колекції. (Тобто ви хочете визначити, чи , де вектори, що обговорюються, мають негативні коефіцієнти.) Цей випадок вже дуже цікавий.mini⟨x,vi⟩=0

Припустимо, ви можете відповідати на запити в час для деякого , з попередньою (the градуси полінома не повинні залежати від або або ).nO(1)m1−δδ>0mO(1)nO(1)mnδ

У статті "Новий алгоритм оптимального задоволення 2 обмежень та його наслідки" я зауважив, що така структура даних фактично дозволить вам вирішити CNF-SAT за час протягом деякого , де - кількість змінних. Це спростувало б "Гіпотезу сильного експоненціального часу", що k-SAT вимагає по суті часу для необмеженого .2αvα<1v2nk

Щоб зрозуміти, чому, припустимо, час попередньої обробки обмежений . Розглянемо формулу CNF з змінними і пропозиціями. Ми розділили набір змінних на дві частини і розміром і відповідно. Перерахуйте всі можливі присвоєння змінним у частинах (отримання та призначення відповідно). Пов’яжіть кожне з цих часткових призначень з вектором де якщо(nm)cFvnP1P2v(1−1/(2c))v/(2c)2v(1−1/(2c))2v/(2c)Ainwiwi[j]=1jй розділ не задовольняє . Отже, у нас є два списки експоненціально багатьох бітових векторів.FAi

Зауважте, що є задоволеним, якщо є вектор з призначення на і вектор з призначення на таким, що .Fw1P1w2P2⟨w1,w2⟩=0

Тепер нехай і попередньо обробляє передбачувану структуру даних з усіма векторами з частини . Це вимагає часу, за припущенням. Запустіть алгоритм запиту на всіх векторах із завдань по частині . За припущенням, це займе . Нехай .m=2v/(2c)P2n2v/2P12v(1−1/(2c))⋅nO(1)m1−δ=nO(1)2v−δv/(2c)α=1−δ/(2c)

Можливо, можливо отримати ефективну попередню обробку і час запитів за допомогою існуючих методів. Найбільш відомі алгоритми CNF-SAT не виключають цього. (Вони отримують щось на зразок .) Але для обчислення є дещо сильнішим - у цій установці це було б як рішення MAX CNF-SAT.nO(1)m1−1/(log⁡log⁡m)2n−n/log⁡nmini⟨x,vi⟩


Дивовижно! Але це не виключає приблизних структур даних, а також часу запитів, таких як , що також було б дуже цікаво. O(m⋅poly(log⁡n))
— ilyaraz

До речі, чи не можна сказати щось на кшталт "якби навіть була приблизна структура даних із швидким часом запиту, то MAX-SAT була б приблизною".
— ilyaraz

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

ilyaraz: Так, навіть приблизні структури даних означали б приблизний MAX-SAT. Цуйосі: Дякую за ваше розуміння
— Райан Вільямс

6

Ось одна ідея на точну відповідь, на яку я підозрюю, що Чао Сю може натякнутись. По-перше, зауважте, що ми можемо нормалізувати , як вказує Чао. Тепер розглянемо гіперплощину нормі до напрямку . Мета - знайти точку, найближчу до цієї гіперплани. За подвійністю це відповідає запиту зйомки променями в розташуванні гіперпланів, щоб знайти найближчу площину "вище" точки запиту. Оскільки це можна заздалегідь обробити, головна складність полягає у розташуванні точки, і тому ваша проблема зводиться до складності здійснення точки розташування в розташуванні гіперплощин. Використовуючи живці, це можна зробити за час у просторі.xhxO(log⁡n)nd


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