J'étais réticent à répondre à cette question, car le seul résultat théorique que je connaisse dans ce sens a mon nom sur le papier ...
Théoriquement, il est possible de prétraiter une matrice booléenne dense afin que les multiplications matricielles-vecteurs éparses avec (sur la semi-continuité de OR et AND) puissent être effectuées plus rapidement que le temps d'exécution naïf. Probablement une quantité importante de piratage serait nécessaire pour l'implémenter dans la pratique, mais je pense que cela se passerait bien dans la pratique pour un assez grand et la bonne implémentation.A A nn×nAAn
(Remarque: cet algorithme n'est vraiment utile que dans le cas où une matrice est dense et l'autre est clairsemée. Ce cas apparaît souvent, par exemple, lors du calcul de la fermeture transitive d'un graphe clairsemé, la matrice de fermeture transitive finira par devenir dense par rapport à la matrice d'adjacence d'origine.)
Le papier est
Guy E. Blelloch, Virginia Vassilevska, Ryan Williams: Une nouvelle approche combinatoire pour les problèmes de graphes clairsemés. ICALP (1) 2008: 108-120
et le résultat pertinent de l'article est que pour chaque , il existe un algorithme de temps qui, étant donné 0-1 matrice , les opérations suivantes sont prise en charge:O ( n 2 + ε ) n × n Aε>0O(n2+ε)n×nA
- Pour tout vecteur avec seulement zéros, peut être calculé en temps , où , sont des paramètres libres satisfaisant . (Un bon réglage est et , de sorte que le temps d'exécution est d'environ pour toute constante souhaitée .t A v O ( n ( t / k + n / ℓ ) / log n ) ℓ kvtAvO(n(t/k+n/ℓ)/logn)ℓk(ℓk)≤nεℓ=logcnk=ε(logn)/loglognnt/logn+n2/logcnc
- Les mises à jour des lignes et des colonnes vers peuvent être calculées en temps .AO(n1+ε)
Nous avons utilisé cette structure de données pour donner des algorithmes théoriques plus rapides pour APSP dans des graphiques clairsemés non pondérés.