2025-11-11T16:25:09.674123

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

Co-Classement Multi-Voies : Partitionnement de l'Espace d'Index de Séquences Triées Sans Fusion

Informations Fondamentales

  • ID de l'article : 2510.22882
  • Titre : Multi-Way Co-Ranking: Index-Space Partitioning of Sorted Sequences Without Merge
  • Auteur : Amit Joshi (Chercheur Indépendant)
  • Classification : cs.DS (Structures de Données et Algorithmes)
  • Date de Publication : 27 octobre 2025 (Prépublication arXiv)
  • Lien de l'article : https://arxiv.org/abs/2510.22882

Résumé

Cet article propose un algorithme de co-classement multi-voies sans fusion pour calculer les indices de coupure i1,,imi_1,\dots,i_m, partitionnant mm séquences triées de sorte que tous les segments de préfixe contiennent ensemble exactement KK éléments. Cette méthode étend le co-classement de liste double de Siebert et Träff à un nombre arbitraire de voies mm, en maintenant les frontières de chaque séquence et en convergeant vers une frontière globale cohérente, sans exécuter de fusion multi-voies ni de recherche dans l'espace des valeurs. L'algorithme applique une recherche binaire dans l'espace d'index avec une complexité temporelle de O(log(tnt)logm)O(\log(\sum_t n_t)\log m) et une complexité spatiale de O(m)O(m), indépendante de KK. La correction est prouvée par un argument d'échange, et les applications au sac à dos fractionnaire distribué, au partitionnement de fusion parallèle et aux jointures multi-flux sont discutées.

Contexte et Motivation de la Recherche

Définition du Problème

Le problème de co-classement multi-voies est défini comme suit : étant donné mm séquences L1,,LmL_1, \ldots, L_m triées en ordre non décroissant (avec répétitions autorisées), chacune de longueur ntn_t, et un rang cible global K{0,,N}K \in \{0, \ldots, N\} (où N=tntN = \sum_t n_t), il faut trouver les indices de coupure i1,,imi_1, \ldots, i_m tels que :

t=1mit=Ketmaxttmintrt\sum_{t=1}^m i_t = K \quad \text{et} \quad \max_t \ell_t \leq \min_t r_t

t\ell_t et rtr_t représentent respectivement les valeurs de frontière gauche et droite.

Motivation de la Recherche

  1. Extension d'algorithmes classiques : Les algorithmes de co-classement existants ciblent principalement deux séquences, manquant d'extensions multi-voies efficaces
  2. Éviter les frais de fusion : Les méthodes traditionnelles nécessitent de fusionner d'abord plusieurs séquences avant la sélection, ce qui entraîne des frais importants
  3. Avantages de l'espace d'index : Opérer dans l'espace d'index plutôt que dans l'espace des valeurs évite la complexité de la recherche de domaine
  4. Besoins d'applications pratiques : L'informatique distribuée, le traitement parallèle et les requêtes de bases de données nécessitent tous des algorithmes de partitionnement multi-voies efficaces

Limitations des Méthodes Existantes

  • Méthode Siebert-Träff : Supporte uniquement le co-classement de deux séquences
  • Méthode Frederickson-Johnson : Opère dans l'espace des valeurs, nécessite des opérations de comptage global
  • Méthodes basées sur les séparateurs : Nécessitent une fusion préalable ou une recherche de domaine, complexité élevée

Contributions Principales

  1. Conception d'algorithme : Propose le premier algorithme de co-classement multi-voies sans fusion, étendant la méthode classique à deux voies à un nombre arbitraire de voies mm
  2. Analyse théorique : Prouve la correction de l'algorithme et la complexité temporelle O(log(tnt)logm)O(\log(\sum_t n_t)\log m)
  3. Innovation en structures de données : Conçoit des tas adressables (addressable heaps) pour maintenir efficacement les valeurs de frontière
  4. Extension d'applications : Démontre le potentiel de l'algorithme dans l'optimisation distribuée, le traitement parallèle et les systèmes de bases de données

Détails de la Méthode

Définition de la Tâche

Entrée :

  • mm séquences triées L1,,LmL_1, \ldots, L_m de longueurs respectives n1,,nmn_1, \ldots, n_m
  • Rang cible K[0,N]K \in [0, N], où N=t=1mntN = \sum_{t=1}^m n_t

Sortie :

  • Vecteur d'indices de coupure (i1,,im)(i_1, \ldots, i_m) satisfaisant les conditions de co-classement

Contraintes :

  • t=1mit=K\sum_{t=1}^m i_t = K
  • maxttmintrt\max_t \ell_t \leq \min_t r_t (condition de co-classement)

Architecture de l'Algorithme

Structure de Données Centrale : Tas d'Index

L'algorithme maintient deux tas d'index :

  • HLH_L : Tas maximum, stockant les valeurs de frontière gauche (t,t)(\ell_t, t), retournant la séquence avec la frontière gauche maximale (donateur)
  • HRH_R : Tas minimum, stockant les valeurs de frontière droite (rt,t)(r_t, t), retournant la séquence avec la frontière droite minimale (récepteur)

Chaque tas supporte une opération update_key en O(logm)O(\log m) et une opération peek en O(1)O(1).

Gestion des Frontières

Pour chaque séquence tt, maintenir :

  • Borne inférieure : Lb[t]i[t]Lb[t] \leq i[t]
  • Borne supérieure : i[t]Ub[t]i[t] \leq Ub[t]
  • Index courant : i[t]i[t]

Stratégie Itérative

L'algorithme adopte une stratégie gourmande donateur-récepteur :

  1. Identification des Valeurs Extrêmes :
    • Donateur p=argmaxttp = \arg\max_t \ell_t (frontière gauche maximale)
    • Récepteur q=argmintrtq = \arg\min_t r_t (frontière droite minimale)
  2. Calcul de la Quantité de Transfert :
    donor_slack = ⌈(i[p] - Lb[p])/2⌉
    receiver_slack = ⌈(Ub[q] - i[q])/2⌉
    Δ = min{donor_slack, receiver_slack}
    
  3. Exécution du Transfert :
    • i[p]i[p]Δi[p] \leftarrow i[p] - \Delta
    • i[q]i[q]+Δi[q] \leftarrow i[q] + \Delta
    • Mise à jour des bornes : Ub[p]i[p]Ub[p] \leftarrow i[p], Lb[q]i[q]Lb[q] \leftarrow i[q]
  4. Mise à Jour des Tas : Rafraîchir les clés de tas des séquences affectées

Points d'Innovation Technique

  1. Opérations dans l'Espace d'Index : Fonctionne entièrement dans l'espace d'index, évitant la recherche de domaine et les opérations de fusion
  2. Convergence Géométrique : Par réduction de moitié du domaine réalisable, garantit une vitesse de convergence logarithmique
  3. Fonction de Potentiel Déséquilibrée : Définit Φ(i)=maxttmintrt\Phi(i) = \max_t \ell_t - \min_t r_t comme critère de convergence
  4. Complexité Déterministe : La complexité de l'algorithme est indépendante du rang cible KK

Analyse Théorique

Preuve de Correction

Lemme 1 (Optimalité des Valeurs Extrêmes Locales)

Si Φ(i)>0\Phi(i) > 0, soit p=argmaxttp = \arg\max_t \ell_t et q=argmintrtq = \arg\min_t r_t. Parmi tous les transferts infinitésimaux réalisables maintenant tit=K\sum_t i_t = K, la paire (p,q)(p,q) réalise la plus grande variation non croissante de Φ\Phi.

Esquisse de la preuve : Réduire ipi_p diminue p\ell_p (le maximum local de la frontière gauche), augmenter iqi_q augmente rqr_q (le minimum local de la frontière droite). Puisque pu\ell_p \geq \ell_u et rqrvr_q \leq r_v pour tous u,vu,v, la paire extrême (p,q)(p,q) produit la réduction la plus raide de l'écart maxminr\max\ell - \min r.

