\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 d’abord 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 d’abord 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)$ où $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$ où $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:
