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
論文ID : 2510.22882タイトル : Multi-Way Co-Ranking: Index-Space Partitioning of Sorted Sequences Without Merge著者 : Amit Joshi (Independent Researcher)分類 : cs.DS (データ構造とアルゴリズム)発表日 : 2025年10月27日 (arXivプレプリント)論文リンク : https://arxiv.org/abs/2510.22882 本論文は、マージなしのマルチウェイ協調ランキングアルゴリズムを提案し、カット指数i 1 , … , i m i_1,\dots,i_m i 1 , … , i m を計算してm m m 個のソート済みシーケンスを分割し、すべての前置セグメントが合計でちょうどK K K 個の要素を含むようにする。本手法はSiebertとTräffの二重リスト協調ランキングを任意のm m m 路に拡張し、各シーケンスの境界を維持しながら、マルチウェイマージや値空間探索を実行することなく、一貫したグローバルフロンティアに収束する。アルゴリズムはインデックス空間に二分探索を適用し、時間計算量はO ( log ( ∑ t n t ) log m ) O(\log(\sum_t n_t)\log m) O ( log ( ∑ t n t ) log m ) 、空間計算量はO ( m ) O(m) O ( m ) であり、K K K に依存しない。交換論証により正確性を証明し、分散分数ナップサック、並列マージ分割、およびマルチストリーム結合への応用を論じている。
マルチウェイ協調ランキング問題は以下のように定義される:m m m 個の非減少順にソートされたシーケンスL 1 , … , L m L_1, \ldots, L_m L 1 , … , L m (重複を許可)が与えられ、各シーケンスの長さがn t n_t n t 、グローバルターゲットランクK ∈ { 0 , … , N } K \in \{0, \ldots, N\} K ∈ { 0 , … , N } (ただしN = ∑ t n t N = \sum_t n_t N = ∑ t n t )のとき、以下を満たすカット指数i 1 , … , i m i_1, \ldots, i_m i 1 , … , i m を見つける必要がある:
∑ t = 1 m i t = K かつ max t ℓ t ≤ min t r t \sum_{t=1}^m i_t = K \quad \text{かつ} \quad \max_t \ell_t \leq \min_t r_t ∑ t = 1 m i t = K かつ max t ℓ t ≤ min t r t
ここでℓ t \ell_t ℓ t とr t r_t r t はそれぞれ左境界値と右境界値を表す。
古典的アルゴリズムの拡張 :既存の協調ランキングアルゴリズムは主に2つのシーケンスを対象とし、効率的なマルチウェイ拡張が不足しているマージオーバーヘッドの回避 :従来の方法では複数のシーケンスを先にマージしてから選択を行う必要があり、オーバーヘッドが大きいインデックス空間の利点 :値空間ではなくインデックス空間で操作することで、値域探索の複雑性を回避する実用的な応用需要 :分散計算、並列処理、データベースクエリでは効率的なマルチウェイ分割アルゴリズムが必要Siebert-Träff手法 :2つのシーケンスの協調ランキングのみをサポートFrederickson-Johnson手法 :値空間で操作し、グローバルカウント操作が必要分割器ベースの手法 :事前マージまたは値域探索が必要で、複雑度が高いアルゴリズム設計 :初めてのマージなしマルチウェイ協調ランキングアルゴリズムを提案し、古典的な二重路方法を任意のm m m 路に拡張理論分析 :アルゴリズムの正確性とO ( log ( ∑ t n t ) log m ) O(\log(\sum_t n_t)\log m) O ( log ( ∑ t n t ) log m ) の時間計算量を証明データ構造の革新 :アドレス可能ヒープ(addressable heaps)を設計して境界値を効率的に維持応用の拡張 :分散最適化、並列処理、データベースシステムでのアルゴリズムの応用可能性を実証入力 :
m m m 個のソート済みシーケンスL 1 , … , L m L_1, \ldots, L_m L 1 , … , L m 、長さはそれぞれn 1 , … , n m n_1, \ldots, n_m n 1 , … , n m ターゲットランクK ∈ [ 0 , N ] K \in [0, N] K ∈ [ 0 , N ] 、ただしN = ∑ t = 1 m n t N = \sum_{t=1}^m n_t N = ∑ t = 1 m n t 出力 :
協調ランキング条件を満たすカット指数ベクトル( i 1 , … , i m ) (i_1, \ldots, i_m) ( i 1 , … , i m ) 制約条件 :
∑ t = 1 m i t = K \sum_{t=1}^m i_t = K ∑ t = 1 m i t = K max t ℓ t ≤ min t r t \max_t \ell_t \leq \min_t r_t max t ℓ t ≤ min t r t (協調ランキング条件)アルゴリズムは2つのインデックスヒープを維持する:
H L H_L H L :最大ヒープ、左境界値( ℓ t , t ) (\ell_t, t) ( ℓ t , t ) を格納し、最大左境界のシーケンス(ドナー)を返すH R H_R H R :最小ヒープ、右境界値( r t , t ) (r_t, t) ( r t , t ) を格納し、最小右境界のシーケンス(レシーバー)を返す各ヒープはO ( log m ) O(\log m) O ( log m ) のupdate_key操作とO ( 1 ) O(1) O ( 1 ) のpeek操作をサポート。
各シーケンスt t t に対して以下を維持:
下限 :L b [ t ] ≤ i [ t ] Lb[t] \leq i[t] L b [ t ] ≤ i [ t ] 上限 :i [ t ] ≤ U b [ t ] i[t] \leq Ub[t] i [ t ] ≤ U b [ t ] 現在のインデックス :i [ t ] i[t] i [ t ] アルゴリズムはドナー-レシーバーの貪欲戦略を採用:
極値の識別 :ドナーp = arg max t ℓ t p = \arg\max_t \ell_t p = arg max t ℓ t (最大左境界) レシーバーq = arg min t r t q = \arg\min_t r_t q = arg min t r t (最小右境界) 転送量の計算 :donor_slack = ⌈(i[p] - Lb[p])/2⌉
receiver_slack = ⌈(Ub[q] - i[q])/2⌉
Δ = min{donor_slack, receiver_slack}
転送の実行 :i [ p ] ← i [ p ] − Δ i[p] \leftarrow i[p] - \Delta i [ p ] ← i [ p ] − Δ i [ q ] ← i [ q ] + Δ i[q] \leftarrow i[q] + \Delta i [ q ] ← i [ q ] + Δ 境界を更新:U b [ p ] ← i [ p ] Ub[p] \leftarrow i[p] U b [ p ] ← i [ p ] 、L b [ q ] ← i [ q ] Lb[q] \leftarrow i[q] L b [ q ] ← i [ q ] ヒープの更新 :影響を受けたシーケンスのヒープキー値をリフレッシュインデックス空間操作 :完全にインデックス空間で動作し、値域探索とマージ操作を回避幾何学的収束 :実行可能領域を半分に縮小することで、対数レベルの収束速度を保証不均衡ポテンシャル関数 :Φ ( i ) = max t ℓ t − min t r t \Phi(i) = \max_t \ell_t - \min_t r_t Φ ( i ) = max t ℓ t − min t r t を収束判定基準として定義決定的複雑度 :アルゴリズムの複雑度はターゲットランクK K K に依存しないΦ ( i ) > 0 \Phi(i) > 0 Φ ( i ) > 0 の場合、p = arg max t ℓ t p = \arg\max_t \ell_t p = arg max t ℓ t およびq = arg min t r t q = \arg\min_t r_t q = arg min t r t とする。∑ t i t = K \sum_t i_t = K ∑ t i t = K を保つすべての実行可能な無限小転送の中で、( p , q ) (p,q) ( p , q ) 対はΦ \Phi Φ の最大非増加変化を実現する。
証明の概要 :i p i_p i p を減らすとℓ p \ell_p ℓ p (左境界の局所最大値)が低下し、i q i_q i q を増やすとr q r_q r q (右境界の局所最小値)が上昇する。ℓ p ≥ ℓ u \ell_p \geq \ell_u ℓ p ≥ ℓ u およびr q ≤ r v r_q \leq r_v r q ≤ r v がすべてのu , v u,v u , v に対して成立するため、極値対( p , q ) (p,q) ( p , q ) はギャップmax ℓ − min r \max\ell - \min r max ℓ − min r の最も急な減少をもたらす。
Φ \Phi Φ を減少させるすべての実行可能な転送シーケンスは、すべての極値( p , q ) (p,q) ( p , q ) 転送が任意の非極値転送の前に発生するように再順序付けでき、中間ステップのΦ \Phi Φ を悪化させない。
アルゴリズム2は有効な協調ランキングベクトル( i 1 , … , i m ) (i_1, \ldots, i_m) ( i 1 , … , i m ) で終了し、∑ t i t = K \sum_t i_t = K ∑ t i t = K およびmax t ℓ t ≤ min t r t \max_t \ell_t \leq \min_t r_t max t ℓ t ≤ min t r t を満たす。
各ラウンドで、ドナーまたはレシーバーの実行可能距離は半分に縮小される。各シーケンスの距離U b [ t ] − L b [ t ] Ub[t] - Lb[t] U b [ t ] − L b [ t ] は最大O ( log n t ) O(\log n_t) O ( log n t ) 回縮小される。すべてのm m m 個のシーケンスを集約すると、総ラウンド数は:
T = O ( log ( ∑ t = 1 m n t ) ) T = O\left(\log\left(\sum_{t=1}^m n_t\right)\right) T = O ( log ( ∑ t = 1 m n t ) )
各ラウンドは定数回のインデックスヒープ操作を実行し(O ( log m ) O(\log m) O ( log m ) 時間)、総時間計算量は:
O ( log ( ∑ t n t ) ⋅ log m ) O\left(\log\left(\sum_t n_t\right) \cdot \log m\right) O ( log ( ∑ t n t ) ⋅ log m )
アルゴリズムはm m m 個のシーケンスのインデックスと境界情報のみを格納する必要があり、空間計算量はO ( m ) O(m) O ( m ) 。
def multi_way_corank(sequences, K):
m = len(sequences)
# 境界とインデックスを初期化
Lb = [0] * m
Ub = [len(seq) for seq in sequences]
i = water_fill_initialization(K, Ub)
# インデックスヒープを構築
HL = MaxHeap() # 左境界最大ヒープ
HR = MinHeap() # 右境界最小ヒープ
for t in range(m):
HL.insert(t, left_boundary(sequences[t], i[t]))
HR.insert(t, right_boundary(sequences[t], i[t]))
while True:
# ドナーとレシーバーを取得
max_left, p = HL.peek()
min_right, q = HR.peek()
# 終了条件をチェック
if max_left <= min_right:
break
# 転送量を計算
donor_slack = ceil((i[p] - Lb[p]) / 2)
receiver_slack = ceil((Ub[q] - i[q]) / 2)
delta = min(donor_slack, receiver_slack)
# 転送を実行
i[p] -= delta
i[q] += delta
# 境界を更新
Ub[p] = i[p]
Lb[q] = i[q]
# ヒープを更新
update_heaps(HL, HR, sequences, i, p, q)
return i
「ウォーターフィル」戦略を使用して実行可能解を初期化:
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 m m 個のシャードに分散している場合、協調ランキングを使用してグローバルK K K 前置分割を計算でき、ソースデータのマージが不要。
プロセッサに不連続な前置を割り当て、予備マージを実行する必要がない。協調ランキングベクトルは正確な交接点を決定し、プロセッサはその範囲に対してのみローカルマージを実行。
データベースまたはストリーム処理パイプラインでは、グローバルランクで結合フロンティアを分割することは自然な要件であり、本手法はグローバル前置と一貫した各ストリームカーソルを生成。
論文は主に理論分析に焦点を当てているが、著者は検証用の実装コードを提供している。アルゴリズムの実際のパフォーマンスは以下の側面で評価できる:
時間計算量 :O ( log ( ∑ t n t ) log m ) O(\log(\sum_t n_t) \log m) O ( log ( ∑ t n t ) log m ) 空間計算量 :O ( m ) O(m) O ( m ) 独立性 :複雑度はターゲットランクK K K に依存しないマージ手法との比較 :O ( N ) O(N) O ( N ) のマージオーバーヘッドを回避値空間手法との比較 :グローバルカウント操作を回避Frederickson-Johnson手法との比較 :インデックス空間で操作し、より効率的SiebertとTräffの研究は協調ランキングの基礎を確立し、主に並列マージでの作業分割に使用される。本論文はこれを2路から任意のm m m 路に拡張。
SiebertとWolfの正確な分割器手法は値空間で操作し、バランスの取れた分割のキー閾値を探索。これに対し、本論文の手法はインデックス空間で操作し、協調ランキングベクトルを直接出力。
Frederickson-Johnsonの古典的研究は、構造化入力(m m m 個のソート済みリストの和集合など)での選択とランキングを研究。そのアルゴリズムは本質的に値空間プロセスであり、本論文はインデックス空間プリミティブを提供。
二重路協調ランキングをマルチウェイ場合に成功裏に拡張し、良好な理論的性質を保持 インデックス空間操作は値域探索を回避し、決定的な複雑度保証を提供 アルゴリズムは単純で実装しやすく、良好な実用性を有する 仮定条件 :入力シーケンスが既にソートされていることが必要応用範囲 :主に正確な分割が必要なシーンに適用可能実験検証 :大規模実験によるパフォーマンス検証が不足動的シーケンス :動的更新をサポートするシーケンスへの拡張近似アルゴリズム :より高速な近似版の開発並列化 :アルゴリズムの並列化可能性の研究実用的応用 :より多くの実際のシステムでの効果検証理論的貢献 :マルチウェイ協調ランキングの効率的アルゴリズムを初めて提供し、理論的空白を埋める手法の革新 :インデックス空間操作の思想は新規であり、従来の手法の限界を回避分析の厳密性 :完全な正確性証明と複雑度分析を提供実用的価値 :アルゴリズムは簡潔で実装しやすく、明確な応用シーンを有する実験の欠如 :論文は実験検証を欠き、実際のパフォーマンスを評価できない比較の限定 :既存手法との詳細なパフォーマンス比較がない応用の深さ :応用シーンの議論は相対的に単純で、深い分析が不足学術的価値 :マルチウェイ協調ランキング問題に理論的基礎を提供実用的可能性 :分散計算と並列処理分野での応用前景を有する再現性 :著者が実装コードを提供し、検証と拡張を容易にする分散システムでのデータ分割 並列アルゴリズムでの負荷均衡 データベースシステムでのクエリ最適化 ストリーム処理システムでのマルチストリーム統合 1 Greg N. Frederickson and Donald B. Johnson. Generalized selection and ranking. STOC 1980.
2 Christian Siebert. Perfectly load-balanced, stable, synchronization-free parallel merge. Parallel Processing Letters, 2014.
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.
総合評価 :これは理論性が強いアルゴリズム論文であり、マルチウェイ協調ランキングという重要な問題を成功裏に解決している。実験検証が不足しているものの、理論分析は厳密で、手法の革新性が強く、関連分野に価値あるツールを提供している。