Sujet 1 : Mélange d`un jeu de 52 cartes

publicité
RICM 4
module Probabilités et Simulation
Devoir
Le travail se fait en binôme. Chaque binôme choisit un seul sujet parmi ceux proposés ci-après.
Le travail devra être envoyé par mail (deadline fixée ultérieurement) sous forme d’archive compressée
Nom1-Nom2.tar.gz
La structure de l’archive sera la suivante :
Nom1-Nom2/src/README
Nom1-Nom2/src/codes-sources
Nom1-Nom2/src/Makefile
Nom1-Nom2/doc/rapport.pdf
Nom1-Nom2/doc/HOWO
Nom1-Nom2/data/données expérimentales ayant servi pour votre rapport
Sujet du mail
[RICM4:PS] Rapport DM Nom1-Nom2
Tout travail qui ne sera pas rendu dans ce format ne sera pas évalué.
Sujet 1 : Mélange d’un jeu de 52 cartes
Dans tout jeu de hasard, le mélange des cartes est un élément crucial : en effet, un bon mélange permet une
distribution aléatoire des cartes, assurant par la même occasion que seule la chance influencera l’issue de la partie.
Question 1.1 : Algorithme de mélange des cartes
Ecrire un algorithme qui génère aléatoirement n permutations des 52 cartes (uniformément parmi
les 52! permutations possibles), où n est un paramètre. Pourquoi cette solution n’est pas utilisée en
pratique par les joueurs de carte ?
L’une des techniques de mélange de cartes les plus courantes est appelée “Riffle Shuffle”. Dans cette technique,
on tient environ la moitié du jeu de carte dans chacune de ses mains avant de soulever les cotés des cartes avec le
pouce en faisant glisser les piles de cartes l’une dans l’autre. Le mélange une fois terminé, les cartes ne forment
plus qu’une seule pile. Par exemple, sur un jeu de 13 cartes, on obtient :
Premièrement, couper le jeu :
5 6 et 7 8 9 10 11 12 13
Ensuite mélanger les deux tas :
7 1 8 2 3 9 4 10 5 11 12 6 13
Puis recouper :
7 1 8 2 3 9 4 10 et 5 11 12 6 13
Enfin re-mélanger :
5 7 1 8 11 12 2 6 3 13 9 4 10
1
2
3
4
Le but du projet est d’étudier le caractère uniforme d’un jeu de carte mélangé de cette manière. En particulier,
un résultat célèbre affirme que 7 répétitions successives du mélange “riffle shuffle” permet d’obtenir un résultat
uniforme sur l’ensemble des permutations du jeu de 52 cartes. Dans ce projet, nous utiliserons un modèle de ce
type de mélange proposé par Gilbert Shannon et Reeds (algorithmes 1 et 2).
Question 1.2 : Analyse des 2 algorithmes
Démontrer que les 2 algorithmes pour modéliser un mélange de cartes “riffle shuffle” aboutissent
à la même distribution sur les permutations, à savoir :
 n+1
 2n si σ = id
1
if σ a exactement 2 suites croissantes
Q(σ) =
n
 2
0
sinon
Polytech’ Grenoble UJF
1/ 7
RICM 4
module Probabilités et Simulation
Algorithme 1 Mélange “Riffle Shuffle 1”
M ← Binomial(52, 0.5)
Couper le jeu en les M cartes du dessus
et les 52 − M cartes du dessous
52
Choisir uniformément l’une des M
façons de mélanger ces deux tas en conservant l’ordre à l’intérieur de
chaque tas.
Algorithme 2 Mélange “Riffle Shuffle 2”
M ← Binomial(52, 0.5)
Couper le jeu en les M cartes du dessus et les 52 − M cartes du dessous
Les cartes des deux tas sont ajoutés une à une dans le jeu mélangé selon la règle suivante : si à un moment, le
tas de gauche contient a cartes et le tas de droite contient b cartes, alors tirer une carte sur le dessus du tas de
b
a
, et sur le dessus du tas de droite avec probabilité a+b
.
gauche avec probabilité a+b
Une suite croissante d’une permutation σ est un ensemble maximal de valeurs consécutives qui apparaissent dans l’ordre croissant : dans l’exemple, la permutation finale a 4 suites croissantes : (1, 2, 3,
4), (5, 6), (7, 8, 9, 10) et (11, 12, 13).
Question 1.3 : Test d’uniformité des 7 mélanges de type “riffle shuffle”
Proposer au moins 3 critères testant le caractère uniforme de la permutation obtenue après 7 mélanges successifs de type “riffle shuffle”. Utiliser ensuite l’un des algorithmes proposés pour simuler ce
mélange. Comparez les résultats avec ceux obtenus en utilisant le générateur uniforme de la Question
1.1.
Question 1.4 : Variation en fonction du nombre de mélanges
Pour les différents critères d’uniformité proposés, tracez la valeur moyenne en fonction du nombre
de mélanges effectués. Quelles conclusions portez-vous sur le nombre minimum de mélanges nécessaires pour obtenir un jeu “bien mélangé” ?
Polytech’ Grenoble UJF
2/ 7
RICM 4
module Probabilités et Simulation
Devoir
Le travail se fait en binôme. Chaque binôme choisit un seul sujet parmi ceux proposés ci-après.
Le travail devra être envoyé par mail (deadline fixée ultérieurement) sous forme d’archive compressée
Nom1-Nom2.tar.gz
La structure de l’archive sera la suivante :
Nom1-Nom2/src/README
Nom1-Nom2/src/codes-sources
Nom1-Nom2/src/Makefile
Nom1-Nom2/doc/rapport.pdf
Nom1-Nom2/doc/HOWO
Nom1-Nom2/data/données expérimentales ayant servi pour votre rapport
Sujet du mail
[RICM4:PS] Rapport DM Nom1-Nom2
Tout travail qui ne sera pas rendu dans ce format ne sera pas évalué.
Sujet 2 : Apprentissage dans les jeux matriciels à deux joueurs
Un jeu matriciel à deux joueurs est la donnée d’un ensemble fini d’actions pour chaque joueur, et d’une fonction
de gain associée aux couples d’actions. Chaque joueur a une fonction de gain spécifique. Par exemple, on parle de
jeu à somme nulle lorsque ce que gagne le joueur 1 (noté J1) est l’opposé de ce que gagne le joueur 2 (noté J2).
Les échecs sont un exemple de jeu à somme nulle.
On représente souvent ces jeux sous forme d’une matrice de gain A pour J1, et une matrice de gain B pour
J2. Ces deux matrices ont autant de lignes que d’actions pour J1 et autant de colonnes que d’actions pour J2. On
peut alors associer le choix d’une action par J1 au choix d’une ligne de la matrice, et au choix d’une colonne de la
matrice pour J2. Le gain de J1 (resp. J2) est à l’intersection de la ligne et la colonne choisies de la matrice A (resp.
matrice B). Bien entendu, les joueurs cherchent à maximiser leur gain.
Dans l’exemple suivant, les joueurs ont deux actions possibles. Si J1 choisit la ligne 2 et J2 choisit la colonne
1, alors le gain est 3 pour J1 et 4 pour J2. Nous utiliserons ces données dans la suite du projet.
6,0
0,1
A=
et B =
.
3,2
4,3
Dans de nombreux jeux, il est intéressant d’utiliser une stratégie aléatoire. Par exemple, dans le jeu “Pierre
Feuille Ciseaux”, un joueur qui choisit l’une des actions selon le résultat d’un générateur aléatoire uniforme sur
{1..3} ne perdra pas plus d’une fois sur deux en moyenne. Il peut, de plus, utiliser des informations statistiques sur
les choix de son adversaire pour augmenter cette moyenne : par exemple, il pourra tirer profit de l’observation que
l’adversaire joue, en moyenne, une fois sur deux “Pierre” (question : comment ?).
Nous noterons alors x (resp. y) la stratégie aléatoire de J1 (resp. J2), qui est un vecteur de probabilité
x = (x1 , x2 ) (resp. y = (y1 , y2 )), où x1 est la probabilité pour le joueur 1 de choisir la ligne 1, et x2 est la probabilité de choisir la ligne 2. L’objectif des joueurs est maintenant de maximiser leur espérance de gain.
Question 2.1 : Espérance de gain
t
Montrer que, étant donnée les stratégies x et y des joueurs, l’espérance de gain de J1 (resp. J2) est
xAy (resp. t xBy). Ici, x et y sont des vecteurs colonnes.
Question 2.2 : Stratégie optimale de J1
En supposant connue par J1 la stratégie y de J2, calculer une stratégie optimale, c’est-à-dire une
stratégie qui maximise l’espérance de gain pour le joueur 1 (faire cela pour toutes les valeurs de y).
Montrer qu’il existe toujours une stratégie déterministe, i.e. (0, 1) ou (1, 0), qui est optimale.
Polytech’ Grenoble UJF
3/ 7
RICM 4
module Probabilités et Simulation
On suppose maintenant que les joueurs n’ont pas connaissance de la matrice de gain de l’adversaire. Ils ne
peuvent donc pas présumer de la stratégie de l’adversaire. Ils peuvent néanmoins observer ses choix quand le jeu
est répété, et se servir de cette information. Le mécanisme proposé ici consiste pour chaque joueur à jouer une
stratégie optimale face à la distribution empirique des actions du joueur adverse. Chaque joueur a donc, à la partie
n, une croyance sur la stratégie de l’adversaire, notée X(n) (resp. Y (n)), qui correspond à la fréquence des choix
de J1 (resp. J2). Par exemple, à la septième partie, si J2 a choisi 5 fois la colonne 1 et deux fois la colonne 2, on a
Y (7) = ( 75 , 72 ). A la partie n, J1 choisira alors son action selon une stratégie optimale face à Y (n).
Le mécanisme d’apprentissage étudié dans ce projet est détaillé dans Algorithme 3.
Algorithme 3 Mécanisme d’apprentissage pour J1 (symétrique pour J2)
A la première partie (n = 1), J1 choisit une action initiale et observe l’action de J2.
répéter
Calculer Y (n)
Calculer une stratégie x(n) qui est optimale face à Y (n)
Choisir une action selon cette stratégie
Observer l’action de J2
n=n+1
jusqu’à n = NMAX
Question 2.3 : Convergence des croyances du mécanisme d’apprentissage
Tracer le graphe (X1 , Y1 )(n) de l’évolution des croyances quand J1 et J2 suivent le mécanisme
d’apprentissage (essayer plusieurs actions initiales). Que constatez-vous ? Les stratégies (x(n), y(n))
convergent-elles ?
Nous supposons maintenant que les gains donnés par la matrice sont soumis à un bruit aléatoire (c’est le cas si
les gains sont obtenus par des mesures physiques). Ce bruit est donc ajouté au gain de chaque joueur. Les matrices
de gain sont maintenant :
6 + 1 , 1
η1 , 1 + η2
Abruit =
et Bbruit =
.
3 + 2 , 2 + 2
4 + η1 , 3 + η2
Ici, les variables aléatoires 1 , 2 , η1 et η2 sont supposées indépendantes et distribuées selon la fonction de répartition suivante : P[ ≤ a] = exp(− exp(− ηa )), où η ∈]0; ∞[ est un paramètre représentant le niveau de bruit
(spécifique de chacune des 4 variable aléatoire).
Les joueurs calculent maintenant leur stratégie de façon à maximiser leur espérance de gain après que les gains
aient été soumis au bruit aléatoire. De manière équivalente, sachant que (1, 0)AY (n) est l’espérance de gain pour
J1 en choisissant la ligne 1, (0, 1)AY (n) l’espérance de gain en choisissant la ligne 2, 1 le bruit sur la ligne 1 et 2
le bruit sur la ligne 2, la stratégie du joueur 1 est donnée par x1 (n) = P[(1, 0)AY (n) + 1 ≥ (0, 1)AY (n) + 2 ].
y(n) s’obtient de la même manière.
Question 2.4 : Influence du niveau de bruit
Quelle est l’influence du niveau de bruit η sur les stratégies x(n) et y(n) ? Que se passe-t’il pour
η = 0 et η = ∞ ?
Question 2.5 : Mécanisme d’apprentissage avec bruit aléatoire
Tracer l’évolution des croyances (X1 , Y1 )(n) et des stratégies (x1 , y1 )(n) pour différents niveaux
de bruits. Qu’observez-vous ?
Question 2.6 : Autres mécanismes d’apprentissage
Proposer un autre mécanisme pour jouer de façon répétée à ce jeu (avec ou sans bruit additionnel).
Le tester sur la même instance.
Polytech’ Grenoble UJF
4/ 7
RICM 4
module Probabilités et Simulation
Devoir
Le travail se fait en binôme. Chaque binôme choisit un seul sujet parmi ceux proposés ci-après.
Le travail devra être envoyé par mail (deadline fixée ultérieurement) sous forme d’archive compressée
Nom1-Nom2.tar.gz
La structure de l’archive sera la suivante :
Nom1-Nom2/src/README
Nom1-Nom2/src/codes-sources
Nom1-Nom2/src/Makefile
Nom1-Nom2/doc/rapport.pdf
Nom1-Nom2/doc/HOWO
Nom1-Nom2/data/données expérimentales ayant servi pour votre rapport
Sujet du mail
[RICM4:PS] Rapport DM Nom1-Nom2
Tout travail qui ne sera pas rendu dans ce format ne sera pas évalué.
Sujet 3 : Contrôle de réseau
On modélise un réseau de communication par un graphe non-orienté connexe G = (X, E). Pour "contrôler" le
réseau on décide d’implanter des "surveillants" sur certains nœuds du réseau. Un "surveillant" observe le nœud sur
lequel il est déployé ainsi que toutes les arêtes issues de ce nœud.
Une configuration X du réseau consiste en un ensemble de "surveillants" couvrant l’ensemble du réseau. On
souhaite déterminer le nombre minimal de surveillants nécessaires pour couvrir un réseau connexe de N nœuds de
degré moyen d.
Question 3.1 : Générateur de graphe
Écrire un algorithme de génération aléatoire uniforme de graphe non-orienté connexe de degré
moyen d.
Question 3.2 : Test du générateur de graphe
Sur de petits exemples valider votre générateur.
Ce problème d’optimisation est connu pour être N P-complet (donc difficile à résoudre sans une énumération des configurations possibles). Afin de rechercher un optimum X ∗ on utilisera un algorithme probabiliste qui
effectue, à partir d’une configuration initiale une séquence de modifications (randomisées) conduisant asymptotiquement à l’optimal.
Le paramètre T est appellé paramètre de température et décroit au fur et à mesure de l’exécution de l’algorithme. DX est une fonction qui sera minimale pour une "meilleure configuration". On prendra pour DX la
fonction
DX = |X| + λ|E(X)|,
avec E(X) l’ensemble des arêetes non couvertes par X et λ > 1 un coefficient que l’on ajustera en fonction de n.
Question 3.3 : Explications
Que se passe-t-il pour T = +∞, pour T = 0 ? Donner une intuition expliquant que T doit
décroitre "pas trop vite" ni "trop lentement".
Question 3.4 : Etude expérimentale sur un petit exemple
Polytech’ Grenoble UJF
5/ 7
RICM 4
module Probabilités et Simulation
Algorithme 4 Algorithme du recuit simulé
X ← conf iguration initiale()
T ← initialisation_temperature
répéter
i ← random_noeud ;
si i ∈ X alors
X 0 = X\{i}
sinon
X 0 = X ∪ {i}
fin si
∆ = DX 0 − DX
si Random < exp(− ∆
T ) alors
X ← X0
fin si
Actualiser T
jusqu’à Condition sur T ou DX
retourne X ∗
Pour N = 10, générer plusieurs graphes, proposer plusieurs schémas de décroissance de température et estimer le cardinal moyen de X ∗ en fonction de d. Analyser vos résultats.
Question 3.5 : Couverture optimale en fonction de N
Pour d = 6, étudier cardinal moyen de X ∗ en fonction de N = 10 · · · 1000. Le coefficient λ
dépend-t-il de N ?
Référence :
http://kom.aau.dk/~dsp/aspi05/sites/aspi9/PK_Simulated-annealing-1.pdf
Polytech’ Grenoble UJF
6/ 7
RICM 4
module Probabilités et Simulation
Devoir
Le travail se fait en binôme. Chaque binôme choisit un seul sujet parmi ceux proposés ci-après.
Le travail devra être envoyé par mail (deadline fixée ultérieurement) sous forme d’archive compressée
Nom1-Nom2.tar.gz
La structure de l’archive sera la suivante :
Nom1-Nom2/src/README
Nom1-Nom2/src/codes-sources
Nom1-Nom2/src/Makefile
Nom1-Nom2/doc/rapport.pdf
Nom1-Nom2/doc/HOWO
Nom1-Nom2/data/données expérimentales ayant servi pour votre rapport
Sujet du mail
[RICM4:PS] Rapport DM Nom1-Nom2
Tout travail qui ne sera pas rendu dans ce format ne sera pas évalué.
Sujet 4 : Réseau de capteurs
L’objectif de ce sujet est d’évaluer la couverture d’un espace sur lequel on a déposé des capteurs de manière
aléatoire. Pour simplifier l’approche on considère que l’espace est représenté par un carré de coté 1 (A est le coin
inférieur gauche et B le coin supérieur droit) et que les n capteurs sont répartis selon une loi uniforme sur ce carré.
Les capteurs ont une portée de communication θ, c’est à dire que 2 capteurs à une portée inférieure à θ peuvent
échanger des informations.
Question 4.1 : Algorithme de génération
Écrire un algorithme qui génère les n points dans le carré. Calculer la matrice des distances entre
les différents capteurs et par suite le graphe de connexion.
Question 4.2 : Connectivité
Étudier en fonction de n et de θ la probabilité pc (n, θ) que A et B soient connectés (il existe un
chemin entre A et B). Pour cela tracer pc (n, θ) en fonction de θ pour n = 10, 20, 100, on estimera
l’erreur à l’aide d’intervalles de confiance.
Question 4.3 : Portée critique
Montrer que le phénomène est critique, c’est à dire que pc (n, θ) varie brutalement à partir d’une
certaine valeur que l’on estimera graphiquement.
En fait les capteurs disposent d’une certaine quantité d’énergie et sont donc défaillants à partir d’un temps aléatoire.
On modélise la durée de vie des capteurs par n variables aléatoires indépendentes de même loi de moyenne 1
(normalisation).
Question 4.4 : Fiabilité
Estimer pour n = 100 et θ = 0.2 en fonction de la loi de durée de vie (exponentielle, Weibull ou
Pareto) la durée de vie du lien entre A et B. Commenter votre résultat.
Polytech’ Grenoble UJF
7/ 7
Téléchargement