From 20c831612574a7dbfe632a0fbb918aa6e3bbc50d Mon Sep 17 00:00:00 2001 From: jboisson Date: Fri, 20 Apr 2007 09:38:14 +0000 Subject: [PATCH] docs are updated (corrected more exactly) git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@287 331e1502-861f-0410-8da2-ba01fb791d7f --- trunk/paradiseo-mo/docs/html/annotated.html | 2 +- .../docs/html/class_empty_selection.html | 2 +- trunk/paradiseo-mo/docs/html/classes.html | 2 +- .../paradiseo-mo/docs/html/classmo_algo.html | 12 +- .../docs/html/classmo_aspir_crit-members.html | 6 +- .../docs/html/classmo_aspir_crit.html | 10 +- .../docs/html/classmo_aspir_crit.png | Bin 1233 -> 778 bytes .../classmo_best_impr_select-members.html | 7 +- .../docs/html/classmo_best_impr_select.html | 14 +- .../docs/html/classmo_best_impr_select.png | Bin 1074 -> 513 bytes .../docs/html/classmo_cooling_schedule.html | 10 +- .../docs/html/classmo_cooling_schedule.png | Bin 1297 -> 819 bytes ..._exponential_cooling_schedule-members.html | 4 +- .../classmo_exponential_cooling_schedule.html | 14 +- .../classmo_exponential_cooling_schedule.png | Bin 928 -> 565 bytes .../classmo_first_impr_select-members.html | 7 +- .../docs/html/classmo_first_impr_select.html | 14 +- .../docs/html/classmo_first_impr_select.png | Bin 1067 -> 512 bytes .../classmo_gen_sol_continue-members.html | 7 +- .../docs/html/classmo_gen_sol_continue.html | 15 +- .../docs/html/classmo_gen_sol_continue.png | Bin 900 -> 522 bytes .../docs/html/classmo_h_c-members.html | 4 +- trunk/paradiseo-mo/docs/html/classmo_h_c.html | 26 ++-- trunk/paradiseo-mo/docs/html/classmo_h_c.png | Bin 1507 -> 454 bytes .../classmo_h_c_move_loop_expl-members.html | 4 +- .../docs/html/classmo_h_c_move_loop_expl.html | 12 +- .../docs/html/classmo_h_c_move_loop_expl.png | Bin 1569 -> 658 bytes ...ssmo_impr_best_fit_aspir_crit-members.html | 6 +- .../classmo_impr_best_fit_aspir_crit.html | 10 +- .../html/classmo_impr_best_fit_aspir_crit.png | Bin 905 -> 548 bytes .../classmo_it_rand_next_move-members.html | 2 +- .../docs/html/classmo_it_rand_next_move.html | 8 +- .../docs/html/classmo_it_rand_next_move.png | Bin 847 -> 511 bytes .../html/classmo_l_s_check_point-members.html | 6 +- .../docs/html/classmo_l_s_check_point.html | 20 +-- ...assmo_linear_cooling_schedule-members.html | 4 +- .../html/classmo_linear_cooling_schedule.html | 14 +- .../html/classmo_linear_cooling_schedule.png | Bin 859 -> 515 bytes .../docs/html/classmo_move-members.html | 6 +- .../paradiseo-mo/docs/html/classmo_move.html | 10 +- .../docs/html/classmo_move_expl.html | 12 +- .../docs/html/classmo_move_expl.png | Bin 1884 -> 983 bytes .../docs/html/classmo_move_incr_eval.html | 10 +- .../docs/html/classmo_move_init.html | 10 +- .../docs/html/classmo_move_loop_expl.html | 10 +- .../docs/html/classmo_move_loop_expl.png | Bin 2000 -> 1024 bytes .../html/classmo_move_select-members.html | 6 +- .../docs/html/classmo_move_select.html | 16 +-- .../docs/html/classmo_move_select.png | Bin 1886 -> 988 bytes .../docs/html/classmo_next_move.html | 8 +- .../docs/html/classmo_next_move.png | Bin 861 -> 518 bytes .../html/classmo_no_aspir_crit-members.html | 6 +- .../docs/html/classmo_no_aspir_crit.html | 11 +- .../docs/html/classmo_no_aspir_crit.png | Bin 782 -> 478 bytes .../classmo_rand_impr_select-members.html | 7 +- .../docs/html/classmo_rand_impr_select.html | 16 +-- .../docs/html/classmo_rand_impr_select.png | Bin 1076 -> 517 bytes .../docs/html/classmo_rand_move.html | 10 +- .../docs/html/classmo_s_a-members.html | 4 +- trunk/paradiseo-mo/docs/html/classmo_s_a.html | 20 +-- trunk/paradiseo-mo/docs/html/classmo_s_a.png | Bin 1521 -> 462 bytes ...classmo_simple_move_tabu_list-members.html | 6 +- .../html/classmo_simple_move_tabu_list.html | 10 +- .../html/classmo_simple_move_tabu_list.png | Bin 883 -> 539 bytes ...smo_simple_solution_tabu_list-members.html | 6 +- .../classmo_simple_solution_tabu_list.html | 10 +- .../classmo_simple_solution_tabu_list.png | Bin 906 -> 553 bytes .../html/classmo_sol_continue-members.html | 6 +- .../docs/html/classmo_sol_continue.html | 10 +- .../docs/html/classmo_sol_continue.png | Bin 913 -> 533 bytes .../docs/html/classmo_t_s-members.html | 4 +- trunk/paradiseo-mo/docs/html/classmo_t_s.html | 26 ++-- trunk/paradiseo-mo/docs/html/classmo_t_s.png | Bin 1503 -> 457 bytes .../classmo_t_s_move_loop_expl-members.html | 4 +- .../docs/html/classmo_t_s_move_loop_expl.html | 12 +- .../docs/html/classmo_t_s_move_loop_expl.png | Bin 1577 -> 659 bytes .../docs/html/classmo_tabu_list-members.html | 6 +- .../docs/html/classmo_tabu_list.html | 10 +- .../docs/html/classmo_tabu_list.png | Bin 1364 -> 890 bytes trunk/paradiseo-mo/docs/html/files.html | 2 +- trunk/paradiseo-mo/docs/html/functions.html | 2 +- .../docs/html/functions_func.html | 2 +- .../docs/html/functions_type.html | 2 +- .../docs/html/functions_vars.html | 2 +- trunk/paradiseo-mo/docs/html/hierarchy.html | 88 +++--------- .../docs/html/index_8h-source.html | 2 +- trunk/paradiseo-mo/docs/html/main.html | 12 +- .../paradiseo-mo/docs/html/mo_8h-source.html | 2 +- .../docs/html/mo_algo_8h-source.html | 4 +- .../docs/html/mo_aspir_crit_8h-source.html | 4 +- .../html/mo_best_impr_select_8h-source.html | 2 +- .../html/mo_cooling_schedule_8h-source.html | 4 +- ...xponential_cooling_schedule_8h-source.html | 2 +- .../html/mo_first_impr_select_8h-source.html | 2 +- .../html/mo_gen_sol_continue_8h-source.html | 2 +- .../docs/html/mo_h_c_8h-source.html | 2 +- .../html/mo_h_c_move_loop_expl_8h-source.html | 2 +- ...mo_impr_best_fit_aspir_crit_8h-source.html | 2 +- .../html/mo_it_rand_next_move_8h-source.html | 2 +- .../html/mo_l_s_check_point_8h-source.html | 6 +- .../mo_linear_cooling_schedule_8h-source.html | 2 +- .../docs/html/mo_move_8h-source.html | 4 +- .../docs/html/mo_move_expl_8h-source.html | 4 +- .../html/mo_move_incr_eval_8h-source.html | 4 +- .../docs/html/mo_move_init_8h-source.html | 4 +- .../html/mo_move_loop_expl_8h-source.html | 2 +- .../docs/html/mo_move_select_8h-source.html | 4 +- .../docs/html/mo_next_move_8h-source.html | 4 +- .../docs/html/mo_no_aspir_crit_8h-source.html | 2 +- .../html/mo_rand_impr_select_8h-source.html | 4 +- .../docs/html/mo_rand_move_8h-source.html | 4 +- .../docs/html/mo_s_a_8h-source.html | 4 +- .../mo_simple_move_tabu_list_8h-source.html | 2 +- ...o_simple_solution_tabu_list_8h-source.html | 2 +- .../docs/html/mo_sol_continue_8h-source.html | 4 +- .../docs/html/mo_t_s_8h-source.html | 2 +- .../html/mo_t_s_move_loop_expl_8h-source.html | 2 +- .../docs/html/mo_tabu_list_8h-source.html | 4 +- trunk/paradiseo-mo/docs/html/search.php | 2 +- trunk/paradiseo-mo/docs/html/tree.html | 136 ++++++------------ .../paradiseo-mo/docs/latex/classmo_algo.tex | 6 - .../docs/latex/classmo_aspir_crit.eps | 18 +-- .../docs/latex/classmo_aspir_crit.tex | 2 +- .../docs/latex/classmo_best_impr_select.eps | 18 +-- .../docs/latex/classmo_best_impr_select.tex | 10 +- .../docs/latex/classmo_cooling_schedule.eps | 18 +-- .../docs/latex/classmo_cooling_schedule.tex | 2 +- .../classmo_exponential_cooling_schedule.eps | 18 +-- .../classmo_exponential_cooling_schedule.tex | 10 +- .../docs/latex/classmo_first_impr_select.eps | 18 +-- .../docs/latex/classmo_first_impr_select.tex | 10 +- .../docs/latex/classmo_gen_sol_continue.eps | 18 +-- .../docs/latex/classmo_gen_sol_continue.tex | 12 +- trunk/paradiseo-mo/docs/latex/classmo_h_c.eps | 40 ++---- trunk/paradiseo-mo/docs/latex/classmo_h_c.tex | 20 ++- .../docs/latex/classmo_h_c_move_loop_expl.eps | 18 +-- .../docs/latex/classmo_h_c_move_loop_expl.tex | 6 +- .../classmo_impr_best_fit_aspir_crit.eps | 18 +-- .../classmo_impr_best_fit_aspir_crit.tex | 6 +- .../docs/latex/classmo_it_rand_next_move.eps | 18 +-- .../docs/latex/classmo_it_rand_next_move.tex | 4 +- .../docs/latex/classmo_l_s_check_point.tex | 16 +-- .../latex/classmo_linear_cooling_schedule.eps | 18 +-- .../latex/classmo_linear_cooling_schedule.tex | 10 +- .../paradiseo-mo/docs/latex/classmo_move.tex | 6 - .../docs/latex/classmo_move_expl.eps | 18 +-- .../docs/latex/classmo_move_expl.tex | 2 +- .../docs/latex/classmo_move_incr_eval.tex | 6 - .../docs/latex/classmo_move_init.tex | 6 - .../docs/latex/classmo_move_loop_expl.eps | 18 +-- .../docs/latex/classmo_move_loop_expl.tex | 2 +- .../docs/latex/classmo_move_select.eps | 18 +-- .../docs/latex/classmo_move_select.tex | 6 +- .../docs/latex/classmo_next_move.eps | 18 +-- .../docs/latex/classmo_next_move.tex | 2 +- .../docs/latex/classmo_no_aspir_crit.eps | 18 +-- .../docs/latex/classmo_no_aspir_crit.tex | 8 +- .../docs/latex/classmo_rand_impr_select.eps | 18 +-- .../docs/latex/classmo_rand_impr_select.tex | 12 +- .../docs/latex/classmo_rand_move.tex | 6 - trunk/paradiseo-mo/docs/latex/classmo_s_a.eps | 40 ++---- trunk/paradiseo-mo/docs/latex/classmo_s_a.tex | 14 +- .../latex/classmo_simple_move_tabu_list.eps | 18 +-- .../latex/classmo_simple_move_tabu_list.tex | 6 +- .../classmo_simple_solution_tabu_list.eps | 18 +-- .../classmo_simple_solution_tabu_list.tex | 6 +- .../docs/latex/classmo_sol_continue.eps | 18 +-- .../docs/latex/classmo_sol_continue.tex | 4 +- trunk/paradiseo-mo/docs/latex/classmo_t_s.eps | 40 ++---- trunk/paradiseo-mo/docs/latex/classmo_t_s.tex | 20 ++- .../docs/latex/classmo_t_s_move_loop_expl.eps | 18 +-- .../docs/latex/classmo_t_s_move_loop_expl.tex | 6 +- .../docs/latex/classmo_tabu_list.eps | 18 +-- .../docs/latex/classmo_tabu_list.tex | 2 +- trunk/paradiseo-mo/docs/latex/doxygen.sty | 4 +- trunk/paradiseo-mo/docs/latex/hierarchy.tex | 70 +++------ trunk/paradiseo-mo/docs/latex/main.tex | 10 +- trunk/paradiseo-mo/docs/latex/refman.tex | 2 +- trunk/paradiseo-mo/docs/man/man3/moAlgo.3 | 2 - .../paradiseo-mo/docs/man/man3/moAspirCrit.3 | 2 - .../docs/man/man3/moBestImprSelect.3 | 8 +- .../docs/man/man3/moCoolingSchedule.3 | 2 - .../man/man3/moExponentialCoolingSchedule.3 | 8 +- .../docs/man/man3/moFirstImprSelect.3 | 8 +- .../docs/man/man3/moGenSolContinue.3 | 10 +- trunk/paradiseo-mo/docs/man/man3/moHC.3 | 18 ++- .../docs/man/man3/moHCMoveLoopExpl.3 | 4 +- .../docs/man/man3/moImprBestFitAspirCrit.3 | 4 +- .../docs/man/man3/moItRandNextMove.3 | 2 +- .../docs/man/man3/moLSCheckPoint.3 | 12 +- .../docs/man/man3/moLinearCoolingSchedule.3 | 8 +- trunk/paradiseo-mo/docs/man/man3/moMove.3 | 2 - trunk/paradiseo-mo/docs/man/man3/moMoveExpl.3 | 2 - .../docs/man/man3/moMoveIncrEval.3 | 2 - trunk/paradiseo-mo/docs/man/man3/moMoveInit.3 | 2 - .../paradiseo-mo/docs/man/man3/moMoveSelect.3 | 6 +- trunk/paradiseo-mo/docs/man/man3/moNextMove.3 | 2 - .../docs/man/man3/moNoAspirCrit.3 | 6 +- .../docs/man/man3/moRandImprSelect.3 | 10 +- trunk/paradiseo-mo/docs/man/man3/moRandMove.3 | 2 - trunk/paradiseo-mo/docs/man/man3/moSA.3 | 12 +- .../docs/man/man3/moSimpleMoveTabuList.3 | 4 +- .../docs/man/man3/moSimpleSolutionTabuList.3 | 4 +- .../docs/man/man3/moSolContinue.3 | 4 +- trunk/paradiseo-mo/docs/man/man3/moTS.3 | 18 ++- .../docs/man/man3/moTSMoveLoopExpl.3 | 4 +- trunk/paradiseo-mo/docs/man/man3/moTabuList.3 | 2 - trunk/paradiseo-mo/docs/mo.doxytag | 13 -- .../tutorial/Lesson1/hill_climbing | Bin 472307 -> 472239 bytes .../paradiseo-mo/tutorial/Lesson2/tabu_search | Bin 561904 -> 561808 bytes .../tutorial/Lesson3/simulated_annealing | Bin 471756 -> 472275 bytes .../tutorial/examples/tsp/src/libtsp.a | Bin 1708868 -> 1711744 bytes 212 files changed, 566 insertions(+), 1287 deletions(-) diff --git a/trunk/paradiseo-mo/docs/html/annotated.html b/trunk/paradiseo-mo/docs/html/annotated.html index 4f986ce67..2f29a5bac 100644 --- a/trunk/paradiseo-mo/docs/html/annotated.html +++ b/trunk/paradiseo-mo/docs/html/annotated.html @@ -61,7 +61,7 @@ moTS< M >Tabu Search (TS) moTSMoveLoopExpl< M >Explorer for a Tabu Search algorithm -
Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
diff --git a/trunk/paradiseo-mo/docs/html/class_empty_selection.html b/trunk/paradiseo-mo/docs/html/class_empty_selection.html index 4d0b4ac35..87f71ffac 100644 --- a/trunk/paradiseo-mo/docs/html/class_empty_selection.html +++ b/trunk/paradiseo-mo/docs/html/class_empty_selection.html @@ -45,7 +45,7 @@ This class is used as an exception that can be thrown if a solution selector has

Definition at line 21 of file moMoveSelect.h.


The documentation for this class was generated from the following file: -
Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
diff --git a/trunk/paradiseo-mo/docs/html/classes.html b/trunk/paradiseo-mo/docs/html/classes.html index 2cca984d0..ee1c2213f 100644 --- a/trunk/paradiseo-mo/docs/html/classes.html +++ b/trunk/paradiseo-mo/docs/html/classes.html @@ -45,7 +45,7 @@
  G  
moMoveInit   moTabuList   moGenSolContinue   moMoveLoopExpl   moTS   
  H  
moMoveSelect   moTSMoveLoopExpl   

A | B | C | E | F | G | H | I | L | M | N | R | S | T

