\title{Différents équilibres}
\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..3)}
\integer{m=randint (2..3)}
\integer{r=randint (1..2)}

\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 strategies dominantes de X

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

#transformation en une liste texte

\text{DomX= }
\integer{nDomX=0}
\for{i=1 to \n}
	{ \integer{v=pari(M=Mat([\MDomX]);M[1,\i])}
	\if{\v=1}
{\integer{nDomX=\nDomX+1} 
\if{\nDomX>1}{\text{DomX=\DomX
,}}
\text{DomX=\DomX
\i}
}
}
	

#calcul des strategies dominantes de Y

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

#transformation en une liste texte

\text{DomY= }
\integer{nDomY=0}
\for{i=1 to \m}
	{ \integer{v=pari(M=Mat([\MDomY]);M[1,\i])}
	\if{\v=1}
{\integer{nDomY=\nDomY+1} 
\if{\nDomY>1}{\text{DomY=\DomY
,}}
\text{DomY=\DomY
\i}
}
}

#liste des equilibres en strategies dominantes

\text{Dom=  }
\for{i=1 to \nDomX}
	{\for{j=1 to \nDomY}
		{
		\integer{u=item(\i,\DomX)}
		\integer{v=item(\j,\DomY)}
\if{\i=1 and \j=1}{}{
\text{Dom=\Dom
,
}
}
		\text{Dom=\Dom
			\u\v
			}
		}
	}

#cas vide

\if{\nDomX=0}{\text{DomX=vide}}
\if{\nDomY=0}{\text{DomY=vide}}
\if{\nDomX=0 or \nDomY=0}{\text{Dom=vide}}

#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}}

#calcul des equilibres de Pareto dans une matrice booleenne MP

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

#transformation en une liste texte

\integer{nP=0}
\text{P=  }
\for{i=1 to \n}
	{\for{j=1 to \m}
		{
		\integer{u=pari(MP=Mat([\MP]);MP[\i,\j])}
		\if{\u=1}
			{
				\if{\nP>0}{
					\text{P=\P
					,
					}
				}
			\integer{nP=\nP+1}
			\text{P=\P
				\i\j
				}
			}
		}
	}

#cas vide

\if{\nP=0}{\text{P=vide}}


#tableau solution

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

\for{i=1 to \n}
	{
	\text{tabsolD=\tabsolD
		<TR>
		}
	\for{j=1 to \m}
		{
		\integer{u=pari(U=Mat([\U]);U[\i,\j])}
		\integer{v=pari(V=Mat([\V]);V[\i,\j])}
		\integer{tx=pari(M=Mat([\MDomX]);M[1,\i])}
		\integer{ty=pari(M=Mat([\MDomY]);M[1,\j])}
		\if{\tx=1}{\text{colx=blue} \text{bx=<B>}\text{fbx=</B>}}{\text{colx=black}\text{bx=}\text{fbx=}}
		\if{\ty=1}{\text{coly=red}\text{by=<B>}\text{fby=</B>}}
{\text{coly=black}\text{by=}\text{fby=}}
		\if{\tx=1 and \ty=1}{\text{colcel=lightgrey}}{\text{colcel=white}}
		\text{tabsolD=\tabsolD
		<TD BGCOLOR=\colcel><TABLE BORDER=0 WIDTH=100%>
<TR><TD></TD><TD><CENTER><FONT COLOR=\coly>\by\v\fby</FONT></CENTER></TD></TR>
<TR><TD><CENTER><FONT COLOR=\colx>\bx\u\fbx</FONT></CENTER></TD><TD></TD></TR>
</TABLE>
			}
		}
	\text{tabsolD=\tabsolD
		</TR>
		}
	}
\text{tabsolD=\tabsolD
</TABLE></CENTER>
}

#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>
}
}
}
}

#tableau solution

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

