New doc is made

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@742 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
jboisson 2007-10-23 13:38:14 +00:00
commit 25cf44c291
296 changed files with 28291 additions and 0 deletions

Binary file not shown.

View file

@ -0,0 +1,39 @@
all: clean refman.dvi
ps: refman.ps
pdf: refman.pdf
ps_2on1: refman_2on1.ps
pdf_2on1: refman_2on1.pdf
refman.ps: refman.dvi
dvips -o refman.ps refman.dvi
refman.pdf: refman.ps
ps2pdf refman.ps refman.pdf
refman.dvi: refman.tex doxygen.sty
echo "Running latex..."
latex refman.tex
echo "Running makeindex..."
makeindex refman.idx
echo "Rerunning latex...."
latex refman.tex
latex_count=5 ; \
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
latex refman.tex ;\
latex_count=`expr $$latex_count - 1` ;\
done
refman_2on1.ps: refman.ps
psnup -2 refman.ps >refman_2on1.ps
refman_2on1.pdf: refman_2on1.ps
ps2pdf refman_2on1.ps refman_2on1.pdf
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf

View file

@ -0,0 +1,40 @@
\section{ParadisEO-MOMovingObjects Class List}
Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList}
\item\contentsline{section}{{\bf EmptySelection} (Special class that describes the case of no selection )}{\pageref{class_empty_selection}}{}
\item\contentsline{section}{{\bf moAlgo$<$ EOT $>$} (Description of an algorithm of the paradiseo-mo library )}{\pageref{classmo_algo}}{}
\item\contentsline{section}{{\bf moAspirCrit$<$ M $>$} (Description of the conditions in which a tabu move could be accepted )}{\pageref{classmo_aspir_crit}}{}
\item\contentsline{section}{{\bf moBestImprSelect$<$ M $>$} (One of the possible \doxyref{moMoveSelect}{p.}{classmo_move_select} )}{\pageref{classmo_best_impr_select}}{}
\item\contentsline{section}{{\bf moComparator$<$ EOT $>$} (Template for classes which need to compare two EOT and indicate if the first is \char`\"{}better\char`\"{} than the second )}{\pageref{classmo_comparator}}{}
\item\contentsline{section}{{\bf moCoolingSchedule} (This class gives the description of a cooling schedule )}{\pageref{classmo_cooling_schedule}}{}
\item\contentsline{section}{{\bf moExponentialCoolingSchedule} (One of the possible \doxyref{moCoolingSchedule}{p.}{classmo_cooling_schedule} )}{\pageref{classmo_exponential_cooling_schedule}}{}
\item\contentsline{section}{{\bf moFirstImprSelect$<$ M $>$} (One possible \doxyref{moMoveSelect}{p.}{classmo_move_select} )}{\pageref{classmo_first_impr_select}}{}
\item\contentsline{section}{{\bf moFitComparator$<$ EOT $>$} (Comparison according to the fitness )}{\pageref{classmo_fit_comparator}}{}
\item\contentsline{section}{{\bf moFitSolContinue$<$ EOT $>$} (One possible stop criterion for a solution-based heuristic )}{\pageref{classmo_fit_sol_continue}}{}
\item\contentsline{section}{{\bf moGenSolContinue$<$ EOT $>$} (One possible stop criterion for a solution-based heuristic )}{\pageref{classmo_gen_sol_continue}}{}
\item\contentsline{section}{{\bf moHC$<$ M $>$} (Hill Climbing (HC) )}{\pageref{classmo_h_c}}{}
\item\contentsline{section}{{\bf moHCMoveLoopExpl$<$ M $>$} (Iterative explorer used by a \doxyref{moHC}{p.}{classmo_h_c} )}{\pageref{classmo_h_c_move_loop_expl}}{}
\item\contentsline{section}{{\bf moILS$<$ M $>$} (Iterated Local Search (ILS) )}{\pageref{classmo_i_l_s}}{}
\item\contentsline{section}{{\bf moImprBestFitAspirCrit$<$ M $>$} (One of the possible \doxyref{moAspirCrit}{p.}{classmo_aspir_crit} )}{\pageref{classmo_impr_best_fit_aspir_crit}}{}
\item\contentsline{section}{{\bf moItRandNextMove$<$ M $>$} (One of the possible \doxyref{moNextMove}{p.}{classmo_next_move} )}{\pageref{classmo_it_rand_next_move}}{}
\item\contentsline{section}{{\bf moLinearCoolingSchedule} (One of the possible \doxyref{moCoolingSchedule}{p.}{classmo_cooling_schedule} )}{\pageref{classmo_linear_cooling_schedule}}{}
\item\contentsline{section}{{\bf moLSCheckPoint$<$ M $>$} (Class which allows a checkpointing system )}{\pageref{classmo_l_s_check_point}}{}
\item\contentsline{section}{{\bf moMove$<$ EOT $>$} (Definition of a move )}{\pageref{classmo_move}}{}
\item\contentsline{section}{{\bf moMoveExpl$<$ M $>$} (Description of a move (\doxyref{moMove}{p.}{classmo_move}) explorer )}{\pageref{classmo_move_expl}}{}
\item\contentsline{section}{{\bf moMoveIncrEval$<$ M $>$} ((generally) Efficient evaluation function based a move and a solution )}{\pageref{classmo_move_incr_eval}}{}
\item\contentsline{section}{{\bf moMoveInit$<$ M $>$} (Move (\doxyref{moMove}{p.}{classmo_move}) initializer )}{\pageref{classmo_move_init}}{}
\item\contentsline{section}{{\bf moMoveLoopExpl$<$ M $>$} (Class which describes an iterative explorer )}{\pageref{classmo_move_loop_expl}}{}
\item\contentsline{section}{{\bf moMoveSelect$<$ M $>$} (Class that describes a move selector (\doxyref{moMove}{p.}{classmo_move}) )}{\pageref{classmo_move_select}}{}
\item\contentsline{section}{{\bf moNextMove$<$ M $>$} (Class which allows to generate a new move (\doxyref{moMove}{p.}{classmo_move}) )}{\pageref{classmo_next_move}}{}
\item\contentsline{section}{{\bf moNoAspirCrit$<$ M $>$} (One of the possible aspiration criterion (\doxyref{moAspirCrit}{p.}{classmo_aspir_crit}) )}{\pageref{classmo_no_aspir_crit}}{}
\item\contentsline{section}{{\bf moNoFitImprSolContinue$<$ EOT $>$} (One possible stop criterion for a solution-based heuristic )}{\pageref{classmo_no_fit_impr_sol_continue}}{}
\item\contentsline{section}{{\bf moRandImprSelect$<$ M $>$} (One of the possible \doxyref{moMove}{p.}{classmo_move} selector (\doxyref{moMoveSelect}{p.}{classmo_move_select}) )}{\pageref{classmo_rand_impr_select}}{}
\item\contentsline{section}{{\bf moRandMove$<$ M $>$} (Random move generator )}{\pageref{classmo_rand_move}}{}
\item\contentsline{section}{{\bf moSA$<$ M $>$} (Simulated Annealing (SA) )}{\pageref{classmo_s_a}}{}
\item\contentsline{section}{{\bf moSimpleMoveTabuList$<$ M $>$} (Class describing a move tabu list with a limited memory )}{\pageref{classmo_simple_move_tabu_list}}{}
\item\contentsline{section}{{\bf moSimpleSolutionTabuList$<$ M $>$} (Class describing a solution tabu list with limited length )}{\pageref{classmo_simple_solution_tabu_list}}{}
\item\contentsline{section}{{\bf moSolContinue$<$ EOT $>$} (Class that describes a stop criterion for a solution-based heuristic )}{\pageref{classmo_sol_continue}}{}
\item\contentsline{section}{{\bf moSteadyFitSolContinue$<$ EOT $>$} (One possible stopping criterion for a solution-based heuristic )}{\pageref{classmo_steady_fit_sol_continue}}{}
\item\contentsline{section}{{\bf moTabuList$<$ M $>$} (Class describing a tabu list that a \doxyref{moTS}{p.}{classmo_t_s} uses )}{\pageref{classmo_tabu_list}}{}
\item\contentsline{section}{{\bf moTS$<$ M $>$} (Tabu Search (TS) )}{\pageref{classmo_t_s}}{}
\item\contentsline{section}{{\bf moTSMoveLoopExpl$<$ M $>$} (Explorer for a Tabu Search algorithm )}{\pageref{classmo_t_s_move_loop_expl}}{}
\end{CompactList}

View file

@ -0,0 +1,21 @@
\section{EmptySelection Class Reference}
\label{class_empty_selection}\index{EmptySelection@{EmptySelection}}
Special class that describes the case of no selection.
{\tt \#include $<$moMoveSelect.h$>$}
\subsection{Detailed Description}
Special class that describes the case of no selection.
This class is used as an exception that can be thrown if a solution selector has completly failed.
Definition at line 46 of file moMoveSelect.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moMoveSelect.h\end{CompactItemize}

View file

@ -0,0 +1,215 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 273.973
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.825 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moAlgo< EOT >) cw
(eoMonOp< EOT >) cw
(eoOp< EOType >) cw
(eoUF< EOT &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moAlgo< EOT >) 0.5 0 box
(eoMonOp< EOT >) 0.5 1 box
(eoOp< EOType >) 0 2 box
(eoUF< EOT &, bool >) 1 2 box
(eoFunctorBase) 1 3 box
% ----- relations -----
solid
0 0.5 0 out
solid
1 0.5 1 in
solid
0 0.5 1 out
solid
0 1 2 conn
solid
1 0 2 in
solid
1 1 2 in
solid
0 1 2 out
solid
1 1 3 in

View file

@ -0,0 +1,29 @@
\section{moAlgo$<$ EOT $>$ Class Template Reference}
\label{classmo_algo}\index{moAlgo@{moAlgo}}
Description of an algorithm of the paradiseo-mo library.
{\tt \#include $<$moAlgo.h$>$}
Inheritance diagram for moAlgo$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_algo}
\end{center}
\end{figure}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moAlgo$<$ EOT $>$}
Description of an algorithm of the paradiseo-mo library.
\doxyref{moHC}{p.}{classmo_h_c}, \doxyref{moTS}{p.}{classmo_t_s} and \doxyref{moSA}{p.}{classmo_s_a} are 3 examples of algorithm of the paradiseo-mo library.
Definition at line 46 of file moAlgo.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moAlgo.h\end{CompactItemize}

View file

@ -0,0 +1,215 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 119.76
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 4.175 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moAspirCrit< M >) cw
(eoBF< const M &, const M::EOType::Fitness &, bool >) cw
(eoFunctorBase) cw
(moImprBestFitAspirCrit< M >) cw
(moNoAspirCrit< M >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moAspirCrit< M >) 0.5 1 box
(eoBF< const M &, const M::EOType::Fitness &, bool >) 0.5 2 box
(eoFunctorBase) 0.5 3 box
(moImprBestFitAspirCrit< M >) 0 0 box
(moNoAspirCrit< M >) 1 0 box
% ----- relations -----
solid
0 0.5 1 out
solid
1 0.5 2 in
solid
0 0.5 2 out
solid
1 0.5 3 in
solid
1 0.5 0.25 out
solid
0 1 1 conn
solid
0 0 0.75 in
solid
0 1 0.75 in

View file

@ -0,0 +1,46 @@
\section{moAspirCrit$<$ M $>$ Class Template Reference}
\label{classmo_aspir_crit}\index{moAspirCrit@{moAspirCrit}}
Description of the conditions in which a tabu move could be accepted.
{\tt \#include $<$moAspirCrit.h$>$}
Inheritance diagram for moAspirCrit$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.35329cm]{classmo_aspir_crit}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
virtual void {\bf init} ()=0
\begin{CompactList}\small\item\em Procedure which initialises all that needs a aspiration criterion. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moAspirCrit$<$ M $>$}
Description of the conditions in which a tabu move could be accepted.
It is only a description... An object that herits from this class is needed to be used in a \doxyref{moTS}{p.}{classmo_t_s}. See moNoAspriCrit for example.
Definition at line 47 of file moAspirCrit.h.
\subsection{Member Function Documentation}
\index{moAspirCrit@{moAspirCrit}!init@{init}}
\index{init@{init}!moAspirCrit@{moAspirCrit}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf moAspirCrit}$<$ M $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_aspir_crit_a8ce84510a5ec7c9078381e542c6d140}
Procedure which initialises all that needs a aspiration criterion.
It can be possible that this procedure do nothing...
Implemented in {\bf moImprBestFitAspirCrit$<$ M $>$} \doxyref{}{p.}{classmo_impr_best_fit_aspir_crit_ffa451a14ff4ea86fb8bd9fdbc348630}, and {\bf moNoAspirCrit$<$ M $>$} \doxyref{}{p.}{classmo_no_aspir_crit_f3a286fc4c2d36bd390ba9a3074f3037}.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moAspirCrit.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 303.03
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moBestImprSelect< M >) cw
(moMoveSelect< M >) cw
(eoBF< M &, M::EOType::Fitness &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moBestImprSelect< M >) 0 0 box
(moMoveSelect< M >) 0 1 box
(eoBF< M &, M::EOType::Fitness &, void >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,105 @@
\section{moBestImprSelect$<$ M $>$ Class Template Reference}
\label{classmo_best_impr_select}\index{moBestImprSelect@{moBestImprSelect}}
One of the possible \doxyref{moMoveSelect}{p.}{classmo_move_select}.
{\tt \#include $<$moBestImprSelect.h$>$}
Inheritance diagram for moBestImprSelect$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_best_impr_select}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef M::EOType::Fitness {\bf Fitness}\label{classmo_best_impr_select_c4ae17435221fb0a8e8acd285210cfcb}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit)\label{classmo_best_impr_select_2d2abf9aa17dc77cbb4f41810ab7b956}
\begin{CompactList}\small\item\em Procedure which initialise the exploration. \item\end{CompactList}\item
bool {\bf update} (const M \&\_\-\_\-move, const {\bf Fitness} \&\_\-\_\-fit)
\begin{CompactList}\small\item\em {\bf Function} that indicates if the current move has not improved the fitness. \item\end{CompactList}\item
void {\bf operator()} (M \&\_\-\_\-move, {\bf Fitness} \&\_\-\_\-fit) throw (EmptySelection)
\begin{CompactList}\small\item\em Procedure which saved the best move and fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
bool {\bf first\_\-time}\label{classmo_best_impr_select_352b14d206b0772eb9f40efb7beb0f13}
\begin{CompactList}\small\item\em Allowing to know if at least one move has been generated. \item\end{CompactList}\item
M {\bf best\_\-move}\label{classmo_best_impr_select_bd86f70519f954c07ff0d8a2a3a8ff6a}
\begin{CompactList}\small\item\em The best move. \item\end{CompactList}\item
{\bf Fitness} {\bf best\_\-fit}\label{classmo_best_impr_select_dcac897424b5805f146bb1dbb429f2fe}
\begin{CompactList}\small\item\em The best fitness. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moBestImprSelect$<$ M $>$}
One of the possible \doxyref{moMoveSelect}{p.}{classmo_move_select}.
All neighbors are considered, and the movement which enables the best improvement is selected.
Definition at line 47 of file moBestImprSelect.h.
\subsection{Member Function Documentation}
\index{moBestImprSelect@{moBestImprSelect}!update@{update}}
\index{update@{update}!moBestImprSelect@{moBestImprSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moBestImprSelect}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_best_impr_select_d10e3e6f8a0277731e95ef506d064d6d}
{\bf Function} that indicates if the current move has not improved the fitness.
If the given fitness enables an improvment, the move (\doxyref{moMove}{p.}{classmo_move}) and the fitness linked to this move are saved.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitness linked to the move. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE if the move does not improve the fitness. \end{Desc}
Implements {\bf moMoveSelect$<$ M $>$} \doxyref{}{p.}{classmo_move_select_7c157b6e64fd417acf6e900059204eb1}.
Definition at line 72 of file moBestImprSelect.h.
References moBestImprSelect$<$ M $>$::best\_\-fit, moBestImprSelect$<$ M $>$::best\_\-move, and moBestImprSelect$<$ M $>$::first\_\-time.\index{moBestImprSelect@{moBestImprSelect}!operator()@{operator()}}
\index{operator()@{operator()}!moBestImprSelect@{moBestImprSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moBestImprSelect}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf EmptySelection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_best_impr_select_169773d4d127acd782cf379f758222da}
Procedure which saved the best move and fitness.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]the current move (result of the procedure). \item[{\em \_\-\_\-fit}]the current fitness (result of the procedure). \end{description}
\end{Desc}
\begin{Desc}
\item[Exceptions:]
\begin{description}
\item[{\em \doxyref{EmptySelection}{p.}{class_empty_selection}}]if no move has improved the fitness. \end{description}
\end{Desc}
Implements {\bf eoBF$<$ M \&, M::EOType::Fitness \&, void $>$}.
Definition at line 93 of file moBestImprSelect.h.
References moBestImprSelect$<$ M $>$::best\_\-fit, moBestImprSelect$<$ M $>$::best\_\-move, and moBestImprSelect$<$ M $>$::first\_\-time.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moBestImprSelect.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 303.03
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moComparator< EOT >) cw
(eoBF< const EOT &, const EOT &, bool >) cw
(eoFunctorBase) cw
(moFitComparator< EOT >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moComparator< EOT >) 0 1 box
(eoBF< const EOT &, const EOT &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
(moFitComparator< EOT >) 0 0 box
% ----- relations -----
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in
solid
1 0 0.25 out
solid
0 0 0.75 in

View file

@ -0,0 +1,29 @@
\section{moComparator$<$ EOT $>$ Class Template Reference}
\label{classmo_comparator}\index{moComparator@{moComparator}}
Template for classes which need to compare two EOT and indicate if the first is \char`\"{}better\char`\"{} than the second.
{\tt \#include $<$moComparator.h$>$}
Inheritance diagram for moComparator$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_comparator}
\end{center}
\end{figure}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moComparator$<$ EOT $>$}
Template for classes which need to compare two EOT and indicate if the first is \char`\"{}better\char`\"{} than the second.
The objects that extend this template describe how an EOT is \char`\"{}better\char`\"{} than an other.
Definition at line 46 of file moComparator.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moComparator.h\end{CompactItemize}

View file

@ -0,0 +1,215 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 203.046
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 2.4625 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moCoolingSchedule) cw
(eoUF< double &, bool >) cw
(eoFunctorBase) cw
(moExponentialCoolingSchedule) cw
(moLinearCoolingSchedule) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moCoolingSchedule) 0.5 1 box
(eoUF< double &, bool >) 0.5 2 box
(eoFunctorBase) 0.5 3 box
(moExponentialCoolingSchedule) 0 0 box
(moLinearCoolingSchedule) 1 0 box
% ----- relations -----
solid
0 0.5 1 out
solid
1 0.5 2 in
solid
0 0.5 2 out
solid
1 0.5 3 in
solid
1 0.5 0.25 out
solid
0 1 1 conn
solid
0 0 0.75 in
solid
0 1 0.75 in

View file

