ajout chapitre 3 et début chapitre 4
This commit is contained in:
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 |
|
@ -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
243
chapitre3a.tex
Normal 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
211
chapitre3b.tex
Normal 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 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:
|
22
chapitre4.tex
Normal file
22
chapitre4.tex
Normal file
|
@ -0,0 +1,22 @@
|
|||
\section{Chapitre 4: Au-delà de l’exploration 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 |
|
@ -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}
|
||||
|
|
Loading…
Add table
Reference in a new issue