Une griffe est un . Un algorithme trivial détectera une griffe en temps . Cela peut être fait dans , où est l'exposant de la multiplication matricielle rapide, comme suit: prendre le sous-graphe induit par pour chaque sommet , et trouvez un triangle dans son complément.
comme une borne inférieure.
Question:
- Y a-t-il des progrès à ce sujet. Ou tout progrès pour montrer que c'est impossible?
- Y a-t-il d'autres problèmes naturels avec les algorithmes qui sont les meilleurs?
Remarque:
- Je demande explicitement la détection d'une griffe, au lieu de la reconnaissance de graphiques sans griffe. Bien qu'un algorithme résout généralement les deux, il existe quelques exceptions.
- Il est affirmé dans Handbook of Algorithms and Theoretical Computer Science qu'il peut être trouvé en temps linéaire, mais ce n'était qu'une faute de frappe (voir "Représentations de graphes efficaces").
graph-theory
graph-algorithms
graph-classes
Yixin Cao
la source
la source
Réponses:
Je pense que nous pouvons faire un peu mieux que pour les graphes denses, en utilisant la multiplication matricielle rectangulaire. Une idée similaire a été utilisée par Eisenbrand et Grandoni («Sur la complexité de la clique à paramètres fixes et de l'ensemble dominant», Theoretical Computer Science Volume 326 (2004) 57–67) pour la détection à 4 cliques.O(n1+ω)
Soit le graphe dans lequel on veut détecter l'existence d'une griffe. Soit A l'ensemble des (ordonnée) des paires de sommets dans V . Considérons la matrice booléenne M suivante de taille | V | × | A | : chaque ligne est indexée par certains u ∈ V , chaque colonne est indexée par certains ( v , w ) ∈ A , et l'entrée correspondante est une si et seulement si { u , v } ∈G=(V,E) A V M |V|×|A| u∈V (v,w)∈A , { v , w } ∈ E et { u , w } ∉ E . Considérons le produit dematrice booléenne M et sa transposée M T . Le graphe G a une griffe si et seulement s'il existe { u , v } ∉ E
tel que l'entrée de M M T dans la ligne indexée par u et la colonne indexée par v soit égale à un.{u,v}∈E {v,w}∈E {u,w}∉E M MT G {u,v}∉E MMT u v
La complexité de cet algorithme est essentiellement la complexité du calcul du produit booléen d'une matrice par une matrice n 2 × n , où n désigne le nombre de sommets dans le graphe. On sait qu'un tel produit matriciel peut être calculé dans le temps O ( n 3,3 ) , ce qui est meilleur que O ( n 1 + ω ) pour la borne supérieure la plus connue sur ω . Bien sûr, si ω = 2 (comme conjecturé) alors les deux approches donnent la même complexité On×n2 n2×n n O(n3.3) O(n1+ω) ω ω=2 .O(n3)
la source
Je ne sais pas comment éviter de faire multiplications matricielles, mais vous pouvez l'analyser de telle sorte que le temps soit effectivement celui d'un plus petit nombre d'entre elles. Cette astuce vient den
Kloks, Ton; Kratsch, Dieter; Müller, Haiko (2000), «Trouver et compter efficacement les petits sous-graphes induits», Information Processing Letters 74 (3-4): 115-121, doi: 10.1016 / S0020-0190 (00) 00047-8, MR 1761552.
La première observation est que, lorsque vous allez multiplier les matrices, les matrices ne sont pas vraiment , mais d × d où d est le degré de chaque sommet, parce que ce que vous recherchez est un co-triangle dans le voisinage de chaque sommet.n×n d×d d
Deuxièmement, dans un graphique sans griffes, chaque sommet doit avoir voisins. Car sinon, l'ensemble des voisins aurait trop peu d'arêtes pour éviter d'avoir un triangle dans le complément. Donc, quand vous faites des multiplications matricielles, il vous suffit de le faire sur des matrices de tailleO( √O(m−−√) plutôt quen.O(m−−√) n
De plus, chaque arête peut contribuer à la taille du problème de multiplication matricielle pour seulement deux sommets, ses extrémités. Le pire des cas se produit lorsque les de la taille totale de ces problèmes de multiplication matricielle sont répartis en O ( √2m sous-problèmes de tailleO( √O(m−−√) chacun, ce qui donne une limite de temps totale deO(m ( 1 + ω ) / 2 ), une amélioration pour les graphes clairsemés par rapport à lalimite deO(nm ω / 2 )mentionnée par R B.O(m−−√) O(m(1+ω)/2) O(nmω/2)
la source