\for{i=1 to \n}
	{
	\text{tabsolP=\tabsolP
		<TR>
		}
	\for{j=1 to \m}
		{
		\integer{u=pari(U=Mat([\U]);U[\i,\j])}
		\integer{v=pari(V=Mat([\V]);V[\i,\j])}
		\integer{tcel=pari(M=Mat([\MP]);M[\i,\j])}
		\if{\tcel=1}{\text{bcel=<B>}\text{fbcel=</B>}\text{colcel=lightgrey}}{\text{bcel=}\text{fbcel=}\text{colcel=white}}
		\text{tabsolP=\tabsolP
		<TD BGCOLOR=\colcel><TABLE BORDER=0 WIDTH=100%>
<TR><TD></TD><TD><CENTER><FONT>\bcel\v\fbcel</FONT></CENTER></TD></TR>
<TR><TD><CENTER><FONT>\bcel\u\fbcel</FONT></CENTER></TD><TD></TD></TR>
</TABLE>
			}
		}
	\text{tabsolP=\tabsolP
		</TR>
		}
	}
\text{tabsolP=\tabsolP
</TABLE></CENTER>
}


\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 tous les couples de stratégies formant :<BR>
- un équilibre en stratégies dominantes de X,<BR>
- un équilibre de Nash,<BR> 
- un équilibre coopératif d'eficacité Pareto.<BR>
<BR>

<I> <U>MODE DE SAISIE</U>.<BR> Si un ensemble est vide, entrez <B>vide</B>.<BR>

Entrez la liste des couples (x,y) 
de stratégies x et y respectivement de X et Y comme une liste de couples de <B>numéros</B> xy <B>accolés</B>, <U>par exemple</U> : 11, 12, 23... ou vide.
</I>
<BR>
}



\answer{équilibres en stratégies dominantes}{\Dom}{type=set}
\answer{équilibres de Nash}{\Nash}{type=set}
\answer{équilibres coopératifs de Pareto}{\P}{type=set}


\solution{<BR>
<BR>
<B> Equilibres en stratégies dominantes.</B><BR>
<BR>

Une stratégie d'un joueur est dominante lorsqu'il n'a pas
un (strictement) meilleur gain  en changeant de stratégie,
quelle que soit la stratégie de l'autre joueur.<BR>

Si un joueur a plusieurs stratégies dominantes, celles-ci 
doivent donc lui apporter
les mêmes gains quelle que soit la stratégie de l'autre joueur.<BR>

Un équilibre en stratégie dominante est un couple de stratégies dominantes pour chaque joueur.<BR>

\tabsolD

Dans le tableau ci-dessus,
les stratégies dominantes de X sont les lignes bleues,
les stratégies dominantes de Y sont les colonnes rouges,
et les équilibres en stratégies dominantes sont les cases grisées.
<BR><BR>
<I>Remarque</I> : un équilibre en stratégies dominantes est toujours un équilibre de Nash.
<BR><BR>
<HR>
<BR><BR>
<B> Equilibres de Nash.</B><BR>
<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-dessous 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

<BR><BR>
<HR>
<BR><BR>
<B> Equilibres coopératifs Pareto.</B><BR>
<BR>

Un équilibre d'efficacité Pareto est un couple de stratégies 
tel qu'il n'existe pas un autre couple de stratégies 
augmentant strictement le gain
d'un des joueurs sans baisser le gain de l'autre.<BR>
<BR>
\tabsolP
<BR>
Dans le tableau ci-dessus, les cases grisées sont les optimums Pareto.
Ces cases ne sont pas comparables entre elles, au sens où changer de case grisée se fait toujours au détriment d'un des deux joueurs.
Par contre, pour chaque autre case, il existe un case grisée qui améliore les gains des deux joueurs à la fois.<BR><BR>
<BR>

<B>Remarque</B> :
un équilibre d'efficacité Pareto (ou optimum Pareto) traduit le fait
que les joueurs <I>coopèrent</I>, contrairement aux équilibres de Nash
pour lesquels chaque joueur cherche à améliorer son gain individuellement.<BR>
 
<BR><BR>
<HR> 
}