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 क्रमशः बाएं सीमा मान और दाएं सीमा मान का प्रतिनिधित्व करते हैं।
शास्त्रीय एल्गोरिदम का विस्तार: मौजूदा सह-रैंकिंग एल्गोरिदम मुख्य रूप से दो अनुक्रमों के लिए हैं, उच्च-कुशल बहु-मार्ग विस्तार की कमी है
विलय ओवरहेड से बचना: पारंपरिक विधियों को पहले कई अनुक्रमों को विलय करने की आवश्यकता होती है फिर चयन करना, जिसमें बड़ी लागत होती है
सूचकांक-स्थान लाभ: मान-स्थान के बजाय सूचकांक-स्थान में संचालन, मान-डोमेन खोज की जटिलता से बचा जाता है
व्यावहारिक अनुप्रयोग की आवश्यकता: वितरित कंप्यूटिंग, समानांतर प्रसंस्करण और डेटाबेस क्वेरी में सभी को उच्च-कुशल बहु-मार्ग विभाजन एल्गोरिदम की आवश्यकता है
यदि Φ(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.
समग्र मूल्यांकन: यह एक सैद्धांतिक रूप से मजबूत एल्गोरिदम पेपर है, जो बहु-मार्ग सह-रैंकिंग की महत्वपूर्ण समस्या को सफलतापूर्वक हल करता है। हालांकि प्रायोगिक सत्यापन की कमी है, लेकिन सैद्धांतिक विश्लेषण कठोर है, विधि नवाचार मजबूत है, और संबंधित क्षेत्रों के लिए मूल्यवान सैद्धांतिक उपकरण प्रदान करता है।