Avez-vous des conseils sur la façon de déterminer si un graphe non orienté peut être coloré avec seulement 2 couleurs? Comment cela pourrait-il être implémenté dans Java?Déterminer si un graphe non orienté peut être coloré en utilisant seulement 2 couleurs
Répondre
Faites un breadth-first search sur le graphique. À chaque profondeur égale, coloriez les nœuds d'une couleur, disons rouge, et aux profondeurs impaires, vous coloriez les nœuds en bleu. Chaque fois que vous avez un bord non-arbre (un bord entre deux nœuds que vous avez déjà visité), vérifiez que les couleurs sont différentes. Si le graphique a plusieurs composants connectés, vous répétez simplement la recherche sur chaque composant.
Cela revient à déterminer si le graphique est bipartite. Pour ce faire, vous devez vérifier si un cycle impair existe dans le graphique. Pour cela, vous effectuez une recherche en largeur sur le graphique. Si à n'importe quel niveau dans le BFS, il y a un bord entre les nœuds du même niveau, alors le graphique n'est pas bipartite, c'est-à-dire qu'il ne peut pas être coloré en utilisant seulement 2 couleurs. (En supposant que la contrainte est que les nœuds adjacents doivent être de couleurs différentes)
- 1. Représentation en treillis du graphe non orienté
- 2. Comment transformer un graphe très cyclique non orienté en un graphe acyclique orienté?
- 3. Comment utiliser un graphe orienté BGL comme un graphe non orienté (à utiliser dans un algorithme de mise en page)?
- 4. algorithme pour un problème de graphe orienté
- 5. Suggestions pour KSPA sur un graphe non orienté
- 6. Transposition sur un graphe orienté
- 7. Vérification des cycles impairs dans un graphe non orienté
- 8. Travailler avec un graphe orienté utilisant RGL dans Ruby
- 9. Comment implémenter un graphe non orienté dans Ruby on Rails?
- 10. Comment vérifier si un graphe orienté est acyclique?
- 11. Déterminer si un fichier peut être déplacé ou copié
- 12. Déterminer si un répertoire peut être déplacé sur NTFS
- 13. Comment remplir un triangle avec gradient en utilisant trois couleurs? (peut-être en utilisant GD)
- 14. Traverser un graphe non-orienté non-pondéré avec une torsion: visites minimales sur chaque noeud
- 15. Couleurs de graphe Mercurial
- 16. Nœuds feuille de graphe orienté - Prolog
- 17. Un seul chemin le plus court d'un graphe acyclique non orienté déconnecté
- 18. Déterminer si une activité spécifique d'une application peut être lancée
- 19. Comment déterminer si un objet peut être converti en chaîne significative en C#
- 20. Extraire un sous-graphe d'un graphe en utilisant JUNG?
- 21. Stockage d'un graphe orienté dans google appengine datastore
- 22. algorithme pour traveral BFS d'un graphe orienté de acylic
- 23. Résoudre un graphe de dépendance pour le composant orienté aspect
- 24. C# définir un texte en 2 couleurs
- 25. Traverse graphique non orienté dans prolog
- 26. Comment modéliser un réseau bayésien ou, plus généralement, un graphe orienté, en SQL?
- 27. Déterminez si Silverlight peut être installé
- 28. Déterminer si un répertoire existe déjà en utilisant SVN ANT
- 29. Jquery SI peut-être?
- 30. Comment puis-je demander à JavaScript de cacher un élément SEULEMENT SI il peut être trouvé?
Des contraintes? juste couleur n/2 nœuds avec couleur 1 et n/2 nœuds avec couleur 2 =) – Enrique
J'ai trouvé une question similaire qui pourrait vous aider, http://stackoverflow.com/questions/1838934/checking-for-odd-cycles-in -an-undirected-graph –
ce qui me trouble est le fait que nous sommes supposés prouver s'il est possible ou non de colorier un graphe non orienté en utilisant 2 couleurs. – rdplt