The best-known fully retroactive priority queue costs $O(\log^2 m \log \log m)$ time per operation, where $m$ is the number of operations performed on the data structure. In contrast, standard (non-retroactive) and partially retroactive priority queues can cost $O(\log m)$ time per operation. So far, it is unknown whether this $O(\log m)$ bound can be achieved for fully retroactive priority queues.
In this work, we study a restricted variant of priority queues known as monotonic priority queues. First, we show that finding the minimum in a retroactive monotonic priority queue is a special case of the range-searching problem. Then, we design a fully retroactive monotonic priority queue with a cost of $O(\log m + T(m))$ time per operation, where $T(m)$ is the maximum between the query and the update time of a specific range-searching data structure with $m$ elements. Finally, we design a fully retroactive monotonic priority queue that costs $O(\log m \log \log m)$ time per operation.
- ID de l'article : 2508.09892
- Titre : Retroactive Monotonic Priority Queues via Range Searching
- Auteurs : Lucas Castro, Rosiane de Freitas (Institut d'informatique - UFAM, Brésil)
- Classification : cs.DS (Structures de données et algorithmes), cs.CG (Géométrie computationnelle)
- Date de publication : Prépublication arXiv, mise à jour du 14 octobre 2025
- Lien de l'article : https://arxiv.org/abs/2508.09892
Les files d'attente de priorité entièrement rétroactives optimales connues nécessitent O(log2mloglogm) temps par opération, où m est le nombre total d'opérations effectuées sur la structure de données. En comparaison, les files d'attente de priorité standard (non rétroactives) et partiellement rétroactives ne nécessitent que O(logm) temps par opération. Il reste incertain si les files d'attente de priorité entièrement rétroactives peuvent atteindre la limite O(logm). Cet article étudie la variante restreinte des files d'attente de priorité monotones, prouvant d'abord que la recherche du minimum dans une file d'attente de priorité monotone rétroactive est un cas particulier d'un problème de recherche de plage, puis conçoit une file d'attente de priorité monotone entièrement rétroactive avec un temps de O(logm+T(m)) par opération, et finalement implémente une file d'attente de priorité monotone entièrement rétroactive avec un temps de O(logmloglogm) par opération.
Les structures de données traditionnelles ne peuvent opérer que sur l'état « actuel » et ne peuvent pas interroger ou modifier les états passés. Les structures de données rétroactives, introduites par Demaine et al., permettent de modifier les états passés et de propager les modifications à l'état actuel. Selon les fonctionnalités, elles se divisent en :
- Partiellement rétroactives : peuvent modifier le passé, mais ne peuvent interroger que l'état actuel
- Entièrement rétroactives : peuvent à la fois modifier le passé et interroger l'état à n'importe quel point dans le temps
- Écart d'efficacité : écart significatif de complexité temporelle entre les files d'attente de priorité entièrement rétroactives et les versions standard/partiellement rétroactives
- Défi théorique : incertitude quant à savoir si les files d'attente de priorité entièrement rétroactives peuvent atteindre la limite théorique O(logm)
- Applications pratiques : les files d'attente de priorité monotones ont une valeur d'application importante dans des scénarios tels que l'algorithme de Dijkstra
- La complexité temporelle de la file d'attente de priorité entièrement rétroactive optimale est O(log2mloglogm)
- Écart significatif par rapport à la complexité O(logm) de la file d'attente de priorité standard
- Manque de recherche spécialisée sur les variantes restreintes (telles que les files d'attente de priorité monotones)
- Découverte théorique : preuve que la recherche du minimum dans une file d'attente de priorité monotone rétroactive est équivalente à un problème de recherche de plage
- Cadre générique : conception d'une file d'attente de priorité monotone entièrement rétroactive avec une complexité temporelle de O(logm+T(m)), où T(m) est le temps de requête/mise à jour de la structure de données de recherche de plage
- Implémentation concrète : implémentation basée sur un arbre de plage 2D d'une file d'attente de priorité monotone entièrement rétroactive avec une complexité temporelle de O(logmloglogm)
- Perspective géométrique : fournit une nouvelle perspective géométrique pour comprendre les files d'attente de priorité rétroactives
Concevoir une file d'attente de priorité monotone entièrement rétroactive supportant les opérations suivantes :
Insert(insert(x), t) : insérer l'élément x au temps tDelete(insert(x), t) : supprimer l'opération d'insertion au temps tInsert(extract-min, t) : insérer l'opération d'extraction du minimum au temps tDelete(extract-min, t) : supprimer l'opération d'extraction au temps tGetMin(t) : retourner l'élément minimum au temps t
Contrainte de monotonie : les éléments extraits doivent former une séquence non décroissante.
Dans une file d'attente de priorité monotone, l'élément x existe au temps t si et seulement si :
insertionTime(x) ≤ tx > lastExtracted(t)
Cela évite de maintenir le temps d'extraction pour chaque élément, simplifiant la complexité des opérations rétroactives.
Intuition clé : dans une file d'attente de priorité monotone, le k-ième plus petit élément val[k] ne peut être extrait que par la k-ième opération d'extraction em[k].
Algorithme :
- Trouver l'opération prédécesseur au temps t dans l'arbre des temps d'extraction
- Déterminer le numéro de séquence k de cette opération
- Retourner le k-ième plus petit élément
Complexité temporelle : O(logm)
Représenter la file d'attente de priorité monotone comme des points dans un plan 2D :
- Chaque élément e est représenté comme le point
(insertionTime(e), e) - La requête
GetMin(t) se transforme en trouver le point avec la coordonnée y minimale dans le rectangle R(t)=(−∞,t]×(lastExtracted(t),∞)
Cette représentation transforme complètement le problème de requête de file d'attente de priorité en un problème géométrique de recherche de plage.
Trois structures de données auxiliaires :
- Tel : arbre de statistiques d'ordre stockant tous les éléments insérés
- Tem : arbre de statistiques d'ordre stockant tous les temps d'extraction
- Tins : structure de données de recherche de plage min-y stockant tous les paires
(temps d'insertion, valeur d'élément)
Implémentation des opérations :
GetMin(t) : d'abord trouver lastExtracted(t), puis interroger la plage rectangulaire dans TinsInsert/Delete(insert(x), t) : mettre à jour Tel et TinsInsert/Delete(extract-min, t) : mettre à jour Tem
Cet article effectue principalement une analyse théorique, vérifiant la correction de la méthode par :
- Preuves mathématiques : preuve rigoureuse de tous les lemmes et théorèmes clés
- Analyse de complexité : analyse détaillée de la complexité temporelle et spatiale de chaque opération
- Vérification de correction : vérification de la correction de la méthode par l'intuition géométrique et la logique algorithmique
Sélection de l'arbre de plage 2D de Mehlhorn et Näher comme structure de données sous-jacente :
- Temps de mise à jour : O(lognloglogn) (amorti, convertible en pire cas)
- Temps de requête : O(lognloglogn)
- Complexité spatiale : O(nlogn)
Théorème 20 (Cadre générique) :
Il existe une file d'attente de priorité monotone entièrement rétroactive avec les complexités suivantes :
- Opérations d'extraction : O(logm)
- Opérations d'insertion : O(logm+U(m))
- Opérations de requête : O(logm+Q(m))
- Complexité spatiale : O(m+S(m))
où U(m), Q(m), S(m) sont respectivement les complexités de mise à jour, requête et espace de la structure de données de recherche de plage.
Théorème 21 (Implémentation concrète) :
L'implémentation basée sur l'arbre de plage 2D possède les complexités suivantes :
- Opérations d'extraction : O(logm)
- Opérations d'insertion : O(logmloglogm)
- Opérations de requête : O(logmloglogm)
- Complexité spatiale : O(mlogm)
| Type de structure de données | Complexité temporelle |
|---|
| File d'attente de priorité standard | O(logm) |
| File d'attente de priorité partiellement rétroactive | O(logm) |
| File d'attente de priorité entièrement rétroactive (optimale connue) | O(log2mloglogm) |
| Cet article : file d'attente de priorité monotone entièrement rétroactive | O(logmloglogm) |
Cet article réalise une amélioration significative de la complexité de la file d'attente de priorité entièrement rétroactive (sous contrainte de monotonie).
- Demaine et al. (2007) : introduction du concept de structures de données rétroactives, conception de files d'attente de priorité partiellement rétroactives
- Demaine et al. (2015) : proposition d'une file d'attente de priorité entièrement rétroactive avec O(log2mloglogm)
- Chen et al. (2018) : preuve que certaines structures de données entièrement rétroactives sont nécessairement plus lentes que leurs versions partiellement rétroactives
- Scénarios d'application : algorithme de Dijkstra, planification d'événements, etc.
- Caractéristiques : les éléments extraits forment une séquence non décroissante, plus faciles à optimiser que les files d'attente de priorité générales
- Problème classique : problème fondamental en géométrie computationnelle
- Structures de données : arbres de plage, arbres de partition et autres structures de données spécialisées
- Contribution théorique : première connexion établie entre le problème des files d'attente de priorité rétroactives et la recherche de plage
- Amélioration algorithmique : amélioration significative de l'efficacité de la file d'attente de priorité entièrement rétroactive sous contrainte de monotonie
- Cadre générique : fournit un cadre de conception générique basé sur différentes structures de données de recherche de plage
- Restriction de contrainte : applicable uniquement aux files d'attente de priorité monotones, ne peut pas s'étendre directement au cas général
- Résultats théoriques : principalement une analyse théorique, manque d'implémentation pratique et de vérification expérimentale
- Écart de complexité : écart de facteur loglogm subsiste par rapport à la file d'attente de priorité standard
Les auteurs ont explicitement proposé trois directions de recherche :
- Étudier les versions entièrement rétroactives d'autres variantes de files d'attente de priorité restreintes
- Étudier les bornes supérieures pour les files d'attente de priorité entièrement rétroactives générales
- Étudier les bornes inférieures pour les files d'attente de priorité rétroactives
- Forte innovativité : première connexion établie entre les structures de données rétroactives et la géométrie computationnelle, perspective novatrice
- Rigueur théorique : tous les résultats clés possèdent des preuves mathématiques rigoureuses, logique claire
- Valeur pratique : les files d'attente de priorité monotones ont une importance d'application significative dans les algorithmes pratiques
- Clarté de rédaction : utilisation d'analogies telles que les systèmes bancaires pour une explication conceptuelle claire et compréhensible
- Intuition géométrique : l'analogie de projection de rayons fournit une très bonne intuition géométrique
- Portée d'application : limitée aux files d'attente de priorité monotones, généralité limitée
- Absence d'expériences : manque d'implémentation pratique et de tests de performance
- Analyse de borne inférieure : pas d'analyse de borne inférieure correspondante
- Facteurs constants : l'analyse théorique ne considère pas l'impact des facteurs constants
- Contribution théorique : fournit une nouvelle perspective géométrique pour la recherche sur les structures de données rétroactives
- Valeur méthodologique : démontre comment exploiter la structure spéciale d'un problème pour l'optimisation
- Signification inspirante : peut inspirer la recherche sur les versions rétroactives d'autres structures de données restreintes
- Algorithme de Dijkstra : problèmes de plus court chemin dans les graphes dynamiques
- Planification d'événements : systèmes de planification nécessitant la correction d'événements historiques
- Correction de données : scénarios d'application nécessitant la correction rétroactive de données
L'article cite 13 références connexes, incluant principalement :
- Demaine et al. (2007) - travail fondateur sur les structures de données rétroactives
- Demaine et al. (2015) - file d'attente de priorité entièrement rétroactive optimale actuelle
- Mehlhorn & Näher (1990) - travail classique sur l'arbre de plage 2D
- Agarwal (2018) - synthèse du problème de recherche de plage
Évaluation globale : Ceci est un article de haute qualité en informatique théorique qui résout un problème important dans les structures de données rétroactives grâce à une approche géométrique ingénieuse. Bien que les résultats s'appliquent uniquement au cas monotone, la méthode est novatrice, la théorie rigoureuse, et elle fournit des idées et des outils précieux pour la recherche future dans ce domaine.