Exploration en situation d adversité

Documents pareils
Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Cours de Master Recherche

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

ARBRES BINAIRES DE RECHERCHE

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Jean-Philippe Préaux

Resolution limit in community detection

Les arbres binaires de recherche

Coup de Projecteur sur les Réseaux de Neurones

Arbres binaires de décision

CH.6 Propriétés des langages non contextuels

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Algorithmes d'apprentissage

Algorithme. Table des matières

Les structures de données. Rajae El Ouazzani

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Intelligence Artificielle Planification

Stratégie de recherche adaptative en programmation par contrainte

Programmation linéaire

L exclusion mutuelle distribuée

Big Data et Graphes : Quelques pistes de recherche

Economie de l Incertain et des Incitations

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Big Data et Graphes : Quelques pistes de recherche

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Chp. 4. Minimisation d une fonction d une variable

Quelques Algorithmes simples

1 Recherche en table par balayage

Programmation C. Apprendre à développer des programmes simples dans le langage C

Web Science. Master 1 IFI. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.

Simulation centrée individus

Contrainte de flot pour RCPSP avec temps de transfert

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Architecture des Systèmes d Information Architecture des Systèmes d Information

Représentation des Nombres

Algorithmes de recherche

Rappels sur les suites - Algorithme

Listes de fournitures du secondaire pour la rentrée

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Quatrième partie IV. Test. Test 15 février / 71

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

données en connaissance et en actions?

Chapitre 5 : Flot maximal dans un graphe

Compression et Transmission des Signaux. Samson LASAULCE Laboratoire des Signaux et Systèmes, Gif/Yvette

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Cryptographie et fonctions à sens unique

INF601 : Algorithme et Structure de données

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Cryptographie Quantique

Apprentissage par renforcement (1a/3)

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Algorithmique et Programmation, IMA

Annexe 6. Notions d ordonnancement.

Informatique Générale

Pourquoi l apprentissage?

Programmation Linéaire - Cours 1

CHAPITRE 5. Stratégies Mixtes

Sujet 4: Programmation stochastique propriétés de fonction de recours

Arbres binaires de recherche

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Programmation par contraintes. Laurent Beaudou

Propriétés des options sur actions

Ebauche Rapport finale

Parallélisme et Répartition

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Canevas théoriques du projet sur le poker Partie A

Modélisation aléatoire en fiabilité des logiciels

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

1.1 Codage de source et test d hypothèse

Chapitre 7. Récurrences

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

OPTIMISATION À UNE VARIABLE

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Conversion d un entier. Méthode par soustraction

LE PROBLEME DU PLUS COURT CHEMIN

Techniques d optimisation des requêtes dans les data warehouses

Une nouvelle approche de détection de communautés dans les réseaux sociaux


Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Évaluation d une architecture de stockage RDF distribuée

UltraBackup NetStation 4. Guide de démarrage rapide

Hela Boukef. To cite this version: HAL Id: tel

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Data Mining. Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto.

Windows 7, Configuration

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Problèmes d ordonnancement dans les systèmes de production. Journée Automatique et Optimisation Université de Paris Mars 2003

Transcription:

Exploration en situation d adversité Igor Stéphan UFR Sciences Angers 5-6 Igor Stéphan Jeux / 49

Exploration en situation d adversité Jeux à deux joueurs (Le joueur existentiel,, que l on souhaite faire gagner et le joueur universel,, l adversaire) Jeux en compétition Jeux à somme nulle (par exemple : si un joueur gagne, si la partie est nulle et - si un joueur perd) Jeux à information parfaite Jeux déterministes Exemples : les Échecs, le Go, le jeu de Marienbad Igor Stéphan Jeux / 49

Définition et arbre pour un jeu à deux joueurs Composants d un jeu à deux joueurs : Un état initial Une fonction succ qui calcule l ensemble des états issus de coups légaux à partir d un état pour un joueur donné Une fonction terminale eval déterminant la valeur d un état terminal Parcours du graphe des états en un arbre de jeu de racine l état initial Joueurs optimaux : à chaque nœud de l arbre maximise la valeur du nœud par son choix de coup minimise la valeur du nœud par son choix de coup Igor Stéphan Jeux / 49

Le jeu de Marienbad État initial : k tas d allumettes Alternativement, chaque joueur ôte une partie ou toutes les allumettes d un unique tas L objectif est de prendre la dernière allumette L adversaire joue le premier Cas d école : 4 tas d allumettes contenant respectivement,, 5 et 7 allumettes. Exemple de partie :,, 5, 7 /4e /6,, 5, /e /5,,, /e /,,, / e /,,, /e /,,, /4e /,,, Igor Stéphan Jeux 4/ 49

