ift7025-notes-de-cours/chapitre5.tex
2019-02-24 17:26:38 -05:00

111 lines
3 KiB
TeX

\section{Chapitre 5: Recherche avec un adversaire}
\label{sec:ch4}
\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 (Max et 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 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[MMV(n)] &=
\begin{cases}
U(n)&\text{$n$ est terminal}\\
max_{s \in Child(n)}MMV(s)&\text{$n$ est Max}\\
min_{s \in Child(n)}MMV(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{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 Max (plus grande valeur trouvée jusqu'ici)
\item $\beta$ et la valeur du meilleur choix pour Min (plus petite valeur trouvée jusqu'ici)
\end{itemize}
Couper dans un noeud
\begin{itemize}
\item Min: Si $f(n)<\alpha$ (pire que $\alpha$ pour Max)
\item Max: Si $f(n)>\beta$ (pire que $\beta$ pour Min)
\end{itemize}
\href{http://inst.eecs.berkeley.edu/~cs61b/fa14/ta-materials/apps/ab_tree_practice/}{Simulation (Berkeley)}
\subsection{Negamax}
\label{sec:ch5negamax}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "notes_de_cours"
%%% End: