Чи достатньо сортувати для поліномічно багатьох послідовностей 0-1 для сортувальної мережі?


16

Принцип 0-1 говорить, що якщо сортувальна мережа працює для всіх послідовностей 0-1, то вона працює для будь-якого набору чисел. Чи є такий , що якщо мережа сортує кожну послідовність 0-1 від S, то вона сортує кожну послідовність 0-1, а розмір S є многочленом у n ?S{0,1}nSn

Наприклад, якщо складається з усіх послідовностей, де існує максимум 2 прогони (інтервали) 1-х, то чи існує сортувальна мережа N та послідовність, яка не впорядкована N, якщо всі члени S упорядковані N?S2S

Відповідь: Як видно з відповіді та коментарів до неї, відповідь полягає в тому, що для кожного несортованого рядка існує мережа сортування, яка сортує всі інші рядки. Простим доказом цього є наступне. Нехай рядок буде таким, що s i = 0 навіки i < k і s k = 1 . Оскільки s несортовано, після сортування s k повинно бути 0 . Порівняйте k з кожним i, для якого s i =s=s1snsi=0i<ksk=1ssk0ki . Потім порівняйте кожну пару ( i , j ) так, що i k і j k багато разів. Це залишає всі рядкивпорядковані,виняткомможливо и к , який несортоване для з , адля деяких інших рядківякі мають більш 1 «Sніж з . Тепер порівняйте s k для i = n downto 1, за винятком місця, де s k повинен пройти s . Це буде сортувати все, крім s .si=1(i,j)ikjksks1sski=n1skss

Оновлення: Цікаво, що станеться, якщо ми обмежимо глибину мережі .O(logn)


Здається , що можливо ви повинні обмежити розмір сортувальної мережі , щоб бути менше , ніж розмір . В іншому випадку, чи не могла мережа просто перевірити, чи є вхід одним із елементів S, і діяти правильно, якщо так, інакше діяти неправильно? SS
usul

@usul: Я не думаю, що мережа сортування може перевірити таке. Так чи інакше, природно працювати з сортувальними мережами, розмір яких поліноміальний в . n
домоторп

Відповіді:


8

Здається, ні. Аян Парберрі робить посилання на документ по Chung і Ravikumar, де вони нібито дають рекурсивне будівництво сортувальної мережі, сортує кожен бітові , але один, а в подальшому зробити висновок , що проблема перевірки сортувальної мережі є - N P повному. Я не можу знайти оригінальний папір одразу, але, безумовно, це відповідає моїй інтуїції.coNP

Редагувати, щоб додати: Дійсно знайти таку мережу, яка пропускає рівно один рядок, дуже просто. Рядок, який буде пропущено, буде . Тепер ви просто хочете схему, яка сортує останні n - 1 біт, потім сортує перші n - 1 біт. Ця схема буде сортувати що завгодно щонайменше два 1 с, очевидно, сортуватиме нульовий рядок і сортуватиме будь-яку рядок, починаючи з 0 .(1,0,,0)n1n110


Чи можна узагальнити приклад мережі сортування у вашій відповіді, щоб для будь-якого заданого рядка можна було побудувати сортувальну мережу, яка неправильно сортує цю рядок? Ви показуєте, як це зробити для одного конкретного рядка, а як щодо інших рядків?
DW

1n1

7
1n1

8
Більш розслаблене: " Сильне недетерміноване зменшення Тьюрінга - методика доказування внутрішньостабільності " (Chung & Ravikumar) перелічує наступне, як лема 2.1: дана будь-яка несортирована рядокх, існує мережа сортування поліноміального розміру, яка сортує всі рядки, крім, крім х. Для доказу це посилається на "Про розмір тестових наборів для сортування та пов'язаних із цим проблем" (Chung & Ravikumar), але я не можу знайти копію останнього документу. Це справді означає, що відповідь на це питання - «Ні».
DW

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