@ -0,0 +1,27 @@
\section{moCoolingSchedule Class Reference}
\label{classmo_cooling_schedule}\index{moCoolingSchedule@{moCoolingSchedule}}
This class gives the description of a cooling schedule.
{\tt \#include $<$moCoolingSchedule.h$>$}
Inheritance diagram for moCoolingSchedule::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_cooling_schedule}
\end{center}
\end{figure}
\subsection{Detailed Description}
This class gives the description of a cooling schedule.
It is only a description... An object that herits from this class is needed to be used in a \doxyref{moSA}{p.}{classmo_s_a}. See \doxyref{moExponentialCoolingSchedule}{p.}{classmo_exponential_cooling_schedule} or \doxyref{moLinearCoolingSchedule}{p.}{classmo_linear_cooling_schedule} for example.
Definition at line 47 of file moCoolingSchedule.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moCoolingSchedule.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 406.091
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.23125 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moExponentialCoolingSchedule) cw
(moCoolingSchedule) cw
(eoUF< double &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moExponentialCoolingSchedule) 0 0 box
(moCoolingSchedule) 0 1 box
(eoUF< double &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,85 @@
\section{moExponentialCoolingSchedule Class Reference}
\label{classmo_exponential_cooling_schedule}\index{moExponentialCoolingSchedule@{moExponentialCoolingSchedule}}
One of the possible \doxyref{moCoolingSchedule}{p.}{classmo_cooling_schedule}.
{\tt \#include $<$moExponentialCoolingSchedule.h$>$}
Inheritance diagram for moExponentialCoolingSchedule::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_exponential_cooling_schedule}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moExponentialCoolingSchedule} (double \_\-\_\-threshold, double \_\-\_\-ratio)
\begin{CompactList}\small\item\em Simple constructor. \item\end{CompactList}\item
bool {\bf operator()} (double \&\_\-\_\-temp)
\begin{CompactList}\small\item\em {\bf Function} which proceeds to the cooling. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
double {\bf threshold}\label{classmo_exponential_cooling_schedule_8d4327c0bb33b7121a322279eea97f84}
\begin{CompactList}\small\item\em The temperature threhold. \item\end{CompactList}\item
double {\bf ratio}\label{classmo_exponential_cooling_schedule_e8f3f87417c1c7253efb938a740846fa}
\begin{CompactList}\small\item\em The decreasing factor of the temperature. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
One of the possible \doxyref{moCoolingSchedule}{p.}{classmo_cooling_schedule}.
An other very simple cooling schedule, the temperature decrease according to a ratio while the temperature is greater than a given threshold.
Definition at line 47 of file moExponentialCoolingSchedule.h.
\subsection{Constructor \& Destructor Documentation}
\index{moExponentialCoolingSchedule@{moExponentialCoolingSchedule}!moExponentialCoolingSchedule@{moExponentialCoolingSchedule}}
\index{moExponentialCoolingSchedule@{moExponentialCoolingSchedule}!moExponentialCoolingSchedule@{moExponentialCoolingSchedule}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}moExponentialCoolingSchedule::moExponentialCoolingSchedule (double {\em \_\-\_\-threshold}, double {\em \_\-\_\-ratio})\hspace{0.3cm}{\tt [inline]}}\label{classmo_exponential_cooling_schedule_b01930c1051c0940666c6325bfd036bc}
Simple constructor.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-threshold}]the threshold. \item[{\em \_\-\_\-ratio}]the ratio used to descrease the temperature. \end{description}
\end{Desc}
Definition at line 56 of file moExponentialCoolingSchedule.h.
\subsection{Member Function Documentation}
\index{moExponentialCoolingSchedule@{moExponentialCoolingSchedule}!operator()@{operator()}}
\index{operator()@{operator()}!moExponentialCoolingSchedule@{moExponentialCoolingSchedule}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool moExponentialCoolingSchedule::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_exponential_cooling_schedule_00642b03453b51612a10fcf2280543db}
{\bf Function} which proceeds to the cooling.
It decreases the temperature and indicates if it is greater than the threshold.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-temp}]the current temperature. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]if the new temperature (current temperature $\ast$ ratio) is greater than the threshold. \end{Desc}
Implements {\bf eoUF$<$ double \&, bool $>$}.
Definition at line 66 of file moExponentialCoolingSchedule.h.
References ratio, and threshold.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moExponentialCoolingSchedule.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 303.03
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moFirstImprSelect< M >) cw
(moMoveSelect< M >) cw
(eoBF< M &, M::EOType::Fitness &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moFirstImprSelect< M >) 0 0 box
(moMoveSelect< M >) 0 1 box
(eoBF< M &, M::EOType::Fitness &, void >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,118 @@
\section{moFirstImprSelect$<$ M $>$ Class Template Reference}
\label{classmo_first_impr_select}\index{moFirstImprSelect@{moFirstImprSelect}}
One possible \doxyref{moMoveSelect}{p.}{classmo_move_select}.
{\tt \#include $<$moFirstImprSelect.h$>$}
Inheritance diagram for moFirstImprSelect$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_first_impr_select}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef M::EOType::Fitness {\bf Fitness}\label{classmo_first_impr_select_64763ce3e6d2873266624382b407fa5a}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
virtual void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit)
\begin{CompactList}\small\item\em Procedure which initialise the exploration. \item\end{CompactList}\item
bool {\bf update} (const M \&\_\-\_\-move, const typename M::EOType::Fitness \&\_\-\_\-fit)
\begin{CompactList}\small\item\em {\bf Function} that indicates if the current move has not improved the fitness. \item\end{CompactList}\item
void {\bf operator()} (M \&\_\-\_\-move, {\bf Fitness} \&\_\-\_\-fit) throw (EmptySelection)
\begin{CompactList}\small\item\em Procedure which saved the best move and fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
bool {\bf valid}\label{classmo_first_impr_select_a99c0586ba07449234705c17a258d58c}
\begin{CompactList}\small\item\em Allow to know if at least one move has improved the solution. \item\end{CompactList}\item
M {\bf best\_\-move}\label{classmo_first_impr_select_dfed419a608dd7c41f07fa1f1279cb8c}
\begin{CompactList}\small\item\em Best stored movement. \item\end{CompactList}\item
{\bf Fitness} {\bf init\_\-fit}\label{classmo_first_impr_select_ce7ba63e8cc3a9164f4e546477e98ca8}
\begin{CompactList}\small\item\em Initial fitness. \item\end{CompactList}\item
{\bf Fitness} {\bf best\_\-fit}\label{classmo_first_impr_select_e1190347b76ec6fe717be32354b4a9a9}
\begin{CompactList}\small\item\em Best stored fitness. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moFirstImprSelect$<$ M $>$}
One possible \doxyref{moMoveSelect}{p.}{classmo_move_select}.
The neighborhood is explored until a move enables an improvment of the current solution.
Definition at line 48 of file moFirstImprSelect.h.
\subsection{Member Function Documentation}
\index{moFirstImprSelect@{moFirstImprSelect}!init@{init}}
\index{init@{init}!moFirstImprSelect@{moFirstImprSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf moFirstImprSelect}$<$ M $>$::init (const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_first_impr_select_4c5ce18ede46247a439c68f6954a4055}
Procedure which initialise the exploration.
It save the current fitness as the initial value for the fitness.
Implements {\bf moMoveSelect$<$ M $>$} \doxyref{}{p.}{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e}.
Definition at line 60 of file moFirstImprSelect.h.
References moFirstImprSelect$<$ M $>$::init\_\-fit, and moFirstImprSelect$<$ M $>$::valid.\index{moFirstImprSelect@{moFirstImprSelect}!update@{update}}
\index{update@{update}!moFirstImprSelect@{moFirstImprSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moFirstImprSelect}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const typename M::EOType::Fitness \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_first_impr_select_7ba0882728daedc75c249647c070ccf0}
{\bf Function} that indicates if the current move has not improved the fitness.
If the given fitness enables an improvment, the move (\doxyref{moMove}{p.}{classmo_move}) should be applied to the current solution.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitness linked to the move. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE if the move does not improve the fitness. \end{Desc}
Definition at line 77 of file moFirstImprSelect.h.
References moFirstImprSelect$<$ M $>$::best\_\-fit, moFirstImprSelect$<$ M $>$::best\_\-move, moFirstImprSelect$<$ M $>$::init\_\-fit, and moFirstImprSelect$<$ M $>$::valid.\index{moFirstImprSelect@{moFirstImprSelect}!operator()@{operator()}}
\index{operator()@{operator()}!moFirstImprSelect@{moFirstImprSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moFirstImprSelect}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf EmptySelection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_first_impr_select_3be12cf4cbaed00df7c4fa735b2c0a95}
Procedure which saved the best move and fitness.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]the current move (result of the procedure). \item[{\em \_\-\_\-fit}]the current fitness (result of the procedure). \end{description}
\end{Desc}
\begin{Desc}
\item[Exceptions:]
\begin{description}
\item[{\em \doxyref{EmptySelection}{p.}{class_empty_selection}}]if no move has improved the fitness. \end{description}
\end{Desc}
Implements {\bf eoBF$<$ M \&, M::EOType::Fitness \&, void $>$}.
Definition at line 101 of file moFirstImprSelect.h.
References moFirstImprSelect$<$ M $>$::best\_\-fit, moFirstImprSelect$<$ M $>$::best\_\-move, and moFirstImprSelect$<$ M $>$::valid.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moFirstImprSelect.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 303.03
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moFitComparator< EOT >) cw
(moComparator< EOT >) cw
(eoBF< const EOT &, const EOT &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moFitComparator< EOT >) 0 0 box
(moComparator< EOT >) 0 1 box
(eoBF< const EOT &, const EOT &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,55 @@
\section{moFitComparator$<$ EOT $>$ Class Template Reference}
\label{classmo_fit_comparator}\index{moFitComparator@{moFitComparator}}
Comparison according to the fitness.
{\tt \#include $<$moFitComparator.h$>$}
Inheritance diagram for moFitComparator$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_fit_comparator}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
bool {\bf operator()} (const EOT \&\_\-solution1, const EOT \&\_\-solution2)
\begin{CompactList}\small\item\em {\bf Function} which makes the comparison and gives the result. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moFitComparator$<$ EOT $>$}
Comparison according to the fitness.
An EOT is better than an other if its fitness is better.
Definition at line 45 of file moFitComparator.h.
\subsection{Member Function Documentation}
\index{moFitComparator@{moFitComparator}!operator()@{operator()}}
\index{operator()@{operator()}!moFitComparator@{moFitComparator}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool {\bf moFitComparator}$<$ EOT $>$::operator() (const EOT \& {\em \_\-solution1}, const EOT \& {\em \_\-solution2})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_fit_comparator_c920d5a49deb16710daf1e5fcde6b16c}
{\bf Function} which makes the comparison and gives the result.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-solution1}]The first solution. \item[{\em \_\-solution2}]The second solution. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true if the fitness of the first solution is better than the second solution, false else. \end{Desc}
Implements {\bf eoBF$<$ const EOT \&, const EOT \&, bool $>$}.
Definition at line 55 of file moFitComparator.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moFitComparator.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 441.989
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.13125 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moFitSolContinue< EOT >) cw
(moSolContinue< EOT >) cw
(eoUF< const EOT &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moFitSolContinue< EOT >) 0 0 box
(moSolContinue< EOT >) 0 1 box
(eoUF< const EOT &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,103 @@
\section{moFitSolContinue$<$ EOT $>$ Class Template Reference}
\label{classmo_fit_sol_continue}\index{moFitSolContinue@{moFitSolContinue}}
One possible stop criterion for a solution-based heuristic.
{\tt \#include $<$moFitSolContinue.h$>$}
Inheritance diagram for moFitSolContinue$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_fit_sol_continue}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef EOT::Fitness {\bf Fitness}\label{classmo_fit_sol_continue_369ed94a788d8bdc08d5554f7669376f}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moFitSolContinue} ({\bf Fitness} \_\-\_\-fitness)
\begin{CompactList}\small\item\em Basic constructor. \item\end{CompactList}\item
bool {\bf operator()} (const EOT \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} that activates the stopping criterion. \item\end{CompactList}\item
void {\bf init} ()
\begin{CompactList}\small\item\em Procedure which allows to initialise all the stuff needed. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf Fitness} {\bf fitness}\label{classmo_fit_sol_continue_87d0ba8f2f76f61c89317eed5f094dfc}
\begin{CompactList}\small\item\em Fitness target. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moFitSolContinue$<$ EOT $>$}
One possible stop criterion for a solution-based heuristic.
The stop criterion corresponds to a fitness threshold gained.
Definition at line 46 of file moFitSolContinue.h.
\subsection{Constructor \& Destructor Documentation}
\index{moFitSolContinue@{moFitSolContinue}!moFitSolContinue@{moFitSolContinue}}
\index{moFitSolContinue@{moFitSolContinue}!moFitSolContinue@{moFitSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf moFitSolContinue}$<$ EOT $>$::{\bf moFitSolContinue} ({\bf Fitness} {\em \_\-\_\-fitness})\hspace{0.3cm}{\tt [inline]}}\label{classmo_fit_sol_continue_b14f37ba88de4e12583b22f5aabeb682}
Basic constructor.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-fitness}]The fitness to reach. \end{description}
\end{Desc}
Definition at line 58 of file moFitSolContinue.h.
\subsection{Member Function Documentation}
\index{moFitSolContinue@{moFitSolContinue}!operator()@{operator()}}
\index{operator()@{operator()}!moFitSolContinue@{moFitSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool {\bf moFitSolContinue}$<$ EOT $>$::operator() (const EOT \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_fit_sol_continue_fa9f0a15f99c998115cae9b456403a27}
{\bf Function} that activates the stopping criterion.
Indicates if the fitness threshold has not yet been reached.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]the current solution. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true or false according to the value of the fitness. \end{Desc}
Implements {\bf eoUF$<$ const EOT \&, bool $>$}.
Definition at line 68 of file moFitSolContinue.h.
References moFitSolContinue$<$ EOT $>$::fitness.\index{moFitSolContinue@{moFitSolContinue}!init@{init}}
\index{init@{init}!moFitSolContinue@{moFitSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf moFitSolContinue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_fit_sol_continue_670bd895b4edfcd3aebb40d2295d7f7c}
Procedure which allows to initialise all the stuff needed.
It can be also used to reinitialize all the needed things.
Implements {\bf moSolContinue$<$ EOT $>$} \doxyref{}{p.}{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7}.
Definition at line 82 of file moFitSolContinue.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moFitSolContinue.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 441.989
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.13125 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moGenSolContinue< EOT >) cw
(moSolContinue< EOT >) cw
(eoUF< const EOT &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moGenSolContinue< EOT >) 0 0 box
(moSolContinue< EOT >) 0 1 box
(eoUF< const EOT &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,102 @@
\section{moGenSolContinue$<$ EOT $>$ Class Template Reference}
\label{classmo_gen_sol_continue}\index{moGenSolContinue@{moGenSolContinue}}
One possible stop criterion for a solution-based heuristic.
{\tt \#include $<$moGenSolContinue.h$>$}
Inheritance diagram for moGenSolContinue$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_gen_sol_continue}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moGenSolContinue} (unsigned int \_\-\_\-maxNumGen)
\begin{CompactList}\small\item\em Simple constructor. \item\end{CompactList}\item
bool {\bf operator()} (const EOT \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} that activates the stop criterion. \item\end{CompactList}\item
void {\bf init} ()
\begin{CompactList}\small\item\em Procedure which allows to initialise the generation counter. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
unsigned int {\bf maxNumGen}\label{classmo_gen_sol_continue_30b9861e090578bdfa2374806600987a}
\begin{CompactList}\small\item\em Iteration maximum number. \item\end{CompactList}\item
unsigned int {\bf numGen}\label{classmo_gen_sol_continue_630d9736a3a2c952540cdc211764258c}
\begin{CompactList}\small\item\em Iteration current number. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moGenSolContinue$<$ EOT $>$}
One possible stop criterion for a solution-based heuristic.
The stop criterion corresponds to a maximum number of iteration.
Definition at line 46 of file moGenSolContinue.h.
\subsection{Constructor \& Destructor Documentation}
\index{moGenSolContinue@{moGenSolContinue}!moGenSolContinue@{moGenSolContinue}}
\index{moGenSolContinue@{moGenSolContinue}!moGenSolContinue@{moGenSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf moGenSolContinue}$<$ EOT $>$::{\bf moGenSolContinue} (unsigned int {\em \_\-\_\-maxNumGen})\hspace{0.3cm}{\tt [inline]}}\label{classmo_gen_sol_continue_b56e890f1caa3f98e161c6512b59c95b}
Simple constructor.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-maxNumGen}]the maximum number of generation. \end{description}
\end{Desc}
Definition at line 55 of file moGenSolContinue.h.
\subsection{Member Function Documentation}
\index{moGenSolContinue@{moGenSolContinue}!operator()@{operator()}}
\index{operator()@{operator()}!moGenSolContinue@{moGenSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool {\bf moGenSolContinue}$<$ EOT $>$::operator() (const EOT \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_gen_sol_continue_457257cd73b474d6f7783d84d02c2e61}
{\bf Function} that activates the stop criterion.
Increments the counter and returns TRUE if the current number of iteration is lower than the given maximum number of iterations.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]the current solution. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE or FALSE according to the current generation number. \end{Desc}
Implements {\bf eoUF$<$ const EOT \&, bool $>$}.
Definition at line 69 of file moGenSolContinue.h.
References moGenSolContinue$<$ EOT $>$::maxNumGen, and moGenSolContinue$<$ EOT $>$::numGen.\index{moGenSolContinue@{moGenSolContinue}!init@{init}}
\index{init@{init}!moGenSolContinue@{moGenSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf moGenSolContinue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_gen_sol_continue_6c5db8182157584b56507cc9075602d4}
Procedure which allows to initialise the generation counter.
It can also be used to reset the iteration counter.
Implements {\bf moSolContinue$<$ EOT $>$} \doxyref{}{p.}{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7}.
Definition at line 79 of file moGenSolContinue.h.
References moGenSolContinue$<$ EOT $>$::numGen.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moGenSolContinue.h\end{CompactItemize}

View file

@ -0,0 +1,221 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 271.739
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 5 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moHC< M >) cw
(moAlgo< M::EOType >) cw
(eoMonOp< M::EOType >) cw
(eoOp< EOType >) cw
(eoUF< M::EOType &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moHC< M >) 0.5 0 box
(moAlgo< M::EOType >) 0.5 1 box
(eoMonOp< M::EOType >) 0.5 2 box
(eoOp< EOType >) 0 3 box
(eoUF< M::EOType &, bool >) 1 3 box
(eoFunctorBase) 1 4 box
% ----- relations -----
solid
0 0.5 0 out
solid
1 0.5 1 in
solid
0 0.5 1 out
solid
1 0.5 2 in
solid
0 0.5 2 out
solid
0 1 3 conn
solid
1 0 3 in
solid
1 1 3 in
solid
0 1 3 out
solid
1 1 4 in

View file

@ -0,0 +1,116 @@
\section{moHC$<$ M $>$ Class Template Reference}
\label{classmo_h_c}\index{moHC@{moHC}}
Hill Climbing (HC).
{\tt \#include $<$moHC.h$>$}
Inheritance diagram for moHC$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5cm]{classmo_h_c}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moHC} ({\bf moMoveInit}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf moNextMove}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf moMoveSelect}$<$ M $>$ \&\_\-\_\-move\_\-select, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em Full constructor. \item\end{CompactList}\item
{\bf moHC} ({\bf moMoveExpl}$<$ M $>$ \&\_\-\_\-move\_\-expl, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em Light constructor. \item\end{CompactList}\item
bool {\bf operator()} ({\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} which launches the HC. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_h_c_d219296ede03c679646bce2fe8ff96cb}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item
typedef EOT::Fitness {\bf Fitness}\label{classmo_h_c_56487c97a7cf0c423cc879d1bbd45027}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf moMoveExpl}$<$ M $>$ \& {\bf move\_\-expl}\label{classmo_h_c_f6bfb4553fb699f1e08f7d9c37d06103}
\begin{CompactList}\small\item\em Complete exploration of the neighborhood. \item\end{CompactList}\item
{\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_h_c_4b0d5cc70fc3d83f59a48b2bdea65736}
\begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moHC$<$ M $>$}
Hill Climbing (HC).
Class which describes the algorithm for a hill climbing.
Definition at line 50 of file moHC.h.
\subsection{Constructor \& Destructor Documentation}
\index{moHC@{moHC}!moHC@{moHC}}
\index{moHC@{moHC}!moHC@{moHC}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moHC}$<$ M $>$::{\bf moHC} ({\bf moMoveInit}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf moNextMove}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf moMoveSelect}$<$ M $>$ \& {\em \_\-\_\-move\_\-select}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_6cafe093f86a80c225827884cb9dc5b7}
Full constructor.
All the boxes are given in order the HC to use a \doxyref{moHCMoveLoopExpl}{p.}{classmo_h_c_move_loop_expl}.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-init}]a move initialiser. \item[{\em \_\-\_\-next\_\-move}]a neighborhood explorer. \item[{\em \_\-\_\-incr\_\-eval}]a (generally) efficient evaluation function. \item[{\em \_\-\_\-move\_\-select}]a move selector. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description}
\end{Desc}
Definition at line 77 of file moHC.h.\index{moHC@{moHC}!moHC@{moHC}}
\index{moHC@{moHC}!moHC@{moHC}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moHC}$<$ M $>$::{\bf moHC} ({\bf moMoveExpl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_45f27309792e584a27fa6dcb86ccda65}
Light constructor.
This constructor allow to use another \doxyref{moMoveExpl}{p.}{classmo_move_expl} (generally not a \doxyref{moHCMoveLoopExpl}{p.}{classmo_h_c_move_loop_expl}).
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-expl}]a complete explorer. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description}
\end{Desc}
Definition at line 91 of file moHC.h.
\subsection{Member Function Documentation}
\index{moHC@{moHC}!operator()@{operator()}}
\index{operator()@{operator()}!moHC@{moHC}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moHC}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_h_c_ed4e273c420efa6386c5975a696a5010}
{\bf Function} which launches the HC.
The HC has to improve a current solution. As the \doxyref{moSA}{p.}{classmo_s_a} and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]a current solution to improve. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE. \end{Desc}
Implements {\bf eoUF$<$ M::EOType \&, bool $>$}.
Definition at line 106 of file moHC.h.
References moHC$<$ M $>$::full\_\-eval, and moHC$<$ M $>$::move\_\-expl.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moHC.h\end{CompactItemize}

