Зменшення використання місця st-підключення за допомогою декількох проходів?


20

Припустимо, графік з n вершинами представлений у вигляді потоку з m ребер, але через потік дозволено кілька проходів.Gnm

Моніка Раух Гензінгер, Прабхакар Рагаван і Шрідар Раджагопалан зауважили, що простір необхідний, щоб визначити, чи існує шлях між двома заданими вершинами в G , якщо через дані дозволено проходження k . (Див. Також версію технічного звіту .) Однак вони не містять алгоритму, щоб реально досягти цієї межі. Я припускаю, що оптимальний алгоритм насправді приймав би O ( ( nΩ(n/k)Gk простір в реалістичній обчислювальній моделі, оскільки треба відрізняти n різних вершин, якщо не можна індексувати пам'ять, використовуючи покажчики постійного розміру.O((nlogn)/k)n

Як можна вирішити підключення графа з проходами, використовуючи Ok простір?O((nlogn)/k)

Якщо дозволений лише один прохід, вхідні дані можуть зберігатися як розділ набору вершин, об'єднуючи множини, якщо між вершинами видно ребро у двох різних наборах. Цього явно потрібно максимум простір. Моє запитання щодо k > 1 : як можна використовувати більше проходів, щоб зменшити необхідний простір?O(nlogn)k>1

(Щоб уникнути тривіальності, - параметр, який не можна апріорі обмежувати постійною, а пробіли - це вирази, що включають функції n і kknk .)


Оновлення: навіть для було б дуже корисно мати спосіб зберігання лише n / 2 вершин. Або насправді є сильніша нижня межа c n для деякої постійної с , незалежно від k ?k=2n/2cnck


Як незалежно від ? Якщо воно може бути дуже великим, то st-підключення може бути вирішено в просторі O ( log 2 n ) , тому існує алгоритм, але, як показав азотліхід, ймовірно, не в O ( n log n / k ) . kO(log2⁡n)O(nlog⁡n/k)
— domotorp

Зауважимо, що усунення проходів Гуха та Макгрегора для рандомізованих алгоритмів працює у зворотному напрямку, використовуючи більше місця, щоб дозволити менше пропусків (хоча додатковий простір великий, якщо бажана помилка невелика). Це запитання задає, чи можна, використовуючи більше пропусків, зменшити використання місця.
— Андраш Саламон

Відповіді:


8

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


1
М. Томпа, Два знайомих алгоритму транзитивного замикання, які не допускають поліноміального часу, здійснення підлінійного простору , SIAM J. Comput. 11 (1), 130–137. dx.doi.org/10.1137/0211010
— Андрас Саламон

У цьому документі подано "алгоритм для st-підключення, який працює одночасносуб-лінійне простір і за поліноміальний час ».


3

Йоссі Шилоах, Узі Вишкін. Алгоритм паралельної зв’язності O (log n). J. Algorithms, 1982: 57 ~ 67 - Один з моїх улюблених праць. Було б цікаво, якби ви могли це зробити в просторі O ((nlogn / k) / p) з процесорами p вк раунди, де кожен раунд кожного процесора дозволяється читати лише в O (n / p) ребер.


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

2

Ще одна невідповідь: є кілька робіт про алгоритми стилю mapreduce, що працюють на великих графіках. Метою є досягнення простору o (m) на машині для щільних графіків, але зазвичай потрібно O (n) місця на машині.

теорія.stanford.edu/~sergei/papers/soda10-mrc.pdf http://theory.stanford.edu/~sergei/papers/spaa11-matchings.pdf


1

Також не відповідь, але ви можете вирішити st-підключення в О(нжурнал⁡н/к) недетермінований простір з кпропускає. Просто вгадайте першен/к вузли ст шлях і перевірте, що вони підключені в першому раунді, а потім продовжуйте з останнього з них н/к вершин і перевірте наступну н/к від ст шлях тощо.

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