\title{Equilibres de Nash}
\language{fr}
\range{-5..5}
\author{Emeric Gioan}
\email{egioan@math.unice.fr}
\computeanswer{no}
\format{html}
\precision{100}

#definition des paiements aleatoires

\integer{n=randint (2..4)}
\integer{m=randint (2..4)}
\integer{r=randint (1..3)}

\matrix{U=slib(matrix/random \n,\m, \r)}
\matrix{V=slib(matrix/random \n,\m, \r)}


#affichage de la matrice comme tableau HTML

\text{tableau=
<CENTER>
<TABLE BORDER=1 WIDTH=300>
}

\for{i=1 to \n}
	{
	\text{tableau=\tableau
		<TR>
		}
	\for{j=1 to \m}
		{
		\integer{u=pari(U=Mat([\U]);U[\i,\j])}
		\integer{v=pari(V=Mat([\V]);V[\i,\j])}
		\text{tableau=\tableau
		<TD><TABLE BORDER=0 WIDTH=100%>
<TR><TD></TD><TD><CENTER>\v</CENTER></TD></TR>
<TR><TD><CENTER>\u</CENTER></TD><TD></TD></TR>
</TABLE>
			}
		}
	\text{tableau=\tableau
		</TR>
		}
	}
\text{tableau=\tableau
</TABLE></CENTER>
}

#calcul des equilibres de Nash dans une matrice booleenne MNash

\text{pr_msg=
U=Mat([\U]);
V=Mat([\V]);
N=Mat([\V]);
for(i=1, \n,
	for(j=1, \m,
		N[i,j]=1;
	 	for(k=1, \n,
			if(U[i,j]<U[k,j], N[i,j]=0);
			);
		for(l=1, \m,
			if(V[i,j]<V[i,l], N[i,j]=0);
			);
		);
	);
N}
\matrix{MNash=pari(\pr_msg)}

#transformation en une liste texte

\integer{nNash=0}
\text{Nash=  }
\for{i=1 to \n}
	{\for{j=1 to \m}
		{
		\integer{u=pari(N=Mat([\MNash]);N[\i,\j])}
		\if{\u=1}
			{
				\if{\nNash>0}{
					\text{Nash=\Nash
					,
					}
				}
			\integer{nNash=\nNash+1}
			\text{Nash=\Nash
				\i\j
				}
			}
		}
	}

#cas vide

\if{\nNash=0}{\text{Nash=vide}}

#tableau solution

\text{tabsolN= }


\for{k=1 to \n}
{
\for{l=1 to \m}
{
\integer{tN=pari(M=Mat([\MNash]);M[\k,\l])}
\if{\tN=1}
{
\text{tabsolN=\tabsolN
<CENTER>
<TABLE BORDER=1 WIDTH=300>
}
\for{i=1 to \n}
	{
	\text{tabsolN=\tabsolN
		<TR>
		}
	\for{j=1 to \m}
		{
		\integer{u=pari(U=Mat([\U]);U[\i,\j])}
		\integer{v=pari(V=Mat([\V]);V[\i,\j])}
		\if{\i=\k}{\text{colx=green} \text{bx=<B>}\text{fbx=</B>}}{\text{colx=black}\text{bx=}\text{fbx=}}
		\if{\j=\l}{\text{coly=orange}\text{by=<B>}\text{fby=</B>}}
{\text{coly=black}\text{by=}\text{fby=}}
		\if{\i=\k and \j=\l}{\text{colcel=lightgrey}}{\text{colcel=white}}
		\text{tabsolN=\tabsolN
		<TD BGCOLOR=\colcel><TABLE BORDER=0 WIDTH=100%>
<TR><TD></TD><TD><CENTER><FONT COLOR=\colx>\bx\v\fbx</FONT></CENTER></TD></TR>
<TR><TD><CENTER><FONT COLOR=\coly>\by\u\fby</FONT></CENTER></TD><TD></TD></TR>
</TABLE>
			}
		}
	\text{tabsolN=\tabsolN
		</TR>
		}
	}
\text{tabsolN=\tabsolN
</TABLE></CENTER><BR>
<BR>
}
}
}
}


\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 <FONT SIZE=2> (en bas à gauche de chaque case) </FONT>
et de Y <FONT SIZE=2> (en haut à droite de chque case) </FONT> selon les stratégies de X <FONT SIZE=2> (en lignes) </FONT> et les stratégies de Y <FONT SIZE=2> (en colonnes) </FONT>.<BR>
<BR>

\tableau<BR>
<BR>


Trouver les équilibres de Nash de ce jeu.
<BR>
<BR>
<BR>

<I> <U>MODE DE SAISIE</U>.<BR> Si l'ensemble est vide, entrez <B>vide</B>.<BR>
Entrez un couple (x,y) 
de stratégies x et y respectivement de X et Y comme un couple de numéros xy <B>accolés</B>, <U>par exemple</U> : 12 pour (1,2).<BR>
Entrez la liste des couples (x,y) comme une liste, <U>par exemple</U> : 11, 12, 23... ou vide.
</I>
<BR>
<BR>
}
# \([\MDomX])<BR>
# DomX=\DomX<BR>
# nDomX=\nDomX<BR>
# \([\MDomY])<BR>
# DomY=\DomY<BR>
# nDomY=\nDomY<BR>
# dom=\Dom<BR>


### answer{UN équilibre de Nash}{(\Nash)}{type=wlist}
### condition{avez-vous trouvé au moins un élément de la liste ?}{
### reply1 \isin \Nash}

\answer{TOUS les équilibres de Nash}{\Nash}{type=set}



\solution{<BR>

Un équilibre de Nash est un couple de stratégies 
telle qu'aucun joueur n'a intérêt à changer de stratégie tant que l'autre joueur ne change pas de stratégie.<BR>
<BR>

Le ou les tableaux ci-dessus représentent chacun un équilibre de Nash du jeu  (case grisée). Chaque fois, le gain de X est le maximum dans sa colonne (en orange),
et le gain de Y est le maximum dans sa ligne (en vert).<BR>

\tabsolN

}