paradiseo/utilities/trunk/practices/paradiseo_practices_0208/lesson1/lesson1.tex
legrand 22c6962aa2 added practices to version control
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1002 331e1502-861f-0410-8da2-ba01fb791d7f
2008-02-25 13:56:53 +00:00

216 lines
8.5 KiB
TeX

\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}