Нетривіальні задачі, що вирішуються за постійний час?


14

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

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

Екземпляр: Цілі , кожен з яких задається у двійковому форматі O ( log n ) бітами.n,k,l,dO(logn)

Запитання: Чи існує -поверховий графік, такий, що його вершинна зв’язність дорівнює k , крайова зв'язність l , а мінімальний ступінь d ?nkld

Зауважимо, що з визначення навіть не очевидно, що проблема полягає в NP . Причина полягає в тому, що природному свідку (графіку) може знадобитися довгий опис , тоді як вхід подається лише O ( log n ) бітами. З іншого боку, на допомогу приходить наступна теорема (див. Теорія екстремальних графіків Б. Боллобаса).Ω(n2)O(logn)

Теорема: Нехай - цілі числа. Існує n -верховий графік з вершинною зв’язковістю k , крайовим зв’язком l та мінімальним ступенем d , якщо та лише у тому випадку, якщо виконується одна з наступних умов:n,k,l,dnkld

  • , 0kld<n/2
  • 12d+2nkl=d<n1
  • k=l=d=n1.

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

Питання: Які ще є нетривіальні приклади алгоритмів постійного часу?


6
Чи враховується перевірка імовірнісно перевіряемого доказу?
Девід Еппштейн

6
Не думайте, що ваш приклад - це час. Ваш вхід має довжину m = O ( log n ) , і в цьому випадку типове слово RAM дозволило б O ( log m ) -бітові операції лише в один крок. (Альтернатива - дозволити розмір слів, пропорційний довжині введення, але в цьому випадку можна назвати багато алгоритмів "постійного часу" ...) Ви можете спробувати додати рядок довжиною n після цих чисел, але тоді я не бачу, як перевірка цього формату буде працювати в O ( 1 )O(1)m=O(logn)O(logm)nO(1)час: здається, вам доведеться перевірити (скажімо, бінарний пошук), що загальна довжина рядка дійсно є , що вимагає часу n n журналу . Ω(logn)logn
Райан Вільямс

4
Я думаю, що пропозиція Девіда Еппштейна вказує на більш цікавий напрямок: розгляд рандомізованих алгоритмів часу O (1). Принаймні, у цьому випадку можна сподіватися, що кожен вхідний біт буде доступний принаймні в одному можливому виконанні алгоритму.
Райан Вільямс

4
Простий приклад рандомізованих алгоритмів часу (O) (1) - це приблизна медіана (приблизна в тому сенсі, що вона розділить вхід приблизно на 50-50). Просто виберіть 1000000 елементів з введення рівномірно випадково, обчисліть їх медіану та виведіть її.
Юкка Суомела

5
Мені подобається, що ви сумніваєтесь, але недоліком вашого прикладу є те, що він спирається на математичну теорему. Натиснувши це до межі, можна сказати: Екземпляр Позитивних цілих чисел . Запитання Чи є ціле число n > 2 таким, що x n + y n = z n (відповідь вірна чи помилкова). Що ж, дійсно існує постійний алгоритм часу, оскільки відповідь завжди помилковий, але це явно не той тип прикладів, який ви бажаєте. x,y,zn>2xn+yn=zn
Ж.-Є.

Відповіді:


6

У статті " Алгоритми наближення постійного часу за допомогою локальних удосконалень Нгуєна та Онака" подано безліч прикладів схем апроксимації випадкових постійних часу: Максимальне узгодження (час роботи залежить лише від максимального ступеня графіка), встановлення кришки тощо. Автори представити метод розробки таких алгоритмів.


5

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

Однією з найпростіших і найосновніших комбінаторних ігор є нім: у них є незмінна кількість кущів квасолі, і за один хід ви можете вийняти будь-яку кількість квасолі з однієї купи, вигравши або програвши (залежно від вибору правил) якщо ви візьмете останній боб. Оптимальну стратегію можна обчислити в постійному часі, якщо ви дозволите побітові булеві операції xor (тобто оператор ^ в мовах програмування, таких як C / C ++ / Java / тощо). Це алгоритм постійного часу у вашій моделі?

Ось один, де відомо, що існує постійний детермінований алгоритм постійного часу (у можливо нереально розширеній моделі обчислення, що дозволяє перевіряти первинність числа в постійному часі), але невідомо, що це за алгоритм: дано початок рух у грі на монетці Сільвера , визначайте, чи це виграшний хід чи програш. Блок-схема цієї проблеми наведена в Берлекамп, Конвей і Гай, Перемагаючи шляхи , але це залежить від кінцевого набору контрприкладів до загальної характеристики виграшних ходів, і невідомо, що це за набір (або навіть, чи є це порожній).

Ще один цікавий приклад із теорії комбінаторних ігор - гра Wythoff. Кожна ігрова позиція може бути описана парою цілих чисел (тобто постійний простір у вашій моделі обчислення), переміщення в грі включають зменшення одного з цих двох цілих чисел до меншого значення, а виграшна стратегія передбачає переміщення в позицію, де співвідношення між цими двома цілими числами максимально наближене до золотого відношення. Але в багатьох ігрових позиціях є вибір: ви можете зменшити більшу з двох цілих чисел або до тієї точки, де вона (майже) менша ціла кількість разів на відношення золота, або на менше ціле число, поділене на відношення золотого. Лише один із цих двох варіантів стане виграшним кроком. Тож оптимальну стратегію можна визначити через постійну кількість арифметичних операцій, але ці операції передбачають ірраціональне число, золоте відношення. Це алгоритм постійного часу у вашій моделі? Можливо, це 'nlogn


Дякую, це все цікаві приклади. Вони також чудово проливають світло на те, що поняття "постійний час" менш чітке, ніж я спочатку думав ...
Андрас Фараго

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