ajout chapitre 3 et début chapitre 4

This commit is contained in:
François Pelletier 2019-02-24 14:35:53 -05:00
parent d1046c49d9
commit de18a33ad7
8 changed files with 488 additions and 1 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -165,3 +165,7 @@ Les diférentes composantes de l'agent apprenant sont:
\item Générateur de problèmes: Identifie les possibilités d'amélioration et suggère des expérimentations
\end{itemize}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "notes_de_cours"
%%% End:

243
chapitre3a.tex Normal file
View file

@ -0,0 +1,243 @@
\section{Chapitre 3: Recherche non informée}
\label{sec:ch3}
\subsection{Agent de résolution de problèmes}
\label{sec:ch3agentresolution}
\begin{enumerate}
\item But: Ensemble d'états à atteindre
\item Problème: États et actions à considérer
\item Recherche: Indentifier la meilleure séquence d'actions menant à un état but
\item Exécution: Accomplir la séquence d'actions
\end{enumerate}
\subsection{Formulation du problème}
\begin{itemize}
\item État initial $x$
\item Actions: une fonction $S(x)$ permet de trouver l'ensemble des états successeurs sous forme de paires
\item Test de but: Déterminer si le but est atteint
\item Coût du chemin: Fonction qui assigne un coût à un chemin. C'est la mesure de la performance de l'agent.
\end{itemize}
\begin{mydef}
Une abstraction est \textbf{valide} si l'on peut développer toutes les solutions abstraites vers une solution dans le monde réel.
\end{mydef}
\paragraph{Exemple}
Le problème du 8-puzzle
\PuzzleSolution
\begin{Puzzle}{3}{3}
|5|7|3|.
|8|{}|1|.
|4|2|6|.
\end{Puzzle}
\begin{itemize}
\item États: Position des 8 tuiles dans les cases
\item Actions: Déplacement du trou
\begin{enumerate}
\item Droite
\item Gauche
\item Haut
\item Bas
\end{enumerate}
\item Test de but: Vérifie si l'état correspond à l'état final
\PuzzleSolution
\begin{Puzzle}{3}{3}
|1|2|3|.
|4|5|6|.
|7|8|{}|.
\end{Puzzle}
\item Coût du chemin: chaque action coûte 1.
\end{itemize}
\subsection{Recherche dans un arbre}
\label{sec:ch3recherchearbre}
Objectif: Simuler l'exploration d'états en générant des successeurs pour les états déjà explorés. Pour chaque noeud de recherche, on définit les éléments suivants:
\begin{itemize}
\item État: dans l'espace d'état
\item Noeud parent: Noeud de l'arbrbe de recherche qui a généré ce noeud
\item Action: appliquée au noeud parent pour atteindre générer l'état de ce noeud
\item Coût du chemin $g(n)$: Depuis l'état initial jusqu'à ce noeud
\item Profondeur: Nombre d'actions(étapes) dans le chemin depuis l'état initial
\end{itemize}
\paragraph{Algorithme de recherche général}
\begin{algorithm}[h!]
\Deb{
\Entree{$P$:Problème($n_0$: État initial,$A$: Actions,$B$: États buts),$S$: Stratégie}
\Sortie{$C(n)$: Chemin vers un état but}
\Donnees{$\mathbf{E}$: Ensemble d'expansion}
\Repeter{$\mathbf{E}=\emptyset$}{
$n \leftarrow S(P,\mathbf{E})$
\Si{$n \in B(P)$}{\Retour{$C(n)$}}
\Sinon{
\Pour{$a \in A(n)$}{
$\mathbf{E} \leftarrow \mathbf{E} \cup \text{Noeud-Enfant}(P,\text{Parent}(n),a)$
}
}
}
\Retour{$\emptyset$}
}
\caption{Algorithme de recherche général en arbre}
\end{algorithm}
Pour chercher dans un graphe, on conserve une liste des noeuds visités (la frontière ou liste fermée)
Avant de développer un noeud, on vérifie qu'il n'est pas dans la liste fermée. Une fois développé, on l'ajoute à la liste fermée.
\subsection{Évaluation des stratégies}
\label{sec:ch3strategie}
\begin{itemize}
\item Complétude: Trouve solution si $\exists$
\item Optimalité: solution trouvée est optimale?
\item Complexité de temps: Temps nécessaire pour trouver une solution, nombre de noeuds générés
\item Complexité d'espace: Quantité de mémoire nécessaire, nombre de noeuds maximum en mémoire
\end{itemize}
Quantités utilisées
\begin{itemize}
\item $b$: Facteur de branchement, nombre maximum de successeurs d'un noeud (pire cas)
\item $d$: Profondeur du noeud but le moins profond (meilleur cas)
\item $m$: Longueur maximale d'un chemin dans l'espace d'états (pire cas)
\end{itemize}
\subsection{Largeur d'abord}
\label{sec:ch3largeur}
\begin{itemize}
\item Noeuds de profondeur $i$ avant profondeur $i+1$
\item Le but est évalué après l'expansion
\item Nouveaux successeurs à la fin de la file
\end{itemize}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Oui&Si $b$ est fini\\
Complexité en temps &$\sum_{i=0}^{d}b^i = O(b^d)$&\\
Complexité en espace&$O(b^d)$&\\
Optimalité&Non&Oui, si le coût des actions est constant\\
\end{tabular}
\caption{Largeur d'abord: propriétés}
\end{table}
\subsection{Coût uniforme}
\label{sec:ch3uniformcost}
\begin{itemize}
\item Noeud avec la fonction de coût la moins élevée en premier.
\item Le but est évalué avant l'expansion
\item Nouveaux successeurs dans une file triée
\end{itemize}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Oui& Si $g(n) \geq \epsilon < 0$\\
Complexité en temps &$O(b^{\ceil{C^{\star}/{\epsilon}}})$&\\
Complexité en espace&$O(b^{\ceil{C^{\star}/{\epsilon}}})$&\\
Optimalité&Oui&Les noeuds sont développés en ordre de $g(n)$\\
\end{tabular}
\caption{Coût uniforme: propriétés}
\end{table}
\subsection{Profondeur d'abord}
\label{sec:ch3profondeur}
\begin{itemize}
\item Noeud le plus profond d'abord
\item Implémenté à l'aide d'une pile
\end{itemize}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Non& Si profondeur infinie ou cycles, Oui, si on évite les états répétés et que l'espace de recherche est fini\\
Complexité en temps &$O(b^{m})$&Mauvais si $m>d$. $m < \infty$\\
Complexité en espace&$O(bm)$&\\
Optimalité&Non&\\
\end{tabular}
\caption{Profondeur d'abord: propriétés}
\end{table}
\subsection{Profondeur limitée}
\label{sec:ch3profondeurlimite}
\begin{itemize}
\item Noeud le plus profond d'abord
\item Implémenté à l'aide d'une pile
\end{itemize}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Oui& Si $l \geq d$\\
Complexité en temps &$O(b^{l})$&\\
Complexité en espace&$O(bl)$&\\
Optimalité&Non&\\
\end{tabular}
\caption{Profondeur limitée: propriétés}
\end{table}
\subsection{Profondeur itérative}
\label{sec:ch3profondeuriter}
\begin{itemize}
\item Profondeur limitée, en itérant sur la profondeur
\item Avantage de la largeur d'abord (complet et optimal), complexité en espace linéaire de profondeur d'abord
\end{itemize}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Oui&\\
Complexité en temps &$O(b^{d})$&\\
Complexité en espace&$O(bd)$&\\
Optimalité&Oui&Si le coût de chaque action est 1. Peut être modifié pour le coût uniforme\\
\end{tabular}
\caption{Profondeur itérative: propriétés}
\end{table}
\subsection{Recherche bidirectionnelle}
\label{sec:ch3bidirectionnelle}
\begin{itemize}
\item Recherche simultanée depuis le départ et le but
\item Applicable seulement si on peut rechercher depuis le but
\end{itemize}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Oui&\\
Complexité en temps &$O(b^{d/2})$&\\
Complexité en espace&$O(b^{d/2})$&\\
Optimalité&Oui&\\
\end{tabular}
\caption{Recherche bidirectionnelle: propriétés}
\end{table}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "notes_de_cours"
%%% End:

211
chapitre3b.tex Normal file
View file

@ -0,0 +1,211 @@
\section{Chapitre 3: Recherche informée}
\label{sec:ch3}
Les algorithmes de recherche informée utilisent une heuristique pour choisir les meilleurs noeuds à visiter.
\subsection{Meilleur d'abord}
\label{sec:ch3meilleur}
\begin{itemize}
\item Implémenté par une file triée par une fonction d'évaluation $f(n)$
\item Fonction heuristique $h(n)$ qui estime le coût du chemin le plus court pour atteindre un état but $g$. $h(n) \geq 0$ et $h(G)=0 \forall g \in G$.
\end{itemize}
\subsection{Meilleur dabord gloutonne}
\label{sec:ch3meilleurgloutonne}
\begin{itemize}
\item $f(n)=h(n)$
\end{itemize}
Exemples d'heuristique:
\begin{itemize}
\item mesure de distance euclidienne,
\item distance de Manhattan.
\end{itemize}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Non&Possibilité de cycles. Oui, dans la version pour graphes\\
Complexité en temps &$O(b^m)$&Dans le pire cas\\
Complexité en espace&$O(b^m)$&\\
Optimalité&Non&Arrête à la première solution trouvée\\
\end{tabular}
\caption{Meilleur dabord gloutonne: propriétés}
\end{table}
\subsection{$A^{\star}$}
\label{sec:ch3astar}
\begin{itemize}
\item Identique à l'algorithme de la recherche avec coût uniforme, sauf pour la fonction $f(n)$
\item $f(n)=g(n)+h(n)$
\item $g(n)$: Coût du noeud de départ au noeud $n$.
\item $h(n)$: Coût estimé du noeud $n$ au but.
\item $f(n)$: Coût total estimé du noeud de départ au but en passant par $n$.
\end{itemize}
\begin{mydef}
\textbf{Heuristique admissible}: $h(n) \leq h^{\star}(n)$$h^{\star}(n)$ est le véritable coût de $n$ au but.
\end{mydef}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Oui&\\
Complexité en temps &$O((b^{\epsilon})^d)$&\\
Complexité en espace&$O((b^{\epsilon})^d)$&\\
Optimalité&Oui&Avec heuristique admissible et consistante pour les graphes\\
\end{tabular}
\caption{$A^{\star}$: propriétés}
\end{table}
\begin{mydef}
Consistance de $h(n)$: Soit le noeud $n$ et le successeur $n^{\prime}$ produit par l'action $a$, alors $h(n) \leq c(n,a,n^{\prime})+h(n^{\prime})$
\end{mydef}
\subsection{Preuves d'optimalité pour $a^{\star}$}
\label{sec:ch3optimastar}
\paragraph{Version pour arbres}
On a la frontière suivante:
\fbox{
\begin{minipage}{0.25\linewidth}
$B$,$n$,$\ldots$
\end{minipage}
}
\begin{itemize}
\item h est une heuristique admissible
\item G est un but optimal
\item B est un but sous-optimal
\end{itemize}
\begin{align}
\label{eq:astaroptimarbres}
f(n) &= g(n) + h(n)&&\\
&\leq g(n) + c(n,G) &&\text{, par l'hypothèse d'admissibilité}\\
&= g(G)&&\\
&< g(B)+h(B) &&\text{, car B est sous-optimal}\\
&= g(B)+0&&\\
&= f(B)&&\\
\implies f(n) &< f(B) &&\text{, n sera développé avant B}
\end{align}
G sera éventuellement dans la frontière, on aura alors
\fbox{
\begin{minipage}{0.25\linewidth}
$B$,$G$,$\ldots$
\end{minipage}
}
\paragraph{Version pour graphes}
On a la frontière suivante:
\fbox{
\begin{minipage}{0.25\linewidth}
$A$,$X_1$,$X_k$,$\ldots$
\end{minipage}
}
\begin{align}
\label{eq:astaroptimarbres}
h(n) &\leq c(n,a,n^{\prime}) + h(n^{\prime})&&\text{, Inégalité triangulaire}\\
g(n) + h(n) &\leq g(n) + \leq c(n,a,n^{\prime}) + h(n^{\prime})&&\\
f(n) &\leq f(n^{\prime}) &&\text{, La fonction d'évaluation ne décroit pas le long d'un chemin}\\
f(A) &\leq f(x_i) &&\forall i\\
f(A^{\prime}) &\geq f(x_i) \geq f(A) = g(A) + h(A)&&\\
g(A^{\prime})+h(A^{\prime})&\geq f(x_i) \geq g(A) + h(A)&&\\
g(A^{\prime})&\geq g(A) + h(A)-h(A^{\prime})&&\\
g(A^{\prime})&\geq g(A)
\end{align}
\subsection{Recheche à mémoire limitée}
\label{sec:ch3memoirelimitee}
\paragraph{$IDA^{\star}$}
\begin{itemize}
\item Profondeur itérative, la limite est une valeur de la fonction d'évaluation.
\item Limite $L_i = min(f(n))$ pour $n$$f(n)>L_{i-1}$.
\item Avantage: beaucoup moins de mémoire
\end{itemize}
\paragraph{$SMA^{\star}$}
\begin{itemize}
\item $A^{\star}$ avec une limite sur la mémoire.
\item Enlève les noeuds les plus mauvais, enregistre la valeur de la fonction d'évaluation au parent.
\end{itemize}
\begin{table}[h]
\centering
\begin{tabular}{p{4cm}|p{3cm}|p{4cm}}
Propriété&Valeur&Conditions\\
\hline
Complétude&Oui&Si solution atteignable\\
Complexité en temps &Peut être très long&\\
Complexité en espace&Mémoire allouée&\\
Optimalité&Oui&Si solution optimale atteignable\\
\end{tabular}
\caption{$SMA^{\star}$: propriétés}
\end{table}
\subsection{Fonctions heuristiques}
\label{sec:ch3fonctionsheuris}
\paragraph{Facteur de branchement effectif}
\begin{mydef}
Le facteur de branchement effectif $b^{\star}$ est la facteur de branchement d'un arbre uniforme de profondeur $d$ contenant $n+1$ noeuds.
\begin{equation}
\label{eq:facteurbranchement}
N+1 = \sum_{i=0}^{d}b^{\star}
\end{equation}
\end{mydef}
Plus $b^{\star} \rightarrow 1$, plus l'heuristique est efficace.
\paragraph{Dominance}
\begin{mydef}
Dominance de $h_2$ sur $h_1$:
\begin{equation}
\label{eq:dominanceheuristique}
h_2(n) \geq h_1(n) \forall n \implies h_2 \succ h_1
\end{equation}
\end{mydef}
\paragraph{Inventer une heuristique}
\begin{itemize}
\item Relaxer le problème
\item Le coût de la solution optimale doit être plus petit (admissibilité).
\item Tenir compte aussi de la consistance.
\end{itemize}
\paragraph{Génération automatique}
\begin{itemize}
\item Heuristique composite: $h(n)=max(h_1(n),\ldots,h_m{n})$
\item Bases de données de motifs: solutions pour des sous-problèmes
\end{itemize}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "notes_de_cours"
%%% End:

22
chapitre4.tex Normal file
View file

@ -0,0 +1,22 @@
\section{Chapitre 4: Au-delà de lexploration classique}
\label{sec:ch4}
\subsection{Amélioration itérative}
\label{sec:ch4amelioration}
\begin{itemize}
\item Espace de recherche: configuration complètes
\item On part d'une configutation complète et on itère pour améliorer la qualité de la solution (optimalité ou satisfaction de contraintes)
\item Exemple: problème des n reines
\end{itemize}
\subsection{Escalade}
\label{sec:ch4escalade}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "notes_de_cours"
%%% End:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 170 KiB

View file

@ -41,6 +41,7 @@
rightsub = \frqq%
]{dirtytalk}
\newtheorem{definition}{Définition}
\usepackage[unboxed]{cwpuzzle}
\usepackage{array}
\usepackage{mathtools,amssymb}
\usepackage{float}
@ -69,7 +70,10 @@
\usepackage{cprotect} % Pour pouvoir personaliser la légende des figures
\usepackage[normalem]{ulem}
\useunder{\uline}{\ul}{}
%----------------------------------------------------------------
\usepackage{enumitem}
\setlist[itemize,1]{label={$\bullet$}}
\setlist[itemize,2]{label={$\star$}}
% ----------------------------------------------------------------
%graph-colors------------------
@ -91,6 +95,9 @@
% Le package newclude mis en commentaire permet d'introduire une * pour éviter le saut de page entre les section
\include{chapitre1}
\include{chapitre2}
\include{chapitre3a}
\include{chapitre3b}
\include{chapitre4}
% Ajouter les autres chapitres au besoin
\bibliography{bibliographie}