177 lines
5.4 KiB
TeX
177 lines
5.4 KiB
TeX
\section{Chapitre 5: Recherche avec un adversaire}
|
|
\label{sec:ch5}
|
|
|
|
\subsection{Particularités des jeux avec adversaires}
|
|
\label{sec:ch5jeuxadversaires}
|
|
|
|
\begin{itemize}
|
|
\item Plusieurs agents qui modifient l'environnement
|
|
\item Imprévisibilité
|
|
\item Temps de réaction limité
|
|
\item Relation entre les joueurs:
|
|
\begin{itemize}
|
|
\item Coopératifs: même but
|
|
\item Compétitifs: un gain pour un est une perte pour l'autre:
|
|
\begin{itemize}
|
|
\item Cas particulier: jeux à somme nulle (utilité de +1 ou -1)
|
|
\end{itemize}
|
|
\item Mixte: alliances
|
|
\end{itemize}
|
|
\item Jeux à tour de rôle:
|
|
\begin{itemize}
|
|
\item Joueurs coopératifs ou rivaux
|
|
\item Connaissance partielle ou totale de l'état du jeu
|
|
\end{itemize}
|
|
\end{itemize}
|
|
|
|
\paragraph{Hypothèses pour le cours}
|
|
|
|
\begin{enumerate}
|
|
\item Deux adversaires (\textsc{Max} et \textsc{Min})
|
|
\item Tour de rôle
|
|
\item Somme nulle (Récompense positive ou négative)
|
|
\item Complètement observables
|
|
\item Déterministes
|
|
\end{enumerate}
|
|
|
|
\subsection{Arbre de recherche}
|
|
\label{sec:ch5arbrerecherche}
|
|
|
|
\begin{itemize}
|
|
\item Noeud initial
|
|
\item Fonction de transition
|
|
\item Test de terminaison
|
|
\item Fonction d'utilité
|
|
\end{itemize}
|
|
|
|
\subsection{Algorithme \textsc{MiniMax}}
|
|
\label{sec:ch5minimax}
|
|
|
|
À chaque tout, choisir l'action menant à la plus grande valeur minimax. Meilleure action optimale contre un joueur optimal. C'est un algorithme de recherche en profondeur.
|
|
|
|
\paragraph{Algorithme}
|
|
|
|
Programmation récursive jusqu'à la racine de l'arbre
|
|
|
|
\begin{align}
|
|
E[\textsc{MiniMax}(n)] &=
|
|
\begin{cases}
|
|
U(n)&\text{$n$ est terminal}\\
|
|
max_{s \in Child(n)}\textsc{MiniMax}(s)&\text{$n$ est Max}\\
|
|
min_{s \in Child(n)}\textsc{MiniMax}(s)&\text{$n$ est Min}\\
|
|
\end{cases}
|
|
\end{align}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
|
|
Propriété&Valeur&Conditions\\
|
|
\hline
|
|
Complétude&Oui&Si l'arbre est fini\\
|
|
Complexité en temps &$O(b^m)$&\\
|
|
Complexité en espace&$O(bm)$&\\
|
|
Optimalité&Oui&Contre un adversaire optimal\\
|
|
\end{tabular}
|
|
\caption{\textsc{MiniMax}: propriétés}
|
|
\end{table}
|
|
|
|
\subsection{Accélérer la recherche}
|
|
\label{sec:ch5accelerer}
|
|
|
|
Deux approches:
|
|
\begin{itemize}
|
|
\item Élagage Alpha-Beta: élaguer les chemins explorés inutilement
|
|
\item Remplacer la fonction d'utilité par une évaluation heuristique: recherche la plus profonde possible + prédiction du résultat ensuite
|
|
\end{itemize}
|
|
|
|
\subsection{Élagage Alpha-Béta}
|
|
\label{sec:ch5alphabeta}
|
|
|
|
\begin{itemize}
|
|
\item $\alpha$ est la valeur du meilleur choix pour \textsc{Max} (plus grande valeur trouvée jusqu'ici)
|
|
\item $\beta$ et la valeur du meilleur choix pour \textsc{Min} (plus petite valeur trouvée jusqu'ici)
|
|
\end{itemize}
|
|
|
|
Couper dans un noeud
|
|
\begin{itemize}
|
|
\item \textsc{Min}: Si $f(n)<\alpha$ (pire que $\alpha$ pour \textsc{Max})
|
|
\item \textsc{Max}: Si $f(n)>\beta$ (pire que $\beta$ pour \textsc{Min})
|
|
\end{itemize}
|
|
|
|
\href{http://inst.eecs.berkeley.edu/~cs61b/fa14/ta-materials/apps/ab_tree_practice/}{Simulation (Berkeley)}
|
|
|
|
\subsection{Negamax}
|
|
\label{sec:ch5negamax}
|
|
|
|
\begin{function}[ht]
|
|
\Sortie{valeur}
|
|
\Deb{
|
|
\Si{profondeur=0 $\lor$ noeud est terminal}{
|
|
\Retour{joueur*valeur}\;
|
|
}
|
|
noeudsEnfants $\leftarrow$ trierActions(genererActions(noeud))\;
|
|
valeur <- $-\infty$\;
|
|
\PourCh{noeudEnfant $\in$ noeudsEnfants}{
|
|
valeur <- max(valeur, -\textsc{NegaMax}(noeudEnfant, profondeur-1, -$\beta$, -$\alpha$, -joueur))\;
|
|
$\alpha$ <- max($\alpha$,valeur)\;
|
|
\Si{$\alpha \geq \beta$}{
|
|
Couper(noeudEnfant)\;
|
|
}
|
|
}
|
|
\Retour{valeur}
|
|
}
|
|
\caption{NegaMax(noeud, profondeur, $\alpha$, $\beta$, joueur=1)}
|
|
\end{function}
|
|
|
|
\begin{table}[ht]
|
|
\centering
|
|
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
|
|
Propriété&Valeur&Conditions\\
|
|
\hline
|
|
Complétude&Oui&Si solution atteignable\\
|
|
Complexité en temps &$O(b^m)$ à $O(b^m)$&Du meilleur cas au pire cas\\
|
|
Complexité en espace&$O(bm)$&\\
|
|
Optimalité&Oui&Si solution optimale atteignable\\
|
|
\end{tabular}
|
|
\caption{Negamax: propriétés}
|
|
\end{table}
|
|
|
|
\subsection{Décision en temps réel}
|
|
\label{sec:ch5tempsreel}
|
|
|
|
Approche standard:
|
|
\begin{itemize}
|
|
\item Limiter la profondeur
|
|
\item Modifier l'algorithme \textsc{MiniMax} avec élagage $\alpha-\beta$ pour utiliser une fonction heuristique au lieu du coût (H-minimax).
|
|
\item Modifier la fonction d'évaluation à l'aide d'apprentissage machine (Ex: fonction linéaire avec un poids pour chaque figure du jeu d'échecs)
|
|
\item Recherche par faisceau
|
|
\end{itemize}
|
|
|
|
\subsection{Actions aléatoires}
|
|
\label{sec:ch5actionsaleatoires}
|
|
|
|
\begin{itemize}
|
|
\item Ajout de noeuds \textsc{Chance} aux noeuds \textsc{Max} et
|
|
\textsc{Min}.
|
|
\item L'utilité d'un noeud chance est l'utilité espérée, la
|
|
moyenne de l'utilité de ses enfants.
|
|
\end{itemize}
|
|
|
|
\subsection{\textsc{Expectimax}}
|
|
\label{sec:ch5expectimax}
|
|
|
|
On modélise le comportement de l'opposant à l'aide d'un modèle probabiliste.
|
|
|
|
\begin{align}
|
|
E[\textsc{ExpectiMax}(n)] &=
|
|
\begin{cases}
|
|
U(n)&\text{$n$ est terminal}\\
|
|
max_{s \in Child(n)}\textsc{MiniMax}(s)&\text{$n$ est Max}\\
|
|
min_{s \in Child(n)}\textsc{MiniMax}(s)&\text{$n$ est Min}\\
|
|
\sum_{s \in Child(n)}P(s) \times \textsc{ExpectiMax}(s)&\text{$n$ est Chance}\\
|
|
\end{cases}
|
|
\end{align}
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% TeX-master: "notes_de_cours"
|
|
%%% End:
|