diff --git a/doc/_minted-rapport/0BBFED1F8FA73396EB005C2D20181F21F5367203DB9C5C29E728CCB221C2B2CA.pygtex b/doc/_minted-rapport/0BBFED1F8FA73396EB005C2D20181F21F5367203DB9C5C29E728CCB221C2B2CA.pygtex
new file mode 100644
index 0000000000000000000000000000000000000000..acba0b135815c5839d24f8e5818a9308b4a69f4b
--- /dev/null
+++ b/doc/_minted-rapport/0BBFED1F8FA73396EB005C2D20181F21F5367203DB9C5C29E728CCB221C2B2CA.pygtex
@@ -0,0 +1,4 @@
+\begin{Verbatim}[commandchars=\\\{\}]
+	\PYG{k}{let} \PYG{n}{roue} \PYG{o}{=} \PYG{o}{[}\PYG{l+s+sc}{\PYGZsq{} \PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}A\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}B\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}C\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}D\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}E\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}F\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}G\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}H\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}I\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}J\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}K\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}L\PYGZsq{}}\PYG{o}{;}
+	\PYG{l+s+sc}{\PYGZsq{}M\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}N\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}O\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}P\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}Q\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}R\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}S\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}T\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}U\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}V\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}W\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}X\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}Y\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}Z\PYGZsq{}}\PYG{o}{]}
+\end{Verbatim}
diff --git a/doc/_minted-rapport/2948F96AAE53931596E74284E4F762CBF5367203DB9C5C29E728CCB221C2B2CA.pygtex b/doc/_minted-rapport/2948F96AAE53931596E74284E4F762CBF5367203DB9C5C29E728CCB221C2B2CA.pygtex
deleted file mode 100644
index 344a06560f1d953f881d38a932f70cf3fdcc1ccd..0000000000000000000000000000000000000000
--- a/doc/_minted-rapport/2948F96AAE53931596E74284E4F762CBF5367203DB9C5C29E728CCB221C2B2CA.pygtex
+++ /dev/null
@@ -1,4 +0,0 @@
-\begin{Verbatim}[commandchars=\\\{\}]
-	\PYG{k}{let} \PYG{n}{roue} \PYG{o}{=} \PYG{o}{[}\PYG{l+s+sc}{\PYGZsq{} \PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}A\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}B\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}C\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}D\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}E\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}F\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}G\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}H\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}I\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}J\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}K\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}L\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}M\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}N\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}O\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}P\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}Q\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}R\PYGZsq{}}\PYG{o}{;}
-		\PYG{l+s+sc}{\PYGZsq{}S\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}T\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}U\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}V\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}W\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}X\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}Y\PYGZsq{}}\PYG{o}{;}\PYG{l+s+sc}{\PYGZsq{}Z\PYGZsq{}}\PYG{o}{]}
-\end{Verbatim}
diff --git a/doc/rapport.pdf b/doc/rapport.pdf
index 1169fd5938da9bd3196f4557da6070ad2e5c8e36..3cba27404a659e213906a52617aab1e1545ab82d 100644
Binary files a/doc/rapport.pdf and b/doc/rapport.pdf differ
diff --git a/doc/rapport.tex b/doc/rapport.tex
index 6f210e047bef8069659d98417ed954913481c32a..4e6c3b072c1e7f90259350395de5ed682da064ba 100644
--- a/doc/rapport.tex
+++ b/doc/rapport.tex
@@ -12,6 +12,7 @@
 \usepackage{graphicx}
 \usepackage[a4paper]{geometry}
 \usepackage{minted}
