Je me demande comment trouver la circonférence d'un graphe non orienté clairsemé. Par clairsemé, je veux dire . Par optimal, j'entends la complexité temporelle la plus faible.
J'ai pensé à une modification de l'algorithme de Tarjan pour les graphiques non orientés, mais je n'ai pas trouvé de bons résultats. En fait, je pensais que si je pouvais trouver un 2 composants connectés dans , alors je peux trouver la circonférence, par une sorte d'induction qui peut être obtenue à partir de la première partie. Je suis peut-être sur la mauvaise voie, cependant. Tout algorithme asymptotiquement meilleur que Θ ( | V | 2 ) (ie o ( | V | 2 ) ) est le bienvenu.
Réponses:
Voici ce que je sais du problème de la circonférence dans les graphiques non pondérés non dirigés. Tout d'abord, si la circonférence est paire, vous pouvez la déterminer en temps - c'est un ancien résultat d'Itai et de Rodeh (A. Itai et M. Rodeh. Trouver un circuit minimum dans un graphique. SIAM J Computing, 7 (4): 413–423, 1978.). L'idée est la suivante: pour chaque sommet du graphique, démarrer un BFS jusqu'à ce que le premier cycle soit fermé (puis s'arrêter et passer au sommet suivant); retourne le cycle le plus court trouvé. Si la circonférence est même le cycle le plus court trouvé sera le cycle le plus court. En particulier, si votre graphique est bipartite, cela calculera toujours la circonférence. Si la circonférence g est étrange, cependant, vous trouverez un cycle de longueur g ou g +O(n2) g g , vous pouvez donc être hors tension de 1 .g+1 1
Maintenant, le vrai problème avec la circonférence impaire est que votre algorithme devrait inévitablement être capable de détecter si le graphique a un triangle. Les meilleurs algorithmes pour cela utilisent la multiplication matricielle: temps min { n 2,38 , m 1,41 ) pour les graphes sur n nœuds et m bords. Itai et Rodeh ont également montré que tout algorithme qui peut trouver un triangle dans des graphiques denses peut également calculer la circonférence, nous avons donc un algorithme de circonférence temporelle O ( n 2,38 ) . Cependant, le temps d'exécution de la circonférence dans les graphiques clairsemés n'est pas aussi bon que celui pour trouver des triangles. Le mieux que l'on sache en général est O ( mO( n2.38,m1.41) n m O ( n2,38) . En particulier, ce qui semble le plus difficile est de trouver unalgorithme de temps o ( n 2 ) pour les graphes avec m = O ( n ) .O ( m n ) o ( n2) m = O ( n )
Si vous vous souciez des algorithmes d'approximation, Liam Roditty et moi avons un article récent dans SODA'12 à ce sujet: Liam Roditty, V. Vassilevska Williams: Algorithmes d'approximation du temps sous-quadratique pour la circonférence. SODA 2012: 833-845. Là, nous montrons qu'une approximation peut être trouvée en temps sub-quadratique, et quelques autres résultats concernant les approximations et extensions additives. De manière générale, en raison d'un théorème de Bondy et Simonovits, lorsque vous avez des graphes denses, disons sur n 1 + 1 / k bords, ils contiennent déjà des cycles pairs courts, disons environ 2 k2 n1 + 1 / k 2 k . Ainsi, plus le graphique est dense, plus il est facile de trouver une bonne approximation de la circonférence. Lorsque le graphique est très clairsemé, la circonférence peut être essentiellement arbitrairement grande.
la source
Trouver la circonférence d'un graphique plan a une histoire intéressante. Voir cet article de Chang et Lu pour un algorithme de temps linéaire et l'historique des améliorations.
Il n'y a pas de technique générale pour trouver la circonférence d' un graphique clairsemé. Souvent, nous devons regarder les décompositions ou les plongements spéciaux associés pour atteindre de meilleures limites. Si un graphique est "prouvablement" clairsemé, il y a souvent une belle structure qui lui est associée. Par exemple, les graphiques de largeur d'arbre bornés sont rares et ils ont les décompositions d'arbre associées.
la source