View file

@ -0,0 +1,215 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 327.869
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 5 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moHCMoveLoopExpl< M >) cw
(moMoveLoopExpl< M >) cw
(moMoveExpl< M >) cw
(eoBF< const M::EOType &, M::EOType &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moHCMoveLoopExpl< M >) 0 0 box
(moMoveLoopExpl< M >) 0 1 box
(moMoveExpl< M >) 0 2 box
(eoBF< const M::EOType &, M::EOType &, void >) 0 3 box
(eoFunctorBase) 0 4 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in
solid
0 0 3 out
solid
1 0 4 in

View file

@ -0,0 +1,100 @@
\section{moHCMoveLoopExpl$<$ M $>$ Class Template Reference}
\label{classmo_h_c_move_loop_expl}\index{moHCMoveLoopExpl@{moHCMoveLoopExpl}}
Iterative explorer used by a \doxyref{moHC}{p.}{classmo_h_c}.
{\tt \#include $<$moHCMoveLoopExpl.h$>$}
Inheritance diagram for moHCMoveLoopExpl$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5cm]{classmo_h_c_move_loop_expl}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moHCMoveLoopExpl} ({\bf moMoveInit}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf moNextMove}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf moMoveSelect}$<$ M $>$ \&\_\-\_\-move\_\-select)
\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item
void {\bf operator()} (const {\bf EOT} \&\_\-\_\-old\_\-sol, {\bf EOT} \&\_\-\_\-new\_\-sol)
\begin{CompactList}\small\item\em Procedure which launches the explorer. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_h_c_move_loop_expl_077befd4106c201eafd3ea22bcea2fe9}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item
typedef M::EOType::Fitness {\bf Fitness}\label{classmo_h_c_move_loop_expl_f24871224316d5549b9013a2d27ab465}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf moMoveInit}$<$ M $>$ \& {\bf move\_\-init}\label{classmo_h_c_move_loop_expl_6776fc51331c1b452d026b92448b4ffc}
\begin{CompactList}\small\item\em Move initialiser. \item\end{CompactList}\item
{\bf moNextMove}$<$ M $>$ \& {\bf next\_\-move}\label{classmo_h_c_move_loop_expl_f716c5271e0eba9275c585dc52768443}
\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item
{\bf moMoveIncrEval}$<$ M $>$ \& {\bf incr\_\-eval}\label{classmo_h_c_move_loop_expl_84a8fccba05ab30414281469bc8ee779}
\begin{CompactList}\small\item\em (generally) Efficient evaluation. \item\end{CompactList}\item
{\bf moMoveSelect}$<$ M $>$ \& {\bf move\_\-select}\label{classmo_h_c_move_loop_expl_13bcd1322b2b97fd665be2f60c532fbb}
\begin{CompactList}\small\item\em Move selector. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moHCMoveLoopExpl$<$ M $>$}
Iterative explorer used by a \doxyref{moHC}{p.}{classmo_h_c}.
Definition at line 48 of file moHCMoveLoopExpl.h.
\subsection{Constructor \& Destructor Documentation}
\index{moHCMoveLoopExpl@{moHCMoveLoopExpl}!moHCMoveLoopExpl@{moHCMoveLoopExpl}}
\index{moHCMoveLoopExpl@{moHCMoveLoopExpl}!moHCMoveLoopExpl@{moHCMoveLoopExpl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moHCMoveLoopExpl}$<$ M $>$::{\bf moHCMoveLoopExpl} ({\bf moMoveInit}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf moNextMove}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf moMoveSelect}$<$ M $>$ \& {\em \_\-\_\-move\_\-select})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_move_loop_expl_11410d648d79746253e9dc249c4ec7b5}
Constructor.
All the boxes have to be specified.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-init}]the move initialiser. \item[{\em \_\-\_\-next\_\-move}]the neighborhood explorer. \item[{\em \_\-\_\-incr\_\-eval}](generally) efficient evaluation function. \item[{\em \_\-\_\-move\_\-select}]the move selector. \end{description}
\end{Desc}
Definition at line 68 of file moHCMoveLoopExpl.h.
\subsection{Member Function Documentation}
\index{moHCMoveLoopExpl@{moHCMoveLoopExpl}!operator()@{operator()}}
\index{operator()@{operator()}!moHCMoveLoopExpl@{moHCMoveLoopExpl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moHCMoveLoopExpl}$<$ M $>$::operator() (const {\bf EOT} \& {\em \_\-\_\-old\_\-sol}, {\bf EOT} \& {\em \_\-\_\-new\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_h_c_move_loop_expl_f48d5379caac7f6a165e9fe8840e6ccb}
Procedure which launches the explorer.
The exploration starts from an old solution and provides a new solution.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-old\_\-sol}]the current solution. \item[{\em \_\-\_\-new\_\-sol}]the new\_\-sol (result of the procedure). \end{description}
\end{Desc}
Implements {\bf eoBF$<$ const M::EOType \&, M::EOType \&, void $>$}.
Definition at line 84 of file moHCMoveLoopExpl.h.
References moHCMoveLoopExpl$<$ M $>$::incr\_\-eval, moHCMoveLoopExpl$<$ M $>$::move\_\-init, moHCMoveLoopExpl$<$ M $>$::move\_\-select, and moHCMoveLoopExpl$<$ M $>$::next\_\-move.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moHCMoveLoopExpl.h\end{CompactItemize}

View file

@ -0,0 +1,221 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 271.739
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 5 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moILS< M >) cw
(moAlgo< M::EOType >) cw
(eoMonOp< M::EOType >) cw
(eoOp< EOType >) cw
(eoUF< M::EOType &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moILS< M >) 0.5 0 box
(moAlgo< M::EOType >) 0.5 1 box
(eoMonOp< M::EOType >) 0.5 2 box
(eoOp< EOType >) 0 3 box
(eoUF< M::EOType &, bool >) 1 3 box
(eoFunctorBase) 1 4 box
% ----- relations -----
solid
0 0.5 0 out
solid
1 0.5 1 in
solid
0 0.5 1 out
solid
1 0.5 2 in
solid
0 0.5 2 out
solid
0 1 3 conn
solid
1 0 3 in
solid
1 1 3 in
solid
0 1 3 out
solid
1 1 4 in

View file

@ -0,0 +1,155 @@
\section{moILS$<$ M $>$ Class Template Reference}
\label{classmo_i_l_s}\index{moILS@{moILS}}
Iterated Local Search (ILS).
{\tt \#include $<$moILS.h$>$}
Inheritance diagram for moILS$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5cm]{classmo_i_l_s}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moILS} ({\bf moAlgo}$<$ {\bf EOT} $>$ \&\_\-\_\-algo, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-continue, {\bf moComparator}$<$ {\bf EOT} $>$ \&\_\-\_\-acceptance\_\-criterion, {\bf eoMonOp}$<$ {\bf EOT} $>$ \&\_\-\_\-perturbation, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em Generic constructor. \item\end{CompactList}\item
{\bf moILS} ({\bf moMoveInit}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf moNextMove}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf moMoveSelect}$<$ M $>$ \&\_\-\_\-move\_\-select, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-continue, {\bf moComparator}$<$ {\bf EOT} $>$ \&\_\-\_\-acceptance\_\-criterion, {\bf eoMonOp}$<$ {\bf EOT} $>$ \&\_\-\_\-perturbation, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em Constructor for using a \doxyref{moHC}{p.}{classmo_h_c} for the \doxyref{moAlgo}{p.}{classmo_algo}. \item\end{CompactList}\item
{\bf moILS} ({\bf moMoveInit}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf moNextMove}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf moTabuList}$<$ M $>$ \&\_\-\_\-tabu\_\-list, {\bf moAspirCrit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-moTS\_\-continue, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-continue, {\bf moComparator}$<$ {\bf EOT} $>$ \&\_\-\_\-acceptance\_\-criterion, {\bf eoMonOp}$<$ {\bf EOT} $>$ \&\_\-\_\-perturbation, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em Constructor for using a \doxyref{moTS}{p.}{classmo_t_s} for the \doxyref{moAlgo}{p.}{classmo_algo}. \item\end{CompactList}\item
{\bf moILS} ({\bf moRandMove}$<$ M $>$ \&\_\-\_\-move\_\-rand, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-moSA\_\-continue, double \_\-\_\-init\_\-temp, {\bf moCoolingSchedule} \&\_\-\_\-cool\_\-sched, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-continue, {\bf moComparator}$<$ {\bf EOT} $>$ \&\_\-\_\-acceptance\_\-criterion, {\bf eoMonOp}$<$ {\bf EOT} $>$ \&\_\-\_\-perturbation, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em Constructor for using a \doxyref{moSA}{p.}{classmo_s_a} for the \doxyref{moAlgo}{p.}{classmo_algo}. \item\end{CompactList}\item
bool {\bf operator()} ({\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} which launches the ILS. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_i_l_s_c81bafc611e4d4fd44347cf7162198c7}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item
typedef EOT::Fitness {\bf Fitness}\label{classmo_i_l_s_8c464a9eae064a78eff75d4c722b619c}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf moAlgo}$<$ {\bf EOT} $>$ \& {\bf algo}\label{classmo_i_l_s_8373e40b60afdd761789a97b47adece9}
\begin{CompactList}\small\item\em The solution based heuristic. \item\end{CompactList}\item
{\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\bf cont}\label{classmo_i_l_s_c3046ba0a31a35470391987ac37afd64}
\begin{CompactList}\small\item\em The stopping criterion. \item\end{CompactList}\item
{\bf moComparator}$<$ {\bf EOT} $>$ \& {\bf acceptance\_\-criterion}\label{classmo_i_l_s_295f6d0342c67bd3dc4cb82e2adc26be}
\begin{CompactList}\small\item\em The acceptance criterion. \item\end{CompactList}\item
{\bf eoMonOp}$<$ {\bf EOT} $>$ \& {\bf perturbation}\label{classmo_i_l_s_f667a1bda06b6d221292df9aba3db8a2}
\begin{CompactList}\small\item\em The perturbation generator. \item\end{CompactList}\item
{\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_i_l_s_8000f02fac668d51026e458c9febce7c}
\begin{CompactList}\small\item\em The full evaluation function. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moILS$<$ M $>$}
Iterated Local Search (ILS).
Class which describes the algorithm for a iterated local search.
Definition at line 50 of file moILS.h.
\subsection{Constructor \& Destructor Documentation}
\index{moILS@{moILS}!moILS@{moILS}}
\index{moILS@{moILS}!moILS@{moILS}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moILS}$<$ M $>$::{\bf moILS} ({\bf moAlgo}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-algo}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-continue}, {\bf moComparator}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-acceptance\_\-criterion}, {\bf eoMonOp}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-perturbation}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_i_l_s_f7f2fc1f905954d78edcec0e3ca53551}
Generic constructor.
Generic constructor using a \doxyref{moAlgo}{p.}{classmo_algo}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-algo}]The solution based heuristic to use. \item[{\em \_\-\_\-continue}]The stopping criterion. \item[{\em \_\-\_\-acceptance\_\-criterion}]The acceptance criterion. \item[{\em \_\-\_\-perturbation}]The pertubation generator. \item[{\em \_\-\_\-full\_\-eval}]The evaluation function. \end{description}
\end{Desc}
Definition at line 71 of file moILS.h.\index{moILS@{moILS}!moILS@{moILS}}
\index{moILS@{moILS}!moILS@{moILS}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moILS}$<$ M $>$::{\bf moILS} ({\bf moMoveInit}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf moNextMove}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf moMoveSelect}$<$ M $>$ \& {\em \_\-\_\-move\_\-select}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-continue}, {\bf moComparator}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-acceptance\_\-criterion}, {\bf eoMonOp}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-perturbation}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_i_l_s_c4ebdab294ee1085ddcb9bf2a6882cf0}
Constructor for using a \doxyref{moHC}{p.}{classmo_h_c} for the \doxyref{moAlgo}{p.}{classmo_algo}.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-init}]The move initialisation (for the \doxyref{moHC}{p.}{classmo_h_c}). \item[{\em \_\-\_\-next\_\-move}]The move generator (for the \doxyref{moHC}{p.}{classmo_h_c}). \item[{\em \_\-\_\-incr\_\-eval}]The partial evaluation function (for the \doxyref{moHC}{p.}{classmo_h_c}). \item[{\em \_\-\_\-move\_\-select}]The move selection strategy (for the \doxyref{moHC}{p.}{classmo_h_c}). \item[{\em \_\-\_\-continue}]The stopping criterion. \item[{\em \_\-\_\-acceptance\_\-criterion}]The acceptance criterion. \item[{\em \_\-\_\-perturbation}]The pertubation generator. \item[{\em \_\-\_\-full\_\-eval}]The evaluation function. \end{description}
\end{Desc}
Definition at line 87 of file moILS.h.\index{moILS@{moILS}!moILS@{moILS}}
\index{moILS@{moILS}!moILS@{moILS}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moILS}$<$ M $>$::{\bf moILS} ({\bf moMoveInit}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf moNextMove}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf moTabuList}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, {\bf moAspirCrit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-moTS\_\-continue}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-continue}, {\bf moComparator}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-acceptance\_\-criterion}, {\bf eoMonOp}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-perturbation}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_i_l_s_d27e3435b8f6592091431fde6f185769}
Constructor for using a \doxyref{moTS}{p.}{classmo_t_s} for the \doxyref{moAlgo}{p.}{classmo_algo}.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-init}]The move initialisation (for the \doxyref{moTS}{p.}{classmo_t_s}). \item[{\em \_\-\_\-next\_\-move}]The move generator (for the \doxyref{moTS}{p.}{classmo_t_s}). \item[{\em \_\-\_\-incr\_\-eval}]The partial evaluation function (for the \doxyref{moTS}{p.}{classmo_t_s}). \item[{\em \_\-\_\-tabu\_\-list}]The tabu list (for the \doxyref{moTS}{p.}{classmo_t_s} !!!!). \item[{\em \_\-\_\-aspir\_\-crit}]The aspiration criterion (for the \doxyref{moTS}{p.}{classmo_t_s}). \item[{\em \_\-\_\-moTS\_\-continue}]The stopping criterion (for the \doxyref{moTS}{p.}{classmo_t_s}). \item[{\em \_\-\_\-continue}]The stopping criterion. \item[{\em \_\-\_\-acceptance\_\-criterion}]The acceptance criterion. \item[{\em \_\-\_\-perturbation}]The pertubation generator. \item[{\em \_\-\_\-full\_\-eval}]The evaluation function. \end{description}
\end{Desc}
Definition at line 107 of file moILS.h.\index{moILS@{moILS}!moILS@{moILS}}
\index{moILS@{moILS}!moILS@{moILS}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moILS}$<$ M $>$::{\bf moILS} ({\bf moRandMove}$<$ M $>$ \& {\em \_\-\_\-move\_\-rand}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-moSA\_\-continue}, double {\em \_\-\_\-init\_\-temp}, {\bf moCoolingSchedule} \& {\em \_\-\_\-cool\_\-sched}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-continue}, {\bf moComparator}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-acceptance\_\-criterion}, {\bf eoMonOp}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-perturbation}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_i_l_s_292acc5218e8f148e8b174f183820696}
Constructor for using a \doxyref{moSA}{p.}{classmo_s_a} for the \doxyref{moAlgo}{p.}{classmo_algo}.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-rand}]The random move generator (for the \doxyref{moSA}{p.}{classmo_s_a}). \item[{\em \_\-\_\-incr\_\-eval}]The partial evaluation function (for the \doxyref{moSA}{p.}{classmo_s_a}). \item[{\em \_\-\_\-moSA\_\-continue}]The stopping criterion (for the \doxyref{moSA}{p.}{classmo_s_a}). \item[{\em \_\-\_\-init\_\-temp}]The initial temperature (for the \doxyref{moSA}{p.}{classmo_s_a}). \item[{\em \_\-\_\-cool\_\-sched}]The cooling scheduler (for the \doxyref{moSA}{p.}{classmo_s_a}). \item[{\em \_\-\_\-continue}]The stopping criterion. \item[{\em \_\-\_\-acceptance\_\-criterion}]The acceptance criterion. \item[{\em \_\-\_\-perturbation}]The pertubation generator. \item[{\em \_\-\_\-full\_\-eval}]The evaluation function. \end{description}
\end{Desc}
Definition at line 127 of file moILS.h.
\subsection{Member Function Documentation}
\index{moILS@{moILS}!operator()@{operator()}}
\index{operator()@{operator()}!moILS@{moILS}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moILS}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_i_l_s_b3954a77b43fee31122d2a210b2a82d7}
{\bf Function} which launches the ILS.
The ILS has to improve a current solution. As the \doxyref{moSA}{p.}{classmo_s_a}, the \doxyref{moTS}{p.}{classmo_t_s} and the \doxyref{moHC}{p.}{classmo_h_c}, it can be used for HYBRIDATION in an evolutionnary algorithm.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]a current solution to improve. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE. \end{Desc}
Implements {\bf eoUF$<$ M::EOType \&, bool $>$}.
Definition at line 144 of file moILS.h.
References moILS$<$ M $>$::acceptance\_\-criterion, moILS$<$ M $>$::algo, moILS$<$ M $>$::cont, moILS$<$ M $>$::full\_\-eval, and moILS$<$ M $>$::perturbation.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moILS.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 239.521
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 2.0875 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moImprBestFitAspirCrit< M >) cw
(moAspirCrit< M >) cw
(eoBF< const M &, const M::EOType::Fitness &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moImprBestFitAspirCrit< M >) 0 0 box
(moAspirCrit< M >) 0 1 box
(eoBF< const M &, const M::EOType::Fitness &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,80 @@
\section{moImprBestFitAspirCrit$<$ M $>$ Class Template Reference}
\label{classmo_impr_best_fit_aspir_crit}\index{moImprBestFitAspirCrit@{moImprBestFitAspirCrit}}
One of the possible \doxyref{moAspirCrit}{p.}{classmo_aspir_crit}.
{\tt \#include $<$moImprBestFitAspirCrit.h$>$}
Inheritance diagram for moImprBestFitAspirCrit$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_impr_best_fit_aspir_crit}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef M::EOType::Fitness {\bf Fitness}\label{classmo_impr_best_fit_aspir_crit_0bc1a8c9af99781e662570c04750cca8}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moImprBestFitAspirCrit} ()\label{classmo_impr_best_fit_aspir_crit_e2c697a5cf3a7696e38bb52b6694a340}
\begin{CompactList}\small\item\em Contructor. \item\end{CompactList}\item
void {\bf init} ()\label{classmo_impr_best_fit_aspir_crit_ffa451a14ff4ea86fb8bd9fdbc348630}
\begin{CompactList}\small\item\em Initialisation procedure. \item\end{CompactList}\item
bool {\bf operator()} (const M \&\_\-\_\-move, const {\bf Fitness} \&\_\-\_\-fit)
\begin{CompactList}\small\item\em {\bf Function} that indicates if the fit is better that the already saved fit. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf Fitness} {\bf best\_\-fit}\label{classmo_impr_best_fit_aspir_crit_9e52383f0af8013b4aff0942325e1bf3}
\begin{CompactList}\small\item\em Best fitness found until now. \item\end{CompactList}\item
bool {\bf first\_\-time}\label{classmo_impr_best_fit_aspir_crit_2d5226c7dd661b33011402dbbbe78265}
\begin{CompactList}\small\item\em Indicates that a fitness has been already saved or not. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moImprBestFitAspirCrit$<$ M $>$}
One of the possible \doxyref{moAspirCrit}{p.}{classmo_aspir_crit}.
This criterion is satisfied when a given fitness is the best ever considered.
Definition at line 47 of file moImprBestFitAspirCrit.h.
\subsection{Member Function Documentation}
\index{moImprBestFitAspirCrit@{moImprBestFitAspirCrit}!operator()@{operator()}}
\index{operator()@{operator()}!moImprBestFitAspirCrit@{moImprBestFitAspirCrit}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moImprBestFitAspirCrit}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_impr_best_fit_aspir_crit_53f62fb56dcae3051a741f1fddb0204b}
{\bf Function} that indicates if the fit is better that the already saved fit.
The first time, the function only saved the current move and fitness.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitnes linked to the move. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE the first time and if \_\-\_\-fit $>$ best\_\-fit, else FALSE. \end{Desc}
Implements {\bf eoBF$<$ const M \&, const M::EOType::Fitness \&, bool $>$}.
Definition at line 77 of file moImprBestFitAspirCrit.h.
References moImprBestFitAspirCrit$<$ M $>$::best\_\-fit, and moImprBestFitAspirCrit$<$ M $>$::first\_\-time.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moImprBestFitAspirCrit.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 316.206
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.58125 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moItRandNextMove< M >) cw
(moNextMove< M >) cw
(eoBF< M &, const M::EOType &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moItRandNextMove< M >) 0 0 box
(moNextMove< M >) 0 1 box
(eoBF< M &, const M::EOType &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,98 @@
\section{moItRandNextMove$<$ M $>$ Class Template Reference}
\label{classmo_it_rand_next_move}\index{moItRandNextMove@{moItRandNextMove}}
One of the possible \doxyref{moNextMove}{p.}{classmo_next_move}.
{\tt \#include $<$moItRandNextMove.h$>$}
Inheritance diagram for moItRandNextMove$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_it_rand_next_move}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moItRandNextMove} ({\bf moRandMove}$<$ M $>$ \&\_\-\_\-rand\_\-move, unsigned int \_\-\_\-max\_\-iter)
\begin{CompactList}\small\item\em The constructor. \item\end{CompactList}\item
bool {\bf operator()} (M \&\_\-\_\-move, const {\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em Generation of a new move. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_it_rand_next_move_ee666007fc494bf4a5f0cd065e5671cf}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf moRandMove}$<$ M $>$ \& {\bf rand\_\-move}\label{classmo_it_rand_next_move_ef9410ec5e7dfa7f002e05967931c459}
\begin{CompactList}\small\item\em A move generator (generally randomly). \item\end{CompactList}\item
unsigned int {\bf max\_\-iter}\label{classmo_it_rand_next_move_dc67fa86677d7a4f982de8d8b1eba033}
\begin{CompactList}\small\item\em Iteration maximum number. \item\end{CompactList}\item
unsigned int {\bf num\_\-iter}\label{classmo_it_rand_next_move_f43494b13931d8f76b5d9d5d6469e91b}
\begin{CompactList}\small\item\em Iteration current number. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moItRandNextMove$<$ M $>$}
One of the possible \doxyref{moNextMove}{p.}{classmo_next_move}.
This class is a move (\doxyref{moMove}{p.}{classmo_move}) generator with a bound for the maximum number of iterations.
Definition at line 47 of file moItRandNextMove.h.
\subsection{Constructor \& Destructor Documentation}
\index{moItRandNextMove@{moItRandNextMove}!moItRandNextMove@{moItRandNextMove}}
\index{moItRandNextMove@{moItRandNextMove}!moItRandNextMove@{moItRandNextMove}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moItRandNextMove}$<$ M $>$::{\bf moItRandNextMove} ({\bf moRandMove}$<$ M $>$ \& {\em \_\-\_\-rand\_\-move}, unsigned int {\em \_\-\_\-max\_\-iter})\hspace{0.3cm}{\tt [inline]}}\label{classmo_it_rand_next_move_2b61b3713d482ecf71db8d941551ff7a}
The constructor.
{\bf Parameters} only for initialising the attributes.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-rand\_\-move}]the random move generator. \item[{\em \_\-\_\-max\_\-iter}]the iteration maximum number. \end{description}
\end{Desc}
Definition at line 62 of file moItRandNextMove.h.
\subsection{Member Function Documentation}
\index{moItRandNextMove@{moItRandNextMove}!operator()@{operator()}}
\index{operator()@{operator()}!moItRandNextMove@{moItRandNextMove}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moItRandNextMove}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_it_rand_next_move_92a2fbbc02a20853b9a309e99018a102}
Generation of a new move.
If the maximum number is not already reached, the current move is forgotten and remplaced by another one.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]the current move. \item[{\em \_\-\_\-sol}]the current solution. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]FALSE if the maximum number of iteration is reached, else TRUE. \end{Desc}
Implements {\bf eoBF$<$ M \&, const M::EOType \&, bool $>$}.
Definition at line 77 of file moItRandNextMove.h.
References moItRandNextMove$<$ M $>$::max\_\-iter, moItRandNextMove$<$ M $>$::num\_\-iter, and moItRandNextMove$<$ M $>$::rand\_\-move.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moItRandNextMove.h\end{CompactItemize}