+\usepackage{listings}
 
 \hypersetup{
 	colorlinks,
@@ -56,15 +57,40 @@ la première ligne comportera un entier n donnant le nombre d'antennes disponibl
 la deuxième ligne comportera le message lui-même.\\
 
 Le programme affichera donc une suite de commandes permettant d'émettre le message.
+\clearpage
+
+\section{Architecture du projet}
+
+\begin{lstlisting}
+> ipf_s2/
+| > doc/
+|   | rapport.pdf
+|   | rapport.tex
+| > src/
+|   | main.ml
+|   | tests.ml
+| [> bin/]
+|   | main.out
+|   | tests.out
+| Makefile
+| README.md
+| (...)
+\end{lstlisting}
+
+\paragraph{} Les dossiers entre crochets \verb|[]| sont des dossiers créés par la compilation (partielle ou complète), les noms entre parenthèses \verb|()| sont là pour indiquer que des dossiers/fichiers ne sont pas précisés.
+
 \section{Phase 1}
+\subsection{Objectifs}
+
+Dans cette phase nous avons accès à une seule antenne, on analyse uniquement a seconde entrée standard.
 
 \subsection{Fonctionnement général du script}
 
 Le principe est le suivant : je défini la roue comme une liste des caractères (en majuscule) : 
 
 \begin{minted}{ocaml}
-	let roue = [' ';'A';'B';'C';'D';'E';'F';'G';'H';'I';'J';'K';'L';'M';'N';'O';'P';'Q';'R';
-		'S';'T';'U';'V';'W';'X';'Y';'Z']
+	let roue = [' ';'A';'B';'C';'D';'E';'F';'G';'H';'I';'J';'K';'L';
+	'M';'N';'O';'P';'Q';'R';'S';'T';'U';'V';'W';'X';'Y';'Z']
 \end{minted}
 
 Puis, je demande à l'utilisateur le message à traduire grâce aux fonctions [parse\_input ()] et [split\_string s] fournies par le professeur.\\
@@ -84,8 +110,26 @@ La fonction \textbf{commande} agit par récurrence sur la liste de caractères l
 
 
 \section{Phase 2}
+\subsection{Objectifs}
+
+Le changement de place d'une roue ('N' ou 'P') prennant 3 secondes et la sélection d'une antenne ('Sn' où n est le numéro de l'antenne à activer) prennant 1 seconde, l'objectif devient donc d'optimiser le temps de calcul pour l'envoi d'un message. (l'émission 'E' d'une commande à une antenne prend 5s)\\
+
+La première entrée sera le nombre d'antennes disponibles et la seconde entrée restera le message à envoyer (en majuscule).\\
+
+
+
 \subsection{Fonctionnement général du script}
 
+J'introduit d'abord la fonction [\textbf{quelle\_roue} l c i] où l est la liste de roue actuelle, c le caractère à traduire et i l'indice de la roue sur laquelle on est à l'entrée de la fonction. Cette fonction choisi dans l la roue qui donne le plus petit nombre de cran à tourner pour avoir c peu importe le sens.\\
+
+Une autre fonction à introduire est la fonction [\textbf{tourner\_list} c n i l] qui en utilisant \textbf{tourne} de la phase 1 tourne n fois la roue d'indice i dans le sens de c ('N' ou 'P') dans l.\\
+
+Pour cette phase j'ai donc créé la fonction [\textbf{commande2} (n,m)] où n est le nombre d'antennes et m le message à traduire. Cette fonction crée une liste de n roues en phase initiale puis fait le calcul par la récurrence décrite ci-dessous : \\ 
+
+\begin{itemize}
+	\item à la première itération, on choisi la roue à utiliser grâce à la fonction \textbf{quelle\_roue} on traduit le premier caractère de la liste en sa commande (une string) grâce à la fonction \textbf{translate} de la phase 1 puis tourne la roue choisie dans la liste de roues dans le bon sens et le bon nombre de cran avec la fonction \textbf{tourner\_list}.
+	\item à la $n^{ieme}$ iteration, le $n^{ieme}$ caractère est traduit en sa commande (en une string) de même que pour la première itération en utilisant la liste de roues obtenue après la $(n-1)^{ieme}$ itération puis envoie à l'itération suivant la liste de roues bien modifiée.
+\end{itemize}
 
 
 \section{Idées d'optimisation du code}