Devoir Maison 2018 – Coloration de graphes
Ce devoir est à réaliser dans un notebook Jupyter/SageMath.
Utilisez les cellules ordinaires pour faire les calculs, et les
cellules de texte (Markdown) pour ajouter vos commentaires et les
réponses aux questions. Rappel : vous pouvez saisir des formules au
format LaTeX entre les symboles $
(dollar).
Envoyez votre travail complet par mail. Vous pouvez soit l’exporter au
format .ipynb
(« File → Download as → Notebook (.ipynb) »), soit
donner le lien du notebook sur https://jupyter.ens.uvsq.fr/ (et
uniquement sur ce serveur).
Le but de ce sujet est de montrer comment on peut réduire certains problèmes sur les graphes à un calcul de bases de Gröbner. Il a été inspiré par ce cours de D. A. Cox.
Racines de l’unité
-
Factoriser avec Sage le polynôme .
-
Factoriser avec Sage le polynôme .
-
Soit un entier, caractériser la factorisation de en fonction de .
-
Calculer la base de Gröbner pour l’ordre lex de l’idéal
Quelle est la dimension de l’idéal ? Décrire sa variété.
Soient et deux entiers positifs, on définit les polynômes de
et
Ainsi, par exemple
-
Soit un entier, prouver que l’idéal de défini par
contient les polynômes pour tout .
Idéal de coloration
Un graphe non-orienté est dit -colorable lorsque on peut colorer ses sommets avec couleurs en sorte que deux sommets adjacents n’aient pas la même couleur. Voici un exemple de 3-coloration du graphe de Petersen.
Les problèmes de -coloration peuvent être résolus à l’aide des bases de Gröbner. Étant donné un graphe à sommets, on définit l’anneau de polynômes , et l’idéal engendré par les polynômes
- pour tout sommet , et
- s’il existe une arrête entre le sommet et le sommet .
-
Prouver qu’à chaque point de la variété de correspond une -coloration du graphe .
-
À l’aide d’une base de Gröbner, donner une 3-coloration du graphe ci-dessous.
-
Prouver que le graphe ci-dessous ne peut pas être 3-colorié.
Note: le dessin change de forme à chaque rechargement de la page, mais il s’agit toujours du même graphe. Pour vous simplifier la vie, voici sa matrice d’adjacence.
SageMath fournit une bibliothèque assez complète de théorie des
graphes. Tous les graphes remarquables implantés sont disponibles dans
l’espace de noms graphs.
. Ainsi, pour créer le graphe de Petersen,
on tapera la commande
G = graphs.PetersenGraph()
Tout graphe dans Sagemath a une méthode .vertices()
qui renvoie la
liste des sommets, et une méthode edges()
qui renvoie la liste des
arrêtes (une liste de triplets, dont vous pouvez ignorer le dernier
élément) :
sage: G.vertices()
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sage: G.edges()
[(0, 1, None),
(0, 4, None),
(0, 5, None),
(1, 2, None),
(1, 6, None),
(2, 3, None),
(2, 7, None),
(3, 4, None),
(3, 8, None),
(4, 9, None),
(5, 7, None),
(5, 8, None),
(6, 8, None),
(6, 9, None),
(7, 9, None)]
-
Écrivez une fonction
coloration(G, k)
qui prend en entrée un graphe et un entier et qui renvoie, si possible, une -coloration de par la méthode décrite précédemment.Note : Pour créer un anneau avec un nombre arbitraire de variables vous pouvez utiliser la syntaxe
PolynomialRing(k, 'x', 10)
Coloration unique et Sudoku
On dit qu’un graphe est uniquement -colorable s’il a une unique -coloration à permutation des couleurs près. Par exemple, le graphe complet à sommets est uniquement -colorable.
Hillar et Windfeldt ont donné un critère pour détecter qu’un graphe est uniquement -colorable. Supposons que soit -colorable, et réordonnons ses sommets en sorte que les derniers sommets aient couleurs différentes. Renommons les variables
Le graphe est uniquement -colorable si et seulement si son idéal de coloration contient les polynômes
- ,
- pour ,
- si la couleur de est égale à la couleur de .
- Le graphe ci-dessous est-il uniquement 3-colorable ? Quel est son plus grand sous-graphe uniquement 3-colorable ?
On peut appliquer ce théorème à la solution des grilles de Sudoku. Soit un carré, un jeu de Sudoku d’ordre est une grille dont les cases sont vides, ou bien contiennent des entiers entre et . La grille de Sudoku est elle même divisée en sous-grilles qui la recouvrent entièrement. Voici un exemple de Sudoku d’ordre 2.
1 | 2 | ||
2 | |||
2 | 4 | ||
1 | 3 |
Une grille de Sudoku d’ordre est dite soluble s’il est possible de remplir toutes les cases vides avec des entiers entre et en sorte que
- sur chaque ligne apparaissent tous les entiers entre et ,
- sur chaque colonne apparaissent tous les entiers entre et , et
- dans chaque sous-grille apparaissent tous les entiers entre et .
Une grille soluble est dite soluble uniquement s’il existe une seule façon de remplir ses cases.
-
Expliquer comment ramener la solution d’une grille de Sudoku d’ordre à un problème de -coloration d’un graphe à sommets.
-
À l’aide d’un calcul de base de Gröbner, donner une solution à la grille
1 2 2 2 4 1 3 La solution est-elle unique ?
Note : des calculs de bases de Gröbner à 16 variables peuvent être assez coûteux. Si vous êtes amenés à interrompre un calcul de bases de Gröbner (par le bouton/menu « Interrupt kernel » de Jupyter, ou en tapant
Ctrl+C
dans le terminal), Sage risque de se retrouver dans un état inconsistant, et les calculs successifs de bases de Gröbner risquent de donner des résultats faux. Dans ce cas, on vous conseille de redémarrer le noyau Sage en utilisant le bouton/menu « Restart kernel » de Jupyter, ou bien en redémarrant Sage dans le terminal. -
À l’aide d’un calcul de base de Gröbner, donner une solution à la grille
2 2 2 4 1 3 La solution est-elle unique ?
-
À l’aide d’un calcul de base de Gröbner, donner une solution à la grille
8 9 3 2 5 4 2 1 4 5 8 7 4 6 9 8 1 3 6 5 8 1 3 4 3 4 7 6 9 8 8 1 2 4 5 7 4 3 6 9 2 9 2 3 4 7 8 7 6 2 1 4 3 La solution est-elle unique ?
Note : bien que la solution de cette grille ne soit pas difficile, les calculs de bases de Gröbner commencent à bien peiner sur les problèmes de cette taille1. Pour mettre toutes les chances de votre côté, n’oubliez pas que :
-
Il est beaucoup plus rapide de calculer la base de Gröbner d’une liste de générateurs déjà (presque) réduits, que d’une liste de générateurs quelconques. Utilisez les questions précédentes pour ajouter des polynômes déjà réduits à votre idéal de coloration.
-
Il est en général beaucoup plus facile de réduire pour l’ordre degrevlex, et ensuite faire un changement de base, que de réduire directement pour l’ordre lex (voir aussi le DM sur les changements d’ordre).
-
L’un des problèmes des algorithmes de calcul de bases de Gröbner sur est l’explosion des coefficients des calculs intermédiaires. Ce problème disparaît en faisant les calculs sur un corps fini bien choisi…
Avec beaucoup de persévérance et d’optimisations, j’ai pu faire passer ce calcul en moins de 2 minutes. Saurez-vous faire mieux ?
-
-
À l’aide d’un calcul de base de Gröbner, armez-vous de patience et donnez une solution à la grille
8 9 3 2 4 2 1 4 5 8 7 4 6 9 8 1 3 6 5 8 3 4 3 4 7 6 9 8 8 1 2 4 5 7 4 3 6 9 2 9 2 3 4 7 8 7 6 2 1 4 3
-
Ce qui montre que les bases de Gröbner ne sont pas le bon outil pour résoudre les Sudokus, mais passons. ↩