Требования к хранилищу для медианного выбора (двухпроходные алгоритмы)


18

В классической статье Манро и Патерсон изучают проблему того, сколько памяти требуется алгоритму для нахождения медианы в случайно отсортированном массиве. В частности, они ориентированы на следующую модель:

ввод читается слева направо в течение числа P раз.

Показано, что О(N12п) ячеек памяти достаточно, но соответствующая нижняя граница известна только для P = 1. Я не видел никакого результата для P> 1. Кто-нибудь знает о таких нижних границах?

Обратите внимание, что основная трудность здесь заключается в том, что на втором проходе вход больше не упорядочен случайным образом.

Ответы:


14

Попробуйте эту статью Чана в недавней SODA: http://portal.acm.org/citation.cfm?id=1721842&dl=ACM .

Быстрый поиск в Google также нашел следующую статью, которая выглядит, возможно, актуальной, но я ее еще не читал: http://portal.acm.org/citation.cfm?id=1374470 .


Спасибо, вторая статья, кажется, дает частичный ответ на мой вопрос. Такого ответа нет в более ранних статьях, о которых я знал.
MassimoLauria

18

Первой статьей, доказывающей границы для более чем одного прохода, была моя статья с Джайрамом и Амитом из SODA'08. Затем есть статья, упомянутая Уорреном, которая улучшает границы благодаря более чистому доказательству.

Короче говоря, мы понимаем зависимость, если вы разрешите постоянные перед числом проходов. Конечно, эти константы находятся в показателе степени, поэтому вы можете попросить точного понимания. Моя главная жалоба заключается в том, что модель многопроходной потоковой передачи не так уж хорошо мотивирована.

Более интригующий вопрос - можем ли мы доказать нижнюю границу программы ветвления. Может ли быть так, что даже для алгоритма ограниченного пространства, который может обращаться к памяти по своему усмотрению, лучшая стратегия состоит в том, чтобы просто выполнять многопроходную потоковую передачу?

Ответ представляется утвердительным, и у нас есть некоторый частичный прогресс в его доказательстве.


5
Я думаю, что многопроходная потоковая передача является естественной моделью в следующих видах экспериментов: Вы используете рандомизированную выборку для статистического тестирования (например, тестирование перестановки). Вы проводите миллиарды экспериментов; каждый эксперимент получает случайные числа из PRNG и выдает некоторые выходные значения. Затем вы хотите вычислить медианы, гистограммы и т. Д. Этих значений. У вас нет эффективного произвольного доступа к вашему потоку выходов, и у вас нет памяти для хранения всего. Тем не менее, вы можете повторно воспроизвести поток; просто сбросьте ваш PRNG с тем же начальным числом и перезапустите ваш алгоритм.
Юкка Суомела

2
Мы все можем согласиться с тем, что лучше всего иметь верхние границы в модели многопроходной потоковой передачи и сопоставлять нижние границы для некоторых соответствующих семейств ветвящихся программ.
MassimoLauria
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.