\title{Valeur de jeux 2*n en stratégie mixte}
\language{fr}
\author{Emeric Gioan}
\computeanswer{no}
\format{html}
\precision{100}

# definition d'une matrice de decalage aleatoire a partir d'une premiere droite aleatoire

\integer{n=2}
\integer{m=randint (3..5)}
\integer{rdif=randint (1..3)}

\matrix{Udif=slib(matrix/random \n,\m, \rdif)}

\integer{dep2=randint (-((\rdif)*(\m))..\rdif)}
\integer{dep1=randint (0..((\rdif)*(\m+1)))}

#definition du tableau du jeu

\text{pr_msg=
Udif=Mat([\Udif]);
U=Udif;
U[1,1]=\dep1 \ 2;
U[2,1]=\dep2 \ 2;
for(i=2, \m,
	if(abs(Udif[1,i])==0, Udif[1,i]=1);
	if(abs(Udif[2,i])==0, Udif[2,i]=1);
	U[1,i]=U[1,i-1]-abs(Udif[1,i]);
        U[2,i]=U[2,i-1]+abs(Udif[2,i]);
	);
U}
\matrix{U=pari(\pr_msg)}

# calcul de la taille du repere

\text{pr_msg=
U=Mat([\U]);
rmin=U[2,1];
if (rmin>U[1,\m],rmin=U[1,\m]);
rmin
}
\integer{rmin=pari(\pr_msg)}

\text{pr_msg=
U=Mat([\U]);
rmax=U[1,1];
if (rmax<U[2,\m],rmax=U[2,\m]);
rmax
}
\integer{rmax=pari(\pr_msg)}

#dessin du repere

\text{repere=
xrange 0,1
yrange \rmin-0.5,\rmax+0.5
linewidth 1
line 0,0,1,0, black
}

\for{i=\rmin to \rmax}{
\text{repere=\repere 
line 0,\i,0.01,\i, black }
}

\for{i=\rmin to \rmax}{
\text{repere=\repere 
line 0.99,\i,1,\i, black }
}

\text{repere=\repere 
text black , 0.02,1, small, 1
text black , 0.02,-0.02, small, 0
text black , 0.98,-0.02, small, 1
}

#dessin des droites

\text{droites= }

\for{i=1 to \m}{
\matrix{col=column(\i,\U)}
\integer{v1=item(1,\col)}
\integer{v2=item(2,\col)}
\real{ytext0=(\v2)+0.1*((\v1)-(\v2))}
\real{ytext1=(\v1)+0.1*((\v2)-(\v1))}
\text{droites=\droites 
	line 0,\v2,1,\v1, blue
	text black, 0.04, \ytext0, small, y\i
	text black, 0.94, \ytext1, small, y\i

	}
}

#matrice d'intersection entre les droites i>j, abcisse en 2*i-1,j, ordonnee en 2*i,j 

\matrix{V=slib(matrix/givenrank 2*(\m),\m,0)}


\text{pr_msg=
U=Mat([\U]);
V=Mat([\V]);
for(i=1, \m,
	for(j=i+1, \m,
		a=U[2,i]; b=U[1,i]; c=U[2,j]; d=U[1,j];
		V[2*i-1,j]=(c-a)/(b-a+c-d);
		V[2*i,j]=(b*c-a*d)/(b-a+c-d);
		);
	);
V}
\matrix{V=pari(\pr_msg)}


#suite des droites donnant la fonction affine par morceaux minimale, reperees dans un tableau W
#RQ: ce tableau est une matrice a une ligne, car les tabelaux ne sont pas geres pas Wims!

\matrix{W=slib(matrix/givenrank 1,\m,0)}

\text{pr_msg=
U=Mat([\U]);
V=Mat([\V]);
W=Mat([\W]);
W[1,1]=1;
xmin=2;
for(i=2, \m,
	for(j=xmin+1, \m,
		if(V[2*W[1,i-1],xmin]>=V[2*W[1,i-1],j], xmin=j);
		);
	if(xmin>\m,W[1,i]=0,W[1,i]=xmin);
xmin=xmin+1;
	);
W}
\matrix{W=pari(\pr_msg)}

#dessin de la minimale, calcul de la valeur, et calcul des droites donnant cette valeur

\text{minimale= linewidth 2}

