Multi-Way Co-Ranking: Index-Space Partitioning of Sorted Sequences Without Merge
Joshi
We present a merge-free algorithm for multi-way co-ranking, the problem of computing cut indices $i_1,\dots,i_m$ that partition each of the $m$ sorted sequences such that all prefix segments together contain exactly $K$ elements. Our method extends two-list co-ranking to arbitrary $m$, maintaining per-sequence bounds that converge to a consistent global frontier without performing any multi-way merge or value-space search. Rather, we apply binary search to \emph{index-space}. The algorithm runs in $O(\log(\sum_t n_t)\,\log m)$ time and $O(m)$ space, independent of $K$. We prove correctness via an exchange argument and discuss applications to distributed fractional knapsack, parallel merge partitioning, and multi-stream joins.
Keywords: Co-ranking \sep partitioning \sep Merge-free algorithms \sep Index-space optimization \sep Selection and merging \sep Data structures
academic
Многопутевой Со-Ранжирование: Разбиение Индексного Пространства Отсортированных Последовательностей Без Слияния
В данной работе предложен алгоритм многопутевого со-ранжирования без слияния для вычисления индексов разреза i1,…,im, которые разбивают m отсортированных последовательностей таким образом, чтобы все префиксные сегменты в совокупности содержали ровно K элементов. Метод расширяет двухсписковое со-ранжирование Зиберта и Трэффа на произвольное m-путевое разбиение, сохраняя границы каждой последовательности и сходясь к согласованному глобальному фронту без выполнения многопутевого слияния или поиска в пространстве значений. Алгоритм применяет двоичный поиск в индексном пространстве с временной сложностью O(log(∑tnt)logm) и пространственной сложностью O(m), независимо от K. Корректность доказана методом обмена аргументов и обсуждаются приложения в распределённых задачах о дробном рюкзаке, параллельном разбиении слияния и многопотоковых соединениях.
Задача многопутевого со-ранжирования определяется следующим образом: даны m последовательностей L1,…,Lm, отсортированных в неубывающем порядке (с допуском повторений), каждая длины nt, и глобальный целевой ранг K∈{0,…,N} (где N=∑tnt), необходимо найти индексы разреза i1,…,im такие, что:
∑t=1mit=Kиmaxtℓt≤mintrt
где ℓt и rt обозначают соответственно значения левой и правой границ.
Расширение классических алгоритмов: Существующие алгоритмы со-ранжирования ориентированы в основном на две последовательности, отсутствует эффективное многопутевое расширение
Избежание затрат на слияние: Традиционные методы требуют предварительного слияния нескольких последовательностей перед выбором, что приводит к значительным затратам
Преимущества индексного пространства: Операции в индексном пространстве, а не в пространстве значений, избегают сложности поиска по диапазону значений
Потребности практических приложений: Распределённые вычисления, параллельная обработка и запросы к базам данных требуют эффективных алгоритмов многопутевого разбиения
Разработка алгоритма: Предложен первый алгоритм многопутевого со-ранжирования без слияния, расширяющий классический двухпутевой метод на произвольное m-путевое разбиение
Теоретический анализ: Доказана корректность алгоритма и временная сложность O(log(∑tnt)logm)
Инновация в структурах данных: Разработаны адресуемые кучи (addressable heaps) для эффективного сохранения значений границ
Расширение приложений: Продемонстрированы потенциальные приложения алгоритма в распределённой оптимизации, параллельной обработке и системах баз данных
Если Φ(i)>0, пусть p=argmaxtℓt и q=argmintrt. Среди всех допустимых бесконечно малых передач, сохраняющих ∑tit=K, пара (p,q) достигает максимального неувеличивающегося изменения Φ.
Схема доказательства: Уменьшение ip снижает ℓp (локальный максимум левой границы), увеличение iq повышает rq (локальный минимум правой границы). Поскольку ℓp≥ℓu и rq≤rv для всех u,v, экстремальная пара (p,q) производит наиболее крутое уменьшение разрыва maxℓ−minr.
Любая последовательность допустимых передач, уменьшающих Φ, может быть переупорядочена так, чтобы все экстремальные передачи (p,q) происходили перед любыми неэкстремальными передачами, без ухудшения Φ на любом промежуточном этапе.
На каждой итерации допустимое расстояние донора или получателя сокращается вдвое. Расстояние Ub[t]−Lb[t] для каждой последовательности может быть сокращено не более O(lognt) раз. Суммируя по всем m последовательностям, общее число итераций составляет:
Используется стратегия "водяного заполнения" для инициализации допустимого решения:
def water_fill_initialization(K, capacities):
i = [0] * len(capacities)
need = K
for t in range(len(capacities)):
take = min(capacities[t], need)
i[t] = take
need -= take
if need == 0:
break
return i
В многоисточниковой задаче о дробном рюкзаке, когда предметы отсортированы по плотности и распределены по m фрагментам, можно использовать со-ранжирование для вычисления глобального разбиения K-префикса без слияния исходных данных.
Распределение непересекающихся префиксов между процессорами без выполнения предварительного слияния. Вектор со-ранжирования определяет точные точки соединения, после чего процессоры выполняют только локальное слияние в своих диапазонах.
В конвейерах обработки баз данных или потоков разбиение фронта соединения по глобальному рангу является естественным требованием; данный метод создаёт согласованные с глобальным префиксом курсоры для каждого потока.
Хотя статья сосредоточена в основном на теоретическом анализе, автор предоставляет код реализации для проверки. Практическую производительность алгоритма можно оценить по следующим аспектам:
Работа Зиберта и Трэффа заложила основы со-ранжирования, применяемого в основном для разбиения работы в параллельном слиянии. Данная работа расширяет его с 2-путевого на произвольное m-путевое разбиение.
Метод точного разделителя Зиберта и Вольфа работает в пространстве значений, ища пороговые значения ключей для сбалансированного разбиения. В отличие от этого, данный метод работает в индексном пространстве, непосредственно выводя вектор со-ранжирования.
Классическая работа Фредериксона-Джонсона изучает выбор и ранжирование на структурированных входах (таких как объединение m отсортированных списков). Её алгоритм по существу является процессом в пространстве значений, в то время как данная работа предоставляет примитив индексного пространства.
3 Christian Siebert. Simple in-place yet comparison-optimal mergesort, arXiv:2509.24540, 2025.
4 Christian Siebert and Felix Wolf. A scalable parallel sorting algorithm using exact splitting. RWTH Aachen University technical report, 2011.
Общая оценка: Это теоретически ориентированная статья по алгоритмам, успешно решающая важную задачу многопутевого со-ранжирования. Несмотря на отсутствие экспериментальной проверки, теоретический анализ строг, методология инновационна, и работа предоставляет ценный теоретический инструмент для смежных областей.