\documentclass[pdf]{beamer}
\usepackage[square,sort,numbers]{natbib}% Pour pouvoir utiliser une bibliographie externe
\usepackage[french]{babel}	% Pour préciser la langue du document
\usepackage[utf8]{inputenc}	% Précise comment le texte est saisi : cela permet de tapper directement les accents
\usepackage[T1]{fontenc}	% Précise la façon dont le document actuel est encodé
\usepackage{setspace}
\usepackage{datetime}

\mode<presentation>
%% preamble
\title[Algo. génétique et SàBC]{Algorithmes génétiques et systèmes à base de connaissances}
\subtitle{Présentation dans le cadre du cours GLO-7001}
\author{François Pelletier}
\date{\today}

\bibliographystyle{plainnat} % Pour changer le style de bibliographie
\addto{\captionsfrench}{\renewcommand{\refname}{Bibliographie}} % Comme le langage défini est le français, "Références" aurait été le titre par défaut pour la bibliographie

\usepackage{amsmath,amsthm,amssymb,amsfonts}	% Pour pouvoir inclure certains symboles et environnements mathématiques
\usepackage{enumerate} % Pour mieux gérer la commande enumerate dans les sections
\usepackage{graphicx}	% Pour inclure des images
\usepackage{color}	% Pour inclure du texte en couleur
\usepackage{units}	% Pour pouvoir tapper les unités correctement
\usepackage{pgf,tikz}	% Utilisation du module tikz, qui permet de tracer des belles images
\usepackage{hyperref}
\usepackage{listings}
\usetikzlibrary{shapes.geometric, arrows} % Quand on exporte une image GeoGebra, on a besoin de préciser cela

\usecolortheme{dolphin}
\useoutertheme{infolines}

\setbeamertemplate{headline}[default]

% logo of my university
\titlegraphic{\includegraphics[width=2cm]{logo}
}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\begin{frame}
  \tableofcontents
\end{frame}

\section{Introduction}
\label{sec:intro}

\begin{frame}
  \frametitle{Historique des algorithmes génétiques}
  \begin{itemize}
  \item Inspirés de la théorie de l'évolution de Charles Darwin (1859): On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life.
  \item Survie due à la capacité d'adaptation. \cite{fogel1997introduction}
  \item Rechenberg (1965, 1973): Stratégies d'évolution, optimisation de fonctions réelles.
  \item Fogel, Owens and Walsh(1966): Programmation évolutionnaire, automate avec un nombre fini d'états.
  \item John Holland (1975): Adaptation in Natural and Artificial System \cite{holland1992adaptation}
  \item Début de la popularité avec David Goldberg (1989): Algorithms in Search, Optimization, and Machine Learning \cite{goldberg1989genetic}
  \end{itemize}
\end{frame}

\subsection{Objectifs de l'algorithme}
\label{sec:objalgo}

\begin{frame}
  \frametitle{Objectifs de l'algorithme}
  Il y a deux familles d'objectifs poursuivis par les chercheurs en algorithmique génétique:
  \begin{enumerate}
  \item Mathématiques:
    \begin{itemize}
    \item Problème d'optimisation combinatoire ou d'optimisation mathématique d'une fonction réelle.
    \item En autre mots: trouver les meilleures valeurs d'entrées d'une fonction pour obtenir la meilleur valeur de sortie.
    \end{itemize}
  \item Biologiques
    \begin{itemize}
    \item Modéliser et reproduire l'évolution humaine
    \item Étude formelle des phénomènes d'adaptation dans la nature (Holland)
    \end{itemize}
  \end{enumerate}
\end{frame}

\subsection{Description de l'algorithme}
\label{sec:descalgo}

\begin{frame}
  \frametitle{Étapes de l'algorithme}
  \begin{enumerate}
  \item Initialisation: On ititialise une population formée de plusieurs individus ayant un ou plusieurs chromosomes.
  \item Évaluation: On évalue une fonction objectif, la valeur sélective sur chaque individu de la population.
  \item Sélection: Selon la fonction de valeur sélective, on sélectionne les parents qui se reproduisent.
  \item Croisement: Sectionnement des chromosomes en deux ou plusieurs sections et reconstitution de nouveaux chromosomes.
  \item Mutation: Application de mutations aléatoires sur les descendants.
  \item Remplacement: remplacement par la nouvelle génération de descendants, incluant parfois aussi des parents (élitisme).
  \end{enumerate}
\end{frame}

\begin{frame}
  \frametitle{Espace de recherche}
  \begin{itemize}
  \item Espace des solutions candidates (génotypes) pour un problème donné
  \item L'algorithme génétique peut éviter les solutions locales
  \item Paysage adaptatif: relations entre des solutions candidates et la valeur sélective à un instant donné
    \begin{figure}
      \centering
      \includegraphics[width=2.5in]{images/semaine08/fitness_landscape}
      \caption{Paysage adaptatif}
      \label{fig:paysageadapt}
    \end{figure}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Diagramme de flux}
  \begin{figure}
      \centering
      \includegraphics[width=2in]{images/semaine08/flowchart_genetic}
      \caption{Diagramme de flux}
      \label{fig:paysageadapt}
    \end{figure}  
\end{frame}

\section{Utilisations}
\label{sec:util}

\begin{frame}
  \frametitle{Amélioration d'images}
  Une première utilisation des algorithmes génétiques est l'amélioration d'images issues de la vision artificielle \cite{Paulinas_asurvey}.
\end{frame}

\subsection{Amélioration d'images}
\label{sec:amelimag}

\begin{frame}
  \frametitle{Amélioration d'images: Types d'améliorations}
  \begin{itemize}
  \item Suppression du bruit
  \item Amplification des contrastes de l'image
  \item Amplification du niveau de détails
  \item Détection de bord
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Amélioration d'images: Utilisations}
  \begin{itemize}
  \item Construction de nouveaux filtres
  \item Optimisation des paramètres de filtres existants
  \item Séquence optimale de filtres
  \end{itemize}
  Weighted vector directional filters
  \begin{itemize}
  \item Ne peuvent converger vers un optimum global
  \item On optimise alors avec un algorithme génétique
  \end{itemize}
\end{frame}

\subsection{Segmentation d'images}
\label{sec:segmentationimages}

\begin{frame}
  \frametitle{Segmentation d'images satellite}
  Application concrète dans le domaine de la télédétection \cite{tang2000color}
  \begin{figure}
      \centering
      \includegraphics[width=2.5in]{images/semaine08/remotesensing}
      \label{fig:paysageadapt}
    \end{figure}
  \end{frame}

  \subsection{Enchères en ligne}
\label{sec:enchlign}

\begin{frame}
  \frametitle{Enchères en ligne}
  \begin{itemize}
  \item Publicité basée sur des mots clés
  \item Budget initial limité
  \item Prix maximum contraint
  \item On doit pouvoir optimiser nos achats très rapidement (secondes)
  \end{itemize}
\end{frame}

\subsection{Flappy Bird}
\label{sec:flappy}

\begin{frame}
  \frametitle{Résoudre automatiquement le jeu Flappy Bird}
  \begin{figure}
      \centering
      \includegraphics[width=2.5in]{images/semaine08/flappy_06}
      \caption{Réseau de neurones}
      \label{fig:paysageadapt}
    \end{figure}
  Référence: Machine Learning Algorithm for Flappy Bird using Neural Network and Genetic Algorithm \cite{mlaflappy}
\end{frame}

\begin{frame}
  \frametitle{Flappy Bird: Structure du réseau de neurones}
  \begin{itemize}
  \item Couche d'entrée avec deux neurones
    \begin{itemize}
    \item Distance horizontale vers l'espacement le plus près
    \item Différence de hauteur avec l'espacement le plus près
    \end{itemize}
  \item Couche cachée de 6 neurones
  \item Sortie avec un neurone: Si la sortie est supérieure à 0,5 alors \textbf{flap}.
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Flappy Bird: Algorithme génétique: entraîner et améliorer le réseau de neurones}
  \begin{itemize}
  \item Générer une population de 10 oiseaux avec des réseaux de neurones aléatoires associés
  \item Faire jouer les 10 unités simultanément au jeu avec leur propre réseau de neurones
  \item Calculer la fonction de valeur sélective pour chaque oiseau: (distance totale voyagée) - (distance du prochain écart)
  \item Quand tous les oiseaux sont morts, appliquer la stratégie de remplacement
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Flappy Bird: Stratégie de remplacement}
  \begin{itemize}
    \item Trier les oiseaux par leur valeur sélective
    \item Prendre les 4 meilleurs et les passer à la génération suivante sans possibilité de mutation (élitisme)
    \item Créer 1 descendant avec les 2 meilleurs
    \item Créer 3 descendants avec 2 gagnants sur les 4 meilleurs
    \item Créer 2 copies de 2 gagnants sur les 4 meilleurs
    \item Appliquer des mutations aléatoires sur tous les descendants
    \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{}
  \begin{figure}
      \centering
      \includegraphics[width=3.5in]{images/semaine08/flappy_ss}
      \caption{Capture: Résolution du jeu Flappy Bird}
      \label{fig:paysageadapt}
    \end{figure}
\end{frame}

\begin{frame}[allowframebreaks]
  \bibliography{bibliopresentation2}
\end{frame}

\begin{frame}
  \include{copyright}
\end{frame}

\end{document}