View file

@ -0,0 +1,203 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 208.333
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 2.4 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 3 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moLSCheckPoint< M >) cw
(eoBF< const M &, const M::EOType &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moLSCheckPoint< M >) 0 0 box
(eoBF< const M &, const M::EOType &, void >) 0 1 box
(eoFunctorBase) 0 2 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in

View file

@ -0,0 +1,79 @@
\section{moLSCheckPoint$<$ M $>$ Class Template Reference}
\label{classmo_l_s_check_point}\index{moLSCheckPoint@{moLSCheckPoint}}
Class which allows a checkpointing system.
{\tt \#include $<$moLSCheckPoint.h$>$}
Inheritance diagram for moLSCheckPoint$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3cm]{classmo_l_s_check_point}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
void {\bf operator()} (const M \&\_\-\_\-move, const typename M::EOType \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} which launches the checkpointing. \item\end{CompactList}\item
void {\bf add} ({\bf eoBF}$<$ const M \&, const typename M::EOType \&, void $>$ \&\_\-\_\-f)
\begin{CompactList}\small\item\em Procedure which add a new function to the function vector. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
std::vector$<$ {\bf eoBF}$<$ const M \&, const typename M::EOType \&, void $>$ $\ast$ $>$ {\bf func}\label{classmo_l_s_check_point_ff2a31ee5689a804bd9a572c51a36ca4}
\begin{CompactList}\small\item\em vector of function \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moLSCheckPoint$<$ M $>$}
Class which allows a checkpointing system.
Thanks to this class, at each iteration, additionnal function can be used (and not only one).
Definition at line 46 of file moLSCheckPoint.h.
\subsection{Member Function Documentation}
\index{moLSCheckPoint@{moLSCheckPoint}!operator()@{operator()}}
\index{operator()@{operator()}!moLSCheckPoint@{moLSCheckPoint}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moLSCheckPoint}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const typename M::EOType \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_l_s_check_point_2f9c1250279e3f49ec77a66c10029f1e}
{\bf Function} which launches the checkpointing.
Each saved function is used on the current move and the current solution.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-sol}]a solution. \end{description}
\end{Desc}
Definition at line 59 of file moLSCheckPoint.h.
References moLSCheckPoint$<$ M $>$::func.\index{moLSCheckPoint@{moLSCheckPoint}!add@{add}}
\index{add@{add}!moLSCheckPoint@{moLSCheckPoint}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moLSCheckPoint}$<$ M $>$::add ({\bf eoBF}$<$ const M \&, const typename M::EOType \&, void $>$ \& {\em \_\-\_\-f})\hspace{0.3cm}{\tt [inline]}}\label{classmo_l_s_check_point_66be5fe2944bcdd752f1e58105e969a6}
Procedure which add a new function to the function vector.
The new function is added at the end of the vector. \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-f}]a new function to add. \end{description}
\end{Desc}
Definition at line 74 of file moLSCheckPoint.h.
References moLSCheckPoint$<$ M $>$::func.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moLSCheckPoint.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 476.19
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.05 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moLinearCoolingSchedule) cw
(moCoolingSchedule) cw
(eoUF< double &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moLinearCoolingSchedule) 0 0 box
(moCoolingSchedule) 0 1 box
(eoUF< double &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,85 @@
\section{moLinearCoolingSchedule Class Reference}
\label{classmo_linear_cooling_schedule}\index{moLinearCoolingSchedule@{moLinearCoolingSchedule}}
One of the possible \doxyref{moCoolingSchedule}{p.}{classmo_cooling_schedule}.
{\tt \#include $<$moLinearCoolingSchedule.h$>$}
Inheritance diagram for moLinearCoolingSchedule::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_linear_cooling_schedule}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moLinearCoolingSchedule} (double \_\-\_\-threshold, double \_\-\_\-quantity)
\begin{CompactList}\small\item\em Simple constructor. \item\end{CompactList}\item
bool {\bf operator()} (double \&\_\-\_\-temp)
\begin{CompactList}\small\item\em {\bf Function} which proceeds to the cooling. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
double {\bf threshold}\label{classmo_linear_cooling_schedule_e7f539f986801ea71392c4a55ba08a76}
\begin{CompactList}\small\item\em The temperature threhold. \item\end{CompactList}\item
double {\bf quantity}\label{classmo_linear_cooling_schedule_6159dc39ceda89b23ffdab3d6ce8d8ed}
\begin{CompactList}\small\item\em The quantity that allows the temperature to decrease. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
One of the possible \doxyref{moCoolingSchedule}{p.}{classmo_cooling_schedule}.
An another very simple cooling schedule, the temperature decrease according to a quantity while the temperature is greater than a threshold.
Definition at line 47 of file moLinearCoolingSchedule.h.
\subsection{Constructor \& Destructor Documentation}
\index{moLinearCoolingSchedule@{moLinearCoolingSchedule}!moLinearCoolingSchedule@{moLinearCoolingSchedule}}
\index{moLinearCoolingSchedule@{moLinearCoolingSchedule}!moLinearCoolingSchedule@{moLinearCoolingSchedule}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}moLinearCoolingSchedule::moLinearCoolingSchedule (double {\em \_\-\_\-threshold}, double {\em \_\-\_\-quantity})\hspace{0.3cm}{\tt [inline]}}\label{classmo_linear_cooling_schedule_2fdde7b1520d5a41251627e81cc9c13d}
Simple constructor.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-threshold}]the threshold. \item[{\em \_\-\_\-quantity}]the quantity used to descrease the temperature. \end{description}
\end{Desc}
Definition at line 56 of file moLinearCoolingSchedule.h.
\subsection{Member Function Documentation}
\index{moLinearCoolingSchedule@{moLinearCoolingSchedule}!operator()@{operator()}}
\index{operator()@{operator()}!moLinearCoolingSchedule@{moLinearCoolingSchedule}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool moLinearCoolingSchedule::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_linear_cooling_schedule_814b109fdfd9426a92a5444b05014da3}
{\bf Function} which proceeds to the cooling.
It decreases the temperature and indicates if it is greater than the threshold.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-temp}]the current temperature. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]if the new temperature (current temperature - quantity) is greater than the threshold. \end{Desc}
Implements {\bf eoUF$<$ double \&, bool $>$}.
Definition at line 66 of file moLinearCoolingSchedule.h.
References quantity, and threshold.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moLinearCoolingSchedule.h\end{CompactItemize}

View file

@ -0,0 +1,203 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 410.959
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.21667 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 3 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moMove< EOT >) cw
(eoUF< EOT &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moMove< EOT >) 0 0 box
(eoUF< EOT &, void >) 0 1 box
(eoFunctorBase) 0 2 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in

View file

@ -0,0 +1,35 @@
\section{moMove$<$ EOT $>$ Class Template Reference}
\label{classmo_move}\index{moMove@{moMove}}
Definition of a move.
{\tt \#include $<$moMove.h$>$}
Inheritance diagram for moMove$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3cm]{classmo_move}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef EOT {\bf EOType}\label{classmo_move_7fb853a91ba1319530529e515380bbba}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moMove$<$ EOT $>$}
Definition of a move.
A move transforms a solution to another close solution. It describes how a solution can be modified to another one.
Definition at line 48 of file moMove.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moMove.h\end{CompactItemize}

View file

@ -0,0 +1,221 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 163.934
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 3.05 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 5 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moMoveExpl< M >) cw
(eoBF< const M::EOType &, M::EOType &, void >) cw
(eoFunctorBase) cw
(moMoveLoopExpl< M >) cw
(moHCMoveLoopExpl< M >) cw
(moTSMoveLoopExpl< M >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moMoveExpl< M >) 0.5 2 box
(eoBF< const M::EOType &, M::EOType &, void >) 0.5 3 box
(eoFunctorBase) 0.5 4 box
(moMoveLoopExpl< M >) 0.5 1 box
(moHCMoveLoopExpl< M >) 0 0 box
(moTSMoveLoopExpl< M >) 1 0 box
% ----- relations -----
solid
0 0.5 2 out
solid
1 0.5 3 in
solid
0 0.5 3 out
solid
1 0.5 4 in
solid
1 0.5 1.25 out
solid
0 0.5 1.75 in
solid
1 0.5 0.25 out
solid
0 1 1 conn
solid
0 0 0.75 in
solid
0 1 0.75 in

View file

@ -0,0 +1,29 @@
\section{moMoveExpl$<$ M $>$ Class Template Reference}
\label{classmo_move_expl}\index{moMoveExpl@{moMoveExpl}}
Description of a move (\doxyref{moMove}{p.}{classmo_move}) explorer.
{\tt \#include $<$moMoveExpl.h$>$}
Inheritance diagram for moMoveExpl$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.59016cm]{classmo_move_expl}
\end{center}
\end{figure}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moMoveExpl$<$ M $>$}
Description of a move (\doxyref{moMove}{p.}{classmo_move}) explorer.
Only a description...See \doxyref{moMoveLoopExpl}{p.}{classmo_move_loop_expl}.
Definition at line 46 of file moMoveExpl.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moMoveExpl.h\end{CompactItemize}

View file

@ -0,0 +1,203 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 160.858
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 3.10833 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 3 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moMoveIncrEval< M >) cw
(eoBF< const M &, const M::EOType &, M::EOType::Fitness >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moMoveIncrEval< M >) 0 0 box
(eoBF< const M &, const M::EOType &, M::EOType::Fitness >) 0 1 box
(eoFunctorBase) 0 2 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in

View file

@ -0,0 +1,29 @@
\section{moMoveIncrEval$<$ M $>$ Class Template Reference}
\label{classmo_move_incr_eval}\index{moMoveIncrEval@{moMoveIncrEval}}
(generally) Efficient evaluation function based a move and a solution.
{\tt \#include $<$moMoveIncrEval.h$>$}
Inheritance diagram for moMoveIncrEval$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3cm]{classmo_move_incr_eval}
\end{center}
\end{figure}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moMoveIncrEval$<$ M $>$}
(generally) Efficient evaluation function based a move and a solution.
From a move and a solution, it computes a new fitness that could be associated to the solution if this one is updated.
Definition at line 49 of file moMoveIncrEval.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moMoveIncrEval.h\end{CompactItemize}

View file

@ -0,0 +1,203 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 237.154
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 2.10833 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 3 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moMoveInit< M >) cw
(eoBF< M &, const M::EOType &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moMoveInit< M >) 0 0 box
(eoBF< M &, const M::EOType &, void >) 0 1 box
(eoFunctorBase) 0 2 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in

View file

@ -0,0 +1,29 @@
\section{moMoveInit$<$ M $>$ Class Template Reference}
\label{classmo_move_init}\index{moMoveInit@{moMoveInit}}
Move (\doxyref{moMove}{p.}{classmo_move}) initializer.
{\tt \#include $<$moMoveInit.h$>$}
Inheritance diagram for moMoveInit$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3cm]{classmo_move_init}
\end{center}
\end{figure}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moMoveInit$<$ M $>$}
Move (\doxyref{moMove}{p.}{classmo_move}) initializer.
Class which allows to initiase a move. Only a description... An object that herits from this class needs to be designed to be used.
Definition at line 47 of file moMoveInit.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moMoveInit.h\end{CompactItemize}

View file

@ -0,0 +1,221 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 163.934
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 3.05 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 5 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moMoveLoopExpl< M >) cw
(moMoveExpl< M >) cw
(eoBF< const M::EOType &, M::EOType &, void >) cw
(eoFunctorBase) cw
(moHCMoveLoopExpl< M >) cw
(moTSMoveLoopExpl< M >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moMoveLoopExpl< M >) 0.5 1 box
(moMoveExpl< M >) 0.5 2 box
(eoBF< const M::EOType &, M::EOType &, void >) 0.5 3 box
(eoFunctorBase) 0.5 4 box
(moHCMoveLoopExpl< M >) 0 0 box
(moTSMoveLoopExpl< M >) 1 0 box
% ----- relations -----
solid
0 0.5 1 out
solid
1 0.5 2 in
solid
0 0.5 2 out
solid
1 0.5 3 in
solid
0 0.5 3 out
solid
1 0.5 4 in
solid
1 0.5 0.25 out
solid
0 1 1 conn
solid
0 0 0.75 in
solid
0 1 0.75 in

View file

@ -0,0 +1,29 @@
\section{moMoveLoopExpl$<$ M $>$ Class Template Reference}
\label{classmo_move_loop_expl}\index{moMoveLoopExpl@{moMoveLoopExpl}}
Class which describes an iterative explorer.
{\tt \#include $<$moMoveLoopExpl.h$>$}
Inheritance diagram for moMoveLoopExpl$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.59016cm]{classmo_move_loop_expl}
\end{center}
\end{figure}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moMoveLoopExpl$<$ M $>$}
Class which describes an iterative explorer.
Only a description... \doxyref{moHCMoveLoopExpl}{p.}{classmo_h_c_move_loop_expl} and \doxyref{moTSMoveLoopExpl}{p.}{classmo_t_s_move_loop_expl} are exemples of class that are a \doxyref{moMoveLoopExpl}{p.}{classmo_move_loop_expl}.
Definition at line 46 of file moMoveLoopExpl.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moMoveLoopExpl.h\end{CompactItemize}

View file

@ -0,0 +1,219 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 101.01
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 4.95 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 3 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moMoveSelect< M >) cw
(eoBF< M &, M::EOType::Fitness &, void >) cw
(eoFunctorBase) cw
(moBestImprSelect< M >) cw
(moFirstImprSelect< M >) cw
(moRandImprSelect< M >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moMoveSelect< M >) 1 1 box
(eoBF< M &, M::EOType::Fitness &, void >) 1 2 box
(eoFunctorBase) 1 3 box
(moBestImprSelect< M >) 0 0 box
(moFirstImprSelect< M >) 1 0 box
(moRandImprSelect< M >) 2 0 box
% ----- relations -----
solid
0 1 1 out
solid
1 1 2 in
solid
0 1 2 out
solid
1 1 3 in
solid
1 1 0.25 out
solid
0 2 1 conn
solid
0 0 0.75 in
solid
0 1 0.75 in
solid
0 2 0.75 in

View file

@ -0,0 +1,77 @@
\section{moMoveSelect$<$ M $>$ Class Template Reference}
\label{classmo_move_select}\index{moMoveSelect@{moMoveSelect}}
Class that describes a move selector (\doxyref{moMove}{p.}{classmo_move}).
{\tt \#include $<$moMoveSelect.h$>$}
Inheritance diagram for moMoveSelect$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.82828cm]{classmo_move_select}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef M::EOType::Fitness {\bf Fitness}\label{classmo_move_select_8148ccc0e6fbd209c3fe6829559895c8}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
virtual void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit)=0
\begin{CompactList}\small\item\em Procedure which initialises all that the move selector needs including the initial fitness. \item\end{CompactList}\item
virtual bool {\bf update} (const M \&\_\-\_\-move, const {\bf Fitness} \&\_\-\_\-fit)=0
\begin{CompactList}\small\item\em {\bf Function} which updates the best solutions. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moMoveSelect$<$ M $>$}
Class that describes a move selector (\doxyref{moMove}{p.}{classmo_move}).
It iteratively considers some moves (\doxyref{moMove}{p.}{classmo_move}) and their associated fitnesses. The best move is so regularly updated. At any time, it could be accessed.
Definition at line 57 of file moMoveSelect.h.
\subsection{Member Function Documentation}
\index{moMoveSelect@{moMoveSelect}!init@{init}}
\index{init@{init}!moMoveSelect@{moMoveSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf moMoveSelect}$<$ M $>$::init (const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e}
Procedure which initialises all that the move selector needs including the initial fitness.
In order to know the fitness of the solution, for which the neighborhood will be soon explored
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-fit}]the current fitness. \end{description}
\end{Desc}
Implemented in {\bf moBestImprSelect$<$ M $>$} \doxyref{}{p.}{classmo_best_impr_select_2d2abf9aa17dc77cbb4f41810ab7b956}, {\bf moFirstImprSelect$<$ M $>$} \doxyref{}{p.}{classmo_first_impr_select_4c5ce18ede46247a439c68f6954a4055}, and {\bf moRandImprSelect$<$ M $>$} \doxyref{}{p.}{classmo_rand_impr_select_a19726a1509cff874801615d63a3b5d9}.\index{moMoveSelect@{moMoveSelect}!update@{update}}
\index{update@{update}!moMoveSelect@{moMoveSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual bool {\bf moMoveSelect}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_move_select_7c157b6e64fd417acf6e900059204eb1}
{\bf Function} which updates the best solutions.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a new move. \item[{\em \_\-\_\-fit}]a fitness linked to the new move. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]a boolean that expresses the need to resume the exploration. \end{Desc}
Implemented in {\bf moBestImprSelect$<$ M $>$} \doxyref{}{p.}{classmo_best_impr_select_d10e3e6f8a0277731e95ef506d064d6d}, and {\bf moRandImprSelect$<$ M $>$} \doxyref{}{p.}{classmo_rand_impr_select_60ae5548560caee7e28d5ed2446186c9}.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moMoveSelect.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 316.206
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.58125 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moNextMove< M >) cw
(eoBF< M &, const M::EOType &, bool >) cw
(eoFunctorBase) cw
(moItRandNextMove< M >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moNextMove< M >) 0 1 box
(eoBF< M &, const M::EOType &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
(moItRandNextMove< M >) 0 0 box
% ----- relations -----
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in
solid
1 0 0.25 out
solid
0 0 0.75 in

View file

@ -0,0 +1,29 @@
\section{moNextMove$<$ M $>$ Class Template Reference}
\label{classmo_next_move}\index{moNextMove@{moNextMove}}
Class which allows to generate a new move (\doxyref{moMove}{p.}{classmo_move}).
{\tt \#include $<$moNextMove.h$>$}
Inheritance diagram for moNextMove$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_next_move}
\end{center}
\end{figure}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moNextMove$<$ M $>$}
Class which allows to generate a new move (\doxyref{moMove}{p.}{classmo_move}).
Useful for the explorer (for \doxyref{moTS}{p.}{classmo_t_s} or \doxyref{moHC}{p.}{classmo_h_c}). Does nothing... An object that herits from this class needs to be designed for being used.
Definition at line 47 of file moNextMove.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moNextMove.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 239.521
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 2.0875 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moNoAspirCrit< M >) cw
(moAspirCrit< M >) cw
(eoBF< const M &, const M::EOType::Fitness &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moNoAspirCrit< M >) 0 0 box
(moAspirCrit< M >) 0 1 box
(eoBF< const M &, const M::EOType::Fitness &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,68 @@
\section{moNoAspirCrit$<$ M $>$ Class Template Reference}
\label{classmo_no_aspir_crit}\index{moNoAspirCrit@{moNoAspirCrit}}
One of the possible aspiration criterion (\doxyref{moAspirCrit}{p.}{classmo_aspir_crit}).
{\tt \#include $<$moNoAspirCrit.h$>$}
Inheritance diagram for moNoAspirCrit$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_no_aspir_crit}
\end{center}
\end{figure}
\subsection*{Private Member Functions}
\begin{CompactItemize}
\item
bool {\bf operator()} (const M \&\_\-\_\-move, const typename M::EOType::Fitness \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} which describes the aspiration criterion behaviour. \item\end{CompactList}\item
void {\bf init} ()
\begin{CompactList}\small\item\em Procedure which initialises all that needs a \doxyref{moNoAspirCrit}{p.}{classmo_no_aspir_crit}. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moNoAspirCrit$<$ M $>$}
One of the possible aspiration criterion (\doxyref{moAspirCrit}{p.}{classmo_aspir_crit}).
The simplest : never satisfied.
Definition at line 46 of file moNoAspirCrit.h.
\subsection{Member Function Documentation}
\index{moNoAspirCrit@{moNoAspirCrit}!operator()@{operator()}}
\index{operator()@{operator()}!moNoAspirCrit@{moNoAspirCrit}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moNoAspirCrit}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const typename M::EOType::Fitness \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, private]}}\label{classmo_no_aspir_crit_8a7180a8d5c25bfb6727d0b59551b0f8}
{\bf Function} which describes the aspiration criterion behaviour.
Does nothing.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-sol}]a fitness. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]FALSE. \end{Desc}
Definition at line 57 of file moNoAspirCrit.h.\index{moNoAspirCrit@{moNoAspirCrit}!init@{init}}
\index{init@{init}!moNoAspirCrit@{moNoAspirCrit}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moNoAspirCrit}$<$ M $>$::init ()\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmo_no_aspir_crit_f3a286fc4c2d36bd390ba9a3074f3037}
Procedure which initialises all that needs a \doxyref{moNoAspirCrit}{p.}{classmo_no_aspir_crit}.
Nothing...
Implements {\bf moAspirCrit$<$ M $>$} \doxyref{}{p.}{classmo_aspir_crit_a8ce84510a5ec7c9078381e542c6d140}.
Definition at line 68 of file moNoAspirCrit.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moNoAspirCrit.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 386.473
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.29375 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moNoFitImprSolContinue< EOT >) cw
(moSolContinue< EOT >) cw
(eoUF< const EOT &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moNoFitImprSolContinue< EOT >) 0 0 box
(moSolContinue< EOT >) 0 1 box
(eoUF< const EOT &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,112 @@
\section{moNoFitImprSolContinue$<$ EOT $>$ Class Template Reference}
\label{classmo_no_fit_impr_sol_continue}\index{moNoFitImprSolContinue@{moNoFitImprSolContinue}}
One possible stop criterion for a solution-based heuristic.
{\tt \#include $<$moNoFitImprSolContinue.h$>$}
Inheritance diagram for moNoFitImprSolContinue$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_no_fit_impr_sol_continue}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef EOT::Fitness {\bf Fitness}\label{classmo_no_fit_impr_sol_continue_64c184de66bb37d75d53aa600ac947b3}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moNoFitImprSolContinue} (unsigned int \_\-\_\-maxNumberOfIterationWithoutImprovement)
\begin{CompactList}\small\item\em Basic constructor. \item\end{CompactList}\item
bool {\bf operator()} (const EOT \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} that activates the stopping criterion. \item\end{CompactList}\item
void {\bf init} ()
\begin{CompactList}\small\item\em Procedure which allows to initialise all the stuff needed. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
unsigned int {\bf maxNumberOfIterationsWithoutImprovement}\label{classmo_no_fit_impr_sol_continue_03612ffc3af9d943c1b1d2cde09d461b}
\begin{CompactList}\small\item\em Maximum number of iterations without improvement allowed. \item\end{CompactList}\item
bool {\bf firstFitnessSaved}\label{classmo_no_fit_impr_sol_continue_ca3591e47a075b59e0826f31234c71ef}
\begin{CompactList}\small\item\em Flag that this is the first time that the fitness is used. \item\end{CompactList}\item
{\bf Fitness} {\bf fitness}\label{classmo_no_fit_impr_sol_continue_3d3d2b43a4dd73e38689cc0018d44ee7}
\begin{CompactList}\small\item\em Current Fitness. \item\end{CompactList}\item
unsigned int {\bf counter}\label{classmo_no_fit_impr_sol_continue_46fc008a8f7cd06dcaaeb4016b433adb}
\begin{CompactList}\small\item\em The iteration couter. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moNoFitImprSolContinue$<$ EOT $>$}
One possible stop criterion for a solution-based heuristic.
The stop criterion corresponds to a maximum number of iterations without improvement.
Definition at line 46 of file moNoFitImprSolContinue.h.
\subsection{Constructor \& Destructor Documentation}
\index{moNoFitImprSolContinue@{moNoFitImprSolContinue}!moNoFitImprSolContinue@{moNoFitImprSolContinue}}
\index{moNoFitImprSolContinue@{moNoFitImprSolContinue}!moNoFitImprSolContinue@{moNoFitImprSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf moNoFitImprSolContinue}$<$ EOT $>$::{\bf moNoFitImprSolContinue} (unsigned int {\em \_\-\_\-maxNumberOfIterationWithoutImprovement})\hspace{0.3cm}{\tt [inline]}}\label{classmo_no_fit_impr_sol_continue_a447aa0d8ed4ddf6fe47c805269cac6c}
Basic constructor.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-maxNumberOfIterationWithoutImprovement}]The number of iterations without fitness improvement to reach for stop. \end{description}
\end{Desc}
Definition at line 58 of file moNoFitImprSolContinue.h.
\subsection{Member Function Documentation}
\index{moNoFitImprSolContinue@{moNoFitImprSolContinue}!operator()@{operator()}}
\index{operator()@{operator()}!moNoFitImprSolContinue@{moNoFitImprSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool {\bf moNoFitImprSolContinue}$<$ EOT $>$::operator() (const EOT \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_no_fit_impr_sol_continue_dbd663623cae56ec76ee504ecb226fed}
{\bf Function} that activates the stopping criterion.
Indicates if the fitness has not been improved since a given number of iterations (after a minimum of iterations). \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]the current solution. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true or false. \end{Desc}
Implements {\bf eoUF$<$ const EOT \&, bool $>$}.
Definition at line 68 of file moNoFitImprSolContinue.h.
References moNoFitImprSolContinue$<$ EOT $>$::counter, moNoFitImprSolContinue$<$ EOT $>$::firstFitnessSaved, moNoFitImprSolContinue$<$ EOT $>$::fitness, and moNoFitImprSolContinue$<$ EOT $>$::maxNumberOfIterationsWithoutImprovement.\index{moNoFitImprSolContinue@{moNoFitImprSolContinue}!init@{init}}
\index{init@{init}!moNoFitImprSolContinue@{moNoFitImprSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf moNoFitImprSolContinue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_no_fit_impr_sol_continue_21641c0a38a4501baae6133cbc591de4}
Procedure which allows to initialise all the stuff needed.
It can be also used to reinitialize all the needed things.
Implements {\bf moSolContinue$<$ EOT $>$} \doxyref{}{p.}{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7}.
Definition at line 102 of file moNoFitImprSolContinue.h.
References moNoFitImprSolContinue$<$ EOT $>$::counter, and moNoFitImprSolContinue$<$ EOT $>$::firstFitnessSaved.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moNoFitImprSolContinue.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 303.03
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moRandImprSelect< M >) cw
(moMoveSelect< M >) cw
(eoBF< M &, M::EOType::Fitness &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moRandImprSelect< M >) 0 0 box
(moMoveSelect< M >) 0 1 box
(eoBF< M &, M::EOType::Fitness &, void >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,126 @@
\section{moRandImprSelect$<$ M $>$ Class Template Reference}
\label{classmo_rand_impr_select}\index{moRandImprSelect@{moRandImprSelect}}
One of the possible \doxyref{moMove}{p.}{classmo_move} selector (\doxyref{moMoveSelect}{p.}{classmo_move_select}).
{\tt \#include $<$moRandImprSelect.h$>$}
Inheritance diagram for moRandImprSelect$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_rand_impr_select}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef M::EOType::Fitness {\bf Fitness}\label{classmo_rand_impr_select_3bff2fdb963297430543c82ffb567a5c}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit)
\begin{CompactList}\small\item\em Procedure which all that needs a \doxyref{moRandImprSelect}{p.}{classmo_rand_impr_select}. \item\end{CompactList}\item
bool {\bf update} (const M \&\_\-\_\-move, const {\bf Fitness} \&\_\-\_\-fit)
\begin{CompactList}\small\item\em {\bf Function} that updates the fitness and move vectors. \item\end{CompactList}\item
void {\bf operator()} (M \&\_\-\_\-move, {\bf Fitness} \&\_\-\_\-fit) throw (EmptySelection)
\begin{CompactList}\small\item\em The move selection. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf Fitness} {\bf init\_\-fit}\label{classmo_rand_impr_select_d153c277a0a2ea95ac484210d445b40e}
\begin{CompactList}\small\item\em Fitness of the current solution. \item\end{CompactList}\item
std::vector$<$ {\bf Fitness} $>$ {\bf vect\_\-better\_\-fit}\label{classmo_rand_impr_select_05c7c3b858e8a25632f2f5c86b0c97a3}
\begin{CompactList}\small\item\em Candidate fitnesse vector. \item\end{CompactList}\item
std::vector$<$ M $>$ {\bf vect\_\-better\_\-moves}\label{classmo_rand_impr_select_2ace12bd179144fa71d56324694201f5}
\begin{CompactList}\small\item\em Candidate move vector. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moRandImprSelect$<$ M $>$}
One of the possible \doxyref{moMove}{p.}{classmo_move} selector (\doxyref{moMoveSelect}{p.}{classmo_move_select}).
All the neighbors are considered. One of them that enables an improvment of the objective function is choosen.
Definition at line 50 of file moRandImprSelect.h.
\subsection{Member Function Documentation}
\index{moRandImprSelect@{moRandImprSelect}!init@{init}}
\index{init@{init}!moRandImprSelect@{moRandImprSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moRandImprSelect}$<$ M $>$::init (const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_a19726a1509cff874801615d63a3b5d9}
Procedure which all that needs a \doxyref{moRandImprSelect}{p.}{classmo_rand_impr_select}.
Give a value to the initialise fitness. Clean the move and fitness vectors.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-fit}]the current best fitness \end{description}
\end{Desc}
Implements {\bf moMoveSelect$<$ M $>$} \doxyref{}{p.}{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e}.
Definition at line 65 of file moRandImprSelect.h.
References moRandImprSelect$<$ M $>$::init\_\-fit, moRandImprSelect$<$ M $>$::vect\_\-better\_\-fit, and moRandImprSelect$<$ M $>$::vect\_\-better\_\-moves.\index{moRandImprSelect@{moRandImprSelect}!update@{update}}
\index{update@{update}!moRandImprSelect@{moRandImprSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moRandImprSelect}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_60ae5548560caee7e28d5ed2446186c9}
{\bf Function} that updates the fitness and move vectors.
if a move give a better fitness than the initial fitness, it is saved and the fitness too.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a new move. \item[{\em \_\-\_\-fit}]a new fitness associated to the new move. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE. \end{Desc}
Implements {\bf moMoveSelect$<$ M $>$} \doxyref{}{p.}{classmo_move_select_7c157b6e64fd417acf6e900059204eb1}.
Definition at line 81 of file moRandImprSelect.h.
References moRandImprSelect$<$ M $>$::init\_\-fit, moRandImprSelect$<$ M $>$::vect\_\-better\_\-fit, and moRandImprSelect$<$ M $>$::vect\_\-better\_\-moves.\index{moRandImprSelect@{moRandImprSelect}!operator()@{operator()}}
\index{operator()@{operator()}!moRandImprSelect@{moRandImprSelect}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moRandImprSelect}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf EmptySelection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_5ee57f77a450c0a9ce50bfccf3ad2a55}
The move selection.
One the saved move is randomly chosen.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]the reference of the move that can be initialised by the function. \item[{\em \_\-\_\-fit}]the reference of the fitness that can be initialised by the function. \end{description}
\end{Desc}
\begin{Desc}
\item[Exceptions:]
\begin{description}
\item[{\em \doxyref{EmptySelection}{p.}{class_empty_selection}}]If no move which improves the current fitness are found. \end{description}
\end{Desc}
Implements {\bf eoBF$<$ M \&, M::EOType::Fitness \&, void $>$}.
Definition at line 102 of file moRandImprSelect.h.
References eoRng::random(), moRandImprSelect$<$ M $>$::vect\_\-better\_\-fit, and moRandImprSelect$<$ M $>$::vect\_\-better\_\-moves.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moRandImprSelect.h\end{CompactItemize}

View file

@ -0,0 +1,203 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 454.545
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.1 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 3 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moRandMove< M >) cw
(eoUF< M &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moRandMove< M >) 0 0 box
(eoUF< M &, void >) 0 1 box
(eoFunctorBase) 0 2 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in

View file

@ -0,0 +1,29 @@
\section{moRandMove$<$ M $>$ Class Template Reference}
\label{classmo_rand_move}\index{moRandMove@{moRandMove}}
Random move generator.
{\tt \#include $<$moRandMove.h$>$}
Inheritance diagram for moRandMove$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3cm]{classmo_rand_move}
\end{center}
\end{figure}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moRandMove$<$ M $>$}
Random move generator.
Only a description... An object that herits from this class needs to be designed in order to use a \doxyref{moSA}{p.}{classmo_s_a}.
Definition at line 46 of file moRandMove.h.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moRandMove.h\end{CompactItemize}

View file

@ -0,0 +1,221 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 271.739
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 5 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moSA< M >) cw
(moAlgo< M::EOType >) cw
(eoMonOp< M::EOType >) cw
(eoOp< EOType >) cw
(eoUF< M::EOType &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moSA< M >) 0.5 0 box
(moAlgo< M::EOType >) 0.5 1 box
(eoMonOp< M::EOType >) 0.5 2 box
(eoOp< EOType >) 0 3 box
(eoUF< M::EOType &, bool >) 1 3 box
(eoFunctorBase) 1 4 box
% ----- relations -----
solid
0 0.5 0 out
solid
1 0.5 1 in
solid
0 0.5 1 out
solid
1 0.5 2 in
solid
0 0.5 2 out
solid
0 1 3 conn
solid
1 0 3 in
solid
1 1 3 in
solid
0 1 3 out
solid
1 1 4 in

View file

@ -0,0 +1,110 @@
\section{moSA$<$ M $>$ Class Template Reference}
\label{classmo_s_a}\index{moSA@{moSA}}
Simulated Annealing (SA).
{\tt \#include $<$moSA.h$>$}
Inheritance diagram for moSA$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5cm]{classmo_s_a}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moSA} ({\bf moRandMove}$<$ M $>$ \&\_\-\_\-move\_\-rand, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, double \_\-\_\-init\_\-temp, {\bf moCoolingSchedule} \&\_\-\_\-cool\_\-sched, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em SA constructor. \item\end{CompactList}\item
bool {\bf operator()} ({\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em function that launches the SA algorithm. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_s_a_d5d64a8797bdedc7b3af7893aded0bd5}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item
typedef EOT::Fitness {\bf Fitness}\label{classmo_s_a_97f1a40d5ab5a0b3f878d0347b34804b}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf moRandMove}$<$ M $>$ \& {\bf move\_\-rand}\label{classmo_s_a_71c49935b63a202d25888a5f86121fec}
\begin{CompactList}\small\item\em A move generator (generally randomly). \item\end{CompactList}\item
{\bf moMoveIncrEval}$<$ M $>$ \& {\bf incr\_\-eval}\label{classmo_s_a_4c3be32e9832e465b24e6d33559356bc}
\begin{CompactList}\small\item\em A (generally) efficient evaluation function. \item\end{CompactList}\item
{\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\bf cont}\label{classmo_s_a_54484c8a514866ea496e0058c2e09716}
\begin{CompactList}\small\item\em Stopping criterion before temperature update. \item\end{CompactList}\item
double {\bf init\_\-temp}\label{classmo_s_a_f1af7636b52aa5f6b381f8187b667bd4}
\begin{CompactList}\small\item\em Initial temperature. \item\end{CompactList}\item
{\bf moCoolingSchedule} \& {\bf cool\_\-sched}\label{classmo_s_a_11c7d0cab649b7d680dd85bb74cb4ff6}
\begin{CompactList}\small\item\em The cooling schedule. \item\end{CompactList}\item
{\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_s_a_bcd6a940046f23dd741444c0b85edf2c}
\begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moSA$<$ M $>$}
Simulated Annealing (SA).
Class that describes a Simulated Annealing algorithm.
Definition at line 55 of file moSA.h.
\subsection{Constructor \& Destructor Documentation}
\index{moSA@{moSA}!moSA@{moSA}}
\index{moSA@{moSA}!moSA@{moSA}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moSA}$<$ M $>$::{\bf moSA} ({\bf moRandMove}$<$ M $>$ \& {\em \_\-\_\-move\_\-rand}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, double {\em \_\-\_\-init\_\-temp}, {\bf moCoolingSchedule} \& {\em \_\-\_\-cool\_\-sched}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_s_a_01f6a44483e5a7abbce33eb480b6a9b9}
SA constructor.
All the boxes used by a SA need to be given.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-rand}]a move generator (generally randomly). \item[{\em \_\-\_\-incr\_\-eval}]a (generaly) efficient evaluation function \item[{\em \_\-\_\-cont}]a stopping criterion. \item[{\em \_\-\_\-init\_\-temp}]the initial temperature. \item[{\em \_\-\_\-cool\_\-sched}]a cooling schedule, describes how the temperature is modified. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description}
\end{Desc}
Definition at line 83 of file moSA.h.
\subsection{Member Function Documentation}
\index{moSA@{moSA}!operator()@{operator()}}
\index{operator()@{operator()}!moSA@{moSA}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moSA}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_s_a_0e4c54b57bc13fcbd4763883b8f719e5}
function that launches the SA algorithm.
As a \doxyref{moTS}{p.}{classmo_t_s} or a \doxyref{moHC}{p.}{classmo_h_c}, the SA can be used for HYBRIDATION in an evolutionary algorithm.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]a solution to improve. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE. \end{Desc}
Implements {\bf eoUF$<$ M::EOType \&, bool $>$}.
Definition at line 105 of file moSA.h.
References moSA$<$ M $>$::cont, moSA$<$ M $>$::cool\_\-sched, moSA$<$ M $>$::full\_\-eval, moSA$<$ M $>$::incr\_\-eval, moSA$<$ M $>$::init\_\-temp, moSA$<$ M $>$::move\_\-rand, and eoRng::uniform().
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moSA.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 277.778
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.8 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moSimpleMoveTabuList< M >) cw
(moTabuList< M >) cw
(eoBF< const M &, const M::EOType &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moSimpleMoveTabuList< M >) 0 0 box
(moTabuList< M >) 0 1 box
(eoBF< const M &, const M::EOType &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,147 @@
\section{moSimpleMoveTabuList$<$ M $>$ Class Template Reference}
\label{classmo_simple_move_tabu_list}\index{moSimpleMoveTabuList@{moSimpleMoveTabuList}}
Class describing a move tabu list with a limited memory.
{\tt \#include $<$moSimpleMoveTabuList.h$>$}
Inheritance diagram for moSimpleMoveTabuList$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_simple_move_tabu_list}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_simple_move_tabu_list_91286ff3ba6b1e9e1db9e4fdade2edb7}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moSimpleMoveTabuList} (unsigned int \_\-\_\-size)\label{classmo_simple_move_tabu_list_12798ce0bc3a2ee031fb301290ed6d79}
\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item
bool {\bf operator()} (const M \&\_\-\_\-move, const {\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} that indicates if, in a given state, the \_\-move is tabu or not. \item\end{CompactList}\item
void {\bf add} (const M \&\_\-\_\-move, const {\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em Procedure to add a move in the tabu list. \item\end{CompactList}\item
void {\bf update} ()
\begin{CompactList}\small\item\em Procedure that updates the tabu list content. \item\end{CompactList}\item
void {\bf init} ()
\begin{CompactList}\small\item\em Procedure which initialises the tabu list. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Member Functions}
\begin{CompactItemize}
\item
void {\bf removeMove} (const M \&\_\-\_\-move)
\begin{CompactList}\small\item\em Procedure that removes a given move from the tabu list (if it is into, else do nothing). \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
unsigned int {\bf maxSize}\label{classmo_simple_move_tabu_list_e48848e9e5c9c8435475cbdf21658e23}
\begin{CompactList}\small\item\em The maximum size of the tabu list. \item\end{CompactList}\item
unsigned int {\bf currentSize}\label{classmo_simple_move_tabu_list_f1f9524e62d48f3688aa58a6055ccceb}
\begin{CompactList}\small\item\em The current size of the tabu list. \item\end{CompactList}\item
std::list$<$ M $>$ {\bf tabuList}\label{classmo_simple_move_tabu_list_d91bc838361524720616b44eda9b2c3a}
\begin{CompactList}\small\item\em The move tabu list. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moSimpleMoveTabuList$<$ M $>$}
Class describing a move tabu list with a limited memory.
Definition at line 47 of file moSimpleMoveTabuList.h.
\subsection{Member Function Documentation}
\index{moSimpleMoveTabuList@{moSimpleMoveTabuList}!operator()@{operator()}}
\index{operator()@{operator()}!moSimpleMoveTabuList@{moSimpleMoveTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moSimpleMoveTabuList}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_move_tabu_list_bb7fe9da28617f56734af71c42c8265a}
{\bf Function} that indicates if, in a given state, the \_\-move is tabu or not.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]A given \doxyref{moMove}{p.}{classmo_move}. \item[{\em \_\-\_\-sol}]A solution. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true or false. \end{Desc}
Implements {\bf eoBF$<$ const M \&, const M::EOType \&, bool $>$}.
Definition at line 71 of file moSimpleMoveTabuList.h.
References moSimpleMoveTabuList$<$ M $>$::tabuList.\index{moSimpleMoveTabuList@{moSimpleMoveTabuList}!add@{add}}
\index{add@{add}!moSimpleMoveTabuList@{moSimpleMoveTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moSimpleMoveTabuList}$<$ M $>$::add (const M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_move_tabu_list_43c979a9ec876c5e5b591b1c422395ef}
Procedure to add a move in the tabu list.
The two parameters have not to be modified so they are constant parameters.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a new tabu move. \item[{\em \_\-\_\-sol}]the origianl solution associated to this move. \end{description}
\end{Desc}
Implements {\bf moTabuList$<$ M $>$} \doxyref{}{p.}{classmo_tabu_list_d279d72cb486d812da1ad3d24a69c286}.
Definition at line 85 of file moSimpleMoveTabuList.h.
References moSimpleMoveTabuList$<$ M $>$::currentSize, moSimpleMoveTabuList$<$ M $>$::maxSize, moSimpleMoveTabuList$<$ M $>$::removeMove(), and moSimpleMoveTabuList$<$ M $>$::tabuList.\index{moSimpleMoveTabuList@{moSimpleMoveTabuList}!update@{update}}
\index{update@{update}!moSimpleMoveTabuList@{moSimpleMoveTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moSimpleMoveTabuList}$<$ M $>$::update ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_move_tabu_list_96cffc8118456ed762b07b9fc0e0679f}
Procedure that updates the tabu list content.
Generally, a counter associated to each saved move is decreased by one.
Implements {\bf moTabuList$<$ M $>$} \doxyref{}{p.}{classmo_tabu_list_a2e5d1132f064093c8ed57046405f5ca}.
Definition at line 107 of file moSimpleMoveTabuList.h.\index{moSimpleMoveTabuList@{moSimpleMoveTabuList}!init@{init}}
\index{init@{init}!moSimpleMoveTabuList@{moSimpleMoveTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moSimpleMoveTabuList}$<$ M $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_move_tabu_list_b91ae9971be30769757d1ad92c6009dc}
Procedure which initialises the tabu list.
Can be useful if the data structure needs to be allocated before being used.
Implements {\bf moTabuList$<$ M $>$} \doxyref{}{p.}{classmo_tabu_list_0a06c459d56e8e2b408a8f3c6aec4e57}.
Definition at line 113 of file moSimpleMoveTabuList.h.\index{moSimpleMoveTabuList@{moSimpleMoveTabuList}!removeMove@{removeMove}}
\index{removeMove@{removeMove}!moSimpleMoveTabuList@{moSimpleMoveTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moSimpleMoveTabuList}$<$ M $>$::removeMove (const M \& {\em \_\-\_\-move})\hspace{0.3cm}{\tt [inline, private]}}\label{classmo_simple_move_tabu_list_a3fa2bd19e09f1541878fa28e867d20f}
Procedure that removes a given move from the tabu list (if it is into, else do nothing).
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]A given \doxyref{moMove}{p.}{classmo_move}. \end{description}
\end{Desc}
Definition at line 125 of file moSimpleMoveTabuList.h.
References moSimpleMoveTabuList$<$ M $>$::tabuList.
Referenced by moSimpleMoveTabuList$<$ M $>$::add().
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moSimpleMoveTabuList.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 277.778
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.8 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moSimpleSolutionTabuList< M >) cw
(moTabuList< M >) cw
(eoBF< const M &, const M::EOType &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moSimpleSolutionTabuList< M >) 0 0 box
(moTabuList< M >) 0 1 box
(eoBF< const M &, const M::EOType &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,165 @@
\section{moSimpleSolutionTabuList$<$ M $>$ Class Template Reference}
\label{classmo_simple_solution_tabu_list}\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}}
Class describing a solution tabu list with limited length.
{\tt \#include $<$moSimpleSolutionTabuList.h$>$}
Inheritance diagram for moSimpleSolutionTabuList$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_simple_solution_tabu_list}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_simple_solution_tabu_list_881060871a6b49e5e8554c5df85176d9}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moSimpleSolutionTabuList} (unsigned int \_\-\_\-size)
\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item
bool {\bf operator()} (const M \&\_\-\_\-move, const {\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} that indicates if, in a given state, the \_\-move is tabu or not. \item\end{CompactList}\item
void {\bf add} (const M \&\_\-\_\-move, const {\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em Procedure to add a move in the tabu list. \item\end{CompactList}\item
void {\bf update} ()
\begin{CompactList}\small\item\em Procedure that updates the tabu list content. \item\end{CompactList}\item
void {\bf init} ()
\begin{CompactList}\small\item\em Procedure which initialises the tabu list. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Member Functions}
\begin{CompactItemize}
\item
void {\bf removeSolution} (const {\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em Procedure that removes a given solution from the tabu list (if it is into, else does nothing). \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
unsigned int {\bf maxSize}\label{classmo_simple_solution_tabu_list_662e1f65fadff234692be009a2440845}
\begin{CompactList}\small\item\em The maximum size of the tabu list. \item\end{CompactList}\item
unsigned int {\bf currentSize}\label{classmo_simple_solution_tabu_list_2aaf6e882d10495adddae94cb7a48fbf}
\begin{CompactList}\small\item\em The current size of the tabu list. \item\end{CompactList}\item
std::list$<$ {\bf EOT} $>$ {\bf tabuList}\label{classmo_simple_solution_tabu_list_75df9cd683528d3722d02bac407b710b}
\begin{CompactList}\small\item\em The solution tabu list. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moSimpleSolutionTabuList$<$ M $>$}
Class describing a solution tabu list with limited length.
Definition at line 47 of file moSimpleSolutionTabuList.h.
\subsection{Constructor \& Destructor Documentation}
\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}!moSimpleSolutionTabuList@{moSimpleSolutionTabuList}}
\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}!moSimpleSolutionTabuList@{moSimpleSolutionTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moSimpleSolutionTabuList}$<$ M $>$::{\bf moSimpleSolutionTabuList} (unsigned int {\em \_\-\_\-size})\hspace{0.3cm}{\tt [inline]}}\label{classmo_simple_solution_tabu_list_8f8ce82b49ff49efbd934cedd3e34178}
Constructor.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-size}]The maximum size of the solution tabu list. \end{description}
\end{Desc}
Definition at line 59 of file moSimpleSolutionTabuList.h.
References moSimpleSolutionTabuList$<$ M $>$::currentSize.
\subsection{Member Function Documentation}
\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}!operator()@{operator()}}
\index{operator()@{operator()}!moSimpleSolutionTabuList@{moSimpleSolutionTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moSimpleSolutionTabuList}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_solution_tabu_list_e1f1cf258b55554d8be88fb5780a0047}
{\bf Function} that indicates if, in a given state, the \_\-move is tabu or not.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]A given \doxyref{moMove}{p.}{classmo_move}. \item[{\em \_\-\_\-sol}]A solution. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true or false. \end{Desc}
Implements {\bf eoBF$<$ const M \&, const M::EOType \&, bool $>$}.
Definition at line 70 of file moSimpleSolutionTabuList.h.
References moSimpleSolutionTabuList$<$ M $>$::tabuList.\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}!add@{add}}
\index{add@{add}!moSimpleSolutionTabuList@{moSimpleSolutionTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moSimpleSolutionTabuList}$<$ M $>$::add (const M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_solution_tabu_list_fd6b3a1764121169650c969bba895615}
Procedure to add a move in the tabu list.
The two parameters have not to be modified so they are constant parameters.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a new tabu move. \item[{\em \_\-\_\-sol}]the origianl solution associated to this move. \end{description}
\end{Desc}
Implements {\bf moTabuList$<$ M $>$} \doxyref{}{p.}{classmo_tabu_list_d279d72cb486d812da1ad3d24a69c286}.
Definition at line 89 of file moSimpleSolutionTabuList.h.
References moSimpleSolutionTabuList$<$ M $>$::currentSize, moSimpleSolutionTabuList$<$ M $>$::maxSize, moSimpleSolutionTabuList$<$ M $>$::removeSolution(), and moSimpleSolutionTabuList$<$ M $>$::tabuList.\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}!update@{update}}
\index{update@{update}!moSimpleSolutionTabuList@{moSimpleSolutionTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moSimpleSolutionTabuList}$<$ M $>$::update ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_solution_tabu_list_91b8b01dba7ffea8b63765d931e56f56}
Procedure that updates the tabu list content.
Generally, a counter associated to each saved move is decreased by one.
Implements {\bf moTabuList$<$ M $>$} \doxyref{}{p.}{classmo_tabu_list_a2e5d1132f064093c8ed57046405f5ca}.
Definition at line 116 of file moSimpleSolutionTabuList.h.\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}!init@{init}}
\index{init@{init}!moSimpleSolutionTabuList@{moSimpleSolutionTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moSimpleSolutionTabuList}$<$ M $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_solution_tabu_list_d5645c39fec71a6110a2cbccbb08b816}
Procedure which initialises the tabu list.
Can be useful if the data structure needs to be allocated before being used.
Implements {\bf moTabuList$<$ M $>$} \doxyref{}{p.}{classmo_tabu_list_0a06c459d56e8e2b408a8f3c6aec4e57}.
Definition at line 122 of file moSimpleSolutionTabuList.h.\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}!removeSolution@{removeSolution}}
\index{removeSolution@{removeSolution}!moSimpleSolutionTabuList@{moSimpleSolutionTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moSimpleSolutionTabuList}$<$ M $>$::removeSolution (const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, private]}}\label{classmo_simple_solution_tabu_list_7847a48f33c15e31298f3e715d754560}
Procedure that removes a given solution from the tabu list (if it is into, else does nothing).
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]A given solution. \end{description}
\end{Desc}
Definition at line 134 of file moSimpleSolutionTabuList.h.
References moSimpleSolutionTabuList$<$ M $>$::tabuList.
Referenced by moSimpleSolutionTabuList$<$ M $>$::add().
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moSimpleSolutionTabuList.h\end{CompactItemize}

View file

@ -0,0 +1,223 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 96.6184
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 5.175 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 4 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moSolContinue< EOT >) cw
(eoUF< const EOT &, bool >) cw
(eoFunctorBase) cw
(moFitSolContinue< EOT >) cw
(moGenSolContinue< EOT >) cw
(moNoFitImprSolContinue< EOT >) cw
(moSteadyFitSolContinue< EOT >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moSolContinue< EOT >) 1.5 1 box
(eoUF< const EOT &, bool >) 1.5 2 box
(eoFunctorBase) 1.5 3 box
(moFitSolContinue< EOT >) 0 0 box
(moGenSolContinue< EOT >) 1 0 box
(moNoFitImprSolContinue< EOT >) 2 0 box
(moSteadyFitSolContinue< EOT >) 3 0 box
% ----- relations -----
solid
0 1.5 1 out
solid
1 1.5 2 in
solid
0 1.5 2 out
solid
1 1.5 3 in
solid
1 1.5 0.25 out
solid
0 3 1 conn
solid
0 0 0.75 in
solid
0 1 0.75 in
solid
0 2 0.75 in
solid
0 3 0.75 in

View file

