Випадковий алгоритм, який "виглядає" детермінованим?


31

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

Зокрема, мені було цікаво, чи існує такий алгоритм пошуку простого між n та 2n. Невідомий алгоритм детермінованого поліноміального часу. Існує тривіальний рандомізований алгоритм, який працює просто шляхом вибірки випадкових цілих чисел в інтервалі, який працює завдяки теоремі про просте число . Але чи існує вищезгаданий алгоритм, очікуваний час роботи якого є проміжним між ними?

EDIT: Щоб трохи уточнити моє запитання, я хотів такого алгоритму для проблеми, де існує багато можливих правильних результатів, і все ж рандомізований алгоритм розташовується на одному незалежному від його випадковості. Я розумію, що питання, ймовірно, не повністю уточнено ...


3
Щоб дати вам кілька ключових слів пошуку, рандомізовані алгоритми, які завжди дають правильну відповідь (і використовують випадковість за коротший час виконання), називаються алгоритмами Лас-Вегаса (на відміну від алгоритмів Монте-Карло) або алгоритмами з нульовою помилкою, а відповідний клас складності - ZPP .
Цуйосі Іто

@Tsuyoshi: Дякуємо за ваш коментар. Але я не знаю алгоритмів типу Лас-Вегас для проблем пошуку. Це моє питання.
arnab

Якщо існує рандомізований алгоритм пошуку унікальної рівноваги Неша, який би відповів на ваше запитання.
Воррен Шуді

Можливо, є якась проблема, пов’язана з нападами на день народження ( en.wikipedia.org/wiki/Birthday_attack ), яка відповідала б вашим вимогам?
Warren Schudy

Відповіді:


23

Шафі Голдвассер повідомила мені, що вона та співавтори досліджували саме такі алгоритми для теоретико-числових задач! Відомо наступне:

  1. Ленстра показав, що існує такий алгоритм пошуку квадратичного без залишку мода для заданого простого.

  2. Гет і Голдвассер показали, що існує такий алгоритм пошуку генератора , де - заданий форми для простих .Zpp2q+1q

(Я не знаю вподобаних посилань.) Також триває дослідження з питання, яке я задав про пошук простір між і 2 n .н2н

РЕДАКТУВАННЯ: Документ Гет та Голдвассер опубліковано: http://eccc.hpi-web.de/report/2011/136/ . Ця стаття, однак, не вирішує питання про знаходження простої між та 2 n .н2н


1
Віртуальний +1. Це дійсно цікаво, буде пильнувати папір.
Андрас Саламон

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

1
Я видалив замітку і зробив її "вікі спільноти" відповідно до обговорення на мета-потоці.
arnab

Мета-нитку, згадану arnab, можна знайти тут: meta.cstheory.stackexchange.com/q/607/873 .
MS Dousti

18

Чи рахуються рандомізовані структури даних?

Існує список пропусків, який є впорядкованою асоціативною структурою даних карти.

Час його роботи для звичайних операцій, таких як вставка, вилучення та видалення, є (у очікуваному випадку) нарівні з тим, у деревах збалансованого пошуку - тобто . Однак іноді стверджується, що структура даних має набагато кращий постійний фактор, ніж реалізація дерева пошуку при правильному виконанні (це критично залежить від хорошого та ефективного джерела випадковості). Кращий постійний коефіцієнт, ймовірно, є наслідком того, що ніякого відновлення (або будь-якої подібної операції) не має відбуватися.O(logn)


Спасибі! Це, безумовно, має значення і є нетривіальною відповіддю на моє первісне запитання. Я хотів, щоб проблема була більш аналогічною проблемі пошуку, де існує багато можливих рішень.
arnab

Додайте списки стрибків у цей потяг думок.
Рафаель

13

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

Звичайно, існують багаточленні алгоритми інтер'єрних точок, тому це не зовсім те, що ви шукаєте.


Якщо є кілька оптимальних точок, чи завжди Кельнер-Спілман повертає ту саму точку?
Сашо Ніколов

3
Узагальнені лінійні програми мають лише одну оптимальну точку, тому, використовуючи збурення, можна зробити варіант Кельнера-Спілмана, який завжди повертає ту саму оптимальну точку.
Пітер Шор

12

Розглянемо повне двійкове дерево з усіма листками, що містять 0, крім одного аркуша, який містить 1. Завдання - знайти листок, який містить 1. Проти будь-якого детермінованого алгоритму пошуку можна побудувати нескінченне сімейство дерев (по одному для кожного n ) для якого алгоритм повинен перевіряти кожен аркуш. Так що для цієї найгіршої сім'ї детермінований алгоритм очікував виконання 2 n .2нн2н

Тепер розглянемо алгоритм, який випадковим чином вибирає перший лист рівномірно, а потім детерміновано перевіряє всі послідовні листи (обгортання до початку). Це знайдемо 1, вивчивши в середньому половину всіх листків. Тож рандомізований алгоритм очікував час виконання .2н-1

Чи кваліфікується це?


Приємно !! Це, безумовно, відповідає вимогам, хоча я шукав більш нетривіальний приклад, коли поліпшення часу роботи є суттєвішим.
arnab

Вам не потрібна структура дерева, це працює на масиві.
sdcvvc

7

Алгоритми поліноміальної факторизації можуть бути таким прикладом, який ви шукаєте. Алгоритм Кантора-Зассенгауза використовує випадковість для обчислення (унікального масштабування вгору) невідводимих ​​поліноміальних факторів даного одновимірного многочлена над кінцевим полем у часовому поліномі за розміром вхідного і журнального p . Якщо ви дійсно хочете, щоб на проблему була однозначна відповідь, ви можете попросити монічні непридатні основні фактори монічного многочлена. Наскільки я знаю, невідомо, як розподілити фактори в детермінованому поліноміальному часі, якщо р гарантовано не буде малим.Fplogpp

logp



3

Щодо вашого першого питання, я спершу подумав про Quicksort, але це повинно бути очевидним.

Існує алгоритм відповідності рядків ( Nebel, 2006 ), який використовує імовірнісні ідеї. Я дійсно знаю, що це швидкий підхід, але, мабуть, вам потрібні деякі зразки для навчання.


Середня знахідка також швидша, але не дуже різко.
Aram Harrow

3

Наступний документ STACS '97 може бути цікавим для вашого випадку: Складність створення тестових екземплярів .

Анотація: Нещодавно Ватанабе запропонував нову основу для перевірки правильності та середньої поведінки у випадку алгоритмів, які спрямовані на ефективне вирішення заданої задачі пошуку в середньому. Ідея полягає у випадковому генеруванні сертифікованих екземплярів таким чином, що нагадує базовий розподіл. Ми обговорюємо цей підхід і показуємо, що тестові екземпляри можуть бути створені для кожної проблеми пошуку NP з неадаптованими запитами до NP oracle. Далі ми впроваджуємо типи генераторів тестових примірників у Лас-Вегасі, а також у Монте-Карло та показуємо, що ці генератори можуть бути використані для з'ясування правильності та ефективності алгоритму в середньому. Насправді, не важко побудувати генератори Монте-Карло для всіх проблем пошуку RP, а також генератори в Лас-Вегасі для всіх проблем пошуку ZPP. З іншої сторони,

Спеціально, подивіться на стор. 384 під слідком 12:

ZPPRPZPPNPNPcoNP


2

1ncpolylog(n)


3
Це стосується тестування, а не пошуку ...
Дана Мошковіц

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