-


Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
diff --git a/trunk/paradiseo-mo/docs/html/classmo_algo.html b/trunk/paradiseo-mo/docs/html/classmo_algo.html index 162435bcf..9823c824a 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_algo.html +++ b/trunk/paradiseo-mo/docs/html/classmo_algo.html @@ -28,19 +28,11 @@
  • Class Hierarchy
  • Class Members
  • -

    moAlgo< EOT > Class Template Reference

    Description of an algorithm of the paradiseo-mo library. +

    moAlgo< EOT > Class Template Reference

    Description of an algorithm of the paradiseo-mo library. More...

    #include <moAlgo.h>

    -

    Inheritance diagram for moAlgo< EOT >: -

    - -eoMonOp< EOT > -eoOp< EOType > -eoUF< EOT &, bool > -eoFunctorBase -
    @@ -56,7 +48,7 @@ Description of an algorithm of the paradiseo-mo library.

    Definition at line 21 of file moAlgo.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_aspir_crit-members.html b/trunk/paradiseo-mo/docs/html/classmo_aspir_crit-members.html index 9d44d1f84..ec30750c7 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_aspir_crit-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_aspir_crit-members.html @@ -29,12 +29,8 @@
  • Class Members
  • moAspirCrit< M > Member List

    This is the complete list of members for moAspirCrit< M >, including all inherited members.

    - - - - -
    functor_category()eoBF< A1, A2, R > [static]
    init()=0moAspirCrit< M > [pure virtual]
    operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
    ~eoBF()eoBF< A1, A2, R > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]


    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_aspir_crit.html b/trunk/paradiseo-mo/docs/html/classmo_aspir_crit.html index 0d88cf387..bfb2ca401 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_aspir_crit.html +++ b/trunk/paradiseo-mo/docs/html/classmo_aspir_crit.html @@ -28,7 +28,7 @@
  • Class Hierarchy
  • Class Members
  • -

    moAspirCrit< M > Class Template Reference

    Description of the conditions in which a tabu move could be accepted. +

    moAspirCrit< M > Class Template Reference

    Description of the conditions in which a tabu move could be accepted. More...

    #include <moAspirCrit.h> @@ -36,10 +36,8 @@

    Inheritance diagram for moAspirCrit< M >:

    -eoBF< A1, A2, R > -eoFunctorBase -moImprBestFitAspirCrit< M > -moNoAspirCrit< M > +moImprBestFitAspirCrit< M > +moNoAspirCrit< M > List of all members. @@ -86,7 +84,7 @@ Implemented in moAspirCrit.h -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_aspir_crit.png b/trunk/paradiseo-mo/docs/html/classmo_aspir_crit.png index e6cefe1bfc95c5549aef2ed609a360dc8c7c1e9c..b959606a7b2df5e8ea6c548dbd4123dfa983d5f5 100644 GIT binary patch delta 720 zcmV;>0x$j135o`g7Ya}W0{{R3#+CAtks&jG0-#AmK~#90?U-$j;~)%%8?7|IF*h)C zfz__G=RsPj_dmj78xl&>7I%hxto)`bv^cLHh(oJfE-JwoIUR*kgWL^zD|dt5%6&iR z={5?0yHoYu!?X8;b~l4l4ldAX3e$0*9W5s9v;+;8DWRo9W{{e)2OkR>Cc-X@TWKPlp@p0e4yU2K=(&E@sP}`WI}h%mb5W#DK6{0FH)zMB z?%_%o=tHfv%UvhXynDE+rt?IOQ`5A2@Ji3ShwRe??aG<%i2Jl?dKvMS?N?;b8r!ev zzx%^qZ-94ybV}%J+?(JHoe}!udfgjAuTw&w^F}o2tz^(! z$)LBAL2splK&M~kaf+j$2l=w%AYX%S6$kkmbgMYX*PvU)LB0mvDh~2B=vHx%uR*tp zgM1CTRn!Fk?$;kh>`(Ikp*Z2MBKGnt43R*O@%}XEN(SBN{LokpAVBH*)b|*Fe4tkq ziQu{Gm+uybXV5qYDh#`z7e|jd0p42pPzL0T)Xo!q4qeXF7`D(zlS806CO{-lWau<= zOzX^3rg3B^Pmw4IQ-jb8J?B9(fS@wGgZ4mn2^cV86F99dwe;rYI(a!#P$&_Bo9s;} zm~%aVE_raV>o&ZDX0*)5sK_;cE#6$yRThcFT!uUVp~@jiR-te5C=I)y3#?yO8n|5U zb3j4L)lW&DL!&@z47;J{Or^nGC#wrna&)XT=2l_&0@^RoH#Lp1o=AlsjNVmWh@xh{uQWqNP zBuylfCp+(+V#d4Ic8mAQyVr9WZhbYF$>5u}@!0eoOz}R9x8Ao}y>(!}bkZ&3ad~I> z6Yu)R3-?}q9_}PP`IGUMA6xWud2SV|+Rk-k|88*4b{qezs~0Yp$Xl&>`Hi`9r@!~| zV7|Mv{M8p9PnmIc>W3Ex?Q+-T=6VGH|qiS zE5ToXKYz|@DJtc>`@ESWLzgkiyWyJ9f~_nNW<3%c#Js{+GF|`b?mwSd7cl;v@9^6~ ze)F;W7pENAeKWK3bB2~o#-`g5^0SXDF6fvYyULWoS261uL)Ag$N$>L5t=hC*Gd^W= zZjQ>*VdwF!mfy)TtM(SxdATTqqszZv*>!|mv>Py4Fe_7~n->~n_^3*Q|YQ4fe7ep35e(C1czx$TJz21d+99B>FTs->LalSan ztNHwQpK7--ZT-AynM178cZo;WR7<8S<^h>M6_`-Hh~`6}$G0-)zRFm`6?@WZLH*V> z%u%O*m0mc!ZJJ?XxyPxzxLVmSJ1i|do^rg+OUz)e`ZD*WdlY}}J+}5|V*8l4cP1A^ zUr76KqfnB)+`!7EY~lks#xj|oiw)Gz?hA0Yed{Tnp~mmM;+?B$do(z9P(KXS-6!z<0h zI`@Ofm#mAEOdO(x3$<3}Qq@vuiK8F$<)5|=IE&3htHb=hy>!Qcym*VftU zUjFg+mVuz>p8MuS^0QQCXEq+Ze8JnhP+9n-Y`ITP{bLvZU?0Wmdk>g1c01+Q%u3N+ zIsNcqJ-L)6JK62_ZV{e*S4_gD<=Mr<{{tq~nyIKyTe53m@6*KRiBmtj`v+fQd#z^j ze7Em5b>3$ecD`h`O44Fr(E}qc7Pl`IR#n=5k$_X}9WJL-;4Ig)aXYI?Rr+ Vx64RQ2bMt$o~~?uF6*2UngAz@IzRvb diff --git a/trunk/paradiseo-mo/docs/html/classmo_best_impr_select-members.html b/trunk/paradiseo-mo/docs/html/classmo_best_impr_select-members.html index 7cf97d2e4..f7d01a05a 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_best_impr_select-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_best_impr_select-members.html @@ -33,13 +33,10 @@
    - - + - - -
    best_movemoBestImprSelect< M > [private]
    first_timemoBestImprSelect< M > [private]
    Fitness typedefmoBestImprSelect< M >
    functor_category()eoBF< M &, M::EOType::Fitness &, void > [static]
    init(const Fitness &__fit)moBestImprSelect< M > [inline, virtual]
    operator()(M &__move, Fitness &__fit)moBestImprSelect< M > [inline, virtual]
    operator()(M &__move, Fitness &__fit)moBestImprSelect< M > [inline]
    update(const M &__move, const Fitness &__fit)moBestImprSelect< M > [inline, virtual]
    ~eoBF()eoBF< M &, M::EOType::Fitness &, void > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]

    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_best_impr_select.html b/trunk/paradiseo-mo/docs/html/classmo_best_impr_select.html index 67b8e7193..01b90a5fe 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_best_impr_select.html +++ b/trunk/paradiseo-mo/docs/html/classmo_best_impr_select.html @@ -36,9 +36,7 @@

    Inheritance diagram for moBestImprSelect< M >:

    -moMoveSelect< M > -eoBF< M &, M::EOType::Fitness &, void > -eoFunctorBase +moMoveSelect< M > List of all members. @@ -54,7 +52,7 @@ void  - + @@ -111,7 +109,7 @@ template<class M>

    -Function that indicates if the current move has not improved the fitness. +Function that indicates if the current move has not improved the fitness.

    If the given fitness enables an improvment, the move (moMove) and the fitness linked to this move are saved.

    Parameters:
    @@ -151,7 +149,7 @@ template<class M>
    - +
     Procedure which initialise the exploration.
    bool update (const M &__move, const Fitness &__fit)
     Function that indicates if the current move has not improved the fitness.
     Function that indicates if the current move has not improved the fitness.
    void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
     Procedure which saved the best move and fitness.
    ) throw (EmptySelection) [inline, virtual] throw (EmptySelection) [inline]
    @@ -172,8 +170,6 @@ Procedure which saved the best move and fitness. -

    -Implements eoBF< M &, M::EOType::Fitness &, void >.

    Definition at line 68 of file moBestImprSelect.h.

    @@ -182,7 +178,7 @@ References moBest


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_best_impr_select.png b/trunk/paradiseo-mo/docs/html/classmo_best_impr_select.png index e803a39a43bee14670efe218d4fc1ad1dcdaf15e..5b868e9d7a0908bd78d7ba048e0e55fe63d120ba 100644 GIT binary patch delta 474 zcmV<00VV#j2!RA4iBL{Q4GJ0x0000DNk~Le0001z0000`1Oos7004C{0+Asze*u?C zL_t(|ob8oeZo@DLfXz#v4L5LhgY80l%KeWpeoRUdH%mKfN+pvN+ZeuLu$1)GOVa1m zM?MDWHBza+MG$qMu6V+Vc{Wf0p$Uz9!u_ zRwTD?Nz8{e2}A>01oAWkvWaQHo&XxjcH2bJk4RYpH4ljv#V-Q0WSup{?Cz(8oaI%b zlQfnUqD7<%(@;>~KuS#_E)U zeO)Jgc6E~8$-U9uC9EXrFrD3}&^vFKllJ#%FL1QEb$vV16Ea9=N!`9uKa3Fs9H)xM Q>;M1&07*qoM6N<$f&fs`wEzGB delta 1039 zcmZo<*~FpP8Q|y6%O%Cdz`(%k>ERN@z`zJ(G8|xG29lD87lck!G_Gep;pyTSQZeW4 z?7(TW4R~B1F2C<#EpXRy_rkif|E341cpod9ACVxKPhsTe1 zGuPDo`T30DZnpqP8X25pF4^yR@vj&!1H%TU6<3rZ{|VRspS{#{M&68HX198z%vgk1 zer0|;L08m4b^D9JXZAU(5B}c9wP=4m%Z-FA2A?+;EClFw%^vMKX#sAtKrGHV4@9ku_;Rk zbH#h#hBw7|43`9ppDtvLFy0W!tas3hCsE>6AqK_o3#cDcNE+`SZOOX4l1k-XQ$ovxM~Y#m;i|=jy~lre6)e zHT{)tUc#NSvN#Ut)C_k)eORqRTO zQ*w&+iScYTtkK*H6n9KGxg${KyMPR{K>b2R4bSXtY!}Tu_s-(3&F4S(nxXi`w2hI* z0u0yF6`tFfMBiM~7$Bp+wo#+5I&tBRb<9U~Ixd~>dOYu2T(}d+h2I%U{zu*W+kSF4 zbIJ6#yP$+VSPt1Y^%ndNb8j2OPG}X*Wnp0W#w6f+{MQ7-o5w5cU6&s!<2*3s@74Al ze;E^g`cG%@x%{Zw(wo<0Qq|IO@lw7h8XLbXLF zXcPav^Gy03k6$RL8ylz{Pl>!x($kp8&%2R{hb@%BM)d}-fhEgUhLfr9W*=lz`#Co# z)<)5S#b9k4&x5l2Ya}@uyp0V+F9!4awC-KUSRE6}Y{hNzH&ZMk^ws1XA+_o=O&Wh0 uDsK73aIW9k!t|ilu7}}+JoA@-QUAonZB^f|>0(z0`O?$X&t;ucLK6VnysXOr diff --git a/trunk/paradiseo-mo/docs/html/classmo_cooling_schedule.html b/trunk/paradiseo-mo/docs/html/classmo_cooling_schedule.html index 4b5b092f5..f9b45c4c9 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_cooling_schedule.html +++ b/trunk/paradiseo-mo/docs/html/classmo_cooling_schedule.html @@ -28,7 +28,7 @@
  • Class Hierarchy
  • Class Members
  • -

    moCoolingSchedule Class Reference

    This class gives the description of a cooling schedule. +

    moCoolingSchedule Class Reference

    This class gives the description of a cooling schedule. More...

    #include <moCoolingSchedule.h> @@ -36,10 +36,8 @@

    Inheritance diagram for moCoolingSchedule:

    -eoUF< double &, bool > -eoFunctorBase -moExponentialCoolingSchedule -moLinearCoolingSchedule +moExponentialCoolingSchedule +moLinearCoolingSchedule @@ -53,7 +51,7 @@ It is only a description... An object that herits from this class is needed to b

    Definition at line 22 of file moCoolingSchedule.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_cooling_schedule.png b/trunk/paradiseo-mo/docs/html/classmo_cooling_schedule.png index f60c26373fa68cbc49fdab1b9f4dacd895aa4613..078143b2df0e36e3111cade89ddcacd7d4a26fde 100644 GIT binary patch delta 761 zcmVq{SPks&jG0?A24K~#90?U+%Hq#zK6A)CxI#SL&T zu-QrWJSLm;{g1Fv1&WGFY15+1|1fA#^}{EMJqp2k|lB3L(qQZ@>T=4D$6ZWW}oN7zN3Kz%Oa)(BD*mm$D^ zFfZ5dTICSvj{pjSpd9I&q|ya3+hen`AQ)cp}8^M9BM z5$baP$RG`&hCv!a<{uLmH!`m1MfTK7lzdcCfm!dX24;R%m(L#ROw zp$0XC8q^SKP<;rm52!FgU)W!iU$?%nzi0><>I?gehLEAYu)k;s8R`rBi-wS)zOcV& z2pQ@N`-_HIeHp@f&tLU zEN!s6>i~w_Zb&YX}%f5P@jvqR9w+H0;aoUyw(uhY@F{sLD1mhSm4SvokflB)_yJM zgnFzW1)(E<;~Tspa|9S>5mmTlzpaDBGG2Q}>! z7+K$ud=JolNfnsR_l^-}T75kvm3|opoqIcPdwZQl&;=3pyuHpM7})MVgRtlA^|YUP r1=J97)DU*{5d`KJ52lWMgyHHRpi-kx_My^)00000NkvXXu0mjfuwi8y delta 1243 zcmdnYHj!(BIM)FdW(Ed^Z@Qd%6BUi?S(bacIEGZrc{?{ZZ;1gnR?iKjtEW7sCP91BO-|wUySd!~aEV@lCHaoIxZ%^H!l(3s!R^Y%}ssBlH zOzUM{_5Mp}VwiBLf@K!>xl>XHw;8=`m1N>mDPY!||89>!TcR{${Mlz)_Q@#D^ge9shl2IMv48ZTOtU@X#>sZqwym z_J^K7E-V#3w~DbvY}saof(b~d9+?AY3%Iwi{d2i=NPZQIqX0{yDC6U$lPb1KJYPAv zc1F(Uq!@uukJVcwE*#@kWNTW=k+4TFIh5D6(U)Vw(f-(8gVx7_P5n=L8Y?FpdDPk{ z@+e%hOTYi}ZZXE@_eRROHcg!Gcb*eS;}KUlav`KXho8rrqi){q*u5fdDlTxVT>LgynRmX5bY&+l$4=lJK^Xx{WG)#{c`)vk5oD?E)^_NQ}xTx1uO*RkMN zLqd9)OGN!2ql3Z=y#=OtRXtqseR?+c!R=%t$;35p;;+`f-@b8Ey($O0N!YjbEDsxwo%%ObLFPil&HX|x z%u?FF!$ov!f4 zQ=o5!Da+<>Ecsr>9WOsR-PEj?k$k+-ukV_`m*Q{RlJ0kNbieJte&O?}=c#A!d~|G? zS%0c_ImfZYU?a!f$$y$REbry~8CdHVsI_`y!?HUQt<+SnOoi9cu#wCfU z>YeX-9GyQ+D9Ww5b-ZNqlg)D`MgKCMA!W48Pu1A=;U7uHB<)Gs276P0>J+yKez^GL zv&$ScJIlH--cb9Nf3ssZwHU;jiyrl^e^4#Rc)xzR$U&pl>;&0Hf!eSe5xnP)#Ij7c z7d8_xt68r&W6tzDdi+al1Xuc*sXbA<`@Z!8`_p~b1x(J}e?E_U?z;4=5_2U_GO043 zWS;W7&Z$7VQP%uqm&p;EvpbX|f5prQ<1IfI=iv4>oNLRP^&TZ`4M9g2nY(Cxo2ztY z%X~wVt7UCh+=}O)+kG>9?m49wT^!Z>Jkteva^~ANZ+JfY%B|~rxP)4ig<4|wvM&74 i=f1G6NO)Pue}*sJJm

    moExponentialCoolingSchedule Member List

    This is the complete list of members for moExponentialCoolingSchedule, including all inherited members.

    - + -
    moExponentialCoolingSchedule(double __threshold, double __ratio)moExponentialCoolingSchedule [inline]
    operator()(double &__temp)moExponentialCoolingSchedule [inline, virtual]
    operator()(double &__temp)moExponentialCoolingSchedule [inline]
    ratiomoExponentialCoolingSchedule [private]
    thresholdmoExponentialCoolingSchedule [private]

    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_exponential_cooling_schedule.html b/trunk/paradiseo-mo/docs/html/classmo_exponential_cooling_schedule.html index 4664ffb80..c433ae810 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_exponential_cooling_schedule.html +++ b/trunk/paradiseo-mo/docs/html/classmo_exponential_cooling_schedule.html @@ -36,9 +36,7 @@

    Inheritance diagram for moExponentialCoolingSchedule:

    -moCoolingSchedule -eoUF< double &, bool > -eoFunctorBase +moCoolingSchedule List of all members. @@ -48,7 +46,7 @@ - + @@ -117,14 +115,14 @@ Definition at line double &  - +
     Simple constructor.
    bool operator() (double &__temp)
     Function which proceeds to the cooling.
     Function which proceeds to the cooling.

    Private Attributes

    double threshold
    __temp  )  [inline, virtual] [inline]

    -Function which proceeds to the cooling. +Function which proceeds to the cooling.

    It decreases the temperature and indicates if it is greater than the threshold.

    Parameters:
    @@ -134,8 +132,6 @@ It decreases the temperature and indicates if it is greater than the threshold.<
    Returns:
    if the new temperature (current temperature * ratio) is greater than the threshold.
    -

    -Implements eoUF< double &, bool >.

    Definition at line 41 of file moExponentialCoolingSchedule.h.

    @@ -144,7 +140,7 @@ References moExponentialCoolingSchedule.h -


    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_exponential_cooling_schedule.png b/trunk/paradiseo-mo/docs/html/classmo_exponential_cooling_schedule.png index 02c711475435533e49c9c1d63701878b8f0800f9..f00c024dc2f9da30ff3b4ba32a5e1b15f4f115bf 100644 GIT binary patch delta 505 zcmVLyI%4$4dbJw7A&ok{o{YVYA=8EKRM%KU^>rj#~LUpK2meDXTl zIv?Pt#1OPfT$a4!yno_Zk|%L6k;d4Qqdfm9pGuKzmy7ue^(%A5NtS~;P}Sl+{z5%} zzRman#7V2?$$TLSAJO@UPvVpF>o$7yJA6Ymd~BTMT7GdptOu5QrJwx4RGiE={Ukc3 zpIf#k^c_3MPlNeOS0qp5AGOKBKlzhC z`IA5S=jY>4iy;nZ(rxlzh!1?<-7JuQFpF)?^+I#5>sYN?{{AjB3{LS}Xo(#@@MZv| zCQkr#wGM!wVJSk(jgknw!Q`KIKWFP+x>{J@fo`+R%8Y|!~~?N@wgcVWE#`IMPt^Q$(X zy5EW)TwuYC&JEUmS00000NkvXXu0mjfaEk<- delta 871 zcmV-t1DO1^1fU0y7Ye`x0{{R3qeXulks&jG12#!SK~#90?V3xH;~)%%&1Tj}H;_*- zHFKd}<^D$)kc0uh+Sp-YcZo#|0zQLKQuZGWf4i37!=JHdG5+oO08q4Ovf`WgHHRiE zEr+)8DXcrJ5}AfX7%hO&j2QVmfXAHTM`)lVK9X4C9f8*`P1@VZ0Y2~^(yfG#>i=MW z9Z&NEqFjH?7yrbaP<8%I>mT>|d^Wgy&PV-ETE!XvivNrFA!JOjki-xBpMb8!&pV3o zjel=`@8^@o^3^)wUi@FLXY*gLuSfHr9zVu6zVVH3eB&G6_|NC}e!qD7`E57KWN$J|>Pm-JRX(qlEdfVim zq>IWFILc>%4J)Hul#i4DEB@>TGyWubiWZ6E8lMk7RB4r8-(a!+vGmWz`UR`FruFao zpGyBz+Fg_XH4vx@292Mnffn%t=|(N_(^$U$3*Z|6`@b-L=I@*F{~y2i^GWZ2=c{}1 zP5=BX|LO5#eB&G6_{KNB@s0m{e((2-r@wz0|2&^^YFkdzQ)6ydttNhv0pgbest_fitmoFirstImprSelect< M > [private] best_movemoFirstImprSelect< M > [private] Fitness typedefmoFirstImprSelect< M > - functor_category()eoBF< M &, M::EOType::Fitness &, void > [static] init(const Fitness &__fit)moFirstImprSelect< M > [inline, virtual] init_fitmoFirstImprSelect< M > [private] - operator()(M &__move, Fitness &__fit)moFirstImprSelect< M > [inline, virtual] + operator()(M &__move, Fitness &__fit)moFirstImprSelect< M > [inline] update(const M &__move, const typename M::EOType::Fitness &__fit)moFirstImprSelect< M > [inline] moMoveSelect::update(const M &__move, const Fitness &__fit)=0moMoveSelect< M > [pure virtual] validmoFirstImprSelect< M > [private] - ~eoBF()eoBF< M &, M::EOType::Fitness &, void > [virtual] - ~eoFunctorBase()eoFunctorBase [virtual] -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_first_impr_select.html b/trunk/paradiseo-mo/docs/html/classmo_first_impr_select.html index f05db8262..4a319a441 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_first_impr_select.html +++ b/trunk/paradiseo-mo/docs/html/classmo_first_impr_select.html @@ -36,9 +36,7 @@

    Inheritance diagram for moFirstImprSelect< M >:

    -moMoveSelect< M > -eoBF< M &, M::EOType::Fitness &, void > -eoFunctorBase +moMoveSelect< M > List of all members. @@ -53,7 +51,7 @@ typedef M::EOType::Fitness  - + @@ -144,7 +142,7 @@ template<class M>

    -Function that indicates if the current move has not improved the fitness. +Function that indicates if the current move has not improved the fitness.

    If the given fitness enables an improvment, the move (moMove) should be applied to the current solution.

    Parameters:
    @@ -182,7 +180,7 @@ template<class M>
    - +
     Procedure which initialise the exploration.
    bool update (const M &__move, const typename M::EOType::Fitness &__fit)
     Function that indicates if the current move has not improved the fitness.
     Function that indicates if the current move has not improved the fitness.
    void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
     Procedure which saved the best move and fitness.
    ) throw (EmptySelection) [inline, virtual] throw (EmptySelection) [inline]
    @@ -203,8 +201,6 @@ Procedure which saved the best move and fitness. -

    -Implements eoBF< M &, M::EOType::Fitness &, void >.

    Definition at line 76 of file moFirstImprSelect.h.

    @@ -213,7 +209,7 @@ References moFir


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_first_impr_select.png b/trunk/paradiseo-mo/docs/html/classmo_first_impr_select.png index a2a1234c8817927ee34de29656b933c61a3cce65..c7295b0509209bfb7410b3493cbff09ddd350dfd 100644 GIT binary patch delta 473 zcmV;~0Ve*d2!I43iBL{Q4GJ0x0000DNk~Le0001!0000`1Oos70PnY2Jdq(Ye*u6hShT|8W_4@|S2|DeC`o#T@P_2m)426>E(2fOoll*B5lj-9qd7Iwn zgJhtdKsEm@0_aqeKK3=+bx^Fw7F~NNm}w8y8e2CwN*3~gT}5RjRFC>SszP9ukQ9=_P75YH^5LLJh#g`iw1!RZIf2}F@%h?W< zml;K-xS0@CDf$&gfi9^Wl@RC9g6qb67LHk3hHh0usf*W1d1#vAJ(V>bv>%G zqL5IRwQ|S%TCE+_1j%X8FGm5CI~Z*XROh+s$OHd{zlnN42I>*iaWAhgRXquAnRmbl P00000NkvXXu0mjfG!WNL delta 1032 zcmZo*SERN@z`zJ(G8|xG29lD87lck!G_Gep=;`7ZQZeW4 z?7*_e3Oufl=l^uO)o5cq<7UAAUH?^iI5?RL{odTrJNu zm|u54BSV8YL&plM$w^PwGiAtnZah_cbuy#My~;iQVdXl9PCCswbB5DFJ7aD(!=&pk zjxk1TQdOMjrZE51yofza4pOY?^(Pr}ECtqnE@imrF54)k!0*`AYT{X?#_)W1HP3>d z2X{~U_*6!q`n2qUrIrC_nG(MW>rP5>wa zUd~)oSNEr&;h`r7NE#U&XKefLVE9K}ih&`4(Ico^tGU{d6rwe;`qT*HXFagJL)S2u_*<8wIL7t4^tv+B0UM3?mfvmI}|+xsO! z%KK8ZRKucw6<43QtNcBCRbWNqQ@#ctuOicxW+lxLDXM1rx(qX)xE1pr;60F|9P7T| zMaU`*FV(!K%WBvs=+_4@UXb%B?EJ3 z2i=CNajY7(=VTr749#u7FnF_s6(3NE_^4RoY|TBR_JnnVD*KXoCs$iO*xayUmh(~h zLdBDNe^~`QN+?R2XcFqRF0JwV0>#MLtmjWBYnF7r&$i8Bsd$r|YI&>v>fwv$o6;g{ zm)5N2S7!JV((thV>EZn|_E;Y%xS3}GAwHT*jFyqkmb6oU$@k6+wODQVkW*fz9Jibonb=m8?PvyaHqK+Y|5=- z*IJya7gJ1(X31fX=ARH#pgOs5xkaAh4R(cZYC9L`tbHlxVw>_cYu%T9WI6LR}FghXC~q3^MEs4n7t0>p0YC1oV(JquL^awWc#QQWj5rFjeceCPV+M zmYSD*3i~ceG6b(On0PnPX0deZf@=b@EfZ$F{#wy7UCl~bVS<%$!;e+Class Members

    moGenSolContinue< EOT > Member List

    This is the complete list of members for moGenSolContinue< EOT >, including all inherited members.

    - - - - -
    functor_category()eoUF< const EOT &, bool > [static]
    init()moGenSolContinue< EOT > [inline, virtual]
    maxNumGenmoGenSolContinue< EOT > [private]
    moGenSolContinue(unsigned __maxNumGen)moGenSolContinue< EOT > [inline]
    numGenmoGenSolContinue< EOT > [private]
    operator()(const EOT &__sol)moGenSolContinue< EOT > [inline, virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]
    ~eoUF()eoUF< const EOT &, bool > [virtual]


    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  + operator()(const EOT &__sol)moGenSolContinue< EOT > [inline] +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_gen_sol_continue.html b/trunk/paradiseo-mo/docs/html/classmo_gen_sol_continue.html index 89934d275..2c35e7b6c 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_gen_sol_continue.html +++ b/trunk/paradiseo-mo/docs/html/classmo_gen_sol_continue.html @@ -36,9 +36,7 @@

    Inheritance diagram for moGenSolContinue< EOT >:

    -moSolContinue< EOT > -eoUF< const EOT &, bool > -eoFunctorBase +moSolContinue< EOT > List of all members. @@ -48,7 +46,7 @@ - + @@ -117,14 +115,14 @@ template<class EOT> - +
     Simple constructor.
    bool operator() (const EOT &__sol)
     Function that activates the stop criterion.
     Function that activates the stop criterion.
    void init ()
     Procedure which allows to initialise the generation counter.
    const EOT &  __sol  )  [inline, virtual] [inline]

    -Function that activates the stop criterion. +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.

    Parameters:
    @@ -134,8 +132,6 @@ Increments the counter and returns TRUE if the current number of iteration is lo
    Returns:
    TRUE or FALSE according to the current generation number.
    -

    -Implements eoUF< const EOT &, bool >.

    Definition at line 44 of file moGenSolContinue.h.

    @@ -151,7 +147,6 @@ template<class EOT>

    void moGenSolContinue< EOT >::init ( - void   )  [inline, virtual] @@ -174,7 +169,7 @@ References moGenS


    The documentation for this class was generated from the following file:
    -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_gen_sol_continue.png b/trunk/paradiseo-mo/docs/html/classmo_gen_sol_continue.png index b40e349915ec015116a4058123385084528f5689..84c8334c7d9fedd73d390d7786a5397e223104bc 100644 GIT binary patch delta 483 zcmV<90UZ8>2Z{tCiBL{Q4GJ0x0000DNk~Le0001}0000`1Oos70Dq(-^N}Gle*vIL zL_t(|ob8oMZp0uAhViCr|GokA2JMBqn)@H27z1HK2DMVsDv})q955e#NeQ19Ncc#n z%ezDW0vaJ@N(ty|Nv5OF?fgb;b}yl#JmtjHQSrbZv2{t)g#%PXof9)gb50kKM~P9l zBtZtKr19zlD57HXQ|^{nU5N?heQIL|)STXqRTU8F^&e;?P54dufI;bY?OurmPX0 zT3w-l@jQ;bKRp!U%JiUa|i{DIfsuUC^yCu8fx?t zbn;XS(1PPF&H-f_?Q%L)Ie(W^Qolh~aw>gl4N)4=63jK3L-kvqPSrnK9O}^1p;!E( ZzX9jhG(SfEGCcqQ002ovPDHLkV1jQe+Fbwu delta 864 zcmV-m1E2hg1cV16iBL{Q4GJ0x0000DNk~Le000230002M1Oos70EFxQ^pPPme*+px zL_t(|ob8%jj;k;Xg~`i(j=ckC1*3a6G*8|C5^iEUe~`3gI%$PuOH9EeALd{Q<|y00 zCGoZW4J*R9ALRl-b3`SJFLL|&RI+p&`W%;Hov|up3KC(;0H!oz;_?6+G7z%}Pf2p3h~f0zxYxp8V+Z_gDSQsvY=*Qe?Y_qnV+PM_a1`jYPA zj{6gRn|>hV=`lmn53DZ%{iGjW4dWX3J=|6A`4jPdX7J~^e{R>}-frKQ;$E#EjB8xu z8rQhSHLh_bR()4r?f(no?zxmajEOgvl5C~{n=kCXKy$7TX57j3Q8(frf0W_)h|B)R zo~y}Zov}}n*>vDSLuk3hzR6q&H7Pa@9=Sya2-N^ew#|?Wpc5#x?ormat+(2WEmy$8 z&7(r*G2_m<68dt51`A^Ux2X1BBYY zSzidM&#WI_h?&9sBKNdEfB9+{_p01g@A*~VC7f$8i#Y!3j2aIGLPg>7&Fx^Jn#=xmYz`$rAz4*v3=zKW})%Ad4*RY3{ zmKUMAC)wYkkX@h$T!g&BEU2v$>hd#ce4Ok6bzH(3H?OP;u;Z3ff0-+e6)z^M^|s(K zx1dJcNUIK8r$YlCap^vnt-lfXQN4v*7n;>m(Cgdu!+m|#N0Y^8R6Vr(NZWqM{rjLF zelv_~-1l%-z2{ebmwcXU{@GgY)%wA>#x<^SjcZ)v8dn0Agx~yPRGqb9e3dRf5ho_UHZvm+;$8vdB1fe;ks0a10}^@r+LUFriO(0*UKrtl^gT2 zxgpm>n(v*aT-RjJeC*RE7h0RBw77`7V9E;f5xAZl`b44@Z5YHneeb(gcqCS6YM{RK)fw qY|{_9e@FfB`(a$;zK6T$J^vq0?UF9hobA5=0000moHC(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select, eoEvalFunc< EOT > &__full_eval)moHC< M > [inline] moHC(moMoveExpl< M > &__move_expl, eoEvalFunc< EOT > &__full_eval)moHC< M > [inline] move_explmoHC< M > [private] - operator()(EOT &__sol)moHC< M > [inline, virtual] -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  + operator()(EOT &__sol)moHC< M > [inline] +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_h_c.html b/trunk/paradiseo-mo/docs/html/classmo_h_c.html index ddef4b6f1..5100fd38f 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_h_c.html +++ b/trunk/paradiseo-mo/docs/html/classmo_h_c.html @@ -36,24 +36,20 @@

    Inheritance diagram for moHC< M >:

    -moAlgo< M::EOType > -eoMonOp< M::EOType > -eoOp< EOType > -eoUF< M::EOType &, bool > -eoFunctorBase +moAlgo< M::EOType > List of all members. - + - + - + @@ -69,7 +65,7 @@ typedef EOT::Fitness  +eoEvalFunc< EOT > & 

    Public Member Functions

     moHC (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select, eoEvalFunc< EOT > &__full_eval)
     moHC (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select, eoEvalFunc< EOT > &__full_eval)
     Full constructor.
     moHC (moMoveExpl< M > &__move_expl, eoEvalFunc< EOT > &__full_eval)
     moHC (moMoveExpl< M > &__move_expl, eoEvalFunc< EOT > &__full_eval)
     Light constructor.
    bool operator() (EOT &__sol)
     Function which launches the HC.
     Function which launches the HC.

    Private Types

    typedef M::EOType EOT
     Complete exploration of the neighborhood.
    -eoEvalFunc< EOT > & full_eval
    full_eval
     A full evaluation function.
    @@ -117,7 +113,7 @@ template<class M> - eoEvalFunc< EOT > &  + eoEvalFunc< EOT > &  __full_eval  @@ -162,7 +158,7 @@ template<class M> - eoEvalFunc< EOT > &  + eoEvalFunc< EOT > &  __full_eval  @@ -202,14 +198,14 @@ template<class M> EOT__sol  )  - [inline, virtual] + [inline]

    -Function which launches the HC. +Function which launches the HC.

    The HC has to improve a current solution. As the moSA and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm.

    Parameters:
    @@ -219,8 +215,6 @@ The HC has to improve a current solution. As the
    Returns:
    TRUE.
    -

    -Implements eoUF< M::EOType &, bool >.

    Definition at line 82 of file moHC.h.

    @@ -229,7 +223,7 @@ References moHC< M >::fu


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_h_c.png b/trunk/paradiseo-mo/docs/html/classmo_h_c.png index 6a4aadb1edb175af9af669e32b1b3817d6762449..1d7aa771638bf7786e97d39ae6ef8c9ff85e8591 100644 GIT binary patch delta 414 zcmV;P0b%~*3&sN>iBL{Q4GJ0x0000DNk~Le0001u0000`1Oos70M^j!XOST@e*s)c zL_t(|obA<7a)clZ24H#Vvwv<7PS9yDv`^mu2n{4C3R{(7I?j~rx+{nuF)-uw-6cM! zFW)1EbIYOl&4TUl0K$*wcyi(}7mhSxGkC5{lsj@e$wbKk$42RpQF7f=NRJKdtIsZ<V^moq3@+@arUXOB~wqC;-&Txh^oZ&prL6?}Pbh%5)!)bS1 z`~q7u9&L`B(g-L2csI7@I47MB>TH+qJ2S%lbLK#K=ghn21R^-HPxUgU%&9`ZIw>Ed z?%AzR*y30|$!W?**DKaXTQ}>I)+^sXu5JI^iQ)WLr_+1q2mfyZY^e$5hX4Qo07*qo IM6N<$g1&0RGXMYp literal 1507 zcmcJPdo+t8I6OoY%#;I48~B+Y0{E`v?XPJ7Otz5TuCyx;fvKHq z>-@A=r0SAm`E!wMVE69Q54rn--d>+l_c@Ul%Fg>Rg@v+`g?sEqyl^E+H%fX^hj+3g z`WDMDQe#+FvR`rXm8N7MQ?;|t9nc|1`vE3Bx+!LYIk-z+s3?SUTbKgRa_2_k`F?!_ z06OM2YDH%6C?Ox{Kb;(FzI3K$6~?c1;hITkh{M54n_OtCU5CTeC)*gSC7nqGcysS!oxl(0T%rYSPpHLz6FzW%-X4&2d0&C2e9W8p;;olw--SxIOr`WT;P3Pboe_55ruEN;poMZL#s(WAMW^W88RGxkzEr#xE*(8|OA<=BSX7Bitl`J0N6q2CLv^YA+IHRhCmk1#O@grnXqJgXT zJeOywzdHMd}l(Piu7BM9QG9j2i?;$6w6A#dHsX zBh`IjeC9UBEt8S9e1mk9=z1WMguxwjs3t5uC8kLu3RpCO~-I zShxm^{%sk`Gr*czeG5H|WKRu4?v20gOyCgR8tgp}1D>0<ckBAk&T3ch4uQ(&; z)t$=_L-+jLB*23Lc$FWaL7Hd)Z*dySZvo8TQj>o`^Ud`&&$GX^ezcHMLi@L4$?zspl z!1*A~v-(6{(<)-+z&CM`&uI7~;KBfWtLSO~{wP?`YRxo|#Cy8V(({~6=4|`T`;e}J znx-`eEBRdH<5ck6y^58ucm0=BybnnF8-5LuJ=ZqxCbl+HGEe1ya7Z1<`)zHE^U4K- zqing_#>(PIyfSw#p>Zs%lzRPIXsxu>n_Mce3rG{us1OH3`IafVF?wF|kz(bj+N5}R z?tt}jTwiBOS9MMPdVT40K1^Xj;pxdcc;m~m2O@H5hhCxUJy%6VM5WvP<3b6CyNnC& zbW0t+5~qEZSHAqdql_9j>8jC$rs_#-WQQgOol=MkF(`=*otTIfim#U6N*ij#u>ZyJ z=QsWpKW2vSD(pz$6isW&Lp<9{&vs*UePQ&sYh^WBF!PKDmove_initmoHCMoveLoopExpl< M > [private] move_selectmoHCMoveLoopExpl< M > [private] next_movemoHCMoveLoopExpl< M > [private] - operator()(const EOT &__old_sol, EOT &__new_sol)moHCMoveLoopExpl< M > [inline, virtual] -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  + operator()(const EOT &__old_sol, EOT &__new_sol)moHCMoveLoopExpl< M > [inline] +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_h_c_move_loop_expl.html b/trunk/paradiseo-mo/docs/html/classmo_h_c_move_loop_expl.html index 0c2f6ec26..cc2ca0d85 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_h_c_move_loop_expl.html +++ b/trunk/paradiseo-mo/docs/html/classmo_h_c_move_loop_expl.html @@ -36,10 +36,8 @@

    Inheritance diagram for moHCMoveLoopExpl< M >:

    -moMoveLoopExpl< M > -moMoveExpl< M > -eoBF< const M::EOType &, M::EOType &, void > -eoFunctorBase +moMoveLoopExpl< M > +moMoveExpl< M > List of all members. @@ -164,7 +162,7 @@ template<class M> - +
    ) [inline, virtual] [inline]
    @@ -181,8 +179,6 @@ The exploration starts from an old solution and provides a new solution.

    -

    -Implements eoBF< const M::EOType &, M::EOType &, void >.

    Definition at line 59 of file moHCMoveLoopExpl.h.

    @@ -191,7 +187,7 @@ References moHC


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_h_c_move_loop_expl.png b/trunk/paradiseo-mo/docs/html/classmo_h_c_move_loop_expl.png index 8c76fd46e7d798861365f4696569afed1df2dafc..8c51e26c5b7ad21137cc074c8cec2c637dd5a5d6 100644 GIT binary patch delta 620 zcmV-y0+aor43Y&QiBL{Q4GJ0x0000DNk~Le0001`0001p1Oos70CYDt0g)jye*!2; zL_t(|ob8xPa>F1DhGEk+;s$VnPJ5xOa{nU~Az`oqn`Ce^PNX#EVd)D<_SpT^?{xcC zKYq3e^PiZOzsUfAd#>Yg%nSrqM&!Qhc=Vaph8VCM5jyyZ4Z^I2Cz#-n>O!>Vj_1Z> z2k=0w=t1nGbvoZr9&t zE$0*aWj^C)G@q&5v4e4V9RO_Vo|u(AdLK0*AHp0lVa{fr@hl#;+qmm1nP2y7Fz@%< zC74&KyD)_*OkoOBn8Lgc^Ne@etGv$(Guu`+TL0HNA~V&@zOb|&^(CRqf7}t4uyNp> z8O9gXKW@<2NVQC|W9mz}wOsYyPvF*xC4Q5MND)V_LGp(6z zVaXPCACZ|JxsP1#?#egs$Q(6c&SswREI#9%;gw9$mnPc@NMQ<7n8FmMFopTqOqgy) znduu6=7~%l{{Zk9zr~4ie}tt?;mi5#Q!~TC=r9R=X1OGqS@}n%*5Rmum}c>bGn!9e zqwvzBQSjH=>@f`>%Vege-!WRH6KMoA(zu!E42wUp6H^%q4L89NliZA=Js4VEViI)C zT-K=!&4f18Y|F%GW&&r}&}@VbFpW|*Q>PKEn4NXTy7R_N9JTU^LNzM#NpV#^Q{CzM zHPpnL|G-%(=`Hp2dH)VoWIu&xuL^0000Br;9LJ|nnJFr?ZaAltOH)GA53Mbk((x;?*@n!TpHmkplzy?f#=Sb`XT`Wk z_T9|AYje3V+0~db#jIOti6M&IF~73i-P<|$^zZGQ`^WP<@6UPuc%J9|dB2`)f8S#e zBd8Gw1cG=S_Xq%i^z3zdL4UPwcK->Ir&}!jy#vu&tyU+s+BPOL{H9L*GuqnPF12e% zbfw<;0N+y})adg_5Xhj>%i~C3%AF5)2>HWy8_*o)qWOCer-BrDbRL)&W|}&#>ypDe z+grWYeA^sq?klR>)JbG0#mH@cPR`6fvlg++i9u2XjO3j#BEVd#@{=Nf;qkL^$<6V$SGB1-KMw9y< z;0eW!1kUQ>ri1tnmvP>x2{1H_aUC7v2bCnL2XTt0zqW!Yrx;Y1b!w{-*t-W2H zRT*Lx?--Rrp0lnbVv(=zum$PE6mn6E)0B1Asb8!fRrUGDh*Rx*-cWn*Q$M`Dr|yze zw_M>-%9K9SPhztf$~}Rv8K*ZA@Ikb*n93c|Xc$QnQmQag&%Mjw&s8B$TUHjPkpQjg-oG;-^Wf& zKt&3t!#plOlVJ57hR)54tbjqVS^JNTa5ES~6E(|Pf^maH4!?;tdhPKuH_o|x`@X?Q6>nR^lv54Uu+ z@LO0`J~+YGQ{2L)zN5O;*$~UHweS*7ecz`Sn({~4I&hfkiBDd-)U@F16l5n)L`LRk zH$EE^wcOAQ`r2TA8RZ+a^g84b((KZ@kp>nySf--Mn!Ja8W%gIIhaiBQYAmkWYM^hy zzG8RAuC=?;3nwxFtc|uvrW1pq1@MqAS&locofU)=xnZPK<65(uFUgRLoFZ!Q;O@8- zF@3XhfokFkPK1Vqb%y7_pI5Uh-|<@(Jg;9O%;}Isj>;Cn#z0ycKS03|V&G=8PPr35hVBrMiRTFsBxxa)l6W&Kk*fAw5z1 za#&n4fSG)9h$D68awHm3w|#52Y%hn%$i}E#PehkKTdfg`PRG1`3Pt*;qBxPm@uP#W z^t-Cr&h;bPH|E(gdpA%73(@kP2`BMG`Q+49Tt~yAscOG?6B#(c$-xlnt&%9XtMxoB zMag8ay{Bvh12O!DTh@6|fW38ThD@Bec_92CB58kwN+MN9gmsLihleTQmRxMi4AoW$ z^=UGcC#B&tx>)&Yxw=INhWe!&151ZBT5gXb;$L_)7L2viP}&d}qWjN5UT9yBdiU@f Fe*v>Rbest_fitmoImprBestFitAspirCrit< M > [private] first_timemoImprBestFitAspirCrit< M > [private] Fitness typedefmoImprBestFitAspirCrit< M > - functor_category()eoBF< A1, A2, R > [static] init()moImprBestFitAspirCrit< M > [inline, virtual] moImprBestFitAspirCrit()moImprBestFitAspirCrit< M > [inline] operator()(const M &__move, const Fitness &__fit)moImprBestFitAspirCrit< M > [inline] - moAspirCrit::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual] - ~eoBF()eoBF< A1, A2, R > [virtual] - ~eoFunctorBase()eoFunctorBase [virtual] -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_impr_best_fit_aspir_crit.html b/trunk/paradiseo-mo/docs/html/classmo_impr_best_fit_aspir_crit.html index f0c9db3eb..f9d762d10 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_impr_best_fit_aspir_crit.html +++ b/trunk/paradiseo-mo/docs/html/classmo_impr_best_fit_aspir_crit.html @@ -36,9 +36,7 @@

    Inheritance diagram for moImprBestFitAspirCrit< M >:

    -moAspirCrit< M > -eoBF< A1, A2, R > -eoFunctorBase +moAspirCrit< M > List of all members. @@ -58,7 +56,7 @@ void  - + @@ -108,7 +106,7 @@ template<class M>

    -Function that indicates if the fit is better that the already saved fit. +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.

    Parameters:
    @@ -127,7 +125,7 @@ References moImprBestFitAspirCrit.h -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_impr_best_fit_aspir_crit.png b/trunk/paradiseo-mo/docs/html/classmo_impr_best_fit_aspir_crit.png index 76e0473f0a9fceeca4263f73d5ff9205790d6b34..cfb21ada85b68fd3d2031a0700b35520c2da5509 100644 GIT binary patch delta 488 zcmV2c!g$7Ya}W0{{R3op?Bkks&jG0lG;Ktwjb2EPs}tm7#p>V{hgCxQli0PlM|aiQSkztdnpLG#foAHFdwT<*DF?0$8s;2tD)N^RUbq#A%{!hK#|xI-(IoN25`{*vN0cj z%HmV2CGuskofgl*DS!rfcnjoFeU?F9&$7$SR$Q&WrE2=8sCkCb?}HGWGbc!{vv(MP|uS=eT1zF zw#5|!7{b9?60}~g#m3>&$ubeEr~|Kqi4Cn#hN2B_RhqXOA$LrfR9Z%Hmp~x41RB9U zJsFOJYm5+(B2I9LOr*{}z-0ms@;bNyX{?xCnmL&BR47jabPb&O7#vcQ#flqKc(r00 z!DkvH@1b#YMXJTQ#*)U-74`$A#?ciey22gCu82Oipmjyt#k`N_-MnZw{a614_%YVO e&j9cB`Tqh;VLP3v0^kV%0000_V;4okK65H;0soTgB|Q(2Rqoo4tDUN4g2uE-fs{GKLWERgNwcv z=SnN1x#$$#(#=e3U4|;nL*+3lZYRNiQPh(LxFBM*u=~JS{>k9TN0XL{M>$b&+~#8! ztT`r|vjrQ;6A}w+&;<-+R&Y&urE4|G|&qUnJ@dNOw99vZ& z)>>T##|+MwJF4Q)R+K{xxf5Koc0zp)eBK;gB|Q( z2Rqoo4nDMDAKusd4dUQa;N=It{Ong5j$$>|y|c-tuIA-!ZbchvN-IZT;-FZbVld7z zvYJA=N@}t=*bl}?W!Dw&xRO0rXz7qts8B?DOU+$V?TD-GT(NBUnoZB*OBTH4szp8q z%Vw@E*bS1M26snH*0p_YCc-W`w#E8#tct8WG^+}&V+LC(l)E?$ zzO!Q;>_>s0G6%l`JnZ#9?1SYUz^=Ou2Vbx%9PD5RJJ`VvcCdpF4aZoR!kD{r@QcAv zT>!-5lllSJF|0fRgLK0(wh;Eg3nqZMLhT>}*6NJZVs$Z{0rU&)}T_rVu`{00#PEdq|W;jR5Egu5d9S3uovd1Ki0Ri-uAS_^+ZVbVJ!%u~r5DhhRB7)~cAaDx`s>DzuKdldB@%#kP*O)!ejGf2-dD{59s_SAa*o a{{I0ck%QKzt>cUU0000
    -
     Initialisation procedure.
    bool operator() (const M &__move, const Fitness &__fit)
     Function that indicates if the fit is better that the already saved fit.
     Function that indicates if the fit is better that the already saved fit.

    Private Attributes

    Fitness best_fit
    num_itermoItRandNextMove< M > [private]
    operator()(M &__move, const EOT &__sol)moItRandNextMove< M > [inline]
    rand_movemoItRandNextMove< M > [private]

    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_it_rand_next_move.html b/trunk/paradiseo-mo/docs/html/classmo_it_rand_next_move.html index 5d1355565..2c2cbc331 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_it_rand_next_move.html +++ b/trunk/paradiseo-mo/docs/html/classmo_it_rand_next_move.html @@ -36,9 +36,7 @@

    Inheritance diagram for moItRandNextMove< M >:

    -moNextMove< M > -eoBF< A1, A2, R > -eoFunctorBase +moNextMove< M > List of all members. @@ -109,7 +107,7 @@ template<class M>

    The constructor.

    -Parameters only for initialising the attributes.

    +Parameters only for initialising the attributes.

    Parameters:
    @@ -169,7 +167,7 @@ References moItR


    The documentation for this class was generated from the following file:
    -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_it_rand_next_move.png b/trunk/paradiseo-mo/docs/html/classmo_it_rand_next_move.png index a90754a6bfa755ce53f560818167cb485e13b994..574beda2c5be0329aa0b7d4884736a2bf472f24c 100644 GIT binary patch delta 451 zcmV;!0X+WC2LA()7Ya}W0{{R3{9qc$ks&jG0hLKaK~#90?UhMx!!Qg*#ZA_vZs44t zXfM=N?tg@m|67VY1#T*!X(7t6OiFy_Aj9dSr@W>2YeyNl-nfj5kCWe~&5nKR0nS=n zhQ7w_T35Inu~_!maR$ZcIQbRBzJqh$9A1IL9G5@%G#jonhE`&aqnjE`1e14g2&&+J zR=fjTq-{nVN|0gm+%r?8b;Emrt9pYAS6krDMK@(;!&(v-YONi{iQ1vF*V5T+Q*EiM z_s-6^mHfqzY~cO_uJe!aoLo-s`yJfv^M!Gj+wFyMFW%XK8@PcRxPcqEfqMpLJw=oD zOk&_V;UuY;E%a2^RbW}m(z?N=#vsXmTAV*M?<#v1R^TMU5cAo9i{s;4Tv3H8aXjf5 z+hW)QoQ7wFhUf%gDQ-#?OTzckkY)_6#1|-6{Y8 delta 790 zcmV+x1L^$#1J4GK7Ye`x0{{R3;RXzgks&jG0_90WK~#90?V3@NmGG_x8zK%CF)E6s6^o5U@i80XsC zq~6!y-hba1_xApNW8BR%>o~_b&T)=&oZ~)&Tl~3r?{DL8j^kB19Q6{~O%(+9x{jS( zyzkhq%+aibweW#eZHOaTNnhZqAyIaJaRyhG{RKz3YiXbwif42TBI^us8avFIXIuv4 z*fqQcmlTY5Sx<@ybZE5bj@Nm&+rg?HnkY5(lPrDg-DT{a;0CeFnFX*Fmx7~$E4QC! zcGw!*M>V{8oF$yy`Y>*)IqpWd#S`P=Y5PlXUPpO>x0L2M$2rb%j&q#j?toi={JD7V zZ{u%|I~M$9yFuTsr4MjmaVY&BcPZ^~$iDDmTDK~22h@-tZ}|8KF4<}|;MhokL|lxi zWrB=RX?JO5KajM`(rG*2>!`59VEXvzEP^u0(M3tU+16=JJ9GgOeoAZu$ z?MOK+??cf-mx-Mglb**;Yh)#Vvj|jEO1sHy#&zvq{F6EEf50uC7#C05UxM>G$_u=u zG{-s4agKAG;~aMf9IR|{iz^4=xJ9_I#Q@Osw|YMYk@T&Vo^YEHgbge%U72SUokl9S zz-|OczaTh%eUeJ*#3;skgw4cGj&tlJWhJwk(fr;?W;t6WrKx*lHsdbdyVslJ95;zuJ2CzNi0mI@ Ux||L900000NkvXXu0mh|f@CX(XaE2J diff --git a/trunk/paradiseo-mo/docs/html/classmo_l_s_check_point-members.html b/trunk/paradiseo-mo/docs/html/classmo_l_s_check_point-members.html index 90189ca3c..dd397c7c1 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_l_s_check_point-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_l_s_check_point-members.html @@ -31,12 +31,8 @@

    moLSCheckPoint< M > Member List

    This is the complete list of members for moLSCheckPoint< M >, including all inherited members.

    __rand_move the random move generator.
    - - - - -
    add(eoBF< const M &, const typename M::EOType &, void > &__f)moLSCheckPoint< M > [inline]
    funcmoLSCheckPoint< M > [private]
    functor_category()eoBF< A1, A2, R > [static]
    operator()(const M &__move, const typename M::EOType &__sol)moLSCheckPoint< M > [inline]
    eoBF::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
    ~eoBF()eoBF< A1, A2, R > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]

    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_l_s_check_point.html b/trunk/paradiseo-mo/docs/html/classmo_l_s_check_point.html index 67be9244d..eeb535d85 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_l_s_check_point.html +++ b/trunk/paradiseo-mo/docs/html/classmo_l_s_check_point.html @@ -28,29 +28,23 @@
  • Class Hierarchy
  • Class Members
  • -

    moLSCheckPoint< M > Class Template Reference

    Class which allows a checkpointing system. +

    moLSCheckPoint< M > Class Template Reference

    Class which allows a checkpointing system. More...

    #include <moLSCheckPoint.h>

    -

    Inheritance diagram for moLSCheckPoint< M >: -

    - -eoBF< A1, A2, R > -eoFunctorBase - List of all members. - - + + @@ -95,7 +89,7 @@ template<class M>

    -Function which launches the checkpointing. +Function which launches the checkpointing.

    Each saved function is used on the current move and the current solution.

    Parameters:
    @@ -120,7 +114,7 @@ template<class M>
    - + @@ -146,7 +140,7 @@ References moLSChe


    The documentation for this class was generated from the following file:
    -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule-members.html b/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule-members.html index 54719b331..709ef4b3a 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule-members.html @@ -30,10 +30,10 @@

    moLinearCoolingSchedule Member List

    This is the complete list of members for moLinearCoolingSchedule, including all inherited members.


    Public Member Functions

    void operator() (const M &__move, const typename M::EOType &__sol)
     Function which launches the checkpointing.
    void add (eoBF< const M &, const typename M::EOType &, void > &__f)
     Function which launches the checkpointing.
    void add (eoBF< const M &, const typename M::EOType &, void > &__f)
     Procedure which add a new function to the function vector.

    Private Attributes

    -std::vector< eoBF< const M &,
    +std::vector< eoBF< const M &,
    const typename M::EOType &,
    void > * > 
    func
    void moLSCheckPoint< M >::add (eoBF< const M &, const typename M::EOType &, void > & eoBF< const M &, const typename M::EOType &, void > &  __f  )  [inline]
    - + -
    moLinearCoolingSchedule(double __threshold, double __quantity)moLinearCoolingSchedule [inline]
    operator()(double &__temp)moLinearCoolingSchedule [inline, virtual]
    operator()(double &__temp)moLinearCoolingSchedule [inline]
    quantitymoLinearCoolingSchedule [private]
    thresholdmoLinearCoolingSchedule [private]

    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule.html b/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule.html index 5af7e479e..ec5dfd2b7 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule.html +++ b/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule.html @@ -36,9 +36,7 @@

    Inheritance diagram for moLinearCoolingSchedule:

    -moCoolingSchedule -eoUF< double &, bool > -eoFunctorBase +moCoolingSchedule List of all members. @@ -48,7 +46,7 @@ - + @@ -117,14 +115,14 @@ Definition at line double &  - +
     Simple constructor.
    bool operator() (double &__temp)
     Function which proceeds to the cooling.
     Function which proceeds to the cooling.

    Private Attributes

    double threshold
    __temp  )  [inline, virtual] [inline]

    -Function which proceeds to the cooling. +Function which proceeds to the cooling.

    It decreases the temperature and indicates if it is greater than the threshold.

    Parameters:
    @@ -134,8 +132,6 @@ It decreases the temperature and indicates if it is greater than the threshold.<
    Returns:
    if the new temperature (current temperature - quantity) is greater than the threshold.
    -

    -Implements eoUF< double &, bool >.

    Definition at line 41 of file moLinearCoolingSchedule.h.

    @@ -144,7 +140,7 @@ References


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule.png b/trunk/paradiseo-mo/docs/html/classmo_linear_cooling_schedule.png index 51f1257538ad7247802e98643b97b19b6d5b4174..3821b70aa47ed0efa81c881a2f12938ed5cceff1 100644 GIT binary patch delta 455 zcmV;&0XY8K27?5U7Ya}W0{{R3Y;$7=ks&jG0hvieK~#90?UhS%!!QVj#incE26AuE zUMQ>F{|E&MJ!3m|tG4b`cp@Y8>kAl-?cN8Qds~Lu>jZum&=V(@eHSeAX0{LHBIG`J z2I#%+B9qdxNKTR=tLFn+7d^){jmWC{n?O#gkdUf%pg0I91lcqcZ(J4e09<$tXr2;( zSw%VWRbW5_AW;DleHO?CSSMQJwt%*`0a6o8kM>B(+BH3LRhQ)=pMnasE_;5`sEIuMJbP83U1R!TM;R%KOBtgV&u^Q?i|HXGC;SIjzm=Ng#{{I@;gx$KE#o1vvUM`T@;kCmy3sV-5fS002ovPDHLkV1g{N$?O0C delta 802 zcmV+-1Ks?C1ltCX7Ye`x0{{R3aTRq$ks&jG0`W;iK~#90?V3??;~)%%&C5O`-9X+O zv={1A?tg?ufIv8y+78_$Q>jx2Wbs9yOdS4U`J8Oa$2!&i8t_Mf0HAtQym%GZ4y59x z`_ONI6fz5WU>uG_$R0p;BQh`s#F%41ri5VvL`oih3y2w}F757>;%NThQYgk z9tVaoI>Q#2rp&ogQ?zl0>lhf<7rVvzb`2>vaRWTHhN{Yhaa{0Fs&ZUI0yVBDr}fsnR;^2~s&)@UH8VOwC)6$A*;2}N-c%|T5W)+$G^ zmaq#1$b*Vgi5S6KH7gAiq5uJOhOqX4Spr%Sd%#RA8LrKgcQQ;II+EdV4MDFV$|4Te zFqbRLYQ3v6zvwE1kVjQMYx|nyHQ+#!e77$L16~78e~eCl&_4@ky3GWe%`>2X0S#zC z0~*kP?+Bd!gY)%&V;e9TRqdwAB-vT}O>YcThiY)^JOd=&@yixn&SOy8yC=pfqOG9O z2i8M16$p(}miEY$xoRXjPCfm9MB=2i$T{gW&Y;R88=m$$59}T%dIZ=#PV^A)s2Oku zaQb6(`h)&iK+|m|*leBw4QN0E8qk0Sd`BQmw#Cn#h%?|^pbP&SzJucMZsV+d)w=_3 z%vY!1I`@H&uMSd%&c*f;vT!bire4U

    moMove< EOT > Member List

    This is the complete list of members for moMove< EOT >, including all inherited members.

    - - - - -
    EOType typedefmoMove< EOT >
    functor_category()eoUF< EOT &, void > [static]
    operator()(EOT &)=0eoUF< EOT &, void > [pure virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]
    ~eoUF()eoUF< EOT &, void > [virtual]


    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_move.html b/trunk/paradiseo-mo/docs/html/classmo_move.html index d8a9845f8..69d798102 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_move.html +++ b/trunk/paradiseo-mo/docs/html/classmo_move.html @@ -28,17 +28,11 @@
  • Class Hierarchy
  • Class Members
  • -

    moMove< EOT > Class Template Reference

    Definition of a move. +

    moMove< EOT > Class Template Reference

    Definition of a move. More...

    #include <moMove.h>

    -

    Inheritance diagram for moMove< EOT >: -

    - -eoUF< EOT &, void > -eoFunctorBase - List of all members. @@ -59,7 +53,7 @@ A move transforms a solution to another close solution. It describes how a solut

    Definition at line 23 of file moMove.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_expl.html b/trunk/paradiseo-mo/docs/html/classmo_move_expl.html index 755d207e3..d9fbe2e4d 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_move_expl.html +++ b/trunk/paradiseo-mo/docs/html/classmo_move_expl.html @@ -28,7 +28,7 @@
  • Class Hierarchy
  • Class Members
  • -

    moMoveExpl< M > Class Template Reference

    Description of a move (moMove) explorer. +

    moMoveExpl< M > Class Template Reference

    Description of a move (moMove) explorer. More...

    #include <moMoveExpl.h> @@ -36,11 +36,9 @@

    Inheritance diagram for moMoveExpl< M >:

    -eoBF< const M::EOType &, M::EOType &, void > -eoFunctorBase -moMoveLoopExpl< M > -moHCMoveLoopExpl< M > -moTSMoveLoopExpl< M > +moMoveLoopExpl< M > +moHCMoveLoopExpl< M > +moTSMoveLoopExpl< M >

    Public Types

    @@ -57,7 +55,7 @@ Only a description...See moMove

    Definition at line 21 of file moMoveExpl.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_expl.png b/trunk/paradiseo-mo/docs/html/classmo_move_expl.png index 66c1602bb04d70818190b561768c8297e0e2f84b..1b27438a76a121d08784a4aedc4de6fba1e03040 100644 GIT binary patch delta 948 zcmV;l155ne4%Y`EiBL{Q4GJ0x0000DNk~Le000400001p1Oos707^FwW|1K?e*bX~Z8N)V@yO$GRgR}A zp-e7=Km!hkX6eF|#=i}!bpUGL@Gs1j0C2`Q?C6jefsDj`LckfKURQ6;3P5>iwNDXN6}qyG44)bCcq4>8nuw%!$0 zQ5AKmkiW}*(R0q{rr)-|5;Y;Xebjr?Z`)sh8bX>pxI8s9;BXYR#FC=vsh7+`vg(NH z9l-j89Ht^+TWznpGP{%1=8VGfuf8wQqP)Ax;iYg&R zm5`!JNKqx!8}%k60n|?cpGM{mdR(V(N^dw-Pm3zfON^PN=85eOFXPJzH0x2K;jFU;)(%)j_d{qp|>BjF)Y+s-|1o zuTi03;#dLII;vQNe*vWzMS;Z%b^Xuor9Gm~byHYCF;D%~0;(C6{Sqoqjp5BFbO{p# zE`ITOf<08Oo0?G%6;Rz#vtNvXk64UzcNqwddgKd+X#(_w_K~ANs9ZJ!>GA-zp@8a+ zn*DNZ%|B2f2oCGvsE41KQE8GT>KxTW1ytLp*vrLC@X;tLe@k#i&9@!xITcz^pDv)< zMD;Z)Eu;!{E{gIC)Sal}4sfV|Y9E!IU~eN=;YyjS(Z{V^;NfOs~vz*iyhz@HI({%;kVU#t6ob{zXfW8^e-z#{qIqmpKY7<+{1Od{sM(@ WTFj-d;Ya`g3IG5}MNUMnLSTa2?zFxD literal 1884 zcmbW2YgAKL7RLi(C#CZ6!5F|Q)`m6(Z_C3nK`iAV%3~oAAQHF=A__8s=na)XM#L(h z26QNmf)Jpf7~oO~N#!OWj=VGo1ju6mjq)&%5Gh0;20|ufb(XF*{nGhxerunz_B!Y6 zv-f|W+@QdHCdO9AC=|-XcfWTC3S}6jx79{#^yJ%M^$RFWP(bKjold7Wb-GptBl?=& zS{<#et?B>Ljq9fdP)HyF_3bOkF%;^9IbUy&(6hIcB{4~re>3;7ra3>jmmDoKtN{~x zo%;Qnbn8VE4Ycy9@9Sf&Tr%pN3`R@|ZdaeJPf6kK8W+2N+&_mJp5rfeb_znadV%JH zYdwC$>_)H$6M1qdM6;2&!b4sabAA|FLeO^xEJ%e;!Ss*5OsxEL)Bbx`kfS?AW{JzoA*(19NZ`UG;%B+SN~#BV8Gj~ zzvo-oB>K6r+*7T6n+Bn0jL0!R*JPIgXnEHEiTmFJEBGx&I?0B2r&si23Fn_uHlT^x z0awR#HQc~b$*q~;IuBf$8MrVDMbl0D)X>2q`y&y<$m8}7CRtECc{+un@FW61T&(T> zSW+3|w_`R)>=HJ%Jai-YB?wJ44MxyegqZI2F^9RAUi!tr1NcSt32=&c0LciH9+@{TaOPA zo@Z(nBIm&bbLZQE1;Lm2XB~#7TamdKrt>Ywk(<69BBn#h<8<0p_m@DVSS!Qbm*c7$K_k*nMPmS8teB4L&|r+Qr6XV-q^6`k|;JHcdM7e;dUFV z+~f+wWXJT4@XmRwrOr2or6P;U!8QM2Gg6v6Rvem9&W$l>*AEJgc3tKLj2t){i=G$^ z6Kh(ij3vaU1JsL)8tyh}e?+%m@6C9~oq^ zSODFOBKXG~J}%z%D&oT3d}IFH!;PXONeATZ!SyvtNVPY*tw42p8TvTnqKvk5O%KMHoHxiuFq>R+&a2(IK0 z&p?koHNeTVaO*J9TD5B-kW9wfQ?If5uwey2!MQ;HUzS|!fMUj;!-~^s{B8(jld(>p zoM6xV6K;`nM-@d>;#TvqgOj7zFq9g~(RFm$k)r_!s;4Y*4PnVZYrm@c`#EsypKT2Ta&}6248YRT6v|0<4PkU61ZpZ^dQS$+$dahOIKHU2D&Y(16&#Hh}PcxBlv6W$b2+P88Mz!%!u`UvVUz9P0@b9GH4OjWtN z-L*@q3NSvM^=71JA`Zmm9h4^WtmDgTs4Lkr=-*W^W-x^KxT~zrPBBzRZoi%)T{d&? zD}0m_X-B2=2#erz4OIiXIm%@)sB+Il{I-bb+Z{@)CBdOPVkfzO-4QEdUteIzBfI;g zV+5@>`{8G+NqkW+d9SXwnIzw0|1?WuU0OCPiyNHHo~kA3ze1Gn-av2IGdk-(;*yhP diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_incr_eval.html b/trunk/paradiseo-mo/docs/html/classmo_move_incr_eval.html index 70fec459a..2d352c0d6 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_move_incr_eval.html +++ b/trunk/paradiseo-mo/docs/html/classmo_move_incr_eval.html @@ -28,17 +28,11 @@
  • Class Hierarchy
  • Class Members
  • -

    moMoveIncrEval< M > Class Template Reference

    (generally) Efficient evaluation function based a move and a solution. +

    moMoveIncrEval< M > Class Template Reference

    (generally) Efficient evaluation function based a move and a solution. More...

    #include <moMoveIncrEval.h>

    -

    Inheritance diagram for moMoveIncrEval< M >: -

    - -eoBF< A1, A2, R > -eoFunctorBase -
    @@ -54,7 +48,7 @@ From a move and a solution, it computes a new fitness that could be associated t

    Definition at line 24 of file moMoveIncrEval.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_init.html b/trunk/paradiseo-mo/docs/html/classmo_move_init.html index 5d9c6ea65..0ad63934d 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_move_init.html +++ b/trunk/paradiseo-mo/docs/html/classmo_move_init.html @@ -28,17 +28,11 @@
  • Class Hierarchy
  • Class Members
  • -

    moMoveInit< M > Class Template Reference

    Move (moMove) initializer. +

    moMoveInit< M > Class Template Reference

    Move (moMove) initializer. More...

    #include <moMoveInit.h>

    -

    Inheritance diagram for moMoveInit< M >: -

    - -eoBF< A1, A2, R > -eoFunctorBase -
    @@ -54,7 +48,7 @@ Class which allows to initiase a move. Only a description... An object that heri

    Definition at line 22 of file moMoveInit.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_loop_expl.html b/trunk/paradiseo-mo/docs/html/classmo_move_loop_expl.html index 27b008acd..fefc6ebe4 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_move_loop_expl.html +++ b/trunk/paradiseo-mo/docs/html/classmo_move_loop_expl.html @@ -36,11 +36,9 @@

    Inheritance diagram for moMoveLoopExpl< M >:

    -moMoveExpl< M > -eoBF< const M::EOType &, M::EOType &, void > -eoFunctorBase -moHCMoveLoopExpl< M > -moTSMoveLoopExpl< M > +moMoveExpl< M > +moHCMoveLoopExpl< M > +moTSMoveLoopExpl< M > @@ -57,7 +55,7 @@ Only a description... moHCM

    Definition at line 21 of file moMoveLoopExpl.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_loop_expl.png b/trunk/paradiseo-mo/docs/html/classmo_move_loop_expl.png index 82d725cec160ec109fdc0604bc0692bb3176ad12..3fc99c0f6b664ce32dcff9c3a63462c1b96c8d4d 100644 GIT binary patch delta 989 zcmV<310wv;4}b_EiBL{Q4GJ0x0000DNk~Le000400001p1Oos707^FwW|1K?e*>0D zL_t(|ob8-#Zrd;nhGi7!Z%H?hdx2pCcAf$Sa{nVtBqc{*j+Mc*qLyzq*s>Yw2}7yN z(7a0Z>+R3!dSdpc^tPU@4?z`FL2b%~zuVXt8%}LIVjQXmG6i~pT0~rq>YPV$CV;>R zJPe}x8_r*U8B}Wk)_P<|Cu=xBe`T$+FhWF%AmlNqt8Jq~uTqUI6*Hn%te2y%mQMU} z^_U11P)&@at0n7DR2$d3O{*GF$5%DH^8guo6_!=ftN0k*t8wAO3E;rkH$kxj1k_3| z^3$rxCa6CLwMT*~sDe7rhwE;=j|S-1M5wpV(FEO^2lf4S8;#JbiBM-+e^!FZAwlJk zpmIo1IV7kY5>yTeDu)D>LxRd7LFJI3a!61)G#+&^r;81Bf{bj51yxXaR3=`EYx#Y@ zU+8eE+woVTdIYn3KN;zE`~|4X;wN8Bm>N#tVW?`J#aC0)$cHUHY9OjM0INOnLMJL5 zR2&%^`OAxjdx%K!gnSjMf6_;&aDZN=ifbxnM7^_KhpIH4_@nY*1uBFFR1=>^S2xx% zs9LESb%`UBp^m6(pn^NiUWH|q^eR5C@71{Qam_Ed^nG`xJAiMAVh0GQbw)PS4sCUN z{3JpBuBgK@vLzN&LFLgzAFjJK{=Y1`H4*AOzq~XN>O{Z1G!g1df6GcxIV7kY5>yTe zDu+g+-k8LI`pJ+}@w@|{3^|pcGUQZ(%8*kDDnm{ss0=xkpfcoCg36FneOJ`(Z^wT1 z2L6Jy-CxiB+YO+8pZ@J+LOnh0hoB1T*}4MN;U8mahpOy3M}AcmssT41LoO_-Nlb1S zZCZK@AR7wPD$wUsV&;mZ-Fl3e?SY%4VoLRmB~k=}?vS z>Lb6Zebkr)M~z;EJ87@3c5U@)+yQ7`tsJV-9pJ#PDo5S2*mYa__!65^E_W?;RP~e00000 LNkvXXu0mjf^6bW4 literal 2000 zcmbVNc~H~W77m*rVqjE61QoU7fn?w^Jd!qaliS_nLB6ZeD|F1W_o(K ztykZw4uL?{yMN#3V4)<7sTOhe>eo98t(4m==~jak`|IphikcR%(AGj#sz;=@wM(MC}muiExY;E zR%m29A4!Vbpud3qh&S=h9SfNtt9=l&cGWNApXXcG!0P{#l61ycXxXFU2xzT>eWx~c z&ZqNQbjsL)DRf_$oGlR!HcsIg{@PTLy11qGv0>$N<|WZf4Tj#W0J30Kx`3VTq1x16Bv)nVqGPS z1MK$VZ=w0SN3$Y&IJ^XY!3@GvN15RGXK>+jId$Jyw)CQ~Pp2z4es`#B-Iz39sxhK2 zaavfKXA{(?l?fp~mS+^f)Fi3@65wgD^V^`QL7cQN1z-Y`c; z4>jqe`Ql8#1WjQ1!(_u#Vh3W#c-z5}tPde)t4&zgc|&gMtC2y`0i!u*Yz=<&c#{SB z=i|URC*iWc?#VX*J}vB!}m4nkii$)pst2QaA|uwbSFy37+;Fq@&C)dJcc~ zjiC@y+XYRb=Q;h$%rOvB^Awfa^A^z(?_9m?&Q#3bSwt) zG$taQ)e5*#05*d0uy|L69!HoxUv$Z>2A-9zwRvQ^<^(`QFXzE@(;L^Q<{Ui?HB?v} zq{DO<9lnkEcti_9Mo^5dhiy{s=o=w?>e7^PiQ2$@K!PCTT{K{oR}I4Sj-|$+#adxM zuGLf9MawzP_iG-xFmN5Tws~86@mFQW;9TETvZ_-_1P~DP)tyt(`>RH^C}DkHsvIsd-AixjA+^2`nXsJ#W_y9E`F$o&)45-1oQi|Nl{(FkusHA_)v{f{#F&Lf8T7Fc#Aty_u#r53Nc z^LCsaVjRYG9QDB~)Dam{3y~AaW{*`Cs2{}*Oeg?>spyB?%iUuCzDGBywm3L`(#-r* z`GXkrw-P1?c|Lo9m>O>?g5(d>(0Z!2igC> z%}YA%mScZk-XkACv$>N5D@=*sxd zy?5y1dI46<7r(BI5ac@&Vrb7acJ!n>{BE;9fClyL11yn_o+LLujDxd}Q8ny+MtEey ze$pMulHP7k*7HH#=O~%qurD$?LEe7G?0r;IQn@Hms7~Y4^-U`l$H&Q!;z-V5#m`` zscWQ5oq;dyP?&)qCj#ACucq0L`&XNz0gz=ye^D7^7|70K3U%2#`E)U+C3 zN?rZUzyt-LwpBjlcQ;vNC0%&mk9}#xJ*b&^Eq_|Ew}WBqL^rybd$qc2zI9L-0OWcz znG=};utXZkMv|Iy)9zVy6NUHcqH5nKoH$+U5A0dLzl{YXAcu*F9fjS*yn>VV=P;Cg zOlr?!MZ~evh;H+IF#Q6z*(OQ9*2T)R%hTKTR8(z#LAA*LxvWr9Wj{1(^NZKge8yAN uRj(gSsowd;zwCS;$8xqC1;GQZuPD@14v_iYK`rv{7vhfaZ~>iyQ~wJzu){0> diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_select-members.html b/trunk/paradiseo-mo/docs/html/classmo_move_select-members.html index 5444fc453..97daefe67 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_move_select-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_move_select-members.html @@ -30,13 +30,9 @@

    moMoveSelect< M > Member List

    This is the complete list of members for moMoveSelect< M >, including all inherited members.

    - - - - -
    Fitness typedefmoMoveSelect< M >
    functor_category()eoBF< M &, M::EOType::Fitness &, void > [static]
    init(const Fitness &__fit)=0moMoveSelect< M > [pure virtual]
    operator()(M &, M::EOType::Fitness &)=0eoBF< M &, M::EOType::Fitness &, void > [pure virtual]
    update(const M &__move, const Fitness &__fit)=0moMoveSelect< M > [pure virtual]
    ~eoBF()eoBF< M &, M::EOType::Fitness &, void > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]

    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_select.html b/trunk/paradiseo-mo/docs/html/classmo_move_select.html index a45d719d1..34f3d2622 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_move_select.html +++ b/trunk/paradiseo-mo/docs/html/classmo_move_select.html @@ -28,7 +28,7 @@
  • Class Hierarchy
  • Class Members
  • -

    moMoveSelect< M > Class Template Reference

    Class that describes a move selector (moMove). +

    moMoveSelect< M > Class Template Reference

    Class that describes a move selector (moMove). More...

    #include <moMoveSelect.h> @@ -36,11 +36,9 @@

    Inheritance diagram for moMoveSelect< M >:

    -eoBF< M &, M::EOType::Fitness &, void > -eoFunctorBase -moBestImprSelect< M > -moFirstImprSelect< M > -moRandImprSelect< M > +moBestImprSelect< M > +moFirstImprSelect< M > +moRandImprSelect< M > List of all members. @@ -55,7 +53,7 @@ typedef M::EOType::Fitness  - +
     Procedure which initialises all that the move selector needs including the initial fitness.
    virtual bool update (const M &__move, const Fitness &__fit)=0
     Function which updates the best solutions.
     Function which updates the best solutions.

    Detailed Description

    template<class M>
    @@ -128,7 +126,7 @@ template<class M>

    -Function which updates the best solutions. +Function which updates the best solutions.

    Parameters:
    @@ -144,7 +142,7 @@ Implemented in moMoveSelect.h -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_move_select.png b/trunk/paradiseo-mo/docs/html/classmo_move_select.png index 10bda515a7357fea269e9504ccda8891cc87c296..0781eef978a681677ee59b2cefa2fa33f49bd163 100644 GIT binary patch delta 953 zcmV;q14jJb4%`PJiBL{Q4GJ0x0000DNk~Le0005m0000`1Oos70H>i6m60Jce*j@uv*#cfsEzs=kLdVy6d^*l(Ga{nWg8D{M9N3txz#;$qY^*VTXem}q@ zP1hAxZ_253w({yvX|A=2mDg zKDXl%M$VpT*UxPi2jjxet!%|~LRN-XHe#XOvO2GB{#oi2R(q+@f7Z9!OO3X^ z)n00}^{w{Oy}n^hldm1%Q2E*cj?~Aac7h{yFWSe$*N$+Y?nQgAU8>Rk$MUrU94cQs zz@hTB0~{(}JHVmxwF4X~Upv5|^0foJ(#PZMDoR_@4CM>^6%E*E-;yuv*J#gShVq5| z8tpmEP`)o9<+oYop6r(ks%w}aG4k!o{Wv?g?fY{M0; z%7=Z_t-~eIMsm&Swk7R!uUR;0Uxo|!wl8Vb#SFtWt#+K#LiAYCe*&3~0nyB2PivxE z7$ghUgr*SChH`7kBechh#u@m67Q4m{=onsQ8IH8ed=To;kJ|AC0QRB^i`T%K7qnog zpQR~48~ibrVqyUUF0J}JYc(_J79OJ05K&Ki{tBL z44GESjB#8F!fa`Ee;6IkS?(?2IGvhXt~E4&kZCy4s(j8(MAA+cplIV5E86J4pmj_P z%W$zh9vm&l*eDN=*{0={oN2hG#jez2O&iCS502J%B;ySO@32AZ#)dJRwDYJDjc(Kf>2Eb!{lTd3@t63%VWsy#W=a85hz$v_>)0W|df!$!O(%LI%Mj+YiJd(nPN7yDnq+h&b6Uyb%H-HkTstI0Hd;~UmArGLYk brq6%As5t(r4}fw@00000NkvXXu0mjfqa@~h literal 1886 zcmcIlc~BBq97gjBLd^xm3y&Rks zExe*c%{0wwbOCP-vJ}g*WAhF}VcB-J-Ddh@|7d5v_rC9&_nY_L%=>=x&SSiGgMnH= z0002q4S0IY#Xb-Uae=^XXOUO`GQ%-#bii9{lm5=nb$X;8jYeID)Y?a3XI7g8$| z>+R(OKu(RG000yg_P9A8NWAv`8a77YsEV59iqO2XJGKYe4j!yE5e0Vmc%JgK%^yX! z@}bWQ*U3yAGEObn=&c!G0T+T4R_C`1Y+aYr#ml<)5l`FyM)VG%YR3%1oKb+i`)C$1 zym7y0c=N6ztj+`yvYDK@!XwjXEa_F|2B&@`X`vjbI-Q6k<4A~~#6LR6u##6kan8!* zO=s-!l&wV0EW$-o^O8rd;hiSKMh;1UQg$o2;gm;=gDlF@CpR!Ei7m$CMkjGRQYU! zFqwYgD^LVdOIj8fNbuE%q9+ucL8`93vJX_5082S@(+m$T8;J-fV_Jmo5B~H8XW6mb?vphRa?$L2?2z5B~ow~gEP`urNoG|94>BFsIxhZMlm7pi{ardNb}I%y$=ygV{~8BlM9uB z)DB0YZ(|nLZ0NcjcJRX$T<9qJKDK^p+P}}1=@nnyn7IfvK~uDBu?tOxxo?khpj=H~ zjKMn7KKh)2Me*P#o`@K7n)yETG8^Bc{<0I;&B0`@#bNe8S&S4d$9J#3ndfQ3P@y;o z_r~gY?z1v$X_AuL(*0J|CZRA?R-1C{8d~%}kO-$n^uuI=mHhBFtfp#hScdjrr1!r( z^}j;20+)p?a6e?5-Vv?kx0*^1{sLvUGh;eCGv>myN~6dLxGUILY4kNp1`>t0)#ogT z;SRBSr1D!Eh;O%Pn33^XsCzWMmpOSPe|Act-hPHy+A8sG>ooKreBc8Nrsp4$pEk0-nAKd6w7sy79p`yAA|27eE$@2NGb^n9#QnN&!= zahYCyq|c(IAqa9EM`I116eZPDcAA(0^N7cE&IdPHomBG45v0|y1}p4wI>$pHccM)a zJo;*1rgqg48bS(D_0nx8S|aSW0>6P7a#R|apst@um3L34P@4Y?{$~<8|A%J7gYLPz z_F~)RA237eJC0KKv@w@ee?+~V6idcA`^_u z#&KDTU&mc!Eyl}%7Div0c;Gozeyh!+GN+-X<7Aqy4KsC1T^n$-r%|0-JPe-FADjR= z<1p4N8BQDdS?p;4vvIUOan{1!knPIVyDhXNR@HXuG%ghqN^D+iipzE`9TLYRCtFoU z-;@L#M2ubZT2N$@0cz>4W{bTgG5l9%X(U4@YS@gF~z10??UPjX)JCVJfYXxeLWv;sm94*&Q6c?(j&o zJ4t!|Y0s)d&KUNA`tH%CKt7-C|L{~?g!MbJtYSIh<04^M;#o2AvZUoFSXZ)oR(W>o z(do9^jTEtWop_g{$&|W0GB`SHk(DFZmy?cNP#Xjt*Wrz5JodfC{S8V%sH&;ZluDVS z(2N?`g5UrS69OOMVuqs(@_G~wn;w$vYS>P^M<7VA>_@J;sL~TI_(47DE?+!NzeBcr z{<=9|NRp=s@p8224Kiebwf*wGYoN6(e2xh#9}i+x5xzF(6C^KQ1b9FZ1gl65=8g|ph-P> diff --git a/trunk/paradiseo-mo/docs/html/classmo_next_move.html b/trunk/paradiseo-mo/docs/html/classmo_next_move.html index 7e27c95b3..19ef37300 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_next_move.html +++ b/trunk/paradiseo-mo/docs/html/classmo_next_move.html @@ -28,7 +28,7 @@
  • Class Hierarchy
  • Class Members
  • -

    moNextMove< M > Class Template Reference

    Class which allows to generate a new move (moMove). +

    moNextMove< M > Class Template Reference

    Class which allows to generate a new move (moMove). More...

    #include <moNextMove.h> @@ -36,9 +36,7 @@

    Inheritance diagram for moNextMove< M >:

    -eoBF< A1, A2, R > -eoFunctorBase -moItRandNextMove< M > +moItRandNextMove< M >
    @@ -55,7 +53,7 @@ Useful for the explorer (for moTS or <

    Definition at line 22 of file moNextMove.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_next_move.png b/trunk/paradiseo-mo/docs/html/classmo_next_move.png index 6bc1397f22d7ee6a2de7f793dd13a2b197dc9f39..ee1f90bbc464ccc6979fc685054b6842e06e6e3f 100644 GIT binary patch delta 458 zcmV;*0X6>J28INX7Ya}W0{{R3{9qc$ks&jG0h~!hK~#90?UhSz#2^fYVKZy&8^8%h zt<>{$mHQu|`2RyfUL)GFNGnW~#E$*N4`$+|rvw*VM;W-@xZoCZ@cHBq9_Q8zoYc4g zeUCe}?r_0!vCU&CXFH+J=p=#2+Ll!)&p*TjW=CtT)wN`ReUy9;G(4wC0_+N(WKcWE2>bl zRfK`&W=me+)FLf4WEYW^;-pmZDDu5Dq!~jiu>}Wr#-Mj=ROB`42@XjW9C-&^LSa=D z-VpheZkDr%O6j-8rR*ba;Vd|gb&Io9WP`iNuEJT8QCW?$Xy7of(mSkU?=Z48GFeV^ z-glU+O{0y`)Zi7r4HfdBvi07*qoM6N<$g25}@ AWB>pF delta 804 zcmV+<1Ka$D1l>mf_Y3)w#rp@1kn< zI0dNh8eW6T3dTCsMoAI1$8$K41w`NBB)vi&7EpGSFtHcKf?F5kJKhF-x5(drf<`vLT0@$vTVxftEC1q;%yIt%Zt{h3tlayi!sk(5 z;7z4D&T)=&oZ}qlxI5s+o~QjDee8DcXN=z!hmw(E>)R9e*sM!2I#$}@>=S!R{xGTGjlZ0~{MwaKh_wi92RmNxqPLs`)aJmvKPxcf{K59#=UPCt+=I zWC}F66YC6)jHEOuUSFh%J+gAh_)b>mbiU(|mB>m&^}OTAQnX4)F`39J?%=$8y*SQs igSh7xpB!Bn{{ka08Cr@DUqlN40000Class Members

    moNoAspirCrit< M > Member List

    This is the complete list of members for moNoAspirCrit< M >, including all inherited members.

    - - - - -
    functor_category()eoBF< A1, A2, R > [static]
    init()moNoAspirCrit< M > [inline, private, virtual]
    operator()(const M &__move, const typename M::EOType::Fitness &__sol)moNoAspirCrit< M > [inline, private]
    moAspirCrit::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
    ~eoBF()eoBF< A1, A2, R > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]

    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_no_aspir_crit.html b/trunk/paradiseo-mo/docs/html/classmo_no_aspir_crit.html index 16e13bd91..5e83b66c4 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_no_aspir_crit.html +++ b/trunk/paradiseo-mo/docs/html/classmo_no_aspir_crit.html @@ -36,16 +36,14 @@

    Inheritance diagram for moNoAspirCrit< M >:

    -moAspirCrit< M > -eoBF< A1, A2, R > -eoFunctorBase +moAspirCrit< M > List of all members. - + @@ -89,7 +87,7 @@ template<class M>

    -Function which describes the aspiration criterion behaviour. +Function which describes the aspiration criterion behaviour.

    Does nothing.

    Parameters:
    @@ -113,7 +111,6 @@ template<class M>
    - @@ -134,7 +131,7 @@ Definition at line 4


    The documentation for this class was generated from the following file:
    -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_no_aspir_crit.png b/trunk/paradiseo-mo/docs/html/classmo_no_aspir_crit.png index ce623c0e31ee2f3b098693c633cba85684bc3020..f8412d8ed8acf7254dedb1e46f342db73d89bb3f 100644 GIT binary patch delta 418 zcmV;T0bTx%2HpdZ7Ya}W0{{R3%RqlU;G5&-!1SJw0H4B_7Q0l%q1~vT-#&`Nz#$pOxA;*OEMp>u1uJMJy?+Mwz z5Q2yq3Eb&7QjIs*D9P!lW(_O7HQdKaL7@IYmRGO8eXNaek8G63}jq+*~77#B#I+yG5L zeG0M)RRyduDi7k&W@s2x&9wv@0kav*;K=Lq{5-`^xdG`~4 zLJDeg=m|Ot&W5^5A9C2w2~s2ME4r)$a%PWbWqe!}bZ@$G~stc4St-~=Z)!3konHy=r0`9qDa#Jx&K7A5)0iAthg z0ueQ0MAc#m8wjFbW`w;V>?edGsf+-BIteVX`h08&Fe5;gg0N2sRLfN!V+4RUhfJ56 zVslrQkHuLIdp8Tn$<`USI@7#e4zoJEBXo7JwE$?uXd$2x^5yAjo?5F<$KN0>5W1Vj z-$5StpY>l8TyK66!S$vSoZti}IKc^xx!!y*p?rOpFZBc}^04|&dTJWe2UuHw(+F6^ z&5=O-819}iA;lr<8B$yt2;LJAY6lOw`NnNI)mGZ+RPjZcB;iPCdw^KFgi4S)z}^rl zVkAfh5Jv)7Sk`=o7zmU_-YN$ptaG4z2)U1`lE2m=Q&)9R{ZDl*bU#S**TVY#=*ga( zx5p>;Xu@T4f)QMAei6a-rW2fh-~=Z)!3mAQO^aK+nWGaXgdl(FuCDY3Q4VAEg#{tz zE1?ExP-wX+Y=fQ<7$1Pgz@rdSTm(K>Tp9wb2@#kPg%Ir(QdoKmQ3+9I0h*yuL#%`? zDj|>grLK@`A#m6lf+7xtpakBlA&vydm5ecz`Ai8RFUu+iBg}H(sb@kzse`VC60{DP zdaMJl#kMu0t%dFfKCrd0yvF@-v`gFd@q|m}1S8!3wEqLil(yv&hfJgZ0000

    moRandImprSelect< M > Member List

    This is the complete list of members for moRandImprSelect< M >, including all inherited members.


    Private Member Functions

    bool operator() (const M &__move, const typename M::EOType::Fitness &__sol)
     Function which describes the aspiration criterion behaviour.
     Function which describes the aspiration criterion behaviour.
    void init ()
     Procedure which initialises all that needs a moNoAspirCrit.
    void moNoAspirCrit< M >::init (void   )  [inline, private, virtual]
    - - + - - -
    Fitness typedefmoRandImprSelect< M >
    functor_category()eoBF< M &, M::EOType::Fitness &, void > [static]
    init(const Fitness &__fit)moRandImprSelect< M > [inline, virtual]
    init_fitmoRandImprSelect< M > [private]
    operator()(M &__move, Fitness &__fit)moRandImprSelect< M > [inline, virtual]
    operator()(M &__move, Fitness &__fit)moRandImprSelect< M > [inline]
    update(const M &__move, const Fitness &__fit)moRandImprSelect< M > [inline, virtual]
    vect_better_fitmoRandImprSelect< M > [private]
    vect_better_movesmoRandImprSelect< M > [private]
    ~eoBF()eoBF< M &, M::EOType::Fitness &, void > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]

    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_rand_impr_select.html b/trunk/paradiseo-mo/docs/html/classmo_rand_impr_select.html index 0119f6440..3858f48e0 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_rand_impr_select.html +++ b/trunk/paradiseo-mo/docs/html/classmo_rand_impr_select.html @@ -36,9 +36,7 @@

    Inheritance diagram for moRandImprSelect< M >:

    -moMoveSelect< M > -eoBF< M &, M::EOType::Fitness &, void > -eoFunctorBase +moMoveSelect< M > List of all members. @@ -53,7 +51,7 @@ typedef M::EOType::Fitness  - + @@ -146,7 +144,7 @@ template<class M>

    -Function that updates the fitness and move vectors. +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.

    Parameters:
    @@ -186,7 +184,7 @@ template<class M>
    - +
     Procedure which all that needs a moRandImprSelect.
    bool update (const M &__move, const Fitness &__fit)
     Function that updates the fitness and move vectors.
     Function that updates the fitness and move vectors.
    void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
     The move selection.
    ) throw (EmptySelection) [inline, virtual] throw (EmptySelection) [inline]
    @@ -208,17 +206,15 @@ One the saved move is randomly chosen.

    -

    -Implements eoBF< M &, M::EOType::Fitness &, void >.

    Definition at line 77 of file moRandImprSelect.h.

    -References eoRng::random(), moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +References moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_rand_impr_select.png b/trunk/paradiseo-mo/docs/html/classmo_rand_impr_select.png index b935a8e2fa9abdb9411bab10b463c3c2bc1e48d9..6931c3dfdef9b2f9d4a0dc4a28e161ef38b999c7 100644 GIT binary patch delta 478 zcmV<40U`dh2!#Y8iBL{Q4GJ0x0000DNk~Le0001&0000`1Oos70Onl!Mv);ie*v3G zL_t(|ob8oMa>F1DhGCPner|wI&}lE!RqlU;>VX^)lQe0WX*z=(0|MzoLS&pi=E+-n z-=@ie&4AVR?gD66!n*5a>tq093-s_Zg27D3uv*!^qQPV!56l^b7oqDYkH889R~TAt zuxY1WGHiNnkW%E=Wf5RvH-c@5e=r$a+6@+H0~p&Fg>9ipmC8l1MvlXhE4pPz`vz95 z0Cn>wMCP#jk$HYv$6~O-nb{fKIWsS!3}k( zKY*P-UlevapI;RA!qr@`1zWHMTd)ONFcr)bN;EJ21^Xo|13~Gw$sn8DfBll{``i^Q z1+9mX`5a)}BN(xo#WBNRa$9&EJg4)b5Rpd57FpIP<2H<-ZUSR-UM6c~9kthO3&=#;PbX&fN2IPz>L(^b07*qoM6N<$f)kX`k^lez delta 1041 zcmZo=*}|dN8Q|y6%O%Cdz`(%k>ERN@z`zJ(G8|xG29lD87lck!G_Gep<>}%WQZeW4 z?C7$`3OsFZr&qe&YMdc^CTE5J-Ty*toSe*Melqc1#-h1*BiOz~ay)us?^Dk{{iVN5 zRGoDLvkU`6!>gVy(fwQtN?ne6y6F6=%ok(+Go4^(HT#n(}tUD46 zLE8+3JXk(y?iK1*W>5$;n8s7zFpK%5)O%(RyH^}r7%Dj|#IC5koXRlc{X4^kC+z#C z^t2Z@d{Hf9*#6AHl$+zI|E7R>tdp2oN?z;iSZvY2Y;nMxLE>LT-L{%J?;f6ItgHQ3 z(s2HKzdWCT4X5k@Mj2Fej+y6wQ__!c6TSxw+zj5jAy4esWF)X8Yx|8ygg7 z1gw@XXidswklNWA?fE|~nkQ;|xWLyM-VFz@Fm~MdD8!)E{KCvtWukUNmco^4ecKhs z4pn(G2V9X~eX6eGhk2N@0^1T%h80s%vVwA7ux&iywIVKxA>br$5^n>q!nR3sYemv-f(EViFH!Kxzl9Mf~R<_q~e$RS#Q`M51 z)#l3VKUOjvmOtHIZ%|p@@Nm=J0x046f&my{sA$*2pX)P#!5eow^JXlXAbT_<9c+Gf&HOxq|tn0B{({%=q_zm1AF3o!5IK??^ebUnRZxt>01bnw|IV{A; zyu*%3_1m(Wm(uuVJgUg#i}-Y!yRdZ=U&!VILHjlOs!vs~Z2>v8fd9aUvUpm;RIS^r48fu6 zbA>m}7j^g*?sZ(w(vmVVZhft{^MPEB&g z9iuasi<|B;h}{=;I8pl|v9p0OMzoQOL4-l8p_K2$c~i>`XPOTDTj0WwBIL9py>aP2 uMjP$)utVP00@y32gQ9OeqnrJ-|IBi8Rex;Ke{~O(**#tTT-G@yGywqTdac<2 diff --git a/trunk/paradiseo-mo/docs/html/classmo_rand_move.html b/trunk/paradiseo-mo/docs/html/classmo_rand_move.html index 0001d3ce0..ade4c44e1 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_rand_move.html +++ b/trunk/paradiseo-mo/docs/html/classmo_rand_move.html @@ -28,17 +28,11 @@
  • Class Hierarchy
  • Class Members
  • -

    moRandMove< M > Class Template Reference

    Random move generator. +

    moRandMove< M > Class Template Reference

    Random move generator. More...

    #include <moRandMove.h>

    -

    Inheritance diagram for moRandMove< M >: -

    - -eoUF< M &, void > -eoFunctorBase -
    @@ -54,7 +48,7 @@ Only a description... An object that herits from this class needs to be designed

    Definition at line 21 of file moRandMove.h.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_s_a-members.html b/trunk/paradiseo-mo/docs/html/classmo_s_a-members.html index b8cb492e0..c3896306c 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_s_a-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_s_a-members.html @@ -38,8 +38,8 @@ init_tempmoSA< M > [private] moSA(moRandMove< M > &__move_rand, moMoveIncrEval< M > &__incr_eval, moSolContinue< EOT > &__cont, double __init_temp, moCoolingSchedule &__cool_sched, eoEvalFunc< EOT > &__full_eval)moSA< M > [inline] move_randmoSA< M > [private] - operator()(EOT &__sol)moSA< M > [inline, virtual] -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  + operator()(EOT &__sol)moSA< M > [inline] +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_s_a.html b/trunk/paradiseo-mo/docs/html/classmo_s_a.html index df81fad13..9350ec381 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_s_a.html +++ b/trunk/paradiseo-mo/docs/html/classmo_s_a.html @@ -36,16 +36,12 @@

    Inheritance diagram for moSA< M >:

    -moAlgo< M::EOType > -eoMonOp< M::EOType > -eoOp< EOType > -eoUF< M::EOType &, bool > -eoFunctorBase +moAlgo< M::EOType > List of all members. - + @@ -82,7 +78,7 @@ double  +eoEvalFunc< EOT > & 

    Public Member Functions

     moSA (moRandMove< M > &__move_rand, moMoveIncrEval< M > &__incr_eval, moSolContinue< EOT > &__cont, double __init_temp, moCoolingSchedule &__cool_sched, eoEvalFunc< EOT > &__full_eval)
     moSA (moRandMove< M > &__move_rand, moMoveIncrEval< M > &__incr_eval, moSolContinue< EOT > &__cont, double __init_temp, moCoolingSchedule &__cool_sched, eoEvalFunc< EOT > &__full_eval)
     SA constructor.
    bool operator() (EOT &__sol)
     The cooling schedule.
    -eoEvalFunc< EOT > & full_eval
    full_eval
     A full evaluation function.
    @@ -136,7 +132,7 @@ template<class M> - eoEvalFunc< EOT > &  + eoEvalFunc< EOT > &  __full_eval  @@ -180,7 +176,7 @@ template<class M> EOT__sol  )  - [inline, virtual] + [inline] @@ -197,17 +193,15 @@ As a moTS or a
    Returns:
    TRUE.
    -

    -Implements eoUF< M::EOType &, bool >.

    Definition at line 82 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(). +References moSA< M >::cont, moSA< M >::cool_sched, moSA< M >::full_eval, moSA< M >::incr_eval, moSA< M >::init_temp, and moSA< M >::move_rand.


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_s_a.png b/trunk/paradiseo-mo/docs/html/classmo_s_a.png index e14866c803c7c4f0523a036fb3d13d1120177e24..59c20157af06fab2bc77bf29f8e564f00a1a2deb 100644 GIT binary patch delta 422 zcmV;X0a^a>3(f-}iBL{Q4GJ0x0000DNk~Le0001u0000`1Oos70M^j!XOST@e*t7k zL_t(|obA68xr&37^Il*A??$A z`4Me8T@Hq0)kwb{0OZG0I5}~MDu=tEGk9uDw03wn@wDp?Kbfz<%=}hN&4h(6|e7GSgPv;E> zAVlO)vmboqSh;O&R{2Vo!$WyI7^|JzjsqKRKne)sos%PY7ailGBSYjrrjeW`bnHk@ z;Ph!+c-|f8$dNi*>1sa7>CGoQS|1JWs}HZ2?4Ri5&|CYbr%mU-I)mOjKT0+On3w54 QUjP6A07*qoM6N<$g4-v)+W-In literal 1521 zcmcIkeKgYx7@m9$jf+UiF41*Ek!#G)XYjG;_iU81`rVaazN7^i3lU0N3Nk*RCK zRn2^*D589fX~~pk*=P=C?8ff8=bn4cJ?Gv(?>X=DywCgm_nh~ z*SX1P5J-`LbUz$;v3!vn+RV1vp4*=^=NKt;{j3Bm=6-p$RXV&*(u*uA^KMRC)re80 zzxXk`YIx}e{hgIa8A%;}#8L8a$-z={B%A>A+6#?_mg8=i(j;OjqGKM+d@y%$h`M%N z-<7e?o6(DPz;#{bL>uA=ZO!{|kdyfi>fA(waD=(wSLOiE!N9e0qKU?;jkeXMmhgS8JSj_Jv)=*1P7tP3d+>bdsE}{`Gt;Gwpz)sItuirq10siMlYMl@s2W~qx&Yan9k>Zz^^<=cJJ>*mW0R@I{_3{HDl@dR7cv54q z=^YIjW>~MF)tB85S)}Gogoe49 zEsWs}{6aX5kDx^o{J?rE^uz6CTLfJ1#U>ErDE{W=((5&%wXmR9IgG($gI_;w?fX>Y z+&Qs|KE@(Vz#bQ4BhhY&kAd|p@%(&CHzG`NCx5S%8H}B^HF7Sr{AR~*A`gn9m)iAR zd&b*yb<xD~A?s$-5E)mF$Ev1|ZNDb&;k-`=(G z#-=EkY`sm(-z&|>6*E1?C2J8ie)7vWtzc4x3N|_0Qxa}ANopUm9PSH}lxPz3v8Mcm zmgW0{NMl1y{PGvMvKanx>{Ktk%D&!f zerLLw>n6MGx9DTV%H*=F8)SWc zKB=6;U`M>z=`NA|XAsf@add(const M &__move, const EOT &__sol)moSimpleMoveTabuList< M > [inline, virtual] currentSizemoSimpleMoveTabuList< M > [private] EOT typedefmoSimpleMoveTabuList< M > - functor_category()eoBF< A1, A2, R > [static] init()moSimpleMoveTabuList< M > [inline, virtual] maxSizemoSimpleMoveTabuList< M > [private] moSimpleMoveTabuList(unsigned __size)moSimpleMoveTabuList< M > [inline] operator()(const M &__move, const EOT &__sol)moSimpleMoveTabuList< M > [inline] - moTabuList::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual] removeMove(const M &__move)moSimpleMoveTabuList< M > [inline, private] tabuListmoSimpleMoveTabuList< M > [private] update()moSimpleMoveTabuList< M > [inline, virtual] - ~eoBF()eoBF< A1, A2, R > [virtual] - ~eoFunctorBase()eoFunctorBase [virtual] -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_simple_move_tabu_list.html b/trunk/paradiseo-mo/docs/html/classmo_simple_move_tabu_list.html index 2b8d467c4..ae1e22a7f 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_simple_move_tabu_list.html +++ b/trunk/paradiseo-mo/docs/html/classmo_simple_move_tabu_list.html @@ -36,9 +36,7 @@

    Inheritance diagram for moSimpleMoveTabuList< M >:

    -moTabuList< M > -eoBF< A1, A2, R > -eoFunctorBase +moTabuList< M > List of all members. @@ -54,7 +52,7 @@ typedef M::EOType  - + @@ -119,7 +117,7 @@ template<class M>

    -Function that indicates if, in a given state, the _move is tabu or not. +Function that indicates if, in a given state, the _move is tabu or not.

    Parameters:
     Constructor.
    bool operator() (const M &__move, const EOT &__sol)
     Function that indicates if, in a given state, the _move is tabu or not.
     Function that indicates if, in a given state, the _move is tabu or not.
    void add (const M &__move, const EOT &__sol)
     Procedure to add a move in the tabu list.
    @@ -272,7 +270,7 @@ Referenced by moSimpleMoveTabuList.h -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_simple_move_tabu_list.png b/trunk/paradiseo-mo/docs/html/classmo_simple_move_tabu_list.png index f4a038c830dd1c5fe5f526f2783efbb9ecb4da6e..e9805858786b40090f946599b365ea6264824945 100644 GIT binary patch delta 479 zcmV<50U-YK2Ac$s7Ya}W0{{R3pz2xdks&jG0kKI$K~#90?bb_j!Y~W~P;0|l@(q*| zFzto9;{HddKDHw#WS9VHfw7@cOq>^4b{W$5QSF?*ri0p`Uxg;3EP=hJA$09L-%A&T zV`q*er@LupNr%Z42`qxVJZqXLKSF0xJS(kc=0>wcBXicbJz@tvfmEN#_ zZ_`X2J$ZfnkzAJXs(qWzebzpS+|l=DU2DzjTHEWMTDKj-S^>_PiM$|XTU2_Zed0g* zpa*?U2mV;t(@wiazY2Z%c|-bixx69$raNTNgC6vt2R-OP5Bixj9n~=5F%wK_(Emjf zB?y1FU~X`ph|Qn9EcXilll6T@X2;OCIG=`{EJ z-sDNmwA%~1xP>N7uJrUaT|%_Qjx<<(QY&V)I~o?WJu1*XO;}`Ykve*vb)cI{zbJC7 zHLYsxLsqrcWu{i^xu!fX+&+qaMjP~B(#QQ+_yzS` VMO{-`l)?Z2002ovPDHLkV1iv@;5`5U delta 826 zcmV-A1I7HC1oH-v7Ye`x0{{R3y^K$U5qGdf3$z-Y`r5vV73P&YD~KJl2nXy&C@(Lf(jE=aw#8CT=Kiw4k75p>a-dJmz0 z^K2FM49$W73DR%##;DV6G+*(?c5c(UECA=|V_K^WNg#yWBN-xELyX5VxgewQ)y4m60fG+8W3HH#f`5M3y!8_I$jyEnJd$o`NRS#)FzV>@If z2euwS$8z>dY)Fjy{2JBbM@2Rk)5=k>6?8qACN^Y$G>#7oCWT&M-$x^K=p_2cBdc*X zWZy@}K5AJ+?9fM}u3F<#>taoR?$^3y2$BLAqnvq!mKGJgQaec$rH>!Do2J z2c8_{QFPnOvZ#V`mqX#2ke*_4b)7-o<^l5AyLGgiS~Ay3P!n3%Gj!n=G*ED*Mbl^t z18=rQd)CJ_F)O=6`x%-arO>iWKZ}}c=+Mik6}s_fB5SQ-p|uQIXieJ;P3xK=^VEll4E;*C~n!2kdN diff --git a/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list-members.html b/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list-members.html index d52a1656c..33c290ad7 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list-members.html @@ -32,18 +32,14 @@
    - - - - -
    add(const M &__move, const EOT &__sol)moSimpleSolutionTabuList< M > [inline, virtual]
    currentSizemoSimpleSolutionTabuList< M > [private]
    EOT typedefmoSimpleSolutionTabuList< M >
    functor_category()eoBF< A1, A2, R > [static]
    init()moSimpleSolutionTabuList< M > [inline, virtual]
    maxSizemoSimpleSolutionTabuList< M > [private]
    moSimpleSolutionTabuList(unsigned __size)moSimpleSolutionTabuList< M > [inline]
    operator()(const M &__move, const EOT &__sol)moSimpleSolutionTabuList< M > [inline]
    moTabuList::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
    removeSolution(const EOT &__sol)moSimpleSolutionTabuList< M > [inline, private]
    tabuListmoSimpleSolutionTabuList< M > [private]
    update()moSimpleSolutionTabuList< M > [inline, virtual]
    ~eoBF()eoBF< A1, A2, R > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]

    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list.html b/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list.html index 8fedac5fd..da783d791 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list.html +++ b/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list.html @@ -36,9 +36,7 @@

    Inheritance diagram for moSimpleSolutionTabuList< M >:

    -moTabuList< M > -eoBF< A1, A2, R > -eoFunctorBase +moTabuList< M > List of all members. @@ -53,7 +51,7 @@ typedef M::EOType  - + @@ -152,7 +150,7 @@ template<class M>

    -Function that indicates if, in a given state, the _move is tabu or not. +Function that indicates if, in a given state, the _move is tabu or not.

    Parameters:
     Constructor.
    bool operator() (const M &__move, const EOT &__sol)
     Function that indicates if, in a given state, the _move is tabu or not.
     Function that indicates if, in a given state, the _move is tabu or not.
    void add (const M &__move, const EOT &__sol)
     Procedure to add a move in the tabu list.
    @@ -305,7 +303,7 @@ Referenced by moSimpleSolutionTabuList.h -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list.png b/trunk/paradiseo-mo/docs/html/classmo_simple_solution_tabu_list.png index 38d26e3298b696b097277f482c5495ad0df8f9bf..f08f987a9e06e8964a9c825a89e4f51664754d17 100644 GIT binary patch delta 493 zcmVhzyj)MWd&hHL5pHFWNc>gJyfC-p@37CKhn1BiRSO9jGKs!{~ zNSuI!0l4R}F7!f#sos}|gWPJWS?YOzjoJZXXjf#1*Z^A39?)v=X%C2UjFvs0Qe+FU z31pc;-3VkRXe_a+7g+@epiKZlBj}}o$OyhmIO?e}>>wssSz>T|C>Jd-=Rss32b2h6 zi#3oQf+x8G$oI`x1yIsi0ZJGEB}xInJ+1+`{VgEajv3fHivbV^Kxy)I0QD7ESV7bQ zE-GjMYqT2s3c&3{56W%~J>aRZ=RkdZiXzH(OmTs{ZmoWDXo j7VtWmfFl6*er@>!^BrT%(eGt300000NkvXXu0mjf2dmK> delta 849 zcmV-X1Frn31d0cc7Ye`x0{{R3pz?7vks&jG10YF6K~#90?V4NGqaX}`a^YgtRxMNYga?%v^AQqzFlG4Lxeb5DuI;x0E&%|5s)tz`J_TqEVV2^v z>P7&@k;iccG8Yg-l0Zn}5E6hCNM|1)S&e2C5RfGa3FHBHam|-^06<@pUqF44Djo5b-?5Cb8*1+v&aAjFn|FJU;qOc;I@G7A0XHNMl-+>K&q8t zRUZvwsd1(nl-${0Qp2`hhFH~}xU89f)wTktnl%R)E5NuPkjrxlpgG_YVA0Ty0Osdu z9RO0ZtF5;7@;`(ffX3#_e?e~kV`qT>1n9nO>Avtf8^G$O-v?ZOKZ^`t z00S7n00uCC0d5QE{sD6RZ!`lO1)%IUErlqox>7DW0#I9_?i4^+s&u^uq^*IYlmXLr zK^XI9N8T)W6acdOkhf)~4W?x`C7r2`hg`13#lqBz2f9s?OT6uNP1@300hS5x0kn*o zrzp+X$Y3cxE)m`W;KTzuLjyQ}=0T1DJjFoDzI$U(vM8iE0hC?3K~qNo%kBGbvH=Wm z20-^^OZSD>*#K5I{XXFOS!4hM7{CAqFn|FJa9aR$ZiDaOW!0PkP6miEcez719Pp{t zjmhCv%BQMJ*V$?Va6{emd~g+@)@%Xw8RBINaOvoH^zqWWDDhDQo<|0Mq~^i12*_5F zl9p!=U;w`e@IV&m)&MRd;!}x3nq-3yNd)Xx5~zHTn`}6a!+QoPKrAGg%ZBJM=pYNg z>%3`C05Y5cAi@M7Rs;a5F$aj@uK@$k7=tykFafv;K!Q9E@T~{zkZ%A_9#nv0E!&;} zsC*IwnT<&dVpi~bK)RYdMGhptDDsk6GDR+FB{}_MLQWk8JiiCiJpV+yE#Py_0A~R7 bUbg%LR}=B#R>a1+00000NkvXXu0mjf+M{$s diff --git a/trunk/paradiseo-mo/docs/html/classmo_sol_continue-members.html b/trunk/paradiseo-mo/docs/html/classmo_sol_continue-members.html index 9ec02a172..5ecf2ebfa 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_sol_continue-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_sol_continue-members.html @@ -29,12 +29,8 @@
  • Class Members
  • moSolContinue< EOT > Member List

    This is the complete list of members for moSolContinue< EOT >, including all inherited members.

    - - - - -
    functor_category()eoUF< const EOT &, bool > [static]
    init()=0moSolContinue< EOT > [pure virtual]
    operator()(const EOT &)=0eoUF< const EOT &, bool > [pure virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]
    ~eoUF()eoUF< const EOT &, bool > [virtual]

    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_sol_continue.html b/trunk/paradiseo-mo/docs/html/classmo_sol_continue.html index fc3540ce8..49d7d688e 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_sol_continue.html +++ b/trunk/paradiseo-mo/docs/html/classmo_sol_continue.html @@ -28,7 +28,7 @@
  • Class Hierarchy
  • Class Members
  • -

    moSolContinue< EOT > Class Template Reference

    Class that describes a stop criterion for a solution-based heuristic. +

    moSolContinue< EOT > Class Template Reference

    Class that describes a stop criterion for a solution-based heuristic. More...

    #include <moSolContinue.h> @@ -36,9 +36,7 @@

    Inheritance diagram for moSolContinue< EOT >:

    -eoUF< const EOT &, bool > -eoFunctorBase -moGenSolContinue< EOT > +moGenSolContinue< EOT > List of all members. @@ -53,7 +51,7 @@ 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 (eoUF). +It allows to add an initialisation procedure to an object that is a unary function (eoUF).

    @@ -85,7 +83,7 @@ Implemented in moSolContinue.h -


    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_sol_continue.png b/trunk/paradiseo-mo/docs/html/classmo_sol_continue.png index 345d1b66d6bf7bd456e48737ef14bf095b031c61..ff1f2edde45f1ab6750d0ab5e313aa1b9e214aa9 100644 GIT binary patch delta 494 zcmVAuWfcPZu)kO}} zK*_a7A3)(18-M9+@;MdnkY0RRe@PK3q=(`Vns(+bJ1A9GhI%SJZ8OCwv~muifHBAN zk7V6;o)KIirc2Ik%GdtFL+GdIosu{tcm2(IMj5(H% zBPbWfDKzBj2k4Ng3Q&sUM6J#SWi#n|+Nj_4G`2GiG07#}Q@ar9B3gqvH?vW{+|xn* k*|wkyIvslb6Mfx&0oJ53X+-3Zr2qf`07*qoM6N<$g3J!w(f|Me delta 877 zcmV-z1Csoe1d#_JiBL{Q4GJ0x0000DNk~Le000230002M1Oos70EFxQ^pPPme*-5; zL_t(|ob8)kZsR}*fITn!Y`6h)g4Omykt*f>N7w=8-(x3kI*BYn)z)E{&jh17#jt!$ zk-y77KSPZBQ7!;fuPAHrMQ*#FvX-`{&v7aE8N5QFAQ7?#kkyFH6$7z3#bsF7ow!J< z;WL5wt1oHK^9NiIpVKLni!r`If9p?k!`9m0maB1K&#AetPx44!ysA7>8W_-1qk=zP^cXl@FK#yc^$mH6=GU`JizC zU-CD_7krG*UOv1adj;kff4QgYldp<#ugaZupP%))vx!{)$6U9llGj`@9N8^uvOQ9D=0}aM;sK6txJLd8R7;zu@o4K;1<3bzXDj$yH%U7H8SN$OEFMy9*-_n~f3F6*uCyVyn#_!cRQk8ZZ8cpNQo|*7B=rl$rZbF(YR}cQxEHsaV>_{H7}{f_tvc zg6fzf9dQ9Db)R){fE{ig-8|&_)DbrB&TF||r(dz*YFk>vL!~ahRX%Lv%N=Mum6@8( za!VPcSx!u&oLJ=pv|VXUKK#BI*SPQDo^CCB?mqt?C$f!r7&{c500000NkvXXu0mjf Dyppy* diff --git a/trunk/paradiseo-mo/docs/html/classmo_t_s-members.html b/trunk/paradiseo-mo/docs/html/classmo_t_s-members.html index fe4d2619d..29d08f123 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_t_s-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_t_s-members.html @@ -38,8 +38,8 @@
    - -
    moTS(moMoveExpl< M > &__move_expl, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)moTS< M > [inline]
    move_explmoTS< M > [private]
    mutexmoTS< M > [private, static]
    operator()(EOT &__sol)moTS< M > [inline, virtual]

    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  + operator()(EOT &__sol)moTS< M > [inline] +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_t_s.html b/trunk/paradiseo-mo/docs/html/classmo_t_s.html index 4f4d4d37d..84aded10c 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_t_s.html +++ b/trunk/paradiseo-mo/docs/html/classmo_t_s.html @@ -36,24 +36,20 @@

    Inheritance diagram for moTS< M >:

    -moAlgo< M::EOType > -eoMonOp< M::EOType > -eoOp< EOType > -eoUF< M::EOType &, bool > -eoFunctorBase +moAlgo< M::EOType > List of all members. - + - + - + @@ -73,7 +69,7 @@ typedef EOT::Fitness  +eoEvalFunc< EOT > &  @@ -142,7 +138,7 @@ template<class M> - + @@ -197,7 +193,7 @@ template<class M> - + @@ -240,14 +236,14 @@ template<class M> - +

    Public Member Functions

     moTS (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)
     moTS (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)
     Constructor of a moTS specifying all the boxes.
     moTS (moMoveExpl< M > &__move_expl, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)
     moTS (moMoveExpl< M > &__move_expl, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)
     Constructor with less parameters.
    bool operator() (EOT &__sol)
     Function which launchs the Tabu Search.
     Function which launchs the Tabu Search.

    Private Types

    typedef M::EOType EOT
     Stop criterion.
    -eoEvalFunc< EOT > & full_eval
    full_eval
     Full evaluation function.

    Static Private Attributes

    eoEvalFunc< EOT > & eoEvalFunc< EOT > &  __full_eval 
    eoEvalFunc< EOT > & eoEvalFunc< EOT > &  __full_eval 
    EOT __sol  )  [inline, virtual] [inline]

    -Function which launchs the Tabu Search. +Function which launchs the Tabu Search.

    Algorithm of the tabu search. As a moSA or a moHC, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread_mutex_t) is closed during the algorithm.

    Parameters:
    @@ -257,8 +253,6 @@ Algorithm of the tabu search. As a moSA
    Returns:
    TRUE.
    -

    -Implements eoUF< M::EOType &, bool >.

    Definition at line 104 of file moTS.h.

    @@ -267,7 +261,7 @@ References moTS< M >::co


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_t_s.png b/trunk/paradiseo-mo/docs/html/classmo_t_s.png index 8932f0e2f1113b44d96354bb83e87f7b227be69a..5d6c7b3048073af92db7db2b099a29be87a8a1c0 100644 GIT binary patch delta 417 zcmV;S0bc&!3&{f^iBL{Q4GJ0x0000DNk~Le0001u0000`1Oos70M^j!XOST@e*s@f zL_t(|obA<1j>8}f08rS>8v6$31f%JNy2|~JFg7+R1loLrMv(^cX_CUjv612)L)y3d zi6h!{PC1zNqLCdD0OS-YUF&4Ga|L`r4w4l1*#mf%QBvx z!_TaHKc4KA`H2>NRWHQ%`QZ|&Q`bwALF@Wiqw3Ua+o-ofHXSyrsN>MS)2_x|Jb=xk zCY&SAl{TF{XViD+KzknP^moqJaxZ6Dp0{%DRpSPcNh}#bgny| z>%isAcXnKfC&)g0INJK#mqP|{F2c`v(qN8|Bsb;L+kcKXo1 zP71B^aBoz?sh1e)-D!7>$Ga;>1Bnuzusdjvu zsbC5^CDd}*YZ^<&%4c2mu&EnF(|E8tCL!7Z*?`LSf~C(Z*MR2zIIYq>YXNF zi6F$(=vN@nIywd!9CM~ZRT+Cq?z0|MITQH<>J4bt0H(@Y{B6~{c8Yi-kz`>HI-V_e zj#uhI?`@crr2j5AC2EUvjWbth`1i3~7KtmqMsgEo7-aCEW!*P(?pi6L&^3AJLWeES zs-nS(B4m>25Dl&Jdn;d$RN)c>?7>5QG=7q zl_jv4i$B4v53Rz@_W6{mEy7chc=#80llu zSi`FevL!utMPkgQ2Y$TvTW+a~lowgPF;e$Cm8V$FB8TQ2dxBv?4TK(tckvian{AZt zdsF}x>gq`tQAw7q6HaK|)Kt*|oZIc)++)1*dn*hC^Peg zYg&{!o!*iZmjmYk27oX7R?fLQ>A1Od)(ZDd{N@YMyy3NlqAdBV=GpodZ(}ci66MJY z?iA4RB8^a2CVQGagbAE}?kdf_H~d+h0osJK)y~U@da|RJ`?tnhc*9e!V5ZczCL$!t zrM96IKZ4=TI7?4kP+<@?bD4G8cGdg~U=VE`_G!&0>I;vQIl6MPlAgJJ?&u{X4N#aP z;Uv1mC>&|8+MySffxDi*4-s_HOI^FM_#*7^l@17z!K2XTcZ(6W2WN<3i0#x$Zu^i# zu+ydBJW~32!I1Jn+7_m1Y6{sJhWMUbZcUe{cPXxIEba`sWVn4)b1be8=6^!}rphU` zslUIu<1jOPk7K69sQ>KOdv+%Han8pRMSMUR0Y7$KPD7;;isqA4 zKon**qdK*!H-P67Xv-?Y{?jT@nfq5e$xab4*Nt0-u<<79qFVlTbJz|o6b?u&0sA3w zA4-)OHMrlByQ$f_+;U;AEt)3Gy3REtF4bd(%%&&61E`)=18MSe7+iZKe*mEpt2Rp> zYYL|(>67U)%j|!rVdmvC1P?L}+`2u8`$e-n zx!;=)BzFZ>us=T2F#pXRZiZ7{%D^U!S4c~%3jV{EZm_;)YWDr%?1%!ZgIpR!eIO)G zxn4+vICOb&<$&gCtKYKE~dC1*FM$AZ18IJiPXJSYb+aHN<_oA z51k(6F9RPOr9}*g^JQYtLMqE0PZXm<}y5L j`P-zi5PD1S8&8d4XM$4H3$|O)ePa*?g+=m1DA|7iQoqp{ diff --git a/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl-members.html b/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl-members.html index 33b31b7bb..de9a0999f 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl-members.html @@ -37,9 +37,9 @@ move_initmoTSMoveLoopExpl< M > [private] move_selectmoTSMoveLoopExpl< M > [private] next_movemoTSMoveLoopExpl< M > [private] - operator()(const EOT &__old_sol, EOT &__new_sol)moTSMoveLoopExpl< M > [inline, virtual] + operator()(const EOT &__old_sol, EOT &__new_sol)moTSMoveLoopExpl< M > [inline] tabu_listmoTSMoveLoopExpl< M > [private] -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl.html b/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl.html index 517fee31c..b1e08e688 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl.html +++ b/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl.html @@ -36,10 +36,8 @@

    Inheritance diagram for moTSMoveLoopExpl< M >:

    -moMoveLoopExpl< M > -moMoveExpl< M > -eoBF< const M::EOType &, M::EOType &, void > -eoFunctorBase +moMoveLoopExpl< M > +moMoveExpl< M > List of all members. @@ -182,7 +180,7 @@ template<class M> - +
    ) [inline, virtual] [inline]
    @@ -199,8 +197,6 @@ The exploration continues while the chosen move is not in the tabu list or the a -

    -Implements eoBF< const M::EOType &, M::EOType &, void >.

    Definition at line 69 of file moTSMoveLoopExpl.h.

    @@ -209,7 +205,7 @@ References moTS


    The documentation for this class was generated from the following file: -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl.png b/trunk/paradiseo-mo/docs/html/classmo_t_s_move_loop_expl.png index 717f30a1788ac8ef51945255e8a0eb8afaa89080..c9608b2deabb5215c09073c147bd24719dee17fe 100644 GIT binary patch delta 621 zcmV-z0+Riy43h;RiBL{Q4GJ0x0000DNk~Le0001@0001p1Oos70G8`5c#$D9e*!5< zL_t(|ob8xPa>F1DhS4T#!404{XfM=N?tg?LA#BXUAv1K6ctoa=2-0Ve>T&X$pVh;B zhqdENiT_G;@|TCTRy;q5ctni(zKq{}KZqC+or@XPNqltZ#fDJM*{6xt6Vu1sAWjey z$g%X6NF0&K=X>;_OQbq_Co>lce`1Xs61_Ol`beW(A<9`fBDBaUVhH)vk}u25?2w|KV4_XZ94LG#QX2t6L0tX z+Y>*c*Gg2P5|yY#B`WcC#P#1uKjC}05<@HF9DiF*$UY5mEc6^_Ly=}9f1U_EWPJSb z@26y+jd&vT5?2w|KV8><19%-#^`1q@)j%aGQHe@aq7s#ODWY9H z3@$zkC~-Y8HVVNae^g%Re|S-9XHMSNx0vG|fmXo83>Xu!3{Tf6XfaTgya7 zwnUymN{$xNZFS^lqMViExAWITtcj@?6%paE$4u<*5mRbP=2@qXL$p%X(V*$nQF;y1 zVs0`mMq@1&y^eLPdYy@#|Hp>|c6XF_LE_X!mAHnu{OS4!jpr#8)>X>@00000NkvXX Hu0mjfvmqXA literal 1577 zcmcgsTTqe-6h`xwiq@!GS}m(PvuKQEq~&@kGTU@BHIv^3Hcd?h6-o%@l3mnr)=M%| z;+mG)u2%klVv15;P*V#P@*4VXg03E8s$9bCl&qkO|4V^Zy;}{(=Ku$C!(anjV5}c8i$9) zrc?oSShj+73LBULIyL_Zsqh`l zPe|xv^_4Se^5%fZMqbU{^X8l$Stp$Pt|R&FqYU! zCzYk_vT8;pcRWkZv~TAdOeSO6Pk{snpuXFV|BJwfMGjZ&PH-o5nAs)@j9^X)v?Wnf z!yR!GZ&gPUwy0b){9i~Sp~&V=W7zmfoyv3#XSghSYESmEo91QA=L0)aJows{TzbEx zOV*UvegRHNM6`X_PTU-?fA*|LO)B>9p~tqqrzX?#!|Hdu^++@(>_pE z+Q+oLD{A8S5CT?6bJb*6IC*s(ePqmAgA7aJW?x9O9~XB{C*?RvfI4g#x9x=A<2ARu zgk_-W-ut`>dbUc9o#C;XQ QbblSR diff --git a/trunk/paradiseo-mo/docs/html/classmo_tabu_list-members.html b/trunk/paradiseo-mo/docs/html/classmo_tabu_list-members.html index 0cf2f44dd..1d26ee4af 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_tabu_list-members.html +++ b/trunk/paradiseo-mo/docs/html/classmo_tabu_list-members.html @@ -31,13 +31,9 @@

    moTabuList< M > Member List

    This is the complete list of members for moTabuList< M >, including all inherited members.

    - - - - -
    add(const M &__move, const EOT &__sol)=0moTabuList< M > [pure virtual]
    EOT typedefmoTabuList< M >
    functor_category()eoBF< A1, A2, R > [static]
    init()=0moTabuList< M > [pure virtual]
    operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
    update()=0moTabuList< M > [pure virtual]
    ~eoBF()eoBF< A1, A2, R > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]


    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_tabu_list.html b/trunk/paradiseo-mo/docs/html/classmo_tabu_list.html index a6b6a975d..ca56a9e68 100644 --- a/trunk/paradiseo-mo/docs/html/classmo_tabu_list.html +++ b/trunk/paradiseo-mo/docs/html/classmo_tabu_list.html @@ -28,7 +28,7 @@
  • Class Hierarchy
  • Class Members
  • -

    moTabuList< M > Class Template Reference

    Class describing a tabu list that a moTS uses. +

    moTabuList< M > Class Template Reference

    Class describing a tabu list that a moTS uses. More...

    #include <moTabuList.h> @@ -36,10 +36,8 @@

    Inheritance diagram for moTabuList< M >:

    -eoBF< A1, A2, R > -eoFunctorBase -moSimpleMoveTabuList< M > -moSimpleSolutionTabuList< M > +moSimpleMoveTabuList< M > +moSimpleSolutionTabuList< M > List of all members. @@ -164,7 +162,7 @@ Implemented in moTabuList.h -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/classmo_tabu_list.png b/trunk/paradiseo-mo/docs/html/classmo_tabu_list.png index b4c545581091dc713e5c9500f436e4655f44881e..7e8228b7f4d57d93b6f00d3e4ff2fe42452fd29b 100644 GIT binary patch delta 833 zcmcb@^^0wSI9C7*GXn#|*CzdY6BUi?nFTyu978JRyq%F-^jLwX?eP46Zo3+9NN*8; zb>`fYf9??z1RnfYY$46@b-@-jftlg`0v3~Rzuh94k^Qa4!+%Dm&Hp7UwtEI9PhNDd zZc)eao|E@nr{9-9Zpr3aVvwr7{lWb{pTr*i0}R$bj{QjZ>wS$W@0WzcyhBb8HXKxJ z$@i^aWN@eG%e6N9Wj8mP2j9tA^x%Xy*ZqmA0bR8{g&I6M8hJqpGRop{8*G8xH$}QB znJKzc9*M7MeaF4|p7M#+1p>!!`LAOV7qn;8e0uMANuAltv`;vP3iT>BG{4;PZp6D5LTpLj)MyZ*NxP(B*f$nZ6;{@|12ho`9P?K-_ePBTN$aQ|0B z;c0deF_X6kDcmn`*toEP>w%c&f=9ECZH;wVDk4(kAW+=tQOELkf`9uD=NE;-Q=IiJ zCa+;tJm@dN&NV0b!ASvu$8QcA_iPeB71h9Ov&cb#)A$bWlh8lCC+Z6qWt@spS^3%S zV{l(*^n@INolc6uZ?pxLvn^&icGJ~sj}mLWMsab7-ZGuQBc6v0mhSwf5%VrlCw0ot zDN2bcUA3&sU!D_LkveVaT!kYur#7Wt7b#q{f>H75EF-SyXe}-=5f#-5SxXPxSP-GP zWXT$hKl}7G=ZMU>@Y0eYo2%+VeL(%v2b?mtYgo5$Sa2h@Temf~OGW7Kj&AO*wOchz zPH~>*4SdHP@s_*r<}Gn|F3yBzr{nV9Tw|_(-N(VsyJXc_^%I{8Cb2nl{`||O@baRu zR#48Iz~5XfAHO`(o$s=9kw!&ppAtlC{Pt*`Ri<;&t*f_{FfC|q!*kx)@sIm zH+Y7;_)QtpMi%SoCuCF~GYOnMALu_Z*rFALN}MhpojYfBRedRgf1td`eEIc#4imPwAP6-$Rk<8i#_cBCegiG)33@sOH-4 zO?w~Z9V)VvP2=8`qN=qlOH8xl`oi3RB^8}p9C?C|s5VV(Iuv%@YMIna2aSx~(R=4P z9b?UE$mZ&eK7Q2f7`NuL9h+>Mrc zasfA_#jV^KpK#YHv$}TuNM2ohWntF@`G4{}t3@gwu=gg+c{FRzAx$9K=L+`orpoZQ zt9~tbk))a>FH*b4lszGYQYI%g?2@`25MsAKc+T|TITM5DTvz6ro7T3p ztn9@5{>NJ!7mBw1Nw|6V&o!f?24@&~4v0RxYrt;3e~In`vHfgkf_nrkjs+;T*zI#gg)d{NEcELTj>lK@?&njsX!bC_I@Ife)&aS6jOO zi(Pa7*c1P|C5HQFEZWr>JjbY@>#|yG5JO7jizKGwHlDJLOXeR9Q9WH6rM5)0xw>mB zb7q*|&4g9#JLdFmF-n#93A`H|AZWP1^|wmzjNHvReV;0y@XG|`SRARDmbsZFF5t;; zrBxn|b83XXL?xYY^L**~VxgUS?vvO8KKBKk=7;%`_3qYoF|+SGroca$-Nn{Ay_;oi z>m{*2A>Wv}diV>TyG$0DcY7WGlKKAKGvp%ti(dX%`L(lYe#rTY!k%V#pKJ(tV=a&+ z=YR9X&7)pfnymi=f@_qPf0*h$P2-Eo!Wox#e$!a?lw+&*;yL<3Dm|@9_Y=FOS1&wp zmkl$aB+M&^=hWT1eE$m9}( zh25VS)@Z&sr+lqnq^7C!-L0nY0ReBe9i4Vq&(-K+RZR!$(Xi+gxu2Y$87KC0NAz;9 z++?cPCnI!#%~fZ=wD_%cz+_;V7Q8+-Z9-AeB-u7SmL)U$4E=m2CMEaXDp$C0v%9^< z=&79R!Z3~JempNfxpXD
    moTS.h [code]
    moTSMoveLoopExpl.h [code]
    -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/functions.html b/trunk/paradiseo-mo/docs/html/functions.html index 7c2103ef6..3fd7095e6 100644 --- a/trunk/paradiseo-mo/docs/html/functions.html +++ b/trunk/paradiseo-mo/docs/html/functions.html @@ -264,7 +264,7 @@ Here is a list of all documented class members with links to the class documenta
  • vect_better_moves : moRandImprSelect< M > -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/functions_func.html b/trunk/paradiseo-mo/docs/html/functions_func.html index ec66281e7..fc34264a6 100644 --- a/trunk/paradiseo-mo/docs/html/functions_func.html +++ b/trunk/paradiseo-mo/docs/html/functions_func.html @@ -134,7 +134,7 @@ , moMoveSelect< M > , moFirstImprSelect< M > -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/functions_type.html b/trunk/paradiseo-mo/docs/html/functions_type.html index 659e217cc..d4261cf6f 100644 --- a/trunk/paradiseo-mo/docs/html/functions_type.html +++ b/trunk/paradiseo-mo/docs/html/functions_type.html @@ -63,7 +63,7 @@ , moHC< M > , moFirstImprSelect< M > -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/functions_vars.html b/trunk/paradiseo-mo/docs/html/functions_vars.html index e4f73f2de..c4a32dcff 100644 --- a/trunk/paradiseo-mo/docs/html/functions_vars.html +++ b/trunk/paradiseo-mo/docs/html/functions_vars.html @@ -160,7 +160,7 @@
  • vect_better_moves : moRandImprSelect< M > -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/hierarchy.html b/trunk/paradiseo-mo/docs/html/hierarchy.html index d4fd3981f..4e3907f26 100644 --- a/trunk/paradiseo-mo/docs/html/hierarchy.html +++ b/trunk/paradiseo-mo/docs/html/hierarchy.html @@ -30,30 +30,25 @@

    PARADISEO-MO Class Hierarchy

    This inheritance list is sorted roughly, but not completely, alphabetically: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/index_8h-source.html b/trunk/paradiseo-mo/docs/html/index_8h-source.html index 5e799eaa0..894fa9ee5 100644 --- a/trunk/paradiseo-mo/docs/html/index_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/index_8h-source.html @@ -27,7 +27,7 @@ 00024 // c-file-style: "Stroustrup" 00025 // fill-column: 80 00026 // End: -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/main.html b/trunk/paradiseo-mo/docs/html/main.html index acfd00d3c..2f455e61a 100644 --- a/trunk/paradiseo-mo/docs/html/main.html +++ b/trunk/paradiseo-mo/docs/html/main.html @@ -24,15 +24,15 @@

    Welcome to PARADISEO-Moving Objects

    0.1

    -intro

    -MO is an extension of the ANSI-C++ compliant evolutionary computation library EO.
    +Introduction
  • +MO is an extension of the ANSI-C++ compliant evolutionary computation library EO.
    It contains classes for almost any kind of one solution based heuristics.

    -tutorial

    +Tutorial

    -install

    +Installation The installation procedure of the package is detailed in the README file in the top-directory of the source-tree.

    -design

    -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +Overall Design +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_8h-source.html index 9ca42170f..acaf61cf8 100644 --- a/trunk/paradiseo-mo/docs/html/mo_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_8h-source.html @@ -67,7 +67,7 @@ 00044 #include "moTSMoveLoopExpl.h" 00045 00046 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_algo_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_algo_8h-source.html index c8a3fc157..bf3271f42 100644 --- a/trunk/paradiseo-mo/docs/html/mo_algo_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_algo_8h-source.html @@ -38,13 +38,13 @@ 00015 #include <eoOp.h> 00016 00018 -00021 template < class EOT > class moAlgo:public eoMonOp < EOT > +00021 template < class EOT > class moAlgo:public eoMonOp < EOT > 00022 { 00023 00024 }; 00025 00026 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_aspir_crit_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_aspir_crit_8h-source.html index b3b1cb582..59ef0e5b2 100644 --- a/trunk/paradiseo-mo/docs/html/mo_aspir_crit_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_aspir_crit_8h-source.html @@ -38,7 +38,7 @@ 00015 #include <eoFunctor.h> 00016 00018 -00022 template < class M > class moAspirCrit:public eoBF < const M &, const typename +00022 template < class M > class moAspirCrit:public eoBF < const M &, const typename 00023 M::EOType::Fitness &, 00024 bool > 00025 { @@ -51,7 +51,7 @@ 00035 }; 00036 00037 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_best_impr_select_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_best_impr_select_8h-source.html index 5b27a1099..cfe2192ef 100644 --- a/trunk/paradiseo-mo/docs/html/mo_best_impr_select_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_best_impr_select_8h-source.html @@ -92,7 +92,7 @@ 00091 }; 00092 00093 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_cooling_schedule_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_cooling_schedule_8h-source.html index 279591ef8..b101c172e 100644 --- a/trunk/paradiseo-mo/docs/html/mo_cooling_schedule_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_cooling_schedule_8h-source.html @@ -38,13 +38,13 @@ 00015 #include <eoFunctor.h> 00016 00018 -00022 class moCoolingSchedule:public eoUF < double &, bool > +00022 class moCoolingSchedule:public eoUF < double &, bool > 00023 { 00024 00025 }; 00026 00027 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_exponential_cooling_schedule_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_exponential_cooling_schedule_8h-source.html index f78d4f350..b74a98ec0 100644 --- a/trunk/paradiseo-mo/docs/html/mo_exponential_cooling_schedule_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_exponential_cooling_schedule_8h-source.html @@ -60,7 +60,7 @@ 00053 }; 00054 00055 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_first_impr_select_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_first_impr_select_8h-source.html index 9a867300c..75018ac36 100644 --- a/trunk/paradiseo-mo/docs/html/mo_first_impr_select_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_first_impr_select_8h-source.html @@ -99,7 +99,7 @@ 00102 }; 00103 00104 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_gen_sol_continue_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_gen_sol_continue_8h-source.html index 06e8ee739..3310e4b4e 100644 --- a/trunk/paradiseo-mo/docs/html/mo_gen_sol_continue_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_gen_sol_continue_8h-source.html @@ -71,7 +71,7 @@ 00067 }; 00068 00069 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_h_c_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_h_c_8h-source.html index 322f0da06..941453a34 100644 --- a/trunk/paradiseo-mo/docs/html/mo_h_c_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_h_c_8h-source.html @@ -125,7 +125,7 @@ 00131 }; 00132 00133 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_h_c_move_loop_expl_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_h_c_move_loop_expl_8h-source.html index 7e90abafc..c8f89cd64 100644 --- a/trunk/paradiseo-mo/docs/html/mo_h_c_move_loop_expl_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_h_c_move_loop_expl_8h-source.html @@ -108,7 +108,7 @@ 00106 }; 00107 00108 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_impr_best_fit_aspir_crit_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_impr_best_fit_aspir_crit_8h-source.html index 6f6304005..89e2c6786 100644 --- a/trunk/paradiseo-mo/docs/html/mo_impr_best_fit_aspir_crit_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_impr_best_fit_aspir_crit_8h-source.html @@ -89,7 +89,7 @@ 00082 }; 00083 00084 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_it_rand_next_move_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_it_rand_next_move_8h-source.html index b094e288e..3aa019104 100644 --- a/trunk/paradiseo-mo/docs/html/mo_it_rand_next_move_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_it_rand_next_move_8h-source.html @@ -85,7 +85,7 @@ 00082 }; 00083 00084 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_l_s_check_point_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_l_s_check_point_8h-source.html index eedcc930f..02b01090e 100644 --- a/trunk/paradiseo-mo/docs/html/mo_l_s_check_point_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_l_s_check_point_8h-source.html @@ -38,7 +38,7 @@ 00015 #include <eoFunctor.h> 00016 00018 -00021 template < class M > class moLSCheckPoint:public eoBF < const M &, const typename +00021 template < class M > class moLSCheckPoint:public eoBF < const M &, const typename 00022 M::EOType &, void > 00023 { 00024 @@ -64,7 +64,7 @@ 00054 00055 private: 00056 -00058 std::vector < eoBF < const +00058 std::vector < eoBF < const 00059 M &, const 00060 typename 00061 M::EOType &, void >*> @@ -73,7 +73,7 @@ 00064 }; 00065 00066 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_linear_cooling_schedule_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_linear_cooling_schedule_8h-source.html index 02a1bfe71..494593455 100644 --- a/trunk/paradiseo-mo/docs/html/mo_linear_cooling_schedule_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_linear_cooling_schedule_8h-source.html @@ -60,7 +60,7 @@ 00053 }; 00054 00055 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_move_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_move_8h-source.html index d7eaedaf3..345530bc1 100644 --- a/trunk/paradiseo-mo/docs/html/mo_move_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_move_8h-source.html @@ -38,7 +38,7 @@ 00015 #include <eoFunctor.h> 00016 00018 -00023 template < class EOT > class moMove:public eoUF < EOT &, void > +00023 template < class EOT > class moMove:public eoUF < EOT &, void > 00024 { 00025 00026 public: @@ -47,7 +47,7 @@ 00030 }; 00031 00032 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_move_expl_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_move_expl_8h-source.html index 36b985a6e..0f62d584b 100644 --- a/trunk/paradiseo-mo/docs/html/mo_move_expl_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_move_expl_8h-source.html @@ -38,7 +38,7 @@ 00015 #include <eoFunctor.h> 00016 00018 -00021 template < class M > class moMoveExpl:public eoBF < const typename +00021 template < class M > class moMoveExpl:public eoBF < const typename 00022 M::EOType &, 00023 typename 00024 M::EOType &, void > @@ -47,7 +47,7 @@ 00027 }; 00028 00029 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_move_incr_eval_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_move_incr_eval_8h-source.html index d797ba859..d66e55fb0 100644 --- a/trunk/paradiseo-mo/docs/html/mo_move_incr_eval_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_move_incr_eval_8h-source.html @@ -38,7 +38,7 @@ 00015 #include <eoFunctor.h> 00016 00018 -00024 template < class M > class moMoveIncrEval:public eoBF < const M &, const typename +00024 template < class M > class moMoveIncrEval:public eoBF < const M &, const typename 00025 M::EOType &, 00026 typename 00027 M::EOType::Fitness > @@ -47,7 +47,7 @@ 00030 }; 00031 00032 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_move_init_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_move_init_8h-source.html index 1f17c308c..7ee87f3dc 100644 --- a/trunk/paradiseo-mo/docs/html/mo_move_init_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_move_init_8h-source.html @@ -38,14 +38,14 @@ 00015 #include <eoFunctor.h> 00016 00018 -00022 template < class M > class moMoveInit:public eoBF < M &, const typename +00022 template < class M > class moMoveInit:public eoBF < M &, const typename 00023 M::EOType &, void > 00024 { 00025 00026 }; 00027 00028 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_move_loop_expl_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_move_loop_expl_8h-source.html index 273932fd2..b2a20e5d6 100644 --- a/trunk/paradiseo-mo/docs/html/mo_move_loop_expl_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_move_loop_expl_8h-source.html @@ -44,7 +44,7 @@ 00024 }; 00025 00026 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_move_select_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_move_select_8h-source.html index 15ae61c8a..12cbc41ba 100644 --- a/trunk/paradiseo-mo/docs/html/mo_move_select_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_move_select_8h-source.html @@ -44,7 +44,7 @@ 00024 }; 00025 00027 -00032 template < class M > class moMoveSelect:public eoBF < M &, typename M::EOType::Fitness &, +00032 template < class M > class moMoveSelect:public eoBF < M &, typename M::EOType::Fitness &, 00033 void > 00034 { 00035 public: @@ -65,7 +65,7 @@ 00063 }; 00064 00065 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_next_move_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_next_move_8h-source.html index 657fc0a55..a0d72735f 100644 --- a/trunk/paradiseo-mo/docs/html/mo_next_move_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_next_move_8h-source.html @@ -38,7 +38,7 @@ 00015 #include <eoFunctor.h> 00016 00018 -00022 template < class M > class moNextMove:public eoBF < M &, const typename +00022 template < class M > class moNextMove:public eoBF < M &, const typename 00023 M::EOType &, 00024 bool > 00025 { @@ -46,7 +46,7 @@ 00027 }; 00028 00029 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_no_aspir_crit_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_no_aspir_crit_8h-source.html index 733fb7441..bffb44293 100644 --- a/trunk/paradiseo-mo/docs/html/mo_no_aspir_crit_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_no_aspir_crit_8h-source.html @@ -56,7 +56,7 @@ 00046 }; 00047 00048 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_rand_impr_select_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_rand_impr_select_8h-source.html index c54817b3b..191a498f7 100644 --- a/trunk/paradiseo-mo/docs/html/mo_rand_impr_select_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_rand_impr_select_8h-source.html @@ -77,7 +77,7 @@ 00080 if (!vect_better_fit.empty ()) 00081 { 00082 -00083 unsigned n = rng.random (vect_better_fit.size ()); +00083 unsigned n = rng.random (vect_better_fit.size ()); 00084 00085 __move = vect_better_moves[n]; 00086 __fit = vect_better_fit[n]; @@ -96,7 +96,7 @@ 00102 }; 00103 00104 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_rand_move_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_rand_move_8h-source.html index 3a50c9659..bb47246af 100644 --- a/trunk/paradiseo-mo/docs/html/mo_rand_move_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_rand_move_8h-source.html @@ -38,13 +38,13 @@ 00015 #include <eoFunctor.h> 00016 00018 -00021 template < class M > class moRandMove:public eoUF < M &, void > +00021 template < class M > class moRandMove:public eoUF < M &, void > 00022 { 00023 00024 }; 00025 00026 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_s_a_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_s_a_8h-source.html index 104a0b0cd..3e7e5088b 100644 --- a/trunk/paradiseo-mo/docs/html/mo_s_a_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_s_a_8h-source.html @@ -107,7 +107,7 @@ 00105 00106 Fitness delta_fit = incr_eval (move, __sol) - __sol.fitness (); 00107 -00108 if (delta_fit > 0 || rng.uniform () < exp (delta_fit / temp)) +00108 if (delta_fit > 0 || rng.uniform () < exp (delta_fit / temp)) 00109 { 00110 00111 __sol.fitness (incr_eval (move, __sol)); @@ -147,7 +147,7 @@ 00151 }; 00152 00153 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_simple_move_tabu_list_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_simple_move_tabu_list_8h-source.html index 69e61de1c..223a75890 100644 --- a/trunk/paradiseo-mo/docs/html/mo_simple_move_tabu_list_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_simple_move_tabu_list_8h-source.html @@ -133,7 +133,7 @@ 00124 }; 00125 00126 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_simple_solution_tabu_list_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_simple_solution_tabu_list_8h-source.html index 3328eeb7e..ce4b39280 100644 --- a/trunk/paradiseo-mo/docs/html/mo_simple_solution_tabu_list_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_simple_solution_tabu_list_8h-source.html @@ -140,7 +140,7 @@ 00133 }; 00134 00135 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_sol_continue_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_sol_continue_8h-source.html index 6203edb9e..196d4f3be 100644 --- a/trunk/paradiseo-mo/docs/html/mo_sol_continue_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_sol_continue_8h-source.html @@ -38,7 +38,7 @@ 00015 #include <eoFunctor.h> 00016 00018 -00022 template < class EOT > class moSolContinue:public eoUF < const EOT &, bool > +00022 template < class EOT > class moSolContinue:public eoUF < const EOT &, bool > 00023 { 00024 00025 public: @@ -47,7 +47,7 @@ 00031 }; 00032 00033 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_t_s_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_t_s_8h-source.html index 4c6b02bb3..c97ac53b0 100644 --- a/trunk/paradiseo-mo/docs/html/mo_t_s_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_t_s_8h-source.html @@ -167,7 +167,7 @@ 00182 template < class EOT > bool moTS < EOT >::first_time = true; 00183 00184 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_t_s_move_loop_expl_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_t_s_move_loop_expl_8h-source.html index cd1a10fa4..2d3e3797a 100644 --- a/trunk/paradiseo-mo/docs/html/mo_t_s_move_loop_expl_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_t_s_move_loop_expl_8h-source.html @@ -127,7 +127,7 @@ 00130 }; 00131 00132 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/mo_tabu_list_8h-source.html b/trunk/paradiseo-mo/docs/html/mo_tabu_list_8h-source.html index 585e039c6..811d78e4d 100644 --- a/trunk/paradiseo-mo/docs/html/mo_tabu_list_8h-source.html +++ b/trunk/paradiseo-mo/docs/html/mo_tabu_list_8h-source.html @@ -38,7 +38,7 @@ 00015 #include <eoFunctor.h> 00016 00018 -00022 template < class M > class moTabuList:public eoBF < const M &, const typename +00022 template < class M > class moTabuList:public eoBF < const M &, const typename 00023 M::EOType &, 00024 bool > 00025 { @@ -60,7 +60,7 @@ 00054 }; 00055 00056 #endif -
    Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/search.php b/trunk/paradiseo-mo/docs/html/search.php index 3aeb45527..9598e283f 100644 --- a/trunk/paradiseo-mo/docs/html/search.php +++ b/trunk/paradiseo-mo/docs/html/search.php @@ -374,7 +374,7 @@ main(); ?> -
    Generated on Fri Apr 20 11:23:38 2007 for PARADISEO-MO by  +
    Generated on Fri Apr 20 11:31:39 2007 for PARADISEO-MO by  doxygen 1.5.1
    diff --git a/trunk/paradiseo-mo/docs/html/tree.html b/trunk/paradiseo-mo/docs/html/tree.html index 8ff0fff2f..f8a0d5b87 100644 --- a/trunk/paradiseo-mo/docs/html/tree.html +++ b/trunk/paradiseo-mo/docs/html/tree.html @@ -101,101 +101,59 @@

    o+Class Hierarchy

    |o*EmptySelection

    -

    |o+eoFunctorBase [external]

    +

    |o*moAlgo< EOT >

    +

    |o+moAlgo< M::EOType >

    -

    ||o+eoBF< A1, A2, R > [external]

    - -

    ||o+eoBF< const M::EOType &, M::EOType &, void > [external]

    - -

    ||o+eoBF< M &, M::EOType::Fitness &, void > [external]

    - -

    ||o+eoUF< const EOT &, bool > [external]

    - -

    ||o+eoUF< double &, bool > [external]

    - -

    ||o+eoUF< EOT &, bool > [external]

    -
    -

    |||\+eoMonOp< EOT > [external]

    - -
    -

    ||o+eoUF< EOT &, void > [external]

    - -

    ||o*eoUF< EOType &, bool > [external]

    -

    ||o+eoUF< M &, void > [external]

    - -

    ||\+eoUF< M::EOType &, bool > [external]

    - +

    |o+moAspirCrit< M >

    + +

    |o+moCoolingSchedule

    + +

    |o*moLSCheckPoint< M >

    +

    |o*moMove< EOT >

    +

    |o+moMoveExpl< M >

    + -

    |\+eoOp< EOType > [external]

    -

    o*Class Members

    -

    \+File List

    -
    +

    \+File List

    +

     o*index.h

     o*mo.h

     o*moAlgo.h

    diff --git a/trunk/paradiseo-mo/docs/latex/classmo_algo.tex b/trunk/paradiseo-mo/docs/latex/classmo_algo.tex index bfd2994a6..ad07def4d 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_algo.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_algo.tex @@ -5,12 +5,6 @@ Description of an algorithm of the paradiseo-mo library. {\tt \#include $<$mo\-Algo.h$>$} -Inheritance diagram for mo\-Algo$<$ EOT $>$::\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[height=4cm]{classmo_algo} -\end{center} -\end{figure} \subsection{Detailed Description} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_aspir_crit.eps b/trunk/paradiseo-mo/docs/latex/classmo_aspir_crit.eps index 7a0252d70..fbf0b26ef 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_aspir_crit.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_aspir_crit.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 218.579 +%%BoundingBox: 0 0 500 109.29 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 2.2875 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 4.575 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 +/rows 2 def /cols 2 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -174,8 +174,6 @@ boxfont setfont 1 boundaspect scale (moAspirCrit< M >) cw -(eoBF< A1, A2, R >) cw -(eoFunctorBase) cw (moImprBestFitAspirCrit< M >) cw (moNoAspirCrit< M >) cw /boxwidth boxwidth marginwidth 2 mul add def @@ -190,21 +188,11 @@ boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (moAspirCrit< M >) 0.5 1 box - (eoBF< A1, A2, R >) 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_aspir_crit.tex b/trunk/paradiseo-mo/docs/latex/classmo_aspir_crit.tex index 646d32397..ffec16f05 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_aspir_crit.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_aspir_crit.tex @@ -8,7 +8,7 @@ Description of the conditions in which a tabu move could be accepted. Inheritance diagram for mo\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_aspir_crit} +\includegraphics[height=2cm]{classmo_aspir_crit} \end{center} \end{figure} \subsection*{Public Member Functions} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_best_impr_select.eps b/trunk/paradiseo-mo/docs/latex/classmo_best_impr_select.eps index e1504ce28..f9c367972 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_best_impr_select.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_best_impr_select.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 303.03 +%%BoundingBox: 0 0 500 259.74 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.925 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ 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 @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moBestImprSelect< M >) 0 0 box (moMoveSelect< M >) 0 1 box - (eoBF< M &, M::EOType::Fitness &, void >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_best_impr_select.tex b/trunk/paradiseo-mo/docs/latex/classmo_best_impr_select.tex index cf0664a23..a7b05435f 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_best_impr_select.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_best_impr_select.tex @@ -8,7 +8,7 @@ One of the possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. Inheritance diagram for mo\-Best\-Impr\-Select$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_best_impr_select} +\includegraphics[height=2cm]{classmo_best_impr_select} \end{center} \end{figure} \subsection*{Public Types} @@ -24,7 +24,7 @@ void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit)\label{classmo_best_impr_sele \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 +\begin{CompactList}\small\item\em 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 (Empty\-Selection) \begin{CompactList}\small\item\em Procedure which saved the best move and fitness. \item\end{CompactList}\end{CompactItemize} \subsection*{Private Attributes} @@ -58,7 +58,7 @@ Definition at line 22 of file mo\-Best\-Impr\-Select.h. \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-Best\-Impr\-Select}$<$ 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. +Function that indicates if the current move has not improved the fitness. If the given fitness enables an improvment, the move (\doxyref{mo\-Move}{p.}{classmo_move}) and the fitness linked to this move are saved. @@ -77,7 +77,7 @@ Definition at line 47 of file mo\-Best\-Impr\-Select.h. References mo\-Best\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-Best\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-Best\-Impr\-Select$<$ M $>$::first\_\-time.\index{moBestImprSelect@{mo\-Best\-Impr\-Select}!operator()@{operator()}} \index{operator()@{operator()}!moBestImprSelect@{mo\-Best\-Impr\-Select}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-Best\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_best_impr_select_169773d4d127acd782cf379f758222da} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-Best\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline]}}\label{classmo_best_impr_select_169773d4d127acd782cf379f758222da} Procedure which saved the best move and fitness. @@ -94,8 +94,6 @@ Procedure which saved the best move and fitness. \end{Desc} -Implements {\bf eo\-BF$<$ M \&, M::EOType::Fitness \&, void $>$}. - Definition at line 68 of file mo\-Best\-Impr\-Select.h. References mo\-Best\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-Best\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-Best\-Impr\-Select$<$ M $>$::first\_\-time. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_cooling_schedule.eps b/trunk/paradiseo-mo/docs/latex/classmo_cooling_schedule.eps index 099ff0bb2..a1d0c2d59 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_cooling_schedule.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_cooling_schedule.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 203.046 +%%BoundingBox: 0 0 500 101.523 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 2.4625 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 4.925 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 +/rows 2 def /cols 2 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -174,8 +174,6 @@ boxfont setfont 1 boundaspect scale (moCoolingSchedule) cw -(eoUF< double &, bool >) cw -(eoFunctorBase) cw (moExponentialCoolingSchedule) cw (moLinearCoolingSchedule) cw /boxwidth boxwidth marginwidth 2 mul add def @@ -190,21 +188,11 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_cooling_schedule.tex b/trunk/paradiseo-mo/docs/latex/classmo_cooling_schedule.tex index 65e4977be..d0d7d7b80 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_cooling_schedule.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_cooling_schedule.tex @@ -8,7 +8,7 @@ This class gives the description of a cooling schedule. Inheritance diagram for mo\-Cooling\-Schedule::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_cooling_schedule} +\includegraphics[height=2cm]{classmo_cooling_schedule} \end{center} \end{figure} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_exponential_cooling_schedule.eps b/trunk/paradiseo-mo/docs/latex/classmo_exponential_cooling_schedule.eps index 92ecef949..9a4b2773b 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_exponential_cooling_schedule.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_exponential_cooling_schedule.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 406.091 +%%BoundingBox: 0 0 500 203.046 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.23125 def % aspect ratio of the BoundingBox (width/height) +/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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ 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 @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moExponentialCoolingSchedule) 0 0 box (moCoolingSchedule) 0 1 box - (eoUF< double &, bool >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_exponential_cooling_schedule.tex b/trunk/paradiseo-mo/docs/latex/classmo_exponential_cooling_schedule.tex index 3be041c23..3a4a742b0 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_exponential_cooling_schedule.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_exponential_cooling_schedule.tex @@ -8,7 +8,7 @@ One of the possible \doxyref{mo\-Cooling\-Schedule}{p.}{classmo_cooling_schedule Inheritance diagram for mo\-Exponential\-Cooling\-Schedule::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_exponential_cooling_schedule} +\includegraphics[height=2cm]{classmo_exponential_cooling_schedule} \end{center} \end{figure} \subsection*{Public Member Functions} @@ -17,7 +17,7 @@ Inheritance diagram for mo\-Exponential\-Cooling\-Schedule::\begin{figure}[H] {\bf mo\-Exponential\-Cooling\-Schedule} (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} +\begin{CompactList}\small\item\em Function which proceeds to the cooling. \item\end{CompactList}\end{CompactItemize} \subsection*{Private Attributes} \begin{CompactItemize} \item @@ -58,10 +58,10 @@ Definition at line 31 of file mo\-Exponential\-Cooling\-Schedule.h. \subsection{Member Function Documentation} \index{moExponentialCoolingSchedule@{mo\-Exponential\-Cooling\-Schedule}!operator()@{operator()}} \index{operator()@{operator()}!moExponentialCoolingSchedule@{mo\-Exponential\-Cooling\-Schedule}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool mo\-Exponential\-Cooling\-Schedule::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_exponential_cooling_schedule_00642b03453b51612a10fcf2280543db} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool mo\-Exponential\-Cooling\-Schedule::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline]}}\label{classmo_exponential_cooling_schedule_00642b03453b51612a10fcf2280543db} -{\bf Function} which proceeds to the cooling. +Function which proceeds to the cooling. It decreases the temperature and indicates if it is greater than the threshold. @@ -74,8 +74,6 @@ It decreases the temperature and indicates if it is greater than the threshold. \item[Returns:]if the new temperature (current temperature $\ast$ ratio) is greater than the threshold. \end{Desc} -Implements {\bf eo\-UF$<$ double \&, bool $>$}. - Definition at line 41 of file mo\-Exponential\-Cooling\-Schedule.h. References ratio, and threshold. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_first_impr_select.eps b/trunk/paradiseo-mo/docs/latex/classmo_first_impr_select.eps index 7057473a9..04ffcb96d 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_first_impr_select.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_first_impr_select.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 303.03 +%%BoundingBox: 0 0 500 258.065 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.9375 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ 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 @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moFirstImprSelect< M >) 0 0 box (moMoveSelect< M >) 0 1 box - (eoBF< M &, M::EOType::Fitness &, void >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_first_impr_select.tex b/trunk/paradiseo-mo/docs/latex/classmo_first_impr_select.tex index a8db13d4d..c202586d4 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_first_impr_select.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_first_impr_select.tex @@ -8,7 +8,7 @@ One possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. Inheritance diagram for mo\-First\-Impr\-Select$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_first_impr_select} +\includegraphics[height=2cm]{classmo_first_impr_select} \end{center} \end{figure} \subsection*{Public Types} @@ -23,7 +23,7 @@ typedef M::EOType::Fitness {\bf Fitness}\label{classmo_first_impr_select_64763ce 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 +\begin{CompactList}\small\item\em 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 (Empty\-Selection) \begin{CompactList}\small\item\em Procedure which saved the best move and fitness. \item\end{CompactList}\end{CompactItemize} \subsection*{Private Attributes} @@ -73,7 +73,7 @@ References mo\-First\-Impr\-Select$<$ M $>$::init\_\-fit, and mo\-First\-Impr\-S \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-First\-Impr\-Select}$<$ 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. +Function that indicates if the current move has not improved the fitness. If the given fitness enables an improvment, the move (\doxyref{mo\-Move}{p.}{classmo_move}) should be applied to the current solution. @@ -90,7 +90,7 @@ Definition at line 52 of file mo\-First\-Impr\-Select.h. References mo\-First\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-First\-Impr\-Select$<$ M $>$::best\_\-move, mo\-First\-Impr\-Select$<$ M $>$::init\_\-fit, and mo\-First\-Impr\-Select$<$ M $>$::valid.\index{moFirstImprSelect@{mo\-First\-Impr\-Select}!operator()@{operator()}} \index{operator()@{operator()}!moFirstImprSelect@{mo\-First\-Impr\-Select}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-First\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_first_impr_select_3be12cf4cbaed00df7c4fa735b2c0a95} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-First\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline]}}\label{classmo_first_impr_select_3be12cf4cbaed00df7c4fa735b2c0a95} Procedure which saved the best move and fitness. @@ -107,8 +107,6 @@ Procedure which saved the best move and fitness. \end{Desc} -Implements {\bf eo\-BF$<$ M \&, M::EOType::Fitness \&, void $>$}. - Definition at line 76 of file mo\-First\-Impr\-Select.h. References mo\-First\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-First\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-First\-Impr\-Select$<$ M $>$::valid. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_gen_sol_continue.eps b/trunk/paradiseo-mo/docs/latex/classmo_gen_sol_continue.eps index c73c60ba3..c9e65107d 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_gen_sol_continue.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_gen_sol_continue.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 441.989 +%%BoundingBox: 0 0 500 227.273 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.13125 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.2 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ 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 @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moGenSolContinue< EOT >) 0 0 box (moSolContinue< EOT >) 0 1 box - (eoUF< const EOT &, bool >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_gen_sol_continue.tex b/trunk/paradiseo-mo/docs/latex/classmo_gen_sol_continue.tex index d406d7b3a..5f4ac8050 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_gen_sol_continue.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_gen_sol_continue.tex @@ -8,7 +8,7 @@ One possible stop criterion for a solution-based heuristic. Inheritance diagram for mo\-Gen\-Sol\-Continue$<$ EOT $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_gen_sol_continue} +\includegraphics[height=2cm]{classmo_gen_sol_continue} \end{center} \end{figure} \subsection*{Public Member Functions} @@ -17,7 +17,7 @@ Inheritance diagram for mo\-Gen\-Sol\-Continue$<$ EOT $>$::\begin{figure}[H] {\bf mo\-Gen\-Sol\-Continue} (unsigned \_\-\_\-max\-Num\-Gen) \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 +\begin{CompactList}\small\item\em 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} @@ -62,10 +62,10 @@ Definition at line 30 of file mo\-Gen\-Sol\-Continue.h. \subsection{Member Function Documentation} \index{moGenSolContinue@{mo\-Gen\-Sol\-Continue}!operator()@{operator()}} \index{operator()@{operator()}!moGenSolContinue@{mo\-Gen\-Sol\-Continue}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool {\bf mo\-Gen\-Sol\-Continue}$<$ EOT $>$::operator() (const EOT \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_gen_sol_continue_457257cd73b474d6f7783d84d02c2e61} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool {\bf mo\-Gen\-Sol\-Continue}$<$ EOT $>$::operator() (const EOT \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_gen_sol_continue_457257cd73b474d6f7783d84d02c2e61} -{\bf Function} that activates the stop criterion. +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. @@ -78,13 +78,11 @@ Increments the counter and returns TRUE if the current number of iteration is lo \item[Returns:]TRUE or FALSE according to the current generation number. \end{Desc} -Implements {\bf eo\-UF$<$ const EOT \&, bool $>$}. - Definition at line 44 of file mo\-Gen\-Sol\-Continue.h. References mo\-Gen\-Sol\-Continue$<$ EOT $>$::max\-Num\-Gen, and mo\-Gen\-Sol\-Continue$<$ EOT $>$::num\-Gen.\index{moGenSolContinue@{mo\-Gen\-Sol\-Continue}!init@{init}} \index{init@{init}!moGenSolContinue@{mo\-Gen\-Sol\-Continue}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf mo\-Gen\-Sol\-Continue}$<$ EOT $>$::init (void)\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_gen_sol_continue_6c5db8182157584b56507cc9075602d4} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf mo\-Gen\-Sol\-Continue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_gen_sol_continue_6c5db8182157584b56507cc9075602d4} Procedure which allows to initialise the generation counter. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_h_c.eps b/trunk/paradiseo-mo/docs/latex/classmo_h_c.eps index 184d2041a..648f11f20 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_h_c.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_h_c.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 271.739 +%%BoundingBox: 0 0 500 268.456 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,13 +19,13 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.8625 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 +/rows 2 def +/cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,10 +175,6 @@ 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 @@ -190,32 +186,12 @@ 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 + (moHC< M >) 0 0 box + (moAlgo< M::EOType >) 0 1 box % ----- relations ----- solid -0 0.5 0 out +0 0 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 +1 0 1 in diff --git a/trunk/paradiseo-mo/docs/latex/classmo_h_c.tex b/trunk/paradiseo-mo/docs/latex/classmo_h_c.tex index 8263cc15c..917388faa 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_h_c.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_h_c.tex @@ -8,18 +8,18 @@ Hill Climbing (HC). Inheritance diagram for mo\-HC$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=5cm]{classmo_h_c} +\includegraphics[height=2cm]{classmo_h_c} \end{center} \end{figure} \subsection*{Public Member Functions} \begin{CompactItemize} \item -{\bf mo\-HC} ({\bf mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Move\-Select}$<$ M $>$ \&\_\-\_\-move\_\-select, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +{\bf mo\-HC} ({\bf mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Move\-Select}$<$ M $>$ \&\_\-\_\-move\_\-select, eo\-Eval\-Func$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) \begin{CompactList}\small\item\em Full constructor. \item\end{CompactList}\item -{\bf mo\-HC} ({\bf mo\-Move\-Expl}$<$ M $>$ \&\_\-\_\-move\_\-expl, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +{\bf mo\-HC} ({\bf mo\-Move\-Expl}$<$ M $>$ \&\_\-\_\-move\_\-expl, eo\-Eval\-Func$<$ {\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} +\begin{CompactList}\small\item\em Function which launches the HC. \item\end{CompactList}\end{CompactItemize} \subsection*{Private Types} \begin{CompactItemize} \item @@ -35,7 +35,7 @@ typedef EOT::Fitness {\bf Fitness}\label{classmo_h_c_56487c97a7cf0c423cc879d1bbd {\bf mo\-Move\-Expl}$<$ M $>$ \& {\bf move\_\-expl}\label{classmo_h_c_f6bfb4553fb699f1e08f7d9c37d06103} \begin{CompactList}\small\item\em Complete exploration of the neighborhood. \item\end{CompactList}\item -{\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_h_c_4b0d5cc70fc3d83f59a48b2bdea65736} +eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_h_c_4b0d5cc70fc3d83f59a48b2bdea65736} \begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize} @@ -54,7 +54,7 @@ Definition at line 26 of file mo\-HC.h. \subsection{Constructor \& Destructor Documentation} \index{moHC@{mo\-HC}!moHC@{moHC}} \index{moHC@{moHC}!moHC@{mo\-HC}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-HC}$<$ M $>$::{\bf mo\-HC} ({\bf mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Move\-Select}$<$ M $>$ \& {\em \_\-\_\-move\_\-select}, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_6cafe093f86a80c225827884cb9dc5b7} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-HC}$<$ M $>$::{\bf mo\-HC} ({\bf mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Move\-Select}$<$ M $>$ \& {\em \_\-\_\-move\_\-select}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_6cafe093f86a80c225827884cb9dc5b7} Full constructor. @@ -70,7 +70,7 @@ All the boxes are given in order the HC to use a \doxyref{mo\-HCMove\-Loop\-Expl Definition at line 53 of file mo\-HC.h.\index{moHC@{mo\-HC}!moHC@{moHC}} \index{moHC@{moHC}!moHC@{mo\-HC}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-HC}$<$ M $>$::{\bf mo\-HC} ({\bf mo\-Move\-Expl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_45f27309792e584a27fa6dcb86ccda65} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-HC}$<$ M $>$::{\bf mo\-HC} ({\bf mo\-Move\-Expl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_45f27309792e584a27fa6dcb86ccda65} Light constructor. @@ -89,10 +89,10 @@ Definition at line 67 of file mo\-HC.h. \subsection{Member Function Documentation} \index{moHC@{mo\-HC}!operator()@{operator()}} \index{operator()@{operator()}!moHC@{mo\-HC}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-HC}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_h_c_ed4e273c420efa6386c5975a696a5010} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-HC}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_ed4e273c420efa6386c5975a696a5010} -{\bf Function} which launches the HC. +Function which launches the HC. The HC has to improve a current solution. As the \doxyref{mo\-SA}{p.}{classmo_s_a} and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm. @@ -105,8 +105,6 @@ The HC has to improve a current solution. As the \doxyref{mo\-SA}{p.}{classmo_s_ \item[Returns:]TRUE. \end{Desc} -Implements {\bf eo\-UF$<$ M::EOType \&, bool $>$}. - Definition at line 82 of file mo\-HC.h. References mo\-HC$<$ M $>$::full\_\-eval, and mo\-HC$<$ M $>$::move\_\-expl. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_h_c_move_loop_expl.eps b/trunk/paradiseo-mo/docs/latex/classmo_h_c_move_loop_expl.eps index 1240e010d..1383bbf1b 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_h_c_move_loop_expl.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_h_c_move_loop_expl.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 327.869 +%%BoundingBox: 0 0 500 346.821 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.44167 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 +/rows 3 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -176,8 +176,6 @@ boxfont setfont (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 @@ -192,8 +190,6 @@ boundx scalefactor div boundy scalefactor div scale (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 ----- @@ -205,11 +201,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_h_c_move_loop_expl.tex b/trunk/paradiseo-mo/docs/latex/classmo_h_c_move_loop_expl.tex index e404ab915..fbcfeea7c 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_h_c_move_loop_expl.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_h_c_move_loop_expl.tex @@ -8,7 +8,7 @@ Iterative explorer used by a \doxyref{mo\-HC}{p.}{classmo_h_c}. Inheritance diagram for mo\-HCMove\-Loop\-Expl$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=5cm]{classmo_h_c_move_loop_expl} +\includegraphics[height=3cm]{classmo_h_c_move_loop_expl} \end{center} \end{figure} \subsection*{Public Member Functions} @@ -75,7 +75,7 @@ Definition at line 43 of file mo\-HCMove\-Loop\-Expl.h. \subsection{Member Function Documentation} \index{moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}!operator()@{operator()}} \index{operator()@{operator()}!moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-HCMove\-Loop\-Expl}$<$ 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} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-HCMove\-Loop\-Expl}$<$ M $>$::operator() (const {\bf EOT} \& {\em \_\-\_\-old\_\-sol}, {\bf EOT} \& {\em \_\-\_\-new\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_move_loop_expl_f48d5379caac7f6a165e9fe8840e6ccb} Procedure which launches the explorer. @@ -89,8 +89,6 @@ The exploration starts from an old solution and provides a new solution. \end{Desc} -Implements {\bf eo\-BF$<$ const M::EOType \&, M::EOType \&, void $>$}. - Definition at line 59 of file mo\-HCMove\-Loop\-Expl.h. References mo\-HCMove\-Loop\-Expl$<$ M $>$::incr\_\-eval, mo\-HCMove\-Loop\-Expl$<$ M $>$::move\_\-init, mo\-HCMove\-Loop\-Expl$<$ M $>$::move\_\-select, and mo\-HCMove\-Loop\-Expl$<$ M $>$::next\_\-move. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_impr_best_fit_aspir_crit.eps b/trunk/paradiseo-mo/docs/latex/classmo_impr_best_fit_aspir_crit.eps index a00a3c3cb..41cee35a0 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_impr_best_fit_aspir_crit.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_impr_best_fit_aspir_crit.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 437.158 +%%BoundingBox: 0 0 500 218.579 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.14375 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ boxfont setfont 1 boundaspect scale (moImprBestFitAspirCrit< M >) cw (moAspirCrit< M >) cw -(eoBF< A1, A2, R >) cw -(eoFunctorBase) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moImprBestFitAspirCrit< M >) 0 0 box (moAspirCrit< M >) 0 1 box - (eoBF< A1, A2, R >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_impr_best_fit_aspir_crit.tex b/trunk/paradiseo-mo/docs/latex/classmo_impr_best_fit_aspir_crit.tex index d5cc8a9f1..5303c7f37 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_impr_best_fit_aspir_crit.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_impr_best_fit_aspir_crit.tex @@ -8,7 +8,7 @@ One of the possible \doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}. Inheritance diagram for mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_impr_best_fit_aspir_crit} +\includegraphics[height=2cm]{classmo_impr_best_fit_aspir_crit} \end{center} \end{figure} \subsection*{Public Types} @@ -27,7 +27,7 @@ void {\bf init} ()\label{classmo_impr_best_fit_aspir_crit_ffa451a14ff4ea86fb8bd9 \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} +\begin{CompactList}\small\item\em Function that indicates if the fit is better that the already saved fit. \item\end{CompactList}\end{CompactItemize} \subsection*{Private Attributes} \begin{CompactItemize} \item @@ -56,7 +56,7 @@ Definition at line 22 of file mo\-Impr\-Best\-Fit\-Aspir\-Crit.h. \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-Impr\-Best\-Fit\-Aspir\-Crit}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_impr_best_fit_aspir_crit_53f62fb56dcae3051a741f1fddb0204b} -{\bf Function} that indicates if the fit is better that the already saved fit. +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. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_it_rand_next_move.eps b/trunk/paradiseo-mo/docs/latex/classmo_it_rand_next_move.eps index 5f2df0014..bc4ea56dc 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_it_rand_next_move.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_it_rand_next_move.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 490.798 +%%BoundingBox: 0 0 500 245.399 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.01875 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.0375 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ boxfont setfont 1 boundaspect scale (moItRandNextMove< M >) cw (moNextMove< M >) cw -(eoBF< A1, A2, R >) cw -(eoFunctorBase) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moItRandNextMove< M >) 0 0 box (moNextMove< M >) 0 1 box - (eoBF< A1, A2, R >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_it_rand_next_move.tex b/trunk/paradiseo-mo/docs/latex/classmo_it_rand_next_move.tex index b3346119d..ff90d301e 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_it_rand_next_move.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_it_rand_next_move.tex @@ -8,7 +8,7 @@ One of the possible \doxyref{mo\-Next\-Move}{p.}{classmo_next_move}. Inheritance diagram for mo\-It\-Rand\-Next\-Move$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_it_rand_next_move} +\includegraphics[height=2cm]{classmo_it_rand_next_move} \end{center} \end{figure} \subsection*{Public Member Functions} @@ -57,7 +57,7 @@ Definition at line 22 of file mo\-It\-Rand\-Next\-Move.h. The constructor. -{\bf Parameters} only for initialising the attributes. +Parameters only for initialising the attributes. \begin{Desc} \item[Parameters:] diff --git a/trunk/paradiseo-mo/docs/latex/classmo_l_s_check_point.tex b/trunk/paradiseo-mo/docs/latex/classmo_l_s_check_point.tex index c75dd117b..44cc5d177 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_l_s_check_point.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_l_s_check_point.tex @@ -5,23 +5,17 @@ Class which allows a checkpointing system. {\tt \#include $<$mo\-LSCheck\-Point.h$>$} -Inheritance diagram for mo\-LSCheck\-Point$<$ 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 eo\-BF}$<$ const M \&, const typename M::EOType \&, void $>$ \&\_\-\_\-f) +\begin{CompactList}\small\item\em Function which launches the checkpointing. \item\end{CompactList}\item +void {\bf add} (eo\-BF$<$ 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 eo\-BF}$<$ const M \&, const typename M::EOType \&, void $>$ $\ast$ $>$ {\bf func}\label{classmo_l_s_check_point_ff2a31ee5689a804bd9a572c51a36ca4} +std::vector$<$ eo\-BF$<$ 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} @@ -43,7 +37,7 @@ Definition at line 21 of file mo\-LSCheck\-Point.h. \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-LSCheck\-Point}$<$ 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. +Function which launches the checkpointing. Each saved function is used on the current move and the current solution. @@ -58,7 +52,7 @@ Definition at line 34 of file mo\-LSCheck\-Point.h. References mo\-LSCheck\-Point$<$ M $>$::func.\index{moLSCheckPoint@{mo\-LSCheck\-Point}!add@{add}} \index{add@{add}!moLSCheckPoint@{mo\-LSCheck\-Point}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-LSCheck\-Point}$<$ M $>$::add ({\bf eo\-BF}$<$ const M \&, const typename M::EOType \&, void $>$ \& {\em \_\-\_\-f})\hspace{0.3cm}{\tt [inline]}}\label{classmo_l_s_check_point_66be5fe2944bcdd752f1e58105e969a6} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-LSCheck\-Point}$<$ M $>$::add (eo\-BF$<$ 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. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_linear_cooling_schedule.eps b/trunk/paradiseo-mo/docs/latex/classmo_linear_cooling_schedule.eps index 3e62629a9..35d64af4d 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_linear_cooling_schedule.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_linear_cooling_schedule.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 476.19 +%%BoundingBox: 0 0 500 238.095 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.05 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.1 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ 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 @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moLinearCoolingSchedule) 0 0 box (moCoolingSchedule) 0 1 box - (eoUF< double &, bool >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_linear_cooling_schedule.tex b/trunk/paradiseo-mo/docs/latex/classmo_linear_cooling_schedule.tex index b9a04a3a5..8e525ba4b 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_linear_cooling_schedule.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_linear_cooling_schedule.tex @@ -8,7 +8,7 @@ One of the possible \doxyref{mo\-Cooling\-Schedule}{p.}{classmo_cooling_schedule Inheritance diagram for mo\-Linear\-Cooling\-Schedule::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_linear_cooling_schedule} +\includegraphics[height=2cm]{classmo_linear_cooling_schedule} \end{center} \end{figure} \subsection*{Public Member Functions} @@ -17,7 +17,7 @@ Inheritance diagram for mo\-Linear\-Cooling\-Schedule::\begin{figure}[H] {\bf mo\-Linear\-Cooling\-Schedule} (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} +\begin{CompactList}\small\item\em Function which proceeds to the cooling. \item\end{CompactList}\end{CompactItemize} \subsection*{Private Attributes} \begin{CompactItemize} \item @@ -58,10 +58,10 @@ Definition at line 31 of file mo\-Linear\-Cooling\-Schedule.h. \subsection{Member Function Documentation} \index{moLinearCoolingSchedule@{mo\-Linear\-Cooling\-Schedule}!operator()@{operator()}} \index{operator()@{operator()}!moLinearCoolingSchedule@{mo\-Linear\-Cooling\-Schedule}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool mo\-Linear\-Cooling\-Schedule::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_linear_cooling_schedule_814b109fdfd9426a92a5444b05014da3} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool mo\-Linear\-Cooling\-Schedule::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline]}}\label{classmo_linear_cooling_schedule_814b109fdfd9426a92a5444b05014da3} -{\bf Function} which proceeds to the cooling. +Function which proceeds to the cooling. It decreases the temperature and indicates if it is greater than the threshold. @@ -74,8 +74,6 @@ It decreases the temperature and indicates if it is greater than the threshold. \item[Returns:]if the new temperature (current temperature - quantity) is greater than the threshold. \end{Desc} -Implements {\bf eo\-UF$<$ double \&, bool $>$}. - Definition at line 41 of file mo\-Linear\-Cooling\-Schedule.h. References quantity, and threshold. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move.tex b/trunk/paradiseo-mo/docs/latex/classmo_move.tex index 873616a4c..0460f6faf 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_move.tex @@ -5,12 +5,6 @@ Definition of a move. {\tt \#include $<$mo\-Move.h$>$} -Inheritance diagram for mo\-Move$<$ EOT $>$::\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[height=3cm]{classmo_move} -\end{center} -\end{figure} \subsection*{Public Types} \begin{CompactItemize} \item diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move_expl.eps b/trunk/paradiseo-mo/docs/latex/classmo_move_expl.eps index 18fb8889f..708dd0b50 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move_expl.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_move_expl.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 163.934 +%%BoundingBox: 0 0 500 173.41 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 3.05 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.88333 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 +/rows 3 def /cols 2 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -174,8 +174,6 @@ 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 @@ -191,22 +189,12 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move_expl.tex b/trunk/paradiseo-mo/docs/latex/classmo_move_expl.tex index 5d0b1e66b..614132a6c 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move_expl.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_move_expl.tex @@ -8,7 +8,7 @@ Description of a move (\doxyref{mo\-Move}{p.}{classmo_move}) explorer. Inheritance diagram for mo\-Move\-Expl$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4.59016cm]{classmo_move_expl} +\includegraphics[height=3cm]{classmo_move_expl} \end{center} \end{figure} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move_incr_eval.tex b/trunk/paradiseo-mo/docs/latex/classmo_move_incr_eval.tex index 91421ef4b..6b4bd7289 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move_incr_eval.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_move_incr_eval.tex @@ -5,12 +5,6 @@ {\tt \#include $<$mo\-Move\-Incr\-Eval.h$>$} -Inheritance diagram for mo\-Move\-Incr\-Eval$<$ M $>$::\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[height=3cm]{classmo_move_incr_eval} -\end{center} -\end{figure} \subsection{Detailed Description} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move_init.tex b/trunk/paradiseo-mo/docs/latex/classmo_move_init.tex index 353911436..556b323ee 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move_init.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_move_init.tex @@ -5,12 +5,6 @@ Move (\doxyref{mo\-Move}{p.}{classmo_move}) initializer. {\tt \#include $<$mo\-Move\-Init.h$>$} -Inheritance diagram for mo\-Move\-Init$<$ M $>$::\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[height=3cm]{classmo_move_init} -\end{center} -\end{figure} \subsection{Detailed Description} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move_loop_expl.eps b/trunk/paradiseo-mo/docs/latex/classmo_move_loop_expl.eps index c6a78b5b1..76326be37 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move_loop_expl.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_move_loop_expl.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 163.934 +%%BoundingBox: 0 0 500 173.41 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 3.05 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.88333 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 +/rows 3 def /cols 2 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ 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 @@ -192,8 +190,6 @@ boundx scalefactor div boundy scalefactor div scale (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 @@ -204,14 +200,6 @@ solid 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move_loop_expl.tex b/trunk/paradiseo-mo/docs/latex/classmo_move_loop_expl.tex index 1a6c5b997..8bbfd3542 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move_loop_expl.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_move_loop_expl.tex @@ -8,7 +8,7 @@ Class which describes an iterative explorer. Inheritance diagram for mo\-Move\-Loop\-Expl$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4.59016cm]{classmo_move_loop_expl} +\includegraphics[height=3cm]{classmo_move_loop_expl} \end{center} \end{figure} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move_select.eps b/trunk/paradiseo-mo/docs/latex/classmo_move_select.eps index b61e2bf9f..86a37c002 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move_select.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_move_select.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 101.01 +%%BoundingBox: 0 0 500 83.8574 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 4.95 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 5.9625 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 +/rows 2 def /cols 3 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -174,8 +174,6 @@ 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 @@ -191,22 +189,12 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_move_select.tex b/trunk/paradiseo-mo/docs/latex/classmo_move_select.tex index d0c3deb66..390b93989 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_move_select.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_move_select.tex @@ -8,7 +8,7 @@ Class that describes a move selector (\doxyref{mo\-Move}{p.}{classmo_move}). Inheritance diagram for mo\-Move\-Select$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=2.82828cm]{classmo_move_select} +\includegraphics[height=2cm]{classmo_move_select} \end{center} \end{figure} \subsection*{Public Types} @@ -23,7 +23,7 @@ typedef M::EOType::Fitness {\bf Fitness}\label{classmo_move_select_8148ccc0e6fbd 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} +\begin{CompactList}\small\item\em Function which updates the best solutions. \item\end{CompactList}\end{CompactItemize} \subsection{Detailed Description} @@ -59,7 +59,7 @@ Implemented in {\bf mo\-Best\-Impr\-Select$<$ M $>$} \doxyref{}{p.}{classmo_best \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual bool {\bf mo\-Move\-Select}$<$ 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. +Function which updates the best solutions. \begin{Desc} \item[Parameters:] diff --git a/trunk/paradiseo-mo/docs/latex/classmo_next_move.eps b/trunk/paradiseo-mo/docs/latex/classmo_next_move.eps index 08b997f12..d9586a593 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_next_move.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_next_move.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 490.798 +%%BoundingBox: 0 0 500 245.399 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.01875 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.0375 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -174,8 +174,6 @@ boxfont setfont 1 boundaspect scale (moNextMove< M >) cw -(eoBF< A1, A2, R >) cw -(eoFunctorBase) cw (moItRandNextMove< M >) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def @@ -189,20 +187,10 @@ boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (moNextMove< M >) 0 1 box - (eoBF< A1, A2, R >) 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_next_move.tex b/trunk/paradiseo-mo/docs/latex/classmo_next_move.tex index 7da58dd8d..e51cd5566 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_next_move.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_next_move.tex @@ -8,7 +8,7 @@ Class which allows to generate a new move (\doxyref{mo\-Move}{p.}{classmo_move}) Inheritance diagram for mo\-Next\-Move$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_next_move} +\includegraphics[height=2cm]{classmo_next_move} \end{center} \end{figure} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_no_aspir_crit.eps b/trunk/paradiseo-mo/docs/latex/classmo_no_aspir_crit.eps index f5d50a373..4a1de4c86 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_no_aspir_crit.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_no_aspir_crit.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 583.942 +%%BoundingBox: 0 0 500 291.971 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 0.85625 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.7125 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ boxfont setfont 1 boundaspect scale (moNoAspirCrit< M >) cw (moAspirCrit< M >) cw -(eoBF< A1, A2, R >) cw -(eoFunctorBase) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moNoAspirCrit< M >) 0 0 box (moAspirCrit< M >) 0 1 box - (eoBF< A1, A2, R >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_no_aspir_crit.tex b/trunk/paradiseo-mo/docs/latex/classmo_no_aspir_crit.tex index 1478e8bf4..2c5a3b5e1 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_no_aspir_crit.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_no_aspir_crit.tex @@ -8,14 +8,14 @@ One of the possible aspiration criterion (\doxyref{mo\-Aspir\-Crit}{p.}{classmo_ Inheritance diagram for mo\-No\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_no_aspir_crit} +\includegraphics[height=2cm]{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 +\begin{CompactList}\small\item\em 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{mo\-No\-Aspir\-Crit}{p.}{classmo_no_aspir_crit}. \item\end{CompactList}\end{CompactItemize} @@ -37,7 +37,7 @@ Definition at line 21 of file mo\-No\-Aspir\-Crit.h. \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-No\-Aspir\-Crit}$<$ 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. +Function which describes the aspiration criterion behaviour. Does nothing. @@ -52,7 +52,7 @@ Does nothing. Definition at line 32 of file mo\-No\-Aspir\-Crit.h.\index{moNoAspirCrit@{mo\-No\-Aspir\-Crit}!init@{init}} \index{init@{init}!moNoAspirCrit@{mo\-No\-Aspir\-Crit}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-No\-Aspir\-Crit}$<$ M $>$::init (void)\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmo_no_aspir_crit_f3a286fc4c2d36bd390ba9a3074f3037} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-No\-Aspir\-Crit}$<$ M $>$::init ()\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmo_no_aspir_crit_f3a286fc4c2d36bd390ba9a3074f3037} Procedure which initialises all that needs a \doxyref{mo\-No\-Aspir\-Crit}{p.}{classmo_no_aspir_crit}. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_rand_impr_select.eps b/trunk/paradiseo-mo/docs/latex/classmo_rand_impr_select.eps index fe55210a4..74d2fc0f6 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_rand_impr_select.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_rand_impr_select.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 303.03 +%%BoundingBox: 0 0 500 251.572 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.9875 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ 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 @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moRandImprSelect< M >) 0 0 box (moMoveSelect< M >) 0 1 box - (eoBF< M &, M::EOType::Fitness &, void >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_rand_impr_select.tex b/trunk/paradiseo-mo/docs/latex/classmo_rand_impr_select.tex index c39674044..feaa35f47 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_rand_impr_select.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_rand_impr_select.tex @@ -8,7 +8,7 @@ One of the possible \doxyref{mo\-Move}{p.}{classmo_move} selector (\doxyref{mo\- Inheritance diagram for mo\-Rand\-Impr\-Select$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_rand_impr_select} +\includegraphics[height=2cm]{classmo_rand_impr_select} \end{center} \end{figure} \subsection*{Public Types} @@ -23,7 +23,7 @@ typedef M::EOType::Fitness {\bf Fitness}\label{classmo_rand_impr_select_3bff2fdb void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit) \begin{CompactList}\small\item\em Procedure which all that needs a \doxyref{mo\-Rand\-Impr\-Select}{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 +\begin{CompactList}\small\item\em Function that updates the fitness and move vectors. \item\end{CompactList}\item void {\bf operator()} (M \&\_\-\_\-move, {\bf Fitness} \&\_\-\_\-fit) throw (Empty\-Selection) \begin{CompactList}\small\item\em The move selection. \item\end{CompactList}\end{CompactItemize} \subsection*{Private Attributes} @@ -77,7 +77,7 @@ References mo\-Rand\-Impr\-Select$<$ M $>$::init\_\-fit, mo\-Rand\-Impr\-Select$ \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-Rand\-Impr\-Select}$<$ 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. +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. @@ -96,7 +96,7 @@ Definition at line 56 of file mo\-Rand\-Impr\-Select.h. References mo\-Rand\-Impr\-Select$<$ M $>$::init\_\-fit, mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves.\index{moRandImprSelect@{mo\-Rand\-Impr\-Select}!operator()@{operator()}} \index{operator()@{operator()}!moRandImprSelect@{mo\-Rand\-Impr\-Select}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-Rand\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_5ee57f77a450c0a9ce50bfccf3ad2a55} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-Rand\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline]}}\label{classmo_rand_impr_select_5ee57f77a450c0a9ce50bfccf3ad2a55} The move selection. @@ -115,11 +115,9 @@ One the saved move is randomly chosen. \end{Desc} -Implements {\bf eo\-BF$<$ M \&, M::EOType::Fitness \&, void $>$}. - Definition at line 77 of file mo\-Rand\-Impr\-Select.h. -References eo\-Rng::random(), mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves. +References mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves. The documentation for this class was generated from the following file:\begin{CompactItemize} \item diff --git a/trunk/paradiseo-mo/docs/latex/classmo_rand_move.tex b/trunk/paradiseo-mo/docs/latex/classmo_rand_move.tex index a35b6919a..ff3370a8d 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_rand_move.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_rand_move.tex @@ -5,12 +5,6 @@ Random move generator. {\tt \#include $<$mo\-Rand\-Move.h$>$} -Inheritance diagram for mo\-Rand\-Move$<$ M $>$::\begin{figure}[H] -\begin{center} -\leavevmode -\includegraphics[height=3cm]{classmo_rand_move} -\end{center} -\end{figure} \subsection{Detailed Description} diff --git a/trunk/paradiseo-mo/docs/latex/classmo_s_a.eps b/trunk/paradiseo-mo/docs/latex/classmo_s_a.eps index efa0100f9..90945c761 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_s_a.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_s_a.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 271.739 +%%BoundingBox: 0 0 500 268.456 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,13 +19,13 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.8625 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 +/rows 2 def +/cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,10 +175,6 @@ 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 @@ -190,32 +186,12 @@ 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 + (moSA< M >) 0 0 box + (moAlgo< M::EOType >) 0 1 box % ----- relations ----- solid -0 0.5 0 out +0 0 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 +1 0 1 in diff --git a/trunk/paradiseo-mo/docs/latex/classmo_s_a.tex b/trunk/paradiseo-mo/docs/latex/classmo_s_a.tex index 1a0bc79f2..4d26fe051 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_s_a.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_s_a.tex @@ -8,13 +8,13 @@ Simulated Annealing (SA). Inheritance diagram for mo\-SA$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=5cm]{classmo_s_a} +\includegraphics[height=2cm]{classmo_s_a} \end{center} \end{figure} \subsection*{Public Member Functions} \begin{CompactItemize} \item -{\bf mo\-SA} ({\bf mo\-Rand\-Move}$<$ M $>$ \&\_\-\_\-move\_\-rand, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, double \_\-\_\-init\_\-temp, {\bf mo\-Cooling\-Schedule} \&\_\-\_\-cool\_\-sched, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +{\bf mo\-SA} ({\bf mo\-Rand\-Move}$<$ M $>$ \&\_\-\_\-move\_\-rand, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, double \_\-\_\-init\_\-temp, {\bf mo\-Cooling\-Schedule} \&\_\-\_\-cool\_\-sched, eo\-Eval\-Func$<$ {\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} @@ -45,7 +45,7 @@ double {\bf init\_\-temp}\label{classmo_s_a_f1af7636b52aa5f6b381f8187b667bd4} {\bf mo\-Cooling\-Schedule} \& {\bf cool\_\-sched}\label{classmo_s_a_11c7d0cab649b7d680dd85bb74cb4ff6} \begin{CompactList}\small\item\em The cooling schedule. \item\end{CompactList}\item -{\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_s_a_bcd6a940046f23dd741444c0b85edf2c} +eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_s_a_bcd6a940046f23dd741444c0b85edf2c} \begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize} @@ -64,7 +64,7 @@ Definition at line 32 of file mo\-SA.h. \subsection{Constructor \& Destructor Documentation} \index{moSA@{mo\-SA}!moSA@{moSA}} \index{moSA@{moSA}!moSA@{mo\-SA}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-SA}$<$ M $>$::{\bf mo\-SA} ({\bf mo\-Rand\-Move}$<$ M $>$ \& {\em \_\-\_\-move\_\-rand}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, double {\em \_\-\_\-init\_\-temp}, {\bf mo\-Cooling\-Schedule} \& {\em \_\-\_\-cool\_\-sched}, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_s_a_01f6a44483e5a7abbce33eb480b6a9b9} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-SA}$<$ M $>$::{\bf mo\-SA} ({\bf mo\-Rand\-Move}$<$ M $>$ \& {\em \_\-\_\-move\_\-rand}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, double {\em \_\-\_\-init\_\-temp}, {\bf mo\-Cooling\-Schedule} \& {\em \_\-\_\-cool\_\-sched}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_s_a_01f6a44483e5a7abbce33eb480b6a9b9} SA constructor. @@ -83,7 +83,7 @@ Definition at line 60 of file mo\-SA.h. \subsection{Member Function Documentation} \index{moSA@{mo\-SA}!operator()@{operator()}} \index{operator()@{operator()}!moSA@{mo\-SA}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-SA}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_s_a_0e4c54b57bc13fcbd4763883b8f719e5} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-SA}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_s_a_0e4c54b57bc13fcbd4763883b8f719e5} function that launches the SA algorithm. @@ -99,11 +99,9 @@ As a \doxyref{mo\-TS}{p.}{classmo_t_s} or a \doxyref{mo\-HC}{p.}{classmo_h_c}, t \item[Returns:]TRUE. \end{Desc} -Implements {\bf eo\-UF$<$ M::EOType \&, bool $>$}. - Definition at line 82 of file mo\-SA.h. -References mo\-SA$<$ M $>$::cont, mo\-SA$<$ M $>$::cool\_\-sched, mo\-SA$<$ M $>$::full\_\-eval, mo\-SA$<$ M $>$::incr\_\-eval, mo\-SA$<$ M $>$::init\_\-temp, mo\-SA$<$ M $>$::move\_\-rand, and eo\-Rng::uniform(). +References mo\-SA$<$ M $>$::cont, mo\-SA$<$ M $>$::cool\_\-sched, mo\-SA$<$ M $>$::full\_\-eval, mo\-SA$<$ M $>$::incr\_\-eval, mo\-SA$<$ M $>$::init\_\-temp, and mo\-SA$<$ M $>$::move\_\-rand. The documentation for this class was generated from the following file:\begin{CompactItemize} \item diff --git a/trunk/paradiseo-mo/docs/latex/classmo_simple_move_tabu_list.eps b/trunk/paradiseo-mo/docs/latex/classmo_simple_move_tabu_list.eps index b0dcef476..624cb75de 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_simple_move_tabu_list.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_simple_move_tabu_list.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 427.807 +%%BoundingBox: 0 0 500 213.904 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.16875 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.3375 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ boxfont setfont 1 boundaspect scale (moSimpleMoveTabuList< M >) cw (moTabuList< M >) cw -(eoBF< A1, A2, R >) cw -(eoFunctorBase) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moSimpleMoveTabuList< M >) 0 0 box (moTabuList< M >) 0 1 box - (eoBF< A1, A2, R >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_simple_move_tabu_list.tex b/trunk/paradiseo-mo/docs/latex/classmo_simple_move_tabu_list.tex index 36c5924ed..abd3cfe0d 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_simple_move_tabu_list.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_simple_move_tabu_list.tex @@ -8,7 +8,7 @@ Class describing a move tabu list with a limited memory. Inheritance diagram for mo\-Simple\-Move\-Tabu\-List$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_simple_move_tabu_list} +\includegraphics[height=2cm]{classmo_simple_move_tabu_list} \end{center} \end{figure} \subsection*{Public Types} @@ -24,7 +24,7 @@ typedef M::EOType {\bf EOT}\label{classmo_simple_move_tabu_list_91286ff3ba6b1e9e \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 +\begin{CompactList}\small\item\em 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} () @@ -65,7 +65,7 @@ Definition at line 22 of file mo\-Simple\-Move\-Tabu\-List.h. \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-Simple\-Move\-Tabu\-List}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_simple_move_tabu_list_bb7fe9da28617f56734af71c42c8265a} -{\bf Function} that indicates if, in a given state, the \_\-move is tabu or not. +Function that indicates if, in a given state, the \_\-move is tabu or not. \begin{Desc} \item[Parameters:] diff --git a/trunk/paradiseo-mo/docs/latex/classmo_simple_solution_tabu_list.eps b/trunk/paradiseo-mo/docs/latex/classmo_simple_solution_tabu_list.eps index 06f8e8fc5..e46012fd0 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_simple_solution_tabu_list.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_simple_solution_tabu_list.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 400 +%%BoundingBox: 0 0 500 200 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.25 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.5 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,8 +175,6 @@ boxfont setfont 1 boundaspect scale (moSimpleSolutionTabuList< M >) cw (moTabuList< M >) cw -(eoBF< A1, A2, R >) cw -(eoFunctorBase) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def /yspacing boxheight disty add def @@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale (moSimpleSolutionTabuList< M >) 0 0 box (moTabuList< M >) 0 1 box - (eoBF< A1, A2, R >) 0 2 box - (eoFunctorBase) 0 3 box % ----- relations ----- @@ -199,11 +195,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_simple_solution_tabu_list.tex b/trunk/paradiseo-mo/docs/latex/classmo_simple_solution_tabu_list.tex index 37404764d..8673c77fb 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_simple_solution_tabu_list.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_simple_solution_tabu_list.tex @@ -8,7 +8,7 @@ Class describing a solution tabu list with limited length. Inheritance diagram for mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_simple_solution_tabu_list} +\includegraphics[height=2cm]{classmo_simple_solution_tabu_list} \end{center} \end{figure} \subsection*{Public Types} @@ -23,7 +23,7 @@ typedef M::EOType {\bf EOT}\label{classmo_simple_solution_tabu_list_881060871a6b {\bf mo\-Simple\-Solution\-Tabu\-List} (unsigned \_\-\_\-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 +\begin{CompactList}\small\item\em 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} () @@ -83,7 +83,7 @@ References mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::current\-Size. \subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-Simple\-Solution\-Tabu\-List}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_simple_solution_tabu_list_e1f1cf258b55554d8be88fb5780a0047} -{\bf Function} that indicates if, in a given state, the \_\-move is tabu or not. +Function that indicates if, in a given state, the \_\-move is tabu or not. \begin{Desc} \item[Parameters:] diff --git a/trunk/paradiseo-mo/docs/latex/classmo_sol_continue.eps b/trunk/paradiseo-mo/docs/latex/classmo_sol_continue.eps index c2a7fb9ca..08a227b1a 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_sol_continue.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_sol_continue.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 441.989 +%%BoundingBox: 0 0 500 227.273 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.13125 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 2.2 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 +/rows 2 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -174,8 +174,6 @@ boxfont setfont 1 boundaspect scale (moSolContinue< EOT >) cw -(eoUF< const EOT &, bool >) cw -(eoFunctorBase) cw (moGenSolContinue< EOT >) cw /boxwidth boxwidth marginwidth 2 mul add def /xspacing boxwidth distx add def @@ -189,20 +187,10 @@ boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (moSolContinue< EOT >) 0 1 box - (eoUF< const EOT &, bool >) 0 2 box - (eoFunctorBase) 0 3 box (moGenSolContinue< 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_sol_continue.tex b/trunk/paradiseo-mo/docs/latex/classmo_sol_continue.tex index 457ef3ba7..9039a615f 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_sol_continue.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_sol_continue.tex @@ -8,7 +8,7 @@ Class that describes a stop criterion for a solution-based heuristic. Inheritance diagram for mo\-Sol\-Continue$<$ EOT $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_sol_continue} +\includegraphics[height=2cm]{classmo_sol_continue} \end{center} \end{figure} \subsection*{Public Member Functions} @@ -23,7 +23,7 @@ virtual void {\bf init} ()=0 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 eo\-UF}). +It allows to add an initialisation procedure to an object that is a unary function (eo\-UF). diff --git a/trunk/paradiseo-mo/docs/latex/classmo_t_s.eps b/trunk/paradiseo-mo/docs/latex/classmo_t_s.eps index a62652ad5..7f23b6aef 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_t_s.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_t_s.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 271.739 +%%BoundingBox: 0 0 500 268.456 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,13 +19,13 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.8625 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 +/rows 2 def +/cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,10 +175,6 @@ 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 @@ -190,32 +186,12 @@ 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 + (moTS< M >) 0 0 box + (moAlgo< M::EOType >) 0 1 box % ----- relations ----- solid -0 0.5 0 out +0 0 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 +1 0 1 in diff --git a/trunk/paradiseo-mo/docs/latex/classmo_t_s.tex b/trunk/paradiseo-mo/docs/latex/classmo_t_s.tex index b0e7000d8..8cf3ec796 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_t_s.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_t_s.tex @@ -8,18 +8,18 @@ Tabu Search (TS). Inheritance diagram for mo\-TS$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=5cm]{classmo_t_s} +\includegraphics[height=2cm]{classmo_t_s} \end{center} \end{figure} \subsection*{Public Member Functions} \begin{CompactItemize} \item -{\bf mo\-TS} ({\bf mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Tabu\-List}$<$ M $>$ \&\_\-\_\-tabu\_\-list, {\bf mo\-Aspir\-Crit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +{\bf mo\-TS} ({\bf mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Tabu\-List}$<$ M $>$ \&\_\-\_\-tabu\_\-list, {\bf mo\-Aspir\-Crit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, eo\-Eval\-Func$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) \begin{CompactList}\small\item\em Constructor of a \doxyref{mo\-TS}{p.}{classmo_t_s} specifying all the boxes. \item\end{CompactList}\item -{\bf mo\-TS} ({\bf mo\-Move\-Expl}$<$ M $>$ \&\_\-\_\-move\_\-expl, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +{\bf mo\-TS} ({\bf mo\-Move\-Expl}$<$ M $>$ \&\_\-\_\-move\_\-expl, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, eo\-Eval\-Func$<$ {\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} +\begin{CompactList}\small\item\em Function which launchs the Tabu Search. \item\end{CompactList}\end{CompactItemize} \subsection*{Private Types} \begin{CompactItemize} \item @@ -38,7 +38,7 @@ typedef EOT::Fitness {\bf Fitness}\label{classmo_t_s_aa0eefbb17111422e495d1255f8 {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\bf cont}\label{classmo_t_s_969371cd2202f3d29cbb426f57ac7d3a} \begin{CompactList}\small\item\em Stop criterion. \item\end{CompactList}\item -{\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_t_s_fb67eddae5d0bfca4ed881995523231e} +eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_t_s_fb67eddae5d0bfca4ed881995523231e} \begin{CompactList}\small\item\em Full evaluation function. \item\end{CompactList}\end{CompactItemize} \subsection*{Static Private Attributes} @@ -66,7 +66,7 @@ Definition at line 30 of file mo\-TS.h. \subsection{Constructor \& Destructor Documentation} \index{moTS@{mo\-TS}!moTS@{moTS}} \index{moTS@{moTS}!moTS@{mo\-TS}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-TS}$<$ M $>$::{\bf mo\-TS} ({\bf mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Tabu\-List}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, {\bf mo\-Aspir\-Crit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_2be23f4524733ee6f37b71310d76407e} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-TS}$<$ M $>$::{\bf mo\-TS} ({\bf mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Tabu\-List}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, {\bf mo\-Aspir\-Crit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_2be23f4524733ee6f37b71310d76407e} Constructor of a \doxyref{mo\-TS}{p.}{classmo_t_s} specifying all the boxes. @@ -84,7 +84,7 @@ Definition at line 59 of file mo\-TS.h. References mo\-TS$<$ M $>$::first\_\-time, and mo\-TS$<$ M $>$::mutex.\index{moTS@{mo\-TS}!moTS@{moTS}} \index{moTS@{moTS}!moTS@{mo\-TS}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-TS}$<$ M $>$::{\bf mo\-TS} ({\bf mo\-Move\-Expl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, {\bf eo\-Eval\-Func}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_508e675c4232cf2ca06dded931c90bab} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-TS}$<$ M $>$::{\bf mo\-TS} ({\bf mo\-Move\-Expl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_508e675c4232cf2ca06dded931c90bab} Constructor with less parameters. @@ -105,10 +105,10 @@ References mo\-TS$<$ M $>$::first\_\-time, and mo\-TS$<$ M $>$::mutex. \subsection{Member Function Documentation} \index{moTS@{mo\-TS}!operator()@{operator()}} \index{operator()@{operator()}!moTS@{mo\-TS}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-TS}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_t_s_94d25a76fe1bc9ef0bbd0358ff55aceb} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-TS}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_94d25a76fe1bc9ef0bbd0358ff55aceb} -{\bf Function} which launchs the Tabu Search. +Function which launchs the Tabu Search. Algorithm of the tabu search. As a \doxyref{mo\-SA}{p.}{classmo_s_a} or a \doxyref{mo\-HC}{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. @@ -121,8 +121,6 @@ Algorithm of the tabu search. As a \doxyref{mo\-SA}{p.}{classmo_s_a} or a \doxyr \item[Returns:]TRUE. \end{Desc} -Implements {\bf eo\-UF$<$ M::EOType \&, bool $>$}. - Definition at line 104 of file mo\-TS.h. References mo\-TS$<$ M $>$::cont, mo\-TS$<$ M $>$::full\_\-eval, mo\-TS$<$ M $>$::move\_\-expl, and mo\-TS$<$ M $>$::mutex. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_t_s_move_loop_expl.eps b/trunk/paradiseo-mo/docs/latex/classmo_t_s_move_loop_expl.eps index fd31fc02a..d8324527a 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_t_s_move_loop_expl.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_t_s_move_loop_expl.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 327.869 +%%BoundingBox: 0 0 500 352.941 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.41667 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 +/rows 3 def /cols 1 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -176,8 +176,6 @@ boxfont setfont (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 @@ -192,8 +190,6 @@ boundx scalefactor div boundy scalefactor div scale (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 ----- @@ -205,11 +201,3 @@ 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_t_s_move_loop_expl.tex b/trunk/paradiseo-mo/docs/latex/classmo_t_s_move_loop_expl.tex index 40aeadccd..5f7327560 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_t_s_move_loop_expl.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_t_s_move_loop_expl.tex @@ -8,7 +8,7 @@ Explorer for a Tabu Search algorithm. Inheritance diagram for mo\-TSMove\-Loop\-Expl$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=5cm]{classmo_t_s_move_loop_expl} +\includegraphics[height=3cm]{classmo_t_s_move_loop_expl} \end{center} \end{figure} \subsection*{Public Member Functions} @@ -83,7 +83,7 @@ References mo\-TSMove\-Loop\-Expl$<$ M $>$::aspir\_\-crit, and mo\-TSMove\-Loop\ \subsection{Member Function Documentation} \index{moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}!operator()@{operator()}} \index{operator()@{operator()}!moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}} -\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-TSMove\-Loop\-Expl}$<$ 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} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-TSMove\-Loop\-Expl}$<$ M $>$::operator() (const {\bf EOT} \& {\em \_\-\_\-old\_\-sol}, {\bf EOT} \& {\em \_\-\_\-new\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_move_loop_expl_f601bbd0ccc41d6fbe3df9fcd87ad9e7} Procedure which lauches the exploration. @@ -97,8 +97,6 @@ The exploration continues while the chosen move is not in the tabu list or the a \end{Desc} -Implements {\bf eo\-BF$<$ const M::EOType \&, M::EOType \&, void $>$}. - Definition at line 69 of file mo\-TSMove\-Loop\-Expl.h. References mo\-TSMove\-Loop\-Expl$<$ M $>$::aspir\_\-crit, mo\-TSMove\-Loop\-Expl$<$ M $>$::incr\_\-eval, mo\-TSMove\-Loop\-Expl$<$ M $>$::move\_\-init, mo\-TSMove\-Loop\-Expl$<$ M $>$::move\_\-select, mo\-TSMove\-Loop\-Expl$<$ M $>$::next\_\-move, and mo\-TSMove\-Loop\-Expl$<$ M $>$::tabu\_\-list. diff --git a/trunk/paradiseo-mo/docs/latex/classmo_tabu_list.eps b/trunk/paradiseo-mo/docs/latex/classmo_tabu_list.eps index 43c125a8a..63ca07c99 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_tabu_list.eps +++ b/trunk/paradiseo-mo/docs/latex/classmo_tabu_list.eps @@ -5,7 +5,7 @@ %%For: %Magnification: 1.00 %%Orientation: Portrait -%%BoundingBox: 0 0 500 200 +%%BoundingBox: 0 0 500 100 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 2.5 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 5 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 +/rows 2 def /cols 2 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -174,8 +174,6 @@ boxfont setfont 1 boundaspect scale (moTabuList< M >) cw -(eoBF< A1, A2, R >) cw -(eoFunctorBase) cw (moSimpleMoveTabuList< M >) cw (moSimpleSolutionTabuList< M >) cw /boxwidth boxwidth marginwidth 2 mul add def @@ -190,21 +188,11 @@ boundx scalefactor div boundy scalefactor div scale % ----- classes ----- (moTabuList< M >) 0.5 1 box - (eoBF< A1, A2, R >) 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 diff --git a/trunk/paradiseo-mo/docs/latex/classmo_tabu_list.tex b/trunk/paradiseo-mo/docs/latex/classmo_tabu_list.tex index f7ba606a0..e0ec56b3b 100644 --- a/trunk/paradiseo-mo/docs/latex/classmo_tabu_list.tex +++ b/trunk/paradiseo-mo/docs/latex/classmo_tabu_list.tex @@ -8,7 +8,7 @@ Class describing a tabu list that a \doxyref{mo\-TS}{p.}{classmo_t_s} uses. Inheritance diagram for mo\-Tabu\-List$<$ M $>$::\begin{figure}[H] \begin{center} \leavevmode -\includegraphics[height=4cm]{classmo_tabu_list} +\includegraphics[height=2cm]{classmo_tabu_list} \end{center} \end{figure} \subsection*{Public Types} diff --git a/trunk/paradiseo-mo/docs/latex/doxygen.sty b/trunk/paradiseo-mo/docs/latex/doxygen.sty index 6fe24b0b7..ff5c57468 100644 --- a/trunk/paradiseo-mo/docs/latex/doxygen.sty +++ b/trunk/paradiseo-mo/docs/latex/doxygen.sty @@ -10,8 +10,8 @@ {\fancyplain{}{\bfseries\rightmark}} \rhead[\fancyplain{}{\bfseries\leftmark}] {\fancyplain{}{\bfseries\thepage}} -\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by Doxygen }]{} -\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Apr 20 11:23:37 2007 for PARADISEO-MO by Doxygen }} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Apr 20 11:31:38 2007 for PARADISEO-MO by Doxygen }} \cfoot{} \newenvironment{Code} {\footnotesize} diff --git a/trunk/paradiseo-mo/docs/latex/hierarchy.tex b/trunk/paradiseo-mo/docs/latex/hierarchy.tex index ae3028808..c8f8136cd 100644 --- a/trunk/paradiseo-mo/docs/latex/hierarchy.tex +++ b/trunk/paradiseo-mo/docs/latex/hierarchy.tex @@ -1,27 +1,25 @@ \section{PARADISEO-MO Class Hierarchy} This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList} \item \contentsline{section}{Empty\-Selection}{\pageref{class_empty_selection}}{} -\item eo\-Functor\-Base{\tt [external]}\begin{CompactList} -\item eo\-BF$<$ A1, A2, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Algo$<$ EOT $>$}{\pageref{classmo_algo}}{} +\item \contentsline{section}{mo\-Algo$<$ M::EOType $>$}{\pageref{classmo_algo}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-HC$<$ M $>$}{\pageref{classmo_h_c}}{} +\item \contentsline{section}{mo\-SA$<$ M $>$}{\pageref{classmo_s_a}}{} +\item \contentsline{section}{mo\-TS$<$ M $>$}{\pageref{classmo_t_s}}{} +\end{CompactList} \item \contentsline{section}{mo\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_aspir_crit}}{} \begin{CompactList} \item \contentsline{section}{mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_impr_best_fit_aspir_crit}}{} \item \contentsline{section}{mo\-No\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_no_aspir_crit}}{} \end{CompactList} +\item \contentsline{section}{mo\-Cooling\-Schedule}{\pageref{classmo_cooling_schedule}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Exponential\-Cooling\-Schedule}{\pageref{classmo_exponential_cooling_schedule}}{} +\item \contentsline{section}{mo\-Linear\-Cooling\-Schedule}{\pageref{classmo_linear_cooling_schedule}}{} +\end{CompactList} \item \contentsline{section}{mo\-LSCheck\-Point$<$ M $>$}{\pageref{classmo_l_s_check_point}}{} -\item \contentsline{section}{mo\-Move\-Incr\-Eval$<$ M $>$}{\pageref{classmo_move_incr_eval}}{} -\item \contentsline{section}{mo\-Move\-Init$<$ M $>$}{\pageref{classmo_move_init}}{} -\item \contentsline{section}{mo\-Next\-Move$<$ M $>$}{\pageref{classmo_next_move}}{} -\begin{CompactList} -\item \contentsline{section}{mo\-It\-Rand\-Next\-Move$<$ M $>$}{\pageref{classmo_it_rand_next_move}}{} -\end{CompactList} -\item \contentsline{section}{mo\-Tabu\-List$<$ M $>$}{\pageref{classmo_tabu_list}}{} -\begin{CompactList} -\item \contentsline{section}{mo\-Simple\-Move\-Tabu\-List$<$ M $>$}{\pageref{classmo_simple_move_tabu_list}}{} -\item \contentsline{section}{mo\-Simple\-Solution\-Tabu\-List$<$ M $>$}{\pageref{classmo_simple_solution_tabu_list}}{} -\end{CompactList} -\end{CompactList} -\item eo\-BF$<$ const M::EOType \&, M::EOType \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Move$<$ EOT $>$}{\pageref{classmo_move}}{} \item \contentsline{section}{mo\-Move\-Expl$<$ M $>$}{\pageref{classmo_move_expl}}{} \begin{CompactList} \item \contentsline{section}{mo\-Move\-Loop\-Expl$<$ M $>$}{\pageref{classmo_move_loop_expl}}{} @@ -30,50 +28,26 @@ This inheritance list is sorted roughly, but not completely, alphabetically:\beg \item \contentsline{section}{mo\-TSMove\-Loop\-Expl$<$ M $>$}{\pageref{classmo_t_s_move_loop_expl}}{} \end{CompactList} \end{CompactList} -\end{CompactList} -\item eo\-BF$<$ M \&, M::EOType::Fitness \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Move\-Incr\-Eval$<$ M $>$}{\pageref{classmo_move_incr_eval}}{} +\item \contentsline{section}{mo\-Move\-Init$<$ M $>$}{\pageref{classmo_move_init}}{} \item \contentsline{section}{mo\-Move\-Select$<$ M $>$}{\pageref{classmo_move_select}}{} \begin{CompactList} \item \contentsline{section}{mo\-Best\-Impr\-Select$<$ M $>$}{\pageref{classmo_best_impr_select}}{} \item \contentsline{section}{mo\-First\-Impr\-Select$<$ M $>$}{\pageref{classmo_first_impr_select}}{} \item \contentsline{section}{mo\-Rand\-Impr\-Select$<$ M $>$}{\pageref{classmo_rand_impr_select}}{} \end{CompactList} +\item \contentsline{section}{mo\-Next\-Move$<$ M $>$}{\pageref{classmo_next_move}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-It\-Rand\-Next\-Move$<$ M $>$}{\pageref{classmo_it_rand_next_move}}{} \end{CompactList} -\item eo\-UF$<$ const EOT \&, bool $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Rand\-Move$<$ M $>$}{\pageref{classmo_rand_move}}{} \item \contentsline{section}{mo\-Sol\-Continue$<$ EOT $>$}{\pageref{classmo_sol_continue}}{} \begin{CompactList} \item \contentsline{section}{mo\-Gen\-Sol\-Continue$<$ EOT $>$}{\pageref{classmo_gen_sol_continue}}{} \end{CompactList} -\end{CompactList} -\item eo\-UF$<$ double \&, bool $>${\tt [external]}\begin{CompactList} -\item \contentsline{section}{mo\-Cooling\-Schedule}{\pageref{classmo_cooling_schedule}}{} +\item \contentsline{section}{mo\-Tabu\-List$<$ M $>$}{\pageref{classmo_tabu_list}}{} \begin{CompactList} -\item \contentsline{section}{mo\-Exponential\-Cooling\-Schedule}{\pageref{classmo_exponential_cooling_schedule}}{} -\item \contentsline{section}{mo\-Linear\-Cooling\-Schedule}{\pageref{classmo_linear_cooling_schedule}}{} +\item \contentsline{section}{mo\-Simple\-Move\-Tabu\-List$<$ M $>$}{\pageref{classmo_simple_move_tabu_list}}{} +\item \contentsline{section}{mo\-Simple\-Solution\-Tabu\-List$<$ M $>$}{\pageref{classmo_simple_solution_tabu_list}}{} \end{CompactList} \end{CompactList} -\item eo\-UF$<$ EOT \&, bool $>${\tt [external]}\begin{CompactList} -\item eo\-Mon\-Op$<$ EOT $>${\tt [external]}\begin{CompactList} -\item \contentsline{section}{mo\-Algo$<$ EOT $>$}{\pageref{classmo_algo}}{} -\end{CompactList} -\end{CompactList} -\item eo\-UF$<$ EOT \&, void $>${\tt [external]}\begin{CompactList} -\item \contentsline{section}{mo\-Move$<$ EOT $>$}{\pageref{classmo_move}}{} -\end{CompactList} -\item eo\-UF$<$ EOType \&, bool $>${\tt [external]}\item eo\-UF$<$ M \&, void $>${\tt [external]}\begin{CompactList} -\item \contentsline{section}{mo\-Rand\-Move$<$ M $>$}{\pageref{classmo_rand_move}}{} -\end{CompactList} -\item eo\-UF$<$ M::EOType \&, bool $>${\tt [external]}\begin{CompactList} -\item eo\-Mon\-Op$<$ M::EOType $>${\tt [external]}\begin{CompactList} -\item \contentsline{section}{mo\-Algo$<$ M::EOType $>$}{\pageref{classmo_algo}}{} -\begin{CompactList} -\item \contentsline{section}{mo\-HC$<$ M $>$}{\pageref{classmo_h_c}}{} -\item \contentsline{section}{mo\-SA$<$ M $>$}{\pageref{classmo_s_a}}{} -\item \contentsline{section}{mo\-TS$<$ M $>$}{\pageref{classmo_t_s}}{} -\end{CompactList} -\end{CompactList} -\end{CompactList} -\end{CompactList} -\item eo\-Op$<$ EOType $>${\tt [external]}\begin{CompactList} -\item eo\-Mon\-Op$<$ EOT $>${\tt [external]}\item eo\-Mon\-Op$<$ M::EOType $>${\tt [external]}\end{CompactList} -\end{CompactList} diff --git a/trunk/paradiseo-mo/docs/latex/main.tex b/trunk/paradiseo-mo/docs/latex/main.tex index 8dba03e9c..3ce1b6114 100644 --- a/trunk/paradiseo-mo/docs/latex/main.tex +++ b/trunk/paradiseo-mo/docs/latex/main.tex @@ -1,5 +1,5 @@ -\section{intro}\label{main_intro} -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{tutorial}\label{main_tutorial} -\section{install}\label{main_install} -The installation procedure of the package is detailed in the {\tt README} file in the top-directory of the source-tree.\section{design}\label{main_design} +\section{Introduction}\label{main_intro} +MO is an extension of the ANSI-C++ compliant evolutionary computation library EO. \par + It contains classes for almost any kind of one solution based heuristics.\section{Tutorial}\label{main_tutorial} +\section{Installation}\label{main_install} +The installation procedure of the package is detailed in the {\tt README} file in the top-directory of the source-tree.\section{Overall Design}\label{main_design} diff --git a/trunk/paradiseo-mo/docs/latex/refman.tex b/trunk/paradiseo-mo/docs/latex/refman.tex index db4985d43..3b8312cb5 100644 --- a/trunk/paradiseo-mo/docs/latex/refman.tex +++ b/trunk/paradiseo-mo/docs/latex/refman.tex @@ -19,7 +19,7 @@ \vspace*{1cm} {\large Generated by Doxygen 1.5.1}\\ \vspace*{0.5cm} -{\small Fri Apr 20 11:23:37 2007}\\ +{\small Fri Apr 20 11:31:38 2007}\\ \end{center} \end{titlepage} \clearemptydoublepage diff --git a/trunk/paradiseo-mo/docs/man/man3/moAlgo.3 b/trunk/paradiseo-mo/docs/man/man3/moAlgo.3 index 27a2463a3..7e89a1fd2 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moAlgo.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moAlgo.3 @@ -10,8 +10,6 @@ moAlgo \- Description of an algorithm of the paradiseo-mo library. .PP \fC#include \fP .PP -Inherits \fBeoMonOp< EOT >\fP. -.PP .SH "Detailed Description" .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moAspirCrit.3 b/trunk/paradiseo-mo/docs/man/man3/moAspirCrit.3 index 5d57129d0..74019a118 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moAspirCrit.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moAspirCrit.3 @@ -10,8 +10,6 @@ moAspirCrit \- Description of the conditions in which a tabu move could be accep .PP \fC#include \fP .PP -Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType::Fitness &, bool >\fP. -.PP Inherited by \fBmoImprBestFitAspirCrit< M >\fP, and \fBmoNoAspirCrit< M >\fP. .PP .SS "Public Member Functions" diff --git a/trunk/paradiseo-mo/docs/man/man3/moBestImprSelect.3 b/trunk/paradiseo-mo/docs/man/man3/moBestImprSelect.3 index 757e4df99..842f1fb4a 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moBestImprSelect.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moBestImprSelect.3 @@ -30,7 +30,7 @@ Inherits \fBmoMoveSelect< M >< M >\fP. .ti -1c .RI "bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)" .br -.RI "\fI\fBFunction\fP that indicates if the current move has not improved the fitness. \fP" +.RI "\fIFunction that indicates if the current move has not improved the fitness. \fP" .ti -1c .RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" .br @@ -65,7 +65,7 @@ Definition at line 22 of file moBestImprSelect.h. .PP .SS "template bool \fBmoBestImprSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" .PP -\fBFunction\fP that indicates if the current move has not improved the fitness. +Function that indicates if the current move has not improved the fitness. .PP If the given fitness enables an improvment, the move (\fBmoMove\fP) and the fitness linked to this move are saved. .PP @@ -88,7 +88,7 @@ Implements \fBmoMoveSelect< M >\fP. Definition at line 47 of file moBestImprSelect.h. .PP References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. -.SS "template void \fBmoBestImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline, virtual]\fP" +.SS "template void \fBmoBestImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline]\fP" .PP Procedure which saved the best move and fitness. .PP @@ -105,8 +105,6 @@ Procedure which saved the best move and fitness. .RE .PP -.PP -Implements \fBeoBF< M &, M::EOType::Fitness &, void >\fP. .PP Definition at line 68 of file moBestImprSelect.h. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moCoolingSchedule.3 b/trunk/paradiseo-mo/docs/man/man3/moCoolingSchedule.3 index 1b1fc4979..1bf43cf3b 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moCoolingSchedule.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moCoolingSchedule.3 @@ -10,8 +10,6 @@ moCoolingSchedule \- This class gives the description of a cooling schedule. .PP \fC#include \fP .PP -Inherits \fBeoUF< double &, bool >\fP. -.PP Inherited by \fBmoExponentialCoolingSchedule\fP, and \fBmoLinearCoolingSchedule\fP. .PP .SH "Detailed Description" diff --git a/trunk/paradiseo-mo/docs/man/man3/moExponentialCoolingSchedule.3 b/trunk/paradiseo-mo/docs/man/man3/moExponentialCoolingSchedule.3 index 1d1e59755..c524b8535 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moExponentialCoolingSchedule.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moExponentialCoolingSchedule.3 @@ -22,7 +22,7 @@ Inherits \fBmoCoolingSchedule\fP. .ti -1c .RI "bool \fBoperator()\fP (double &__temp)" .br -.RI "\fI\fBFunction\fP which proceeds to the cooling. \fP" +.RI "\fIFunction which proceeds to the cooling. \fP" .in -1c .SS "Private Attributes" @@ -61,9 +61,9 @@ Simple constructor. Definition at line 31 of file moExponentialCoolingSchedule.h. .SH "Member Function Documentation" .PP -.SS "bool moExponentialCoolingSchedule::operator() (double & __temp)\fC [inline, virtual]\fP" +.SS "bool moExponentialCoolingSchedule::operator() (double & __temp)\fC [inline]\fP" .PP -\fBFunction\fP which proceeds to the cooling. +Function which proceeds to the cooling. .PP It decreases the temperature and indicates if it is greater than the threshold. .PP @@ -78,8 +78,6 @@ if the new temperature (current temperature * ratio) is greater than the thresho .RE .PP -.PP -Implements \fBeoUF< double &, bool >\fP. .PP Definition at line 41 of file moExponentialCoolingSchedule.h. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moFirstImprSelect.3 b/trunk/paradiseo-mo/docs/man/man3/moFirstImprSelect.3 index 967b96845..6fca3f9f4 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moFirstImprSelect.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moFirstImprSelect.3 @@ -30,7 +30,7 @@ Inherits \fBmoMoveSelect< M >< M >\fP. .ti -1c .RI "bool \fBupdate\fP (const M &__move, const typename M::EOType::Fitness &__fit)" .br -.RI "\fI\fBFunction\fP that indicates if the current move has not improved the fitness. \fP" +.RI "\fIFunction that indicates if the current move has not improved the fitness. \fP" .ti -1c .RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" .br @@ -80,7 +80,7 @@ Definition at line 35 of file moFirstImprSelect.h. References moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. .SS "template bool \fBmoFirstImprSelect\fP< M >::update (const M & __move, const typename M::EOType::Fitness & __fit)\fC [inline]\fP" .PP -\fBFunction\fP that indicates if the current move has not improved the fitness. +Function that indicates if the current move has not improved the fitness. .PP If the given fitness enables an improvment, the move (\fBmoMove\fP) should be applied to the current solution. .PP @@ -101,7 +101,7 @@ TRUE if the move does not improve the fitness. Definition at line 52 of file moFirstImprSelect.h. .PP References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. -.SS "template void \fBmoFirstImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline, virtual]\fP" +.SS "template void \fBmoFirstImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline]\fP" .PP Procedure which saved the best move and fitness. .PP @@ -118,8 +118,6 @@ Procedure which saved the best move and fitness. .RE .PP -.PP -Implements \fBeoBF< M &, M::EOType::Fitness &, void >\fP. .PP Definition at line 76 of file moFirstImprSelect.h. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moGenSolContinue.3 b/trunk/paradiseo-mo/docs/man/man3/moGenSolContinue.3 index b480a41bb..786d04281 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moGenSolContinue.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moGenSolContinue.3 @@ -22,7 +22,7 @@ Inherits \fBmoSolContinue< EOT >< EOT >\fP. .ti -1c .RI "bool \fBoperator()\fP (const EOT &__sol)" .br -.RI "\fI\fBFunction\fP that activates the stop criterion. \fP" +.RI "\fIFunction that activates the stop criterion. \fP" .ti -1c .RI "void \fBinit\fP ()" .br @@ -65,9 +65,9 @@ Simple constructor. Definition at line 30 of file moGenSolContinue.h. .SH "Member Function Documentation" .PP -.SS "template bool \fBmoGenSolContinue\fP< EOT >::operator() (const EOT & __sol)\fC [inline, virtual]\fP" +.SS "template bool \fBmoGenSolContinue\fP< EOT >::operator() (const EOT & __sol)\fC [inline]\fP" .PP -\fBFunction\fP that activates the stop criterion. +Function that activates the stop criterion. .PP Increments the counter and returns TRUE if the current number of iteration is lower than the given maximum number of iterations. .PP @@ -82,13 +82,11 @@ TRUE or FALSE according to the current generation number. .RE .PP -.PP -Implements \fBeoUF< const EOT &, bool >\fP. .PP Definition at line 44 of file moGenSolContinue.h. .PP References moGenSolContinue< EOT >::maxNumGen, and moGenSolContinue< EOT >::numGen. -.SS "template void \fBmoGenSolContinue\fP< EOT >::init (void)\fC [inline, virtual]\fP" +.SS "template void \fBmoGenSolContinue\fP< EOT >::init ()\fC [inline, virtual]\fP" .PP Procedure which allows to initialise the generation counter. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moHC.3 b/trunk/paradiseo-mo/docs/man/man3/moHC.3 index ec77ebb48..1b2d9f1f3 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moHC.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moHC.3 @@ -16,17 +16,17 @@ Inherits \fBmoAlgo< M::EOType >\fP. .in +1c .ti -1c -.RI "\fBmoHC\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoMoveSelect\fP< M > &__move_select, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.RI "\fBmoHC\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoMoveSelect\fP< M > &__move_select, eoEvalFunc< \fBEOT\fP > &__full_eval)" .br .RI "\fIFull constructor. \fP" .ti -1c -.RI "\fBmoHC\fP (\fBmoMoveExpl\fP< M > &__move_expl, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.RI "\fBmoHC\fP (\fBmoMoveExpl\fP< M > &__move_expl, eoEvalFunc< \fBEOT\fP > &__full_eval)" .br .RI "\fILight constructor. \fP" .ti -1c .RI "bool \fBoperator()\fP (\fBEOT\fP &__sol)" .br -.RI "\fI\fBFunction\fP which launches the HC. \fP" +.RI "\fIFunction which launches the HC. \fP" .in -1c .SS "Private Types" @@ -48,7 +48,7 @@ Inherits \fBmoAlgo< M::EOType >\fP. .br .RI "\fIComplete exploration of the neighborhood. \fP" .ti -1c -.RI "\fBeoEvalFunc\fP< \fBEOT\fP > & \fBfull_eval\fP" +.RI "eoEvalFunc< \fBEOT\fP > & \fBfull_eval\fP" .br .RI "\fIA full evaluation function. \fP" .in -1c @@ -63,7 +63,7 @@ Class which describes the algorithm for a hill climbing. Definition at line 26 of file moHC.h. .SH "Constructor & Destructor Documentation" .PP -.SS "template \fBmoHC\fP< M >::\fBmoHC\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoMoveSelect\fP< M > & __move_select, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.SS "template \fBmoHC\fP< M >::\fBmoHC\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoMoveSelect\fP< M > & __move_select, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" .PP Full constructor. .PP @@ -85,7 +85,7 @@ All the boxes are given in order the HC to use a \fBmoHCMoveLoopExpl\fP. .PP Definition at line 53 of file moHC.h. -.SS "template \fBmoHC\fP< M >::\fBmoHC\fP (\fBmoMoveExpl\fP< M > & __move_expl, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.SS "template \fBmoHC\fP< M >::\fBmoHC\fP (\fBmoMoveExpl\fP< M > & __move_expl, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" .PP Light constructor. .PP @@ -103,9 +103,9 @@ This constructor allow to use another \fBmoMoveExpl\fP (generally not a \fBmoHCM Definition at line 67 of file moHC.h. .SH "Member Function Documentation" .PP -.SS "template bool \fBmoHC\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline, virtual]\fP" +.SS "template bool \fBmoHC\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline]\fP" .PP -\fBFunction\fP which launches the HC. +Function which launches the HC. .PP The HC has to improve a current solution. As the \fBmoSA\fP and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm. .PP @@ -120,8 +120,6 @@ TRUE. .RE .PP -.PP -Implements \fBeoUF< M::EOType &, bool >\fP. .PP Definition at line 82 of file moHC.h. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moHCMoveLoopExpl.3 b/trunk/paradiseo-mo/docs/man/man3/moHCMoveLoopExpl.3 index 3ab4f5643..56c8f19f5 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moHCMoveLoopExpl.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moHCMoveLoopExpl.3 @@ -87,7 +87,7 @@ All the boxes have to be specified. Definition at line 43 of file moHCMoveLoopExpl.h. .SH "Member Function Documentation" .PP -.SS "template void \fBmoHCMoveLoopExpl\fP< M >::operator() (const \fBEOT\fP & __old_sol, \fBEOT\fP & __new_sol)\fC [inline, virtual]\fP" +.SS "template void \fBmoHCMoveLoopExpl\fP< M >::operator() (const \fBEOT\fP & __old_sol, \fBEOT\fP & __new_sol)\fC [inline]\fP" .PP Procedure which launches the explorer. .PP @@ -101,8 +101,6 @@ The exploration starts from an old solution and provides a new solution. .RE .PP -.PP -Implements \fBeoBF< const M::EOType &, M::EOType &, void >\fP. .PP Definition at line 59 of file moHCMoveLoopExpl.h. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moImprBestFitAspirCrit.3 b/trunk/paradiseo-mo/docs/man/man3/moImprBestFitAspirCrit.3 index cd482e932..3f4fea70a 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moImprBestFitAspirCrit.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moImprBestFitAspirCrit.3 @@ -34,7 +34,7 @@ Inherits \fBmoAspirCrit< M >< M >\fP. .ti -1c .RI "bool \fBoperator()\fP (const M &__move, const \fBFitness\fP &__fit)" .br -.RI "\fI\fBFunction\fP that indicates if the fit is better that the already saved fit. \fP" +.RI "\fIFunction that indicates if the fit is better that the already saved fit. \fP" .in -1c .SS "Private Attributes" @@ -61,7 +61,7 @@ Definition at line 22 of file moImprBestFitAspirCrit.h. .PP .SS "template bool \fBmoImprBestFitAspirCrit\fP< M >::operator() (const M & __move, const \fBFitness\fP & __fit)\fC [inline]\fP" .PP -\fBFunction\fP that indicates if the fit is better that the already saved fit. +Function that indicates if the fit is better that the already saved fit. .PP The first time, the function only saved the current move and fitness. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moItRandNextMove.3 b/trunk/paradiseo-mo/docs/man/man3/moItRandNextMove.3 index ec2d24444..133fa7fd4 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moItRandNextMove.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moItRandNextMove.3 @@ -63,7 +63,7 @@ Definition at line 22 of file moItRandNextMove.h. .PP The constructor. .PP -\fBParameters\fP only for initialising the attributes. +Parameters only for initialising the attributes. .PP \fBParameters:\fP .RS 4 diff --git a/trunk/paradiseo-mo/docs/man/man3/moLSCheckPoint.3 b/trunk/paradiseo-mo/docs/man/man3/moLSCheckPoint.3 index 23a8c5681..8ec4207e6 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moLSCheckPoint.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moLSCheckPoint.3 @@ -10,17 +10,15 @@ moLSCheckPoint \- Class which allows a checkpointing system. .PP \fC#include \fP .PP -Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType &, void >\fP. -.PP .SS "Public Member Functions" .in +1c .ti -1c .RI "void \fBoperator()\fP (const M &__move, const typename M::EOType &__sol)" .br -.RI "\fI\fBFunction\fP which launches the checkpointing. \fP" +.RI "\fIFunction which launches the checkpointing. \fP" .ti -1c -.RI "void \fBadd\fP (\fBeoBF\fP< const M &, const typename M::EOType &, void > &__f)" +.RI "void \fBadd\fP (eoBF< const M &, const typename M::EOType &, void > &__f)" .br .RI "\fIProcedure which add a new function to the function vector. \fP" .in -1c @@ -28,7 +26,7 @@ Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType &, void >\fP. .in +1c .ti -1c -.RI "std::vector< \fBeoBF\fP< const M &, const typename M::EOType &, void > * > \fBfunc\fP" +.RI "std::vector< eoBF< const M &, const typename M::EOType &, void > * > \fBfunc\fP" .br .RI "\fIvector of function \fP" .in -1c @@ -45,7 +43,7 @@ Definition at line 21 of file moLSCheckPoint.h. .PP .SS "template void \fBmoLSCheckPoint\fP< M >::operator() (const M & __move, const typename M::EOType & __sol)\fC [inline]\fP" .PP -\fBFunction\fP which launches the checkpointing. +Function which launches the checkpointing. .PP Each saved function is used on the current move and the current solution. .PP @@ -61,7 +59,7 @@ Each saved function is used on the current move and the current solution. Definition at line 34 of file moLSCheckPoint.h. .PP References moLSCheckPoint< M >::func. -.SS "template void \fBmoLSCheckPoint\fP< M >::add (\fBeoBF\fP< const M &, const typename M::EOType &, void > & __f)\fC [inline]\fP" +.SS "template void \fBmoLSCheckPoint\fP< M >::add (eoBF< const M &, const typename M::EOType &, void > & __f)\fC [inline]\fP" .PP Procedure which add a new function to the function vector. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moLinearCoolingSchedule.3 b/trunk/paradiseo-mo/docs/man/man3/moLinearCoolingSchedule.3 index e38303b65..ae2920054 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moLinearCoolingSchedule.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moLinearCoolingSchedule.3 @@ -22,7 +22,7 @@ Inherits \fBmoCoolingSchedule\fP. .ti -1c .RI "bool \fBoperator()\fP (double &__temp)" .br -.RI "\fI\fBFunction\fP which proceeds to the cooling. \fP" +.RI "\fIFunction which proceeds to the cooling. \fP" .in -1c .SS "Private Attributes" @@ -61,9 +61,9 @@ Simple constructor. Definition at line 31 of file moLinearCoolingSchedule.h. .SH "Member Function Documentation" .PP -.SS "bool moLinearCoolingSchedule::operator() (double & __temp)\fC [inline, virtual]\fP" +.SS "bool moLinearCoolingSchedule::operator() (double & __temp)\fC [inline]\fP" .PP -\fBFunction\fP which proceeds to the cooling. +Function which proceeds to the cooling. .PP It decreases the temperature and indicates if it is greater than the threshold. .PP @@ -78,8 +78,6 @@ if the new temperature (current temperature - quantity) is greater than the thre .RE .PP -.PP -Implements \fBeoUF< double &, bool >\fP. .PP Definition at line 41 of file moLinearCoolingSchedule.h. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moMove.3 b/trunk/paradiseo-mo/docs/man/man3/moMove.3 index 970566676..9f9063dd8 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moMove.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moMove.3 @@ -10,8 +10,6 @@ moMove \- Definition of a move. .PP \fC#include \fP .PP -Inherits \fBeoUF< EOT &, void >\fP. -.PP .SS "Public Types" .in +1c diff --git a/trunk/paradiseo-mo/docs/man/man3/moMoveExpl.3 b/trunk/paradiseo-mo/docs/man/man3/moMoveExpl.3 index 2660b9cb7..3668a0604 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moMoveExpl.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moMoveExpl.3 @@ -10,8 +10,6 @@ moMoveExpl \- Description of a move (\fBmoMove\fP) explorer. .PP \fC#include \fP .PP -Inherits \fBeoBF< const M::EOType &, M::EOType &, void >\fP. -.PP Inherited by \fBmoMoveLoopExpl< M >\fP. .PP .SH "Detailed Description" diff --git a/trunk/paradiseo-mo/docs/man/man3/moMoveIncrEval.3 b/trunk/paradiseo-mo/docs/man/man3/moMoveIncrEval.3 index 82e8328c6..fafafeee6 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moMoveIncrEval.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moMoveIncrEval.3 @@ -10,8 +10,6 @@ moMoveIncrEval \- (generally) Efficient evaluation function based a move and a s .PP \fC#include \fP .PP -Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType &, M::EOType::Fitness >\fP. -.PP .SH "Detailed Description" .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moMoveInit.3 b/trunk/paradiseo-mo/docs/man/man3/moMoveInit.3 index b261b9942..161d0e343 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moMoveInit.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moMoveInit.3 @@ -10,8 +10,6 @@ moMoveInit \- Move (\fBmoMove\fP) initializer. .PP \fC#include \fP .PP -Inherits \fBeoBF< A1, A2, R >< const M &, M::EOType &, void >\fP. -.PP .SH "Detailed Description" .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moMoveSelect.3 b/trunk/paradiseo-mo/docs/man/man3/moMoveSelect.3 index c49c7525c..1a198bcb8 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moMoveSelect.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moMoveSelect.3 @@ -10,8 +10,6 @@ moMoveSelect \- Class that describes a move selector (\fBmoMove\fP). .PP \fC#include \fP .PP -Inherits \fBeoBF< M &, M::EOType::Fitness &, void >\fP. -.PP Inherited by \fBmoBestImprSelect< M >\fP, \fBmoFirstImprSelect< M >\fP, and \fBmoRandImprSelect< M >\fP. .PP .SS "Public Types" @@ -32,7 +30,7 @@ Inherited by \fBmoBestImprSelect< M >\fP, \fBmoFirstImprSelect< M >\fP, and \fBm .ti -1c .RI "virtual bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)=0" .br -.RI "\fI\fBFunction\fP which updates the best solutions. \fP" +.RI "\fIFunction which updates the best solutions. \fP" .in -1c .SH "Detailed Description" .PP @@ -61,7 +59,7 @@ In order to know the fitness of the solution, for which the neighborhood will be Implemented in \fBmoBestImprSelect< M >\fP, \fBmoFirstImprSelect< M >\fP, and \fBmoRandImprSelect< M >\fP. .SS "template virtual bool \fBmoMoveSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [pure virtual]\fP" .PP -\fBFunction\fP which updates the best solutions. +Function which updates the best solutions. .PP \fBParameters:\fP .RS 4 diff --git a/trunk/paradiseo-mo/docs/man/man3/moNextMove.3 b/trunk/paradiseo-mo/docs/man/man3/moNextMove.3 index 949c2b840..a04045827 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moNextMove.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moNextMove.3 @@ -10,8 +10,6 @@ moNextMove \- Class which allows to generate a new move (\fBmoMove\fP). .PP \fC#include \fP .PP -Inherits \fBeoBF< A1, A2, R >< const M &, M::EOType &, bool >\fP. -.PP Inherited by \fBmoItRandNextMove< M >\fP. .PP .SH "Detailed Description" diff --git a/trunk/paradiseo-mo/docs/man/man3/moNoAspirCrit.3 b/trunk/paradiseo-mo/docs/man/man3/moNoAspirCrit.3 index ce4fd890f..c60bc6d05 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moNoAspirCrit.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moNoAspirCrit.3 @@ -18,7 +18,7 @@ Inherits \fBmoAspirCrit< M >< M >\fP. .ti -1c .RI "bool \fBoperator()\fP (const M &__move, const typename M::EOType::Fitness &__sol)" .br -.RI "\fI\fBFunction\fP which describes the aspiration criterion behaviour. \fP" +.RI "\fIFunction which describes the aspiration criterion behaviour. \fP" .ti -1c .RI "void \fBinit\fP ()" .br @@ -37,7 +37,7 @@ Definition at line 21 of file moNoAspirCrit.h. .PP .SS "template bool \fBmoNoAspirCrit\fP< M >::operator() (const M & __move, const typename M::EOType::Fitness & __sol)\fC [inline, private]\fP" .PP -\fBFunction\fP which describes the aspiration criterion behaviour. +Function which describes the aspiration criterion behaviour. .PP Does nothing. .PP @@ -56,7 +56,7 @@ FALSE. .PP Definition at line 32 of file moNoAspirCrit.h. -.SS "template void \fBmoNoAspirCrit\fP< M >::init (void)\fC [inline, private, virtual]\fP" +.SS "template void \fBmoNoAspirCrit\fP< M >::init ()\fC [inline, private, virtual]\fP" .PP Procedure which initialises all that needs a \fBmoNoAspirCrit\fP. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moRandImprSelect.3 b/trunk/paradiseo-mo/docs/man/man3/moRandImprSelect.3 index 83d93578f..ee81960de 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moRandImprSelect.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moRandImprSelect.3 @@ -30,7 +30,7 @@ Inherits \fBmoMoveSelect< M >< M >\fP. .ti -1c .RI "bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)" .br -.RI "\fI\fBFunction\fP that updates the fitness and move vectors. \fP" +.RI "\fIFunction that updates the fitness and move vectors. \fP" .ti -1c .RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" .br @@ -83,7 +83,7 @@ Definition at line 40 of file moRandImprSelect.h. References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. .SS "template bool \fBmoRandImprSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" .PP -\fBFunction\fP that updates the fitness and move vectors. +Function that updates the fitness and move vectors. .PP if a move give a better fitness than the initial fitness, it is saved and the fitness too. .PP @@ -106,7 +106,7 @@ Implements \fBmoMoveSelect< M >\fP. Definition at line 56 of file moRandImprSelect.h. .PP References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. -.SS "template void \fBmoRandImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline, virtual]\fP" +.SS "template void \fBmoRandImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline]\fP" .PP The move selection. .PP @@ -125,12 +125,10 @@ One the saved move is randomly chosen. .RE .PP -.PP -Implements \fBeoBF< M &, M::EOType::Fitness &, void >\fP. .PP Definition at line 77 of file moRandImprSelect.h. .PP -References eoRng::random(), moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +References moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. .SH "Author" .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moRandMove.3 b/trunk/paradiseo-mo/docs/man/man3/moRandMove.3 index 5dd8ff7c7..563513de7 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moRandMove.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moRandMove.3 @@ -10,8 +10,6 @@ moRandMove \- Random move generator. .PP \fC#include \fP .PP -Inherits \fBeoUF< M &, void >\fP. -.PP .SH "Detailed Description" .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moSA.3 b/trunk/paradiseo-mo/docs/man/man3/moSA.3 index 5dcdcce28..f2fef504c 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moSA.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moSA.3 @@ -16,7 +16,7 @@ Inherits \fBmoAlgo< M::EOType >\fP. .in +1c .ti -1c -.RI "\fBmoSA\fP (\fBmoRandMove\fP< M > &__move_rand, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, double __init_temp, \fBmoCoolingSchedule\fP &__cool_sched, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.RI "\fBmoSA\fP (\fBmoRandMove\fP< M > &__move_rand, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, double __init_temp, \fBmoCoolingSchedule\fP &__cool_sched, eoEvalFunc< \fBEOT\fP > &__full_eval)" .br .RI "\fISA constructor. \fP" .ti -1c @@ -60,7 +60,7 @@ Inherits \fBmoAlgo< M::EOType >\fP. .br .RI "\fIThe cooling schedule. \fP" .ti -1c -.RI "\fBeoEvalFunc\fP< \fBEOT\fP > & \fBfull_eval\fP" +.RI "eoEvalFunc< \fBEOT\fP > & \fBfull_eval\fP" .br .RI "\fIA full evaluation function. \fP" .in -1c @@ -75,7 +75,7 @@ Class that describes a Simulated Annealing algorithm. Definition at line 32 of file moSA.h. .SH "Constructor & Destructor Documentation" .PP -.SS "template \fBmoSA\fP< M >::\fBmoSA\fP (\fBmoRandMove\fP< M > & __move_rand, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, double __init_temp, \fBmoCoolingSchedule\fP & __cool_sched, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.SS "template \fBmoSA\fP< M >::\fBmoSA\fP (\fBmoRandMove\fP< M > & __move_rand, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, double __init_temp, \fBmoCoolingSchedule\fP & __cool_sched, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" .PP SA constructor. .PP @@ -101,7 +101,7 @@ All the boxes used by a SA need to be given. Definition at line 60 of file moSA.h. .SH "Member Function Documentation" .PP -.SS "template bool \fBmoSA\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline, virtual]\fP" +.SS "template bool \fBmoSA\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline]\fP" .PP function that launches the SA algorithm. .PP @@ -118,12 +118,10 @@ TRUE. .RE .PP -.PP -Implements \fBeoUF< M::EOType &, bool >\fP. .PP Definition at line 82 of file moSA.h. .PP -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(). +References moSA< M >::cont, moSA< M >::cool_sched, moSA< M >::full_eval, moSA< M >::incr_eval, moSA< M >::init_temp, and moSA< M >::move_rand. .SH "Author" .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moSimpleMoveTabuList.3 b/trunk/paradiseo-mo/docs/man/man3/moSimpleMoveTabuList.3 index dc65b1219..b6d38e1be 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moSimpleMoveTabuList.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moSimpleMoveTabuList.3 @@ -30,7 +30,7 @@ Inherits \fBmoTabuList< M >< M >\fP. .ti -1c .RI "bool \fBoperator()\fP (const M &__move, const \fBEOT\fP &__sol)" .br -.RI "\fI\fBFunction\fP that indicates if, in a given state, the _move is tabu or not. \fP" +.RI "\fIFunction that indicates if, in a given state, the _move is tabu or not. \fP" .ti -1c .RI "void \fBadd\fP (const M &__move, const \fBEOT\fP &__sol)" .br @@ -79,7 +79,7 @@ Definition at line 22 of file moSimpleMoveTabuList.h. .PP .SS "template bool \fBmoSimpleMoveTabuList\fP< M >::operator() (const M & __move, const \fBEOT\fP & __sol)\fC [inline]\fP" .PP -\fBFunction\fP that indicates if, in a given state, the _move is tabu or not. +Function that indicates if, in a given state, the _move is tabu or not. .PP \fBParameters:\fP .RS 4 diff --git a/trunk/paradiseo-mo/docs/man/man3/moSimpleSolutionTabuList.3 b/trunk/paradiseo-mo/docs/man/man3/moSimpleSolutionTabuList.3 index c14103c46..f5a44d33a 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moSimpleSolutionTabuList.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moSimpleSolutionTabuList.3 @@ -30,7 +30,7 @@ Inherits \fBmoTabuList< M >< M >\fP. .ti -1c .RI "bool \fBoperator()\fP (const M &__move, const \fBEOT\fP &__sol)" .br -.RI "\fI\fBFunction\fP that indicates if, in a given state, the _move is tabu or not. \fP" +.RI "\fIFunction that indicates if, in a given state, the _move is tabu or not. \fP" .ti -1c .RI "void \fBadd\fP (const M &__move, const \fBEOT\fP &__sol)" .br @@ -95,7 +95,7 @@ References moSimpleSolutionTabuList< M >::currentSize. .PP .SS "template bool \fBmoSimpleSolutionTabuList\fP< M >::operator() (const M & __move, const \fBEOT\fP & __sol)\fC [inline]\fP" .PP -\fBFunction\fP that indicates if, in a given state, the _move is tabu or not. +Function that indicates if, in a given state, the _move is tabu or not. .PP \fBParameters:\fP .RS 4 diff --git a/trunk/paradiseo-mo/docs/man/man3/moSolContinue.3 b/trunk/paradiseo-mo/docs/man/man3/moSolContinue.3 index 976689baa..2c41bbd8e 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moSolContinue.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moSolContinue.3 @@ -10,8 +10,6 @@ moSolContinue \- Class that describes a stop criterion for a solution-based heur .PP \fC#include \fP .PP -Inherits \fBeoUF< const EOT &, bool >\fP. -.PP Inherited by \fBmoGenSolContinue< EOT >\fP. .PP .SS "Public Member Functions" @@ -28,7 +26,7 @@ Inherited by \fBmoGenSolContinue< EOT >\fP. .SS "template 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 (\fBeoUF\fP). +It allows to add an initialisation procedure to an object that is a unary function (eoUF). .PP Definition at line 22 of file moSolContinue.h. .SH "Member Function Documentation" diff --git a/trunk/paradiseo-mo/docs/man/man3/moTS.3 b/trunk/paradiseo-mo/docs/man/man3/moTS.3 index 543def5e0..80125502d 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moTS.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moTS.3 @@ -16,17 +16,17 @@ Inherits \fBmoAlgo< M::EOType >\fP. .in +1c .ti -1c -.RI "\fBmoTS\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoTabuList\fP< M > &__tabu_list, \fBmoAspirCrit\fP< M > &__aspir_crit, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.RI "\fBmoTS\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoTabuList\fP< M > &__tabu_list, \fBmoAspirCrit\fP< M > &__aspir_crit, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, eoEvalFunc< \fBEOT\fP > &__full_eval)" .br .RI "\fIConstructor of a \fBmoTS\fP specifying all the boxes. \fP" .ti -1c -.RI "\fBmoTS\fP (\fBmoMoveExpl\fP< M > &__move_expl, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.RI "\fBmoTS\fP (\fBmoMoveExpl\fP< M > &__move_expl, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, eoEvalFunc< \fBEOT\fP > &__full_eval)" .br .RI "\fIConstructor with less parameters. \fP" .ti -1c .RI "bool \fBoperator()\fP (\fBEOT\fP &__sol)" .br -.RI "\fI\fBFunction\fP which launchs the Tabu Search. \fP" +.RI "\fIFunction which launchs the Tabu Search. \fP" .in -1c .SS "Private Types" @@ -52,7 +52,7 @@ Inherits \fBmoAlgo< M::EOType >\fP. .br .RI "\fIStop criterion. \fP" .ti -1c -.RI "\fBeoEvalFunc\fP< \fBEOT\fP > & \fBfull_eval\fP" +.RI "eoEvalFunc< \fBEOT\fP > & \fBfull_eval\fP" .br .RI "\fIFull evaluation function. \fP" .in -1c @@ -79,7 +79,7 @@ Generic algorithm that describes a tabu search. Definition at line 30 of file moTS.h. .SH "Constructor & Destructor Documentation" .PP -.SS "template \fBmoTS\fP< M >::\fBmoTS\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoTabuList\fP< M > & __tabu_list, \fBmoAspirCrit\fP< M > & __aspir_crit, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.SS "template \fBmoTS\fP< M >::\fBmoTS\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoTabuList\fP< M > & __tabu_list, \fBmoAspirCrit\fP< M > & __aspir_crit, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" .PP Constructor of a \fBmoTS\fP specifying all the boxes. .PP @@ -107,7 +107,7 @@ In this constructor, a \fBmoTSMoveLoopExpl\fP is instanciated. Definition at line 59 of file moTS.h. .PP References moTS< M >::first_time, and moTS< M >::mutex. -.SS "template \fBmoTS\fP< M >::\fBmoTS\fP (\fBmoMoveExpl\fP< M > & __move_expl, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.SS "template \fBmoTS\fP< M >::\fBmoTS\fP (\fBmoMoveExpl\fP< M > & __move_expl, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" .PP Constructor with less parameters. .PP @@ -129,9 +129,9 @@ Definition at line 81 of file moTS.h. References moTS< M >::first_time, and moTS< M >::mutex. .SH "Member Function Documentation" .PP -.SS "template bool \fBmoTS\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline, virtual]\fP" +.SS "template bool \fBmoTS\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline]\fP" .PP -\fBFunction\fP which launchs the Tabu Search. +Function which launchs the Tabu Search. .PP Algorithm of the tabu search. As a \fBmoSA\fP or a \fBmoHC\fP, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread_mutex_t) is closed during the algorithm. .PP @@ -146,8 +146,6 @@ TRUE. .RE .PP -.PP -Implements \fBeoUF< M::EOType &, bool >\fP. .PP Definition at line 104 of file moTS.h. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moTSMoveLoopExpl.3 b/trunk/paradiseo-mo/docs/man/man3/moTSMoveLoopExpl.3 index dd6cf6a76..38160d402 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moTSMoveLoopExpl.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moTSMoveLoopExpl.3 @@ -99,7 +99,7 @@ Definition at line 49 of file moTSMoveLoopExpl.h. References moTSMoveLoopExpl< M >::aspir_crit, and moTSMoveLoopExpl< M >::tabu_list. .SH "Member Function Documentation" .PP -.SS "template void \fBmoTSMoveLoopExpl\fP< M >::operator() (const \fBEOT\fP & __old_sol, \fBEOT\fP & __new_sol)\fC [inline, virtual]\fP" +.SS "template void \fBmoTSMoveLoopExpl\fP< M >::operator() (const \fBEOT\fP & __old_sol, \fBEOT\fP & __new_sol)\fC [inline]\fP" .PP Procedure which lauches the exploration. .PP @@ -113,8 +113,6 @@ The exploration continues while the chosen move is not in the tabu list or the a .RE .PP -.PP -Implements \fBeoBF< const M::EOType &, M::EOType &, void >\fP. .PP Definition at line 69 of file moTSMoveLoopExpl.h. .PP diff --git a/trunk/paradiseo-mo/docs/man/man3/moTabuList.3 b/trunk/paradiseo-mo/docs/man/man3/moTabuList.3 index 101d7dfcf..0b7493690 100644 --- a/trunk/paradiseo-mo/docs/man/man3/moTabuList.3 +++ b/trunk/paradiseo-mo/docs/man/man3/moTabuList.3 @@ -10,8 +10,6 @@ moTabuList \- Class describing a tabu list that a \fBmoTS\fP uses. .PP \fC#include \fP .PP -Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType &, bool >\fP. -.PP Inherited by \fBmoSimpleMoveTabuList< M >\fP, and \fBmoSimpleSolutionTabuList< M >\fP. .PP .SS "Public Types" diff --git a/trunk/paradiseo-mo/docs/mo.doxytag b/trunk/paradiseo-mo/docs/mo.doxytag index fc6510293..94c0a1a23 100644 --- a/trunk/paradiseo-mo/docs/mo.doxytag +++ b/trunk/paradiseo-mo/docs/mo.doxytag @@ -17,13 +17,11 @@ moAlgo classmo_algo.html EOT - eoMonOp< EOT > moAspirCrit classmo_aspir_crit.html M - eoBF virtual void init @@ -90,7 +88,6 @@ moCoolingSchedule classmo_cooling_schedule.html - eoUF< double &, bool > moExponentialCoolingSchedule @@ -478,7 +475,6 @@ moLSCheckPoint classmo_l_s_check_point.html M - eoBF void operator() @@ -505,7 +501,6 @@ moMove classmo_move.html EOT - eoUF< EOT &, void > EOT EOType @@ -518,19 +513,16 @@ moMoveExpl classmo_move_expl.html M - eoBF< const M::EOType &, M::EOType &, void > moMoveIncrEval classmo_move_incr_eval.html M - eoBF moMoveInit classmo_move_init.html M - eoBF moMoveLoopExpl @@ -542,7 +534,6 @@ moMoveSelect classmo_move_select.html M - eoBF< M &, M::EOType::Fitness &, void > M::EOType::Fitness Fitness @@ -569,7 +560,6 @@ moNextMove classmo_next_move.html M - eoBF moNoAspirCrit @@ -650,7 +640,6 @@ moRandMove classmo_rand_move.html M - eoUF< M &, void > moSA @@ -884,7 +873,6 @@ moSolContinue classmo_sol_continue.html EOT - eoUF< const EOT &, bool > virtual void init @@ -897,7 +885,6 @@ moTabuList classmo_tabu_list.html M - eoBF M::EOType EOT diff --git a/trunk/paradiseo-mo/tutorial/Lesson1/hill_climbing b/trunk/paradiseo-mo/tutorial/Lesson1/hill_climbing index eaf5980207b5e4afc43687782a2c552ce51f131f..c23dd60aa52a2ae8eb5d36379676a176b9900df6 100755 GIT binary patch literal 472239 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⁢a!3=ZTjp(vSL#=`k86 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

    >eM4y26oCeM6IER*IcQDM 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