ift7020-notes-de-cours/chapitre5.tex
2018-02-27 23:42:59 -05:00

127 lines
4.4 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\section{Chapitre 5: Structures traitables}
\label{sec:ch5}
\textbf{Structure traitable}: propriétés d'un problème qui garantissent une résolution en temps polynomial.
\paragraph{Éviter un retour arrière}
\begin{itemize}
\item Heuristique qui ne fait que de bons choix
\item Filtrage assez fort pour éliminer tous les mauvais choix
\end{itemize}
\subsection{Graphe de contraintes}
\begin{itemize}
\item Problème de satisfaction binaire
\item Variable:noeud, Contrainte:arête
\item \textbf{Arbre}: graphe acyclique
\item \textbf{Arbre orienté}: possède une racine, chaque noeud a des enfants et un parent (sauf le noeud racine)
\item Hauteur:
\begin{itemize}
\item feuille: 0
\item autres: maximum des hauteurs des enfants + 1
\end{itemize}
\item Théorème: Arbre + Cohérence de domaine = Aucun retour arrière
\item Sous-ensemble de contraintes forment un arbre = filtrage fort. Dans le cas des horaires de travail, la structure en arbre donne des horaires valides. Il reste à valider les autres contraintes.
\end{itemize}
Modèle avec deux séquences de variables:
\begin{align}
\mathtt{dom}(X_i) &= \lbrace 0,1 \rbrace \forall X_1, \ldots, X_n\\
\mathtt{dom}(Y_i) &= \lbrace 0,1,2 \rbrace \forall Y_1, \ldots, Y_n\\
X_i = 1 &\Leftrightarrow Y_i=1 et Y_i \leq Y_{i+1}
\end{align}
\paragraph{Hypergraphes de contraintes}
Tuple $(V,E)$
\begin{itemize}
\item $V$: ensemble de noeuds: variables du problème
\item $E$: ensemble d'hyperarêtes: portées des contraintes
\item Décomposition de contrainte: arbre arithmétique
\end{itemize}
\begin{figure}[H]
\centering
\includegraphics[width=6cm]{ch5hypergraph}
\caption{Hypergraphe}
\label{fig:ch5hypergraphe}
\end{figure}
\subsection{Automate}
Tuple $(\Sigma,Q,q_0,F,T)$
\begin{itemize}
\item $\Sigma$ : alphabet
\item $Q$: Ensemble d'états
\item $q_0$: État initial
\item $F \subset Q$: États finaux
\item $T \subset Q \times \Sigma \times Q$: Un ensemble de transitions
\end{itemize}
Une séquence de caractères $c_1, \ldots, c_n$ est reconnue par l'automate si $\exists q_1, \ldots, q_n t.q. (q_{i-1},c_i,q_i) \in T \wedge q_n \in F$.
\paragraph{Contrainte \textsc{Regular}}
\begin{itemize}
\item Comprend une séquence de variable et un automate
\item Un algorithme peut appliquer la cohérence de domaine
\item Peut aussi être encodée avec une structure en forme d'arbre \ref{fig:arbreregular}
\end{itemize}
\paragraph{Encoder avec des contraintes}
\begin{figure}[H]
\centering
\includegraphics[width=14cm]{tableau_regular}
\caption{Structure d'arbre pour \textsc{Regular}}
\label{fig:arbreregular}
\end{figure}
\begin{itemize}
\item $dom(x_i) = \Sigma$
\item $n+1$ variables $Q_0,\ldots,Q_n$
\item \begin{itemize}
\item $dom(Q_0)=\lbrace q_o \rbrace$
\item $dom(Q_i)=Q, 0<i<n$
\item $dom(Q_n)=F$
\item $\textsc{Tableau}(Q_{i-1},X_i,Q_i) \in T$
\end{itemize}
\end{itemize}
\paragraph{Ordre lexicographique}
$X_1,\ldots,X_n$ est lexicographiquement plus petite ($\preceq$) que $Y_1,\ldots,Y_n$ si $\exists P t.q. X_P < Y_P \wedge X_i=Y_i \mid i < P$.
La contrainte lexicographique s'écrit
\begin{align}
C(X_i,Y_i,P) \Leftrightarrow (i < P \Rightarrow X_i = Y_i) \wedge (i=O \Rightarrow X_i < Y_i) \\
i \leq P \Rightarrow X_i \leq Y_i
\end{align}
\subsection{Largeur d'arbre}
\textbf{Largeur d'arbre}: permet de dire à quel point une structure est similaire à un arbre. Lorsque la largeur est bornée par une constante, le problème peut être résolu en temps polynomial.
\textbf{Décomposition en arbre}: graphe de contraintes $G \rightarrow $ arbre $T$ de la façon suivante: Si un noeud dans G se trouve à deux endroits dans T, il doit également se trouver sur tout le chemin reliant un endroit à lautre. Minimiser le nombre de noeuds de $G$ par noeud de $T$.
\textbf{Largeur d'arbre}: Cardinalité du plus grand ensemble - 1
\paragraph{Largeur d'arbre bornée par $k$}
Chaque noeud devient un problème de résolution de contraintes. Une contrainte \textsc{Tableau} par arête de $T$ avec une colonne par noeud contenant les tuples de solution valides. On garde les lignes compatibles.
Cardinalité du plus grand domaine bornée par $d$: La complexité d'un sous-problème est $\mathcal{O}(d^{k+1})$. La contrainte tableau a au plus $d^{k+2}$ entrées. L'arbre aura au plus $n$ noeuds. Le problème est résolu en $\mathcal{O}(n)$
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "notes_de_cours"
%%% End: