Рідка трансформація Уолша-Хадамара


15

Перетворення Уолша-Адамара (WHT) є узагальненням перетворення Фур'є, і є ортогональное перетворення на векторі дійсних або комплексних чисел розмірності . Трансформація популярна в квантових обчисленнях, але останнім часом вона була вивчена як своєрідний попередній умова для випадкових проекцій великогабаритних векторів для використання у доказуванні леми Джонсона-Лінденстраусса. Його основна особливість полягає в тому, що, хоча це квадратна d × d матриця, вона може бути застосована до вектора в часі O ( d log d ) (а не d 2 ) методом, подібним до FFT.г=2мг×гО(гжурналг)г2

Припустимо, вхідний вектор є рідким : він має лише кілька ненульових записів (скажімо, ). Чи є спосіб обчислити WHT за час f ( r , d ) таким, що f ( d , d ) = O ( d log d ) і f ( r , d ) = o ( d log d ) для r = o ( г ) ?rгf(r,г)f(г,г)=О(гжурналг)f(r,г)=о(гжурналг)r=о(г)

Примітка: ці вимоги є лише одним із способів формалізації думки про те, що мені б хотілося щось, що працює швидше, ніж для малих r .гжурналгr


Я впевнений, що вам відомо про наступні два легких спостереження, але все одно я запишу їх для інших читачів: (1) Пряме множення дає час O (rd). Це краще, ніж O (d log d), лише коли r = o (log d). (2) Навіть якщо вхідний вектор рідкий, вихід взагалі не є рідким. Це означає, що ми не можемо сподіватися, що f (r, d) буде o (d) навіть при r = 1.
Цуйосі Іто

4
Чи знаєте ви, що відповідає на те саме запитання про перетворення Фур'є?
Робін Котарі

Цуйосі: так, я знаю (1), і це насправді те, що робиться для додатків, які цього потребують. що стосується (2), це також правда. Робін, це хороший момент - я нічого не знаю про FT, і насправді це може бути гарним місцем для початку копання.
Суреш Венкат

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

Відповіді:


6

Індексуйте рядки WHT цілим числом x, для . Отже x має біти log d. Аналогічно індексуйте стовпці. (Х, Y) положення ( - 1 ) х , у де показник є скалярним твором лог довжини д. Припустимо, r - потужність 2, округлюючи при необхідності. Розбийте матрицю dxr на блоки rxr, дозволяючи першим бітам журналу r змінюватись і фіксуючи інші біти журналу (d / r) у кожному з d / r способів. Цей блок rxr є меншою матрицею WHT розміром r, за винятком випадків, коли деякі стовпці відсутні, повторюються або заперечуються. У будь-якому випадку, попередньо обробити вектор легко, потім зробіть rxr WHT в часі r log r, а потім повторіть d / r рази протягом загального часу d log r.0x<d(1)x,y

Приклад:

d = 4.

WHT H є

++++
+-+-
++--
+--+

Довільний набір стовпців дорівнює 00 та 10 (крайній лівий і два більше від цього):

++
++
+-
+-

Рядові блоки є

++
++

і

--
--

(а,б)Т(а+б,0)Т

++
+-

(а,б)Т(-а-б,0)Т

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