@ -0,0 +1,46 @@
\section{moSolContinue$<$ EOT $>$ Class Template Reference}
\label{classmo_sol_continue}\index{moSolContinue@{moSolContinue}}
Class that describes a stop criterion for a solution-based heuristic.
{\tt \#include $<$moSolContinue.h$>$}
Inheritance diagram for moSolContinue$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.70531cm]{classmo_sol_continue}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
virtual void {\bf init} ()=0
\begin{CompactList}\small\item\em Procedure which initialises all that the stop criterion needs. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moSolContinue$<$ EOT $>$}
Class that describes a stop criterion for a solution-based heuristic.
It allows to add an initialisation procedure to an object that is a unary function ({\bf eoUF}).
Definition at line 47 of file moSolContinue.h.
\subsection{Member Function Documentation}
\index{moSolContinue@{moSolContinue}!init@{init}}
\index{init@{init}!moSolContinue@{moSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ virtual void {\bf moSolContinue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7}
Procedure which initialises all that the stop criterion needs.
Generally, it allocates some data structures or initialises some counters.
Implemented in {\bf moFitSolContinue$<$ EOT $>$} \doxyref{}{p.}{classmo_fit_sol_continue_670bd895b4edfcd3aebb40d2295d7f7c}, {\bf moGenSolContinue$<$ EOT $>$} \doxyref{}{p.}{classmo_gen_sol_continue_6c5db8182157584b56507cc9075602d4}, {\bf moNoFitImprSolContinue$<$ EOT $>$} \doxyref{}{p.}{classmo_no_fit_impr_sol_continue_21641c0a38a4501baae6133cbc591de4}, and {\bf moSteadyFitSolContinue$<$ EOT $>$} \doxyref{}{p.}{classmo_steady_fit_sol_continue_87563493addc8e4b58982c55a67179b9}.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moSolContinue.h\end{CompactItemize}

View file

@ -0,0 +1,209 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 388.35
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.2875 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moSteadyFitSolContinue< EOT >) cw
(moSolContinue< EOT >) cw
(eoUF< const EOT &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moSteadyFitSolContinue< EOT >) 0 0 box
(moSolContinue< EOT >) 0 1 box
(eoUF< const EOT &, bool >) 0 2 box
(eoFunctorBase) 0 3 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in

View file

@ -0,0 +1,120 @@
\section{moSteadyFitSolContinue$<$ EOT $>$ Class Template Reference}
\label{classmo_steady_fit_sol_continue}\index{moSteadyFitSolContinue@{moSteadyFitSolContinue}}
One possible stopping criterion for a solution-based heuristic.
{\tt \#include $<$moSteadyFitSolContinue.h$>$}
Inheritance diagram for moSteadyFitSolContinue$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4cm]{classmo_steady_fit_sol_continue}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef EOT::Fitness {\bf Fitness}\label{classmo_steady_fit_sol_continue_c289721abbbafe50f6e3b8305dd31007}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moSteadyFitSolContinue} (unsigned int \_\-\_\-maxNumberOfIterations, unsigned int \_\-\_\-maxNumberOfIterationWithoutImprovement)
\begin{CompactList}\small\item\em Basic constructor. \item\end{CompactList}\item
bool {\bf operator()} (const EOT \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} that activates the stopping criterion. \item\end{CompactList}\item
void {\bf init} ()
\begin{CompactList}\small\item\em Procedure which allows to initialise the stuff needed. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
unsigned int {\bf maxNumberOfIterations}\label{classmo_steady_fit_sol_continue_36b43c2a252887ad027165ac32393fe8}
\begin{CompactList}\small\item\em Maximum number of iterations before considering the fitness. \item\end{CompactList}\item
unsigned int {\bf maxNumberOfIterationsWithoutImprovement}\label{classmo_steady_fit_sol_continue_cde593c09f497a5fa66ff62732544f40}
\begin{CompactList}\small\item\em Maximum number of iterations without improvement allowed. \item\end{CompactList}\item
bool {\bf maxNumberOfIterationsReached}\label{classmo_steady_fit_sol_continue_7d88c0eb91b2a12121ba1c3ae9139887}
\begin{CompactList}\small\item\em Flag that indicates that the maxNumberIteration have been reached. \item\end{CompactList}\item
bool {\bf firstFitnessSaved}\label{classmo_steady_fit_sol_continue_025bf2789e470fdde989eee9121035c3}
\begin{CompactList}\small\item\em Flag that this is the first time that the fitness is used. \item\end{CompactList}\item
{\bf Fitness} {\bf fitness}\label{classmo_steady_fit_sol_continue_a5c62e7049b36f6e71e92b559568c09e}
\begin{CompactList}\small\item\em Current Fitness. \item\end{CompactList}\item
unsigned int {\bf counter}\label{classmo_steady_fit_sol_continue_245c9099a2c40dfc4f34b3ff216d13ce}
\begin{CompactList}\small\item\em The iteration couter. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class moSteadyFitSolContinue$<$ EOT $>$}
One possible stopping criterion for a solution-based heuristic.
The stop criterion corresponds to a maximum number of iterations without improvement (after a minimum number of iterations).
Definition at line 46 of file moSteadyFitSolContinue.h.
\subsection{Constructor \& Destructor Documentation}
\index{moSteadyFitSolContinue@{moSteadyFitSolContinue}!moSteadyFitSolContinue@{moSteadyFitSolContinue}}
\index{moSteadyFitSolContinue@{moSteadyFitSolContinue}!moSteadyFitSolContinue@{moSteadyFitSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf moSteadyFitSolContinue}$<$ EOT $>$::{\bf moSteadyFitSolContinue} (unsigned int {\em \_\-\_\-maxNumberOfIterations}, unsigned int {\em \_\-\_\-maxNumberOfIterationWithoutImprovement})\hspace{0.3cm}{\tt [inline]}}\label{classmo_steady_fit_sol_continue_5f50fb18e380230e37301f33319786a4}
Basic constructor.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-maxNumberOfIterations}]The number of iterations to reach before looking for the fitness. \item[{\em \_\-\_\-maxNumberOfIterationWithoutImprovement}]The number of iterations without fitness improvement to reach for stop. \end{description}
\end{Desc}
Definition at line 59 of file moSteadyFitSolContinue.h.
\subsection{Member Function Documentation}
\index{moSteadyFitSolContinue@{moSteadyFitSolContinue}!operator()@{operator()}}
\index{operator()@{operator()}!moSteadyFitSolContinue@{moSteadyFitSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool {\bf moSteadyFitSolContinue}$<$ EOT $>$::operator() (const EOT \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_steady_fit_sol_continue_942e58ec00bb61000a83c80176e14bc3}
{\bf Function} that activates the stopping criterion.
Indicates if the fitness has not been improved since a number of iterations (after a minimum of iterations).
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]the current solution. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true or false. \end{Desc}
Implements {\bf eoUF$<$ const EOT \&, bool $>$}.
Definition at line 71 of file moSteadyFitSolContinue.h.
References moSteadyFitSolContinue$<$ EOT $>$::counter, moSteadyFitSolContinue$<$ EOT $>$::firstFitnessSaved, moSteadyFitSolContinue$<$ EOT $>$::fitness, moSteadyFitSolContinue$<$ EOT $>$::maxNumberOfIterations, moSteadyFitSolContinue$<$ EOT $>$::maxNumberOfIterationsReached, and moSteadyFitSolContinue$<$ EOT $>$::maxNumberOfIterationsWithoutImprovement.\index{moSteadyFitSolContinue@{moSteadyFitSolContinue}!init@{init}}
\index{init@{init}!moSteadyFitSolContinue@{moSteadyFitSolContinue}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf moSteadyFitSolContinue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_steady_fit_sol_continue_87563493addc8e4b58982c55a67179b9}
Procedure which allows to initialise the stuff needed.
It can be also used to reinitialize the counter all the needed things.
Implements {\bf moSolContinue$<$ EOT $>$} \doxyref{}{p.}{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7}.
Definition at line 115 of file moSteadyFitSolContinue.h.
References moSteadyFitSolContinue$<$ EOT $>$::counter, moSteadyFitSolContinue$<$ EOT $>$::firstFitnessSaved, and moSteadyFitSolContinue$<$ EOT $>$::maxNumberOfIterationsReached.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moSteadyFitSolContinue.h\end{CompactItemize}

View file

@ -0,0 +1,221 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 271.739
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 5 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moTS< M >) cw
(moAlgo< M::EOType >) cw
(eoMonOp< M::EOType >) cw
(eoOp< EOType >) cw
(eoUF< M::EOType &, bool >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moTS< M >) 0.5 0 box
(moAlgo< M::EOType >) 0.5 1 box
(eoMonOp< M::EOType >) 0.5 2 box
(eoOp< EOType >) 0 3 box
(eoUF< M::EOType &, bool >) 1 3 box
(eoFunctorBase) 1 4 box
% ----- relations -----
solid
0 0.5 0 out
solid
1 0.5 1 in
solid
0 0.5 1 out
solid
1 0.5 2 in
solid
0 0.5 2 out
solid
0 1 3 conn
solid
1 0 3 in
solid
1 1 3 in
solid
0 1 3 out
solid
1 1 4 in

View file

@ -0,0 +1,119 @@
\section{moTS$<$ M $>$ Class Template Reference}
\label{classmo_t_s}\index{moTS@{moTS}}
Tabu Search (TS).
{\tt \#include $<$moTS.h$>$}
Inheritance diagram for moTS$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5cm]{classmo_t_s}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moTS} ({\bf moMoveInit}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf moNextMove}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf moTabuList}$<$ M $>$ \&\_\-\_\-tabu\_\-list, {\bf moAspirCrit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em Constructor of a \doxyref{moTS}{p.}{classmo_t_s} specifying all the boxes. \item\end{CompactList}\item
{\bf moTS} ({\bf moMoveExpl}$<$ M $>$ \&\_\-\_\-move\_\-expl, {\bf moSolContinue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval)
\begin{CompactList}\small\item\em Constructor with less parameters. \item\end{CompactList}\item
bool {\bf operator()} ({\bf EOT} \&\_\-\_\-sol)
\begin{CompactList}\small\item\em {\bf Function} which launchs the Tabu Search. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_t_s_90d19d468c12ab5bd796948ce1ce79b1}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item
typedef EOT::Fitness {\bf Fitness}\label{classmo_t_s_aa0eefbb17111422e495d1255f876fca}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf moMoveExpl}$<$ M $>$ \& {\bf move\_\-expl}\label{classmo_t_s_06914ddc90ca96e9158c8dbe182a7865}
\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item
{\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\bf cont}\label{classmo_t_s_969371cd2202f3d29cbb426f57ac7d3a}
\begin{CompactList}\small\item\em Stop criterion. \item\end{CompactList}\item
{\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_t_s_fb67eddae5d0bfca4ed881995523231e}
\begin{CompactList}\small\item\em Full evaluation function. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moTS$<$ M $>$}
Tabu Search (TS).
Generic algorithm that describes a tabu search.
Definition at line 54 of file moTS.h.
\subsection{Constructor \& Destructor Documentation}
\index{moTS@{moTS}!moTS@{moTS}}
\index{moTS@{moTS}!moTS@{moTS}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moTS}$<$ M $>$::{\bf moTS} ({\bf moMoveInit}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf moNextMove}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf moTabuList}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, {\bf moAspirCrit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_2be23f4524733ee6f37b71310d76407e}
Constructor of a \doxyref{moTS}{p.}{classmo_t_s} specifying all the boxes.
In this constructor, a \doxyref{moTSMoveLoopExpl}{p.}{classmo_t_s_move_loop_expl} is instanciated.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-init}]move initialisation \item[{\em \_\-\_\-next\_\-move}]neighborhood explorer \item[{\em \_\-\_\-incr\_\-eval}]efficient evaluation \item[{\em \_\-\_\-tabu\_\-list}]tabu list \item[{\em \_\-\_\-aspir\_\-crit}]aspiration criterion \item[{\em \_\-\_\-cont}]stop criterion \item[{\em \_\-\_\-full\_\-eval}]full evaluation function \end{description}
\end{Desc}
Definition at line 83 of file moTS.h.\index{moTS@{moTS}!moTS@{moTS}}
\index{moTS@{moTS}!moTS@{moTS}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moTS}$<$ M $>$::{\bf moTS} ({\bf moMoveExpl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, {\bf moSolContinue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, {\bf eoEvalFunc}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_508e675c4232cf2ca06dded931c90bab}
Constructor with less parameters.
The explorer is given in the parameters.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-expl}]the explorer (generally different that a \doxyref{moTSMoveLoopExpl}{p.}{classmo_t_s_move_loop_expl}) \item[{\em \_\-\_\-cont}]stop criterion \item[{\em \_\-\_\-full\_\-eval}]full evaluation function \end{description}
\end{Desc}
Definition at line 96 of file moTS.h.
\subsection{Member Function Documentation}
\index{moTS@{moTS}!operator()@{operator()}}
\index{operator()@{operator()}!moTS@{moTS}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf moTS}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_t_s_94d25a76fe1bc9ef0bbd0358ff55aceb}
{\bf Function} which launchs the Tabu Search.
Algorithm of the tabu search. As a \doxyref{moSA}{p.}{classmo_s_a} or a \doxyref{moHC}{p.}{classmo_h_c}, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread\_\-mutex\_\-t) is closed during the algorithm.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-sol}]a solution to improve. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]TRUE. \end{Desc}
Implements {\bf eoUF$<$ M::EOType \&, bool $>$}.
Definition at line 110 of file moTS.h.
References moTS$<$ M $>$::cont, moTS$<$ M $>$::full\_\-eval, and moTS$<$ M $>$::move\_\-expl.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moTS.h\end{CompactItemize}

View file

@ -0,0 +1,215 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 327.869
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 5 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moTSMoveLoopExpl< M >) cw
(moMoveLoopExpl< M >) cw
(moMoveExpl< M >) cw
(eoBF< const M::EOType &, M::EOType &, void >) cw
(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moTSMoveLoopExpl< M >) 0 0 box
(moMoveLoopExpl< M >) 0 1 box
(moMoveExpl< M >) 0 2 box
(eoBF< const M::EOType &, M::EOType &, void >) 0 3 box
(eoFunctorBase) 0 4 box
% ----- relations -----
solid
0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
1 0 2 in
solid
0 0 2 out
solid
1 0 3 in
solid
0 0 3 out
solid
1 0 4 in

View file

@ -0,0 +1,108 @@
\section{moTSMoveLoopExpl$<$ M $>$ Class Template Reference}
\label{classmo_t_s_move_loop_expl}\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}}
Explorer for a Tabu Search algorithm.
{\tt \#include $<$moTSMoveLoopExpl.h$>$}
Inheritance diagram for moTSMoveLoopExpl$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5cm]{classmo_t_s_move_loop_expl}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
{\bf moTSMoveLoopExpl} ({\bf moMoveInit}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf moNextMove}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf moMoveIncrEval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf moTabuList}$<$ M $>$ \&\_\-\_\-tabu\_\-list, {\bf moAspirCrit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit)
\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item
void {\bf operator()} (const {\bf EOT} \&\_\-\_\-old\_\-sol, {\bf EOT} \&\_\-\_\-new\_\-sol)
\begin{CompactList}\small\item\em Procedure which lauches the exploration. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_t_s_move_loop_expl_47f42225e2ed096374b818bdb848a527}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item
typedef M::EOType::Fitness {\bf Fitness}\label{classmo_t_s_move_loop_expl_a1ba36c937b195ca2f7d1a24adaa7018}
\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
{\bf moMoveInit}$<$ M $>$ \& {\bf move\_\-init}\label{classmo_t_s_move_loop_expl_6b23f99648902fb72ed17a4a6fa4e400}
\begin{CompactList}\small\item\em Move initialisation. \item\end{CompactList}\item
{\bf moNextMove}$<$ M $>$ \& {\bf next\_\-move}\label{classmo_t_s_move_loop_expl_aeeff6666d26ff5c67acd9c153a5ae49}
\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item
{\bf moMoveIncrEval}$<$ M $>$ \& {\bf incr\_\-eval}\label{classmo_t_s_move_loop_expl_ee4443fc8e45d840697619678628c26c}
\begin{CompactList}\small\item\em Efficient evaluation. \item\end{CompactList}\item
{\bf moBestImprSelect}$<$ M $>$ {\bf move\_\-select}\label{classmo_t_s_move_loop_expl_35a3f3035fb8df875c281d9838904bf1}
\begin{CompactList}\small\item\em Move selector. \item\end{CompactList}\item
{\bf moTabuList}$<$ M $>$ \& {\bf tabu\_\-list}\label{classmo_t_s_move_loop_expl_0e5988a940ba218e87c53b7e56d79790}
\begin{CompactList}\small\item\em Tabu list. \item\end{CompactList}\item
{\bf moAspirCrit}$<$ M $>$ \& {\bf aspir\_\-crit}\label{classmo_t_s_move_loop_expl_6786cf5422d17cbf872b07ae74ca6b0f}
\begin{CompactList}\small\item\em Aspiration criterion. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moTSMoveLoopExpl$<$ M $>$}
Explorer for a Tabu Search algorithm.
It is used by a \doxyref{moTS}{p.}{classmo_t_s}.
Definition at line 55 of file moTSMoveLoopExpl.h.
\subsection{Constructor \& Destructor Documentation}
\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}!moTSMoveLoopExpl@{moTSMoveLoopExpl}}
\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}!moTSMoveLoopExpl@{moTSMoveLoopExpl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf moTSMoveLoopExpl}$<$ M $>$::{\bf moTSMoveLoopExpl} ({\bf moMoveInit}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf moNextMove}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf moMoveIncrEval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf moTabuList}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, {\bf moAspirCrit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_move_loop_expl_43306dae9df150a8d9dc0dec9cd6a381}
Constructor.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move\_\-init}]move initialisation \item[{\em \_\-\_\-next\_\-move}]neighborhood explorer \item[{\em \_\-\_\-incr\_\-eval}]efficient evaluation \item[{\em \_\-\_\-tabu\_\-list}]tabu list \item[{\em \_\-\_\-aspir\_\-crit}]aspiration criterion \end{description}
\end{Desc}
Definition at line 74 of file moTSMoveLoopExpl.h.
References moTSMoveLoopExpl$<$ M $>$::aspir\_\-crit, and moTSMoveLoopExpl$<$ M $>$::tabu\_\-list.
\subsection{Member Function Documentation}
\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}!operator()@{operator()}}
\index{operator()@{operator()}!moTSMoveLoopExpl@{moTSMoveLoopExpl}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf moTSMoveLoopExpl}$<$ M $>$::operator() (const {\bf EOT} \& {\em \_\-\_\-old\_\-sol}, {\bf EOT} \& {\em \_\-\_\-new\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_t_s_move_loop_expl_f601bbd0ccc41d6fbe3df9fcd87ad9e7}
Procedure which lauches the exploration.
The exploration continues while the chosen move is not in the tabu list or the aspiration criterion is true. If these 2 conditions are not true, the exploration stops if the move selector update function returns false.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-old\_\-sol}]the initial solution \item[{\em \_\-\_\-new\_\-sol}]the new solution \end{description}
\end{Desc}
Implements {\bf eoBF$<$ const M::EOType \&, M::EOType \&, void $>$}.
Definition at line 94 of file moTSMoveLoopExpl.h.
References moTSMoveLoopExpl$<$ M $>$::aspir\_\-crit, moTSMoveLoopExpl$<$ M $>$::incr\_\-eval, moTSMoveLoopExpl$<$ M $>$::move\_\-init, moTSMoveLoopExpl$<$ M $>$::move\_\-select, moTSMoveLoopExpl$<$ M $>$::next\_\-move, and moTSMoveLoopExpl$<$ M $>$::tabu\_\-list.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moTSMoveLoopExpl.h\end{CompactItemize}

