git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1002 331e1502-861f-0410-8da2-ba01fb791d7f
216 lines
8.5 KiB
TeX
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}
|