From b6f56fa4e87ebd2851864236e232377a8bbfe5a1 Mon Sep 17 00:00:00 2001 From: atantar Date: Sun, 7 Jan 2007 22:36:33 +0000 Subject: [PATCH] git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@139 331e1502-861f-0410-8da2-ba01fb791d7f --- trunk/paradiseo-peo/docs/html/annotated.html | 62 +++ .../docs/html/classCommunicable-members.html | 48 ++ .../docs/html/classCommunicable.html | 100 +++++ .../docs/html/classCommunicable.png | Bin 0 -> 3267 bytes .../docs/html/classCommunicator-members.html | 46 ++ .../docs/html/classCommunicator.html | 59 +++ .../docs/html/classCommunicator.png | Bin 0 -> 472 bytes .../docs/html/classCooperative-members.html | 53 +++ .../docs/html/classCooperative.html | 70 +++ .../docs/html/classCooperative.png | Bin 0 -> 926 bytes .../html/classReactiveThread-members.html | 45 ++ .../docs/html/classReactiveThread.html | 67 +++ .../docs/html/classReactiveThread.png | Bin 0 -> 633 bytes .../docs/html/classRingTopology-members.html | 41 ++ .../docs/html/classRingTopology.html | 55 +++ .../docs/html/classRingTopology.png | Bin 0 -> 356 bytes .../docs/html/classRunner-members.html | 62 +++ .../paradiseo-peo/docs/html/classRunner.html | 85 ++++ trunk/paradiseo-peo/docs/html/classRunner.png | Bin 0 -> 649 bytes .../docs/html/classService-members.html | 62 +++ .../paradiseo-peo/docs/html/classService.html | 102 +++++ .../paradiseo-peo/docs/html/classService.png | Bin 0 -> 2032 bytes .../docs/html/classThread-members.html | 42 ++ .../paradiseo-peo/docs/html/classThread.html | 72 +++ trunk/paradiseo-peo/docs/html/classThread.png | Bin 0 -> 982 bytes .../docs/html/classTopology-members.html | 40 ++ .../docs/html/classTopology.html | 62 +++ .../paradiseo-peo/docs/html/classTopology.png | Bin 0 -> 359 bytes .../docs/html/classWorker-members.html | 68 +++ .../paradiseo-peo/docs/html/classWorker.html | 94 ++++ trunk/paradiseo-peo/docs/html/classWorker.png | Bin 0 -> 624 bytes trunk/paradiseo-peo/docs/html/classes.html | 48 ++ .../docs/html/classpeoAggEvalFunc.html | 67 +++ .../docs/html/classpeoAggEvalFunc.png | Bin 0 -> 611 bytes .../html/classpeoAsyncIslandMig-members.html | 67 +++ .../docs/html/classpeoAsyncIslandMig.html | 300 +++++++++++++ .../docs/html/classpeoAsyncIslandMig.png | Bin 0 -> 637 bytes .../docs/html/classpeoEA-members.html | 69 +++ trunk/paradiseo-peo/docs/html/classpeoEA.html | 236 ++++++++++ trunk/paradiseo-peo/docs/html/classpeoEA.png | Bin 0 -> 637 bytes .../html/classpeoNoAggEvalFunc-members.html | 38 ++ .../docs/html/classpeoNoAggEvalFunc.html | 66 +++ .../docs/html/classpeoNoAggEvalFunc.png | Bin 0 -> 601 bytes .../html/classpeoParaPopEval-members.html | 73 ++++ .../docs/html/classpeoParaPopEval.html | 411 +++++++++++++++++ .../docs/html/classpeoParaPopEval.png | Bin 0 -> 772 bytes .../classpeoParaSGATransform-members.html | 71 +++ .../docs/html/classpeoParaSGATransform.html | 112 +++++ .../docs/html/classpeoParaSGATransform.png | Bin 0 -> 850 bytes .../docs/html/classpeoPopEval-members.html | 61 +++ .../docs/html/classpeoPopEval.html | 69 +++ .../docs/html/classpeoPopEval.png | Bin 0 -> 1211 bytes .../docs/html/classpeoSeqPopEval-members.html | 63 +++ .../docs/html/classpeoSeqPopEval.html | 142 ++++++ .../docs/html/classpeoSeqPopEval.png | Bin 0 -> 776 bytes .../html/classpeoSeqTransform-members.html | 63 +++ .../docs/html/classpeoSeqTransform.html | 160 +++++++ .../docs/html/classpeoSeqTransform.png | Bin 0 -> 791 bytes .../html/classpeoSyncIslandMig-members.html | 68 +++ .../docs/html/classpeoSyncIslandMig.html | 305 +++++++++++++ .../docs/html/classpeoSyncIslandMig.png | Bin 0 -> 636 bytes .../html/classpeoSyncMultiStart-members.html | 72 +++ .../docs/html/classpeoSyncMultiStart.html | 413 ++++++++++++++++++ .../docs/html/classpeoSyncMultiStart.png | Bin 0 -> 607 bytes .../docs/html/classpeoTransform-members.html | 60 +++ .../docs/html/classpeoTransform.html | 62 +++ .../docs/html/classpeoTransform.png | Bin 0 -> 1199 bytes .../docs/html/comm_8cpp-source.html | 111 +++++ .../docs/html/comm_8h-source.html | 75 ++++ .../docs/html/communicable_8cpp-source.html | 114 +++++ .../docs/html/communicable_8h-source.html | 91 ++++ .../docs/html/coop_8cpp-source.html | 86 ++++ .../docs/html/cooperative_8h-source.html | 85 ++++ .../docs/html/core_2runner_8cpp-source.html | 148 +++++++ .../docs/html/core_2service_8cpp-source.html | 102 +++++ trunk/paradiseo-peo/docs/html/doxygen.css | 358 +++++++++++++++ trunk/paradiseo-peo/docs/html/doxygen.png | Bin 0 -> 1281 bytes .../docs/html/eoPop__comm_8h-source.html | 76 ++++ .../docs/html/eoVector__comm_8h-source.html | 82 ++++ trunk/paradiseo-peo/docs/html/files.html | 98 +++++ trunk/paradiseo-peo/docs/html/ftv2blank.png | Bin 0 -> 174 bytes trunk/paradiseo-peo/docs/html/ftv2doc.png | Bin 0 -> 255 bytes .../docs/html/ftv2folderclosed.png | Bin 0 -> 259 bytes .../docs/html/ftv2folderopen.png | Bin 0 -> 261 bytes .../paradiseo-peo/docs/html/ftv2lastnode.png | Bin 0 -> 233 bytes trunk/paradiseo-peo/docs/html/ftv2link.png | Bin 0 -> 358 bytes .../paradiseo-peo/docs/html/ftv2mlastnode.png | Bin 0 -> 160 bytes trunk/paradiseo-peo/docs/html/ftv2mnode.png | Bin 0 -> 194 bytes trunk/paradiseo-peo/docs/html/ftv2node.png | Bin 0 -> 235 bytes .../paradiseo-peo/docs/html/ftv2plastnode.png | Bin 0 -> 165 bytes trunk/paradiseo-peo/docs/html/ftv2pnode.png | Bin 0 -> 200 bytes .../paradiseo-peo/docs/html/ftv2vertline.png | Bin 0 -> 229 bytes trunk/paradiseo-peo/docs/html/functions.html | 225 ++++++++++ .../docs/html/functions_func.html | 155 +++++++ .../docs/html/functions_vars.html | 154 +++++++ trunk/paradiseo-peo/docs/html/hierarchy.html | 84 ++++ trunk/paradiseo-peo/docs/html/index.html | 8 + trunk/paradiseo-peo/docs/html/installdox | 117 +++++ .../html/lesson1/html/doclsn_8h-source.html | 193 ++++++++ .../docs/html/lesson1/html/doxygen.css | 358 +++++++++++++++ .../docs/html/lesson1/html/doxygen.png | Bin 0 -> 1281 bytes .../docs/html/lesson1/html/files.html | 31 ++ .../docs/html/lesson1/html/ftv2blank.png | Bin 0 -> 174 bytes .../docs/html/lesson1/html/ftv2doc.png | Bin 0 -> 255 bytes .../html/lesson1/html/ftv2folderclosed.png | Bin 0 -> 259 bytes .../docs/html/lesson1/html/ftv2folderopen.png | Bin 0 -> 261 bytes .../docs/html/lesson1/html/ftv2lastnode.png | Bin 0 -> 233 bytes .../docs/html/lesson1/html/ftv2link.png | Bin 0 -> 358 bytes .../docs/html/lesson1/html/ftv2mlastnode.png | Bin 0 -> 160 bytes .../docs/html/lesson1/html/ftv2mnode.png | Bin 0 -> 194 bytes .../docs/html/lesson1/html/ftv2node.png | Bin 0 -> 235 bytes .../docs/html/lesson1/html/ftv2plastnode.png | Bin 0 -> 165 bytes .../docs/html/lesson1/html/ftv2pnode.png | Bin 0 -> 200 bytes .../docs/html/lesson1/html/ftv2vertline.png | Bin 0 -> 229 bytes .../docs/html/lesson1/html/index.html | 8 + .../docs/html/lesson1/html/installdox | 117 +++++ .../docs/html/lesson1/html/main.html | 157 +++++++ .../html/lesson1/html/main_8cpp-source.html | 121 +++++ .../docs/html/lesson1/html/peoEA.png | Bin 0 -> 37640 bytes .../docs/html/lesson1/html/search.idx | Bin 0 -> 274226 bytes .../docs/html/lesson1/html/search.php | 380 ++++++++++++++++ .../docs/html/lesson1/html/tab_b.gif | Bin 0 -> 35 bytes .../docs/html/lesson1/html/tab_l.gif | Bin 0 -> 706 bytes .../docs/html/lesson1/html/tab_r.gif | Bin 0 -> 2585 bytes .../docs/html/lesson1/html/tabs.css | 102 +++++ .../docs/html/lesson1/html/tree.html | 75 ++++ .../docs/html/lesson1/latex/FreeSans.ttf | Bin 0 -> 22932 bytes .../docs/html/lesson1/latex/Makefile | 17 + .../docs/html/lesson1/latex/doxygen.sty | 78 ++++ .../docs/html/lesson1/latex/main.tex | 101 +++++ .../docs/html/lesson1/latex/refman.tex | 49 +++ .../docs/html/lesson2/html/doxygen.css | 358 +++++++++++++++ .../docs/html/lesson2/html/doxygen.png | Bin 0 -> 1281 bytes .../docs/html/lesson2/html/files.html | 30 ++ .../docs/html/lesson2/html/ftv2blank.png | Bin 0 -> 174 bytes .../docs/html/lesson2/html/ftv2doc.png | Bin 0 -> 255 bytes .../html/lesson2/html/ftv2folderclosed.png | Bin 0 -> 259 bytes .../docs/html/lesson2/html/ftv2folderopen.png | Bin 0 -> 261 bytes .../docs/html/lesson2/html/ftv2lastnode.png | Bin 0 -> 233 bytes .../docs/html/lesson2/html/ftv2link.png | Bin 0 -> 358 bytes .../docs/html/lesson2/html/ftv2mlastnode.png | Bin 0 -> 160 bytes .../docs/html/lesson2/html/ftv2mnode.png | Bin 0 -> 194 bytes .../docs/html/lesson2/html/ftv2node.png | Bin 0 -> 235 bytes .../docs/html/lesson2/html/ftv2plastnode.png | Bin 0 -> 165 bytes .../docs/html/lesson2/html/ftv2pnode.png | Bin 0 -> 200 bytes .../docs/html/lesson2/html/ftv2vertline.png | Bin 0 -> 229 bytes .../docs/html/lesson2/html/index.html | 8 + .../docs/html/lesson2/html/installdox | 117 +++++ .../docs/html/lesson2/html/main.html | 29 ++ .../html/lesson2/html/main_8cpp-source.html | 198 +++++++++ .../docs/html/lesson2/html/search.idx | Bin 0 -> 265663 bytes .../docs/html/lesson2/html/search.php | 380 ++++++++++++++++ .../docs/html/lesson2/html/tab_b.gif | Bin 0 -> 35 bytes .../docs/html/lesson2/html/tab_l.gif | Bin 0 -> 706 bytes .../docs/html/lesson2/html/tab_r.gif | Bin 0 -> 2585 bytes .../docs/html/lesson2/html/tabs.css | 102 +++++ .../docs/html/lesson2/html/tree.html | 73 ++++ .../docs/html/lesson2/latex/FreeSans.ttf | Bin 0 -> 22932 bytes .../docs/html/lesson2/latex/Makefile | 17 + .../docs/html/lesson2/latex/doxygen.sty | 78 ++++ .../docs/html/lesson2/latex/refman.tex | 47 ++ .../docs/html/lsnshared/html/annotated.html | 51 +++ .../html/city__swap_8cpp-source.html | 64 +++ .../lsnshared/html/city__swap_8h-source.html | 67 +++ .../lsnshared/html/classCitySwap-members.html | 37 ++ .../html/lsnshared/html/classCitySwap.html | 54 +++ .../html/classDisplayBestRoute-members.html | 39 ++ .../lsnshared/html/classDisplayBestRoute.html | 56 +++ .../html/classEdgeXover-members.html | 43 ++ .../html/lsnshared/html/classEdgeXover.html | 74 ++++ .../html/classMergeRouteEval-members.html | 37 ++ .../lsnshared/html/classMergeRouteEval.html | 54 +++ .../lsnshared/html/classMergeRouteEval.png | Bin 0 -> 535 bytes .../html/classOrderXover-members.html | 38 ++ .../html/lsnshared/html/classOrderXover.html | 58 +++ .../html/classPartRouteEval-members.html | 40 ++ .../lsnshared/html/classPartRouteEval.html | 65 +++ .../html/classPartialMappedXover-members.html | 38 ++ .../html/classPartialMappedXover.html | 58 +++ .../html/classRouteEval-members.html | 37 ++ .../html/lsnshared/html/classRouteEval.html | 49 +++ .../html/classRouteInit-members.html | 37 ++ .../html/lsnshared/html/classRouteInit.html | 49 +++ .../lsnshared/html/classTwoOpt-members.html | 38 ++ .../docs/html/lsnshared/html/classTwoOpt.html | 54 +++ .../docs/html/lsnshared/html/classTwoOpt.png | Bin 0 -> 363 bytes .../html/classTwoOptIncrEval-members.html | 37 ++ .../lsnshared/html/classTwoOptIncrEval.html | 54 +++ .../lsnshared/html/classTwoOptIncrEval.png | Bin 0 -> 514 bytes .../html/classTwoOptInit-members.html | 37 ++ .../html/lsnshared/html/classTwoOptInit.html | 54 +++ .../html/lsnshared/html/classTwoOptInit.png | Bin 0 -> 440 bytes .../html/classTwoOptNext-members.html | 37 ++ .../html/lsnshared/html/classTwoOptNext.html | 54 +++ .../html/lsnshared/html/classTwoOptNext.png | Bin 0 -> 475 bytes .../html/classTwoOptRand-members.html | 37 ++ .../html/lsnshared/html/classTwoOptRand.html | 49 +++ .../docs/html/lsnshared/html/classes.html | 46 ++ .../html/lsnshared/html/data_8cpp-source.html | 141 ++++++ .../html/lsnshared/html/data_8h-source.html | 61 +++ .../lsnshared/html/display_8cpp-source.html | 160 +++++++ .../lsnshared/html/display_8h-source.html | 59 +++ .../display__best__route_8cpp-source.html | 65 +++ .../html/display__best__route_8h-source.html | 75 ++++ .../docs/html/lsnshared/html/doxygen.css | 358 +++++++++++++++ .../docs/html/lsnshared/html/doxygen.png | Bin 0 -> 1281 bytes .../html/edge__xover_8cpp-source.html | 161 +++++++ .../lsnshared/html/edge__xover_8h-source.html | 85 ++++ .../docs/html/lsnshared/html/files.html | 71 +++ .../docs/html/lsnshared/html/ftv2blank.png | Bin 0 -> 174 bytes .../docs/html/lsnshared/html/ftv2doc.png | Bin 0 -> 255 bytes .../html/lsnshared/html/ftv2folderclosed.png | Bin 0 -> 259 bytes .../html/lsnshared/html/ftv2folderopen.png | Bin 0 -> 261 bytes .../docs/html/lsnshared/html/ftv2lastnode.png | Bin 0 -> 233 bytes .../docs/html/lsnshared/html/ftv2link.png | Bin 0 -> 358 bytes .../html/lsnshared/html/ftv2mlastnode.png | Bin 0 -> 160 bytes .../docs/html/lsnshared/html/ftv2mnode.png | Bin 0 -> 194 bytes .../docs/html/lsnshared/html/ftv2node.png | Bin 0 -> 235 bytes .../html/lsnshared/html/ftv2plastnode.png | Bin 0 -> 165 bytes .../docs/html/lsnshared/html/ftv2pnode.png | Bin 0 -> 200 bytes .../docs/html/lsnshared/html/ftv2vertline.png | Bin 0 -> 229 bytes .../docs/html/lsnshared/html/functions.html | 59 +++ .../html/lsnshared/html/functions_func.html | 54 +++ .../html/lsnshared/html/functions_vars.html | 51 +++ .../docs/html/lsnshared/html/hierarchy.html | 66 +++ .../docs/html/lsnshared/html/index.html | 8 + .../docs/html/lsnshared/html/installdox | 117 +++++ .../docs/html/lsnshared/html/main.html | 30 ++ .../html/merge__route__eval_8cpp-source.html | 60 +++ .../html/merge__route__eval_8h-source.html | 67 +++ .../html/lsnshared/html/mix_8h-source.html | 53 +++ .../html/lsnshared/html/node_8cpp-source.html | 120 +++++ .../html/lsnshared/html/node_8h-source.html | 69 +++ .../html/opt__route_8cpp-source.html | 150 +++++++ .../lsnshared/html/opt__route_8h-source.html | 66 +++ .../html/order__xover_8cpp-source.html | 107 +++++ .../html/order__xover_8h-source.html | 70 +++ .../lsnshared/html/param_8cpp-source.html | 66 +++ .../html/lsnshared/html/param_8h-source.html | 57 +++ .../html/part__route__eval_8cpp-source.html | 73 ++++ .../html/part__route__eval_8h-source.html | 74 ++++ .../partial__mapped__xover_8cpp-source.html | 104 +++++ .../partial__mapped__xover_8h-source.html | 70 +++ .../lsnshared/html/route_8cpp-source.html | 64 +++ .../html/lsnshared/html/route_8h-source.html | 63 +++ .../html/route__eval_8cpp-source.html | 57 +++ .../lsnshared/html/route__eval_8h-source.html | 66 +++ .../html/route__init_8cpp-source.html | 66 +++ .../lsnshared/html/route__init_8h-source.html | 66 +++ .../docs/html/lsnshared/html/search.idx | Bin 0 -> 279653 bytes .../docs/html/lsnshared/html/search.php | 381 ++++++++++++++++ .../docs/html/lsnshared/html/tab_b.gif | Bin 0 -> 35 bytes .../docs/html/lsnshared/html/tab_l.gif | Bin 0 -> 706 bytes .../docs/html/lsnshared/html/tab_r.gif | Bin 0 -> 2585 bytes .../docs/html/lsnshared/html/tabs.css | 102 +++++ .../docs/html/lsnshared/html/tree.html | 163 +++++++ .../lsnshared/html/two__opt_8cpp-source.html | 63 +++ .../lsnshared/html/two__opt_8h-source.html | 68 +++ .../two__opt__incr__eval_8cpp-source.html | 67 +++ .../html/two__opt__incr__eval_8h-source.html | 66 +++ .../html/two__opt__init_8cpp-source.html | 57 +++ .../html/two__opt__init_8h-source.html | 68 +++ .../html/two__opt__next_8cpp-source.html | 70 +++ .../html/two__opt__next_8h-source.html | 67 +++ .../html/two__opt__rand_8cpp-source.html | 64 +++ .../html/two__opt__rand_8h-source.html | 67 +++ .../docs/html/lsnshared/latex/FreeSans.ttf | Bin 0 -> 22932 bytes .../docs/html/lsnshared/latex/Makefile | 17 + .../docs/html/lsnshared/latex/annotated.tex | 17 + .../html/lsnshared/latex/classCitySwap.tex | 30 ++ .../lsnshared/latex/classDisplayBestRoute.tex | 38 ++ .../html/lsnshared/latex/classEdgeXover.tex | 66 +++ .../lsnshared/latex/classMergeRouteEval.eps | 197 +++++++++ .../lsnshared/latex/classMergeRouteEval.pdf | 74 ++++ .../lsnshared/latex/classMergeRouteEval.tex | 31 ++ .../html/lsnshared/latex/classOrderXover.tex | 38 ++ .../lsnshared/latex/classPartRouteEval.tex | 48 ++ .../latex/classPartialMappedXover.tex | 38 ++ .../html/lsnshared/latex/classRouteEval.tex | 25 ++ .../html/lsnshared/latex/classRouteInit.tex | 25 ++ .../docs/html/lsnshared/latex/classTwoOpt.eps | 197 +++++++++ .../docs/html/lsnshared/latex/classTwoOpt.pdf | 72 +++ .../docs/html/lsnshared/latex/classTwoOpt.tex | 31 ++ .../lsnshared/latex/classTwoOptIncrEval.eps | 197 +++++++++ .../lsnshared/latex/classTwoOptIncrEval.pdf | 73 ++++ .../lsnshared/latex/classTwoOptIncrEval.tex | 31 ++ .../html/lsnshared/latex/classTwoOptInit.eps | 197 +++++++++ .../html/lsnshared/latex/classTwoOptInit.pdf | 73 ++++ .../html/lsnshared/latex/classTwoOptInit.tex | 31 ++ .../html/lsnshared/latex/classTwoOptNext.eps | 197 +++++++++ .../html/lsnshared/latex/classTwoOptNext.pdf | 73 ++++ .../html/lsnshared/latex/classTwoOptNext.tex | 31 ++ .../html/lsnshared/latex/classTwoOptRand.tex | 25 ++ .../docs/html/lsnshared/latex/doxygen.sty | 78 ++++ .../docs/html/lsnshared/latex/hierarchy.tex | 27 ++ .../docs/html/lsnshared/latex/refman.tex | 66 +++ .../docs/html/lsnshared/man/man3/CitySwap.3 | 28 ++ .../lsnshared/man/man3/DisplayBestRoute.3 | 32 ++ .../docs/html/lsnshared/man/man3/EdgeXover.3 | 54 +++ .../html/lsnshared/man/man3/MergeRouteEval.3 | 24 + .../docs/html/lsnshared/man/man3/OrderXover.3 | 35 ++ .../html/lsnshared/man/man3/PartRouteEval.3 | 42 ++ .../lsnshared/man/man3/PartialMappedXover.3 | 35 ++ .../docs/html/lsnshared/man/man3/RouteEval.3 | 22 + .../docs/html/lsnshared/man/man3/RouteInit.3 | 22 + .../docs/html/lsnshared/man/man3/TwoOpt.3 | 24 + .../html/lsnshared/man/man3/TwoOptIncrEval.3 | 24 + .../docs/html/lsnshared/man/man3/TwoOptInit.3 | 24 + .../docs/html/lsnshared/man/man3/TwoOptNext.3 | 24 + .../docs/html/lsnshared/man/man3/TwoOptRand.3 | 22 + trunk/paradiseo-peo/docs/html/main.html | 106 +++++ .../docs/html/mess_8cpp-source.html | 281 ++++++++++++ .../docs/html/mess_8h-source.html | 75 ++++ .../docs/html/messaging_8h-source.html | 148 +++++++ .../docs/html/namespacemembers.html | 51 +++ .../docs/html/namespacemembers_func.html | 49 +++ .../docs/html/namespacemembers_vars.html | 47 ++ .../paradiseo-peo/docs/html/namespacepeo.html | 65 +++ trunk/paradiseo-peo/docs/html/namespaces.html | 37 ++ .../docs/html/node_8cpp-source.html | 102 +++++ .../docs/html/node_8h-source.html | 68 +++ .../docs/html/paradiseo_8h-source.html | 85 ++++ .../docs/html/param_8cpp-source.html | 65 +++ .../docs/html/param_8h-source.html | 58 +++ .../docs/html/peoAggEvalFunc_8h-source.html | 64 +++ .../html/peoAsyncIslandMig_8h-source.html | 204 +++++++++ .../docs/html/peoEA_8h-source.html | 143 ++++++ .../docs/html/peoNoAggEvalFunc_8h-source.html | 73 ++++ .../docs/html/peoParaPopEval_8h-source.html | 241 ++++++++++ .../html/peoParaSGATransform_8h-source.html | 199 +++++++++ .../docs/html/peoPopEval_8h-source.html | 67 +++ .../docs/html/peoSeqPopEval_8h-source.html | 87 ++++ .../docs/html/peoSeqTransform_8h-source.html | 95 ++++ .../docs/html/peoSyncIslandMig_8h-source.html | 232 ++++++++++ .../html/peoSyncMultiStart_8h-source.html | 196 +++++++++ .../docs/html/peoTransform_8h-source.html | 66 +++ .../docs/html/peo__debug_8cpp-source.html | 121 +++++ .../docs/html/peo__debug_8h-source.html | 66 +++ .../docs/html/peo__fin_8cpp-source.html | 68 +++ .../docs/html/peo__fin_8h-source.html | 61 +++ .../docs/html/peo__init_8cpp-source.html | 81 ++++ .../docs/html/peo__init_8h-source.html | 65 +++ .../docs/html/peo__param_8cpp-source.html | 69 +++ .../docs/html/peo__param_8h-source.html | 61 +++ .../docs/html/peo__run_8cpp-source.html | 63 +++ .../docs/html/peo__run_8h-source.html | 61 +++ .../docs/html/reac__thread_8cpp-source.html | 80 ++++ .../docs/html/reac__thread_8h-source.html | 79 ++++ .../docs/html/recv_8cpp-source.html | 156 +++++++ .../docs/html/recv_8h-source.html | 58 +++ .../docs/html/ring__topo_8cpp-source.html | 69 +++ .../docs/html/ring__topo_8h-source.html | 68 +++ .../html/rmc_2mpi_2runner_8cpp-source.html | 77 ++++ .../html/rmc_2mpi_2service_8cpp-source.html | 74 ++++ .../docs/html/rmc_8cpp-source.html | 90 ++++ .../docs/html/rmc_8h-source.html | 62 +++ .../docs/html/runner_8h-source.html | 102 +++++ .../docs/html/scheduler_8cpp-source.html | 122 ++++++ .../docs/html/scheduler_8h-source.html | 76 ++++ .../docs/html/schema_8cpp-source.html | 179 ++++++++ .../docs/html/schema_8h-source.html | 83 ++++ trunk/paradiseo-peo/docs/html/search.idx | Bin 0 -> 377020 bytes trunk/paradiseo-peo/docs/html/search.php | 382 ++++++++++++++++ .../docs/html/send_8cpp-source.html | 160 +++++++ .../docs/html/send_8h-source.html | 66 +++ .../docs/html/service_8h-source.html | 94 ++++ .../docs/html/structNode-members.html | 42 ++ trunk/paradiseo-peo/docs/html/structNode.html | 62 +++ .../html/structSEND__REQUEST-members.html | 40 ++ .../docs/html/structSEND__REQUEST.html | 56 +++ trunk/paradiseo-peo/docs/html/tab_b.gif | Bin 0 -> 35 bytes trunk/paradiseo-peo/docs/html/tab_l.gif | Bin 0 -> 706 bytes trunk/paradiseo-peo/docs/html/tab_r.gif | Bin 0 -> 2585 bytes trunk/paradiseo-peo/docs/html/tabs.css | 102 +++++ .../docs/html/tags_8h-source.html | 68 +++ .../docs/html/thread_8cpp-source.html | 125 ++++++ .../docs/html/thread_8h-source.html | 92 ++++ .../docs/html/topology_8cpp-source.html | 64 +++ .../docs/html/topology_8h-source.html | 77 ++++ trunk/paradiseo-peo/docs/html/tree.html | 222 ++++++++++ .../docs/html/worker_8cpp-source.html | 138 ++++++ .../docs/html/worker_8h-source.html | 94 ++++ .../docs/html/xml__parser_8cpp-source.html | 119 +++++ .../docs/html/xml__parser_8h-source.html | 66 +++ trunk/paradiseo-peo/docs/latex/FreeSans.ttf | Bin 0 -> 22932 bytes trunk/paradiseo-peo/docs/latex/Makefile | 17 + trunk/paradiseo-peo/docs/latex/annotated.tex | 27 ++ .../docs/latex/classCommunicable.eps | 269 ++++++++++++ .../docs/latex/classCommunicable.pdf | Bin 0 -> 1855 bytes .../docs/latex/classCommunicable.tex | 87 ++++ .../docs/latex/classCommunicator.eps | 203 +++++++++ .../docs/latex/classCommunicator.pdf | Bin 0 -> 1400 bytes .../docs/latex/classCommunicator.tex | 36 ++ .../docs/latex/classCooperative.eps | 209 +++++++++ .../docs/latex/classCooperative.pdf | Bin 0 -> 1480 bytes .../docs/latex/classCooperative.tex | 54 +++ .../docs/latex/classReactiveThread.eps | 209 +++++++++ .../docs/latex/classReactiveThread.pdf | Bin 0 -> 1458 bytes .../docs/latex/classReactiveThread.tex | 49 +++ .../docs/latex/classRingTopology.eps | 197 +++++++++ .../docs/latex/classRingTopology.pdf | Bin 0 -> 1288 bytes .../docs/latex/classRingTopology.tex | 31 ++ .../paradiseo-peo/docs/latex/classRunner.eps | 209 +++++++++ .../paradiseo-peo/docs/latex/classRunner.pdf | Bin 0 -> 1497 bytes .../paradiseo-peo/docs/latex/classRunner.tex | 80 ++++ .../paradiseo-peo/docs/latex/classService.eps | 237 ++++++++++ .../paradiseo-peo/docs/latex/classService.pdf | Bin 0 -> 1586 bytes .../paradiseo-peo/docs/latex/classService.tex | 100 +++++ .../paradiseo-peo/docs/latex/classThread.eps | 221 ++++++++++ .../paradiseo-peo/docs/latex/classThread.pdf | Bin 0 -> 1612 bytes .../paradiseo-peo/docs/latex/classThread.tex | 54 +++ .../docs/latex/classTopology.eps | 197 +++++++++ .../docs/latex/classTopology.pdf | Bin 0 -> 1290 bytes .../docs/latex/classTopology.tex | 44 ++ .../paradiseo-peo/docs/latex/classWorker.eps | 209 +++++++++ .../paradiseo-peo/docs/latex/classWorker.pdf | Bin 0 -> 1477 bytes .../paradiseo-peo/docs/latex/classWorker.tex | 94 ++++ .../docs/latex/classpeoAggEvalFunc.eps | 197 +++++++++ .../docs/latex/classpeoAggEvalFunc.pdf | 73 ++++ .../docs/latex/classpeoAggEvalFunc.tex | 39 ++ .../docs/latex/classpeoAsyncIslandMig.eps | 203 +++++++++ .../docs/latex/classpeoAsyncIslandMig.pdf | Bin 0 -> 1407 bytes .../docs/latex/classpeoAsyncIslandMig.tex | 216 +++++++++ trunk/paradiseo-peo/docs/latex/classpeoEA.eps | 209 +++++++++ trunk/paradiseo-peo/docs/latex/classpeoEA.pdf | Bin 0 -> 1495 bytes trunk/paradiseo-peo/docs/latex/classpeoEA.tex | 145 ++++++ .../docs/latex/classpeoNoAggEvalFunc.eps | 197 +++++++++ .../docs/latex/classpeoNoAggEvalFunc.pdf | 73 ++++ .../docs/latex/classpeoNoAggEvalFunc.tex | 39 ++ .../docs/latex/classpeoParaPopEval.eps | 209 +++++++++ .../docs/latex/classpeoParaPopEval.pdf | 73 ++++ .../docs/latex/classpeoParaPopEval.tex | 258 +++++++++++ .../docs/latex/classpeoParaSGATransform.eps | 209 +++++++++ .../docs/latex/classpeoParaSGATransform.pdf | Bin 0 -> 1367 bytes .../docs/latex/classpeoParaSGATransform.tex | 120 +++++ .../docs/latex/classpeoPopEval.eps | 215 +++++++++ .../docs/latex/classpeoPopEval.pdf | Bin 0 -> 1423 bytes .../docs/latex/classpeoPopEval.tex | 39 ++ .../docs/latex/classpeoSeqPopEval.eps | 209 +++++++++ .../docs/latex/classpeoSeqPopEval.pdf | Bin 0 -> 1380 bytes .../docs/latex/classpeoSeqPopEval.tex | 88 ++++ .../docs/latex/classpeoSeqTransform.eps | 209 +++++++++ .../docs/latex/classpeoSeqTransform.pdf | Bin 0 -> 1493 bytes .../docs/latex/classpeoSeqTransform.tex | 111 +++++ .../docs/latex/classpeoSyncIslandMig.eps | 203 +++++++++ .../docs/latex/classpeoSyncIslandMig.pdf | Bin 0 -> 1335 bytes .../docs/latex/classpeoSyncIslandMig.tex | 225 ++++++++++ .../docs/latex/classpeoSyncMultiStart.eps | 203 +++++++++ .../docs/latex/classpeoSyncMultiStart.pdf | 73 ++++ .../docs/latex/classpeoSyncMultiStart.tex | 243 +++++++++++ .../docs/latex/classpeoTransform.eps | 215 +++++++++ .../docs/latex/classpeoTransform.pdf | Bin 0 -> 1412 bytes .../docs/latex/classpeoTransform.tex | 29 ++ trunk/paradiseo-peo/docs/latex/doxygen.sty | 78 ++++ trunk/paradiseo-peo/docs/latex/hierarchy.tex | 49 +++ trunk/paradiseo-peo/docs/latex/main.tex | 52 +++ .../paradiseo-peo/docs/latex/namespacepeo.tex | 52 +++ trunk/paradiseo-peo/docs/latex/namespaces.tex | 4 + trunk/paradiseo-peo/docs/latex/refman.tex | 82 ++++ trunk/paradiseo-peo/docs/latex/structNode.tex | 44 ++ .../docs/latex/structSEND__REQUEST.tex | 34 ++ .../docs/man/man3/Communicable.3 | 62 +++ .../docs/man/man3/Communicator.3 | 27 ++ .../paradiseo-peo/docs/man/man3/Cooperative.3 | 42 ++ trunk/paradiseo-peo/docs/man/man3/Node.3 | 34 ++ .../docs/man/man3/ReactiveThread.3 | 39 ++ .../docs/man/man3/RingTopology.3 | 24 + trunk/paradiseo-peo/docs/man/man3/Runner.3 | 57 +++ .../docs/man/man3/SEND_REQUEST.3 | 28 ++ trunk/paradiseo-peo/docs/man/man3/Service.3 | 69 +++ trunk/paradiseo-peo/docs/man/man3/Thread.3 | 40 ++ trunk/paradiseo-peo/docs/man/man3/Topology.3 | 34 ++ trunk/paradiseo-peo/docs/man/man3/Worker.3 | 64 +++ trunk/paradiseo-peo/docs/man/man3/peo.3 | 43 ++ .../docs/man/man3/peoAggEvalFunc.3 | 31 ++ .../docs/man/man3/peoAsyncIslandMig.3 | 174 ++++++++ trunk/paradiseo-peo/docs/man/man3/peoEA.3 | 109 +++++ .../docs/man/man3/peoNoAggEvalFunc.3 | 35 ++ .../docs/man/man3/peoParaPopEval.3 | 217 +++++++++ .../docs/man/man3/peoParaSGATransform.3 | 83 ++++ .../paradiseo-peo/docs/man/man3/peoPopEval.3 | 37 ++ .../docs/man/man3/peoSeqPopEval.3 | 78 ++++ .../docs/man/man3/peoSeqTransform.3 | 96 ++++ .../docs/man/man3/peoSyncIslandMig.3 | 181 ++++++++ .../docs/man/man3/peoSyncMultiStart.3 | 209 +++++++++ .../docs/man/man3/peoTransform.3 | 27 ++ 486 files changed, 34787 insertions(+) create mode 100644 trunk/paradiseo-peo/docs/html/annotated.html create mode 100644 trunk/paradiseo-peo/docs/html/classCommunicable-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classCommunicable.html create mode 100644 trunk/paradiseo-peo/docs/html/classCommunicable.png create mode 100644 trunk/paradiseo-peo/docs/html/classCommunicator-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classCommunicator.html create mode 100644 trunk/paradiseo-peo/docs/html/classCommunicator.png create mode 100644 trunk/paradiseo-peo/docs/html/classCooperative-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classCooperative.html create mode 100644 trunk/paradiseo-peo/docs/html/classCooperative.png create mode 100644 trunk/paradiseo-peo/docs/html/classReactiveThread-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classReactiveThread.html create mode 100644 trunk/paradiseo-peo/docs/html/classReactiveThread.png create mode 100644 trunk/paradiseo-peo/docs/html/classRingTopology-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classRingTopology.html create mode 100644 trunk/paradiseo-peo/docs/html/classRingTopology.png create mode 100644 trunk/paradiseo-peo/docs/html/classRunner-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classRunner.html create mode 100644 trunk/paradiseo-peo/docs/html/classRunner.png create mode 100644 trunk/paradiseo-peo/docs/html/classService-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classService.html create mode 100644 trunk/paradiseo-peo/docs/html/classService.png create mode 100644 trunk/paradiseo-peo/docs/html/classThread-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classThread.html create mode 100644 trunk/paradiseo-peo/docs/html/classThread.png create mode 100644 trunk/paradiseo-peo/docs/html/classTopology-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classTopology.html create mode 100644 trunk/paradiseo-peo/docs/html/classTopology.png create mode 100644 trunk/paradiseo-peo/docs/html/classWorker-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classWorker.html create mode 100644 trunk/paradiseo-peo/docs/html/classWorker.png create mode 100644 trunk/paradiseo-peo/docs/html/classes.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoAggEvalFunc.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoAggEvalFunc.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoEA-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoEA.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoEA.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoParaPopEval-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoParaPopEval.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoParaPopEval.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoParaSGATransform-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoParaSGATransform.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoParaSGATransform.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoPopEval-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoPopEval.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoPopEval.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSeqPopEval-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSeqPopEval.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSeqPopEval.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSeqTransform-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSeqTransform.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSeqTransform.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSyncMultiStart-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSyncMultiStart.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoSyncMultiStart.png create mode 100644 trunk/paradiseo-peo/docs/html/classpeoTransform-members.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoTransform.html create mode 100644 trunk/paradiseo-peo/docs/html/classpeoTransform.png create mode 100644 trunk/paradiseo-peo/docs/html/comm_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/comm_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/communicable_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/communicable_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/coop_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/cooperative_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/core_2runner_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/core_2service_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/doxygen.css create mode 100644 trunk/paradiseo-peo/docs/html/doxygen.png create mode 100644 trunk/paradiseo-peo/docs/html/eoPop__comm_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/eoVector__comm_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/files.html create mode 100644 trunk/paradiseo-peo/docs/html/ftv2blank.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2doc.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2folderclosed.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2folderopen.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2lastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2link.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2mlastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2mnode.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2node.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2plastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2pnode.png create mode 100644 trunk/paradiseo-peo/docs/html/ftv2vertline.png create mode 100644 trunk/paradiseo-peo/docs/html/functions.html create mode 100644 trunk/paradiseo-peo/docs/html/functions_func.html create mode 100644 trunk/paradiseo-peo/docs/html/functions_vars.html create mode 100644 trunk/paradiseo-peo/docs/html/hierarchy.html create mode 100644 trunk/paradiseo-peo/docs/html/index.html create mode 100755 trunk/paradiseo-peo/docs/html/installdox create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/doclsn_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/doxygen.css create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/doxygen.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/files.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2blank.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2doc.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2folderclosed.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2folderopen.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2lastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2link.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2mlastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2mnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2node.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2plastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2pnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/ftv2vertline.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/index.html create mode 100755 trunk/paradiseo-peo/docs/html/lesson1/html/installdox create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/main.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/main_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/peoEA.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/search.idx create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/search.php create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/tab_b.gif create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/tab_l.gif create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/tab_r.gif create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/tabs.css create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/html/tree.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/latex/FreeSans.ttf create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/latex/Makefile create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/latex/doxygen.sty create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/latex/main.tex create mode 100644 trunk/paradiseo-peo/docs/html/lesson1/latex/refman.tex create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/doxygen.css create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/doxygen.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/files.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2blank.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2doc.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2folderclosed.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2folderopen.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2lastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2link.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2mlastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2mnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2node.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2plastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2pnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/ftv2vertline.png create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/index.html create mode 100755 trunk/paradiseo-peo/docs/html/lesson2/html/installdox create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/main.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/main_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/search.idx create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/search.php create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/tab_b.gif create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/tab_l.gif create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/tab_r.gif create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/tabs.css create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/html/tree.html create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/latex/FreeSans.ttf create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/latex/Makefile create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/latex/doxygen.sty create mode 100644 trunk/paradiseo-peo/docs/html/lesson2/latex/refman.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/annotated.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/city__swap_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/city__swap_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classCitySwap-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classCitySwap.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classDisplayBestRoute-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classDisplayBestRoute.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classEdgeXover-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classEdgeXover.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classOrderXover-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classOrderXover.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classPartRouteEval-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classPartRouteEval.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classPartialMappedXover-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classPartialMappedXover.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteEval-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteEval.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteInit-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteInit.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptIncrEval-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptIncrEval.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptIncrEval.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptNext-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptNext.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptNext.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptRand-members.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptRand.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/classes.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/data_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/data_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/display_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/display_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/display__best__route_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/display__best__route_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/doxygen.css create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/doxygen.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/edge__xover_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/edge__xover_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/files.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2blank.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2doc.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2folderclosed.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2folderopen.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2lastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2link.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2mlastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2mnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2node.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2plastnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2pnode.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2vertline.png create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/functions.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/functions_func.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/functions_vars.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/hierarchy.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/index.html create mode 100755 trunk/paradiseo-peo/docs/html/lsnshared/html/installdox create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/main.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/merge__route__eval_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/merge__route__eval_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/mix_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/node_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/node_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/opt__route_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/opt__route_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/order__xover_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/order__xover_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/param_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/param_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/part__route__eval_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/part__route__eval_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/partial__mapped__xover_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/partial__mapped__xover_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/route_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/route_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/route__eval_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/route__eval_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/route__init_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/route__init_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/search.idx create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/search.php create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/tab_b.gif create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/tab_l.gif create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/tab_r.gif create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/tabs.css create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/tree.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__incr__eval_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__incr__eval_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__init_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__init_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__next_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__next_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__rand_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__rand_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/FreeSans.ttf create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/Makefile create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/annotated.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classCitySwap.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classDisplayBestRoute.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classEdgeXover.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.eps create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.pdf create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classOrderXover.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classPartRouteEval.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classPartialMappedXover.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classRouteEval.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classRouteInit.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.eps create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.pdf create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.eps create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.pdf create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.eps create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.pdf create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.eps create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.pdf create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptRand.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/doxygen.sty create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/hierarchy.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/latex/refman.tex create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/CitySwap.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/DisplayBestRoute.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/EdgeXover.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/MergeRouteEval.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/OrderXover.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/PartRouteEval.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/PartialMappedXover.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/RouteEval.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/RouteInit.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOpt.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptIncrEval.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptInit.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptNext.3 create mode 100644 trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptRand.3 create mode 100644 trunk/paradiseo-peo/docs/html/main.html create mode 100644 trunk/paradiseo-peo/docs/html/mess_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/mess_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/messaging_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/namespacemembers.html create mode 100644 trunk/paradiseo-peo/docs/html/namespacemembers_func.html create mode 100644 trunk/paradiseo-peo/docs/html/namespacemembers_vars.html create mode 100644 trunk/paradiseo-peo/docs/html/namespacepeo.html create mode 100644 trunk/paradiseo-peo/docs/html/namespaces.html create mode 100644 trunk/paradiseo-peo/docs/html/node_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/node_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/paradiseo_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/param_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/param_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoAggEvalFunc_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoAsyncIslandMig_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoEA_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoNoAggEvalFunc_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoParaPopEval_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoParaSGATransform_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoPopEval_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoSeqPopEval_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoSeqTransform_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoSyncIslandMig_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoSyncMultiStart_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peoTransform_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__debug_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__debug_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__fin_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__fin_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__init_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__init_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__param_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__param_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__run_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/peo__run_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/reac__thread_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/reac__thread_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/recv_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/recv_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/ring__topo_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/ring__topo_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/rmc_2mpi_2runner_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/rmc_2mpi_2service_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/rmc_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/rmc_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/runner_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/scheduler_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/scheduler_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/schema_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/schema_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/search.idx create mode 100644 trunk/paradiseo-peo/docs/html/search.php create mode 100644 trunk/paradiseo-peo/docs/html/send_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/send_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/service_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/structNode-members.html create mode 100644 trunk/paradiseo-peo/docs/html/structNode.html create mode 100644 trunk/paradiseo-peo/docs/html/structSEND__REQUEST-members.html create mode 100644 trunk/paradiseo-peo/docs/html/structSEND__REQUEST.html create mode 100644 trunk/paradiseo-peo/docs/html/tab_b.gif create mode 100644 trunk/paradiseo-peo/docs/html/tab_l.gif create mode 100644 trunk/paradiseo-peo/docs/html/tab_r.gif create mode 100644 trunk/paradiseo-peo/docs/html/tabs.css create mode 100644 trunk/paradiseo-peo/docs/html/tags_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/thread_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/thread_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/topology_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/topology_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/tree.html create mode 100644 trunk/paradiseo-peo/docs/html/worker_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/worker_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/html/xml__parser_8cpp-source.html create mode 100644 trunk/paradiseo-peo/docs/html/xml__parser_8h-source.html create mode 100644 trunk/paradiseo-peo/docs/latex/FreeSans.ttf create mode 100644 trunk/paradiseo-peo/docs/latex/Makefile create mode 100644 trunk/paradiseo-peo/docs/latex/annotated.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classCommunicable.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classCommunicable.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classCommunicable.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classCommunicator.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classCommunicator.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classCommunicator.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classCooperative.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classCooperative.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classCooperative.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classReactiveThread.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classReactiveThread.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classReactiveThread.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classRingTopology.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classRingTopology.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classRingTopology.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classRunner.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classRunner.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classRunner.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classService.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classService.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classService.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classThread.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classThread.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classThread.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classTopology.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classTopology.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classTopology.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classWorker.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classWorker.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classWorker.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoEA.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoEA.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoEA.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoParaSGATransform.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoParaSGATransform.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoParaSGATransform.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoPopEval.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoPopEval.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoPopEval.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSeqTransform.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSeqTransform.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSeqTransform.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.tex create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoTransform.eps create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoTransform.pdf create mode 100644 trunk/paradiseo-peo/docs/latex/classpeoTransform.tex create mode 100644 trunk/paradiseo-peo/docs/latex/doxygen.sty create mode 100644 trunk/paradiseo-peo/docs/latex/hierarchy.tex create mode 100644 trunk/paradiseo-peo/docs/latex/main.tex create mode 100644 trunk/paradiseo-peo/docs/latex/namespacepeo.tex create mode 100644 trunk/paradiseo-peo/docs/latex/namespaces.tex create mode 100644 trunk/paradiseo-peo/docs/latex/refman.tex create mode 100644 trunk/paradiseo-peo/docs/latex/structNode.tex create mode 100644 trunk/paradiseo-peo/docs/latex/structSEND__REQUEST.tex create mode 100644 trunk/paradiseo-peo/docs/man/man3/Communicable.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/Communicator.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/Cooperative.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/Node.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/ReactiveThread.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/RingTopology.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/Runner.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/SEND_REQUEST.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/Service.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/Thread.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/Topology.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/Worker.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peo.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoAggEvalFunc.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoAsyncIslandMig.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoEA.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoNoAggEvalFunc.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoParaPopEval.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoParaSGATransform.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoPopEval.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoSeqPopEval.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoSeqTransform.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoSyncIslandMig.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoSyncMultiStart.3 create mode 100644 trunk/paradiseo-peo/docs/man/man3/peoTransform.3 diff --git a/trunk/paradiseo-peo/docs/html/annotated.html b/trunk/paradiseo-peo/docs/html/annotated.html new file mode 100644 index 000000000..85c0c3eb9 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/annotated.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: Class List + + + + +
+
+
+
+

ParadisEO-PEO Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable
Communicator
Cooperative
Node
peoAggEvalFunc< EOT >The peoAggEvalFunc class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided
peoAsyncIslandMig< EOT >The peoAsyncIslandMig class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e
peoEA< EOT >The peoEA class offers an elementary evolutionary algorithm implementation
peoNoAggEvalFunc< EOT >The peoNoAggEvalFunc class does nothing more than an association between a fitness value and a specified individual
peoParaPopEval< EOT >The peoParaPopEval represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor
peoParaSGATransform< EOT >
peoPopEval< EOT >The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors
peoSeqPopEval< EOT >The peoSeqPopEval class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an eoEvalFunc< EOT >-derived class as evaluation functor
peoSeqTransform< EOT >The peoSeqTransform represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms
peoSyncIslandMig< EOT >The peoSyncIslandMig class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e
peoSyncMultiStart< EOT >The peoSyncMultiStart class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population
peoTransform< EOT >The peoTransform class acts only as an interface for creating transform operators - for an example please refer to the peoSeqTransform and the peoParaSGATransform classes
ReactiveThread
RingTopology
Runner
SEND_REQUEST
Service
Thread
Topology
Worker
+
Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classCommunicable-members.html b/trunk/paradiseo-peo/docs/html/classCommunicable-members.html new file mode 100644 index 000000000..b1169b89d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classCommunicable-members.html @@ -0,0 +1,48 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+
+
+

Communicable Member List

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

+ + + + + + + + + + + +
Communicable()Communicable
getKey()Communicable
keyCommunicable [protected]
lock()Communicable
num_commCommunicable [protected, static]
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
stop()Communicable
unlock()Communicable
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:24 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classCommunicable.html b/trunk/paradiseo-peo/docs/html/classCommunicable.html new file mode 100644 index 000000000..24818b911 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classCommunicable.html @@ -0,0 +1,100 @@ + + +ParadisEO-PEO: Communicable Class Reference + + + + +
+
+
+
+

Communicable Class Reference

Inheritance diagram for Communicable: +

+ +Cooperative +Runner +Service +Worker +peoAsyncIslandMig< EOT > +peoSyncIslandMig< EOT > +peoEA< EOT > +peoPopEval< EOT > +peoSyncMultiStart< EOT > +peoTransform< EOT > +peoParaPopEval< EOT > +peoSeqPopEval< EOT > +peoParaSGATransform< EOT > +peoSeqTransform< EOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

Communicable ()
+virtual ~Communicable ()
+COMM_ID getKey ()
+void lock ()
+void unlock ()
+void stop ()
+void resume ()

Protected Attributes

+COMM_ID key
+sem_t sem_lock
+sem_t sem_stop

Static Protected Attributes

+static unsigned num_comm = 0
+

Detailed Description

+ +

+ +

+Definition at line 31 of file communicable.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:24 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classCommunicable.png b/trunk/paradiseo-peo/docs/html/classCommunicable.png new file mode 100644 index 0000000000000000000000000000000000000000..a229e70683d27503207a292738306eb52e3be16e GIT binary patch literal 3267 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 T{-LAbjRT^qV~8r#c8LB5pGN^H literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classCommunicator-members.html b/trunk/paradiseo-peo/docs/html/classCommunicator-members.html new file mode 100644 index 000000000..041a0dfce --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classCommunicator-members.html @@ -0,0 +1,46 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Communicator Member List

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

+ + + + + + + + + +
Communicator(int *__argc, char ***__argv)Communicator
ReactiveThread()ReactiveThread
setActive()Thread
setPassive()Thread
sleep()ReactiveThread
start()Communicator [virtual]
Thread()Thread
wakeUp()ReactiveThread
~Thread()Thread [virtual]


Generated on Sun Jan 7 18:35:24 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classCommunicator.html b/trunk/paradiseo-peo/docs/html/classCommunicator.html new file mode 100644 index 000000000..02a8299d6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classCommunicator.html @@ -0,0 +1,59 @@ + + +ParadisEO-PEO: Communicator Class Reference + + + + +
+
+ +

Communicator Class Reference

Inheritance diagram for Communicator: +

+ +ReactiveThread +Thread + +List of all members. + + + + + + +

Public Member Functions

Communicator (int *__argc, char ***__argv)
+void start ()
+

Detailed Description

+ +

+ +

+Definition at line 30 of file comm.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:24 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classCommunicator.png b/trunk/paradiseo-peo/docs/html/classCommunicator.png new file mode 100644 index 0000000000000000000000000000000000000000..0f0ce225befada7093a601526f633a52e4c45b89 GIT binary patch literal 472 zcmV;}0Vn>6P)iw;7faa%EELnaMo3jpxd=HFR7L zzhzJ=LxvThGNBA>uil2q<*HSnWu%M_7BAN4Ng;NWmZ>c-T=TGTC=A=g!W8djZ?mml znW90>GVhu7d2(>Gx6OH~Zb=}R_E|TBi?`;v^By=ei1GUR+`PVa#u;av`CAOSEli<% z1Fy;u4p~~__DopZCu{E*vRo69&IFpY1?V5-5eB)+Mu>Kdj46O7kWrBPG^u=ACLA)$ zFNbG$PJNvLx*0molXPnt6egT8`g~Nk!iW$#Jn0rpx0dNKXGStNzExj?e|Tv=k5mo- O0000 + +ParadisEO-PEO: Member List + + + + +
+
+ +

Cooperative Member List

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

+ + + + + + + + + + + + + + + + +
Communicable()Communicable
getKey()Communicable
getOwner()Cooperative
keyCommunicable [protected]
lock()Communicable
notifySending()Cooperative [virtual]
num_commCommunicable [protected, static]
ownerCooperative [private]
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
send(Cooperative *__coop)Cooperative
setOwner(Runner &__runner)Cooperative
stop()Communicable
unlock()Communicable
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:24 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classCooperative.html b/trunk/paradiseo-peo/docs/html/classCooperative.html new file mode 100644 index 000000000..fc9ce922a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classCooperative.html @@ -0,0 +1,70 @@ + + +ParadisEO-PEO: Cooperative Class Reference + + + + +
+
+ +

Cooperative Class Reference

Inheritance diagram for Cooperative: +

+ +Communicable +peoAsyncIslandMig< EOT > +peoSyncIslandMig< EOT > + +List of all members. + + + + + + + + + + + + + +

Public Member Functions

+RunnergetOwner ()
+void setOwner (Runner &__runner)
+void send (Cooperative *__coop)
+virtual void notifySending ()

Private Attributes

+Runnerowner
+

Detailed Description

+ +

+ +

+Definition at line 32 of file cooperative.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:24 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classCooperative.png b/trunk/paradiseo-peo/docs/html/classCooperative.png new file mode 100644 index 0000000000000000000000000000000000000000..826cbc31b4febb82bbc504168b9e66a6879f01f2 GIT binary patch literal 926 zcmeAS@N?(olHy`uVBq!ia0y~yU`ztCJ6M>3r2efxl0Zr#z$e7@|Ns9$=Kuc(=Fd-< z0AzvjfddDs5B+}vEaktG3V`^+`PvM0&UG&U$>{{F;q8R zeb=hBcFJ%0#E%SS|9lK;Q&&98P1${;_EQT(?y3~I{z)}|T%VLrbdI!>QOa6#EUV`1 z4WajD%bCyh-8Oh;yilz7=&?zgukALBHm@`6wJtjM{eQ`wDI33U^0_vV_uP~H(~rH` zVf*-}SgPfmXZw0O4;jAoKmV;~`ro@98`p?>C(m+on*2E8+T+5t9>?l_xkg56@7TF@ zkrBuuAd1Pkb9eRsrkZ=Y0dxNK%#SaZp0dpP@%iVU^I8vmNx$>(OmK3|6$yFMWA42l z1ForO23}72dBu#*`J!-)80He|HYkTopc^sxqYkKHy9tw z=atMiu{kGpSGu>okf-AO2IEb#K3R5W{vIn#U$Rp=dC|sBr}Eh!um3jO%A1_owfNAS zZy(lXAI*|cPqw^%XT^lC6>_D48=Iplz!rAq2kg~abYnSlW>ges2DxL!Kd zEaCo!^7C&tRo^zEIWfN5c?(XGd}ECn^6HgRQal#6p+O3+0JdEu2>u9%1U`j$0(Y + +ParadisEO-PEO: Member List + + + + +
+
+ +

ReactiveThread Member List

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

+ + + + + + + + +
ReactiveThread()ReactiveThread
semReactiveThread [private]
setActive()Thread
setPassive()Thread
sleep()ReactiveThread
Thread()Thread
wakeUp()ReactiveThread
~Thread()Thread [virtual]


Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classReactiveThread.html b/trunk/paradiseo-peo/docs/html/classReactiveThread.html new file mode 100644 index 000000000..a0d6e4ad2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classReactiveThread.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO: ReactiveThread Class Reference + + + + +
+
+ +

ReactiveThread Class Reference

Inheritance diagram for ReactiveThread: +

+ +Thread +Communicator +Worker + +List of all members. + + + + + + + + + + + +

Public Member Functions

ReactiveThread ()
+void sleep ()
+void wakeUp ()

Private Attributes

+sem_t sem
+

Detailed Description

+ +

+ +

+Definition at line 31 of file reac_thread.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classReactiveThread.png b/trunk/paradiseo-peo/docs/html/classReactiveThread.png new file mode 100644 index 0000000000000000000000000000000000000000..46b2d6d40ee1d26fc0a846cb7e148fe5f1cd4c93 GIT binary patch literal 633 zcmV-<0*3vGP)?V7jCQZEm5tbP~Dq6H4x~rYB3T1$&17l;Fw?gFY@?C5*v(4J2 zE42?sy&cK`fEhJy7L^{)y(!Az*@3-6*Nua0i_*rOwr&g9bOFQBb=qvaS9Ac_a~~Ad zcS7y9S1tq1mKnHcjA9g{7E${>oMr9We8&HP>Tf4RUHkrosFP+OqZq{~Mlp&}jA9g{ zPK}aKY}Ke8MlkA-C;*kTgm*UEluEm+l_-@Amq~R4l(e^t4bB!e66qTdWeeNjy{ZLD z2?9_NYUl)8K=jJBDBLUM*2Y~1C>0Oiwl*q7IDj~#Ylx`mZL@$v#;6dbgcwF8WTU7? zdleYN1#Gidj|{|A!!(m3W}stw@9GTPdIX~w^>(QJ9?r6M=%?GP@$c-1L7g-M8O10@ zRa#$Z6{uU?C#;E>QH){~qZoBiR95|T&pAGESXNH;lb2I{6|21*szM~jsH33_=x6Sz zs~viuqBI@ppy#NGQhhR0D-?MRpj6$C&|aDhq`XG$u)P8a*%wgM$%INCg{o&wa%2Ys zR6%>ywWI4iDs(}$d#KE#9xqSP$viVCW1>_$N~z0H0L3U2yjP&iD^bx_d6es!K~c99 z1p%dtQAzI!%DDeXL=;NZ9fdMby9``HxlWW))4S)~UrdZ*)L)@qRjR-GaF(}Uw8bHQ T(SPdl00000NkvXXu0mjf00bIB literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classRingTopology-members.html b/trunk/paradiseo-peo/docs/html/classRingTopology-members.html new file mode 100644 index 000000000..a426e6a33 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classRingTopology-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

RingTopology Member List

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

+ + + + +
add(Cooperative &__mig)Topology
migTopology [protected]
setNeighbors(Cooperative *__mig, std::vector< Cooperative * > &__from, std::vector< Cooperative * > &__to)RingTopology [virtual]
~Topology()Topology [virtual]


Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classRingTopology.html b/trunk/paradiseo-peo/docs/html/classRingTopology.html new file mode 100644 index 000000000..088c0ef65 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classRingTopology.html @@ -0,0 +1,55 @@ + + +ParadisEO-PEO: RingTopology Class Reference + + + + +
+
+ +

RingTopology Class Reference

Inheritance diagram for RingTopology: +

+ +Topology + +List of all members. + + + + +

Public Member Functions

+void setNeighbors (Cooperative *__mig, std::vector< Cooperative * > &__from, std::vector< Cooperative * > &__to)
+

Detailed Description

+ +

+ +

+Definition at line 29 of file ring_topo.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classRingTopology.png b/trunk/paradiseo-peo/docs/html/classRingTopology.png new file mode 100644 index 0000000000000000000000000000000000000000..79e86b8473e87f8d848077bcd8c56eb5f7d40589 GIT binary patch literal 356 zcmV-q0h|7bP)K)Ljn3 zAPfLt`r>oT4cZeJy^v44{}JS8i-2VeBgr)Iz#RSTxpPrd^0_5bH!OEvatiE_Lz-ZO!|-sC!2%JxR(|_L9rH!#dP0N3~Ge zzmuNW0lM!Cp^ryp{R{fCjMK}~Q%av6*^{ZKo_gvJG<6I#*zv@l)<9%nU2wlCi@)n^ z6-`@%L6?)_AAMsfUi<{;!jNl5i5;f9z7S7i(y=bR>?7R(0000 + +ParadisEO-PEO: Member List + + + + +
+
+ +

Runner Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
getID()Runner
getKey()Communicable
idRunner [private]
isLocal()Runner
keyCommunicable [protected]
lock()Communicable
notifySendingTermination()Runner
num_commCommunicable [protected, static]
packTermination()Runner
resume()Communicable
Runner()Runner
sem_lockCommunicable [protected]
sem_startRunner [private]
sem_stopCommunicable [protected]
setActive()Thread
setPassive()Thread
start()Runner [virtual]
stop()Communicable
terminate()Runner
Thread()Thread
unlock()Communicable
waitStarting()Runner
~Communicable()Communicable [virtual]
~Thread()Thread [virtual]


Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classRunner.html b/trunk/paradiseo-peo/docs/html/classRunner.html new file mode 100644 index 000000000..2a1d622a8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classRunner.html @@ -0,0 +1,85 @@ + + +ParadisEO-PEO: Runner Class Reference + + + + +
+
+ +

Runner Class Reference

Inheritance diagram for Runner: +

+ +Communicable +Thread +peoEA< EOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

Runner ()
+void start ()
+void waitStarting ()
+bool isLocal ()
+void terminate ()
+RUNNER_ID getID ()
+void packTermination ()
+void notifySendingTermination ()

Private Attributes

+sem_t sem_start
+unsigned id
+

Detailed Description

+ +

+ +

+Definition at line 34 of file runner.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classRunner.png b/trunk/paradiseo-peo/docs/html/classRunner.png new file mode 100644 index 0000000000000000000000000000000000000000..bd6d66557cc229a64d271d5b6d0528ead701a63c GIT binary patch literal 649 zcmV;40(Sk0P)jc;U zxsyVI7@GF(agX|hCCJaZDFo?uZ5^X@>oQ~HKSyrX^$^d9nBpf9Zkly|i3uySP88Sp z6Qqzrr$VPaZmq>_^+-1U#2KeSojir();%qB>*UwQ(TT6`H0T9qok9vJQ~~OCg&fLV zL(Rq%Qb-|%6uK$|(r9-=;yi`k26{ZJDnV^y&V$;fHHLoycaZl@HlY-1O#{5*J#%+P z708WI8-%!;-^yw|nm_=@L1xmU=1|C-a_iji_mH1;$3O=pD5TKqL#I7%t;KbpRM(>J z*CS5=?fjw@iT?<;PCHl?QChdrQ)m93<0mT2_kBYGgd}%BC zQt!HuZ!Xoj#;RZ%*+mc$rkd|Ni0rH+y#yNSiP467WLMdJ2N9M+b|_p12oUsRH13g? z3L)QQ>=9$IeCwQ4+@pTwUKo2cgNl1J9U~8=F&fRf@-Z4_9rz0PzA`<1j%v+1D+z^0 jkSr8>T}WKhorC@XtI`%G;3R&800000NkvXXu0mjfkB%d1 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classService-members.html b/trunk/paradiseo-peo/docs/html/classService-members.html new file mode 100644 index 000000000..33f9392f3 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classService-members.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Service Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
execute()Service [virtual]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
num_sent_rrService [private]
ownerService [private]
packData()Service [virtual]
packResourceRequest()Service
packResult()Service [virtual]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()Service [virtual]
unpackResult()Service [virtual]
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classService.html b/trunk/paradiseo-peo/docs/html/classService.html new file mode 100644 index 000000000..a5ea3d35f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classService.html @@ -0,0 +1,102 @@ + + +ParadisEO-PEO: Service Class Reference + + + + +
+
+ +

Service Class Reference

Inheritance diagram for Service: +

+ +Communicable +peoPopEval< EOT > +peoSyncMultiStart< EOT > +peoTransform< EOT > +peoParaPopEval< EOT > +peoSeqPopEval< EOT > +peoParaSGATransform< EOT > +peoSeqTransform< EOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

+void setOwner (Thread &__owner)
+ThreadgetOwner ()
+void requestResourceRequest (unsigned __how_many=1)
+void packResourceRequest ()
+virtual void packData ()
+virtual void unpackData ()
+virtual void execute ()
+virtual void packResult ()
+virtual void unpackResult ()
+virtual void notifySendingData ()
+virtual void notifySendingResourceRequest ()
+virtual void notifySendingAllResourceRequests ()

Private Attributes

+Threadowner
+unsigned num_sent_rr
+

Detailed Description

+ +

+ +

+Definition at line 32 of file service.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classService.png b/trunk/paradiseo-peo/docs/html/classService.png new file mode 100644 index 0000000000000000000000000000000000000000..cf6f68a5411cd8a8a22d2b70693af7a0e2f82564 GIT binary patch literal 2032 zcmb7_c~H|y7RNzUmTRIQ0)r+BlGzH!u%H|!3L`-TNt7diakyk<00kB%K(Y`(M~JW? zKRM)xkN}AwAeUm0I~pLIatm@Jk%$?C2_O-WY@8Zvw`!)gYX9i|e)=8NuV1~YPPvG7 zP*eU^Sx!z)&G8)4RZdO;EMxX=1=)`8dN3dp?TgOt_EM=-hEge;PWQVbqu&;r&5nI8 z<;jlnI9IfrobA#?pq!jyvLo^bcYOZ){7?$RO8b_^lhL+-IrgkdT{QF5z&ZW(&p?et zMOFKX2Ex6qtfz{)_l#&W#U|+LyJ*fRx4Lz+v5^fa0Zn=GhM;1$I>9dmQG*0~O}_EZ zG7+M6PfkGrx4K?Co8U09m3J&6?y~OHG##wZwSbxPh8uR5;A;gD_Yg0J-N1Ggx|L)M zbe{`nCH^NC3S3&2%3bqC7IFMh;GYCmp!?5RunU{Kh;t-D-r|WrePN-g*Zw zj7(R|I^EV*-MR;+K}bwlwa)HR_|x3~)6A$AmREy4wIm$eN*qxfr17;mvP#B8Px%5S z^cHWZq_LBDNa!E~EVv3#wSfRri$Y67x=|Mcb$4-$^W@jXk}#S>qU$Gs07 z=MBYi&zW}q&tKZ`ho`*WAjY#KM5`~(+>KNNaiaRFPc0Jc_d1U9$1eV!{@^9QUfX*n ztMqMk9PUjnE+@Z453oGGY+{YF2Zsj@dq+}J5wnBLCf;#PLUWO0Om{F$jJL}aW{kM= zM9I(@gVM6DMKu(4T~vXRo}ft$dYLw|S@M14+@;Wa3sLh`OqPnWXcm}B@)j8$k}SnU zV{20%b>p7lToN=xA2u;htcMNYAI=s#l}g}dPL&`uRBLrGpu($QMa}p)&HvXD*1ev- zs%2`|G4Rer2A485vg03}fHGO2uufxhM5dj@eWZiKtvmiB@0IAjhd)v$3U{_6MifWN&{CGhl(KTyF;S^&Fdsr_Y&%0Ul7FkY^0jKyNOG zg2-A?i*WlieEoWrX)&KZp?3!(&Hc8!yt~H)@1?2hJN`6u4X_4Xb1*k=oz{_0{6730 zNB%5A`?^2LH@KBRb>DR6YlEE0iVhR!RMQz_g98 z|4-KI-~yXKL?@+K89{5r^g~AGt@wZIhrHTU4%z7%_q3?2-foIqyPE+5L+Q5v zBl~-E|3EQ0t6bAbGBIMVGK8oZev0h5W6Rq=-@ym9uVXrBA(h;U$5qV%u5~9nkSBqk zC&`G(@(Er9dSl;<#cdcb_l{z=62UL;cUj{PNh)(Z4sXJ~sZz=}ZL^O?n!(atk}}Co zJY;Rp1LRpvv>xo!0rjn;_tkYUR!U{aPNTQS7+<*iH}BW*zq>E|PxDa^v1eph!s85V zlx3k(wmhmvHR$G5TMZ)xs-Mo_?%qVG*WTmL%>K+Z-;csd)4J)MtHHy8;_$hIN9#cK zP3RcZto%-Z9z)ssKcKt!vE-8Zo<8a_+f1=M*KUiMx_r2r_c7af>ATJOhqgGP8j_Fwx_%V6ZXc*UONo&lsYZ}mR`e4}5Vvrdn9}oDHW@63?gqV!Hmh34wzm_r- zB~ODj!;wQJfBDh;!Y{LZMaC9mMi$$~I;|QoZBeW+n&bU72 z8He(XzqYeZMMzIeT5T1}jKo4@9oQA++x@-(fBnEd;%Ga^!a-0)a1MM)wv@`Qp*kF7 z=sv%mhQ%q*EzitS4^0|_FBOJOz41D* z#wpo7pbqlRvuk=~(`h^Nv|-7GKGpOV(y?n7=#+^Hl@VpRNh;Xu02f>3Pc@k*9Kg4K z(*LpCgcO~yb50|ZZbRXJ%;p1o0IM7${HTLK*bfO7|7+D@tHTm+ukL}hd>mZg}24QcKNoS~$UWmEkH90gil*f$l0 cj+Hx#=SAep4SgIH+4n5xXpcr#o$ + +ParadisEO-PEO: Member List + + + + +
+
+ +

Thread Member List

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

+ + + + + +
actThread [private]
setActive()Thread
setPassive()Thread
Thread()Thread
~Thread()Thread [virtual]


Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classThread.html b/trunk/paradiseo-peo/docs/html/classThread.html new file mode 100644 index 000000000..5049c3802 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classThread.html @@ -0,0 +1,72 @@ + + +ParadisEO-PEO: Thread Class Reference + + + + +
+
+ +

Thread Class Reference

Inheritance diagram for Thread: +

+ +ReactiveThread +Runner +Communicator +Worker +peoEA< EOT > + +List of all members. + + + + + + + + + + + + + +

Public Member Functions

Thread ()
+virtual ~Thread ()
+void setActive ()
+void setPassive ()

Private Attributes

+bool act
+

Detailed Description

+ +

+ +

+Definition at line 31 of file thread.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classThread.png b/trunk/paradiseo-peo/docs/html/classThread.png new file mode 100644 index 0000000000000000000000000000000000000000..bac19c4248b924672e1783be08d6cbd4f07c5a11 GIT binary patch literal 982 zcmeAS@N?(olHy`uVBq!ia0y~yU~~quJ6M>3WWVc_??6f-z$e7@|Ns9$=Kuc(=Fd-< z0AzvjfddDs5B+}vEaktG3V{9+IO=Jc-n$}U){GbH`sk( zi>I~!63@N=1*hdRskX3u7vJ=Asji9qxn|+uKpmFW1yRB$cZjZ%pCG8omg3UISgky( zV=iBGiMvSu_C?W3O?CeKe^;(=>|Yz4-^j7+!k*>r|IBRPbyyrdt8lM)(c84TmkfEm z8MPJp`g|M2VqN^rdtUf|*`eXKL_j&HLr~L%;Sq!R%E*=X7*c`Q)i!=FXO|Si$FD(q z1-+yg3L6R%U4)>LAO)y6j@dr`i;~?;^|hATuGxKpnnyZBl3ch9m0BexI`w!cx~;je zJznzfxzImax6XX~GkNuo!VZh;uc`$CiOF5D#z?gDL=J^NSlGd2plXyEg3M2!w z)`%F|E^(;Ye5tMDm(Nz?uYT2hwT*`B%6A>Oek#l*IdHbq7Uwg!Pg=HW?3LWi?S9PS zh3t{2Jxv_T_8ae+`!hKEVosjqI>FRCHIcWYj!YH5r}nQ!eCbh^4wZEZO2=-Q=_hr) zkhx@X@t%*vl)5f4d9&(5Ke36s<4ly)vJE#Z6|ODSJyess$k}D~1=Gat;+~A-ud-(= zSGB!hmA<&Oqx6xygIkJ=+n?ito6D!j@9;ePO2BaS?>n#3O&K1sPcm9@IrUxtkD80= z9D?>NG7N<+!0>~I$HLtT+tlvVC?+%UEt+Z4m$?lZ#clRI8TMg)1v9NrR>)m6HQi}s_VeKK5QmyY`N1VkYnfec za~yW$3p}=GzO2j6v-)0wXAjqNS}>oQVZAxUP9kQeJCARPG7r0@i${^}pPM_cNxR%| zjfpdiRhIqFAjmvZQa5w&^P@-WJeZ4~Gb>&_RxRkK%oL)`BqG4LNZfSU_aC=i4tu)T zJa(Ngk!*f_(}SZs4qLA4(oK4GR8>}epMt`vtRtbXWsiJ~a{11cZP@wZYSfnNuF{Ee zg(v40Mq21C^6pqSk$3C&)i?57W_!lT$gS(H7K~kbdcWS%o}+IIdUj-J9J%#SqEJvd t?^lgs(zkVns~^w4vZpUU==0&ftQ-sr88-Y;Oaf*?22WQ%mvv4FO#m1+uj&8* literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classTopology-members.html b/trunk/paradiseo-peo/docs/html/classTopology-members.html new file mode 100644 index 000000000..cd43f6926 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classTopology-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Topology Member List

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

+ + + +
add(Cooperative &__mig)Topology
migTopology [protected]
~Topology()Topology [virtual]


Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classTopology.html b/trunk/paradiseo-peo/docs/html/classTopology.html new file mode 100644 index 000000000..351345757 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classTopology.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: Topology Class Reference + + + + +
+
+ +

Topology Class Reference

Inheritance diagram for Topology: +

+ +RingTopology + +List of all members. + + + + + + + + + +

Public Member Functions

+virtual ~Topology ()
+void add (Cooperative &__mig)

Protected Attributes

+std::vector< Cooperative * > mig
+

Detailed Description

+ +

+ +

+Definition at line 31 of file topology.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classTopology.png b/trunk/paradiseo-peo/docs/html/classTopology.png new file mode 100644 index 0000000000000000000000000000000000000000..bc09751e50a5b00a6da2da18b5ccb4162efd8623 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^kw6^4!VDxEw2p)TDTx4|5ZC|z{{xx-{~wq?KVbrp z1;z&s9H>6@{|S)GSQ6wH%;50sMjDXw*VDx@#G~`=l|a5`1s;YA-_q}IGuKd$*v73J z`RH%I0ZZ(H)lA+Vcbx149&}C>YLrT9;(Ya(zvRcW@`TK{JXbPQ9OfKK&1^6b_WG^o z=eUMzaFJGNarDL%ziE_>?tMze1!y7$v{1HZ2-Jt3WCy5e*FDdF3W+y5%QsW92I zF);pFUDdqkpv=p*-&0;JY?u4RU2Fb0voG%9vsaIoZxyhNWdCEU`Z?!CjtR4Ml+15a zO*;>n>VKO|4%I~!`ELA}Fq6yn<}9D~J(hlJX9d6gv~}s4$fvbSWTUI}^S$4{_gvGy z?rE6H){D!;qTBcMZtc|7y?xN)X6M^wZ|z%TuZuVGtUhvIyF&~Z5DcEKelF{r5}E)% CSe$qO literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classWorker-members.html b/trunk/paradiseo-peo/docs/html/classWorker-members.html new file mode 100644 index 000000000..deb94f424 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classWorker-members.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Worker Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
getKey()Communicable
idWorker [private]
keyCommunicable [protected]
lock()Communicable
notifySendingResult()Worker
notifySendingTaskDone()Worker
num_commCommunicable [protected, static]
packResult()Worker
packTaskDone()Worker
ReactiveThread()ReactiveThread
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
servWorker [private]
serv_idWorker [private]
setActive()Thread
setPassive()Thread
setSource(int __rank)Worker
sleep()ReactiveThread
srcWorker [private]
start()Worker [virtual]
stop()Communicable
Thread()Thread
totoWorker [private]
unlock()Communicable
unpackData()Worker
wakeUp()ReactiveThread
Worker()Worker
~Communicable()Communicable [virtual]
~Thread()Thread [virtual]


Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classWorker.html b/trunk/paradiseo-peo/docs/html/classWorker.html new file mode 100644 index 000000000..36a6eb3f4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classWorker.html @@ -0,0 +1,94 @@ + + +ParadisEO-PEO: Worker Class Reference + + + + +
+
+ +

Worker Class Reference

Inheritance diagram for Worker: +

+ +Communicable +ReactiveThread +Thread + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

Worker ()
+void start ()
+void packResult ()
+void unpackData ()
+void packTaskDone ()
+void notifySendingResult ()
+void notifySendingTaskDone ()
+void setSource (int __rank)

Private Attributes

+WORKER_ID id
+SERVICE_ID serv_id
+Serviceserv
+int src
+bool toto
+

Detailed Description

+ +

+ +

+Definition at line 33 of file worker.h.


The documentation for this class was generated from the following files: +
Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classWorker.png b/trunk/paradiseo-peo/docs/html/classWorker.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea239005e92fa21c493b7163f0f4059a251cddd GIT binary patch literal 624 zcmV-$0+0QPP)!#BBAI1X8x_y{u8If)i*WG*k52*frLe#bIPl!5c1Of#VP(T3%6i`3`bqv(@BiW~K zR&td4+I-RssDcA3P)9@2Tqq32@hKyJKoRk%uH+iz3dSX&aYV_er$_b}HI>$7;yy)b zfqO^xnyU(;mc4AwQ8my00;Q6=)*)@I86M>xE+dxm6y@uY%M_-dzPgrKHBbHm#Y3I! zsjTW>Etkp?#raBg!tkR%L;1DxDJ;_z#W}^imrzkPXNj>h8Wk&!DEAmLGAft8h?poC)&K{a2CKp$#8%*5sh49r+M zioi{FoDUOFK>Zb};pXhA-B)*)53OW(+YWUtlzR)r?}n(pOq(wezZ;^?8G%3n1ylu8 zUub1-xaXS#1r$&~0rg%eLz}G_)u07XhezEs{nqDkQFQB!G0CZfa{Zf5)6FEO7Rn@o zX9TAW%6*2ap>(MtDvYQJDlJ=0lm?zAb!wq1v;YdIw?pl_Ir{-RVHOmMf_5qZ0000< KMNUMnLSTY`6%p|O literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classes.html b/trunk/paradiseo-peo/docs/html/classes.html new file mode 100644 index 000000000..d9368b141 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classes.html @@ -0,0 +1,48 @@ + + +ParadisEO-PEO: Alphabetical List + + + + +
+
+ +

ParadisEO-PEO Class Index

A | C | E | N | P | R | S | T | W

+ +
  A  
+
Node   peoSeqPopEval   
peoAggEvalFunc   
  P  
+
peoSeqTransform   
peoAsyncIslandMig   peoParaPopEval   Service   
  C  
+
peoParaSGATransform   peoSyncIslandMig   
Communicable   peoPopEval   peoSyncMultiStart   
Communicator   
  R  
+
  T  
+
Cooperative   ReactiveThread   Thread   
  E  
+
RingTopology   Topology   
peoEA   Runner   peoTransform   
  N  
+
  S  
+
  W  
+
peoNoAggEvalFunc   SEND_REQUEST   Worker   

A | C | E | N | P | R | S | T | W

+


Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoAggEvalFunc.html b/trunk/paradiseo-peo/docs/html/classpeoAggEvalFunc.html new file mode 100644 index 000000000..fa901eaf2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoAggEvalFunc.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO: peoAggEvalFunc< EOT > Class Template Reference + + + + +
+
+ +

peoAggEvalFunc< EOT > Class Template Reference

The peoAggEvalFunc class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. +More... +

+#include <peoAggEvalFunc.h> +

+

Inheritance diagram for peoAggEvalFunc< EOT >: +

+ +peoNoAggEvalFunc< EOT > + + + +
+

Detailed Description

+

template<class EOT>
+ class peoAggEvalFunc< EOT >

+ +The peoAggEvalFunc class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. +

+The class inherits public eoBF< EOT&, const typename EOT :: Fitness&, void > thus requiring, for the derived classes, the creation of a function having the following signature:

+ + + +
void operator()( EOT& __eot, const typename EOT :: Fitness& __partial_fittness );    
+

+The aggregation object is called in an iterative manner for each of the results obtained by applying partial evaluation functions. +

+ +

+Definition at line 40 of file peoAggEvalFunc.h.


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoAggEvalFunc.png b/trunk/paradiseo-peo/docs/html/classpeoAggEvalFunc.png new file mode 100644 index 0000000000000000000000000000000000000000..782e65274667f290861ac4f8e63a5b1705d63046 GIT binary patch literal 611 zcmeAS@N?(olHy`uVBq!ia0vp^>w!3cg&9cBt+40JG z3ycpOI8c4){}UjWu_VYZn8D%MjWi(pr>Bc!NJQ(~>ArbPhCHp0eXkehJ($C=HR$|h z(eL(7$rmiuely1=1`p+ z9><=(|N8Wd<0U0^4g=(9N$B}8FI%v=h`&rPf>gKdd1U*#3a_o+eF>sd~(|N zFz|=*2eIr-w&ECBBrY+yf8=rP8Z#p=Qt5Y+YlWW=%2andLKdQ7YEh=f| zziztW{r8&>S{_D!Q2($wyD6U0?#=Uh_gb0FJDCqYpKs1wKj(ZtTixLhpARhlFm!*- z`rogs+rLe*d#z}Ca6P;D&urJaZh`K(*S_^%>r!OO%71f8RDw4q<`U4mOV@RmC`m10 zQhOvSz13j-hrk0KQ@s>ls)lLo@LY5FV9Fc87>_G=DlA_?{k+w=YzIs5%Llg(iX5!k zZRvjNq@4KlRmHCg=R};~+gGw#a##MF*DIg4K>Y2)Cw!el@9HjDn+QXnJq+!g&Bu!p z6TZ)gwz{Em@bQGM7lj_KS3_O|1}hq-YI`0`$&1v|IsQ5%r{(h9+g|TvOS#|tt~J|{ r^h3;s#cq+>577s*_Ajenec_H1G0#Z6thXGPA{abf{an^LB{Ts52`Cin literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig-members.html b/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig-members.html new file mode 100644 index 000000000..93b4396d0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig-members.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoAsyncIslandMig< EOT > Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
contpeoAsyncIslandMig< EOT > [private]
coop_empeoAsyncIslandMig< EOT > [private]
destinationpeoAsyncIslandMig< EOT > [private]
empeoAsyncIslandMig< EOT > [private]
emigrate()peoAsyncIslandMig< EOT > [private]
getKey()Communicable
getOwner()Cooperative
immpeoAsyncIslandMig< EOT > [private]
immigrate()peoAsyncIslandMig< EOT > [private]
keyCommunicable [protected]
lock()Communicable
notifySending()Cooperative [virtual]
num_commCommunicable [protected, static]
operator()()peoAsyncIslandMig< EOT >
pack()peoAsyncIslandMig< EOT > [virtual]
peoAsyncIslandMig(eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)peoAsyncIslandMig< EOT >
replacepeoAsyncIslandMig< EOT > [private]
resume()Communicable
selectpeoAsyncIslandMig< EOT > [private]
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
send(Cooperative *__coop)Cooperative
setOwner(Runner &__runner)Cooperative
sourcepeoAsyncIslandMig< EOT > [private]
stop()Communicable
topologypeoAsyncIslandMig< EOT > [private]
unlock()Communicable
unpack()peoAsyncIslandMig< EOT > [virtual]
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig.html b/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig.html new file mode 100644 index 000000000..c3ff8152d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig.html @@ -0,0 +1,300 @@ + + +ParadisEO-PEO: peoAsyncIslandMig< EOT > Class Template Reference + + + + +
+
+ +

peoAsyncIslandMig< EOT > Class Template Reference

The peoAsyncIslandMig class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. +More... +

+#include <peoAsyncIslandMig.h> +

+

Inheritance diagram for peoAsyncIslandMig< EOT >: +

+ +Cooperative +Communicable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoAsyncIslandMig (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)
 Constructor for the peoAsyncIslandMig class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters.
void operator() ()
 Function operator to be called as checkpoint for performing the migration step.
+void pack ()
 Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function.
+void unpack ()
 Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function.

Private Member Functions

+void emigrate ()
+void immigrate ()

Private Attributes

+eoContinue< EOT > & cont
+eoSelect< EOT > & select
+eoReplacement< EOT > & replace
+Topologytopology
+eoPop< EOT > & source
+eoPop< EOT > & destination
+std::queue< eoPop< EOT > > imm
+std::queue< eoPop< EOT > > em
+std::queue< Cooperative * > coop_em
+

Detailed Description

+

template<class EOT>
+ class peoAsyncIslandMig< EOT >

+ +The peoAsyncIslandMig class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. +

+continuation criterion, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. As opposed to the synchronous migration model, in the asynchronous migration approach, there is no synchronization step between islands after performing the emigration phase.

+The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm:

+ + + + + + + + + + + + + +
do {    
         select( population, offsprings );   // select the offsprings from the current population
         transform( offsprings );   // crossover and mutation operators are applied on the selected offsprings
         evaluate( offsprings );   // evaluation step of the resulting offsprings
         replace( population, offsprings );   // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy
} while ( eaCheckpointContinue( population ) );   // checkpoint operators are applied on the current population, including the migration operator, if any specified
+

+Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the Runner class (for example a peoEA object represents a possible owner). A simple example is offered bellow:

+

    +
  1. +topological model to be followed when performing migrations:
    +
    + + + +
    RingTopology migTopology;   // a simple ring topological model - each island communicates with two other islands
    +

    +

  2. +
  3. +the continuation criterion, selection and replacement strategy etc. are defined:
    +
    + + + + + + + + + + + + + + + + + +
    eoPop< EOT > population( POP_SIZE, popInitializer );   // population of individuals to be used for the evolutionary algorithm
       
    eoPeriodicContinue< EOT > migCont( MIG_FREQ );   // migrations occur periodically at MIG_FREQ iterations
    eoRandomSelect< EOT > migSelectStrategy;   // selection strategy - in this case a random selection is applied
    eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE );   // number of individuals to be selected using the specified strategy
    eoPlusReplacement< EOT > migReplace;   // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals
       
    peoAsyncIslandMig< EOT > asyncMigration(
    +          migCont, migSelect, migReplace, migTopology,
    +          population, population
    + );  
    // asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
    +

    +

  4. +
  5. +creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope):
    +
    + + + + + + + + + + + + + +
    ...    
    eoGenContinue< EOT > eaCont( NUM_GEN );   // the evolutionary algorithm will stop after NUM_GEN generations
    eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // number of individuals to be selected using the specified strategy
    ...    
    eaCheckpointContinue.add( asyncMigration );   // adding the migration operator as checkpoint element
    ...    
    +

    +

  6. +
  7. +definition of an owner evolutionary algorithm (an object inheriting the Runner class):
    +
    + + + + + + + +
    peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace);   // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above
    asyncMigration.setOwner( eaAlg );   // setting the evolutionary algorithm as owner of the migration object
    eaAlg( population );   // applying the evolutionary algorithm on a given population
    +
  8. +
+

+The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively.

+The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +

+ +

+Definition at line 127 of file peoAsyncIslandMig.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
peoAsyncIslandMig< EOT >::peoAsyncIslandMig (eoContinue< EOT > &  __cont,
eoSelect< EOT > &  __select,
eoReplacement< EOT > &  __replace,
Topology __topology,
eoPop< EOT > &  __source,
eoPop< EOT > &  __destination 
)
+
+
+ +

+Constructor for the peoAsyncIslandMig class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. +

+

Parameters:
+ + + + + + + +
eoContinue< EOT >& __cont - continuation criterion specifying whether the migration is performed or not;
eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population;
eoReplacement< EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population;
Topology& __topology - topological model to be followed when performing migrations;
eoPop< EOT >& __source - source population from which the emigrant individuals are selected;
eoPop< EOT >& __destination - destination population in which the immigrant population are integrated.
+
+ +

+Definition at line 186 of file peoAsyncIslandMig.h. +

+References Topology::add(). +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + +
void peoAsyncIslandMig< EOT >::operator() (  ) 
+
+
+ +

+Function operator to be called as checkpoint for performing the migration step. +

+The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +

+Definition at line 263 of file peoAsyncIslandMig.h. +

+References peoAsyncIslandMig< EOT >::cont, peoAsyncIslandMig< EOT >::emigrate(), peoAsyncIslandMig< EOT >::immigrate(), and peoAsyncIslandMig< EOT >::source. +

+

+


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig.png b/trunk/paradiseo-peo/docs/html/classpeoAsyncIslandMig.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b2d9f659674be4d2ebb1a6c17af6a930d7ee32 GIT binary patch literal 637 zcmV-@0)qXCP)Z#f9VCm?raWIa_n*oV zrv07wb&y@oyoaTFqj{@0KEAdwZ_!njToPj@&|oG!)|6FtGCS!Dy`%l~41P8HaXAxv zx%`}nJy#|utE{rhDyyur@5WC0*?g}59h5z0cSjtdqjb2H39Gd& zEcxL@$fdA06JiO>MRqh3mJ{!4|B~%(%FbjbeW6eK`SEgA>tOTPb7g|E$||d@vdSv^ zZY)k|24>usRrc>#yB-0{AlUU;;eF>PW8=;a3+vf$SPtNo0bm*`vX+P1a7hrBuN+>G z2*@GIC`c?vZNoyA7c7JhtjUkKi_(E?VVX8RaWIB3oVaDNvS!8Bh%9F6C6-w$s!5-z zGFxm}L>U>^Ux37>MJOz + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoEA< EOT > Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
contpeoEA< EOT > [private]
getID()Runner
getKey()Communicable
isLocal()Runner
keyCommunicable [protected]
lock()Communicable
notifySendingTermination()Runner
num_commCommunicable [protected, static]
operator()(eoPop< EOT > &__pop)peoEA< EOT >
packTermination()Runner
peoEA(eoContinue< EOT > &__cont, peoPopEval< EOT > &__pop_eval, eoSelect< EOT > &__select, peoTransform< EOT > &__trans, eoReplacement< EOT > &__replace)peoEA< EOT >
poppeoEA< EOT > [private]
pop_evalpeoEA< EOT > [private]
replacepeoEA< EOT > [private]
resume()Communicable
run()peoEA< EOT > [virtual]
Runner()Runner
selectpeoEA< EOT > [private]
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setActive()Thread
setPassive()Thread
start()Runner [virtual]
stop()Communicable
terminate()Runner
Thread()Thread
transpeoEA< EOT > [private]
unlock()Communicable
waitStarting()Runner
~Communicable()Communicable [virtual]
~Thread()Thread [virtual]


Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoEA.html b/trunk/paradiseo-peo/docs/html/classpeoEA.html new file mode 100644 index 000000000..e709a5671 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoEA.html @@ -0,0 +1,236 @@ + + +ParadisEO-PEO: peoEA< EOT > Class Template Reference + + + + +
+
+ +

peoEA< EOT > Class Template Reference

The peoEA class offers an elementary evolutionary algorithm implementation. +More... +

+#include <peoEA.h> +

+

Inheritance diagram for peoEA< EOT >: +

+ +Runner +Communicable +Thread + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoEA (eoContinue< EOT > &__cont, peoPopEval< EOT > &__pop_eval, eoSelect< EOT > &__select, peoTransform< EOT > &__trans, eoReplacement< EOT > &__replace)
 Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism.
+void run ()
 Evolutionary algorithm function - a side effect of the fact that the class is derived from the Runner class, thus requiring the existence of a run function, the algorithm being executed on a distinct thread.
void operator() (eoPop< EOT > &__pop)
 Function operator for specifying the population to be associated with the algorithm.

Private Attributes

+eoContinue< EOT > & cont
+peoPopEval< EOT > & pop_eval
+eoSelect< EOT > & select
+peoTransform< EOT > & trans
+eoReplacement< EOT > & replace
+eoPop< EOT > * pop
+

Detailed Description

+

template<class EOT>
+ class peoEA< EOT >

+ +The peoEA class offers an elementary evolutionary algorithm implementation. +

+In addition, as compared with the algorithms provided by the EO framework, the peoEA class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the EO framework, the drawback resides in the fact that the EO implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a peoEA object:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
...    
eoPop< EOT > population( POP_SIZE, popInitializer );   // creation of a population with POP_SIZE individuals - the popInitializer is a functor to be called for each individual
   
eoGenContinue< EOT > eaCont( NUM_GEN );   // number of generations for the evolutionary algorithm
eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects
   
peoSeqPopEval< EOT > eaPopEval( evalFunction );   // sequential evaluation functor wrapper - evalFunction represents the actual evaluation functor
   
eoRankingSelect< EOT > selectionStrategy;   // selection strategy for creating the offspring population - a simple ranking selection in this case
eoSelectNumber< EOT > eaSelect( selectionStrategy, POP_SIZE );   // the number of individuals to be selected for creating the offspring population
eoRankingSelect< EOT > selectionStrategy;   // selection strategy for creating the offspring population - a simple ranking selection in this case
   
eoSGATransform< EOT > transform( crossover, CROSS_RATE, mutation, MUT_RATE );   // transformation operator - crossover and mutation operators with their associated probabilities
peoSeqTransform< EOT > eaTransform( transform );   // ParadisEO specific sequential operator - a parallel version may be specified in the same manner
   
eoPlusReplacement< EOT > eaReplace;   // replacement strategy - for integrating the offspring resulting individuals in the initial population
   
peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace );   // ParadisEO evolutionary algorithm integrating the above defined objects
eaAlg( population );   // specifying the initial population for the algorithm
...    
+ +

+ +

+Definition at line 69 of file peoEA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
peoEA< EOT >::peoEA (eoContinue< EOT > &  __cont,
peoPopEval< EOT > &  __pop_eval,
eoSelect< EOT > &  __select,
peoTransform< EOT > &  __trans,
eoReplacement< EOT > &  __replace 
)
+
+
+ +

+Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. +

+Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the EO package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes.

+

Parameters:
+ + + + + + +
eoContinue< EOT >& __cont - continuation criterion specifying whether the algorithm should continue or not;
peoPopEval< EOT >& __pop_eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.;
eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of offspring individuals;
peoTransform< EOT >& __trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform;
eoReplacement< EOT >& __replace - replacement strategy for integrating the offspring individuals in the initial population;
+
+ +

+Definition at line 113 of file peoEA.h. +

+References peoEA< EOT >::pop_eval, and peoEA< EOT >::trans. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
void peoEA< EOT >::operator() (eoPop< EOT > &  __pop  ) 
+
+
+ +

+Function operator for specifying the population to be associated with the algorithm. +

+

Parameters:
+ + +
eoPop< EOT >& __pop - initial population of the algorithm, to be iteratively evolved;
+
+ +

+Definition at line 129 of file peoEA.h. +

+References peoEA< EOT >::pop. +

+

+


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoEA.png b/trunk/paradiseo-peo/docs/html/classpeoEA.png new file mode 100644 index 0000000000000000000000000000000000000000..e3384cb4437e114ee4fbf2197291f5fa2788e106 GIT binary patch literal 637 zcmV-@0)qXCP)U;@tD;oEsjW5UXp-yw(wK5{4 z&H6OxE)W4uou#yc+5Qv+061!4bl5`Jw=)@QP&m5B0i5ub=VNX6L5F2-(Q0G zH0QO;xK z3^K?dgABSWwC^|Cj@b9B)1dzV!Sv#Id1!5MyeJfwB}vx7Wp$fQg|J;?rvyx7V>a#W?)e0<4g z_94jo&~F}2H39i#m4GVGPyEkID_)v~XUJDaA=g1+jsyZ}nWrWnkw^z2X|f#=V-Op5 zqe~a0!y`&hP8x$L=<|wPW<8#zkU6`Z(@^qi0QdOr-Flb+%LGKF{z1{i) XqeU7?v_)yU00000NkvXXu0mjfWw#p0 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc-members.html b/trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc-members.html new file mode 100644 index 000000000..d8f257092 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc-members.html @@ -0,0 +1,38 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoNoAggEvalFunc< EOT > Member List

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

+ +
operator()(EOT &__sol, const typename EOT::Fitness &__fit)peoNoAggEvalFunc< EOT >


Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc.html b/trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc.html new file mode 100644 index 000000000..0635d10c3 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO: peoNoAggEvalFunc< EOT > Class Template Reference + + + + +
+
+ +

peoNoAggEvalFunc< EOT > Class Template Reference

The peoNoAggEvalFunc class does nothing more than an association between a fitness value and a specified individual. +More... +

+#include <peoNoAggEvalFunc.h> +

+

Inheritance diagram for peoNoAggEvalFunc< EOT >: +

+ +peoAggEvalFunc< EOT > + +List of all members. + + + + + +

Public Member Functions

+void operator() (EOT &__sol, const typename EOT::Fitness &__fit)
 Operator which sets as fitness the __fit value for the __sol individual.
+

Detailed Description

+

template<class EOT>
+ class peoNoAggEvalFunc< EOT >

+ +The peoNoAggEvalFunc class does nothing more than an association between a fitness value and a specified individual. +

+The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness value is explicitly specified. +

+ +

+Definition at line 34 of file peoNoAggEvalFunc.h.


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc.png b/trunk/paradiseo-peo/docs/html/classpeoNoAggEvalFunc.png new file mode 100644 index 0000000000000000000000000000000000000000..0db69caaa3a0fec69f47e443be9ab895961e793f GIT binary patch literal 601 zcmV-f0;c_mP)v38agL;tJx(g&dQ^{n$42hJ8>NWbK4Lkc>sY{e zY=x4Cj&(`{xU-_`cmN-C+&mVrdCVmZOuA?D*rnpg{O$xbGXpV2E zA`e3j`1H61w)371&gkBPUxCja3;YW3w7>rc#^n+5zW`sq-wb@YUf&G-hN)QK1zz9< zUf=~@;03-raL$M!&N^!bF3O0|qq=8l9Ja(z@9=lWoNrlXkiW*b45(EtDmZm~;yidhJIL*B$-^_bpJMY=x nfbK1L3Or*h@GHQx{{DXegBLo(z_a$e00000NkvXXu0mjf5knV_ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classpeoParaPopEval-members.html b/trunk/paradiseo-peo/docs/html/classpeoParaPopEval-members.html new file mode 100644 index 000000000..78a780420 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoParaPopEval-members.html @@ -0,0 +1,73 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoParaPopEval< EOT > Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ad_solpeoParaPopEval< EOT > [private]
Communicable()Communicable
execute()peoParaPopEval< EOT > [virtual]
funcspeoParaPopEval< EOT > [private]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
merge_evalpeoParaPopEval< EOT > [private]
no_merge_evalpeoParaPopEval< EOT > [private]
notifySendingAllResourceRequests()peoParaPopEval< EOT > [virtual]
notifySendingData()peoParaPopEval< EOT > [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
num_funcpeoParaPopEval< EOT > [private]
one_funcpeoParaPopEval< EOT > [private]
operator()(eoPop< EOT > &__pop)peoParaPopEval< EOT > [virtual]
packData()peoParaPopEval< EOT > [virtual]
packResourceRequest()Service
packResult()peoParaPopEval< EOT > [virtual]
peoParaPopEval(eoEvalFunc< EOT > &__eval_func)peoParaPopEval< EOT >
peoParaPopEval(const std::vector< eoEvalFunc< EOT > * > &__funcs, peoAggEvalFunc< EOT > &__merge_eval)peoParaPopEval< EOT >
progressionpeoParaPopEval< EOT > [private]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
solpeoParaPopEval< EOT > [private]
stop()Communicable
taskspeoParaPopEval< EOT > [private]
totalpeoParaPopEval< EOT > [private]
unlock()Communicable
unpackData()peoParaPopEval< EOT > [virtual]
unpackResult()peoParaPopEval< EOT > [virtual]
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoParaPopEval.html b/trunk/paradiseo-peo/docs/html/classpeoParaPopEval.html new file mode 100644 index 000000000..abf426a7a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoParaPopEval.html @@ -0,0 +1,411 @@ + + +ParadisEO-PEO: peoParaPopEval< EOT > Class Template Reference + + + + +
+
+ +

peoParaPopEval< EOT > Class Template Reference

The peoParaPopEval represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. +More... +

+#include <peoParaPopEval.h> +

+

Inheritance diagram for peoParaPopEval< EOT >: +

+ +peoPopEval< EOT > +Service +Communicable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoParaPopEval (eoEvalFunc< EOT > &__eval_func)
 Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor.
 peoParaPopEval (const std::vector< eoEvalFunc< EOT > * > &__funcs, peoAggEvalFunc< EOT > &__merge_eval)
 Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function.
void operator() (eoPop< EOT > &__pop)
 Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population.
void packData ()
 Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
void unpackData ()
 Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
+void execute ()
 Auxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function.
void packResult ()
 Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
void unpackResult ()
 Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
void notifySendingData ()
 Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase.
void notifySendingAllResourceRequests ()
 Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase.

Private Attributes

+const std::vector< eoEvalFunc<
+ EOT > * > & 
funcs
+std::vector< eoEvalFunc< EOT > * > one_func
+peoAggEvalFunc< EOT > & merge_eval
+peoNoAggEvalFunc< EOT > no_merge_eval
+std::queue< EOT * > tasks
+std::map< EOT *, std::pair<
+ unsigned, unsigned > > 
progression
+unsigned num_func
+EOT sol
+EOT * ad_sol
+unsigned total
+

Detailed Description

+

template<class EOT>
+ class peoParaPopEval< EOT >

+ +The peoParaPopEval represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. +

+The class offers the possibility of chosing between a single-function evaluation and an aggregate evaluation function, including several sub-evalution functions. +

+ +

+Definition at line 41 of file peoParaPopEval.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
peoParaPopEval< EOT >::peoParaPopEval (eoEvalFunc< EOT > &  __eval_func  ) 
+
+
+ +

+Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. +

+

Parameters:
+ + +
eoEvalFunc< EOT >& __eval_func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population
+
+ +

+Definition at line 117 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::one_func. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + +
peoParaPopEval< EOT >::peoParaPopEval (const std::vector< eoEvalFunc< EOT > * > &  __funcs,
peoAggEvalFunc< EOT > &  __merge_eval 
)
+
+
+ +

+Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. +

+

Parameters:
+ + + +
const std :: vector< eoEvalFunc < EOT >* >& __funcs - vector of EO-derived partial evaluation functors;
peoAggEvalFunc< EOT >& __merge_eval - aggregation functor for creating a fitness value out of the partial fitness values.
+
+ +

+Definition at line 126 of file peoParaPopEval.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
void peoParaPopEval< EOT >::operator() (eoPop< EOT > &  __pop  )  [virtual]
+
+
+ +

+Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. +

+

Parameters:
+ + +
eoPop< EOT >& __pop - population to be evaluated by applying the evaluation functor specified in the constructor.
+
+ +

+Implements peoPopEval< EOT >. +

+Definition at line 137 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::funcs, peoParaPopEval< EOT >::progression, Service::requestResourceRequest(), Communicable::stop(), peoParaPopEval< EOT >::tasks, and peoParaPopEval< EOT >::total. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::packData (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 158 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::progression, and peoParaPopEval< EOT >::tasks. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::unpackData (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 172 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::ad_sol, peoParaPopEval< EOT >::num_func, and peoParaPopEval< EOT >::sol. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::packResult (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 189 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::ad_sol, and peoParaPopEval< EOT >::sol. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::unpackResult (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 198 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::ad_sol, Service::getOwner(), peoParaPopEval< EOT >::merge_eval, peoParaPopEval< EOT >::progression, Communicable::resume(), Thread::setActive(), and peoParaPopEval< EOT >::total. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::notifySendingData (  )  [virtual]
+
+
+ +

+Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 229 of file peoParaPopEval.h. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::notifySendingAllResourceRequests (  )  [virtual]
+
+
+ +

+Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 234 of file peoParaPopEval.h. +

+References Service::getOwner(), and Thread::setPassive(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoParaPopEval.png b/trunk/paradiseo-peo/docs/html/classpeoParaPopEval.png new file mode 100644 index 0000000000000000000000000000000000000000..3ddb392239123f182a27303d1cf1ebac4748a310 GIT binary patch literal 772 zcmV+f1N;1mP)3A-qBm$S^j5k55eni@U^@@nnu*_3N+u{Ee-V;17!BsHsF*)NP<|^;7zeOx z>`RMGU%=s!^)(!sf)CzfK#X7G3o$jZ6CpHx9T!0XFakXg5F{(Hq z;udkj3#0I|{SlnjQErGVO>v4-oZ=LxIK@2xC;Yhh>}TWu9>)$iVBf9RV+BCFTu4Ln z=Jo(L9%Y$S-z+v8Z;tb2YYlB{?Mcmr3K(#Hzh=X6&<{nJxwmZmtxDNb>UQ=H-+fCEu6 zPI3-babh?C_T9!zb=9>?swt$8G}O%|oNLzk!kNKT*DM?xi@LRul77k&E~(DNPclxO zq^1#*dmGLTzgclEHO|sEQVrye+zF(bJf2kRwm9fG({MRNF59Nq)v-8W$+6V98awVC za9lB`faFQTqve@y=rpZ!D zz!IZmHU-t1*30g@ZD!4TS^wkw0GymC?ha0NVf+Wf>N??=rmyAz0000 + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoParaSGATransform< EOT > Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
crosspeoParaSGATransform< EOT > [private]
cross_ratepeoParaSGATransform< EOT > [private]
execute()peoParaSGATransform< EOT > [virtual]
fatherpeoParaSGATransform< EOT > [private]
getKey()Communicable
getOwner()Service
idxpeoParaSGATransform< EOT > [private]
keyCommunicable [protected]
lock()Communicable
motherpeoParaSGATransform< EOT > [private]
mutpeoParaSGATransform< EOT > [private]
mut_ratepeoParaSGATransform< EOT > [private]
notifySendingAllResourceRequests()peoParaSGATransform< EOT > [virtual]
notifySendingData()peoParaSGATransform< EOT > [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
num_termpeoParaSGATransform< EOT > [private]
operator()(eoPop< EOT > &__pop)peoParaSGATransform< EOT >
packData()peoParaSGATransform< EOT > [virtual]
packResourceRequest()Service
packResult()peoParaSGATransform< EOT > [virtual]
peoParaSGATransform(eoQuadOp< EOT > &__cross, double __cross_rate, eoMonOp< EOT > &__mut, double __mut_rate)peoParaSGATransform< EOT >
poppeoParaSGATransform< EOT > [private]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()peoParaSGATransform< EOT > [virtual]
unpackResult()peoParaSGATransform< EOT > [virtual]
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoParaSGATransform.html b/trunk/paradiseo-peo/docs/html/classpeoParaSGATransform.html new file mode 100644 index 000000000..bab9d1d92 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoParaSGATransform.html @@ -0,0 +1,112 @@ + + +ParadisEO-PEO: peoParaSGATransform< EOT > Class Template Reference + + + + +
+
+ +

peoParaSGATransform< EOT > Class Template Reference

Inheritance diagram for peoParaSGATransform< EOT >: +

+ +peoTransform< EOT > +Service +Communicable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

peoParaSGATransform (eoQuadOp< EOT > &__cross, double __cross_rate, eoMonOp< EOT > &__mut, double __mut_rate)
+void operator() (eoPop< EOT > &__pop)
+void packData ()
+void unpackData ()
+void execute ()
+void packResult ()
+void unpackResult ()
+void notifySendingData ()
+void notifySendingAllResourceRequests ()

Private Attributes

+eoQuadOp< EOT > & cross
+double cross_rate
+eoMonOp< EOT > & mut
+double mut_rate
+unsigned idx
+eoPop< EOT > * pop
+EOT father
+EOT mother
+unsigned num_term
+

Detailed Description

+

template<class EOT>
+ class peoParaSGATransform< EOT >

+ + +

+ +

+Definition at line 36 of file peoParaSGATransform.h.


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:25 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoParaSGATransform.png b/trunk/paradiseo-peo/docs/html/classpeoParaSGATransform.png new file mode 100644 index 0000000000000000000000000000000000000000..95dfd12320a08b7c12fcda4fc50c179adbc8c4dd GIT binary patch literal 850 zcmV-Y1FigtP)QO#n1p?*+m^; z&4M@qvN^b9!3?m;f-rN@)VSIJN(`zj+7^RZ7I9x`b`fWh0(f!04&KS4m6adL9RUZ6 z0nPvze%mtq#_MbVtDF8l;QCo)00S7n00uCC0Ss_k01TFgA7EuA&H$$a0QlxCt)Lml z**06+DWjaBJ&p&<08hH6AJaL{c!9KktrMU3R7x4(T+%{tQAb1X)3+;n6yO}Mp`|oP zZ$z|$dpIR+30^jiRqwaY?Bzd2d$XvPEo(gR=uJPJS@?ekg?g9<=*cqg0W zMH_vNL2UulfTY=JM4Y%vP@)PT10dU014MuCB4{kg2Ug(qe+s~B^j$XgQCw78Fb7N) z)G?R=G#)d6n*pX6R9RHTpw1$45eFNbUI(=WX^qb=;w(}?a~ + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoPopEval< EOT > Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
execute()Service [virtual]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
operator()(eoPop< EOT > &__pop)=0peoPopEval< EOT > [pure virtual]
packData()Service [virtual]
packResourceRequest()Service
packResult()Service [virtual]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()Service [virtual]
unpackResult()Service [virtual]
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoPopEval.html b/trunk/paradiseo-peo/docs/html/classpeoPopEval.html new file mode 100644 index 000000000..8cbb6b29b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoPopEval.html @@ -0,0 +1,69 @@ + + +ParadisEO-PEO: peoPopEval< EOT > Class Template Reference + + + + +
+
+ +

peoPopEval< EOT > Class Template Reference

The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors. +More... +

+#include <peoPopEval.h> +

+

Inheritance diagram for peoPopEval< EOT >: +

+ +Service +Communicable +peoParaPopEval< EOT > +peoSeqPopEval< EOT > + +List of all members. + + + + + +

Public Member Functions

+virtual void operator() (eoPop< EOT > &__pop)=0
 Interface function providing the signature for constructing an evaluation functor.
+

Detailed Description

+

template<class EOT>
+ class peoPopEval< EOT >

+ +The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors. +

+The derived classes may be used as wrappers for EO-derived evaluation functors. In order to have an example, please refer to the implementation of the peoSeqPopEval and peoParaPopEval classes. +

+ +

+Definition at line 34 of file peoPopEval.h.


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoPopEval.png b/trunk/paradiseo-peo/docs/html/classpeoPopEval.png new file mode 100644 index 0000000000000000000000000000000000000000..100bbb7708cfffb99c2337daff193b7a05ccf0b4 GIT binary patch literal 1211 zcmeAS@N?(olHy`uVBq!ia0y~yU~~eq53n!;$>yH&6F^ELz$e7@|Ns9$=Kuc(=Fd-< z0AzvjfddDs5B+}vEaktG3V{v+`QWcJZ-rmFY+gwPbh0l z+#S%!xbweYTA=(g5%WNYlR*Ld-U?imUq3HkQDC~(UY)JKe%ub)zxwyu>+QLksv(Ew zyJRq&-(|kBagA-8z<%Z#trvb+L?xGrxg_5eZ>na@{{Caxw}3-)4=YG;A2UAm&p0>b z?Z=km((+$o`>pN*6A7!CZUY;gD!l)@#QbSA03220882 zQ%>>Rsh)B1@2hX?e(#@rXKzn|wOM}6>q0i!!uq`UL#3q)Z!X>z_`mvc?#&hV&*uB4 zukrq7wod6z*zrx91D~(+jGmVKn(2Fs_VQOgJ5-z&bhN4k@MNm{dYbcB@?8Jjd12xN zD}Cne{o78@NNp~0Gdsoeu}ebld5d;;qGLrO&rh3}A2wfR9)7NP`l9pBcsS z%ii8L_4?u0#Xk@3i_(1f{dd;V{gx+yKKL6z*xT0)4nXEq*Q;@mi| zCHaBHn>inDoPTpO^2D!#R>g+kDJ_w6r6&97ZBvUE&hoKQNijP!&z0$N;X{r%-)4^9 zgI^d{1YBU6D5v}Q)xnnKPCv7>>#{!`UGu+3U~i($LDSfe()o!7bKd>scM5jX6p$0m zOsbs_u)NK-x82sNW7W+mEdc^fRqrO;cJ*!E_>AM2mF7bUtKAAFCph|}RO{GU%3nN7 zytDoNhpj$$y4@EoHsdf+$9u)jQQuRHgWc!+w?hbSziRtWA61|i`_fidAtv8mN+*3#vXMOoiMei`lij3op0P`8nOBKIJFe4-ITf7 zc3r!F@l3w1ojJ*RmtVe^ZzalR8prQnbkpwI;UKG-n*#scdolG^f>%Y}7o$Y$m+#GV r-%JU}yWY6r)3uF3>+kf2y|TBGw3FIaDzySw(lB_s`njxgN@xNAZqPj* literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classpeoSeqPopEval-members.html b/trunk/paradiseo-peo/docs/html/classpeoSeqPopEval-members.html new file mode 100644 index 000000000..0331cd578 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoSeqPopEval-members.html @@ -0,0 +1,63 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoSeqPopEval< EOT > Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
evalpeoSeqPopEval< EOT > [private]
execute()Service [virtual]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
operator()(eoPop< EOT > &__pop)peoSeqPopEval< EOT > [virtual]
packData()Service [virtual]
packResourceRequest()Service
packResult()Service [virtual]
peoSeqPopEval(eoEvalFunc< EOT > &__eval)peoSeqPopEval< EOT >
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()Service [virtual]
unpackResult()Service [virtual]
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoSeqPopEval.html b/trunk/paradiseo-peo/docs/html/classpeoSeqPopEval.html new file mode 100644 index 000000000..d4647e01b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoSeqPopEval.html @@ -0,0 +1,142 @@ + + +ParadisEO-PEO: peoSeqPopEval< EOT > Class Template Reference + + + + +
+
+ +

peoSeqPopEval< EOT > Class Template Reference

The peoSeqPopEval class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an eoEvalFunc< EOT >-derived class as evaluation functor. +More... +

+#include <peoSeqPopEval.h> +

+

Inheritance diagram for peoSeqPopEval< EOT >: +

+ +peoPopEval< EOT > +Service +Communicable + +List of all members. + + + + + + + + + + + +

Public Member Functions

 peoSeqPopEval (eoEvalFunc< EOT > &__eval)
 Constructor function - it only sets an internal reference to point to the specified evaluation object.
void operator() (eoPop< EOT > &__pop)
 Operator for evaluating all the individuals of a given population - in a sequential iterative manner.

Private Attributes

+eoEvalFunc< EOT > & eval
+

Detailed Description

+

template<class EOT>
+ class peoSeqPopEval< EOT >

+ +The peoSeqPopEval class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an eoEvalFunc< EOT >-derived class as evaluation functor. +

+The specified EO evaluation object is applyied in an iterative manner to each individual of a specified population. +

+ +

+Definition at line 36 of file peoSeqPopEval.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
peoSeqPopEval< EOT >::peoSeqPopEval (eoEvalFunc< EOT > &  __eval  ) 
+
+
+ +

+Constructor function - it only sets an internal reference to point to the specified evaluation object. +

+

Parameters:
+ + +
eoEvalFunc< EOT >& __eval - evaluation object to be applied for each individual of a specified population
+
+ +

+Definition at line 56 of file peoSeqPopEval.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
void peoSeqPopEval< EOT >::operator() (eoPop< EOT > &  __pop  )  [virtual]
+
+
+ +

+Operator for evaluating all the individuals of a given population - in a sequential iterative manner. +

+

Parameters:
+ + +
eoPop< EOT >& __pop - population to be evaluated.
+
+ +

+Implements peoPopEval< EOT >. +

+Definition at line 61 of file peoSeqPopEval.h. +

+References peoSeqPopEval< EOT >::eval. +

+

+


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoSeqPopEval.png b/trunk/paradiseo-peo/docs/html/classpeoSeqPopEval.png new file mode 100644 index 0000000000000000000000000000000000000000..df2001515c1532a88a54eed65d6bcf9ad0a58de4 GIT binary patch literal 776 zcmV+j1NZ!iP)nL9!;X98JcZAis%u2!F=lj12MiXWiI-hgIX3vEF8R zz>%rX0xJ0x3&*Bv{xr*rZ^8R`6rvBbAHGRQpq!{`j;>$ z)3}NSATk^iG|Osze97WGwk#;uH5o6yzbKEH6%&v!oJX9<x4h2&8_Du;5s-pJPdLA!ydK6Q5vlC!+K$u3lqmRAkm$ zd7K=^GS-o`a!p&g)_$C2{fSA~I+U@DWh`SE%UH&`&RY2_ch~3DFJ-CU=b;wGN#}v9 zN~Ec_m>jZHUjnsOSjD0*aVyJvEH6k%5$ipsavMckSU!vzA&ONy5V^R9j#tp}l3eI` zsXUJ3rSlka9{K)4d2J%u<@@Vd9z#E-nqU6~>-}M@S=P!mZRJ|~ahCNbCSmJP#xj<% zjAbli8S6R=){V_AbAC70TdW;ik)SH8Hti{E@q?zSS;un4df&DlphQoQ^3jl4DPD3|6EBrV6|b7d z9bC=hmh(vW7g3T{-CxH%ZpTq{=f4-XW-S`Vnq@6q)BXW=2mS6mK?9Be0000 + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoSeqTransform< EOT > Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
execute()peoSeqTransform< EOT > [inline, virtual]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
operator()(eoPop< EOT > &__pop)peoSeqTransform< EOT >
packData()peoSeqTransform< EOT > [inline, virtual]
packResourceRequest()Service
packResult()peoSeqTransform< EOT > [inline, virtual]
peoSeqTransform(eoTransform< EOT > &__trans)peoSeqTransform< EOT >
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
transpeoSeqTransform< EOT > [private]
unlock()Communicable
unpackData()peoSeqTransform< EOT > [inline, virtual]
unpackResult()peoSeqTransform< EOT > [inline, virtual]
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoSeqTransform.html b/trunk/paradiseo-peo/docs/html/classpeoSeqTransform.html new file mode 100644 index 000000000..63b668f8c --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoSeqTransform.html @@ -0,0 +1,160 @@ + + +ParadisEO-PEO: peoSeqTransform< EOT > Class Template Reference + + + + +
+
+ +

peoSeqTransform< EOT > Class Template Reference

The peoSeqTransform represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms. +More... +

+#include <peoSeqTransform.h> +

+

Inheritance diagram for peoSeqTransform< EOT >: +

+ +peoTransform< EOT > +Service +Communicable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoSeqTransform (eoTransform< EOT > &__trans)
 Constructor function - sets an internal reference towards the specified EO-derived transform object.
void operator() (eoPop< EOT > &__pop)
 Operator for applying the specified transform operators on each individual of the given population.
+virtual void packData ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.
+virtual void unpackData ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.
+virtual void execute ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.
+virtual void packResult ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.
+virtual void unpackResult ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.

Private Attributes

+eoTransform< EOT > & trans
+

Detailed Description

+

template<class EOT>
+ class peoSeqTransform< EOT >

+ +The peoSeqTransform represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms. +

+A minimal set of interface functions is also provided for creating the link with the parallel architecture of the ParadisEO framework. +

+ +

+Definition at line 35 of file peoSeqTransform.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
peoSeqTransform< EOT >::peoSeqTransform (eoTransform< EOT > &  __trans  ) 
+
+
+ +

+Constructor function - sets an internal reference towards the specified EO-derived transform object. +

+

Parameters:
+ + +
eoTransform< EOT >& __trans - EO-derived transform object including crossover and mutation operators.
+
+ +

+Definition at line 70 of file peoSeqTransform.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
void peoSeqTransform< EOT >::operator() (eoPop< EOT > &  __pop  ) 
+
+
+ +

+Operator for applying the specified transform operators on each individual of the given population. +

+

Parameters:
+ + +
eoPop< EOT >& __pop - population to be transformed by applying the crossover and mutation operators.
+
+ +

+Definition at line 75 of file peoSeqTransform.h. +

+References peoSeqTransform< EOT >::trans. +

+

+


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoSeqTransform.png b/trunk/paradiseo-peo/docs/html/classpeoSeqTransform.png new file mode 100644 index 0000000000000000000000000000000000000000..b2a4c4196198d486638cecdd366a3c95781656c3 GIT binary patch literal 791 zcmV+y1L*vTP)006)Q0{{R3aTRq$0000OP)t-s|Ns90 z00960z@MLBkN^MxkN^Mxkifved&2+Z00001bW%=J06^y0W&i*Jtw}^dRA_{ zAPfLt^U`O;4McCyUTB|k|07fq|CnSQTiYZvBH1;@_7^~zajaqct6a7}QMLRw@TWk4 z<=G)`v8x{f@$UI2K{**h3;`n|?a~X8H`Is_YyBCJs0c`803nfZ_J{hjV5skGC8E@o zK!jXhM(zYS_VyTvZCK^qhIwWV<$DOBff%wSQO2jEe4!X<;3-i3HhQ#t9X|6#;IG@e zgSXq)n}hEkWdjW~&_DwXH1I!w>OVN&|2MXQQyJ0#4^uD4!0!?`XFz$hr)T)~Kz{{{ zkg^$L%Haw~BGy+)id+Iyeun2VBoLOli=$x5x5OU&CP;@s${ut1B=)zq1fRURQ%s0d5I(eMrtjB=a8F)|fB|-I@?tz(Xy( z{6{GzTL$JG;V@m(%BB%#v&{Io2G=220_|)vT z4iV5fa`?l1I)|%{Pjyb(c%Liuc2w%+KK;2p=y~JWaPo0f1p%cEct0KG77ub{4?+XC z3i6r7PQ%QHHdkLheQuh=zK76*6atrlTuq={)ut?MV3$P_r1Q0czhy{{fg0 VO|nVpTx9?N002ovPDHLkV1jNJX>tGn literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig-members.html b/trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig-members.html new file mode 100644 index 000000000..420239fe8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig-members.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoSyncIslandMig< EOT > Member List

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
contpeoSyncIslandMig< EOT > [private]
coop_empeoSyncIslandMig< EOT > [private]
destinationpeoSyncIslandMig< EOT > [private]
empeoSyncIslandMig< EOT > [private]
emigrate()peoSyncIslandMig< EOT > [private]
getKey()Communicable
getOwner()Cooperative
immpeoSyncIslandMig< EOT > [private]
immigrate()peoSyncIslandMig< EOT > [private]
keyCommunicable [protected]
lock()Communicable
notifySending()peoSyncIslandMig< EOT > [virtual]
num_commCommunicable [protected, static]
operator()()peoSyncIslandMig< EOT >
pack()peoSyncIslandMig< EOT > [virtual]
peoSyncIslandMig(unsigned __frequency, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)peoSyncIslandMig< EOT >
replacepeoSyncIslandMig< EOT > [private]
resume()Communicable
selectpeoSyncIslandMig< EOT > [private]
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
send(Cooperative *__coop)Cooperative
setOwner(Runner &__runner)Cooperative
sourcepeoSyncIslandMig< EOT > [private]
stop()Communicable
syncpeoSyncIslandMig< EOT > [private]
topologypeoSyncIslandMig< EOT > [private]
unlock()Communicable
unpack()peoSyncIslandMig< EOT > [virtual]
~Communicable()Communicable [virtual]


Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig.html b/trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig.html new file mode 100644 index 000000000..100929cfb --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig.html @@ -0,0 +1,305 @@ + + +ParadisEO-PEO: peoSyncIslandMig< EOT > Class Template Reference + + + + +
+
+ +

peoSyncIslandMig< EOT > Class Template Reference

The peoSyncIslandMig class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. +More... +

+#include <peoSyncIslandMig.h> +

+

Inheritance diagram for peoSyncIslandMig< EOT >: +

+ +Cooperative +Communicable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoSyncIslandMig (unsigned __frequency, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)
 Constructor for the peoSyncIslandMig class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters.
void operator() ()
 Function operator to be called as checkpoint for performing the migration step.
+void pack ()
 Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function.
+void unpack ()
 Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function.
+void notifySending ()
 Auxiliary function dealing with migration notifications. There is no need to explicitly call the function.

Private Member Functions

+void emigrate ()
+void immigrate ()

Private Attributes

+eoPeriodicContinue< EOT > cont
+eoSelect< EOT > & select
+eoReplacement< EOT > & replace
+Topologytopology
+eoPop< EOT > & source
+eoPop< EOT > & destination
+std::queue< eoPop< EOT > > imm
+std::queue< eoPop< EOT > > em
+std::queue< Cooperative * > coop_em
+sem_t sync
+

Detailed Description

+

template<class EOT>
+ class peoSyncIslandMig< EOT >

+ +The peoSyncIslandMig class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. +

+frequency of the migrations, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. The main difference as opposed to the asynchronous migration model is the synchronization step performed after selecting and sending the emigrant individuals.

+The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm:

+ + + + + + + + + + + + + +
do {    
         select( population, offsprings );   // select the offsprings from the current population
         transform( offsprings );   // crossover and mutation operators are applied on the selected offsprings
         evaluate( offsprings );   // evaluation step of the resulting offspring
         replace( population, offsprings );   // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy
} while ( eaCheckpointContinue( population ) );   // checkpoint operators are applied on the current population, including the migration operator, if any specified
+

+Constructing a synchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the Runner class (for example a peoEA object represents a possible owner). A simple example is offered bellow:

+

    +
  1. +topological model to be followed when performing migrations:
    +
    + + + +
    RingTopology migTopology;   // a simple ring topological model - each island communicates with two other islands
    +

    +

  2. +
  3. +the continuation criterion, selection and replacement strategy etc. are defined:
    +
    + + + + + + + + + + + + + + + +
    eoPop< EOT > population( POP_SIZE, popInitializer );   // population of individuals to be used for the evolutionary algorithm
       
    eoRandomSelect< EOT > migSelectStrategy;   // selection strategy - in this case a random selection is applied
    eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE );   // number of individuals to be selected using the specified strategy
    eoPlusReplacement< EOT > migReplace;   // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals
       
    peoSyncIslandMig< EOT > syncMigration(
    +          MIG_FREQ, migSelect, migReplace, migTopology,
    +          population, population
    + );  
    // synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
    +

    +

  4. +
  5. +creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope):
    +
    + + + + + + + + + + + + + +
    ...    
    eoGenContinue< EOT > eaCont( NUM_GEN );   // the evolutionary algorithm will stop after NUM_GEN generations
    eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // number of individuals to be selected using the specified strategy
    ...    
    eaCheckpointContinue.add( syncMigration );   // adding the migration operator as checkpoint element
    ...    
    +

    +

  6. +
  7. +definition of an owner evolutionary algorithm (an object inheriting the Runner class):
    +
    + + + + + + + +
    peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace);   // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above
    syncMigration.setOwner( eaAlg );   // setting the evolutionary algorithm as owner of the migration object
    eaAlg( population );   // applying the evolutionary algorithm on a given population
    +
  8. +
+

+The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively.

+The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +

+ +

+Definition at line 129 of file peoSyncIslandMig.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
peoSyncIslandMig< EOT >::peoSyncIslandMig (unsigned  __frequency,
eoSelect< EOT > &  __select,
eoReplacement< EOT > &  __replace,
Topology __topology,
eoPop< EOT > &  __source,
eoPop< EOT > &  __destination 
)
+
+
+ +

+Constructor for the peoSyncIslandMig class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. +

+

Parameters:
+ + + + + + + +
unsigned __frequency - frequency of the migrations - the migrations occur periodically;
eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population;
eoReplacement< EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population;
Topology& __topology - topological model to be followed when performing migrations;
eoPop< EOT >& __source - source population from which the emigrant individuals are selected;
eoPop< EOT >& __destination - destination population in which the immigrant population are integrated.
+
+ +

+Definition at line 193 of file peoSyncIslandMig.h. +

+References Topology::add(), and peoSyncIslandMig< EOT >::sync. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncIslandMig< EOT >::operator() (  ) 
+
+
+ +

+Function operator to be called as checkpoint for performing the migration step. +

+The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +

+Definition at line 267 of file peoSyncIslandMig.h. +

+References peoSyncIslandMig< EOT >::cont, peoSyncIslandMig< EOT >::emigrate(), Cooperative::getOwner(), peoSyncIslandMig< EOT >::immigrate(), Thread::setActive(), peoSyncIslandMig< EOT >::source, Communicable::stop(), and peoSyncIslandMig< EOT >::sync. +

+

+


The documentation for this class was generated from the following file: +
Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig.png b/trunk/paradiseo-peo/docs/html/classpeoSyncIslandMig.png new file mode 100644 index 0000000000000000000000000000000000000000..429ef28d339a919f8bda41900cc096168094c1f6 GIT binary patch literal 636 zcmV-?0)zdDP)8u0000OP)t-s|Ns90 z00960z@MLBkN^MxkN^Mxkifved&2+Z00001bW%=J06^y0W&i*J5=lfsRA_X$ zi$(t|6AzZOGHE{e$$Oj-!(;eEj7?A?OmqJtGtef$K=nXW4E(soqTj&ua}gX$jsB$j2|hE?3y$KBEph*mC{vmJm?PfBr{(MX)K@a!9`|5A z9$&X$-X-qJRHibOsZ3=m^FGWG-?Vr6o>%6MVCCQQYJTAa(^t|6hl!_SCIL~>4cs7x z8aXpmOENrXN;(C&nR6n(o(wt7l!g*PJ(&Pe1#EICmE_VjJ2~ToiCH5)jr+=pfLJmQ<-l}ybqb(R50Whzsd%2cK@mHEG! z&|REy-4CS9u}ll)v*juIG4`D;r-%7*4TZbHbf#FbWkRTSHnpZ)MoeqtX5p&x4xtu} zjRZ&fI4sPlb(v|`rZCf40x^TSNy8<=992O{sxS?~c<15NOaA%(TUZDR!=yg`L@-3ufU@C;m*@!k
    3(kGZkBT5r*$-CkGbBWvg#7^xtSK)cWe`7_GS)v7k>l& Wi&Zm~P{f!30000 + +ParadisEO-PEO: Member List + + + + +
    +
    + +

    peoSyncMultiStart< EOT > Member List

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

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Communicable()Communicable
    contpeoSyncMultiStart< EOT > [private]
    execute()peoSyncMultiStart< EOT > [virtual]
    getKey()Communicable
    getOwner()Service
    idxpeoSyncMultiStart< EOT > [private]
    impr_selpeoSyncMultiStart< EOT > [private]
    keyCommunicable [protected]
    lock()Communicable
    lspeoSyncMultiStart< EOT > [private]
    notifySendingAllResourceRequests()peoSyncMultiStart< EOT > [virtual]
    notifySendingData()peoSyncMultiStart< EOT > [virtual]
    notifySendingResourceRequest()Service [virtual]
    num_commCommunicable [protected, static]
    num_termpeoSyncMultiStart< EOT > [private]
    operator()()peoSyncMultiStart< EOT >
    packData()peoSyncMultiStart< EOT > [virtual]
    packResourceRequest()Service
    packResult()peoSyncMultiStart< EOT > [virtual]
    peoSyncMultiStart(eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, moAlgo< EOT > &__ls, eoPop< EOT > &__pop)peoSyncMultiStart< EOT >
    poppeoSyncMultiStart< EOT > [private]
    replacepeoSyncMultiStart< EOT > [private]
    requestResourceRequest(unsigned __how_many=1)Service
    resume()Communicable
    selpeoSyncMultiStart< EOT > [private]
    selectpeoSyncMultiStart< EOT > [private]
    sem_lockCommunicable [protected]
    sem_stopCommunicable [protected]
    setOwner(Thread &__owner)Service
    solpeoSyncMultiStart< EOT > [private]
    stop()Communicable
    unlock()Communicable
    unpackData()peoSyncMultiStart< EOT > [virtual]
    unpackResult()peoSyncMultiStart< EOT > [virtual]
    ~Communicable()Communicable [virtual]


    Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/classpeoSyncMultiStart.html b/trunk/paradiseo-peo/docs/html/classpeoSyncMultiStart.html new file mode 100644 index 000000000..405292a8b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoSyncMultiStart.html @@ -0,0 +1,413 @@ + + +ParadisEO-PEO: peoSyncMultiStart< EOT > Class Template Reference + + + + +
    +
    + +

    peoSyncMultiStart< EOT > Class Template Reference

    The peoSyncMultiStart class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. +More... +

    +#include <peoSyncMultiStart.h> +

    +

    Inheritance diagram for peoSyncMultiStart< EOT >: +

    + +Service +Communicable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

     peoSyncMultiStart (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, moAlgo< EOT > &__ls, eoPop< EOT > &__pop)
     Constructor function - several simple parameters are required for defining the characteristics of the multi-start model.
    void operator() ()
     Operator which synchronously executes the specified algorithm on the individuals selected from the initial population.
    void packData ()
     Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
    void unpackData ()
     Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
    void execute ()
     Auxiliary function for actually executing the specified algorithm on one assigned individual.
    void packResult ()
     Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
    void unpackResult ()
     Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
    void notifySendingData ()
     Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase.
    void notifySendingAllResourceRequests ()
     Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase.

    Private Attributes

    +eoContinue< EOT > & cont
    +eoSelect< EOT > & select
    +eoReplacement< EOT > & replace
    +moAlgo< EOT > & ls
    +eoPop< EOT > & pop
    +eoPop< EOT > sel
    +eoPop< EOT > impr_sel
    +EOT sol
    +unsigned idx
    +unsigned num_term
    +

    Detailed Description

    +

    template<class EOT>
    + class peoSyncMultiStart< EOT >

    + +The peoSyncMultiStart class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. +

    +As a simple example, several hill climbing algorithms may be synchronously launched on the specified population, each algorithm acting upon one individual only, the final result being integrated back in the population. A peoSyncMultiStart object can be specified as checkpoint object for a classic ParadisEO evolutionary algorithm thus allowing for simple hybridization schemes which combine the evolutionary approach with a local search approach, for example, executed at the end of each generation. +

    + +

    +Definition at line 51 of file peoSyncMultiStart.h.


    Constructor & Destructor Documentation

    + +
    +
    +
    +template<class EOT>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    peoSyncMultiStart< EOT >::peoSyncMultiStart (eoContinue< EOT > &  __cont,
    eoSelect< EOT > &  __select,
    eoReplacement< EOT > &  __replace,
    moAlgo< EOT > &  __ls,
    eoPop< EOT > &  __pop 
    )
    +
    +
    + +

    +Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. +

    +

    Parameters:
    + + + + + + +
    eoContinue< EOT >& __cont - defined for including further functionality - no semantics associated at this time;
    eoSelect< EOT >& __select - selection strategy for obtaining a subset of the initial population on which to apply the specified algorithm;
    eoReplacement< EOT >& __replace - replacement strategy for integrating the resulting individuals in the initial population;
    moAlgo< EOT >& __ls - algorithm to be applied on each of the selected individuals - a moAlgo< EOT >-derived object must be specified;
    eoPop< EOT >& __pop - the initial population from which the individuals are selected for applying the specified algorithm.
    +
    + +

    +Definition at line 121 of file peoSyncMultiStart.h. +

    +

    +


    Member Function Documentation

    + +
    +
    +
    +template<class EOT>
    + + + + + + + + +
    void peoSyncMultiStart< EOT >::operator() (  ) 
    +
    +
    + +

    +Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. +

    +There is no need to explicitly call the operator - automatically called as checkpoint operator. +

    +Definition at line 176 of file peoSyncMultiStart.h. +

    +References peoSyncMultiStart< EOT >::idx, peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, Service::requestResourceRequest(), peoSyncMultiStart< EOT >::sel, peoSyncMultiStart< EOT >::select, and Communicable::stop(). +

    +

    + +

    +
    +
    +template<class EOT>
    + + + + + + + + +
    void peoSyncMultiStart< EOT >::packData (  )  [virtual]
    +
    +
    + +

    +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +

    +There is no need to explicitly call the function. +

    +Reimplemented from Service. +

    +Definition at line 135 of file peoSyncMultiStart.h. +

    +References peoSyncMultiStart< EOT >::idx, and peoSyncMultiStart< EOT >::sel. +

    +

    + +

    +
    +
    +template<class EOT>
    + + + + + + + + +
    void peoSyncMultiStart< EOT >::unpackData (  )  [virtual]
    +
    +
    + +

    +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +

    +There is no need to explicitly call the function. +

    +Reimplemented from Service. +

    +Definition at line 141 of file peoSyncMultiStart.h. +

    +References peoSyncMultiStart< EOT >::sol. +

    +

    + +

    +
    +
    +template<class EOT>
    + + + + + + + + +
    void peoSyncMultiStart< EOT >::execute (  )  [virtual]
    +
    +
    + +

    +Auxiliary function for actually executing the specified algorithm on one assigned individual. +

    +There is no need to explicitly call the function. +

    +Reimplemented from Service. +

    +Definition at line 147 of file peoSyncMultiStart.h. +

    +References peoSyncMultiStart< EOT >::ls, and peoSyncMultiStart< EOT >::sol. +

    +

    + +

    +
    +
    +template<class EOT>
    + + + + + + + + +
    void peoSyncMultiStart< EOT >::packResult (  )  [virtual]
    +
    +
    + +

    +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +

    +There is no need to explicitly call the function. +

    +Reimplemented from Service. +

    +Definition at line 153 of file peoSyncMultiStart.h. +

    +References peoSyncMultiStart< EOT >::sol. +

    +

    + +

    +
    +
    +template<class EOT>
    + + + + + + + + +
    void peoSyncMultiStart< EOT >::unpackResult (  )  [virtual]
    +
    +
    + +

    +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +

    +There is no need to explicitly call the function. +

    +Reimplemented from Service. +

    +Definition at line 159 of file peoSyncMultiStart.h. +

    +References Service::getOwner(), peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, peoSyncMultiStart< EOT >::replace, Communicable::resume(), peoSyncMultiStart< EOT >::sel, Thread::setActive(), and peoSyncMultiStart< EOT >::sol. +

    +

    + +

    +
    +
    +template<class EOT>
    + + + + + + + + +
    void peoSyncMultiStart< EOT >::notifySendingData (  )  [virtual]
    +
    +
    + +

    +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. +

    +There is no need to explicitly call the function. +

    +Reimplemented from Service. +

    +Definition at line 187 of file peoSyncMultiStart.h. +

    +

    + +

    +
    +
    +template<class EOT>
    + + + + + + + + +
    void peoSyncMultiStart< EOT >::notifySendingAllResourceRequests (  )  [virtual]
    +
    +
    + +

    +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. +

    +There is no need to explicitly call the function. +

    +Reimplemented from Service. +

    +Definition at line 192 of file peoSyncMultiStart.h. +

    +References Service::getOwner(), and Thread::setPassive(). +

    +

    +


    The documentation for this class was generated from the following file: +
    Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/classpeoSyncMultiStart.png b/trunk/paradiseo-peo/docs/html/classpeoSyncMultiStart.png new file mode 100644 index 0000000000000000000000000000000000000000..0818b68a6a229052572b5b81cfb97bbab02facce GIT binary patch literal 607 zcmV-l0-*hgP) + +ParadisEO-PEO: Member List + + + + +
    +
    + +

    peoTransform< EOT > Member List

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

    + + + + + + + + + + + + + + + + + + + + + + + +
    Communicable()Communicable
    execute()Service [virtual]
    getKey()Communicable
    getOwner()Service
    keyCommunicable [protected]
    lock()Communicable
    notifySendingAllResourceRequests()Service [virtual]
    notifySendingData()Service [virtual]
    notifySendingResourceRequest()Service [virtual]
    num_commCommunicable [protected, static]
    packData()Service [virtual]
    packResourceRequest()Service
    packResult()Service [virtual]
    requestResourceRequest(unsigned __how_many=1)Service
    resume()Communicable
    sem_lockCommunicable [protected]
    sem_stopCommunicable [protected]
    setOwner(Thread &__owner)Service
    stop()Communicable
    unlock()Communicable
    unpackData()Service [virtual]
    unpackResult()Service [virtual]
    ~Communicable()Communicable [virtual]


    Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/classpeoTransform.html b/trunk/paradiseo-peo/docs/html/classpeoTransform.html new file mode 100644 index 000000000..e5e6a500f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/classpeoTransform.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: peoTransform< EOT > Class Template Reference + + + + +
    +
    + +

    peoTransform< EOT > Class Template Reference

    The peoTransform class acts only as an interface for creating transform operators - for an example please refer to the peoSeqTransform and the peoParaSGATransform classes. +More... +

    +#include <peoTransform.h> +

    +

    Inheritance diagram for peoTransform< EOT >: +

    + +Service +Communicable +peoParaSGATransform< EOT > +peoSeqTransform< EOT > + +List of all members. + +
    +

    Detailed Description

    +

    template<class EOT>
    + class peoTransform< EOT >

    + +The peoTransform class acts only as an interface for creating transform operators - for an example please refer to the peoSeqTransform and the peoParaSGATransform classes. +

    + +

    +Definition at line 35 of file peoTransform.h.


    The documentation for this class was generated from the following file: +
    Generated on Sun Jan 7 18:35:26 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/classpeoTransform.png b/trunk/paradiseo-peo/docs/html/classpeoTransform.png new file mode 100644 index 0000000000000000000000000000000000000000..72482d92913dc0131ef43cf6f9446531c4f99d4e GIT binary patch literal 1199 zcmeAS@N?(olHy`uVBq!ia0y~yVC(|253n!;$rn#7=K?8-0G|-o|Ns93ng9PEm_I*Z z0+0p92M!#lKJ@(yi9>XuD z(BDqlp{IV^JDn{s+^525{=m>m{Vwk|&UXEnpi1}2i5l1X?MuI|-s7$QWspQ({|Fo9&)@p3>PdQ`bw^3(a(!14ROL#MnJAO8t z?{n(=f{1^W3{Uk|{|*+|X(XG^2o&h=PT;z?_?n1F`o-L9to3m>Y_$T;c;8|EAh$Gc zqkFB>0tQx~bzOcMyLLUVKwKog|M=C|9}T}2yhtf+cItCb zbYCz*IpBn##uE;aA{H)7rdF9ogz!Y4F1vqRmruqY0eT={&XNe$Yx}tEM7=-iZTO}q zA`_84#mnhxp8G=4cE`L!Z13F?4Ie4D72NAPv|~qP>f)`ktb2K?L_8ll1^IeS^wjTf zQch3qdHXkQ3jZ2j5%ar?&vA=@U3-z!RlK~&OZD@*sFgsMDG6=m@3K=0{7tkYC%($c zat_>C8}Ni%#FEK%UtGYOG6}0yN%bH7%I}8kl!sJ=YJ=>4jx ztN6S0z&=+71%h9gIa0)UE~(gZp**+i6`QZmDrpnLm3bGAEZOBKJed@Mf>TROo}ajX z=vS^!-F08_&yzJ*&2CUS%^-49%{FMw{?&Jv&3R(8`PMY^mrUPZYMi__zurW5r&fHR zj%JR(*}tBosi9%J*DU*%IltkPLjPi}^`85*{))OLm96_I+ImgvNg7Y4)YM1%F8psR zxz_INTbspgw)^p#8*99GzuY@7aLt(*uINkZ((%DMKa-um`Fz?h+ge;GdN}-Yww?9- zz$LL}x7G^E2J58RwXV(m81p#0OZE2h+4Hsb9INN7U6P=*E~}(QE-R+e43N4 zEQ)en5ZwD-m=a&L&vTK3W8#z`<>#B_ORAh6o;?#}bN$D`h?eChhu1Iv zQ0eP@xTfYqS#ED!Piy3|^_?O|d+p=JrMdRInTb>-Z}GXCB3-##FX>*C)y*HXl6L2A zV9fkqIkE3(jC-r&^V}oSGYv|An$D~a@ksRkmGXGDWT-#8an}0(Zy7X_1C=GB$fmP>!J3+kDh%=xJp4=i06JYD@<);T3K0RV~I7+?SZ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/comm_8cpp-source.html b/trunk/paradiseo-peo/docs/html/comm_8cpp-source.html new file mode 100644 index 000000000..2cedb37c9 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/comm_8cpp-source.html @@ -0,0 +1,111 @@ + + +ParadisEO-PEO: comm.cpp Source File + + + + +
    +
    +

    comm.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "comm.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 
    +00025 #include <mpi.h>
    +00026 
    +00027 #include "comm.h"
    +00028 #include "mess.h"
    +00029 #include "node.h"
    +00030 #include "param.h"
    +00031 #include "../../core/peo_debug.h"
    +00032 #include "../../core/runner.h"
    +00033 #include "send.h"
    +00034 #include "recv.h"
    +00035 #include "scheduler.h"
    +00036 
    +00037 static sem_t sem_comm_init;
    +00038 
    +00039 static Communicator * the_thread;
    +00040 
    +00041 Communicator :: Communicator (int * __argc, char * * * __argv) {
    +00042 
    +00043   the_thread = this;  
    +00044   initNode  (__argc, __argv);
    +00045   loadRMCParameters (* __argc, * __argv);  
    +00046   sem_post (& sem_comm_init);
    +00047 }
    +00048 
    +00049 void Communicator :: start () {
    +00050 
    +00051   while (true) {
    +00052     
    +00053     /* Zzz Zzz Zzz :-))) */
    +00054     sleep ();
    +00055     sendMessages ();
    +00056 
    +00057     if (! atLeastOneActiveRunner ())     
    +00058       break;
    +00059     receiveMessages ();    
    +00060   }
    +00061   waitBuffers ();  
    +00062   printDebugMessage ("finalizing");
    +00063   MPI_Finalize ();  
    +00064 }
    +00065 
    +00066 void initCommunication () {
    +00067 
    +00068   sem_init (& sem_comm_init, 0, 0);
    +00069 }
    +00070 
    +00071 void waitNodeInitialization () {
    +00072 
    +00073   sem_wait (& sem_comm_init);
    +00074 }
    +00075 
    +00076 void wakeUpCommunicator () {
    +00077 
    +00078   the_thread -> wakeUp ();
    +00079 }
    +00080 
    +00081 
    +00082 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/comm_8h-source.html b/trunk/paradiseo-peo/docs/html/comm_8h-source.html new file mode 100644 index 000000000..0d4b219a3 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/comm_8h-source.html @@ -0,0 +1,75 @@ + + +ParadisEO-PEO: comm.h Source File + + + + +
    +
    +

    comm.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "comm.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __comm_mpi_h
    +00025 #define __comm_mpi_h
    +00026 
    +00027 #include "../../core/communicable.h"
    +00028 #include "../../core/reac_thread.h"
    +00029 
    +00030 class Communicator : public ReactiveThread {
    +00031 
    +00032 public :
    +00033   
    +00034   /* Ctor */
    +00035   Communicator (int * __argc, char * * * __argv);
    +00036 
    +00037   void start ();
    +00038 };
    +00039 
    +00040 extern void initCommunication ();
    +00041 
    +00042 extern void waitNodeInitialization ();
    +00043 
    +00044 extern void wakeUpCommunicator ();
    +00045 
    +00046 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/communicable_8cpp-source.html b/trunk/paradiseo-peo/docs/html/communicable_8cpp-source.html new file mode 100644 index 000000000..40c3a7777 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/communicable_8cpp-source.html @@ -0,0 +1,114 @@ + + +ParadisEO-PEO: communicable.cpp Source File + + + + +
    +
    +

    communicable.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "comm.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <vector>
    +00025 #include <map>
    +00026 #include <cassert>
    +00027 
    +00028 #include "communicable.h"
    +00029 
    +00030 static std :: vector <Communicable *> key_to_comm (1); /* Vector of registered cooperators */
    +00031 
    +00032 static std :: map <const Communicable *, unsigned> comm_to_key; /* Map of registered cooperators */
    +00033 
    +00034 unsigned Communicable :: num_comm = 0;
    +00035 
    +00036 Communicable :: Communicable () {
    +00037 
    +00038   comm_to_key [this] = key = ++ num_comm;
    +00039   key_to_comm.push_back (this);
    +00040   sem_init (& sem_lock, 0, 1);
    +00041   sem_init (& sem_stop, 0, 0);
    +00042 }
    +00043 
    +00044 Communicable :: ~ Communicable () {
    +00045 
    +00046 }
    +00047 
    +00048 COMM_ID Communicable :: getKey () {
    +00049 
    +00050   return key;
    +00051 }
    +00052 
    +00053 Communicable * getCommunicable (COMM_ID __key) {
    +00054 
    +00055   assert (__key < key_to_comm.size ());
    +00056   return key_to_comm [__key];  
    +00057 }
    +00058 
    +00059 COMM_ID getKey (const Communicable * __comm) {
    +00060   
    +00061   return comm_to_key [__comm];
    +00062 }
    +00063 
    +00064 void Communicable :: lock () {
    +00065 
    +00066   sem_wait (& sem_lock);
    +00067 }
    +00068 
    +00069 void Communicable :: unlock () {
    +00070 
    +00071   sem_post (& sem_lock);
    +00072 }
    +00073 
    +00074 void Communicable :: stop () {
    +00075 
    +00076   sem_wait (& sem_stop);
    +00077 }
    +00078 
    +00079 void Communicable :: resume () {
    +00080 
    +00081   sem_post (& sem_stop);
    +00082 }
    +00083 
    +00084 
    +00085 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/communicable_8h-source.html b/trunk/paradiseo-peo/docs/html/communicable_8h-source.html new file mode 100644 index 000000000..3c7cb6bd9 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/communicable_8h-source.html @@ -0,0 +1,91 @@ + + +ParadisEO-PEO: communicable.h Source File + + + + +
    +
    +

    communicable.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "communicable.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __communicable_h
    +00025 #define __communicable_h
    +00026 
    +00027 #include <semaphore.h>
    +00028 
    +00029 typedef unsigned COMM_ID;
    +00030 
    +00031 class Communicable {
    +00032 
    +00033 public :
    +00034 
    +00035   Communicable ();
    +00036   
    +00037   virtual ~ Communicable ();
    +00038 
    +00039   COMM_ID getKey ();  
    +00040 
    +00041   void lock (); /* It suspends the current process if the semaphore is locked */
    +00042   void unlock (); /* It unlocks the shared semaphore */
    +00043 
    +00044   void stop (); /* It suspends the current process */
    +00045   void resume (); /* It resumes ___________ */
    +00046   
    +00047 protected :
    +00048 
    +00049   COMM_ID key;
    +00050 
    +00051   sem_t sem_lock;
    +00052   
    +00053   sem_t sem_stop;
    +00054 
    +00055   static unsigned num_comm;
    +00056 };
    +00057 
    +00058 extern Communicable * getCommunicable (COMM_ID __key); 
    +00059 
    +00060 //extern COMM_ID getKey (const Communicable * __comm);
    +00061 
    +00062 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/coop_8cpp-source.html b/trunk/paradiseo-peo/docs/html/coop_8cpp-source.html new file mode 100644 index 000000000..8b4beac66 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/coop_8cpp-source.html @@ -0,0 +1,86 @@ + + +ParadisEO-PEO: coop.cpp Source File + + + + +
    +
    +

    coop.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "coop.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "../../core/cooperative.h"
    +00025 #include "send.h"
    +00026 #include "tags.h"
    +00027 #include "schema.h"
    +00028 #include "mess.h"
    +00029 #include "../../core/peo_debug.h"
    +00030 
    +00031 Runner * Cooperative :: getOwner () {
    +00032 
    +00033   return owner;
    +00034 }
    +00035 
    +00036 void Cooperative :: setOwner (Runner & __runner) {
    +00037 
    +00038   owner = & __runner;
    +00039 }
    +00040 
    +00041 void Cooperative :: send (Cooperative * __coop) {
    +00042 
    +00043   :: send (this, getRankOfRunner (__coop -> getOwner () -> getID ()), COOP_TAG);   
    +00044   //  stop ();
    +00045 }
    +00046 
    +00047 Cooperative * getCooperative (COOP_ID __key) {
    +00048 
    +00049   return dynamic_cast <Cooperative *> (getCommunicable (__key));
    +00050 }
    +00051 
    +00052 void Cooperative :: notifySending () {
    +00053 
    +00054   //getOwner -> setPassive ();
    +00055   //  resume ();
    +00056   //  printDebugMessage (b);
    +00057 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/cooperative_8h-source.html b/trunk/paradiseo-peo/docs/html/cooperative_8h-source.html new file mode 100644 index 000000000..f9d57d869 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/cooperative_8h-source.html @@ -0,0 +1,85 @@ + + +ParadisEO-PEO: cooperative.h Source File + + + + +
    +
    +

    cooperative.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "cooperative.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __cooperative_h
    +00025 #define __cooperative_h
    +00026 
    +00027 #include "communicable.h"
    +00028 #include "runner.h"
    +00029 
    +00030 typedef unsigned COOP_ID;
    +00031 
    +00032 class Cooperative : public Communicable {
    +00033 
    +00034 public :
    +00035 
    +00036   Runner * getOwner ();
    +00037 
    +00038   void setOwner (Runner & __runner);
    +00039 
    +00040   virtual void pack () = 0;
    +00041   
    +00042   virtual void unpack () = 0;
    +00043 
    +00044   void send (Cooperative * __coop); 
    +00045 
    +00046   virtual void notifySending ();
    +00047 
    +00048 private :
    +00049 
    +00050   Runner * owner;
    +00051 
    +00052 };
    +00053 
    +00054 extern Cooperative * getCooperative (COOP_ID __key); 
    +00055 
    +00056 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/core_2runner_8cpp-source.html b/trunk/paradiseo-peo/docs/html/core_2runner_8cpp-source.html new file mode 100644 index 000000000..0e0e8f73b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/core_2runner_8cpp-source.html @@ -0,0 +1,148 @@ + + +ParadisEO-PEO: runner.cpp Source File + + + + +
    +
    +

    runner.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "runner.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <vector>
    +00025 
    +00026 #include "runner.h"
    +00027 #include "reac_thread.h"
    +00028 #include "peo_debug.h"
    +00029 #include "messaging.h"
    +00030 
    +00031 static unsigned num_act = 0; /* Number of active runners */
    +00032 
    +00033 static std :: vector <pthread_t *> ll_threads; /* Low-level runner threads */ 
    +00034 
    +00035 static std :: vector <Runner *> the_runners;
    +00036 
    +00037 static unsigned num_runners = 0;
    +00038 
    +00039 Runner :: Runner () {
    +00040 
    +00041   id = ++ num_runners;
    +00042   the_runners.push_back (this);
    +00043   sem_init (& sem_start, 0, 0);
    +00044   num_act ++;  
    +00045 }
    +00046 
    +00047 extern int getNodeRank ();
    +00048 
    +00049 extern int getNumberOfNodes ();
    +00050 
    +00051 void unpackTerminationOfRunner () {
    +00052   
    +00053   RUNNER_ID id;
    +00054   unpack (id);    
    +00055   num_act --;
    +00056   printDebugMessage ("I'm noticed of the termination of a runner");
    +00057   if (! num_act) {
    +00058     printDebugMessage ("all the runners have terminated. Now stopping the reactive threads.");
    +00059     stopReactiveThreads ();
    +00060   }
    +00061 }
    +00062 
    +00063 bool atLeastOneActiveRunner () {
    +00064 
    +00065   return num_act;
    +00066 }
    +00067 
    +00068 RUNNER_ID Runner :: getID () {
    +00069 
    +00070   return id;
    +00071 }
    +00072 
    +00073 void Runner :: start () {
    +00074 
    +00075   setActive ();
    +00076   sem_post (& sem_start);
    +00077   run ();
    +00078   terminate ();
    +00079 }
    +00080 
    +00081 void Runner :: notifySendingTermination () {
    +00082 
    +00083   /*
    +00084   char b [1000];
    +00085   sprintf (b, "Il reste encore %d !!!!!!!!!!!!", n);
    +00086   printDebugMessage (b);
    +00087   */
    +00088   printDebugMessage ("je suis informe que tout le monde a recu ma terminaison");
    +00089   setPassive ();
    +00090   
    +00091 }
    +00092 
    +00093 void Runner :: waitStarting () {
    +00094 
    +00095   sem_wait (& sem_start);
    +00096 }
    +00097 
    +00098 Runner * getRunner (RUNNER_ID __key) {
    +00099 
    +00100   return dynamic_cast <Runner *> (getCommunicable (__key));
    +00101 }
    +00102 
    +00103 void startRunners () {
    +00104   
    +00105   /* Runners */
    +00106   for (unsigned i = 0; i < the_runners.size (); i ++)
    +00107     if (the_runners [i] -> isLocal ()) {
    +00108       addThread (the_runners [i], ll_threads);
    +00109       the_runners [i] -> waitStarting ();
    +00110     }
    +00111   printDebugMessage ("launched the parallel runners");
    +00112 }
    +00113 
    +00114 
    +00115 void joinRunners () {
    +00116 
    +00117 
    +00118   joinThreads (ll_threads);
    +00119 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/core_2service_8cpp-source.html b/trunk/paradiseo-peo/docs/html/core_2service_8cpp-source.html new file mode 100644 index 000000000..a71065e0b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/core_2service_8cpp-source.html @@ -0,0 +1,102 @@ + + +ParadisEO-PEO: service.cpp Source File + + + + +
    +
    +

    service.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "service.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "service.h"
    +00025 
    +00026 void Service :: setOwner (Thread & __owner) {
    +00027 
    +00028   owner = & __owner;
    +00029 }
    +00030   
    +00031 Thread * Service :: getOwner () {
    +00032 
    +00033   return owner;
    +00034 }
    +00035 
    +00036 Service * getService (SERVICE_ID __key) {
    +00037 
    +00038   return dynamic_cast <Service *> (getCommunicable (__key));
    +00039 }
    +00040 
    +00041 void Service :: notifySendingData () {
    +00042 
    +00043 }
    +00044 void Service :: notifySendingResourceRequest () {
    +00045 
    +00046   num_sent_rr --;
    +00047   if (! num_sent_rr)
    +00048     notifySendingAllResourceRequests ();
    +00049 }
    +00050 
    +00051 void Service :: notifySendingAllResourceRequests () {
    +00052 
    +00053 }
    +00054 
    +00055 void Service :: packData () {
    +00056 
    +00057 }
    +00058 
    +00059 void Service :: unpackData () {
    +00060 
    +00061 }
    +00062 
    +00063 void Service :: execute () {
    +00064 
    +00065 }
    +00066   
    +00067 void Service :: packResult () {
    +00068 
    +00069 }
    +00070 
    +00071 void Service :: unpackResult () {
    +00072 
    +00073 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/doxygen.css b/trunk/paradiseo-peo/docs/html/doxygen.css new file mode 100644 index 000000000..5d583694e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/trunk/paradiseo-peo/docs/html/doxygen.png b/trunk/paradiseo-peo/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a274bbaffdd67f6d784c894d9cf28729db0e14 GIT binary patch literal 1281 zcmaJ>ZA?>F7(Vx-ms?uoS`b@hdRtpo6o^%HU>M$hfGrBvQnk$LE?p^P!kn&ikhyq! zX~V@&tPF5Qt@V?oTL96Bi%aRiwbe1)9DWQI#?)=HxS7QSw`J`5fAJ*eJbB;uNuKA& zdERDo*{Y<(If(#(B$Lr#;nB(8Y#ia=ZCeW?JfPLuQY`=@cW$k}Rivq|vbxGrRq1Tl9;+(gNt?}UtVKM2`T5t1jLzuL@0UIs`S#vlhl4)^ zLgSYrPj@$+`|j?eSbXTmiHGkWxV8V}BzNR?pl9k_s4pDu9vd5a_UzZEPk)}Ad{AV_ zzddrjrh4=Imr`E06;LY{)YYt?o}L~H@7C}F^WB!Ra=v`Q0bj{>5&$66CWF>mf6vjP z2N>RRY6ZYa=K`76>+|_)Xdwko+7wv}7cN|btOhWb(*{sta~6b?S8Omrxw}!4`NhGr zZVpNqpu1@BE`QGWNTpEpcJVW5izu~2B^GlM?1(OPg)zwW;QcP@Ltcclm>XbJL9C|j z=9!2?ua=uIlf0%AndzHsRC}IyTL$EhAee(fdKB`?27KeS^2M8M_7b~PiCFO&r5LC7 z7gl1*a<8;SjNaw#h=843_AV9iZbWQOAp5YOC^&_F*9K0> zB|6%IDb?aM#3viTxkLU4aXg&@+CkNTOnQ1iMP*^?b|^lJy$4C)Zk4isV!|RZ*XhXh zw8q3$=*0LeGC!XI_Wc?dkT~3+*Gu%%yIqP+Wr3H$=&ROMQU6q}Ag^P~>c5vAEO;a- z_dK-3PPeKar%)6$j~vI2#*-YH!1h6HYVtwCX5_wM`iF#UKz&&@9Oo5w3%XGYrX zW>dY~)SG-((Yim%`InwgTvyRC?e=Wh^8KCao!R6Eg&TpVWUY1sN~4G}V?nFnEGo-; zHZ_$eW9-GnC%^WS9b z@p;-$oH#MtC0v>Q$HX%4^JdFdO$0cbv-W)Q TtK}Eh@>>I#ipmV1>S*>q-hkC} literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/eoPop__comm_8h-source.html b/trunk/paradiseo-peo/docs/html/eoPop__comm_8h-source.html new file mode 100644 index 000000000..de60d3d22 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/eoPop__comm_8h-source.html @@ -0,0 +1,76 @@ + + +ParadisEO-PEO: eoPop_comm.h Source File + + + + +
    +
    +

    eoPop_comm.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "eoPop_comm.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __eoPop_comm_h
    +00025 #define __eoPop_comm_h
    +00026 
    +00027 #include <eoPop.h>
    +00028 
    +00029 #include "messaging.h"
    +00030 
    +00031 template <class EOT> void pack (const eoPop <EOT> & __pop) {
    +00032 
    +00033   pack ((unsigned) __pop.size ());
    +00034   for (unsigned i = 0; i < __pop.size (); i ++)
    +00035     pack (__pop [i]);
    +00036 }
    +00037 
    +00038 template <class EOT> void unpack (eoPop <EOT> & __pop) {
    +00039 
    +00040   unsigned n;
    +00041   
    +00042   unpack (n);
    +00043   __pop.resize (n);
    +00044   for (unsigned i = 0; i < n; i ++)
    +00045     unpack (__pop [i]);
    +00046 }
    +00047 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/eoVector__comm_8h-source.html b/trunk/paradiseo-peo/docs/html/eoVector__comm_8h-source.html new file mode 100644 index 000000000..768ffd095 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/eoVector__comm_8h-source.html @@ -0,0 +1,82 @@ + + +ParadisEO-PEO: eoVector_comm.h Source File + + + + +
    +
    +

    eoVector_comm.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "eoVector_comm.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __eoVector_comm_h
    +00025 #define __eoVector_comm_h
    +00026 
    +00027 #include <eoVector.h>
    +00028 
    +00029 #include "messaging.h"
    +00030 
    +00031 template <class F, class T> void pack (const eoVector <F, T> & __v) {
    +00032 
    +00033   pack (__v.fitness ()) ;
    +00034   unsigned len = __v.size ();
    +00035   pack (len);
    +00036   for (unsigned i = 0 ; i < len; i ++)
    +00037     pack (__v [i]);  
    +00038 }
    +00039 
    +00040 template <class F, class T> void unpack (eoVector <F, T> & __v) {
    +00041 
    +00042   F fit; 
    +00043   unpack (fit);
    +00044   __v.fitness (fit);
    +00045 
    +00046   unsigned len;
    +00047   unpack (len);
    +00048   __v.resize (len);
    +00049   for (unsigned i = 0 ; i < len; i ++)
    +00050     unpack (__v [i]);
    +00051 }
    +00052 
    +00053 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/files.html b/trunk/paradiseo-peo/docs/html/files.html new file mode 100644 index 000000000..bf8f363cb --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/files.html @@ -0,0 +1,98 @@ + + +ParadisEO-PEO: File Index + + + + +
    +
    +

    ParadisEO-PEO File List

    Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    comm.cpp [code]
    comm.h [code]
    communicable.cpp [code]
    communicable.h [code]
    coop.cpp [code]
    cooperative.h [code]
    eoPop_comm.h [code]
    eoVector_comm.h [code]
    mess.cpp [code]
    mess.h [code]
    messaging.h [code]
    node.cpp [code]
    node.h [code]
    paradiseo.h [code]
    param.cpp [code]
    param.h [code]
    peo_debug.cpp [code]
    peo_debug.h [code]
    peo_fin.cpp [code]
    peo_fin.h [code]
    peo_init.cpp [code]
    peo_init.h [code]
    peo_param.cpp [code]
    peo_param.h [code]
    peo_run.cpp [code]
    peo_run.h [code]
    peoAggEvalFunc.h [code]
    peoAsyncIslandMig.h [code]
    peoEA.h [code]
    peoNoAggEvalFunc.h [code]
    peoParaPopEval.h [code]
    peoParaSGATransform.h [code]
    peoPopEval.h [code]
    peoSeqPopEval.h [code]
    peoSeqTransform.h [code]
    peoSyncIslandMig.h [code]
    peoSyncMultiStart.h [code]
    peoTransform.h [code]
    reac_thread.cpp [code]
    reac_thread.h [code]
    recv.cpp [code]
    recv.h [code]
    ring_topo.cpp [code]
    ring_topo.h [code]
    rmc.cpp [code]
    rmc.h [code]
    core/runner.cpp [code]
    rmc/mpi/runner.cpp [code]
    runner.h [code]
    scheduler.cpp [code]
    scheduler.h [code]
    schema.cpp [code]
    schema.h [code]
    send.cpp [code]
    send.h [code]
    core/service.cpp [code]
    rmc/mpi/service.cpp [code]
    service.h [code]
    tags.h [code]
    thread.cpp [code]
    thread.h [code]
    topology.cpp [code]
    topology.h [code]
    worker.cpp [code]
    worker.h [code]
    xml_parser.cpp [code]
    xml_parser.h [code]
    +
    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/ftv2blank.png b/trunk/paradiseo-peo/docs/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..493c3c0b615ade5b22027bde773faf2c0e076d66 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr2qYM%T@!Q%(o7{me!&ckj8p!u14)&*MwA5S zr6z#mEsk^N1FBF3sc_EE%}vcKVF=AhO-xa6_jFST&P^;T z2~I3aEm8;rVk12R#UIz>f`J-DJY5_^DsClP9B62eH+WF*G=YJMp~A-KbWwke5Kx}M M)78&qol`;+0EL(^EC2ui literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2doc.png b/trunk/paradiseo-peo/docs/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..f72999f92172cca6edaa2538286b3e369bec9f49 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^5yjnX4egh%q=bp-`Pe zR7&bp17l3gfhmh7Fm(iZ2eAfco|q!h5)>qKG?UBh!IC9QGMbJAHf6IEiufk_g|d7~ qkWqJ4k(|I-Aeo-5U~n{Fnc?dN!3Uwu?t6hQVDNPHb6Mw<&;$TLIZ`G7 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2folderclosed.png b/trunk/paradiseo-peo/docs/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d063440cbf13c4128dacd96661b6fce58abf26 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^55uo^`BphW;jCHO69?}tw{JfcdnZ<*@N=4I z?xF5Qc|QYEmKAIZ;JRGVHe=bn*tx1_|J^^vyg*oVM#A1kZlFULJYD@<);T3K0RTgB BWg7qh literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2folderopen.png b/trunk/paradiseo-peo/docs/html/ftv2folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe2c913cf493ee37ad8e3a5132382138d93ac92 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^5u(C zYP)Mg%H-DB+{J~>rPn_#pYTax?r*V6ubqGX{lvROQ{?n5_cbm+cQAOm`njxgN@xNA D92;js literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2lastnode.png b/trunk/paradiseo-peo/docs/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b9ba90cb0cf71c8ce662956bfee7d64cf60fa6 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gk+!>EaktaVt4N i!r*{E4>QXNV>t$uAA#a^n)TVt_DW*G8-srQl%FeIsRSdYm zeDdtWec}u&7@8h5rqv#p7g*pRdwwmugmlS-+cHV~j}#7`Nwj9m+AU)JGGo`8z_}`K z?s#Xsy%Z;1_jl5Y+?Gum8WyK6`MBvup0SAOKJ)mWcHyteJ?WLL>>-)=?&<$H&t5oH Vd!azZ1yDdSc)I$ztaD0e0sw}(dc*(# literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2mlastnode.png b/trunk/paradiseo-peo/docs/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..09ceb6adb01054ce799ad20c0e818ab9272f2df2 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&fg$isFPOjJ*AaIJQGm()YSDb0rfjgNefXW#>UHx3vIVCg! E0ORy6RsaA1 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2mnode.png b/trunk/paradiseo-peo/docs/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..3254c05112199fbc80aad313611c58a5b388792d GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&YcgaLd(;| zF{I*Fa>4?=2W(CyOv{5p*uLi}G<-ambjQcb>&~4!CzK3KXWY6d$*{eWU47N}X+XCz OFnGH9xvXPg)ksC(lf|p%(p+w2Gk+y>EaktaVt4N l!r*{E4>Lv;t literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2plastnode.png b/trunk/paradiseo-peo/docs/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b07e00913d8069ebbb51bd7fd6d70d8bba88f75 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&MJ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2pnode.png b/trunk/paradiseo-peo/docs/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..2001b797ba2b98a4127f1d3efca64aef08bf6d51 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&Ycga!obtT zF{I*Fa>4?=2W(Dkd1@Anj~<0|oqBMOmqox%*rjK-r)THv+0v0L%h-agt(X~hWwYzA SIxU|Ma*U^|pUXO@geCywmoZiV literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/ftv2vertline.png b/trunk/paradiseo-peo/docs/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..b330f3a33c0085c183ff39fc56b1b274160c1da0 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gqgt>EaktaVt4N e!r*{^G#i7W2*a|cHZQDzQVgE1elF{r5}E+)J2fZ( literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/functions.html b/trunk/paradiseo-peo/docs/html/functions.html new file mode 100644 index 000000000..0076ab9f4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/functions.html @@ -0,0 +1,225 @@ + + +ParadisEO-PEO: Class Members + + + + +
    +
    + +
    + +
    +
    + +
    + +

    +Here is a list of all documented class members with links to the class documentation for each member: +

    +

    - a -

    +

    - c -

    +

    - d -

    +

    - e -

    +

    - f -

    +

    - g -

    +

    - i -

    +

    - k -

    +

    - l -

    +

    - m -

    +

    - n -

    +

    - o -

    +

    - p -

    +

    - r -

    +

    - s -

    +

    - t -

    +

    - u -

    +

    - w -

    +

    - ~ -

    +
    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/functions_func.html b/trunk/paradiseo-peo/docs/html/functions_func.html new file mode 100644 index 000000000..d04cefd2f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/functions_func.html @@ -0,0 +1,155 @@ + + +ParadisEO-PEO: Class Members - Functions + + + + +
    +
    + +
    + +
    +
    + +
    + +

    +  +

    +

    - a -

    +

    - c -

    +

    - e -

    +

    - g -

    +

    - i -

    +

    - l -

    +

    - n -

    +

    - o -

    +

    - p -

    +

    - r -

    +

    - s -

    +

    - t -

    +

    - u -

    +

    - w -

    +

    - ~ -

    +
    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/functions_vars.html b/trunk/paradiseo-peo/docs/html/functions_vars.html new file mode 100644 index 000000000..70e4c5d4a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/functions_vars.html @@ -0,0 +1,154 @@ + + +ParadisEO-PEO: Class Members - Variables + + + + +
    +
    + +
    + +
    +
    + +
    + +

    +  +

    +

    - a -

    +

    - c -

    +

    - d -

    +

    - e -

    +

    - f -

    +

    - i -

    +

    - k -

    +

    - l -

    +

    - m -

    +

    - n -

    +

    - o -

    +

    - p -

    +

    - r -

    +

    - s -

    +

    - t -

    +
    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/hierarchy.html b/trunk/paradiseo-peo/docs/html/hierarchy.html new file mode 100644 index 000000000..74e7e47c1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/hierarchy.html @@ -0,0 +1,84 @@ + + +ParadisEO-PEO: Hierarchical Index + + + + +
    +
    + +

    ParadisEO-PEO Class Hierarchy

    This inheritance list is sorted roughly, but not completely, alphabetically: +
    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/index.html b/trunk/paradiseo-peo/docs/html/index.html new file mode 100644 index 000000000..1d73e16b0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/index.html @@ -0,0 +1,8 @@ + + +ParadisEO-PEO + + + + + diff --git a/trunk/paradiseo-peo/docs/html/installdox b/trunk/paradiseo-peo/docs/html/installdox new file mode 100755 index 000000000..294677f26 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( "eo.doxytag", "", "mo.doxytag", ""); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/doclsn_8h-source.html b/trunk/paradiseo-peo/docs/html/lesson1/html/doclsn_8h-source.html new file mode 100644 index 000000000..e220889b6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/doclsn_8h-source.html @@ -0,0 +1,193 @@ + + +ParadisEO-PEO Lesson1: doclsn.h Source File + + + + +
    +
    +

    doclsn.h

    00001 
    +00002 
    +00003 
    +00004 
    +00005 
    +00006 
    +00007 
    +00008 
    +00009 
    +00010 
    +00011 
    +00012 
    +00013 
    +00014 
    +00015 
    +00016 
    +00017 
    +00018 
    +00019 
    +00020 
    +00021 
    +00022 
    +00023 
    +00024 
    +00025 
    +00026 
    +00027 
    +00028 
    +00029 
    +00030 
    +00031 
    +00032 
    +00033 
    +00034 
    +00035 
    +00036 
    +00037 
    +00038 
    +00039 
    +00040 
    +00041 
    +00042 
    +00043 
    +00044 
    +00045 
    +00046 
    +00047 
    +00048 
    +00049 
    +00050 
    +00051 
    +00052 
    +00053 
    +00054 
    +00055 
    +00056 
    +00057 
    +00058 
    +00059 
    +00060 
    +00061 
    +00062 
    +00063 
    +00064 
    +00065 
    +00066 
    +00067 
    +00068 
    +00069 
    +00070 
    +00071 
    +00072 
    +00073 
    +00074 
    +00075 
    +00076 
    +00077 
    +00078 
    +00079 
    +00080 
    +00081 
    +00082 
    +00083 
    +00084 
    +00085 
    +00086 
    +00087 
    +00088 
    +00089 
    +00090 
    +00091 
    +00092 
    +00093 
    +00094 
    +00095 
    +00096 
    +00097 
    +00098 
    +00099 
    +00100 
    +00101 
    +00102 
    +00103 
    +00104 
    +00105 
    +00106 
    +00107 
    +00108 
    +00109 
    +00110 
    +00111 
    +00112 
    +00113 
    +00114 
    +00115 
    +00116 
    +00117 
    +00118 
    +00119 
    +00120 
    +00121 
    +00122 
    +00123 
    +00124 
    +00125 
    +00126 
    +00127 
    +00128 
    +00129 
    +00130 
    +00131 
    +00132 
    +00133 
    +00134 
    +00135 
    +00136 
    +00137 
    +00138 
    +00139 
    +00140 
    +00141 
    +00142 
    +00143 
    +00144 
    +00145 
    +00146 
    +00147 
    +00148 
    +00149 
    +00150 
    +00151 
    +00152 
    +00153 
    +00154 
    +00155 
    +00156 
    +00157 
    +00158 
    +00159 
    +00160 
    +00161 
    +00162 
    +00163 
    +00164 
    +00165 
    +00166 
    +

    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson1 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/doxygen.css b/trunk/paradiseo-peo/docs/html/lesson1/html/doxygen.css new file mode 100644 index 000000000..5d583694e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/doxygen.png b/trunk/paradiseo-peo/docs/html/lesson1/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a274bbaffdd67f6d784c894d9cf28729db0e14 GIT binary patch literal 1281 zcmaJ>ZA?>F7(Vx-ms?uoS`b@hdRtpo6o^%HU>M$hfGrBvQnk$LE?p^P!kn&ikhyq! zX~V@&tPF5Qt@V?oTL96Bi%aRiwbe1)9DWQI#?)=HxS7QSw`J`5fAJ*eJbB;uNuKA& zdERDo*{Y<(If(#(B$Lr#;nB(8Y#ia=ZCeW?JfPLuQY`=@cW$k}Rivq|vbxGrRq1Tl9;+(gNt?}UtVKM2`T5t1jLzuL@0UIs`S#vlhl4)^ zLgSYrPj@$+`|j?eSbXTmiHGkWxV8V}BzNR?pl9k_s4pDu9vd5a_UzZEPk)}Ad{AV_ zzddrjrh4=Imr`E06;LY{)YYt?o}L~H@7C}F^WB!Ra=v`Q0bj{>5&$66CWF>mf6vjP z2N>RRY6ZYa=K`76>+|_)Xdwko+7wv}7cN|btOhWb(*{sta~6b?S8Omrxw}!4`NhGr zZVpNqpu1@BE`QGWNTpEpcJVW5izu~2B^GlM?1(OPg)zwW;QcP@Ltcclm>XbJL9C|j z=9!2?ua=uIlf0%AndzHsRC}IyTL$EhAee(fdKB`?27KeS^2M8M_7b~PiCFO&r5LC7 z7gl1*a<8;SjNaw#h=843_AV9iZbWQOAp5YOC^&_F*9K0> zB|6%IDb?aM#3viTxkLU4aXg&@+CkNTOnQ1iMP*^?b|^lJy$4C)Zk4isV!|RZ*XhXh zw8q3$=*0LeGC!XI_Wc?dkT~3+*Gu%%yIqP+Wr3H$=&ROMQU6q}Ag^P~>c5vAEO;a- z_dK-3PPeKar%)6$j~vI2#*-YH!1h6HYVtwCX5_wM`iF#UKz&&@9Oo5w3%XGYrX zW>dY~)SG-((Yim%`InwgTvyRC?e=Wh^8KCao!R6Eg&TpVWUY1sN~4G}V?nFnEGo-; zHZ_$eW9-GnC%^WS9b z@p;-$oH#MtC0v>Q$HX%4^JdFdO$0cbv-W)Q TtK}Eh@>>I#ipmV1>S*>q-hkC} literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/files.html b/trunk/paradiseo-peo/docs/html/lesson1/html/files.html new file mode 100644 index 000000000..d8b1164ac --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/files.html @@ -0,0 +1,31 @@ + + +ParadisEO-PEO Lesson1: File Index + + + + +
    +
    +

    ParadisEO-PEO Lesson1 File List

    Here is a list of all documented files with brief descriptions: + + +
    doclsn.h [code]
    main.cpp [code]
    +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson1 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2blank.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..493c3c0b615ade5b22027bde773faf2c0e076d66 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr2qYM%T@!Q%(o7{me!&ckj8p!u14)&*MwA5S zr6z#mEsk^N1FBF3sc_EE%}vcKVF=AhO-xa6_jFST&P^;T z2~I3aEm8;rVk12R#UIz>f`J-DJY5_^DsClP9B62eH+WF*G=YJMp~A-KbWwke5Kx}M M)78&qol`;+0EL(^EC2ui literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2doc.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..f72999f92172cca6edaa2538286b3e369bec9f49 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^5yjnX4egh%q=bp-`Pe zR7&bp17l3gfhmh7Fm(iZ2eAfco|q!h5)>qKG?UBh!IC9QGMbJAHf6IEiufk_g|d7~ qkWqJ4k(|I-Aeo-5U~n{Fnc?dN!3Uwu?t6hQVDNPHb6Mw<&;$TLIZ`G7 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2folderclosed.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d063440cbf13c4128dacd96661b6fce58abf26 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^55uo^`BphW;jCHO69?}tw{JfcdnZ<*@N=4I z?xF5Qc|QYEmKAIZ;JRGVHe=bn*tx1_|J^^vyg*oVM#A1kZlFULJYD@<);T3K0RTgB BWg7qh literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2folderopen.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe2c913cf493ee37ad8e3a5132382138d93ac92 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^5u(C zYP)Mg%H-DB+{J~>rPn_#pYTax?r*V6ubqGX{lvROQ{?n5_cbm+cQAOm`njxgN@xNA D92;js literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2lastnode.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b9ba90cb0cf71c8ce662956bfee7d64cf60fa6 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gk+!>EaktaVt4N i!r*{E4>QXNV>t$uAA#a^n)TVt_DW*G8-srQl%FeIsRSdYm zeDdtWec}u&7@8h5rqv#p7g*pRdwwmugmlS-+cHV~j}#7`Nwj9m+AU)JGGo`8z_}`K z?s#Xsy%Z;1_jl5Y+?Gum8WyK6`MBvup0SAOKJ)mWcHyteJ?WLL>>-)=?&<$H&t5oH Vd!azZ1yDdSc)I$ztaD0e0sw}(dc*(# literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2mlastnode.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..09ceb6adb01054ce799ad20c0e818ab9272f2df2 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&fg$isFPOjJ*AaIJQGm()YSDb0rfjgNefXW#>UHx3vIVCg! E0ORy6RsaA1 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2mnode.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..3254c05112199fbc80aad313611c58a5b388792d GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&YcgaLd(;| zF{I*Fa>4?=2W(CyOv{5p*uLi}G<-ambjQcb>&~4!CzK3KXWY6d$*{eWU47N}X+XCz OFnGH9xvXPg)ksC(lf|p%(p+w2Gk+y>EaktaVt4N l!r*{E4>Lv;t literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2plastnode.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b07e00913d8069ebbb51bd7fd6d70d8bba88f75 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&MJ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2pnode.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..2001b797ba2b98a4127f1d3efca64aef08bf6d51 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&Ycga!obtT zF{I*Fa>4?=2W(Dkd1@Anj~<0|oqBMOmqox%*rjK-r)THv+0v0L%h-agt(X~hWwYzA SIxU|Ma*U^|pUXO@geCywmoZiV literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2vertline.png b/trunk/paradiseo-peo/docs/html/lesson1/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..b330f3a33c0085c183ff39fc56b1b274160c1da0 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gqgt>EaktaVt4N e!r*{^G#i7W2*a|cHZQDzQVgE1elF{r5}E+)J2fZ( literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/index.html b/trunk/paradiseo-peo/docs/html/lesson1/html/index.html new file mode 100644 index 000000000..1b8f28786 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/index.html @@ -0,0 +1,8 @@ + + +ParadisEO-PEO Lesson1 + + + + + diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/installdox b/trunk/paradiseo-peo/docs/html/lesson1/html/installdox new file mode 100755 index 000000000..772efebb2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( "eo.doxytag", "", "mo.doxytag", "", "paradiseo-peo.doxytag", "", "paradiseo-peo-lsn-shared.doxytag", ""); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/main.html b/trunk/paradiseo-peo/docs/html/lesson1/html/main.html new file mode 100644 index 000000000..a69129414 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/main.html @@ -0,0 +1,157 @@ + + +ParadisEO-PEO Lesson1: Creating a simple ParadisEO-PEO Evolutionary Algorithm + + + + +
    +
    +

    Creating a simple ParadisEO-PEO Evolutionary Algorithm

    +

    +

    0.1

    +Introduction

    +One of the first steps in designing an evolutionary algorihtm using the ParadisEO-PEO framework consists in having a clear overview of the implemented algorithm. A brief pseudo-code description is offered bellow - the entire source code for the ParadisEO-PEO evolutionary algorithm is defined in the peoEA.h header file. The main elements to be considered when building an evolutionary algorithm are the transformation operators, i.e. crossover and mutation, the evaluation function, the continuation criterion and the selection and replacement strategy.

    + + + + + + + + + + + + + +
    do {    
             select( population, offsprings );   // select the offsprings from the current population
             transform( offsprings );   // crossover and mutation operators are applied on the selected offsprings
             evaluate( offsprings );   // evaluation step of the resulting offsprings
             replace( population, offsprings );   // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy
    } while ( eaCheckpointContinue( population ) );   // checkpoint operators are applied on the current population
    +

    +The peoEA class offers an elementary evolutionary algorithm implementation. The peoEA class has the underlying structure for including parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the EO framework, no parallelism is provided - the EO implementation is exclusively sequential.
    +

    +Requirements

    +You should have already installed the ParadisEO-PEO package - this requires several additional packages which should be already included in the provided archive. The installation script has to be launched in order to configure and compile all the required components. At the end of the installation phase you should end up having a directory tree resembling the following:
    +     ...
    +     paradiseo-mo
    +     paradiseo-moeo
    +     paradiseo-peo
    +            docs
    +            examples
    +                   lesson1
    +                   lesson2
    +                   ...
    +                   shared
    +                   ...
    +            src
    +            ...
    +     ...

    +

    +The source-code for this tutorial may be found in the paradiseo-peo/examples/lesson1 directory, in the main.cpp file. For a complete reference on the TSP-related classes and definitions please refer to the files under the paradiseo-peo/examples/shared. After the installation phase you should end up having an tspExample executable file in the paradiseo-peo/examples/lesson1 directory. We will discuss testing and launching aspects later in the tutorial.

    +


    + NOTE: All the presented examples have as case study the Traveling Salesman Problem (TSP). All the presented tutorials rely on a common shared source code defining transformation operators, evaluation functions, etc. for the TSP problem. For a complete understanding of the presented tutorials please take your time for consulting and for studying the additional underlying defined classes.
    +
    +

    +Problem Definition and Representation

    +As we are not directly concerned with the Traveling Salesman Problem, and to some extent out of scope, no in depth details are offered for the TSP. The problem requires finding the shortest path connecting a given set of cities, while visiting each of the specified cities only once and returning to the startpoint city. The problem is known to be NP-complete, i.e. no polynomial time algorithm exists for solving the problem in exact manner.

    +The construction of a ParadisEO-PEO evolutionary algorithm requires following a few simple steps - please take your time to study the signature of the peoEA constructor:

    + + + +
         peoEA(
    +            eoContinue< EOT >& __cont,
    +            peoPopEval< EOT >& __pop_eval,
    +            eoSelect< EOT >& __select,
    +            peoTransform< EOT >& __trans,
    +            eoReplacement< EOT >& __replace
    +     );
    +peoEA.png +
    +
    +

    +A few remarks have to be made: while most of the parameters are passed as EO-specific types, the evaluation and the transformation objects have to be derived from the ParadisEO-PEO peoPopEval and peoTransform classes. Derived classes like the peoParaPopEval and peoParaSGATransform classes allow for parallel evaluation of the population and parallel transformation operators, respectively. Wrappers are provided thus allowing to make use of the EO classes.

    +In the followings, the main required elements for building an evolutionary algorithm are enumerated. For complete details regarding the implementation aspects of each of the components, please refer to the common shared source code. Each of the bellow refered header files may be found in the pardiseo-peo/examples/shared directory.

    +

      +
    1. +representation - the first decision to be taken concerns the representation of the individuals. You may create your own representation or you may use/derive one of the predefined classes of the EO framework.
      +

      +For our case study, the TSP, each city is defined as a Node in the node.h header file - in fact an unsigned value defined as typedef unsigned Node. Moreover, each individual (of the evolutionary algorithm) is represented as a Route object, a vector of Node objects, in the route.h header file - typedef eoVector< int, Node > Route. The definition of the Route object implies two elements: (1) a route is a vector of nodes, and (2) the fitness is an integer value (please refer to the eoVector definition in the EO framework).

      +In addition you should also take a look in the route_init.h header file which includes the RouteInit class, defined for initializing in random manner Route objects.

    2. +
    3. +evaluation function - having a representation model, an evaluation object has to be defined, implementing a specific fitness function. The designed class has to be derived (directly or indirectly) from the peoPopEval class - you have the choice of using peoSeqPopEval or peoParaPopEval for sequential and parallel evaluation, respectively. These classes act as wrappers requiring the specification of an EO evaluation object derived from the eoEvalFunc class - please refer to their respective documentation.
      +

      +The fitness function for our TSP case study is implemented in the route_eval.h header file. The class is derived from the eoEvalFunc EO class, being defined as class RouteEval : public eoEvalFunc< Route >.

    4. +
    5. +transformation operators - in order to assure the evolution of the initial population, transformation operators have to be defined. Depending on your prolem, you may specify quadruple operators (two input individuals, two output resulting individuals), i.e. crossover operators, binary operators (one input individual and one output resulting individual), i.e. mutation operators, or combination of both types. As for the evaluation function, the signature of the peoEA constructor requires specifying a peoTransform derived object as transformation operator.

      +The transform operators, crossover and mutation, for the herein presended example are defined in the order_xover.h and the city_swap.h header files, respectively.

    6. +
    7. +continuation criterion - the evolutionary algorithm evolves in an iterative manner; a continuation criterion has to be specified. One of the most common and simplest options considers a maximum number of generations. It is your choice whether to use a predefined EO class for specifying the continuation criterion or using a custom defined class. In the later case you have to make sure that your class derives the eoContinue class.
      +
    8. +
    9. +selection strategy - at each iteration a set of individuals are selected for applying the transform operators, in order to obtain the offspring population. As the specified parameter has to be derived from the eoSelect it is your option of whehter using the EO provided selection strategies or implementing your own, as long as it inherits the eoSelect class.

      +For our example we chose to use the eoRankingSelect strategy, provided in the EO framework.

    10. +
    11. +replacement strategy - once the offspring population is obtained, the offsprings have to be integrated back into the initial population, according to a given strategy. For custom defined strategies you have to inherit the eoReplacement EO class. We chose to use an eoPlusReplacement as strategy (please review the EO documentation for details on the different strategies available).
    12. +
    +
    +

    +A simple example for constructing a peoEA object

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ...    
    eoPop< EOT > population( POP_SIZE, popInitializer );   // creation of a population with POP_SIZE individuals - the popInitializer is a functor to be called for each individual
       
    eoGenContinue< EOT > eaCont( NUM_GEN );   // number of generations for the evolutionary algorithm
    eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects
       
    peoSeqPopEval< EOT > eaPopEval( evalFunction );   // sequential evaluation functor wrapper - evalFunction represents the actual evaluation functor
       
    eoRankingSelect< EOT > selectionStrategy;   // selection strategy for creating the offspring population - a simple ranking selection in this case
    eoSelectNumber< EOT > eaSelect( selectionStrategy, POP_SIZE );   // the number of individuals to be selected for creating the offspring population
    eoRankingSelect< EOT > selectionStrategy;   // selection strategy for creating the offspring population - a simple ranking selection in this case
       
    eoSGATransform< EOT > transform( crossover, CROSS_RATE, mutation, MUT_RATE );   // transformation operator - crossover and mutation operators with their associated probabilities
    peoSeqTransform< EOT > eaTransform( transform );   // ParadisEO specific sequential operator - a parallel version may be specified in the same manner
       
    eoPlusReplacement< EOT > eaReplace;   // replacement strategy - for integrating the offspring resulting individuals in the initial population
       
    peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace );   // ParadisEO evolutionary algorithm integrating the above defined objects
    eaAlg( population );   // specifying the initial population for the algorithm
    ...    
    +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson1 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/main_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lesson1/html/main_8cpp-source.html new file mode 100644 index 000000000..afb833f31 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/main_8cpp-source.html @@ -0,0 +1,121 @@ + + +ParadisEO-PEO Lesson1: main.cpp Source File + + + + +
    +
    +

    main.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "main.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "param.h"
    +00025 
    +00026 #include "route.h"
    +00027 #include "route_init.h"
    +00028 #include "route_eval.h"
    +00029 
    +00030 #include "order_xover.h"
    +00031 #include "city_swap.h"
    +00032 
    +00033 #include <paradiseo>
    +00034 
    +00035 
    +00036 #define POP_SIZE 10
    +00037 #define NUM_GEN 100
    +00038 #define CROSS_RATE 1.0
    +00039 #define MUT_RATE 0.01
    +00040 
    +00041 
    +00042 int main( int __argc, char** __argv ) {
    +00043 
    +00044         // initializing the ParadisEO-PEO environment
    +00045         peo :: init( __argc, __argv );
    +00046 
    +00047 
    +00048         // processing the command line specified parameters
    +00049         loadParameters( __argc, __argv );
    +00050 
    +00051 
    +00052         // init, eval operators, EA operators -------------------------------------------------------------------------------------------------------------
    +00053 
    +00054         RouteInit route_init;   // random init object - creates random Route objects
    +00055         RouteEval full_eval;    // evaluator object - offers a fitness value for a specified Route object
    +00056 
    +00057         OrderXover crossover;   // crossover operator - creates two offsprings out of two specified parents
    +00058         CitySwap mutation;      // mutation operator - randomly mutates one gene for a specified individual
    +00059         // ------------------------------------------------------------------------------------------------------------------------------------------------
    +00060 
    +00061 
    +00062         // evolutionary algorithm components --------------------------------------------------------------------------------------------------------------
    +00063 
    +00064         eoPop< Route > population( POP_SIZE, route_init );      // initial population for the algorithm having POP_SIZE individuals
    +00065         peoSeqPopEval< Route > eaPopEval( full_eval );          // evaluator object - to be applied at each iteration on the entire population
    +00066 
    +00067         eoGenContinue< Route > eaCont( NUM_GEN );               // continuation criterion - the algorithm will iterate for NUM_GEN generations
    +00068         eoCheckPoint< Route > eaCheckpointContinue( eaCont );   // checkpoint object - verify at each iteration if the continuation criterion is met
    +00069 
    +00070         eoRankingSelect< Route > selectionStrategy;             // selection strategy - applied at each iteration for selecting parent individuals
    +00071         eoSelectNumber< Route > eaSelect( selectionStrategy, POP_SIZE ); // selection object - POP_SIZE individuals are selected at each iteration
    +00072 
    +00073         // transform operator - includes the crossover and the mutation operators with a specified associated rate
    +00074         eoSGATransform< Route > transform( crossover, CROSS_RATE, mutation, MUT_RATE );
    +00075         peoSeqTransform< Route > eaTransform( transform );      // ParadisEO transform operator (please remark the peo prefix) - wraps an e EO transform object
    +00076 
    +00077         eoPlusReplacement< Route > eaReplace;                   // replacement strategy - for replacing the initial population with offspring individuals
    +00078         // ------------------------------------------------------------------------------------------------------------------------------------------------
    +00079 
    +00080 
    +00081         // ParadisEO-PEO evolutionary algorithm -----------------------------------------------------------------------------------------------------------
    +00082 
    +00083         peoEA< Route > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace );
    +00084         
    +00085         eaAlg( population );    // specifying the initial population for the algorithm, to be iteratively evolved
    +00086         // ------------------------------------------------------------------------------------------------------------------------------------------------
    +00087 
    +00088 
    +00089         peo :: run( );
    +00090         peo :: finalize( );
    +00091         // shutting down the ParadisEO-PEO environment
    +00092 
    +00093         return 0;
    +00094 }
    +

    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson1 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/peoEA.png b/trunk/paradiseo-peo/docs/html/lesson1/html/peoEA.png new file mode 100644 index 0000000000000000000000000000000000000000..01a237838e3d5b5f4734e908e6824c847d476636 GIT binary patch literal 37640 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 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/search.php b/trunk/paradiseo-peo/docs/html/lesson1/html/search.php new file mode 100644 index 000000000..118e9a5dc --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/search.php @@ -0,0 +1,380 @@ + + +Search + + + + +

    +
      +
    • Main Page
    • +
    • Files
    • +
    • +
      + + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
      \n
      \n
    • \n
    \n
    \n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

    ".search_results()."

    ".matches_text(0)."
    ".matches_text($numDocs); + echo "\n"; + echo "
    $num.".$doc["name"]."
    ".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
    \n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
    \n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
    \n"; + fclose($file); +} + +main(); + + +?> +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson1 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/tab_b.gif b/trunk/paradiseo-peo/docs/html/lesson1/html/tab_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d623483ffdf5f9f96900108042a7ab0643fe2a3 GIT binary patch literal 35 ncmZ?wbhEHbWMp7uXkcJy*>IeJfk6j|fqX^=1|}vKMh0sDa2W*H literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/tab_l.gif b/trunk/paradiseo-peo/docs/html/lesson1/html/tab_l.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b1e6337c9299a700401a2a78a2c6ffced475216 GIT binary patch literal 706 zcmZ?wbhEHbZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET99@1@a36+kb~?0UJ*yc&I3X_m z!ND^5$O7$#8OFRuDhG}!?8z?cdZK&!`PWjdR;Aj^wZ` zeK{IEYHBJ)6K8VIp1`BVt++swf6j+=L{p1*nO(VhE`pFexG@5$|>uaCcd z`0m=9m+yak{QmXN#Sc$^{$X9h9&q2jiKAI|&T)a;PPx2K9p`YIdw8HtR5k2Q$2-O2 z*;3y{MQ-RnJTgJfI&R5|O)AHxDf_00XbPvDZPy4t=hHd)nfLPvms&O`Ok(sD()5v$ z5U@&h;a=#xbxVbo2~X&Xj0Ie(f{v>vERH+qC+nTG=B8Nca=wU-O$?1&vUgV~9=!H; zx>3p9Yn%*<>t~sk+&0xfyS8RsPfYBd<~wWK%j-LmpU>O7yX^h#UCp1x-p#i7@bE;py8XI6 zmY<)m>~)W~yIWcMVoiPg{duuf<*)9qZ9l$m*Ph&W&$jlv*Vpa+{pH@n=IQ$L?0$ax ec60Ul|8o2P|NVbd{6P)#weSbE3}s?04AuZvx_~SI literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/tab_r.gif b/trunk/paradiseo-peo/docs/html/lesson1/html/tab_r.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce9dd9f533cb5486d6941844f442b59d4a9e9175 GIT binary patch literal 2585 zcmbV}`9Bkk1ILFF--w5zJc=ZZT(zjE=;2|_S)Qm~rCWz1Pc)KPl;jv%A#&v2*x}yc zmf2~Jm~&=xjJY?PqwIN}f8qQ2{r$uH{c*nJbmr{cR5??*egHrs-B=MzCF`3%e{FAW z{oL5xTHn~5TM{jaB;@|_Ue5F&Zb@p(kMyG{*;gWDg zyeL|eZf7Qd8=#bXzSiR{yzRgLSj-fJS8>lBjVHN z^o-0eS=nE6a`W;LChBs=`+QAJP~{b93>H^eRb5kCSC1zUNezun%`L5M?RDzv#%jk7 zYVRX=vATPD`+oEfum^{RM@GjuP?-r=yh0!p;Vx^T9G7~`7%5ydH%70=jyJ;;`d;hv92x3R=z{xp+Lg2!*@OK*K15-t&okoPtSED)h&$RLxdbA zseWm^C3d%-yRNi-ryk^!ek+C`n&~cd$#ZWct_cUL{l~i+Nzx^5d!n94(>bW-iL~Rl z&8r)?q|1DIo=0=judQ{FaGcfLERz8gfn3-Qt<2lksh{mzpT}DXxUuR^z=^key&q4! z+wWI45vL0k$R^(F#{qfqhUsN@WA+w-V?LPH33!Q?WFSB3)WBojE@hK41Nb?KfS+Qo zXgrzfsP$wr4Qzy*{OD>uJBjdgGM@VMml5)2f~_}lD*YyOb}Hjeobhz#4c`w(l^>KK zr?Ud;W~Z}*w;%hZ|2^p^+f06gJDJQD zeIhGADbDmm&6arh(q>EZ<7mjzg7l|z$hRL8=1>)Nv=S7CY$B}iYJ&*T_-T_OG*L1q ztZ3Lana33?y3AKnyq^YCF|4x%Rb5WU&2qcl{TFKey%QJeMxn^SdT!hZ5+0i1zeusiYVp-phBl7b5+Px-X&LhByq z0F&<;K0l2+v>qiHlXb#$jXMv$uK-dEGE9L~qtdU(XeRXmvu*K2Q&6!fD**JxYP4b4BR7FdJ$Qx9G9`J%-_X!a#LGpp3g9)VWytGCa;7`S1_e8F~!R+aSJ zOF17p2`H?2kPs8Q`_;U}+D%3p zs2-0BTqFwpUoBk`?P;iPQ(IbEA|JmMx!P&YYG|R@S=5Mnw;-?A6rEEVyV%d7{iU4a zNk`i!%F(Ykpm`}#oH;BjY->@b8vQedv;pza2FL&*6ufjd+*3Ute&>kes~TU?^KkojsTh(o~(3tk1Y6>4(yn( z#U*ID9@eg-beKo1B;HXe+}{Z%n@7m0+yxivuqk9~;!1LGQlah)xYK4>wgL}l6dsaN zIxlRlq`*`j9PG4*0hD6YV_b_2w5b#)o7J?`q#{GjvvKlD`T*dWcZx<-s(ZvLB44E# z=!|sw!?)@%y$oRNL#25WS3lzdii}TuQ3?CLnvQ1_n};2sT_;Y;#d3=+-(O% zMN$>O!3;ke(UuLR%h_&)N zs^!-@A>QR}4yB1bPp`9S19ikTbZ~O{&FF-yHK{En;mmShDUIEw03`j(DBIsM}Rjki2J#SQa3gFZTKBPDeIiLt9Z z%bL3(B@Qw%(B`wSMS~dPh$=R`(}lBoFXKy(s|*{#ru$wjsBc_O#zxNk9w+UUHmx(U zmJ8+M+ndtnZ<7|VU9Mbt61zpo9T&3%Wx&XII=#QJxjR`CZf22ac3d51Z?GD%LEe_&*t46Qf;4`bZ7p2K(Ab5>GfT^}4! zBT&HZD`^PEgWoI&{~o-ID0F?O`75sm(87x%A{(}Ch1)QlzdJ)1B-eqe5a(weg0`4lQIf1evjvbBY50DVbzO7CLf|vP z2#0(U-|jZ`H{y5N^o7%iK6H>_HEGN->U6^!)1{XpJV!!4(Ig7wzZQ*9WYF4X1rG0x z=1uA@i`rIAciubDC{;~b(|&|A@xkjRP5aRcvRU9tvIm}jDB6J eQ0-6-y)mpwdT=ayS0tBxKDA*~;EWmo literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/tabs.css b/trunk/paradiseo-peo/docs/html/lesson1/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/trunk/paradiseo-peo/docs/html/lesson1/html/tree.html b/trunk/paradiseo-peo/docs/html/lesson1/html/tree.html new file mode 100644 index 000000000..61d1b8ddb --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/html/tree.html @@ -0,0 +1,75 @@ + + + + + + + TreeView + + + + +
    +

    ParadisEO-PEO Lesson1

    + +
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson1/latex/FreeSans.ttf b/trunk/paradiseo-peo/docs/html/lesson1/latex/FreeSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b550b90ba5480f9a3db170a19a1f86daecb0dc92 GIT binary patch literal 22932 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 RlllN>Fk>(~eFPlj{{dxA`xyWL literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson1/latex/Makefile b/trunk/paradiseo-peo/docs/html/lesson1/latex/Makefile new file mode 100644 index 000000000..a67f1b7f6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/latex/Makefile @@ -0,0 +1,17 @@ +all: clean refman.pdf + +refman.pdf: refman.tex + pdflatex refman.tex + makeindex refman.idx + pdflatex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/trunk/paradiseo-peo/docs/html/lesson1/latex/doxygen.sty b/trunk/paradiseo-peo/docs/html/lesson1/latex/doxygen.sty new file mode 100644 index 000000000..1ab8460e7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/latex/doxygen.sty @@ -0,0 +1,78 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} +\RequirePackage{calc} +\RequirePackage{array} +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Sun Jan 7 18:35:29 2007 for Paradis\-EO-PEO Lesson1 by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Sun Jan 7 18:35:29 2007 for Paradis\-EO-PEO Lesson1 by Doxygen }} +\cfoot{} +\newenvironment{Code} +{\footnotesize} +{\normalsize} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DocInclude} +{\footnotesize} +{\normalsize} +\newenvironment{VerbInclude} +{\footnotesize} +{\normalsize} +\newenvironment{Image} +{\begin{figure}[H]} +{\end{figure}} +\newenvironment{ImageNoCaption}{}{} +\newenvironment{CompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{CompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{tabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{tabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{1} +\sloppy +\usepackage[T1]{fontenc} diff --git a/trunk/paradiseo-peo/docs/html/lesson1/latex/main.tex b/trunk/paradiseo-peo/docs/html/lesson1/latex/main.tex new file mode 100644 index 000000000..2d315c8ae --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/latex/main.tex @@ -0,0 +1,101 @@ +\hypertarget{main_structure}{}\section{Introduction}\label{main_structure} +One of the first steps in designing an evolutionary algorihtm using the Paradis\-EO-PEO framework consists in having a clear overview of the implemented algorithm. A brief pseudo-code description is offered bellow - the entire source code for the Paradis\-EO-PEO evolutionary algorithm is defined in the {\bf peo\-EA.h} header file. The main elements to be considered when building an evolutionary algorithm are the transformation operators, i.e. crossover and mutation, the evaluation function, the continuation criterion and the selection and replacement strategy. + +\begin{TabularC}{2} +\hline +{\bf do} \{ ~ &~ \\\hline +~~~~~~~~ select( population, offsprings ); ~ &// select the offsprings from the current population \\\hline +~~~~~~~~ transform( offsprings ); ~ &// crossover and mutation operators are applied on the selected offsprings \\\hline +~~~~~~~~ evaluate( offsprings ); ~ &// evaluation step of the resulting offsprings \\\hline +~~~~~~~~ replace( population, offsprings ); ~ &// replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy \\\hline +\} {\bf while} ( ea\-Checkpoint\-Continue( population ) ); ~ &// checkpoint operators are applied on the current population \\\hline +\end{TabularC} + + +The \doxyref{peo\-EA} class offers an elementary evolutionary algorithm implementation. The \doxyref{peo\-EA} class has the underlying structure for including parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the EO framework, no parallelism is provided - the EO implementation is exclusively sequential. \par +\hypertarget{main_requirements}{}\section{Requirements}\label{main_requirements} +You should have already installed the Paradis\-EO-PEO package - this requires several additional packages which should be already included in the provided archive. The installation script has to be launched in order to configure and compile all the required components. At the end of the installation phase you should end up having a directory tree resembling the following: {\bf \par +~~~~ ... \par +~~~~ paradiseo-mo \par +~~~~ paradiseo-moeo \par +~~~~ paradiseo-peo \par +~~~~ ~~~~~~ docs \par +~~~~ ~~~~~~ examples \par +~~~~ ~~~~~~ ~~~~~~ lesson1 \par +~~~~ ~~~~~~ ~~~~~~ lesson2 \par +~~~~ ~~~~~~ ~~~~~~ ... \par +~~~~ ~~~~~~ ~~~~~~ shared \par +~~~~ ~~~~~~ ~~~~~~ ... \par +~~~~ ~~~~~~ src \par +~~~~ ~~~~~~ ... \par +~~~~ ... } \par + + +The source-code for this tutorial may be found in the {\bf paradiseo-peo/examples/lesson1} directory, in the {\bf \hyperlink{main_8cpp-source}{main.cpp}} file. For a complete reference on the TSP-related classes and definitions please refer to the files under the {\bf paradiseo-peo/examples/shared}. After the installation phase you should end up having an {\bf tsp\-Example} executable file in the {\bf paradiseo-peo/examples/lesson1} directory. We will discuss testing and launching aspects later in the tutorial. + + + + {\bf NOTE}: All the presented examples have as case study the {\em Traveling Salesman Problem (TSP)\/}. All the presented tutorials rely on a \href{../../lsnshared/html/index.html}{\tt common shared source code} defining transformation operators, evaluation functions, etc. for the TSP problem. For a complete understanding of the presented tutorials please take your time for consulting and for studying the additional underlying defined classes. + +\par +\hypertarget{main_problemDef}{}\section{Problem Definition and Representation}\label{main_problemDef} +As we are not directly concerned with the {\em Traveling Salesman Problem\/}, and to some extent out of scope, no in depth details are offered for the TSP. The problem requires finding the shortest path connecting a given set of cities, while visiting each of the specified cities only once and returning to the startpoint city. The problem is known to be NP-complete, i.e. no polynomial time algorithm exists for solving the problem in exact manner. + +The construction of a Paradis\-EO-PEO evolutionary algorithm requires following a few simple steps - please take your time to study the signature of the \doxyref{peo\-EA} constructor: + +\begin{TabularC}{2} +\hline +~~~~ \doxyref{peo\-EA}( \par +~~~~ ~~~~~~ eo\-Continue$<$ EOT $>$\& \_\-\_\-cont, \par +~~~~ ~~~~~~ peo\-Pop\-Eval$<$ EOT $>$\& \_\-\_\-pop\_\-eval, \par +~~~~ ~~~~~~ eo\-Select$<$ EOT $>$\& \_\-\_\-select, \par +~~~~ ~~~~~~ peo\-Transform$<$ EOT $>$\& \_\-\_\-trans, \par +~~~~ ~~~~~~ eo\-Replacement$<$ EOT $>$\& \_\-\_\-replace \par +~~~~ ); & \\\hline +\end{TabularC} + + +A few remarks have to be made: while most of the parameters are passed as EO-specific types, the evaluation and the transformation objects have to be derived from the Paradis\-EO-PEO \doxyref{peo\-Pop\-Eval} and \doxyref{peo\-Transform} classes. Derived classes like the \doxyref{peo\-Para\-Pop\-Eval} and \doxyref{peo\-Para\-SGATransform} classes allow for parallel evaluation of the population and parallel transformation operators, respectively. Wrappers are provided thus allowing to make use of the EO classes. + +In the followings, the main required elements for building an evolutionary algorithm are enumerated. For complete details regarding the implementation aspects of each of the components, please refer to the \href{../../lsnshared/html/index.html}{\tt common shared source code}. Each of the bellow refered header files may be found in the {\bf pardiseo-peo/examples/shared} directory. + +\begin{enumerate} +\item {\em {\bf representation}\/} - the first decision to be taken concerns the representation of the individuals. You may create your own representation or you may use/derive one of the predefined classes of the EO framework. \par + + +For our case study, the TSP, each city is defined as a \doxyref{Node} in the {\bf node.h} header file - in fact an unsigned value defined as {\bf typedef unsigned \doxyref{Node}}. Moreover, each individual (of the evolutionary algorithm) is represented as a Route object, a vector of \doxyref{Node} objects, in the {\bf route.h} header file - {\bf typedef eo\-Vector$<$ int, Node $>$ Route}. The definition of the Route object implies two elements: (1) a route is a vector of nodes, and (2) the fitness is an integer value (please refer to the eo\-Vector definition in the EO framework). + +In addition you should also take a look in the {\bf route\_\-init.h} header file which includes the Route\-Init class, defined for initializing in random manner Route objects. \item {\em {\bf evaluation function}\/} - having a representation model, an evaluation object has to be defined, implementing a specific fitness function. The designed class has to be derived (directly or indirectly) from the \doxyref{peo\-Pop\-Eval} class - you have the choice of using \doxyref{peo\-Seq\-Pop\-Eval} or \doxyref{peo\-Para\-Pop\-Eval} for sequential and parallel evaluation, respectively. These classes act as wrappers requiring the specification of an EO evaluation object derived from the eo\-Eval\-Func class - please refer to their respective documentation. \par + + +The fitness function for our TSP case study is implemented in the {\bf route\_\-eval.h} header file. The class is derived from the eo\-Eval\-Func EO class, being defined as {\bf class Route\-Eval : public eo\-Eval\-Func$<$ Route $>$}. \item {\em {\bf transformation operators}\/} - in order to assure the evolution of the initial population, transformation operators have to be defined. Depending on your prolem, you may specify quadruple operators (two input individuals, two output resulting individuals), i.e. crossover operators, binary operators (one input individual and one output resulting individual), i.e. mutation operators, or combination of both types. As for the evaluation function, the signature of the \doxyref{peo\-EA} constructor requires specifying a \doxyref{peo\-Transform} derived object as transformation operator. + +The transform operators, crossover and mutation, for the herein presended example are defined in the {\bf order\_\-xover.h} and the {\bf city\_\-swap.h} header files, respectively. \item {\em {\bf continuation criterion}\/} - the evolutionary algorithm evolves in an iterative manner; a continuation criterion has to be specified. One of the most common and simplest options considers a maximum number of generations. It is your choice whether to use a predefined EO class for specifying the continuation criterion or using a custom defined class. In the later case you have to make sure that your class derives the eo\-Continue class.\par + \item {\em {\bf selection strategy}\/} - at each iteration a set of individuals are selected for applying the transform operators, in order to obtain the offspring population. As the specified parameter has to be derived from the eo\-Select it is your option of whehter using the EO provided selection strategies or implementing your own, as long as it inherits the eo\-Select class. + +For our example we chose to use the eo\-Ranking\-Select strategy, provided in the EO framework. \item {\em {\bf replacement strategy}\/} - once the offspring population is obtained, the offsprings have to be integrated back into the initial population, according to a given strategy. For custom defined strategies you have to inherit the eo\-Replacement EO class. We chose to use an eo\-Plus\-Replacement as strategy (please review the EO documentation for details on the different strategies available). \end{enumerate} +\par +\hypertarget{main_example}{}\section{A simple example for constructing a peo\-EA object}\label{main_example} +\begin{TabularC}{2} +\hline +... ~ &~ \\\hline +eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// creation of a population with POP\_\-SIZE individuals - the pop\-Initializer is a functor to be called for each individual \\\hline +~ &~ \\\hline +eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// number of generations for the evolutionary algorithm \\\hline +eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects \\\hline +~ &~ \\\hline +peo\-Seq\-Pop\-Eval$<$ EOT $>$ ea\-Pop\-Eval( eval\-Function ); ~ &// sequential evaluation functor wrapper - eval\-Function represents the actual evaluation functor \\\hline +~ &~ \\\hline +eo\-Ranking\-Select$<$ EOT $>$ selection\-Strategy; ~ &// selection strategy for creating the offspring population - a simple ranking selection in this case \\\hline +eo\-Select\-Number$<$ EOT $>$ ea\-Select( selection\-Strategy, POP\_\-SIZE ); ~ &// the number of individuals to be selected for creating the offspring population \\\hline +eo\-Ranking\-Select$<$ EOT $>$ selection\-Strategy; ~ &// selection strategy for creating the offspring population - a simple ranking selection in this case \\\hline +~ &~ \\\hline +eo\-SGATransform$<$ EOT $>$ transform( crossover, CROSS\_\-RATE, mutation, MUT\_\-RATE ); ~ &// transformation operator - crossover and mutation operators with their associated probabilities \\\hline +peo\-Seq\-Transform$<$ EOT $>$ ea\-Transform( transform ); ~ &// Paradis\-EO specific sequential operator - a parallel version may be specified in the same manner \\\hline +~ &~ \\\hline +eo\-Plus\-Replacement$<$ EOT $>$ ea\-Replace; ~ &// replacement strategy - for integrating the offspring resulting individuals in the initial population \\\hline +~ &~ \\\hline +peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace ); ~ &// Paradis\-EO evolutionary algorithm integrating the above defined objects \\\hline +ea\-Alg( population ); ~ &// specifying the initial population for the algorithm \\\hline +... ~ &~ \\\hline +\end{TabularC} diff --git a/trunk/paradiseo-peo/docs/html/lesson1/latex/refman.tex b/trunk/paradiseo-peo/docs/html/lesson1/latex/refman.tex new file mode 100644 index 000000000..00cc56a0c --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson1/latex/refman.tex @@ -0,0 +1,49 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{times} +\usepackage{ifpdf} +\ifpdf +\usepackage[pdftex, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\else +\usepackage[ps2pdf, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\usepackage{pspicture} +\fi +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large Paradis\-EO-PEO Lesson1 Reference Manual\\[1ex]\large 0.1 }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.4.7}\\ +\vspace*{0.5cm} +{\small Sun Jan 7 18:35:29 2007}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\chapter{Creating a simple Paradis\-EO-PEO Evolutionary Algorithm } +\label{index}\hypertarget{index}{}\input{main} +\printindex +\end{document} diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/doxygen.css b/trunk/paradiseo-peo/docs/html/lesson2/html/doxygen.css new file mode 100644 index 000000000..5d583694e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/doxygen.png b/trunk/paradiseo-peo/docs/html/lesson2/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a274bbaffdd67f6d784c894d9cf28729db0e14 GIT binary patch literal 1281 zcmaJ>ZA?>F7(Vx-ms?uoS`b@hdRtpo6o^%HU>M$hfGrBvQnk$LE?p^P!kn&ikhyq! zX~V@&tPF5Qt@V?oTL96Bi%aRiwbe1)9DWQI#?)=HxS7QSw`J`5fAJ*eJbB;uNuKA& zdERDo*{Y<(If(#(B$Lr#;nB(8Y#ia=ZCeW?JfPLuQY`=@cW$k}Rivq|vbxGrRq1Tl9;+(gNt?}UtVKM2`T5t1jLzuL@0UIs`S#vlhl4)^ zLgSYrPj@$+`|j?eSbXTmiHGkWxV8V}BzNR?pl9k_s4pDu9vd5a_UzZEPk)}Ad{AV_ zzddrjrh4=Imr`E06;LY{)YYt?o}L~H@7C}F^WB!Ra=v`Q0bj{>5&$66CWF>mf6vjP z2N>RRY6ZYa=K`76>+|_)Xdwko+7wv}7cN|btOhWb(*{sta~6b?S8Omrxw}!4`NhGr zZVpNqpu1@BE`QGWNTpEpcJVW5izu~2B^GlM?1(OPg)zwW;QcP@Ltcclm>XbJL9C|j z=9!2?ua=uIlf0%AndzHsRC}IyTL$EhAee(fdKB`?27KeS^2M8M_7b~PiCFO&r5LC7 z7gl1*a<8;SjNaw#h=843_AV9iZbWQOAp5YOC^&_F*9K0> zB|6%IDb?aM#3viTxkLU4aXg&@+CkNTOnQ1iMP*^?b|^lJy$4C)Zk4isV!|RZ*XhXh zw8q3$=*0LeGC!XI_Wc?dkT~3+*Gu%%yIqP+Wr3H$=&ROMQU6q}Ag^P~>c5vAEO;a- z_dK-3PPeKar%)6$j~vI2#*-YH!1h6HYVtwCX5_wM`iF#UKz&&@9Oo5w3%XGYrX zW>dY~)SG-((Yim%`InwgTvyRC?e=Wh^8KCao!R6Eg&TpVWUY1sN~4G}V?nFnEGo-; zHZ_$eW9-GnC%^WS9b z@p;-$oH#MtC0v>Q$HX%4^JdFdO$0cbv-W)Q TtK}Eh@>>I#ipmV1>S*>q-hkC} literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/files.html b/trunk/paradiseo-peo/docs/html/lesson2/html/files.html new file mode 100644 index 000000000..a18d0503c --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/files.html @@ -0,0 +1,30 @@ + + +ParadisEO-PEO Lesson2: File Index + + + + +
    +
    +

    ParadisEO-PEO Lesson2 File List

    Here is a list of all documented files with brief descriptions: + +
    main.cpp [code]
    +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson2 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2blank.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..493c3c0b615ade5b22027bde773faf2c0e076d66 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr2qYM%T@!Q%(o7{me!&ckj8p!u14)&*MwA5S zr6z#mEsk^N1FBF3sc_EE%}vcKVF=AhO-xa6_jFST&P^;T z2~I3aEm8;rVk12R#UIz>f`J-DJY5_^DsClP9B62eH+WF*G=YJMp~A-KbWwke5Kx}M M)78&qol`;+0EL(^EC2ui literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2doc.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..f72999f92172cca6edaa2538286b3e369bec9f49 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^5yjnX4egh%q=bp-`Pe zR7&bp17l3gfhmh7Fm(iZ2eAfco|q!h5)>qKG?UBh!IC9QGMbJAHf6IEiufk_g|d7~ qkWqJ4k(|I-Aeo-5U~n{Fnc?dN!3Uwu?t6hQVDNPHb6Mw<&;$TLIZ`G7 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2folderclosed.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d063440cbf13c4128dacd96661b6fce58abf26 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^55uo^`BphW;jCHO69?}tw{JfcdnZ<*@N=4I z?xF5Qc|QYEmKAIZ;JRGVHe=bn*tx1_|J^^vyg*oVM#A1kZlFULJYD@<);T3K0RTgB BWg7qh literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2folderopen.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe2c913cf493ee37ad8e3a5132382138d93ac92 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^5u(C zYP)Mg%H-DB+{J~>rPn_#pYTax?r*V6ubqGX{lvROQ{?n5_cbm+cQAOm`njxgN@xNA D92;js literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2lastnode.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b9ba90cb0cf71c8ce662956bfee7d64cf60fa6 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gk+!>EaktaVt4N i!r*{E4>QXNV>t$uAA#a^n)TVt_DW*G8-srQl%FeIsRSdYm zeDdtWec}u&7@8h5rqv#p7g*pRdwwmugmlS-+cHV~j}#7`Nwj9m+AU)JGGo`8z_}`K z?s#Xsy%Z;1_jl5Y+?Gum8WyK6`MBvup0SAOKJ)mWcHyteJ?WLL>>-)=?&<$H&t5oH Vd!azZ1yDdSc)I$ztaD0e0sw}(dc*(# literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2mlastnode.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..09ceb6adb01054ce799ad20c0e818ab9272f2df2 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&fg$isFPOjJ*AaIJQGm()YSDb0rfjgNefXW#>UHx3vIVCg! E0ORy6RsaA1 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2mnode.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..3254c05112199fbc80aad313611c58a5b388792d GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&YcgaLd(;| zF{I*Fa>4?=2W(CyOv{5p*uLi}G<-ambjQcb>&~4!CzK3KXWY6d$*{eWU47N}X+XCz OFnGH9xvXPg)ksC(lf|p%(p+w2Gk+y>EaktaVt4N l!r*{E4>Lv;t literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2plastnode.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b07e00913d8069ebbb51bd7fd6d70d8bba88f75 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&MJ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2pnode.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..2001b797ba2b98a4127f1d3efca64aef08bf6d51 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&Ycga!obtT zF{I*Fa>4?=2W(Dkd1@Anj~<0|oqBMOmqox%*rjK-r)THv+0v0L%h-agt(X~hWwYzA SIxU|Ma*U^|pUXO@geCywmoZiV literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2vertline.png b/trunk/paradiseo-peo/docs/html/lesson2/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..b330f3a33c0085c183ff39fc56b1b274160c1da0 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gqgt>EaktaVt4N e!r*{^G#i7W2*a|cHZQDzQVgE1elF{r5}E+)J2fZ( literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/index.html b/trunk/paradiseo-peo/docs/html/lesson2/html/index.html new file mode 100644 index 000000000..772d0834e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/index.html @@ -0,0 +1,8 @@ + + +ParadisEO-PEO Lesson2 + + + + + diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/installdox b/trunk/paradiseo-peo/docs/html/lesson2/html/installdox new file mode 100755 index 000000000..772efebb2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( "eo.doxytag", "", "mo.doxytag", "", "paradiseo-peo.doxytag", "", "paradiseo-peo-lsn-shared.doxytag", ""); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/main.html b/trunk/paradiseo-peo/docs/html/lesson2/html/main.html new file mode 100644 index 000000000..f8c8dc781 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/main.html @@ -0,0 +1,29 @@ + + +ParadisEO-PEO Lesson2: Main Page + + + + +
    +
    +

    ParadisEO-PEO Lesson2 Documentation

    +

    +

    0.1


    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson2 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/main_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lesson2/html/main_8cpp-source.html new file mode 100644 index 000000000..916758294 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/main_8cpp-source.html @@ -0,0 +1,198 @@ + + +ParadisEO-PEO Lesson2: main.cpp Source File + + + + +
    +
    +

    main.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "main_ga.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "param.h"
    +00025 #include "route_init.h"
    +00026 #include "route_eval.h"
    +00027 
    +00028 #include "order_xover.h"
    +00029 #include "edge_xover.h"
    +00030 #include "partial_mapped_xover.h"
    +00031 #include "city_swap.h"
    +00032 #include "part_route_eval.h"
    +00033 #include "merge_route_eval.h"
    +00034 #include "two_opt_init.h"
    +00035 #include "two_opt_next.h"
    +00036 #include "two_opt_incr_eval.h"
    +00037 
    +00038 #include <paradiseo>
    +00039 
    +00040 #define POP_SIZE 10
    +00041 #define NUM_GEN 100
    +00042 #define CROSS_RATE 1.0
    +00043 #define MUT_RATE 0.01
    +00044 #define NUM_PART_EVALS 2
    +00045 
    +00046 #define MIG_FREQ 10
    +00047 #define MIG_SIZE 10
    +00048 #define HYBRID_SIZE 3
    +00049 
    +00050 int main (int __argc, char * * __argv) {
    +00051 
    +00052   peo :: init (__argc, __argv);
    +00053 
    +00054   loadParameters (__argc, __argv); /* Processing some parameters relative to the tackled
    +00055                                       problem (TSP) */
    +00056 
    +00057   RouteInit route_init; /* Its builds random routes */  
    +00058   RouteEval full_eval; /* Full route evaluator */
    +00059 
    +00060   MergeRouteEval merge_eval; 
    +00061   
    +00062   std :: vector <eoEvalFunc <Route> *> part_eval;
    +00063   for (unsigned i = 1 ; i <= NUM_PART_EVALS ; i ++)
    +00064     part_eval.push_back (new PartRouteEval ((float) (i - 1) / NUM_PART_EVALS, (float) i / NUM_PART_EVALS));
    +00065   
    +00066   OrderXover order_cross; /* Recombination */
    +00067   PartialMappedXover pm_cross;
    +00068   EdgeXover edge_cross;
    +00069   CitySwap city_swap_mut;  /* Mutation */
    +00070 
    +00071   RingTopology topo;
    +00072  
    +00075   eoPop <Route> ox_pop (POP_SIZE, route_init);  /* Population */
    +00076   
    +00077   eoGenContinue <Route> ox_cont (NUM_GEN); /* A fixed number of iterations */  
    +00078   eoCheckPoint <Route> ox_checkpoint (ox_cont); /* Checkpoint */
    +00079   peoParaPopEval <Route> ox_pop_eval (part_eval, merge_eval);  
    +00080   eoStochTournamentSelect <Route> ox_select_one;
    +00081   eoSelectNumber <Route> ox_select (ox_select_one, POP_SIZE);
    +00082   eoSGATransform <Route> ox_transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE);
    +00083   peoSeqTransform <Route> ox_para_transform (ox_transform);    
    +00084   eoEPReplacement <Route> ox_replace (2);
    +00085   
    +00086   /* The migration policy */
    +00087   eoPeriodicContinue <Route> ox_mig_cont (MIG_FREQ); /* Migration occurs periodically */
    +00088   eoRandomSelect <Route> ox_mig_select_one; /* Emigrants are randomly selected */
    +00089   eoSelectNumber <Route> ox_mig_select (ox_mig_select_one, MIG_SIZE);
    +00090   eoPlusReplacement <Route> ox_mig_replace; /* Immigrants replace the worse individuals */
    +00091   
    +00092   peoAsyncIslandMig <Route> ox_mig (ox_mig_cont, ox_mig_select, ox_mig_replace, topo, ox_pop, ox_pop);
    +00093   //peoSyncIslandMig <Route> ox_mig (MIG_FREQ, ox_mig_select, ox_mig_replace, topo, ox_pop, ox_pop);
    +00094   
    +00095   ox_checkpoint.add (ox_mig);
    +00096   
    +00097   peoEA <Route> ox_ea (ox_checkpoint, ox_pop_eval, ox_select, ox_para_transform, ox_replace);
    +00098   ox_mig.setOwner (ox_ea);
    +00099   
    +00100   ox_ea (ox_pop);   /* Application to the given population */    
    +00101 
    +00104   eoPop <Route> pmx_pop (POP_SIZE, route_init);  /* Population */
    +00105 
    +00106   eoGenContinue <Route> pmx_cont (NUM_GEN); /* A fixed number of iterations */  
    +00107   eoCheckPoint <Route> pmx_checkpoint (pmx_cont); /* Checkpoint */
    +00108   peoSeqPopEval <Route> pmx_pop_eval (full_eval);  
    +00109   eoRankingSelect <Route> pmx_select_one;
    +00110   eoSelectNumber <Route> pmx_select (pmx_select_one, POP_SIZE);
    +00111   eoSGATransform <Route> pmx_transform (pm_cross, CROSS_RATE, city_swap_mut, MUT_RATE);
    +00112   peoSeqTransform <Route> pmx_para_transform (pmx_transform);    
    +00113   eoPlusReplacement <Route> pmx_replace;
    +00114 
    +00115   /* The migration policy */
    +00116   eoPeriodicContinue <Route> pmx_mig_cont (MIG_FREQ); /* Migration occurs periodically */
    +00117   eoRandomSelect <Route> pmx_mig_select_one; /* Emigrants are randomly selected */
    +00118   eoSelectNumber <Route> pmx_mig_select (pmx_mig_select_one, MIG_SIZE);
    +00119   eoPlusReplacement <Route> pmx_mig_replace; /* Immigrants replace the worse individuals */
    +00120   peoAsyncIslandMig <Route> pmx_mig (pmx_mig_cont, pmx_mig_select, pmx_mig_replace, topo, pmx_pop, pmx_pop);
    +00121   //peoSyncIslandMig <Route> pmx_mig (MIG_FREQ, pmx_mig_select, pmx_mig_replace, topo, pmx_pop, pmx_pop);
    +00122   pmx_checkpoint.add (pmx_mig);
    +00123   
    +00124   /* Hybridization with a Local Search */
    +00125   TwoOptInit pmx_two_opt_init;
    +00126   TwoOptNext pmx_two_opt_next;
    +00127   TwoOptIncrEval pmx_two_opt_incr_eval;
    +00128   moBestImprSelect <TwoOpt> pmx_two_opt_move_select;
    +00129   moHC <TwoOpt> hc (pmx_two_opt_init, pmx_two_opt_next, pmx_two_opt_incr_eval, pmx_two_opt_move_select, full_eval);
    +00130 
    +00131   eoPeriodicContinue <Route> pmx_ls_cont (MIG_FREQ); /* Hybridization occurs periodically */
    +00132   eoRandomSelect <Route> pmx_ls_select_one; /* ? */
    +00133   eoSelectNumber <Route> pmx_ls_select (pmx_ls_select_one, HYBRID_SIZE); 
    +00134   eoPlusReplacement <Route> pmx_ls_replace;
    +00135 
    +00136   peoSyncMultiStart <Route> pmx_ls (pmx_ls_cont, pmx_ls_select, pmx_ls_replace, hc, pmx_pop);
    +00137   pmx_checkpoint.add (pmx_ls);
    +00138 
    +00139   peoEA <Route> pmx_ea (pmx_checkpoint, pmx_pop_eval, pmx_select, pmx_para_transform, pmx_replace);
    +00140   pmx_mig.setOwner (pmx_ea);
    +00141   pmx_ls.setOwner (pmx_ea);
    +00142 
    +00143   pmx_ea (pmx_pop);   /* Application to the given population */    
    +00144 
    +00147   eoPop <Route> edge_pop (POP_SIZE, route_init);  /* Population */
    +00148 
    +00149   eoGenContinue <Route> edge_cont (NUM_GEN); /* A fixed number of iterations */  
    +00150   eoCheckPoint <Route> edge_checkpoint (edge_cont); /* Checkpoint */
    +00151   peoSeqPopEval <Route> edge_pop_eval (full_eval);  
    +00152   eoRankingSelect <Route> edge_select_one;
    +00153   eoSelectNumber <Route> edge_select (edge_select_one, POP_SIZE);        
    +00154   peoParaSGATransform <Route> edge_para_transform (edge_cross, CROSS_RATE, city_swap_mut, MUT_RATE);
    +00155   eoPlusReplacement <Route> edge_replace;
    +00156 
    +00157   /* The migration policy */
    +00158   eoPeriodicContinue <Route> edge_mig_cont (MIG_FREQ); /* Migration occurs periodically */
    +00159   eoRandomSelect <Route> edge_mig_select_one; /* Emigrants are randomly selected */
    +00160   eoSelectNumber <Route> edge_mig_select (edge_mig_select_one, MIG_SIZE);
    +00161   eoPlusReplacement <Route> edge_mig_replace; /* Immigrants replace the worse individuals */
    +00162   peoAsyncIslandMig <Route> edge_mig (edge_mig_cont, edge_mig_select, edge_mig_replace, topo, edge_pop, edge_pop);
    +00163   //peoSyncIslandMig <Route> edge_mig (MIG_FREQ, edge_mig_select, edge_mig_replace, topo, edge_pop, edge_pop);
    +00164   edge_checkpoint.add (edge_mig);
    +00165 
    +00166   peoEA <Route> edge_ea (edge_checkpoint, edge_pop_eval, edge_select, edge_para_transform, edge_replace);
    +00167 
    +00168   edge_mig.setOwner (edge_ea);
    +00169 
    +00170   edge_ea (edge_pop);   /* Application to the given population */    
    +00171   
    +00172   peo :: run ();
    +00173 
    +00174   peo :: finalize (); /* Termination */
    +00175 
    +00176   return 0;
    +00177 }
    +

    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson2 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/search.idx b/trunk/paradiseo-peo/docs/html/lesson2/html/search.idx new file mode 100644 index 0000000000000000000000000000000000000000..290d0271726673da3437d1d7ade5ea93de356e1e GIT binary patch literal 265663 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 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/search.php b/trunk/paradiseo-peo/docs/html/lesson2/html/search.php new file mode 100644 index 000000000..4cfbe74c2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/search.php @@ -0,0 +1,380 @@ + + +Search + + + + +
    +
      +
    • Main Page
    • +
    • Files
    • +
    • +
      + + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
      \n
      \n
    • \n
    \n
    \n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

    ".search_results()."

    ".matches_text(0)."
    ".matches_text($numDocs); + echo "\n"; + echo "
    $num.".$doc["name"]."
    ".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
    \n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
    \n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
    \n"; + fclose($file); +} + +main(); + + +?> +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO Lesson2 by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/tab_b.gif b/trunk/paradiseo-peo/docs/html/lesson2/html/tab_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d623483ffdf5f9f96900108042a7ab0643fe2a3 GIT binary patch literal 35 ncmZ?wbhEHbWMp7uXkcJy*>IeJfk6j|fqX^=1|}vKMh0sDa2W*H literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/tab_l.gif b/trunk/paradiseo-peo/docs/html/lesson2/html/tab_l.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b1e6337c9299a700401a2a78a2c6ffced475216 GIT binary patch literal 706 zcmZ?wbhEHbZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET99@1@a36+kb~?0UJ*yc&I3X_m z!ND^5$O7$#8OFRuDhG}!?8z?cdZK&!`PWjdR;Aj^wZ` zeK{IEYHBJ)6K8VIp1`BVt++swf6j+=L{p1*nO(VhE`pFexG@5$|>uaCcd z`0m=9m+yak{QmXN#Sc$^{$X9h9&q2jiKAI|&T)a;PPx2K9p`YIdw8HtR5k2Q$2-O2 z*;3y{MQ-RnJTgJfI&R5|O)AHxDf_00XbPvDZPy4t=hHd)nfLPvms&O`Ok(sD()5v$ z5U@&h;a=#xbxVbo2~X&Xj0Ie(f{v>vERH+qC+nTG=B8Nca=wU-O$?1&vUgV~9=!H; zx>3p9Yn%*<>t~sk+&0xfyS8RsPfYBd<~wWK%j-LmpU>O7yX^h#UCp1x-p#i7@bE;py8XI6 zmY<)m>~)W~yIWcMVoiPg{duuf<*)9qZ9l$m*Ph&W&$jlv*Vpa+{pH@n=IQ$L?0$ax ec60Ul|8o2P|NVbd{6P)#weSbE3}s?04AuZvx_~SI literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/tab_r.gif b/trunk/paradiseo-peo/docs/html/lesson2/html/tab_r.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce9dd9f533cb5486d6941844f442b59d4a9e9175 GIT binary patch literal 2585 zcmbV}`9Bkk1ILFF--w5zJc=ZZT(zjE=;2|_S)Qm~rCWz1Pc)KPl;jv%A#&v2*x}yc zmf2~Jm~&=xjJY?PqwIN}f8qQ2{r$uH{c*nJbmr{cR5??*egHrs-B=MzCF`3%e{FAW z{oL5xTHn~5TM{jaB;@|_Ue5F&Zb@p(kMyG{*;gWDg zyeL|eZf7Qd8=#bXzSiR{yzRgLSj-fJS8>lBjVHN z^o-0eS=nE6a`W;LChBs=`+QAJP~{b93>H^eRb5kCSC1zUNezun%`L5M?RDzv#%jk7 zYVRX=vATPD`+oEfum^{RM@GjuP?-r=yh0!p;Vx^T9G7~`7%5ydH%70=jyJ;;`d;hv92x3R=z{xp+Lg2!*@OK*K15-t&okoPtSED)h&$RLxdbA zseWm^C3d%-yRNi-ryk^!ek+C`n&~cd$#ZWct_cUL{l~i+Nzx^5d!n94(>bW-iL~Rl z&8r)?q|1DIo=0=judQ{FaGcfLERz8gfn3-Qt<2lksh{mzpT}DXxUuR^z=^key&q4! z+wWI45vL0k$R^(F#{qfqhUsN@WA+w-V?LPH33!Q?WFSB3)WBojE@hK41Nb?KfS+Qo zXgrzfsP$wr4Qzy*{OD>uJBjdgGM@VMml5)2f~_}lD*YyOb}Hjeobhz#4c`w(l^>KK zr?Ud;W~Z}*w;%hZ|2^p^+f06gJDJQD zeIhGADbDmm&6arh(q>EZ<7mjzg7l|z$hRL8=1>)Nv=S7CY$B}iYJ&*T_-T_OG*L1q ztZ3Lana33?y3AKnyq^YCF|4x%Rb5WU&2qcl{TFKey%QJeMxn^SdT!hZ5+0i1zeusiYVp-phBl7b5+Px-X&LhByq z0F&<;K0l2+v>qiHlXb#$jXMv$uK-dEGE9L~qtdU(XeRXmvu*K2Q&6!fD**JxYP4b4BR7FdJ$Qx9G9`J%-_X!a#LGpp3g9)VWytGCa;7`S1_e8F~!R+aSJ zOF17p2`H?2kPs8Q`_;U}+D%3p zs2-0BTqFwpUoBk`?P;iPQ(IbEA|JmMx!P&YYG|R@S=5Mnw;-?A6rEEVyV%d7{iU4a zNk`i!%F(Ykpm`}#oH;BjY->@b8vQedv;pza2FL&*6ufjd+*3Ute&>kes~TU?^KkojsTh(o~(3tk1Y6>4(yn( z#U*ID9@eg-beKo1B;HXe+}{Z%n@7m0+yxivuqk9~;!1LGQlah)xYK4>wgL}l6dsaN zIxlRlq`*`j9PG4*0hD6YV_b_2w5b#)o7J?`q#{GjvvKlD`T*dWcZx<-s(ZvLB44E# z=!|sw!?)@%y$oRNL#25WS3lzdii}TuQ3?CLnvQ1_n};2sT_;Y;#d3=+-(O% zMN$>O!3;ke(UuLR%h_&)N zs^!-@A>QR}4yB1bPp`9S19ikTbZ~O{&FF-yHK{En;mmShDUIEw03`j(DBIsM}Rjki2J#SQa3gFZTKBPDeIiLt9Z z%bL3(B@Qw%(B`wSMS~dPh$=R`(}lBoFXKy(s|*{#ru$wjsBc_O#zxNk9w+UUHmx(U zmJ8+M+ndtnZ<7|VU9Mbt61zpo9T&3%Wx&XII=#QJxjR`CZf22ac3d51Z?GD%LEe_&*t46Qf;4`bZ7p2K(Ab5>GfT^}4! zBT&HZD`^PEgWoI&{~o-ID0F?O`75sm(87x%A{(}Ch1)QlzdJ)1B-eqe5a(weg0`4lQIf1evjvbBY50DVbzO7CLf|vP z2#0(U-|jZ`H{y5N^o7%iK6H>_HEGN->U6^!)1{XpJV!!4(Ig7wzZQ*9WYF4X1rG0x z=1uA@i`rIAciubDC{;~b(|&|A@xkjRP5aRcvRU9tvIm}jDB6J eQ0-6-y)mpwdT=ayS0tBxKDA*~;EWmo literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/tabs.css b/trunk/paradiseo-peo/docs/html/lesson2/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/trunk/paradiseo-peo/docs/html/lesson2/html/tree.html b/trunk/paradiseo-peo/docs/html/lesson2/html/tree.html new file mode 100644 index 000000000..b5d9f9757 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/html/tree.html @@ -0,0 +1,73 @@ + + + + + + + TreeView + + + + +
    +

    ParadisEO-PEO Lesson2

    +
    +

    \+File List

    +
    +

     \*main.cpp

    +
    +
    +
    + + diff --git a/trunk/paradiseo-peo/docs/html/lesson2/latex/FreeSans.ttf b/trunk/paradiseo-peo/docs/html/lesson2/latex/FreeSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b550b90ba5480f9a3db170a19a1f86daecb0dc92 GIT binary patch literal 22932 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 RlllN>Fk>(~eFPlj{{dxA`xyWL literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lesson2/latex/Makefile b/trunk/paradiseo-peo/docs/html/lesson2/latex/Makefile new file mode 100644 index 000000000..a67f1b7f6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/latex/Makefile @@ -0,0 +1,17 @@ +all: clean refman.pdf + +refman.pdf: refman.tex + pdflatex refman.tex + makeindex refman.idx + pdflatex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/trunk/paradiseo-peo/docs/html/lesson2/latex/doxygen.sty b/trunk/paradiseo-peo/docs/html/lesson2/latex/doxygen.sty new file mode 100644 index 000000000..677880986 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/latex/doxygen.sty @@ -0,0 +1,78 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} +\RequirePackage{calc} +\RequirePackage{array} +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Sun Jan 7 18:35:29 2007 for Paradis\-EO-PEO Lesson2 by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Sun Jan 7 18:35:29 2007 for Paradis\-EO-PEO Lesson2 by Doxygen }} +\cfoot{} +\newenvironment{Code} +{\footnotesize} +{\normalsize} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DocInclude} +{\footnotesize} +{\normalsize} +\newenvironment{VerbInclude} +{\footnotesize} +{\normalsize} +\newenvironment{Image} +{\begin{figure}[H]} +{\end{figure}} +\newenvironment{ImageNoCaption}{}{} +\newenvironment{CompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{CompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{tabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{tabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{1} +\sloppy +\usepackage[T1]{fontenc} diff --git a/trunk/paradiseo-peo/docs/html/lesson2/latex/refman.tex b/trunk/paradiseo-peo/docs/html/lesson2/latex/refman.tex new file mode 100644 index 000000000..c2c7b867f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lesson2/latex/refman.tex @@ -0,0 +1,47 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{times} +\usepackage{ifpdf} +\ifpdf +\usepackage[pdftex, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\else +\usepackage[ps2pdf, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\usepackage{pspicture} +\fi +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large Paradis\-EO-PEO Lesson2 Reference Manual\\[1ex]\large 0.1 }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.4.7}\\ +\vspace*{0.5cm} +{\small Sun Jan 7 18:35:29 2007}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\printindex +\end{document} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/annotated.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/annotated.html new file mode 100644 index 000000000..d11e565d8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/annotated.html @@ -0,0 +1,51 @@ + + +ParadisEO-PEO - Lessons: Class List + + + + +
    +
    + +

    ParadisEO-PEO - Lessons Class List

    Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + +
    CitySwapIts swaps two vertices randomly choosen
    DisplayBestRoute
    EdgeXoverEdge Crossover
    MergeRouteEval
    OrderXoverOrder Crossover
    PartialMappedXoverPartial Mapped Crossover
    PartRouteEvalRoute Evaluator
    RouteEval
    RouteInit
    TwoOpt
    TwoOptIncrEval
    TwoOptInit
    TwoOptNext
    TwoOptRand
    +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/city__swap_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/city__swap_8cpp-source.html new file mode 100644 index 000000000..65fd8ea95 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/city__swap_8cpp-source.html @@ -0,0 +1,64 @@ + + +ParadisEO-PEO - Lessons: city_swap.cpp Source File + + + + +
    +
    +

    city_swap.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "city_swap.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2002
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <utils/eoRNG.h>
    +00025 
    +00026 #include "city_swap.h"
    +00027 
    +00028 bool CitySwap :: operator () (Route & __route) {
    +00029   
    +00030   std :: swap (__route [rng.random (__route.size ())],
    +00031                __route [rng.random (__route.size ())]) ;
    +00032     
    +00033   __route.invalidate () ;
    +00034   
    +00035   return true ;
    +00036 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/city__swap_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/city__swap_8h-source.html new file mode 100644 index 000000000..ed2dddd9a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/city__swap_8h-source.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO - Lessons: city_swap.h Source File + + + + +
    +
    +

    city_swap.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "city_swap.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2002
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef city_swap_h
    +00025 #define city_swap_h
    +00026 
    +00027 #include <eoOp.h>
    +00028 
    +00029 #include "route.h"
    +00030 
    +00033 class CitySwap : public eoMonOp <Route> {
    +00034   
    +00035 public :
    +00036   
    +00037   bool operator () (Route & __route) ;
    +00038     
    +00039 } ;
    +00040 
    +00041 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classCitySwap-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classCitySwap-members.html new file mode 100644 index 000000000..1365426bd --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classCitySwap-members.html @@ -0,0 +1,37 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    CitySwap Member List

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

    + +
    operator()(Route &__route)CitySwap


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classCitySwap.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classCitySwap.html new file mode 100644 index 000000000..9c8427120 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classCitySwap.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO - Lessons: CitySwap Class Reference + + + + +
    +
    + +

    CitySwap Class Reference

    Its swaps two vertices randomly choosen. +More... +

    +#include <city_swap.h> +

    +List of all members. + + + + +

    Public Member Functions

    +bool operator() (Route &__route)
    +


    Detailed Description

    +Its swaps two vertices randomly choosen. +

    + +

    +Definition at line 33 of file city_swap.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classDisplayBestRoute-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classDisplayBestRoute-members.html new file mode 100644 index 000000000..68fe41683 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classDisplayBestRoute-members.html @@ -0,0 +1,39 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    DisplayBestRoute Member List

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

    + + + +
    DisplayBestRoute(eoPop< Route > &__pop)DisplayBestRoute
    operator()()DisplayBestRoute
    popDisplayBestRoute [private]


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classDisplayBestRoute.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classDisplayBestRoute.html new file mode 100644 index 000000000..0c632504b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classDisplayBestRoute.html @@ -0,0 +1,56 @@ + + +ParadisEO-PEO - Lessons: DisplayBestRoute Class Reference + + + + +
    +
    + +

    DisplayBestRoute Class Reference

    List of all members. + + + + + + + + + +

    Public Member Functions

    DisplayBestRoute (eoPop< Route > &__pop)
    +void operator() ()

    Private Attributes

    +eoPop< Route > & pop
    +

    Detailed Description

    + +

    + +

    +Definition at line 33 of file display_best_route.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classEdgeXover-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classEdgeXover-members.html new file mode 100644 index 000000000..9c12f38b8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classEdgeXover-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    EdgeXover Member List

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

    + + + + + + + +
    _mapEdgeXover [private]
    add_vertex(unsigned __vertex, Route &__child)EdgeXover [private]
    build_map(const Route &__par1, const Route &__par2)EdgeXover [private]
    cross(const Route &__par1, const Route &__par2, Route &__child)EdgeXover [private]
    operator()(Route &__route1, Route &__route2)EdgeXover
    remove_entry(unsigned __vertex, std::vector< std::set< unsigned > > &__map)EdgeXover [private]
    visitedEdgeXover [private]


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classEdgeXover.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classEdgeXover.html new file mode 100644 index 000000000..5503a0b13 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classEdgeXover.html @@ -0,0 +1,74 @@ + + +ParadisEO-PEO - Lessons: EdgeXover Class Reference + + + + +
    +
    + +

    EdgeXover Class Reference

    Edge Crossover. +More... +

    +#include <edge_xover.h> +

    +List of all members. + + + + + + + + + + + + + + + + + + +

    Public Member Functions

    +bool operator() (Route &__route1, Route &__route2)

    Private Member Functions

    +void cross (const Route &__par1, const Route &__par2, Route &__child)
    +void remove_entry (unsigned __vertex, std::vector< std::set< unsigned > > &__map)
    +void build_map (const Route &__par1, const Route &__par2)
    +void add_vertex (unsigned __vertex, Route &__child)

    Private Attributes

    +std::vector< std::set< unsigned > > _map
    +std::vector< bool > visited
    +


    Detailed Description

    +Edge Crossover. +

    + +

    +Definition at line 35 of file edge_xover.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval-members.html new file mode 100644 index 000000000..7abec98df --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval-members.html @@ -0,0 +1,37 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    MergeRouteEval Member List

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

    + +
    operator()(Route &__route, const int &__part_fit)MergeRouteEval


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval.html new file mode 100644 index 000000000..c16a1b31e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO - Lessons: MergeRouteEval Class Reference + + + + +
    +
    + +

    MergeRouteEval Class Reference

    Inheritance diagram for MergeRouteEval: +

    + +peoAggEvalFunc< EOT > + +List of all members. + + + + +

    Public Member Functions

    +void operator() (Route &__route, const int &__part_fit)
    +

    Detailed Description

    + +

    + +

    +Definition at line 31 of file merge_route_eval.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/classMergeRouteEval.png new file mode 100644 index 0000000000000000000000000000000000000000..7e4737d67f3f4901edc876220d1b03413d1aedb2 GIT binary patch literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^^MN>kg&9bG?cTKsNJ#|vgt-3y{~yTw|Np@J`3Vz% zEHFNB;6U}E|4)Ei#*!evUH>cRA z|J+yP8mxEGl$`i7wn5)Mt zs+iv;zF{G=+jOI5!=~aFp@#|=SgtA8IKty|QAO*|jG&gRc0rEg?rBL|ooj#a-H_RN zGm(8wSwxXUqh-5}uEUkBUVN*yu3PGarY#7IywwxjDyT8__^MO4+J9@wm);0`&U-`9 zV1Blkfy33k{*39jn9ecy{qNzsl^pUT{lMGbXB+!-tBW7lulU5I_W+9aF>n;0l{EjZ z!d=0BVcBYz%km(S&IDb<;>kAXDZ}p5te5wUJC)`8X7=sGfy7XVq`eMa$#l$k(r#xlxfs4xO ziAT0twrCZ;lL}asb4yD)LFMPA_B%Z1co}~G>@MT0dDLGim-H~D=$4$=hq?!E&cEQV XXO + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    OrderXover Member List

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

    + + +
    cross(const Route &__par1, const Route &__par2, Route &__child)OrderXover [private]
    operator()(Route &__route1, Route &__route2)OrderXover


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classOrderXover.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classOrderXover.html new file mode 100644 index 000000000..821b24d6b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classOrderXover.html @@ -0,0 +1,58 @@ + + +ParadisEO-PEO - Lessons: OrderXover Class Reference + + + + +
    +
    + +

    OrderXover Class Reference

    Order Crossover. +More... +

    +#include <order_xover.h> +

    +List of all members. + + + + + + + +

    Public Member Functions

    +bool operator() (Route &__route1, Route &__route2)

    Private Member Functions

    +void cross (const Route &__par1, const Route &__par2, Route &__child)
    +


    Detailed Description

    +Order Crossover. +

    + +

    +Definition at line 32 of file order_xover.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartRouteEval-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartRouteEval-members.html new file mode 100644 index 000000000..62e06a532 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartRouteEval-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    PartRouteEval Member List

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

    + + + + +
    fromPartRouteEval [private]
    operator()(Route &__route)PartRouteEval
    PartRouteEval(float __from, float __to)PartRouteEval
    toPartRouteEval [private]


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartRouteEval.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartRouteEval.html new file mode 100644 index 000000000..4c1b46e56 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartRouteEval.html @@ -0,0 +1,65 @@ + + +ParadisEO-PEO - Lessons: PartRouteEval Class Reference + + + + +
    +
    + +

    PartRouteEval Class Reference

    Route Evaluator. +More... +

    +#include <part_route_eval.h> +

    +List of all members. + + + + + + + + + + + + +

    Public Member Functions

    PartRouteEval (float __from, float __to)
     Constructor.
    +void operator() (Route &__route)

    Private Attributes

    +float from
    +float to
    +


    Detailed Description

    +Route Evaluator. +

    + +

    +Definition at line 32 of file part_route_eval.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartialMappedXover-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartialMappedXover-members.html new file mode 100644 index 000000000..c80a21041 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartialMappedXover-members.html @@ -0,0 +1,38 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    PartialMappedXover Member List

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

    + + +
    operator()(Route &__route1, Route &__route2)PartialMappedXover
    repair(Route &__route, unsigned __cut1, unsigned __cut2)PartialMappedXover [private]


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartialMappedXover.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartialMappedXover.html new file mode 100644 index 000000000..d40166035 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classPartialMappedXover.html @@ -0,0 +1,58 @@ + + +ParadisEO-PEO - Lessons: PartialMappedXover Class Reference + + + + +
    +
    + +

    PartialMappedXover Class Reference

    Partial Mapped Crossover. +More... +

    +#include <partial_mapped_xover.h> +

    +List of all members. + + + + + + + +

    Public Member Functions

    +bool operator() (Route &__route1, Route &__route2)

    Private Member Functions

    +void repair (Route &__route, unsigned __cut1, unsigned __cut2)
    +


    Detailed Description

    +Partial Mapped Crossover. +

    + +

    +Definition at line 32 of file partial_mapped_xover.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteEval-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteEval-members.html new file mode 100644 index 000000000..e3a868fae --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteEval-members.html @@ -0,0 +1,37 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    RouteEval Member List

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

    + +
    operator()(Route &__route)RouteEval


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteEval.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteEval.html new file mode 100644 index 000000000..d64531ae2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteEval.html @@ -0,0 +1,49 @@ + + +ParadisEO-PEO - Lessons: RouteEval Class Reference + + + + +
    +
    + +

    RouteEval Class Reference

    List of all members. + + + + +

    Public Member Functions

    +void operator() (Route &__route)
    +

    Detailed Description

    + +

    + +

    +Definition at line 31 of file route_eval.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteInit-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteInit-members.html new file mode 100644 index 000000000..0eaecde62 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteInit-members.html @@ -0,0 +1,37 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    RouteInit Member List

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

    + +
    operator()(Route &__route)RouteInit


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteInit.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteInit.html new file mode 100644 index 000000000..ce1014ef5 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classRouteInit.html @@ -0,0 +1,49 @@ + + +ParadisEO-PEO - Lessons: RouteInit Class Reference + + + + +
    +
    + +

    RouteInit Class Reference

    List of all members. + + + + +

    Public Member Functions

    +void operator() (Route &__route)
    +

    Detailed Description

    + +

    + +

    +Definition at line 31 of file route_init.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt-members.html new file mode 100644 index 000000000..ee7c0397e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt-members.html @@ -0,0 +1,38 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    TwoOpt Member List

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

    + + +
    EOType typedefmoMove< EOT >
    operator()(Route &__route)TwoOpt


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt.html new file mode 100644 index 000000000..e2757f043 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO - Lessons: TwoOpt Class Reference + + + + +
    +
    + +

    TwoOpt Class Reference

    Inheritance diagram for TwoOpt: +

    + +moMove< EOT > + +List of all members. + + + + +

    Public Member Functions

    +void operator() (Route &__route)
    +

    Detailed Description

    + +

    + +

    +Definition at line 32 of file two_opt.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOpt.png new file mode 100644 index 0000000000000000000000000000000000000000..ef2a2cd71082e9f2039d769155ff620c24616c27 GIT binary patch literal 363 zcmV-x0hIoUP);%vYx=&1s@X{ zsS6(3&&lw; + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    TwoOptIncrEval Member List

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

    + +
    operator()(const TwoOpt &__move, const Route &__route)TwoOptIncrEval


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptIncrEval.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptIncrEval.html new file mode 100644 index 000000000..a0bc514fa --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptIncrEval.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO - Lessons: TwoOptIncrEval Class Reference + + + + +
    +
    + +

    TwoOptIncrEval Class Reference

    Inheritance diagram for TwoOptIncrEval: +

    + +moMoveIncrEval< TwoOpt > + +List of all members. + + + + +

    Public Member Functions

    +int operator() (const TwoOpt &__move, const Route &__route)
    +

    Detailed Description

    + +

    + +

    +Definition at line 30 of file two_opt_incr_eval.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptIncrEval.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptIncrEval.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf7f2d42a4d485fe522a9c3dd5d714290915b30 GIT binary patch literal 514 zcmV+d0{#7oP)jn2+bb~Gh#+F@zmH4)l;f~qIu^Xgl3H&k40=+>G`BooQGqDYe$@-`d_ksZaY3rw4vkVw>ui;2{O zYzq{EzLM#@!ntbI02Z#9xI@x-)5@K&!Sywy`6Z9bv3mH`#}_%c=JMv0gHX`QRgh#$ z&O7aL1>EN1G;MIPj+f}Ucs&7v!OBQp33YyRigiUJzqt%V5rWkNw}hTwvr<`SXoaNp zEBUGG;cKM4QU94+$>8?p_WI8sklPXGU%;K;FU7sh^QE|#tB1iI+`%2(!5!Se9bA>v zM*?&?S{&S;;PMBBV({pi+{m&CXvG^V6&_r-)n~ZYIBZa_#45xHA#$Jqpg{2X!`x^N z%n!g?lul^Dxv>S<$%BG27s{cK^+rJxaF#1QpC+^}>>iipGwzu@#HCqA7cMxLyR%&R z-dew057ENcda(MHIV+8)x%YDPR{mA)Q5oFc+)n@b50bDijTr^^s{jB107*qoM6N<$ Eg3`D7nE(I) literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit-members.html new file mode 100644 index 000000000..f660db6b7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit-members.html @@ -0,0 +1,37 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    TwoOptInit Member List

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

    + +
    operator()(TwoOpt &__move, const Route &__route)TwoOptInit


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit.html new file mode 100644 index 000000000..be95f1a53 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO - Lessons: TwoOptInit Class Reference + + + + +
    +
    + +

    TwoOptInit Class Reference

    Inheritance diagram for TwoOptInit: +

    + +moMoveInit< TwoOpt > + +List of all members. + + + + +

    Public Member Functions

    +void operator() (TwoOpt &__move, const Route &__route)
    +

    Detailed Description

    + +

    + +

    +Definition at line 32 of file two_opt_init.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptInit.png new file mode 100644 index 0000000000000000000000000000000000000000..1abb4f3f8e0e12db33ad92c30daae6223b8facb9 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^{XiVR!VDxYsai(?DTx4|5ZC|z{{xx-{~wq?KVbrp z1;z&s9H>6@{|S)GSQ6wH%;50sMjDXq=jq}Y64Cm0s&~<01s;dBzSlg=8-!DCahE>* zEx%AmNM7BKSM#!k>=6kS<#}HdkDY!lu~SbzvBM`o{lx9y+cp!UIy@@5H&(o9xFMMD zsMz=_zoNRD`O~M+el{W3Hk~7rkJm)8v%5K(d-rfDiHI0pSS^&}I5TJt+oiJ!vuC+8 zt^Cb*Vp)v9r%dBYl}lnG9-?tO=loP{lXsl>MIxl;bw|f7rA>3TXsd1wSse3z$NvRx zDi~Sbf`VqgN*C&8G + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    TwoOptNext Member List

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

    + +
    operator()(TwoOpt &__move, const Route &__route)TwoOptNext


    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptNext.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptNext.html new file mode 100644 index 000000000..ba5855b60 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptNext.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO - Lessons: TwoOptNext Class Reference + + + + +
    +
    + +

    TwoOptNext Class Reference

    Inheritance diagram for TwoOptNext: +

    + +moNextMove< TwoOpt > + +List of all members. + + + + +

    Public Member Functions

    +bool operator() (TwoOpt &__move, const Route &__route)
    +

    Detailed Description

    + +

    + +

    +Definition at line 31 of file two_opt_next.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptNext.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptNext.png new file mode 100644 index 0000000000000000000000000000000000000000..5add18d1bd2cb24821e767047275a740890bb86e GIT binary patch literal 475 zcmV<10VMv3P)Nzh>Y<1zpjf(}tjMkLD>41rWZ$!2|c zfpvq5&kWN|fuR)y7MLC`5HXVWFv5DbqE0CbGHnB6ZvYualqqs`DD^vo32hIFt%rrGCWwZU`npuBJHwl+E^3!(HFktT)NyiW0vyPxP`M<5R9f^lbJlPuD*dwA;1 zSy(Nj&Cm_A!3LwMfR|Ach@qOj2MZ<;Q_K*U?wp+Z=9)3&qo%S{cS0NiV{d_P*aPD@ zfK5}+HA5Xzb|ZwSg_P>uhe{2+a2R8Dr?h7@F62xVn RhQt5>002ovPDHLkV1h?F&F=sJ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptRand-members.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptRand-members.html new file mode 100644 index 000000000..c5dc16440 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptRand-members.html @@ -0,0 +1,37 @@ + + +ParadisEO-PEO - Lessons: Member List + + + + +
    +
    + +

    TwoOptRand Member List

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

    + +
    operator()(TwoOpt &__move, const Route &__route)TwoOptRand


    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptRand.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptRand.html new file mode 100644 index 000000000..49bb71b7d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classTwoOptRand.html @@ -0,0 +1,49 @@ + + +ParadisEO-PEO - Lessons: TwoOptRand Class Reference + + + + +
    +
    + +

    TwoOptRand Class Reference

    List of all members. + + + + +

    Public Member Functions

    +void operator() (TwoOpt &__move, const Route &__route)
    +

    Detailed Description

    + +

    + +

    +Definition at line 31 of file two_opt_rand.h.


    The documentation for this class was generated from the following files: +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/classes.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/classes.html new file mode 100644 index 000000000..f4d36e416 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/classes.html @@ -0,0 +1,46 @@ + + +ParadisEO-PEO - Lessons: Alphabetical List + + + + +
    +
    + +

    ParadisEO-PEO - Lessons Class Index

    C | D | E | M | O | P | R | T

    + +
      C  
    +
      O  
    +
    RouteInit   
    CitySwap   OrderXover   
      T  
    +
      D  
    +
      P  
    +
    TwoOpt   
    DisplayBestRoute   PartialMappedXover   TwoOptIncrEval   
      E  
    +
    PartRouteEval   TwoOptInit   
    EdgeXover   
      R  
    +
    TwoOptNext   
      M  
    +
    RouteEval   TwoOptRand   
    MergeRouteEval   

    C | D | E | M | O | P | R | T

    +


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/data_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/data_8cpp-source.html new file mode 100644 index 000000000..05e7ad3d7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/data_8cpp-source.html @@ -0,0 +1,141 @@ + + +ParadisEO-PEO - Lessons: data.cpp Source File + + + + +
    +
    +

    data.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "data.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <stdio.h>
    +00025 #include <assert.h>
    +00026 #include <string.h>
    +00027 #include <stdlib.h>
    +00028 
    +00029 #include <utils/eoParser.h>
    +00030 
    +00031 #include "data.h"
    +00032 #include "node.h"
    +00033 
    +00034 #define MAX_TRASH_LENGTH 1000
    +00035 #define MAX_FIELD_LENGTH 1000
    +00036 #define MAX_LINE_LENGTH 1000
    +00037 
    +00038 static void getNextField (FILE * __f, char * __buff) {
    +00039   
    +00040   char trash [MAX_TRASH_LENGTH];  
    +00041 
    +00042   fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ 
    +00043   fscanf (__f, "%[^:\n]", __buff); /* Reading the field */
    +00044   fgetc (__f);
    +00045 }
    +00046 
    +00047 static void getLine (FILE * __f, char * __buff) {
    +00048 
    +00049   char trash [MAX_TRASH_LENGTH];  
    +00050 
    +00051   fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ 
    +00052   fscanf (__f, "%[^\n]", __buff); /* Reading the line */
    +00053 }
    +00054 
    +00055 void loadData (const char * __filename) {
    +00056 
    +00057   FILE * f = fopen (__filename, "r");
    +00058 
    +00059    if (f) {
    +00060 
    +00061      printf ("Loading '%s'.\n", __filename);
    +00062      
    +00063      char field [MAX_FIELD_LENGTH];
    +00064      
    +00065      getNextField (f, field); /* Name */
    +00066      assert (strstr (field, "NAME"));
    +00067      getNextField (f, field); 
    +00068      printf ("NAME: %s.\n", field);
    +00069      
    +00070      getNextField (f, field); /* Comment */
    +00071      assert (strstr (field, "COMMENT"));
    +00072      getLine (f, field);
    +00073      printf ("COMMENT: %s.\n", field);
    +00074      
    +00075      getNextField (f, field); /* Type */
    +00076      assert (strstr (field, "TYPE"));
    +00077      getNextField (f, field); 
    +00078      printf ("TYPE: %s.\n", field);
    +00079 
    +00080      getNextField (f, field); /* Dimension */
    +00081      assert (strstr (field, "DIMENSION"));
    +00082      getNextField (f, field); 
    +00083      printf ("DIMENSION: %s.\n", field);
    +00084      numNodes = atoi (field);
    +00085 
    +00086      getNextField (f, field); /* Edge weight type */
    +00087      assert (strstr (field, "EDGE_WEIGHT_TYPE"));
    +00088      getNextField (f, field); 
    +00089      printf ("EDGE_WEIGHT_TYPE: %s.\n", field);
    +00090      
    +00091      getNextField (f, field); /* Node coord section */
    +00092      assert (strstr (field, "NODE_COORD_SECTION"));
    +00093      loadNodes (f);
    +00094      
    +00095      getNextField (f, field); /* End of file */
    +00096      assert (strstr (field, "EOF"));
    +00097      printf ("EOF.\n");
    +00098    }
    +00099    else {
    +00100      
    +00101      fprintf (stderr, "Can't open '%s'.\n", __filename); 
    +00102      exit (1);
    +00103    }
    +00104 }
    +00105 
    +00106 void loadData (eoParser & __parser) {
    +00107   
    +00108   /* Getting the path of the instance */
    +00109   
    +00110   eoValueParam <std :: string> param ("", "inst", "Path of the instance") ;
    +00111   __parser.processParam (param) ;
    +00112   loadData (param.value ().c_str ());
    +00113 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/data_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/data_8h-source.html new file mode 100644 index 000000000..9c06ee9ca --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/data_8h-source.html @@ -0,0 +1,61 @@ + + +ParadisEO-PEO - Lessons: data.h Source File + + + + +
    +
    +

    data.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "data.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __data_h
    +00025 #define __data_h
    +00026 
    +00027 #include <utils/eoParser.h>
    +00028 
    +00029 extern void loadData (const char * __filename);
    +00030 
    +00031 extern void loadData (eoParser & __parser);
    +00032 
    +00033 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/display_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/display_8cpp-source.html new file mode 100644 index 000000000..5a91d647b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/display_8cpp-source.html @@ -0,0 +1,160 @@ + + +ParadisEO-PEO - Lessons: display.cpp Source File + + + + +
    +
    +

    display.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "display.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <iostream>
    +00025 #include <fstream>
    +00026 
    +00027 #include <X11/Xlib.h>
    +00028 
    +00029 #include "display.h"
    +00030 #include "node.h"
    +00031 #include "opt_route.h"
    +00032 
    +00033 #define BORDER 20
    +00034 #define RATIO 0.5
    +00035 
    +00036 #define screen_width 1024
    +00037 #define screen_height 768
    +00038 
    +00039 static const char * filename;
    +00040 
    +00041 /* Computed coordinates */
    +00042 static unsigned * X_new_coord, * Y_new_coord ;
    +00043 
    +00044 /* this variable will contain the handle to the returned graphics context. */
    +00045 static GC gc;
    +00046   
    +00047 /* this variable will contain the pointer to the Display structure */
    +00048 static Display* disp;
    +00049 
    +00050 /* this variable will store the ID of the newly created window. */
    +00051 static Window win;
    +00052 
    +00053 static int screen;
    +00054 
    +00055 /* Create a new backing pixmap of the appropriate size */
    +00056 
    +00057   /* Best tour */
    +00058   /*
    +00059   gdk_gc_set_line_attributes (gc, 2,  GDK_LINE_ON_OFF_DASH, GDK_CAP_NOT_LAST, GDK_JOIN_MITER) ;
    +00060 
    +00061   gdk_gc_set_foreground  (gc, & color_green) ;      
    +00062 
    +00063   for (int i = 0 ; i < (int) numNodes ; i ++) {
    +00064 
    +00065     gdk_draw_line (pixmap, gc,
    +00066                    X_new_coord [opt_route [i]],
    +00067                    Y_new_coord [opt_route [i]],
    +00068                    X_new_coord [opt_route [(i + 1) % numNodes]],
    +00069                    Y_new_coord [opt_route [(i + 1) % numNodes]]);
    +00070     
    +00071                    }*/
    +00072 
    +00073 void openMainWindow (const char * __filename) {
    +00074 
    +00075   filename = __filename;
    +00076 
    +00077   /* Map */
    +00078   int map_width = (int) (X_max - X_min);
    +00079   int map_height = (int) (Y_max - Y_min);
    +00080   int map_side = std :: max (map_width, map_height);
    +00081   
    +00082   /* Calculate the window's width and height. */
    +00083   int win_width = (int) (screen_width * RATIO * map_width / map_side);
    +00084   int win_height = (int) (screen_height * RATIO * map_height / map_side);
    +00085 
    +00086   /* Computing the coordinates */
    +00087   X_new_coord = new unsigned [numNodes];
    +00088   Y_new_coord = new unsigned [numNodes];
    +00089 
    +00090   for (unsigned i = 0; i < numNodes; i ++) {
    +00091     X_new_coord [i] = (unsigned) (win_width * (1.0 - (X_coord [i] - X_min) / map_width) + BORDER);
    +00092     Y_new_coord [i] = (unsigned) (win_height * (1.0 - (Y_coord [i] - Y_min) / map_height) + BORDER);
    +00093   }
    +00094   
    +00095   /* Initialisation */
    +00096   XGCValues val ;
    +00097   
    +00098   disp = XOpenDisplay (NULL) ;
    +00099   screen = DefaultScreen (disp) ;
    +00100   win = XCreateSimpleWindow (disp, RootWindow (disp, screen), 0, 0, win_width + 2 * BORDER, win_height + 2 * BORDER, 2, BlackPixel (disp, screen), WhitePixel (disp, screen)) ;
    +00101   val.foreground = BlackPixel(disp, screen) ;
    +00102   val.background = WhitePixel(disp, screen) ;
    +00103   gc = XCreateGC (disp, win, GCForeground | GCBackground, & val) ; 
    +00104 
    +00105   XMapWindow (disp, win) ;
    +00106   XFlush (disp) ;
    +00107 
    +00108   while (true) {
    +00109     XClearWindow (disp, win) ;
    +00110 
    +00111     /* Vertices as circles */
    +00112     for (unsigned i = 1 ; i < numNodes ; i ++)
    +00113       XDrawArc (disp, win, gc, X_new_coord [i] - 1, Y_new_coord [i] - 1, 3, 3, 0, 364 * 64) ;
    +00114     
    +00115     /* New tour */
    +00116     std :: ifstream f (filename);
    +00117     if (f) {
    +00118       Route route;
    +00119       f >> route;
    +00120       f.close ();
    +00121       
    +00122       for (int i = 0; i < (int) numNodes; i ++) 
    +00123         XDrawLine (disp, win, gc,     
    +00124                    X_new_coord [route [i]],
    +00125                  Y_new_coord [route [i]],
    +00126                    X_new_coord [route [(i + 1) % numNodes]],
    +00127                    Y_new_coord [route [(i + 1) % numNodes]]);  
    +00128     }
    +00129     XFlush (disp) ;    
    +00130     sleep (1) ;
    +00131   }
    +00132 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/display_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/display_8h-source.html new file mode 100644 index 000000000..c751210ca --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/display_8h-source.html @@ -0,0 +1,59 @@ + + +ParadisEO-PEO - Lessons: display.h Source File + + + + +
    +
    +

    display.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "display.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __display_h
    +00025 #define __display_h
    +00026 
    +00027 #include "route.h"
    +00028 
    +00029 extern void openMainWindow (const char * __filename);
    +00030 
    +00031 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/display__best__route_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/display__best__route_8cpp-source.html new file mode 100644 index 000000000..1305f878f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/display__best__route_8cpp-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-PEO - Lessons: display_best_route.cpp Source File + + + + +
    +
    +

    display_best_route.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "display_best_route.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "display_best_route.h"
    +00025 #include "display.h"
    +00026 
    +00027 DisplayBestRoute :: DisplayBestRoute (eoPop <Route> & __pop
    +00028                                       ) : pop (__pop) {
    +00029   
    +00030   
    +00031 }
    +00032   
    +00033 void DisplayBestRoute :: operator () () {
    +00034   
    +00035   displayRoute (pop.best_element ());
    +00036 }
    +00037 
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/display__best__route_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/display__best__route_8h-source.html new file mode 100644 index 000000000..472942ba0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/display__best__route_8h-source.html @@ -0,0 +1,75 @@ + + +ParadisEO-PEO - Lessons: display_best_route.h Source File + + + + +
    +
    +

    display_best_route.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "display_best_route.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __display_best_route_h
    +00025 #define __display_best_route_h
    +00026 
    +00027 #include <utils/eoUpdater.h>
    +00028 
    +00029 #include <eoPop.h>
    +00030 
    +00031 #include "route.h"
    +00032 
    +00033 class DisplayBestRoute : public eoUpdater {
    +00034   
    +00035 public :
    +00036 
    +00037   DisplayBestRoute (eoPop <Route> & __pop);
    +00038   
    +00039   void operator () ();
    +00040 
    +00041 private :
    +00042   
    +00043   eoPop <Route> & pop;
    +00044 
    +00045 };
    +00046 
    +00047 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/doxygen.css b/trunk/paradiseo-peo/docs/html/lsnshared/html/doxygen.css new file mode 100644 index 000000000..5d583694e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/doxygen.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a274bbaffdd67f6d784c894d9cf28729db0e14 GIT binary patch literal 1281 zcmaJ>ZA?>F7(Vx-ms?uoS`b@hdRtpo6o^%HU>M$hfGrBvQnk$LE?p^P!kn&ikhyq! zX~V@&tPF5Qt@V?oTL96Bi%aRiwbe1)9DWQI#?)=HxS7QSw`J`5fAJ*eJbB;uNuKA& zdERDo*{Y<(If(#(B$Lr#;nB(8Y#ia=ZCeW?JfPLuQY`=@cW$k}Rivq|vbxGrRq1Tl9;+(gNt?}UtVKM2`T5t1jLzuL@0UIs`S#vlhl4)^ zLgSYrPj@$+`|j?eSbXTmiHGkWxV8V}BzNR?pl9k_s4pDu9vd5a_UzZEPk)}Ad{AV_ zzddrjrh4=Imr`E06;LY{)YYt?o}L~H@7C}F^WB!Ra=v`Q0bj{>5&$66CWF>mf6vjP z2N>RRY6ZYa=K`76>+|_)Xdwko+7wv}7cN|btOhWb(*{sta~6b?S8Omrxw}!4`NhGr zZVpNqpu1@BE`QGWNTpEpcJVW5izu~2B^GlM?1(OPg)zwW;QcP@Ltcclm>XbJL9C|j z=9!2?ua=uIlf0%AndzHsRC}IyTL$EhAee(fdKB`?27KeS^2M8M_7b~PiCFO&r5LC7 z7gl1*a<8;SjNaw#h=843_AV9iZbWQOAp5YOC^&_F*9K0> zB|6%IDb?aM#3viTxkLU4aXg&@+CkNTOnQ1iMP*^?b|^lJy$4C)Zk4isV!|RZ*XhXh zw8q3$=*0LeGC!XI_Wc?dkT~3+*Gu%%yIqP+Wr3H$=&ROMQU6q}Ag^P~>c5vAEO;a- z_dK-3PPeKar%)6$j~vI2#*-YH!1h6HYVtwCX5_wM`iF#UKz&&@9Oo5w3%XGYrX zW>dY~)SG-((Yim%`InwgTvyRC?e=Wh^8KCao!R6Eg&TpVWUY1sN~4G}V?nFnEGo-; zHZ_$eW9-GnC%^WS9b z@p;-$oH#MtC0v>Q$HX%4^JdFdO$0cbv-W)Q TtK}Eh@>>I#ipmV1>S*>q-hkC} literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/edge__xover_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/edge__xover_8cpp-source.html new file mode 100644 index 000000000..3b231cdd1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/edge__xover_8cpp-source.html @@ -0,0 +1,161 @@ + + +ParadisEO-PEO - Lessons: edge_xover.cpp Source File + + + + +
    +
    +

    edge_xover.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "edge_xover.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2003
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <assert.h>
    +00025 #include <values.h>
    +00026 
    +00027 #include <utils/eoRNG.h>
    +00028 
    +00029 #include "edge_xover.h"
    +00030 
    +00031 void EdgeXover :: build_map (const Route & __par1, const Route & __par2) {
    +00032   
    +00033   unsigned len = __par1.size () ;
    +00034   
    +00035   /* Initialization */
    +00036   _map.clear () ;
    +00037   _map.resize (len) ;
    +00038   
    +00039   for (unsigned i = 0 ; i < len ; i ++) {
    +00040     _map [__par1 [i]].insert (__par1 [(i + 1) % len]) ;
    +00041     _map [__par2 [i]].insert (__par2 [(i + 1) % len]) ;
    +00042     _map [__par1 [i]].insert (__par1 [(i - 1 + len) % len]) ;
    +00043     _map [__par2 [i]].insert (__par2 [(i - 1 + len) % len]) ;
    +00044   }
    +00045   
    +00046   visited.clear () ;
    +00047   visited.resize (len, false) ;
    +00048 }
    +00049 
    +00050 void EdgeXover :: remove_entry (unsigned __vertex, std :: vector <std :: set <unsigned> > & __map) {
    +00051   
    +00052   std :: set <unsigned> & neigh = __map [__vertex] ;
    +00053 
    +00054   for (std :: set <unsigned> :: iterator it = neigh.begin () ;
    +00055        it != neigh.end () ;
    +00056        it ++)
    +00057     __map [* it].erase (__vertex) ; 
    +00058       
    +00059 }
    +00060 
    +00061 void EdgeXover :: add_vertex (unsigned __vertex, Route & __child) {
    +00062   
    +00063   visited [__vertex] = true ;
    +00064   __child.push_back (__vertex) ;    
    +00065   remove_entry (__vertex, _map) ; /* Removing entries */    
    +00066 }
    +00067 
    +00068 void EdgeXover :: cross (const Route & __par1, const Route & __par2, Route & __child) {
    +00069   
    +00070   build_map (__par1, __par2) ;
    +00071   
    +00072   unsigned len = __par1.size () ;
    +00073  
    +00074   /* Go ! */
    +00075   __child.clear () ;
    +00076   
    +00077   unsigned cur_vertex = rng.random (len) ;
    +00078   
    +00079   add_vertex (cur_vertex, __child) ;
    +00080 
    +00081   for (unsigned i = 1 ; i < len ; i ++) {
    +00082     
    +00083     unsigned len_min_entry = MAXINT ;
    +00084     
    +00085     std :: set <unsigned> & neigh = _map [cur_vertex] ;
    +00086     
    +00087     for (std :: set <unsigned> :: iterator it = neigh.begin () ;
    +00088          it != neigh.end () ;
    +00089          it ++) {      
    +00090       unsigned l = _map [* it].size () ;
    +00091       if (len_min_entry > l)
    +00092         len_min_entry = l ;
    +00093     }
    +00094     
    +00095     std :: vector <unsigned> cand ; /* Candidates */
    +00096     
    +00097     for (std :: set <unsigned> :: iterator it = neigh.begin () ;
    +00098          it != neigh.end () ;
    +00099          it ++) {      
    +00100       unsigned l = _map [* it].size () ;
    +00101       if (len_min_entry == l)
    +00102         cand.push_back (* it) ;
    +00103     }
    +00104        
    +00105     if (! cand.size ()) {
    +00106       
    +00107       /* Oh no ! Implicit mutation */      
    +00108       for (unsigned j = 0 ; j < len ; j ++)
    +00109         if (! visited [j])
    +00110           cand.push_back (j) ;
    +00111     }
    +00112 
    +00113     cur_vertex = cand [rng.random (cand.size ())] ;
    +00114     
    +00115     add_vertex (cur_vertex, __child) ;
    +00116   } 
    +00117 }
    +00118 
    +00119 bool EdgeXover :: operator () (Route & __route1, Route & __route2) {
    +00120   
    +00121   // Init. copy
    +00122   Route par [2] ;
    +00123   par [0] = __route1 ;
    +00124   par [1] = __route2 ;
    +00125   
    +00126   cross (par [0], par [1], __route1) ;
    +00127   cross (par [1], par [0], __route2) ;
    +00128   
    +00129   __route1.invalidate () ;
    +00130   __route2.invalidate () ;
    +00131 
    +00132   return true ;
    +00133 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/edge__xover_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/edge__xover_8h-source.html new file mode 100644 index 000000000..319ed8855 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/edge__xover_8h-source.html @@ -0,0 +1,85 @@ + + +ParadisEO-PEO - Lessons: edge_xover.h Source File + + + + +
    +
    +

    edge_xover.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "edge_xover.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2003
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef edge_xover_h
    +00025 #define edge_xover_h
    +00026 
    +00027 #include <vector>
    +00028 #include <set>
    +00029 
    +00030 #include <eoOp.h>
    +00031 
    +00032 #include "route.h"
    +00033 
    +00035 class EdgeXover : public eoQuadOp <Route> {
    +00036   
    +00037 public :
    +00038   
    +00039   bool operator () (Route & __route1, Route & __route2) ;
    +00040 
    +00041 private :
    +00042   
    +00043   void cross (const Route & __par1, const Route & __par2, Route & __child) ; /* Binary */
    +00044 
    +00045   void remove_entry (unsigned __vertex, std :: vector <std :: set <unsigned> > & __map) ;
    +00046   /* Updating the map of entries */
    +00047 
    +00048   void build_map (const Route & __par1, const Route & __par2) ;
    +00049 
    +00050   void add_vertex (unsigned __vertex, Route & __child) ;
    +00051 
    +00052   std :: vector <std :: set <unsigned> > _map ; /* The handled map */
    +00053 
    +00054   std :: vector <bool> visited ; /* Vertices that are already visited */
    +00055 
    +00056 } ;
    +00057 
    +00058 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/files.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/files.html new file mode 100644 index 000000000..20661803d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/files.html @@ -0,0 +1,71 @@ + + +ParadisEO-PEO - Lessons: File Index + + + + +
    +
    +

    ParadisEO-PEO - Lessons File List

    Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    city_swap.cpp [code]
    city_swap.h [code]
    data.cpp [code]
    data.h [code]
    display.cpp [code]
    display.h [code]
    display_best_route.cpp [code]
    display_best_route.h [code]
    edge_xover.cpp [code]
    edge_xover.h [code]
    merge_route_eval.cpp [code]
    merge_route_eval.h [code]
    mix.h [code]
    node.cpp [code]
    node.h [code]
    opt_route.cpp [code]
    opt_route.h [code]
    order_xover.cpp [code]
    order_xover.h [code]
    param.cpp [code]
    param.h [code]
    part_route_eval.cpp [code]
    part_route_eval.h [code]
    partial_mapped_xover.cpp [code]
    partial_mapped_xover.h [code]
    route.cpp [code]
    route.h [code]
    route_eval.cpp [code]
    route_eval.h [code]
    route_init.cpp [code]
    route_init.h [code]
    two_opt.cpp [code]
    two_opt.h [code]
    two_opt_incr_eval.cpp [code]
    two_opt_incr_eval.h [code]
    two_opt_init.cpp [code]
    two_opt_init.h [code]
    two_opt_next.cpp [code]
    two_opt_next.h [code]
    two_opt_rand.cpp [code]
    two_opt_rand.h [code]
    +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2blank.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..493c3c0b615ade5b22027bde773faf2c0e076d66 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr2qYM%T@!Q%(o7{me!&ckj8p!u14)&*MwA5S zr6z#mEsk^N1FBF3sc_EE%}vcKVF=AhO-xa6_jFST&P^;T z2~I3aEm8;rVk12R#UIz>f`J-DJY5_^DsClP9B62eH+WF*G=YJMp~A-KbWwke5Kx}M M)78&qol`;+0EL(^EC2ui literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2doc.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..f72999f92172cca6edaa2538286b3e369bec9f49 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^5yjnX4egh%q=bp-`Pe zR7&bp17l3gfhmh7Fm(iZ2eAfco|q!h5)>qKG?UBh!IC9QGMbJAHf6IEiufk_g|d7~ qkWqJ4k(|I-Aeo-5U~n{Fnc?dN!3Uwu?t6hQVDNPHb6Mw<&;$TLIZ`G7 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2folderclosed.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d063440cbf13c4128dacd96661b6fce58abf26 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^55uo^`BphW;jCHO69?}tw{JfcdnZ<*@N=4I z?xF5Qc|QYEmKAIZ;JRGVHe=bn*tx1_|J^^vyg*oVM#A1kZlFULJYD@<);T3K0RTgB BWg7qh literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2folderopen.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe2c913cf493ee37ad8e3a5132382138d93ac92 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^5u(C zYP)Mg%H-DB+{J~>rPn_#pYTax?r*V6ubqGX{lvROQ{?n5_cbm+cQAOm`njxgN@xNA D92;js literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2lastnode.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b9ba90cb0cf71c8ce662956bfee7d64cf60fa6 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gk+!>EaktaVt4N i!r*{E4>QXNV>t$uAA#a^n)TVt_DW*G8-srQl%FeIsRSdYm zeDdtWec}u&7@8h5rqv#p7g*pRdwwmugmlS-+cHV~j}#7`Nwj9m+AU)JGGo`8z_}`K z?s#Xsy%Z;1_jl5Y+?Gum8WyK6`MBvup0SAOKJ)mWcHyteJ?WLL>>-)=?&<$H&t5oH Vd!azZ1yDdSc)I$ztaD0e0sw}(dc*(# literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2mlastnode.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..09ceb6adb01054ce799ad20c0e818ab9272f2df2 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&fg$isFPOjJ*AaIJQGm()YSDb0rfjgNefXW#>UHx3vIVCg! E0ORy6RsaA1 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2mnode.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..3254c05112199fbc80aad313611c58a5b388792d GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&YcgaLd(;| zF{I*Fa>4?=2W(CyOv{5p*uLi}G<-ambjQcb>&~4!CzK3KXWY6d$*{eWU47N}X+XCz OFnGH9xvXPg)ksC(lf|p%(p+w2Gk+y>EaktaVt4N l!r*{E4>Lv;t literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2plastnode.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b07e00913d8069ebbb51bd7fd6d70d8bba88f75 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&MJ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2pnode.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..2001b797ba2b98a4127f1d3efca64aef08bf6d51 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&Ycga!obtT zF{I*Fa>4?=2W(Dkd1@Anj~<0|oqBMOmqox%*rjK-r)THv+0v0L%h-agt(X~hWwYzA SIxU|Ma*U^|pUXO@geCywmoZiV literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2vertline.png b/trunk/paradiseo-peo/docs/html/lsnshared/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..b330f3a33c0085c183ff39fc56b1b274160c1da0 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gqgt>EaktaVt4N e!r*{^G#i7W2*a|cHZQDzQVgE1elF{r5}E+)J2fZ( literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/functions.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/functions.html new file mode 100644 index 000000000..ae57f72b9 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/functions.html @@ -0,0 +1,59 @@ + + +ParadisEO-PEO - Lessons: Class Members + + + + +
    +
    + +
    + +
    +Here is a list of all documented class members with links to the class documentation for each member: +

    +

    +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/functions_func.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/functions_func.html new file mode 100644 index 000000000..6eb4e5d95 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/functions_func.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO - Lessons: Class Members - Functions + + + + +
    +
    + +
    + +
    +  +

    +

    +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/functions_vars.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/functions_vars.html new file mode 100644 index 000000000..cce574fc8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/functions_vars.html @@ -0,0 +1,51 @@ + + +ParadisEO-PEO - Lessons: Class Members - Variables + + + + +
    +
    + +
    + +
    +  +

    +

    +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/hierarchy.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/hierarchy.html new file mode 100644 index 000000000..b0644f2fb --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/hierarchy.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO - Lessons: Hierarchical Index + + + + +
    +
    + +

    ParadisEO-PEO - Lessons Class Hierarchy

    This inheritance list is sorted roughly, but not completely, alphabetically: +
    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/index.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/index.html new file mode 100644 index 000000000..b314cec43 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/index.html @@ -0,0 +1,8 @@ + + +ParadisEO-PEO - Lessons + + + + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/installdox b/trunk/paradiseo-peo/docs/html/lsnshared/html/installdox new file mode 100755 index 000000000..f3d953616 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( "eo.doxytag", "", "mo.doxytag", "", "paradiseo-peo.doxytag", ""); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/main.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/main.html new file mode 100644 index 000000000..b06a572d4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/main.html @@ -0,0 +1,30 @@ + + +ParadisEO-PEO - Lessons: Main Page + + + + +
    +
    +

    ParadisEO-PEO - Lessons Documentation

    +

    +

    0.1


    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/merge__route__eval_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/merge__route__eval_8cpp-source.html new file mode 100644 index 000000000..bfa8ffa9d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/merge__route__eval_8cpp-source.html @@ -0,0 +1,60 @@ + + +ParadisEO-PEO - Lessons: merge_route_eval.cpp Source File + + + + +
    +
    +

    merge_route_eval.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "merge_route_eval.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "merge_route_eval.h"
    +00025 
    +00026 void MergeRouteEval :: operator () (Route & __route, const int & __part_fit) {
    +00027 
    +00028   int len = __route.fitness ();
    +00029   len += __part_fit;
    +00030   __route.fitness (len);
    +00031 }
    +00032   
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/merge__route__eval_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/merge__route__eval_8h-source.html new file mode 100644 index 000000000..8adeaf903 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/merge__route__eval_8h-source.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO - Lessons: merge_route_eval.h Source File + + + + +
    +
    +

    merge_route_eval.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "merge_route_eval.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __merge_route_eval_h
    +00025 #define __merge_route_eval_h
    +00026 
    +00027 #include <peoAggEvalFunc.h>
    +00028 
    +00029 #include "route.h"
    +00030 
    +00031 class MergeRouteEval : public peoAggEvalFunc <Route> {
    +00032   
    +00033 public :
    +00034 
    +00035   void operator () (Route & __route, const int & __part_fit) ;
    +00036   
    +00037 };
    +00038 
    +00039 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/mix_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/mix_8h-source.html new file mode 100644 index 000000000..1cc1815ab --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/mix_8h-source.html @@ -0,0 +1,53 @@ + + +ParadisEO-PEO - Lessons: mix.h Source File + + + + +
    +
    +

    mix.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- 
    +00002 
    +00003 /* 
    +00004    file: 'mix.h'      
    +00005    author: S. CAHON
    +00006    mail: paradiseo-help@lists.gforge.inria.fr
    +00007    date: dec. 2005    
    +00008 */
    +00009 
    +00010 #ifndef __mix_h
    +00011 #define __mix_h
    +00012 
    +00013 #include <vector>
    +00014 
    +00015 #include <utils/eoRNG.h>
    +00016 
    +00017 template <class T> void mix (std :: vector <T> & __v) {
    +00018   
    +00019   unsigned len = __v.size () ;
    +00020 
    +00021   for (unsigned i = 0 ; i < len ; i ++)
    +00022     std :: swap (__v [i], __v [rng.random (len)]) ;
    +00023 }
    +00024 
    +00025 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/node_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/node_8cpp-source.html new file mode 100644 index 000000000..37da7271e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/node_8cpp-source.html @@ -0,0 +1,120 @@ + + +ParadisEO-PEO - Lessons: node.cpp Source File + + + + +
    +
    +

    node.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "node.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <math.h>
    +00025 #include <values.h>
    +00026 
    +00027 #include "node.h"
    +00028 
    +00029 unsigned numNodes; /* Number of nodes */
    +00030 
    +00031 //static unsigned * * dist; /* Square matrix of distances */
    +00032 
    +00033 double * X_coord, * Y_coord;
    +00034 
    +00035 double X_min = MAXDOUBLE, X_max = MINDOUBLE, Y_min = MAXDOUBLE, Y_max = MINDOUBLE;
    +00036 
    +00037 void loadNodes (FILE * __f) {
    +00038 
    +00039   /* Coord */
    +00040   
    +00041   X_coord = new double [numNodes];
    +00042   
    +00043   Y_coord = new double [numNodes];
    +00044  
    +00045   unsigned num;
    +00046 
    +00047   for (unsigned i = 0; i < numNodes; i ++) {
    +00048     
    +00049     fscanf (__f, "%u%lf%lf", & num, X_coord + i, Y_coord + i);
    +00050     
    +00051     if (X_coord [i] < X_min)
    +00052       X_min = X_coord [i];
    +00053     if (X_coord [i] > X_max)
    +00054       X_max = X_coord [i];
    +00055     if (Y_coord [i] < Y_min)
    +00056       Y_min = Y_coord [i];
    +00057     if (Y_coord [i] > Y_max)
    +00058       Y_max = Y_coord [i];    
    +00059   }
    +00060   
    +00061   /* Allocation */
    +00062   /*
    +00063   dist = new unsigned * [numNodes];
    +00064   
    +00065   for (unsigned i = 0; i < numNodes; i ++)
    +00066     dist [i] = new unsigned [numNodes];
    +00067   */
    +00068   /* Computation of the distances */
    +00069   
    +00070   /*
    +00071   for (unsigned i = 0; i < numNodes; i ++) {
    +00072 
    +00073     dist [i] [i] = 0;
    +00074 
    +00075     for (unsigned j = 0; j < numNodes; j ++) {
    +00076       
    +00077       double dx = X_coord [i] - X_coord [j], dy = Y_coord [i] - Y_coord [j];
    +00078       
    +00079       dist [i] [j] = dist [j] [i] = (unsigned) (sqrt (dx * dx + dy * dy) + 0.5) ;
    +00080     }
    +00081     }*/
    +00082 }
    +00083 
    +00084 unsigned distance (Node __from, Node __to) {
    +00085 
    +00086   //  return dist [__from] [__to];
    +00087 
    +00088   double dx = X_coord [__from] - X_coord [__to], dy = Y_coord [__from] - Y_coord [__to];
    +00089   
    +00090   return (unsigned) (sqrt (dx * dx + dy * dy) + 0.5) ;
    +00091 }
    +00092 
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/node_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/node_8h-source.html new file mode 100644 index 000000000..c73953dfe --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/node_8h-source.html @@ -0,0 +1,69 @@ + + +ParadisEO-PEO - Lessons: node.h Source File + + + + +
    +
    +

    node.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "node.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __node_h
    +00025 #define __node_h
    +00026 
    +00027 #include <stdio.h>
    +00028 
    +00029 typedef unsigned Node; 
    +00030 
    +00031 extern double X_min, X_max, Y_min, Y_max;
    +00032 
    +00033 extern double * X_coord, * Y_coord;
    +00034 
    +00035 extern unsigned numNodes; /* Number of nodes */
    +00036 
    +00037 extern void loadNodes (FILE * __f);
    +00038 
    +00039 extern unsigned distance (Node __from, Node __to);
    +00040 
    +00041 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/opt__route_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/opt__route_8cpp-source.html new file mode 100644 index 000000000..ed183e284 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/opt__route_8cpp-source.html @@ -0,0 +1,150 @@ + + +ParadisEO-PEO - Lessons: opt_route.cpp Source File + + + + +
    +
    +

    opt_route.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "opt_route.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "opt_route.h"
    +00025 
    +00026 #define MAX_TRASH_LENGTH 1000
    +00027 #define MAX_FIELD_LENGTH 1000
    +00028 #define MAX_LINE_LENGTH 1000
    +00029 
    +00030 static void getNextField (FILE * __f, char * __buff) {
    +00031   
    +00032   char trash [MAX_TRASH_LENGTH];  
    +00033 
    +00034   fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ 
    +00035   fscanf (__f, "%[^:\n]", __buff); /* Reading the field */
    +00036   fgetc (__f);
    +00037 }
    +00038 
    +00039 static void getLine (FILE * __f, char * __buff) {
    +00040 
    +00041   char trash [MAX_TRASH_LENGTH];  
    +00042 
    +00043   fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ 
    +00044   fscanf (__f, "%[^\n]", __buff); /* Reading the line */
    +00045 }
    +00046 
    +00047 static void loadBestRoute (FILE * __f) {
    +00048 
    +00049   opt_route.clear ();
    +00050   
    +00051   for (unsigned i = 0; i < numNodes; i ++) {
    +00052     Node node;
    +00053     fscanf (__f, "%u", & node);
    +00054     opt_route.push_back (node - 1);
    +00055   }
    +00056   int d; /* -1 ! */
    +00057   fscanf (__f, "%d", & d);
    +00058 }
    +00059 
    +00060 void loadOptimumRoute (const char * __filename) {
    +00061 
    +00062   FILE * f = fopen (__filename, "r");
    +00063 
    +00064   if (f) {
    +00065      
    +00066      printf ("Loading '%s'.\n", __filename);
    +00067      
    +00068      char field [MAX_FIELD_LENGTH];
    +00069      
    +00070      getNextField (f, field); /* Name */
    +00071      assert (strstr (field, "NAME"));
    +00072      getNextField (f, field); 
    +00073      //printf ("NAME: %s.\n", field);
    +00074 
    +00075           getNextField (f, field); /* Comment */
    +00076      assert (strstr (field, "COMMENT"));
    +00077      getLine (f, field);
    +00078      //     printf ("COMMENT: %s.\n", field);
    +00079      
    +00080      getNextField (f, field); /* Type */
    +00081      assert (strstr (field, "TYPE"));
    +00082      getNextField (f, field); 
    +00083      //printf ("TYPE: %s.\n", field);
    +00084 
    +00085      getNextField (f, field); /* Dimension */
    +00086      assert (strstr (field, "DIMENSION"));
    +00087      getNextField (f, field); 
    +00088      //     printf ("DIMENSION: %s.\n", field);
    +00089      numNodes = atoi (field);
    +00090 
    +00091      getNextField (f, field); /* Tour section */
    +00092      assert (strstr (field, "TOUR_SECTION"));
    +00093      loadBestRoute (f);
    +00094      
    +00095      getNextField (f, field); /* End of file */
    +00096      assert (strstr (field, "EOF"));
    +00097      //printf ("EOF.\n");
    +00098      
    +00099      printf ("The length of the best route is %u.\n", length (opt_route));
    +00100   }
    +00101    else {
    +00102      
    +00103      fprintf (stderr, "Can't open '%s'.\n", __filename); 
    +00104      exit (1);
    +00105    }
    +00106 }
    +00107 
    +00108 void loadOptimumRoute (eoParser & __parser) {
    +00109   
    +00110   /* Getting the path of the instance */
    +00111   
    +00112   eoValueParam <std :: string> param ("", "optimumTour", "Optimum tour") ;
    +00113   __parser.processParam (param) ;
    +00114   if (strlen (param.value ().c_str ()))
    +00115     loadOptimumRoute (param.value ().c_str ());
    +00116   else
    +00117     opt_route.fitness (0);
    +00118 }
    +00119 
    +00120 Route opt_route; /* Optimum route */
    +00121 
    +00122 
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/opt__route_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/opt__route_8h-source.html new file mode 100644 index 000000000..16accaa30 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/opt__route_8h-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO - Lessons: opt_route.h Source File + + + + +
    +
    +

    opt_route.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "opt_route.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __opt_route_h
    +00025 #define __opt_route_h
    +00026 
    +00027 #include <cassert>
    +00028 #include <utils/eoParser.h>
    +00029 
    +00030 #include "route.h"
    +00031 
    +00032 extern void loadOptimumRoute (const char * __filename);
    +00033 
    +00034 extern void loadOptimumRoute (eoParser & __parser);
    +00035 
    +00036 extern Route opt_route; /* Optimum route */
    +00037 
    +00038 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/order__xover_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/order__xover_8cpp-source.html new file mode 100644 index 000000000..862f0c318 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/order__xover_8cpp-source.html @@ -0,0 +1,107 @@ + + +ParadisEO-PEO - Lessons: order_xover.cpp Source File + + + + +
    +
    +

    order_xover.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "order_xover.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2002
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <assert.h>
    +00025 
    +00026 #include <utils/eoRNG.h>
    +00027 
    +00028 #include "order_xover.h"
    +00029 
    +00030 void OrderXover :: cross (const Route & __par1, const Route & __par2, Route & __child) {
    +00031 
    +00032   unsigned cut2 = 1 + rng.random (numNodes) ;    
    +00033   unsigned cut1 = rng.random (cut2);
    +00034   unsigned l = 0;
    +00035 
    +00036   /* To store vertices that have already been crossed */
    +00037   std :: vector <bool> v (numNodes, false);
    +00038 
    +00039   /* Copy of the left partial route of the first parent */ 
    +00040   for (unsigned i = cut1 ; i < cut2 ; i ++) {
    +00041     __child [l ++] = __par1 [i] ; 
    +00042     v [__par1 [i]] = true ;
    +00043   }
    +00044    
    +00045   /* Searching the vertex of the second path, that ended the previous first one */
    +00046   unsigned from = 0 ;
    +00047   for (unsigned i = 0; i < numNodes; i ++)
    +00048     if (__par2 [i] == __child [cut2 - 1]) { 
    +00049       from = i ;
    +00050       break ;
    +00051     }
    +00052   
    +00053   /* Selecting a direction (Left or Right) */
    +00054   char direct = rng.flip () ? 1 : -1 ;
    +00055       
    +00056   for (unsigned i = 0; i < numNodes + 1; i ++) {
    +00057     unsigned bidule = (direct * i + from + numNodes) % numNodes;
    +00058     if (! v [__par2 [bidule]]) {
    +00059       __child [l ++] = __par2 [bidule] ;
    +00060       v [__par2 [bidule]] = true ;
    +00061     }
    +00062   }
    +00063 } 
    +00064 
    +00065 bool OrderXover :: operator () (Route & __route1, Route & __route2) {
    +00066   
    +00067   // Init. copy
    +00068   Route par [2] ;
    +00069   par [0] = __route1 ;
    +00070   par [1] = __route2 ;
    +00071   
    +00072   cross (par [0], par [1], __route1) ;
    +00073   cross (par [1], par [0], __route2) ;
    +00074   
    +00075   __route1.invalidate () ;
    +00076   __route2.invalidate () ;
    +00077 
    +00078   return true ;
    +00079 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/order__xover_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/order__xover_8h-source.html new file mode 100644 index 000000000..bf3143c6b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/order__xover_8h-source.html @@ -0,0 +1,70 @@ + + +ParadisEO-PEO - Lessons: order_xover.h Source File + + + + +
    +
    +

    order_xover.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "order_xover.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2003
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef order_xover_h
    +00025 #define order_xover_h
    +00026 
    +00027 #include <eoOp.h>
    +00028 
    +00029 #include "route.h"
    +00030 
    +00032 class OrderXover : public eoQuadOp <Route> {
    +00033   
    +00034 public :
    +00035   
    +00036   bool operator () (Route & __route1, Route & __route2) ;
    +00037 
    +00038 private :
    +00039   
    +00040   void cross (const Route & __par1, const Route & __par2, Route & __child) ;
    +00041 } ;
    +00042 
    +00043 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/param_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/param_8cpp-source.html new file mode 100644 index 000000000..1a8550503 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/param_8cpp-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO - Lessons: param.cpp Source File + + + + +
    +
    +

    param.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "param.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <utils/eoParser.h>
    +00025 
    +00026 #include "data.h"
    +00027 #include "opt_route.h"
    +00028 
    +00029 void loadParameters (int __argc, char * * __argv) {
    +00030 
    +00031   eoParser parser (__argc, __argv);
    +00032   
    +00033   loadData (parser);
    +00034 
    +00035   loadOptimumRoute (parser);
    +00036 }
    +00037 
    +00038 
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/param_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/param_8h-source.html new file mode 100644 index 000000000..b995aadc4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/param_8h-source.html @@ -0,0 +1,57 @@ + + +ParadisEO-PEO - Lessons: param.h Source File + + + + +
    +
    +

    param.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "param.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __param_h
    +00025 #define __param_h
    +00026 
    +00027 extern void loadParameters (int __argc, char * * __argv);
    +00028 
    +00029 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/part__route__eval_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/part__route__eval_8cpp-source.html new file mode 100644 index 000000000..4f5815f29 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/part__route__eval_8cpp-source.html @@ -0,0 +1,73 @@ + + +ParadisEO-PEO - Lessons: part_route_eval.cpp Source File + + + + +
    +
    +

    part_route_eval.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "part_route_eval.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2003
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "part_route_eval.h"
    +00025 #include "node.h"
    +00026 
    +00027 PartRouteEval :: PartRouteEval (float __from,
    +00028                                 float __to
    +00029                                 ) : from (__from),
    +00030                                     to (__to) {
    +00031   
    +00032 }
    +00033 
    +00034 void PartRouteEval :: operator () (Route & __route) {
    +00035   
    +00036   
    +00037   unsigned len = 0 ;
    +00038   
    +00039   for (unsigned i = (unsigned) (__route.size () * from) ;
    +00040        i < (unsigned) (__route.size () * to) ;
    +00041        i ++)
    +00042     len += distance (__route [i], __route [(i + 1) % numNodes]) ;
    +00043   
    +00044   __route.fitness (- (int) len) ;
    +00045 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/part__route__eval_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/part__route__eval_8h-source.html new file mode 100644 index 000000000..d842a613e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/part__route__eval_8h-source.html @@ -0,0 +1,74 @@ + + +ParadisEO-PEO - Lessons: part_route_eval.h Source File + + + + +
    +
    +

    part_route_eval.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "part_route_eval.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __part_route_eval_h
    +00025 #define __part_route_eval_h
    +00026 
    +00027 #include <eoEvalFunc.h>
    +00028 
    +00029 #include "route.h"
    +00030 
    +00032 class PartRouteEval : public eoEvalFunc <Route> {
    +00033   
    +00034 public :
    +00035 
    +00037   PartRouteEval (float __from, float __to) ;
    +00038     
    +00039   void operator () (Route & __route) ;
    +00040   
    +00041 private :
    +00042 
    +00043   float from, to ;
    +00044 
    +00045 } ;
    +00046 
    +00047 
    +00048 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/partial__mapped__xover_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/partial__mapped__xover_8cpp-source.html new file mode 100644 index 000000000..19661b3d2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/partial__mapped__xover_8cpp-source.html @@ -0,0 +1,104 @@ + + +ParadisEO-PEO - Lessons: partial_mapped_xover.cpp Source File + + + + +
    +
    +

    partial_mapped_xover.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "partial_mapped_xover.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2003
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <assert.h>
    +00025 
    +00026 #include <utils/eoRNG.h>
    +00027 
    +00028 #include "partial_mapped_xover.h"
    +00029 #include "mix.h"
    +00030 
    +00031 void PartialMappedXover :: repair (Route & __route, unsigned __cut1, unsigned __cut2) {
    +00032   
    +00033   unsigned v [__route.size ()] ; // Number of times a cities are visited ...
    +00034   
    +00035   for (unsigned i = 0 ; i < __route.size () ; i ++)
    +00036     v [i] = 0 ;
    +00037   
    +00038   for (unsigned i = 0 ; i < __route.size () ; i ++)
    +00039     v [__route [i]] ++ ;
    +00040   
    +00041   std :: vector <unsigned> vert ;
    +00042 
    +00043   for (unsigned i = 0 ; i < __route.size () ; i ++)
    +00044     if (! v [i])
    +00045       vert.push_back (i) ;
    +00046   
    +00047   mix (vert) ;
    +00048 
    +00049   for (unsigned i = 0 ; i < __route.size () ; i ++)
    +00050     if (i < __cut1 || i >= __cut2)
    +00051       if (v [__route [i]] > 1) {
    +00052         __route [i] = vert.back () ;
    +00053         vert.pop_back () ;
    +00054       }
    +00055 }
    +00056 
    +00057 bool PartialMappedXover :: operator () (Route & __route1, Route & __route2) {
    +00058     
    +00059   unsigned cut1 = rng.random (__route1.size ()), cut2 = rng.random (__route2.size ()) ;
    +00060   
    +00061   if (cut2 < cut1)
    +00062     std :: swap (cut1, cut2) ;
    +00063   
    +00064   // Between the cuts
    +00065   for (unsigned i = cut1 ; i < cut2 ; i ++)
    +00066     std :: swap (__route1 [i], __route2 [i]) ;
    +00067   
    +00068   // Outside the cuts
    +00069   repair (__route1, cut1, cut2) ;
    +00070   repair (__route2, cut1, cut2) ;
    +00071   
    +00072   __route1.invalidate () ;
    +00073   __route2.invalidate () ;
    +00074 
    +00075   return true ;
    +00076 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/partial__mapped__xover_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/partial__mapped__xover_8h-source.html new file mode 100644 index 000000000..c1b59321f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/partial__mapped__xover_8h-source.html @@ -0,0 +1,70 @@ + + +ParadisEO-PEO - Lessons: partial_mapped_xover.h Source File + + + + +
    +
    +

    partial_mapped_xover.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "partial_mapped_xover.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2003
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef partial_mapped_xover_h
    +00025 #define partial_mapped_xover_h
    +00026 
    +00027 #include <eoOp.h>
    +00028 
    +00029 #include "route.h"
    +00030 
    +00032 class PartialMappedXover : public eoQuadOp <Route> {
    +00033   
    +00034 public :
    +00035   
    +00036   bool operator () (Route & __route1, Route & __route2) ;
    +00037 
    +00038 private :
    +00039   
    +00040   void repair (Route & __route, unsigned __cut1, unsigned __cut2) ;
    +00041 } ;
    +00042 
    +00043 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/route_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/route_8cpp-source.html new file mode 100644 index 000000000..90848c8ef --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/route_8cpp-source.html @@ -0,0 +1,64 @@ + + +ParadisEO-PEO - Lessons: route.cpp Source File + + + + +
    +
    +

    route.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "route.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "route.h"
    +00025 
    +00026 unsigned length (const Route & __route) {
    +00027 
    +00028   unsigned len = 0 ;
    +00029   
    +00030   for (unsigned i = 0; i < numNodes; i ++)
    +00031     len += distance (__route [i], __route [(i + 1) % numNodes]) ; 
    +00032   
    +00033   return len;
    +00034 }
    +00035 
    +00036 
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/route_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/route_8h-source.html new file mode 100644 index 000000000..c84d39bf7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/route_8h-source.html @@ -0,0 +1,63 @@ + + +ParadisEO-PEO - Lessons: route.h Source File + + + + +
    +
    +

    route.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "route.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __route_h
    +00025 #define __route_h
    +00026 
    +00027 #include <eoVector.h>
    +00028 
    +00029 #include "node.h"
    +00030 
    +00031 typedef eoVector <int, Node> Route; 
    +00032 
    +00033 unsigned length (const Route & __route); 
    +00034 
    +00035 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/route__eval_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/route__eval_8cpp-source.html new file mode 100644 index 000000000..f3afff48a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/route__eval_8cpp-source.html @@ -0,0 +1,57 @@ + + +ParadisEO-PEO - Lessons: route_eval.cpp Source File + + + + +
    +
    +

    route_eval.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "route_eval.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "route_eval.h"
    +00025 
    +00026 void RouteEval :: operator () (Route & __route) {
    +00027     
    +00028   __route.fitness (- (int) length (__route)); 
    +00029 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/route__eval_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/route__eval_8h-source.html new file mode 100644 index 000000000..e61af62b1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/route__eval_8h-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO - Lessons: route_eval.h Source File + + + + +
    +
    +

    route_eval.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "route_eval.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __route_eval_h
    +00025 #define __route_eval_h
    +00026 
    +00027 #include <eoEvalFunc.h>
    +00028 
    +00029 #include "route.h"
    +00030 
    +00031 class RouteEval : public eoEvalFunc <Route> {
    +00032   
    +00033 public :
    +00034     
    +00035   void operator () (Route & __route) ;  
    +00036 } ;
    +00037 
    +00038 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/route__init_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/route__init_8cpp-source.html new file mode 100644 index 000000000..5eb1c4d4a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/route__init_8cpp-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO - Lessons: route_init.cpp Source File + + + + +
    +
    +

    route_init.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "route_init.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <utils/eoRNG.h>
    +00025 
    +00026 #include "route_init.h"
    +00027 #include "node.h"
    +00028 
    +00029 void RouteInit :: operator () (Route & __route) {
    +00030 
    +00031   __route.clear ();
    +00032   
    +00033   for (unsigned i = 0 ; i < numNodes ; i ++)
    +00034     __route.push_back (i);
    +00035   
    +00036   for (unsigned i = 0 ; i < numNodes ; i ++)    
    +00037     std :: swap (__route [i], __route [rng.random (numNodes)]);
    +00038 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/route__init_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/route__init_8h-source.html new file mode 100644 index 000000000..61140e791 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/route__init_8h-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO - Lessons: route_init.h Source File + + + + +
    +
    +

    route_init.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "route_init.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __route_init_h
    +00025 #define __route_init_h
    +00026 
    +00027 #include <eoInit.h>
    +00028 
    +00029 #include "route.h"
    +00030 
    +00031 class RouteInit : public eoInit <Route> {
    +00032   
    +00033 public :
    +00034   
    +00035   void operator () (Route & __route);  
    +00036 } ;
    +00037 
    +00038 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/search.idx b/trunk/paradiseo-peo/docs/html/lsnshared/html/search.idx new file mode 100644 index 0000000000000000000000000000000000000000..5ef79e8610b8d97f318c46255b931bf62628fd30 GIT binary patch literal 279653 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 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/search.php b/trunk/paradiseo-peo/docs/html/lsnshared/html/search.php new file mode 100644 index 000000000..225003d0a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/search.php @@ -0,0 +1,381 @@ + + +Search + + + + +
    +
      +
    • Main Page
    • +
    • Classes
    • +
    • Files
    • +
    • +
      + + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
      \n
      \n
    • \n
    \n
    \n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

    ".search_results()."

    ".matches_text(0)."
    ".matches_text($numDocs); + echo "\n"; + echo "
    $num.".$doc["name"]."
    ".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
    \n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
    \n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
    \n"; + fclose($file); +} + +main(); + + +?> +
    Generated on Sun Jan 7 18:35:29 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/tab_b.gif b/trunk/paradiseo-peo/docs/html/lsnshared/html/tab_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d623483ffdf5f9f96900108042a7ab0643fe2a3 GIT binary patch literal 35 ncmZ?wbhEHbWMp7uXkcJy*>IeJfk6j|fqX^=1|}vKMh0sDa2W*H literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/tab_l.gif b/trunk/paradiseo-peo/docs/html/lsnshared/html/tab_l.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b1e6337c9299a700401a2a78a2c6ffced475216 GIT binary patch literal 706 zcmZ?wbhEHbZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET99@1@a36+kb~?0UJ*yc&I3X_m z!ND^5$O7$#8OFRuDhG}!?8z?cdZK&!`PWjdR;Aj^wZ` zeK{IEYHBJ)6K8VIp1`BVt++swf6j+=L{p1*nO(VhE`pFexG@5$|>uaCcd z`0m=9m+yak{QmXN#Sc$^{$X9h9&q2jiKAI|&T)a;PPx2K9p`YIdw8HtR5k2Q$2-O2 z*;3y{MQ-RnJTgJfI&R5|O)AHxDf_00XbPvDZPy4t=hHd)nfLPvms&O`Ok(sD()5v$ z5U@&h;a=#xbxVbo2~X&Xj0Ie(f{v>vERH+qC+nTG=B8Nca=wU-O$?1&vUgV~9=!H; zx>3p9Yn%*<>t~sk+&0xfyS8RsPfYBd<~wWK%j-LmpU>O7yX^h#UCp1x-p#i7@bE;py8XI6 zmY<)m>~)W~yIWcMVoiPg{duuf<*)9qZ9l$m*Ph&W&$jlv*Vpa+{pH@n=IQ$L?0$ax ec60Ul|8o2P|NVbd{6P)#weSbE3}s?04AuZvx_~SI literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/tab_r.gif b/trunk/paradiseo-peo/docs/html/lsnshared/html/tab_r.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce9dd9f533cb5486d6941844f442b59d4a9e9175 GIT binary patch literal 2585 zcmbV}`9Bkk1ILFF--w5zJc=ZZT(zjE=;2|_S)Qm~rCWz1Pc)KPl;jv%A#&v2*x}yc zmf2~Jm~&=xjJY?PqwIN}f8qQ2{r$uH{c*nJbmr{cR5??*egHrs-B=MzCF`3%e{FAW z{oL5xTHn~5TM{jaB;@|_Ue5F&Zb@p(kMyG{*;gWDg zyeL|eZf7Qd8=#bXzSiR{yzRgLSj-fJS8>lBjVHN z^o-0eS=nE6a`W;LChBs=`+QAJP~{b93>H^eRb5kCSC1zUNezun%`L5M?RDzv#%jk7 zYVRX=vATPD`+oEfum^{RM@GjuP?-r=yh0!p;Vx^T9G7~`7%5ydH%70=jyJ;;`d;hv92x3R=z{xp+Lg2!*@OK*K15-t&okoPtSED)h&$RLxdbA zseWm^C3d%-yRNi-ryk^!ek+C`n&~cd$#ZWct_cUL{l~i+Nzx^5d!n94(>bW-iL~Rl z&8r)?q|1DIo=0=judQ{FaGcfLERz8gfn3-Qt<2lksh{mzpT}DXxUuR^z=^key&q4! z+wWI45vL0k$R^(F#{qfqhUsN@WA+w-V?LPH33!Q?WFSB3)WBojE@hK41Nb?KfS+Qo zXgrzfsP$wr4Qzy*{OD>uJBjdgGM@VMml5)2f~_}lD*YyOb}Hjeobhz#4c`w(l^>KK zr?Ud;W~Z}*w;%hZ|2^p^+f06gJDJQD zeIhGADbDmm&6arh(q>EZ<7mjzg7l|z$hRL8=1>)Nv=S7CY$B}iYJ&*T_-T_OG*L1q ztZ3Lana33?y3AKnyq^YCF|4x%Rb5WU&2qcl{TFKey%QJeMxn^SdT!hZ5+0i1zeusiYVp-phBl7b5+Px-X&LhByq z0F&<;K0l2+v>qiHlXb#$jXMv$uK-dEGE9L~qtdU(XeRXmvu*K2Q&6!fD**JxYP4b4BR7FdJ$Qx9G9`J%-_X!a#LGpp3g9)VWytGCa;7`S1_e8F~!R+aSJ zOF17p2`H?2kPs8Q`_;U}+D%3p zs2-0BTqFwpUoBk`?P;iPQ(IbEA|JmMx!P&YYG|R@S=5Mnw;-?A6rEEVyV%d7{iU4a zNk`i!%F(Ykpm`}#oH;BjY->@b8vQedv;pza2FL&*6ufjd+*3Ute&>kes~TU?^KkojsTh(o~(3tk1Y6>4(yn( z#U*ID9@eg-beKo1B;HXe+}{Z%n@7m0+yxivuqk9~;!1LGQlah)xYK4>wgL}l6dsaN zIxlRlq`*`j9PG4*0hD6YV_b_2w5b#)o7J?`q#{GjvvKlD`T*dWcZx<-s(ZvLB44E# z=!|sw!?)@%y$oRNL#25WS3lzdii}TuQ3?CLnvQ1_n};2sT_;Y;#d3=+-(O% zMN$>O!3;ke(UuLR%h_&)N zs^!-@A>QR}4yB1bPp`9S19ikTbZ~O{&FF-yHK{En;mmShDUIEw03`j(DBIsM}Rjki2J#SQa3gFZTKBPDeIiLt9Z z%bL3(B@Qw%(B`wSMS~dPh$=R`(}lBoFXKy(s|*{#ru$wjsBc_O#zxNk9w+UUHmx(U zmJ8+M+ndtnZ<7|VU9Mbt61zpo9T&3%Wx&XII=#QJxjR`CZf22ac3d51Z?GD%LEe_&*t46Qf;4`bZ7p2K(Ab5>GfT^}4! zBT&HZD`^PEgWoI&{~o-ID0F?O`75sm(87x%A{(}Ch1)QlzdJ)1B-eqe5a(weg0`4lQIf1evjvbBY50DVbzO7CLf|vP z2#0(U-|jZ`H{y5N^o7%iK6H>_HEGN->U6^!)1{XpJV!!4(Ig7wzZQ*9WYF4X1rG0x z=1uA@i`rIAciubDC{;~b(|&|A@xkjRP5aRcvRU9tvIm}jDB6J eQ0-6-y)mpwdT=ayS0tBxKDA*~;EWmo literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/tabs.css b/trunk/paradiseo-peo/docs/html/lsnshared/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/tree.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/tree.html new file mode 100644 index 000000000..11b2aad1f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/tree.html @@ -0,0 +1,163 @@ + + + + + + + TreeView + + + + +
    +

    ParadisEO-PEO - Lessons

    +
    +

    o+Class List

    + +

    o+Class Hierarchy

    + +

    o*Class Members

    +

    \+File List

    +
    +

     o*city_swap.cpp

    +

     o*city_swap.h

    +

     o*data.cpp

    +

     o*data.h

    +

     o*display.cpp

    +

     o*display.h

    +

     o*display_best_route.cpp

    +

     o*display_best_route.h

    +

     o*edge_xover.cpp

    +

     o*edge_xover.h

    +

     o*merge_route_eval.cpp

    +

     o*merge_route_eval.h

    +

     o*mix.h

    +

     o*node.cpp

    +

     o*node.h

    +

     o*opt_route.cpp

    +

     o*opt_route.h

    +

     o*order_xover.cpp

    +

     o*order_xover.h

    +

     o*param.cpp

    +

     o*param.h

    +

     o*part_route_eval.cpp

    +

     o*part_route_eval.h

    +

     o*partial_mapped_xover.cpp

    +

     o*partial_mapped_xover.h

    +

     o*route.cpp

    +

     o*route.h

    +

     o*route_eval.cpp

    +

     o*route_eval.h

    +

     o*route_init.cpp

    +

     o*route_init.h

    +

     o*two_opt.cpp

    +

     o*two_opt.h

    +

     o*two_opt_incr_eval.cpp

    +

     o*two_opt_incr_eval.h

    +

     o*two_opt_init.cpp

    +

     o*two_opt_init.h

    +

     o*two_opt_next.cpp

    +

     o*two_opt_next.h

    +

     o*two_opt_rand.cpp

    +

     \*two_opt_rand.h

    +
    +
    +
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt_8cpp-source.html new file mode 100644 index 000000000..8ee324e41 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt_8cpp-source.html @@ -0,0 +1,63 @@ + + +ParadisEO-PEO - Lessons: two_opt.cpp Source File + + + + +
    +
    +

    two_opt.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "two_opt.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "two_opt.h"
    +00025 
    +00026 void TwoOpt :: operator () (Route & __route) {
    +00027   
    +00028   unsigned i = 0; 
    +00029 
    +00030   while ((2 * i) < (second - first)) {
    +00031     
    +00032     std :: swap (__route [first + i], __route [second - i]);
    +00033     i ++;
    +00034   }
    +00035 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt_8h-source.html new file mode 100644 index 000000000..3d0e624ae --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt_8h-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO - Lessons: two_opt.h Source File + + + + +
    +
    +

    two_opt.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "two_opt.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __two_opt_h
    +00025 #define __two_opt_h
    +00026 
    +00027 #include <utility>
    +00028 #include <moMove.h>
    +00029 
    +00030 #include "route.h"
    +00031 
    +00032 class TwoOpt : public moMove <Route>, public std :: pair <unsigned, unsigned> {
    +00033   
    +00034 public :
    +00035   
    +00036   void operator () (Route & __route);
    +00037 
    +00038 } ;
    +00039 
    +00040 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__incr__eval_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__incr__eval_8cpp-source.html new file mode 100644 index 000000000..892349d5d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__incr__eval_8cpp-source.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO - Lessons: two_opt_incr_eval.cpp Source File + + + + +
    +
    +

    two_opt_incr_eval.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "TwoOptIncrEval.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "two_opt_incr_eval.h"
    +00025 #include "node.h"
    +00026 
    +00027 int TwoOptIncrEval :: operator () (const TwoOpt & __move, const Route & __route) {
    +00028   
    +00029   /* From */
    +00030   Node v1 = __route [__move.first], v1_left = __route [(__move.first - 1 + numNodes) % numNodes];
    +00031   
    +00032   /* To */
    +00033   Node v2 = __route [__move.second], v2_right = __route [(__move.second + 1) % numNodes];
    +00034  
    +00035   if (v1 == v2 || v2_right == v1)
    +00036     return __route.fitness ();
    +00037   else 
    +00038     return __route.fitness () - distance (v1_left, v2) - distance (v1, v2_right) + distance (v1_left, v1) + distance (v2, v2_right);
    +00039 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__incr__eval_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__incr__eval_8h-source.html new file mode 100644 index 000000000..2b47ea06b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__incr__eval_8h-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO - Lessons: two_opt_incr_eval.h Source File + + + + +
    +
    +

    two_opt_incr_eval.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "TwoOptIncrEval.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __two_opt_incr_eval_h
    +00025 #define __two_opt_incr_eval_h
    +00026 
    +00027 #include <moMoveIncrEval.h>
    +00028 #include "two_opt.h"
    +00029 
    +00030 class TwoOptIncrEval : public moMoveIncrEval <TwoOpt> {
    +00031 
    +00032 public :
    +00033   
    +00034   int operator () (const TwoOpt & __move, const Route & __route) ; 
    +00035 
    +00036 } ;
    +00037 
    +00038 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__init_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__init_8cpp-source.html new file mode 100644 index 000000000..4b002774d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__init_8cpp-source.html @@ -0,0 +1,57 @@ + + +ParadisEO-PEO - Lessons: two_opt_init.cpp Source File + + + + +
    +
    +

    two_opt_init.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "two_opt_init.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, 2003
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "two_opt_init.h"
    +00025 
    +00026 void TwoOptInit :: operator () (TwoOpt & __move, const Route & __route) {
    +00027   
    +00028   __move.first = __move.second = 0;
    +00029 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__init_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__init_8h-source.html new file mode 100644 index 000000000..ce481b609 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__init_8h-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO - Lessons: two_opt_init.h Source File + + + + +
    +
    +

    two_opt_init.h

    00001 
    +00002 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00003 
    +00004 // "two_opt_init.h"
    +00005 
    +00006 // (c) OPAC Team, LIFL, January 2006
    +00007 
    +00008 /* This library is free software; you can redistribute it and/or
    +00009    modify it under the terms of the GNU Lesser General Public
    +00010    License as published by the Free Software Foundation; either
    +00011    version 2 of the License, or (at your option) any later version.
    +00012    
    +00013    This library is distributed in the hope that it will be useful,
    +00014    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016    Lesser General Public License for more details.
    +00017    
    +00018    You should have received a copy of the GNU Lesser General Public
    +00019    License along with this library; if not, write to the Free Software
    +00020    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00021    
    +00022    Contact: paradiseo-help@lists.gforge.inria.fr
    +00023 */
    +00024 
    +00025 #ifndef __two_opt_init_h
    +00026 #define __two_opt_init_h
    +00027 
    +00028 #include <moMoveInit.h>
    +00029 
    +00030 #include "two_opt.h"
    +00031 
    +00032 class TwoOptInit : public moMoveInit <TwoOpt> {
    +00033   
    +00034 public :
    +00035   
    +00036   void operator () (TwoOpt & __move, const Route & __route) ;
    +00037   
    +00038 } ;
    +00039 
    +00040 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__next_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__next_8cpp-source.html new file mode 100644 index 000000000..57ded9aac --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__next_8cpp-source.html @@ -0,0 +1,70 @@ + + +ParadisEO-PEO - Lessons: two_opt_next.cpp Source File + + + + +
    +
    +

    two_opt_next.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "two_opt_next.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "two_opt_next.h"
    +00025 #include "node.h"
    +00026 
    +00027 bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route) {
    +00028 
    +00029   if (__move.first == numNodes - 1 && __move.second == numNodes - 1)
    +00030     return false;
    +00031   
    +00032   else {
    +00033     
    +00034     __move.second ++;
    +00035     if (__move.second == numNodes) {
    +00036       
    +00037       __move.first ++;
    +00038       __move.second = __move.first;
    +00039     }
    +00040     return true ;
    +00041   }
    +00042 }
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__next_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__next_8h-source.html new file mode 100644 index 000000000..b1097657c --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__next_8h-source.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO - Lessons: two_opt_next.h Source File + + + + +
    +
    +

    two_opt_next.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "two_opt_next.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __two_opt_next_h
    +00025 #define __two_opt_next_h
    +00026 
    +00027 #include <moNextMove.h>
    +00028 
    +00029 #include "two_opt.h"
    +00030 
    +00031 class TwoOptNext : public moNextMove <TwoOpt> {
    +00032 
    +00033 public :
    +00034   
    +00035   bool operator () (TwoOpt & __move, const Route & __route);
    +00036   
    +00037 };
    +00038 
    +00039 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__rand_8cpp-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__rand_8cpp-source.html new file mode 100644 index 000000000..258122435 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__rand_8cpp-source.html @@ -0,0 +1,64 @@ + + +ParadisEO-PEO - Lessons: two_opt_rand.cpp Source File + + + + +
    +
    +

    two_opt_rand.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "two_opt_rand.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <utils/eoRNG.h>
    +00025 
    +00026 #include "two_opt_rand.h"
    +00027 #include "node.h"  
    +00028 
    +00029 void TwoOptRand :: operator () (TwoOpt & __move, const Route & __route) {
    +00030 
    +00031   __move.second = rng.random (numNodes);
    +00032 
    +00033   __move.first = rng.random (__move.second);
    +00034 }
    +00035   
    +00036 
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__rand_8h-source.html b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__rand_8h-source.html new file mode 100644 index 000000000..1c15cfda4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/html/two__opt__rand_8h-source.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO - Lessons: two_opt_rand.h Source File + + + + +
    +
    +

    two_opt_rand.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "two_opt_rand.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, January 2006
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __two_opt_rand_h
    +00025 #define __two_opt_rand_h
    +00026 
    +00027 #include <eoMoveRand.h>
    +00028 
    +00029 #include "two_opt.h"
    +00030 
    +00031 class TwoOptRand : public eoMoveRand <TwoOpt> {
    +00032   
    +00033 public :
    +00034   
    +00035   void operator () (TwoOpt & __move, const Route & __route) ;
    +00036   
    +00037 } ;
    +00038 
    +00039 #endif
    +

    Generated on Sun Jan 7 18:35:28 2007 for ParadisEO-PEO - Lessons by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/FreeSans.ttf b/trunk/paradiseo-peo/docs/html/lsnshared/latex/FreeSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b550b90ba5480f9a3db170a19a1f86daecb0dc92 GIT binary patch literal 22932 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 RlllN>Fk>(~eFPlj{{dxA`xyWL literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/Makefile b/trunk/paradiseo-peo/docs/html/lsnshared/latex/Makefile new file mode 100644 index 000000000..a67f1b7f6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/Makefile @@ -0,0 +1,17 @@ +all: clean refman.pdf + +refman.pdf: refman.tex + pdflatex refman.tex + makeindex refman.idx + pdflatex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/annotated.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/annotated.tex new file mode 100644 index 000000000..83e41358f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/annotated.tex @@ -0,0 +1,17 @@ +\section{Paradis\-EO-PEO - Lessons Class List} +Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{\hyperlink{classCitySwap}{City\-Swap} (Its swaps two vertices randomly choosen )}{\pageref{classCitySwap}}{} +\item\contentsline{section}{\hyperlink{classDisplayBestRoute}{Display\-Best\-Route} }{\pageref{classDisplayBestRoute}}{} +\item\contentsline{section}{\hyperlink{classEdgeXover}{Edge\-Xover} (Edge Crossover )}{\pageref{classEdgeXover}}{} +\item\contentsline{section}{\hyperlink{classMergeRouteEval}{Merge\-Route\-Eval} }{\pageref{classMergeRouteEval}}{} +\item\contentsline{section}{\hyperlink{classOrderXover}{Order\-Xover} (Order Crossover )}{\pageref{classOrderXover}}{} +\item\contentsline{section}{\hyperlink{classPartialMappedXover}{Partial\-Mapped\-Xover} (Partial Mapped Crossover )}{\pageref{classPartialMappedXover}}{} +\item\contentsline{section}{\hyperlink{classPartRouteEval}{Part\-Route\-Eval} (Route Evaluator )}{\pageref{classPartRouteEval}}{} +\item\contentsline{section}{\hyperlink{classRouteEval}{Route\-Eval} }{\pageref{classRouteEval}}{} +\item\contentsline{section}{\hyperlink{classRouteInit}{Route\-Init} }{\pageref{classRouteInit}}{} +\item\contentsline{section}{\hyperlink{classTwoOpt}{Two\-Opt} }{\pageref{classTwoOpt}}{} +\item\contentsline{section}{\hyperlink{classTwoOptIncrEval}{Two\-Opt\-Incr\-Eval} }{\pageref{classTwoOptIncrEval}}{} +\item\contentsline{section}{\hyperlink{classTwoOptInit}{Two\-Opt\-Init} }{\pageref{classTwoOptInit}}{} +\item\contentsline{section}{\hyperlink{classTwoOptNext}{Two\-Opt\-Next} }{\pageref{classTwoOptNext}}{} +\item\contentsline{section}{\hyperlink{classTwoOptRand}{Two\-Opt\-Rand} }{\pageref{classTwoOptRand}}{} +\end{CompactList} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classCitySwap.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classCitySwap.tex new file mode 100644 index 000000000..0a8bffa90 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classCitySwap.tex @@ -0,0 +1,30 @@ +\hypertarget{classCitySwap}{ +\section{City\-Swap Class Reference} +\label{classCitySwap}\index{CitySwap@{CitySwap}} +} +Its swaps two vertices randomly choosen. + + +{\tt \#include $<$city\_\-swap.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classCitySwap_7e6958b62048c89604cbf046b86bdf2d}{ +bool \hyperlink{classCitySwap_7e6958b62048c89604cbf046b86bdf2d}{operator()} (Route \&\_\-\_\-route)} +\label{classCitySwap_7e6958b62048c89604cbf046b86bdf2d} + +\end{CompactItemize} + + +\subsection{Detailed Description} +Its swaps two vertices randomly choosen. + + + +Definition at line 33 of file city\_\-swap.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +city\_\-swap.h\item +city\_\-swap.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classDisplayBestRoute.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classDisplayBestRoute.tex new file mode 100644 index 000000000..5d50344b3 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classDisplayBestRoute.tex @@ -0,0 +1,38 @@ +\hypertarget{classDisplayBestRoute}{ +\section{Display\-Best\-Route Class Reference} +\label{classDisplayBestRoute}\index{DisplayBestRoute@{DisplayBestRoute}} +} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classDisplayBestRoute_db263e38f1e82174f811bf62f323f87f}{ +\hyperlink{classDisplayBestRoute_db263e38f1e82174f811bf62f323f87f}{Display\-Best\-Route} (eo\-Pop$<$ Route $>$ \&\_\-\_\-pop)} +\label{classDisplayBestRoute_db263e38f1e82174f811bf62f323f87f} + +\item +\hypertarget{classDisplayBestRoute_ee879344a6d8b81a04d4eabbed2c7a04}{ +void \hyperlink{classDisplayBestRoute_ee879344a6d8b81a04d4eabbed2c7a04}{operator()} ()} +\label{classDisplayBestRoute_ee879344a6d8b81a04d4eabbed2c7a04} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classDisplayBestRoute_5270aabbf294d2deca9878934216eb89}{ +eo\-Pop$<$ Route $>$ \& \hyperlink{classDisplayBestRoute_5270aabbf294d2deca9878934216eb89}{pop}} +\label{classDisplayBestRoute_5270aabbf294d2deca9878934216eb89} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 33 of file display\_\-best\_\-route.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +display\_\-best\_\-route.h\item +display\_\-best\_\-route.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classEdgeXover.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classEdgeXover.tex new file mode 100644 index 000000000..cfeb546f0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classEdgeXover.tex @@ -0,0 +1,66 @@ +\hypertarget{classEdgeXover}{ +\section{Edge\-Xover Class Reference} +\label{classEdgeXover}\index{EdgeXover@{EdgeXover}} +} +Edge Crossover. + + +{\tt \#include $<$edge\_\-xover.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classEdgeXover_cb1c0a103106a4d3319540cb23163a79}{ +bool \hyperlink{classEdgeXover_cb1c0a103106a4d3319540cb23163a79}{operator()} (Route \&\_\-\_\-route1, Route \&\_\-\_\-route2)} +\label{classEdgeXover_cb1c0a103106a4d3319540cb23163a79} + +\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classEdgeXover_88c2d4c9a878454a32d56010f3dddc27}{ +void \hyperlink{classEdgeXover_88c2d4c9a878454a32d56010f3dddc27}{cross} (const Route \&\_\-\_\-par1, const Route \&\_\-\_\-par2, Route \&\_\-\_\-child)} +\label{classEdgeXover_88c2d4c9a878454a32d56010f3dddc27} + +\item +\hypertarget{classEdgeXover_1b3a4c75dd9a034c81af6d89d85d30f5}{ +void \hyperlink{classEdgeXover_1b3a4c75dd9a034c81af6d89d85d30f5}{remove\_\-entry} (unsigned \_\-\_\-vertex, std::vector$<$ std::set$<$ unsigned $>$ $>$ \&\_\-\_\-map)} +\label{classEdgeXover_1b3a4c75dd9a034c81af6d89d85d30f5} + +\item +\hypertarget{classEdgeXover_04de96aa1016836e0ba5f4b952a5fa16}{ +void \hyperlink{classEdgeXover_04de96aa1016836e0ba5f4b952a5fa16}{build\_\-map} (const Route \&\_\-\_\-par1, const Route \&\_\-\_\-par2)} +\label{classEdgeXover_04de96aa1016836e0ba5f4b952a5fa16} + +\item +\hypertarget{classEdgeXover_2d3045ef503d8b16a27e11fdc23ca11c}{ +void \hyperlink{classEdgeXover_2d3045ef503d8b16a27e11fdc23ca11c}{add\_\-vertex} (unsigned \_\-\_\-vertex, Route \&\_\-\_\-child)} +\label{classEdgeXover_2d3045ef503d8b16a27e11fdc23ca11c} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classEdgeXover_d41399c6effb54ee48c722f1e19cb3c3}{ +std::vector$<$ std::set$<$ unsigned $>$ $>$ \hyperlink{classEdgeXover_d41399c6effb54ee48c722f1e19cb3c3}{\_\-map}} +\label{classEdgeXover_d41399c6effb54ee48c722f1e19cb3c3} + +\item +\hypertarget{classEdgeXover_46d4d4724cf6d660b1a7ab4a346573d4}{ +std::vector$<$ bool $>$ \hyperlink{classEdgeXover_46d4d4724cf6d660b1a7ab4a346573d4}{visited}} +\label{classEdgeXover_46d4d4724cf6d660b1a7ab4a346573d4} + +\end{CompactItemize} + + +\subsection{Detailed Description} +Edge Crossover. + + + +Definition at line 35 of file edge\_\-xover.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +edge\_\-xover.h\item +edge\_\-xover.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.eps b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.eps new file mode 100644 index 000000000..042e549fd --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 239.521 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.0875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(MergeRouteEval) cw +(peoAggEvalFunc< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (MergeRouteEval) 0 0 box + (peoAggEvalFunc< EOT >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.pdf b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.pdf new file mode 100644 index 000000000..0084862a8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.pdf @@ -0,0 +1,74 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ•NÍJ1¾ÏSÌQ=Œ3ùˆ °z±ædIƒ²kmµúú&Ûµ¬àEBf¾ß-2 r{óìG8_y,ïÀx[-ÈDÀyô#^§J +h4£ ¦5ÄR9LJ+T–¬·˜F8¹Ë»’W›ýGî>Ÿ†Óô]‚ÐŽ¬v‚_Uû Mm™½fòJã.Ãã?£)犗ê0E¿åÍU)-öfÿÚ_`wŸðòØ ŠŒ2öäÉ,´vÊ.°ñ° +GGp¨Ì_‡|ò5 |j¸5P´XÒ• Œ±$qyˆ‘b> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000543 00000 n +0000000757 00000 n +0000000484 00000 n +0000000331 00000 n +0000000015 00000 n +0000000312 00000 n +0000000591 00000 n +0000000691 00000 n +0000000632 00000 n +0000000661 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(žBL¤¶,â¿oge\\)(žBL¤¶,â¿oge\\)] +>> +startxref +914 +%%EOF diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.tex new file mode 100644 index 000000000..e1e258478 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classMergeRouteEval.tex @@ -0,0 +1,31 @@ +\hypertarget{classMergeRouteEval}{ +\section{Merge\-Route\-Eval Class Reference} +\label{classMergeRouteEval}\index{MergeRouteEval@{MergeRouteEval}} +} +Inheritance diagram for Merge\-Route\-Eval::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classMergeRouteEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classMergeRouteEval_29cb0028ac0df4b2cee3a809c8f35dea}{ +void \hyperlink{classMergeRouteEval_29cb0028ac0df4b2cee3a809c8f35dea}{operator()} (Route \&\_\-\_\-route, const int \&\_\-\_\-part\_\-fit)} +\label{classMergeRouteEval_29cb0028ac0df4b2cee3a809c8f35dea} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 31 of file merge\_\-route\_\-eval.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +merge\_\-route\_\-eval.h\item +merge\_\-route\_\-eval.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classOrderXover.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classOrderXover.tex new file mode 100644 index 000000000..6eeb6c3af --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classOrderXover.tex @@ -0,0 +1,38 @@ +\hypertarget{classOrderXover}{ +\section{Order\-Xover Class Reference} +\label{classOrderXover}\index{OrderXover@{OrderXover}} +} +Order Crossover. + + +{\tt \#include $<$order\_\-xover.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classOrderXover_0ff6aada669eb8173322ed68cda1ac61}{ +bool \hyperlink{classOrderXover_0ff6aada669eb8173322ed68cda1ac61}{operator()} (Route \&\_\-\_\-route1, Route \&\_\-\_\-route2)} +\label{classOrderXover_0ff6aada669eb8173322ed68cda1ac61} + +\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classOrderXover_d2bf90b5f46ac4a344777e17bc5f364d}{ +void \hyperlink{classOrderXover_d2bf90b5f46ac4a344777e17bc5f364d}{cross} (const Route \&\_\-\_\-par1, const Route \&\_\-\_\-par2, Route \&\_\-\_\-child)} +\label{classOrderXover_d2bf90b5f46ac4a344777e17bc5f364d} + +\end{CompactItemize} + + +\subsection{Detailed Description} +Order Crossover. + + + +Definition at line 32 of file order\_\-xover.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +order\_\-xover.h\item +order\_\-xover.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classPartRouteEval.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classPartRouteEval.tex new file mode 100644 index 000000000..661c46998 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classPartRouteEval.tex @@ -0,0 +1,48 @@ +\hypertarget{classPartRouteEval}{ +\section{Part\-Route\-Eval Class Reference} +\label{classPartRouteEval}\index{PartRouteEval@{PartRouteEval}} +} +Route Evaluator. + + +{\tt \#include $<$part\_\-route\_\-eval.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classPartRouteEval_a331566b29bc3227f377004232f05491}{ +\hyperlink{classPartRouteEval_a331566b29bc3227f377004232f05491}{Part\-Route\-Eval} (float \_\-\_\-from, float \_\-\_\-to)} +\label{classPartRouteEval_a331566b29bc3227f377004232f05491} + +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item +\hypertarget{classPartRouteEval_965fab875fb601f17934a6ece761beae}{ +void \hyperlink{classPartRouteEval_965fab875fb601f17934a6ece761beae}{operator()} (Route \&\_\-\_\-route)} +\label{classPartRouteEval_965fab875fb601f17934a6ece761beae} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classPartRouteEval_5bde722e66378b2570ae6c4b4f8df58e}{ +float \hyperlink{classPartRouteEval_5bde722e66378b2570ae6c4b4f8df58e}{from}} +\label{classPartRouteEval_5bde722e66378b2570ae6c4b4f8df58e} + +\item +\hypertarget{classPartRouteEval_de53cc919faa498663f327b72c357da3}{ +float \hyperlink{classPartRouteEval_de53cc919faa498663f327b72c357da3}{to}} +\label{classPartRouteEval_de53cc919faa498663f327b72c357da3} + +\end{CompactItemize} + + +\subsection{Detailed Description} +Route Evaluator. + + + +Definition at line 32 of file part\_\-route\_\-eval.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +part\_\-route\_\-eval.h\item +part\_\-route\_\-eval.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classPartialMappedXover.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classPartialMappedXover.tex new file mode 100644 index 000000000..18861607a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classPartialMappedXover.tex @@ -0,0 +1,38 @@ +\hypertarget{classPartialMappedXover}{ +\section{Partial\-Mapped\-Xover Class Reference} +\label{classPartialMappedXover}\index{PartialMappedXover@{PartialMappedXover}} +} +Partial Mapped Crossover. + + +{\tt \#include $<$partial\_\-mapped\_\-xover.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classPartialMappedXover_1cda6ea86ca36e5de0125f4ba5cfc695}{ +bool \hyperlink{classPartialMappedXover_1cda6ea86ca36e5de0125f4ba5cfc695}{operator()} (Route \&\_\-\_\-route1, Route \&\_\-\_\-route2)} +\label{classPartialMappedXover_1cda6ea86ca36e5de0125f4ba5cfc695} + +\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classPartialMappedXover_b6d4035544aff3b2b3fe4b0eeea185a2}{ +void \hyperlink{classPartialMappedXover_b6d4035544aff3b2b3fe4b0eeea185a2}{repair} (Route \&\_\-\_\-route, unsigned \_\-\_\-cut1, unsigned \_\-\_\-cut2)} +\label{classPartialMappedXover_b6d4035544aff3b2b3fe4b0eeea185a2} + +\end{CompactItemize} + + +\subsection{Detailed Description} +Partial Mapped Crossover. + + + +Definition at line 32 of file partial\_\-mapped\_\-xover.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +partial\_\-mapped\_\-xover.h\item +partial\_\-mapped\_\-xover.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classRouteEval.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classRouteEval.tex new file mode 100644 index 000000000..a1be8dfa6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classRouteEval.tex @@ -0,0 +1,25 @@ +\hypertarget{classRouteEval}{ +\section{Route\-Eval Class Reference} +\label{classRouteEval}\index{RouteEval@{RouteEval}} +} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classRouteEval_e10bbe6f792e6f44405953de4f703901}{ +void \hyperlink{classRouteEval_e10bbe6f792e6f44405953de4f703901}{operator()} (Route \&\_\-\_\-route)} +\label{classRouteEval_e10bbe6f792e6f44405953de4f703901} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 31 of file route\_\-eval.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +route\_\-eval.h\item +route\_\-eval.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classRouteInit.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classRouteInit.tex new file mode 100644 index 000000000..b65ad4bb8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classRouteInit.tex @@ -0,0 +1,25 @@ +\hypertarget{classRouteInit}{ +\section{Route\-Init Class Reference} +\label{classRouteInit}\index{RouteInit@{RouteInit}} +} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classRouteInit_b65a7137e114458faadb6a5510c001f7}{ +void \hyperlink{classRouteInit_b65a7137e114458faadb6a5510c001f7}{operator()} (Route \&\_\-\_\-route)} +\label{classRouteInit_b65a7137e114458faadb6a5510c001f7} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 31 of file route\_\-init.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +route\_\-init.h\item +route\_\-init.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.eps b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.eps new file mode 100644 index 000000000..bf59b5b63 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 341.88 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.4625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(TwoOpt) cw +(moMove< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (TwoOpt) 0 0 box + (moMove< EOT >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.pdf b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.pdf new file mode 100644 index 000000000..9c92f4ff7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.pdf @@ -0,0 +1,72 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ•OËJCA Ýç+ÎR»ˆ™ÌÄ…Pº*E?(mQ®U±¿ß¹½C¹âJ†’óÊ!l ãë}[éî9âðE‚U«É\èm[ñX)!(Ûh Êž&±qÅ{ØÀ69”J7å4l>¾oË- =‘7œc 85Í+*/2šÛÌMø¹£—ÿEªçœ’…:Çš§Ì:¬‡ŸÝ=–›‚‡k´@%æöÑ¿‰“IjW©ŸaµÞg¶Š÷ s¶èx·½Â}Ñ9˜ ›ÜêTYÜ|óËa¿h‡ž=R¯endstream +endobj +6 0 obj +211 +endobj +4 0 obj +<> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000527 00000 n +0000000741 00000 n +0000000468 00000 n +0000000315 00000 n +0000000015 00000 n +0000000296 00000 n +0000000575 00000 n +0000000675 00000 n +0000000616 00000 n +0000000645 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(Ì»‹]ö蓸þY¸©žý)(Ì»‹]ö蓸þY¸©žý)] +>> +startxref +898 +%%EOF diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.tex new file mode 100644 index 000000000..6d7c38ebd --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOpt.tex @@ -0,0 +1,31 @@ +\hypertarget{classTwoOpt}{ +\section{Two\-Opt Class Reference} +\label{classTwoOpt}\index{TwoOpt@{TwoOpt}} +} +Inheritance diagram for Two\-Opt::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classTwoOpt} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classTwoOpt_ff87d1649a33d42a6d64e8d314ed1af0}{ +void \hyperlink{classTwoOpt_ff87d1649a33d42a6d64e8d314ed1af0}{operator()} (Route \&\_\-\_\-route)} +\label{classTwoOpt_ff87d1649a33d42a6d64e8d314ed1af0} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 32 of file two\_\-opt.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +two\_\-opt.h\item +two\_\-opt.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.eps b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.eps new file mode 100644 index 000000000..bf3b9428f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 219.78 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.275 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(TwoOptIncrEval) cw +(moMoveIncrEval< TwoOpt >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (TwoOptIncrEval) 0 0 box + (moMoveIncrEval< TwoOpt >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.pdf b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.pdf new file mode 100644 index 000000000..74f8916c7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.pdf @@ -0,0 +1,73 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ•PÍJÄ0¾ÏSÌQ=Œ™i¦É€xñ ¢æ¤ì.JcÝUv_ߤ­ZÁ‹„0d¾_²CGŒ®žyvÎnßÁáu¹[ØœG—ñ*RÄ&’±¦ LbFæH¬E(81e8IÇáîíãæµÛ¯OýizU‚{h„¼˜á±ˆŸ¡ÊÕ9‡­¤q¿†Çf·$ìY«ó‡Ûá°þоÀ© +^~—(:±@òGödWû‰.°<=-ESì ó×bÆG[¶|Ωpqj}ùª6…!^™]nŠ6g¥é'ðZÎendstream +endobj +6 0 obj +224 +endobj +4 0 obj +<> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000540 00000 n +0000000754 00000 n +0000000481 00000 n +0000000328 00000 n +0000000015 00000 n +0000000309 00000 n +0000000588 00000 n +0000000688 00000 n +0000000629 00000 n +0000000658 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(%ÉÕž—‚ÔÓ7Å…Bˆ6ž)(%ÉÕž—‚ÔÓ7Å…Bˆ6ž)] +>> +startxref +911 +%%EOF diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.tex new file mode 100644 index 000000000..30831abde --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptIncrEval.tex @@ -0,0 +1,31 @@ +\hypertarget{classTwoOptIncrEval}{ +\section{Two\-Opt\-Incr\-Eval Class Reference} +\label{classTwoOptIncrEval}\index{TwoOptIncrEval@{TwoOptIncrEval}} +} +Inheritance diagram for Two\-Opt\-Incr\-Eval::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classTwoOptIncrEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classTwoOptIncrEval_48500077e651c4c6152daef8a396be39}{ +int \hyperlink{classTwoOptIncrEval_48500077e651c4c6152daef8a396be39}{operator()} (const \hyperlink{classTwoOpt}{Two\-Opt} \&\_\-\_\-move, const Route \&\_\-\_\-route)} +\label{classTwoOptIncrEval_48500077e651c4c6152daef8a396be39} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 30 of file two\_\-opt\_\-incr\_\-eval.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +two\_\-opt\_\-incr\_\-eval.h\item +two\_\-opt\_\-incr\_\-eval.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.eps b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.eps new file mode 100644 index 000000000..29f75025b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 264.901 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.8875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(TwoOptInit) cw +(moMoveInit< TwoOpt >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (TwoOptInit) 0 0 box + (moMoveInit< TwoOpt >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.pdf b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.pdf new file mode 100644 index 000000000..ff270a15a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.pdf @@ -0,0 +1,73 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ•PËN1 ¼û+æŒÇ&+¡â€?¨ÚªéR¨èïã% ´â„¢ÈŠgÆ3ñ +ÏTç•.ŸVï$¸µ»¢éS™W\#e„޽“eIM¬Ð Üù—Xœx”Jgå0<¼îï¶ëýyÙÐM¡Gò™;‘Œƒ ×4J£ˆ %Ç¢ÞôüOßžý8P³rpÍ·÷ÃÇbô½BË€ÙOÅØ"þunÂ¥sñ«í©³}/Æ> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000536 00000 n +0000000750 00000 n +0000000477 00000 n +0000000325 00000 n +0000000015 00000 n +0000000306 00000 n +0000000584 00000 n +0000000684 00000 n +0000000625 00000 n +0000000654 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(XG0\n¶EEÏàŸ1 )(XG0\n¶EEÏàŸ1 )] +>> +startxref +907 +%%EOF diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.tex new file mode 100644 index 000000000..2b66d1d45 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptInit.tex @@ -0,0 +1,31 @@ +\hypertarget{classTwoOptInit}{ +\section{Two\-Opt\-Init Class Reference} +\label{classTwoOptInit}\index{TwoOptInit@{TwoOptInit}} +} +Inheritance diagram for Two\-Opt\-Init::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classTwoOptInit} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classTwoOptInit_5bf6af064d37ebd955ffb5a623e78e1b}{ +void \hyperlink{classTwoOptInit_5bf6af064d37ebd955ffb5a623e78e1b}{operator()} (\hyperlink{classTwoOpt}{Two\-Opt} \&\_\-\_\-move, const Route \&\_\-\_\-route)} +\label{classTwoOptInit_5bf6af064d37ebd955ffb5a623e78e1b} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 32 of file two\_\-opt\_\-init.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +two\_\-opt\_\-init.h\item +two\_\-opt\_\-init.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.eps b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.eps new file mode 100644 index 000000000..f9ec94747 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 250 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(TwoOptNext) cw +(moNextMove< TwoOpt >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (TwoOptNext) 0 0 box + (moNextMove< TwoOpt >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.pdf b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.pdf new file mode 100644 index 000000000..f2fcd289b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.pdf @@ -0,0 +1,73 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ•OÍJ1¾ÏSÌQ=Œ™L&?P<âIEÍ”mQÖjq}|g»[mÁ‹„0d¾ßlÑ£Ï<— .Ÿ®?Àá­Ý5l÷œÇ²áu5RÆÈ©f¬+˜ÄŒ,BI z¥X²A ÎêÐ?¼íÝy}…› + ‘ ã`Â¥êœÃ$|ôøÞÁó?s3‰Æˆœ<©ò>·õcæ]ÿÙ-pê€W? Lb&õ$Ìðz„µéÉì˜¤àÆ˜'‹>ûþâóbÄUÉYKñL1ÅûL‘“M)TÊ‘ÍêÂú~1TY endstream +endobj +6 0 obj +221 +endobj +4 0 obj +<> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000534 00000 n +0000000748 00000 n +0000000475 00000 n +0000000325 00000 n +0000000015 00000 n +0000000306 00000 n +0000000582 00000 n +0000000682 00000 n +0000000623 00000 n +0000000652 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(}¬¹]ê!*0¹Pß\\X)(}¬¹]ê!*0¹Pß\\X)] +>> +startxref +905 +%%EOF diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.tex new file mode 100644 index 000000000..b4d6c3c98 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptNext.tex @@ -0,0 +1,31 @@ +\hypertarget{classTwoOptNext}{ +\section{Two\-Opt\-Next Class Reference} +\label{classTwoOptNext}\index{TwoOptNext@{TwoOptNext}} +} +Inheritance diagram for Two\-Opt\-Next::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classTwoOptNext} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classTwoOptNext_baf229b2e056f39ab971cf2ac66a833e}{ +bool \hyperlink{classTwoOptNext_baf229b2e056f39ab971cf2ac66a833e}{operator()} (\hyperlink{classTwoOpt}{Two\-Opt} \&\_\-\_\-move, const Route \&\_\-\_\-route)} +\label{classTwoOptNext_baf229b2e056f39ab971cf2ac66a833e} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 31 of file two\_\-opt\_\-next.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +two\_\-opt\_\-next.h\item +two\_\-opt\_\-next.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptRand.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptRand.tex new file mode 100644 index 000000000..ef8ba688e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/classTwoOptRand.tex @@ -0,0 +1,25 @@ +\hypertarget{classTwoOptRand}{ +\section{Two\-Opt\-Rand Class Reference} +\label{classTwoOptRand}\index{TwoOptRand@{TwoOptRand}} +} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classTwoOptRand_e2f362f359517c027f6f22fba0aab375}{ +void \hyperlink{classTwoOptRand_e2f362f359517c027f6f22fba0aab375}{operator()} (\hyperlink{classTwoOpt}{Two\-Opt} \&\_\-\_\-move, const Route \&\_\-\_\-route)} +\label{classTwoOptRand_e2f362f359517c027f6f22fba0aab375} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 31 of file two\_\-opt\_\-rand.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +two\_\-opt\_\-rand.h\item +two\_\-opt\_\-rand.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/doxygen.sty b/trunk/paradiseo-peo/docs/html/lsnshared/latex/doxygen.sty new file mode 100644 index 000000000..ed1af0667 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/doxygen.sty @@ -0,0 +1,78 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} +\RequirePackage{calc} +\RequirePackage{array} +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Sun Jan 7 18:35:28 2007 for Paradis\-EO-PEO - Lessons by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Sun Jan 7 18:35:28 2007 for Paradis\-EO-PEO - Lessons by Doxygen }} +\cfoot{} +\newenvironment{Code} +{\footnotesize} +{\normalsize} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DocInclude} +{\footnotesize} +{\normalsize} +\newenvironment{VerbInclude} +{\footnotesize} +{\normalsize} +\newenvironment{Image} +{\begin{figure}[H]} +{\end{figure}} +\newenvironment{ImageNoCaption}{}{} +\newenvironment{CompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{CompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{tabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{tabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{1} +\sloppy +\usepackage[T1]{fontenc} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/hierarchy.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/hierarchy.tex new file mode 100644 index 000000000..8d0211ad2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/hierarchy.tex @@ -0,0 +1,27 @@ +\section{Paradis\-EO-PEO - Lessons Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList} +\item \contentsline{section}{City\-Swap}{\pageref{classCitySwap}}{} +\item \contentsline{section}{Display\-Best\-Route}{\pageref{classDisplayBestRoute}}{} +\item \contentsline{section}{Edge\-Xover}{\pageref{classEdgeXover}}{} +\item mo\-Move$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Two\-Opt}{\pageref{classTwoOpt}}{} +\end{CompactList} +\item mo\-Move\-Incr\-Eval$<$ Two\-Opt $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Two\-Opt\-Incr\-Eval}{\pageref{classTwoOptIncrEval}}{} +\end{CompactList} +\item mo\-Move\-Init$<$ Two\-Opt $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Two\-Opt\-Init}{\pageref{classTwoOptInit}}{} +\end{CompactList} +\item mo\-Next\-Move$<$ Two\-Opt $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Two\-Opt\-Next}{\pageref{classTwoOptNext}}{} +\end{CompactList} +\item \contentsline{section}{Order\-Xover}{\pageref{classOrderXover}}{} +\item \contentsline{section}{Partial\-Mapped\-Xover}{\pageref{classPartialMappedXover}}{} +\item \contentsline{section}{Part\-Route\-Eval}{\pageref{classPartRouteEval}}{} +\item peo\-Agg\-Eval\-Func$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Merge\-Route\-Eval}{\pageref{classMergeRouteEval}}{} +\end{CompactList} +\item \contentsline{section}{Route\-Eval}{\pageref{classRouteEval}}{} +\item \contentsline{section}{Route\-Init}{\pageref{classRouteInit}}{} +\item \contentsline{section}{Two\-Opt\-Rand}{\pageref{classTwoOptRand}}{} +\end{CompactList} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/latex/refman.tex b/trunk/paradiseo-peo/docs/html/lsnshared/latex/refman.tex new file mode 100644 index 000000000..2552927d1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/latex/refman.tex @@ -0,0 +1,66 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{times} +\usepackage{ifpdf} +\ifpdf +\usepackage[pdftex, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\else +\usepackage[ps2pdf, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\usepackage{pspicture} +\fi +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large Paradis\-EO-PEO - Lessons Reference Manual\\[1ex]\large 0.1 }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.4.7}\\ +\vspace*{0.5cm} +{\small Sun Jan 7 18:35:28 2007}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\chapter{Paradis\-EO-PEO - Lessons Hierarchical Index} +\input{hierarchy} +\chapter{Paradis\-EO-PEO - Lessons Class Index} +\input{annotated} +\chapter{Paradis\-EO-PEO - Lessons Class Documentation} +\input{classCitySwap} +\include{classDisplayBestRoute} +\include{classEdgeXover} +\include{classMergeRouteEval} +\include{classOrderXover} +\include{classPartialMappedXover} +\include{classPartRouteEval} +\include{classRouteEval} +\include{classRouteInit} +\include{classTwoOpt} +\include{classTwoOptIncrEval} +\include{classTwoOptInit} +\include{classTwoOptNext} +\include{classTwoOptRand} +\printindex +\end{document} diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/CitySwap.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/CitySwap.3 new file mode 100644 index 000000000..32bd55ddf --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/CitySwap.3 @@ -0,0 +1,28 @@ +.TH "CitySwap" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +CitySwap \- Its swaps two vertices randomly choosen. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "bool \fBoperator()\fP (Route &__route)" +.br +.in -1c +.SH "Detailed Description" +.PP +Its swaps two vertices randomly choosen. +.PP +Definition at line 33 of file city_swap.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/DisplayBestRoute.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/DisplayBestRoute.3 new file mode 100644 index 000000000..735464cbf --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/DisplayBestRoute.3 @@ -0,0 +1,32 @@ +.TH "DisplayBestRoute" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +DisplayBestRoute \- +.SH SYNOPSIS +.br +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBDisplayBestRoute\fP (eoPop< Route > &__pop)" +.br +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "eoPop< Route > & \fBpop\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 33 of file display_best_route.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/EdgeXover.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/EdgeXover.3 new file mode 100644 index 000000000..b2009a907 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/EdgeXover.3 @@ -0,0 +1,54 @@ +.TH "EdgeXover" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +EdgeXover \- Edge Crossover. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "bool \fBoperator()\fP (Route &__route1, Route &__route2)" +.br +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBcross\fP (const Route &__par1, const Route &__par2, Route &__child)" +.br +.ti -1c +.RI "void \fBremove_entry\fP (unsigned __vertex, std::vector< std::set< unsigned > > &__map)" +.br +.ti -1c +.RI "void \fBbuild_map\fP (const Route &__par1, const Route &__par2)" +.br +.ti -1c +.RI "void \fBadd_vertex\fP (unsigned __vertex, Route &__child)" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "std::vector< std::set< unsigned > > \fB_map\fP" +.br +.ti -1c +.RI "std::vector< bool > \fBvisited\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Edge Crossover. +.PP +Definition at line 35 of file edge_xover.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/MergeRouteEval.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/MergeRouteEval.3 new file mode 100644 index 000000000..47128bcc5 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/MergeRouteEval.3 @@ -0,0 +1,24 @@ +.TH "MergeRouteEval" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +MergeRouteEval \- +.SH SYNOPSIS +.br +.PP +Inherits \fBpeoAggEvalFunc< EOT >< eoVector< int, Node > >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (Route &__route, const int &__part_fit)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file merge_route_eval.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/OrderXover.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/OrderXover.3 new file mode 100644 index 000000000..316085e29 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/OrderXover.3 @@ -0,0 +1,35 @@ +.TH "OrderXover" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +OrderXover \- Order Crossover. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "bool \fBoperator()\fP (Route &__route1, Route &__route2)" +.br +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBcross\fP (const Route &__par1, const Route &__par2, Route &__child)" +.br +.in -1c +.SH "Detailed Description" +.PP +Order Crossover. +.PP +Definition at line 32 of file order_xover.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/PartRouteEval.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/PartRouteEval.3 new file mode 100644 index 000000000..3e2ed9ec9 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/PartRouteEval.3 @@ -0,0 +1,42 @@ +.TH "PartRouteEval" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +PartRouteEval \- Route Evaluator. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBPartRouteEval\fP (float __from, float __to)" +.br +.RI "\fIConstructor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (Route &__route)" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "float \fBfrom\fP" +.br +.ti -1c +.RI "float \fBto\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Route Evaluator. +.PP +Definition at line 32 of file part_route_eval.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/PartialMappedXover.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/PartialMappedXover.3 new file mode 100644 index 000000000..2314de1d9 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/PartialMappedXover.3 @@ -0,0 +1,35 @@ +.TH "PartialMappedXover" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +PartialMappedXover \- Partial Mapped Crossover. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "bool \fBoperator()\fP (Route &__route1, Route &__route2)" +.br +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBrepair\fP (Route &__route, unsigned __cut1, unsigned __cut2)" +.br +.in -1c +.SH "Detailed Description" +.PP +Partial Mapped Crossover. +.PP +Definition at line 32 of file partial_mapped_xover.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/RouteEval.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/RouteEval.3 new file mode 100644 index 000000000..7453ebe0e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/RouteEval.3 @@ -0,0 +1,22 @@ +.TH "RouteEval" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +RouteEval \- +.SH SYNOPSIS +.br +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (Route &__route)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file route_eval.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/RouteInit.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/RouteInit.3 new file mode 100644 index 000000000..a5849636e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/RouteInit.3 @@ -0,0 +1,22 @@ +.TH "RouteInit" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +RouteInit \- +.SH SYNOPSIS +.br +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (Route &__route)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file route_init.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOpt.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOpt.3 new file mode 100644 index 000000000..9a4fc7e3d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOpt.3 @@ -0,0 +1,24 @@ +.TH "TwoOpt" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +TwoOpt \- +.SH SYNOPSIS +.br +.PP +Inherits \fBmoMove< EOT >< eoVector< int, Node > >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (Route &__route)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 32 of file two_opt.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptIncrEval.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptIncrEval.3 new file mode 100644 index 000000000..caf9555b0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptIncrEval.3 @@ -0,0 +1,24 @@ +.TH "TwoOptIncrEval" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +TwoOptIncrEval \- +.SH SYNOPSIS +.br +.PP +Inherits \fBmoMoveIncrEval< TwoOpt >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "int \fBoperator()\fP (const \fBTwoOpt\fP &__move, const Route &__route)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 30 of file two_opt_incr_eval.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptInit.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptInit.3 new file mode 100644 index 000000000..b4cde8fb6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptInit.3 @@ -0,0 +1,24 @@ +.TH "TwoOptInit" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +TwoOptInit \- +.SH SYNOPSIS +.br +.PP +Inherits \fBmoMoveInit< TwoOpt >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBTwoOpt\fP &__move, const Route &__route)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 32 of file two_opt_init.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptNext.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptNext.3 new file mode 100644 index 000000000..3ce9557b4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptNext.3 @@ -0,0 +1,24 @@ +.TH "TwoOptNext" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +TwoOptNext \- +.SH SYNOPSIS +.br +.PP +Inherits \fBmoNextMove< TwoOpt >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "bool \fBoperator()\fP (\fBTwoOpt\fP &__move, const Route &__route)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file two_opt_next.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptRand.3 b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptRand.3 new file mode 100644 index 000000000..0a7b4881b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/lsnshared/man/man3/TwoOptRand.3 @@ -0,0 +1,22 @@ +.TH "TwoOptRand" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO - Lessons" \" -*- nroff -*- +.ad l +.nh +.SH NAME +TwoOptRand \- +.SH SYNOPSIS +.br +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBTwoOpt\fP &__move, const Route &__route)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file two_opt_rand.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO - Lessons from the source code. diff --git a/trunk/paradiseo-peo/docs/html/main.html b/trunk/paradiseo-peo/docs/html/main.html new file mode 100644 index 000000000..dad92ea47 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/main.html @@ -0,0 +1,106 @@ + + +ParadisEO-PEO: The ParadisEO-PEO Framework + + + + +
    +
    +

    The ParadisEO-PEO Framework

    +

    +

    0.1

    +intro

    +ParadisEO is a white-box object-oriented framework dedicated to the reusable design of parallel and distributed metaheuristics (PDM). ParadisEO provides a broad range of features including evolutionary algorithms (EA), local searches (LS), the most common parallel and distributed models and hybridization mechanisms, etc. This high content and utility encourages its use at European level. ParadisEO is based on a clear conceptual separation of the solution methods from the problems they are intended to solve. This separation confers to the user a maximum code and design reuse. Furthermore, the fine-grained nature of the classes provided by the framework allow a higher flexibility compared to other frameworks. ParadisEO is one of the rare frameworks that provide the most common parallel and distributed models. Their implementation is portable on distributed-memory machines as well as on shared-memory multiprocessors, as it uses standard libraries such as MPI, PVM and PThreads. The models can be exploited in a transparent way, one has just to instantiate their associated provided classes. Their experimentation on the radio network design real-world application demonstrate their efficiency.

    +In practice, combinatorial optimization problems are often NP-hard, CPU time-consuming, and evolve over time. Unlike exact methods, metaheuristics allow to tackle large-size problems instances by delivering satisfactory solutions in a reasonable time. Metaheuristics are general-purpose heuristics that split in two categories: evolutionary algorithms (EA) and local search methods (LS). These two families have complementary characteristics: EA allow a better exploration of the search space, while LS have the power to intensify the search in promising regions. Their hybridization allows to deliver robust and better solutions

    +Although serial metaheuristics have a polynomial temporal complexity, they remain unsatisfactory for industrial problems. Parallel and distributed computing is a powerful way to deal with the performance issue of these problems. Numerous parallel and distributed metaheuristics (PDM) and their implementations have been proposed, and are available on theWeb. They can be reused and adapted to his/her own problems. However, the user has to deeply examine the code and rewrite its problem-specific sections. The task is tedious, errorprone, takes along time and makes harder the produced code maintenance. A better way to reuse the code of existing PDM is the reuse through libraries. These are often more reliable as they are more tested and documented. They allow a better maintainability and efficiency. However, libraries do not allow the reuse of design.

    +Parallel and distributed metaheuristics

    +

    +Parallel distributed evolutionary algorithms

    +Evolutionary Algorithms (EA) are based on the iterative improvement of a population of solutions. At each step, individuals are selected, paired and recombined in order to generate new solutions that replace other ones, and so on. As the algorithm converges, the population is mainly composed of individuals well adapted to the "environment", for instance the problem. The main features that characterize EA are the way the population is initialized, the selection strategy (deterministic/stochastic) by fostering "good" solutions, the replacement strategy that discards individuals, and the continuation/stopping criterion to decide whether the evolution should go on or not.

    +Basically, three major parallel and distributed models for EA can been distinguished: the island (a)synchronous cooperative model, the parallel evaluation of the population, and the distributed evaluation of a single solution.

      +
    • +Island (a)synchronous cooperative model. Different EA are simultaneously deployed to cooperate for computing better and robust solutions. They exchange in an asynchronous way genetic stuff to diversify the search. The objective is to allow to delay the global convergence, especially when theEAare heterogeneous regarding the variation operators. The migration of individuals follows a policy defined by few parameters: the migration decision criterion, the exchange topology, the number of emigrants, the emigrants selection policy, and the replacement/integration policy.

      +

    • +
    • +Parallel evaluation of the population. It is required as it is in general the most timeconsuming. The parallel evaluation follows the centralized model. The farmer applies the following operations: selection, transformation and replacement as they require a global management of the population. At each generation, it distributes the set of new solutions between differentworkers. These evaluate and return back the solutions and their quality values. An efficient execution is often obtained particularly when the evaluation of each solution is costly. The two main advantages of an asynchronous model over the synchronous model are: (1) the fault tolerance of the asynchronous model; (2) the robustness in case the fitness computation can take very different computation times (e.g. for nonlinear numerical optimization). Whereas some time-out detection can be used to address the former issue, the latter one can be partially overcome if the grain is set to very small values, as individuals will be sent out for evaluations upon request of the workers.

      +

    • +
    • +Distributed evaluation of a single solution. The quality of each solution is evaluated in a parallel centralized way. That model is particularly interesting when the evaluation function can be itself parallelized as it is CPU time-consuming and/or IO intensive. In that case, the function can be viewed as an aggregation of a certain number of partial functions. The partial functions could also be identical if for example the problem to deal with is a data mining one. The evaluation is thus data parallel and the accesses to data base are performed in parallel. Furthermore, a reduction operation is performed on the results returned by the partial functions. As a summary, for this model the user has to indicate a set of partial functions and an aggregation operator of these.
    • +
    +

    +Parallel distributed local searches

    +

    +Local searches

    +All metaheuristics dedicated to the improvement of a single solution are based on the concept of neighborhood. They start from a solution randomly generated or obtained from another optimization algorithm, and update it, step by step, by replacing the current solution by one of its neighboring candidates. Some criterion have been identified to differentiate such searches: the heuristic internal memory, the choice of the initial solution, the candidate solutions generator, and the selection strategy of candidate moves. Three main algorithms of local search stand out: Hill Climbing (HC), Simulated Annealing (SA) and Tabu Search (TS).

    +Parallel local searches

    +Two parallel distributed models are commonly used in the literature: the parallel distributed exploration of neighboring candidate solutions model, and the multi-start model.
      +
    • +Parallel exploration of neighboring candidates. It is a low-level Farmer-Worker model that does not alter the behavior of the heuristic. A sequential search computes the same results slower.At the beginning of each iteration, the farmer duplicates the current solution between distributed nodes. Each one manages some candidates and the results are returned to the farmer. The model is efficient if the evaluation of a each solution is time-consuming and/or there are a great deal of candidate neighbors to evaluate. This is obviously not applicable to SA since only one candidate is evaluated at each iteration. Likewise, the efficiency of the model for HC is not always guaranteed as the number of neighboring solutions to process before finding one that improves the current objective function may be highly variable.

      +

    • +
    • +Multi-start model. It consists in simultaneously launching several local searches. They may be heterogeneous, but no information is exchanged between them. The resultswould be identical as if the algorithms were sequentially run.Very often deterministic algorithms differ by the supplied initial solution and/or some other parameters. This trivial model is convenient for low-speed networks of workstations.
    • +
    +

    +Hybridization

    +Recently, hybrid metaheuristics have gained a considerable interest. For many practical or academic optimization problems, the best found solutions are obtained by hybrid algorithms. Combinations of different metaheuristics have provided very powerful search methods. Two levels and two modes of hybridization have been distinguished: Low and High levels, and Relay and Cooperative modes. The low-level hybridization addresses the functional composition of a single optimization method. A function of a given metaheuristic is replaced by another metaheuristic. On the contrary, for high-level hybrid algorithms the different metaheuristics are self-containing, meaning no direct relationship to their internal working is considered. On the other hand, relay hybridization means a set of metaheuristics is applied in a pipeline way. The output of a metaheuristic (except the last) is the input of the following one (except the first). Conversely, co-evolutionist hybridization is a cooperative optimization model. Each metaheuristic performs a search in a solution space, and exchange solutions with others.

    +Paradiseo goals and architecture

    +The "EO" part of ParadisEO means Evolving Objects. EO is a C++ LGPL open source framework and includes a paradigm-free Evolutionary Computation library (EOlib) dedicated to the flexible design of EA through evolving objects superseding the most common dialects (Genetic Algorithms, Evolution Strategies, Evolutionary Programming and Genetic Programming). Furthermore, EO integrates several services including visualization facilities, on-line definition of parameters, application check-pointing, etc. ParadisEO is an extended version of the EO framework. The extensions include local search methods, hybridization mechanisms, parallelism and distribution mechanisms, and other features that are not addressed in this paper such as multi-objective optimization and grid computing. In the next sections, we present the motivations and goals of ParadisEO, its architecture and some of its main implementation details and issues.

    +Motivations and goals

    +A framework is normally intended to be exploited by as many users as possible. Therefore, its exploitation could be successful only if some important user criteria are satisfied. The following criteria are the major of them and constitute the main objectives of the ParadisEO framework:

    +

      +
    • +Maximum design and code reuse. The framework must provide for the user a whole architecture design of his/her solution method. Moreover, the programmer may redo as little code as possible. This objective requires a clear and maximal conceptual separation between the solution methods and the problems to be solved, and thus a deep domain analysis. The user might therefore develop only the minimal problem-specific code.

      +

    • +
    • +Flexibility and adaptability. It must be possible for the user to easily add new features/ metaheuristics or change existing ones without implicating other components. Furthermore, as in practice existing problems evolve and new others arise these have to be tackled by specializing/adapting the framework components.

      +

    • +
    • +Utility. The framework must allow the user to cover a broad range of metaheuristics, problems, parallel distributed models, hybridization mechanisms, etc.

      +

    • +
    • +Transparent and easy access to performance and robustness. As the optimization applications are often time-consuming the performance issue is crucial. Parallelism and distribution are two important ways to achieve high performance execution. In order to facilitate its use it is implemented so that the user can deploy his/her parallel algorithms in a transparent manner. Moreover, the execution of the algorithms must be robust to guarantee the reliability and the quality of the results. The hybridization mechanism allows to obtain robust and better solutions.

      +

    • +
    • +Portability. In order to satisfy a large number of users the framework must support different material architectures and their associated operating systems.
    • +
    +

    +ParadisEO architecture

    +The architecture of ParadisEO is multi-layer and modular allowing to achieve the objectives quoted above. This allows particularly a high flexibility and adaptability, an easier hybridization, and more code and design reuse. The architecture has three layers identifying three major categories of classes: Solvers, Runners and Helpers.
      +
    • +Helpers. Helpers are low-level classes that perform specific actions related to the evolution or search process. They are split in two categories: Evolutionary helpers (EH) and Local search helpers (LSH). EH include mainly the transformation, selection and replacement operations, the evaluation function and the stopping criterion. LSH can be generic such as the neighborhood explorer class, or specific to the local search metaheuristic like the tabu list manager class in the Tabu Search solution method. On the other hand, there are some special helpers dedicated to the management of parallel and distributed models 2 and 3, such as the communicators that embody the communication services.

      +Helpers cooperate between them and interact with the components of the upper layer i.e. the runners. The runners invoke the helpers through function parameters. Indeed, helpers have not their own data, but they work on the internal data of the runners.

      +

    • +
    • +Runners. The Runners layer contains a set of classes that implement the metaheuristics themselves. They perform the run of the metaheuristics from the initial state or population to the final one. One can distinguish the Evolutionary runners (ER) such as genetic algorithms, evolution strategies, etc., and Local search runners (LSR) like tabu search, simulated annealing and hill climbing. Runners invoke the helpers to perform specific actions on their data. For instance, an ER may ask the fitness function evaluation helper to evaluate its population. An LSR asks the movement helper to perform a given movement on the current state. Furthermore, runners can be serial or parallel distributed.

      +

    • +
    • +Solvers. Solvers are devoted to control the evolution process and/or the search. They generate the initial state (solution or population) and define the strategy for combining and sequencing different metaheuristics. Two types of solvers can be distinguished. Single metaheuristic solvers (SMS) and Multiple metaheuristics solvers (MMS). SMSs are dedicated to the execution of only one metaheuristic.MMS are more complex as they control and sequence several metaheuristics that can be heterogeneous. Solvers interact with the user by getting the input data and delivering the output (best solution, statistics, etc).
    • +
    +

    +According to the generality of their embedded features, the classes of the architecture split in two major categories: Provided classes and Required classes. Provided classes embody the factored out part of the metaheuristics. They are generic, implemented in the framework, and ensure the control at run time. Required classes are those that must be supplied by the user. They encapsulate the problem-specific aspects of the application. These classes are fixed but not implemented in ParadisEO. The programmer has the burden to develop them using the OO specialization mechanism.

    +ParadisEO-PEO Tutorials

    +The basisc of the ParadisEO framework philosophy are exposed in a few simple tutorials: +All the presented examples have as case study the traveling salesman problem (TSP). Different operators and auxiliary objects were designed, standing as a common shared source code base. While not being part of the ParadisEO-PEO framework, it may represent a startpoint for a better understanding of the presented tutorials.
    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/mess_8cpp-source.html b/trunk/paradiseo-peo/docs/html/mess_8cpp-source.html new file mode 100644 index 000000000..2c0691710 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/mess_8cpp-source.html @@ -0,0 +1,281 @@ + + +ParadisEO-PEO: mess.cpp Source File + + + + +
    +
    +

    mess.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "mess.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <mpi.h>
    +00025 #include <vector>
    +00026 
    +00027 #include "mess.h"
    +00028 #include "../../core/peo_debug.h"
    +00029 #include "node.h"
    +00030 
    +00031 #define MPI_BUF_SIZE 1024*64
    +00032         
    +00033 static char mpi_buf [MPI_BUF_SIZE];
    +00034         
    +00035 static int pos_buf ;
    +00036 
    +00037 static std :: vector <char *> act_buf; /* Active buffers */
    +00038 
    +00039 static std :: vector <MPI_Request *> act_req; /* Active requests */
    +00040 
    +00041 void cleanBuffers () {
    +00042 
    +00043   for (unsigned i = 0; i < act_req.size ();) {
    +00044        
    +00045     MPI_Status stat ;
    +00046     int flag ;
    +00047     MPI_Test (act_req [i], & flag, & stat) ;
    +00048     if (flag) {
    +00049       
    +00050       delete act_buf [i] ;
    +00051       delete act_req [i] ;
    +00052         
    +00053       act_buf [i] = act_buf.back () ;
    +00054       act_buf.pop_back () ;
    +00055       
    +00056       act_req [i] = act_req.back () ;
    +00057       act_req.pop_back () ;
    +00058     }
    +00059     else
    +00060       i ++;
    +00061   } 
    +00062 }
    +00063 
    +00064 void waitBuffers () {
    +00065 
    +00066   printDebugMessage ("waiting the termination of the asynchronous operations to complete");
    +00067 
    +00068   for (unsigned i = 0; i < act_req.size (); i ++) {
    +00069        
    +00070     MPI_Status stat ;
    +00071 
    +00072     MPI_Wait (act_req [i], & stat) ;
    +00073       
    +00074     delete act_buf [i] ;
    +00075     delete act_req [i] ;
    +00076   } 
    +00077 }
    +00078 
    +00079 bool probeMessage (int & __src, int & __tag) {
    +00080 
    +00081   int flag;
    +00082 
    +00083   MPI_Status stat;
    +00084 
    +00085   MPI_Iprobe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & flag, & stat);
    +00086 
    +00087   __src = stat.MPI_SOURCE;
    +00088   __tag = stat.MPI_TAG;
    +00089 
    +00090   return flag;
    +00091 }
    +00092 
    +00093 void waitMessage () {
    +00094 
    +00095   MPI_Status stat;  
    +00096 
    +00097   MPI_Probe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & stat);
    +00098 }
    +00099 
    +00100 void initMessage () {
    +00101   
    +00102   pos_buf = 0;
    +00103 }
    +00104 
    +00105 void sendMessage (int __to, int __tag) {
    +00106 
    +00107   cleanBuffers ();  
    +00108   act_buf.push_back (new char [pos_buf]);
    +00109   act_req.push_back (new MPI_Request);  
    +00110   memcpy (act_buf.back (), mpi_buf, pos_buf);  
    +00111   MPI_Isend (act_buf.back (), pos_buf, MPI_PACKED, __to, __tag, MPI_COMM_WORLD, act_req.back ()); 
    +00112 }
    +00113 
    +00114 void sendMessageToAll (int __tag) {
    +00115 
    +00116   for (int i = 0; i < getNumberOfNodes (); i ++)
    +00117     sendMessage (i, __tag);
    +00118 }
    +00119 
    +00120 void receiveMessage (int __from, int __tag) {
    +00121   
    +00122   MPI_Status stat;  
    +00123   MPI_Request req;
    +00124 
    +00125   MPI_Irecv (mpi_buf, MPI_BUF_SIZE, MPI_PACKED, __from, __tag, MPI_COMM_WORLD, & req) ;
    +00126   MPI_Wait (& req, & stat) ;
    +00127 }
    +00128 
    +00129 /* Char */
    +00130 void pack (const char & __c) {
    +00131 
    +00132   MPI_Pack ((void *) & __c, 1, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00133 }
    +00134 
    +00135 /* Float */
    +00136 void pack (const float & __f, int __nitem) {
    +00137 
    +00138   MPI_Pack ((void *) & __f, __nitem, MPI_FLOAT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00139 }
    +00140 
    +00141 /* Double */
    +00142 void pack (const double & __d, int __nitem) {
    +00143 
    +00144   MPI_Pack ((void *) & __d, __nitem, MPI_DOUBLE, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00145 }
    +00146 
    +00147 /* Integer */
    +00148 void pack (const int & __i, int __nitem) {
    +00149 
    +00150   MPI_Pack ((void *) & __i, __nitem, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00151 }
    +00152 
    +00153 /* Unsigned int. */
    +00154 void pack (const unsigned int & __ui, int __nitem) {
    +00155 
    +00156   MPI_Pack ((void *) & __ui, __nitem, MPI_UNSIGNED, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00157 }
    +00158 
    +00159 /* Short int. */
    +00160 void pack (const short & __sh, int __nitem) {
    +00161 
    +00162   MPI_Pack ((void *) & __sh, __nitem, MPI_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00163 }
    +00164 
    +00165 /* Unsigned short */
    +00166 void pack (const unsigned short & __ush, int __nitem) {
    +00167 
    +00168   MPI_Pack ((void *) & __ush, __nitem, MPI_UNSIGNED_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00169 }
    +00170 
    +00171 /* Long */
    +00172 void pack (const long & __l, int __nitem) {
    +00173 
    +00174   MPI_Pack ((void *) & __l, __nitem, MPI_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00175 }
    +00176 
    +00177 /* Unsigned long */
    +00178 void pack (const unsigned long & __ul, int __nitem) {
    +00179 
    +00180   MPI_Pack ((void *) & __ul, __nitem, MPI_UNSIGNED_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00181 }
    +00182 
    +00183 /* String */
    +00184 void pack (const char * __str) {
    +00185   
    +00186   int len = strlen (__str) + 1;
    +00187   MPI_Pack (& len, 1, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00188   MPI_Pack ((void *) __str, len, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
    +00189 }
    +00190 
    +00191 /* Char */
    +00192 void unpack (char & __c) {
    +00193 
    +00194   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __c, 1, MPI_CHAR, MPI_COMM_WORLD);
    +00195 }
    +00196 
    +00197 /* Float */
    +00198 void unpack (float & __f, int __nitem) {
    +00199 
    +00200   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __f, __nitem, MPI_FLOAT, MPI_COMM_WORLD);
    +00201 }
    +00202 
    +00203 /* Double */
    +00204 void unpack (double & __d, int __nitem) {
    +00205 
    +00206   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __d, __nitem, MPI_DOUBLE, MPI_COMM_WORLD);
    +00207 }
    +00208 
    +00209 /* Integer */
    +00210 void unpack (int & __i, int __nitem) {
    +00211 
    +00212   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __i, __nitem, MPI_INT, MPI_COMM_WORLD);
    +00213 }
    +00214 
    +00215 /* Unsigned int. */
    +00216 void unpack (unsigned int & __ui, int __nitem) {
    +00217 
    +00218   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ui, __nitem, MPI_UNSIGNED, MPI_COMM_WORLD);
    +00219 }
    +00220 
    +00221 /* Short int. */
    +00222 void unpack (short & __sh, int __nitem) {
    +00223 
    +00224   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __sh, __nitem, MPI_SHORT, MPI_COMM_WORLD);
    +00225 }
    +00226 
    +00227 /* Unsigned short */
    +00228 void unpack (unsigned short & __ush, int __nitem) {
    +00229 
    +00230   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ush, __nitem, MPI_UNSIGNED_SHORT, MPI_COMM_WORLD);
    +00231 }
    +00232 
    +00233 /* Long */
    +00234 void unpack (long & __l, int __nitem) {
    +00235 
    +00236   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __l, __nitem, MPI_LONG, MPI_COMM_WORLD);
    +00237 }
    +00238 
    +00239 /* Unsigned long */
    +00240 void unpack (unsigned long & __ul, int __nitem) {
    +00241 
    +00242   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ul, __nitem, MPI_UNSIGNED_LONG, MPI_COMM_WORLD);
    +00243 }
    +00244 
    +00245 /* String */
    +00246 void unpack (char * __str) {
    +00247 
    +00248   int len;
    +00249   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & len, 1, MPI_INT, MPI_COMM_WORLD);
    +00250   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, __str, len, MPI_CHAR, MPI_COMM_WORLD);    
    +00251 }
    +00252 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/mess_8h-source.html b/trunk/paradiseo-peo/docs/html/mess_8h-source.html new file mode 100644 index 000000000..d80364570 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/mess_8h-source.html @@ -0,0 +1,75 @@ + + +ParadisEO-PEO: mess.h Source File + + + + +
    +
    +

    mess.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "mess.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __mess_rmc_h
    +00025 #define __mess_rmc_h
    +00026 
    +00027 #include "../../core/messaging.h"
    +00028 
    +00029 extern void initMessage ();
    +00030 
    +00031 extern void sendMessage (int __to, int __tag);
    +00032 
    +00033 extern void sendMessageToAll (int __tag);
    +00034 
    +00035 extern void receiveMessage (int __from, int __tag);
    +00036 
    +00037 extern void cleanBuffers ();
    +00038 
    +00039 extern void waitBuffers ();
    +00040 
    +00041 extern bool probeMessage (int & __src, int & __tag);
    +00042 
    +00043 extern void waitMessage ();
    +00044 
    +00045 #endif
    +00046 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/messaging_8h-source.html b/trunk/paradiseo-peo/docs/html/messaging_8h-source.html new file mode 100644 index 000000000..1e9fcb413 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/messaging_8h-source.html @@ -0,0 +1,148 @@ + + +ParadisEO-PEO: messaging.h Source File + + + + +
    +
    +

    messaging.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "messaging.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __mess_h
    +00025 #define __mess_h
    +00026 
    +00027 #include <utility>
    +00028 
    +00029 /* Char */
    +00030 extern void pack (const char & __c); 
    +00031 
    +00032 /* Float */
    +00033 extern void pack (const float & __f, int __nitem = 1); 
    +00034 
    +00035 /* Double */
    +00036 extern void pack (const double & __d, int __nitem = 1); 
    +00037 
    +00038 /* Integer */
    +00039 extern void pack (const int & __i, int __nitem = 1); 
    +00040 
    +00041 /* Unsigned int. */
    +00042 extern void pack (const unsigned int & __ui, int __nitem = 1); 
    +00043 
    +00044 /* Short int. */
    +00045 extern void pack (const short & __sh, int __nitem = 1); 
    +00046 
    +00047 /* Unsigned short */
    +00048 extern void pack (const unsigned short & __ush, int __nitem = 1);
    +00049 
    +00050 /* Long */
    +00051 extern void pack (const long & __l, int __nitem = 1); 
    +00052 
    +00053 /* Unsigned long */
    +00054 extern void pack (const unsigned long & __ul, int __nitem = 1); 
    +00055 
    +00056 /* String */
    +00057 extern void pack (const char * __str); 
    +00058 
    +00059 /* Pointer */
    +00060 template <class T> void pack (const T * __ptr) {
    +00061   
    +00062   pack ((unsigned long) __ptr); 
    +00063 }
    +00064 
    +00065 /* Pair */
    +00066 template <class U, class V> void pack (const std :: pair <U, V> & __pair) {
    +00067   
    +00068   pack (__pair.first);
    +00069   pack (__pair.second);
    +00070 }
    +00071 
    +00072 //
    +00073 
    +00074 /* Float */
    +00075 extern void unpack (char & __c); 
    +00076 
    +00077 /* Float */
    +00078 extern void unpack (float & __f, int __nitem = 1); 
    +00079 
    +00080 /* Double */
    +00081 extern void unpack (double & __d, int __nitem = 1); 
    +00082 
    +00083 /* Integer */
    +00084 extern void unpack (int & __i, int __nitem = 1); 
    +00085 
    +00086 /* Unsigned int. */
    +00087 extern void unpack (unsigned int & __ui, int __nitem = 1); 
    +00088 
    +00089 /* Short int. */
    +00090 extern void unpack (short & __sh, int __nitem = 1); 
    +00091 
    +00092 /* Unsigned short */
    +00093 extern void unpack (unsigned short & __ush, int __nitem = 1);
    +00094 
    +00095 /* Long */
    +00096 extern void unpack (long & __l, int __nitem = 1); 
    +00097 
    +00098 /* Unsigned long */
    +00099 extern void unpack (unsigned long & __ul, int __nitem = 1); 
    +00100 
    +00101 /* String */
    +00102 extern void unpack (char * __str); 
    +00103 
    +00104 /* Pointer */
    +00105 template <class T> void unpack (T * & __ptr) {
    +00106   
    +00107   unsigned long p;
    +00108   unpack (p);
    +00109   __ptr = (T *) p;
    +00110 }
    +00111 
    +00112 /* Pair */
    +00113 template <class U, class V> void unpack (std :: pair <U, V> & __pair) {
    +00114   
    +00115   unpack (__pair.first);
    +00116   unpack (__pair.second);
    +00117 }
    +00118 
    +00119 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/namespacemembers.html b/trunk/paradiseo-peo/docs/html/namespacemembers.html new file mode 100644 index 000000000..36f88373b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/namespacemembers.html @@ -0,0 +1,51 @@ + + +ParadisEO-PEO: Class Members + + + + +
    +
    + +
    + +
    +Here is a list of all documented namespace members with links to the namespaces they belong to: +

    +

    +
    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/namespacemembers_func.html b/trunk/paradiseo-peo/docs/html/namespacemembers_func.html new file mode 100644 index 000000000..6a109b31e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/namespacemembers_func.html @@ -0,0 +1,49 @@ + + +ParadisEO-PEO: Class Members + + + + +
    +
    + +
    + +
    +  +

    +

      +
    • finalize() +: peo
    • init() +: peo
    • loadParameters() +: peo
    • run() +: peo
    +
    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/namespacemembers_vars.html b/trunk/paradiseo-peo/docs/html/namespacemembers_vars.html new file mode 100644 index 000000000..3742147ef --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/namespacemembers_vars.html @@ -0,0 +1,47 @@ + + +ParadisEO-PEO: Class Members + + + + +
    +
    + +
    + +
    +  +

    +

    +
    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/namespacepeo.html b/trunk/paradiseo-peo/docs/html/namespacepeo.html new file mode 100644 index 000000000..dabc01bf1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/namespacepeo.html @@ -0,0 +1,65 @@ + + +ParadisEO-PEO: peo Namespace Reference + + + + +
    +
    + +

    peo Namespace Reference

    +

    + + + + + + + + + + + + + + + + + + + + +

    Functions

    +void finalize ()
    +void init (int &__argc, char **&__argv)
    +void loadParameters (int &__argc, char **&__argv)
    +void run ()

    Variables

    +int * argc
    +char *** argv
    +int * argc
    +char *** argv
    +


    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/namespaces.html b/trunk/paradiseo-peo/docs/html/namespaces.html new file mode 100644 index 000000000..1158d42b9 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/namespaces.html @@ -0,0 +1,37 @@ + + +ParadisEO-PEO: Namespace Index + + + + +
    +
    + +

    ParadisEO-PEO Namespace List

    Here is a list of all documented namespaces with brief descriptions: + +
    peo
    +
    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/node_8cpp-source.html b/trunk/paradiseo-peo/docs/html/node_8cpp-source.html new file mode 100644 index 000000000..7f5f712cf --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/node_8cpp-source.html @@ -0,0 +1,102 @@ + + +ParadisEO-PEO: node.cpp Source File + + + + +
    +
    +

    node.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "node.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <mpi.h>
    +00025 #include <vector>
    +00026 #include <map>
    +00027 #include <string>
    +00028 #include <cassert>
    +00029 
    +00030 static int rk, sz; /* Rank & size */
    +00031 
    +00032 static std :: map <std :: string, int> name_to_rk;
    +00033 
    +00034 static std :: vector <std :: string> rk_to_name;
    +00035 
    +00036 int getNodeRank () {
    +00037 
    +00038   return rk;
    +00039 }
    +00040 
    +00041 int getNumberOfNodes () {
    +00042 
    +00043   return sz;
    +00044 }
    +00045 
    +00046 int getRankFromName (const std :: string & __name) {
    +00047   
    +00048   return atoi (__name.c_str ());  
    +00049 }
    +00050 
    +00051 void initNode (int * __argc, char * * * __argv) {
    +00052   
    +00053   int provided;
    +00054   MPI_Init_thread (__argc,  __argv, MPI_THREAD_FUNNELED, & provided);  
    +00055   assert (provided == MPI_THREAD_FUNNELED); /* The MPI implementation must be multi-threaded.
    +00056                                                Yet, only one thread performs the comm.
    +00057                                                operations */
    +00058   MPI_Comm_rank (MPI_COMM_WORLD, & rk);   /* Who ? */
    +00059   MPI_Comm_size (MPI_COMM_WORLD, & sz);    /* How many ? */
    +00060 
    +00061   char names [sz] [MPI_MAX_PROCESSOR_NAME];
    +00062   int len;
    +00063 
    +00064   /* Processor names */ 
    +00065   MPI_Get_processor_name (names [0], & len);   /* Me */  
    +00066   MPI_Allgather (names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, MPI_COMM_WORLD); /* Broadcast */
    +00067   
    +00068   for (int i = 0; i < sz; i ++) {
    +00069     rk_to_name.push_back (names [i]);
    +00070     name_to_rk [names [i]] = i;
    +00071   }
    +00072 }
    +00073 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/node_8h-source.html b/trunk/paradiseo-peo/docs/html/node_8h-source.html new file mode 100644 index 000000000..372e9188d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/node_8h-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: node.h Source File + + + + +
    +
    +

    node.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "node.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __node_h
    +00025 #define __node_h
    +00026 
    +00027 #include <string>
    +00028 #include <cassert>
    +00029 
    +00030 extern int getNodeRank (); /* It gives the rank of the calling process */
    +00031 
    +00032 extern int getNumberOfNodes (); /* It gives the size of the environment (Total number of nodes) */
    +00033 
    +00034 extern int getRankFromName (const std :: string & __name); /* It gives the rank of the process
    +00035                                                               expressed by its name */
    +00036 
    +00037 extern void initNode (int * __argc, char * * * __argv);
    +00038 
    +00039 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/paradiseo_8h-source.html b/trunk/paradiseo-peo/docs/html/paradiseo_8h-source.html new file mode 100644 index 000000000..1731ccbd6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/paradiseo_8h-source.html @@ -0,0 +1,85 @@ + + +ParadisEO-PEO: paradiseo.h Source File + + + + +
    +
    +

    paradiseo.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "paradiseo.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __paradiseo_h_
    +00025 #define __paradiseo_h_
    +00026 
    +00027 #include <eo>
    +00028 #include <mo>
    +00029 
    +00030 
    +00275 
    +00276 
    +00277 
    +00278 #include "core/peo_init.h"
    +00279 #include "core/peo_run.h"
    +00280 #include "core/peo_fin.h"
    +00281 
    +00282 #include "core/eoVector_comm.h"
    +00283 
    +00284 #include "peoEA.h"
    +00285 
    +00286 /* Parallel steps of the E.A. */
    +00287 #include "peoSeqTransform.h"
    +00288 #include "peoParaSGATransform.h"
    +00289 #include "peoSeqPopEval.h"
    +00290 #include "peoParaPopEval.h"
    +00291 
    +00292 /* Cooperative island model */
    +00293 #include "core/ring_topo.h"
    +00294 #include "peoAsyncIslandMig.h"
    +00295 #include "peoSyncIslandMig.h"
    +00296 
    +00297 /* Synchronous multi-start model */
    +00298 #include "peoSyncMultiStart.h"
    +00299 
    +00300 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/param_8cpp-source.html b/trunk/paradiseo-peo/docs/html/param_8cpp-source.html new file mode 100644 index 000000000..c50f49b8a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/param_8cpp-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-PEO: param.cpp Source File + + + + +
    +
    +

    param.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "param.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <utils/eoParser.h>
    +00025 
    +00026 #include "schema.h"
    +00027 
    +00028 void loadRMCParameters (int & __argc, char * * & __argv) {
    +00029 
    +00030   eoParser parser (__argc, __argv);
    +00031 
    +00032   /* Schema */
    +00033   eoValueParam <std :: string> schema_param ("schema.xml", "schema", "?");
    +00034   parser.processParam (schema_param);
    +00035   loadSchema (schema_param.value ().c_str ());
    +00036 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/param_8h-source.html b/trunk/paradiseo-peo/docs/html/param_8h-source.html new file mode 100644 index 000000000..1eb728562 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/param_8h-source.html @@ -0,0 +1,58 @@ + + +ParadisEO-PEO: param.h Source File + + + + +
    +
    +

    param.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "param.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __rmc_param_h
    +00025 #define __rmc_param_h
    +00026 
    +00027 extern void loadRMCParameters (int & __argc, char * * & __argv);
    +00028 
    +00029 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoAggEvalFunc_8h-source.html b/trunk/paradiseo-peo/docs/html/peoAggEvalFunc_8h-source.html new file mode 100644 index 000000000..3e2773eac --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoAggEvalFunc_8h-source.html @@ -0,0 +1,64 @@ + + +ParadisEO-PEO: peoAggEvalFunc.h Source File + + + + +
    +
    +

    peoAggEvalFunc.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoAggEvalFunc.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoAggEvalFunc_h
    +00025 #define __peoAggEvalFunc_h
    +00026 
    +00027 #include <eoFunctor.h>
    +00028 
    +00030 
    +00040 template< class EOT > class peoAggEvalFunc : public eoBF< EOT&, const typename EOT :: Fitness&, void > {
    +00041 
    +00042 };
    +00043 
    +00044 
    +00045 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoAsyncIslandMig_8h-source.html b/trunk/paradiseo-peo/docs/html/peoAsyncIslandMig_8h-source.html new file mode 100644 index 000000000..9dc00f4b3 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoAsyncIslandMig_8h-source.html @@ -0,0 +1,204 @@ + + +ParadisEO-PEO: peoAsyncIslandMig.h Source File + + + + +
    +
    +

    peoAsyncIslandMig.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoAsyncIslandMig.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011 
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016 
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020 
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoAsyncIslandMig_h
    +00025 #define __peoAsyncIslandMig_h
    +00026 
    +00027 
    +00028 #include <queue>
    +00029 
    +00030 #include <utils/eoUpdater.h>
    +00031 
    +00032 #include <eoContinue.h>
    +00033 #include <eoSelect.h>
    +00034 #include <eoReplacement.h>
    +00035 #include <eoPop.h>
    +00036 
    +00037 #include "core/topology.h"
    +00038 #include "core/cooperative.h"
    +00039 #include "core/eoPop_comm.h"
    +00040 #include "core/peo_debug.h"
    +00041 
    +00042 
    +00044 
    +00127 template< class EOT > class peoAsyncIslandMig : public Cooperative, public eoUpdater {
    +00128 
    +00129 public:
    +00130 
    +00140         peoAsyncIslandMig( 
    +00141                                 eoContinue< EOT >& __cont,
    +00142                                 eoSelect< EOT >& __select,
    +00143                                 eoReplacement< EOT >& __replace,
    +00144                                 Topology& __topology,
    +00145                                 eoPop< EOT >& __source,
    +00146                                 eoPop< EOT >& __destination 
    +00147         );
    +00148 
    +00153         void operator()();
    +00154         
    +00156         void pack();
    +00158         void unpack();
    +00159 
    +00160 
    +00161 private:
    +00162 
    +00163         void emigrate();
    +00164         void immigrate();
    +00165 
    +00166 
    +00167 private:
    +00168 
    +00169         eoContinue< EOT >& cont;        // continuator
    +00170         eoSelect< EOT >& select;        // the selection strategy
    +00171         eoReplacement< EOT >& replace;  // the replacement strategy
    +00172         Topology& topology;             // the neighboring topology
    +00173         
    +00174         // source and destination populations
    +00175         eoPop< EOT >& source;
    +00176         eoPop< EOT >& destination;
    +00177         
    +00178         // immigrants & emigrants in the queue
    +00179         std :: queue< eoPop< EOT > > imm;
    +00180         std :: queue< eoPop< EOT > > em;
    +00181         
    +00182         std :: queue< Cooperative* > coop_em;
    +00183 };
    +00184 
    +00185 
    +00186 template< class EOT > peoAsyncIslandMig< EOT > :: peoAsyncIslandMig(
    +00187 
    +00188                 eoContinue< EOT >& __cont,
    +00189                 eoSelect< EOT >& __select,
    +00190                 eoReplacement< EOT >& __replace,
    +00191                 Topology& __topology,
    +00192                 eoPop< EOT >& __source,
    +00193                 eoPop< EOT >& __destination
    +00194 
    +00195         ) : cont( __cont ), select( __select ), replace( __replace ), topology( __topology ), source( __source ), destination( __destination )
    +00196 {
    +00197 
    +00198         __topology.add( *this );
    +00199 }
    +00200 
    +00201 
    +00202 template< class EOT > void peoAsyncIslandMig< EOT > :: pack()
    +00203 {
    +00204 
    +00205         lock(); {
    +00206 
    +00207 		 :: pack( coop_em.front()->getKey() );
    +00208 		 :: pack( em.front() );
    +00209                 coop_em.pop();
    +00210                 em.pop();
    +00211         }
    +00212         unlock();
    +00213 }
    +00214 
    +00215 
    +00216 template< class EOT > void peoAsyncIslandMig< EOT > :: unpack()
    +00217 {
    +00218 
    +00219         lock(); {
    +00220 
    +00221                 eoPop< EOT > mig;
    +00222 		 :: unpack( mig );
    +00223                 imm.push( mig );
    +00224         }
    +00225         unlock();
    +00226 }
    +00227 
    +00228 
    +00229 template< class EOT > void peoAsyncIslandMig< EOT > :: emigrate()
    +00230 {
    +00231 
    +00232         std :: vector< Cooperative* >in, out;
    +00233         topology.setNeighbors( this, in, out );
    +00234 
    +00235         for ( unsigned i = 0; i < out.size(); i++ ) {
    +00236         
    +00237                 eoPop< EOT > mig;
    +00238                 select( source, mig );
    +00239                 em.push( mig );
    +00240                 coop_em.push( out[i] );
    +00241                 send( out[i] );
    +00242                 printDebugMessage( "sending some emigrants." );
    +00243         }
    +00244 }
    +00245 
    +00246 
    +00247 template< class EOT > void peoAsyncIslandMig< EOT > :: immigrate()
    +00248 {
    +00249 
    +00250         lock(); {
    +00251 
    +00252                 while ( !imm.empty() ) {
    +00253 
    +00254                         replace( destination, imm.front() );
    +00255                         imm.pop();
    +00256                         printDebugMessage( "receiving some immigrants." );
    +00257                 }
    +00258         }
    +00259         unlock();
    +00260 }
    +00261 
    +00262 
    +00263 template< class EOT > void peoAsyncIslandMig< EOT > :: operator()() {
    +00264 
    +00265         if ( !cont( source ) ) {
    +00266 
    +00267                 emigrate();     // sending emigrants
    +00268                 immigrate();    // receiving immigrants
    +00269         }
    +00270 }
    +00271 
    +00272 
    +00273 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoEA_8h-source.html b/trunk/paradiseo-peo/docs/html/peoEA_8h-source.html new file mode 100644 index 000000000..0cfaae884 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoEA_8h-source.html @@ -0,0 +1,143 @@ + + +ParadisEO-PEO: peoEA.h Source File + + + + +
    +
    +

    peoEA.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoEA.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoEA_h
    +00025 #define __peoEA_h
    +00026 
    +00027 #include <eoContinue.h>
    +00028 #include <eoEvalFunc.h>
    +00029 #include <eoSelect.h>
    +00030 #include <eoPopEvalFunc.h>
    +00031 #include <eoReplacement.h>
    +00032 
    +00033 #include "peoPopEval.h"
    +00034 #include "peoTransform.h"
    +00035 #include "core/runner.h"
    +00036 #include "core/peo_debug.h"
    +00037 
    +00039 
    +00069 template < class EOT > class peoEA : public Runner {
    +00070 
    +00071 public:
    +00072 
    +00084         peoEA( 
    +00085                 eoContinue< EOT >& __cont,
    +00086                 peoPopEval< EOT >& __pop_eval,
    +00087                 eoSelect< EOT >& __select,
    +00088                 peoTransform< EOT >& __trans,
    +00089                 eoReplacement< EOT >& __replace 
    +00090         );
    +00091 
    +00094         void run();
    +00095         
    +00099         void operator()( eoPop< EOT >& __pop );
    +00100 
    +00101 private:
    +00102 
    +00103 
    +00104         eoContinue< EOT >& cont;
    +00105         peoPopEval< EOT >& pop_eval;
    +00106         eoSelect< EOT >& select;
    +00107         peoTransform< EOT >& trans;
    +00108         eoReplacement< EOT >& replace;
    +00109         eoPop< EOT >* pop;
    +00110 };
    +00111 
    +00112 
    +00113 template < class EOT > peoEA< EOT > :: peoEA( 
    +00114 
    +00115                                 eoContinue< EOT >& __cont, 
    +00116                                 peoPopEval< EOT >& __pop_eval, 
    +00117                                 eoSelect< EOT >& __select, 
    +00118                                 peoTransform< EOT >& __trans, 
    +00119                                 eoReplacement< EOT >& __replace
    +00120 
    +00121                 ) : cont( __cont ), pop_eval( __pop_eval ), select( __select ), trans( __trans ), replace( __replace )
    +00122 {
    +00123 
    +00124         trans.setOwner( *this );
    +00125         pop_eval.setOwner( *this );
    +00126 }
    +00127 
    +00128 
    +00129 template< class EOT > void peoEA< EOT > :: operator ()( eoPop< EOT >& __pop ) {
    +00130 
    +00131         pop = &__pop;
    +00132 }
    +00133 
    +00134 
    +00135 template< class EOT > void peoEA< EOT > :: run() {
    +00136 
    +00137         printDebugMessage( "performing the first evaluation of the population." );
    +00138         pop_eval( *pop );
    +00139         
    +00140         do {
    +00141 
    +00142                 eoPop< EOT > off;
    +00143 
    +00144                 printDebugMessage( "performing the selection step." );
    +00145                 select( *pop, off );
    +00146                 trans( off );
    +00147 
    +00148                 printDebugMessage( "performing the evaluation of the population." );
    +00149                 pop_eval( off );
    +00150 
    +00151                 printDebugMessage( "performing the replacement of the population." );
    +00152                 replace( *pop, off );
    +00153 
    +00154                 printDebugMessage( "deciding of the continuation." );
    +00155         
    +00156         } while ( cont( *pop ) );
    +00157 }
    +00158 
    +00159 
    +00160 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoNoAggEvalFunc_8h-source.html b/trunk/paradiseo-peo/docs/html/peoNoAggEvalFunc_8h-source.html new file mode 100644 index 000000000..62f00bd57 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoNoAggEvalFunc_8h-source.html @@ -0,0 +1,73 @@ + + +ParadisEO-PEO: peoNoAggEvalFunc.h Source File + + + + +
    +
    +

    peoNoAggEvalFunc.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoNoAggEvalFunc.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoNoAggEvalFunc_h
    +00025 #define __peoNoAggEvalFunc_h
    +00026 
    +00027 #include "peoAggEvalFunc.h"
    +00028 
    +00030 
    +00034 template< class EOT > class peoNoAggEvalFunc : public peoAggEvalFunc< EOT > {
    +00035 
    +00036 public :
    +00037 
    +00039         void operator()( EOT& __sol, const typename EOT :: Fitness& __fit );
    +00040 };
    +00041 
    +00042 
    +00043 template< class EOT > void peoNoAggEvalFunc< EOT > :: operator()( EOT& __sol, const typename EOT :: Fitness& __fit ) {
    +00044 
    +00045         __sol.fitness( __fit );
    +00046 }
    +00047 
    +00048 
    +00049 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoParaPopEval_8h-source.html b/trunk/paradiseo-peo/docs/html/peoParaPopEval_8h-source.html new file mode 100644 index 000000000..b11bc6aae --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoParaPopEval_8h-source.html @@ -0,0 +1,241 @@ + + +ParadisEO-PEO: peoParaPopEval.h Source File + + + + +
    +
    +

    peoParaPopEval.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoParaPopEval.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoParaPopEval_h
    +00025 #define __peoParaPopEval_h
    +00026 
    +00027 #include <queue>
    +00028 #include <eoEvalFunc.h>
    +00029 
    +00030 #include "core/messaging.h"
    +00031 #include "core/peo_debug.h"
    +00032 #include "peoAggEvalFunc.h"
    +00033 #include "peoNoAggEvalFunc.h"
    +00034 
    +00035 
    +00037 
    +00041 template< class EOT > class peoParaPopEval : public peoPopEval< EOT > {
    +00042 
    +00043 public:
    +00044 
    +00045         using peoPopEval< EOT > :: requestResourceRequest;
    +00046         using peoPopEval< EOT > :: resume;
    +00047         using peoPopEval< EOT > :: stop;
    +00048         using peoPopEval< EOT > :: getOwner;
    +00049         
    +00054         peoParaPopEval( eoEvalFunc< EOT >& __eval_func );
    +00055 
    +00060         peoParaPopEval( const std :: vector< eoEvalFunc < EOT >* >& __funcs, peoAggEvalFunc< EOT >& __merge_eval );
    +00061 
    +00065         void operator()( eoPop< EOT >& __pop );
    +00066 
    +00069         void packData();
    +00070         
    +00073         void unpackData();
    +00074 
    +00076         void execute();
    +00077         
    +00080         void packResult();
    +00081         
    +00084         void unpackResult();
    +00085         
    +00088         void notifySendingData();
    +00089 
    +00092         void notifySendingAllResourceRequests();
    +00093 
    +00094 private:
    +00095 
    +00096 
    +00097         const std :: vector< eoEvalFunc < EOT >* >& funcs;
    +00098         std :: vector< eoEvalFunc < EOT >* > one_func;
    +00099         
    +00100         peoAggEvalFunc< EOT >& merge_eval;
    +00101         peoNoAggEvalFunc< EOT > no_merge_eval;
    +00102         
    +00103         std :: queue< EOT* >tasks;
    +00104         
    +00105         std :: map< EOT*, std :: pair< unsigned, unsigned > > progression;
    +00106         
    +00107         unsigned num_func;
    +00108         
    +00109         EOT sol;
    +00110         
    +00111         EOT *ad_sol;
    +00112         
    +00113         unsigned total;
    +00114 };
    +00115 
    +00116 
    +00117 template< class EOT > peoParaPopEval< EOT > :: peoParaPopEval( eoEvalFunc< EOT >& __eval_func ) : 
    +00118 
    +00119                 funcs( one_func ), merge_eval( no_merge_eval )
    +00120 {
    +00121 
    +00122         one_func.push_back( &__eval_func );
    +00123 }
    +00124 
    +00125 
    +00126 template< class EOT > peoParaPopEval< EOT > :: peoParaPopEval( 
    +00127 
    +00128                                 const std :: vector< eoEvalFunc< EOT >* >& __funcs,
    +00129                                 peoAggEvalFunc< EOT >& __merge_eval 
    +00130 
    +00131                 ) : funcs( __funcs ), merge_eval( __merge_eval )
    +00132 {
    +00133 
    +00134 }
    +00135 
    +00136 
    +00137 template< class EOT > void peoParaPopEval< EOT >::operator()( eoPop< EOT >& __pop ) {
    +00138 
    +00139         for ( unsigned i = 0; i < __pop.size(); i++ ) {
    +00140 
    +00141                 __pop[ i ].fitness( typename EOT :: Fitness() );
    +00142 
    +00143                 progression[ &__pop[ i ] ].first = funcs.size() - 1;
    +00144                 progression[ &__pop[ i ] ].second = funcs.size();
    +00145                 
    +00146                 for ( unsigned j = 0; j < funcs.size(); j++ ) {
    +00147                         /* Queuing the 'invalid' solution and its associated owner */
    +00148                         tasks.push( &__pop[ i ] );
    +00149                 }
    +00150         }
    +00151         
    +00152         total = funcs.size() * __pop.size();
    +00153         requestResourceRequest( funcs.size() * __pop.size() );
    +00154         stop();
    +00155 }
    +00156 
    +00157 
    +00158 template< class EOT > void peoParaPopEval< EOT > :: packData() {
    +00159 
    +00160         //  printDebugMessage ("debut pakc data");
    +00161         pack( progression[ tasks.front() ].first-- );
    +00162         
    +00163         /* Packing the contents :-) of the solution */
    +00164         pack( *tasks.front() );
    +00165         
    +00166         /* Packing the addresses of both the solution and the owner */
    +00167         pack( tasks.front() );
    +00168         tasks.pop(  );
    +00169 }
    +00170 
    +00171 
    +00172 template< class EOT > void peoParaPopEval< EOT > :: unpackData() {
    +00173 
    +00174         unpack( num_func );
    +00175         /* Unpacking the solution */
    +00176         unpack( sol );
    +00177         /* Unpacking the @ of that one */
    +00178         unpack( ad_sol );
    +00179 }
    +00180 
    +00181 
    +00182 template< class EOT > void peoParaPopEval< EOT > :: execute() {
    +00183 
    +00184         /* Computing the fitness of the solution */
    +00185         funcs[ num_func ]->operator()( sol );
    +00186 }
    +00187 
    +00188 
    +00189 template< class EOT > void peoParaPopEval< EOT > :: packResult() {
    +00190 
    +00191         /* Packing the fitness of the solution */
    +00192         pack( sol.fitness() );
    +00193         /* Packing the @ of the individual */
    +00194         pack( ad_sol );
    +00195 }
    +00196 
    +00197 
    +00198 template< class EOT > void peoParaPopEval< EOT > :: unpackResult() {
    +00199 
    +00200         typename EOT :: Fitness fit;
    +00201         
    +00202         /* Unpacking the computed fitness */
    +00203         unpack( fit );
    +00204                 
    +00205         /* Unpacking the @ of the associated individual */
    +00206         unpack( ad_sol );
    +00207         
    +00208         
    +00209         /* Associating the fitness the local solution */
    +00210         merge_eval( *ad_sol, fit );
    +00211 
    +00212         progression[ ad_sol ].second--;
    +00213 
    +00214         /* Notifying the container of the termination of the evaluation */
    +00215         if ( !progression[ ad_sol ].second ) {
    +00216 
    +00217                 progression.erase( ad_sol );
    +00218         }
    +00219         
    +00220         total--;
    +00221         if ( !total ) {
    +00222 
    +00223                 getOwner()->setActive();
    +00224                 resume();
    +00225         }
    +00226 }
    +00227 
    +00228 
    +00229 template< class EOT > void peoParaPopEval< EOT > :: notifySendingData() {
    +00230 
    +00231 }
    +00232 
    +00233 
    +00234 template< class EOT > void peoParaPopEval< EOT > :: notifySendingAllResourceRequests() {
    +00235 
    +00236         getOwner()->setPassive();
    +00237 }
    +00238 
    +00239 
    +00240 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoParaSGATransform_8h-source.html b/trunk/paradiseo-peo/docs/html/peoParaSGATransform_8h-source.html new file mode 100644 index 000000000..f21b2b036 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoParaSGATransform_8h-source.html @@ -0,0 +1,199 @@ + + +ParadisEO-PEO: peoParaSGATransform.h Source File + + + + +
    +
    +

    peoParaSGATransform.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoParaSGATransform.h"
    +00004 
    +00005 //(c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoParaSGATransform_h
    +00025 #define __peoParaSGATransform_h
    +00026 
    +00027 #include "peoTransform.h"
    +00028 #include "core/thread.h"
    +00029 #include "core/messaging.h"
    +00030 #include "core/peo_debug.h"
    +00031 
    +00032 
    +00033 extern int getNodeRank();
    +00034 
    +00035 
    +00036 template< class EOT > class peoParaSGATransform : public peoTransform< EOT > {
    +00037 
    +00038 public:
    +00039 
    +00040         using peoTransform< EOT > :: requestResourceRequest;
    +00041         using peoTransform< EOT > :: resume;
    +00042         using peoTransform< EOT > :: stop;
    +00043         using peoTransform< EOT > :: getOwner;
    +00044 
    +00045         peoParaSGATransform( 
    +00046 
    +00047                                 eoQuadOp< EOT >& __cross,
    +00048                                 double __cross_rate,
    +00049                                 eoMonOp< EOT >& __mut, 
    +00050                                 double __mut_rate 
    +00051         );
    +00052 
    +00053         void operator()( eoPop< EOT >& __pop );
    +00054         
    +00055         void packData();
    +00056         
    +00057         void unpackData();
    +00058         
    +00059         void execute();
    +00060         
    +00061         void packResult();
    +00062         
    +00063         void unpackResult();
    +00064         
    +00065         void notifySendingData();
    +00066         void notifySendingAllResourceRequests();
    +00067 
    +00068 private:
    +00069 
    +00070     eoQuadOp< EOT >& cross;
    +00071     double cross_rate;
    +00072 
    +00073     eoMonOp< EOT >& mut;
    +00074     double mut_rate;
    +00075 
    +00076     unsigned idx;
    +00077 
    +00078     eoPop< EOT >* pop;
    +00079 
    +00080     EOT father, mother;
    +00081 
    +00082     unsigned num_term;
    +00083 };
    +00084 
    +00085 template< class EOT > peoParaSGATransform< EOT > :: peoParaSGATransform( 
    +00086 
    +00087                                 eoQuadOp< EOT >& __cross,
    +00088                                 double __cross_rate,
    +00089                                 eoMonOp < EOT >& __mut,
    +00090                                 double __mut_rate 
    +00091 
    +00092                 ) : cross( __cross ), cross_rate( __cross_rate ), mut( __mut ), mut_rate( __mut_rate )
    +00093 {
    +00094 
    +00095 }
    +00096 
    +00097 
    +00098 template< class EOT > void peoParaSGATransform< EOT > :: packData() {
    +00099 
    +00100         pack( idx );
    +00101          :: pack( pop->operator[]( idx++ ) );
    +00102          :: pack( pop->operator[]( idx++ ) );
    +00103 }
    +00104 
    +00105 
    +00106 template< class EOT > void peoParaSGATransform< EOT > :: unpackData() {
    +00107 
    +00108         unpack( idx );
    +00109          :: unpack( father );
    +00110          :: unpack( mother );
    +00111 }
    +00112 
    +00113 
    +00114 template< class EOT > void peoParaSGATransform< EOT > :: execute() {
    +00115 
    +00116         if( rng.uniform() < cross_rate ) cross( mother, father );
    +00117 
    +00118         if( rng.uniform() < mut_rate ) mut( mother );
    +00119         if( rng.uniform() < mut_rate ) mut( father );
    +00120 }
    +00121 
    +00122 
    +00123 template< class EOT > void peoParaSGATransform< EOT > :: packResult() {
    +00124 
    +00125         pack( idx );
    +00126          :: pack( father );
    +00127          :: pack( mother );
    +00128 }
    +00129 
    +00130 
    +00131 template< class EOT > void peoParaSGATransform< EOT > :: unpackResult() {
    +00132 
    +00133         unsigned sidx;
    +00134         
    +00135         unpack( sidx );
    +00136          :: unpack( pop->operator[]( sidx++ ) );
    +00137          :: unpack( pop->operator[]( sidx ) );
    +00138         num_term += 2;
    +00139         
    +00140         if( num_term == pop->size() ) {
    +00141 
    +00142                 getOwner()->setActive();
    +00143                 resume();
    +00144         }
    +00145 }
    +00146 
    +00147 
    +00148 template< class EOT > void peoParaSGATransform< EOT > :: operator()( eoPop < EOT >& __pop ) {
    +00149 
    +00150         printDebugMessage( "performing the parallel transformation step." );
    +00151         pop = &__pop;
    +00152         idx = 0;
    +00153         num_term = 0;
    +00154         requestResourceRequest( __pop.size() / 2 );
    +00155         stop();
    +00156 }
    +00157 
    +00158 
    +00159 template< class EOT > void peoParaSGATransform< EOT > :: notifySendingData() {
    +00160 
    +00161 }
    +00162 
    +00163 
    +00164 template< class EOT > void peoParaSGATransform< EOT > :: notifySendingAllResourceRequests() {
    +00165 
    +00166         getOwner()->setPassive();
    +00167 }
    +00168 
    +00169 
    +00170 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoPopEval_8h-source.html b/trunk/paradiseo-peo/docs/html/peoPopEval_8h-source.html new file mode 100644 index 000000000..2d15e50ef --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoPopEval_8h-source.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO: peoPopEval.h Source File + + + + +
    +
    +

    peoPopEval.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoPopEval.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoPopEval_h
    +00025 #define __peoPopEval_h
    +00026 
    +00027 #include "core/service.h"
    +00028 
    +00030 
    +00034 template< class EOT > class peoPopEval : public Service {
    +00035 
    +00036 public:
    +00037 
    +00039         virtual void operator()( eoPop< EOT >& __pop ) = 0;
    +00040 };
    +00041 
    +00042 
    +00043 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoSeqPopEval_8h-source.html b/trunk/paradiseo-peo/docs/html/peoSeqPopEval_8h-source.html new file mode 100644 index 000000000..409f1c00b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoSeqPopEval_8h-source.html @@ -0,0 +1,87 @@ + + +ParadisEO-PEO: peoSeqPopEval.h Source File + + + + +
    +
    +

    peoSeqPopEval.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoSeqPopEval.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoSeqPopEval_h
    +00025 #define __peoSeqPopEval_h
    +00026 
    +00027 #include <eoEvalFunc.h>
    +00028 
    +00029 #include "peoPopEval.h"
    +00030 
    +00032 
    +00036 template< class EOT > class peoSeqPopEval : public peoPopEval< EOT > {
    +00037 
    +00038 public:
    +00039 
    +00043         peoSeqPopEval( eoEvalFunc< EOT >& __eval );
    +00044 
    +00048         void operator()( eoPop< EOT >& __pop );
    +00049 
    +00050 private:
    +00051 
    +00052         eoEvalFunc< EOT >& eval;
    +00053 };
    +00054 
    +00055 
    +00056 template< class EOT > peoSeqPopEval< EOT > :: peoSeqPopEval( eoEvalFunc< EOT >& __eval ) : eval( __eval ) {
    +00057 
    +00058 }
    +00059 
    +00060 
    +00061 template< class EOT > void peoSeqPopEval< EOT > :: operator()( eoPop< EOT >& __pop ) {
    +00062 
    +00063         for ( unsigned i = 0; i < __pop.size(); i++ )
    +00064                 eval( __pop[i] );
    +00065 }
    +00066 
    +00067 
    +00068 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoSeqTransform_8h-source.html b/trunk/paradiseo-peo/docs/html/peoSeqTransform_8h-source.html new file mode 100644 index 000000000..bbf228e32 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoSeqTransform_8h-source.html @@ -0,0 +1,95 @@ + + +ParadisEO-PEO: peoSeqTransform.h Source File + + + + +
    +
    +

    peoSeqTransform.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoSeqTransform.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoSeqTransform_h
    +00025 #define __peoSeqTransform_h
    +00026 
    +00027 #include "peoTransform.h"
    +00028 
    +00029 
    +00031 
    +00035 template< class EOT > class peoSeqTransform : public peoTransform< EOT > {
    +00036 
    +00037 public:
    +00038 
    +00042         peoSeqTransform( eoTransform< EOT >& __trans );
    +00043         
    +00047         void operator()( eoPop< EOT >& __pop );
    +00048         
    +00050         virtual void packData() { }
    +00051 
    +00053         virtual void unpackData() { }
    +00054         
    +00056         virtual void execute() { }
    +00057         
    +00059         virtual void packResult() { }
    +00060 
    +00062         virtual void unpackResult() { }
    +00063 
    +00064 private:
    +00065 
    +00066         eoTransform< EOT >& trans;
    +00067 };
    +00068 
    +00069 
    +00070 template< class EOT > peoSeqTransform< EOT > :: peoSeqTransform( eoTransform< EOT >& __trans ) : trans( __trans ) {
    +00071 
    +00072 }
    +00073 
    +00074 
    +00075 template< class EOT > void peoSeqTransform< EOT > :: operator()( eoPop< EOT >& __pop ) {
    +00076 
    +00077         trans( __pop );
    +00078 }
    +00079 
    +00080 
    +00081 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoSyncIslandMig_8h-source.html b/trunk/paradiseo-peo/docs/html/peoSyncIslandMig_8h-source.html new file mode 100644 index 000000000..3743ca76a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoSyncIslandMig_8h-source.html @@ -0,0 +1,232 @@ + + +ParadisEO-PEO: peoSyncIslandMig.h Source File + + + + +
    +
    +

    peoSyncIslandMig.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoSyncIslandMig.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011 
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016 
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020 
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoSyncIslandMig_h
    +00025 #define __peoSyncIslandMig_h
    +00026 
    +00027 
    +00028 #include <queue>
    +00029 #include <cassert>
    +00030 
    +00031 #include <eoPeriodicContinue.h>
    +00032 
    +00033 #include <utils/eoUpdater.h>
    +00034 
    +00035 #include <eoContinue.h>
    +00036 #include <eoSelect.h>
    +00037 #include <eoReplacement.h>
    +00038 #include <eoPop.h>
    +00039 
    +00040 #include "core/topology.h"
    +00041 #include "core/thread.h"
    +00042 #include "core/eoPop_comm.h"
    +00043 #include "core/peo_debug.h"
    +00044 
    +00045 
    +00047 
    +00129 template< class EOT > class peoSyncIslandMig : public Cooperative, public eoUpdater {
    +00130 
    +00131 public:
    +00132 
    +00142         peoSyncIslandMig(
    +00143                                 unsigned __frequency,
    +00144                                 eoSelect< EOT >& __select,
    +00145                                 eoReplacement< EOT >& __replace,
    +00146                                 Topology& __topology,
    +00147                                 eoPop< EOT >& __source,
    +00148                                 eoPop< EOT >& __destination
    +00149         );
    +00150 
    +00155         void operator()();
    +00156 
    +00158         void pack();
    +00160         void unpack();
    +00161 
    +00163         void notifySending();
    +00164 
    +00165 
    +00166 private:
    +00167 
    +00168         void emigrate();
    +00169         void immigrate();
    +00170 
    +00171 
    +00172 private:
    +00173 
    +00174         eoPeriodicContinue< EOT > cont;
    +00175         eoSelect< EOT >& select;        // selection strategy
    +00176         eoReplacement< EOT >& replace;  // replacement strategy
    +00177         Topology& topology;             // neighboring topology
    +00178 
    +00179         // source and target populations
    +00180         eoPop< EOT >& source;
    +00181         eoPop< EOT >& destination;
    +00182 
    +00183         // immigrants & emigrants in the queue
    +00184         std :: queue< eoPop< EOT > > imm;
    +00185         std :: queue< eoPop< EOT > > em;
    +00186 
    +00187         std :: queue< Cooperative* > coop_em;
    +00188 
    +00189         sem_t sync;
    +00190 };
    +00191 
    +00192 
    +00193 template< class EOT > peoSyncIslandMig< EOT > :: peoSyncIslandMig(
    +00194 
    +00195                 unsigned __frequency,
    +00196                 eoSelect< EOT >& __select,
    +00197                 eoReplacement< EOT >& __replace,
    +00198                 Topology& __topology,
    +00199                 eoPop< EOT >& __source,
    +00200                 eoPop< EOT >& __destination
    +00201 
    +00202         ) : cont( __frequency ), select( __select ), replace( __replace ), topology( __topology ), source( __source ), destination( __destination ) 
    +00203 {
    +00204 
    +00205         __topology.add( *this );
    +00206         sem_init( &sync, 0, 0 );
    +00207 }
    +00208 
    +00209 
    +00210 template< class EOT > void peoSyncIslandMig< EOT > :: pack() {
    +00211 
    +00212         lock(); {
    +00213 
    +00214 		 :: pack( coop_em.front()->getKey() );
    +00215 		 :: pack( em.front() );
    +00216                 coop_em.pop();
    +00217                 em.pop();
    +00218         }
    +00219         unlock();
    +00220 }
    +00221 
    +00222 
    +00223 template< class EOT > void peoSyncIslandMig< EOT > :: unpack() {
    +00224 
    +00225         lock(); {
    +00226 
    +00227                 eoPop< EOT > mig;
    +00228 		 :: unpack( mig );
    +00229                 imm.push( mig );
    +00230         }
    +00231         unlock();
    +00232 
    +00233         sem_post( &sync );
    +00234 }
    +00235 
    +00236 
    +00237 template< class EOT > void peoSyncIslandMig< EOT > :: emigrate() {
    +00238 
    +00239         std :: vector< Cooperative* > in, out;
    +00240         topology.setNeighbors( this, in, out );
    +00241         
    +00242         for ( unsigned i = 0; i < out.size(); i ++ ) {
    +00243 
    +00244                 eoPop< EOT > mig;
    +00245                 select( source, mig );
    +00246                 em.push( mig );
    +00247                 coop_em.push( out[ i ] );
    +00248                 send( out[ i ] );
    +00249                 printDebugMessage( "sending some emigrants." );
    +00250         }
    +00251 }
    +00252 
    +00253 
    +00254 template< class EOT > void peoSyncIslandMig< EOT > :: immigrate() {
    +00255 
    +00256         lock(); {
    +00257 
    +00258                 assert( imm.size() );
    +00259                 replace( destination, imm.front() ) ;
    +00260                 imm.pop();
    +00261                 printDebugMessage( "receiving some immigrants." );
    +00262         }
    +00263         unlock();
    +00264 }
    +00265 
    +00266 
    +00267 template< class EOT > void peoSyncIslandMig< EOT > :: operator()() {
    +00268 
    +00269         if ( !cont( source ) ) {
    +00270         
    +00271                 // sending emigrants
    +00272                 emigrate();
    +00273                 stop();
    +00274 
    +00275                 // synchronizing
    +00276                 sem_wait( &sync );
    +00277                 getOwner()->setActive();
    +00278 
    +00279                 // receiving immigrants
    +00280                 immigrate();
    +00281         }
    +00282 }
    +00283 
    +00284 
    +00285 template< class EOT > void peoSyncIslandMig< EOT > :: notifySending() {
    +00286 
    +00287         lock(); {
    +00288 
    +00289                 if ( imm.empty() ) {
    +00290 
    +00291                         printDebugMessage( "entering pasive mode\n" );
    +00292                         getOwner()->setPassive();
    +00293                 }
    +00294         }
    +00295         unlock();
    +00296 
    +00297         resume();
    +00298 }
    +00299 
    +00300 
    +00301 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoSyncMultiStart_8h-source.html b/trunk/paradiseo-peo/docs/html/peoSyncMultiStart_8h-source.html new file mode 100644 index 000000000..1df55e540 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoSyncMultiStart_8h-source.html @@ -0,0 +1,196 @@ + + +ParadisEO-PEO: peoSyncMultiStart.h Source File + + + + +
    +
    +

    peoSyncMultiStart.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoSyncMultiStart.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoSyncMultiStart_h
    +00025 #define __peoSyncMultiStart_h
    +00026 
    +00027 #include <utils/eoUpdater.h>
    +00028 #include <moAlgo.h>
    +00029 
    +00030 #include <eoSelect.h>
    +00031 #include <eoReplacement.h>
    +00032 #include <eoContinue.h>
    +00033 
    +00034 #include "core/service.h"
    +00035 #include "core/messaging.h"
    +00036 #include "core/peo_debug.h"
    +00037 
    +00038 
    +00039 extern int getNodeRank();
    +00040 
    +00041 
    +00043 
    +00051 template< class EOT > class peoSyncMultiStart : public Service, public eoUpdater {
    +00052 
    +00053 public:
    +00054 
    +00062         peoSyncMultiStart( 
    +00063 
    +00064                                 eoContinue< EOT >& __cont,
    +00065                                 eoSelect< EOT >& __select,
    +00066                                 eoReplacement< EOT >& __replace,
    +00067                                 moAlgo< EOT >& __ls, 
    +00068                                 eoPop< EOT >& __pop 
    +00069                 );
    +00070 
    +00073         void operator()();
    +00074 
    +00077         void packData();
    +00078 
    +00081         void unpackData();
    +00082 
    +00085         void execute();
    +00086 
    +00089         void packResult();
    +00090 
    +00093         void unpackResult();
    +00094 
    +00097         void notifySendingData();
    +00098 
    +00101         void notifySendingAllResourceRequests();
    +00102 
    +00103 private:
    +00104 
    +00105         eoContinue< EOT >& cont;
    +00106         eoSelect< EOT >& select;
    +00107         eoReplacement< EOT >& replace;
    +00108 
    +00109         moAlgo< EOT >& ls;
    +00110 
    +00111         eoPop< EOT >& pop;
    +00112         eoPop< EOT > sel;
    +00113         eoPop< EOT > impr_sel;
    +00114 
    +00115         EOT sol;
    +00116         unsigned idx;
    +00117         unsigned num_term;
    +00118 };
    +00119 
    +00120 
    +00121 template< class EOT > peoSyncMultiStart< EOT > :: peoSyncMultiStart( 
    +00122 
    +00123                                 eoContinue < EOT >& __cont, 
    +00124                                 eoSelect< EOT >& __select,
    +00125                                 eoReplacement< EOT >& __replace, 
    +00126                                 moAlgo < EOT >& __ls,
    +00127                                 eoPop< EOT >& __pop 
    +00128 
    +00129                 ) : cont( __cont ), select( __select ), replace( __replace ), ls( __ls ), pop( __pop )
    +00130 {
    +00131 
    +00132 }
    +00133 
    +00134 
    +00135 template< class EOT > void peoSyncMultiStart< EOT > :: packData() {
    +00136 
    +00137          :: pack( sel[ idx++ ] );
    +00138 }
    +00139 
    +00140 
    +00141 template< class EOT > void peoSyncMultiStart< EOT > :: unpackData() {
    +00142 
    +00143         unpack( sol );
    +00144 }
    +00145 
    +00146 
    +00147 template< class EOT > void peoSyncMultiStart< EOT > :: execute() {
    +00148 
    +00149         ls( sol );
    +00150 }
    +00151 
    +00152 
    +00153 template< class EOT > void peoSyncMultiStart< EOT > :: packResult() {
    +00154 
    +00155         pack( sol );
    +00156 }
    +00157 
    +00158 
    +00159 template< class EOT > void peoSyncMultiStart< EOT > :: unpackResult() {
    +00160 
    +00161         unpack( sol );
    +00162         impr_sel.push_back( sol );
    +00163         num_term++;
    +00164 
    +00165         if ( num_term == sel.size() ) {
    +00166 
    +00167                 getOwner()->setActive();
    +00168                 replace( pop, impr_sel );
    +00169 
    +00170                 printDebugMessage( "replacing the improved individuals in the population." );
    +00171                 resume();
    +00172         }
    +00173 }
    +00174 
    +00175 
    +00176 template< class EOT > void peoSyncMultiStart< EOT > :: operator()() {
    +00177 
    +00178         printDebugMessage( "performing the parallel multi-start hybridization." );
    +00179         select( pop, sel );
    +00180         impr_sel.clear();
    +00181         idx = num_term = 0;
    +00182         requestResourceRequest( sel.size() );
    +00183         stop();
    +00184 }
    +00185 
    +00186 
    +00187 template< class EOT > void peoSyncMultiStart< EOT > :: notifySendingData() {
    +00188 
    +00189 }
    +00190 
    +00191 
    +00192 template< class EOT > void peoSyncMultiStart< EOT > :: notifySendingAllResourceRequests() {
    +00193 
    +00194         getOwner()->setPassive();
    +00195 }
    +00196 
    +00197 
    +00198 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peoTransform_8h-source.html b/trunk/paradiseo-peo/docs/html/peoTransform_8h-source.html new file mode 100644 index 000000000..453afaf34 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peoTransform_8h-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO: peoTransform.h Source File + + + + +
    +
    +

    peoTransform.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peoTransform.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peoTransform_h
    +00025 #define __peoTransform_h
    +00026 
    +00027 #include <eoTransform.h>
    +00028 
    +00029 #include "core/service.h"
    +00030 
    +00032 
    +00035 template< class EOT > class peoTransform : public Service, public eoTransform< EOT > {
    +00036 
    +00037 };
    +00038 
    +00039 
    +00040 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__debug_8cpp-source.html b/trunk/paradiseo-peo/docs/html/peo__debug_8cpp-source.html new file mode 100644 index 000000000..48bd60242 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__debug_8cpp-source.html @@ -0,0 +1,121 @@ + + +ParadisEO-PEO: peo_debug.cpp Source File + + + + +
    +
    +

    peo_debug.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_debug.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "peo_debug.h"
    +00025 
    +00026 #include <stdio.h>
    +00027 #include <time.h>
    +00028 #include <unistd.h>
    +00029 #include <string.h>
    +00030 #include <sys/types.h>
    +00031 #include <sys/stat.h>
    +00032 #include <vector>
    +00033 
    +00034 #include "peo_debug.h"
    +00035 
    +00036 #define MAX_BUFF_SIZE 1000
    +00037 
    +00038 #define DEBUG_PATH "./log/"
    +00039 
    +00040 static bool debug = true;
    +00041 
    +00042 static char host [MAX_BUFF_SIZE];
    +00043 
    +00044 std :: vector <FILE *> files;
    +00045 
    +00046 void setDebugMode (bool __dbg) {
    +00047 
    +00048   debug = __dbg;
    +00049   gethostname (host, MAX_BUFF_SIZE);
    +00050 }
    +00051 
    +00052 extern int getNodeRank ();
    +00053 
    +00054 void initDebugging () {
    +00055   
    +00056   mkdir (DEBUG_PATH, S_IRWXU);
    +00057   //  files.push_back (stdout);
    +00058   char buff [MAX_BUFF_SIZE];
    +00059   sprintf (buff, "%s/%d", DEBUG_PATH, getNodeRank ());
    +00060   files.push_back (fopen (buff, "w"));
    +00061 }
    +00062 
    +00063 void endDebugging () {
    +00064 
    +00065   for (unsigned i = 0; i < files.size (); i ++)
    +00066     if (files [i] != stdout)
    +00067       fclose (files [i]);
    +00068 }
    +00069 
    +00070 void printDebugMessage (const char * __mess) {
    +00071 
    +00072   if (debug) {
    +00073 
    +00074     char buff [MAX_BUFF_SIZE];
    +00075     time_t t = time (0);
    +00076 
    +00077     /* Date */
    +00078     sprintf (buff, "[%s][%s: ", host, ctime (& t));
    +00079     * strchr (buff, '\n') = ']';
    +00080     for (unsigned i = 0; i < files.size (); i ++)
    +00081       fprintf (files [i], buff);
    +00082 
    +00083     /* Message */
    +00084     sprintf (buff, "%s", __mess);
    +00085     
    +00086     for (unsigned i = 0; i < files.size (); i ++) {
    +00087       fputs (buff, files [i]);
    +00088       fputs ("\n", files [i]);
    +00089       fflush (files [i]);
    +00090     }
    +00091   }
    +00092 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__debug_8h-source.html b/trunk/paradiseo-peo/docs/html/peo__debug_8h-source.html new file mode 100644 index 000000000..1c8f35374 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__debug_8h-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO: peo_debug.h Source File + + + + +
    +
    +

    peo_debug.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_debug.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peo_debug_h
    +00025 #define __peo_debug_h
    +00026 
    +00027 extern void initDebugging ();
    +00028 
    +00029 extern void endDebugging ();
    +00030 
    +00031 extern void setDebugMode (bool __dbg = true); /* (Des)activating the Debugging mode */
    +00032 
    +00033 extern void printDebugMessage (const char * __mess); /* Print a new message both on the
    +00034                                                         standard output and a target
    +00035                                                         text-file in a subdirectory) */
    +00036 
    +00037 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__fin_8cpp-source.html b/trunk/paradiseo-peo/docs/html/peo__fin_8cpp-source.html new file mode 100644 index 000000000..2f3135992 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__fin_8cpp-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: peo_fin.cpp Source File + + + + +
    +
    +

    peo_fin.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_finalize.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "peo_fin.h"
    +00025 #include "peo_debug.h"
    +00026 #include "runner.h"
    +00027 #include "rmc.h"
    +00028 
    +00029 void peo :: finalize () {
    +00030 
    +00031   printDebugMessage ("waiting for the termination of all threads");
    +00032 
    +00033   joinRunners ();
    +00034 
    +00035   finalizeRMC ();
    +00036 
    +00037   printDebugMessage ("this is the end");
    +00038   endDebugging ();
    +00039 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__fin_8h-source.html b/trunk/paradiseo-peo/docs/html/peo__fin_8h-source.html new file mode 100644 index 000000000..46f5fdb90 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__fin_8h-source.html @@ -0,0 +1,61 @@ + + +ParadisEO-PEO: peo_fin.h Source File + + + + +
    +
    +

    peo_fin.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_finalize.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peo_finalize_h
    +00025 #define __peo_finalize_h
    +00026 
    +00027 namespace peo {
    +00028   
    +00029   extern void finalize ();
    +00030 }
    +00031 
    +00032 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__init_8cpp-source.html b/trunk/paradiseo-peo/docs/html/peo__init_8cpp-source.html new file mode 100644 index 000000000..ef3feb402 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__init_8cpp-source.html @@ -0,0 +1,81 @@ + + +ParadisEO-PEO: peo_init.cpp Source File + + + + +
    +
    +

    peo_init.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_init.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <stdio.h>
    +00025 
    +00026 #include "peo_init.h"
    +00027 #include "peo_param.h"
    +00028 #include "peo_debug.h"
    +00029 #include "rmc.h"
    +00030 
    +00031 namespace peo {
    +00032 
    +00033   int * argc;
    +00034   
    +00035   char * * * argv;
    +00036 
    +00037   void init (int & __argc, char * * & __argv) {
    +00038 
    +00039     argc = & __argc;
    +00040     
    +00041     argv = & __argv;
    +00042     
    +00043     /* Initializing the the Resource Management and Communication */
    +00044     initRMC (__argc, __argv);
    +00045 
    +00046     /* Loading the common parameters */ 
    +00047     loadParameters (__argc, __argv);
    +00048     
    +00049     /* */
    +00050     initDebugging ();
    +00051   }
    +00052 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__init_8h-source.html b/trunk/paradiseo-peo/docs/html/peo__init_8h-source.html new file mode 100644 index 000000000..e21d2938a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__init_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-PEO: peo_init.h Source File + + + + +
    +
    +

    peo_init.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_init.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peo_init_h
    +00025 #define __peo_init_h
    +00026 
    +00027 namespace peo {
    +00028 
    +00029   extern int * argc;
    +00030   
    +00031   extern char * * * argv;
    +00032   
    +00033   extern void init (int & __argc, char * * & __argv);
    +00034 }
    +00035 
    +00036 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__param_8cpp-source.html b/trunk/paradiseo-peo/docs/html/peo__param_8cpp-source.html new file mode 100644 index 000000000..03673b595 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__param_8cpp-source.html @@ -0,0 +1,69 @@ + + +ParadisEO-PEO: peo_param.cpp Source File + + + + +
    +
    +

    peo_param.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_param.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <utils/eoParser.h>
    +00025 
    +00026 #include "peo_param.h"
    +00027 #include "peo_debug.h"
    +00028 
    +00029 
    +00030 
    +00031 void peo :: loadParameters (int & __argc, char * * & __argv) {
    +00032 
    +00033   eoParser parser (__argc, __argv);
    +00034 
    +00035   /* Debug */
    +00036   eoValueParam <std :: string> debug_param ("false", "debug", "?");
    +00037   parser.processParam (debug_param);
    +00038   if (debug_param.value () == "true")
    +00039     setDebugMode ();
    +00040 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__param_8h-source.html b/trunk/paradiseo-peo/docs/html/peo__param_8h-source.html new file mode 100644 index 000000000..2744f5287 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__param_8h-source.html @@ -0,0 +1,61 @@ + + +ParadisEO-PEO: peo_param.h Source File + + + + +
    +
    +

    peo_param.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_param.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peo_param_h
    +00025 #define __peo_param_h
    +00026 
    +00027 namespace peo {
    +00028   
    +00029   extern void loadParameters (int & __argc, char * * & __argv);
    +00030 }
    +00031 
    +00032 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__run_8cpp-source.html b/trunk/paradiseo-peo/docs/html/peo__run_8cpp-source.html new file mode 100644 index 000000000..6abb7ffae --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__run_8cpp-source.html @@ -0,0 +1,63 @@ + + +ParadisEO-PEO: peo_run.cpp Source File + + + + +
    +
    +

    peo_run.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_run.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "peo_init.h"
    +00025 #include "peo_run.h"
    +00026 #include "rmc.h"
    +00027 #include "runner.h"
    +00028 
    +00029 void peo :: run () {
    +00030   
    +00031   startRunners ();
    +00032 
    +00033   runRMC ();
    +00034 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/peo__run_8h-source.html b/trunk/paradiseo-peo/docs/html/peo__run_8h-source.html new file mode 100644 index 000000000..137e9171e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/peo__run_8h-source.html @@ -0,0 +1,61 @@ + + +ParadisEO-PEO: peo_run.h Source File + + + + +
    +
    +

    peo_run.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "peo_run.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __peo_run_h
    +00025 #define __peo_run_h
    +00026 
    +00027 namespace peo {
    +00028   
    +00029   extern void run ();
    +00030 }
    +00031 
    +00032 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/reac__thread_8cpp-source.html b/trunk/paradiseo-peo/docs/html/reac__thread_8cpp-source.html new file mode 100644 index 000000000..c3422bd96 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/reac__thread_8cpp-source.html @@ -0,0 +1,80 @@ + + +ParadisEO-PEO: reac_thread.cpp Source File + + + + +
    +
    +

    reac_thread.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "reac_thread.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "reac_thread.h"
    +00025 
    +00026 static bool the_end = false;
    +00027 
    +00028 static std :: vector <ReactiveThread *> reac_threads;
    +00029 
    +00030 ReactiveThread :: ReactiveThread () {
    +00031 
    +00032   reac_threads.push_back (this);
    +00033   sem_init (& sem, 0, 0);
    +00034 }
    +00035 
    +00036 void ReactiveThread :: sleep () {
    +00037 
    +00038   sem_wait (& sem);     
    +00039 }
    +00040 
    +00041 void ReactiveThread :: wakeUp () {
    +00042 
    +00043   sem_post (& sem);     
    +00044 }
    +00045 
    +00046 void stopReactiveThreads () {
    +00047 
    +00048   the_end = true;
    +00049   for (unsigned i = 0; i < reac_threads.size (); i ++)
    +00050     reac_threads [i] -> wakeUp  ();     
    +00051 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/reac__thread_8h-source.html b/trunk/paradiseo-peo/docs/html/reac__thread_8h-source.html new file mode 100644 index 000000000..1226eff5f --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/reac__thread_8h-source.html @@ -0,0 +1,79 @@ + + +ParadisEO-PEO: reac_thread.h Source File + + + + +
    +
    +

    reac_thread.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "reac_thread.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef REAC_THREAD_H_
    +00025 #define REAC_THREAD_H_
    +00026 
    +00027 #include <semaphore.h>
    +00028 
    +00029 #include "thread.h"
    +00030 
    +00031 class ReactiveThread : public Thread {
    +00032         
    +00033 public:
    +00034 
    +00035   /* Ctor */
    +00036   ReactiveThread ();
    +00037 
    +00038   void sleep ();
    +00039   
    +00040   void wakeUp ();
    +00041     
    +00042 private:
    +00043 
    +00044   sem_t sem;
    +00045    
    +00046 };
    +00047 
    +00048 extern void stopReactiveThreads ();
    +00049 
    +00050 #endif /*THREAD_H_*/
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/recv_8cpp-source.html b/trunk/paradiseo-peo/docs/html/recv_8cpp-source.html new file mode 100644 index 000000000..c5c830053 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/recv_8cpp-source.html @@ -0,0 +1,156 @@ + + +ParadisEO-PEO: recv.cpp Source File + + + + +
    +
    +

    recv.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "recv.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "comm.h"
    +00025 #include "tags.h"
    +00026 #include "worker.h"
    +00027 #include "scheduler.h"
    +00028 #include "mess.h"
    +00029 #include "node.h"
    +00030 #include "../../core/runner.h"
    +00031 #include "../../core/cooperative.h"
    +00032 #include "../../core/peo_debug.h"
    +00033 
    +00034 void receiveMessages () {
    +00035 
    +00036   cleanBuffers ();
    +00037     
    +00038   do {
    +00039 
    +00040     if (! atLeastOneActiveThread ()) {
    +00041       //      printDebugMessage ("debut wait");
    +00042       waitMessage ();
    +00043       //printDebugMessage ("fin wait");
    +00044     }
    +00045     
    +00046     int src, tag;
    +00047 
    +00048     while (probeMessage (src, tag)) {
    +00049       
    +00050       receiveMessage (src, tag);
    +00051       initMessage ();
    +00052       /*
    +00053       char b [1000];
    +00054       sprintf (b, "traitement recv %d\n", tag);
    +00055       printDebugMessage (b);
    +00056       */
    +00057       
    +00058       switch (tag) {
    +00059         
    +00060       case RUNNER_STOP_TAG:     
    +00061         unpackTerminationOfRunner ();   
    +00062         wakeUpCommunicator ();
    +00063         break;
    +00064       
    +00065       case COOP_TAG:
    +00066         //      printDebugMessage ("reception de message de cooperation");
    +00067         COOP_ID coop_id;
    +00068         unpack (coop_id);
    +00069         getCooperative (coop_id) -> unpack ();
    +00070         break;
    +00071 
    +00072       case SCHED_REQUEST_TAG:   
    +00073         unpackResourceRequest ();
    +00074         break;
    +00075         
    +00076       case SCHED_RESULT_TAG:
    +00077         {         
    +00078           /* Unpacking the resource */
    +00079           SERVICE_ID serv_id;
    +00080           unpack (serv_id);
    +00081           Service * serv = getService (serv_id);
    +00082           int dest;
    +00083           unpack (dest);
    +00084           WORKER_ID worker_id;
    +00085           unpack (worker_id);
    +00086 
    +00087           /* Going back ... */
    +00088           initMessage ();
    +00089           pack (worker_id);
    +00090           pack (serv_id); 
    +00091           serv -> packData ();
    +00092           serv -> notifySendingData ();
    +00093           sendMessage (dest, TASK_DATA_TAG);
    +00094           break;
    +00095         }
    +00096 
    +00097       case TASK_DATA_TAG:
    +00098       {
    +00099         WORKER_ID worker_id;
    +00100         unpack (worker_id);             
    +00101         Worker * worker = getWorker (worker_id);
    +00102         worker -> setSource (src);
    +00103         worker -> unpackData ();
    +00104         worker -> wakeUp ();
    +00105         break; 
    +00106       }
    +00107       
    +00108       case TASK_RESULT_TAG:
    +00109         {
    +00110           SERVICE_ID serv_id;
    +00111           unpack (serv_id);
    +00112           Service * serv = getService (serv_id);
    +00113           serv -> unpackResult ();
    +00114           break;
    +00115         }
    +00116 
    +00117       case TASK_DONE_TAG:
    +00118         unpackTaskDone ();
    +00119         break;
    +00120 
    +00121       default:
    +00122         ;
    +00123       };
    +00124     }
    +00125         
    +00126   } while (! atLeastOneActiveThread () && atLeastOneActiveRunner () /*&& ! allResourcesFree ()*/);
    +00127 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/recv_8h-source.html b/trunk/paradiseo-peo/docs/html/recv_8h-source.html new file mode 100644 index 000000000..e901eba2c --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/recv_8h-source.html @@ -0,0 +1,58 @@ + + +ParadisEO-PEO: recv.h Source File + + + + +
    +
    +

    recv.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "recv.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __recv_h
    +00025 #define __recv_h
    +00026 
    +00027 extern void receiveMessages ();
    +00028 
    +00029 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/ring__topo_8cpp-source.html b/trunk/paradiseo-peo/docs/html/ring__topo_8cpp-source.html new file mode 100644 index 000000000..e3a6a368b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/ring__topo_8cpp-source.html @@ -0,0 +1,69 @@ + + +ParadisEO-PEO: ring_topo.cpp Source File + + + + +
    +
    +

    ring_topo.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "ring_topo.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, September 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "ring_topo.h"
    +00025 
    +00026 void RingTopology :: setNeighbors (Cooperative * __mig,
    +00027                                    std :: vector <Cooperative *> & __from,
    +00028                                    std :: vector <Cooperative *> & __to) {
    +00029   __from.clear () ;
    +00030   __to.clear () ;
    +00031 
    +00032     int len = mig.size () ;
    +00033     
    +00034     for (int i = 0 ; i < len ; i ++)      
    +00035       if (mig [i] == __mig) {   
    +00036         __from.push_back (mig [(i - 1 + len) % len]) ;
    +00037         __to.push_back (mig [(i + 1) % len]) ;  
    +00038         break;
    +00039       }
    +00040 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/ring__topo_8h-source.html b/trunk/paradiseo-peo/docs/html/ring__topo_8h-source.html new file mode 100644 index 000000000..63dbe46a7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/ring__topo_8h-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: ring_topo.h Source File + + + + +
    +
    +

    ring_topo.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "ring_topo.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, September 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __ring_topo_h
    +00025 #define __ring_topo_h
    +00026 
    +00027 #include "topology.h"
    +00028 
    +00029 class RingTopology : public Topology {
    +00030   
    +00031 public :
    +00032    
    +00033   void setNeighbors (Cooperative * __mig,
    +00034                      std :: vector <Cooperative *> & __from,
    +00035                      std :: vector <Cooperative *> & __to);
    +00036   
    +00037 };
    +00038 
    +00039 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/rmc_2mpi_2runner_8cpp-source.html b/trunk/paradiseo-peo/docs/html/rmc_2mpi_2runner_8cpp-source.html new file mode 100644 index 000000000..208cd2daf --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/rmc_2mpi_2runner_8cpp-source.html @@ -0,0 +1,77 @@ + + +ParadisEO-PEO: runner.cpp Source File + + + + +
    +
    +

    runner.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "runner.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "../../core/messaging.h"
    +00025 #include "../../core/runner.h"
    +00026 #include "node.h"
    +00027 #include "send.h"
    +00028 #include "tags.h"
    +00029 #include "schema.h"
    +00030 
    +00031 bool Runner :: isLocal () {
    +00032 
    +00033   for (unsigned i = 0; i < my_node -> id_run.size (); i ++)
    +00034     if (my_node -> id_run [i] == id)
    +00035       return true;
    +00036   return false;
    +00037 }
    +00038 
    +00039 void Runner :: packTermination () {
    +00040 
    +00041   pack (id);
    +00042 }
    +00043 
    +00044 void Runner :: terminate () {
    +00045 
    +00046   sendToAll (this, RUNNER_STOP_TAG);     
    +00047 }
    +00048 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/rmc_2mpi_2service_8cpp-source.html b/trunk/paradiseo-peo/docs/html/rmc_2mpi_2service_8cpp-source.html new file mode 100644 index 000000000..aa998fa43 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/rmc_2mpi_2service_8cpp-source.html @@ -0,0 +1,74 @@ + + +ParadisEO-PEO: service.cpp Source File + + + + +
    +
    +

    service.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "service.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "../../core/service.h"
    +00025 #include "../../core/messaging.h"
    +00026 #include "node.h"
    +00027 #include "tags.h"
    +00028 #include "send.h"
    +00029 #include "scheduler.h"
    +00030 
    +00031 void Service :: requestResourceRequest (unsigned __how_many) {
    +00032 
    +00033   num_sent_rr = __how_many;
    +00034   for (unsigned i = 0; i < __how_many; i ++)
    +00035     send (this, my_node -> rk_sched, SCHED_REQUEST_TAG);
    +00036 }
    +00037 
    +00038 void Service :: packResourceRequest () {
    +00039 
    +00040   SCHED_REQUEST req;
    +00041   req.first = getNodeRank ();
    +00042   req.second = getKey ();
    +00043   //  printf ("demande de ressource pour %d\n", req.second);
    +00044   :: pack (req);
    +00045 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/rmc_8cpp-source.html b/trunk/paradiseo-peo/docs/html/rmc_8cpp-source.html new file mode 100644 index 000000000..626176da4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/rmc_8cpp-source.html @@ -0,0 +1,90 @@ + + +ParadisEO-PEO: rmc.cpp Source File + + + + +
    +
    +

    rmc.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; messent-column: 35; -*-
    +00002 
    +00003 // "rmc.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "send.h"
    +00025 #include "worker.h"
    +00026 #include "schema.h"
    +00027 #include "comm.h"
    +00028 #include "scheduler.h"
    +00029 #include "../../core/peo_debug.h"
    +00030 
    +00031 static std :: vector <pthread_t *> ll_threads; /* Low level threads */
    +00032 
    +00033 void runRMC () {
    +00034 
    +00035   /* Worker(s) ? */
    +00036   for (unsigned i = 0; i < my_node -> num_workers; i ++) 
    +00037     addThread (new Worker, ll_threads);
    +00038 
    +00039   wakeUpCommunicator ();
    +00040 }
    +00041 
    +00042 void initRMC (int & __argc, char * * & __argv) {
    +00043 
    +00044   /* Communication */
    +00045   initCommunication ();
    +00046   addThread (new Communicator (& __argc, & __argv), ll_threads);
    +00047   waitNodeInitialization ();
    +00048   initSending ();
    +00049 
    +00050   /* Scheduler */
    +00051   if (isScheduleNode ())
    +00052     initScheduler ();
    +00053 
    +00055 }
    +00056 
    +00057 void finalizeRMC () {
    +00058 
    +00059   printDebugMessage ("before join threads RMC");
    +00060   joinThreads (ll_threads);
    +00061   printDebugMessage ("after join threads RMC");
    +00062 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/rmc_8h-source.html b/trunk/paradiseo-peo/docs/html/rmc_8h-source.html new file mode 100644 index 000000000..bed4c7c1d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/rmc_8h-source.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: rmc.h Source File + + + + +
    +
    +

    rmc.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "rmc.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __rmc_h
    +00025 #define __rmc_h
    +00026 
    +00027 extern void initRMC (int & __argc, char * * & __argv);
    +00028 
    +00029 extern void runRMC (); /* Resource Management and Communication */ 
    +00030 
    +00031 extern void finalizeRMC ();
    +00032 
    +00033 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/runner_8h-source.html b/trunk/paradiseo-peo/docs/html/runner_8h-source.html new file mode 100644 index 000000000..9c51ac8e7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/runner_8h-source.html @@ -0,0 +1,102 @@ + + +ParadisEO-PEO: runner.h Source File + + + + +
    +
    +

    runner.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "runner.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __runner_h
    +00025 #define __runner_h
    +00026 
    +00027 #include <eoFunctor.h>
    +00028 
    +00029 #include "communicable.h"
    +00030 #include "thread.h"
    +00031 
    +00032 typedef unsigned RUNNER_ID;
    +00033 
    +00034 class Runner : public Communicable, public Thread {
    +00035 
    +00036 public :
    +00037 
    +00038   Runner ();
    +00039 
    +00040   void start ();
    +00041 
    +00042   void waitStarting ();
    +00043 
    +00044   bool isLocal ();
    +00045 
    +00046   void terminate ();
    +00047 
    +00048   virtual void run () = 0;
    +00049   
    +00050   RUNNER_ID getID (); 
    +00051 
    +00052   void packTermination ();
    +00053 
    +00054   void notifySendingTermination ();
    +00055 
    +00056 private :
    +00057 
    +00058   sem_t sem_start;
    +00059 
    +00060   unsigned id;
    +00061 };
    +00062 
    +00063 extern bool atLeastOneActiveRunner ();
    +00064 
    +00065 extern void unpackTerminationOfRunner ();
    +00066 
    +00067 extern Runner * getRunner (RUNNER_ID __key); 
    +00068 
    +00069 extern void startRunners ();
    +00070 
    +00071 extern void joinRunners ();
    +00072 
    +00073 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/scheduler_8cpp-source.html b/trunk/paradiseo-peo/docs/html/scheduler_8cpp-source.html new file mode 100644 index 000000000..3279dc8e1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/scheduler_8cpp-source.html @@ -0,0 +1,122 @@ + + +ParadisEO-PEO: scheduler.cpp Source File + + + + +
    +
    +

    scheduler.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "sched_thread.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <queue>
    +00025 
    +00026 #include "scheduler.h"
    +00027 #include "tags.h"
    +00028 #include "mess.h"
    +00029 #include "../../core/peo_debug.h"
    +00030 
    +00031 static std :: queue <SCHED_RESOURCE> resources; /* Free resources */
    +00032 
    +00033 static std :: queue <SCHED_REQUEST> requests; /* Requests */
    +00034 
    +00035 static unsigned initNumberOfRes = 0;
    +00036 
    +00037 void initScheduler () {
    +00038   
    +00039   for (unsigned i = 0; i < the_schema.size (); i ++) {
    +00040     
    +00041     const Node & node = the_schema [i];
    +00042     
    +00043     if (node.rk_sched == my_node -> rk)      
    +00044       for (unsigned j = 0; j < node.num_workers; j ++)
    +00045         resources.push (std :: pair <RANK_ID, WORKER_ID> (i, j + 1));    
    +00046   }  
    +00047   initNumberOfRes = resources.size ();
    +00048 }
    +00049 
    +00050 bool allResourcesFree () {
    +00051 
    +00052   return resources.size () == initNumberOfRes;
    +00053 }
    +00054 
    +00055 static void update () {
    +00056 
    +00057   unsigned num_alloc = std :: min (resources.size (), requests.size ());
    +00058   
    +00059   for (unsigned i = 0; i < num_alloc; i ++) {
    +00060     
    +00061     SCHED_REQUEST req = requests.front ();
    +00062     requests.pop ();
    +00063     
    +00064     SCHED_RESOURCE res = resources.front ();
    +00065     resources.pop ();
    +00066 
    +00067     printDebugMessage ("allocating a resource.");    
    +00068     initMessage ();
    +00069     pack (req.second);
    +00070     pack (res);
    +00071     sendMessage (req.first, SCHED_RESULT_TAG);
    +00072   }  
    +00073 }
    +00074 
    +00075 void unpackResourceRequest () {
    +00076 
    +00077   printDebugMessage ("queuing a resource request.");
    +00078   SCHED_REQUEST req;
    +00079   unpack (req);
    +00080   requests.push (req);
    +00081   update ();
    +00082 }
    +00083 
    +00084 void unpackTaskDone () {
    +00085 
    +00086   printDebugMessage ("I'm notified a worker is now idle.");
    +00087   SCHED_RESOURCE res;
    +00088   unpack (res);
    +00089   resources.push (res);
    +00090   if (resources.size () == initNumberOfRes)
    +00091     printDebugMessage ("all the resources are now free.");
    +00092   update ();
    +00093 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/scheduler_8h-source.html b/trunk/paradiseo-peo/docs/html/scheduler_8h-source.html new file mode 100644 index 000000000..8f11c5672 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/scheduler_8h-source.html @@ -0,0 +1,76 @@ + + +ParadisEO-PEO: scheduler.h Source File + + + + +
    +
    +

    scheduler.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "scheduler.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __scheduler_h
    +00025 #define __scheduler_h
    +00026 
    +00027 #include <utility>
    +00028 
    +00029 #include "schema.h"
    +00030 #include "worker.h"
    +00031 
    +00032 typedef std :: pair <RANK_ID, WORKER_ID> SCHED_RESOURCE;
    +00033 
    +00034 typedef std :: pair <RANK_ID, SERVICE_ID> SCHED_REQUEST;
    +00035 
    +00036 /* Initializing the list of available workers */
    +00037 extern void initScheduler ();
    +00038 
    +00039 /* Processing a resource request from a service */
    +00040 extern void unpackResourceRequest ();
    +00041 
    +00042 /* Being known a worker is now idle :-) */
    +00043 extern void unpackTaskDone (); 
    +00044 
    +00045 extern bool allResourcesFree ();
    +00046 
    +00047 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/schema_8cpp-source.html b/trunk/paradiseo-peo/docs/html/schema_8cpp-source.html new file mode 100644 index 000000000..58d62896a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/schema_8cpp-source.html @@ -0,0 +1,179 @@ + + +ParadisEO-PEO: schema.cpp Source File + + + + +
    +
    +

    schema.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "schema.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <iostream>
    +00025 #include <assert.h>
    +00026 
    +00027 #include "schema.h"
    +00028 #include "xml_parser.h"
    +00029 #include "comm.h"
    +00030 #include "node.h"
    +00031 #include "../../core/peo_debug.h"
    +00032 
    +00033 std :: vector <Node> the_schema;
    +00034 
    +00035 Node * my_node;
    +00036 
    +00037 RANK_ID getRankOfRunner (RUNNER_ID __key) {
    +00038 
    +00039   for (unsigned i = 0; i < the_schema.size (); i ++)
    +00040     for (unsigned j = 0; j < the_schema [i].id_run.size (); j ++)
    +00041       if (the_schema [i].id_run [j] == __key)
    +00042         return the_schema [i].rk;
    +00043   assert (false);
    +00044   return 0; 
    +00045 }
    +00046 
    +00047 static void loadNode (int __rk_sched) {
    +00048 
    +00049   Node node;
    +00050   
    +00051   node.rk_sched = __rk_sched;
    +00052 
    +00053   /* ATT: name*/
    +00054   node.rk = getRankFromName (getAttributeValue ("name"));
    +00055   /* ATT: num_workers */
    +00056   node.num_workers = atoi (getAttributeValue ("num_workers").c_str ());
    +00057 
    +00058   while (true) {
    +00059     
    +00060     /* TAG: <runner> | </node> */
    +00061     std :: string name = getNextNode ();
    +00062     assert (name == "runner" || name == "node");    
    +00063     if (name == "runner") {
    +00064       /* TAG: </node> */
    +00065       node.id_run.push_back (atoi (getNextNode ().c_str ()));
    +00066       /* TAG: </runner> */
    +00067       assert (getNextNode () == "runner");
    +00068     }
    +00069     else {      
    +00070       /* TAG: </node> */
    +00071       the_schema.push_back (node); 
    +00072       break;
    +00073     }
    +00074   }
    +00075 }
    +00076 
    +00077 static void loadGroup () {
    +00078 
    +00079   std :: string name;
    +00080   
    +00081   /* ATT: scheduler*/
    +00082   int rk_sched = getRankFromName (getAttributeValue ("scheduler"));
    +00083   
    +00084   while (true) {
    +00085 
    +00086     /* TAG: <node> | </group> */
    +00087     name = getNextNode ();
    +00088     assert (name == "node" || name == "group");    
    +00089     if (name == "node")
    +00090       /* TAG: <node> */
    +00091       loadNode (rk_sched);
    +00092     else
    +00093       /* TAG: </group> */
    +00094       break;
    +00095   }
    +00096 }
    +00097 
    +00098 bool isScheduleNode () {
    +00099   
    +00100   return my_node -> rk == my_node -> rk_sched;
    +00101 }
    +00102 
    +00103 void loadSchema (const char * __filename) {
    +00104   
    +00105   openXMLDocument (__filename);
    +00106   
    +00107   std :: string name;
    +00108   
    +00109   /* TAG: <schema> */
    +00110   name = getNextNode ();
    +00111   assert (name == "schema");
    +00112     
    +00113   while (true) {
    +00114 
    +00115     /* TAG: <group> | </schema> */
    +00116     name = getNextNode ();
    +00117     assert (name == "group" || name == "schema");    
    +00118     if (name == "group")
    +00119       /* TAG: <group> */
    +00120       loadGroup ();
    +00121     else
    +00122       /* TAG: </schema> */
    +00123       break;    
    +00124   }
    +00125 
    +00126   /* Looking for my node */
    +00127   for (unsigned i = 0; i < the_schema.size (); i ++)
    +00128     if (the_schema [i].rk == getNodeRank ())
    +00129       my_node = & (the_schema [i]);
    +00130   
    +00131   /* About me */
    +00132   char mess [1000];
    +00133   
    +00134   sprintf (mess, "my rank is %d", my_node -> rk);
    +00135   printDebugMessage (mess);
    +00136   if (isScheduleNode ())
    +00137     printDebugMessage ("I'am a scheduler");  
    +00138   for (unsigned i = 0; i < my_node -> id_run.size (); i ++) {
    +00139     sprintf (mess, "I manage the runner %d", my_node -> id_run [i]);
    +00140     printDebugMessage (mess);
    +00141   }
    +00142   if (my_node -> num_workers) {
    +00143     
    +00144     sprintf (mess, "I manage %d worker(s)", my_node -> num_workers);
    +00145     printDebugMessage (mess);
    +00146   }
    +00147           
    +00148   closeXMLDocument ();
    +00149 }
    +00150 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/schema_8h-source.html b/trunk/paradiseo-peo/docs/html/schema_8h-source.html new file mode 100644 index 000000000..2af88fe16 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/schema_8h-source.html @@ -0,0 +1,83 @@ + + +ParadisEO-PEO: schema.h Source File + + + + +
    +
    +

    schema.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "schema.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __schema_h
    +00025 #define __schema_h
    +00026 
    +00027 #include <string>
    +00028 #include <vector>
    +00029 #include <cassert>
    +00030 
    +00031 #include "../../core/runner.h"
    +00032 
    +00033 typedef int RANK_ID;
    +00034 
    +00035 struct Node {
    +00036   
    +00037   RANK_ID rk; /* Rank */
    +00038   std :: string name; /* Host name */
    +00039   unsigned num_workers; /* Number of parallel workers */
    +00040   int rk_sched; /* rank of the scheduler */
    +00041   std :: vector <RUNNER_ID> id_run; /* List of runners */
    +00042 };
    +00043 
    +00044 extern std :: vector <Node> the_schema;
    +00045 
    +00046 extern Node * my_node;
    +00047 
    +00048 extern void loadSchema (const char * __filename);
    +00049 
    +00050 extern RANK_ID getRankOfRunner (RUNNER_ID __key);
    +00051 
    +00052 extern bool isScheduleNode ();
    +00053 
    +00054 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/search.idx b/trunk/paradiseo-peo/docs/html/search.idx new file mode 100644 index 0000000000000000000000000000000000000000..c67b38ad4fbf51ff3647779cea5ec11a8a23a5eb GIT binary patch literal 377020 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 + +Search + + + + +
    +
      +
    • Main Page
    • +
    • Namespaces
    • +
    • Classes
    • +
    • Files
    • +
    • +
      + + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
      \n
      \n
    • \n
    \n
    \n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

    ".search_results()."

    ".matches_text(0)."
    ".matches_text($numDocs); + echo "\n"; + echo "
    $num.".$doc["name"]."
    ".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
    \n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
    \n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
    \n"; + fclose($file); +} + +main(); + + +?> +
    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/send_8cpp-source.html b/trunk/paradiseo-peo/docs/html/send_8cpp-source.html new file mode 100644 index 000000000..97e275237 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/send_8cpp-source.html @@ -0,0 +1,160 @@ + + +ParadisEO-PEO: send.cpp Source File + + + + +
    +
    +

    send.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "send.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <mpi.h>
    +00025 #include <semaphore.h>
    +00026 #include <queue>
    +00027 
    +00028 #include "tags.h"
    +00029 #include "comm.h"
    +00030 #include "worker.h"
    +00031 #include "scheduler.h"
    +00032 #include "mess.h"
    +00033 #include "node.h"
    +00034 #include "../../core/cooperative.h"
    +00035 #include "../../core/peo_debug.h"
    +00036 
    +00037 #define TO_ALL -1
    +00038 
    +00039 typedef struct {
    +00040 
    +00041   Communicable * comm;
    +00042   int to;
    +00043   int tag;
    +00044 
    +00045 } SEND_REQUEST;
    +00046         
    +00047 static std :: queue <SEND_REQUEST> mess;
    +00048 
    +00049 static sem_t sem_send;
    +00050 
    +00051 void initSending () {
    +00052 
    +00053   sem_init (& sem_send, 0, 1);
    +00054 }
    +00055 
    +00056 void send (Communicable * __comm, int __to, int __tag) {
    +00057 
    +00058   SEND_REQUEST req;  
    +00059   req.comm = __comm;
    +00060   req.to = __to;
    +00061   req.tag = __tag;
    +00062 
    +00063   sem_wait (& sem_send);
    +00064   mess.push (req);
    +00065   sem_post (& sem_send);
    +00066   wakeUpCommunicator ();
    +00067 }
    +00068 
    +00069 void sendToAll (Communicable * __comm, int __tag) {
    +00070   
    +00071   send (__comm, TO_ALL, __tag);
    +00072 }
    +00073 
    +00074 void sendMessages () {
    +00075 
    +00076   sem_wait (& sem_send);
    +00077 
    +00078   while (! mess.empty ()) {
    +00079     
    +00080     SEND_REQUEST req = mess.front ();
    +00081     /*
    +00082     char b [1000];
    +00083     sprintf (b, "traitement send %d\n", req.tag);
    +00084     printDebugMessage (b);
    +00085     */
    +00086     
    +00087     Communicable * comm = req.comm;
    +00088 
    +00089     initMessage ();
    +00090 
    +00091     switch (req.tag) {
    +00092 
    +00093     case RUNNER_STOP_TAG:
    +00094       dynamic_cast <Runner *> (comm) -> packTermination ();            
    +00095       dynamic_cast <Runner *> (comm) -> notifySendingTermination ();            
    +00096       break;
    +00097 
    +00098     case COOP_TAG:
    +00099       dynamic_cast <Cooperative *> (comm) -> pack ();      
    +00100       dynamic_cast <Cooperative *> (comm) -> notifySending ();      
    +00101       break;
    +00102           
    +00103     case SCHED_REQUEST_TAG:
    +00104       dynamic_cast <Service *> (comm) -> packResourceRequest ();
    +00105       dynamic_cast <Service *> (comm) -> notifySendingResourceRequest ();            
    +00106       break;
    +00107 
    +00108     case TASK_RESULT_TAG:
    +00109       dynamic_cast <Worker *> (comm) -> packResult ();
    +00110       dynamic_cast <Worker *> (comm) -> notifySendingResult ();
    +00111       break;
    +00112 
    +00113     case TASK_DONE_TAG:
    +00114       dynamic_cast <Worker *> (comm) -> packTaskDone ();
    +00115       dynamic_cast <Worker *> (comm) -> notifySendingTaskDone ();
    +00116       break;
    +00117       
    +00118     default :
    +00119       break;
    +00120 
    +00121     };
    +00122     
    +00123     if (req.to == TO_ALL)
    +00124       sendMessageToAll (req.tag);
    +00125     else
    +00126       sendMessage (req.to, req.tag);
    +00127     mess.pop ();
    +00128   }
    +00129 
    +00130   sem_post (& sem_send);  
    +00131 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/send_8h-source.html b/trunk/paradiseo-peo/docs/html/send_8h-source.html new file mode 100644 index 000000000..b69995293 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/send_8h-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO: send.h Source File + + + + +
    +
    +

    send.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "send.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __send_h
    +00025 #define __send_h
    +00026 
    +00027 #include "../../core/communicable.h"
    +00028 
    +00029 extern void initSending ();
    +00030 
    +00031 extern void send (Communicable * __comm, int __to, int __tag);
    +00032 
    +00033 extern void sendToAll (Communicable * __comm, int __tag);
    +00034 
    +00035 extern void sendMessages ();
    +00036 
    +00037 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/service_8h-source.html b/trunk/paradiseo-peo/docs/html/service_8h-source.html new file mode 100644 index 000000000..3b62f9b65 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/service_8h-source.html @@ -0,0 +1,94 @@ + + +ParadisEO-PEO: service.h Source File + + + + +
    +
    +

    service.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "service.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __service_h
    +00025 #define __service_h
    +00026 
    +00027 #include "communicable.h"
    +00028 #include "thread.h"
    +00029 
    +00030 typedef unsigned SERVICE_ID;
    +00031 
    +00032 class Service : public Communicable {
    +00033 
    +00034 public :
    +00035 
    +00036   void setOwner (Thread & __owner);
    +00037   
    +00038   Thread * getOwner (); 
    +00039 
    +00040   void requestResourceRequest (unsigned __how_many = 1);
    +00041   void packResourceRequest ();
    +00042 
    +00043   virtual void packData ();
    +00044   virtual void unpackData ();
    +00045 
    +00046   virtual void execute ();
    +00047   
    +00048   virtual void packResult ();
    +00049   virtual void unpackResult ();
    +00050 
    +00051   virtual void notifySendingData ();
    +00052   virtual void notifySendingResourceRequest ();
    +00053   virtual void notifySendingAllResourceRequests ();
    +00054 
    +00055 private :
    +00056 
    +00057   Thread * owner; /* Owner thread (i.e. 'uses' that service) */ 
    +00058 
    +00059   unsigned num_sent_rr; /* Number of RR not really sent (i.e. still in the sending queue)*/
    +00060 
    +00061 };
    +00062 
    +00063 extern Service * getService (SERVICE_ID __key); 
    +00064 
    +00065 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/structNode-members.html b/trunk/paradiseo-peo/docs/html/structNode-members.html new file mode 100644 index 000000000..6eff7a850 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/structNode-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-PEO: Member List + + + + +
    +
    + +

    Node Member List

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

    + + + + + +
    id_runNode
    nameNode
    num_workersNode
    rkNode
    rk_schedNode


    Generated on Sun Jan 7 18:35:24 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/structNode.html b/trunk/paradiseo-peo/docs/html/structNode.html new file mode 100644 index 000000000..8991bb77e --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/structNode.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: Node Struct Reference + + + + +
    +
    + +

    Node Struct Reference

    List of all members. + + + + + + + + + + + + +

    Public Attributes

    +RANK_ID rk
    +std::string name
    +unsigned num_workers
    +int rk_sched
    +std::vector< RUNNER_ID > id_run
    +

    Detailed Description

    + +

    + +

    +Definition at line 35 of file schema.h.


    The documentation for this struct was generated from the following file: +
    Generated on Sun Jan 7 18:35:24 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/structSEND__REQUEST-members.html b/trunk/paradiseo-peo/docs/html/structSEND__REQUEST-members.html new file mode 100644 index 000000000..b3f4f0fb7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/structSEND__REQUEST-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-PEO: Member List + + + + +
    +
    + +

    SEND_REQUEST Member List

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

    + + + +
    commSEND_REQUEST
    tagSEND_REQUEST
    toSEND_REQUEST


    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/structSEND__REQUEST.html b/trunk/paradiseo-peo/docs/html/structSEND__REQUEST.html new file mode 100644 index 000000000..cdd468be0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/structSEND__REQUEST.html @@ -0,0 +1,56 @@ + + +ParadisEO-PEO: SEND_REQUEST Struct Reference + + + + +
    +
    + +

    SEND_REQUEST Struct Reference

    List of all members. + + + + + + + + +

    Public Attributes

    +Communicablecomm
    +int to
    +int tag
    +

    Detailed Description

    + +

    + +

    +Definition at line 39 of file send.cpp.


    The documentation for this struct was generated from the following file: +
    Generated on Sun Jan 7 18:35:27 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/tab_b.gif b/trunk/paradiseo-peo/docs/html/tab_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d623483ffdf5f9f96900108042a7ab0643fe2a3 GIT binary patch literal 35 ncmZ?wbhEHbWMp7uXkcJy*>IeJfk6j|fqX^=1|}vKMh0sDa2W*H literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/tab_l.gif b/trunk/paradiseo-peo/docs/html/tab_l.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b1e6337c9299a700401a2a78a2c6ffced475216 GIT binary patch literal 706 zcmZ?wbhEHbZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET99@1@a36+kb~?0UJ*yc&I3X_m z!ND^5$O7$#8OFRuDhG}!?8z?cdZK&!`PWjdR;Aj^wZ` zeK{IEYHBJ)6K8VIp1`BVt++swf6j+=L{p1*nO(VhE`pFexG@5$|>uaCcd z`0m=9m+yak{QmXN#Sc$^{$X9h9&q2jiKAI|&T)a;PPx2K9p`YIdw8HtR5k2Q$2-O2 z*;3y{MQ-RnJTgJfI&R5|O)AHxDf_00XbPvDZPy4t=hHd)nfLPvms&O`Ok(sD()5v$ z5U@&h;a=#xbxVbo2~X&Xj0Ie(f{v>vERH+qC+nTG=B8Nca=wU-O$?1&vUgV~9=!H; zx>3p9Yn%*<>t~sk+&0xfyS8RsPfYBd<~wWK%j-LmpU>O7yX^h#UCp1x-p#i7@bE;py8XI6 zmY<)m>~)W~yIWcMVoiPg{duuf<*)9qZ9l$m*Ph&W&$jlv*Vpa+{pH@n=IQ$L?0$ax ec60Ul|8o2P|NVbd{6P)#weSbE3}s?04AuZvx_~SI literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/tab_r.gif b/trunk/paradiseo-peo/docs/html/tab_r.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce9dd9f533cb5486d6941844f442b59d4a9e9175 GIT binary patch literal 2585 zcmbV}`9Bkk1ILFF--w5zJc=ZZT(zjE=;2|_S)Qm~rCWz1Pc)KPl;jv%A#&v2*x}yc zmf2~Jm~&=xjJY?PqwIN}f8qQ2{r$uH{c*nJbmr{cR5??*egHrs-B=MzCF`3%e{FAW z{oL5xTHn~5TM{jaB;@|_Ue5F&Zb@p(kMyG{*;gWDg zyeL|eZf7Qd8=#bXzSiR{yzRgLSj-fJS8>lBjVHN z^o-0eS=nE6a`W;LChBs=`+QAJP~{b93>H^eRb5kCSC1zUNezun%`L5M?RDzv#%jk7 zYVRX=vATPD`+oEfum^{RM@GjuP?-r=yh0!p;Vx^T9G7~`7%5ydH%70=jyJ;;`d;hv92x3R=z{xp+Lg2!*@OK*K15-t&okoPtSED)h&$RLxdbA zseWm^C3d%-yRNi-ryk^!ek+C`n&~cd$#ZWct_cUL{l~i+Nzx^5d!n94(>bW-iL~Rl z&8r)?q|1DIo=0=judQ{FaGcfLERz8gfn3-Qt<2lksh{mzpT}DXxUuR^z=^key&q4! z+wWI45vL0k$R^(F#{qfqhUsN@WA+w-V?LPH33!Q?WFSB3)WBojE@hK41Nb?KfS+Qo zXgrzfsP$wr4Qzy*{OD>uJBjdgGM@VMml5)2f~_}lD*YyOb}Hjeobhz#4c`w(l^>KK zr?Ud;W~Z}*w;%hZ|2^p^+f06gJDJQD zeIhGADbDmm&6arh(q>EZ<7mjzg7l|z$hRL8=1>)Nv=S7CY$B}iYJ&*T_-T_OG*L1q ztZ3Lana33?y3AKnyq^YCF|4x%Rb5WU&2qcl{TFKey%QJeMxn^SdT!hZ5+0i1zeusiYVp-phBl7b5+Px-X&LhByq z0F&<;K0l2+v>qiHlXb#$jXMv$uK-dEGE9L~qtdU(XeRXmvu*K2Q&6!fD**JxYP4b4BR7FdJ$Qx9G9`J%-_X!a#LGpp3g9)VWytGCa;7`S1_e8F~!R+aSJ zOF17p2`H?2kPs8Q`_;U}+D%3p zs2-0BTqFwpUoBk`?P;iPQ(IbEA|JmMx!P&YYG|R@S=5Mnw;-?A6rEEVyV%d7{iU4a zNk`i!%F(Ykpm`}#oH;BjY->@b8vQedv;pza2FL&*6ufjd+*3Ute&>kes~TU?^KkojsTh(o~(3tk1Y6>4(yn( z#U*ID9@eg-beKo1B;HXe+}{Z%n@7m0+yxivuqk9~;!1LGQlah)xYK4>wgL}l6dsaN zIxlRlq`*`j9PG4*0hD6YV_b_2w5b#)o7J?`q#{GjvvKlD`T*dWcZx<-s(ZvLB44E# z=!|sw!?)@%y$oRNL#25WS3lzdii}TuQ3?CLnvQ1_n};2sT_;Y;#d3=+-(O% zMN$>O!3;ke(UuLR%h_&)N zs^!-@A>QR}4yB1bPp`9S19ikTbZ~O{&FF-yHK{En;mmShDUIEw03`j(DBIsM}Rjki2J#SQa3gFZTKBPDeIiLt9Z z%bL3(B@Qw%(B`wSMS~dPh$=R`(}lBoFXKy(s|*{#ru$wjsBc_O#zxNk9w+UUHmx(U zmJ8+M+ndtnZ<7|VU9Mbt61zpo9T&3%Wx&XII=#QJxjR`CZf22ac3d51Z?GD%LEe_&*t46Qf;4`bZ7p2K(Ab5>GfT^}4! zBT&HZD`^PEgWoI&{~o-ID0F?O`75sm(87x%A{(}Ch1)QlzdJ)1B-eqe5a(weg0`4lQIf1evjvbBY50DVbzO7CLf|vP z2#0(U-|jZ`H{y5N^o7%iK6H>_HEGN->U6^!)1{XpJV!!4(Ig7wzZQ*9WYF4X1rG0x z=1uA@i`rIAciubDC{;~b(|&|A@xkjRP5aRcvRU9tvIm}jDB6J eQ0-6-y)mpwdT=ayS0tBxKDA*~;EWmo literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/html/tabs.css b/trunk/paradiseo-peo/docs/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/trunk/paradiseo-peo/docs/html/tags_8h-source.html b/trunk/paradiseo-peo/docs/html/tags_8h-source.html new file mode 100644 index 000000000..1c349914d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/tags_8h-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: tags.h Source File + + + + +
    +
    +

    tags.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "tags.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __tags_h
    +00025 #define __tags_h
    +00026 
    +00027 #define RUNNER_STOP_TAG 13
    +00028 
    +00029 #define COOP_TAG 14
    +00030 
    +00031 #define SCHED_REQUEST_TAG 16
    +00032 
    +00033 #define SCHED_RESULT_TAG 17
    +00034 #define TASK_DATA_TAG 18
    +00035 
    +00036 #define TASK_RESULT_TAG 19
    +00037 #define TASK_DONE_TAG 20
    +00038 
    +00039 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/thread_8cpp-source.html b/trunk/paradiseo-peo/docs/html/thread_8cpp-source.html new file mode 100644 index 000000000..29b1855a5 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/thread_8cpp-source.html @@ -0,0 +1,125 @@ + + +ParadisEO-PEO: thread.cpp Source File + + + + +
    +
    +

    thread.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "thread.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <map>
    +00025 
    +00026 #include "thread.h"
    +00027 
    +00028 static std :: vector <Thread *> threads;
    +00029 
    +00030 unsigned num_act = 0;
    +00031 
    +00032 Thread :: Thread () {
    +00033         
    +00034   threads.push_back (this);
    +00035   act = false;
    +00036 }
    +00037 
    +00038 Thread :: ~ Thread () {
    +00039 
    +00040   /* Nothing ! */
    +00041 }
    +00042 
    +00043 extern int getNodeRank ();
    +00044 
    +00045 void Thread :: setActive () {
    +00046 
    +00047   if (! act ) {
    +00048 
    +00049     act = true;
    +00050     num_act ++;
    +00051     //    if (getNodeRank () == 1)      
    +00052     //   printf ("On passe a %d\n", num_act);
    +00053   }
    +00054 }
    +00055 
    +00056 void Thread :: setPassive () {
    +00057 
    +00058   if (act) {
    +00059 
    +00060    act = false;
    +00061     num_act --;
    +00062     //    if (getNodeRank () == 1)      
    +00063     //  printf ("On passe a %d\n", num_act);
    +00064 
    +00065   } 
    +00066 }
    +00067 
    +00068 bool atLeastOneActiveThread () {
    +00069 
    +00070   return num_act;
    +00071 }
    +00072 
    +00073 unsigned numberOfActiveThreads () {
    +00074 
    +00075   return num_act;
    +00076 }
    +00077 
    +00078 static void * launch (void * __arg) {
    +00079 
    +00080   Thread * thr = (Thread *) __arg;  
    +00081   thr -> start ();
    +00082   return 0;
    +00083 }
    +00084 
    +00085 void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads) {
    +00086 
    +00087   pthread_t * ll_thr = new pthread_t;
    +00088   __ll_threads.push_back (ll_thr);
    +00089   pthread_create (ll_thr, 0, launch, __hl_thread); 
    +00090 }
    +00091 
    +00092 void joinThreads (std :: vector <pthread_t *> & __threads) {
    +00093 
    +00094   for (unsigned i = 0; i < __threads.size (); i ++)    
    +00095     pthread_join (* __threads [i], 0);  
    +00096 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/thread_8h-source.html b/trunk/paradiseo-peo/docs/html/thread_8h-source.html new file mode 100644 index 000000000..16b06f10d --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/thread_8h-source.html @@ -0,0 +1,92 @@ + + +ParadisEO-PEO: thread.h Source File + + + + +
    +
    +

    thread.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "thread.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef THREAD_H_
    +00025 #define THREAD_H_
    +00026 
    +00027 #include <vector>
    +00028 
    +00029 /* A high-level thread */
    +00030 
    +00031 class Thread {
    +00032         
    +00033 public:
    +00034 
    +00035   /* Ctor */
    +00036   Thread ();
    +00037 
    +00038   /* Dtor */
    +00039   virtual ~ Thread ();
    +00040   
    +00041   /* Go ! */
    +00042   virtual void start () = 0;
    +00043 
    +00044   void setActive ();/* It means the current process is going to send messages soon */
    +00045   void setPassive ();/* The current process is not going to perform send operations
    +00046                         (but it may receive messages) */
    +00047 
    +00048 private :
    +00049   
    +00050   bool act;
    +00051 };
    +00052 
    +00053 extern void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads);
    +00054 
    +00055 extern void joinThreads (std :: vector <pthread_t *> & __ll_threads);
    +00056 
    +00057 extern bool atLeastOneActiveThread (); /* It returns 'true' iff at least one process is going
    +00058                                       to send messages */
    +00059   
    +00060 extern unsigned numberOfActiveThreads ();
    +00061 
    +00062 
    +00063 #endif /*THREAD_H_*/
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/topology_8cpp-source.html b/trunk/paradiseo-peo/docs/html/topology_8cpp-source.html new file mode 100644 index 000000000..cf3c8d28a --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/topology_8cpp-source.html @@ -0,0 +1,64 @@ + + +ParadisEO-PEO: topology.cpp Source File + + + + +
    +
    +

    topology.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "topo.cpp"
    +00004 
    +00005 // (c) OPAC Team, LIFL, September 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include "topology.h"
    +00025 
    +00026 Topology :: ~ Topology () {
    +00027   
    +00028   /* Nothing ! */
    +00029 }
    +00030 
    +00031 void Topology :: add (Cooperative & __mig) {
    +00032   
    +00033   mig.push_back (& __mig) ;
    +00034 } 
    +00035 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/topology_8h-source.html b/trunk/paradiseo-peo/docs/html/topology_8h-source.html new file mode 100644 index 000000000..42818dbe0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/topology_8h-source.html @@ -0,0 +1,77 @@ + + +ParadisEO-PEO: topology.h Source File + + + + +
    +
    +

    topology.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "topology.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, September 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __topology_h
    +00025 #define __topology_h
    +00026 
    +00027 #include <vector>
    +00028 
    +00029 #include "cooperative.h"
    +00030 
    +00031 class Topology {
    +00032 
    +00033 public:
    +00034 
    +00035         virtual ~Topology ();
    +00036 
    +00037         void add (Cooperative & __mig); 
    +00038 
    +00039         virtual void setNeighbors (Cooperative * __mig,
    +00040                                 std :: vector <Cooperative *> & __from,
    +00041                                 std :: vector <Cooperative *> & __to) = 0;
    +00042 
    +00043 protected:
    +00044 
    +00045         std :: vector <Cooperative *> mig ;  
    +00046 };
    +00047 
    +00048 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/tree.html b/trunk/paradiseo-peo/docs/html/tree.html new file mode 100644 index 000000000..56a9db27b --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/tree.html @@ -0,0 +1,222 @@ + + + + + + + TreeView + + + + +
    +

    ParadisEO-PEO

    +
    +

    o*The ParadisEO-PEO Framework

    +

    o+Class List

    + +

    o+Class Hierarchy

    + +

    o*Class Members

    +

    o+Namespace List

    +
    +

    |\*peo

    +
    +

    o*Namespace Members

    +

    \+File List

    +
    +

     o*comm.cpp

    +

     o*comm.h

    +

     o*communicable.cpp

    +

     o*communicable.h

    +

     o*coop.cpp

    +

     o*cooperative.h

    +

     o*eoPop_comm.h

    +

     o*eoVector_comm.h

    +

     o*mess.cpp

    +

     o*mess.h

    +

     o*messaging.h

    +

     o*node.cpp

    +

     o*node.h

    +

     o*paradiseo.h

    +

     o*param.cpp

    +

     o*param.h

    +

     o*peo_debug.cpp

    +

     o*peo_debug.h

    +

     o*peo_fin.cpp

    +

     o*peo_fin.h

    +

     o*peo_init.cpp

    +

     o*peo_init.h

    +

     o*peo_param.cpp

    +

     o*peo_param.h

    +

     o*peo_run.cpp

    +

     o*peo_run.h

    +

     o*peoAggEvalFunc.h

    +

     o*peoAsyncIslandMig.h

    +

     o*peoEA.h

    +

     o*peoNoAggEvalFunc.h

    +

     o*peoParaPopEval.h

    +

     o*peoParaSGATransform.h

    +

     o*peoPopEval.h

    +

     o*peoSeqPopEval.h

    +

     o*peoSeqTransform.h

    +

     o*peoSyncIslandMig.h

    +

     o*peoSyncMultiStart.h

    +

     o*peoTransform.h

    +

     o*reac_thread.cpp

    +

     o*reac_thread.h

    +

     o*recv.cpp

    +

     o*recv.h

    +

     o*ring_topo.cpp

    +

     o*ring_topo.h

    +

     o*rmc.cpp

    +

     o*rmc.h

    +

     o*core/runner.cpp

    +

     o*rmc/mpi/runner.cpp

    +

     o*runner.h

    +

     o*scheduler.cpp

    +

     o*scheduler.h

    +

     o*schema.cpp

    +

     o*schema.h

    +

     o*send.cpp

    +

     o*send.h

    +

     o*core/service.cpp

    +

     o*rmc/mpi/service.cpp

    +

     o*service.h

    +

     o*tags.h

    +

     o*thread.cpp

    +

     o*thread.h

    +

     o*topology.cpp

    +

     o*topology.h

    +

     o*worker.cpp

    +

     o*worker.h

    +

     o*xml_parser.cpp

    +

     \*xml_parser.h

    +
    +
    +
    + + diff --git a/trunk/paradiseo-peo/docs/html/worker_8cpp-source.html b/trunk/paradiseo-peo/docs/html/worker_8cpp-source.html new file mode 100644 index 000000000..f35625945 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/worker_8cpp-source.html @@ -0,0 +1,138 @@ + + +ParadisEO-PEO: worker.cpp Source File + + + + +
    +
    +

    worker.cpp

    00001 
    +00002 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00003 
    +00004 // "worker.cpp"
    +00005 
    +00006 // (c) OPAC Team, LIFL, August 2005
    +00007 
    +00008 /* This library is free software; you can redistribute it and/or
    +00009    modify it under the terms of the GNU Lesser General Public
    +00010    License as published by the Free Software Foundation; either
    +00011    version 2 of the License, or (at your option) any later version.
    +00012    
    +00013    This library is distributed in the hope that it will be useful,
    +00014    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00016    Lesser General Public License for more details.
    +00017    
    +00018    You should have received a copy of the GNU Lesser General Public
    +00019    License along with this library; if not, write to the Free Software
    +00020    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00021    
    +00022    Contact: paradiseo-help@lists.gforge.inria.fr
    +00023 */
    +00024 
    +00025 #include <vector>
    +00026 
    +00027 #include "tags.h"
    +00028 #include "send.h"
    +00029 #include "node.h"
    +00030 #include "schema.h"
    +00031 #include "worker.h"
    +00032 #include "mess.h"
    +00033 #include "../../core/peo_debug.h"
    +00034 
    +00035 static std :: vector <Worker *> key_to_worker (1); /* Vector of registered workers */
    +00036 
    +00037 Worker * getWorker (WORKER_ID __key) {
    +00038 
    +00039   return key_to_worker [__key];  
    +00040 }
    +00041 
    +00042 Worker :: Worker () {
    +00043   
    +00044   toto = false;
    +00045   id = key_to_worker.size ();
    +00046   key_to_worker.push_back (this);
    +00047 }
    +00048 
    +00049 void Worker :: packResult () {
    +00050   
    +00051   pack (serv_id);
    +00052   serv -> packResult ();    
    +00053 }
    +00054 
    +00055 void Worker :: unpackData () {
    +00056 
    +00057   printDebugMessage ("unpacking the ID. of the service.");
    +00058   unpack (serv_id);
    +00059   serv = getService (serv_id); 
    +00060   printDebugMessage ("found the service.");
    +00061   serv -> unpackData (); 
    +00062   printDebugMessage ("unpacking the data.");
    +00063   setActive ();
    +00064 }
    +00065 
    +00066 void Worker :: packTaskDone () {
    +00067 
    +00068   pack (getNodeRank ());
    +00069   pack (id);
    +00070 }
    +00071 
    +00072 void Worker :: notifySendingResult () {
    +00073 
    +00074   /* Notifying the scheduler of the termination */
    +00075   toto = true;
    +00076   wakeUp ();
    +00077 }
    +00078 
    +00079 void Worker :: notifySendingTaskDone () {
    +00080 
    +00081   setPassive ();
    +00082 }
    +00083   
    +00084 void Worker :: setSource (int __rank) {
    +00085 
    +00086   src = __rank;
    +00087 }
    +00088 
    +00089 void Worker :: start () {
    +00090 
    +00091   while (true) {
    +00092     
    +00093     sleep (); 
    +00094 
    +00095     if (! atLeastOneActiveRunner ())
    +00096       break;
    +00097     
    +00098     if (toto) {
    +00099       send (this, my_node -> rk_sched, TASK_DONE_TAG);  
    +00100       toto = false;
    +00101     }
    +00102     else {
    +00103 
    +00104       printDebugMessage ("executing the task.");
    +00105       serv -> execute ();   
    +00106       send (this, src, TASK_RESULT_TAG);    
    +00107     }
    +00108   }
    +00109 }
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/worker_8h-source.html b/trunk/paradiseo-peo/docs/html/worker_8h-source.html new file mode 100644 index 000000000..c16771166 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/worker_8h-source.html @@ -0,0 +1,94 @@ + + +ParadisEO-PEO: worker.h Source File + + + + +
    +
    +

    worker.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "worker.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __worker_h
    +00025 #define __worker_h
    +00026 
    +00027 #include "../../core/communicable.h"
    +00028 #include "../../core/reac_thread.h"
    +00029 #include "../../core/service.h"
    +00030 
    +00031 typedef unsigned WORKER_ID; 
    +00032 
    +00033 class Worker : public Communicable, public ReactiveThread {
    +00034 
    +00035 public : 
    +00036 
    +00037   Worker ();
    +00038 
    +00039   void start ();
    +00040 
    +00041   void packResult ();
    +00042 
    +00043   void unpackData ();
    +00044 
    +00045   void packTaskDone (); 
    +00046 
    +00047   void notifySendingResult ();
    +00048 
    +00049   void notifySendingTaskDone ();
    +00050   
    +00051   void setSource (int __rank);
    +00052   
    +00053 private :
    +00054 
    +00055   WORKER_ID id;
    +00056   SERVICE_ID serv_id;
    +00057   Service * serv;
    +00058   int src;
    +00059 
    +00060   bool toto;
    +00061 };
    +00062 
    +00063 extern Worker * getWorker (WORKER_ID __key);
    +00064 
    +00065 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/xml__parser_8cpp-source.html b/trunk/paradiseo-peo/docs/html/xml__parser_8cpp-source.html new file mode 100644 index 000000000..ceb104020 --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/xml__parser_8cpp-source.html @@ -0,0 +1,119 @@ + + +ParadisEO-PEO: xml_parser.cpp Source File + + + + +
    +
    +

    xml_parser.cpp

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "xml_parser.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #include <libxml/xmlreader.h>
    +00025 
    +00026 #include "xml_parser.h"
    +00027 
    +00028 static xmlTextReaderPtr reader;
    +00029 
    +00030 void openXMLDocument (const char * __filename) {
    +00031   
    +00032   reader = xmlNewTextReaderFilename (__filename);
    +00033   
    +00034   if (! reader) {
    +00035     
    +00036     fprintf (stderr, "unable to open '%s'.\n", __filename);
    +00037     exit (1);
    +00038   }
    +00039 }
    +00040 
    +00041 void closeXMLDocument () {
    +00042 
    +00043   xmlFreeTextReader (reader);
    +00044 }
    +00045 
    +00046 std :: string getAttributeValue (const std :: string & __attr) {
    +00047   
    +00048   xmlChar * value = xmlTextReaderGetAttribute (reader, (const xmlChar *) __attr.c_str ());
    +00049   
    +00050   std :: string str ((const char *) value);
    +00051   
    +00052   xmlFree (value);
    +00053   
    +00054   return str;
    +00055 }
    +00056 
    +00057 static bool isSep (const xmlChar * __text) {
    +00058   
    +00059   for (unsigned i = 0; i < strlen ((char *) __text); i ++)
    +00060     if (__text [i] != ' ' && __text [i] != '\t' && __text [i] != '\n')
    +00061       return false;
    +00062   return true;
    +00063 }
    +00064 
    +00065 std :: string getNextNode () {
    +00066   
    +00067   xmlChar * name, * value;
    +00068 
    +00069   do {
    +00070     xmlTextReaderRead (reader);
    +00071     name = xmlTextReaderName (reader);
    +00072     value = xmlTextReaderValue (reader);
    +00073     //    printf ("value = %s\n", value);
    +00074   } while (! strcmp ((char *) name, "#text") && isSep (value));
    +00075 
    +00076   std :: string str;
    +00077 
    +00078   if (strcmp ((char *) name, "#text"))
    +00079     str.assign ((char *) name);
    +00080   else
    +00081     str.assign ((char *) value);
    +00082   
    +00083   if (name)
    +00084     xmlFree (name);
    +00085   if (value)
    +00086     xmlFree (value);
    +00087     
    +00088   return str;
    +00089 }
    +00090 
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/html/xml__parser_8h-source.html b/trunk/paradiseo-peo/docs/html/xml__parser_8h-source.html new file mode 100644 index 000000000..79cf66acb --- /dev/null +++ b/trunk/paradiseo-peo/docs/html/xml__parser_8h-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO: xml_parser.h Source File + + + + +
    +
    +

    xml_parser.h

    00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
    +00002 
    +00003 // "xml_parser.h"
    +00004 
    +00005 // (c) OPAC Team, LIFL, August 2005
    +00006 
    +00007 /* This library is free software; you can redistribute it and/or
    +00008    modify it under the terms of the GNU Lesser General Public
    +00009    License as published by the Free Software Foundation; either
    +00010    version 2 of the License, or (at your option) any later version.
    +00011    
    +00012    This library is distributed in the hope that it will be useful,
    +00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
    +00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    +00015    Lesser General Public License for more details.
    +00016    
    +00017    You should have received a copy of the GNU Lesser General Public
    +00018    License along with this library; if not, write to the Free Software
    +00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
    +00020    
    +00021    Contact: paradiseo-help@lists.gforge.inria.fr
    +00022 */
    +00023 
    +00024 #ifndef __xml_parser_h
    +00025 #define __xml_parser_h
    +00026 
    +00027 #include <string>
    +00028 
    +00029 extern void openXMLDocument (const char * __filename);
    +00030 
    +00031 extern void closeXMLDocument ();
    +00032 
    +00033 extern std :: string getAttributeValue (const std :: string & __attr);
    +00034 
    +00035 extern std :: string getNextNode ();
    +00036 
    +00037 #endif
    +

    Generated on Sun Jan 7 18:35:23 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
    + + diff --git a/trunk/paradiseo-peo/docs/latex/FreeSans.ttf b/trunk/paradiseo-peo/docs/latex/FreeSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b550b90ba5480f9a3db170a19a1f86daecb0dc92 GIT binary patch literal 22932 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 RlllN>Fk>(~eFPlj{{dxA`xyWL literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/Makefile b/trunk/paradiseo-peo/docs/latex/Makefile new file mode 100644 index 000000000..a67f1b7f6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/Makefile @@ -0,0 +1,17 @@ +all: clean refman.pdf + +refman.pdf: refman.tex + pdflatex refman.tex + makeindex refman.idx + pdflatex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/trunk/paradiseo-peo/docs/latex/annotated.tex b/trunk/paradiseo-peo/docs/latex/annotated.tex new file mode 100644 index 000000000..37607c7f5 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/annotated.tex @@ -0,0 +1,27 @@ +\section{Paradis\-EO-PEO Class List} +Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{\hyperlink{classCommunicable}{Communicable} }{\pageref{classCommunicable}}{} +\item\contentsline{section}{\hyperlink{classCommunicator}{Communicator} }{\pageref{classCommunicator}}{} +\item\contentsline{section}{\hyperlink{classCooperative}{Cooperative} }{\pageref{classCooperative}}{} +\item\contentsline{section}{\hyperlink{structNode}{Node} }{\pageref{structNode}}{} +\item\contentsline{section}{\hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func$<$ EOT $>$} (The \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func} class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided )}{\pageref{classpeoAggEvalFunc}}{} +\item\contentsline{section}{\hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig$<$ EOT $>$} (The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e )}{\pageref{classpeoAsyncIslandMig}}{} +\item\contentsline{section}{\hyperlink{classpeoEA}{peo\-EA$<$ EOT $>$} (The \hyperlink{classpeoEA}{peo\-EA} class offers an elementary evolutionary algorithm implementation )}{\pageref{classpeoEA}}{} +\item\contentsline{section}{\hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func$<$ EOT $>$} (The \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func} class does nothing more than an association between a fitness value and a specified individual )}{\pageref{classpeoNoAggEvalFunc}}{} +\item\contentsline{section}{\hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval$<$ EOT $>$} (The \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor )}{\pageref{classpeoParaPopEval}}{} +\item\contentsline{section}{\hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform$<$ EOT $>$} }{\pageref{classpeoParaSGATransform}}{} +\item\contentsline{section}{\hyperlink{classpeoPopEval}{peo\-Pop\-Eval$<$ EOT $>$} (The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors )}{\pageref{classpeoPopEval}}{} +\item\contentsline{section}{\hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval$<$ EOT $>$} (The \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} class acts only as a Paradis\-EO specific sequential evaluation functor - a wrapper for incorporating an {\bf eo\-Eval\-Func$<$ EOT $>$}-derived class as evaluation functor )}{\pageref{classpeoSeqPopEval}}{} +\item\contentsline{section}{\hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform$<$ EOT $>$} (The \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} represent a wrapper for offering the possibility of using EO derived transform operators along with the Paradis\-EO evolutionary algorithms )}{\pageref{classpeoSeqTransform}}{} +\item\contentsline{section}{\hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig$<$ EOT $>$} (The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e )}{\pageref{classpeoSyncIslandMig}}{} +\item\contentsline{section}{\hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start$<$ EOT $>$} (The \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population )}{\pageref{classpeoSyncMultiStart}}{} +\item\contentsline{section}{\hyperlink{classpeoTransform}{peo\-Transform$<$ EOT $>$} (The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes )}{\pageref{classpeoTransform}}{} +\item\contentsline{section}{\hyperlink{classReactiveThread}{Reactive\-Thread} }{\pageref{classReactiveThread}}{} +\item\contentsline{section}{\hyperlink{classRingTopology}{Ring\-Topology} }{\pageref{classRingTopology}}{} +\item\contentsline{section}{\hyperlink{classRunner}{Runner} }{\pageref{classRunner}}{} +\item\contentsline{section}{\hyperlink{structSEND__REQUEST}{SEND\_\-REQUEST} }{\pageref{structSEND__REQUEST}}{} +\item\contentsline{section}{\hyperlink{classService}{Service} }{\pageref{classService}}{} +\item\contentsline{section}{\hyperlink{classThread}{Thread} }{\pageref{classThread}}{} +\item\contentsline{section}{\hyperlink{classTopology}{Topology} }{\pageref{classTopology}}{} +\item\contentsline{section}{\hyperlink{classWorker}{Worker} }{\pageref{classWorker}}{} +\end{CompactList} diff --git a/trunk/paradiseo-peo/docs/latex/classCommunicable.eps b/trunk/paradiseo-peo/docs/latex/classCommunicable.eps new file mode 100644 index 000000000..a4f4be521 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classCommunicable.eps @@ -0,0 +1,269 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 57.1429 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 8.75 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 7 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Communicable) cw +(Cooperative) cw +(Runner) cw +(Service) cw +(Worker) cw +(peoAsyncIslandMig< EOT >) cw +(peoSyncIslandMig< EOT >) cw +(peoEA< EOT >) cw +(peoPopEval< EOT >) cw +(peoSyncMultiStart< EOT >) cw +(peoTransform< EOT >) cw +(peoParaPopEval< EOT >) cw +(peoSeqPopEval< EOT >) cw +(peoParaSGATransform< EOT >) cw +(peoSeqTransform< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Communicable) 3 3 box + (Cooperative) 0.5 2 box + (Runner) 2 2 box + (Service) 4 2 box + (Worker) 5 2 box + (peoAsyncIslandMig< EOT >) 0 1 box + (peoSyncIslandMig< EOT >) 1 1 box + (peoEA< EOT >) 2 1 box + (peoPopEval< EOT >) 3 1 box + (peoSyncMultiStart< EOT >) 4 1 box + (peoTransform< EOT >) 5 1 box + (peoParaPopEval< EOT >) 2.5 0 box + (peoSeqPopEval< EOT >) 3.5 0 box + (peoParaSGATransform< EOT >) 4.5 0 box + (peoSeqTransform< EOT >) 5.5 0 box + +% ----- relations ----- + +solid +1 3 2.25 out +solid +0.5 5 3 conn +solid +0 0.5 2.75 in +solid +1 0.5 1.25 out +solid +0 1 2 conn +solid +0 2 2.75 in +solid +1 2 1.25 out +solid +0 4 2.75 in +solid +1 4 1.25 out +solid +3 5 2 conn +solid +0 5 2.75 in +solid +0 0 1.75 in +solid +0 1 1.75 in +solid +0 2 1.75 in +solid +0 3 1.75 in +solid +1 3 0.25 out +solid +2.5 3.5 1 conn +solid +0 4 1.75 in +solid +0 5 1.75 in +solid +1 5 0.25 out +solid +4.5 5.5 1 conn +solid +0 2.5 0.75 in +solid +0 3.5 0.75 in +solid +0 4.5 0.75 in +solid +0 5.5 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classCommunicable.pdf b/trunk/paradiseo-peo/docs/latex/classCommunicable.pdf new file mode 100644 index 0000000000000000000000000000000000000000..959b153de89644e6833ce21ebf7fabcfbce852b8 GIT binary patch literal 1855 zcmZ`)2~-nT6cq@dgNUe5L964!E}2Xg5~w0eKq3V(K|z7SNQRggGMEe!Dbj@^h=>J5 zZ7JmdR<=OhT9sm5(1O(n7LZfrP=P}^fPfXzx`6$I0jjqDoH;Z9zW45b@BM%O*aY!? zol!aqvZ;S?uo&XN44Bv^gI2FbKExFgay#q-5Fz3#m6Nyo2tzLM6<`-3ok+*nDb_TaQcsVUXJz^yx=C=d6N0RInK4KYPS4q*y@w2gaV^k z*rvSJUT!iW=@@$A>F2R5zi|9~b;en4VEg+f4)kYFtJU@=Y|_V1R$ooC$gOR$5>3|Q#gS&CjpCwTX=d21 zA?p*Fw9oXKoMb-3+_e4O!(-2zcZLjIjEo)b*mtcrPrdf;3<=F8RTos5zIGiQZFCtiMyz#Cy2(d9gSs6*`d)NSzl^x9@_a+ z(yD>_`HS|v>^)ty_|&*yK}h`hwH-_P`&Xup#T-QqlD00FdEP&e>o})abAwgqftVla z>9_hN>inUieb1F6ar9YxR~kz!clsFVm-eTAhakwU#!nYW+HP+1^f$cwZRq{c!Xsu$ z&IOz7zTBGF<&>Ry$ZNos9vD1UsBLX%iKxq*VOO(<&=YKLb)a0&}n4a~l>)Pel*mi`LW4hnqT7I2v z!XRfR^l9L>`ymIl5b$+!dV{oZzrhbp#=GGe7NOsxiM!$Pj-R1`*yZf9? zb8l-8qoz&;c@KmZr50O$e`$1w@pX3IoJvXjtrd8<-}5EU^zXR+Of*Jy=RO@PTCK2c zIXrAqC_hdU_}4rs`t!85)UAW2Ao!=sv$TTV_C;A2mTu`|+iEtV%ddAaH4%l-%Pm*L zoST=QY+IkLskl+q>3!oIKS&f8g@$!CrFV)eZL9i<*=#!uAM7`1bIQ`Rd)HfsXKLC* z>TBrZGtSV@B;g9NPDS90QXZu@>dj;FARWY>7G?16I2;MWBsda)i=~(sp@zd4z|3KQ zhf7D<5fCsdaRmvpDB(hg5LXfL%4l2#BpswAqD43vh5*sSNHDG@fxC~ITqh!dtYO#J z5xxY7Mk!Vy1VoN_gE=5n!PMn20qOFhR(O3`05XsmJdv3SM*O8>6&wapc?+Qk7%;?B zloXpT6rBpyMS5c-CMP756t9z?_UFFoKbYPj8NM13H5FXt^kNeJ4pW^`EAbeJ0i!6ym>RGPhr{B) zF|ZCpQ8ws2HDJXQ#^QiBzJ)P(U~}KZ7_KZ(|63RX1&8J>%oTli4b&B!h&TOE=6_-D zu7NUL{uN6qF{vC^f*%-+h@^=)s24_r1Obj8wc9WvP{a^0wNXGD0zMpOpJkDj?A&%B kVnr7kXjX9Uk;A)41a)#%B&H-Mnuu~xHe_Stv%weo2LT7NCjbBd literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classCommunicable.tex b/trunk/paradiseo-peo/docs/latex/classCommunicable.tex new file mode 100644 index 000000000..9fc3ce6b0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classCommunicable.tex @@ -0,0 +1,87 @@ +\hypertarget{classCommunicable}{ +\section{Communicable Class Reference} +\label{classCommunicable}\index{Communicable@{Communicable}} +} +Inheritance diagram for Communicable::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.6cm]{classCommunicable} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classCommunicable_8ae1827ecf7569b3db1ed386c7d8ad78}{ +\hyperlink{classCommunicable_8ae1827ecf7569b3db1ed386c7d8ad78}{Communicable} ()} +\label{classCommunicable_8ae1827ecf7569b3db1ed386c7d8ad78} + +\item +\hypertarget{classCommunicable_2280b0dfa0d3a515fccf62c2a9fd5f41}{ +virtual \hyperlink{classCommunicable_2280b0dfa0d3a515fccf62c2a9fd5f41}{$\sim$Communicable} ()} +\label{classCommunicable_2280b0dfa0d3a515fccf62c2a9fd5f41} + +\item +\hypertarget{classCommunicable_db4307b69b9ccacff55fdbf84b8f50e4}{ +COMM\_\-ID \hyperlink{classCommunicable_db4307b69b9ccacff55fdbf84b8f50e4}{get\-Key} ()} +\label{classCommunicable_db4307b69b9ccacff55fdbf84b8f50e4} + +\item +\hypertarget{classCommunicable_e1f8bd1ee810fd73d44315c95998d19d}{ +void \hyperlink{classCommunicable_e1f8bd1ee810fd73d44315c95998d19d}{lock} ()} +\label{classCommunicable_e1f8bd1ee810fd73d44315c95998d19d} + +\item +\hypertarget{classCommunicable_caa814847192e71f434fbf9479ede862}{ +void \hyperlink{classCommunicable_caa814847192e71f434fbf9479ede862}{unlock} ()} +\label{classCommunicable_caa814847192e71f434fbf9479ede862} + +\item +\hypertarget{classCommunicable_cb53e6534b947bc889aa181d9dbbd13b}{ +void \hyperlink{classCommunicable_cb53e6534b947bc889aa181d9dbbd13b}{stop} ()} +\label{classCommunicable_cb53e6534b947bc889aa181d9dbbd13b} + +\item +\hypertarget{classCommunicable_3306a9adb11a0ab5af342c0db9f7bb2a}{ +void \hyperlink{classCommunicable_3306a9adb11a0ab5af342c0db9f7bb2a}{resume} ()} +\label{classCommunicable_3306a9adb11a0ab5af342c0db9f7bb2a} + +\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\hypertarget{classCommunicable_605b0efeffe81326f216c9903f5bbf4c}{ +COMM\_\-ID \hyperlink{classCommunicable_605b0efeffe81326f216c9903f5bbf4c}{key}} +\label{classCommunicable_605b0efeffe81326f216c9903f5bbf4c} + +\item +\hypertarget{classCommunicable_cf9639312f71a2f348bc1e7789ccbd9d}{ +sem\_\-t \hyperlink{classCommunicable_cf9639312f71a2f348bc1e7789ccbd9d}{sem\_\-lock}} +\label{classCommunicable_cf9639312f71a2f348bc1e7789ccbd9d} + +\item +\hypertarget{classCommunicable_29c53b9191348e0505e3bcba6d8b82b1}{ +sem\_\-t \hyperlink{classCommunicable_29c53b9191348e0505e3bcba6d8b82b1}{sem\_\-stop}} +\label{classCommunicable_29c53b9191348e0505e3bcba6d8b82b1} + +\end{CompactItemize} +\subsection*{Static Protected Attributes} +\begin{CompactItemize} +\item +\hypertarget{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{ +static unsigned \hyperlink{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{num\_\-comm} = 0} +\label{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 31 of file communicable.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +communicable.h\item +communicable.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classCommunicator.eps b/trunk/paradiseo-peo/docs/latex/classCommunicator.eps new file mode 100644 index 000000000..3d7cc0668 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classCommunicator.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 550.459 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 0.908333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Communicator) cw +(ReactiveThread) cw +(Thread) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Communicator) 0 0 box + (ReactiveThread) 0 1 box + (Thread) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/trunk/paradiseo-peo/docs/latex/classCommunicator.pdf b/trunk/paradiseo-peo/docs/latex/classCommunicator.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0689335bd7b9ae0f74cf215ee41d56f1ad5a08d3 GIT binary patch literal 1400 zcmZ`(e@q)?7#?9pz0G9!BNI2-w-{VO;O^R9e=G|_C}jv;yKAY82HnwqwC75X-F+o3 zhOoJ1LBuR$(-X({^T?S!Lts4oG0nWQP;pdrpZg<l>_PpD7>vB8jzZ+(sYRejVwa5kWb(7hG?vvudz`mp}KdEB5krM|FmiZd~`pDZEj}D&Pv%}T&$hLvVoc!JT z;n<~irM@KZ;hI~u^}Bhy+4%*(+UPA>S$OY>$S+;R-EW+Kv~X|P!q{5=p;tCXv$H2A z=k5+}h`qhPu;-p<@XkhcUe~JoCY5pBuV;_U-B~#Xm`z)CD|UYH;l%^vz3kZK_~*UD zxA?Dya&LZu*nay<*3tP3eD|(Z4zXwIvBB#4Ls@6%kBz^#w-gkb3 zsMK~AJ-g0#Nu~a*s_o}!SKG;cU(LqIz;WxT@2_5l0Z-C>{EKXi?1_A9^lB;zY17Me zgj*qP6TFbNK#wStOCjK5aG7K9hhs{#x<(4uWf(v}LpDy)JXEBh?1l=?f=!m(c8FXw zP79zNFof{&$`GouBb*0dTx6If%w~x!PvLaX75E+tDuARa0VNwFPgqPD7Q>x^L~9D5 zYebI%Toh@Xry2oP2og!6mZY*v)FiV)K!RWLrX&`dPoLL6cs|`UMO$qaz?POKg~<%b zmffp&;3P$}l679o&mlqM)e+k;Jrtb$C9pPiaY zomRkBdxCB#t19g_Q00>pq_}0V6#)awl`!f8Y%6~0kSGOA*m{*|vzlS_49n926T0xSpsBH_}!>B0hj8`yy&#da@Vf?K6SgV c$mA_wDoBt~!bFzgj8uMprPWOR1I38fHUIzs literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classCommunicator.tex b/trunk/paradiseo-peo/docs/latex/classCommunicator.tex new file mode 100644 index 000000000..efcfee674 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classCommunicator.tex @@ -0,0 +1,36 @@ +\hypertarget{classCommunicator}{ +\section{Communicator Class Reference} +\label{classCommunicator}\index{Communicator@{Communicator}} +} +Inheritance diagram for Communicator::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classCommunicator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classCommunicator_7c9dce4ea92bd04d01d53f80c0ef08ee}{ +\hyperlink{classCommunicator_7c9dce4ea92bd04d01d53f80c0ef08ee}{Communicator} (int $\ast$\_\-\_\-argc, char $\ast$$\ast$$\ast$\_\-\_\-argv)} +\label{classCommunicator_7c9dce4ea92bd04d01d53f80c0ef08ee} + +\item +\hypertarget{classCommunicator_142fae13b16b166519315f248a513c62}{ +void \hyperlink{classCommunicator_142fae13b16b166519315f248a513c62}{start} ()} +\label{classCommunicator_142fae13b16b166519315f248a513c62} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 30 of file comm.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +comm.h\item +comm.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classCooperative.eps b/trunk/paradiseo-peo/docs/latex/classCooperative.eps new file mode 100644 index 000000000..60c6b6b94 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classCooperative.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 166.667 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Cooperative) cw +(Communicable) cw +(peoAsyncIslandMig< EOT >) cw +(peoSyncIslandMig< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Cooperative) 0.5 1 box + (Communicable) 0.5 2 box + (peoAsyncIslandMig< EOT >) 0 0 box + (peoSyncIslandMig< EOT >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classCooperative.pdf b/trunk/paradiseo-peo/docs/latex/classCooperative.pdf new file mode 100644 index 0000000000000000000000000000000000000000..acb683b857ae318324c7448023d2d419ca6c5b05 GIT binary patch literal 1480 zcmZ`(dr(wW9B#w`=Z-lrrD5aPkw-2nd+*)l?xTTq7WR?K!nTVvifdeU&pv8*FWq}r z7Yi$63eXuw@lg(sP<$lrQ29d4n6kpfL4{z{$}lr^f*OaZkV&j_V1XpM|J-}N-}%1t zdwl06n{|d%S}G@!+Xt%l5e%RJSM)NGo=#>%ze{uj1wt&O!Q&Mn4@iTT6`>B=IS15e z2tni_>m!0Swbt+aPitqF);Hg?cgMH}POo~Qv9a=qCU0)%!^axRVn2>uNp|$Lzc$~w zXdr5CW}Uj<{#S4y)tz*?v-#AqwYHI2A6-p({H0rM<^p{v>UU@UIa_j0oTP!C-CO-j z%gm$m-J@9R&b7;7t+A!xv zNMD`M(=oG_y0>u6uiI~Bw9X43t$Lo#Seo-zmm!5Jv=)XI7V^7wJ3a`PpXio7wW%U7 z;yPPndgev_Plu&9<6o6D#Z)dC?5<6?aewdi`dwW!hI^jOl6+M|F5b7{;!5+5%e8y2 z4By@`bh57Wdgx$(ec$e_ueAKV{`1b3PrmM{43(YAx!5#vjY>R_RIX9=|Hf>qcuz-$ zuRh5AW5Fz6v9Wh~&Fb_shr3SaZ~3ORDU`8u%dtzw#wUvQZ;Y=hJ09v?X5XA}sEm8I z_rlP_CEvfP{o;g46~1d5OueMdicjd=cv99kqn!DyH1=B9{myyqwnMpzYG0Z=?dL}L z{-0|u)ZIQVP0Fr|_QafLcUns-&M=Y>O?M5;6BA7xUp~lwx4|*gUasD}XpVf|P2Jh3 zIA5#?{f@{i(HEXSo;rS~F%%Jj(k88uS5gc~GwXt+2|7G%CKm(+6bdsG1!#prs!-Yp z6z8E|1aj;jg0w(^3-ER*AZM9*&TfTb0g1c^$UGPn(RO`MG+IUEE}$M`7&yeHv8;ta zUL&*68VL#jdvp|vB!*8I^DGiWnSs&N1VFCxI0R5Y;KVJ24IqU8mc(iiDm_7sFtb>Z z^>VIpiLvA-_bVUWKbbT^=9*1_)@UNaxQ56*vM32mvrMXt7BwDK5voU{co_+1vI4|y zAoDyvD5P3AAL}1Yl*A}OS_4HQ9tEx%ojqQaY*GQW+7YlrUZS^}fzizgqG0De#UfDA zjFgh4pthnbEP6P<4z*sQdrn4CN{XhGv`Ws%(oo#QIsPw{=MlY7lI3LuA&2$BaWRgU z=(u2s3;GeF4Tx?8q)c=s$U`TAY(f*%!~+xzBWHjUjAKd#G9Z3{e*#mhkQb(4N(!}h z3dS&K;8QS)My8p9;S;A~D*C@%^)#4@nTD(S7gyw2j~DXjKMF{zXA?yA0@A{9$bNX* zfL!5sasUqs-HjDGP#{qX#w)hy)$7*fC;eDcc}}`4Wg5tay(@?;FOIg6rsYZ^Ia!}; GApQZdLHMZv literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classCooperative.tex b/trunk/paradiseo-peo/docs/latex/classCooperative.tex new file mode 100644 index 000000000..08a5d8b7b --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classCooperative.tex @@ -0,0 +1,54 @@ +\hypertarget{classCooperative}{ +\section{Cooperative Class Reference} +\label{classCooperative}\index{Cooperative@{Cooperative}} +} +Inheritance diagram for Cooperative::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classCooperative} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classCooperative_4012b4e8329e87d26ee266491e1a883e}{ +\hyperlink{classRunner}{Runner} $\ast$ \hyperlink{classCooperative_4012b4e8329e87d26ee266491e1a883e}{get\-Owner} ()} +\label{classCooperative_4012b4e8329e87d26ee266491e1a883e} + +\item +\hypertarget{classCooperative_fe7b022567174c8305bc78d8c5749b12}{ +void \hyperlink{classCooperative_fe7b022567174c8305bc78d8c5749b12}{set\-Owner} (\hyperlink{classRunner}{Runner} \&\_\-\_\-runner)} +\label{classCooperative_fe7b022567174c8305bc78d8c5749b12} + +\item +\hypertarget{classCooperative_c609f2a1200da7d1ac96005602515fc6}{ +void \hyperlink{classCooperative_c609f2a1200da7d1ac96005602515fc6}{send} (\hyperlink{classCooperative}{Cooperative} $\ast$\_\-\_\-coop)} +\label{classCooperative_c609f2a1200da7d1ac96005602515fc6} + +\item +\hypertarget{classCooperative_4439ddeaa1246a2e44c003bfb781739b}{ +virtual void \hyperlink{classCooperative_4439ddeaa1246a2e44c003bfb781739b}{notify\-Sending} ()} +\label{classCooperative_4439ddeaa1246a2e44c003bfb781739b} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classCooperative_7604f094479d08154ede4996a45bf79e}{ +\hyperlink{classRunner}{Runner} $\ast$ \hyperlink{classCooperative_7604f094479d08154ede4996a45bf79e}{owner}} +\label{classCooperative_7604f094479d08154ede4996a45bf79e} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 32 of file cooperative.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +cooperative.h\item +coop.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classReactiveThread.eps b/trunk/paradiseo-peo/docs/latex/classReactiveThread.eps new file mode 100644 index 000000000..9c8a085ba --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classReactiveThread.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 275.229 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.81667 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(ReactiveThread) cw +(Thread) cw +(Communicator) cw +(Worker) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (ReactiveThread) 0.5 1 box + (Thread) 0.5 2 box + (Communicator) 0 0 box + (Worker) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classReactiveThread.pdf b/trunk/paradiseo-peo/docs/latex/classReactiveThread.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3d6ddfd722fd43436a36078f85ff2372fd8a6096 GIT binary patch literal 1458 zcmZ`(e@q)y95)a=`45b?p4~! zvh5EmE(EecH^;yqh{Ty`)H#T<1=$jrj;-o4+!o2$P!kwGGMDKbn)x0SaBSW`cklCk zpU?aL_`FMZ+8jDA(*V*3CYm|`4_PQxYy#QY%myU-aTPQX#KkxQL5yU`ID!I3HsqCj z$Z7=&mXS~m!foyD;-)j~14n0GxUo{bJl@dv8^~+xwOuZcO?7|z-lmNs(}vS;G>fU7 z9{aAzhx#JZ=bI0OwhzVpDYYL*w(Xrb&Wuj@w`vB@zueQm>i8#zHL1fby46oV({K8- zYu)>H4eV%KyM0&iOslzeW^!umhX0~Eb7r!q=Tz;r1KcC|_tiPNx5es={-^e<XW{ zvm-61zdP!6jDYOt;Z0T6&fmt zQKx?JnCeRF>$_k4$#7t3@7E_RDZ5j0E3RJ3*?J@mjOz+Bmu;SCuFF0=IsMMS@E>D% zW857b(!L4nPiwAZhksCXtA@}1eEn@MtA0x$&zbbnrF{>tdACph&vpFQXSbR>I}Z*= z+s8)Ar@QuVNFG>U)Y&t&Z>4tqp+?oWy&rmxBt5s|Lc^%5e$CG03Hf4|>a{33diB^_ zkN(DjRoHA=sqJ%#)yLb0;1>OJw2 z@7j8kH9KO4)T&WlH-7N@=;hUuT^GLjds$k~^8HBkCFVxH=&b34>Dy>vK>{)^+MqO2 zgBYjaM@%vD1%x~)49i#&=2;f%&3vZb-~l8qBN0Ob^$K8INRdLa7b(O=PFeE05iVnh z&mdEZ!kBEghjD=$6DPr}Ifg?bY>vvh0Pz)*Pu4_Gfz*$)P$DsU!kj;e7|9IIrlvrq zDBx3I8K8-~fCmzV5S65A2`aZhO)&EXECeP0yu@7ci~G&D?_W$BFeT1n$XTrkVOm4t z&bZ8g(p-xwvqjBEEx>Ynlr9s&JV8OU4NPgE8Yw!LR4s_Ji82%gj5}0;=_qK`nirE~txXC?{7587ZU|QqAY-93VHs5d7IGY57anNh zc>@nC;XGzG5(Cl)iVIkliFjcNX0njhF2Q&M8Tb;6<%nsPVEkP$bJm?)%iS=N?NU99 z=|5a73xOb#$v+b^?!XpA>V=F;l8F82v>{U{R!Wc#irkGt8!Xe_(^QlD*nv|w9LUGw6=$rZgX{r6jM{?NBy{dU=frGbg|6X#~{ z{POON_?E%Uvf3|NmRgl;^un6N;N?G#+$;HD^!r(lIv$VqAGGzMhriDM<&%Nf?p=#Z zR`1&$?r!@#t8E!i)KA=A_y0d*r#D~Pu&va$=%h5PJb;u`lxH|z=_A#_71IIP=DxY{f^}Qe_y<+I1{s<`tU4$8U8dqr@J}n zJkoo$X5@U=oq)%Cr+a+X)z;4MXeyeQ1D?2qTsVH0Tq4Rt&Z4^E&JId~TAY$b8r8Kb zBZHd+2+M+iouXuSC@l!$CQUKy09-{xrIwL4Bh&(Of~FA(QPxDjK1{+i!yvsT!)ike z48oqt3cmr>BBxam*hQ-09SAMVZO%dY#`qT|Z3i;w4Ch+2Fsaw07H&ekaTT>-U`TUH z&Xz9~r%Lmc)f&?hM!Y~V*?ciyc{{(@G$N~ljac-0^Td3H{3@yn;$>=)B{x(d>PGIj zqx>}=tkNvXWguZaNv#UiNNTBEqlBY~gwkz{TfwJ>Zx^PLiVPriG##O)ttJ%2we5z* ztca<1Fzgm(yC9W=tZ)jLZlru5z0J2o5(GsM1x0i_WJ!T|qY-^yD6F#twN)oH%L-^o zS|Bq_o6pE}#%T(W3t18I#74fJG4rQx|s0vO~r(T)<=nB;yxOO<{@$+?s~T zBB(VDbGTqZreT6O6LUCW$*1MHq?vijJ202)9kre}YMH6&32MTx2$PV$iNd^?sD=US z$KA%HE)_E{Hww;1oewwJ21@2SrHdzr`^S35{$ \&\_\-\_\-from, std::vector$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \&\_\-\_\-to)} +\label{classRingTopology_292a7746993788f96042f2f628cfcbc5} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 29 of file ring\_\-topo.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +ring\_\-topo.h\item +ring\_\-topo.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classRunner.eps b/trunk/paradiseo-peo/docs/latex/classRunner.eps new file mode 100644 index 000000000..6e1d6846c --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classRunner.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 280.374 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.78333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Runner) cw +(Communicable) cw +(Thread) cw +(peoEA< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Runner) 0.5 1 box + (Communicable) 0 2 box + (Thread) 1 2 box + (peoEA< EOT >) 0.5 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +1 0.5 0.25 out +solid +0 0.5 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classRunner.pdf b/trunk/paradiseo-peo/docs/latex/classRunner.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cd32c41cb0163821e3e2c7acd9e5bc4291031a93 GIT binary patch literal 1497 zcmZ`(e@q)y9Crk}crIZX8*x+N38R7w++Ex2wHxUIlmcNuy*B$1B<^S*aN72|yF*Kv zVId?S&J8j%Mc7aoIFT@z+jJ;0hhZ!%BMe!XW`S*~VqivuAz(1Rg8~lp{<(Xf@B4h- z_s8d5q}gbSA!F58^?<2P;7%wDERm zFkqr2K-P(QY8$M*uAhjF-%Re99-3-JnZNo-f#KdKKL^-kXV+4*&L=POcXZhv*dz0%X+U3|J%vrBj8*xl)lD(4VG^Ur>2X7gL)1HDcWB=+fAw!cX!mBn(HW6^8J^eV$LU6#(sNH+Z8<+q4K#a zPJRWRu?_S$SZ^K+sUDnrwv6pLuw{09?8aD|xjplvO&>Q#D*D6Hg^89R@9Bn+jqz2D zH|})T^GZ$krL@WQ!K!V$q08%!jp3Q*bU+#meqp%=|J7n>Or|j_Dhov| zMRl0&@u!XZ2RRlp3BterpHKn3aJe{}yU&zWy z4j7f_U_~*5b;2bvUWhXCp29rnLP&gpl#hVu<<58nn2QmBBr#(70a}VuQy>>CVYChn zS$=?P8Pn@gQ&(ZM3K?}3M$u?$t1yCGt4C4D7_0W_)N8r=|G;$gTCSe>7grKk&H)AV zYX!K4^FmZFz!{!L_LHX#@KjeW59C3iyOC-HSy5@j4_m1L&FHID`$H2nho6XEi)72r V6(v@X7Me(slopGOOv*H2{{Vxd1~~u# literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classRunner.tex b/trunk/paradiseo-peo/docs/latex/classRunner.tex new file mode 100644 index 000000000..65741e5ab --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classRunner.tex @@ -0,0 +1,80 @@ +\hypertarget{classRunner}{ +\section{Runner Class Reference} +\label{classRunner}\index{Runner@{Runner}} +} +Inheritance diagram for Runner::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classRunner} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classRunner_7acb8258c21da9daa62f9a177a2e5acd}{ +\hyperlink{classRunner_7acb8258c21da9daa62f9a177a2e5acd}{Runner} ()} +\label{classRunner_7acb8258c21da9daa62f9a177a2e5acd} + +\item +\hypertarget{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}{ +void \hyperlink{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}{start} ()} +\label{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d} + +\item +\hypertarget{classRunner_5bc239db2be753b77369fa9a038769fd}{ +void \hyperlink{classRunner_5bc239db2be753b77369fa9a038769fd}{wait\-Starting} ()} +\label{classRunner_5bc239db2be753b77369fa9a038769fd} + +\item +\hypertarget{classRunner_40adbfb7d6944189b4fff60b02e669ca}{ +bool \hyperlink{classRunner_40adbfb7d6944189b4fff60b02e669ca}{is\-Local} ()} +\label{classRunner_40adbfb7d6944189b4fff60b02e669ca} + +\item +\hypertarget{classRunner_0f133e75c28fb8264549814f80608e68}{ +void \hyperlink{classRunner_0f133e75c28fb8264549814f80608e68}{terminate} ()} +\label{classRunner_0f133e75c28fb8264549814f80608e68} + +\item +\hypertarget{classRunner_5026c74eec184e3a15cb3c0ec4200a57}{ +RUNNER\_\-ID \hyperlink{classRunner_5026c74eec184e3a15cb3c0ec4200a57}{get\-ID} ()} +\label{classRunner_5026c74eec184e3a15cb3c0ec4200a57} + +\item +\hypertarget{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}{ +void \hyperlink{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}{pack\-Termination} ()} +\label{classRunner_2ad6d199d684d6f34347fc202ffe2fa3} + +\item +\hypertarget{classRunner_3591be473e0fcee1105fb57319b529aa}{ +void \hyperlink{classRunner_3591be473e0fcee1105fb57319b529aa}{notify\-Sending\-Termination} ()} +\label{classRunner_3591be473e0fcee1105fb57319b529aa} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classRunner_4b0827d5df2df632db4ab71dd55e81b2}{ +sem\_\-t \hyperlink{classRunner_4b0827d5df2df632db4ab71dd55e81b2}{sem\_\-start}} +\label{classRunner_4b0827d5df2df632db4ab71dd55e81b2} + +\item +\hypertarget{classRunner_1989c1f8e0b0b54ad2e60a341007e59d}{ +unsigned \hyperlink{classRunner_1989c1f8e0b0b54ad2e60a341007e59d}{id}} +\label{classRunner_1989c1f8e0b0b54ad2e60a341007e59d} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 34 of file runner.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +runner.h\item +core/runner.cpp\item +rmc/mpi/runner.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classService.eps b/trunk/paradiseo-peo/docs/latex/classService.eps new file mode 100644 index 000000000..77ffc2408 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classService.eps @@ -0,0 +1,237 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 100 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 5 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 4 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Service) cw +(Communicable) cw +(peoPopEval< EOT >) cw +(peoSyncMultiStart< EOT >) cw +(peoTransform< EOT >) cw +(peoParaPopEval< EOT >) cw +(peoSeqPopEval< EOT >) cw +(peoParaSGATransform< EOT >) cw +(peoSeqTransform< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Service) 1.5 2 box + (Communicable) 1.5 3 box + (peoPopEval< EOT >) 0.5 1 box + (peoSyncMultiStart< EOT >) 1.5 1 box + (peoTransform< EOT >) 2.5 1 box + (peoParaPopEval< EOT >) 0 0 box + (peoSeqPopEval< EOT >) 1 0 box + (peoParaSGATransform< EOT >) 2 0 box + (peoSeqTransform< EOT >) 3 0 box + +% ----- relations ----- + +solid +0 1.5 2 out +solid +1 1.5 3 in +solid +1 1.5 1.25 out +solid +0.5 2.5 2 conn +solid +0 0.5 1.75 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 1.5 1.75 in +solid +0 2.5 1.75 in +solid +1 2.5 0.25 out +solid +2 3 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in +solid +0 3 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classService.pdf b/trunk/paradiseo-peo/docs/latex/classService.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9228c9af5375d9864d1a972dbd37273a627f30b9 GIT binary patch literal 1586 zcmZ`)dr(wW7)L1{S5zD@9yW4DMRo%PV4A7=ncqbQ*2Oy39@8B(6Ry)7#$h@5D=>ATv#Bm&Ohg#-}imL^L^j> zopasQN|iUcTZ*}NJSnchC_n%BAsIlsLwU_gDtvLL3`>RL6 z_Lp;xT>0qBzkAn`CZ&tx4R^n!nJoSN+IHsGKOZ=`9sXM0wdq>&;9Nq7Raa&I!H07_ zlcSTl&whCl(A8J`PVUx+4O4;6JF+bc|C+kBdCjoq>g=I}yu5n>PtSFnJ+!CXS@LbU zZQ43V>v#XCd0O7yJ~hxBWmyz|c>1pNgAHD;rD;WNV>v~T~%RsyDJ))YkP_+>}o5|pYF-OezD4!^PIX;9W=hKwX&{FnHSkL<2K~i zDGPY?^FY`myUxd>6Q3q0y7`Y?IzI0B@hOdENzgs(YGTdVEmJ9Tr^D`i^20{!-h^C> z$m|mp;%6S6->Dn}@7VOi^;x$pd!LIV?CM$%47>tfvibhUaG#yjwi6f15>i|uzX;Q| zhu4G8TuQSBBhHKsZp$y6V7HA`t-ZZna!cwu@%hfix%kV3>i5l>w_Hmi-iz|Os1J9D zccp846N!-7`t$};V{yqLsOLfchNk`ki-OCUP9-BZIMGq6SX^=Y*imZwrzR^WH1#zx zHv`y{)q{{pH46uQ31Sl@Cd?G&i#F*kR#zATpE|n9qv?c$6-c14)>WwFXNDh`}gO3T)<3aw*gt z8A9{4o=sn*SV(@^U%t|RIcW@!QAY#P-``9u)L_1`8aXC}X_i^$i(0fQFvUu%urwQk zX$}f)z~gk8kn`5CnKUz>C@!EF9&1eDg>w+9Mtd(-C0S-btxh#+p+OWHs|H~iEXQ+N zgKj?$6eP8qkcd%R(PP2uSVoCjFH*iHAqY7^5^_=@r6h7>k7iT<&lIQQ^-vU|r#bFT zIukCEu?CTnHD#wm1|dO4J_7;brOucPFbzW*Au(cU02xI|DUb#hF@+q}APm4PVkDtJ zid=~i3KE^rDoiGO5hF+>n$>7fC= z*Z_~!9fYV}fNNM5$xk?KfJZQCED#O~-Hiw(ND@&e1MRDur$=l) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Thread) 1.25 2 box + (ReactiveThread) 0.5 1 box + (Runner) 2 1 box + (Communicator) 0 0 box + (Worker) 1 0 box + (peoEA< EOT >) 2 0 box + +% ----- relations ----- + +solid +1 1.25 1.25 out +solid +0.5 2 2 conn +solid +0 0.5 1.75 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 2 1.75 in +solid +1 2 0.25 out +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classThread.pdf b/trunk/paradiseo-peo/docs/latex/classThread.pdf new file mode 100644 index 0000000000000000000000000000000000000000..47835db67acdc95f825fcff308772d976f815566 GIT binary patch literal 1612 zcmZ`(eNYr-91aqj+a^Dd5y)a*(vzd$c9-M6{2+znfDk+m8mR+pxqE@ryIW^>uQ|XE zRC0tu4yGhWaY{r&O+|u6-~t`_NMx8)Ok%(?N8~HS0UNQhckz&fY5&>X=l4F({yv`H z3Nf6J+}yuH%%ctIazUPY zc~7~x{^ZCX%Z8eCC5;~^N$>p~^_}Og&#E_1G!pWbl9zfGoNC#5M*7Y9`|Cwtf7{t{ zU^sAo?xMCV!LP#ZI+7l2@0l3r?wPDmp6sX^TkP&vyYRibAbD+BZADoLw&ugm752-r zeaDtOxUu}OOJ1ID(OYY`=8d0@4vTbgO|!necA)R}$k(BsuxPi{Xy5LptrYJ$J>+&%q;woQ zRP$tLXkvtlzP!hNt*uzmufB4HvG+COMOEHQt-cRmm-zU)Q$E6T9+J(qG3>4#HLDyw zA*ucg3&t+R`5o@f9SB*0iIosKbO?JTl;;ZPqd@ZYh8Zg zrASyeaAI$p%;YkBT>nXaqgp9=S$#C}siV(l$K*$aKXg6%{W{%hJ=1KTh~+EA769TtWNM9kGw54KJJWU7>(0C{Y3o0h z&Stlf&^WcbSNj)SQ|v`5MYp=W^eDjIZ|d4FzmasW{3uCDvzN?Hb%0t@&-< zq0yR7HsI`e&z!7|-oc#vVn0WBzp%1kaO0Mr<0~XYgutcHY>e`=S51W884oDyWlOyZ z$L#lu5A2p0`ib%y!rs!7{Y%y3S6-_+_#?C!oQ^_IybF2n@pq{r7;{3wGX_n_+y-$C zl@9S3XfRTtv<>J86qXVMAQcjEure7#aRypAAmLq%;abSjRz?q5*FD(!_fu+ zJOSD`bUfU~MZ|N+<3Rb0p{5a=n4^C*VLTT?lH6nxd_ z+tXDA%_yK&8?1WBh{EGFAR>ciIabdYw{bv0O2tHwKWZ!bk#I)ZqC%|~sa6FMgq$D= zIU1uhNRHw$wBi3k2}aHYMPVk2Wn(EboED=Qk&3ourb7!t)?2v@1o%JijE#Y57_te8 z5zj9mlS(C0kOrnPB{I@f6j-J)k|fa}`D+Fv6v1eMvoM(gb#N9&kjON%FqsSuX%?mo zp2H=Hxfr2T%;Ay*`5!LFP(~AE(BB;3@y0BO>IJx#rjh;lX#+gUl12l5P-r)zR6r-X q)h*euH788K?HS%wbRp#f|G7vq?_8Fn7;dVGWRRT1gu?KRYV2R?^*=QL literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classThread.tex b/trunk/paradiseo-peo/docs/latex/classThread.tex new file mode 100644 index 000000000..3b48cd671 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classThread.tex @@ -0,0 +1,54 @@ +\hypertarget{classThread}{ +\section{Thread Class Reference} +\label{classThread}\index{Thread@{Thread}} +} +Inheritance diagram for Thread::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classThread} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classThread_95c703fb8f2f27cb64f475a8c940864a}{ +\hyperlink{classThread_95c703fb8f2f27cb64f475a8c940864a}{Thread} ()} +\label{classThread_95c703fb8f2f27cb64f475a8c940864a} + +\item +\hypertarget{classThread_37d9edd3a1a776cbc27dedff949c9726}{ +virtual \hyperlink{classThread_37d9edd3a1a776cbc27dedff949c9726}{$\sim$Thread} ()} +\label{classThread_37d9edd3a1a776cbc27dedff949c9726} + +\item +\hypertarget{classThread_e197c46f8f62ecce6d2a7fe95bdc5b38}{ +void \hyperlink{classThread_e197c46f8f62ecce6d2a7fe95bdc5b38}{set\-Active} ()} +\label{classThread_e197c46f8f62ecce6d2a7fe95bdc5b38} + +\item +\hypertarget{classThread_20632ffe9ddfa2a478afb0c84dc1096b}{ +void \hyperlink{classThread_20632ffe9ddfa2a478afb0c84dc1096b}{set\-Passive} ()} +\label{classThread_20632ffe9ddfa2a478afb0c84dc1096b} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classThread_1b155d63bca3096ac4a1d039aea83c7c}{ +bool \hyperlink{classThread_1b155d63bca3096ac4a1d039aea83c7c}{act}} +\label{classThread_1b155d63bca3096ac4a1d039aea83c7c} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 31 of file thread.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +thread.h\item +thread.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classTopology.eps b/trunk/paradiseo-peo/docs/latex/classTopology.eps new file mode 100644 index 000000000..45dacefa6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classTopology.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 412.371 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.2125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Topology) cw +(RingTopology) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Topology) 0 1 box + (RingTopology) 0 0 box + +% ----- relations ----- + +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classTopology.pdf b/trunk/paradiseo-peo/docs/latex/classTopology.pdf new file mode 100644 index 0000000000000000000000000000000000000000..652f4649e8a67e091bf1b01a26a5396753a76fe7 GIT binary patch literal 1290 zcmZ`(U1$_n6c)t?FN%MmFU`Y6vT;LA?##~4&aNg4Np@HKS>4XAEoIHaWcMbSvOAN^ z+_k$A1GWu?)@p@VX&U;_P-&?M8t~r`HU1FRXh0EB{OLndVr$Rc>}EB_d6}8- zob$~&-*@gfB7sn~SR*0Fg(tgyMKTt!+59=GttIQJ(aPGe2N0En^c15OCZUwZXn-cn zB=!4|%`B>=QMPZ-?(l|TVSe|RzkBb{nTi8Tm&YrHk2e~^wVwLu+H7ZM zn_u^RsJ5)AyVG-jn|Hz8o9SHlh1u1C%1fg!uHW7%jNU#uzAAa?CwKG0)5q*w??}iI zE&J%m#K4oez2!?felK5p{_0uj@aylcWt%?^9;{fxzCE;RF!O0g*Sve5up>`cu4um%5Hs_&2WBdz~wgVY-hV!l2n5@&2HjX3SxQd!EFl0C- zXDgJ7Q>BH_rgpVzrZpqqDB&m~(M&VrR`99e+r_C|B?gc>nMqK~8H`5o>NeA6 zcEZxz8TN{Djo_*RS>Y5g-82Fqy)&@VB?yWj3X15JWS0W*u$g>cD5kR%bvC9n+uoq1 zX_3sdoB=bNYo!Jt^%>R%K-H8oS&OzH0gECMrY`J}Wl6>@xQNLLNX9R0Oks)-+?s~T zBB(VDlRU5>(=b7N7n9tu+qc>Iqrdvgf4Zt>fSUO3+Dx-pUPhnWiyV&N H#t`}+cAcNH literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classTopology.tex b/trunk/paradiseo-peo/docs/latex/classTopology.tex new file mode 100644 index 000000000..0382d3a25 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classTopology.tex @@ -0,0 +1,44 @@ +\hypertarget{classTopology}{ +\section{Topology Class Reference} +\label{classTopology}\index{Topology@{Topology}} +} +Inheritance diagram for Topology::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classTopology} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classTopology_3e447669757c8311c7f6f8edc705abf2}{ +virtual \hyperlink{classTopology_3e447669757c8311c7f6f8edc705abf2}{$\sim$Topology} ()} +\label{classTopology_3e447669757c8311c7f6f8edc705abf2} + +\item +\hypertarget{classTopology_62bc46d8c20fdc71dad9e7c7a0d7aded}{ +void \hyperlink{classTopology_62bc46d8c20fdc71dad9e7c7a0d7aded}{add} (\hyperlink{classCooperative}{Cooperative} \&\_\-\_\-mig)} +\label{classTopology_62bc46d8c20fdc71dad9e7c7a0d7aded} + +\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\hypertarget{classTopology_247a2faa8568b678f0b7b11e62c7812c}{ +std::vector$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classTopology_247a2faa8568b678f0b7b11e62c7812c}{mig}} +\label{classTopology_247a2faa8568b678f0b7b11e62c7812c} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 31 of file topology.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +topology.h\item +topology.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classWorker.eps b/trunk/paradiseo-peo/docs/latex/classWorker.eps new file mode 100644 index 000000000..5972d40a6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classWorker.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 275.229 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.81667 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Worker) cw +(Communicable) cw +(ReactiveThread) cw +(Thread) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Worker) 0.5 0 box + (Communicable) 0 1 box + (ReactiveThread) 1 1 box + (Thread) 1 2 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +1 1 1 in +solid +0 1 1 out +solid +1 1 2 in diff --git a/trunk/paradiseo-peo/docs/latex/classWorker.pdf b/trunk/paradiseo-peo/docs/latex/classWorker.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d69c3f78904a0b58e1db28370e59ad50be1ed977 GIT binary patch literal 1477 zcmZ`(ZBP_t9LG+`p3uyp41#!^0Reg0-8=SPkRe{~j<4!u3u~gBEd4-2j!rcyS`(ObP&z42f>Y1J0SUHWcAww>`Td^% z%kSAplinClC8$8;g~{e)fQBUG%PK)~GVvPX%B2dZ#)z3PI$aVHAYpVd64E0(&!UtR zAW8yas(`1x+mgp$BLfG$+i#zlI(x8-E&OqvVPqn3vb~#YQFCug;dOPV?Xjmu*LfS@ zk$ZQt1~Xp`>s6fYn_27aq2KH89NeoOwoUvq92z*idTU(U54I~g8-`ZLoPWb>6}K1< z#iWf7_NA5>tOK{s4IKY9L!2$X**0{wH_&jW-c`5j(s1Zxankj}jZYOm`0$sU^~D1- zyI=m|)8idyQ>}hsHM@S&9az6DAT6qs-Z}MqQ~t5n8w@%7Ubt`kGWnCKkqe`aN3}QE ztw|V*u61y0-(M5)M`Fk4v*8s_^Jst1 zjaS<4U-TMJl*OO_I={NF$dlx_d-N+ku-GKOlVf2$t%{EHZ=PvyPoM60tZ7M|R<;Mk z25mdD`LDQHf40{Y6|pL@WXrkzjhiwK+%E0DYpeX;DwMt1dF1Jl(T^TdaW=*DXW=^@ zZtiOS+d35R^X#TQA6QH~^db4DvNw?K(dP#h8>8NOu`qbzT0!nA)zRQq(7Hb?HX^Ir z?{IB>E_-8wc+gy!tT_16$$M9?J9-1h`fVqMvqKCmmwyY%x#X|(cD}Ry)^p>JLK6_j z`bLSr94$~wFl^QxhsVW6HE+9^V zD%n1OFe8z73w9)8W0?frZb6cjz}ACA5%NfQyTK!6S|n^PsGDaPdCaC{Su?;^BQo$B z3yM&-=p5urOg>@WvRDjf2Io=}A(883MQ8#B# z=96FAuX%j`Qqq7ZFy%oiCB-K!*WkNGW(|;O<|UQ6q86fBpnW_lFMYvuMnrNOh$3ed z664K$6~oOXO2{Z6EbcN%9)(;rK6{}m<&pw!HS4w`A=+Ru!ORL?ltjDWtd^jbq7z7E z3~npF!IG2b^tkoW`XnVuYDkLIP+AqO)Zlm?&;DPi$SJu{bcTx&#eAj;Er{_#w4V3W zlp_u!X>O?k12K!8@d(HPNJvqDTzsIKrd2d_zy(aB#zU4L$Sqd`7}jAdLcwUVoQ0;Z*(z}5bTD+!F#g#`Q?g@nbq2jO}lVdi;kKY7}a$mSe8 zlm~_HMz$VWqf^kwV}B+Df4lR$mL{InU5QzVl*-N(B}S0unn+P9HHeHf6d1w3ujulv literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classWorker.tex b/trunk/paradiseo-peo/docs/latex/classWorker.tex new file mode 100644 index 000000000..1eb8104e6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classWorker.tex @@ -0,0 +1,94 @@ +\hypertarget{classWorker}{ +\section{Worker Class Reference} +\label{classWorker}\index{Worker@{Worker}} +} +Inheritance diagram for Worker::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classWorker} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classWorker_3754817df06ffe220f7f0d903c78ccac}{ +\hyperlink{classWorker_3754817df06ffe220f7f0d903c78ccac}{Worker} ()} +\label{classWorker_3754817df06ffe220f7f0d903c78ccac} + +\item +\hypertarget{classWorker_abcbbace05c6113f1959c494b3577291}{ +void \hyperlink{classWorker_abcbbace05c6113f1959c494b3577291}{start} ()} +\label{classWorker_abcbbace05c6113f1959c494b3577291} + +\item +\hypertarget{classWorker_83780920118e6c2b67d9477bdf8be248}{ +void \hyperlink{classWorker_83780920118e6c2b67d9477bdf8be248}{pack\-Result} ()} +\label{classWorker_83780920118e6c2b67d9477bdf8be248} + +\item +\hypertarget{classWorker_bff2bdcd64fe5400156cc78704c64953}{ +void \hyperlink{classWorker_bff2bdcd64fe5400156cc78704c64953}{unpack\-Data} ()} +\label{classWorker_bff2bdcd64fe5400156cc78704c64953} + +\item +\hypertarget{classWorker_60d2e8eba85b9ef403d94be54c391640}{ +void \hyperlink{classWorker_60d2e8eba85b9ef403d94be54c391640}{pack\-Task\-Done} ()} +\label{classWorker_60d2e8eba85b9ef403d94be54c391640} + +\item +\hypertarget{classWorker_e2f487014766a73c5788bdcfd58ad863}{ +void \hyperlink{classWorker_e2f487014766a73c5788bdcfd58ad863}{notify\-Sending\-Result} ()} +\label{classWorker_e2f487014766a73c5788bdcfd58ad863} + +\item +\hypertarget{classWorker_13efd6a8e275745329a4a8e23a0eb0bb}{ +void \hyperlink{classWorker_13efd6a8e275745329a4a8e23a0eb0bb}{notify\-Sending\-Task\-Done} ()} +\label{classWorker_13efd6a8e275745329a4a8e23a0eb0bb} + +\item +\hypertarget{classWorker_5dab4ea663546b5a49d9398d7a624d27}{ +void \hyperlink{classWorker_5dab4ea663546b5a49d9398d7a624d27}{set\-Source} (int \_\-\_\-rank)} +\label{classWorker_5dab4ea663546b5a49d9398d7a624d27} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classWorker_b5ffcb995e12fa71b9551e91729d6972}{ +WORKER\_\-ID \hyperlink{classWorker_b5ffcb995e12fa71b9551e91729d6972}{id}} +\label{classWorker_b5ffcb995e12fa71b9551e91729d6972} + +\item +\hypertarget{classWorker_d7dc76e301fd2bcf5d3a2088a59f1378}{ +SERVICE\_\-ID \hyperlink{classWorker_d7dc76e301fd2bcf5d3a2088a59f1378}{serv\_\-id}} +\label{classWorker_d7dc76e301fd2bcf5d3a2088a59f1378} + +\item +\hypertarget{classWorker_454e1764ed165af733cc44a73e395692}{ +\hyperlink{classService}{Service} $\ast$ \hyperlink{classWorker_454e1764ed165af733cc44a73e395692}{serv}} +\label{classWorker_454e1764ed165af733cc44a73e395692} + +\item +\hypertarget{classWorker_895c3ebc198018ea3391c09bc802d2f6}{ +int \hyperlink{classWorker_895c3ebc198018ea3391c09bc802d2f6}{src}} +\label{classWorker_895c3ebc198018ea3391c09bc802d2f6} + +\item +\hypertarget{classWorker_7ba5a18b2918cf9e704536b763be37f7}{ +bool \hyperlink{classWorker_7ba5a18b2918cf9e704536b763be37f7}{toto}} +\label{classWorker_7ba5a18b2918cf9e704536b763be37f7} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 33 of file worker.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +worker.h\item +worker.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.eps b/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.eps new file mode 100644 index 000000000..0caadfe0f --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 218.579 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.2875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoAggEvalFunc< EOT >) cw +(peoNoAggEvalFunc< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoAggEvalFunc< EOT >) 0 1 box + (peoNoAggEvalFunc< EOT >) 0 0 box + +% ----- relations ----- + +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.pdf b/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.pdf new file mode 100644 index 000000000..c84a3b288 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.pdf @@ -0,0 +1,73 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ•NÛJ1}Ÿ¯8¶q&77P +-l}SªùYÚEizQÔßwÒ-l}$„““9—9€ë¹`Wèöéý1îõöt"9 p®`™UÔÀ%™yKƒYàÙÄä$ Ì…nŽ›Ã¢ïÛ¯—ÝêsßÍÐ>fÌ'ùÚLkrÎpøÖ„W­gA¿#ã}CÏÿë—h|JÖõ-Pm¿û4" +YE¤Ä(Ãó¼ÜN%#«ŸL€HÓèÌúÀWìʵ´ö”1ºÆ­é[çR¿endstream +endobj +6 0 obj +204 +endobj +4 0 obj +<> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000520 00000 n +0000000734 00000 n +0000000461 00000 n +0000000308 00000 n +0000000015 00000 n +0000000289 00000 n +0000000568 00000 n +0000000668 00000 n +0000000609 00000 n +0000000638 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(·YåÔ˜± 1j ßÛd)(·YåÔ˜± 1j ßÛd)] +>> +startxref +891 +%%EOF diff --git a/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.tex b/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.tex new file mode 100644 index 000000000..7b06abe38 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoAggEvalFunc.tex @@ -0,0 +1,39 @@ +\hypertarget{classpeoAggEvalFunc}{ +\section{peo\-Agg\-Eval\-Func$<$ EOT $>$ Class Template Reference} +\label{classpeoAggEvalFunc}\index{peoAggEvalFunc@{peoAggEvalFunc}} +} +The \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func} class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. + + +{\tt \#include $<$peo\-Agg\-Eval\-Func.h$>$} + +Inheritance diagram for peo\-Agg\-Eval\-Func$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classpeoAggEvalFunc} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Agg\-Eval\-Func$<$ EOT $>$} + +The \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func} class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. + +The class inherits {\bf public eo\-BF$<$ EOT\&, const typename EOT :: Fitness\&, void $>$} thus requiring, for the derived classes, the creation of a function having the following signature: + +\begin{TabularC}{2} +\hline +void operator()( EOT\& \_\-\_\-eot, const typename EOT :: Fitness\& \_\-\_\-partial\_\-fittness ); ~ &~ \\\hline +\end{TabularC} + + +The aggregation object is called in an iterative manner for each of the results obtained by applying partial evaluation functions. + + + +Definition at line 40 of file peo\-Agg\-Eval\-Func.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Agg\-Eval\-Func.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.eps b/trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.eps new file mode 100644 index 000000000..1d54a93f4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 333.333 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.5 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoAsyncIslandMig< EOT >) cw +(Cooperative) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoAsyncIslandMig< EOT >) 0 0 box + (Cooperative) 0 1 box + (Communicable) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.pdf b/trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.pdf new file mode 100644 index 0000000000000000000000000000000000000000..61b5ebbb3d582cfaa478d9ed7b98669bac22c1b4 GIT binary patch literal 1407 zcmZ`(eM}Q)9A<7V<3)+va9iABUXqcNE%fesv^~UuvmeR?EN%T*fS99wp$Dahch~H6 zFlIJBVobJxESqCCP3&=@0B%_T(c=?<@*jwe|gWf@}Ta z%$2s@%dek& zZt1UPZ~Jmh%P5!9Rk9&;zBzW_m-Nr-vVFX~+ka!)ayXI}eRLmAT?ZQZPTYBDvoc8dEQh zZtpKUIzk10ywfmb%1=7dxB2oW>nOiyOS;;3wCUPx?nI#{biBr0_we!A#^2An#@1L` z|6G5&Xl9`M$obIRme-`>z=7}g2TvW-FMf7X_sU;i@0op};E%MgW}eaB5cfAvWi{5k zH1PR&TC?q=@TY3-+{wM09o?OueH(mtJa;#Ee7Zw(y5Pbmt$R8&<>9VvNV;j792!i! z$+mljk9EJ?9{kyV%@z)SSaMcMok*>|)U~atq-8p#WaUUN^0}iH;D5w6Vix&jjYbfK zvg3|Achn)u##bS#2)PA*t*F9M8khAn4Oy1evTQlPbqV&F1Xzc(;gfiiKOejMVtq2qyj67jJYM2a9 z1|y@%klG-)WmpQx;C4_BF@v8_61He7v(OstH1P`W6{}(t^TWr_8}B|J9~w{_ZAFmD z%Zn0|9p-1E>_$M^>~WUJQn4xrxVx+5Hdn7X2yre{AWN1S+$jGp4w1R&D`)J)^ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.tex b/trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.tex new file mode 100644 index 000000000..c4d369cef --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoAsyncIslandMig.tex @@ -0,0 +1,216 @@ +\hypertarget{classpeoAsyncIslandMig}{ +\section{peo\-Async\-Island\-Mig$<$ EOT $>$ Class Template Reference} +\label{classpeoAsyncIslandMig}\index{peoAsyncIslandMig@{peoAsyncIslandMig}} +} +The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. + + +{\tt \#include $<$peo\-Async\-Island\-Mig.h$>$} + +Inheritance diagram for peo\-Async\-Island\-Mig$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classpeoAsyncIslandMig} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf}{peo\-Async\-Island\-Mig} (eo\-Continue$<$ EOT $>$ \&\_\-\_\-cont, eo\-Select$<$ EOT $>$ \&\_\-\_\-select, eo\-Replacement$<$ EOT $>$ \&\_\-\_\-replace, \hyperlink{classTopology}{Topology} \&\_\-\_\-topology, eo\-Pop$<$ EOT $>$ \&\_\-\_\-source, eo\-Pop$<$ EOT $>$ \&\_\-\_\-destination) +\begin{CompactList}\small\item\em Constructor for the \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. \item\end{CompactList}\item +void \hyperlink{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5}{operator()} () +\begin{CompactList}\small\item\em Function operator to be called as checkpoint for performing the migration step. \item\end{CompactList}\item +\hypertarget{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16}{ +void \hyperlink{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16}{pack} ()} +\label{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16} + +\begin{CompactList}\small\item\em Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item +\hypertarget{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369}{ +void \hyperlink{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369}{unpack} ()} +\label{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369} + +\begin{CompactList}\small\item\em Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82}{ +void \hyperlink{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82}{emigrate} ()} +\label{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82} + +\item +\hypertarget{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64}{ +void \hyperlink{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64}{immigrate} ()} +\label{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83}{ +eo\-Continue$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83}{cont}} +\label{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83} + +\item +\hypertarget{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2}{ +eo\-Select$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2}{select}} +\label{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2} + +\item +\hypertarget{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48}{ +eo\-Replacement$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48}{replace}} +\label{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48} + +\item +\hypertarget{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679}{ +\hyperlink{classTopology}{Topology} \& \hyperlink{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679}{topology}} +\label{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679} + +\item +\hypertarget{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee}{ +eo\-Pop$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee}{source}} +\label{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee} + +\item +\hypertarget{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43}{ +eo\-Pop$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43}{destination}} +\label{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43} + +\item +\hypertarget{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a}{ +std::queue$<$ eo\-Pop$<$ EOT $>$ $>$ \hyperlink{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a}{imm}} +\label{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a} + +\item +\hypertarget{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89}{ +std::queue$<$ eo\-Pop$<$ EOT $>$ $>$ \hyperlink{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89}{em}} +\label{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89} + +\item +\hypertarget{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27}{ +std::queue$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27}{coop\_\-em}} +\label{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Async\-Island\-Mig$<$ EOT $>$} + +The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. + +continuation criterion, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. As opposed to the synchronous migration model, in the asynchronous migration approach, there is no synchronization step between islands after performing the emigration phase. + +The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: + +\begin{TabularC}{2} +\hline +{\bf do} \{ ~ &~ \\\hline +~~~~~~~~ select( population, offsprings ); ~ &// select the offsprings from the current population \\\hline +~~~~~~~~ transform( offsprings ); ~ &// crossover and mutation operators are applied on the selected offsprings \\\hline +~~~~~~~~ evaluate( offsprings ); ~ &// evaluation step of the resulting offsprings \\\hline +~~~~~~~~ replace( population, offsprings ); ~ &// replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy \\\hline +\} {\bf while} ( ea\-Checkpoint\-Continue( population ) ); ~ &// checkpoint operators are applied on the current population, including the migration operator, if any specified \\\hline +\end{TabularC} + + +Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the {\bf \hyperlink{classRunner}{Runner}} class (for example a \hyperlink{classpeoEA}{peo\-EA} object represents a possible owner). A simple example is offered bellow: + +\begin{enumerate} +\item topological model to be followed when performing migrations: \par + \par + \begin{TabularC}{2} +\hline +\hyperlink{classRingTopology}{Ring\-Topology} mig\-Topology; ~ &// a simple ring topological model - each island communicates with two other islands \\\hline +\end{TabularC} + + +\item the continuation criterion, selection and replacement strategy etc. are defined: \par + \par + \begin{TabularC}{2} +\hline +eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// population of individuals to be used for the evolutionary algorithm \\\hline +~ &~ \\\hline +eo\-Periodic\-Continue$<$ EOT $>$ mig\-Cont( MIG\_\-FREQ ); ~ &// migrations occur periodically at MIG\_\-FREQ iterations \\\hline +eo\-Random\-Select$<$ EOT $>$ mig\-Select\-Strategy; ~ &// selection strategy - in this case a random selection is applied \\\hline +eo\-Select\-Number$<$ EOT $>$ mig\-Select( mig\-Select\-Strategy, MIG\_\-SIZE ); ~ &// number of individuals to be selected using the specified strategy \\\hline +eo\-Plus\-Replacement$<$ EOT $>$ mig\-Replace; ~ &// immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals \\\hline +~ &~ \\\hline +peo\-Async\-Island\-Mig$<$ EOT $>$ async\-Migration( \par + ~~~~~~~~ mig\-Cont, mig\-Select, mig\-Replace, mig\-Topology, \par + ~~~~~~~~ population, population \par + ); ~ &// asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated \\\hline +\end{TabularC} + + +\item creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): \par + \par + \begin{TabularC}{2} +\hline +... ~ &~ \\\hline +eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// the evolutionary algorithm will stop after NUM\_\-GEN generations \\\hline +eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// number of individuals to be selected using the specified strategy \\\hline +... ~ &~ \\\hline +ea\-Checkpoint\-Continue.add( async\-Migration ); ~ &// adding the migration operator as checkpoint element \\\hline +... ~ &~ \\\hline +\end{TabularC} + + +\item definition of an owner evolutionary algorithm (an object inheriting the {\bf \hyperlink{classRunner}{Runner}} class): \par + \par + \begin{TabularC}{2} +\hline +peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace); ~ &// evolutionary algorithm having as checkpoint the ea\-Checkpoint\-Continue object defined above \\\hline +async\-Migration.set\-Owner( ea\-Alg ); ~ &// setting the evolutionary algorithm as owner of the migration object \\\hline +ea\-Alg( population ); ~ &// applying the evolutionary algorithm on a given population \\\hline +\end{TabularC} +\end{enumerate} + + +The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. + +The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ mig\-Topology object has to be passed as parameter for all the migration objects, in order to interconnect them). + + + +Definition at line 127 of file peo\-Async\-Island\-Mig.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf}{ +\index{peoAsyncIslandMig@{peo\-Async\-Island\-Mig}!peoAsyncIslandMig@{peoAsyncIslandMig}} +\index{peoAsyncIslandMig@{peoAsyncIslandMig}!peoAsyncIslandMig@{peo\-Async\-Island\-Mig}} +\subsubsection[peoAsyncIslandMig]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig}$<$ EOT $>$::\hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} (eo\-Continue$<$ EOT $>$ \& {\em \_\-\_\-cont}, eo\-Select$<$ EOT $>$ \& {\em \_\-\_\-select}, eo\-Replacement$<$ EOT $>$ \& {\em \_\-\_\-replace}, \hyperlink{classTopology}{Topology} \& {\em \_\-\_\-topology}, eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-source}, eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-destination})}} +\label{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf} + + +Constructor for the \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Continue$<$}]EOT $>$\& \_\-\_\-cont - continuation criterion specifying whether the migration is performed or not; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy used for integrating the immigrant individuals in the destination population; \item[{\em Topology\&}]\_\-\_\-topology - topological model to be followed when performing migrations; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-source - source population from which the emigrant individuals are selected; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-destination - destination population in which the immigrant population are integrated. \end{description} +\end{Desc} + + +Definition at line 186 of file peo\-Async\-Island\-Mig.h. + +References Topology::add(). + +\subsection{Member Function Documentation} +\hypertarget{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5}{ +\index{peoAsyncIslandMig@{peo\-Async\-Island\-Mig}!operator()@{operator()}} +\index{operator()@{operator()}!peoAsyncIslandMig@{peo\-Async\-Island\-Mig}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig}$<$ EOT $>$::operator() ()}} +\label{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5} + + +Function operator to be called as checkpoint for performing the migration step. + +The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. + +Definition at line 263 of file peo\-Async\-Island\-Mig.h. + +References peo\-Async\-Island\-Mig$<$ EOT $>$::cont, peo\-Async\-Island\-Mig$<$ EOT $>$::emigrate(), peo\-Async\-Island\-Mig$<$ EOT $>$::immigrate(), and peo\-Async\-Island\-Mig$<$ EOT $>$::source. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Async\-Island\-Mig.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoEA.eps b/trunk/paradiseo-peo/docs/latex/classpeoEA.eps new file mode 100644 index 000000000..e4aabc826 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoEA.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 280.374 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.78333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoEA< EOT >) cw +(Runner) cw +(Communicable) cw +(Thread) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoEA< EOT >) 0.5 0 box + (Runner) 0.5 1 box + (Communicable) 0 2 box + (Thread) 1 2 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoEA.pdf b/trunk/paradiseo-peo/docs/latex/classpeoEA.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8fb17525eb831b6cfa32530d045de7a2457d1d98 GIT binary patch literal 1495 zcmZ`(e^3-<7`7Q4al^QfY+y$EBu|f$+ub{s+jHO!j^mJ&xbC0{2y5j&xWnW2+TF7g zq_K>FiiyDiDbeJYN--l*Fy=sm22<$aATgaf7g;&pACN<(gNf4gEgX+843?-jjVemqW_)h&yH`p7$tjJJF~4%8n&fMe=%(D>WQ%OvSMGu zz)k=3)wg<&d2)0N7(Fvsn`G5buRoli)2IG;AW=cB_6M*1pkmeCBa-3gs!f&FeIq_! zFMJTLe%q5>_4BK@C%ZSs);!$V_WrNwuLXM&FvaGEmrg(UzG7d*sh%4!`uCg;*J)?A zv*oX3GDBZG-1LpHf5*#rt54QRpAp>VbyWvqr9~1uM zwF8|`JuxJB$1i-+eCgT5qfJwT(0fjPVqNK)VP#vpE_*WfC%$97;-2%v4Z9^(T@ynw z_1do@&$XY7^7^%3wnl29!x9)S`VtKx+CY5A#jCIY6u0D+to=@i8<`@AXF!XM(Xnoj zN1!l85I{i_a-}LCLvao|1fUcRh2bX1vo5Xx^2lmNjx8`lArD7p1b7y73ut?)TSzkt z$ZkMApJ8B8HYw7YFl0VF1+5Vw4@A?>L4m@=6Xs2f$WUcqt~4ItJ8c#o)P6^-GU#tcAeGy!6 zO|U~*ik;#47nu^cK*n-1J?q|I1RV%Tb_rGl#4IY~=3pU40FuOr#RtSwl#&94U;$In zNO|!AjzvtZMlvqLR0=fQWf-MGQ(cA;Br?r1jG~ZE%P?BGGFSZ{7_C~Ft0w-HD{zd> z4mtE=1-RK(3Q@lRH?b_TpEzxRr#lK+APx%MjdVT8li3dp?s~j$ Class Template Reference} +\label{classpeoEA}\index{peoEA@{peoEA}} +} +The \hyperlink{classpeoEA}{peo\-EA} class offers an elementary evolutionary algorithm implementation. + + +{\tt \#include $<$peo\-EA.h$>$} + +Inheritance diagram for peo\-EA$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classpeoEA} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoEA_dbfc4f8907bef234602149229f132371}{peo\-EA} (eo\-Continue$<$ EOT $>$ \&\_\-\_\-cont, \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$ \&\_\-\_\-pop\_\-eval, eo\-Select$<$ EOT $>$ \&\_\-\_\-select, \hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$ \&\_\-\_\-trans, eo\-Replacement$<$ EOT $>$ \&\_\-\_\-replace) +\begin{CompactList}\small\item\em Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. \item\end{CompactList}\item +\hypertarget{classpeoEA_6ab8c321d29350634143a2a01cf2ad24}{ +void \hyperlink{classpeoEA_6ab8c321d29350634143a2a01cf2ad24}{run} ()} +\label{classpeoEA_6ab8c321d29350634143a2a01cf2ad24} + +\begin{CompactList}\small\item\em Evolutionary algorithm function - a side effect of the fact that the class is derived from the {\bf \hyperlink{classRunner}{Runner}} class, thus requiring the existence of a {\em run\/} function, the algorithm being executed on a distinct thread. \item\end{CompactList}\item +void \hyperlink{classpeoEA_3c709e3b2491147d26fee36138644613}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Function operator for specifying the population to be associated with the algorithm. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoEA_5f015eebf42f176b9fe322488c446c2a}{ +eo\-Continue$<$ EOT $>$ \& \hyperlink{classpeoEA_5f015eebf42f176b9fe322488c446c2a}{cont}} +\label{classpeoEA_5f015eebf42f176b9fe322488c446c2a} + +\item +\hypertarget{classpeoEA_9140259f50c9186edcb062b023624c96}{ +\hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$ \& \hyperlink{classpeoEA_9140259f50c9186edcb062b023624c96}{pop\_\-eval}} +\label{classpeoEA_9140259f50c9186edcb062b023624c96} + +\item +\hypertarget{classpeoEA_2d8428d69fdd6aefefbaf543fdd46d19}{ +eo\-Select$<$ EOT $>$ \& \hyperlink{classpeoEA_2d8428d69fdd6aefefbaf543fdd46d19}{select}} +\label{classpeoEA_2d8428d69fdd6aefefbaf543fdd46d19} + +\item +\hypertarget{classpeoEA_713c77935eb8aafebfb9488cfaa4a363}{ +\hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$ \& \hyperlink{classpeoEA_713c77935eb8aafebfb9488cfaa4a363}{trans}} +\label{classpeoEA_713c77935eb8aafebfb9488cfaa4a363} + +\item +\hypertarget{classpeoEA_9bd2d4356cf7e69e3141dc269213aa8a}{ +eo\-Replacement$<$ EOT $>$ \& \hyperlink{classpeoEA_9bd2d4356cf7e69e3141dc269213aa8a}{replace}} +\label{classpeoEA_9bd2d4356cf7e69e3141dc269213aa8a} + +\item +\hypertarget{classpeoEA_c0b110e410bc16283e8339f24b733772}{ +eo\-Pop$<$ EOT $>$ $\ast$ \hyperlink{classpeoEA_c0b110e410bc16283e8339f24b733772}{pop}} +\label{classpeoEA_c0b110e410bc16283e8339f24b733772} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-EA$<$ EOT $>$} + +The \hyperlink{classpeoEA}{peo\-EA} class offers an elementary evolutionary algorithm implementation. + +In addition, as compared with the algorithms provided by the EO framework, the \hyperlink{classpeoEA}{peo\-EA} class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the EO framework, the drawback resides in the fact that the EO implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a \hyperlink{classpeoEA}{peo\-EA} object: + +\begin{TabularC}{2} +\hline +... ~ &~ \\\hline +eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// creation of a population with POP\_\-SIZE individuals - the pop\-Initializer is a functor to be called for each individual \\\hline +~ &~ \\\hline +eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// number of generations for the evolutionary algorithm \\\hline +eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects \\\hline +~ &~ \\\hline +peo\-Seq\-Pop\-Eval$<$ EOT $>$ ea\-Pop\-Eval( eval\-Function ); ~ &// sequential evaluation functor wrapper - eval\-Function represents the actual evaluation functor \\\hline +~ &~ \\\hline +eo\-Ranking\-Select$<$ EOT $>$ selection\-Strategy; ~ &// selection strategy for creating the offspring population - a simple ranking selection in this case \\\hline +eo\-Select\-Number$<$ EOT $>$ ea\-Select( selection\-Strategy, POP\_\-SIZE ); ~ &// the number of individuals to be selected for creating the offspring population \\\hline +eo\-Ranking\-Select$<$ EOT $>$ selection\-Strategy; ~ &// selection strategy for creating the offspring population - a simple ranking selection in this case \\\hline +~ &~ \\\hline +eo\-SGATransform$<$ EOT $>$ transform( crossover, CROSS\_\-RATE, mutation, MUT\_\-RATE ); ~ &// transformation operator - crossover and mutation operators with their associated probabilities \\\hline +peo\-Seq\-Transform$<$ EOT $>$ ea\-Transform( transform ); ~ &// Paradis\-EO specific sequential operator - a parallel version may be specified in the same manner \\\hline +~ &~ \\\hline +eo\-Plus\-Replacement$<$ EOT $>$ ea\-Replace; ~ &// replacement strategy - for integrating the offspring resulting individuals in the initial population \\\hline +~ &~ \\\hline +peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace ); ~ &// Paradis\-EO evolutionary algorithm integrating the above defined objects \\\hline +ea\-Alg( population ); ~ &// specifying the initial population for the algorithm \\\hline +... ~ &~ \\\hline +\end{TabularC} + + + + +Definition at line 69 of file peo\-EA.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoEA_dbfc4f8907bef234602149229f132371}{ +\index{peoEA@{peo\-EA}!peoEA@{peoEA}} +\index{peoEA@{peoEA}!peoEA@{peo\-EA}} +\subsubsection[peoEA]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoEA}{peo\-EA}$<$ EOT $>$::\hyperlink{classpeoEA}{peo\-EA} (eo\-Continue$<$ EOT $>$ \& {\em \_\-\_\-cont}, \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$ \& {\em \_\-\_\-pop\_\-eval}, eo\-Select$<$ EOT $>$ \& {\em \_\-\_\-select}, \hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$ \& {\em \_\-\_\-trans}, eo\-Replacement$<$ EOT $>$ \& {\em \_\-\_\-replace})}} +\label{classpeoEA_dbfc4f8907bef234602149229f132371} + + +Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. + +Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the EO package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Continue$<$}]EOT $>$\& \_\-\_\-cont - continuation criterion specifying whether the algorithm should continue or not; \item[{\em peo\-Pop\-Eval$<$}]EOT $>$\& \_\-\_\-pop\_\-eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of offspring individuals; \item[{\em peo\-Transform$<$}]EOT $>$\& \_\-\_\-trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy for integrating the offspring individuals in the initial population; \end{description} +\end{Desc} + + +Definition at line 113 of file peo\-EA.h. + +References peo\-EA$<$ EOT $>$::pop\_\-eval, and peo\-EA$<$ EOT $>$::trans. + +\subsection{Member Function Documentation} +\hypertarget{classpeoEA_3c709e3b2491147d26fee36138644613}{ +\index{peoEA@{peo\-EA}!operator()@{operator()}} +\index{operator()@{operator()}!peoEA@{peo\-EA}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoEA}{peo\-EA}$<$ EOT $>$::operator() (eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-pop})}} +\label{classpeoEA_3c709e3b2491147d26fee36138644613} + + +Function operator for specifying the population to be associated with the algorithm. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - initial population of the algorithm, to be iteratively evolved; \end{description} +\end{Desc} + + +Definition at line 129 of file peo\-EA.h. + +References peo\-EA$<$ EOT $>$::pop. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-EA.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.eps b/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.eps new file mode 100644 index 000000000..ead08b31e --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 218.579 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.2875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoNoAggEvalFunc< EOT >) cw +(peoAggEvalFunc< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoNoAggEvalFunc< EOT >) 0 0 box + (peoAggEvalFunc< EOT >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.pdf b/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.pdf new file mode 100644 index 000000000..9a1a3696a --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.pdf @@ -0,0 +1,73 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ•OÉŠ1½×W¼ãè!SYí€ +íÜFtòÒh£Ø.3¨¿oõ‚Ša¡òªÞR9•×§«EEŸ‹Ê?b|É-éDº! +E…IRU`ÖHkjÅ:(£±â—*ú8®߇qYæ—ånzÞC䳄Q/m)O4'k×W±ØPmâ#ÆïŠ~þ—îX…è"´÷ø7ᢱæ5Q¾àÛŒïúUûŒ‘±ÆtýÆä>hP=qQyhe23ÎózR­û²È ŠÛR¿endstream +endobj +6 0 obj +202 +endobj +4 0 obj +<> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000518 00000 n +0000000732 00000 n +0000000459 00000 n +0000000306 00000 n +0000000015 00000 n +0000000287 00000 n +0000000566 00000 n +0000000666 00000 n +0000000607 00000 n +0000000636 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(nR¤õ2Gˆ$™òØ7Ç)(nR¤õ2Gˆ$™òØ7Ç)] +>> +startxref +889 +%%EOF diff --git a/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.tex b/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.tex new file mode 100644 index 000000000..defd9349d --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoNoAggEvalFunc.tex @@ -0,0 +1,39 @@ +\hypertarget{classpeoNoAggEvalFunc}{ +\section{peo\-No\-Agg\-Eval\-Func$<$ EOT $>$ Class Template Reference} +\label{classpeoNoAggEvalFunc}\index{peoNoAggEvalFunc@{peoNoAggEvalFunc}} +} +The \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func} class does nothing more than an association between a fitness value and a specified individual. + + +{\tt \#include $<$peo\-No\-Agg\-Eval\-Func.h$>$} + +Inheritance diagram for peo\-No\-Agg\-Eval\-Func$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classpeoNoAggEvalFunc} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}{ +void \hyperlink{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}{operator()} (EOT \&\_\-\_\-sol, const typename EOT::Fitness \&\_\-\_\-fit)} +\label{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5} + +\begin{CompactList}\small\item\em Operator which sets as fitness the {\bf \_\-\_\-fit} value for the {\bf \_\-\_\-sol} individual. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-No\-Agg\-Eval\-Func$<$ EOT $>$} + +The \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func} class does nothing more than an association between a fitness value and a specified individual. + +The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness value is explicitly specified. + + + +Definition at line 34 of file peo\-No\-Agg\-Eval\-Func.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-No\-Agg\-Eval\-Func.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.eps b/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.eps new file mode 100644 index 000000000..25c8b8af1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 487.805 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.025 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoParaPopEval< EOT >) cw +(peoPopEval< EOT >) cw +(Service) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoParaPopEval< EOT >) 0 0 box + (peoPopEval< EOT >) 0 1 box + (Service) 0 2 box + (Communicable) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.pdf b/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.pdf new file mode 100644 index 000000000..d0bd78d91 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.pdf @@ -0,0 +1,73 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ­’ËNÃ0E÷þŠY‹ÁOü PÅ’–æJ”VE } Êï3IãÔU»AB‘eùÞñÜ£qv Ñ€î¾a¯Zuÿæaõ¥4¼ÈZ©2} [ÕÂS)EØ`0&@¹TÇˬGcb´Q”­ºÙÖ›éb¿˜n¶“ây€Ék ·å‡š”j¦,c`Kð#=ÖÊDiàXz±Ó:.: ξVó¿±xFêngÑËžX®s¤dc£”ÛÈ7Á£ÕduCéóçõþ°®ê‹TòRÌŤ!13a¡cŸú¼iÛïÏuµxo.£ÙƒÒãj´*2N^‡ +­G¯=æ)B#•gBòûYRæÃíüB8àò«8)hßy™’_iÔò‹1„ØFÔYH’?Œöä ‚Ô!ƒÈ”ó ÂrÊ1ÄKè³$ ~òè'áÁºÍ "SÎ{ÄLý®ÆÄÆendstream +endobj +6 0 obj +354 +endobj +4 0 obj +<> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000669 00000 n +0000000883 00000 n +0000000610 00000 n +0000000458 00000 n +0000000015 00000 n +0000000439 00000 n +0000000717 00000 n +0000000817 00000 n +0000000758 00000 n +0000000787 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(¼˜”¨Ð\(^K‰È0ß8ª]S)(¼˜”¨Ð\(^K‰È0ß8ª]S)] +>> +startxref +1040 +%%EOF diff --git a/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.tex b/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.tex new file mode 100644 index 000000000..997d9f80a --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoParaPopEval.tex @@ -0,0 +1,258 @@ +\hypertarget{classpeoParaPopEval}{ +\section{peo\-Para\-Pop\-Eval$<$ EOT $>$ Class Template Reference} +\label{classpeoParaPopEval}\index{peoParaPopEval@{peoParaPopEval}} +} +The \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. + + +{\tt \#include $<$peo\-Para\-Pop\-Eval.h$>$} + +Inheritance diagram for peo\-Para\-Pop\-Eval$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoParaPopEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoParaPopEval_bcb540510a7038520bec41a7af332daf}{peo\-Para\-Pop\-Eval} (eo\-Eval\-Func$<$ EOT $>$ \&\_\-\_\-eval\_\-func) +\begin{CompactList}\small\item\em Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. \item\end{CompactList}\item +\hyperlink{classpeoParaPopEval_1cc13a1ec366f95d219d682eccb455bc}{peo\-Para\-Pop\-Eval} (const std::vector$<$ eo\-Eval\-Func$<$ EOT $>$ $\ast$ $>$ \&\_\-\_\-funcs, \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \&\_\-\_\-merge\_\-eval) +\begin{CompactList}\small\item\em Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_aeaa4fca4f8650e453e308838b4a2cb5}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_fea632bd645ab11182782fd3c038d6d8}{pack\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_410bf4c173e2f36df82251cb16ce1b05}{unpack\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item +\hypertarget{classpeoParaPopEval_3af76378611eac5a36da9a0a00aeeb6c}{ +void \hyperlink{classpeoParaPopEval_3af76378611eac5a36da9a0a00aeeb6c}{execute} ()} +\label{classpeoParaPopEval_3af76378611eac5a36da9a0a00aeeb6c} + +\begin{CompactList}\small\item\em Auxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_24bb4ae84b0b9f64e7170e3d2b0e1223}{pack\-Result} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_fd7f0afe9cba30be39269d16097e190e}{unpack\-Result} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_1f78c3cec2940af08a059cc1aa96a9c8}{notify\-Sending\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_b77031fc4807921ffaf7cf6b669a7665}{notify\-Sending\-All\-Resource\-Requests} () +\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoParaPopEval_6d69b8f73c0b5d72baf75d6e53f025b7}{ +const std::vector$<$ eo\-Eval\-Func$<$ EOT $>$ $\ast$ $>$ \& \hyperlink{classpeoParaPopEval_6d69b8f73c0b5d72baf75d6e53f025b7}{funcs}} +\label{classpeoParaPopEval_6d69b8f73c0b5d72baf75d6e53f025b7} + +\item +\hypertarget{classpeoParaPopEval_f0e8af3ee442d2b6baf0bd122226be3c}{ +std::vector$<$ eo\-Eval\-Func$<$ EOT $>$ $\ast$ $>$ \hyperlink{classpeoParaPopEval_f0e8af3ee442d2b6baf0bd122226be3c}{one\_\-func}} +\label{classpeoParaPopEval_f0e8af3ee442d2b6baf0bd122226be3c} + +\item +\hypertarget{classpeoParaPopEval_b48bcd4e9f92f364118304535c089456}{ +\hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \& \hyperlink{classpeoParaPopEval_b48bcd4e9f92f364118304535c089456}{merge\_\-eval}} +\label{classpeoParaPopEval_b48bcd4e9f92f364118304535c089456} + +\item +\hypertarget{classpeoParaPopEval_bf255dd5861e27108c2abae7309d7690}{ +\hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func}$<$ EOT $>$ \hyperlink{classpeoParaPopEval_bf255dd5861e27108c2abae7309d7690}{no\_\-merge\_\-eval}} +\label{classpeoParaPopEval_bf255dd5861e27108c2abae7309d7690} + +\item +\hypertarget{classpeoParaPopEval_af76cd18368a0f6185878f37f0b5f272}{ +std::queue$<$ EOT $\ast$ $>$ \hyperlink{classpeoParaPopEval_af76cd18368a0f6185878f37f0b5f272}{tasks}} +\label{classpeoParaPopEval_af76cd18368a0f6185878f37f0b5f272} + +\item +\hypertarget{classpeoParaPopEval_80e7e34bb1bb2d12f1f2eed3feac6ecf}{ +std::map$<$ EOT $\ast$, std::pair$<$ unsigned, unsigned $>$ $>$ \hyperlink{classpeoParaPopEval_80e7e34bb1bb2d12f1f2eed3feac6ecf}{progression}} +\label{classpeoParaPopEval_80e7e34bb1bb2d12f1f2eed3feac6ecf} + +\item +\hypertarget{classpeoParaPopEval_87abb090c0de39f0ccc36af1f07cca0c}{ +unsigned \hyperlink{classpeoParaPopEval_87abb090c0de39f0ccc36af1f07cca0c}{num\_\-func}} +\label{classpeoParaPopEval_87abb090c0de39f0ccc36af1f07cca0c} + +\item +\hypertarget{classpeoParaPopEval_fb6941e0455515a908eb82342b995163}{ +EOT \hyperlink{classpeoParaPopEval_fb6941e0455515a908eb82342b995163}{sol}} +\label{classpeoParaPopEval_fb6941e0455515a908eb82342b995163} + +\item +\hypertarget{classpeoParaPopEval_60cafeab376262af675fdff43434c8d8}{ +EOT $\ast$ \hyperlink{classpeoParaPopEval_60cafeab376262af675fdff43434c8d8}{ad\_\-sol}} +\label{classpeoParaPopEval_60cafeab376262af675fdff43434c8d8} + +\item +\hypertarget{classpeoParaPopEval_b528ad9dd9006c3dd57f149a3843e57d}{ +unsigned \hyperlink{classpeoParaPopEval_b528ad9dd9006c3dd57f149a3843e57d}{total}} +\label{classpeoParaPopEval_b528ad9dd9006c3dd57f149a3843e57d} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Para\-Pop\-Eval$<$ EOT $>$} + +The \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. + +The class offers the possibility of chosing between a single-function evaluation and an aggregate evaluation function, including several sub-evalution functions. + + + +Definition at line 41 of file peo\-Para\-Pop\-Eval.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoParaPopEval_bcb540510a7038520bec41a7af332daf}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!peoParaPopEval@{peoParaPopEval}} +\index{peoParaPopEval@{peoParaPopEval}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[peoParaPopEval]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} (eo\-Eval\-Func$<$ EOT $>$ \& {\em \_\-\_\-eval\_\-func})}} +\label{classpeoParaPopEval_bcb540510a7038520bec41a7af332daf} + + +Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Eval\-Func$<$}]EOT $>$\& \_\-\_\-eval\_\-func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population \end{description} +\end{Desc} + + +Definition at line 117 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::one\_\-func.\hypertarget{classpeoParaPopEval_1cc13a1ec366f95d219d682eccb455bc}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!peoParaPopEval@{peoParaPopEval}} +\index{peoParaPopEval@{peoParaPopEval}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[peoParaPopEval]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} (const std::vector$<$ eo\-Eval\-Func$<$ EOT $>$ $\ast$ $>$ \& {\em \_\-\_\-funcs}, \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \& {\em \_\-\_\-merge\_\-eval})}} +\label{classpeoParaPopEval_1cc13a1ec366f95d219d682eccb455bc} + + +Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em const}]std :: vector$<$ eo\-Eval\-Func $<$ EOT $>$$\ast$ $>$\& \_\-\_\-funcs - vector of EO-derived partial evaluation functors; \item[{\em peo\-Agg\-Eval\-Func$<$}]EOT $>$\& \_\-\_\-merge\_\-eval - aggregation functor for creating a fitness value out of the partial fitness values. \end{description} +\end{Desc} + + +Definition at line 126 of file peo\-Para\-Pop\-Eval.h. + +\subsection{Member Function Documentation} +\hypertarget{classpeoParaPopEval_aeaa4fca4f8650e453e308838b4a2cb5}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!operator()@{operator()}} +\index{operator()@{operator()}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::operator() (eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-pop})\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_aeaa4fca4f8650e453e308838b4a2cb5} + + +Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - population to be evaluated by applying the evaluation functor specified in the constructor. \end{description} +\end{Desc} + + +Implements \hyperlink{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{peo\-Pop\-Eval$<$ EOT $>$}. + +Definition at line 137 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::funcs, peo\-Para\-Pop\-Eval$<$ EOT $>$::progression, Service::request\-Resource\-Request(), Communicable::stop(), peo\-Para\-Pop\-Eval$<$ EOT $>$::tasks, and peo\-Para\-Pop\-Eval$<$ EOT $>$::total.\hypertarget{classpeoParaPopEval_fea632bd645ab11182782fd3c038d6d8}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!packData@{packData}} +\index{packData@{packData}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[packData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::pack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_fea632bd645ab11182782fd3c038d6d8} + + +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_aea4b8f7f8fb88e83862ee4bfd9ab207}{Service}. + +Definition at line 158 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::progression, and peo\-Para\-Pop\-Eval$<$ EOT $>$::tasks.\hypertarget{classpeoParaPopEval_410bf4c173e2f36df82251cb16ce1b05}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!unpackData@{unpackData}} +\index{unpackData@{unpackData}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[unpackData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::unpack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_410bf4c173e2f36df82251cb16ce1b05} + + +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_3bd87b444710813d30fd754d4d0b4df3}{Service}. + +Definition at line 172 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, peo\-Para\-Pop\-Eval$<$ EOT $>$::num\_\-func, and peo\-Para\-Pop\-Eval$<$ EOT $>$::sol.\hypertarget{classpeoParaPopEval_24bb4ae84b0b9f64e7170e3d2b0e1223}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!packResult@{packResult}} +\index{packResult@{packResult}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[packResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::pack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_24bb4ae84b0b9f64e7170e3d2b0e1223} + + +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_e5e4f90b2315e15c2a2913bd370f4cf5}{Service}. + +Definition at line 189 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, and peo\-Para\-Pop\-Eval$<$ EOT $>$::sol.\hypertarget{classpeoParaPopEval_fd7f0afe9cba30be39269d16097e190e}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!unpackResult@{unpackResult}} +\index{unpackResult@{unpackResult}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[unpackResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::unpack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_fd7f0afe9cba30be39269d16097e190e} + + +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_45c06344edbfa482b91f68e2035a6099}{Service}. + +Definition at line 198 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, Service::get\-Owner(), peo\-Para\-Pop\-Eval$<$ EOT $>$::merge\_\-eval, peo\-Para\-Pop\-Eval$<$ EOT $>$::progression, Communicable::resume(), Thread::set\-Active(), and peo\-Para\-Pop\-Eval$<$ EOT $>$::total.\hypertarget{classpeoParaPopEval_1f78c3cec2940af08a059cc1aa96a9c8}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!notifySendingData@{notifySendingData}} +\index{notifySendingData@{notifySendingData}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[notifySendingData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::notify\-Sending\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_1f78c3cec2940af08a059cc1aa96a9c8} + + +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_81ad4d6ebb50045b8977e2ab74826f30}{Service}. + +Definition at line 229 of file peo\-Para\-Pop\-Eval.h.\hypertarget{classpeoParaPopEval_b77031fc4807921ffaf7cf6b669a7665}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!notifySendingAllResourceRequests@{notifySendingAllResourceRequests}} +\index{notifySendingAllResourceRequests@{notifySendingAllResourceRequests}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[notifySendingAllResourceRequests]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::notify\-Sending\-All\-Resource\-Requests ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_b77031fc4807921ffaf7cf6b669a7665} + + +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_f94cc8a5c2665d4574041737e61e9ffc}{Service}. + +Definition at line 234 of file peo\-Para\-Pop\-Eval.h. + +References Service::get\-Owner(), and Thread::set\-Passive(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Para\-Pop\-Eval.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoParaSGATransform.eps b/trunk/paradiseo-peo/docs/latex/classpeoParaSGATransform.eps new file mode 100644 index 000000000..eee7ca312 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoParaSGATransform.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 400 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.25 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoParaSGATransform< EOT >) cw +(peoTransform< EOT >) cw +(Service) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoParaSGATransform< EOT >) 0 0 box + (peoTransform< EOT >) 0 1 box + (Service) 0 2 box + (Communicable) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoParaSGATransform.pdf b/trunk/paradiseo-peo/docs/latex/classpeoParaSGATransform.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e0de08a747f8b9a68c57a9dfcd909b4176c7fe30 GIT binary patch literal 1367 zcmY!laB!j{jl-L zBA%^+THZR-ygAOcXo>FhDGCwtW)GJ?`)%o~RZ0H>%C4sEzf<;(Fa5mgz4+>2Rzm)ww8pG=*|Fy7i@IjBUXRhs5?aW!(9hDvf8&eG*LI#iyKCLOTg9olf8>9J z&TRY19?&_({amZEanqKg)3n_iwzAvl7)k!zadRGjyh?Kg_o*MxG>vjI6Dy4swv|tH z7gYUO81iBH2_9|PlZ+BiMZb1_aj9#XbFSl)R!fi4uXH!tlQ-mjdxGaME#_S7yx`&y z7R$K@)xiedqWF|W0 zS13dq0HsY03=~WZ3}U%}l0~U`B?`u%2<6fbN-fSWElN%;21a#2QGRl8YDu&{Ffl0T zhon}N0F}E|l(+|%0Ha&M5~9N`AE?_9WM&W-F!J@CfqbBW#R{NA0~Uh13S?c7~0uE4F>rEny`b+xj@>25T<}V1(UVlvOtvuaiNkMd}V|%0T|RNrOBy98m_?s3ho*C#U;hbMVSR9 z3KoW@dIm&;;UQB|l$yq6pkQdoWdH{XW~QdbrV42a zFfkxs0W7PK2N$z20|qJxAc>h;0#hlPn28Cdn1Latc_v1{XhG9!ZUBsNG%*V-V&*2m zM1`i#+#E@7Nl{{EPHGXbU{lZ!&a6rW`d2|eC_f*V{6Mj-pzoQNmahPcC}7_3bWw=b usE*&CF-h0GN~YFM{Lzx-wVIeBv7nS&T#{H+0uDq&10ypoRaIAiH!c9jva$ Class Template Reference} +\label{classpeoParaSGATransform}\index{peoParaSGATransform@{peoParaSGATransform}} +} +Inheritance diagram for peo\-Para\-SGATransform$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoParaSGATransform} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoParaSGATransform_2052bca82fbbfe5455bf6f69246d4dbf}{ +\hyperlink{classpeoParaSGATransform_2052bca82fbbfe5455bf6f69246d4dbf}{peo\-Para\-SGATransform} (eo\-Quad\-Op$<$ EOT $>$ \&\_\-\_\-cross, double \_\-\_\-cross\_\-rate, eo\-Mon\-Op$<$ EOT $>$ \&\_\-\_\-mut, double \_\-\_\-mut\_\-rate)} +\label{classpeoParaSGATransform_2052bca82fbbfe5455bf6f69246d4dbf} + +\item +\hypertarget{classpeoParaSGATransform_669de7f7c6316fa745a15b909efb6527}{ +void \hyperlink{classpeoParaSGATransform_669de7f7c6316fa745a15b909efb6527}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop)} +\label{classpeoParaSGATransform_669de7f7c6316fa745a15b909efb6527} + +\item +\hypertarget{classpeoParaSGATransform_fd278bcde58d29c9a343d5cbead81a1e}{ +void \hyperlink{classpeoParaSGATransform_fd278bcde58d29c9a343d5cbead81a1e}{pack\-Data} ()} +\label{classpeoParaSGATransform_fd278bcde58d29c9a343d5cbead81a1e} + +\item +\hypertarget{classpeoParaSGATransform_a43a487a6e81791c8bbf6ce30f4336ab}{ +void \hyperlink{classpeoParaSGATransform_a43a487a6e81791c8bbf6ce30f4336ab}{unpack\-Data} ()} +\label{classpeoParaSGATransform_a43a487a6e81791c8bbf6ce30f4336ab} + +\item +\hypertarget{classpeoParaSGATransform_c9de2100fb897177a401c634002f6dd9}{ +void \hyperlink{classpeoParaSGATransform_c9de2100fb897177a401c634002f6dd9}{execute} ()} +\label{classpeoParaSGATransform_c9de2100fb897177a401c634002f6dd9} + +\item +\hypertarget{classpeoParaSGATransform_ba08e224ceaa4149e8e1a88694a2ccf2}{ +void \hyperlink{classpeoParaSGATransform_ba08e224ceaa4149e8e1a88694a2ccf2}{pack\-Result} ()} +\label{classpeoParaSGATransform_ba08e224ceaa4149e8e1a88694a2ccf2} + +\item +\hypertarget{classpeoParaSGATransform_257663dcdc6cc95b6183d472ffba1b2f}{ +void \hyperlink{classpeoParaSGATransform_257663dcdc6cc95b6183d472ffba1b2f}{unpack\-Result} ()} +\label{classpeoParaSGATransform_257663dcdc6cc95b6183d472ffba1b2f} + +\item +\hypertarget{classpeoParaSGATransform_4e19dfc22b6f69fa8b93537226551866}{ +void \hyperlink{classpeoParaSGATransform_4e19dfc22b6f69fa8b93537226551866}{notify\-Sending\-Data} ()} +\label{classpeoParaSGATransform_4e19dfc22b6f69fa8b93537226551866} + +\item +\hypertarget{classpeoParaSGATransform_8a0316e33897c395a81787f59ea7a1c8}{ +void \hyperlink{classpeoParaSGATransform_8a0316e33897c395a81787f59ea7a1c8}{notify\-Sending\-All\-Resource\-Requests} ()} +\label{classpeoParaSGATransform_8a0316e33897c395a81787f59ea7a1c8} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoParaSGATransform_c6f97deabe7502c84f5b6c479013f6dc}{ +eo\-Quad\-Op$<$ EOT $>$ \& \hyperlink{classpeoParaSGATransform_c6f97deabe7502c84f5b6c479013f6dc}{cross}} +\label{classpeoParaSGATransform_c6f97deabe7502c84f5b6c479013f6dc} + +\item +\hypertarget{classpeoParaSGATransform_dfcf216e2df05016db4d57a5ffb0b0e2}{ +double \hyperlink{classpeoParaSGATransform_dfcf216e2df05016db4d57a5ffb0b0e2}{cross\_\-rate}} +\label{classpeoParaSGATransform_dfcf216e2df05016db4d57a5ffb0b0e2} + +\item +\hypertarget{classpeoParaSGATransform_34ff5f9d285ca4879cf8865fb425a311}{ +eo\-Mon\-Op$<$ EOT $>$ \& \hyperlink{classpeoParaSGATransform_34ff5f9d285ca4879cf8865fb425a311}{mut}} +\label{classpeoParaSGATransform_34ff5f9d285ca4879cf8865fb425a311} + +\item +\hypertarget{classpeoParaSGATransform_b9d3a2094737d0bbd034aac942cc53e3}{ +double \hyperlink{classpeoParaSGATransform_b9d3a2094737d0bbd034aac942cc53e3}{mut\_\-rate}} +\label{classpeoParaSGATransform_b9d3a2094737d0bbd034aac942cc53e3} + +\item +\hypertarget{classpeoParaSGATransform_03972feadc86626e58fe60bd4061b57e}{ +unsigned \hyperlink{classpeoParaSGATransform_03972feadc86626e58fe60bd4061b57e}{idx}} +\label{classpeoParaSGATransform_03972feadc86626e58fe60bd4061b57e} + +\item +\hypertarget{classpeoParaSGATransform_94e10a1285e128aba6e71517c941f961}{ +eo\-Pop$<$ EOT $>$ $\ast$ \hyperlink{classpeoParaSGATransform_94e10a1285e128aba6e71517c941f961}{pop}} +\label{classpeoParaSGATransform_94e10a1285e128aba6e71517c941f961} + +\item +\hypertarget{classpeoParaSGATransform_9ef60190e2e3bd5961a93d1b52cb275d}{ +EOT \hyperlink{classpeoParaSGATransform_9ef60190e2e3bd5961a93d1b52cb275d}{father}} +\label{classpeoParaSGATransform_9ef60190e2e3bd5961a93d1b52cb275d} + +\item +\hypertarget{classpeoParaSGATransform_e991ad2af6d116afd855de2db46e1d27}{ +EOT \hyperlink{classpeoParaSGATransform_e991ad2af6d116afd855de2db46e1d27}{mother}} +\label{classpeoParaSGATransform_e991ad2af6d116afd855de2db46e1d27} + +\item +\hypertarget{classpeoParaSGATransform_589ea7cd72d522ae51a07de4d8ffbf11}{ +unsigned \hyperlink{classpeoParaSGATransform_589ea7cd72d522ae51a07de4d8ffbf11}{num\_\-term}} +\label{classpeoParaSGATransform_589ea7cd72d522ae51a07de4d8ffbf11} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Para\-SGATransform$<$ EOT $>$} + + + + + +Definition at line 36 of file peo\-Para\-SGATransform.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Para\-SGATransform.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoPopEval.eps b/trunk/paradiseo-peo/docs/latex/classpeoPopEval.eps new file mode 100644 index 000000000..b486aceee --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoPopEval.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 243.902 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.05 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoPopEval< EOT >) cw +(Service) cw +(Communicable) cw +(peoParaPopEval< EOT >) cw +(peoSeqPopEval< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoPopEval< EOT >) 0.5 1 box + (Service) 0.5 2 box + (Communicable) 0.5 3 box + (peoParaPopEval< EOT >) 0 0 box + (peoSeqPopEval< EOT >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoPopEval.pdf b/trunk/paradiseo-peo/docs/latex/classpeoPopEval.pdf new file mode 100644 index 0000000000000000000000000000000000000000..01e11a5377fa3a73406063ad0f113de4705ba664 GIT binary patch literal 1423 zcmZ`(ZA@EL7)GQ5C%7#eT1_T7$OoI_g4T$`ZVV2A&3$U!(%((eE<~gMW2lM{9_dM@; zpYy)&^PH=&7)?b?u?8q6;;#(?7SfP+JqyaqsX7#BmD->dBUZ}f^+`y8l*z|Q$cWs$ z2US!6Q4$d62chst@2-X&Ox{G|&-{wa>}_RKP386{9++@09XK3d&kSxl2*19#f7-Xu zI9ITxt>nnBzt1nu#WwBSI(PH2Yv-80&AF$VkH1oO>-6L|mc?%6*UZ<1YH{BHEkrxz|;DyQ>*bj~-u8kXl} zGBqcc4!w=?vq$2O#GljL-pAB+F|-BdHGb+^xUn4FH|x%oJyl#*_jrb)+x&j_8z){$ zocXx_-Hy(^Me-MCPse*bZqP+*&m0(11iVt(0yI!OAB%@T$mI-lnMeI=P)){!8Y!@|ngS@we)%mScZ?2F`XqYBS${ z-emUpN9!IMqVHeY^5yH_4(E<5hWk!tzazWRjGCv0qqC9C+r!I!S1#hCe9u)AT zRKZ_FNunQlYYbYDf=bpzws*86%EGlGsvdc~TqPfZ4jPA9nuh8UO|iiVa9BVA32KND z0A)oY9~9h3#1^p#yxWE(2Zc=pDLV>Dczbn7sN$gH|IxbGG0&``A|nI3Si{P zpwxx|)#_wI0%`#?WEeoNK2XcD8Wy&|G^S&)GUS1QRm`Bq!mq=$Ebet3Mm)G4qnVAl zCHjqL=vXY=IzIi~u)Cb0SN|th5;(693HXNyDVz5Ng!_e*mFKbjh}w{<4Ycr(2!-!P utr0quA8dW_6IZmnu+V{~vmVx+Qf)+>#JQrx2~u*146RoKg`&E_1pWnYN7ktT literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classpeoPopEval.tex b/trunk/paradiseo-peo/docs/latex/classpeoPopEval.tex new file mode 100644 index 000000000..c4d6eb23e --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoPopEval.tex @@ -0,0 +1,39 @@ +\hypertarget{classpeoPopEval}{ +\section{peo\-Pop\-Eval$<$ EOT $>$ Class Template Reference} +\label{classpeoPopEval}\index{peoPopEval@{peoPopEval}} +} +The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors. + + +{\tt \#include $<$peo\-Pop\-Eval.h$>$} + +Inheritance diagram for peo\-Pop\-Eval$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoPopEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{ +virtual void \hyperlink{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop)=0} +\label{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f} + +\begin{CompactList}\small\item\em Interface function providing the signature for constructing an evaluation functor. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Pop\-Eval$<$ EOT $>$} + +The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors. + +The derived classes may be used as wrappers for {\bf EO}-derived evaluation functors. In order to have an example, please refer to the implementation of the {\bf \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval}} and {\bf \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}} classes. + + + +Definition at line 34 of file peo\-Pop\-Eval.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Pop\-Eval.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.eps b/trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.eps new file mode 100644 index 000000000..e8cf5fd7e --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 506.329 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 0.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 +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoSeqPopEval< EOT >) cw +(peoPopEval< EOT >) cw +(Service) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoSeqPopEval< EOT >) 0 0 box + (peoPopEval< EOT >) 0 1 box + (Service) 0 2 box + (Communicable) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.pdf b/trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4cc13b351ec17f0ffd46195ac0a0bb292260bb53 GIT binary patch literal 1380 zcmZ`(e{2(F7@jWi$CoKa62#D$Pf15Rq~Beyy>=5PZ0*erH~I^mX@=a|ukE?EH}9^j zV+q-eMzf4e3egoD#f?CMW5h(o2od901``YkE`X6B638^L1^+NJWQpI`wW}1oq-pPY zzvsF4eV+HKcR7SLtce5qiCg_czzP{Cx4sS5u0^lmcvy=-o**71NKp+d5D8IH!wwvf zgSfgHsG5Ss7)XA4#QkH_81vMLyQ}|xOxJhu_}1v-@04uPeP(&ZHS}dg!*r>8d*<9& z{p9s-pL6Gp^p*6TndkZh=G?`M^T=q1Yd*QUbje>wr#6fJl6m*f?VoILmy|cM+fKi6 zxJ`hEc62Nox$xe;=Z{W}kN#?!oWHQu_LAxI6$3BdZ0|~+JpAV9&E69NdO!2R7w+ld zCtu%vscZPm`q228S=aE@+*?m)r2bp`clHfkUiHsPLGC-dxvS%muCkF~Jq+HiY`gu; zjceZ+Cua}xjz1>Uf!6Zn4;?qWdu8wJvBdnHuZB-Ot7y9kb zncjn)Te=%6R;|;`ZBMPdTKdFnv;T70v(c&woF4qC=_BussZAeTitjyhs;VYE6G?TS zI<{-@{QQB5GXDB`|x~sLy!rZrLrDC zHUZU=dm^Ypx(izOQrb4tq3aZc#XyYEx0*OL`N>a5Pm0hIfn6;uN zM&)o`VxjrMdE33`3rz#G(bWjq>gt>@ogug79vh%EPeCO+RK98l_Is=JHdm|>RZML_ zJ}HLPH6A%8#3F7e3BN$hT5p8s!d`H=fz~j;EJOnY86-jB4<%~dr~(XuA83|9&Cdgn#~{0m>* B#)tp_ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.tex b/trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.tex new file mode 100644 index 000000000..d0bac49db --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoSeqPopEval.tex @@ -0,0 +1,88 @@ +\hypertarget{classpeoSeqPopEval}{ +\section{peo\-Seq\-Pop\-Eval$<$ EOT $>$ Class Template Reference} +\label{classpeoSeqPopEval}\index{peoSeqPopEval@{peoSeqPopEval}} +} +The \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} class acts only as a Paradis\-EO specific sequential evaluation functor - a wrapper for incorporating an {\bf eo\-Eval\-Func$<$ EOT $>$}-derived class as evaluation functor. + + +{\tt \#include $<$peo\-Seq\-Pop\-Eval.h$>$} + +Inheritance diagram for peo\-Seq\-Pop\-Eval$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoSeqPopEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoSeqPopEval_a41f91ab4b2aeb325ff75feb66d4e003}{peo\-Seq\-Pop\-Eval} (eo\-Eval\-Func$<$ EOT $>$ \&\_\-\_\-eval) +\begin{CompactList}\small\item\em Constructor function - it only sets an internal reference to point to the specified evaluation object. \item\end{CompactList}\item +void \hyperlink{classpeoSeqPopEval_b2c88b9a3ad9091949acf741844eb02f}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Operator for evaluating all the individuals of a given population - in a sequential iterative manner. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoSeqPopEval_5465f31386c6b96bc8f7fb9393a28a2f}{ +eo\-Eval\-Func$<$ EOT $>$ \& \hyperlink{classpeoSeqPopEval_5465f31386c6b96bc8f7fb9393a28a2f}{eval}} +\label{classpeoSeqPopEval_5465f31386c6b96bc8f7fb9393a28a2f} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Seq\-Pop\-Eval$<$ EOT $>$} + +The \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} class acts only as a Paradis\-EO specific sequential evaluation functor - a wrapper for incorporating an {\bf eo\-Eval\-Func$<$ EOT $>$}-derived class as evaluation functor. + +The specified EO evaluation object is applyied in an iterative manner to each individual of a specified population. + + + +Definition at line 36 of file peo\-Seq\-Pop\-Eval.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoSeqPopEval_a41f91ab4b2aeb325ff75feb66d4e003}{ +\index{peoSeqPopEval@{peo\-Seq\-Pop\-Eval}!peoSeqPopEval@{peoSeqPopEval}} +\index{peoSeqPopEval@{peoSeqPopEval}!peoSeqPopEval@{peo\-Seq\-Pop\-Eval}} +\subsubsection[peoSeqPopEval]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} (eo\-Eval\-Func$<$ EOT $>$ \& {\em \_\-\_\-eval})}} +\label{classpeoSeqPopEval_a41f91ab4b2aeb325ff75feb66d4e003} + + +Constructor function - it only sets an internal reference to point to the specified evaluation object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Eval\-Func$<$}]EOT $>$\& \_\-\_\-eval - evaluation object to be applied for each individual of a specified population \end{description} +\end{Desc} + + +Definition at line 56 of file peo\-Seq\-Pop\-Eval.h. + +\subsection{Member Function Documentation} +\hypertarget{classpeoSeqPopEval_b2c88b9a3ad9091949acf741844eb02f}{ +\index{peoSeqPopEval@{peo\-Seq\-Pop\-Eval}!operator()@{operator()}} +\index{operator()@{operator()}!peoSeqPopEval@{peo\-Seq\-Pop\-Eval}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval}$<$ EOT $>$::operator() (eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-pop})\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSeqPopEval_b2c88b9a3ad9091949acf741844eb02f} + + +Operator for evaluating all the individuals of a given population - in a sequential iterative manner. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - population to be evaluated. \end{description} +\end{Desc} + + +Implements \hyperlink{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{peo\-Pop\-Eval$<$ EOT $>$}. + +Definition at line 61 of file peo\-Seq\-Pop\-Eval.h. + +References peo\-Seq\-Pop\-Eval$<$ EOT $>$::eval. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Seq\-Pop\-Eval.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSeqTransform.eps b/trunk/paradiseo-peo/docs/latex/classpeoSeqTransform.eps new file mode 100644 index 000000000..2b86c8a2d --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoSeqTransform.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 476.19 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.05 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoSeqTransform< EOT >) cw +(peoTransform< EOT >) cw +(Service) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoSeqTransform< EOT >) 0 0 box + (peoTransform< EOT >) 0 1 box + (Service) 0 2 box + (Communicable) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSeqTransform.pdf b/trunk/paradiseo-peo/docs/latex/classpeoSeqTransform.pdf new file mode 100644 index 0000000000000000000000000000000000000000..808713ffefcfb7bcacaec4abc0069e7b7e8f0259 GIT binary patch literal 1493 zcmZ`(eNYr-7&kH+7mE;!5**%~po5Uzz2m;f@PgwI@__D+6fTgJdx5<wY=#69aGDUqz%d}F1fAweW^#z$g#(gk|Ji+i&-?t|=lMOq zcm3kknw?~@1oOKxbF2lE0s=4x&DgG8_+Dtu;4^^?Av#<`TX@IcW~VY+TG`We{egebNAD}GlQcO?;gInK*+ljpC2xmdi7yc zv1Rab?VB%4r=DmTolo5#>f&YVIW^ainv#3^-Yv!Gg!jGbw>k&5^j&oA>?%J|^=nRj zpKcEr-<*5=w{6AMJ2qM~W6p?`KEoHD@hTnr)RN+It#xnnJI{KT#%ddE0jeD@+^)Sl zd4JYCA5>Xh@kgw8bM-k@W0k7Oe*H*Q>uYo0dMZ^z<}Ix!M>l-2A+`m^Rq}^j|N6?e z=z#mpk=eO%hv9?pX2~lF{f5AbFV75Qdkk+M*s64SKS(rv%iq7O;6`cELU^%TN$=IO zCD&e@lKWnm?0HJRX>fa|mi;aEy1WR6j6Qze}nNsRo=&1{>}m}_WbV`b9k`@ZQ5=}0*ddi`q5-Oizy^Tsk=lR{Og zp=*>)Eiqod;EqXO1+;b3!4jJ~8BHLp+|!fVdW#Xeyks10#XL zQi1>>a#=8`OvX^0g;pL&1T$f{4swi*O@kb=Svxc49X@2S{;Urhex0_BIJNz*hR=$m~g_9fe{(13@nz$0sIZx!~r8F6t2UP0b;NT zlmeSGm0U@6W=2pvWnnUwDVB;~-7kN1|7y_~9v80#WLTJ!Sm?odsdREoNYkydEHf=FFCd2Vu8cS#MKtW1_32^|D72Ri^W~^!?y+|D@CI~q}5^_=@k&0y~u4PRB7c$Vi z1&Sgp6vxF$ Class Template Reference} +\label{classpeoSeqTransform}\index{peoSeqTransform@{peoSeqTransform}} +} +The \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} represent a wrapper for offering the possibility of using EO derived transform operators along with the Paradis\-EO evolutionary algorithms. + + +{\tt \#include $<$peo\-Seq\-Transform.h$>$} + +Inheritance diagram for peo\-Seq\-Transform$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoSeqTransform} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoSeqTransform_3b8e4ed19d9458938eb669d83a53c626}{peo\-Seq\-Transform} (eo\-Transform$<$ EOT $>$ \&\_\-\_\-trans) +\begin{CompactList}\small\item\em Constructor function - sets an internal reference towards the specified EO-derived transform object. \item\end{CompactList}\item +void \hyperlink{classpeoSeqTransform_1ba63536abb6c4e1c369e0b7e066872e}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Operator for applying the specified transform operators on each individual of the given population. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_c4bf2724e9f6055f12bd169fad893be3}{ +virtual void \hyperlink{classpeoSeqTransform_c4bf2724e9f6055f12bd169fad893be3}{pack\-Data} ()} +\label{classpeoSeqTransform_c4bf2724e9f6055f12bd169fad893be3} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_24e6cf15ef230ed538031b522ddd4ae6}{ +virtual void \hyperlink{classpeoSeqTransform_24e6cf15ef230ed538031b522ddd4ae6}{unpack\-Data} ()} +\label{classpeoSeqTransform_24e6cf15ef230ed538031b522ddd4ae6} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_0294a2f9d6b44ec74d22eaceccdffc2b}{ +virtual void \hyperlink{classpeoSeqTransform_0294a2f9d6b44ec74d22eaceccdffc2b}{execute} ()} +\label{classpeoSeqTransform_0294a2f9d6b44ec74d22eaceccdffc2b} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_4861c61f9e46d83964ea8a156a9a3ee0}{ +virtual void \hyperlink{classpeoSeqTransform_4861c61f9e46d83964ea8a156a9a3ee0}{pack\-Result} ()} +\label{classpeoSeqTransform_4861c61f9e46d83964ea8a156a9a3ee0} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_5dd029fc011eb2a810ca1140025129b1}{ +virtual void \hyperlink{classpeoSeqTransform_5dd029fc011eb2a810ca1140025129b1}{unpack\-Result} ()} +\label{classpeoSeqTransform_5dd029fc011eb2a810ca1140025129b1} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoSeqTransform_ad3e16c59dd6c46dfc1baf7b88af30cf}{ +eo\-Transform$<$ EOT $>$ \& \hyperlink{classpeoSeqTransform_ad3e16c59dd6c46dfc1baf7b88af30cf}{trans}} +\label{classpeoSeqTransform_ad3e16c59dd6c46dfc1baf7b88af30cf} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Seq\-Transform$<$ EOT $>$} + +The \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} represent a wrapper for offering the possibility of using EO derived transform operators along with the Paradis\-EO evolutionary algorithms. + +A minimal set of interface functions is also provided for creating the link with the parallel architecture of the Paradis\-EO framework. + + + +Definition at line 35 of file peo\-Seq\-Transform.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoSeqTransform_3b8e4ed19d9458938eb669d83a53c626}{ +\index{peoSeqTransform@{peo\-Seq\-Transform}!peoSeqTransform@{peoSeqTransform}} +\index{peoSeqTransform@{peoSeqTransform}!peoSeqTransform@{peo\-Seq\-Transform}} +\subsubsection[peoSeqTransform]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}$<$ EOT $>$::\hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} (eo\-Transform$<$ EOT $>$ \& {\em \_\-\_\-trans})}} +\label{classpeoSeqTransform_3b8e4ed19d9458938eb669d83a53c626} + + +Constructor function - sets an internal reference towards the specified EO-derived transform object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Transform$<$}]EOT $>$\& \_\-\_\-trans - EO-derived transform object including crossover and mutation operators. \end{description} +\end{Desc} + + +Definition at line 70 of file peo\-Seq\-Transform.h. + +\subsection{Member Function Documentation} +\hypertarget{classpeoSeqTransform_1ba63536abb6c4e1c369e0b7e066872e}{ +\index{peoSeqTransform@{peo\-Seq\-Transform}!operator()@{operator()}} +\index{operator()@{operator()}!peoSeqTransform@{peo\-Seq\-Transform}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}$<$ EOT $>$::operator() (eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-pop})}} +\label{classpeoSeqTransform_1ba63536abb6c4e1c369e0b7e066872e} + + +Operator for applying the specified transform operators on each individual of the given population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - population to be transformed by applying the crossover and mutation operators. \end{description} +\end{Desc} + + +Definition at line 75 of file peo\-Seq\-Transform.h. + +References peo\-Seq\-Transform$<$ EOT $>$::trans. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Seq\-Transform.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.eps b/trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.eps new file mode 100644 index 000000000..ce426eb0b --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 346.821 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.44167 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoSyncIslandMig< EOT >) cw +(Cooperative) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoSyncIslandMig< EOT >) 0 0 box + (Cooperative) 0 1 box + (Communicable) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.pdf b/trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ce595a4cf514bb9e9d18c33b85e524f0b255bf0b GIT binary patch literal 1335 zcmY!laB^*<>q=xJpXowDhv_v~+GU&NmNv@^8*My`16n-i-yz%QLsN?P8Lcx2biu zQ@0Yw!sQwPIzIP(90XOnd2~)FT4+QSZ(Dh7^ZL-r{rS&UPj9cPWSxARY2EqmaAVCg zS1cUY>&~}YV&>vu_e$rav%~v?&-wOpZ&-ciO@EwEq`j(l!RyX;maEQJT5;xb8BMOZ~e%P zQWhprGZ^Zg?4Ij%h~Hc8N6*Dgv#!qAbeKbobH;HI&uFR5J6;HGyO?y&T~Lf~*K^M$ z>?u!ne-)a1yw+ds#%>>FZyyzpTbE|en3W$;J&`9hF9jNUKo%&(LE#LdjSVcgph6~y z$Ox${NYxKWOi$JKO-;#6bjq(#h&BL9n;IA>7@L^sSs2A~0p*KQ^GXzqK{3XqACy|0 zUs{x$S`3WKfTH~5;M9_6ePC=W=!c|MlmL~xR+P90mjL5a!4jgwEgz`c5M*o+7ch49 zoq>FyfyD}-Q~?%(It*k3B$WUS1G-EB?6hJ9eecYaVufffki&zxVikZUl!A-|nFiHr z2-gbL>6}=Sn3JClGXmmxgnDyS^$16E>H7!xDj3??K@A4^0h)4y%(+0?f)J*FJq44s z;IcrK1#zL0PKm{-pkUAs$;?eH)(y(fP0Ry3R39YDr5{|HR04_$kgtJu!+d3gFaa3U zDW%D&MH;Tb0SfLJ`Nbv0$wiq3B?=aXrg{cOn!sQMW}1@B{5%(6&}+C@85tOu8yFgx z8(J8f8kqs*ee+XrNrhyVJcjE#86y>P? literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.tex b/trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.tex new file mode 100644 index 000000000..e08c9f704 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoSyncIslandMig.tex @@ -0,0 +1,225 @@ +\hypertarget{classpeoSyncIslandMig}{ +\section{peo\-Sync\-Island\-Mig$<$ EOT $>$ Class Template Reference} +\label{classpeoSyncIslandMig}\index{peoSyncIslandMig@{peoSyncIslandMig}} +} +The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. + + +{\tt \#include $<$peo\-Sync\-Island\-Mig.h$>$} + +Inheritance diagram for peo\-Sync\-Island\-Mig$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classpeoSyncIslandMig} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c}{peo\-Sync\-Island\-Mig} (unsigned \_\-\_\-frequency, eo\-Select$<$ EOT $>$ \&\_\-\_\-select, eo\-Replacement$<$ EOT $>$ \&\_\-\_\-replace, \hyperlink{classTopology}{Topology} \&\_\-\_\-topology, eo\-Pop$<$ EOT $>$ \&\_\-\_\-source, eo\-Pop$<$ EOT $>$ \&\_\-\_\-destination) +\begin{CompactList}\small\item\em Constructor for the \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. \item\end{CompactList}\item +void \hyperlink{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36}{operator()} () +\begin{CompactList}\small\item\em Function operator to be called as checkpoint for performing the migration step. \item\end{CompactList}\item +\hypertarget{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad}{ +void \hyperlink{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad}{pack} ()} +\label{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad} + +\begin{CompactList}\small\item\em Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item +\hypertarget{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1}{ +void \hyperlink{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1}{unpack} ()} +\label{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1} + +\begin{CompactList}\small\item\em Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item +\hypertarget{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008}{ +void \hyperlink{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008}{notify\-Sending} ()} +\label{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008} + +\begin{CompactList}\small\item\em Auxiliary function dealing with migration notifications. There is no need to explicitly call the function. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063}{ +void \hyperlink{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063}{emigrate} ()} +\label{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063} + +\item +\hypertarget{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7}{ +void \hyperlink{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7}{immigrate} ()} +\label{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2}{ +eo\-Periodic\-Continue$<$ EOT $>$ \hyperlink{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2}{cont}} +\label{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2} + +\item +\hypertarget{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d}{ +eo\-Select$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d}{select}} +\label{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d} + +\item +\hypertarget{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891}{ +eo\-Replacement$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891}{replace}} +\label{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891} + +\item +\hypertarget{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace}{ +\hyperlink{classTopology}{Topology} \& \hyperlink{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace}{topology}} +\label{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace} + +\item +\hypertarget{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6}{ +eo\-Pop$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6}{source}} +\label{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6} + +\item +\hypertarget{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6}{ +eo\-Pop$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6}{destination}} +\label{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6} + +\item +\hypertarget{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3}{ +std::queue$<$ eo\-Pop$<$ EOT $>$ $>$ \hyperlink{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3}{imm}} +\label{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3} + +\item +\hypertarget{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322}{ +std::queue$<$ eo\-Pop$<$ EOT $>$ $>$ \hyperlink{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322}{em}} +\label{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322} + +\item +\hypertarget{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d}{ +std::queue$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d}{coop\_\-em}} +\label{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d} + +\item +\hypertarget{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f}{ +sem\_\-t \hyperlink{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f}{sync}} +\label{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Sync\-Island\-Mig$<$ EOT $>$} + +The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. + +frequency of the migrations, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. The main difference as opposed to the asynchronous migration model is the synchronization step performed after selecting and sending the emigrant individuals. + +The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: + +\begin{TabularC}{2} +\hline +{\bf do} \{ ~ &~ \\\hline +~~~~~~~~ select( population, offsprings ); ~ &// select the offsprings from the current population \\\hline +~~~~~~~~ transform( offsprings ); ~ &// crossover and mutation operators are applied on the selected offsprings \\\hline +~~~~~~~~ evaluate( offsprings ); ~ &// evaluation step of the resulting offspring \\\hline +~~~~~~~~ replace( population, offsprings ); ~ &// replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy \\\hline +\} {\bf while} ( ea\-Checkpoint\-Continue( population ) ); ~ &// checkpoint operators are applied on the current population, including the migration operator, if any specified \\\hline +\end{TabularC} + + +Constructing a synchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the {\bf \hyperlink{classRunner}{Runner}} class (for example a \hyperlink{classpeoEA}{peo\-EA} object represents a possible owner). A simple example is offered bellow: + +\begin{enumerate} +\item topological model to be followed when performing migrations: \par + \par + \begin{TabularC}{2} +\hline +\hyperlink{classRingTopology}{Ring\-Topology} mig\-Topology; ~ &// a simple ring topological model - each island communicates with two other islands \\\hline +\end{TabularC} + + +\item the continuation criterion, selection and replacement strategy etc. are defined: \par + \par + \begin{TabularC}{2} +\hline +eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// population of individuals to be used for the evolutionary algorithm \\\hline +~ &~ \\\hline +eo\-Random\-Select$<$ EOT $>$ mig\-Select\-Strategy; ~ &// selection strategy - in this case a random selection is applied \\\hline +eo\-Select\-Number$<$ EOT $>$ mig\-Select( mig\-Select\-Strategy, MIG\_\-SIZE ); ~ &// number of individuals to be selected using the specified strategy \\\hline +eo\-Plus\-Replacement$<$ EOT $>$ mig\-Replace; ~ &// immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals \\\hline +~ &~ \\\hline +peo\-Sync\-Island\-Mig$<$ EOT $>$ sync\-Migration( \par + ~~~~~~~~ MIG\_\-FREQ, mig\-Select, mig\-Replace, mig\-Topology, \par + ~~~~~~~~ population, population \par + ); ~ &// synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated \\\hline +\end{TabularC} + + +\item creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): \par + \par + \begin{TabularC}{2} +\hline +... ~ &~ \\\hline +eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// the evolutionary algorithm will stop after NUM\_\-GEN generations \\\hline +eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// number of individuals to be selected using the specified strategy \\\hline +... ~ &~ \\\hline +ea\-Checkpoint\-Continue.add( sync\-Migration ); ~ &// adding the migration operator as checkpoint element \\\hline +... ~ &~ \\\hline +\end{TabularC} + + +\item definition of an owner evolutionary algorithm (an object inheriting the {\bf \hyperlink{classRunner}{Runner}} class): \par + \par + \begin{TabularC}{2} +\hline +peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace); ~ &// evolutionary algorithm having as checkpoint the ea\-Checkpoint\-Continue object defined above \\\hline +sync\-Migration.set\-Owner( ea\-Alg ); ~ &// setting the evolutionary algorithm as owner of the migration object \\\hline +ea\-Alg( population ); ~ &// applying the evolutionary algorithm on a given population \\\hline +\end{TabularC} +\end{enumerate} + + +The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. + +The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ mig\-Topology object has to be passed as parameter for all the migration objects, in order to interconnect them). + + + +Definition at line 129 of file peo\-Sync\-Island\-Mig.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c}{ +\index{peoSyncIslandMig@{peo\-Sync\-Island\-Mig}!peoSyncIslandMig@{peoSyncIslandMig}} +\index{peoSyncIslandMig@{peoSyncIslandMig}!peoSyncIslandMig@{peo\-Sync\-Island\-Mig}} +\subsubsection[peoSyncIslandMig]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig}$<$ EOT $>$::\hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} (unsigned {\em \_\-\_\-frequency}, eo\-Select$<$ EOT $>$ \& {\em \_\-\_\-select}, eo\-Replacement$<$ EOT $>$ \& {\em \_\-\_\-replace}, \hyperlink{classTopology}{Topology} \& {\em \_\-\_\-topology}, eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-source}, eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-destination})}} +\label{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c} + + +Constructor for the \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em unsigned}]\_\-\_\-frequency - frequency of the migrations - the migrations occur periodically; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy used for integrating the immigrant individuals in the destination population; \item[{\em Topology\&}]\_\-\_\-topology - topological model to be followed when performing migrations; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-source - source population from which the emigrant individuals are selected; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-destination - destination population in which the immigrant population are integrated. \end{description} +\end{Desc} + + +Definition at line 193 of file peo\-Sync\-Island\-Mig.h. + +References Topology::add(), and peo\-Sync\-Island\-Mig$<$ EOT $>$::sync. + +\subsection{Member Function Documentation} +\hypertarget{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36}{ +\index{peoSyncIslandMig@{peo\-Sync\-Island\-Mig}!operator()@{operator()}} +\index{operator()@{operator()}!peoSyncIslandMig@{peo\-Sync\-Island\-Mig}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig}$<$ EOT $>$::operator() ()}} +\label{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36} + + +Function operator to be called as checkpoint for performing the migration step. + +The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. + +Definition at line 267 of file peo\-Sync\-Island\-Mig.h. + +References peo\-Sync\-Island\-Mig$<$ EOT $>$::cont, peo\-Sync\-Island\-Mig$<$ EOT $>$::emigrate(), Cooperative::get\-Owner(), peo\-Sync\-Island\-Mig$<$ EOT $>$::immigrate(), Thread::set\-Active(), peo\-Sync\-Island\-Mig$<$ EOT $>$::source, Communicable::stop(), and peo\-Sync\-Island\-Mig$<$ EOT $>$::sync. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Sync\-Island\-Mig.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.eps b/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.eps new file mode 100644 index 000000000..025e47565 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 348.837 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.43333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoSyncMultiStart< EOT >) cw +(Service) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoSyncMultiStart< EOT >) 0 0 box + (Service) 0 1 box + (Communicable) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.pdf b/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.pdf new file mode 100644 index 000000000..9a2b59be8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.pdf @@ -0,0 +1,73 @@ +%PDF-1.3 +%Çì¢ +5 0 obj +<> +stream +xœ¥PËNÃ0¼û+ö–µwý’PÅ ¡’ü@‰Ò*¨iiIAü=NšDâ‚e­<3Þ™Ýj öôµ¨Õõ³‡Í»"xHw£JwèKQÃ]žDDc  _«óg Ú£h'`9䵺x+÷Ù×®xüâØ­ÍKZ±®>?5‰EØ&å ø~’‘ï–·)žM)­ Ù$1"ý ™÷X_C‘â`b„ +&0ðýp#ßcã’µLCLyb©¾Á‹Dendstream +endobj +6 0 obj +293 +endobj +4 0 obj +<> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 11 +0000000000 65535 f +0000000609 00000 n +0000000823 00000 n +0000000550 00000 n +0000000397 00000 n +0000000015 00000 n +0000000378 00000 n +0000000657 00000 n +0000000757 00000 n +0000000698 00000 n +0000000727 00000 n +trailer +<< /Size 11 /Root 1 0 R /Info 2 0 R +/ID [(ð.Þõ$B—.Óyµ[)(ð.Þõ$B—.Óyµ[)] +>> +startxref +980 +%%EOF diff --git a/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.tex b/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.tex new file mode 100644 index 000000000..5d562b007 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoSyncMultiStart.tex @@ -0,0 +1,243 @@ +\hypertarget{classpeoSyncMultiStart}{ +\section{peo\-Sync\-Multi\-Start$<$ EOT $>$ Class Template Reference} +\label{classpeoSyncMultiStart}\index{peoSyncMultiStart@{peoSyncMultiStart}} +} +The \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. + + +{\tt \#include $<$peo\-Sync\-Multi\-Start.h$>$} + +Inheritance diagram for peo\-Sync\-Multi\-Start$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classpeoSyncMultiStart} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoSyncMultiStart_d29f94aad3c1f443bfffc8b6aee0704c}{peo\-Sync\-Multi\-Start} (eo\-Continue$<$ EOT $>$ \&\_\-\_\-cont, eo\-Select$<$ EOT $>$ \&\_\-\_\-select, eo\-Replacement$<$ EOT $>$ \&\_\-\_\-replace, \bf{mo\-Algo}$<$ EOT $>$ \&\_\-\_\-ls, eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_76385b33fe514f91cb83f0fbecbeb3c2}{operator()} () +\begin{CompactList}\small\item\em Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_8becfab1922b64708dca5a53e2932a5a}{pack\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_2903a441b77cded266b5fb651e17a5b5}{unpack\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_a4d1c2943c290de540800087b54dc49b}{execute} () +\begin{CompactList}\small\item\em Auxiliary function for actually executing the specified algorithm on one assigned individual. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_6c48eb0dae741cff7203b65e226f9616}{pack\-Result} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_c3cbd1f10a89d1915c5ccf82a2c34a1d}{unpack\-Result} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_32ec0d01d3fd8a9932abd68f4781fc94}{notify\-Sending\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_fc90282cc4e93cdea8f82fd52dd78fb0}{notify\-Sending\-All\-Resource\-Requests} () +\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoSyncMultiStart_43f4fa9b125baef6fc8b968dfd16f437}{ +eo\-Continue$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_43f4fa9b125baef6fc8b968dfd16f437}{cont}} +\label{classpeoSyncMultiStart_43f4fa9b125baef6fc8b968dfd16f437} + +\item +\hypertarget{classpeoSyncMultiStart_8fc9a3d046023ddd077defec3c23ab3b}{ +eo\-Select$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_8fc9a3d046023ddd077defec3c23ab3b}{select}} +\label{classpeoSyncMultiStart_8fc9a3d046023ddd077defec3c23ab3b} + +\item +\hypertarget{classpeoSyncMultiStart_a375ccea98e9bf2a0854dac27df4522f}{ +eo\-Replacement$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_a375ccea98e9bf2a0854dac27df4522f}{replace}} +\label{classpeoSyncMultiStart_a375ccea98e9bf2a0854dac27df4522f} + +\item +\hypertarget{classpeoSyncMultiStart_4d317966de767dcc87eee0286ea7f95d}{ +\bf{mo\-Algo}$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_4d317966de767dcc87eee0286ea7f95d}{ls}} +\label{classpeoSyncMultiStart_4d317966de767dcc87eee0286ea7f95d} + +\item +\hypertarget{classpeoSyncMultiStart_391178bd6b8a97a08ab4e345f070e967}{ +eo\-Pop$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_391178bd6b8a97a08ab4e345f070e967}{pop}} +\label{classpeoSyncMultiStart_391178bd6b8a97a08ab4e345f070e967} + +\item +\hypertarget{classpeoSyncMultiStart_dbcc1a069ec72ecd8d40c392640d84b3}{ +eo\-Pop$<$ EOT $>$ \hyperlink{classpeoSyncMultiStart_dbcc1a069ec72ecd8d40c392640d84b3}{sel}} +\label{classpeoSyncMultiStart_dbcc1a069ec72ecd8d40c392640d84b3} + +\item +\hypertarget{classpeoSyncMultiStart_ca10f6d258105e3c4f0d1660db5b7679}{ +eo\-Pop$<$ EOT $>$ \hyperlink{classpeoSyncMultiStart_ca10f6d258105e3c4f0d1660db5b7679}{impr\_\-sel}} +\label{classpeoSyncMultiStart_ca10f6d258105e3c4f0d1660db5b7679} + +\item +\hypertarget{classpeoSyncMultiStart_2c2ebe46470d1425f0409897deab435b}{ +EOT \hyperlink{classpeoSyncMultiStart_2c2ebe46470d1425f0409897deab435b}{sol}} +\label{classpeoSyncMultiStart_2c2ebe46470d1425f0409897deab435b} + +\item +\hypertarget{classpeoSyncMultiStart_64191ef79b7b589964ac9c3e23ae6718}{ +unsigned \hyperlink{classpeoSyncMultiStart_64191ef79b7b589964ac9c3e23ae6718}{idx}} +\label{classpeoSyncMultiStart_64191ef79b7b589964ac9c3e23ae6718} + +\item +\hypertarget{classpeoSyncMultiStart_773eb9097550d9444f25ca8f48997a30}{ +unsigned \hyperlink{classpeoSyncMultiStart_773eb9097550d9444f25ca8f48997a30}{num\_\-term}} +\label{classpeoSyncMultiStart_773eb9097550d9444f25ca8f48997a30} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Sync\-Multi\-Start$<$ EOT $>$} + +The \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. + +As a simple example, several hill climbing algorithms may be synchronously launched on the specified population, each algorithm acting upon one individual only, the final result being integrated back in the population. A \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} object can be specified as checkpoint object for a classic Paradis\-EO evolutionary algorithm thus allowing for simple hybridization schemes which combine the evolutionary approach with a local search approach, for example, executed at the end of each generation. + + + +Definition at line 51 of file peo\-Sync\-Multi\-Start.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoSyncMultiStart_d29f94aad3c1f443bfffc8b6aee0704c}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!peoSyncMultiStart@{peoSyncMultiStart}} +\index{peoSyncMultiStart@{peoSyncMultiStart}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[peoSyncMultiStart]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::\hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} (eo\-Continue$<$ EOT $>$ \& {\em \_\-\_\-cont}, eo\-Select$<$ EOT $>$ \& {\em \_\-\_\-select}, eo\-Replacement$<$ EOT $>$ \& {\em \_\-\_\-replace}, \bf{mo\-Algo}$<$ EOT $>$ \& {\em \_\-\_\-ls}, eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-pop})}} +\label{classpeoSyncMultiStart_d29f94aad3c1f443bfffc8b6aee0704c} + + +Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Continue$<$}]EOT $>$\& \_\-\_\-cont - defined for including further functionality - no semantics associated at this time; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy for obtaining a subset of the initial population on which to apply the specified algorithm; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy for integrating the resulting individuals in the initial population; \item[{\em mo\-Algo$<$}]EOT $>$\& \_\-\_\-ls - algorithm to be applied on each of the selected individuals - a {\bf mo\-Algo$<$ EOT $>$}-derived object must be specified; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - the initial population from which the individuals are selected for applying the specified algorithm. \end{description} +\end{Desc} + + +Definition at line 121 of file peo\-Sync\-Multi\-Start.h. + +\subsection{Member Function Documentation} +\hypertarget{classpeoSyncMultiStart_76385b33fe514f91cb83f0fbecbeb3c2}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!operator()@{operator()}} +\index{operator()@{operator()}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::operator() ()}} +\label{classpeoSyncMultiStart_76385b33fe514f91cb83f0fbecbeb3c2} + + +Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. + +There is no need to explicitly call the operator - automatically called as checkpoint operator. + +Definition at line 176 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::idx, peo\-Sync\-Multi\-Start$<$ EOT $>$::impr\_\-sel, peo\-Sync\-Multi\-Start$<$ EOT $>$::num\_\-term, peo\-Sync\-Multi\-Start$<$ EOT $>$::pop, Service::request\-Resource\-Request(), peo\-Sync\-Multi\-Start$<$ EOT $>$::sel, peo\-Sync\-Multi\-Start$<$ EOT $>$::select, and Communicable::stop().\hypertarget{classpeoSyncMultiStart_8becfab1922b64708dca5a53e2932a5a}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!packData@{packData}} +\index{packData@{packData}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[packData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::pack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_8becfab1922b64708dca5a53e2932a5a} + + +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_aea4b8f7f8fb88e83862ee4bfd9ab207}{Service}. + +Definition at line 135 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::idx, and peo\-Sync\-Multi\-Start$<$ EOT $>$::sel.\hypertarget{classpeoSyncMultiStart_2903a441b77cded266b5fb651e17a5b5}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!unpackData@{unpackData}} +\index{unpackData@{unpackData}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[unpackData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::unpack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_2903a441b77cded266b5fb651e17a5b5} + + +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_3bd87b444710813d30fd754d4d0b4df3}{Service}. + +Definition at line 141 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::sol.\hypertarget{classpeoSyncMultiStart_a4d1c2943c290de540800087b54dc49b}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!execute@{execute}} +\index{execute@{execute}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[execute]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::execute ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_a4d1c2943c290de540800087b54dc49b} + + +Auxiliary function for actually executing the specified algorithm on one assigned individual. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_e4f2894e6121e60f38d41cfbd7447ae4}{Service}. + +Definition at line 147 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::ls, and peo\-Sync\-Multi\-Start$<$ EOT $>$::sol.\hypertarget{classpeoSyncMultiStart_6c48eb0dae741cff7203b65e226f9616}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!packResult@{packResult}} +\index{packResult@{packResult}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[packResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::pack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_6c48eb0dae741cff7203b65e226f9616} + + +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_e5e4f90b2315e15c2a2913bd370f4cf5}{Service}. + +Definition at line 153 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::sol.\hypertarget{classpeoSyncMultiStart_c3cbd1f10a89d1915c5ccf82a2c34a1d}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!unpackResult@{unpackResult}} +\index{unpackResult@{unpackResult}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[unpackResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::unpack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_c3cbd1f10a89d1915c5ccf82a2c34a1d} + + +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_45c06344edbfa482b91f68e2035a6099}{Service}. + +Definition at line 159 of file peo\-Sync\-Multi\-Start.h. + +References Service::get\-Owner(), peo\-Sync\-Multi\-Start$<$ EOT $>$::impr\_\-sel, peo\-Sync\-Multi\-Start$<$ EOT $>$::num\_\-term, peo\-Sync\-Multi\-Start$<$ EOT $>$::pop, peo\-Sync\-Multi\-Start$<$ EOT $>$::replace, Communicable::resume(), peo\-Sync\-Multi\-Start$<$ EOT $>$::sel, Thread::set\-Active(), and peo\-Sync\-Multi\-Start$<$ EOT $>$::sol.\hypertarget{classpeoSyncMultiStart_32ec0d01d3fd8a9932abd68f4781fc94}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!notifySendingData@{notifySendingData}} +\index{notifySendingData@{notifySendingData}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[notifySendingData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::notify\-Sending\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_32ec0d01d3fd8a9932abd68f4781fc94} + + +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_81ad4d6ebb50045b8977e2ab74826f30}{Service}. + +Definition at line 187 of file peo\-Sync\-Multi\-Start.h.\hypertarget{classpeoSyncMultiStart_fc90282cc4e93cdea8f82fd52dd78fb0}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!notifySendingAllResourceRequests@{notifySendingAllResourceRequests}} +\index{notifySendingAllResourceRequests@{notifySendingAllResourceRequests}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[notifySendingAllResourceRequests]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::notify\-Sending\-All\-Resource\-Requests ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_fc90282cc4e93cdea8f82fd52dd78fb0} + + +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_f94cc8a5c2665d4574041737e61e9ffc}{Service}. + +Definition at line 192 of file peo\-Sync\-Multi\-Start.h. + +References Service::get\-Owner(), and Thread::set\-Passive(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Sync\-Multi\-Start.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/classpeoTransform.eps b/trunk/paradiseo-peo/docs/latex/classpeoTransform.eps new file mode 100644 index 000000000..6dbaa126c --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoTransform.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 200 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.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 +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoTransform< EOT >) cw +(Service) cw +(Communicable) cw +(peoParaSGATransform< EOT >) cw +(peoSeqTransform< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoTransform< EOT >) 0.5 1 box + (Service) 0.5 2 box + (Communicable) 0.5 3 box + (peoParaSGATransform< EOT >) 0 0 box + (peoSeqTransform< EOT >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/trunk/paradiseo-peo/docs/latex/classpeoTransform.pdf b/trunk/paradiseo-peo/docs/latex/classpeoTransform.pdf new file mode 100644 index 0000000000000000000000000000000000000000..13d4f509a3c56be4e7a4234d00349beac00f08a9 GIT binary patch literal 1412 zcmY!laBi^P-leU$sE{K0SW7(^=_rAA%Io;HP z^tX#AEHaMqj#^vKAwI+Z_rCwPa&JAW{VksJM{);ugKA;x$9om8^v_-hIo-awJznfi zhLv1lZd0fk!wj{Xk;5)X~lwCx*RpDhgj7$3K@T_d7goj-!L4{l*!~ zEJPPScx_}5$RZY*lBlEayY9^Qh`TPWk1CRzj(ibT;aVxDmbJM`rclhOz5SH4kJmk; z)*0y@;ZLSdZ0QW_E7wj=IaR}-bV1Z{-PxAFWm{rSs#FAgT9Wzov!3lSN$JpMUS992 zQthwkzL!tUOMylOkOhi9P^5uqV+&I*sE`RFWUfYKLO2`;A>D3^Y4X;KL&9zebZ+70uS5yAvuP^Xk8rxt0r1_vm(XXF=`6ekyD7L+Jh7@F!C z7-<576`1`>GV}9XfI+X}Vg-yla|1&Ib3+SbQzJ8=yl;LAE~${rlAKfx=bXgiV!y=P zRG4A;MH(*o6_x3!c|Z}z(vl3IfF?X-DvDCmxC|5w4Y>^9K*7w^)Yw!ZO#vomW(f=h z5Kzd2i&+{1{e>oGW(*8yG%*tkOfdsPV4^`+XAVqTXkz9jz*LVWW`RY_+yWS-=;{oS z^p+GQX6B?80n0!I{ou^1RG@zq^n>#AfyoaP+Y0)gd1?6ypojwI4Nn(^XpPDkjXwvs p8I~M)rvGQ7nm|~rCKjPsP}(gnNh~S>2cw~ZnI)I1s;j>n7XW=T(Te~8 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-peo/docs/latex/classpeoTransform.tex b/trunk/paradiseo-peo/docs/latex/classpeoTransform.tex new file mode 100644 index 000000000..2774dbd29 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/classpeoTransform.tex @@ -0,0 +1,29 @@ +\hypertarget{classpeoTransform}{ +\section{peo\-Transform$<$ EOT $>$ Class Template Reference} +\label{classpeoTransform}\index{peoTransform@{peoTransform}} +} +The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes. + + +{\tt \#include $<$peo\-Transform.h$>$} + +Inheritance diagram for peo\-Transform$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoTransform} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Transform$<$ EOT $>$} + +The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes. + + + +Definition at line 35 of file peo\-Transform.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Transform.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/doxygen.sty b/trunk/paradiseo-peo/docs/latex/doxygen.sty new file mode 100644 index 000000000..4cfa45e44 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/doxygen.sty @@ -0,0 +1,78 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} +\RequirePackage{calc} +\RequirePackage{array} +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Sun Jan 7 18:35:23 2007 for Paradis\-EO-PEO by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Sun Jan 7 18:35:23 2007 for Paradis\-EO-PEO by Doxygen }} +\cfoot{} +\newenvironment{Code} +{\footnotesize} +{\normalsize} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DocInclude} +{\footnotesize} +{\normalsize} +\newenvironment{VerbInclude} +{\footnotesize} +{\normalsize} +\newenvironment{Image} +{\begin{figure}[H]} +{\end{figure}} +\newenvironment{ImageNoCaption}{}{} +\newenvironment{CompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{CompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{tabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{tabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{1} +\sloppy +\usepackage[T1]{fontenc} diff --git a/trunk/paradiseo-peo/docs/latex/hierarchy.tex b/trunk/paradiseo-peo/docs/latex/hierarchy.tex new file mode 100644 index 000000000..3e5558b44 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/hierarchy.tex @@ -0,0 +1,49 @@ +\section{Paradis\-EO-PEO Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList} +\item \contentsline{section}{Communicable}{\pageref{classCommunicable}}{} +\begin{CompactList} +\item \contentsline{section}{Cooperative}{\pageref{classCooperative}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-Async\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoAsyncIslandMig}}{} +\item \contentsline{section}{peo\-Sync\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoSyncIslandMig}}{} +\end{CompactList} +\item \contentsline{section}{Runner}{\pageref{classRunner}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-EA$<$ EOT $>$}{\pageref{classpeoEA}}{} +\end{CompactList} +\item \contentsline{section}{Service}{\pageref{classService}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoPopEval}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-Para\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoParaPopEval}}{} +\item \contentsline{section}{peo\-Seq\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoSeqPopEval}}{} +\end{CompactList} +\item \contentsline{section}{peo\-Sync\-Multi\-Start$<$ EOT $>$}{\pageref{classpeoSyncMultiStart}}{} +\item \contentsline{section}{peo\-Transform$<$ EOT $>$}{\pageref{classpeoTransform}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-Para\-SGATransform$<$ EOT $>$}{\pageref{classpeoParaSGATransform}}{} +\item \contentsline{section}{peo\-Seq\-Transform$<$ EOT $>$}{\pageref{classpeoSeqTransform}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{Worker}{\pageref{classWorker}}{} +\end{CompactList} +\item \contentsline{section}{Node}{\pageref{structNode}}{} +\item \contentsline{section}{peo\-Agg\-Eval\-Func$<$ EOT $>$}{\pageref{classpeoAggEvalFunc}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-No\-Agg\-Eval\-Func$<$ EOT $>$}{\pageref{classpeoNoAggEvalFunc}}{} +\end{CompactList} +\item \contentsline{section}{SEND\_\-REQUEST}{\pageref{structSEND__REQUEST}}{} +\item \contentsline{section}{Thread}{\pageref{classThread}}{} +\begin{CompactList} +\item \contentsline{section}{Reactive\-Thread}{\pageref{classReactiveThread}}{} +\begin{CompactList} +\item \contentsline{section}{Communicator}{\pageref{classCommunicator}}{} +\item \contentsline{section}{Worker}{\pageref{classWorker}}{} +\end{CompactList} +\item \contentsline{section}{Runner}{\pageref{classRunner}}{} +\end{CompactList} +\item \contentsline{section}{Topology}{\pageref{classTopology}}{} +\begin{CompactList} +\item \contentsline{section}{Ring\-Topology}{\pageref{classRingTopology}}{} +\end{CompactList} +\end{CompactList} diff --git a/trunk/paradiseo-peo/docs/latex/main.tex b/trunk/paradiseo-peo/docs/latex/main.tex new file mode 100644 index 000000000..c9053218e --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/main.tex @@ -0,0 +1,52 @@ +\hypertarget{main_intro}{}\section{intro}\label{main_intro} +Paradis\-EO is a white-box object-oriented framework dedicated to the reusable design of parallel and distributed metaheuristics (PDM). Paradis\-EO provides a broad range of features including evolutionary algorithms (EA), local searches (LS), the most common parallel and distributed models and hybridization mechanisms, etc. This high content and utility encourages its use at European level. Paradis\-EO is based on a clear conceptual separation of the solution methods from the problems they are intended to solve. This separation confers to the user a maximum code and design reuse. Furthermore, the fine-grained nature of the classes provided by the framework allow a higher flexibility compared to other frameworks. Paradis\-EO is one of the rare frameworks that provide the most common parallel and distributed models. Their implementation is portable on distributed-memory machines as well as on shared-memory multiprocessors, as it uses standard libraries such as MPI, PVM and PThreads. The models can be exploited in a transparent way, one has just to instantiate their associated provided classes. Their experimentation on the radio network design real-world application demonstrate their efficiency. + +In practice, combinatorial optimization problems are often NP-hard, CPU time-consuming, and evolve over time. Unlike exact methods, metaheuristics allow to tackle large-size problems instances by delivering satisfactory solutions in a reasonable time. Metaheuristics are general-purpose heuristics that split in two categories: evolutionary algorithms (EA) and local search methods (LS). These two families have complementary characteristics: EA allow a better exploration of the search space, while LS have the power to intensify the search in promising regions. Their hybridization allows to deliver robust and better solutions + +Although serial metaheuristics have a polynomial temporal complexity, they remain unsatisfactory for industrial problems. Parallel and distributed computing is a powerful way to deal with the performance issue of these problems. Numerous parallel and distributed metaheuristics (PDM) and their implementations have been proposed, and are available on the\-Web. They can be reused and adapted to his/her own problems. However, the user has to deeply examine the code and rewrite its problem-specific sections. The task is tedious, errorprone, takes along time and makes harder the produced code maintenance. A better way to reuse the code of existing PDM is the reuse through libraries. These are often more reliable as they are more tested and documented. They allow a better maintainability and efficiency. However, libraries do not allow the reuse of design.\hypertarget{main_parallel_metaheuristics}{}\section{Parallel and distributed metaheuristics}\label{main_parallel_metaheuristics} +\hypertarget{main_parallel_distributed}{}\subsection{Parallel distributed evolutionary algorithms}\label{main_parallel_distributed} +Evolutionary Algorithms (EA) are based on the iterative improvement of a population of solutions. At each step, individuals are selected, paired and recombined in order to generate new solutions that replace other ones, and so on. As the algorithm converges, the population is mainly composed of individuals well adapted to the \char`\"{}environment\char`\"{}, for instance the problem. The main features that characterize EA are the way the population is initialized, the selection strategy (deterministic/stochastic) by fostering \char`\"{}good\char`\"{} solutions, the replacement strategy that discards individuals, and the continuation/stopping criterion to decide whether the evolution should go on or not. + +Basically, three major parallel and distributed models for EA can been distinguished: the island (a)synchronous cooperative model, the parallel evaluation of the population, and the distributed evaluation of a single solution. \begin{itemize} +\item {\em Island (a)synchronous cooperative model\/}. Different EA are simultaneously deployed to cooperate for computing better and robust solutions. They exchange in an asynchronous way genetic stuff to diversify the search. The objective is to allow to delay the global convergence, especially when the\-EAare heterogeneous regarding the variation operators. The migration of individuals follows a policy defined by few parameters: the migration decision criterion, the exchange topology, the number of emigrants, the emigrants selection policy, and the replacement/integration policy. + +\item {\em Parallel evaluation of the population\/}. It is required as it is in general the most timeconsuming. The parallel evaluation follows the centralized model. The farmer applies the following operations: selection, transformation and replacement as they require a global management of the population. At each generation, it distributes the set of new solutions between differentworkers. These evaluate and return back the solutions and their quality values. An efficient execution is often obtained particularly when the evaluation of each solution is costly. The two main advantages of an asynchronous model over the synchronous model are: (1) the fault tolerance of the asynchronous model; (2) the robustness in case the fitness computation can take very different computation times (e.g. for nonlinear numerical optimization). Whereas some time-out detection can be used to address the former issue, the latter one can be partially overcome if the grain is set to very small values, as individuals will be sent out for evaluations upon request of the workers. + +\item {\em Distributed evaluation of a single solution\/}. The quality of each solution is evaluated in a parallel centralized way. That model is particularly interesting when the evaluation function can be itself parallelized as it is CPU time-consuming and/or IO intensive. In that case, the function can be viewed as an aggregation of a certain number of partial functions. The partial functions could also be identical if for example the problem to deal with is a data mining one. The evaluation is thus data parallel and the accesses to data base are performed in parallel. Furthermore, a reduction operation is performed on the results returned by the partial functions. As a summary, for this model the user has to indicate a set of partial functions and an aggregation operator of these. \end{itemize} +\hypertarget{main_parallel_ls}{}\subsection{Parallel distributed local searches}\label{main_parallel_ls} +\hypertarget{main_local_searches}{}\subsubsection{Local searches}\label{main_local_searches} +All metaheuristics dedicated to the improvement of a single solution are based on the concept of neighborhood. They start from a solution randomly generated or obtained from another optimization algorithm, and update it, step by step, by replacing the current solution by one of its neighboring candidates. Some criterion have been identified to differentiate such searches: the heuristic internal memory, the choice of the initial solution, the candidate solutions generator, and the selection strategy of candidate moves. Three main algorithms of local search stand out: Hill Climbing (HC), Simulated Annealing (SA) and Tabu Search (TS).\hypertarget{main_parallel_local_searches}{}\subsubsection{Parallel local searches}\label{main_parallel_local_searches} +Two parallel distributed models are commonly used in the literature: the parallel distributed exploration of neighboring candidate solutions model, and the multi-start model. \begin{itemize} +\item {\em Parallel exploration of neighboring candidates\/}. It is a low-level Farmer-Worker model that does not alter the behavior of the heuristic. A sequential search computes the same results slower.At the beginning of each iteration, the farmer duplicates the current solution between distributed nodes. Each one manages some candidates and the results are returned to the farmer. The model is efficient if the evaluation of a each solution is time-consuming and/or there are a great deal of candidate neighbors to evaluate. This is obviously not applicable to SA since only one candidate is evaluated at each iteration. Likewise, the efficiency of the model for HC is not always guaranteed as the number of neighboring solutions to process before finding one that improves the current objective function may be highly variable. + +\item {\em Multi-start model\/}. It consists in simultaneously launching several local searches. They may be heterogeneous, but no information is exchanged between them. The resultswould be identical as if the algorithms were sequentially run.Very often deterministic algorithms differ by the supplied initial solution and/or some other parameters. This trivial model is convenient for low-speed networks of workstations. \end{itemize} +\hypertarget{main_hybridization}{}\section{Hybridization}\label{main_hybridization} +Recently, hybrid metaheuristics have gained a considerable interest. For many practical or academic optimization problems, the best found solutions are obtained by hybrid algorithms. Combinations of different metaheuristics have provided very powerful search methods. Two levels and two modes of hybridization have been distinguished: Low and High levels, and Relay and \hyperlink{classCooperative}{Cooperative} modes. The low-level hybridization addresses the functional composition of a single optimization method. A function of a given metaheuristic is replaced by another metaheuristic. On the contrary, for high-level hybrid algorithms the different metaheuristics are self-containing, meaning no direct relationship to their internal working is considered. On the other hand, relay hybridization means a set of metaheuristics is applied in a pipeline way. The output of a metaheuristic (except the last) is the input of the following one (except the first). Conversely, co-evolutionist hybridization is a cooperative optimization model. Each metaheuristic performs a search in a solution space, and exchange solutions with others.\hypertarget{main_paradiseo_goals}{}\section{Paradiseo goals and architecture}\label{main_paradiseo_goals} +The \char`\"{}EO\char`\"{} part of Paradis\-EO means Evolving Objects. EO is a C++ LGPL open source framework and includes a paradigm-free Evolutionary Computation library (EOlib) dedicated to the flexible design of EA through evolving objects superseding the most common dialects (Genetic Algorithms, Evolution Strategies, Evolutionary Programming and Genetic Programming). Furthermore, EO integrates several services including visualization facilities, on-line definition of parameters, application check-pointing, etc. Paradis\-EO is an extended version of the EO framework. The extensions include local search methods, hybridization mechanisms, parallelism and distribution mechanisms, and other features that are not addressed in this paper such as multi-objective optimization and grid computing. In the next sections, we present the motivations and goals of Paradis\-EO, its architecture and some of its main implementation details and issues.\hypertarget{main_motivation}{}\subsection{Motivations and goals}\label{main_motivation} +A framework is normally intended to be exploited by as many users as possible. Therefore, its exploitation could be successful only if some important user criteria are satisfied. The following criteria are the major of them and constitute the main objectives of the Paradis\-EO framework: + +\begin{itemize} +\item {\em Maximum design and code reuse\/}. The framework must provide for the user a whole architecture design of his/her solution method. Moreover, the programmer may redo as little code as possible. This objective requires a clear and maximal conceptual separation between the solution methods and the problems to be solved, and thus a deep domain analysis. The user might therefore develop only the minimal problem-specific code. + +\item {\em Flexibility and adaptability\/}. It must be possible for the user to easily add new features/ metaheuristics or change existing ones without implicating other components. Furthermore, as in practice existing problems evolve and new others arise these have to be tackled by specializing/adapting the framework components. + +\item {\em Utility\/}. The framework must allow the user to cover a broad range of metaheuristics, problems, parallel distributed models, hybridization mechanisms, etc. + +\item {\em Transparent and easy access to performance and robustness\/}. As the optimization applications are often time-consuming the performance issue is crucial. Parallelism and distribution are two important ways to achieve high performance execution. In order to facilitate its use it is implemented so that the user can deploy his/her parallel algorithms in a transparent manner. Moreover, the execution of the algorithms must be robust to guarantee the reliability and the quality of the results. The hybridization mechanism allows to obtain robust and better solutions. + +\item {\em Portability\/}. In order to satisfy a large number of users the framework must support different material architectures and their associated operating systems. \end{itemize} +\hypertarget{main_architecture}{}\subsection{Paradis\-EO architecture}\label{main_architecture} +The architecture of Paradis\-EO is multi-layer and modular allowing to achieve the objectives quoted above. This allows particularly a high flexibility and adaptability, an easier hybridization, and more code and design reuse. The architecture has three layers identifying three major categories of classes: {\em Solvers\/}, {\em Runners\/} and {\em Helpers\/}. \begin{itemize} +\item {\em Helpers\/}. Helpers are low-level classes that perform specific actions related to the evolution or search process. They are split in two categories: {\em Evolutionary helpers (EH)\/} and {\em Local search helpers (LSH)\/}. EH include mainly the transformation, selection and replacement operations, the evaluation function and the stopping criterion. LSH can be generic such as the neighborhood explorer class, or specific to the local search metaheuristic like the tabu list manager class in the Tabu Search solution method. On the other hand, there are some special helpers dedicated to the management of parallel and distributed models 2 and 3, such as the communicators that embody the communication services. + +Helpers cooperate between them and interact with the components of the upper layer i.e. the runners. The runners invoke the helpers through function parameters. Indeed, helpers have not their own data, but they work on the internal data of the runners. + +\item {\em Runners\/}. The Runners layer contains a set of classes that implement the metaheuristics themselves. They perform the run of the metaheuristics from the initial state or population to the final one. One can distinguish the {\em Evolutionary runners (ER)\/} such as genetic algorithms, evolution strategies, etc., and {\em Local search runners (LSR)\/} like tabu search, simulated annealing and hill climbing. Runners invoke the helpers to perform specific actions on their data. For instance, an ER may ask the fitness function evaluation helper to evaluate its population. An LSR asks the movement helper to perform a given movement on the current state. Furthermore, runners can be serial or parallel distributed. + +\item {\em Solvers\/}. Solvers are devoted to control the evolution process and/or the search. They generate the initial state (solution or population) and define the strategy for combining and sequencing different metaheuristics. Two types of solvers can be distinguished. {\em Single metaheuristic solvers (SMS)\/} and {\em Multiple metaheuristics solvers (MMS)\/}. SMSs are dedicated to the execution of only one metaheuristic.MMS are more complex as they control and sequence several metaheuristics that can be heterogeneous. Solvers interact with the user by getting the input data and delivering the output (best solution, statistics, etc). \end{itemize} + + +According to the generality of their embedded features, the classes of the architecture split in two major categories: {\em Provided classes\/} and {\em Required classes\/}. Provided classes embody the factored out part of the metaheuristics. They are generic, implemented in the framework, and ensure the control at run time. Required classes are those that must be supplied by the user. They encapsulate the problem-specific aspects of the application. These classes are fixed but not implemented in Paradis\-EO. The programmer has the burden to develop them using the OO specialization mechanism.\hypertarget{main_tutorials}{}\section{Paradis\-EO-PEO Tutorials}\label{main_tutorials} +The basisc of the Paradis\-EO framework philosophy are exposed in a few simple tutorials: \begin{itemize} +\item \href{lesson1/html/main.html}{\tt creating a simple Paradis\-EO evolutionary algorithm}; \end{itemize} +All the presented examples have as case study the traveling salesman problem (TSP). Different operators and auxiliary objects were designed, standing as a \href{lsnshared/html/index.html}{\tt common shared source code base}. While not being part of the Paradis\-EO-PEO framework, it may represent a startpoint for a better understanding of the presented tutorials. \ No newline at end of file diff --git a/trunk/paradiseo-peo/docs/latex/namespacepeo.tex b/trunk/paradiseo-peo/docs/latex/namespacepeo.tex new file mode 100644 index 000000000..ee1f78ba8 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/namespacepeo.tex @@ -0,0 +1,52 @@ +\hypertarget{namespacepeo}{ +\section{peo Namespace Reference} +\label{namespacepeo}\index{peo@{peo}} +} + + +\subsection*{Functions} +\begin{CompactItemize} +\item +\hypertarget{namespacepeo_f90478489cc92d1e6abb222179163a30}{ +void \hyperlink{namespacepeo_f90478489cc92d1e6abb222179163a30}{finalize} ()} +\label{namespacepeo_f90478489cc92d1e6abb222179163a30} + +\item +\hypertarget{namespacepeo_8184c3b1f7eecc68f69bb8e8b872a7d3}{ +void \hyperlink{namespacepeo_8184c3b1f7eecc68f69bb8e8b872a7d3}{init} (int \&\_\-\_\-argc, char $\ast$$\ast$\&\_\-\_\-argv)} +\label{namespacepeo_8184c3b1f7eecc68f69bb8e8b872a7d3} + +\item +\hypertarget{namespacepeo_2b496ee9b81d9ae322ae6edb9a93dc71}{ +void \hyperlink{namespacepeo_2b496ee9b81d9ae322ae6edb9a93dc71}{load\-Parameters} (int \&\_\-\_\-argc, char $\ast$$\ast$\&\_\-\_\-argv)} +\label{namespacepeo_2b496ee9b81d9ae322ae6edb9a93dc71} + +\item +\hypertarget{namespacepeo_10819b2d60b37477c6a89b60c595c67c}{ +void \hyperlink{namespacepeo_10819b2d60b37477c6a89b60c595c67c}{run} ()} +\label{namespacepeo_10819b2d60b37477c6a89b60c595c67c} + +\end{CompactItemize} +\subsection*{Variables} +\begin{CompactItemize} +\item +\hypertarget{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2}{ +int $\ast$ \hyperlink{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2}{argc}} +\label{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2} + +\item +\hypertarget{namespacepeo_d07043237d4d923125e38860ba9bbe20}{ +char $\ast$$\ast$$\ast$ \hyperlink{namespacepeo_d07043237d4d923125e38860ba9bbe20}{argv}} +\label{namespacepeo_d07043237d4d923125e38860ba9bbe20} + +\item +\hypertarget{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2}{ +int $\ast$ \hyperlink{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2}{argc}} +\label{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2} + +\item +\hypertarget{namespacepeo_d07043237d4d923125e38860ba9bbe20}{ +char $\ast$$\ast$$\ast$ \hyperlink{namespacepeo_d07043237d4d923125e38860ba9bbe20}{argv}} +\label{namespacepeo_d07043237d4d923125e38860ba9bbe20} + +\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/namespaces.tex b/trunk/paradiseo-peo/docs/latex/namespaces.tex new file mode 100644 index 000000000..b05536ba2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/namespaces.tex @@ -0,0 +1,4 @@ +\section{Paradis\-EO-PEO Namespace List} +Here is a list of all documented namespaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{\hyperlink{namespacepeo}{peo} }{\pageref{namespacepeo}}{} +\end{CompactList} diff --git a/trunk/paradiseo-peo/docs/latex/refman.tex b/trunk/paradiseo-peo/docs/latex/refman.tex new file mode 100644 index 000000000..73a9e02d3 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/refman.tex @@ -0,0 +1,82 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{times} +\usepackage{ifpdf} +\ifpdf +\usepackage[pdftex, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\else +\usepackage[ps2pdf, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\usepackage{pspicture} +\fi +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large Paradis\-EO-PEO Reference Manual\\[1ex]\large 0.1 }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.4.7}\\ +\vspace*{0.5cm} +{\small Sun Jan 7 18:35:23 2007}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\chapter{The Paradis\-EO-PEO Framework } +\label{index}\hypertarget{index}{}\input{main} +\chapter{Paradis\-EO-PEO Namespace Index} +\input{namespaces} +\chapter{Paradis\-EO-PEO Hierarchical Index} +\input{hierarchy} +\chapter{Paradis\-EO-PEO Class Index} +\input{annotated} +\chapter{Paradis\-EO-PEO Namespace Documentation} +\input{namespacepeo} +\chapter{Paradis\-EO-PEO Class Documentation} +\input{classCommunicable} +\include{classCommunicator} +\include{classCooperative} +\include{structNode} +\include{classpeoAggEvalFunc} +\include{classpeoAsyncIslandMig} +\include{classpeoEA} +\include{classpeoNoAggEvalFunc} +\include{classpeoParaPopEval} +\include{classpeoParaSGATransform} +\include{classpeoPopEval} +\include{classpeoSeqPopEval} +\include{classpeoSeqTransform} +\include{classpeoSyncIslandMig} +\include{classpeoSyncMultiStart} +\include{classpeoTransform} +\include{classReactiveThread} +\include{classRingTopology} +\include{classRunner} +\include{structSEND__REQUEST} +\include{classService} +\include{classThread} +\include{classTopology} +\include{classWorker} +\printindex +\end{document} diff --git a/trunk/paradiseo-peo/docs/latex/structNode.tex b/trunk/paradiseo-peo/docs/latex/structNode.tex new file mode 100644 index 000000000..4f16d6568 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/structNode.tex @@ -0,0 +1,44 @@ +\hypertarget{structNode}{ +\section{Node Struct Reference} +\label{structNode}\index{Node@{Node}} +} +\subsection*{Public Attributes} +\begin{CompactItemize} +\item +\hypertarget{structNode_7de6f254b6b8c3f9f8287af0bb742e9b}{ +RANK\_\-ID \hyperlink{structNode_7de6f254b6b8c3f9f8287af0bb742e9b}{rk}} +\label{structNode_7de6f254b6b8c3f9f8287af0bb742e9b} + +\item +\hypertarget{structNode_3c4318d71ca9a44fe33edcf8b7f26863}{ +std::string \hyperlink{structNode_3c4318d71ca9a44fe33edcf8b7f26863}{name}} +\label{structNode_3c4318d71ca9a44fe33edcf8b7f26863} + +\item +\hypertarget{structNode_01fec86d75332858b158c810d57caee3}{ +unsigned \hyperlink{structNode_01fec86d75332858b158c810d57caee3}{num\_\-workers}} +\label{structNode_01fec86d75332858b158c810d57caee3} + +\item +\hypertarget{structNode_98deed2036c3dd8fc0f4fe8dacf56a92}{ +int \hyperlink{structNode_98deed2036c3dd8fc0f4fe8dacf56a92}{rk\_\-sched}} +\label{structNode_98deed2036c3dd8fc0f4fe8dacf56a92} + +\item +\hypertarget{structNode_a90013b890888d3d252a71cb4fe48934}{ +std::vector$<$ RUNNER\_\-ID $>$ \hyperlink{structNode_a90013b890888d3d252a71cb4fe48934}{id\_\-run}} +\label{structNode_a90013b890888d3d252a71cb4fe48934} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 35 of file schema.h. + +The documentation for this struct was generated from the following file:\begin{CompactItemize} +\item +schema.h\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/latex/structSEND__REQUEST.tex b/trunk/paradiseo-peo/docs/latex/structSEND__REQUEST.tex new file mode 100644 index 000000000..a25292318 --- /dev/null +++ b/trunk/paradiseo-peo/docs/latex/structSEND__REQUEST.tex @@ -0,0 +1,34 @@ +\hypertarget{structSEND__REQUEST}{ +\section{SEND\_\-REQUEST Struct Reference} +\label{structSEND__REQUEST}\index{SEND_REQUEST@{SEND\_\-REQUEST}} +} +\subsection*{Public Attributes} +\begin{CompactItemize} +\item +\hypertarget{structSEND__REQUEST_1ad8f7233fa3ff13262e783a9153920f}{ +\hyperlink{classCommunicable}{Communicable} $\ast$ \hyperlink{structSEND__REQUEST_1ad8f7233fa3ff13262e783a9153920f}{comm}} +\label{structSEND__REQUEST_1ad8f7233fa3ff13262e783a9153920f} + +\item +\hypertarget{structSEND__REQUEST_93e2a6a71d2a91aa2b7bdd050ee59b4d}{ +int \hyperlink{structSEND__REQUEST_93e2a6a71d2a91aa2b7bdd050ee59b4d}{to}} +\label{structSEND__REQUEST_93e2a6a71d2a91aa2b7bdd050ee59b4d} + +\item +\hypertarget{structSEND__REQUEST_3126b3ef9d6533d3086760e413a7f23f}{ +int \hyperlink{structSEND__REQUEST_3126b3ef9d6533d3086760e413a7f23f}{tag}} +\label{structSEND__REQUEST_3126b3ef9d6533d3086760e413a7f23f} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 39 of file send.cpp. + +The documentation for this struct was generated from the following file:\begin{CompactItemize} +\item +send.cpp\end{CompactItemize} diff --git a/trunk/paradiseo-peo/docs/man/man3/Communicable.3 b/trunk/paradiseo-peo/docs/man/man3/Communicable.3 new file mode 100644 index 000000000..5411ea8a6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Communicable.3 @@ -0,0 +1,62 @@ +.TH "Communicable" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Communicable \- +.SH SYNOPSIS +.br +.PP +Inherited by \fBCooperative\fP, \fBRunner\fP, \fBService\fP, and \fBWorker\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBCommunicable\fP ()" +.br +.ti -1c +.RI "virtual \fB~Communicable\fP ()" +.br +.ti -1c +.RI "COMM_ID \fBgetKey\fP ()" +.br +.ti -1c +.RI "void \fBlock\fP ()" +.br +.ti -1c +.RI "void \fBunlock\fP ()" +.br +.ti -1c +.RI "void \fBstop\fP ()" +.br +.ti -1c +.RI "void \fBresume\fP ()" +.br +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "COMM_ID \fBkey\fP" +.br +.ti -1c +.RI "sem_t \fBsem_lock\fP" +.br +.ti -1c +.RI "sem_t \fBsem_stop\fP" +.br +.in -1c +.SS "Static Protected Attributes" + +.in +1c +.ti -1c +.RI "static unsigned \fBnum_comm\fP = 0" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file communicable.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/Communicator.3 b/trunk/paradiseo-peo/docs/man/man3/Communicator.3 new file mode 100644 index 000000000..a24eb64f6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Communicator.3 @@ -0,0 +1,27 @@ +.TH "Communicator" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Communicator \- +.SH SYNOPSIS +.br +.PP +Inherits \fBReactiveThread\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBCommunicator\fP (int *__argc, char ***__argv)" +.br +.ti -1c +.RI "void \fBstart\fP ()" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 30 of file comm.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/Cooperative.3 b/trunk/paradiseo-peo/docs/man/man3/Cooperative.3 new file mode 100644 index 000000000..ff60c8c23 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Cooperative.3 @@ -0,0 +1,42 @@ +.TH "Cooperative" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Cooperative \- +.SH SYNOPSIS +.br +.PP +Inherits \fBCommunicable\fP. +.PP +Inherited by \fBpeoAsyncIslandMig< EOT >\fP, and \fBpeoSyncIslandMig< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBRunner\fP * \fBgetOwner\fP ()" +.br +.ti -1c +.RI "void \fBsetOwner\fP (\fBRunner\fP &__runner)" +.br +.ti -1c +.RI "void \fBsend\fP (\fBCooperative\fP *__coop)" +.br +.ti -1c +.RI "virtual void \fBnotifySending\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBRunner\fP * \fBowner\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 32 of file cooperative.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/Node.3 b/trunk/paradiseo-peo/docs/man/man3/Node.3 new file mode 100644 index 000000000..821eecfd7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Node.3 @@ -0,0 +1,34 @@ +.TH "Node" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Node \- +.SH SYNOPSIS +.br +.PP +.SS "Public Attributes" + +.in +1c +.ti -1c +.RI "RANK_ID \fBrk\fP" +.br +.ti -1c +.RI "std::string \fBname\fP" +.br +.ti -1c +.RI "unsigned \fBnum_workers\fP" +.br +.ti -1c +.RI "int \fBrk_sched\fP" +.br +.ti -1c +.RI "std::vector< RUNNER_ID > \fBid_run\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 35 of file schema.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/ReactiveThread.3 b/trunk/paradiseo-peo/docs/man/man3/ReactiveThread.3 new file mode 100644 index 000000000..1d11dbe2f --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/ReactiveThread.3 @@ -0,0 +1,39 @@ +.TH "ReactiveThread" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +ReactiveThread \- +.SH SYNOPSIS +.br +.PP +Inherits \fBThread\fP. +.PP +Inherited by \fBCommunicator\fP, and \fBWorker\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBReactiveThread\fP ()" +.br +.ti -1c +.RI "void \fBsleep\fP ()" +.br +.ti -1c +.RI "void \fBwakeUp\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "sem_t \fBsem\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file reac_thread.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/RingTopology.3 b/trunk/paradiseo-peo/docs/man/man3/RingTopology.3 new file mode 100644 index 000000000..22fb07b55 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/RingTopology.3 @@ -0,0 +1,24 @@ +.TH "RingTopology" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +RingTopology \- +.SH SYNOPSIS +.br +.PP +Inherits \fBTopology\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetNeighbors\fP (\fBCooperative\fP *__mig, std::vector< \fBCooperative\fP * > &__from, std::vector< \fBCooperative\fP * > &__to)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 29 of file ring_topo.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/Runner.3 b/trunk/paradiseo-peo/docs/man/man3/Runner.3 new file mode 100644 index 000000000..7c27f6de6 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Runner.3 @@ -0,0 +1,57 @@ +.TH "Runner" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Runner \- +.SH SYNOPSIS +.br +.PP +Inherits \fBCommunicable\fP, and \fBThread\fP. +.PP +Inherited by \fBpeoEA< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBRunner\fP ()" +.br +.ti -1c +.RI "void \fBstart\fP ()" +.br +.ti -1c +.RI "void \fBwaitStarting\fP ()" +.br +.ti -1c +.RI "bool \fBisLocal\fP ()" +.br +.ti -1c +.RI "void \fBterminate\fP ()" +.br +.ti -1c +.RI "RUNNER_ID \fBgetID\fP ()" +.br +.ti -1c +.RI "void \fBpackTermination\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingTermination\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "sem_t \fBsem_start\fP" +.br +.ti -1c +.RI "unsigned \fBid\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 34 of file runner.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/SEND_REQUEST.3 b/trunk/paradiseo-peo/docs/man/man3/SEND_REQUEST.3 new file mode 100644 index 000000000..f4ae4494e --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/SEND_REQUEST.3 @@ -0,0 +1,28 @@ +.TH "SEND_REQUEST" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +SEND_REQUEST \- +.SH SYNOPSIS +.br +.PP +.SS "Public Attributes" + +.in +1c +.ti -1c +.RI "\fBCommunicable\fP * \fBcomm\fP" +.br +.ti -1c +.RI "int \fBto\fP" +.br +.ti -1c +.RI "int \fBtag\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 39 of file send.cpp. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/Service.3 b/trunk/paradiseo-peo/docs/man/man3/Service.3 new file mode 100644 index 000000000..b0b9c41c1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Service.3 @@ -0,0 +1,69 @@ +.TH "Service" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Service \- +.SH SYNOPSIS +.br +.PP +Inherits \fBCommunicable\fP. +.PP +Inherited by \fBpeoPopEval< EOT >\fP, \fBpeoSyncMultiStart< EOT >\fP, and \fBpeoTransform< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetOwner\fP (\fBThread\fP &__owner)" +.br +.ti -1c +.RI "\fBThread\fP * \fBgetOwner\fP ()" +.br +.ti -1c +.RI "void \fBrequestResourceRequest\fP (unsigned __how_many=1)" +.br +.ti -1c +.RI "void \fBpackResourceRequest\fP ()" +.br +.ti -1c +.RI "virtual void \fBpackData\fP ()" +.br +.ti -1c +.RI "virtual void \fBunpackData\fP ()" +.br +.ti -1c +.RI "virtual void \fBexecute\fP ()" +.br +.ti -1c +.RI "virtual void \fBpackResult\fP ()" +.br +.ti -1c +.RI "virtual void \fBunpackResult\fP ()" +.br +.ti -1c +.RI "virtual void \fBnotifySendingData\fP ()" +.br +.ti -1c +.RI "virtual void \fBnotifySendingResourceRequest\fP ()" +.br +.ti -1c +.RI "virtual void \fBnotifySendingAllResourceRequests\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBThread\fP * \fBowner\fP" +.br +.ti -1c +.RI "unsigned \fBnum_sent_rr\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 32 of file service.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/Thread.3 b/trunk/paradiseo-peo/docs/man/man3/Thread.3 new file mode 100644 index 000000000..7b3c1cf2f --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Thread.3 @@ -0,0 +1,40 @@ +.TH "Thread" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Thread \- +.SH SYNOPSIS +.br +.PP +Inherited by \fBReactiveThread\fP, and \fBRunner\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBThread\fP ()" +.br +.ti -1c +.RI "virtual \fB~Thread\fP ()" +.br +.ti -1c +.RI "void \fBsetActive\fP ()" +.br +.ti -1c +.RI "void \fBsetPassive\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "bool \fBact\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file thread.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/Topology.3 b/trunk/paradiseo-peo/docs/man/man3/Topology.3 new file mode 100644 index 000000000..7317c2e14 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Topology.3 @@ -0,0 +1,34 @@ +.TH "Topology" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Topology \- +.SH SYNOPSIS +.br +.PP +Inherited by \fBRingTopology\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual \fB~Topology\fP ()" +.br +.ti -1c +.RI "void \fBadd\fP (\fBCooperative\fP &__mig)" +.br +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBCooperative\fP * > \fBmig\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 31 of file topology.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/Worker.3 b/trunk/paradiseo-peo/docs/man/man3/Worker.3 new file mode 100644 index 000000000..bcc9adb5f --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/Worker.3 @@ -0,0 +1,64 @@ +.TH "Worker" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Worker \- +.SH SYNOPSIS +.br +.PP +Inherits \fBCommunicable\fP, and \fBReactiveThread\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBWorker\fP ()" +.br +.ti -1c +.RI "void \fBstart\fP ()" +.br +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.ti -1c +.RI "void \fBpackTaskDone\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingResult\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingTaskDone\fP ()" +.br +.ti -1c +.RI "void \fBsetSource\fP (int __rank)" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "WORKER_ID \fBid\fP" +.br +.ti -1c +.RI "SERVICE_ID \fBserv_id\fP" +.br +.ti -1c +.RI "\fBService\fP * \fBserv\fP" +.br +.ti -1c +.RI "int \fBsrc\fP" +.br +.ti -1c +.RI "bool \fBtoto\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 33 of file worker.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peo.3 b/trunk/paradiseo-peo/docs/man/man3/peo.3 new file mode 100644 index 000000000..24d91e0ce --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peo.3 @@ -0,0 +1,43 @@ +.TH "peo" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peo \- +.SH SYNOPSIS +.br +.PP +.SS "Functions" + +.in +1c +.ti -1c +.RI "void \fBfinalize\fP ()" +.br +.ti -1c +.RI "void \fBinit\fP (int &__argc, char **&__argv)" +.br +.ti -1c +.RI "void \fBloadParameters\fP (int &__argc, char **&__argv)" +.br +.ti -1c +.RI "void \fBrun\fP ()" +.br +.in -1c +.SS "Variables" + +.in +1c +.ti -1c +.RI "int * \fBargc\fP" +.br +.ti -1c +.RI "char *** \fBargv\fP" +.br +.ti -1c +.RI "int * \fBargc\fP" +.br +.ti -1c +.RI "char *** \fBargv\fP" +.br +.in -1c +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoAggEvalFunc.3 b/trunk/paradiseo-peo/docs/man/man3/peoAggEvalFunc.3 new file mode 100644 index 000000000..a93d29bf1 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoAggEvalFunc.3 @@ -0,0 +1,31 @@ +.TH "peoAggEvalFunc" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoAggEvalFunc \- The \fBpeoAggEvalFunc\fP class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBpeoNoAggEvalFunc< EOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class peoAggEvalFunc< EOT >" +The \fBpeoAggEvalFunc\fP class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. + +The class inherits \fBpublic eoBF< EOT&, const typename EOT :: Fitness&, void >\fP thus requiring, for the derived classes, the creation of a function having the following signature: +.PP +void operator()( EOT& __eot, const typename EOT :: Fitness& __partial_fittness ); +.PP +The aggregation object is called in an iterative manner for each of the results obtained by applying partial evaluation functions. +.PP +Definition at line 40 of file peoAggEvalFunc.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoAsyncIslandMig.3 b/trunk/paradiseo-peo/docs/man/man3/peoAsyncIslandMig.3 new file mode 100644 index 000000000..f0cb664fd --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoAsyncIslandMig.3 @@ -0,0 +1,174 @@ +.TH "peoAsyncIslandMig" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoAsyncIslandMig \- The \fBpeoAsyncIslandMig\fP class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBCooperative\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoAsyncIslandMig\fP (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, \fBTopology\fP &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)" +.br +.RI "\fIConstructor for the \fBpeoAsyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fIFunction operator to be called as checkpoint for performing the migration step. \fP" +.ti -1c +.RI "void \fBpack\fP ()" +.br +.RI "\fIAuxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBunpack\fP ()" +.br +.RI "\fIAuxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBemigrate\fP ()" +.br +.ti -1c +.RI "void \fBimmigrate\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "eoContinue< EOT > & \fBcont\fP" +.br +.ti -1c +.RI "eoSelect< EOT > & \fBselect\fP" +.br +.ti -1c +.RI "eoReplacement< EOT > & \fBreplace\fP" +.br +.ti -1c +.RI "\fBTopology\fP & \fBtopology\fP" +.br +.ti -1c +.RI "eoPop< EOT > & \fBsource\fP" +.br +.ti -1c +.RI "eoPop< EOT > & \fBdestination\fP" +.br +.ti -1c +.RI "std::queue< eoPop< EOT > > \fBimm\fP" +.br +.ti -1c +.RI "std::queue< eoPop< EOT > > \fBem\fP" +.br +.ti -1c +.RI "std::queue< \fBCooperative\fP * > \fBcoop_em\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoAsyncIslandMig< EOT >" +The \fBpeoAsyncIslandMig\fP class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. + +continuation criterion, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. As opposed to the synchronous migration model, in the asynchronous migration approach, there is no synchronization step between islands after performing the emigration phase. +.PP +The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: +.PP +\fBdo\fP { select( population, offsprings ); // select the offsprings from the current population transform( offsprings ); // crossover and mutation operators are applied on the selected offsprings evaluate( offsprings ); // evaluation step of the resulting offsprings replace( population, offsprings ); // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy } \fBwhile\fP ( eaCheckpointContinue( population ) ); // checkpoint operators are applied on the current population, including the migration operator, if any specified +.PP +Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the \fB\fBRunner\fP\fP class (for example a \fBpeoEA\fP object represents a possible owner). A simple example is offered bellow: +.PP +.PD 0 +.IP "1." 4 +topological model to be followed when performing migrations: +.br + +.br + \fBRingTopology\fP migTopology; // a simple ring topological model - each island communicates with two other islands +.PP + +.IP "2." 4 +the continuation criterion, selection and replacement strategy etc. are defined: +.br + +.br + eoPop< EOT > population( POP_SIZE, popInitializer ); // population of individuals to be used for the evolutionary algorithm eoPeriodicContinue< EOT > migCont( MIG_FREQ ); // migrations occur periodically at MIG_FREQ iterations eoRandomSelect< EOT > migSelectStrategy; // selection strategy - in this case a random selection is applied eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE ); // number of individuals to be selected using the specified strategy eoPlusReplacement< EOT > migReplace; // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals peoAsyncIslandMig< EOT > asyncMigration( +.br + migCont, migSelect, migReplace, migTopology, +.br + population, population +.br + ); // asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated +.PP + +.IP "3." 4 +creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): +.br + +.br + ... eoGenContinue< EOT > eaCont( NUM_GEN ); // the evolutionary algorithm will stop after NUM_GEN generations eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // number of individuals to be selected using the specified strategy ... eaCheckpointContinue.add( asyncMigration ); // adding the migration operator as checkpoint element ... +.PP + +.IP "4." 4 +definition of an owner evolutionary algorithm (an object inheriting the \fB\fBRunner\fP\fP class): +.br + +.br + peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above asyncMigration.setOwner( eaAlg ); // setting the evolutionary algorithm as owner of the migration object eaAlg( population ); // applying the evolutionary algorithm on a given population +.PP +.PP +The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. +.PP +The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +.PP +Definition at line 127 of file peoAsyncIslandMig.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoAsyncIslandMig\fP< EOT >::\fBpeoAsyncIslandMig\fP (eoContinue< EOT > & __cont, eoSelect< EOT > & __select, eoReplacement< EOT > & __replace, \fBTopology\fP & __topology, eoPop< EOT > & __source, eoPop< EOT > & __destination)" +.PP +Constructor for the \fBpeoAsyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. +.PP +\fBParameters:\fP +.RS 4 +\fIeoContinue<\fP EOT >& __cont - continuation criterion specifying whether the migration is performed or not; +.br +\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; +.br +\fIeoReplacement<\fP EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; +.br +\fITopology&\fP __topology - topological model to be followed when performing migrations; +.br +\fIeoPop<\fP EOT >& __source - source population from which the emigrant individuals are selected; +.br +\fIeoPop<\fP EOT >& __destination - destination population in which the immigrant population are integrated. +.RE +.PP + +.PP +Definition at line 186 of file peoAsyncIslandMig.h. +.PP +References Topology::add(). +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoAsyncIslandMig\fP< EOT >::operator() ()" +.PP +Function operator to be called as checkpoint for performing the migration step. +.PP +The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +.PP +Definition at line 263 of file peoAsyncIslandMig.h. +.PP +References peoAsyncIslandMig< EOT >::cont, peoAsyncIslandMig< EOT >::emigrate(), peoAsyncIslandMig< EOT >::immigrate(), and peoAsyncIslandMig< EOT >::source. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoEA.3 b/trunk/paradiseo-peo/docs/man/man3/peoEA.3 new file mode 100644 index 000000000..f28a43820 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoEA.3 @@ -0,0 +1,109 @@ +.TH "peoEA" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoEA \- The \fBpeoEA\fP class offers an elementary evolutionary algorithm implementation. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBRunner\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoEA\fP (eoContinue< EOT > &__cont, \fBpeoPopEval\fP< EOT > &__pop_eval, eoSelect< EOT > &__select, \fBpeoTransform\fP< EOT > &__trans, eoReplacement< EOT > &__replace)" +.br +.RI "\fIConstructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. \fP" +.ti -1c +.RI "void \fBrun\fP ()" +.br +.RI "\fIEvolutionary algorithm function - a side effect of the fact that the class is derived from the \fB\fBRunner\fP\fP class, thus requiring the existence of a \fIrun\fP function, the algorithm being executed on a distinct thread. \fP" +.ti -1c +.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)" +.br +.RI "\fIFunction operator for specifying the population to be associated with the algorithm. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "eoContinue< EOT > & \fBcont\fP" +.br +.ti -1c +.RI "\fBpeoPopEval\fP< EOT > & \fBpop_eval\fP" +.br +.ti -1c +.RI "eoSelect< EOT > & \fBselect\fP" +.br +.ti -1c +.RI "\fBpeoTransform\fP< EOT > & \fBtrans\fP" +.br +.ti -1c +.RI "eoReplacement< EOT > & \fBreplace\fP" +.br +.ti -1c +.RI "eoPop< EOT > * \fBpop\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoEA< EOT >" +The \fBpeoEA\fP class offers an elementary evolutionary algorithm implementation. + +In addition, as compared with the algorithms provided by the EO framework, the \fBpeoEA\fP class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the EO framework, the drawback resides in the fact that the EO implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a \fBpeoEA\fP object: +.PP +... eoPop< EOT > population( POP_SIZE, popInitializer ); // creation of a population with POP_SIZE individuals - the popInitializer is a functor to be called for each individual eoGenContinue< EOT > eaCont( NUM_GEN ); // number of generations for the evolutionary algorithm eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects peoSeqPopEval< EOT > eaPopEval( evalFunction ); // sequential evaluation functor wrapper - evalFunction represents the actual evaluation functor eoRankingSelect< EOT > selectionStrategy; // selection strategy for creating the offspring population - a simple ranking selection in this case eoSelectNumber< EOT > eaSelect( selectionStrategy, POP_SIZE ); // the number of individuals to be selected for creating the offspring population eoRankingSelect< EOT > selectionStrategy; // selection strategy for creating the offspring population - a simple ranking selection in this case eoSGATransform< EOT > transform( crossover, CROSS_RATE, mutation, MUT_RATE ); // transformation operator - crossover and mutation operators with their associated probabilities peoSeqTransform< EOT > eaTransform( transform ); // ParadisEO specific sequential operator - a parallel version may be specified in the same manner eoPlusReplacement< EOT > eaReplace; // replacement strategy - for integrating the offspring resulting individuals in the initial population peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace ); // ParadisEO evolutionary algorithm integrating the above defined objects eaAlg( population ); // specifying the initial population for the algorithm ... +.PP +Definition at line 69 of file peoEA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoEA\fP< EOT >::\fBpeoEA\fP (eoContinue< EOT > & __cont, \fBpeoPopEval\fP< EOT > & __pop_eval, eoSelect< EOT > & __select, \fBpeoTransform\fP< EOT > & __trans, eoReplacement< EOT > & __replace)" +.PP +Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. +.PP +Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the EO package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes. +.PP +\fBParameters:\fP +.RS 4 +\fIeoContinue<\fP EOT >& __cont - continuation criterion specifying whether the algorithm should continue or not; +.br +\fIpeoPopEval<\fP EOT >& __pop_eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.; +.br +\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of offspring individuals; +.br +\fIpeoTransform<\fP EOT >& __trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform; +.br +\fIeoReplacement<\fP EOT >& __replace - replacement strategy for integrating the offspring individuals in the initial population; +.RE +.PP + +.PP +Definition at line 113 of file peoEA.h. +.PP +References peoEA< EOT >::pop_eval, and peoEA< EOT >::trans. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoEA\fP< EOT >::operator() (eoPop< EOT > & __pop)" +.PP +Function operator for specifying the population to be associated with the algorithm. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - initial population of the algorithm, to be iteratively evolved; +.RE +.PP + +.PP +Definition at line 129 of file peoEA.h. +.PP +References peoEA< EOT >::pop. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoNoAggEvalFunc.3 b/trunk/paradiseo-peo/docs/man/man3/peoNoAggEvalFunc.3 new file mode 100644 index 000000000..7e532871d --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoNoAggEvalFunc.3 @@ -0,0 +1,35 @@ +.TH "peoNoAggEvalFunc" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoNoAggEvalFunc \- The \fBpeoNoAggEvalFunc\fP class does nothing more than an association between a fitness value and a specified individual. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBpeoAggEvalFunc< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (EOT &__sol, const typename EOT::Fitness &__fit)" +.br +.RI "\fIOperator which sets as fitness the \fB__fit\fP value for the \fB__sol\fP individual. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoNoAggEvalFunc< EOT >" +The \fBpeoNoAggEvalFunc\fP class does nothing more than an association between a fitness value and a specified individual. + +The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness value is explicitly specified. +.PP +Definition at line 34 of file peoNoAggEvalFunc.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoParaPopEval.3 b/trunk/paradiseo-peo/docs/man/man3/peoParaPopEval.3 new file mode 100644 index 000000000..90e316762 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoParaPopEval.3 @@ -0,0 +1,217 @@ +.TH "peoParaPopEval" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoParaPopEval \- The \fBpeoParaPopEval\fP represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBpeoPopEval< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoParaPopEval\fP (eoEvalFunc< EOT > &__eval_func)" +.br +.RI "\fIConstructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. \fP" +.ti -1c +.RI "\fBpeoParaPopEval\fP (const std::vector< eoEvalFunc< EOT > * > &__funcs, \fBpeoAggEvalFunc\fP< EOT > &__merge_eval)" +.br +.RI "\fIConstructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. \fP" +.ti -1c +.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)" +.br +.RI "\fIOperator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. \fP" +.ti -1c +.RI "void \fBpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBexecute\fP ()" +.br +.RI "\fIAuxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBunpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBnotifySendingData\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBnotifySendingAllResourceRequests\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "const std::vector< eoEvalFunc< EOT > * > & \fBfuncs\fP" +.br +.ti -1c +.RI "std::vector< eoEvalFunc< EOT > * > \fBone_func\fP" +.br +.ti -1c +.RI "\fBpeoAggEvalFunc\fP< EOT > & \fBmerge_eval\fP" +.br +.ti -1c +.RI "\fBpeoNoAggEvalFunc\fP< EOT > \fBno_merge_eval\fP" +.br +.ti -1c +.RI "std::queue< EOT * > \fBtasks\fP" +.br +.ti -1c +.RI "std::map< EOT *, std::pair< unsigned, unsigned > > \fBprogression\fP" +.br +.ti -1c +.RI "unsigned \fBnum_func\fP" +.br +.ti -1c +.RI "EOT \fBsol\fP" +.br +.ti -1c +.RI "EOT * \fBad_sol\fP" +.br +.ti -1c +.RI "unsigned \fBtotal\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoParaPopEval< EOT >" +The \fBpeoParaPopEval\fP represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. + +The class offers the possibility of chosing between a single-function evaluation and an aggregate evaluation function, including several sub-evalution functions. +.PP +Definition at line 41 of file peoParaPopEval.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoParaPopEval\fP< EOT >::\fBpeoParaPopEval\fP (eoEvalFunc< EOT > & __eval_func)" +.PP +Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. +.PP +\fBParameters:\fP +.RS 4 +\fIeoEvalFunc<\fP EOT >& __eval_func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population +.RE +.PP + +.PP +Definition at line 117 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::one_func. +.SS "template \fBpeoParaPopEval\fP< EOT >::\fBpeoParaPopEval\fP (const std::vector< eoEvalFunc< EOT > * > & __funcs, \fBpeoAggEvalFunc\fP< EOT > & __merge_eval)" +.PP +Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. +.PP +\fBParameters:\fP +.RS 4 +\fIconst\fP std :: vector< eoEvalFunc < EOT >* >& __funcs - vector of EO-derived partial evaluation functors; +.br +\fIpeoAggEvalFunc<\fP EOT >& __merge_eval - aggregation functor for creating a fitness value out of the partial fitness values. +.RE +.PP + +.PP +Definition at line 126 of file peoParaPopEval.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoParaPopEval\fP< EOT >::operator() (eoPop< EOT > & __pop)\fC [virtual]\fP" +.PP +Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - population to be evaluated by applying the evaluation functor specified in the constructor. +.RE +.PP + +.PP +Implements \fBpeoPopEval< EOT >\fP. +.PP +Definition at line 137 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::funcs, peoParaPopEval< EOT >::progression, Service::requestResourceRequest(), Communicable::stop(), peoParaPopEval< EOT >::tasks, and peoParaPopEval< EOT >::total. +.SS "template void \fBpeoParaPopEval\fP< EOT >::packData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 158 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::progression, and peoParaPopEval< EOT >::tasks. +.SS "template void \fBpeoParaPopEval\fP< EOT >::unpackData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 172 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::ad_sol, peoParaPopEval< EOT >::num_func, and peoParaPopEval< EOT >::sol. +.SS "template void \fBpeoParaPopEval\fP< EOT >::packResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 189 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::ad_sol, and peoParaPopEval< EOT >::sol. +.SS "template void \fBpeoParaPopEval\fP< EOT >::unpackResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 198 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::ad_sol, Service::getOwner(), peoParaPopEval< EOT >::merge_eval, peoParaPopEval< EOT >::progression, Communicable::resume(), Thread::setActive(), and peoParaPopEval< EOT >::total. +.SS "template void \fBpeoParaPopEval\fP< EOT >::notifySendingData ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 229 of file peoParaPopEval.h. +.SS "template void \fBpeoParaPopEval\fP< EOT >::notifySendingAllResourceRequests ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 234 of file peoParaPopEval.h. +.PP +References Service::getOwner(), and Thread::setPassive(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoParaSGATransform.3 b/trunk/paradiseo-peo/docs/man/man3/peoParaSGATransform.3 new file mode 100644 index 000000000..6bf5b76e2 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoParaSGATransform.3 @@ -0,0 +1,83 @@ +.TH "peoParaSGATransform" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoParaSGATransform \- +.SH SYNOPSIS +.br +.PP +Inherits \fBpeoTransform< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoParaSGATransform\fP (eoQuadOp< EOT > &__cross, double __cross_rate, eoMonOp< EOT > &__mut, double __mut_rate)" +.br +.ti -1c +.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)" +.br +.ti -1c +.RI "void \fBpackData\fP ()" +.br +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.ti -1c +.RI "void \fBexecute\fP ()" +.br +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.ti -1c +.RI "void \fBunpackResult\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingData\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingAllResourceRequests\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "eoQuadOp< EOT > & \fBcross\fP" +.br +.ti -1c +.RI "double \fBcross_rate\fP" +.br +.ti -1c +.RI "eoMonOp< EOT > & \fBmut\fP" +.br +.ti -1c +.RI "double \fBmut_rate\fP" +.br +.ti -1c +.RI "unsigned \fBidx\fP" +.br +.ti -1c +.RI "eoPop< EOT > * \fBpop\fP" +.br +.ti -1c +.RI "EOT \fBfather\fP" +.br +.ti -1c +.RI "EOT \fBmother\fP" +.br +.ti -1c +.RI "unsigned \fBnum_term\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoParaSGATransform< EOT >" + +.PP +Definition at line 36 of file peoParaSGATransform.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoPopEval.3 b/trunk/paradiseo-peo/docs/man/man3/peoPopEval.3 new file mode 100644 index 000000000..892948bc4 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoPopEval.3 @@ -0,0 +1,37 @@ +.TH "peoPopEval" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoPopEval \- The \fB\fBpeoPopEval\fP\fP class provides the interface for constructing ParadisEO specific evaluation functors. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBService\fP. +.PP +Inherited by \fBpeoParaPopEval< EOT >\fP, and \fBpeoSeqPopEval< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBoperator()\fP (eoPop< EOT > &__pop)=0" +.br +.RI "\fIInterface function providing the signature for constructing an evaluation functor. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoPopEval< EOT >" +The \fB\fBpeoPopEval\fP\fP class provides the interface for constructing ParadisEO specific evaluation functors. + +The derived classes may be used as wrappers for \fBEO\fP-derived evaluation functors. In order to have an example, please refer to the implementation of the \fB\fBpeoSeqPopEval\fP\fP and \fB\fBpeoParaPopEval\fP\fP classes. +.PP +Definition at line 34 of file peoPopEval.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoSeqPopEval.3 b/trunk/paradiseo-peo/docs/man/man3/peoSeqPopEval.3 new file mode 100644 index 000000000..a2dfc272e --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoSeqPopEval.3 @@ -0,0 +1,78 @@ +.TH "peoSeqPopEval" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoSeqPopEval \- The \fBpeoSeqPopEval\fP class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an \fBeoEvalFunc< EOT >\fP-derived class as evaluation functor. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBpeoPopEval< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoSeqPopEval\fP (eoEvalFunc< EOT > &__eval)" +.br +.RI "\fIConstructor function - it only sets an internal reference to point to the specified evaluation object. \fP" +.ti -1c +.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)" +.br +.RI "\fIOperator for evaluating all the individuals of a given population - in a sequential iterative manner. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "eoEvalFunc< EOT > & \fBeval\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoSeqPopEval< EOT >" +The \fBpeoSeqPopEval\fP class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an \fBeoEvalFunc< EOT >\fP-derived class as evaluation functor. + +The specified EO evaluation object is applyied in an iterative manner to each individual of a specified population. +.PP +Definition at line 36 of file peoSeqPopEval.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoSeqPopEval\fP< EOT >::\fBpeoSeqPopEval\fP (eoEvalFunc< EOT > & __eval)" +.PP +Constructor function - it only sets an internal reference to point to the specified evaluation object. +.PP +\fBParameters:\fP +.RS 4 +\fIeoEvalFunc<\fP EOT >& __eval - evaluation object to be applied for each individual of a specified population +.RE +.PP + +.PP +Definition at line 56 of file peoSeqPopEval.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoSeqPopEval\fP< EOT >::operator() (eoPop< EOT > & __pop)\fC [virtual]\fP" +.PP +Operator for evaluating all the individuals of a given population - in a sequential iterative manner. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - population to be evaluated. +.RE +.PP + +.PP +Implements \fBpeoPopEval< EOT >\fP. +.PP +Definition at line 61 of file peoSeqPopEval.h. +.PP +References peoSeqPopEval< EOT >::eval. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoSeqTransform.3 b/trunk/paradiseo-peo/docs/man/man3/peoSeqTransform.3 new file mode 100644 index 000000000..9e25cb3c0 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoSeqTransform.3 @@ -0,0 +1,96 @@ +.TH "peoSeqTransform" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoSeqTransform \- The \fBpeoSeqTransform\fP represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBpeoTransform< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoSeqTransform\fP (eoTransform< EOT > &__trans)" +.br +.RI "\fIConstructor function - sets an internal reference towards the specified EO-derived transform object. \fP" +.ti -1c +.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)" +.br +.RI "\fIOperator for applying the specified transform operators on each individual of the given population. \fP" +.ti -1c +.RI "virtual void \fBpackData\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.ti -1c +.RI "virtual void \fBunpackData\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.ti -1c +.RI "virtual void \fBexecute\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.ti -1c +.RI "virtual void \fBpackResult\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.ti -1c +.RI "virtual void \fBunpackResult\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "eoTransform< EOT > & \fBtrans\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoSeqTransform< EOT >" +The \fBpeoSeqTransform\fP represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms. + +A minimal set of interface functions is also provided for creating the link with the parallel architecture of the ParadisEO framework. +.PP +Definition at line 35 of file peoSeqTransform.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoSeqTransform\fP< EOT >::\fBpeoSeqTransform\fP (eoTransform< EOT > & __trans)" +.PP +Constructor function - sets an internal reference towards the specified EO-derived transform object. +.PP +\fBParameters:\fP +.RS 4 +\fIeoTransform<\fP EOT >& __trans - EO-derived transform object including crossover and mutation operators. +.RE +.PP + +.PP +Definition at line 70 of file peoSeqTransform.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoSeqTransform\fP< EOT >::operator() (eoPop< EOT > & __pop)" +.PP +Operator for applying the specified transform operators on each individual of the given population. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - population to be transformed by applying the crossover and mutation operators. +.RE +.PP + +.PP +Definition at line 75 of file peoSeqTransform.h. +.PP +References peoSeqTransform< EOT >::trans. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoSyncIslandMig.3 b/trunk/paradiseo-peo/docs/man/man3/peoSyncIslandMig.3 new file mode 100644 index 000000000..cfe7ca2f7 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoSyncIslandMig.3 @@ -0,0 +1,181 @@ +.TH "peoSyncIslandMig" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoSyncIslandMig \- The \fBpeoSyncIslandMig\fP class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBCooperative\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoSyncIslandMig\fP (unsigned __frequency, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, \fBTopology\fP &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)" +.br +.RI "\fIConstructor for the \fBpeoSyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fIFunction operator to be called as checkpoint for performing the migration step. \fP" +.ti -1c +.RI "void \fBpack\fP ()" +.br +.RI "\fIAuxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBunpack\fP ()" +.br +.RI "\fIAuxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBnotifySending\fP ()" +.br +.RI "\fIAuxiliary function dealing with migration notifications. There is no need to explicitly call the function. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBemigrate\fP ()" +.br +.ti -1c +.RI "void \fBimmigrate\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "eoPeriodicContinue< EOT > \fBcont\fP" +.br +.ti -1c +.RI "eoSelect< EOT > & \fBselect\fP" +.br +.ti -1c +.RI "eoReplacement< EOT > & \fBreplace\fP" +.br +.ti -1c +.RI "\fBTopology\fP & \fBtopology\fP" +.br +.ti -1c +.RI "eoPop< EOT > & \fBsource\fP" +.br +.ti -1c +.RI "eoPop< EOT > & \fBdestination\fP" +.br +.ti -1c +.RI "std::queue< eoPop< EOT > > \fBimm\fP" +.br +.ti -1c +.RI "std::queue< eoPop< EOT > > \fBem\fP" +.br +.ti -1c +.RI "std::queue< \fBCooperative\fP * > \fBcoop_em\fP" +.br +.ti -1c +.RI "sem_t \fBsync\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoSyncIslandMig< EOT >" +The \fBpeoSyncIslandMig\fP class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. + +frequency of the migrations, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. The main difference as opposed to the asynchronous migration model is the synchronization step performed after selecting and sending the emigrant individuals. +.PP +The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: +.PP +\fBdo\fP { select( population, offsprings ); // select the offsprings from the current population transform( offsprings ); // crossover and mutation operators are applied on the selected offsprings evaluate( offsprings ); // evaluation step of the resulting offspring replace( population, offsprings ); // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy } \fBwhile\fP ( eaCheckpointContinue( population ) ); // checkpoint operators are applied on the current population, including the migration operator, if any specified +.PP +Constructing a synchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the \fB\fBRunner\fP\fP class (for example a \fBpeoEA\fP object represents a possible owner). A simple example is offered bellow: +.PP +.PD 0 +.IP "1." 4 +topological model to be followed when performing migrations: +.br + +.br + \fBRingTopology\fP migTopology; // a simple ring topological model - each island communicates with two other islands +.PP + +.IP "2." 4 +the continuation criterion, selection and replacement strategy etc. are defined: +.br + +.br + eoPop< EOT > population( POP_SIZE, popInitializer ); // population of individuals to be used for the evolutionary algorithm eoRandomSelect< EOT > migSelectStrategy; // selection strategy - in this case a random selection is applied eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE ); // number of individuals to be selected using the specified strategy eoPlusReplacement< EOT > migReplace; // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals peoSyncIslandMig< EOT > syncMigration( +.br + MIG_FREQ, migSelect, migReplace, migTopology, +.br + population, population +.br + ); // synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated +.PP + +.IP "3." 4 +creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): +.br + +.br + ... eoGenContinue< EOT > eaCont( NUM_GEN ); // the evolutionary algorithm will stop after NUM_GEN generations eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // number of individuals to be selected using the specified strategy ... eaCheckpointContinue.add( syncMigration ); // adding the migration operator as checkpoint element ... +.PP + +.IP "4." 4 +definition of an owner evolutionary algorithm (an object inheriting the \fB\fBRunner\fP\fP class): +.br + +.br + peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above syncMigration.setOwner( eaAlg ); // setting the evolutionary algorithm as owner of the migration object eaAlg( population ); // applying the evolutionary algorithm on a given population +.PP +.PP +The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. +.PP +The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +.PP +Definition at line 129 of file peoSyncIslandMig.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoSyncIslandMig\fP< EOT >::\fBpeoSyncIslandMig\fP (unsigned __frequency, eoSelect< EOT > & __select, eoReplacement< EOT > & __replace, \fBTopology\fP & __topology, eoPop< EOT > & __source, eoPop< EOT > & __destination)" +.PP +Constructor for the \fBpeoSyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. +.PP +\fBParameters:\fP +.RS 4 +\fIunsigned\fP __frequency - frequency of the migrations - the migrations occur periodically; +.br +\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; +.br +\fIeoReplacement<\fP EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; +.br +\fITopology&\fP __topology - topological model to be followed when performing migrations; +.br +\fIeoPop<\fP EOT >& __source - source population from which the emigrant individuals are selected; +.br +\fIeoPop<\fP EOT >& __destination - destination population in which the immigrant population are integrated. +.RE +.PP + +.PP +Definition at line 193 of file peoSyncIslandMig.h. +.PP +References Topology::add(), and peoSyncIslandMig< EOT >::sync. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoSyncIslandMig\fP< EOT >::operator() ()" +.PP +Function operator to be called as checkpoint for performing the migration step. +.PP +The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +.PP +Definition at line 267 of file peoSyncIslandMig.h. +.PP +References peoSyncIslandMig< EOT >::cont, peoSyncIslandMig< EOT >::emigrate(), Cooperative::getOwner(), peoSyncIslandMig< EOT >::immigrate(), Thread::setActive(), peoSyncIslandMig< EOT >::source, Communicable::stop(), and peoSyncIslandMig< EOT >::sync. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoSyncMultiStart.3 b/trunk/paradiseo-peo/docs/man/man3/peoSyncMultiStart.3 new file mode 100644 index 000000000..4c7fb5615 --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoSyncMultiStart.3 @@ -0,0 +1,209 @@ +.TH "peoSyncMultiStart" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoSyncMultiStart \- The \fBpeoSyncMultiStart\fP class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBService\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoSyncMultiStart\fP (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, \fBmoAlgo\fP< EOT > &__ls, eoPop< EOT > &__pop)" +.br +.RI "\fIConstructor function - several simple parameters are required for defining the characteristics of the multi-start model. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fIOperator which synchronously executes the specified algorithm on the individuals selected from the initial population. \fP" +.ti -1c +.RI "void \fBpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP" +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP" +.ti -1c +.RI "void \fBexecute\fP ()" +.br +.RI "\fIAuxiliary function for actually executing the specified algorithm on one assigned individual. \fP" +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP" +.ti -1c +.RI "void \fBunpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP" +.ti -1c +.RI "void \fBnotifySendingData\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \fP" +.ti -1c +.RI "void \fBnotifySendingAllResourceRequests\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "eoContinue< EOT > & \fBcont\fP" +.br +.ti -1c +.RI "eoSelect< EOT > & \fBselect\fP" +.br +.ti -1c +.RI "eoReplacement< EOT > & \fBreplace\fP" +.br +.ti -1c +.RI "\fBmoAlgo\fP< EOT > & \fBls\fP" +.br +.ti -1c +.RI "eoPop< EOT > & \fBpop\fP" +.br +.ti -1c +.RI "eoPop< EOT > \fBsel\fP" +.br +.ti -1c +.RI "eoPop< EOT > \fBimpr_sel\fP" +.br +.ti -1c +.RI "EOT \fBsol\fP" +.br +.ti -1c +.RI "unsigned \fBidx\fP" +.br +.ti -1c +.RI "unsigned \fBnum_term\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoSyncMultiStart< EOT >" +The \fBpeoSyncMultiStart\fP class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. + +As a simple example, several hill climbing algorithms may be synchronously launched on the specified population, each algorithm acting upon one individual only, the final result being integrated back in the population. A \fBpeoSyncMultiStart\fP object can be specified as checkpoint object for a classic ParadisEO evolutionary algorithm thus allowing for simple hybridization schemes which combine the evolutionary approach with a local search approach, for example, executed at the end of each generation. +.PP +Definition at line 51 of file peoSyncMultiStart.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoSyncMultiStart\fP< EOT >::\fBpeoSyncMultiStart\fP (eoContinue< EOT > & __cont, eoSelect< EOT > & __select, eoReplacement< EOT > & __replace, \fBmoAlgo\fP< EOT > & __ls, eoPop< EOT > & __pop)" +.PP +Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. +.PP +\fBParameters:\fP +.RS 4 +\fIeoContinue<\fP EOT >& __cont - defined for including further functionality - no semantics associated at this time; +.br +\fIeoSelect<\fP EOT >& __select - selection strategy for obtaining a subset of the initial population on which to apply the specified algorithm; +.br +\fIeoReplacement<\fP EOT >& __replace - replacement strategy for integrating the resulting individuals in the initial population; +.br +\fImoAlgo<\fP EOT >& __ls - algorithm to be applied on each of the selected individuals - a \fBmoAlgo< EOT >\fP-derived object must be specified; +.br +\fIeoPop<\fP EOT >& __pop - the initial population from which the individuals are selected for applying the specified algorithm. +.RE +.PP + +.PP +Definition at line 121 of file peoSyncMultiStart.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::operator() ()" +.PP +Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. +.PP +There is no need to explicitly call the operator - automatically called as checkpoint operator. +.PP +Definition at line 176 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::idx, peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, Service::requestResourceRequest(), peoSyncMultiStart< EOT >::sel, peoSyncMultiStart< EOT >::select, and Communicable::stop(). +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::packData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 135 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::idx, and peoSyncMultiStart< EOT >::sel. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::unpackData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 141 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::sol. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::execute ()\fC [virtual]\fP" +.PP +Auxiliary function for actually executing the specified algorithm on one assigned individual. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 147 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::ls, and peoSyncMultiStart< EOT >::sol. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::packResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 153 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::sol. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::unpackResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 159 of file peoSyncMultiStart.h. +.PP +References Service::getOwner(), peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, peoSyncMultiStart< EOT >::replace, Communicable::resume(), peoSyncMultiStart< EOT >::sel, Thread::setActive(), and peoSyncMultiStart< EOT >::sol. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::notifySendingData ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 187 of file peoSyncMultiStart.h. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::notifySendingAllResourceRequests ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 192 of file peoSyncMultiStart.h. +.PP +References Service::getOwner(), and Thread::setPassive(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/trunk/paradiseo-peo/docs/man/man3/peoTransform.3 b/trunk/paradiseo-peo/docs/man/man3/peoTransform.3 new file mode 100644 index 000000000..d28312c3b --- /dev/null +++ b/trunk/paradiseo-peo/docs/man/man3/peoTransform.3 @@ -0,0 +1,27 @@ +.TH "peoTransform" 3 "7 Jan 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoTransform \- The \fBpeoTransform\fP class acts only as an interface for creating transform operators - for an example please refer to the \fB\fBpeoSeqTransform\fP\fP and the \fB\fBpeoParaSGATransform\fP\fP classes. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBService\fP. +.PP +Inherited by \fBpeoParaSGATransform< EOT >\fP, and \fBpeoSeqTransform< EOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class peoTransform< EOT >" +The \fBpeoTransform\fP class acts only as an interface for creating transform operators - for an example please refer to the \fB\fBpeoSeqTransform\fP\fP and the \fB\fBpeoParaSGATransform\fP\fP classes. +.PP +Definition at line 35 of file peoTransform.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code.