Graphe des états pour Marienbad {,, } États fusionnés,,,, Igor Stéphan Jeux 5/ 49

Arbre de recherche pour Marienbad {,, } 4 4 5 4 4 6 4 6 4 5 Igor Stéphan Jeux 6/ 49

Scénarios et stratégies Un scénario est une séquence complète (ie. d un état initial à un état terminal) de coups légaux Une stratégie est un arbre dont les branches sont des scénarios et tel que les nœuds sont étiquetés par des états les arcs sont étiquetés par des coups (légaux) d un (nœud étiqueté par un) état (à partir duquel) (doit jouer) sort un unique arc d un état sortent autant d arcs qu il y a de coups légaux Une stratégie gagnante est une stratégie dont tous les scénarios sont gagnants Une stratégie gagnante est telle que quelque soit ce que joue, il existe un coup pour tel qu il soit sûr de gagner Tout scénario d une stratégie gagnante est un scénario sûr Un scénario qui n est dans aucune stratégie gagnante est un scénario non sûr Un scénario peut être à la fois gagnant et non sûr Igor Stéphan Jeux 7/ 49

Stratégie gagnante Marienbad {,, } Igor Stéphan Jeux 8/ 49

Stratégie risquée pour Marienbad {,, } Igor Stéphan Jeux 9/ 49

Coût et nécessité de l exploration Hypothèse : fonctions succ et eval sont polynomiales en temps Coût en espace polynomial (utilisation d une pile de retour-arrière) Coût en temps exponentiel pour le parcours de l espace de recherche N existe-t-il pas pour chaque problème au moins un algorithme polynomiale en temps? Nécessité d une décision imparfaite Igor Stéphan Jeux / 49

Marienbad {,, } en mode binaire XOR 4 4 5 4 4 6 4 6 4 5 Igor Stéphan Jeux / 49

Décision imparfaite Espace trop grand pour une exploration jusqu à atteindre la fin du jeu Temps imparti trop court (calcul en temps borné) Recherche du potentiel meilleur coup pour le joueur Parcours de l arbre de recherche soit en profondeur d abord en largeur d abord En cas d impossibilité, deux approches : limiter la recherche en profondeur (Famille à estimation) limiter la recherche en largeur (Famille stochastique) Igor Stéphan Jeux / 49

La recherche en profondeur Le test de terminaison remplacé par un test d arrêt La fonction terminale remplacée par une fonction d estimation (heuristique) La fonction d estimation doit être basée sur des attributs pour les états non terminaux La fonction d estimation doit englober la fonction terminale Représentation du parcours de recherche sous forme d un arbre tel que les nœuds sont étiquetés par des estimations et les arcs sont étiquetés par des coups (légaux) Variation principale : branche de l arbre menant au calcul de l estimation optimale courante Igor Stéphan Jeux / 49

L algorithme min-max Algortime d exploration en profondeur d abord Les deux joueurs évaluent le même état de la même façon fonction minmax entrée joueur j entrée profondeur p entrée état e si p = alors retourner eval(e) si j = alors retourner maximum({minmax(, p, s) s succ(e, j)}) sinon retourner minimum({minmax(, p, s) s succ(e, j)}) Choisir un coup ayant minmax(, p, e) comme estimation (p profondeur maximale de la recherche et e état initial) Igor Stéphan Jeux 4/ 49

L algorithme min-max Profondeur????????????? 5 8 4 4 4 5 6 4 8 9 4 5 5 7 6 Igor Stéphan Jeux 5/ 49

L algorithme min-max Maximisation pour le joueur en profondeur???? 8 4 6 4 7 6 5 8 4 4 4 5 6 4 8 9 4 5 5 7 6 Igor Stéphan Jeux 6/ 49

L algorithme min-max Minimisation pour le joueur en profondeur? 6 8 4 6 4 7 6 5 8 4 4 4 5 6 4 8 9 4 5 5 7 6 Igor Stéphan Jeux 7/ 49

L algorithme min-max Maximisation pour le joueur en profondeur 6 6 8 4 6 4 7 6 5 8 4 4 4 Variation principale : / / / 5 6 4 8 9 4 5 5 7 6 Igor Stéphan Jeux 8/ 49

