Jeu de parité
En informatique théorique, un jeu de parité est un jeu à deux joueurs sur un graphe orienté où chaque sommet est étiqueté par un entier, appelé couleur ou priorité. Chaque joueur possède son propre sous-ensemble de sommets. Une partie est un chemin infini dans le graphe. Le premier joueur gagne lorsque la plus grande couleur visitée une infinité de fois est paire (chez certains auteurs, c'est lorsque la plus petite couleur visitée une infinité de fois est paire/impaire ; ces variantes sont fondamentalement équivalentes). Les jeux de parité sont importants en vérification de modèles, en particulier lorsque la propriété temporelle est exprimée en mu-calcul.
Exemple
La figure ci-contre montre un graphe orienté à huit sommets. Le joueur 1 joue dans les sommets ronds et le joueur 2 joue dans les sommets carrés. Les numéros indiqués dans les sommets sont les couleurs. Par exemple, la couleur du sommet rond en haut à gauche est 4. Le joueur 1 gagne si la couleur la plus grande visitée une infinité de fois est paire. Ainsi, dans la zone bleue, le joueur 1 a une stratégie gagnante, donnée par les arcs en bleu. Si on part du sommet 1, un exemple de partie est 141416161414... et la couleur la plus grande visitée une infinité de fois est soit 4, soit 6, et est paire dans tous les cas.
Dans la zone rouge par contre, le joueur 2 gagne car il peut forcer à ce que la couleur visitée une infinité de fois la plus grande est impaire. Dans la partie 82032030302..., la couleur visité une infinité de fois la plus grande est 3, et donc impaire.
Lien avec la vérification de modèles
Le problème de vérification de modèles (model checking en anglais) du formule du mu-calcul se ramène à résoudre un jeu de parité[1]. Pour cela, on transforme une formule du mu-calcul en automate d'arbres infinis avec condition de parité. Le problème de model checking se réduit donc à l'appartenance de la structure finie donnée au langage de l'automate d'arbres infinis. L'automate accepte la structure ssi le joueur 1 a une stratégie gagnante dans un jeu de parité construit à partir de l'automate et de la structure[2].
Algorithmique
Déterminer si le joueur 1 a une stratégie gagnante dans un jeu de parité depuis un sommet initial est dans NP ∩ coNP, plus précisément dans UP ∩ coUP[3] - [4]. Il est aussi dans QP, i.e. en temps quasipolynomial, en temps O(nlog d), ou de manière équivalente O(dlog n) où d est le nombre de couleurs et n le nombre de noeuds dans le graphe[5]. C'est une question ouverte que de savoir si ce problème est dans P. Il existe plusieurs algorithmes pour résoudre un jeu de parité :
- un algorithme récursif conçu par Zielonka (RE) [6] ;
- Small-progress measures (SPM)[7] ;
- APT, qui s'appuie sur tester la vacuité d'un automate de parité alternant[8] - [9]
- un algorithme où on se ramène un jeu de sûreté (en utilisant un automate dit parity separating automaton). Cet algorithme est aussi en O(dlog n). Par ailleurs, on peut montrer une borne inférieure sur la taille des parity separating automata : elle est pseudo-polynomiale.
Les algorithmes précédents sont explicites, dans le sens où le graphe orienté est représenté explicitement. Ainsi, ces algorithmes ne sont pas efficaces en pratique car le graphe qui représente des systèmes réels sont trop grands. On parle du problème d'explosion du nombre d'états (state-explosion problem en anglais), problème présent en général en vérification de modèles[10]. C'est pourquoi on représente le graphe de manière symbolique à l'aide de diagrammes de décision binaire[11]. L'algorithme RE a été implémenté en symbolique[12] - [13]. Une version symbolique de SPM a été étudié théoriquement[14] - [15].
SPM
Le concept essentiel de l'algorithme SPM est la fonction de rang : on attribue à chaque sommet un vecteur de compteurs (mesure de progression), qui rassemble le nombre de fois que le joueur 1 peut forcer à visiter une priorité impaire avant qu'une priorité plus grande soit vue. Si la valeur est suffisamment petite, le sommet est déclaré comme gagnant pour le joueur 1. SPM calcule la mesure de progression en mettant à jour les valeurs d'un sommet à partir des valeurs de ses successeurs ; autrement dit en calculant un plus petit point fixe pour tous les sommets.
APT
La notion de jeu de parité est étendue en rajoutant deux sous-ensembles de sommets disjoints : l'ensemble des sommets visités et l'ensemble des sommets évités.
RE
L'algorithme RE introduit par Zielonka repose sur le paradigme diviser pour régner. Il utilise aussi le concept d'attracteur. Étant donné un sous-ensemble U de sommets, l'attracteur de U pour le joueur i est l'ensemble des sommets depuis lesquels le joueur i peut forcer à atteindre U. À chaque étape, l'algorithme supprime les sommets de priorité maximale p, ainsi que les sommets où le joueur i avec i = p mod 2 qui attire vers ces derniers. On obtient un jeu restant. Sur ce jeu restant, on appelle récursivement l'algorithme pour obtenir les deux ensembles gagnants W0 et W1 pour les joueurs 0 et 1 sur le jeu restant. Si le joueur i gagne sur le sous-jeu, alors il gagne aussi sur le jeu initial. Sinon, le joueur i ne gagne pas ce sous-jeu, i.e. W1-i est non vide, l'algorithme calcule alors l'attracteur pour le joueur 1-i de W1-i et on résout récursivement ce sous-jeu.
Formellement, soit un jeu de parité où resp. sont les ensembles de sommets appartenant au joueur 0 resp. 1, est l'ensemble de tous les sommets, est l'ensemble des transitions, et la fonction qui donne la priorité à chaque sommet. Soit un ensemble de sommets et un joueur. Le i-attracteur de U est le plus petit ensemble de sommets incluant U et tel que le joueur i peut forcer à visiter U depuis tout sommet de . L'ensemble peut être calculer par itération car c'est un point fixe :
En d'autres mots, on commence avec l'ensemble initial U puis, on ajoute à chaque étape, tous les sommets du joueur i qui peuvent atteindre l'ensemble courant en une étape, et tous les sommets du joueur 1-i qui atteignent forcément l'ensemble courant quelle que soit la transition choisie par le joueur 1-i.
Voici un pseudo-code l'algorithme de Zielonka W0, W1) qui est une partition de l'ensemble des sommets avec Wi est l'ensemble des sommets depuis lesquels le joueur i gagne.
fonction p:= priorité maximale du jeu G si retourner alors U:= ensemble des sommets de G de priorité p si retourner retourner
Propriétés
Tout jeu de parité appartient au troisième niveau de la hiérarchie de Borel, ainsi le jeu est déterminé[16], c'est-à-dire que l'un des joueurs possède une stratégie gagnante. En d'autres termes, il n'y a pas de sommets à partir duquel aucun joueur n'a de stratégie gagnante (dans l'exemple donné ci-dessus, dans tous les sommets, un des joueurs a une stratégie gagnante : dans les sommets 4, 1, 6, le joueur 1 a une stratégie gagnante et dans les sommets 0, 3, 2, 5, 8, c'est le joueur 2 qui a une stratégie gagnante).
De plus, on peut montrer que l'on peut se contenter de stratégies qui ne dépendent pas de l'histoire mais uniquement du sommet courant[17] - [18] - [6]. Dans l'exemple ci-dessus, le premier joueur choisit d'aller dans le sommet 1 depuis le sommet 6, et cela ne dépend pas de l'histoire : que l'histoire ait été 416 ou 41414146, ou tout autre histoire se terminant par le sommet 6, il décide d'aller dans le sommet.
Les jeux de parités sont des cas particuliers des jeux de moyenne récompense (mean payoff games). Plus précisément, on peut transformer tout jeu de parité en un mean payoff game équivalent : remplacer une priorité (couleur) p par (-n)p, où n est le nombre de nœuds[3].
Notes et références
- (en) Júlia Zappe, Automata Logics, and Infinite Games, Springer, Berlin, Heidelberg, coll. « Lecture Notes in Computer Science », (ISBN 3540363874, DOI 10.1007/3-540-36387-4_10, lire en ligne), p. 171–184
- (en) Daniel Kirsten, Automata Logics, and Infinite Games, Springer, Berlin, Heidelberg, coll. « Lecture Notes in Computer Science », (ISBN 3540363874, DOI 10.1007/3-540-36387-4_9, lire en ligne), p. 153–167
- (en) « Deciding the winner in parity games is in UP ∩ co-UP », Information Processing Letters, vol. 68, no 3, , p. 119–124 (ISSN 0020-0190, DOI 10.1016/S0020-0190(98)00150-1, lire en ligne, consulté le )
- (en) Hartmut Klauck, Automata Logics, and Infinite Games, Springer, Berlin, Heidelberg, coll. « Lecture Notes in Computer Science », (ISBN 3540363874, DOI 10.1007/3-540-36387-4_7, lire en ligne), p. 107–129
- Cristian S. Calude, Sanjay Jain, Bakhadyr Khoussainov et Wei Li, « Deciding parity games in quasipolynomial time », Proceedings of the 49th Annual ACM SIGACT Symposium on Theory of Computing, ACM, , p. 252–263 (ISBN 9781450345286, DOI 10.1145/3055399.3055409, lire en ligne, consulté le )
- W Zielonka, « Infinite Games on Finitely Coloured Graphs with Applications to Automata on Infinite Trees », Theor. Comput. Sci., vol. 200, nos 1–2, , p. 135–183 (DOI 10.1016/S0304-3975(98)00009-7)
- Marcin Jurdzinski, « Small Progress Measures for Solving Parity Games », Proceedings of the 17th Annual Symposium on Theoretical Aspects of Computer Science (STACS 2000), Springer-Verlag, , p. 290–301 (ISBN 3540671412, lire en ligne, consulté le )
- Orna Kupferman et Moshe Y. Vardi, « Weak alternating automata are not that weak », ACM Transactions on Computational Logic (TOCL), vol. 2, no 3, , p. 408–429 (ISSN 1529-3785, DOI 10.1145/377978.377993, lire en ligne, consulté le )
- (en) Antonio Di Stasio, Aniello Murano, Giuseppe Perelli et Moshe Y. Vardi, « Solving Parity Games Using an Automata-Based Algorithm », Implementation and Application of Automata, Springer, Cham, lecture Notes in Computer Science, , p. 64–76 (ISBN 9783319409450, DOI 10.1007/978-3-319-40946-7_6, lire en ligne, consulté le )
- (en) Edmund M. Clarke, William Klieber, Miloš Nováček et Paolo Zuliani, Tools for Practical Software Verification, Springer, Berlin, Heidelberg, coll. « Lecture Notes in Computer Science », (ISBN 9783642357459 et 9783642357466, DOI 10.1007/978-3-642-35746-6_1, lire en ligne), p. 1–30
- (en-US) « Graph-Based Algorithms for Boolean Function Manipulation - IEEE Journals & Magazine », sur ieeexplore.ieee.org (consulté le )
- (en) Marco Bakera, Stefan Edelkamp, Peter Kissmann et Clemens D. Renner, « Solving μ-Calculus Parity Games by Symbolic Planning », Model Checking and Artificial Intelligence, Springer, Berlin, Heidelberg, lecture Notes in Computer Science, , p. 15–33 (ISBN 9783642004308, DOI 10.1007/978-3-642-00431-5_2, lire en ligne, consulté le )
- Gijs Kant et Jaco van de Pol, « Generating and Solving Symbolic Parity Games », Electronic Proceedings in Theoretical Computer Science, vol. 159, , p. 2–14 (ISSN 2075-2180, DOI 10.4204/EPTCS.159.2, lire en ligne, consulté le )
- (en) Doron Bustan, Orna Kupferman et Moshe Y. Vardi, « A Measured Collapse of the Modal μ-Calculus Alternation Hierarchy », STACS 2004, Springer, Berlin, Heidelberg, lecture Notes in Computer Science, , p. 522–533 (ISBN 9783540212362, DOI 10.1007/978-3-540-24749-4_46, lire en ligne, consulté le )
- Krishnendu Chatterjee, Wolfgang Dvořák, Monika Henzinger et Veronika Loitzenbauer, « Improved Set-based Symbolic Algorithms for Parity Games », arXiv:1706.04889 [cs], (lire en ligne, consulté le )
- Donald A. Martin, « Borel Determinacy », Annals of Mathematics, vol. 102, no 2, , p. 363–371 (DOI 10.2307/1971035, lire en ligne, consulté le )
- (en) E. A. Emerson et C. S. Jutla, « Tree Automata, Mu-Calculus and Determinacy », dans 32nd Annual Symposium on Foundations of Computer Science., IEEE Computer Society Press, (ISBN 0-8186-2445-0), p. 368-377
- A. Mostowski: Games with forbidden positions, University of Gdansk, Tech. Report 78 (1991)