View file

@ -0,0 +1,215 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For:
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 138.889
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments
% ----- variables -----
/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 3.6 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 4 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
% ----- procedures -----
/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid { [] 0 setdash } def
/max % result = MAX(arg1,arg2)
{
/a exch def
/b exch def
a b gt {a} {b} ifelse
} def
/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def
/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
/str exch def
/boxwidth boxwidth str stringwidth pop max def
} def
/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
2 setlinewidth
newpath
exch xspacing mul xoffset add
exch yspacing mul
moveto
boxwidth 0 rlineto
0 boxheight rlineto
boxwidth neg 0 rlineto
0 boxheight neg rlineto
closepath
dup stringwidth pop neg boxwidth add 2 div
boxheight fontheight 2 div sub 2 div
rmoveto show stroke
grestore
} def
/mark
{ newpath
exch xspacing mul xoffset add boxwidth add
exch yspacing mul
moveto
0 boxheight 4 div rlineto
boxheight neg 4 div boxheight neg 4 div rlineto
closepath
eofill
stroke
} def
/arrow
{ newpath
moveto
3 -8 rlineto
-6 0 rlineto
3 8 rlineto
closepath
eofill
stroke
} def
/out % draws an output connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight add
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/in % draws an input connector for the block at (arg1,arg2)
{
newpath
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul disty 2 div sub
/y exch def
/x exch def
x y moveto
0 disty 2 div rlineto
stroke
1 eq { x y disty 2 div add arrow } if
} def
/hedge
{
exch xspacing mul xoffset add boxwidth 2 div add
exch yspacing mul boxheight 2 div sub
/y exch def
/x exch def
newpath
x y moveto
boxwidth 2 div distx add 0 rlineto
stroke
1 eq
{ newpath x boxwidth 2 div distx add add y moveto
-8 3 rlineto
0 -6 rlineto
8 3 rlineto
closepath
eofill
stroke
} if
} def
/vedge
{
/ye exch def
/ys exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add dup
ys yspacing mul boxheight 2 div sub
moveto
ye yspacing mul boxheight 2 div sub
lineto
stroke
} def
/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
/ys exch def
/xe exch def
/xs exch def
newpath
xs xspacing mul xoffset add boxwidth 2 div add
ys yspacing mul disty 2 div sub
moveto
xspacing xe xs sub mul 0
rlineto
stroke
} def
% ----- main ------
boxfont setfont
1 boundaspect scale
(moTabuList< M >) cw
(eoBF< const M &, const M::EOType &, bool >) cw
(eoFunctorBase) cw
(moSimpleMoveTabuList< M >) cw
(moSimpleSolutionTabuList< M >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor
boxwidth cols mul distx cols 1 sub mul add
boxheight rows mul disty rows 1 sub mul add boundaspect mul
max def
boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(moTabuList< M >) 0.5 1 box
(eoBF< const M &, const M::EOType &, bool >) 0.5 2 box
(eoFunctorBase) 0.5 3 box
(moSimpleMoveTabuList< M >) 0 0 box
(moSimpleSolutionTabuList< M >) 1 0 box
% ----- relations -----
solid
0 0.5 1 out
solid
1 0.5 2 in
solid
0 0.5 2 out
solid
1 0.5 3 in
solid
1 0.5 0.25 out
solid
0 1 1 conn
solid
0 0 0.75 in
solid
0 1 0.75 in

View file

@ -0,0 +1,81 @@
\section{moTabuList$<$ M $>$ Class Template Reference}
\label{classmo_tabu_list}\index{moTabuList@{moTabuList}}
Class describing a tabu list that a \doxyref{moTS}{p.}{classmo_t_s} uses.
{\tt \#include $<$moTabuList.h$>$}
Inheritance diagram for moTabuList$<$ M $>$::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.88889cm]{classmo_tabu_list}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item
typedef M::EOType {\bf EOT}\label{classmo_tabu_list_e219715cc3fdd5626764bc50ce6357df}
\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
virtual void {\bf add} (const M \&\_\-\_\-move, const {\bf EOT} \&\_\-\_\-sol)=0
\begin{CompactList}\small\item\em Procedure to add a move in the tabu list. \item\end{CompactList}\item
virtual void {\bf update} ()=0
\begin{CompactList}\small\item\em Procedure that updates the tabu list content. \item\end{CompactList}\item
virtual void {\bf init} ()=0
\begin{CompactList}\small\item\em Procedure which initialises the tabu list. \item\end{CompactList}\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class M$>$ class moTabuList$<$ M $>$}
Class describing a tabu list that a \doxyref{moTS}{p.}{classmo_t_s} uses.
It is only a description, does nothing... A new object that herits from this class has to be defined in order to be used in a \doxyref{moTS}{p.}{classmo_t_s}.
Definition at line 47 of file moTabuList.h.
\subsection{Member Function Documentation}
\index{moTabuList@{moTabuList}!add@{add}}
\index{add@{add}!moTabuList@{moTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf moTabuList}$<$ M $>$::add (const M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_d279d72cb486d812da1ad3d24a69c286}
Procedure to add a move in the tabu list.
The two parameters have not to be modified so they are constant parameters.
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-\_\-move}]a new tabu move. \item[{\em \_\-\_\-sol}]the origianl solution associated to this move. \end{description}
\end{Desc}
Implemented in {\bf moSimpleMoveTabuList$<$ M $>$} \doxyref{}{p.}{classmo_simple_move_tabu_list_43c979a9ec876c5e5b591b1c422395ef}, and {\bf moSimpleSolutionTabuList$<$ M $>$} \doxyref{}{p.}{classmo_simple_solution_tabu_list_fd6b3a1764121169650c969bba895615}.\index{moTabuList@{moTabuList}!update@{update}}
\index{update@{update}!moTabuList@{moTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf moTabuList}$<$ M $>$::update ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_a2e5d1132f064093c8ed57046405f5ca}
Procedure that updates the tabu list content.
Generally, a counter associated to each saved move is decreased by one.
Implemented in {\bf moSimpleMoveTabuList$<$ M $>$} \doxyref{}{p.}{classmo_simple_move_tabu_list_96cffc8118456ed762b07b9fc0e0679f}, and {\bf moSimpleSolutionTabuList$<$ M $>$} \doxyref{}{p.}{classmo_simple_solution_tabu_list_91b8b01dba7ffea8b63765d931e56f56}.\index{moTabuList@{moTabuList}!init@{init}}
\index{init@{init}!moTabuList@{moTabuList}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf moTabuList}$<$ M $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_0a06c459d56e8e2b408a8f3c6aec4e57}
Procedure which initialises the tabu list.
Can be useful if the data structure needs to be allocated before being used.
Implemented in {\bf moSimpleMoveTabuList$<$ M $>$} \doxyref{}{p.}{classmo_simple_move_tabu_list_b91ae9971be30769757d1ad92c6009dc}, and {\bf moSimpleSolutionTabuList$<$ M $>$} \doxyref{}{p.}{classmo_simple_solution_tabu_list_d5645c39fec71a6110a2cbccbb08b816}.
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
moTabuList.h\end{CompactItemize}

View file

@ -0,0 +1,78 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
\RequirePackage{calc}
\RequirePackage{array}
\pagestyle{fancyplain}
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\lhead[\fancyplain{}{\bfseries\thepage}]
{\fancyplain{}{\bfseries\rightmark}}
\rhead[\fancyplain{}{\bfseries\leftmark}]
{\fancyplain{}{\bfseries\thepage}}
\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Tue Oct 23 15:29:27 2007 for ParadisEO-MOMovingObjects by Doxygen }]{}
\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Tue Oct 23 15:29:27 2007 for ParadisEO-MOMovingObjects by Doxygen }}
\cfoot{}
\newenvironment{Code}
{\footnotesize}
{\normalsize}
\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})}
\newenvironment{DocInclude}
{\footnotesize}
{\normalsize}
\newenvironment{VerbInclude}
{\footnotesize}
{\normalsize}
\newenvironment{Image}
{\begin{figure}[H]}
{\end{figure}}
\newenvironment{ImageNoCaption}{}{}
\newenvironment{CompactList}
{\begin{list}{}{
\setlength{\leftmargin}{0.5cm}
\setlength{\itemsep}{0pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\renewcommand{\makelabel}{\hfill}}}
{\end{list}}
\newenvironment{CompactItemize}
{
\begin{itemize}
\setlength{\itemsep}{-3pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
}
{\end{itemize}}
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
\newlength{\tmplength}
\newenvironment{TabularC}[1]
{
\setlength{\tmplength}
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
\par\begin{tabular*}{\linewidth}
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
}
{\end{tabular*}\par}
\newcommand{\entrylabel}[1]{
{\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}}
\newenvironment{Desc}
{\begin{list}{}
{
\settowidth{\labelwidth}{40pt}
\setlength{\leftmargin}{\labelwidth}
\setlength{\parsep}{0pt}
\setlength{\itemsep}{-4pt}
\renewcommand{\makelabel}{\entrylabel}
}
}
{\end{list}}
\newenvironment{Indent}
{\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
\item[]\ignorespaces}
{\unskip\end{list}}
\setlength{\parindent}{0cm}
\setlength{\parskip}{0.2cm}
\addtocounter{secnumdepth}{1}
\sloppy
\usepackage[T1]{fontenc}

View file

@ -0,0 +1,99 @@
\section{ParadisEO-MOMovingObjects Class Hierarchy}
This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList}
\item \contentsline{section}{EmptySelection}{\pageref{class_empty_selection}}{}
\item eoFunctorBase{\tt [external]}\begin{CompactList}
\item eoBF$<$ const EOT \&, const EOT \&, bool $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moComparator$<$ EOT $>$}{\pageref{classmo_comparator}}{}
\begin{CompactList}
\item \contentsline{section}{moFitComparator$<$ EOT $>$}{\pageref{classmo_fit_comparator}}{}
\end{CompactList}
\end{CompactList}
\item eoBF$<$ const M \&, const M::EOType \&, bool $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moTabuList$<$ M $>$}{\pageref{classmo_tabu_list}}{}
\begin{CompactList}
\item \contentsline{section}{moSimpleMoveTabuList$<$ M $>$}{\pageref{classmo_simple_move_tabu_list}}{}
\item \contentsline{section}{moSimpleSolutionTabuList$<$ M $>$}{\pageref{classmo_simple_solution_tabu_list}}{}
\end{CompactList}
\end{CompactList}
\item eoBF$<$ const M \&, const M::EOType \&, M::EOType::Fitness $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moMoveIncrEval$<$ M $>$}{\pageref{classmo_move_incr_eval}}{}
\end{CompactList}
\item eoBF$<$ const M \&, const M::EOType \&, void $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moLSCheckPoint$<$ M $>$}{\pageref{classmo_l_s_check_point}}{}
\end{CompactList}
\item eoBF$<$ const M \&, const M::EOType::Fitness \&, bool $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moAspirCrit$<$ M $>$}{\pageref{classmo_aspir_crit}}{}
\begin{CompactList}
\item \contentsline{section}{moImprBestFitAspirCrit$<$ M $>$}{\pageref{classmo_impr_best_fit_aspir_crit}}{}
\item \contentsline{section}{moNoAspirCrit$<$ M $>$}{\pageref{classmo_no_aspir_crit}}{}
\end{CompactList}
\end{CompactList}
\item eoBF$<$ const M::EOType \&, M::EOType \&, void $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moMoveExpl$<$ M $>$}{\pageref{classmo_move_expl}}{}
\begin{CompactList}
\item \contentsline{section}{moMoveLoopExpl$<$ M $>$}{\pageref{classmo_move_loop_expl}}{}
\begin{CompactList}
\item \contentsline{section}{moHCMoveLoopExpl$<$ M $>$}{\pageref{classmo_h_c_move_loop_expl}}{}
\item \contentsline{section}{moTSMoveLoopExpl$<$ M $>$}{\pageref{classmo_t_s_move_loop_expl}}{}
\end{CompactList}
\end{CompactList}
\end{CompactList}
\item eoBF$<$ M \&, const M::EOType \&, bool $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moNextMove$<$ M $>$}{\pageref{classmo_next_move}}{}
\begin{CompactList}
\item \contentsline{section}{moItRandNextMove$<$ M $>$}{\pageref{classmo_it_rand_next_move}}{}
\end{CompactList}
\end{CompactList}
\item eoBF$<$ M \&, const M::EOType \&, void $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moMoveInit$<$ M $>$}{\pageref{classmo_move_init}}{}
\end{CompactList}
\item eoBF$<$ M \&, M::EOType::Fitness \&, void $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moMoveSelect$<$ M $>$}{\pageref{classmo_move_select}}{}
\begin{CompactList}
\item \contentsline{section}{moBestImprSelect$<$ M $>$}{\pageref{classmo_best_impr_select}}{}
\item \contentsline{section}{moFirstImprSelect$<$ M $>$}{\pageref{classmo_first_impr_select}}{}
\item \contentsline{section}{moRandImprSelect$<$ M $>$}{\pageref{classmo_rand_impr_select}}{}
\end{CompactList}
\end{CompactList}
\item eoUF$<$ const EOT \&, bool $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moSolContinue$<$ EOT $>$}{\pageref{classmo_sol_continue}}{}
\begin{CompactList}
\item \contentsline{section}{moFitSolContinue$<$ EOT $>$}{\pageref{classmo_fit_sol_continue}}{}
\item \contentsline{section}{moGenSolContinue$<$ EOT $>$}{\pageref{classmo_gen_sol_continue}}{}
\item \contentsline{section}{moNoFitImprSolContinue$<$ EOT $>$}{\pageref{classmo_no_fit_impr_sol_continue}}{}
\item \contentsline{section}{moSteadyFitSolContinue$<$ EOT $>$}{\pageref{classmo_steady_fit_sol_continue}}{}
\end{CompactList}
\end{CompactList}
\item eoUF$<$ double \&, bool $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moCoolingSchedule}{\pageref{classmo_cooling_schedule}}{}
\begin{CompactList}
\item \contentsline{section}{moExponentialCoolingSchedule}{\pageref{classmo_exponential_cooling_schedule}}{}
\item \contentsline{section}{moLinearCoolingSchedule}{\pageref{classmo_linear_cooling_schedule}}{}
\end{CompactList}
\end{CompactList}
\item eoUF$<$ EOT \&, bool $>${\tt [external]}\begin{CompactList}
\item eoMonOp$<$ EOT $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moAlgo$<$ EOT $>$}{\pageref{classmo_algo}}{}
\end{CompactList}
\end{CompactList}
\item eoUF$<$ EOT \&, void $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moMove$<$ EOT $>$}{\pageref{classmo_move}}{}
\end{CompactList}
\item eoUF$<$ EOType \&, bool $>${\tt [external]}\item eoUF$<$ M \&, void $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moRandMove$<$ M $>$}{\pageref{classmo_rand_move}}{}
\end{CompactList}
\item eoUF$<$ M::EOType \&, bool $>${\tt [external]}\begin{CompactList}
\item eoMonOp$<$ M::EOType $>${\tt [external]}\begin{CompactList}
\item \contentsline{section}{moAlgo$<$ M::EOType $>$}{\pageref{classmo_algo}}{}
\begin{CompactList}
\item \contentsline{section}{moHC$<$ M $>$}{\pageref{classmo_h_c}}{}
\item \contentsline{section}{moILS$<$ M $>$}{\pageref{classmo_i_l_s}}{}
\item \contentsline{section}{moSA$<$ M $>$}{\pageref{classmo_s_a}}{}
\item \contentsline{section}{moTS$<$ M $>$}{\pageref{classmo_t_s}}{}
\end{CompactList}
\end{CompactList}
\end{CompactList}
\end{CompactList}
\item eoOp$<$ EOType $>${\tt [external]}\begin{CompactList}
\item eoMonOp$<$ EOT $>${\tt [external]}\item eoMonOp$<$ M::EOType $>${\tt [external]}\end{CompactList}
\end{CompactList}

View file

@ -0,0 +1,18 @@
\section{Introduction}\label{main_Introduction}
MO is an extension of the ANSI-C++ compliant evolutionary computation library {\bf EO}. \par
It contains classes for almost any kind of one solution based heuristics.\section{AUTHORS}\label{main_authors}
\begin{TabularC}{1}
\hline
Sebastien CAHON \\\hline
{\tt Jean-Charles BOISSON} \\\hline
\end{TabularC}
\section{LICENSE}\label{main_LICENSE}
This software is governed by the CeCILL license under French law and abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL license as circulated by CEA, CNRS and INRIA at the following URL \char`\"{}http://www.cecill.info\char`\"{}.
As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited liability.
In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the software by the user in light of its specific status of free software, that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions as regards security. The fact that you are presently reading this means that you have had knowledge of the CeCILL license and that you accept its terms.
ParadisEO WebSite : {\tt http://paradiseo.gforge.inria.fr} Contact: {\tt paradiseo-help@lists.gforge.inria.fr}\section{Home Page}\label{main_Paradiseo}
{\tt http://paradiseo.gforge.inria.fr}\section{Installation}\label{main_Installation}
The installation procedure of the package is detailed in the {\tt README} file in the top-directory of the source-tree.

View file

@ -0,0 +1,76 @@
\documentclass[a4paper]{book}
\usepackage{a4wide}
\usepackage{makeidx}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{float}
\usepackage{textcomp}
\usepackage{alltt}
\usepackage[utf8]{inputenc}
\usepackage{doxygen}
\makeindex
\setcounter{tocdepth}{1}
\renewcommand{\footrulewidth}{0.4pt}
\begin{document}
\begin{titlepage}
\vspace*{7cm}
\begin{center}
{\Large ParadisEO-MOMovingObjects Reference Manual\\[1ex]\large 1.0 }\\
\vspace*{1cm}
{\large Generated by Doxygen 1.5.2}\\
\vspace*{0.5cm}
{\small Tue Oct 23 15:29:27 2007}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
\chapter{Welcome to PARADISEO-Moving Objects }
\label{index}\input{main}
\chapter{ParadisEO-MOMovingObjects Hierarchical Index}
\input{hierarchy}
\chapter{ParadisEO-MOMovingObjects Class Index}
\input{annotated}
\chapter{ParadisEO-MOMovingObjects Class Documentation}
\input{class_empty_selection}
\include{classmo_algo}
\include{classmo_aspir_crit}
\include{classmo_best_impr_select}
\include{classmo_comparator}
\include{classmo_cooling_schedule}
\include{classmo_exponential_cooling_schedule}
\include{classmo_first_impr_select}
\include{classmo_fit_comparator}
\include{classmo_fit_sol_continue}
\include{classmo_gen_sol_continue}
\include{classmo_h_c}
\include{classmo_h_c_move_loop_expl}
\include{classmo_i_l_s}
\include{classmo_impr_best_fit_aspir_crit}
\include{classmo_it_rand_next_move}
\include{classmo_linear_cooling_schedule}
\include{classmo_l_s_check_point}
\include{classmo_move}
\include{classmo_move_expl}
\include{classmo_move_incr_eval}
\include{classmo_move_init}
\include{classmo_move_loop_expl}
\include{classmo_move_select}
\include{classmo_next_move}
\include{classmo_no_aspir_crit}
\include{classmo_no_fit_impr_sol_continue}
\include{classmo_rand_impr_select}
\include{classmo_rand_move}
\include{classmo_s_a}
\include{classmo_simple_move_tabu_list}
\include{classmo_simple_solution_tabu_list}
\include{classmo_sol_continue}
\include{classmo_steady_fit_sol_continue}
\include{classmo_tabu_list}
\include{classmo_t_s}
\include{classmo_t_s_move_loop_expl}
\printindex
\end{document}