De l algorithme min-max à l Alpha-Bêta p profondeur de l arbre et n nombre de coups légaux Complexité en temps de min-max en O(n p ) Complexité polynomiale (O(p)) en espace de min-max Tirer partie des propriétés d absorption des opérateurs minimum et maximum Élagage des branches sans impact sur le résultat α la valeur du meilleur choix pour (initial : ) β la valeur du meilleur choix pour (initial : + ) Igor Stéphan Jeux 9/ 49

L algorithme Alpha-Bêta α =? β = +? +??????? +????... Igor Stéphan Jeux / 49

L algorithme Alpha-Bêta ()? +? +????????? Hypothèse : le joueur existentiel joue et le joueur universel joue aussi choisira son meilleur coup, le, évalué à Variation principale courante : / / / choisira au pire le coup évalué à (nouveau β) Igor Stéphan Jeux / 49

L algorithme Alpha-Bêta ()? +? +?? +?? +? et?.? Sous-arbre élagué : Si inférieure à, ignorée par le max de Si supérieure à, ignorée par le min de (par rapport à β = ) Variation principale courante inchangée : / / / β inchangé Igor Stéphan Jeux / 49

L algorithme Alpha-Bêta ()? +? +?? +?? +. 5? et? 5.. Sous-arbre élagué : Si inférieure à 5, ignorée par le max de Si supérieure à 5, ignorée par le min de (par rapport à β = ) Variation principale courante inchangée : / / / Igor Stéphan Jeux / 49

L algorithme Alpha-Bêta (4)? +? +?? +. 5.. Si joue, jouera aussi choisira au pire le coup évalué à α = à la profondeur Igor Stéphan Jeux 4/ 49

L algorithme Alpha-Bêta (5)? +? +?? +? +???? Les deux sous-arbres sont élagués : Si inférieure à, ignorée par le max de (par rapport à α = ) Si supérieure à, ignorée par le min de Variation principale courante inchangée : / / / Igor Stéphan Jeux 5/ 49

L algorithme Alpha-Bêta (6)? +? + 4? 4?? 8 9 4 choisira ce nouveau meilleur coup évalué à 4 choisira au pire le coup évalué à 4 (nouveau β) La variation principale courante est modifiée : / / / Igor Stéphan Jeux 6/ 49

L algorithme Alpha-Bêta (7)? +? + 4 8 9 4 7 5 5 7? 7 choisira au pire le coup évalué à 7 choisira au pire le coup évalué à 7 (nouveau β) La variation principale courante est modifiée : / / / Igor Stéphan Jeux 7/ 49

L algorithme Alpha-Bêta (8)? +? + 4 8 9 4 7 5 5 7 6 6 La variation principale est / / / pour un coup évalué à 6 Igor Stéphan Jeux 8/ 49

Arbre élagué par l algorithme Alpha-Bêta 6 6 5.. 4 7 6. 5.. 8 9 4 5 5 7 6 Igor Stéphan Jeux 9/ 49

L algorithme alpha beta algorithme alpha beta entrée état e sortie un coup optimal pour retourner un coup ayant pour valeur alpha beta (e,, + ) fonction alpha beta entrée état e entrée meilleure alternative pour, α entrée meilleure alternative pour, β si fin?(e) alors retourner eval(e) v pour s succ(e, max) v maximum(v, alpha beta (s, α, β)) si v β alors retourner v α maximum(v, α) retourner v Igor Stéphan Jeux / 49

L algorithme alpha beta fonction alpha beta entrée état e entrée meilleure alternative pour, α entrée meilleure alternative pour, β si fin?(e) alors retourner eval(e) v + pour s succ(e, min) v minimum(v, alpha beta (s, α, β)) si v α alors retourner v β minimum(v, β) retourner v Igor Stéphan Jeux / 49

Un élégage plus efficace Ordre des coups :,, au lieu de,, 6 6 6 4 7 8 6 4 6 4 8 9 7 5 5 4 5 8 4 5 6 4 4 Igor Stéphan Jeux / 49

Un élagage plus efficace Ordre des coups :,, au lieu de,, 6 6 6 4 7 8. 6.. 6 4.. 7.. 4 5 8 4 5 6 L ordre (a priori arbitraire) des coups influence les performances de l algorithme alpha-bêta Privilégier pour une profondeur donnée les coups qui ont amené un élagage à cette même profondeur Igor Stéphan Jeux / 49