Lemme 2 (Échangeabilité de l'Ordre de Transfert)

Toute séquence de transferts réalisables réduisant Φ\Phi peut être réordonnée de sorte que tous les transferts extrêmes (p,q)(p,q) se produisent avant tout transfert non extrême, sans dégrader Φ\Phi à aucune étape intermédiaire.

Théorème 1 (Convergence et Validité)

L'algorithme 2 se termine avec un vecteur de co-classement valide (i1,,im)(i_1, \ldots, i_m) satisfaisant tit=K\sum_t i_t = K et maxttmintrt\max_t \ell_t \leq \min_t r_t.

Analyse de Complexité

Analyse des Itérations

À chaque itération, la distance réalisable du donateur ou du récepteur est réduite de moitié. La distance Ub[t]Lb[t]Ub[t] - Lb[t] de chaque séquence est réduite au maximum O(lognt)O(\log n_t) fois. En agrégant toutes les mm séquences, le nombre total d'itérations est :

T=O(log(t=1mnt))T = O\left(\log\left(\sum_{t=1}^m n_t\right)\right)

Complexité Temporelle

Chaque itération exécute un nombre constant d'opérations de tas d'index (temps O(logm)O(\log m)), la complexité temporelle totale est :

O(log(tnt)logm)O\left(\log\left(\sum_t n_t\right) \cdot \log m\right)

Complexité Spatiale

L'algorithme ne doit stocker que les indices et les informations de frontière pour les mm séquences, la complexité spatiale est O(m)O(m).

Implémentation de l'Algorithme

Flux d'Algorithme Principal

def multi_way_corank(sequences, K):
    m = len(sequences)
    # Initialiser les bornes et les indices
    Lb = [0] * m
    Ub = [len(seq) for seq in sequences]
    i = water_fill_initialization(K, Ub)
    
    # Construire les tas d'index
    HL = MaxHeap()  # Tas maximum de frontière gauche
    HR = MinHeap()  # Tas minimum de frontière droite
    
    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:
        # Obtenir le donateur et le récepteur
        max_left, p = HL.peek()
        min_right, q = HR.peek()
        
        # Vérifier la condition de terminaison
        if max_left <= min_right:
            break
            
        # Calculer la quantité de transfert
        donor_slack = ceil((i[p] - Lb[p]) / 2)
        receiver_slack = ceil((Ub[q] - i[q]) / 2)
        delta = min(donor_slack, receiver_slack)
        
        # Exécuter le transfert
        i[p] -= delta
        i[q] += delta
        
        # Mettre à jour les bornes
        Ub[p] = i[p]
        Lb[q] = i[q]
        
        # Mettre à jour les tas
        update_heaps(HL, HR, sequences, i, p, q)
    
    return i

Stratégie d'Initialisation

Utiliser une stratégie de « remplissage d'eau » pour initialiser une solution réalisable :

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

Scénarios d'Application

1. Problème de Sac à Dos Fractionnaire Distribué

Dans les problèmes de sac à dos fractionnaire multi-sources, lorsque les articles sont déjà triés par densité et distribués sur mm fragments, le co-classement peut calculer le partitionnement de préfixe global KK, sans fusionner les données sources.

2. Partitionnement de Fusion mm-Voies Parallèle

Allouer aux processeurs des préfixes disjoints sans exécuter de fusion préalable. Le vecteur de co-classement détermine les points de jonction exacts, les processeurs exécutant ensuite uniquement la fusion locale sur leur plage.

3. Partitionnement de Jointure Multi-Flux

Dans les pipelines de bases de données ou de traitement de flux, partitionner la frontière de jointure au rang global est un besoin naturel ; cette méthode produit des curseurs par flux cohérents avec le préfixe global.

Vérification Expérimentale

Bien que l'article se concentre principalement sur l'analyse théorique, l'auteur fournit du code d'implémentation pour vérification. Les performances réelles de l'algorithme peuvent être évaluées selon les aspects suivants :

Garanties de Performance Théorique

  • Complexité temporelle : O(log(tnt)logm)O(\log(\sum_t n_t) \log m)
  • Complexité spatiale : O(m)O(m)
  • Indépendance : La complexité est indépendante du rang cible KK

Comparaison avec les Méthodes Existantes

  • Par rapport aux méthodes de fusion : Évite les frais de fusion O(N)O(N)
  • Par rapport aux méthodes d'espace de valeurs : Évite les opérations de comptage global
  • Par rapport à Frederickson-Johnson : Opère dans l'espace d'index, plus efficace

Travaux Connexes

Co-Classement de Liste Double

Le travail de Siebert et Träff jette les bases du co-classement, principalement utilisé pour le partitionnement du travail dans la fusion parallèle. Cet article l'étend de 2 voies à un nombre arbitraire de voies.

Tri Parallèle Basé sur les Séparateurs

La méthode de séparateur exact de Siebert et Wolf opère dans l'espace des valeurs, recherchant les seuils de clé pour les partitions équilibrées. En comparaison, cette méthode opère dans l'espace d'index, produisant directement le vecteur de co-classement.

Sélection dans le Partitionnement de Séquences Triées

Le travail classique de Frederickson-Johnson étudie la sélection et le classement sur des entrées structurées (comme l'union de mm listes triées). Son algorithme est essentiellement un processus d'espace de valeurs, tandis que cet article fournit une primitive d'espace d'index.

Conclusion et Discussion

Conclusions Principales

  1. Extension réussie du co-classement à deux voies au cas multi-voies, préservant les bonnes propriétés théoriques
  2. Les opérations dans l'espace d'index évitent la recherche de domaine, fournissant des garanties de complexité déterministes
  3. L'algorithme est simple à implémenter et possède une bonne praticité

Limitations

  1. Conditions d'hypothèse : Nécessite que les séquences d'entrée soient déjà triées
  2. Portée d'application : Principalement applicable aux scénarios nécessitant un partitionnement exact
  3. Vérification expérimentale : Manque de vérification expérimentale à grande échelle des performances

Directions Futures

  1. Séquences dynamiques : Étendre pour supporter les séquences avec mises à jour dynamiques
  2. Algorithmes d'approximation : Développer des versions approximatives plus rapides
  3. Parallélisation : Étudier les possibilités de parallélisation de l'algorithme
  4. Applications pratiques : Vérifier l'efficacité dans davantage de systèmes réels

Évaluation Approfondie

Avantages

  1. Contribution théorique : Fournit pour la première fois un algorithme efficace pour le co-classement multi-voies, comblant un vide théorique
  2. Innovation méthodologique : L'approche d'opération dans l'espace d'index est novatrice, évitant les limitations des méthodes traditionnelles
  3. Analyse rigoureuse : Fournit des preuves de correction complètes et une analyse de complexité
  4. Valeur pratique : L'algorithme est concis, facile à implémenter, avec des scénarios d'application clairs

Insuffisances

  1. Absence d'expériences : L'article manque de vérification expérimentale, impossible d'évaluer les performances réelles
  2. Comparaisons limitées : Pas de comparaisons détaillées de performance avec les méthodes existantes
  3. Profondeur d'application : La discussion des scénarios d'application est relativement superficielle, manquant d'analyse approfondie

Influence

  1. Valeur académique : Fournit les fondations théoriques pour le problème de co-classement multi-voies
  2. Potentiel pratique : Perspectives d'application dans l'informatique distribuée et le traitement parallèle
  3. Reproductibilité : L'auteur fournit du code d'implémentation, facilitant la vérification et l'extension

Scénarios Applicables

  • Partitionnement de données dans les systèmes distribués
  • Équilibrage de charge dans les algorithmes parallèles
  • Optimisation de requêtes dans les systèmes de bases de données
  • Fusion multi-flux dans les systèmes de traitement de flux

Références

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.


Évaluation Générale : Ceci est un article d'algorithme à forte composante théorique qui résout avec succès le problème important du co-classement multi-voies. Bien que manquant de vérification expérimentale, l'analyse théorique est rigoureuse, la méthodologie est fortement innovante, et elle fournit des outils théoriques précieux pour les domaines connexes.