\real{x1=0}
\real{y1=pari(U=Mat([\U]);U[2,1])}
\real{val=\y1}
\real{xval=\x1}
\integer{d1=1}
\integer{d2=2}
\for{i=1 to ((\m))}
	{
	\integer{v=pari(W=Mat([\W]);W[1,\i])}
	\if{\v=\m}
		{
		\real{x2=1}
		\real{y2=pari(U=Mat([\U]);U[1,\m])}
		}
		{
		\if{\v=0}{}
			{
			\integer{w=pari(W=Mat([\W]);W[1,\i+1])}
			\real{x2=pari(V=Mat([\V]);W=Mat([\W]);V[2*\v-1,\w])}
			\real{y2=pari(V=Mat([\V]);W=Mat([\W]);V[2*\v,\w])}
			}
		}
	\if{\val<\y2}
		{
		\integer{d1=\v}
		\integer{d2=\w}
		\real{val=\y2} \real{xval=\x2}}
		\text{minimale=\minimale
			line \x1,\y1,\x2,\y2, red
			}
		\real{x1=\x2}
		\real{y1=\y2}
	}

# equations de valeur

\integer{a=pari(U=Mat([\U]); U[1,\d1])}
\integer{c=pari(U=Mat([\U]); U[2,\d1])}
\integer{b=pari(U=Mat([\U]); U[1,\d2])}
\integer{d=pari(U=Mat([\U]); U[2,\d2])}

# dessin de valeur

\text{valeur=
linewidth 2
line 0,\val,\xval,\val, green
text green , 0.15,\val, medium, valm
}

#texte variable de la solution

\if{\xval>0 and 1>\xval}{
\text{textesol= la valeur mixte du jeu est donnée
par l'ordonnée du point d'intersection entre les
droites correspondant à y\d1 et y\d2, donc <I> valm </I> est donnée par le système <I>valm=(\a)p+(\c)(1-p), valm=(\b)p+(\d)(1-p)</I>, donc <I> valm= \val</I>. }}

\if{((\xval=0) or ((\d1=1) and (\a=\c)))}
{\text{textesol= la valeur mixte du jeu est donnée
par l'ordonnée de la droite correspondant à y1 en 0, donc <I> valm= \val</I>. <BR>
<U>Remarque</U> : dans ce cas précis, c'est aussi la valeur du jeu en stratégie pure.}}

\if{((\xval=1) or ((\d2=\m) and (\b=\d)))}
{\text{textesol= la valeur mixte du jeu est donnée
par l'ordonnée de la droite correspondant à y\m en 1, 
donc <I> valm= \val</I>. <BR>
<U>Remarque</U> : dans ce cas précis, c'est aussi la valeur du jeu en stratégie pure.}}


# enonce

\statement{<U>Si vous ne savez pas répondre, vous pouvez consulter la solution illustrée en entrant une réponse quelconque</U>.<BR><BR>


Le tableau suivant donne les gains de X selon les stratégies de X (en lignes) et les stratégies de Y (en colonnes).<BR>

Ce tableau a été déjà simplifié (élimination des stratégies dominées) et réordonné en conséquence (première ligne décroissante, seconde ligne croissante). 
<BR><BR>
<CENTER>\([\U])</CENTER>
<BR><BR>
Trouver sa valeur en stratégie mixte <FONT SIZE=2>(et faire un dessin)</FONT>.
<BR>
}

#question

\answer{valeur mixte}{\val}{type=numeric}

#solution

\solution{<BR> Ce type d'exercice se résoud bien à l'aide d'un graphique.<BR>

\draw{400,400}{
\repere
\droites
\minimale
\valeur
    }
<BR>

Pour chaque stratégie de Y, une droite donne le gain moyen de X en fonction de la proportion p attribuée à sa stratégie x1 (la proportion 1-p étant attribuée à x2).<BR>
 <I>On obtient les droites bleues.</I><BR><BR>

Le gain minimal de X en fonction de p est
donné par la fonction affine par morceaux obtenue en prenant le minimum des fonctions précédentes sur l'ensemble des stratégies de Y. 
<BR>
<I>On obtient la fonction rouge.</I><BR><BR>

La valeur mixte du jeu,
égale au gain minimal garanti de X et à la perte maximale garantie de Y,
est donnée par le maximum de cette fonction affine par morceaux.<BR>
<I>Cette valeur est dessinée en vert</I><BR><BR>


<B> ICI : </B> \textesol
<BR>

}