Propriétés et extensions de l algorithme Alpha-Bêta p profondeur de l arbre et n nombre de coups légaux Complexité en temps en O(n p/ ) Complexité polynomiale (O(p)) en espace Le test d arrêt doit inclure que des états stables (i.e. sans modification majeure au coup suivant pour ne pas repousser les pertes inéluctables) Le test d arrêt doit inclure l effet d horizon par des extensions singulières (pour des coups clairement meilleurs mais en dehors de la profondeur maximale) Moduler la profondeur en fonction de la qualité des estimations : meilleur c est plus on cherche Réduire l espace de recherche par des tables de transposition (atteindre par plusieurs chemins le même état) Recherche en temps borné par recherche en profondeur itérative Igor Stéphan Jeux 4/ 49

Recherche en profondeur itérative Recherche incrémentale sur la profondeur de l arbre Algorithme optimal en temps et en espace Algorithme temps réel : si l algorithme est interrompu, il renvoie la variation principale de la recherche pour la profondeur précédant cette interruption Tenir compte de l itération précédente pour effectuer l itération courante (ex : essayer les meilleurs coups de l itération précédente en premier pour l itération suivante) Igor Stéphan Jeux 5/ 49

Tables de transposition Configuration : état + des éléments de contexte (tel que le joueur) Transposition : accèder aux mêmes configurations par différents chemins dans le graphe des états Associer à une configuration son évaluation/estimation pour n avoir à la calculer qu une seule fois Espace des états trop grand pour stocker toutes les configurations Techniques de hachage : stocker des éléments en nombre relativement faible par rapport à l univers auquel ils appartiennent Nécessité de deux fonctions : Une fonction g qui traduit une configuration en un nombre (dans un espace aussi grand que celui des configurations possibles) Une fonction h qui traduit ce nombre en une valeur de hachage (ie. une adresse de stockage) Igor Stéphan Jeux 6/ 49

Tables de transposition Calcul à la volée de la fonction h g Deux configurations possédant la même valeur de hachage créent une collision Le hachage réunit en petits paquets les configurations ayant la même valeur de hachage Il est pratiquement impossible d empêcher les collisions (fonction h injective) Traitement des collisions : Par les techniques classiques des bases de données (seconde fonction de hachage, chaîne de coalescence,...) En ignorant la nouvelle configuration Par remplacement pur et simple : de la plus ancienne par la plus récente, de la plus profonde par la moins profonde,... Igor Stéphan Jeux 7/ 49

Exemple de table de transposition pour Marienbad {,, } Taille de l espace de recherche (sans la fusion des états) : états (dont la racine) Politique de traitement des collisions par conservation de l estimation la plus ancienne configuration : (joueur, état) g : ( si joueur = ou 64 si joueur = ) + codage en base à partir des états g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 5 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 8 g(,) = +(*)+(*)+(*9) = 4 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 7 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 5 g(,) = +(*)+(*)+(*9) = 9 g(,) = +(*)+(*)+(*9) = 7 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 8 g(,) = +(*)+(*)+(*9) = 6 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 4 g(,) = +(*)+(*)+(*9) = 9 g(,) = +(*)+(*)+(*9) = Igor Stéphan Jeux 8/ 49

Exemple de table de transposition pour Marienbad {,, } Taille de l espace de stockage : 4 Hachage par extraction sur les bits,, 4 et 5 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 5 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 8 g(,) = +(*)+(*)+(*9) = 4 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 7 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 5 g(,) = +(*)+(*)+(*9) = 9 g(,) = +(*)+(*)+(*9) = 7 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 8 g(,) = +(*)+(*)+(*9) = 6 g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = g(,) = +(*)+(*)+(*9) = 4 g(,) = +(*)+(*)+(*9) = 9 g(,) = +(*)+(*)+(*9) = h(g(,))=h()= h(g(,))=h()= h(g(,))=h()=5 h(g(,))=h()= h(g(,))=h()=4 h(g(,))=h()=4 h(g(,))=h()= h(g(,))=h()= h(g(,))=h()=7 h(g(,))=h()= h(g(,))=h()= h(g(,))=h()=7 h(g(,))=h()=9 h(g(,))=h()= h(g(,))=h()=7 h(g(,))=h()=8 h(g(,))=h()= h(g(,))=h()=6 h(g(,))=h()=4 h(g(,))=h()= h(g(,))=h()=5 h(g(,))=h()= Igor Stéphan Jeux 9/ 49

