diff --git a/algorithme-genetique.png b/algorithme-genetique.png new file mode 100644 index 0000000..ec3ff21 Binary files /dev/null and b/algorithme-genetique.png differ diff --git a/algorithme-genetique.xml b/algorithme-genetique.xml new file mode 100644 index 0000000..3292c22 --- /dev/null +++ b/algorithme-genetique.xml @@ -0,0 +1 @@ +5ZhLc5swEMc/DTPtIRlAYJOj7bwObcatO5PkKIMMagViJBGbfvpKIMwrdmmalHriA6P9e/Vg97dCYIBFvLthMI0+0wARwzaDnQEuDdt2Jq68KiEvhemFVQohw0EpNYQV/om0aGo1wwHiLUdBKRE4bYs+TRLki5YGGaPbttuGkvasKQxRT1j5kPTVexyIqFQ9e1rrtwiHUTWzNbko/4lh5azvhEcwoNuGBK4MsGCUirIV7xaIqNhVcSn7XR/4d78whhIxpEO6iDLrZmPfzpbo9ub+7kt2dn+mF8tFXt0wCuT9a5MyEdGQJpBc1eqc0SwJkBrVlFYkYiKblmx+R0LkOoUwE1RK9QifKE21XzmnmujgrWiJ04z56Mj6KyQgC5E44mfvAy5BRTRGguWyH0MECvzUXgfUyIR7vzqqsqED+wdB1uM+QZLpmQx7QuRy5wF+ks1QNZc0zdRiaKKqBcnLGnJUOcp5G769pLVTso2wQKsUFpHbyrJsp0mvBjGBdscT0A+Y7uBppnVRO9rc1hVim1qLGtVR+b1+hM1eSE6LY3sgx2BMju0hHBsLYHgXykfDfAoAW/boBFu9mPwFwTIKLH9Q+rlbmY/arTAudy0r19YI5IOB5Dtjkg+GkL9S6M8uiDyGnAz4e8jHA99+p+A7A8F3xwTfGQK+PMRijmIVARkbdYkzcUK7/94erwicd1oE7sAisEY9+Li9KviGWIyTcsM3wHWf6IjG64z/E5otp40zmPRx9p6h2XsrmifPbBpdupNgpt7OpeUTyDn2OwjvsHioIJXtx5pmadX8KiNvwqw6nZnnpum1yD+fAPAb+gtriRiWQUBMiyOgfuBVtZFM95lkVtrggtAzLCkutm3NEui82FkdRsq71J2aHxs643gHkKzGKaPQG0cyAfOGW6oc+OHlOt33UPPoqjruluN2WC/nr8nfx//lxTAd8gS9G/yolNuEaJcKQxz/hOvCQSGrYya93bnhXkoFEhwmqtIks4rsudpusA/JTP8R4yAoHikErhGZQ/9HWDxcFpRQVswLNsXv2Ialv8DplRj7717NWjm8XRzc3VQxT2U1NxNXncdfCnvlQjcbjkSHgVfJutV/Y/haPi14RuTZiFfpXrMq1R9mKStcPK6iRjKOUcZUG4uyKyvOVPzj/3Z+ct7w/CTN+hNpmZ36OzO4+gU= \ No newline at end of file diff --git a/chapitre4.tex b/chapitre4.tex index 865ac00..3708bb1 100644 --- a/chapitre4.tex +++ b/chapitre4.tex @@ -13,6 +13,89 @@ \subsection{Escalade} \label{sec:ch4escalade} +\begin{itemize} +\item À chaque tour, choisis le noeud ayant la meilleure valeur de la mesure de performance +\item Arrête quand plus aucun successeur n'a de valeur plus grande +\item Aucune prospection +\item Problèmes: + \begin{itemize} + \item Maximum local + \item Plateaux + \item Crête + \end{itemize} +\item Solutions: + \begin{itemize} + \item Redémarrage aléatoire: + \begin{itemize} + \item Point de départ différent + \item Sauvegarde de la meilleure solution + \item Solution dépend de la surface d'états: + \begin{itemize} + \item Rapide si peu de minima locaux + \item Lent (exponentiel) si surface en porc-épic + \end{itemize} + \item Solution raisonnable obtenue rapidement + \end{itemize} + \item Recuit simulé: + \begin{itemize} + \item Déplacements perturbateurs + \item Démonstration: faire rebondir une balle sur une surface en agitant celle-ci. + \item On commence en agitant fort et on diminue l'intensité. + \item Algorithme: si successeur est meilleur $\Delta E > 0$, on y va. Sinon, avec une probabilité $e^{\Delta E/T}$, on y va aussi. $T$ est une fonction décroissante du temps ($t \mapsto T$). + \end{itemize} + \end{itemize} +\end{itemize} + +\subsection{Recherche locale en faisceau} +\label{sec:ch4faisceau} + +\begin{itemize} +\item Choisir k états aléatoirement +\item Générer leurs successeurs +\item Arrêter si un but est trouvé +\item Sinon, choisir les k meilleurs successeurs et recommencer (variante, choisir les k successeurs aléatoirement, avec une probabilité proportionnelle à la fonction d'évaluation) +\end{itemize} + +\subsection{Algorithmes génétiques} +\label{sec:ch4algogenetiques} + +\paragraph{Principes de bases} + +\begin{itemize} +\item Un individu fort a plus de chance de survivre. +\item Deux individus forts donnent généralement des enfants forts +\item Si l'environnement évolue lentement, les organismes évoluent et s'adaptent +\item Des mutations surviennent aléatoirement, peuvent être bénéfiques ou mortelles +\end{itemize} + +\paragraph{Fonctionnement} + +\begin{itemize} +\item Chaînes de bits, expressions symboliques ou programmes +\item Population initiale séparée en paires +\item Reproduction (inverser deux sections entre les parents) et mutations (inverser un bit au hasard) +\item Sélection des enfants avec une fonction d'utilité +\end{itemize} + +\begin{figure}[ht] + \centering + \includegraphics[width=175px]{algorithme-genetique.png} + \caption{Algorithme génétique} + \label{fig:algogenetique} +\end{figure} + +\paragraph{Paramétrage} + +\begin{itemize} +\item Taille de la population +\item Taux de mutation +\item Taux de reproduction +\item Nombre de générations +\end{itemize} + +Se fait habituellement par essais et erreurs + + diff --git a/chapitre5.tex b/chapitre5.tex new file mode 100644 index 0000000..b161fad --- /dev/null +++ b/chapitre5.tex @@ -0,0 +1,111 @@ +\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: diff --git a/notes_de_cours.tex b/notes_de_cours.tex index 310e615..dadeb48 100644 --- a/notes_de_cours.tex +++ b/notes_de_cours.tex @@ -98,6 +98,9 @@ \include{chapitre3a} \include{chapitre3b} \include{chapitre4} +\include{chapitre5} +\include{chapitre6} + % Ajouter les autres chapitres au besoin \bibliography{bibliographie}