\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage{epsf}
\usepackage{amssymb}
\usepackage{here}
\usepackage{comment}
\usepackage{graphicx}

\topmargin -2.5cm
\textheight 25,5cm
\textwidth 16cm
\oddsidemargin 0cm
\evensidemargin 0cm


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fichier entete
%\input /usr/local/home/gisEns/fseynhae/Ens/Entete.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{document}

\textbf{ParadisEO Practices}  {\copyright Franck Seynhaeve,
Jean-Charles Boisson, Thomas Legrand} \Large{\textbf{\\\\
Lesson 1: Install ParadisEO and the practices}}

\normalsize

 \vspace{-0,3cm}

\section{The ParadisEO platform}

    \medskip

    ParadisEO\footnote{http$\,:$//paradiseo.gforge.inria.fr/} (PARallel and DIStributed Evolving Objects) is a white-box
    object-oriented framework dedicated to the flexible design of metaheuristics.
    Based on EO\footnote{\tt http$\,:$//eodev.sourceforge.net/} (Evolutionary Computation Framework),
    this template-based,
    ANSI-C++ compliant computation library is portable across both Windows
    system and sequential platforms (Unix, Linux, MacOS, etc.).

    \smallskip
    ParadisEO can be used under several environments as the build process (CMake)
    is able to generate:
    \begin{itemize}
       \item[$\bullet$] Visual Studio 8 2005 (Win32 + Win64) projects
           \item[$\bullet$] Visual Studio 7 .NET 2003 projects
           \item[$\bullet$] Visual Studio 7 and 6 projects
           \item[$\bullet$] NMake Makefiles
           \item[$\bullet$] MinGW Makefiles
           \item[$\bullet$] Borland Makefiles
           \item[$\bullet$] KDevelop projects
           \item[$\bullet$] Unix Makefiles
           \item[$\bullet$] Xcode Projects
           \item[$\bullet$] MSYS Makefiles
           \item[$\bullet$] WMake Makefiles
    \end{itemize}

    \smallskip
    Paradiseo is composed of several packages that constitute a global framework.

    \begin{center}
    \end{center}

    \begin{itemize}
        \item[$\bullet$] Paradiseo-EO provides tools for the development of population-based metaheuristic:
        \begin{itemize}
               \item[$\ast$] Genetic algorithm
               \item[$\ast$] Genetic programming
               \item[$\ast$] Particle Swarm Optimization
               \item[$\ast$] ...
        \end{itemize}
        \item[$\bullet$] Paradiseo-MO provides tools for the development of single solution-based metaheuristics:
        \begin{itemize}
           \item[$\ast$] Hill-Climbing
                   \item[$\ast$] Tabu Search
                   \item[$\ast$] Simulated annealing
                   \item[$\ast$] Incremental evaluation, partial neighbourhood
                   \item[$\ast$] ...
        \end{itemize}
        \item[$\bullet$] Paradiseo-MOEO provides tools for the design of Multi-objective metaheuristics:
        \begin{itemize}
           \item[$\ast$] MO fitness assignment shemes (the ones used in NSGA-II, IBEA ...)
                   \item[$\ast$] MO diversity assignment shemes (sharing, crowding)
                   \item[$\ast$] Elitism
                   \item[$\ast$] Performance metrics (contribution, entropy ...)
                   \item[$\ast$] Easy-to-use standard evolutionary algorithms (NSGA-II, IBEA ...)
                   \item[$\ast$] ...
        \end{itemize}
       \item[$\bullet$] Paradiseo-PEO provides tools for the design of parallel and distributed metaheuristics:
        \begin{itemize}
               \item[$\ast$] Parallel evaluation
                   \item[$\ast$] Parallel evaluation function
                   \item[$\ast$] Island model
                   \item[$\ast$] Cellular model
        \end{itemize}
    \end{itemize}

    \smallskip
    Furthermore, Paradiseo also introduces tools for the design of distributed, hybrid and cooperative models:
    \begin{itemize}
           \item[$\bullet$] High level hybrid metaheuristics: coevolutionary and relay model
           \item[$\bullet$] Low level hybrid metaheuristics: coevolutionary and relay model
    \end{itemize}



\section{Installation}

\subsection{ParadisEO}

    The practices require ParadisEO to be installed on your
    computer. You can easily process to the installation:

    \begin{itemize}
        \item[$\bullet$] Make sure to have the following tools
         available in your environment:

          \hspace{1cm}$\vartriangleright$ {\tt CMake}
          \\\hspace*{1cm}$\vartriangleright$ {\tt Tar} or a similar extractor

       \item[$\bullet$] Download ParadisEO (choose the {\tt tar.gz} file)
       from:
          \\\hspace*{1cm}$\vartriangleright$ {\tt http$\,:$//www2.lifl.fr/OPAC/Paradiseo/licence/FrmDownload.php}

       \item[$\bullet$] Extract the content of the archive:
           \\\hspace*{1cm}$\vartriangleright$ Put the archive {\tt
           paradiseo-ix86-1.0.tar.gz} in the directory of your
           choice. Let's suppose you put it in  \textbf{{\tt
           /home/me/software}}
           \\\hspace*{1cm}$\vartriangleright$ Extract it by entering
    the following line in a terminal: {\tt tar xzf paradiseo-ix86-1.0.tar.gz}

     \item[$\bullet$] Install it:
           \\\hspace*{1cm}$\vartriangleright$ {\tt  bash installParadiseo.sh} or {\tt  sh
            installParadiseo.sh} if your shell is a "sh" one
            \\\hspace*{1cm}$\vartriangleright$ \textbf{Select your generator (Unix Makefiles recommended) }
            \\\hspace*{1cm}$\vartriangleright$ \textbf{Select the minimum installation mode by choosing the \emph{basic install} }


    \end{itemize}


\subsection{The archive dedicated to the practices}

    To start with the practices, you have to install the archive
    called {\tt paradiseo\_practices\_0208.tgz} that you have been
    given. This archive is also available for download at
    {\tt http$\,:$//paradiseo.gforge.inria.fr}.\\\\
    \textbf{ Let's suppose you have installed ParadisEO
    into the {\tt /home/me/software} directory. Each time
    it appears, you are to replace this path with the one
    corresponding to your ParadisEO installation directory.
    }
    \\\\When the archive has been extracted, please go in the
    {\tt practices} directory and edit the {\tt install.cmake}
    file:

    \begin{itemize}
       \item[$\bullet$] Fill the {\tt EO\_SRC\_DIR} variable with the path to ParadisEO-EO :

          \hspace{1cm}{\tt /home/me/software/ParadisEO/paradiseo-eo}
       \item[$\bullet$] Fill the {\tt EO\_BIN\_DIR} variable with the path to
       ParadisEO-EO build directory :

          \hspace{1cm}{\tt /home/me/software/ParadisEO/paradiseo-eo/build}
       \item[$\bullet$] Fill the {\tt MO\_SRC\_DIR} variable with the path to ParadisEO-MO :

          \hspace{1cm}{\tt /home/me/software/ParadisEO/paradiseo-mo}
       \item[$\bullet$] Fill the {\tt MO\_BIN\_DIR} variable with the path to
       ParadisEO-MO build directory :

          \hspace{1cm}{\tt /home/me/software/ParadisEO/paradiseo-mo/build}
    \end{itemize}

    \medskip
    Then, go in the {\tt build} directory and run :

    \hspace{1cm}{\tt cmake ../}

    \medskip
    You can now compile the practices using: {\tt make}


\section{Archive content}

    At the top level of the {\tt practices} directory, you must have:
    \begin{itemize}

       \item[$\bullet$] {\bf tsp/src}: Contains the sources required to solve the TSP
       problem using ParadisEO. The associated benchmarks are in the
       {\bf benchs} directory.

         \item[$\bullet$] {\bf lesson1}: ParadisEO installation practice, contains {\tt lesson1.pdf}.

        \item[$\bullet$] {\bf lesson2}: Contains an implementation of the Hill-Climbing
       {\tt hill\_climbing.cpp} and the corresponding tutorial {\tt lesson2.pdf}.

         \item[$\bullet$] {\bf lesson3}: Contains an implementation of a tabu
        search {\tt tabu\_search.cpp} and the corresponding tutorial {\tt lesson3.pdf}.

       \item[$\bullet$] {\bf lesson4}: Contains an implementation of the
      Simulated Annealing {\tt simulated\_annealing.cpp} and the corresponding
      tutorial {\tt lesson4.pdf}.

       \item[$\bullet$] {\bf lesson5}: Contains an implementation of a
      genetic algorithm {\tt gen\_algo.cpp} .

        \item[$\bullet$] {\bf build}: Contains the built targets and
       the executables (subdirectories {\bf lesson1},
        {\bf lesson2}, {\bf lesson3}, {\bf lesson4} and {\bf lesson5}).

    \end{itemize}

\end{document}