Alpha-Bêta pour Marienbad {,, } avec table de transposition Un coup ayant pour valeur alpha beta ({,, },, + ) Fonction d évaluation/estimation e Stockage sur estimation exacte et non sur minimisation/maximisation () (4) () (7) ()????????????????????? : : : e() : 4 : 5 : 6 : 7 : e() 8 : 9 : : : : e() : e() 4 : e() 5 : Igor Stéphan Jeux 4/ 49

Alpha-Bêta pour Marienbad {,, } avec table de transposition () (4) () (7) () ()... (4)???????????????? : : : e() : 4 : 5 : 6 : 7 : e() 8 : 9 : : : : e() : e() 4 : e() 5 : L adresse contient l estimation de l état L adresse 4 contient l estimation de l état Igor Stéphan Jeux 4/ 49

Collision à Marienbad {,, } avec table de transposition () (4) () (7) () ()... (4) (4)??????????????? L adresse 4 contient l estimation de l état qui rentre en collision avec l estimation de l état Application de la politique de traitement des collisions : : : e() : 4 : 5 : 6 : 7 : e() 8 : 9 : : : : e() : e() 4 : e() 5 : Igor Stéphan Jeux 4/ 49

Collision à Marienbad {,, } avec table de transposition () (4) () (7) () ()... (4) (4) ()?????????????? L adresse contient l estimation de l état qui rentre en collision avec l estimation de l état Application de la politique de traitement des collisions : : : e() : 4 : 5 : 6 : 7 : e() 8 : 9 : : : : e() : e() 4 : e() 5 : Igor Stéphan Jeux 4/ 49

Collision à Marienbad {,, } avec table de transposition () (4) () (7) () ()... (4) (4) () (7)????????????? L adresse 7 contient l estimation de l état qui rentre en collision avec l estimation de l état Application de la politique de traitement des collisions : : : e() : 4 : 5 : 6 : 7 : e() 8 : 9 : : : : e() : e() 4 : e() 5 : Igor Stéphan Jeux 44/ 49

Collision à Marienbad {,, } avec table de transposition () (4) () (7) () ()... (4) (4) () (7) () ().. (7) (4).. ().... À l adresse est inséré l estimation de sans collision L adresse contient l estimation de l état L adresse 7 contient l estimation de l état L adresse 4 contient l estimation de l état L adresse contient l estimation de l état : : : e() : 4 : e() 5 : 6 : 7 : e() 8 : 9 : : e() : : e() : e() 4 : e() 5 : Igor Stéphan Jeux 45/ 49

Hachage de Zobrist Chaque état est décomposé selon ses éléments constitutifs (cases, attributs,...) À chaque possibilité d élément constitutif est associé un nombre au hasard sur 8 k bits Aux autres composantes de la configuration sont associées aussi des nombres au hasard sur 8 k bits Le nombre de Zobrist d une configuration est alors le ou-exclusif bit à bit de ses nombres Pour un espace de stockage de taille n, l adresse est déduite du nombre de Zobrist en ne conservant que les bits de poids faible Hachage uniforme décorrélant le nombre de Zobrist de la sémantique Si deux nombres de Zobrist sont égaux, c est une erreur de type (une collision étant une erreur de type ) Igor Stéphan Jeux 46/ 49

Zobrist à Marienbad {,, } Éléments constitutifs d un état : emplacements (ordonnés) contenant des allumettes Possibilités des Nombre aléatoire éléments constitutifs (sur 8 bits) allumette en case allumette en case allumette en case allumette en case allumettes en case allumette en case allumette en case allumettes en case allumettes en case Igor Stéphan Jeux 47/ 49

Zobrist à Marienbad {,, } g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = 5 g z (, ) = = h z (g z (, )) = h z () = 4 g z (, ) = = h z (g z (, )) = h z () = 5 g z (, ) = = h z (g z (, )) = h z () = 7 g z (, ) = = h z (g z (, )) = h z () = 4 g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = 8 g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = 8 g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = 5 g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = 6 g z (, ) = = h z (g z (, )) = h z () = 5 g z (, ) = = h z (g z (, )) = h z () = 5 g z (, ) = = h z (g z (, )) = h z () = g z (, ) = = h z (g z (, )) = h z () = 5 Pas d erreur de type : pour x, x deux états, g z (, x) g z (, x ) Igor Stéphan Jeux 48/ 49

Plus de collision à Marienbad {,, } grâce à Zobrist () (7) () () () ()... (7) (4) (5) (5) () ().. () (5).. ().... : : e() : e() : 4 : e() 5 : e() 6 : 7 : e() 8 : 9 : : : e() : e() : e() 4 : 5 : e() Igor Stéphan Jeux 49/ 49