Je m'intéresse à l'auto-réductibilité du problème du graphique 3-Coloralibity.
Définition du problème du graphique 3-Coloralibity.
Étant donné un graphe non orienté , existe-t-il un moyen de colorer les nœuds en rouge, vert et bleu afin qu'aucun nœud adjacent n'ait la même couleur?
Définition de l'auto-réductibilité.
Un langage est auto-réductible s'il existe une machine de turing oracle TM telle que et pour toute entrée de longueur , interroge l'oracle pour des mots de longueur au plus .
Je voudrais montrer de manière très stricte et formelle que la colorabilité du graphique 3 est auto-réductible.
La preuve de l'auto-réductibilité de SAT peut être utilisée comme exemple ( auto-réductibilité de SAT ).
À mon avis, l'idée générale de la preuve de l'auto-réductibilité du graphique 3-colorabilité est différente de la preuve de l'auto-réductibilité SAT à quelques égards.
- SAT a deux choix pour chaque littéral (vrai ou faux) et la colorabilité du graphique 3 a trois choix (à savoir, rouge vert bleu).
- Les choix de littéraux SAT sont indépendants les uns des autres et les choix de couleurs de la colorabilité du graphique 3 sont strictement dépendants, tout nœud adjacent doit avoir une couleur différente, cette propriété pourrait potentiellement aider à faire moins d'itération entre toutes les couleurs.
L'idée générale de la preuve .
Notons la couleur du sommet , qui peut prendre l'une des valeurs suivantes (rouge, vert, bleu). Définissez le graphe partir d'un graphe donné en coloriant le sommet arbitraire , affectez à' rouge 'et mettez le graphe avec le sommet coloré à l'entrée de l'oracle. Si oracle répond 1, ce qui signifie que le graphique modifié est toujours tricolore, enregistrez les affectations en cours et commencez une nouvelle itération, avec le sommet différent choisi arbitrairement, couleur sommetselon les couleurs des sommets adjacents. si oracle répond à 0, ce qui signifie que l'affectation précédente a cassé 3 colorabilité, choisissez une couleur différente dans l'ensemble des trois couleurs, mais toujours en fonction des couleurs des sommets adjacents.
La preuve précédente n'est pas mathématiquement robuste, la question est de savoir comment l'améliorer et la rendre plus formelle et mathématique stricte. Il semble que j'ai besoin de distinguer plus soigneusement les cas où le nouveau sommet n'a pas d'arêtes avec des sommets déjà colorés et lorsque le nouveau sommet est adjacent à des sommets déjà colorés.
De plus, je voudrais prouver que la colorabilité du graphique 3 est auto-réductible vers le bas.
Définition d'un langage auto-réductible vers le bas.
On dit que le langage est auto-réductible vers le bas s'il est possible de déterminer en temps polynomial si utilisant les résultats des requêtes les plus courtes.
L'idée semble simple et intuitive: commencez par colorier un sommet arbitraire, et à chaque itération ajoutez un sommet de couleur supplémentaire et vérifiez par oracle si le graphique est toujours tricolore, sinon inversez la coloration précédente et vérifiez une autre couleur.
Mais comment écrire la preuve de manière stricte et plus important comment trouver un encodage approprié d'un graphe.
En bref, je voudrais montrer que la colorabilité du graphique 3 est auto-réductible et auto-réductible vers le bas de manière stricte et formelle.
J'apprécierai partager vos pensées avec nous.
Mise à jour:
auto-réductibilité vers le bas
L'auto-réductibilité vers le bas est appliquée au problème de décision et son oracle répond au même problème de décision avec une entrée plus courte, à la fin du processus d'auto-réduction vers le bas, nous devrions avoir les bonnes affectations de couleurs.
Chaque graphe tricolore avec plus de trois sommets, a deux sommets de la même couleur. Apparemment, il n'y a que trois couleurs et plus de trois sommets, donc un certain nombre de sommets non adjacents peuvent avoir la même couleur. Si nous fusionnons et avec la même couleur que le résultat, nous avons toujours un graphique à 3 couleurs, simplement parce que, si le graphique est à 3 couleurs, il existe une affectation correcte de tous les sommets adjacents à et selon la même couleur de , donc en fusionnantnous n'avons pas besoin de changer la couleur des sommets, nous avons seulement besoin d'ajouter plus de bords entre les sommets déjà correctement colorés (je sais que ce n'est pas la meilleure explication, j'apprécierai si quelqu'un pourrait mieux l'expliquer). À chaque itération, nous prenons deux sommets non adjacents du graphe , fusionnons et et obtenons le graphe qui est notre entrée la plus courte dans l'oracle. Oracle répond s'il est tricolore ou non. Maintenant, le problème est avant de définir à l'entrée d'Oracle, je devrais colorer le sommet fusionné et tester la colorabilité de , si ce n'est pas en 3 couleurs, changez la couleur, mais comment l'implémenter correctement, j'ai besoin d'un bon codage pour cela.
auto-réductibilité
Tout d'abord, nous devons vérifier si un graphique donné est tricolore du tout, alors définissez-le sur l'entrée d'oracle, et oracle répondra s'il est tricolore - si oui, alors démarrez le processus. Deux sommets non adjacents peuvent avoir la même couleur dans un graphique à 3 couleurs. Le processus d'auto-réductibilité que nous devrions exécuter dans les itérations, je pense que nous pouvons commencer à partir du petit sous-graphe d'un graphe donné et à chaque itération ajouter un sommet de à. In paralel, we should maintain the assignment of already colored vertices. Unfortunately, I still don't get the idea completely. Would appreciate for help and hints.