diff --git a/chapitre1.tex b/chapitre1.tex index 6470dd5..57df37c 100644 --- a/chapitre1.tex +++ b/chapitre1.tex @@ -32,7 +32,7 @@ Il y a plusieurs définitions de l'intelligence artificielle. Elles peuvent se c À l'intersection de ces deux dualités, on retrouve 4 approches ou définitions (Figure \ref{fig:def-ia}) -\begin{figure}[h] +\begin{figure}[ht] \centering \begin{tabular}{l|l|l} &\textbf{Empirique}&\textbf{Théorique}\\ @@ -86,7 +86,7 @@ Dans ce cours, nous allons nous concentrer sur l'approche \textbf{Agir rationnel Un agent rationnel (Figure \ref{fig:ch1agentrationnel}) explore, apprend et est autonome. Il n'est pas omniscient, clairvoyant et ne réaussit pas toujours. C'est un outil d'analyse de systèmes et non une caractérisation. -\begin{figure}[h] +\begin{figure}[ht] \centering \includegraphics[height=5cm]{agentrationnel.png} \caption{Agent Rationnel} diff --git a/chapitre2.tex b/chapitre2.tex index a35ecf9..ca303b9 100644 --- a/chapitre2.tex +++ b/chapitre2.tex @@ -16,7 +16,7 @@ \textbf{Programmation orientée agents}: met en évidence l'autonomie et les interactions \end{mydef} -\begin{figure}[h] +\begin{figure}[ht] \centering \includegraphics[height=5cm]{agentintelligent.png} \caption{Agent intelligent} @@ -42,7 +42,7 @@ On définit l'environnment de la tâche à l'aide de l'acronyme PEAS: Exemple: Taxi automatisé (Figure \ref{tab:ch2taxiautomatise}) -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{|l|l|} \hline @@ -60,7 +60,7 @@ Exemple: Taxi automatisé (Figure \ref{tab:ch2taxiautomatise}) \subsection{Propriétés de l'environnement} \label{sec:ch2propriere} -\begin{figure}[h] +\begin{figure}[ht] \centering \includegraphics[width=16.5cm]{environnementpropriete.png} \caption{Propriétés} diff --git a/chapitre3a.tex b/chapitre3a.tex index 51756d5..fef4db3 100644 --- a/chapitre3a.tex +++ b/chapitre3a.tex @@ -116,7 +116,7 @@ Quantités utilisées \item Nouveaux successeurs à la fin de la file \end{itemize} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ @@ -138,7 +138,7 @@ Quantités utilisées \item Nouveaux successeurs dans une file triée \end{itemize} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ @@ -159,7 +159,7 @@ Quantités utilisées \item Implémenté à l'aide d'une pile \end{itemize} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ @@ -180,7 +180,7 @@ Quantités utilisées \item Implémenté à l'aide d'une pile \end{itemize} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ @@ -201,7 +201,7 @@ Quantités utilisées \item Avantage de la largeur d'abord (complet et optimal), complexité en espace linéaire de profondeur d'abord \end{itemize} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ @@ -222,7 +222,7 @@ Quantités utilisées \item Applicable seulement si on peut rechercher depuis le but \end{itemize} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ diff --git a/chapitre3b.tex b/chapitre3b.tex index 6d24ef2..ddb77e7 100644 --- a/chapitre3b.tex +++ b/chapitre3b.tex @@ -25,7 +25,7 @@ Exemples d'heuristique: \item distance de Manhattan. \end{itemize} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ @@ -53,7 +53,7 @@ Exemples d'heuristique: \textbf{Heuristique admissible}: $h(n) \leq h^{\star}(n)$ où $h^{\star}(n)$ est le véritable coût de $n$ au but. \end{mydef} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ @@ -148,7 +148,7 @@ On a la frontière suivante: \item Enlève les noeuds les plus mauvais, enregistre la valeur de la fonction d'évaluation au parent. \end{itemize} -\begin{table}[h] +\begin{table}[ht] \centering \begin{tabular}{p{4cm}|p{3cm}|p{4cm}} Propriété&Valeur&Conditions\\ diff --git a/chapitre4.tex b/chapitre4.tex index 3708bb1..af655b2 100644 --- a/chapitre4.tex +++ b/chapitre4.tex @@ -53,7 +53,7 @@ \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) +\item Sinon, choisir les k meilleurs successeurs et recommencer (variante \textsc{ProbCut}, choisir les k successeurs aléatoirement, avec une probabilité proportionnelle à la fonction d'évaluation) \end{itemize} \subsection{Algorithmes génétiques} diff --git a/chapitre5.tex b/chapitre5.tex index b161fad..ae1424d 100644 --- a/chapitre5.tex +++ b/chapitre5.tex @@ -27,7 +27,7 @@ \paragraph{Hypothèses pour le cours} \begin{enumerate} -\item Deux adversaires (Max et Min) +\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 @@ -44,7 +44,7 @@ \item Fonction d'utilité \end{itemize} -\subsection{Algorithme minimax} +\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. @@ -54,11 +54,11 @@ Programmation récursive jusqu'à la racine de l'arbre \begin{align} - E[MMV(n)] &= + E[\textsc{MiniMax}(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}\\ + 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} @@ -72,7 +72,7 @@ Programmation récursive jusqu'à la racine de l'arbre Complexité en espace&$O(bm)$&\\ Optimalité&Oui&Contre un adversaire optimal\\ \end{tabular} -\caption{minimax: propriétés} +\caption{\textsc{MiniMax}: propriétés} \end{table} \subsection{Accélérer la recherche} @@ -88,14 +88,14 @@ Deux approches: \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) +\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 Min: Si $f(n)<\alpha$ (pire que $\alpha$ pour Max) -\item Max: Si $f(n)>\beta$ (pire que $\beta$ pour Min) +\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)} @@ -103,8 +103,74 @@ Couper dans un noeud \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{$SMA^{\star}$: 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" diff --git a/chapitre6.tex b/chapitre6.tex new file mode 100644 index 0000000..31e8b1c --- /dev/null +++ b/chapitre6.tex @@ -0,0 +1,9 @@ +\section{Chapitre 6: Problèmes de satisfaction de contraintes} +\label{sec:ch6} + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "notes_de_cours" +%%% End: