Учитывая входов , мы строим сеть случайной сортировки с воротами, итеративно выбирая две переменные с и добавляя вентиль компаратора, который меняет их, если .x 0 , … , x n - 1 m x i , x j i < j x i > x j
Вопрос 1 : Для фиксированного , насколько большим должно быть , чтобы сеть правильно сортировала с вероятностью ?m > 1
У нас есть по крайней мере нижняя граница поскольку вход, который правильно отсортирован, за исключением того, что каждая последовательная пара поменялась местами, займет \ Theta (n ^ 2 \ log n ^ 2) время для каждого пара будет выбрана в качестве компаратора. Это также верхняя граница, возможно, с большим количеством \ log n факторов?Θ ( n 2 log n 2 ) log n
Вопрос 2 : Существует ли распределение компараторов, которое достигает , возможно, путем выбора близких компараторов с более высокой вероятностью?
источник
Ответы:
Вот некоторые эмпирические данные для вопроса 2, основанные на идее DW, примененной к битовой сортировке. Для переменных выберите с вероятностью, пропорциональной , затем выберите случайным образом равномерно, чтобы получить компаратор . Это соответствует распределению компараторов в битонном виде, если - степень 2, и аппроксимирует его в противном случае.j - i = 2 k lg n - k i ( i , j ) nn j−i=2k lgn−k i (i,j) n
Для заданной бесконечной последовательности вентилей, извлеченных из этого распределения, мы можем приблизить число вентилей, необходимых для получения сети сортировки, путем сортировки множества случайных битовых последовательностей. Вот эта оценка для с учетом среднего значения по последовательностям затвора с битными последовательностями, использованными для аппроксимации подсчета: похоже, оно соответствует , такой же сложности, как и битовая сортировка. Если это так, мы не употребляем дополнительный коэффициент из-за проблемы с получением купона через каждые ворота.100 6400 Θ ( n log 2 n ) log nn<200 100 6400 Θ(nlog2n) logn
Подчеркнем: я использую только битных последовательностей для аппроксимации ожидаемого количества гейтов, а не . Требуемое среднее число затворов увеличивается с этим числом: для если я использую последовательности , и , оценки составляют , и . Таким образом, получение последних нескольких последовательностей увеличивает асимптотическую сложность, хотя интуитивно это кажется маловероятным.6400 2n n=199 6400 64000 640000 14270±1069 14353±1013 14539±965
Редактировать : вот аналогичный график до , но с использованием точного числа вентилей (вычисленных с помощью комбинации выборки и Z3). Я перешел от степени двух к произвольному с вероятностью, пропорциональной . все еще выглядит правдоподобно.n=80 d=j−i d∈[1,n2] logn−logdd Θ(nlog2n)
источник